momentic 2.1.0 → 2.1.1
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/bin/cli.js
CHANGED
|
@@ -46,7 +46,7 @@ globstar while`,e,u,t,m,h),this.matchOne(e.slice(u),t.slice(m),r))return this.de
|
|
|
46
46
|
First test path: ${u}
|
|
47
47
|
|
|
48
48
|
Second test path: ${o}`)}t.tests[p.id]={type:Ce.TEST,name:p.name,id:p.id,description:p.description??void 0,labels:p.labels,...d};return}catch(p){r.warn(`Skipping file '${o}' because it is missing Momentic test metadata: ${p}`);return}case Ce.MODULE:try{let p=Rt.parse(a);t.modules[p.moduleId]={type:Ce.MODULE,name:p.name,id:p.moduleId,description:p.description??void 0,...d};let u=d.fileName.replace(".module.yaml","");!OS&&Ne(p.name)!==u&&r.warn(`The module with ID ${p.moduleId} has a name (${p.name}) that does not match its file name (${u}). We recommend renaming the module or the file to be consistent to avoid confusion and issues with module resolution.`);return}catch(p){r.warn(`Skipping file '${o}' because it is missing Momentic module metadata: ${p}`);return}default:r.warn(`Unsupported file type ${l}, skipping...`);return}}var qo="momentic.config.yaml",kS="momentic.workspace.yaml",KI=ce.object({projects:ce.string().array().describe("list of glob patterns to find project (momentic.config.yaml) files")}),YI=ce.union([ce.string(),ce.object({fromFile:ce.string(),json:ce.boolean().optional()})]),JI=ce.object({name:Nd,baseUrl:ce.string(),envFile:ce.string().optional().describe("path to a file on disk to read environment variables from. can be relative to project root or absolute."),envVariables:ce.record(ce.string(),YI).optional(),inheritFromShell:ce.boolean().optional().describe("inherit all environment variables from the shell - might be noisy"),browser:To.optional()}),XI=ce.object({postSave:ce.string().optional()}),ZI=ce.object({name:Nd,include:ce.string().array().optional().describe("list of glob patterns that match momentic files (optional)"),exclude:ce.string().array().optional().describe("opposite of include, takes precedence over include"),goldenFileDir:ce.string().optional(),reporterDir:ce.string().optional(),outputDir:ce.string().optional(),retries:ce.number().optional().describe("number of retries per test"),parallel:ce.number().optional().describe("degree of parallelism"),environments:ce.array(JI).optional(),gitMainBranch:ce.string().optional(),gitProtectedBranches:ce.string().array().optional(),ai:Xc.extend({aiPageFiltering:ce.boolean().optional().describe("rag v2 flag")}).optional(),browser:To.extend({autoExpandIframes:ce.boolean().optional(),disableSecondaryCacheResolution:ce.boolean().optional(),showZeroOpacityElements:ce.boolean().optional(),globalLocatorRedirect:ce.boolean().optional(),visualActions:ce.boolean().optional()}).optional(),advanced:Nh.optional(),hooks:XI.optional()});function _S(n,e){let t;try{t=WI(n,"utf-8")}catch(o){y.warn(`Could not read possible Momentic ${e} file at ${n}: ${o}`);return}let r;try{if(r=NS.parse(t),typeof r!="object"||r===null)throw new Error(`The ${e} file should parse as a map with key-value pairs, but is type ${typeof r} instead`)}catch(o){y.warn(`Possible Momentic ${e} file at ${n} does not parse as valid YAML: ${o}`);return}return r}function Fd(n){let e=_S(n,"project configuration");if(e!==void 0)try{return ZI.parse(e)}catch(t){y.warn(`Possible Momentic project configuration file at ${n} does not adhere to the required schema: ${t}`);return}}function QI(n){let e=_S(n,"workspace configuration");if(e!==void 0)try{return KI.parse(e)}catch(t){y.warn(`Possible Momentic workspace configuration file at ${n} does not adhere to the required schema: ${t}`);return}}function eP(){let n=[],e=Dd(),t=qr.parse(e).root,r=15,o=0;for(;o<r;){o++;let i=qr.basename(e);if(vs.includes(i))return y.warn(`Stopping search for Momentic projects since the current directory name (${i}) is likely a system artifact folder.`),n;for(let a of VI(e))if(a.endsWith(qo)){let s=qr.join(e,a),l=Fd(s);l&&n.push({configFilePath:s,config:l,rootDir:MS(s)})}if(n.length)return n;if(e=qr.dirname(e),e===t)break}return n}function en(n={}){let{configFilePath:e,nameFilter:t}=n,r=Ud(e);if(t&&(r=r.filter(o=>o.config.name===t)),r.length>1)throw new Error(`Multiple valid projects were found in the same directory. Please use the '-c / --config' flag to disambiguate:
|
|
49
|
-
${r.map(o=>o.configFilePath)}`);if(r.length===0)throw new Error("No valid Momentic project file available.");return y.debug(`Found valid project configuration at ${r[0].configFilePath}`),r[0]}function tP(n){let e=QI(n);if(!e||!e.projects||!e.projects.length)return;let t=e.projects.map(i=>(i.endsWith("/")||(i+="/"),`${i}*${qo}`)),r=Vo(t,{absolute:!1,cwd:Dd(),dotRelative:!1,maxDepth:_d,nodir:!0}),o=[];for(let i of r){let a=qr.join(Dd(),i),s=Fd(a);s&&o.push({configFilePath:a,config:s,rootDir:MS(a)})}return o}function Ud(n){if(n){n=qr.resolve(n);let t=Fd(n);return t||(console.error(`No valid Momentic project file found at ${n}.`),process.exit(1)),[{config:t,configFilePath:n,rootDir:qr.dirname(n)}]}if(GI(kS)){let t=tP(kS);if(t)return t}return eP()}function Ko(n,e){let t=NS.stringify(n);qI(e,t)}import Yo from"fs";import Bd from"path";import{z as zd}from"zod";var DS="golden/visual-diff",FS="reports",US="test-results";var nP=zd.object({width:zd.number(),height:zd.number()}),Jo=class{defaultGoldenScreenshotDir;regenerateGoldenFiles;constructor(e,t){let r=Bd.join(e.rootDir,e.config.goldenFileDir??DS);this.defaultGoldenScreenshotDir=r,this.regenerateGoldenFiles=t}async prepareGoldenScreenshotForComparison(e,t,r){if(t.screenshot?.data?.startsWith("https://")){let a=await fetch(t.screenshot.data);return{buffer:Buffer.from(await a.arrayBuffer()),width:t.screenshot.width,height:t.screenshot.height}}let o=t.screenshot?.data;o||(o=Bd.join(this.defaultGoldenScreenshotDir,`${t.id}.jpg`));let i=`${o}.metadata.json`;if(this.regenerateGoldenFiles)return Yo.mkdirSync(Bd.dirname(o),{recursive:!0}),Yo.writeFileSync(o,r.buffer),Yo.writeFileSync(i,JSON.stringify({width:r.width,height:r.height})),{buffer:Buffer.from(r.buffer),width:r.width,height:r.height};if(Yo.existsSync(o)){let a=Yo.readFileSync(o),s=nP.parse(JSON.parse(Yo.readFileSync(i,"utf-8")));return{buffer:a,width:s.width,height:s.height}}else throw new R("UserConfigurationError",`Cannot execute visual diff without a saved baseline screenshot at ${o}`)}};var Xo=class{flags;constructor(e){this.flags={auto_expand_iframes:e.browser?.autoExpandIframes??!1,rag_v2:e.ai?.aiPageFiltering??!1,faker_constant_seed:e.advanced?.fakerConstantSeed??!1,disable_secondary_cache_resolution:e.browser?.disableSecondaryCacheResolution??!1,show_zero_opacity_elements:e.browser?.showZeroOpacityElements??!1,global_locator_redirect:e.browser?.globalLocatorRedirect??!1,visual_actions:e.browser?.visualActions??!1,mini_model_initial_assertion:!1,mini_model_initial_locator:!1,show_test_plans:!1,icon_knowledge_base:!1}}isBooleanFlagEnabled(e){return this.flags[e]}getAllFlags(){return{...this.flags}}getFlagPayload(e){}async refresh(){}};import rP from"simple-git";var be=rP();function nl(n){if(n.startsWith("git@")){let e=n.split(":");if(e.length===2){let t=e[1].replace(".git","").split("/");if(t.length===2){let r=t[0],o=t[1];return`${r}/${o}`}}}else if(n.startsWith("http")||n.startsWith("https")){let t=new URL(n).pathname.split("/").filter(Boolean);if(t.length>=2){let r=t[0],o=t[1].replace(".git","");return`${r}/${o}`}}}async function we(n,e){try{return(await e).trim()}catch(t){n.error({err:t},"Failed to run git command");return}}function oP(){if(process.env.GITHUB_ACTION)return"GithubActions";if(process.env.GITLAB_CI)return"GitlabCI";if(process.env.CIRCLECI)return"CircleCI";if(process.env.BUILDKITE)return"Buildkite";if(process.env["System.CollectionUri"]?.includes("azure"))return"AzureDevOps"}async function iP(n){let[e,t,r,o]=await Promise.all([we(n,be.show(["--no-patch","--format=%ci"])),we(n,be.listRemote(["--get-url","origin"])),we(n,be.show(["-s","--pretty=%B"])),we(n,be.show(["-s","--pretty=%an"]))]);return{gitCommitSha:process.env.GITHUB_SHA,gitCommitShaShort:process.env.GITHUB_SHA?.slice(0,6),gitCommitTimestamp:e?new Date(e):void 0,gitBranchName:process.env.GITHUB_HEAD_REF||process.env.GITHUB_REF_NAME,gitOriginUrl:t,gitCommitMessage:r,gitCommitAuthorName:o,githubRepository:process.env.GITHUB_REPOSITORY,pipelineId:`${process.env.GITHUB_RUN_ID}:${process.env.GITHUB_RUN_ATTEMPT}`}}async function aP(n){let[e,t,r]=await Promise.all([we(n,be.listRemote(["--get-url","origin"])),we(n,be.show(["-s","--pretty=%B"])),we(n,be.show(["-s","--pretty=%an"]))]);return{gitCommitSha:process.env.CI_COMMIT_SHA,gitCommitShaShort:process.env.CI_COMMIT_SHORT_SHA,gitCommitTimestamp:process.env.CI_COMMIT_TIMESTAMP?new Date(process.env.CI_COMMIT_TIMESTAMP):void 0,gitBranchName:process.env.CI_COMMIT_BRANCH||process.env.CI_COMMIT_REF_NAME,gitOriginUrl:e,gitCommitMessage:t,gitCommitAuthorName:r,gitlabProjectPath:process.env.CI_SERVER_HOST,pipelineId:`${process.env.CI_PIPELINE_ID}:${process.env.CI_JOB_ID}`}}async function sP(n){let[e,t,r,o]=await Promise.all([we(n,be.show(["--no-patch","--format=%ci"])),we(n,be.listRemote(["--get-url","origin"])),we(n,be.show(["-s","--pretty=%B"])),we(n,be.show(["-s","--pretty=%an"]))]),i=t?.includes("github.com"),a=t?.includes("gitlab.com"),s=t?nl(t):void 0;return{gitCommitSha:process.env.CIRCLE_SHA1,gitCommitShaShort:process.env.CIRCLE_SHA1?.slice(0,6),gitCommitTimestamp:e?new Date(e):void 0,gitBranchName:process.env.CIRCLE_BRANCH,gitOriginUrl:process.env.CIRCLE_REPOSITORY_URL,gitCommitMessage:r,gitCommitAuthorName:o,githubRepository:i?s:void 0,gitlabProjectPath:a?s:void 0,pipelineId:`${process.env.CIRCLE_WORKFLOW_ID}:${process.env.CIRCLE_WORKFLOW_JOB_ID}`}}async function lP(n){let[e,t,r]=await Promise.all([we(n,be.show(["--no-patch","--format=%ci"])),we(n,be.show(["-s","--pretty=%B"])),we(n,be.show(["-s","--pretty=%an"]))]),o=process.env.BUILDKITE_REPO,i=o?.includes("github.com"),a=o?.includes("gitlab.com"),s=o?nl(o):void 0;return{gitCommitSha:process.env.BUILDKITE_COMMIT,gitCommitShaShort:process.env.BUILDKITE_COMMIT?.slice(0,6),gitCommitTimestamp:e?new Date(e):void 0,gitBranchName:process.env.BUILDKITE_BRANCH,gitOriginUrl:o,gitCommitMessage:t,gitCommitAuthorName:r,githubRepository:i?s:void 0,gitlabProjectPath:a?s:void 0,pipelineId:`${process.env.BUILDKITE_PIPELINE_ID}:${process.env.BUILDKITE_BUILD_ID}:${process.env.BUILDKITE_JOB_ID}`}}async function cP(n){let[e,t,r]=await Promise.all([we(n,be.show(["--no-patch","--format=%ci"])),we(n,be.show(["-s","--pretty=%B"])),we(n,be.show(["-s","--pretty=%an"]))]),o=process.env["Build.Repository.Uri"],i=o?.includes("github.com"),a=o?.includes("gitlab.com"),s=o?nl(o):void 0;return{gitCommitSha:process.env["Build.SourceVersion"],gitCommitShaShort:process.env["Build.SourceVersion"]?.slice(0,6),gitCommitTimestamp:e?new Date(e):void 0,gitBranchName:process.env["Build.SourceBranchName"],gitOriginUrl:o,gitCommitMessage:t,gitCommitAuthorName:r,githubRepository:i?s:void 0,gitlabProjectPath:a?s:void 0,pipelineId:`${process.env["System.JobId"]}:${process.env["System.JobAttempt"]}`}}async function dP(n,e){let[t,r,o,i,a,s,l,c]=await Promise.all([we(n,be.revparse(["HEAD"])),we(n,be.revparse(["--short","HEAD"])),we(n,be.revparse(["--abbrev-ref","HEAD"])),we(n,be.listRemote(["--get-url","origin"])),we(n,be.show(["--no-patch","--format=%ci"])),we(n,be.show(["-s","--pretty=%B"])),we(n,be.show(["-s","--pretty=%an"])),e?we(n,be.raw(["merge-base","--fork-point",e])):Promise.resolve(void 0)]),d=c?await we(n,be.show(["--no-patch","--format=%ci",c])):void 0,p=i?.includes("github.com"),u=i?.includes("gitlab.com"),m=i?nl(i):void 0;return{gitCommitSha:t,gitCommitShaShort:r,gitBranchName:o,gitOriginUrl:i,gitCommitTimestamp:a?new Date(a):void 0,gitCommitMessage:s,gitCommitAuthorName:l,lastCommitOnMainSha:c,lastCommitOnMainTimestamp:d?new Date(d):void 0,githubRepository:p?m:void 0,gitlabProjectPath:u?m:void 0,pipelineId:void 0}}async function pP(n){let e=n.config.gitProtectedBranches??[];return n.config.gitMainBranch&&e.push(n.config.gitMainBranch),{gitMainBranch:n.config.gitMainBranch,gitProtectedBranches:e}}async function uP(n,e){let t=oP();if(!t)return dP(n,e);switch(t){case"GithubActions":return iP(n);case"GitlabCI":return aP(n);case"CircleCI":return sP(n);case"Buildkite":return lP(n);case"AzureDevOps":return cP(n)}}async function mP(n,e,t){if(t.lastCommitOnMainSha&&t.lastCommitOnMainTimestamp)return{};if(t.gitlabProjectPath){if(!t.gitMainBranch||!t.gitCommitSha)return{};try{let r=await e.getMergeBaseCommitFromGitlab(t.gitlabProjectPath,t.gitMainBranch,t.gitCommitSha);return{lastCommitOnMainSha:r.sha,lastCommitOnMainTimestamp:r.committer.date}}catch(r){return n.warn({err:r},"Failed to get remote metadata from Gitlab"),{}}}if(t.githubRepository){if(!t.gitMainBranch||!t.gitCommitSha)return{};try{let[r,o]=t.githubRepository.split("/"),i=await e.getMergeBaseCommitFromGithub(r,o,t.gitMainBranch,t.gitCommitSha);return{lastCommitOnMainSha:i.sha,lastCommitOnMainTimestamp:i.committer.date}}catch(r){return n.warn({err:r},"Failed to get remote metadata from Github"),{}}}return{}}async function Zo(n,e,t){let r=await pP(t),o=await uP(n,r.gitMainBranch),i={...r,...o},a=await mP(n,e,i);return{...r,...o,...a}}import bM from"http";import{z as jd}from"zod";var N="v1",Ta="2.1.0";var hP=9e4,gP=15e3,hn=class extends Error{status;rawError;constructor(e,t,r,o={}){super(r,o),this.status=e,this.rawError=t}};async function fP(n){return n.text().then(e=>{try{return JSON.parse(e).error}catch{return e}})}var Hd=class{baseUrl;logger;constructor(e){this.baseUrl=e.baseUrl,this.logger=e.logger}getHeaders(){let e={"Content-Type":"application/json"};return Ta&&(e[_h]=Ta),e}async sendRequest(e,t,r=3,o=hP){let i=r,a,s={path:e,baseUrl:this.baseUrl,method:t.method};for(;r>0;)try{return r--,await this.sendSingleRequestHelper(e,t,o)}catch(l){if(a=l,l instanceof hn&&l.status>=400&&l.status<500||r===0)throw l;let c=1500,d=i-r,p=Math.min(c*Math.pow(2,d-1),gP);await new Promise(u=>setTimeout(u,p))}throw this.logger.warn({...s,err:a},"Got fatal error response from Momentic server"),a}async sendSingleRequestHelper(e,t,r){let o={path:e,baseUrl:this.baseUrl,method:t.method},i=new AbortController,a=setTimeout(()=>i.abort(),r),s=()=>i.abort();t.signal&&t.signal.addEventListener("abort",s);let l={...this.getHeaders(),...t.extraHeaders};try{let c=await fetch(`${this.baseUrl}${e}`,{method:t.method,body:t.body?JSON.stringify(t.body):void 0,headers:l,signal:i.signal});if(!c.ok){let p=await fP(c);throw new hn(c.status,p,`Request to ${e} failed with status ${c.status}: ${p}`)}let d;if(c.status===204)d={};else{let p=await c.text();try{d=JSON.parse(p)}catch{d=p}}return this.logger&&!t.noLog&&d&&this.logger.debug({result:d,status:c.status,...o},"Got response from Momentic server"),d}finally{clearTimeout(a),t.signal&&t.signal.removeEventListener("abort",s)}}},kt=class extends Hd{apiKey;constructor(e){super(e),this.apiKey=e.apiKey}getHeaders(){return{...super.getHeaders(),Authorization:`Bearer ${this.apiKey}`}}};var lt=class extends kt{constructor(e){super(e)}getAppUrl(){return this.baseUrl.replace(/\/\/api/,"//app")}async getAuthInfo(){let e=await this.sendRequest(`/${N}/auth/check`,{method:"GET",noLog:!0},10,5e3),{orgId:t,userId:r}=ag.parse(e);return{orgId:t,userId:r}}async bulkGetRunStatus(e){let t=await this.sendRequest(`/${N}/runs/status`,{method:"POST",body:e,noLog:!0},3,1e4);return tg.parse(t)}async createRunGroup(e){let t=await this.sendRequest(`/${N}/run-groups`,{method:"POST",body:e,noLog:!0},10,5e3);return Xh.parse(t)}async updateRunGroup(e,t){await this.sendRequest(`/${N}/run-groups/${e}`,{method:"PATCH",body:t,noLog:!0},5,5e3)}async createRun(e){let t=await this.sendRequest(`/${N}/runs`,{method:"POST",body:e,noLog:!0},10,5e3);return eg.parse(t)}async updateRun(e,t){await this.sendRequest(`/${N}/runs/${e}`,{method:"PATCH",body:t,noLog:!0},3,5e3)}async createRunAttempt(e){let t=await this.sendRequest(`/${N}/runs/${e}/attempts`,{method:"POST",noLog:!0},10,5e3);return rg.parse(t)}async updateRunAttempt(e,t,r){await this.sendRequest(`/${N}/runs/${e}/attempts/${t}`,{method:"PATCH",body:r,noLog:!0},3,5e3)}async getTest(e){let t=await this.sendRequest(`/${N}/tests/${e}`,{method:"GET"},3,5e3);return Vh.parse(t)}async getAllTestIds(){let e=await this.sendRequest(`/${N}/tests`,{method:"GET"},3,5e3);return qh.parse(e)}async getTestYAMLExport(e){let t=await this.sendRequest(`/${N}/tests/export`,{method:"POST",body:e},3,3e4);return Kh.parse(t)}async updateTestWithYAML(e){await this.sendRequest(`/${N}/tests/update`,{method:"POST",body:e},3,5e3)}async updateStepCaches(e,t){await this.sendRequest(`/${N}/cache`,{method:"PATCH",body:e,extraHeaders:t},3,1e4)}async getStepCacheForTest(e,t){let r=await this.sendRequest(`/${N}/cache`,{method:"POST",body:e,extraHeaders:t},10,1e4);return Yh.parse(r)}async queueTests(e){let t=await this.sendRequest(`/${N}/tests/queue`,{method:"POST",body:e},3,1e4);return Wh.parse(t)}async uploadScreenshot(e){let t=await this.sendRequest(`/${N}/screenshots`,{method:"POST",body:e,noLog:!0},3,5e3);return ig.parse(t)}async getAllEnvironments(){let e=await this.sendRequest(`/${N}/environments`,{method:"GET"},3,5e3);return sg.parse(e)}async getEnvironment(e){let t=await this.sendRequest(`/${N}/environments/${e}`,{method:"GET"},3,5e3);return Za.parse(t)}async getAllFeatureFlags(){let e=await this.sendRequest(`/${N}/auth/flags`,{method:"GET",noLog:!0},10,1e4);return lg.parse(e)}async acquireCacheLock(e,t){let r=await this.sendRequest(`/${N}/result-cache/lock`,{method:"POST",body:e,signal:t},3,3e4);return fg.parse(r)}async releaseCacheLock(e){await this.sendRequest(`/${N}/result-cache/lock`,{method:"DELETE",body:{key:e}},3,5e3)}async deleteCacheResult(e){await this.sendRequest(`/${N}/result-cache/entry`,{method:"DELETE",body:e},3,5e3)}async setCacheResult(e){await this.sendRequest(`/${N}/result-cache/entry`,{method:"PATCH",body:e},3,5e3)}async getCacheResult(e){try{return await this.sendRequest(`/${N}/result-cache/entry`,{method:"POST",body:e},3,5e3)}catch(t){if(t instanceof Error&&t.message.includes("404"))return null;throw t}}async queueSuiteRuns(e){let t=await this.sendRequest(`/${N}/suites/queue`,{method:"POST",body:e},3,5e3);return cg.parse(t)}async bulkGetSuiteStatus(e){let t={suiteRunIds:e},r=await this.sendRequest(`/${N}/suites/status`,{method:"POST",body:t,noLog:!0},3,5e3);return dg.parse(r)}async bulkGetRunGroupStatus(e){let t={runGroupIds:e},r=await this.sendRequest(`/${N}/run-groups/status`,{method:"POST",body:t,noLog:!0},3,5e3);return Bm.array().parse(r)}async updateCacheLastUsedDate(e,t,r,o){try{await this.sendRequest(`/${N}/cache/last-used-at`,{method:"PATCH",body:{uniqueKeys:t,testId:e},noLog:!0,extraHeaders:o},3,5e3)}catch(i){r.error({err:i},"Failed to update cache last used date")}}async uploadProposedSteps(e,t){try{await this.sendRequest(`/${N}/test-fragments/`,{method:"POST",body:e},3,1e4)}catch(r){t.error({err:r},"Failed to upload proposed steps")}}async uploadSnapshotScreenshot(e,t,r){try{await this.sendRequest(`/${N}/snapshots/${t}/screenshot`,{method:"POST",body:r,noLog:!0},3,1e4)}catch(o){e.error({err:o},"Failed to upload screenshot")}}async generateConsoleLogsForRunAttemptUploadUrl(e,t,r){let o=await this.sendRequest(`/${N}/runs/${t}/attempts/${r}/console-logs`,{method:"POST",noLog:!0},3,5e3);return Oo.parse(o)}async generateNetworkLogsForRunAttemptUploadUrl(e,t,r){let o=await this.sendRequest(`/${N}/runs/${t}/attempts/${r}/network-logs`,{method:"POST",noLog:!0},3,1e4);return Oo.parse(o)}async generateHtmlSnapshotUploadUrl(e,t){let r=await this.sendRequest(`/${N}/snapshots/${t}/html`,{method:"POST",noLog:!0},3,1e4);return Oo.parse(r)}async generateA11yTreeSnapshotUploadUrl(e,t){let r=await this.sendRequest(`/${N}/snapshots/${t}/a11y`,{method:"POST",noLog:!0},3,1e4);return Oo.parse(r)}async reportBillableEvents(e,t){try{await this.sendRequest(`/${N}/billing/events`,{method:"POST",body:t,noLog:!0},10,5e3)}catch(r){e.error({err:r},"Failed to report billable event")}}async fetchTestFragment(e){let t=await this.sendRequest(`/${N}/test-fragments/${e}`,{method:"GET",noLog:!0});return pg.parse(t)}async patchTestFragment(e,t){await this.sendRequest(`/${N}/test-fragments/${e}`,{method:"PATCH",body:t},3,5e3)}async getPastTestResults(e,t){let r=await this.sendRequest(`/${N}/results/tests/${e}`,{method:"POST",body:t},3,1e4);return ug.parse(r)}async generateTestResultsUploadUrl(){let e=await this.sendRequest(`/${N}/results/uploads`,{method:"POST",noLog:!0},3,1e4);return mg.parse(e)}async startProcessingResultsUpload(e){let t=await this.sendRequest(`/${N}/results/uploads/${e}/process`,{method:"POST",noLog:!0},3,1e4);return hg.parse(t)}async fetchIconKnowledgeBase(e,t){try{let r=await this.sendRequest(`/${N}/knowledge-base/icons`,{method:"GET",noLog:!0},3,5e3);return Tg.parse(r)}catch(r){return t.error({err:r},"Failed to fetch icon knowledge base"),null}}async saveNewIcons(e,t){try{await this.sendRequest(`/${N}/knowledge-base/icons`,{method:"POST",body:e,noLog:!0},3,5e3)}catch(r){t.error({err:r},"Failed to save new icons to icon knowledge base")}}async getMergeBaseCommitFromGithub(e,t,r,o){let i=new URLSearchParams;i.set("base",r),i.set("head",o);let a=await this.sendRequest(`/${N}/git/github/${e}/${t}/merge-base-commit?${i.toString()}`,{method:"GET",noLog:!0},3,1e4);return ed.parse(a)}async getMergeBaseCommitFromGitlab(e,t,r){let o=new URLSearchParams;o.set("base",t),o.set("head",r);let i=await this.sendRequest(`/${N}/git/gitlab/${e}/merge-base-commit?${o.toString()}`,{method:"GET",noLog:!0},3,5e3);return ed.parse(i)}async getAgentConfig(){let e=await this.sendRequest(`/${N}/web-agent/agent-config`,{method:"GET",noLog:!0},3,5e3);return jd.record(jd.string(),jd.string()).parse(e)}};import{randomUUID as BS}from"crypto";var rl=class{apiClient;constructor(e){this.apiClient=e}async reportBillableEvent(e,t,r){try{return await this.apiClient.reportBillableEvents(e,[{event:t,timestamp:new Date().toISOString(),transactionId:r?.eventId??BS(),properties:$c({},r)}])}catch(o){e.error({err:o},"Failed to report billable event")}}async reportCreditsUsed(e,t,r,o){if(r)try{return await this.apiClient.reportBillableEvents(e,[{event:"credits-used",timestamp:new Date().toISOString(),transactionId:o?.eventId??BS(),properties:$c({creditsUsed:r,usedBy:t},o)}])}catch(i){e.error({err:i},"Failed to report credits used")}}};function Qo(n,e,t){return fetch(n,{method:"PUT",body:t,headers:{"Content-Type":e}})}var ol=class{constructor(e){this.client=e}async storeConsoleLogsForRunAttempt(e,t,r,o){try{let i=JSON.stringify(o),{uploadUrl:a}=await this.client.generateConsoleLogsForRunAttemptUploadUrl(e,t,r),s=await Qo(a,"application/json",i);if(!s.ok)throw new Error(`Failed to upload network logs: ${s.statusText}`)}catch(i){e.error({err:i},"Failed to upload console logs")}}async storeNetworkLogsForRunAttempt(e,t,r,o){let i=JSON.stringify(o);try{let{uploadUrl:a}=await this.client.generateNetworkLogsForRunAttemptUploadUrl(e,t,r),s=await Qo(a,"application/json",i);if(!s.ok)throw new Error(`Failed to upload network logs: ${s.statusText}`)}catch(a){e.error({err:a},"Failed to upload network logs")}}async storeHtmlSnapshot(e,t,r){try{let{uploadUrl:o}=await this.client.generateHtmlSnapshotUploadUrl(e,t),i=await Qo(o,"text/html",r);if(!i.ok)throw new Error(`Failed to upload network logs: ${i.statusText}`)}catch(o){e.error({err:o},"Failed to upload html snapshot")}}async storeScreenshot(e,t,r){try{await this.client.uploadSnapshotScreenshot(e,t,{screenshot:r.toString("base64")})}catch(o){e.error({err:o},"Failed to upload screenshot")}}async storeA11yTreeSnapshot(e,t,r){return Promise.resolve()}async getConsoleLogsForRunAttempt(e,t,r){}async getNetworkLogsForRunAttempt(e,t,r){}async getHtmlSnapshot(e,t){}async getA11yTreeSnapshot(e,t){}async getScreenshot(e,t){}};var ei=class{constructor(e,t){this.client=e;this.orgId=t}async acquireCacheLock(e,t){return this.client.acquireCacheLock(e,t)}async uploadScreenshot(e){return(await this.client.uploadScreenshot({screenshot:e.toString("base64")})).key}async releaseCacheLock(e){return this.client.releaseCacheLock(e)}async deleteCacheResult(e){return this.client.deleteCacheResult(e)}async setCacheResult(e){return this.client.setCacheResult(e)}async getCacheResult(e){return this.client.getCacheResult(e)}fetchIconKnowledgeBase(e,t){return this.client.fetchIconKnowledgeBase(e,t)}saveNewIcons(e,t,r){return this.client.saveNewIcons(t,r)}};import{Faker as SP,en as yP}from"@faker-js/faker";var ti="v1",dr=class{httpClient;fakerInstance;type="API_CLIENT";sms={send:this.sendSms.bind(this),fetchLatest:this.fetchLatestSms.bind(this)};email={send:this.sendEmail.bind(this),fetchLatest:this.fetchLatestEmail.bind(this),fetchAll:this.fetchAllEmails.bind(this)};ai={generate:this.sendAiGenerate.bind(this)};constructor(e){this.httpClient=e.httpClient,e.fakerSeed&&(this.fakerInstance=new SP({locale:yP}),this.fakerInstance.seed(e.fakerSeed))}async sendAiGenerate(e){let t=typeof e=="string"?{input:e}:e;return this.httpClient.sendRequest(`/${ti}/tools/ai/generate`,{method:"POST",body:t}).catch(r=>{throw r instanceof hn?new Error(r.rawError):new Error(`Failed to send AI generation: ${r.message}`)})}async sendSms(e){return this.httpClient.sendRequest(`/${ti}/tools/sms/send`,{method:"POST",body:e}).then(()=>{}).catch(t=>{throw t instanceof hn?new Error(t.rawError):new Error(`Failed to send sms: ${t.message}`)})}async fetchLatestSms(e){return this.httpClient.sendRequest(`/${ti}/tools/sms/fetchLatest`,{method:"POST",body:e}).catch(t=>{throw t instanceof hn?new Error(t.rawError):t})}async sendEmail(e){return this.httpClient.sendRequest(`/${ti}/tools/email/send`,{method:"POST",body:e}).then(()=>{}).catch(t=>{throw t instanceof hn?new Error(t.rawError):new Error(`Failed to send email: ${t.message}`)})}async fetchAllEmails(e){return this.httpClient.sendRequest(`/${ti}/tools/email/fetchAll`,{method:"POST",body:e}).catch(t=>{throw t instanceof hn?new Error(t.rawError):new Error(`Failed to fetch all emails: ${t.message}`)})}async fetchLatestEmail(e){return this.httpClient.sendRequest(`/${ti}/tools/email/fetchLatest`,{method:"POST",body:e}).catch(t=>{throw t instanceof hn?new Error(t.rawError):new Error(`Failed to fetch latest emails: ${t.message}`)})}};import{z as bP}from"zod";var ni=class extends kt{agentConfig;constructor(e,t){super(t),this.agentConfig=e}async rankChunksWithAi(e,t){let r={...e,loggerTags:t.loggerTags},o=await this.sendRequest(`/${N}/web-agent/recommend-chunks-ai`,{method:"POST",body:r,signal:t.abortSignal});return eh.parse(o)}async rankChunksWithRag(e,t){let r=await this.sendRequest(`/${N}/web-agent/recommend-chunks`,{method:"POST",body:{cliVersion:Ta,...e},signal:t.abortSignal});return Qm.parse(r)}async getScreenshotFromS3(e){let t=await this.sendRequest(`/${N}/s3/visual-diff-screenshot`,{method:"POST",body:{url:e}});return bP.string().parse(t)}async getElementLocation(e,t){let r={...e,disableCache:t.disableCache,loggerTags:t.loggerTags,agentConfigVersion:this.agentConfig?.locator},o=await this.sendRequest(`/${N}/web-agent/locate-element`,{method:"POST",body:r,signal:t.abortSignal});return $h.parse(o)}async getAssertionResult(e,t){let r={...e,disableCache:!!t.disableCache,useConsensus:!!t.useConsensus,attemptNumber:t.attemptNumber,loggerTags:t.loggerTags,agentConfigVersion:this.agentConfig?.locator},o=await this.sendRequest(`/${N}/web-agent/assertion`,{method:"POST",body:r,signal:t.abortSignal});return Zc.parse(o)}async getLintStepResult(e,t){let r={...e,disableCache:!!t.disableCache,loggerTags:t.loggerTags},o=await this.sendRequest(`/${N}/web-agent/lint/step`,{method:"POST",body:r,signal:t.abortSignal});return jh.parse(o)}async getVisualAssertionResult(e,t){let r={...e,disableCache:!!t.disableCache,useConsensus:!!t.useConsensus,loggerTags:t.loggerTags},o=await this.sendRequest(`/${N}/web-agent/visual-assertion`,{method:"POST",body:r,signal:t.abortSignal});return Zc.parse(o)}async getAiActionCommand(e,t){let r=await this.sendRequest(`/${N}/web-agent/next-command-dynamic`,{method:"POST",body:{...e,disableCache:t.disableCache,loggerTags:t.loggerTags},signal:t.abortSignal});return Hh.parse(r)}async getMultiturnAiActionCommand(e,t){return await this.sendRequest(`/${N}/web-agent/ai-action/next-command`,{method:"POST",body:{...e,disableCache:t.disableCache,loggerTags:t.loggerTags},signal:t.abortSignal})}async getMultiturnAiActionEvaluation(e,t){let r=await this.sendRequest(`/${N}/web-agent/ai-action/evaluate`,{method:"POST",body:{...e,disableCache:t.disableCache,loggerTags:t.loggerTags},signal:t.abortSignal});return yc.parse(r)}async getReverseMappedDescription(e,t){let r=await this.sendRequest(`/${N}/web-agent/reverse-mapped-description`,{method:"POST",body:{...e,disableCache:t.disableCache,loggerTags:t.loggerTags},signal:t.abortSignal});return Gh.parse(r)}async getTextExtraction(e,t){let r={...e,disableCache:t.disableCache,loggerTags:t.loggerTags},o=await this.sendRequest(`/${N}/web-agent/text-extraction`,{method:"POST",body:r,signal:t.abortSignal});return Sc.parse(o)}async getTestResultClassification(e,t){let r=await this.sendRequest(`/${N}/web-agent/result-classification`,{method:"POST",body:{...e,loggerTags:t.loggerTags},signal:t.abortSignal});return Pc.parse(r)}async getExtractedKeywords(e,t){let r=await this.sendRequest(`/${N}/web-agent/extract-keywords`,{method:"POST",body:{goal:e,disableCache:t.disableCache,context:e},signal:t.abortSignal});return Zm.parse(r)}async getAutohealingProposal(e,t){let r=await this.sendRequest(`/${N}/web-agent/autoheal-section`,{method:"POST",body:{...e,loggerTags:t.loggerTags},signal:t.abortSignal});return ju.parse(r)}async getFailureRecoveryProposal(e,t){let r=await this.sendRequest(`/${N}/web-agent/failure-recovery`,{method:"POST",body:{...e,loggerTags:t.loggerTags},signal:t.abortSignal});return $u.parse(r)}async getIframeRegex(e,t){let r=await this.sendRequest(`/${N}/web-agent/iframe-regex`,{method:"POST",body:e,signal:t.abortSignal});return xu.parse(r)}};var ri=class extends kt{generator;constructor(e,t){super(e),this.generator=t}async runTemplateMatching(e,t={}){let r=await this.sendRequest(`/${N}/web-agent/template-matching`,{method:"POST",body:e,signal:t?.signal});return Eu.parse(r)}async constructIframeRegex(e,t={}){return this.generator.getIframeRegex(e,{abortSignal:t.signal})}};var il=class{constructor(e){this.client=e}async uploadResultsArchive(e){let{uploadUrl:t,id:r}=await this.client.generateTestResultsUploadUrl(),o=await Qo(t,"application/zip",e);if(!o.ok)throw new Error(`Failed to upload test results: ${await o.text()}`);let{runGroupId:i}=await this.client.startProcessingResultsUpload(r);return i}};function oi({client:n,gitMetadata:e,alwaysSaveCache:t,noCache:r}){return r?new xs:new $d(n,e,t)}var $d=class{constructor(e,{gitMainBranch:t,gitBranchName:r,gitProtectedBranches:o,gitCommitTimestamp:i,lastCommitOnMainSha:a,lastCommitOnMainTimestamp:s},l){this.client=e;this.cacheHeaders={},t&&(this.cacheHeaders[Dh]=t),r&&(this.cacheHeaders[Fh]=r),i&&(this.cacheHeaders[Uh]=i.toISOString()),a&&(this.cacheHeaders[Bh]=a),s&&(this.cacheHeaders[zh]=s.toISOString()),l?this.writeCaches=!0:r?this.writeCaches=!o.includes(r):this.writeCaches=!0}cacheHeaders;writeCaches;async saveStepCacheEntries(e,t,r){if(!this.writeCaches){r.debug("Skipping cache storage because branch is protected");return}try{await this.client.updateStepCaches({entries:e,testId:t},this.cacheHeaders)}catch(o){r.error({err:o},"Failed to save step cache entries")}}async resolveStepCacheEntries(e){let t=await this.client.getStepCacheForTest({testId:e.testId,organizationId:e.organizationId,steps:e.steps,schemaVersion:e.schemaVersion},this.cacheHeaders);if(!this.writeCaches){e.logger.debug("Skipping cache last used at update because branch is protected");return}let{uniqueKeysHit:r}=ko({steps:e.steps,stepCacheEntries:t,logger:e.logger});this.client.updateCacheLastUsedDate(e.testId,r,e.logger,this.cacheHeaders)}};import{Server as Yk}from"socket.io";import{cloneDeep as wP}from"lodash-es";var vP={showOverlay:!1},Gd=class{sessions=new Map;sessionCountByIp=new Map;getCurrentConnectionsByIp(e){return this.sessionCountByIp.get(e)??0}getCurrentSessionsByIp(){return Object.fromEntries(this.sessionCountByIp)}reserveCapacityByIp(e){e&&this.sessionCountByIp.set(e,(this.sessionCountByIp.get(e)??0)+1)}releaseCapacityByIp(e){e&&this.sessionCountByIp.set(e,Math.max(this.getCurrentConnectionsByIp(e)-1,0))}registerSession({controller:e,context:t,cleanup:r,clientIp:o,sessionId:i,browserbaseSessionId:a}){return this.sessions.set(i,{controller:e,context:t,cleanup:r,clientIp:o,browserbaseSessionId:a,browserBehavior:wP(vP)}),i}removeSession(e,t){(async()=>{let o=this.sessions.get(e);if(!o)return;this.releaseCapacityByIp(o.clientIp);let{controller:i}=o;try{i.setClosed(),await i.browser.cleanup()}catch(a){t.error({err:a},"Error cleaning up browser in global state manager")}try{await o.cleanup?.()}catch(a){t.error({err:a},"Error running cleanup function in global state manager")}this.sessions.delete(e)})()}getSession(e){return this.sessions.get(e)}},Q=new Gd;function zS(n,e,t){let r=Date.now(),o=Date.now(),i,a,s,l,c=!1,d=async(h,g)=>{if(!h.closed&&!h.isInPageLoad)try{let f=s;s=void 0;let S=h.url(),w=g.toEditorDisplayCopy();JSON.stringify(w)===JSON.stringify(i)&&S===l&&r>o||(n.emit("browserState",{logsPerPage:f?.logsPerPage,harPages:f?.harPages,harEntries:f?.harEntries,viewport:h.getViewport(),url:S,iframeSrcUrls:a??[],context:w,isInPageLoad:h.isInPageLoad}),r=Date.now()),l=S,i=w}catch(f){if(!n.connected)return;let S=f instanceof Error?f.message:`${f}`;if(S.includes("Frame was detached")||S.includes("Not attached to an active page")||S.includes("browser has been closed")||S.includes("UserInfrastructureError"))return;t.error({err:f,sessionId:e},"Error grabbing browser state")}},p=setInterval(()=>{let h=Q.getSession(e),g=h?.controller?.browser;if(!g||g.closed){t.debug("Clearing browser state socket cron due to the browser being closed"),clearInterval(p);return}d(g,h.context)},1e3),u=(h,g)=>!!(JSON.stringify(h)!==JSON.stringify(a)||g.logsPerPage.some(f=>f.length>0)||g.harPages&&Object.keys(g.harPages).length>0||g.harEntries&&Object.keys(g.harEntries).length>0),m=setInterval(async()=>{let g=Q.getSession(e)?.controller?.browser;if(!g||g.closed){clearInterval(m);return}else if(c)return;c=!0;try{let f=await g.getAllFrameUrls(),S=g.retrieveAndClearDebugData();u(f,S)&&(a=f,s=S,o=Date.now())}catch(f){t.warn({err:f},"Failed to fetch extended details")}finally{c=!1}},2500);return{timers:[p,m]}}var pr={};var TP=n=>()=>{let{sessionId:e}=n.metadata;pr[e]?.abort?.abort()},HS={event:"cancelApiTest",createHandler:TP};import{CookieJar as HP}from"tough-cookie";import{randomUUID as LP}from"crypto";import{faker as xP}from"@faker-js/faker";import EP from"assert";import CP from"axios";import RP from"moment";import*as AP from"otpauth";import IP from"pg";var ii=class extends Error{constructor(e){super(e),this.name="TimeoutError"}};var jS=n=>{let e=n.reason===void 0?new DOMException("This operation was aborted.","AbortError"):n.reason;return e instanceof Error?e:new DOMException(e,"AbortError")};async function D(n,e){let{milliseconds:t,fallback:r,message:o,customTimers:i={setTimeout,clearTimeout}}=e,a,s;return new Promise((l,c)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(e.signal){let{signal:p}=e;p.aborted&&c(jS(p)),s=()=>{c(jS(p))},p.addEventListener("abort",s)}if(t===Number.POSITIVE_INFINITY){n.then(l,c);return}let d=new ii;a=i.setTimeout.call(void 0,()=>{if(r){try{l(r())}catch(p){c(p)}return}"cancel"in n&&typeof n.cancel=="function"&&n.cancel(),o instanceof Error?c(o):(d.message=o??`Promise timed out after ${t} milliseconds`,c(d))},t),(async()=>{try{l(await n)}catch(p){c(p)}})()}).catch(l=>{throw l}).finally(()=>{a!==void 0&&i.clearTimeout.call(void 0,a),s!==void 0&&e.signal&&e.signal.removeEventListener("abort",s)})}async function $S(n){let e;try{e=new URL(n.url).hostname}catch{}let t=[];return n.headers.getSetCookie()?.forEach(r=>{let o=fs(r,e);t.push(...o)}),t}var PP=Object.getPrototypeOf(async function(){}).constructor;async function GS(n,e,t){let r=e.code;e.options.fragment&&(r=`return ${e.code}`);let{env:o}=e.bindings,i=e.tools,a={},s=(f,S)=>{o[f]=S,a[f]=S},l={},c=(f,S)=>{o[f]=S,l[f]=S},d;r.includes("Octokit")&&(d=(await import("@octokit/rest")).Octokit);let p;r.includes("createAppAuth")&&(p=(await import("@octokit/auth-app")).createAppAuth);let u=async()=>await Promise.resolve(new PP("axios","moment","faker","assert","pg","Octokit","createAppAuth","OTPAuth","extractCookiesFromResponse","env","setVariable","setPersistentVariable","sendSms","waitForLatestSms","email","sms","ai",r)(CP,RP,i.fakerInstance??xP,EP,IP,d,p,AP,$S,o,s,c,S=>i.sms.send(S),S=>i.sms.fetchLatest(S),i.email,i.sms,i.ai)),m=!0,h,g;try{h=await D(u(),{milliseconds:e.options.timeoutMs,message:`Timeout of ${e.options.timeoutMs}ms exceeded for code execution`,signal:e.signal})}catch(f){t.error({err:f,env:o,evalCode:r},`[${n}] Error executing code: ${f}`),m=!1,f instanceof ii?g=`Timeout of ${e.options.timeoutMs}ms exceeded for code execution`:g=f instanceof Error?f.message:`${f}`}return{result:h,variableUpdates:a,persistentVariableUpdates:l,success:m,error:g}}async function WS({code:n,fragment:e,context:t,localTools:r,logger:o,signal:i,timeoutMs:a=tr}){let s=LP(),l=await GS(s,{code:n,options:{fragment:e,timeoutMs:a},bindings:t.toObjectCopy(),tools:r,signal:i},o);return y.debug(`[${s}] Got execution result: ${JSON.stringify(l)}`),l}import{createHmac as OP,randomUUID as kP}from"crypto";import MP from"fetch-retry";var NP=MP(global.fetch,{retries:3,retryOn:function(n,e,t){return!!(e!==null||t&&t.status>=500)},retryDelay:function(n){return Math.pow(2,n)*500}}),VS=process.env.GCP_JS_EVAL_FUNCTION_ENDPOINT,qS=process.env.MOMENTIC_LAMBDA_AUTH_SECRET;async function KS({orgId:n,code:e,fragment:t,context:r,timeoutMs:o=tr,retries:i=2,signal:a,logger:s}){if(!VS)throw new Error("GCP_JS_EVAL_FUNCTION_ENDPOINT environment variable not set");let l,c,d=0;if(!qS)throw new Error("Missing lambda auth secret.");let p=OP("sha256",qS).update(n).digest("hex");for(;d<=i;){d++,a?.throwIfAborted();let m={id:kP(),orgId:n,momenticLambdaAuthHash:p,code:e,fragment:t,state:r.toObjectCopy(),timeoutMs:o};try{if(l=await D(NP(VS,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(m)}),{milliseconds:o,message:`Timeout of ${o}ms exceeded for code execution`,signal:a}),!l)throw new Error("Got empty response from code evaluation server");if(!l.ok)throw new Error(`Code evaluation server returned error code ${l.status}`);c=void 0;break}catch(h){c=h}}if(c)throw s.error({err:c},"Failed to evaluate code remotely"),c;if(!l)throw new Error(`An unexpected code evaluation error occurred${c?`: ${c}`:""}`);let u;try{u=lh.parse(await l.json())}catch(m){throw new Error(`Code evaluation server returned invalid response: ${m}`)}if(u.error)throw new Error(`Code evaluation error: ${u.error}`);return u}async function $n(n){let e;if(process.env.GCP_JS_EVAL_FUNCTION_ENDPOINT)e=await KS(n);else if(n.localTools)e=await WS({...n,localTools:n.localTools});else throw new Error("No code evaluation environment available");if(e.error){let t=`Failed to evaluate code:
|
|
49
|
+
${r.map(o=>o.configFilePath)}`);if(r.length===0)throw new Error("No valid Momentic project file available.");return y.debug(`Found valid project configuration at ${r[0].configFilePath}`),r[0]}function tP(n){let e=QI(n);if(!e||!e.projects||!e.projects.length)return;let t=e.projects.map(i=>(i.endsWith("/")||(i+="/"),`${i}*${qo}`)),r=Vo(t,{absolute:!1,cwd:Dd(),dotRelative:!1,maxDepth:_d,nodir:!0}),o=[];for(let i of r){let a=qr.join(Dd(),i),s=Fd(a);s&&o.push({configFilePath:a,config:s,rootDir:MS(a)})}return o}function Ud(n){if(n){n=qr.resolve(n);let t=Fd(n);return t||(console.error(`No valid Momentic project file found at ${n}.`),process.exit(1)),[{config:t,configFilePath:n,rootDir:qr.dirname(n)}]}if(GI(kS)){let t=tP(kS);if(t)return t}return eP()}function Ko(n,e){let t=NS.stringify(n);qI(e,t)}import Yo from"fs";import Bd from"path";import{z as zd}from"zod";var DS="golden/visual-diff",FS="reports",US="test-results";var nP=zd.object({width:zd.number(),height:zd.number()}),Jo=class{defaultGoldenScreenshotDir;regenerateGoldenFiles;constructor(e,t){let r=Bd.join(e.rootDir,e.config.goldenFileDir??DS);this.defaultGoldenScreenshotDir=r,this.regenerateGoldenFiles=t}async prepareGoldenScreenshotForComparison(e,t,r){if(t.screenshot?.data?.startsWith("https://")){let a=await fetch(t.screenshot.data);return{buffer:Buffer.from(await a.arrayBuffer()),width:t.screenshot.width,height:t.screenshot.height}}let o=t.screenshot?.data;o||(o=Bd.join(this.defaultGoldenScreenshotDir,`${t.id}.jpg`));let i=`${o}.metadata.json`;if(this.regenerateGoldenFiles)return Yo.mkdirSync(Bd.dirname(o),{recursive:!0}),Yo.writeFileSync(o,r.buffer),Yo.writeFileSync(i,JSON.stringify({width:r.width,height:r.height})),{buffer:Buffer.from(r.buffer),width:r.width,height:r.height};if(Yo.existsSync(o)){let a=Yo.readFileSync(o),s=nP.parse(JSON.parse(Yo.readFileSync(i,"utf-8")));return{buffer:a,width:s.width,height:s.height}}else throw new R("UserConfigurationError",`Cannot execute visual diff without a saved baseline screenshot at ${o}`)}};var Xo=class{flags;constructor(e){this.flags={auto_expand_iframes:e.browser?.autoExpandIframes??!1,rag_v2:e.ai?.aiPageFiltering??!1,faker_constant_seed:e.advanced?.fakerConstantSeed??!1,disable_secondary_cache_resolution:e.browser?.disableSecondaryCacheResolution??!1,show_zero_opacity_elements:e.browser?.showZeroOpacityElements??!1,global_locator_redirect:e.browser?.globalLocatorRedirect??!1,visual_actions:e.browser?.visualActions??!1,mini_model_initial_assertion:!1,mini_model_initial_locator:!1,show_test_plans:!1,icon_knowledge_base:!1}}isBooleanFlagEnabled(e){return this.flags[e]}getAllFlags(){return{...this.flags}}getFlagPayload(e){}async refresh(){}};import rP from"simple-git";var be=rP();function nl(n){if(n.startsWith("git@")){let e=n.split(":");if(e.length===2){let t=e[1].replace(".git","").split("/");if(t.length===2){let r=t[0],o=t[1];return`${r}/${o}`}}}else if(n.startsWith("http")||n.startsWith("https")){let t=new URL(n).pathname.split("/").filter(Boolean);if(t.length>=2){let r=t[0],o=t[1].replace(".git","");return`${r}/${o}`}}}async function we(n,e){try{return(await e).trim()}catch(t){n.error({err:t},"Failed to run git command");return}}function oP(){if(process.env.GITHUB_ACTION)return"GithubActions";if(process.env.GITLAB_CI)return"GitlabCI";if(process.env.CIRCLECI)return"CircleCI";if(process.env.BUILDKITE)return"Buildkite";if(process.env["System.CollectionUri"]?.includes("azure"))return"AzureDevOps"}async function iP(n){let[e,t,r,o]=await Promise.all([we(n,be.show(["--no-patch","--format=%ci"])),we(n,be.listRemote(["--get-url","origin"])),we(n,be.show(["-s","--pretty=%B"])),we(n,be.show(["-s","--pretty=%an"]))]);return{gitCommitSha:process.env.GITHUB_SHA,gitCommitShaShort:process.env.GITHUB_SHA?.slice(0,6),gitCommitTimestamp:e?new Date(e):void 0,gitBranchName:process.env.GITHUB_HEAD_REF||process.env.GITHUB_REF_NAME,gitOriginUrl:t,gitCommitMessage:r,gitCommitAuthorName:o,githubRepository:process.env.GITHUB_REPOSITORY,pipelineId:`${process.env.GITHUB_RUN_ID}:${process.env.GITHUB_RUN_ATTEMPT}`}}async function aP(n){let[e,t,r]=await Promise.all([we(n,be.listRemote(["--get-url","origin"])),we(n,be.show(["-s","--pretty=%B"])),we(n,be.show(["-s","--pretty=%an"]))]);return{gitCommitSha:process.env.CI_COMMIT_SHA,gitCommitShaShort:process.env.CI_COMMIT_SHORT_SHA,gitCommitTimestamp:process.env.CI_COMMIT_TIMESTAMP?new Date(process.env.CI_COMMIT_TIMESTAMP):void 0,gitBranchName:process.env.CI_COMMIT_BRANCH||process.env.CI_COMMIT_REF_NAME,gitOriginUrl:e,gitCommitMessage:t,gitCommitAuthorName:r,gitlabProjectPath:process.env.CI_SERVER_HOST,pipelineId:`${process.env.CI_PIPELINE_ID}:${process.env.CI_JOB_ID}`}}async function sP(n){let[e,t,r,o]=await Promise.all([we(n,be.show(["--no-patch","--format=%ci"])),we(n,be.listRemote(["--get-url","origin"])),we(n,be.show(["-s","--pretty=%B"])),we(n,be.show(["-s","--pretty=%an"]))]),i=t?.includes("github.com"),a=t?.includes("gitlab.com"),s=t?nl(t):void 0;return{gitCommitSha:process.env.CIRCLE_SHA1,gitCommitShaShort:process.env.CIRCLE_SHA1?.slice(0,6),gitCommitTimestamp:e?new Date(e):void 0,gitBranchName:process.env.CIRCLE_BRANCH,gitOriginUrl:process.env.CIRCLE_REPOSITORY_URL,gitCommitMessage:r,gitCommitAuthorName:o,githubRepository:i?s:void 0,gitlabProjectPath:a?s:void 0,pipelineId:`${process.env.CIRCLE_WORKFLOW_ID}:${process.env.CIRCLE_WORKFLOW_JOB_ID}`}}async function lP(n){let[e,t,r]=await Promise.all([we(n,be.show(["--no-patch","--format=%ci"])),we(n,be.show(["-s","--pretty=%B"])),we(n,be.show(["-s","--pretty=%an"]))]),o=process.env.BUILDKITE_REPO,i=o?.includes("github.com"),a=o?.includes("gitlab.com"),s=o?nl(o):void 0;return{gitCommitSha:process.env.BUILDKITE_COMMIT,gitCommitShaShort:process.env.BUILDKITE_COMMIT?.slice(0,6),gitCommitTimestamp:e?new Date(e):void 0,gitBranchName:process.env.BUILDKITE_BRANCH,gitOriginUrl:o,gitCommitMessage:t,gitCommitAuthorName:r,githubRepository:i?s:void 0,gitlabProjectPath:a?s:void 0,pipelineId:`${process.env.BUILDKITE_PIPELINE_ID}:${process.env.BUILDKITE_BUILD_ID}:${process.env.BUILDKITE_JOB_ID}`}}async function cP(n){let[e,t,r]=await Promise.all([we(n,be.show(["--no-patch","--format=%ci"])),we(n,be.show(["-s","--pretty=%B"])),we(n,be.show(["-s","--pretty=%an"]))]),o=process.env["Build.Repository.Uri"],i=o?.includes("github.com"),a=o?.includes("gitlab.com"),s=o?nl(o):void 0;return{gitCommitSha:process.env["Build.SourceVersion"],gitCommitShaShort:process.env["Build.SourceVersion"]?.slice(0,6),gitCommitTimestamp:e?new Date(e):void 0,gitBranchName:process.env["Build.SourceBranchName"],gitOriginUrl:o,gitCommitMessage:t,gitCommitAuthorName:r,githubRepository:i?s:void 0,gitlabProjectPath:a?s:void 0,pipelineId:`${process.env["System.JobId"]}:${process.env["System.JobAttempt"]}`}}async function dP(n,e){let[t,r,o,i,a,s,l,c]=await Promise.all([we(n,be.revparse(["HEAD"])),we(n,be.revparse(["--short","HEAD"])),we(n,be.revparse(["--abbrev-ref","HEAD"])),we(n,be.listRemote(["--get-url","origin"])),we(n,be.show(["--no-patch","--format=%ci"])),we(n,be.show(["-s","--pretty=%B"])),we(n,be.show(["-s","--pretty=%an"])),e?we(n,be.raw(["merge-base","--fork-point",e])):Promise.resolve(void 0)]),d=c?await we(n,be.show(["--no-patch","--format=%ci",c])):void 0,p=i?.includes("github.com"),u=i?.includes("gitlab.com"),m=i?nl(i):void 0;return{gitCommitSha:t,gitCommitShaShort:r,gitBranchName:o,gitOriginUrl:i,gitCommitTimestamp:a?new Date(a):void 0,gitCommitMessage:s,gitCommitAuthorName:l,lastCommitOnMainSha:c,lastCommitOnMainTimestamp:d?new Date(d):void 0,githubRepository:p?m:void 0,gitlabProjectPath:u?m:void 0,pipelineId:void 0}}async function pP(n){let e=n.config.gitProtectedBranches??[];return n.config.gitMainBranch&&e.push(n.config.gitMainBranch),{gitMainBranch:n.config.gitMainBranch,gitProtectedBranches:e}}async function uP(n,e){let t=oP();if(!t)return dP(n,e);switch(t){case"GithubActions":return iP(n);case"GitlabCI":return aP(n);case"CircleCI":return sP(n);case"Buildkite":return lP(n);case"AzureDevOps":return cP(n)}}async function mP(n,e,t){if(t.lastCommitOnMainSha&&t.lastCommitOnMainTimestamp)return{};if(t.gitlabProjectPath){if(!t.gitMainBranch||!t.gitCommitSha)return{};try{let r=await e.getMergeBaseCommitFromGitlab(t.gitlabProjectPath,t.gitMainBranch,t.gitCommitSha);return{lastCommitOnMainSha:r.sha,lastCommitOnMainTimestamp:r.committer.date}}catch(r){return n.warn({err:r},"Failed to get remote metadata from Gitlab"),{}}}if(t.githubRepository){if(!t.gitMainBranch||!t.gitCommitSha)return{};try{let[r,o]=t.githubRepository.split("/"),i=await e.getMergeBaseCommitFromGithub(r,o,t.gitMainBranch,t.gitCommitSha);return{lastCommitOnMainSha:i.sha,lastCommitOnMainTimestamp:i.committer.date}}catch(r){return n.warn({err:r},"Failed to get remote metadata from Github"),{}}}return{}}async function Zo(n,e,t){let r=await pP(t),o=await uP(n,r.gitMainBranch),i={...r,...o},a=await mP(n,e,i);return{...r,...o,...a}}import bM from"http";import{z as jd}from"zod";var N="v1",Ta="2.1.1";var hP=9e4,gP=15e3,hn=class extends Error{status;rawError;constructor(e,t,r,o={}){super(r,o),this.status=e,this.rawError=t}};async function fP(n){return n.text().then(e=>{try{return JSON.parse(e).error}catch{return e}})}var Hd=class{baseUrl;logger;constructor(e){this.baseUrl=e.baseUrl,this.logger=e.logger}getHeaders(){let e={"Content-Type":"application/json"};return Ta&&(e[_h]=Ta),e}async sendRequest(e,t,r=3,o=hP){let i=r,a,s={path:e,baseUrl:this.baseUrl,method:t.method};for(;r>0;)try{return r--,await this.sendSingleRequestHelper(e,t,o)}catch(l){if(a=l,l instanceof hn&&l.status>=400&&l.status<500||r===0)throw l;let c=1500,d=i-r,p=Math.min(c*Math.pow(2,d-1),gP);await new Promise(u=>setTimeout(u,p))}throw this.logger.warn({...s,err:a},"Got fatal error response from Momentic server"),a}async sendSingleRequestHelper(e,t,r){let o={path:e,baseUrl:this.baseUrl,method:t.method},i=new AbortController,a=setTimeout(()=>i.abort(),r),s=()=>i.abort();t.signal&&t.signal.addEventListener("abort",s);let l={...this.getHeaders(),...t.extraHeaders};try{let c=await fetch(`${this.baseUrl}${e}`,{method:t.method,body:t.body?JSON.stringify(t.body):void 0,headers:l,signal:i.signal});if(!c.ok){let p=await fP(c);throw new hn(c.status,p,`Request to ${e} failed with status ${c.status}: ${p}`)}let d;if(c.status===204)d={};else{let p=await c.text();try{d=JSON.parse(p)}catch{d=p}}return this.logger&&!t.noLog&&d&&this.logger.debug({result:d,status:c.status,...o},"Got response from Momentic server"),d}finally{clearTimeout(a),t.signal&&t.signal.removeEventListener("abort",s)}}},kt=class extends Hd{apiKey;constructor(e){super(e),this.apiKey=e.apiKey}getHeaders(){return{...super.getHeaders(),Authorization:`Bearer ${this.apiKey}`}}};var lt=class extends kt{constructor(e){super(e)}getAppUrl(){return this.baseUrl.replace(/\/\/api/,"//app")}async getAuthInfo(){let e=await this.sendRequest(`/${N}/auth/check`,{method:"GET",noLog:!0},10,5e3),{orgId:t,userId:r}=ag.parse(e);return{orgId:t,userId:r}}async bulkGetRunStatus(e){let t=await this.sendRequest(`/${N}/runs/status`,{method:"POST",body:e,noLog:!0},3,1e4);return tg.parse(t)}async createRunGroup(e){let t=await this.sendRequest(`/${N}/run-groups`,{method:"POST",body:e,noLog:!0},10,5e3);return Xh.parse(t)}async updateRunGroup(e,t){await this.sendRequest(`/${N}/run-groups/${e}`,{method:"PATCH",body:t,noLog:!0},5,5e3)}async createRun(e){let t=await this.sendRequest(`/${N}/runs`,{method:"POST",body:e,noLog:!0},10,5e3);return eg.parse(t)}async updateRun(e,t){await this.sendRequest(`/${N}/runs/${e}`,{method:"PATCH",body:t,noLog:!0},3,5e3)}async createRunAttempt(e){let t=await this.sendRequest(`/${N}/runs/${e}/attempts`,{method:"POST",noLog:!0},10,5e3);return rg.parse(t)}async updateRunAttempt(e,t,r){await this.sendRequest(`/${N}/runs/${e}/attempts/${t}`,{method:"PATCH",body:r,noLog:!0},3,5e3)}async getTest(e){let t=await this.sendRequest(`/${N}/tests/${e}`,{method:"GET"},3,5e3);return Vh.parse(t)}async getAllTestIds(){let e=await this.sendRequest(`/${N}/tests`,{method:"GET"},3,5e3);return qh.parse(e)}async getTestYAMLExport(e){let t=await this.sendRequest(`/${N}/tests/export`,{method:"POST",body:e},3,3e4);return Kh.parse(t)}async updateTestWithYAML(e){await this.sendRequest(`/${N}/tests/update`,{method:"POST",body:e},3,5e3)}async updateStepCaches(e,t){await this.sendRequest(`/${N}/cache`,{method:"PATCH",body:e,extraHeaders:t},3,1e4)}async getStepCacheForTest(e,t){let r=await this.sendRequest(`/${N}/cache`,{method:"POST",body:e,extraHeaders:t},10,1e4);return Yh.parse(r)}async queueTests(e){let t=await this.sendRequest(`/${N}/tests/queue`,{method:"POST",body:e},3,1e4);return Wh.parse(t)}async uploadScreenshot(e){let t=await this.sendRequest(`/${N}/screenshots`,{method:"POST",body:e,noLog:!0},3,5e3);return ig.parse(t)}async getAllEnvironments(){let e=await this.sendRequest(`/${N}/environments`,{method:"GET"},3,5e3);return sg.parse(e)}async getEnvironment(e){let t=await this.sendRequest(`/${N}/environments/${e}`,{method:"GET"},3,5e3);return Za.parse(t)}async getAllFeatureFlags(){let e=await this.sendRequest(`/${N}/auth/flags`,{method:"GET",noLog:!0},10,1e4);return lg.parse(e)}async acquireCacheLock(e,t){let r=await this.sendRequest(`/${N}/result-cache/lock`,{method:"POST",body:e,signal:t},3,3e4);return fg.parse(r)}async releaseCacheLock(e){await this.sendRequest(`/${N}/result-cache/lock`,{method:"DELETE",body:{key:e}},3,5e3)}async deleteCacheResult(e){await this.sendRequest(`/${N}/result-cache/entry`,{method:"DELETE",body:e},3,5e3)}async setCacheResult(e){await this.sendRequest(`/${N}/result-cache/entry`,{method:"PATCH",body:e},3,5e3)}async getCacheResult(e){try{return await this.sendRequest(`/${N}/result-cache/entry`,{method:"POST",body:e},3,5e3)}catch(t){if(t instanceof Error&&t.message.includes("404"))return null;throw t}}async queueSuiteRuns(e){let t=await this.sendRequest(`/${N}/suites/queue`,{method:"POST",body:e},3,5e3);return cg.parse(t)}async bulkGetSuiteStatus(e){let t={suiteRunIds:e},r=await this.sendRequest(`/${N}/suites/status`,{method:"POST",body:t,noLog:!0},3,5e3);return dg.parse(r)}async bulkGetRunGroupStatus(e){let t={runGroupIds:e},r=await this.sendRequest(`/${N}/run-groups/status`,{method:"POST",body:t,noLog:!0},3,5e3);return Bm.array().parse(r)}async updateCacheLastUsedDate(e,t,r,o){try{await this.sendRequest(`/${N}/cache/last-used-at`,{method:"PATCH",body:{uniqueKeys:t,testId:e},noLog:!0,extraHeaders:o},3,5e3)}catch(i){r.error({err:i},"Failed to update cache last used date")}}async uploadProposedSteps(e,t){try{await this.sendRequest(`/${N}/test-fragments/`,{method:"POST",body:e},3,1e4)}catch(r){t.error({err:r},"Failed to upload proposed steps")}}async uploadSnapshotScreenshot(e,t,r){try{await this.sendRequest(`/${N}/snapshots/${t}/screenshot`,{method:"POST",body:r,noLog:!0},3,1e4)}catch(o){e.error({err:o},"Failed to upload screenshot")}}async generateConsoleLogsForRunAttemptUploadUrl(e,t,r){let o=await this.sendRequest(`/${N}/runs/${t}/attempts/${r}/console-logs`,{method:"POST",noLog:!0},3,5e3);return Oo.parse(o)}async generateNetworkLogsForRunAttemptUploadUrl(e,t,r){let o=await this.sendRequest(`/${N}/runs/${t}/attempts/${r}/network-logs`,{method:"POST",noLog:!0},3,1e4);return Oo.parse(o)}async generateHtmlSnapshotUploadUrl(e,t){let r=await this.sendRequest(`/${N}/snapshots/${t}/html`,{method:"POST",noLog:!0},3,1e4);return Oo.parse(r)}async generateA11yTreeSnapshotUploadUrl(e,t){let r=await this.sendRequest(`/${N}/snapshots/${t}/a11y`,{method:"POST",noLog:!0},3,1e4);return Oo.parse(r)}async reportBillableEvents(e,t){try{await this.sendRequest(`/${N}/billing/events`,{method:"POST",body:t,noLog:!0},10,5e3)}catch(r){e.error({err:r},"Failed to report billable event")}}async fetchTestFragment(e){let t=await this.sendRequest(`/${N}/test-fragments/${e}`,{method:"GET",noLog:!0});return pg.parse(t)}async patchTestFragment(e,t){await this.sendRequest(`/${N}/test-fragments/${e}`,{method:"PATCH",body:t},3,5e3)}async getPastTestResults(e,t){let r=await this.sendRequest(`/${N}/results/tests/${e}`,{method:"POST",body:t},3,1e4);return ug.parse(r)}async generateTestResultsUploadUrl(){let e=await this.sendRequest(`/${N}/results/uploads`,{method:"POST",noLog:!0},3,1e4);return mg.parse(e)}async startProcessingResultsUpload(e){let t=await this.sendRequest(`/${N}/results/uploads/${e}/process`,{method:"POST",noLog:!0},3,1e4);return hg.parse(t)}async fetchIconKnowledgeBase(e,t){try{let r=await this.sendRequest(`/${N}/knowledge-base/icons`,{method:"GET",noLog:!0},3,5e3);return Tg.parse(r)}catch(r){return t.error({err:r},"Failed to fetch icon knowledge base"),null}}async saveNewIcons(e,t){try{await this.sendRequest(`/${N}/knowledge-base/icons`,{method:"POST",body:e,noLog:!0},3,5e3)}catch(r){t.error({err:r},"Failed to save new icons to icon knowledge base")}}async getMergeBaseCommitFromGithub(e,t,r,o){let i=new URLSearchParams;i.set("base",r),i.set("head",o);let a=await this.sendRequest(`/${N}/git/github/${e}/${t}/merge-base-commit?${i.toString()}`,{method:"GET",noLog:!0},3,1e4);return ed.parse(a)}async getMergeBaseCommitFromGitlab(e,t,r){let o=new URLSearchParams;o.set("base",t),o.set("head",r);let i=await this.sendRequest(`/${N}/git/gitlab/${e}/merge-base-commit?${o.toString()}`,{method:"GET",noLog:!0},3,5e3);return ed.parse(i)}async getAgentConfig(){let e=await this.sendRequest(`/${N}/web-agent/agent-config`,{method:"GET",noLog:!0},3,5e3);return jd.record(jd.string(),jd.string()).parse(e)}};import{randomUUID as BS}from"crypto";var rl=class{apiClient;constructor(e){this.apiClient=e}async reportBillableEvent(e,t,r){try{return await this.apiClient.reportBillableEvents(e,[{event:t,timestamp:new Date().toISOString(),transactionId:r?.eventId??BS(),properties:$c({},r)}])}catch(o){e.error({err:o},"Failed to report billable event")}}async reportCreditsUsed(e,t,r,o){if(r)try{return await this.apiClient.reportBillableEvents(e,[{event:"credits-used",timestamp:new Date().toISOString(),transactionId:o?.eventId??BS(),properties:$c({creditsUsed:r,usedBy:t},o)}])}catch(i){e.error({err:i},"Failed to report credits used")}}};function Qo(n,e,t){return fetch(n,{method:"PUT",body:t,headers:{"Content-Type":e}})}var ol=class{constructor(e){this.client=e}async storeConsoleLogsForRunAttempt(e,t,r,o){try{let i=JSON.stringify(o),{uploadUrl:a}=await this.client.generateConsoleLogsForRunAttemptUploadUrl(e,t,r),s=await Qo(a,"application/json",i);if(!s.ok)throw new Error(`Failed to upload network logs: ${s.statusText}`)}catch(i){e.error({err:i},"Failed to upload console logs")}}async storeNetworkLogsForRunAttempt(e,t,r,o){let i=JSON.stringify(o);try{let{uploadUrl:a}=await this.client.generateNetworkLogsForRunAttemptUploadUrl(e,t,r),s=await Qo(a,"application/json",i);if(!s.ok)throw new Error(`Failed to upload network logs: ${s.statusText}`)}catch(a){e.error({err:a},"Failed to upload network logs")}}async storeHtmlSnapshot(e,t,r){try{let{uploadUrl:o}=await this.client.generateHtmlSnapshotUploadUrl(e,t),i=await Qo(o,"text/html",r);if(!i.ok)throw new Error(`Failed to upload network logs: ${i.statusText}`)}catch(o){e.error({err:o},"Failed to upload html snapshot")}}async storeScreenshot(e,t,r){try{await this.client.uploadSnapshotScreenshot(e,t,{screenshot:r.toString("base64")})}catch(o){e.error({err:o},"Failed to upload screenshot")}}async storeA11yTreeSnapshot(e,t,r){return Promise.resolve()}async getConsoleLogsForRunAttempt(e,t,r){}async getNetworkLogsForRunAttempt(e,t,r){}async getHtmlSnapshot(e,t){}async getA11yTreeSnapshot(e,t){}async getScreenshot(e,t){}};var ei=class{constructor(e,t){this.client=e;this.orgId=t}async acquireCacheLock(e,t){return this.client.acquireCacheLock(e,t)}async uploadScreenshot(e){return(await this.client.uploadScreenshot({screenshot:e.toString("base64")})).key}async releaseCacheLock(e){return this.client.releaseCacheLock(e)}async deleteCacheResult(e){return this.client.deleteCacheResult(e)}async setCacheResult(e){return this.client.setCacheResult(e)}async getCacheResult(e){return this.client.getCacheResult(e)}fetchIconKnowledgeBase(e,t){return this.client.fetchIconKnowledgeBase(e,t)}saveNewIcons(e,t,r){return this.client.saveNewIcons(t,r)}};import{Faker as SP,en as yP}from"@faker-js/faker";var ti="v1",dr=class{httpClient;fakerInstance;type="API_CLIENT";sms={send:this.sendSms.bind(this),fetchLatest:this.fetchLatestSms.bind(this)};email={send:this.sendEmail.bind(this),fetchLatest:this.fetchLatestEmail.bind(this),fetchAll:this.fetchAllEmails.bind(this)};ai={generate:this.sendAiGenerate.bind(this)};constructor(e){this.httpClient=e.httpClient,e.fakerSeed&&(this.fakerInstance=new SP({locale:yP}),this.fakerInstance.seed(e.fakerSeed))}async sendAiGenerate(e){let t=typeof e=="string"?{input:e}:e;return this.httpClient.sendRequest(`/${ti}/tools/ai/generate`,{method:"POST",body:t}).catch(r=>{throw r instanceof hn?new Error(r.rawError):new Error(`Failed to send AI generation: ${r.message}`)})}async sendSms(e){return this.httpClient.sendRequest(`/${ti}/tools/sms/send`,{method:"POST",body:e}).then(()=>{}).catch(t=>{throw t instanceof hn?new Error(t.rawError):new Error(`Failed to send sms: ${t.message}`)})}async fetchLatestSms(e){return this.httpClient.sendRequest(`/${ti}/tools/sms/fetchLatest`,{method:"POST",body:e}).catch(t=>{throw t instanceof hn?new Error(t.rawError):t})}async sendEmail(e){return this.httpClient.sendRequest(`/${ti}/tools/email/send`,{method:"POST",body:e}).then(()=>{}).catch(t=>{throw t instanceof hn?new Error(t.rawError):new Error(`Failed to send email: ${t.message}`)})}async fetchAllEmails(e){return this.httpClient.sendRequest(`/${ti}/tools/email/fetchAll`,{method:"POST",body:e}).catch(t=>{throw t instanceof hn?new Error(t.rawError):new Error(`Failed to fetch all emails: ${t.message}`)})}async fetchLatestEmail(e){return this.httpClient.sendRequest(`/${ti}/tools/email/fetchLatest`,{method:"POST",body:e}).catch(t=>{throw t instanceof hn?new Error(t.rawError):new Error(`Failed to fetch latest emails: ${t.message}`)})}};import{z as bP}from"zod";var ni=class extends kt{agentConfig;constructor(e,t){super(t),this.agentConfig=e}async rankChunksWithAi(e,t){let r={...e,loggerTags:t.loggerTags},o=await this.sendRequest(`/${N}/web-agent/recommend-chunks-ai`,{method:"POST",body:r,signal:t.abortSignal});return eh.parse(o)}async rankChunksWithRag(e,t){let r=await this.sendRequest(`/${N}/web-agent/recommend-chunks`,{method:"POST",body:{cliVersion:Ta,...e},signal:t.abortSignal});return Qm.parse(r)}async getScreenshotFromS3(e){let t=await this.sendRequest(`/${N}/s3/visual-diff-screenshot`,{method:"POST",body:{url:e}});return bP.string().parse(t)}async getElementLocation(e,t){let r={...e,disableCache:t.disableCache,loggerTags:t.loggerTags,agentConfigVersion:this.agentConfig?.locator},o=await this.sendRequest(`/${N}/web-agent/locate-element`,{method:"POST",body:r,signal:t.abortSignal});return $h.parse(o)}async getAssertionResult(e,t){let r={...e,disableCache:!!t.disableCache,useConsensus:!!t.useConsensus,attemptNumber:t.attemptNumber,loggerTags:t.loggerTags,agentConfigVersion:this.agentConfig?.locator},o=await this.sendRequest(`/${N}/web-agent/assertion`,{method:"POST",body:r,signal:t.abortSignal});return Zc.parse(o)}async getLintStepResult(e,t){let r={...e,disableCache:!!t.disableCache,loggerTags:t.loggerTags},o=await this.sendRequest(`/${N}/web-agent/lint/step`,{method:"POST",body:r,signal:t.abortSignal});return jh.parse(o)}async getVisualAssertionResult(e,t){let r={...e,disableCache:!!t.disableCache,useConsensus:!!t.useConsensus,loggerTags:t.loggerTags},o=await this.sendRequest(`/${N}/web-agent/visual-assertion`,{method:"POST",body:r,signal:t.abortSignal});return Zc.parse(o)}async getAiActionCommand(e,t){let r=await this.sendRequest(`/${N}/web-agent/next-command-dynamic`,{method:"POST",body:{...e,disableCache:t.disableCache,loggerTags:t.loggerTags},signal:t.abortSignal});return Hh.parse(r)}async getMultiturnAiActionCommand(e,t){return await this.sendRequest(`/${N}/web-agent/ai-action/next-command`,{method:"POST",body:{...e,disableCache:t.disableCache,loggerTags:t.loggerTags},signal:t.abortSignal})}async getMultiturnAiActionEvaluation(e,t){let r=await this.sendRequest(`/${N}/web-agent/ai-action/evaluate`,{method:"POST",body:{...e,disableCache:t.disableCache,loggerTags:t.loggerTags},signal:t.abortSignal});return yc.parse(r)}async getReverseMappedDescription(e,t){let r=await this.sendRequest(`/${N}/web-agent/reverse-mapped-description`,{method:"POST",body:{...e,disableCache:t.disableCache,loggerTags:t.loggerTags},signal:t.abortSignal});return Gh.parse(r)}async getTextExtraction(e,t){let r={...e,disableCache:t.disableCache,loggerTags:t.loggerTags},o=await this.sendRequest(`/${N}/web-agent/text-extraction`,{method:"POST",body:r,signal:t.abortSignal});return Sc.parse(o)}async getTestResultClassification(e,t){let r=await this.sendRequest(`/${N}/web-agent/result-classification`,{method:"POST",body:{...e,loggerTags:t.loggerTags},signal:t.abortSignal});return Pc.parse(r)}async getExtractedKeywords(e,t){let r=await this.sendRequest(`/${N}/web-agent/extract-keywords`,{method:"POST",body:{goal:e,disableCache:t.disableCache,context:e},signal:t.abortSignal});return Zm.parse(r)}async getAutohealingProposal(e,t){let r=await this.sendRequest(`/${N}/web-agent/autoheal-section`,{method:"POST",body:{...e,loggerTags:t.loggerTags},signal:t.abortSignal});return ju.parse(r)}async getFailureRecoveryProposal(e,t){let r=await this.sendRequest(`/${N}/web-agent/failure-recovery`,{method:"POST",body:{...e,loggerTags:t.loggerTags},signal:t.abortSignal});return $u.parse(r)}async getIframeRegex(e,t){let r=await this.sendRequest(`/${N}/web-agent/iframe-regex`,{method:"POST",body:e,signal:t.abortSignal});return xu.parse(r)}};var ri=class extends kt{generator;constructor(e,t){super(e),this.generator=t}async runTemplateMatching(e,t={}){let r=await this.sendRequest(`/${N}/web-agent/template-matching`,{method:"POST",body:e,signal:t?.signal});return Eu.parse(r)}async constructIframeRegex(e,t={}){return this.generator.getIframeRegex(e,{abortSignal:t.signal})}};var il=class{constructor(e){this.client=e}async uploadResultsArchive(e){let{uploadUrl:t,id:r}=await this.client.generateTestResultsUploadUrl(),o=await Qo(t,"application/zip",e);if(!o.ok)throw new Error(`Failed to upload test results: ${await o.text()}`);let{runGroupId:i}=await this.client.startProcessingResultsUpload(r);return i}};function oi({client:n,gitMetadata:e,alwaysSaveCache:t,noCache:r}){return r?new xs:new $d(n,e,t)}var $d=class{constructor(e,{gitMainBranch:t,gitBranchName:r,gitProtectedBranches:o,gitCommitTimestamp:i,lastCommitOnMainSha:a,lastCommitOnMainTimestamp:s},l){this.client=e;this.cacheHeaders={},t&&(this.cacheHeaders[Dh]=t),r&&(this.cacheHeaders[Fh]=r),i&&(this.cacheHeaders[Uh]=i.toISOString()),a&&(this.cacheHeaders[Bh]=a),s&&(this.cacheHeaders[zh]=s.toISOString()),l?this.writeCaches=!0:r?this.writeCaches=!o.includes(r):this.writeCaches=!0}cacheHeaders;writeCaches;async saveStepCacheEntries(e,t,r){if(!this.writeCaches){r.debug("Skipping cache storage because branch is protected");return}try{await this.client.updateStepCaches({entries:e,testId:t},this.cacheHeaders)}catch(o){r.error({err:o},"Failed to save step cache entries")}}async resolveStepCacheEntries(e){let t=await this.client.getStepCacheForTest({testId:e.testId,organizationId:e.organizationId,steps:e.steps,schemaVersion:e.schemaVersion},this.cacheHeaders);if(!this.writeCaches){e.logger.debug("Skipping cache last used at update because branch is protected");return}let{uniqueKeysHit:r}=ko({steps:e.steps,stepCacheEntries:t,logger:e.logger});this.client.updateCacheLastUsedDate(e.testId,r,e.logger,this.cacheHeaders)}};import{Server as Yk}from"socket.io";import{cloneDeep as wP}from"lodash-es";var vP={showOverlay:!1},Gd=class{sessions=new Map;sessionCountByIp=new Map;getCurrentConnectionsByIp(e){return this.sessionCountByIp.get(e)??0}getCurrentSessionsByIp(){return Object.fromEntries(this.sessionCountByIp)}reserveCapacityByIp(e){e&&this.sessionCountByIp.set(e,(this.sessionCountByIp.get(e)??0)+1)}releaseCapacityByIp(e){e&&this.sessionCountByIp.set(e,Math.max(this.getCurrentConnectionsByIp(e)-1,0))}registerSession({controller:e,context:t,cleanup:r,clientIp:o,sessionId:i,browserbaseSessionId:a}){return this.sessions.set(i,{controller:e,context:t,cleanup:r,clientIp:o,browserbaseSessionId:a,browserBehavior:wP(vP)}),i}removeSession(e,t){(async()=>{let o=this.sessions.get(e);if(!o)return;this.releaseCapacityByIp(o.clientIp);let{controller:i}=o;try{i.setClosed(),await i.browser.cleanup()}catch(a){t.error({err:a},"Error cleaning up browser in global state manager")}try{await o.cleanup?.()}catch(a){t.error({err:a},"Error running cleanup function in global state manager")}this.sessions.delete(e)})()}getSession(e){return this.sessions.get(e)}},Q=new Gd;function zS(n,e,t){let r=Date.now(),o=Date.now(),i,a,s,l,c=!1,d=async(h,g)=>{if(!h.closed&&!h.isInPageLoad)try{let f=s;s=void 0;let S=h.url(),w=g.toEditorDisplayCopy();JSON.stringify(w)===JSON.stringify(i)&&S===l&&r>o||(n.emit("browserState",{logsPerPage:f?.logsPerPage,harPages:f?.harPages,harEntries:f?.harEntries,viewport:h.getViewport(),url:S,iframeSrcUrls:a??[],context:w,isInPageLoad:h.isInPageLoad}),r=Date.now()),l=S,i=w}catch(f){if(!n.connected)return;let S=f instanceof Error?f.message:`${f}`;if(S.includes("Frame was detached")||S.includes("Not attached to an active page")||S.includes("browser has been closed")||S.includes("UserInfrastructureError"))return;t.error({err:f,sessionId:e},"Error grabbing browser state")}},p=setInterval(()=>{let h=Q.getSession(e),g=h?.controller?.browser;if(!g||g.closed){t.debug("Clearing browser state socket cron due to the browser being closed"),clearInterval(p);return}d(g,h.context)},1e3),u=(h,g)=>!!(JSON.stringify(h)!==JSON.stringify(a)||g.logsPerPage.some(f=>f.length>0)||g.harPages&&Object.keys(g.harPages).length>0||g.harEntries&&Object.keys(g.harEntries).length>0),m=setInterval(async()=>{let g=Q.getSession(e)?.controller?.browser;if(!g||g.closed){clearInterval(m);return}else if(c)return;c=!0;try{let f=await g.getAllFrameUrls(),S=g.retrieveAndClearDebugData();u(f,S)&&(a=f,s=S,o=Date.now())}catch(f){t.warn({err:f},"Failed to fetch extended details")}finally{c=!1}},2500);return{timers:[p,m]}}var pr={};var TP=n=>()=>{let{sessionId:e}=n.metadata;pr[e]?.abort?.abort()},HS={event:"cancelApiTest",createHandler:TP};import{CookieJar as HP}from"tough-cookie";import{randomUUID as LP}from"crypto";import{faker as xP}from"@faker-js/faker";import EP from"assert";import CP from"axios";import RP from"moment";import*as AP from"otpauth";import IP from"pg";var ii=class extends Error{constructor(e){super(e),this.name="TimeoutError"}};var jS=n=>{let e=n.reason===void 0?new DOMException("This operation was aborted.","AbortError"):n.reason;return e instanceof Error?e:new DOMException(e,"AbortError")};async function D(n,e){let{milliseconds:t,fallback:r,message:o,customTimers:i={setTimeout,clearTimeout}}=e,a,s;return new Promise((l,c)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(e.signal){let{signal:p}=e;p.aborted&&c(jS(p)),s=()=>{c(jS(p))},p.addEventListener("abort",s)}if(t===Number.POSITIVE_INFINITY){n.then(l,c);return}let d=new ii;a=i.setTimeout.call(void 0,()=>{if(r){try{l(r())}catch(p){c(p)}return}"cancel"in n&&typeof n.cancel=="function"&&n.cancel(),o instanceof Error?c(o):(d.message=o??`Promise timed out after ${t} milliseconds`,c(d))},t),(async()=>{try{l(await n)}catch(p){c(p)}})()}).catch(l=>{throw l}).finally(()=>{a!==void 0&&i.clearTimeout.call(void 0,a),s!==void 0&&e.signal&&e.signal.removeEventListener("abort",s)})}async function $S(n){let e;try{e=new URL(n.url).hostname}catch{}let t=[];return n.headers.getSetCookie()?.forEach(r=>{let o=fs(r,e);t.push(...o)}),t}var PP=Object.getPrototypeOf(async function(){}).constructor;async function GS(n,e,t){let r=e.code;e.options.fragment&&(r=`return ${e.code}`);let{env:o}=e.bindings,i=e.tools,a={},s=(f,S)=>{o[f]=S,a[f]=S},l={},c=(f,S)=>{o[f]=S,l[f]=S},d;r.includes("Octokit")&&(d=(await import("@octokit/rest")).Octokit);let p;r.includes("createAppAuth")&&(p=(await import("@octokit/auth-app")).createAppAuth);let u=async()=>await Promise.resolve(new PP("axios","moment","faker","assert","pg","Octokit","createAppAuth","OTPAuth","extractCookiesFromResponse","env","setVariable","setPersistentVariable","sendSms","waitForLatestSms","email","sms","ai",r)(CP,RP,i.fakerInstance??xP,EP,IP,d,p,AP,$S,o,s,c,S=>i.sms.send(S),S=>i.sms.fetchLatest(S),i.email,i.sms,i.ai)),m=!0,h,g;try{h=await D(u(),{milliseconds:e.options.timeoutMs,message:`Timeout of ${e.options.timeoutMs}ms exceeded for code execution`,signal:e.signal})}catch(f){t.error({err:f,env:o,evalCode:r},`[${n}] Error executing code: ${f}`),m=!1,f instanceof ii?g=`Timeout of ${e.options.timeoutMs}ms exceeded for code execution`:g=f instanceof Error?f.message:`${f}`}return{result:h,variableUpdates:a,persistentVariableUpdates:l,success:m,error:g}}async function WS({code:n,fragment:e,context:t,localTools:r,logger:o,signal:i,timeoutMs:a=tr}){let s=LP(),l=await GS(s,{code:n,options:{fragment:e,timeoutMs:a},bindings:t.toObjectCopy(),tools:r,signal:i},o);return y.debug(`[${s}] Got execution result: ${JSON.stringify(l)}`),l}import{createHmac as OP,randomUUID as kP}from"crypto";import MP from"fetch-retry";var NP=MP(global.fetch,{retries:3,retryOn:function(n,e,t){return!!(e!==null||t&&t.status>=500)},retryDelay:function(n){return Math.pow(2,n)*500}}),VS=process.env.GCP_JS_EVAL_FUNCTION_ENDPOINT,qS=process.env.MOMENTIC_LAMBDA_AUTH_SECRET;async function KS({orgId:n,code:e,fragment:t,context:r,timeoutMs:o=tr,retries:i=2,signal:a,logger:s}){if(!VS)throw new Error("GCP_JS_EVAL_FUNCTION_ENDPOINT environment variable not set");let l,c,d=0;if(!qS)throw new Error("Missing lambda auth secret.");let p=OP("sha256",qS).update(n).digest("hex");for(;d<=i;){d++,a?.throwIfAborted();let m={id:kP(),orgId:n,momenticLambdaAuthHash:p,code:e,fragment:t,state:r.toObjectCopy(),timeoutMs:o};try{if(l=await D(NP(VS,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(m)}),{milliseconds:o,message:`Timeout of ${o}ms exceeded for code execution`,signal:a}),!l)throw new Error("Got empty response from code evaluation server");if(!l.ok)throw new Error(`Code evaluation server returned error code ${l.status}`);c=void 0;break}catch(h){c=h}}if(c)throw s.error({err:c},"Failed to evaluate code remotely"),c;if(!l)throw new Error(`An unexpected code evaluation error occurred${c?`: ${c}`:""}`);let u;try{u=lh.parse(await l.json())}catch(m){throw new Error(`Code evaluation server returned invalid response: ${m}`)}if(u.error)throw new Error(`Code evaluation error: ${u.error}`);return u}async function $n(n){let e;if(process.env.GCP_JS_EVAL_FUNCTION_ENDPOINT)e=await KS(n);else if(n.localTools)e=await WS({...n,localTools:n.localTools});else throw new Error("No code evaluation environment available");if(e.error){let t=`Failed to evaluate code:
|
|
50
50
|
${e.error}
|
|
51
51
|
Code received:
|
|
52
52
|
${n.code}`;throw n.logger.error({err:e.error,code:n.code,env:n.context.toObjectCopy()},t),new Error(t)}if(e.variableUpdates)for(let[t,r]of Object.entries(e.variableUpdates))n.context.setVariable(t,r);if(e.persistentVariableUpdates&&Object.keys(e.persistentVariableUpdates).length>0){await n.callbacks?.onPersistentVariableUpdates?.(e.persistentVariableUpdates);for(let[t,r]of Object.entries(e.persistentVariableUpdates))n.context.setVariable(t,r)}return e.result}import{set as _P}from"lodash-es";async function Bt(n){let{orgId:e,s:t,context:r,logger:o,signal:i,flagStore:a,retries:s=2,timeoutMs:l=tr,allowUndefined:c=!1}=n,d=/{{(.*?)}}/g,p=t.matchAll(d),u=t;for(let m of p){if(m.length<2)continue;let h=m[1].trim(),g;try{g=await $n({orgId:e,code:h,fragment:!0,context:r,timeoutMs:l,logger:o,retries:s,localTools:n.localTools,signal:i,flagStore:a})}catch(S){throw o.error({err:S,value:t},"Error evaluating template string"),S}if(g===void 0&&!c)throw new R("UserConfigurationError",`Template fragment '${h}' evaluated to undefined. Please ensure that the variable name is spelled correctly and it is only referenced after being assigned a value.`);let f=typeof g=="string"?g:`${g}`;f=f.replaceAll(/\$/g,"$$$$"),u=u.replace(m[0],f)}return u}async function ai(n){return YS(n)}async function YS({obj:n,bannedKeys:e,allowList:t,context:r,prefixPath:o=[],replacements:i=[],...a}){for(let s in n){if(e.includes(s))continue;let l=!1;if(t)if(t.includes(s))l=!0;else continue;let c=n[s],d=[...o,s];if(typeof c=="string"&&c.includes("{{")){let p=await Bt({s:c,context:r,...a});if(c===p)continue;i.push({path:d,original:c}),n[s]=p}else typeof c=="object"&&c!==null&&!Array.isArray(c)&&await YS({obj:c,bannedKeys:e,context:r,prefixPath:d,replacements:i,allowList:l?void 0:t,...a})}return i}function JS(n,e){for(let{path:t,original:r}of e)_P(n,t,r)}import DP from"fetch-retry";var oX=process.env.MAILINATOR_API_KEY,iX=DP(global.fetch,{retryOn:function(n,e,t){return n>3?!1:!!(e!==null||t&&t.status>=400)},retryDelay:function(n){return 500}});import UP from"fetch-cookie";import{cloneDeep as BP}from"lodash-es";var FP=3e4;async function al({command:n,logger:e,baseUrl:t,fetchImplementation:r=fetch}){let o=n.timeout??FP/1e3,i=Object.fromEntries(Object.entries(n.headers||{}).filter(([m,h])=>m&&h)),a=new URLSearchParams;Object.entries(n.params||{}).filter(([m,h])=>m&&h).forEach(([m,h])=>{a.append(m,h)});let s=a.toString(),l;if(Mo(n.url)&&(l=n.url),t&&No(n.url,t)&&(l=new URL(n.url,t).toString()),!l)throw new R("ActionFailureError",`Invalid URL: ${n.url}`);e.debug({url:l,searchParams:s,headers:i,body:n.body,method:n.method},"Making HTTP request");let d=await D((async()=>{let m=s?`${l}?${s}`:l;try{return await r(m,{headers:i,method:n.method,body:n.body})}catch(h){throw e.error({err:h},"Failed to make HTTP request"),new Error(`Failed to make HTTP request: ${h}`)}})(),{milliseconds:o*1e3,fallback:()=>{throw new R("ActionFailureError",`Fetch request timed out after ${o} seconds`)}});if(!d.ok){let m;try{m=await d.text()}catch(h){m=`Failed to read response body: ${h}`}throw new R("ActionFailureError",`Fetch request failed with status ${d.status}: ${m}`)}let p={};d.headers.forEach((m,h)=>{p[h]=m});let u={status:d.status,headers:p};return d.headers.get("content-type")?.includes("json")?u.json=await d.json():d.headers.get("content-type")?.includes("text")&&(u.text=await d.text()),u}async function XS(n){let{fixtures:e,inputs:t}=n,{context:r}=e,{orgId:o,step:i}=t,a=BP(i);await ai({obj:a,orgId:o,bannedKeys:["code"],...e});let s=await zP(n);return a.envKey&&s.data&&r.setVariable(a.envKey,s.data),s}async function zP(n){let{fixtures:e,inputs:t}=n,{step:r,orgId:o,baseUrl:i}=t,{cookieJar:a}=e,s=new Date;switch(r.type){case"JAVASCRIPT":{let c=await $n({code:r.code,orgId:o,fragment:!!r.fragment,timeoutMs:r.timeout?r.timeout*1e3:void 0,...e});try{JSON.stringify(c)}catch(d){return{...r,startedAt:s,finishedAt:new Date,status:"FAILED",message:`JavaScript return value is not serializable: ${d instanceof Error?d.message:`${d}`}`}}return{...r,startedAt:s,finishedAt:new Date,message:"JavaScript code executed successfully",status:"SUCCESS",data:c}}case"REQUEST":{let c=UP(fetch,a),d=await al({command:r,logger:e.logger,baseUrl:i,fetchImplementation:c});return{...r,startedAt:s,finishedAt:new Date,status:"SUCCESS",message:"Request executed successfully",data:d}}default:return(c=>{throw"If Typescript complains about the line below, you missed a case or break in the switch above"})(r)}}async function ZS(n){let{inputs:e,fixtures:t,callbacks:r}=n,{signal:o}=t,{steps:i,orgId:a,baseUrl:s}=e,{test:l,step:c}=r,d={startedAt:new Date,status:"RUNNING",results:[]},p=d.results,u=new HP,m={cookieJar:u,...t};for(let h of i){let g=new Date;c.onStarted?.(h.id);let f;try{o?.throwIfAborted(),f=await XS({inputs:{step:h,baseUrl:s,orgId:a},fixtures:m})}catch(S){o?.aborted?f={...h,startedAt:g,finishedAt:new Date,status:"CANCELLED",message:"Step cancelled by user."}:f={...h,startedAt:g,finishedAt:new Date,status:"FAILED",message:`Step failed: ${S instanceof Error?S.message:`${S}`}`}}if(p.push(f),c.onFinished?.({result:f,cookies:ys(u,new URL(s).hostname)}),l.updateAttemptProgress?.({results:p}),f.status!=="SUCCESS"){d.status=f.status==="CANCELLED"?"CANCELLED":"FAILED";break}}return d.status==="RUNNING"&&(d.status="PASSED"),d.finishedAt=new Date,l.onFinished?.(),d}async function QS(n){let{socket:e,storage:t}=n,r=n.socket.id,{testId:o}=e.handshake.query;if(typeof o!="string")throw new Error(`Received invalid test ID that does not parse as a string: ${o}`);let i=await t.getOrgId({type:"api-test",testId:o}),{baseUrl:a,envName:s,environmentVariables:l}=await Wd({testId:o,orgId:i,logger:n.logger,storage:t,authorization:n.authorization}),c={type:"api-test",orgId:await n.storage.getOrgId({type:"api-test",testId:o}),testId:o,sessionId:r,latestContext:new At({baseUrl:a||"",currentUrl:a||"",variablesFromEnvironment:l,envName:s})};return pr[r]=c,c}async function Wd({testId:n,orgId:e,logger:t,storage:r,authorization:o}){let i=await r.fetchApiTestMetadata(n,e,t);if(!i)throw new Error(`Failed to fetch API test metadata for test ID: ${n}`);let a;o?.type==="API_KEY"&&(a=new dr({httpClient:new kt({...o,logger:t}),fakerSeed:void 0}));let s=i.envs?.find(p=>p.default),l;s&&(l=await r.fetchEnvironment(e,s.name,t));let c=i.baseUrl||l?.variables?.[Ge];if(!c)throw new Error("Base URL is empty in both API test options and the configured environment");let d={...l?.variables};return{baseUrl:c,envName:l?.name,environmentVariables:d,localCodeEvalTools:a}}var jP=n=>async(e,t)=>{let{steps:r}=e,{authorization:o,metadata:i,socket:a,storage:s,logger:l,flagStoreFactory:c}=n,{orgId:d,testId:p,sessionId:u}=i,m=l.child({testId:p,orgId:d,sessionId:u}),h=pr[u];if(!h)throw new Error(`No api testing session with id ${u} could be found. Please reconnect and try again.`);let g=new AbortController;h.abort=g;let f=h.latestContext,{localCodeEvalTools:S,baseUrl:w}=await Wd({testId:p,orgId:d,logger:m,storage:s,authorization:o}),v={context:f,logger:m,localTools:S,signal:g.signal,flagStore:await c(d)},C=await ZS({inputs:{steps:r,orgId:d,baseUrl:w},fixtures:v,callbacks:{test:{onFinished:()=>{a.emit("apiTestFinished")}},step:{onStarted:A=>{a.emit("apiStepStarted",A)},onFinished:A=>{a.emit("apiStepFinished",A)}}}});t({result:C})},ey={event:"executeApiTest",createHandler:jP};var $P=({metadata:n,logger:e})=>{let{sessionId:t}=n;return async()=>{e.info({sessionId:t},"Cancel event received");let r=Q.getSession(t);if(!r)throw new Error("No active session found");try{r.controller.setClosed()}catch{}}},ty={event:"cancel",createHandler:$P};var GP=({metadata:n,logger:e})=>{let{sessionId:t}=n;return async(r,o)=>{let i=Q.getSession(t);if(!i)throw new Error("No active session found");i.controller.setOpen();let a=i.controller.browser;try{let s=await a.getBrowserState({skipWait:!0});o({a11yTree:s.serialize()})}catch(s){e.error({err:s},"Error fetching a11y tree from the browser"),o({err:s.message})}}},ny={event:"fetchA11yTree",createHandler:GP};var WP=({metadata:n,logger:e})=>{let{sessionId:t}=n;return async(r,o)=>{let i=Q.getSession(t);if(!i)throw new Error("No active session found");i.controller.setOpen();let a=i.controller.browser;try{let s=await a.html();o({html:s})}catch(s){e.error({err:s},"Error fetching DOM from the browser"),s.name==="TimeoutError"?o({err:"Timed out fetching DOM tree. This page may be too large for Momentic to process."}):o({err:s.message})}}},ry={event:"fetchDom",createHandler:WP};var VP=({metadata:n,logger:e})=>{let{sessionId:t,type:r}=n;return o=>{e.info({sessionId:t,reason:o},`Disconnect event received (${o})`),r==="e2e"?Q.removeSession(t,e):r==="api-test"&&delete pr[t]}},oy={event:"disconnect",createHandler:VP};function tn(n){let{result:e,nestedResults:t}=n;if(!n.nestedResults.length)return;let{firstMetadata:r,lastMetadata:o}=qP(t);KP(e,r,o);let i=[...n.asyncTasks];n.asyncTasks.push((async()=>{try{await YP(i,e,r,o)}catch(a){n.logger.error({result:n.result,err:a},"Error hoisting scalar result metadata")}})())}function qP(n){let e=n[0],t;for(;;){switch(e.type){case"PRESET_ACTION":{t=e;break}case"CONDITIONAL":if(e.assertion){t=e;break}break;case"AI_ACTION_DYNAMIC":case"AI_ACTION":case"MODULE":case"SECTION":case"IFRAME":if(!e.results.length){t=e;break}e=e.results[e.results.length-1];break;default:return(a=>{throw"If Typescript complains about the line below, you missed a case or break in the switch above"})(e)}if(t)break}let r=n[n.length-1],o;for(;;){switch(r.type){case"PRESET_ACTION":{o=r;break}case"AI_ACTION_DYNAMIC":case"CONDITIONAL":case"AI_ACTION":case"MODULE":case"SECTION":case"IFRAME":if(!r.results.length){o=r;break}r=r.results[r.results.length-1];break;default:return(a=>{throw"If Typescript complains about the line below, you missed a case or break in the switch above"})(r)}if(o)break}return{firstMetadata:t,lastMetadata:o}}function KP(n,e,t){e&&(n.beforeUrl=e.beforeUrl),t&&(n.afterUrl=t.afterUrl,n.data=t.data,t.status!=="SUCCESS"&&(n.message=t.message))}async function YP(n,e,t,r){await Promise.allSettled(n),t&&(e.beforeSnapshot=t.beforeSnapshot),r&&(e.afterSnapshot=r.afterSnapshot)}import xa from"os";import JP from"v8";var iy,Cn,XP=xa.platform(),ZP=xa.cpus().map(n=>({model:n.model,speed:n.speed}));function ay(n){let e=()=>{try{let t=!1,r=QP(),o=eL();r.freeMemory<1e6&&(t=!0);let i=JP.getHeapStatistics(),a=i.used_heap_size,s=i.heap_size_limit;a/s>.9&&(t=!0),t?n.warn({memory:r,cpu:o,heapStats:i},"Critical resource usage metrics detected"):n.debug({memory:r,cpu:o},"Got machine resource usage metrics")}catch{}};return e(),{interval:setInterval(e,1e4),cpuMetadata:ZP,platform:XP}}function QP(){let n=xa.totalmem(),e=xa.freemem(),t=n-e;return{totalMemory:n,freeMemory:e,usedMemory:t}}function eL(){let n=xa.cpus(),e=Date.now(),t={measurementTime:e,user:0,nice:0,sys:0,idle:0,irq:0,total:0};for(let o of n)t.user+=o.times.user,t.nice+=o.times.nice,t.sys+=o.times.sys,t.idle+=o.times.idle,t.irq+=o.times.irq;if(t.total=t.user+t.nice+t.sys+t.idle+t.irq,!Cn)return Cn=t,null;let r={user:t.user-Cn.user,nice:t.nice-Cn.nice,sys:t.sys-Cn.sys,idle:t.idle-Cn.idle,irq:t.irq-Cn.irq,total:t.total-Cn.total};return iy={measurementTime:e,intervalMs:e-Cn.measurementTime,user:r.user/r.total*100,nice:r.nice/r.total*100,sys:r.sys/r.total*100,idle:r.idle/r.total*100,irq:r.irq/r.total*100,total:100-r.idle/r.total*100},Cn=t,iy}import{hostname as iL}from"os";async function ly(n){let{command:e,tracer:t,timeoutMs:r,targetingWrapper:o,disableCache:i,fixtures:a}=n,{logger:s,abortSignal:l}=a;if(e.target&&!Zn(e.target))throw new Error("Element assertion with x/y is not supported yet");let c=e.assertion.type==="ELEMENT_EXISTENCE"&&e.assertion.negated,d=Date.now(),p=0,u,m=500;for(;p<2||Date.now()-d<r;){p++,p>1&&await te(m,l),l?.throwIfAborted();try{let{newTarget:h,elementInteractedDisplayString:g,result:f}=await o({ctx:a.ctx,tracer:t,command:e,target:e.target,cache:e.cache?.target,action:async S=>tL(S.locator,n),options:{disableCache:i,useSelector:!!e.useSelector,iframeUrl:e.iframeUrl,disableGlobalLocatorRedirect:!0,source:Rr(e)}});if(u={success:f.success,data:f.data,err:f.err,newTarget:h,elementInteractedDisplayString:g},!f.success){u=f,m=Math.min(m*2,1e4);continue}return u}catch(h){if(l?.throwIfAborted(),c)return{success:!0,thoughts:`The element described does not exist on the page: ${h.message}`};if(s.warn({err:h},"Element assertion ended in error, retrying..."),!(h instanceof R)||h.reason!="ActionFailureError")throw h;u={success:!1,err:h}}}if(!u)throw new Error(`Failed to evaluate manual element assertion in ${r}ms.`);return u}async function tL(n,{command:e,fixtures:t}){let r=e.assertion;await t.browser.highlight(n);let o=!0,i,a;switch(r.type){case"ELEMENT_CONTENT":{let s=await n.textContent()??"";if(a={elementTextContent:He(s,500,!0)},!sy(s,r.value,r.operation,!!r.negated)){let l=r.negated?or[r.operation]:ir[r.operation];o=!1,i=new R("AssertionFailureError",`The content ${l} '${r.value}': ${s}`)}break}case"ELEMENT_ATTRIBUTE":{a={elementOuterHtml:He(await n.evaluate(l=>l.cloneNode(!1).outerHTML),500,!0)};let s;try{s=await n.getAttribute(r.attr,{timeout:3e3})??""}catch(l){i=new R("AssertionFailureError",`The element does not have an attribute named ${r.attr}: ${l}`),o=!1;break}if(!sy(s,r.value,r.operation,!!r.negated)){let l=r.negated?or[r.operation]:ir[r.operation];o=!1,r.operation==="EXISTS"?i=r.negated?new R("AssertionFailureError",`The attribute ${r.attr} ${l}: ${s}`):new R("AssertionFailureError",`The attribute ${r.attr} ${l}`):i=new R("AssertionFailureError",`The attribute ${r.attr} ${l} '${r.value}': ${s}`)}break}case"ELEMENT_EXISTENCE":{switch(r.condition){case"VISIBLE":{o=await n.evaluate(async(l,c)=>{let d=Date.now();for(;Date.now()-d<c;){let p=l.getBoundingClientRect();if(p.width>0&&p.height>0)return!0;await new Promise(u=>setTimeout(u,250))}return!1},wn*1e3);break}case"EDITABLE":{o=await n.isEditable({timeout:wn*1e3});break}case"EXISTS":{o=!0;break}case"ENABLED":{o=await n.isEnabled({timeout:wn*1e3});break}default:return(l=>{throw"If Typescript complains about the line below, you missed a case or break in the switch above"})(r.condition)}if(o=r.negated?!o:o,!o){let s=r.negated?id[r.condition]:ad[r.condition];i=new R("AssertionFailureError",`The element ${s}`)}break}}return{success:o,data:a,err:i}}function sy(n,e,t,r){let o;switch(t){case"CONTAINS":{o=n.includes(e);break}case"EQUALS":{o=n.trim()===e.trim();break}case"STARTS_WITH":{o=n.trim().startsWith(e);break}case"EXISTS":{o=n.trim().length>0;break}default:return(a=>{throw"If Typescript complains about the line below, you missed a case or break in the switch above"})(t)}return r?!o:o}import{Jimp as nL}from"jimp";async function Ea(n,e){let t=await n.screenshot(e),r=await nL.fromBuffer(t);return{buffer:t,width:Math.ceil(r.bitmap.width??0),height:Math.ceil(r.bitmap.height??0)}}import{Jimp as cy}from"jimp";import Vd from"jpeg-js";import rL from"pixelmatch";async function dy({ctx:n,tracer:e,command:t,disableCache:r,browser:o,targetingWrapper:i,logger:a,screenshotStorage:s}){if(t.target&&!Zn(t.target))throw new Error("Visual Diff with x/y is not supported yet");await o.waitForDOMStability({logger:a});let l={clearHighlights:!0,hideCaret:!0},c;t.target?.elementDescriptor?c=(await i({ctx:n,tracer:e,command:t,target:t.target,cache:t.cache?.target??t.target?.a11yData,action:async F=>Ea(o,{locator:F.locator,...l}),options:{disableCache:!!r,useSelector:!!t.useSelector,iframeUrl:t.iframeUrl,disableGlobalLocatorRedirect:!0}})).result:c=await Ea(o,l);let d=await s.prepareGoldenScreenshotForComparison(a,t,c);if((c.height!==d.height||c.width!==d.width)&&a.debug({currHeight:c.height,currWidth:c.width,savedHeight:d.height,savedWidth:d.width},"Mismatched before and after visual diff screenshot sizes"),Math.abs(c.height-d.height)>10||Math.abs(c.width-d.width)>10){let H=`${c.width}x${c.height}`,F=`${d.width}x${d.height}`;return{fail:!0,thoughts:`Current screenshot (${H}) does not match saved screenshot dimensions (${F}) - did you change the size of the target or the viewport?`,beforeScreenshotOverride:d.buffer,afterScreenshotOverride:c.buffer,succeedImmediately:!1,urlAfterCommand:o.url()}}let p=await cy.fromBuffer(c.buffer),u={width:c.width,height:c.height},m=await cy.fromBuffer(d.buffer),h={width:d.width,height:d.height},g,f=u.width*u.height,S=h.width*h.height,w=Math.abs(u.height-h.height),v=Math.abs(u.width-h.width);if(f>S){let H=p.cover({w:h.width,h:h.height});c.buffer=await H.getBuffer("image/jpeg"),g="current",c.width=h.width,c.height=h.height}else if(S>f){let H=m.cover({w:u.width,h:u.height});d.buffer=await H.getBuffer("image/jpeg"),g="saved"}let b={data:Buffer.alloc(c.width*c.height*4),width:c.width,height:c.height},x=t.threshold??.1,A=rL(Vd.decode(d.buffer).data,Vd.decode(c.buffer).data,b.data,c.width,c.height,{threshold:x,diffColorAlt:[0,255,0]})/(c.width*c.height)*100,M=A>x*100,P=`Visual diff of ${A.toFixed(2)}% detected, which is ${M?"over":"under"} the threshold of ${x*100}%.`;if(g&&(P+=` The ${g} screenshot was cropped since it was taller by ${w} pixels and wider by ${v} pixels.`),M)throw new R("ActionFailureError",P);return{fail:M,thoughts:P,beforeScreenshotOverride:c.buffer,afterScreenshotOverride:Vd.encode(b,75).data,succeedImmediately:!1,urlAfterCommand:o.url()}}var oL=5e3;async function sl({timeout:n=wn,...e}){let t=Date.now(),r=n*1e3,o=r+1e4,i,a=0,s=500;for(;a-t<r;){if(Date.now()-t>o){e.logger.warn("Exceeded max system timeout for page assertion, exiting...");break}e.signal.throwIfAborted();let l=Date.now();i=await py(e),a=Date.now();let c=a-l;if(c>1e3&&e.logger.warn({pageAssertDuration:c},"Page assertion took longer than expected"),!i.success)await te(s,e.signal),s=Math.min(Math.floor(s*1.5),oL);else return i}return i=await py(e),i}async function py({assertion:n,browser:e,flagStore:t}){switch(n.type){case"CONTENT":{let o,i=!1,a;try{let s;if(t.isBooleanFlagEnabled("auto_expand_iframes")){let l=await e.evaluateFunctionInAllFrames(uy,{value:n.value,negated:!!n.negated,returnHtml:!1});i=n.negated?l.every(c=>c.evaluation):l.some(c=>c.evaluation),s=l.find(c=>c.pageHtml)?.pageHtml}else({evaluation:i,pageHtml:s}=await e.evaluateFunctionInPage(uy,{value:n.value,negated:!!n.negated,returnHtml:!0},"checking page content"));if(!i){let l=n.negated?or.CONTAINS:ir.CONTAINS;a=new R("AssertionFailureError",`The page ${l} '${n.value}'.`),o=s}}catch(s){a=new R("AssertionFailureError",`Failed to evaluate page content assertion: ${s instanceof Error?s.message:`${s}`}`)}return{success:i,err:a,data:i||!o?void 0:{pageContent:o}}}default:return(o=>{throw"If Typescript complains about the line below, you missed a case or break in the switch above"})(n.type)}}function uy({value:n,negated:e,returnHtml:t}){let r=document.documentElement.outerHTML,o=r.includes(n)===!e;return r.length>1e4&&(r=r.slice(0,1e4)+"...TRUNCATED"),{evaluation:o,pageHtml:!o&&t?r:void 0}}var qd=async n=>{let{step:e,resolvedInputs:t}=n.moduleParams,{logger:r,context:o,storage:i,codeEvalTools:a,controller:s}=n.fixtures,l=s.browser,{orgId:c,runId:d}=n.inputs,p=s.executeAbortController.signal;Object.keys(t).length>0&&(o.setInputs(t),r.debug({inputs:t,moduleId:e.moduleId},"Set module inputs"));let u,m=!1,h,g;if(e.cacheConfig||e.defaultCacheAllInvocations){let f=e.cacheConfig?.cacheKey||e.defaultCacheKey||"",S=await Bt({orgId:c,s:f,context:o,logger:r,localTools:a,signal:p,flagStore:s.flagStore});g={orgId:c,cacheKeys:[S,...Object.entries(t).map(([v,b])=>`${v}:${b}`)]},r.debug({original:f,keyParams:g},"Module cache key params");let w=Date.now();for(;Date.now()-w<Mh;){p?.throwIfAborted();let v=await i.getCacheResult(g);if(v){r.debug({cacheResult:v},"Got result from module execution cache"),u=ll(e,t,"SUCCESS"),u.message="Used cached module result.",u.data=JSON.parse(v),m=!0;break}else r.debug({cacheKey:f,keyParams:g},"No cache result found, continuing with lock acquisition");let b=await i.acquireCacheLock({keyParams:g,clientMetadata:`hostName:${iL()};runId:${d}`},p);if(b.acquired){h=b.keyPrefix,r.info({cacheKeyPrefixIfLockAcquired:h,cacheKey:f,keyParams:g},"Acquired cache lock and proceeding with module execution");break}else r.debug({cacheKeyPrefixIfLockAcquired:h,cacheKey:f,keyParams:g},"Failed to acquire cache lock, retrying...");await te(2500+Math.random()*1e4,p)}}try{if(!u)u=await aL(n);else if(e.autoAuth){let f=Ss.safeParse(u.data);if(!f.success)throw new R("UserConfigurationError",`Cached authentication module result is not a valid storage state: ${f.error.message}`);r.debug("Automatically loading auth state after cached module result"),await l.loadAuthState(f.data);let S=!1,w=e.advanced?.cacheInvalidation;if(w&&w.type==="PAGE_CHECK"){let v={type:"CONTENT",value:w.substring},b=await sl({timeout:wn,assertion:v,browser:l,flagStore:s.flagStore,logger:r,signal:p});b.success?r.debug({invalResult:b},"Cached result still valid after page check, continuing..."):(r.info({invalResult:b},"Invalidating cached result due to page check failure"),S=!0)}if(g&&S)return await i.deleteCacheResult(g),qd(n)}}finally{try{h!==void 0&&!m&&u?.status==="SUCCESS"&&await sL({step:e,result:u,browser:s.browser,cacheKeyPrefix:h,logger:r,storage:i})}finally{h!==void 0&&await i.releaseCacheLock(h)}}return u},aL=async n=>{let{step:e,tracer:t}=n.moduleParams,r=ll(e,n.moduleParams.resolvedInputs,"SUCCESS"),o=await t.startSubSteps(),{status:i,results:a}=await ur(n.work,()=>n.executeStepList({...n,listParams:{steps:e.steps,containerName:`module ('${e.name}')`,tracer:o}}));return r.results=a,r.status=i,r.finishedAt=new Date,tn({asyncTasks:n.work.asyncTasks,nestedResults:a,result:r,logger:n.fixtures.logger}),r};function ll(n,e,t){let r={};return Object.entries(e).forEach(([i,a])=>{r[i]=JSON.stringify(a)}),{type:"MODULE",id:n.id,moduleId:n.moduleId,moduleName:n.name,startedAt:new Date,cacheConfig:n.cacheConfig,inputs:r,results:[],finishedAt:new Date,status:t}}async function my({orgId:n,step:e,context:t,logger:r,flagStore:o,codeEvalTools:i,signal:a}){let s={};try{for(let l of e.parameters??[]){let c=e.inputs?.[l]??e.defaultParameters?.[l];if(!c){r.warn(`No value or default found for parameter '${l}' that is required by module '${e.name}'`);continue}s[l]=await $n({orgId:n,code:c,fragment:!0,context:t,logger:r,localTools:i,signal:a,flagStore:o})}return s}catch(l){throw a?.throwIfAborted(),new R("UserConfigurationError",`Failed to evaluate module inputs: ${l}`)}}async function sL({step:n,result:e,browser:t,cacheKeyPrefix:r,logger:o,storage:i}){let a=n.cacheConfig?.cacheExpiryMs;(!a||a===Sg)&&(a=n.defaultCacheTtl??yg);let s;n.autoAuth?s=JSON.stringify(await t.saveAuthState()):e.data!==void 0?s=JSON.stringify(e.data):s='""',o.debug({cacheKeyPrefix:r,ttlMs:a,truncatedCacheResultJson:Gg(s)},"Setting module cache result"),await i.setCacheResult({result:s,keyPrefix:r,ttlMs:a})}async function mr(n,e,t){let r=new Date;try{return t.throwIfAborted(),await e()}catch(o){let i=new Date,a="FAILED",s;if(t.aborted||o instanceof DOMException&&o.name==="AbortError"?(s="Step aborted by user.",a="CANCELLED"):o instanceof R?s=`${o}`:s=`An unexpected error occurred: ${o.message}`,n.type==="RESOLVED_MODULE"){let l=ll(n,{},"FAILED");return l.message=s,l.startedAt=r,l.finishedAt=i,l}return{...Ms(n),startedAt:r,finishedAt:i,status:a,data:null,message:s,results:[]}}}async function ur(n,e){let t=!1;try{return n&&!n.state.failureRecoveryDisabled&&(n.state.failureRecoveryDisabled=!0,t=!0),await e()}finally{n&&t&&(n.state.failureRecoveryDisabled=void 0)}}import{randomUUID as hy}from"crypto";import{cloneDeep as cL}from"lodash-es";function cl(n,e){n.state.healingDetails?n.state.healingDetails.push(e):n.state.healingDetails=[e]}var dl=async n=>{let{step:e,tracer:t}=n.presetParams,{logger:r,controller:o,context:i,billingReporter:a}=n.fixtures,{collectDebugData:s}=n.options,{testMetadata:l,suiteMetadata:c}=n.inputs,d=e.command.type,p=r.child({commandType:d,stepId:e.id,commandId:e.command.id}),u=Yi(e.command);n.work.asyncTasks.push(a.reportCreditsUsed(p,d,u,{testId:l?.id,testName:l?.name,suiteId:c?.id,suiteName:c?.name}));let m=o.browser.url(),h=new Date,g,f=hy(),S=hy();if(s)try{g=await o.browser.screenshot({retries:1,clearHighlights:!0});let C=await o.browser.getRawCondensedHtml();t.attachBeforeHtmlSnapshot({logger:p,snapshotId:f,html:C}),n.work.asyncTasks.push(n.fixtures.debugDataStorage.storeHtmlSnapshot(p,f,C))}catch(C){p.debug({err:C},"Failed to take screenshot before step, likely because the page is still loading. This is non-fatal and does not affect the test.")}let w,v,b,x=ms();try{let C=await o.executePresetCommand(x,t,e.command,i,l?.advanced.disableAICaching??!1);C.beforeScreenshotOverride&&(g=C.beforeScreenshotOverride),b=C.afterScreenshotOverride;let{proposedStep:A}=dL({work:n.work,step:e,newTargets:C.newTargets,logger:p}),M=new Date,P=o.browser.url();v={beforeUrl:m,afterUrl:P,startedAt:h,finishedAt:M,viewport:o.browser.getViewport(),status:C.fail?"FAILED":"SUCCESS",elementInteracted:C.elementInteracted},w={...e,message:C.thoughts??pL(C.newTargets)??"Successfully executed preset action.",beforeUrl:m,afterUrl:P,finishedAt:M,startedAt:h,status:C.fail?"FAILED":"SUCCESS",data:C.data,results:[v],details:x.details,proposedStep:A},"assertion"in e.command&&(w.message=C.thoughts||"Assertion passed.")}catch(C){p.error({message:C.message,stack:C.stack},`Failed executing preset step ${_r(e.command)}`);let A=o.browser.url(),M=new Date,P=C instanceof Error?C.message:`${C}`;C instanceof R&&C.getLastScreenshotBuffer()&&(b=C.getLastScreenshotBuffer()),v={beforeUrl:m,afterUrl:A,startedAt:h,finishedAt:M,viewport:o.browser.getViewport(),status:C instanceof DOMException&&C.name==="AbortError"?"CANCELLED":"FAILED",message:P},w={...e,startedAt:h,finishedAt:M,beforeUrl:m,afterUrl:A,status:C instanceof DOMException&&C.name==="AbortError"?"CANCELLED":"FAILED",message:P,failureReason:C instanceof R?C.reason:void 0,results:[v],details:x.details}}if(s)try{b||(b=await o.browser.screenshot({retries:1}));let C=await o.browser.getRawCondensedHtml();t.attachAfterHtmlSnapshot({logger:p,snapshotId:S,html:C}),n.work.asyncTasks.push(n.fixtures.debugDataStorage.storeHtmlSnapshot(p,S,C))}catch(C){p.debug({err:C},"Failed store debug data after step, likely because the page is still loading. This is non-fatal and does not affect the test.")}return v.beforeSnapshot=f,w.beforeSnapshot=f,v.afterSnapshot=S,w.afterSnapshot=S,g&&(t.attachBeforeScreenshot({logger:p,snapshotId:f,screenshot:g}),n.work.asyncTasks.push(n.fixtures.debugDataStorage.storeScreenshot(p,f,g))),b&&(t.attachAfterScreenshot({logger:p,snapshotId:S,screenshot:b}),n.work.asyncTasks.push(n.fixtures.debugDataStorage.storeScreenshot(p,S,b))),w};function dL({work:n,step:e,newTargets:t,logger:r}){if(!t?.length)return{proposedStep:void 0};let o=e.command;Fg(o,t,r);let i=t[0]?.description;if(i&&"target"in o&&o.target&&o.target.type==="description"){let a={...o,target:{...o.target,elementDescriptor:i}},s={...cL(e),command:a};return cl(n,{type:"DESCRIPTION_UPDATE",thoughts:`Updated element description after the original element could not be found on the page. New element location reasoning: ${t[0]?.thoughts}`}),{proposedStep:s}}return{proposedStep:void 0}}function pL(n){if(n?.length){if(n.length===1&&n[0]?.thoughts)return n[0].thoughts;if(n.length===2&&n.every(e=>e.thoughts))return`Located first element: ${n[0]?.thoughts}
|
|
@@ -3618,7 +3618,7 @@ ${a.stack}`),l.status(500).send("Internal Server Error")}),n){let a=Ww.static(n,
|
|
|
3618
3618
|
for /f "tokens=5" %a in ('netstat -ano ^| findstr :58888') do taskkill /PID %a /F
|
|
3619
3619
|
`)}import NN from"events";import Zl from"fs";import _N from"open";import Xl from"path";import{fileURLToPath as DN}from"url";import BM from"diff-lines";import{gt as zM}from"semver";import{execSync as vM}from"child_process";import{platform as TM}from"os";function Hp(){return Yw()?(y.dimmed("Setting device pixel ratio to 2 automatically since a Mac OS Retina screen was detected."),y.dimmed(`If you are using a low pixel-density monitor, you should manually set --pixel-ratio to 1 to avoid incorrect viewport calculations. Confirm your device's pixel-ratio at https://www.mydevice.io.
|
|
3620
3620
|
`),2):(y.dimmed("Setting device pixel ratio to 1."),y.dimmed(`If you are using Momentic on a high-pixel density (HiDPI) monitor, relaunch with the --pixel-ratio option to avoid incorrect viewport calculations. Confirm your device's pixel-ratio at https://www.mydevice.io.
|
|
3621
|
-
l.`),1)}function Yw(){return TM()==="darwin"&&vM("system_profiler SPDisplaysDataType").toString().includes("Retina")}function jp(n){Yw()&&n===1&&(y.warn("If you are using Momentic on a Retina screen, relaunch with the --pixel-ratio option to avoid incorrect viewport calculations."),y.warn("Confirm your device's pixel-ratio at https://www.mydevice.io."))}import xM from"@actions/exec";import EM from"@actions/io";import CM from"quote";import RM from"string-argv";async function Jw(n,e=!0){let t=RM(n),r=await EM.which(t[0],!0),o=t.slice(1),i=xM.exec(CM(r),o,{delay:100});if(e)return i}import{existsSync as AM,statSync as IM}from"fs";var Si=!!process.env.CI||!!process.env.GITHUB_ACTIONS||!!process.env.GITHUB_RUN_ID||!!process.env.GITLAB_CI||!!process.env.CI_COMMIT_SHA||!!process.env.JENKINS_URL||!!process.env.BUILD_NUMBER||!!process.env.JENKINS_HOME||!!process.env.CIRCLECI||!!process.env.CIRCLE_BUILD_NUM||!!process.env.TRAVIS||!!process.env.TRAVIS_BUILD_NUMBER||!!process.env.BITBUCKET_BUILD_NUMBER||!!process.env.BITBUCKET_COMMIT||!!process.env.CODEBUILD_BUILD_ID||!!process.env.TF_BUILD||!!process.env.BUILD_BUILDID||!!process.env.AGENT_ID||!!process.env.BUILDER_SA_EMAIL||!!process.env.HEROKU_TEST_RUN_ID||!!process.env.CI_NODE_INDEX||!!process.env.TEAMCITY_VERSION||!!process.env.BUILD_VCS_NUMBER||!!process.env.BUILDKITE||!!process.env.BUILDKITE_BUILD_NUMBER||!!process.env.APPVEYOR||!!process.env.APPVEYOR_BUILD_NUMBER||!!process.env.DRONE||!!process.env.DRONE_BUILD_NUMBER||!!process.env.SHIPPABLE||!!process.env.BUILD_URL||!!process.env.SEMAPHORE||!!process.env.SEMAPHORE_EXECUTABLE_UUID||!!process.env.WOODPECKER||!!process.env.CI_BUILD_NUMBER||!!process.env.WERCKER_MAIN_PIPELINE_STARTED||!!process.env.BUDDY_EXECUTION_ID;function Xw(n){try{return AM(n)&&IM(n).isDirectory()}catch(e){return y.error({err:e},`Error reading path ${n} during directory existence check`),!1}}import PM from"csv-parser";import{createReadStream as LM}from"fs";function $p(n){return new Promise((e,t)=>{let r=[];LM(n).pipe(PM()).on("data",o=>r.push(o)).on("end",()=>e(r)).on("error",o=>t(o))})}import Nl from"semver";import{z as _l}from"zod";var fn="2.1.0",OM="https://registry.npmjs.org/momentic",kM=_l.object({versions:_l.record(_l.string(),_l.unknown()).optional()});async function Zw(n){try{await MM(n)}catch(e){y.warn({err:e},"Failed to check CLI version against NPM servers")}}async function MM(n){if(!fn){n.warn("Unable to check CLI version because CLI_VERSION is not set");return}let e;for(let r=0;r<2;r++)try{let o=await D(fetch(OM),{milliseconds:5e3});if(!o.ok)throw new Error(`Got error status code ${o.statusText}`);let i=await o.json();e=kM.parse(i).versions;break}catch(o){n.warn({err:o},"Failed to fetch npm registry data")}if(!e){n.warn("Failed to fetch npm registry data. Skipping version check.");return}let t;for(let r of Object.keys(e))Nl.valid(r)&&(!t||Nl.gt(r,t))&&Nl.gt(r,fn)&&Nl.lt(r,"2.0.0")&&!r.includes("alpha")&&(t=r);t&&(y.warn(`Update available: v${fn} -> v${t}`),y.warn("This version may be missing critical fixes, features, and security updates."),y.warn(`Run "npx momentic@${t} -V" to update`))}import{existsSync as _M,mkdirSync as DM,statSync as FM}from"fs";import{dirname as UM}from"path";import ev from"readline/promises";import{hostname as NM}from"os";var ne=Pl({app:"cli",clientToken:"pub7eb923f18fb3f1d42ac5eba8c5ea13a5",hostname:NM(),disableConsoleLogs:!0}).child({version:"2.1.0"});var Gp=!1,tv=(()=>{try{return FM("/.dockerenv"),!0}catch{return!1}})();async function gt(n,e){if(Si||Gp||tv)return!0;ne.flush(),await new Promise(a=>setTimeout(a,500));let t=ev.createInterface({input:process.stdin,output:process.stdout}),r=n.split("."),o;if(r.length===1)o=n;else{let a=`${r.slice(0,r.length-1).join(".").trim()}.`;e?y.warn(a):y.log(a),o=r[r.length-1].trim()}let i=await t.question(`${o} ('y' for yes / n for no / 'A' to accept all) `);return t.close(),i==="A"?(Gp=!0,setTimeout(()=>{Gp=!1},3e3),!0):i.toLowerCase()==="y"}async function Wp(n){let e=UM(n);return Xw(e)?_M(n)?gt(`File '${Qw(n)}' already exists. Overwrite existing content?`,!0):!0:await gt(`Directory '${Qw(e)}' doesn't exist. Create it now?`,!0)?(DM(e,{recursive:!0}),!0):!1}function Qw(n){return n.replace(/(\s+)/g,"\\$1")}async function nv(n,e){if(Si||tv)return e;let t=ev.createInterface({input:process.stdin,output:process.stdout}),r=await t.question(`${n} `);return t.close(),r.trim()||e}async function rv({test:n,fragment:e,entities:t,client:r,logger:o,yes:i}){zM(e.schemaVersion,Fe)&&(y.error(`This version of the CLI does not support the schema version of the fragment (${e.schemaVersion}). Please update to the latest version of the CLI and retry this command.`),process.exit(1)),Dg(e.steps).forEach(g=>{t.modules[g]||(y.error(`The test patch contains a module with id ${g} that could not be found in the current project. This suggests that either this test patch or your local file system may be out of date.`),process.exit(1))}),e.createdAt.getTime()<Date.now()-7*24*60*60*1e3&&!i&&!await gt("The test patch you are applying is more than 7 days old. Are you sure you want to continue?",!0)&&process.exit(1);let s=n.lastModified.getTime();e.createdAt.getTime()+60*60*1e3<s&&!i&&!await gt("The test patch you are applying was created before the test was last updated. Are you sure you want to continue?",!0)&&process.exit(1);let l=Gr(n.fullFilePath,o,t),c=l.steps;if(!Array.isArray(c))throw new Error(`Test ${n.fullFilePath} is missing steps array`);let d,p;if(e.schemaVersion!==Fe){let{steps:g,newVersion:f}=await ea({metadata:{id:e.id,schemaVersion:e.schemaVersion},steps:e.steps,logger:y});d=f,p=Ae.array().parse(g)}else p=Ae.array().parse(e.steps);let{stepsToSave:u,moduleUpdates:m}=await Jt({stepLists:{steps:p}});u.beforeSteps=l.beforeSteps??void 0,u.afterSteps=l.afterSteps??void 0;let h=BM(JSON.stringify(c,void 0,2),JSON.stringify(u,void 0,2),{n_surrounding:5});y.dimmed("=".repeat(30)),y.dimmed(h),y.dimmed("=".repeat(30)),y.dimmed(""),d&&y.warn(`If this patch is applied, your test will also be automatically upgraded to the latest schema version (${d}). Schema upgrades have no impact on functionality, although you may notice minor differences in the test YAML.`),!i&&!await gt("Do you want to apply this patch?")&&(y.dimmed("Cancelled."),process.exit(1)),zn({relativeTestPath:n.relativePath,steps:u,schemaVersion:d??e.schemaVersion,project:t.project}),y.success("Patch applied successfully."),await r.patchTestFragment(e.id,{applied:!0,appliedAt:new Date})}import{randomUUID as ro}from"crypto";import{z as Ev}from"zod";var zt=" ".repeat(6);import xv from"chalk";import{Argument as to,Option as ke}from"@commander-js/extra-typings";import{validateHeaderValue as HM}from"http";import{cpus as ov}from"os";import{parse as Pue}from"yaml";import{z as q}from"zod";var Dl=58888,Vp=30*60*1e3,Wn=new ke("--api-key <key>","API key for authentication. If not supplied, attempts to read the MOMENTIC_API_KEY env var."),Vn=new ke("--server <server>","Momentic server to use. Leave unchanged unless using Momentic on-premise."),no=new ke("-y, --yes","Skip all confirmation prompts.").env("CI"),qp=new ke("-w, --wait","Wait for tests to finish running before exiting. Only applicable when running tests remotely").implies({remote:!0}),Kp=new ke("--wait-timeout <waitTimeout>",`The maximum number of seconds to wait for tests to complete. Only applicable when the --wait option is specified. Defaults to ${Vp/1e3} seconds.`),Fl=new ke("--custom-headers <customHeaders...>","Specify custom headers in the form HEADER=VALUE to be sent with each request during the test. Multiple entries can be provided."),av=new ke("--reporter <reporter>","Output report files in a standardized format to a local directory. See the --reporter-dir flag for information on the output directory.").choices(Object.values(Wi)),sv=new ke("--reporter-dir <reporterDir>","Output directory to store report files. Relative paths are resolved relative to the project root, which is defined by the detected momentic.config.yaml. Defaults to 'reports' if unset."),Yp=new ke("--output-dir <outputDir>","[Alpha] Output directory to store run artifacts such as screenshots, results, and logs. Relative paths are resolved relative to the project root, which is defined by the detected momentic.config.yaml. This directory will be cleared at the start of execution."),lv=new ke("--upload-results","Upload test results to Momentic Cloud. By default, this option is disabled."),cv=new ke("--include <includePatterns...>","Only include tests that match the provided regex patterns. Multiple patterns can be provided. The patterns will be matched against the test file paths and the pattern only needs to match a part of the path for the test to be included."),dv=new ke("--exclude <excludePatterns...>","The inverted version of --include: a test that matches any of the provided exclusion patterns will be excluded from running."),Jp=new ke("--pixel-ratio <pixelRatio>","Device pixel ratio of your screen or monitor. Mac OS Retina displays and machines marketed as 'HiDPI' should set this to 2. Visit https://www.mydevice.io/ to find your device's pixel ratio."),pv=new ke("--port <port>",`Port to run the app on. Defaults to ${Dl}.`),Xp=new ke("--input-csv <inputCsv>","Path to a CSV file on disk where each row represents a set of inputs that will be made available to all tests that are ran. The first line of the CSV must be the input names."),Ul=new ke("--env <env>","Name of the environment to use when running tests."),Bl=new ke("--url-override <urlOverride>","Fully qualified url (e.g. https://www.google.com) to start all tests from. Overrides any default starting url set from the test or environment."),uv=new ke("--shard-index <shardIndex>","The index of the shard to run tests for. Defaults to 1.").default(1).argParser(n=>parseInt(n,10)),kn=new ke("-c, --config <configPath>","Absolute or relative path to a Momentic configuration file (*.momentic.config.yaml)"),Zp=new ke("-f, --filter <filter>","Run tests within the project that has a name equal to the filter provided. This option cannot be used together with file path or directory arguments, but substring matches are allowed."),mv=new ke("--shard-count <shardCount>","The number of shards that tests are being run on. Defaults to 1.").default(1).argParser(n=>parseInt(n,10)),hv=new ke("--fix","Attempt to fix any issues found. This option will write changes to your local file system."),Qp=new ke("--save-cache","Always save updated step caches after successful test runs. By default, caches are not saved when running on the protected branches configured in the momentic.config.yaml.").env("CI"),eu=new ke("--disable-cache","Disable caching of test results. This will cause all tests to be re-run every time."),gv=new to("<tests...>",`One or more test paths to queue on Momentic Cloud.
|
|
3621
|
+
l.`),1)}function Yw(){return TM()==="darwin"&&vM("system_profiler SPDisplaysDataType").toString().includes("Retina")}function jp(n){Yw()&&n===1&&(y.warn("If you are using Momentic on a Retina screen, relaunch with the --pixel-ratio option to avoid incorrect viewport calculations."),y.warn("Confirm your device's pixel-ratio at https://www.mydevice.io."))}import xM from"@actions/exec";import EM from"@actions/io";import CM from"quote";import RM from"string-argv";async function Jw(n,e=!0){let t=RM(n),r=await EM.which(t[0],!0),o=t.slice(1),i=xM.exec(CM(r),o,{delay:100});if(e)return i}import{existsSync as AM,statSync as IM}from"fs";var Si=!!process.env.CI||!!process.env.GITHUB_ACTIONS||!!process.env.GITHUB_RUN_ID||!!process.env.GITLAB_CI||!!process.env.CI_COMMIT_SHA||!!process.env.JENKINS_URL||!!process.env.BUILD_NUMBER||!!process.env.JENKINS_HOME||!!process.env.CIRCLECI||!!process.env.CIRCLE_BUILD_NUM||!!process.env.TRAVIS||!!process.env.TRAVIS_BUILD_NUMBER||!!process.env.BITBUCKET_BUILD_NUMBER||!!process.env.BITBUCKET_COMMIT||!!process.env.CODEBUILD_BUILD_ID||!!process.env.TF_BUILD||!!process.env.BUILD_BUILDID||!!process.env.AGENT_ID||!!process.env.BUILDER_SA_EMAIL||!!process.env.HEROKU_TEST_RUN_ID||!!process.env.CI_NODE_INDEX||!!process.env.TEAMCITY_VERSION||!!process.env.BUILD_VCS_NUMBER||!!process.env.BUILDKITE||!!process.env.BUILDKITE_BUILD_NUMBER||!!process.env.APPVEYOR||!!process.env.APPVEYOR_BUILD_NUMBER||!!process.env.DRONE||!!process.env.DRONE_BUILD_NUMBER||!!process.env.SHIPPABLE||!!process.env.BUILD_URL||!!process.env.SEMAPHORE||!!process.env.SEMAPHORE_EXECUTABLE_UUID||!!process.env.WOODPECKER||!!process.env.CI_BUILD_NUMBER||!!process.env.WERCKER_MAIN_PIPELINE_STARTED||!!process.env.BUDDY_EXECUTION_ID;function Xw(n){try{return AM(n)&&IM(n).isDirectory()}catch(e){return y.error({err:e},`Error reading path ${n} during directory existence check`),!1}}import PM from"csv-parser";import{createReadStream as LM}from"fs";function $p(n){return new Promise((e,t)=>{let r=[];LM(n).pipe(PM()).on("data",o=>r.push(o)).on("end",()=>e(r)).on("error",o=>t(o))})}import Nl from"semver";import{z as _l}from"zod";var fn="2.1.1",OM="https://registry.npmjs.org/momentic",kM=_l.object({versions:_l.record(_l.string(),_l.unknown()).optional()});async function Zw(n){try{await MM(n)}catch(e){y.warn({err:e},"Failed to check CLI version against NPM servers")}}async function MM(n){if(!fn){n.warn("Unable to check CLI version because CLI_VERSION is not set");return}let e;for(let r=0;r<2;r++)try{let o=await D(fetch(OM),{milliseconds:5e3});if(!o.ok)throw new Error(`Got error status code ${o.statusText}`);let i=await o.json();e=kM.parse(i).versions;break}catch(o){n.warn({err:o},"Failed to fetch npm registry data")}if(!e){n.warn("Failed to fetch npm registry data. Skipping version check.");return}let t;for(let r of Object.keys(e))Nl.valid(r)&&(!t||Nl.gt(r,t))&&Nl.gt(r,fn)&&Nl.lt(r,"2.0.0")&&!r.includes("alpha")&&(t=r);t&&(y.warn(`Update available: v${fn} -> v${t}`),y.warn("This version may be missing critical fixes, features, and security updates."),y.warn(`Run "npx momentic@${t} -V" to update`))}import{existsSync as _M,mkdirSync as DM,statSync as FM}from"fs";import{dirname as UM}from"path";import ev from"readline/promises";import{hostname as NM}from"os";var ne=Pl({app:"cli",clientToken:"pub7eb923f18fb3f1d42ac5eba8c5ea13a5",hostname:NM(),disableConsoleLogs:!0}).child({version:"2.1.1"});var Gp=!1,tv=(()=>{try{return FM("/.dockerenv"),!0}catch{return!1}})();async function gt(n,e){if(Si||Gp||tv)return!0;ne.flush(),await new Promise(a=>setTimeout(a,500));let t=ev.createInterface({input:process.stdin,output:process.stdout}),r=n.split("."),o;if(r.length===1)o=n;else{let a=`${r.slice(0,r.length-1).join(".").trim()}.`;e?y.warn(a):y.log(a),o=r[r.length-1].trim()}let i=await t.question(`${o} ('y' for yes / n for no / 'A' to accept all) `);return t.close(),i==="A"?(Gp=!0,setTimeout(()=>{Gp=!1},3e3),!0):i.toLowerCase()==="y"}async function Wp(n){let e=UM(n);return Xw(e)?_M(n)?gt(`File '${Qw(n)}' already exists. Overwrite existing content?`,!0):!0:await gt(`Directory '${Qw(e)}' doesn't exist. Create it now?`,!0)?(DM(e,{recursive:!0}),!0):!1}function Qw(n){return n.replace(/(\s+)/g,"\\$1")}async function nv(n,e){if(Si||tv)return e;let t=ev.createInterface({input:process.stdin,output:process.stdout}),r=await t.question(`${n} `);return t.close(),r.trim()||e}async function rv({test:n,fragment:e,entities:t,client:r,logger:o,yes:i}){zM(e.schemaVersion,Fe)&&(y.error(`This version of the CLI does not support the schema version of the fragment (${e.schemaVersion}). Please update to the latest version of the CLI and retry this command.`),process.exit(1)),Dg(e.steps).forEach(g=>{t.modules[g]||(y.error(`The test patch contains a module with id ${g} that could not be found in the current project. This suggests that either this test patch or your local file system may be out of date.`),process.exit(1))}),e.createdAt.getTime()<Date.now()-7*24*60*60*1e3&&!i&&!await gt("The test patch you are applying is more than 7 days old. Are you sure you want to continue?",!0)&&process.exit(1);let s=n.lastModified.getTime();e.createdAt.getTime()+60*60*1e3<s&&!i&&!await gt("The test patch you are applying was created before the test was last updated. Are you sure you want to continue?",!0)&&process.exit(1);let l=Gr(n.fullFilePath,o,t),c=l.steps;if(!Array.isArray(c))throw new Error(`Test ${n.fullFilePath} is missing steps array`);let d,p;if(e.schemaVersion!==Fe){let{steps:g,newVersion:f}=await ea({metadata:{id:e.id,schemaVersion:e.schemaVersion},steps:e.steps,logger:y});d=f,p=Ae.array().parse(g)}else p=Ae.array().parse(e.steps);let{stepsToSave:u,moduleUpdates:m}=await Jt({stepLists:{steps:p}});u.beforeSteps=l.beforeSteps??void 0,u.afterSteps=l.afterSteps??void 0;let h=BM(JSON.stringify(c,void 0,2),JSON.stringify(u,void 0,2),{n_surrounding:5});y.dimmed("=".repeat(30)),y.dimmed(h),y.dimmed("=".repeat(30)),y.dimmed(""),d&&y.warn(`If this patch is applied, your test will also be automatically upgraded to the latest schema version (${d}). Schema upgrades have no impact on functionality, although you may notice minor differences in the test YAML.`),!i&&!await gt("Do you want to apply this patch?")&&(y.dimmed("Cancelled."),process.exit(1)),zn({relativeTestPath:n.relativePath,steps:u,schemaVersion:d??e.schemaVersion,project:t.project}),y.success("Patch applied successfully."),await r.patchTestFragment(e.id,{applied:!0,appliedAt:new Date})}import{randomUUID as ro}from"crypto";import{z as Ev}from"zod";var zt=" ".repeat(6);import xv from"chalk";import{Argument as to,Option as ke}from"@commander-js/extra-typings";import{validateHeaderValue as HM}from"http";import{cpus as ov}from"os";import{parse as Pue}from"yaml";import{z as q}from"zod";var Dl=58888,Vp=30*60*1e3,Wn=new ke("--api-key <key>","API key for authentication. If not supplied, attempts to read the MOMENTIC_API_KEY env var."),Vn=new ke("--server <server>","Momentic server to use. Leave unchanged unless using Momentic on-premise."),no=new ke("-y, --yes","Skip all confirmation prompts.").env("CI"),qp=new ke("-w, --wait","Wait for tests to finish running before exiting. Only applicable when running tests remotely").implies({remote:!0}),Kp=new ke("--wait-timeout <waitTimeout>",`The maximum number of seconds to wait for tests to complete. Only applicable when the --wait option is specified. Defaults to ${Vp/1e3} seconds.`),Fl=new ke("--custom-headers <customHeaders...>","Specify custom headers in the form HEADER=VALUE to be sent with each request during the test. Multiple entries can be provided."),av=new ke("--reporter <reporter>","Output report files in a standardized format to a local directory. See the --reporter-dir flag for information on the output directory.").choices(Object.values(Wi)),sv=new ke("--reporter-dir <reporterDir>","Output directory to store report files. Relative paths are resolved relative to the project root, which is defined by the detected momentic.config.yaml. Defaults to 'reports' if unset."),Yp=new ke("--output-dir <outputDir>","[Alpha] Output directory to store run artifacts such as screenshots, results, and logs. Relative paths are resolved relative to the project root, which is defined by the detected momentic.config.yaml. This directory will be cleared at the start of execution."),lv=new ke("--upload-results","Upload test results to Momentic Cloud. By default, this option is disabled."),cv=new ke("--include <includePatterns...>","Only include tests that match the provided regex patterns. Multiple patterns can be provided. The patterns will be matched against the test file paths and the pattern only needs to match a part of the path for the test to be included."),dv=new ke("--exclude <excludePatterns...>","The inverted version of --include: a test that matches any of the provided exclusion patterns will be excluded from running."),Jp=new ke("--pixel-ratio <pixelRatio>","Device pixel ratio of your screen or monitor. Mac OS Retina displays and machines marketed as 'HiDPI' should set this to 2. Visit https://www.mydevice.io/ to find your device's pixel ratio."),pv=new ke("--port <port>",`Port to run the app on. Defaults to ${Dl}.`),Xp=new ke("--input-csv <inputCsv>","Path to a CSV file on disk where each row represents a set of inputs that will be made available to all tests that are ran. The first line of the CSV must be the input names."),Ul=new ke("--env <env>","Name of the environment to use when running tests."),Bl=new ke("--url-override <urlOverride>","Fully qualified url (e.g. https://www.google.com) to start all tests from. Overrides any default starting url set from the test or environment."),uv=new ke("--shard-index <shardIndex>","The index of the shard to run tests for. Defaults to 1.").default(1).argParser(n=>parseInt(n,10)),kn=new ke("-c, --config <configPath>","Absolute or relative path to a Momentic configuration file (*.momentic.config.yaml)"),Zp=new ke("-f, --filter <filter>","Run tests within the project that has a name equal to the filter provided. This option cannot be used together with file path or directory arguments, but substring matches are allowed."),mv=new ke("--shard-count <shardCount>","The number of shards that tests are being run on. Defaults to 1.").default(1).argParser(n=>parseInt(n,10)),hv=new ke("--fix","Attempt to fix any issues found. This option will write changes to your local file system."),Qp=new ke("--save-cache","Always save updated step caches after successful test runs. By default, caches are not saved when running on the protected branches configured in the momentic.config.yaml.").env("CI"),eu=new ke("--disable-cache","Disable caching of test results. This will cause all tests to be re-run every time."),gv=new to("<tests...>",`One or more test paths to queue on Momentic Cloud.
|
|
3622
3622
|
|
|
3623
3623
|
A test path is a lowercased version of your test name where spaces are replaced with dashes: 'npx momentic pull hello-world'.`),fv=new to("<tests...>",`One or more test paths to import from Momentic Cloud.
|
|
3624
3624
|
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "momentic",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "momentic",
|
|
9
|
-
"version": "2.1.
|
|
9
|
+
"version": "2.1.1",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@actions/exec": "^1.1.1",
|
|
12
12
|
"@actions/io": "^1.1.3",
|
package/package.json
CHANGED
|
@@ -1021,4 +1021,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
1021
1021
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Wau(e,u){if(e){if(typeof e=="string")return eee(e,u);var t=Object.prototype.toString.call(e).slice(8,-1);if(t==="Object"&&e.constructor&&(t=e.constructor.name),t==="Map"||t==="Set")return Array.from(e);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return eee(e,u)}}function rVa(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function iVa(e){if(Array.isArray(e))return eee(e)}function eee(e,u){(u==null||u>e.length)&&(u=e.length);for(var t=0,a=new Array(u);t<u;t++)a[t]=e[t];return a}var oVa={fontWeight:"bold",paintOrder:"stroke fill",fontSize:".75rem",stroke:"#FFF",fill:"black",pointerEvents:"none"};function Jau(e){if(!e.children||e.children.length===0)return 1;var u=e.children.map(function(t){return Jau(t)});return 1+Math.max.apply(Math,aVa(u))}var sVa=function(u){var t=u.className,a=u.data,n=u.children,r=u.width,i=u.height,o=u.padding,s=o===void 0?2:o,l=u.dataKey,c=l===void 0?"value":l,d=u.ringPadding,E=d===void 0?2:d,h=u.innerRadius,f=h===void 0?50:h,m=u.fill,p=m===void 0?"#333":m,D=u.stroke,g=D===void 0?"#FFF":D,v=u.textOptions,C=v===void 0?oVa:v,y=u.outerRadius,b=y===void 0?Math.min(r,i)/2:y,F=u.cx,S=F===void 0?r/2:F,M=u.cy,T=M===void 0?i/2:M,O=u.startAngle,A=O===void 0?0:O,w=u.endAngle,z=w===void 0?360:w,_=u.onClick,j=u.onMouseEnter,$=u.onMouseLeave,P=k.useState(!1),L=yye(P,2),V=L[0],G=L[1],N=k.useState(null),K=yye(N,2),U=K[0],W=K[1],I=g7([0,a[c]],[0,z]),J=Jau(a),Y=(b-f)/J,ae=[],ue=new Map([]);function le(ye,Ge){j&&j(ye,Ge),W(ye),G(!0)}function Z(ye,Ge){$&&$(ye,Ge),W(null),G(!1)}function de(ye){_&&_(ye)}function pe(ye,Ge){var Te=Ge.radius,q=Ge.innerR,X=Ge.initialAngle,ie=Ge.childColor,Q=X;ye&&ye.forEach(function(te){var se,_e,Le=I(te[c]),Ye=Q,Je=(se=(_e=te==null?void 0:te.fill)!==null&&_e!==void 0?_e:ie)!==null&&se!==void 0?se:p,tu=_a(0,0,q+Te/2,-(Ye+Le-Le/2)),au=tu.x,fu=tu.y;Q+=Le,ae.push(R.createElement("g",{"aria-label":te.name,tabIndex:0},R.createElement(n$,{onClick:function(){return de(te)},onMouseEnter:function(ra){return le(te,ra)},onMouseLeave:function(ra){return Z(te,ra)},fill:Je,stroke:g,strokeWidth:s,startAngle:Ye,endAngle:Ye+Le,innerRadius:q,outerRadius:q+Te,cx:S,cy:T}),R.createElement(e3,XX({},C,{alignmentBaseline:"middle",textAnchor:"middle",x:au+S,y:T-fu}),te[c])));var tt=_a(S,T,q+Te/2,Ye),Rt=tt.x,La=tt.y;return ue.set(te.name,{x:Rt,y:La}),pe(te.children,{radius:Te,innerR:q+Te+E,initialAngle:Ye,childColor:Je})})}pe(a.children,{radius:Y,innerR:f,initialAngle:A});var Ce=ut("recharts-sunburst",t);function ee(){var ye=K0([n],Gr);if(!ye||!U)return null;var Ge={x:0,y:0,width:r,height:i};return R.cloneElement(ye,{viewBox:Ge,coordinate:ue.get(U.name),payload:[U],active:V})}return R.createElement("div",{className:ut("recharts-wrapper",t),style:{position:"relative",width:r,height:i},role:"region"},R.createElement(tD,{width:r,height:i},n,R.createElement(Wu,{className:Ce},ae)),ee())};function Q7(e){"@babel/helpers - typeof";return Q7=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(u){return typeof u}:function(u){return u&&typeof Symbol=="function"&&u.constructor===Symbol&&u!==Symbol.prototype?"symbol":typeof u},Q7(e)}function uee(){return uee=Object.assign?Object.assign.bind():function(e){for(var u=1;u<arguments.length;u++){var t=arguments[u];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},uee.apply(this,arguments)}function bye(e,u){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);u&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,a)}return t}function BG(e){for(var u=1;u<arguments.length;u++){var t=arguments[u]!=null?arguments[u]:{};u%2?bye(Object(t),!0).forEach(function(a){lVa(e,a,t[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):bye(Object(t)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(t,a))})}return e}function lVa(e,u,t){return u=cVa(u),u in e?Object.defineProperty(e,u,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[u]=t,e}function cVa(e){var u=dVa(e,"string");return Q7(u)=="symbol"?u:String(u)}function dVa(e,u){if(Q7(e)!="object"||!e)return e;var t=e[Symbol.toPrimitive];if(t!==void 0){var a=t.call(e,u||"default");if(Q7(a)!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(u==="string"?String:Number)(e)}function EVa(e,u){var t="".concat(u.x||e.x),a=parseInt(t,10),n="".concat(u.y||e.y),r=parseInt(n,10),i="".concat((u==null?void 0:u.height)||(e==null?void 0:e.height)),o=parseInt(i,10);return BG(BG(BG({},u),Vtu(e)),{},{height:o,x:a,y:r})}function hVa(e){return R.createElement(E2,uee({shapeType:"trapezoid",propTransformer:EVa},e))}var tee;function kye(e,u){return DVa(e)||pVa(e,u)||mVa(e,u)||fVa()}function fVa(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
1022
1022
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function mVa(e,u){if(e){if(typeof e=="string")return Fye(e,u);var t=Object.prototype.toString.call(e).slice(8,-1);if(t==="Object"&&e.constructor&&(t=e.constructor.name),t==="Map"||t==="Set")return Array.from(e);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Fye(e,u)}}function Fye(e,u){(u==null||u>e.length)&&(u=e.length);for(var t=0,a=new Array(u);t<u;t++)a[t]=e[t];return a}function pVa(e,u){var t=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(t!=null){var a,n,r,i,o=[],s=!0,l=!1;try{if(r=(t=t.call(e)).next,u===0){if(Object(t)!==t)return;s=!1}else for(;!(s=(a=r.call(t)).done)&&(o.push(a.value),o.length!==u);s=!0);}catch(c){l=!0,n=c}finally{try{if(!s&&t.return!=null&&(i=t.return(),Object(i)!==i))return}finally{if(l)throw n}}return o}}function DVa(e){if(Array.isArray(e))return e}function A2(e){"@babel/helpers - typeof";return A2=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(u){return typeof u}:function(u){return u&&typeof Symbol=="function"&&u.constructor===Symbol&&u!==Symbol.prototype?"symbol":typeof u},A2(e)}function GP(){return GP=Object.assign?Object.assign.bind():function(e){for(var u=1;u<arguments.length;u++){var t=arguments[u];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},GP.apply(this,arguments)}function Aye(e,u){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);u&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,a)}return t}function mr(e){for(var u=1;u<arguments.length;u++){var t=arguments[u]!=null?arguments[u]:{};u%2?Aye(Object(t),!0).forEach(function(a){BE(e,a,t[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):Aye(Object(t)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(t,a))})}return e}function xVa(e,u){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}function Bye(e,u){for(var t=0;t<u.length;t++){var a=u[t];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,Zau(a.key),a)}}function gVa(e,u,t){return u&&Bye(e.prototype,u),t&&Bye(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function vVa(e,u,t){return u=UP(u),CVa(e,qau()?Reflect.construct(u,t||[],UP(e).constructor):u.apply(e,t))}function CVa(e,u){if(u&&(A2(u)==="object"||typeof u=="function"))return u;if(u!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return mO(e)}function qau(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(qau=function(){return!!e})()}function UP(e){return UP=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},UP(e)}function mO(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function yVa(e,u){if(typeof u!="function"&&u!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(u&&u.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),u&&aee(e,u)}function aee(e,u){return aee=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(a,n){return a.__proto__=n,a},aee(e,u)}function BE(e,u,t){return u=Zau(u),u in e?Object.defineProperty(e,u,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[u]=t,e}function Zau(e){var u=bVa(e,"string");return A2(u)=="symbol"?u:String(u)}function bVa(e,u){if(A2(e)!="object"||!e)return e;var t=e[Symbol.toPrimitive];if(t!==void 0){var a=t.call(e,u||"default");if(A2(a)!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(u==="string"?String:Number)(e)}var Dm=function(e){yVa(u,e);function u(){var t;xVa(this,u);for(var a=arguments.length,n=new Array(a),r=0;r<a;r++)n[r]=arguments[r];return t=vVa(this,u,[].concat(n)),BE(mO(t),"state",{isAnimationFinished:!1}),BE(mO(t),"handleAnimationEnd",function(){var i=t.props.onAnimationEnd;t.setState({isAnimationFinished:!0}),Hu(i)&&i()}),BE(mO(t),"handleAnimationStart",function(){var i=t.props.onAnimationStart;t.setState({isAnimationFinished:!1}),Hu(i)&&i()}),t}return gVa(u,[{key:"isActiveIndex",value:function(a){var n=this.props.activeIndex;return Array.isArray(n)?n.indexOf(a)!==-1:a===n}},{key:"renderTrapezoidsStatically",value:function(a){var n=this,r=this.props,i=r.shape,o=r.activeShape;return a.map(function(s,l){var c=n.isActiveIndex(l)?o:i,d=mr(mr({},s),{},{isActive:n.isActiveIndex(l),stroke:s.stroke});return R.createElement(Wu,GP({className:"recharts-funnel-trapezoid"},L1(n.props,s,l),{key:"trapezoid-".concat(s==null?void 0:s.x,"-").concat(s==null?void 0:s.y,"-").concat(s==null?void 0:s.name,"-").concat(s==null?void 0:s.value),role:"img"}),R.createElement(hVa,GP({option:c},d)))})}},{key:"renderTrapezoidsWithAnimation",value:function(){var a=this,n=this.props,r=n.trapezoids,i=n.isAnimationActive,o=n.animationBegin,s=n.animationDuration,l=n.animationEasing,c=n.animationId,d=this.state.prevTrapezoids;return R.createElement(_i,{begin:o,duration:s,isActive:i,easing:l,from:{t:0},to:{t:1},key:"funnel-".concat(c),onAnimationStart:this.handleAnimationStart,onAnimationEnd:this.handleAnimationEnd},function(E){var h=E.t,f=r.map(function(m,p){var D=d&&d[p];if(D){var g=Qt(D.x,m.x),v=Qt(D.y,m.y),C=Qt(D.upperWidth,m.upperWidth),y=Qt(D.lowerWidth,m.lowerWidth),b=Qt(D.height,m.height);return mr(mr({},m),{},{x:g(h),y:v(h),upperWidth:C(h),lowerWidth:y(h),height:b(h)})}var F=Qt(m.x+m.upperWidth/2,m.x),S=Qt(m.y+m.height/2,m.y),M=Qt(0,m.upperWidth),T=Qt(0,m.lowerWidth),O=Qt(0,m.height);return mr(mr({},m),{},{x:F(h),y:S(h),upperWidth:M(h),lowerWidth:T(h),height:O(h)})});return R.createElement(Wu,null,a.renderTrapezoidsStatically(f))})}},{key:"renderTrapezoids",value:function(){var a=this.props,n=a.trapezoids,r=a.isAnimationActive,i=this.state.prevTrapezoids;return r&&n&&n.length&&(!i||!$1(i,n))?this.renderTrapezoidsWithAnimation():this.renderTrapezoidsStatically(n)}},{key:"render",value:function(){var a=this.props,n=a.hide,r=a.trapezoids,i=a.className,o=a.isAnimationActive,s=this.state.isAnimationFinished;if(n||!r||!r.length)return null;var l=ut("recharts-trapezoids",i);return R.createElement(Wu,{className:l},this.renderTrapezoids(),(!o||s)&&Jo.renderCallByParent(this.props,r))}}],[{key:"getDerivedStateFromProps",value:function(a,n){return a.animationId!==n.prevAnimationId?{prevAnimationId:a.animationId,curTrapezoids:a.trapezoids,prevTrapezoids:n.curTrapezoids}:a.trapezoids!==n.curTrapezoids?{curTrapezoids:a.trapezoids}:null}}]),u}(k.PureComponent);tee=Dm;BE(Dm,"displayName","Funnel");BE(Dm,"defaultProps",{stroke:"#fff",fill:"#808080",legendType:"rect",labelLine:!0,hide:!1,isAnimationActive:!Zr.isSsr,animationBegin:400,animationDuration:1500,animationEasing:"ease",nameKey:"name",lastShapeType:"triangle"});BE(Dm,"getRealFunnelData",function(e){var u=e.props,t=u.data,a=u.children,n=gu(e.props,!1),r=Si(a,VD);return t&&t.length?t.map(function(i,o){return mr(mr(mr({payload:i},n),i),r&&r[o]&&r[o].props)}):r&&r.length?r.map(function(i){return mr(mr({},n),i.props)}):[]});BE(Dm,"getRealWidthHeight",function(e,u){var t=e.props.width,a=u.width,n=u.height,r=u.left,i=u.right,o=u.top,s=u.bottom,l=n,c=a;return QXe(t)?c=t:MC(t)&&(c=c*parseFloat(t)/100),{realWidth:c-r-i-50,realHeight:l-s-o,offsetX:(a-c)/2,offsetY:(n-l)/2}});BE(Dm,"getComposedData",function(e){var u=e.item,t=e.offset,a=tee.getRealFunnelData(u),n=u.props,r=n.dataKey,i=n.nameKey,o=n.tooltipType,s=n.lastShapeType,l=n.reversed,c=t.left,d=t.top,E=tee.getRealWidthHeight(u,t),h=E.realHeight,f=E.realWidth,m=E.offsetX,p=E.offsetY,D=Math.max.apply(null,a.map(function(b){return ua(b,r,0)})),g=a.length,v=h/g,C={x:t.left,y:t.top,width:t.width,height:t.height},y=a.map(function(b,F){var S=ua(b,r,0),M=ua(b,i,F),T=S,O;if(F!==g-1){if(O=ua(a[F+1],r,0),O instanceof Array){var A=O,w=kye(A,1);O=w[0]}}else if(S instanceof Array&&S.length===2){var z=kye(S,2);T=z[0],O=z[1]}else s==="rectangle"?O=T:O=0;var _=(D-T)*f/(2*D)+d+25+m,j=v*F+c+p,$=T/D*f,P=O/D*f,L=[{name:M,value:T,payload:b,dataKey:r,type:o}],V={x:_+$/2,y:j+v/2};return mr(mr({x:_,y:j,width:Math.max($,P),upperWidth:$,lowerWidth:P,height:v,name:M,val:T,tooltipPayload:L,tooltipPosition:V},Iau(b,"width")),{},{payload:b,parentViewBox:C,labelViewBox:{x:_+($-P)/4,y:j,width:Math.abs($-P)/2+Math.min($,P),height:v}})});return l&&(y=y.map(function(b,F){var S=b.y-F*v+(g-1-F)*v;return mr(mr({},b),{},{upperWidth:b.lowerWidth,lowerWidth:b.upperWidth,x:b.x-(b.lowerWidth-b.upperWidth)/2,y:b.y-F*v+(g-1-F)*v,tooltipPosition:mr(mr({},b.tooltipPosition),{},{y:S+v/2}),labelViewBox:mr(mr({},b.labelViewBox),{},{y:S})})})),{trapezoids:y,data:a}});var kVa=F3({chartName:"FunnelChart",GraphicalChild:Dm,validateTooltipEventTypes:["item"],defaultTooltipEventType:"item",axisComponents:[],defaultProps:{layout:"centric"}});const FVa=Object.freeze(Object.defineProperty({__proto__:null,Area:k3,AreaChart:QHa,Bar:fm,BarChart:ELa,Brush:rD,CartesianAxis:QD,CartesianGrid:gau,Cell:VD,ComposedChart:XHa,Cross:Mtu,Curve:FE,Customized:ktu,DefaultLegendContent:VL,DefaultTooltipContent:tuu,Dot:JD,ErrorBar:WD,Funnel:Dm,FunnelChart:kVa,Global:Zr,Label:gr,LabelList:Jo,Layer:Wu,Legend:t2,Line:WC,LineChart:dLa,Pie:b3,PieChart:hLa,PolarAngleAxis:ZD,PolarGrid:Ptu,PolarRadiusAxis:qD,Polygon:r$,Radar:XB,RadarChart:qHa,RadialBar:e8,RadialBarChart:YHa,Rectangle:VC,ReferenceArea:UC,ReferenceDot:GC,ReferenceLine:d$,ResponsiveContainer:h9a,Sankey:ise,Scatter:qC,ScatterChart:ZHa,Sector:n$,SunburstChart:sVa,Surface:tD,Symbols:WB,Text:e3,Tooltip:Gr,Trapezoid:Htu,Treemap:rse,XAxis:mm,YAxis:pm,ZAxis:JC},Symbol.toStringTag,{value:"Module"})),AVa=Ol(FVa);Object.defineProperty(fqe,"__esModule",{value:!0});var Kt=k,BVa=LR,SVa=j4a,Og=Bda,wVa=IEa,Qau=K3a,zVa=U3a,Yau=afa,nee=A0,OVa=nfa,_Va=Cfa,TVa=yfa,MVa=rma,PVa=b5a,jVa=k5a,Tx=AVa;function ZC(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var ne=ZC(Kt),Oe=ZC(BVa),Uc=ZC(SVa),NVa=ZC(wVa),WP=ZC(OVa),RVa=ZC(TVa);function ree(e,u){(u==null||u>e.length)&&(u=e.length);for(var t=0,a=Array(u);t<u;t++)a[t]=e[t];return a}function LVa(e){if(Array.isArray(e))return e}function $Va(e){if(Array.isArray(e))return ree(e)}function lE(e,u,t){return(u=WVa(u))in e?Object.defineProperty(e,u,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[u]=t,e}function I1(){return I1=Object.assign?Object.assign.bind():function(e){for(var u=1;u<arguments.length;u++){var t=arguments[u];for(var a in t)({}).hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},I1.apply(null,arguments)}function IVa(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function KVa(e,u){var t=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(t!=null){var a,n,r,i,o=[],s=!0,l=!1;try{if(r=(t=t.call(e)).next,u===0){if(Object(t)!==t)return;s=!1}else for(;!(s=(a=r.call(t)).done)&&(o.push(a.value),o.length!==u);s=!0);}catch(c){l=!0,n=c}finally{try{if(!s&&t.return!=null&&(i=t.return(),Object(i)!==i))return}finally{if(l)throw n}}return o}}function HVa(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
1023
1023
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function VVa(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
1024
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Sye(e,u){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);u&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,a)}return t}function Qi(e){for(var u=1;u<arguments.length;u++){var t=arguments[u]!=null?arguments[u]:{};u%2?Sye(Object(t),!0).forEach(function(a){lE(e,a,t[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):Sye(Object(t)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(t,a))})}return e}function ose(e,u){if(e==null)return{};var t,a,n=GVa(e,u);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)t=r[a],u.includes(t)||{}.propertyIsEnumerable.call(e,t)&&(n[t]=e[t])}return n}function GVa(e,u){if(e==null)return{};var t={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(u.includes(a))continue;t[a]=e[a]}return t}function Yr(e,u){return LVa(e)||KVa(e,u)||Xau(e,u)||HVa()}function iee(e){return $Va(e)||IVa(e)||Xau(e)||VVa()}function UVa(e,u){if(typeof e!="object"||!e)return e;var t=e[Symbol.toPrimitive];if(t!==void 0){var a=t.call(e,u||"default");if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(u==="string"?String:Number)(e)}function WVa(e){var u=UVa(e,"string");return typeof u=="symbol"?u:u+""}function Xau(e,u){if(e){if(typeof e=="string")return ree(e,u);var t={}.toString.call(e).slice(8,-1);return t==="Object"&&e.constructor&&(t=e.constructor.name),t==="Map"||t==="Set"?Array.from(e):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?ree(e,u):void 0}}var oee=Object.freeze({file:Object.freeze({key:"filename",name:"Path"}),domain:Object.freeze({key:"domain",name:"Domain"}),status:Object.freeze({key:"status",name:"Status"}),method:Object.freeze({key:"method",name:"Method"}),type:Object.freeze({key:"type",name:"Type"}),size:Object.freeze({key:"size",name:"Size"}),time:Object.freeze({key:"time",name:"Time"}),waterfall:Object.freeze({key:"waterfall",name:"Waterfall"})}),JVa=Object.freeze({file:Object.freeze({key:"filename",name:"Path"}),domain:Object.freeze({key:"domain",name:"Domain"}),status:Object.freeze({key:"status",name:"Status"}),method:Object.freeze({key:"method",name:"Method"}),type:Object.freeze({key:"type",name:"Type"}),size:Object.freeze({key:"size",name:"Size"}),time:Object.freeze({key:"time",name:"Time"})}),qVa={file:Object.freeze({key:"filename",name:"Path"})},_g=Object.freeze({STATUS:"STATUS",TYPE:"TYPE",URL:"URL",BODY:"BODY"}),ZVa={name:null,value:null},QVa=[{name:"All",filterBy:ZVa},{name:"XHR",filterBy:{name:"type",value:["xhr","XHR","fetch"]}},{name:"JS",filterBy:{name:"type",value:["script","javascript","x-javascript","json"]}},{name:"CSS",filterBy:{name:"type",value:["stylesheet","css"]}},{name:"Img",filterBy:{name:"type",value:["image","png","jpeg","svg+xml","gif"]}},{name:"Media",filterBy:{name:"type",value:["media"]}},{name:"Font",filterBy:{name:"type",value:["font","woff2"]}},{name:"Doc",filterBy:{name:"type",value:["document","html"]}},{name:"WS",filterBy:{name:"type",value:["websocket"]}},{name:"Manifest",filterBy:{name:"type",value:["manifest.json"]}}],enu={name:"All",value:null},YVa=[enu,{name:"1xx",value:"1"},{name:"2xx",value:"2"},{name:"3xx",value:"3"},{name:"4xx",value:"4"},{name:"5xx",value:"5"}],XVa="Please wait, fetching file is in progress.",Tg={queueing:{dataKey:["_blocked_queueing","_queued"],fill:"#ccc",name:"Queueing"},blocked:{dataKey:"blocked",fill:"#A1000C",name:"Stalled"},dns:{dataKey:"dns",fill:"#DCC9E5",name:"DNS Lookup"},ssl:{dataKey:"ssl",fill:"#E78057",name:"SSL"},connect:{dataKey:"connect",fill:"#DB8553",name:"Initial Connection"},send:{dataKey:"send",fill:"#3C96C4",name:"Request Sent"},wait:{dataKey:"wait",fill:"#7CA0BF",name:"Waiting (TTFB)"},receive:{dataKey:"receive",fill:"#65B955",name:"Content Downloaded"}},eGa={height:"15",viewBox:"0 0 200 20",version:"1.1",preserveAspectRatio:"xMinYMin meet"},uGa={height:30,y:0},tGa="network-viewer-table-row-",aGa=Object.freeze({url:Object.freeze({key:"url",name:"Request URL"}),method:Object.freeze({key:"method",name:"Request Method"}),status:Object.freeze({key:"status",name:"Status Code"}),serverIPAddress:Object.freeze({key:"serverIPAddress",name:"Remote Address"})}),wye=Object.freeze({general:Object.freeze({key:"general",name:"General"}),requestHeaders:Object.freeze({key:"requestHeaders",name:"Request Headers"}),responseHeaders:Object.freeze({key:"responseHeaders",name:"Response Headers"}),requestPayload:Object.freeze({key:"requestPayload",name:"Request Payload"}),queryString:Object.freeze({key:"queryString",name:"Query String Parameters"}),formData:Object.freeze({key:"formData",name:"Form Data"})}),unu=2,sse={NoDataPlaceholder:void 0,enableAutoScroll:!1,showExportHar:!1,showImportHar:!0,showPauseResume:!1,showReset:!0,showTimeline:!1,showWaterfall:!0},nGa=Object.freeze({encode:Object.freeze({true:"URL encoded",false:"decoded"}),parse:Object.freeze({true:"source",false:"parsed"})}),tnu=Object.freeze({log:{version:"",creator:{name:"",version:""},entries:[],pages:[]}}),rGa=32,zye=24,SG=function(u){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,a=Math.pow(10,t);return Math.round(u*a)/a},Mg=function(u){return u<1024?"".concat(SG(u)," B"):u<Math.pow(1024,2)?"".concat(SG(u/1024)," KB"):"".concat(SG(u/Math.pow(1024,2))," MB")},nF=function(u){return u<1e3?"".concat(Math.round(u),"ms"):u<6e4?"".concat(Math.ceil(u/10)/100,"s"):"".concat(Math.ceil(u/6e4)*100/100,"m")},Oye=function(u){try{var t=new URL(u),a=t.pathname.split("/"),n=(a[a.length-1].trim()?a[a.length-1]:a[a.length-2])+t.search;return{domain:t.host,filename:n||t.href,url:t.href}}catch{return{domain:"N/A",filename:u??"N/A",url:u}}},iGa=function(u){var t=u.bodySize,a=u._transferSize,n=u.headers,r=u.content;if(r&&r.size)return Mg(r.size);if(a>-1)return Mg(a);if(t>-1)return Mg(t);var i=n.find(function(o){var s=o.name;return["content-length","Content-Length"].includes(s)});return i?Mg(i.value):0},oGa=function(u){if(u._resourceType)return u._resourceType.toLowerCase();var t=u.response.headers,a=t.find(function(r){var i=r.name;return["content-type","Content-Type"].includes(i)});if(!a)return"";var n=a.value.split(";")[0].split("/");return n.length>1?n[1]:n[0]},sGa=function(u,t){var a=u.startedDateTime,n=u.timings;return Qi(Qi({},n),{},{startTime:new Date(a).getTime()-new Date(t).getTime()})},lGa=function(u){var t=u.mimeType,a=u.text;if(t==="application/json"){var n;try{n=JSON.stringify(JSON.parse(a),null,2)}catch{n=a}return n}return a},_ye=function(u){var t=u.response,a=t.bodySize,n=t._transferSize;return n>-1?n:a>-1?a:-1},Tye=function(u){var t=u.response,a=t.bodySize,n=t._transferSize,r=t.content.size;return r>0?r:n>-1?n:a>-1?a:-1},cGa=function(u){var t=u.map(function(a){var n=a.timings;return Object.values(n).reduce(function(r,i){return r+(i>-1?i:0)},0)});return Math.max.apply(Math,iee(t))},Mye=function(u,t){return u.name<t.name?-1:u.name>t.name?1:0},dGa=function(u){var t=iee(u.request.headers),a=iee(u.response.headers);return{request:t.sort(Mye),response:a.sort(Mye),queryString:u.request.queryString,postData:u.request.postData}},Pye=function(u){var t=u.startedDateTime,a=u.time,n=u.timings;return new Date(t).getTime()+a+((n==null?void 0:n._blocked_queueing)||(n==null?void 0:n._queued)||0)},EGa=function(u){var t=u.response;return t&&t._error?t._error:null},hGa=function(u){if(!u.length)return{totalNetworkTime:0,data:[],totalRequests:0,totalTransferredSize:0,totalUncompressedSize:0,finishTime:0};var t=u[0].startedDateTime,a=Pye(u[u.length-1]),n=0,r=0,i=u.filter(function(c){return c.response&&Oye(c.request.url).domain}).map(function(c,d){n+=_ye(c),r+=Tye(c);var E=Pye(c);return a=a<E?E:a,Qi({index:d,status:c.response.status,method:c.request.method,size:iGa(c.response),startedDateTime:new Date(c.startedDateTime).getTime(),type:oGa(c),timings:sGa(c,t),body:lGa(c.response.content),time:c.time,serverIPAddress:c.serverIPAddress||":80",headers:dGa(c),transferredSize:_ye(c),uncompressedSize:Tye(c),error:EGa(c)},Oye(c.request.url))}),o=i.length,s=a-new Date(t).getTime(),l=cGa(i);return{totalNetworkTime:s,data:i,totalRequests:o,totalTransferredSize:n,totalUncompressedSize:r,finishTime:l}},jye=function(u,t){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,n=a?1:-1;return u.sort(function(r,i){var o=r[t],s=i[t];return o<s?-n:o>s?n:0})},fGa=function(u,t,a){switch(u){case _g.STATUS:return a.status&&a.status.toString().startsWith(t.value);case _g.TYPE:return a.type&&t.value.includes(a.type);case _g.URL:return a.url&&a.url.includes(t.value);case _g.BODY:return a.body&&a.body.includes(t.value);default:return!0}},Vw=function(u){var t=u.data,a=u.search,n=a===void 0?{}:a,r=u.statusFilter,i=r===void 0?{}:r,o=u.typeFilter,s=o===void 0?{}:o,l=n.value&&n.value.trim();if(!l&&!i.value&&!s.value)return t;var c=[{option:_g.STATUS,filter:i},{option:_g.TYPE,filter:s},{option:n.name,filter:{value:l}}];return t.filter(function(d){return c.every(function(E){var h=E.option,f=E.filter;return!f.value||fGa(h,f,d)})})},mGa=function(){var u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return function(t,a){return Object.keys(u).reduce(function(n,r){return Qi(Qi({},n),{},lE({},r,u[r](t,a)))},{})}},Wb=function(u){return u&&(u>1e3?"".concat((u/1e3).toFixed(2)," s"):"".concat(u.toFixed(2)," ms"))},pGa=function(u){return Object.keys(u).filter(function(t){return!["_blocked_queueing","_queued","startTime"].includes(t)}).reduce(function(t,a){return t+u[a]},0)},DGa=function(u){return Qi({queuedAt:Wb(u.startTime),startedAt:Wb(u.startTime+(u._blocked_queueing||u._queued||0)),totalTime:Wb(pGa(u))},Object.keys(u).reduce(function(t,a){return t[a]=Wb(u[a]),t},{}))},xGa=function(u){var t=u.status,a=u.error;return t===0&&!a?"pending":t>=400||a?"error":"info"},gGa=function(u,t,a){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};switch(u){case"time":return n.status===0?"Pending":t===0&&!n.error?"-":Wb(t);case"status":return n.error?"(failed)":t===0?"Pending":t;default:return a?"".concat(t," ").concat(a):t}},anu=function(u,t,a,n){var r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:null,i=u.startTime/t*100,o=0,s=0,l=[];return Object.keys(Tg).forEach(function(c){var d=Tg[c],E=Array.isArray(d.dataKey)?d.dataKey.find(function(f){return u[f]}):d.dataKey,h=u[E];h<=0||(o+=s||i,s=h>0?h/t*100:0,l.push({width:"".concat(s,"%"),y:n?n%10*(unu+1)+40:r,x:"".concat(o,"%"),fill:d.fill,key:c}))}),l},vGa=function(u,t){return u.reduce(function(a,n){var r=a.value,i=a.index,o=n.startedDateTime,s=n.index;return Math.abs(o-t)<Math.abs(r-t)?{value:o,index:s}:{value:r,index:i}},{value:0,index:0}).index},CGa=function(u,t){var a=u.reverse().findIndex(function(n){var r=n.startedDateTime;return r<=t});return a<0?0:u.size-(a+1)},yGa=function(u,t){return u.findIndex(function(a){var n=a.startedDateTime;return n>=t})},bGa=function(u){var t=u.data,a=u.timestamp,n=u.position;switch(n){case"before":return CGa(t,a);case"after":return yGa(t,a);case"near":default:return vGa(t,a)}},kGa=function(u){return u.reduce(function(t,a){var n=t.DOMContentLoaded,r=t.onLoad,i=a.pageTimings;return{DOMContentLoaded:n+i.onContentLoad,onLoad:r+i.onLoad}},{DOMContentLoaded:0,onLoad:0})},wG=function(u){return u.reduce(function(t,a){return t.totalTransferredSize+=a.transferredSize,t.totalUncompressedSize+=a.uncompressedSize,t},{totalTransferredSize:0,totalUncompressedSize:0,totalRequests:u.size})},FGa=function(u){var t;try{t=JSON.stringify(JSON.parse(u),null,2)}catch{t=u}return t},nnu=function(u,t){return u?qVa:t?oee:JVa},rnu="UPDATE_DATA",inu="UPDATE_SEARCH",onu="UPDATE_SORT",snu="UPDATE_STATUS_FILTER",lnu="UPDATE_TYPE_FILTER",cnu="UPDATE_ERROR_MESSAGE",dnu="UPDATE_SCROLL_TO_INDEX",Enu="SELECT_REQUEST",hnu="SET_TABLE_HEADER_WIDTH",C6={REQUEST:"FETCH_FILE_REQUEST",SUCCESS:"FETCH_FILE_SUCCESS",FAILURE:"FETCH_FILE_FAILURE"},fnu="RESET",see=new Og.Map({rawData:tnu,data:new Og.List,actualData:new Og.List,totalNetworkTime:null,dataSummary:new Og.Map,sort:{key:"startedDateTime",isAsc:!0},search:{name:"URL",value:""},statusFilter:enu,typeFilter:{name:null,value:null},error:null,loading:!1,scrollToIndex:null,selectedReqIndex:null,showReqDetail:!1,reqDetail:null,tableHeaderWidth:"100%",numberOfNewEntries:0}),AGa=function(){var u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:see,t=arguments.length>1?arguments[1]:void 0,a=t.type,n=t.payload;switch(a){case rnu:return u.withMutations(function(r){var i=hGa(n.log.entries),o=i.data,s=i.totalNetworkTime,l=i.totalRequests,c=i.totalTransferredSize,d=i.totalUncompressedSize,E=i.finishTime,h=u.get("sort"),f=new Og.List(jye(o,h.key,h.isAsc)),m=Vw({data:f,statusFilter:u.get("statusFilter"),typeFilter:u.get("typeFilter"),search:u.get("search")}),p=u.get("data"),D=m.size-p.size;r.set("error",null).set("rawData",n).set("data",m).set("actualData",f).set("numberOfNewEntries",D).set("totalNetworkTime",s).set("dataSummary",new Og.Map({totalRequests:l,totalTransferredSize:c,totalUncompressedSize:d,finishTime:E,timings:kGa(n.log.pages),finish:E}))});case inu:return u.withMutations(function(r){var i=Vw({data:u.get("actualData"),statusFilter:u.get("statusFilter"),typeFilter:u.get("typeFilter"),search:n}),o=wG(i);r.set("search",n).set("data",i).setIn(["dataSummary","totalRequests"],o.totalRequests).setIn(["dataSummary","totalTransferredSize"],o.totalTransferredSize).setIn(["dataSummary","totalUncompressedSize"],o.totalUncompressedSize)});case snu:return u.withMutations(function(r){var i=Vw({data:u.get("actualData"),statusFilter:n,typeFilter:u.get("typeFilter"),search:u.get("search")}),o=wG(i);r.set("statusFilter",n).set("data",i).setIn(["dataSummary","totalRequests"],o.totalRequests).setIn(["dataSummary","totalTransferredSize"],o.totalTransferredSize).setIn(["dataSummary","totalUncompressedSize"],o.totalUncompressedSize)});case lnu:return u.withMutations(function(r){var i=Vw({data:u.get("actualData"),statusFilter:u.get("statusFilter"),typeFilter:n,search:u.get("search")}),o=wG(i);r.set("typeFilter",n).set("data",i).setIn(["dataSummary","totalRequests"],o.totalRequests).setIn(["dataSummary","totalTransferredSize"],o.totalTransferredSize).setIn(["dataSummary","totalUncompressedSize"],o.totalUncompressedSize)});case onu:return u.withMutations(function(r){r.set("sort",n).set("data",jye(u.get("data"),n.key,n.isAsc))});case C6.REQUEST:return u.withMutations(function(r){r.set("error",null).set("loading",!0)});case C6.SUCCESS:return u.withMutations(function(r){r.set("error",null).set("loading",!1)});case C6.FAILURE:case cnu:return u.withMutations(function(r){r.set("error",n).set("loading",!1)});case dnu:return u.withMutations(function(r){r.set("selectedReqIndex",n?n.index:null).set("reqDetail",n)});case Enu:return u.withMutations(function(r){r.set("selectedReqIndex",n?n.index:null).set("reqDetail",n).set("showReqDetail",!!n)});case hnu:return u.withMutations(function(r){r.set("tableHeaderWidth","".concat(n,"px"))});case fnu:return see;default:return u}},lse=function(u){return function(t){return u({type:rnu,payload:t})}},BGa=function(u){return function(t){return u({type:inu,payload:t})}},SGa=function(u){return function(t){return u({type:onu,payload:t})}},wGa=function(u){return function(t){return u({type:snu,payload:t})}},zGa=function(u){return function(t){return u({type:lnu,payload:t})}},OGa=function(u){return function(t){return u({type:C6.REQUEST,payload:t})}},_Ga=function(u){return function(t){return u({type:C6.SUCCESS,payload:t})}},TGa=function(u){return function(t){return u({type:C6.FAILURE,payload:t})}},MGa=function(u){return function(t){return u({type:cnu,payload:t})}},mnu=function(u){return function(t){return u({type:dnu,payload:t})}},PGa=function(u){return function(t){return u({type:Enu,payload:t})}},jGa=function(u){return function(t){return u({type:hnu,payload:t})}},NGa=function(u){return function(t){return u({type:fnu,payload:t})}},pnu=function(u){return function(t){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{withCredentials:!0};OGa(u)(),NVa.default.get(t,a).then(function(n){var r=n.data;r&&r.log&&lse(u)(r),_Ga(u)()}).catch(function(n){return TGa(u)({title:"Error while fetching file",description:n.message})})}},Dnu=ne.default.createContext(),Ns=function(){var u=Kt.useContext(Dnu);if(!u)throw new Error("useNetwork must be used within a NetworkProvider");var t=Yr(u,3),a=t[0],n=t[1],r=t[2],i=mGa({fetchFile:pnu,updateData:lse,updateSearch:BGa,updateSort:SGa,updateStatusFilter:wGa,updateTypeFilter:zGa,updateErrorMessage:MGa,selectRequest:PGa,setTableHeaderWidth:jGa,updateScrollToIndex:mnu,resetState:NGa})(n,a);return{state:a,dispatch:n,actions:i,callbacks:r}},cse=function(u){var t=u.data,a=u.file,n=u.fetchOptions,r=u.initialState,i=u.scrollTimeStamp,o=u.scrollRequestPosition,s=u.autoHighlightChange,l=u.onDataLoaded,c=u.onDataError,d=u.onPause,E=u.onResume,h=u.onReset,f=u.onRequestSelect,m=Kt.useReducer(AGa,r),p=Yr(m,2),D=p[0],g=p[1],v={onPause:d,onResume:E,onReset:h,onRequestSelect:f},C=Kt.useMemo(function(){return[D,g,v]},[D]),y=C[0].get("data"),b=C[0].get("showReqDetail"),F=C[0].get("actualData"),S=C[0].get("error");return Kt.useEffect(function(){t&&t.log&&t.log.entries&&lse(g)(t)},[t]),Kt.useEffect(function(){a&&pnu(g)(a,n)},[a]),Kt.useEffect(function(){F.size&&l&&l(F)},[F]),Kt.useEffect(function(){S&&c&&c(S)},[S]),Kt.useEffect(function(){var M=b?s:!0;if(i&&M){var T=bGa({data:y,timestamp:i,position:o});(T||T===0)&&mnu(g)(y.get(T))}},[i,F]),ne.default.createElement(Dnu.Provider,I1({value:C},u))};cse.propTypes={autoHighlightChange:Oe.default.bool,data:Oe.default.object,fetchOptions:Oe.default.object,file:Oe.default.string,initialState:Oe.default.object,onDataError:Oe.default.func,onDataLoaded:Oe.default.func,onPause:Oe.default.func,onRequestSelect:Oe.default.func,onReset:Oe.default.func,onResume:Oe.default.func,scrollRequestPosition:Oe.default.oneOf(["before","after","near"]),scrollTimeStamp:Oe.default.number};cse.defaultProps={autoHighlightChange:!1,data:null,fetchOptions:{withCredentials:!0},file:null,initialState:see,onDataError:null,onDataLoaded:null,onPause:null,onRequestSelect:null,onReset:null,onResume:null,scrollRequestPosition:"near",scrollTimeStamp:null};function t0(e,u){u===void 0&&(u={});var t=u.insertAt;if(!(!e||typeof document>"u")){var a=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",t==="top"&&a.firstChild?a.insertBefore(n,a.firstChild):a.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}var RGa=".Search-styles__search-input___dXaO4{background-color:#fff;border:1px solid #dbe0ea;border-radius:4px;color:#1e2127;font-size:14px;height:26px;min-width:10rem;padding:4px 8px;width:35%}.Search-styles__search-input___dXaO4:focus{background-color:#fff;border:1px solid #dbe0ea;outline:1px solid transparent}",LGa={brandBlue:"#0E75DD","search-input":"Search-styles__search-input___dXaO4"};t0(RGa);var dse=function(u){var t=u.name,a=u.value,n=Ns(),r=n.actions,i=function(s){var l=s.target;r.updateSearch({name:t,value:l.value})};return ne.default.createElement("input",{className:LGa["search-input"],name:"search",onChange:i,placeholder:"Search by URL",type:"text",value:a})};dse.propTypes={name:Oe.default.string.isRequired,value:Oe.default.string};dse.defaultProps={value:""};var $Ga=".FilterContainer-styles__filters-container___ObFHd{background:#f7f8fa;display:flex;flex-direction:column}.FilterContainer-styles__filters-container___ObFHd .FilterContainer-styles__filter-row___Dvkpa,.FilterContainer-styles__filters-container___ObFHd .FilterContainer-styles__type-filter-row___rbgN4{border-bottom:1px solid #dbe0ea;display:flex;padding:8px 12px;width:100%}.FilterContainer-styles__filters-container___ObFHd .FilterContainer-styles__type-filter-row___rbgN4{overflow-x:auto}.FilterContainer-styles__filters-container___ObFHd .FilterContainer-styles__filter-row___Dvkpa>:not(:last-child){margin-right:8px}.FilterContainer-styles__filters-container___ObFHd .FilterContainer-styles__type-filter-row___rbgN4>:not(:last-child){margin-right:4px}",pO={brandBlue:"#0E75DD","filters-container":"FilterContainer-styles__filters-container___ObFHd","filter-row":"FilterContainer-styles__filter-row___Dvkpa","type-filter-row":"FilterContainer-styles__type-filter-row___rbgN4"};t0($Ga);var IGa=".Button-styles__btn___kQ5AC{align-items:center;background:#fff;border:1px solid #dbe0ea;border-radius:4px;color:#6d7584;cursor:pointer;display:flex;font-size:14px;font-weight:600;justify-content:center;outline:none;padding:4px 8px;text-decoration:none}.Button-styles__btn___kQ5AC:hover{background:#e6f1fd}.Button-styles__btn___kQ5AC[disabled]{border-color:#d8dde3;color:#d8dde3;cursor:not-allowed}.Button-styles__btn___kQ5AC[disabled] svg{fill:#d8dde3}.Button-styles__btn___kQ5AC[disabled]:hover{border-color:#bac3ce}.Button-styles__btn___kQ5AC svg{fill:#1e2127}.Button-styles__btn___kQ5AC.Button-styles__text-variant___B5fDF{background:transparent;border:none}.Button-styles__btn___kQ5AC.Button-styles__text-variant___B5fDF:hover{background:#e6f1fd}.Button-styles__btn___kQ5AC.Button-styles__text-variant___B5fDF.Button-styles__active___WnULS{background:#0e75dd;color:#fff}",KGa={brandBlue:"#0E75DD",btn:"Button-styles__btn___kQ5AC","text-variant":"Button-styles__text-variant___B5fDF",active:"Button-styles__active___WnULS"};t0(IGa);var HGa=["children","className","disabled","href","variant"],VGa=Uc.default.bind(KGa),Bd=Kt.forwardRef(function(e,u){var t=e.children,a=e.className,n=e.disabled,r=e.href,i=e.variant,o=ose(e,HGa),s=VGa("btn",a,{"text-variant":i==="text"}),l=r&&!n?"a":"button";return ne.default.createElement(l,I1({ref:u,className:s,disabled:n,href:r},o),t)});Bd.propTypes={children:Oe.default.node.isRequired,className:Oe.default.any,disabled:Oe.default.bool,href:Oe.default.string,type:Oe.default.oneOf(["submit","reset","button","menu"]),variant:Oe.default.oneOf(["default","text"])};Bd.defaultProps={className:null,disabled:!1,href:null,type:"button",variant:"default"};var Ese=function(u){var t=u.className;return ne.default.createElement("svg",{className:t,height:"24",preserveAspectRatio:"xMidYMid",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("g",{clipPath:"url(#refresh_clip0)"},ne.default.createElement("path",{d:"M10.8803 -6.08475e-05C10.9939 -0.000234689 11.0668 0.12043 11.0135 0.220324L7.15162 7.46004C7.09684 7.56273 6.95057 7.56643 6.89026 7.46665L5.2476 4.74904C3.3255 6.36294 2.0772 8.75571 2.00218 11.4547C1.88511 15.6666 4.6625 19.2912 8.53796 20.4307C9.06765 20.5865 9.3703 21.1405 9.21394 21.6681C9.05759 22.1957 8.50144 22.4972 7.97175 22.3414C3.24816 20.9525 -0.139855 16.537 0.00294616 11.3995C0.0976061 7.99401 1.72376 4.99084 4.20545 3.02489L2.52185 0.239546C2.46154 0.13977 2.53326 0.0127309 2.65 0.012552L10.8803 -6.08475e-05Z"}),ne.default.createElement("path",{d:"M14.5072 1.73094C14.6489 1.1992 15.1964 0.882516 15.7302 1.0236C20.4906 2.28174 24 6.60218 24 11.7416C24 15.6586 21.9615 19.0998 18.8846 21.0722L20.5095 23.7603C20.5698 23.8601 20.4981 23.9871 20.3813 23.9873L12.151 23.9999C12.0374 24.0001 11.9645 23.8794 12.0178 23.7796L15.8797 16.5398C15.9345 16.4371 16.0808 16.4335 16.1411 16.5332L17.8526 19.3647C20.35 17.7411 22 14.9325 22 11.7416C22 7.52812 19.123 3.98143 15.2173 2.94919C14.6835 2.8081 14.3656 2.26267 14.5072 1.73094Z"})),ne.default.createElement("defs",null,ne.default.createElement("clipPath",{id:"refresh_clip0"},ne.default.createElement("rect",{height:"24",width:"24"}))))};Ese.propTypes={className:Oe.default.string};Ese.defaultProps={className:""};var GGa=".IconButton-styles__icon-button___Znt-A{height:26px;padding:4px 8px}.IconButton-styles__icon-button___Znt-A .IconButton-styles__action-icon___ffZLK{fill:#1e2127;height:12px;width:12px}",SE={brandBlue:"#0E75DD","icon-button":"IconButton-styles__icon-button___Znt-A","action-icon":"IconButton-styles__action-icon___ffZLK"};t0(GGa);var UGa=".Tooltip-styles__tooltip-label___JpOBu{opacity:0;position:absolute;transition:opacity .3s ease-in-out}.Tooltip-styles__tooltip-label___JpOBu .Tooltip-styles__tooltip-label-box___KUxBt{background-color:#1e2127;border:1px solid #1e2127;border-radius:4px;color:#fff;display:inline-block;font-size:12px;max-height:500px;max-width:300px;overflow-y:auto;padding:4px 8px;scrollbar-color:#6d7584 #1e2127;word-break:break-all}.Tooltip-styles__tooltip-visible___-AKVR{opacity:1}.Tooltip-styles__tooltip-arrow___8Fj9-{background-color:#1e2127;border:2px solid #1e2127;position:absolute;rotate:-45deg}.Tooltip-styles__tooltip-arrow-position-left___ICPTZ{right:100%;translate:.125rem}.Tooltip-styles__tooltip-arrow-position-right___0Ff2s{left:100%;translate:-.125rem}.Tooltip-styles__tooltip-arrow-position-bottom___uPbQX{top:100%;translate:0 -.125rem}.Tooltip-styles__tooltip-arrow-position-top___xRdkg{bottom:100%;translate:0 .125rem}",wh={brandBlue:"#0E75DD","tooltip-label":"Tooltip-styles__tooltip-label___JpOBu","tooltip-label-box":"Tooltip-styles__tooltip-label-box___KUxBt","tooltip-visible":"Tooltip-styles__tooltip-visible___-AKVR","tooltip-arrow":"Tooltip-styles__tooltip-arrow___8Fj9-","tooltip-arrow-position-left":"Tooltip-styles__tooltip-arrow-position-left___ICPTZ","tooltip-arrow-position-right":"Tooltip-styles__tooltip-arrow-position-right___0Ff2s","tooltip-arrow-position-bottom":"Tooltip-styles__tooltip-arrow-position-bottom___uPbQX","tooltip-arrow-position-top":"Tooltip-styles__tooltip-arrow-position-top___xRdkg"};t0(UGa);var WGa=["state","className","children","isOpen"],hse=Kt.forwardRef(function(e,u){var t=e.state,a=e.className,n=e.children,r=e.isOpen,i=ose(e,WGa),o=Qau.useTooltip(i,t),s=o.tooltipProps;return ne.default.createElement("div",I1({ref:u,className:WP.default(wh["tooltip-label"],lE({},wh["tooltip-visible"],r))},nee.mergeProps(i,s)),ne.default.createElement("span",{className:WP.default(a,wh["tooltip-label-box"])},n))});hse.propTypes={children:Oe.default.node.isRequired,className:Oe.default.string,isOpen:Oe.default.bool,state:Oe.default.object.isRequired};hse.defaultProps={className:"",isOpen:!1};var JGa=["placementAxis"],qGa=function(u){return WP.default("tooltip-arrow-position",lE(lE(lE(lE({},wh["tooltip-arrow-position-right"],u==="left"),wh["tooltip-arrow-position-left"],u==="right"),wh["tooltip-arrow-position-bottom"],u==="top"),wh["tooltip-arrow-position-top"],u==="bottom"))},fse=function(u){var t=u.placementAxis,a=ose(u,JGa);return ne.default.createElement("div",I1({className:WP.default(wh["tooltip-arrow"],qGa(t))},a))};fse.propTypes={placementAxis:Oe.default.oneOf(["top","bottom","left","right","center"])};fse.defaultProps={placementAxis:"bottom"};var ZGa={entering:!1,entered:!0},xnu=function(u){var t=u.children,a=u.isOpen,n=Kt.useState(!a),r=Yr(n,2),i=r[0],o=r[1],s=function(){return o(!1)},l=function(){return o(!0)},c=a||!i;return c?ne.default.createElement(_Va.Transition,{appear:!0,in:a,onEntered:s,onExited:l,timeout:{enter:50,exit:350}},function(d){return ne.default.Children.map(t,function(E){return ne.default.createElement(Yau.OverlayContainer,null,ne.default.isValidElement(E)&&ne.default.cloneElement(E,{isOpen:!!ZGa[d]}))})}):null};xnu.propTypes={children:Oe.default.node.isRequired,isOpen:Oe.default.bool.isRequired};var Nye=Math.sqrt(32),A3=Kt.forwardRef(function(e,u){var t=e.children,a=e.className,n=e.delay,r=e.hasArrow,i=e.placement,o=e.title,s=nee.useObjectRef(u),l=Kt.useRef(null),c=zVa.useTooltipTriggerState({delay:n}),d=Yau.useOverlayPosition({targetRef:s,overlayRef:l,placement:i,isOpen:c.isOpen,arrowSize:Nye,offset:Nye/2+2}),E=d.overlayProps,h=d.placement,f=d.arrowProps,m=function(){return c.close(!0)},p=Qau.useTooltipTrigger({isOpen:c.isOpen},Qi(Qi({},c),{},{close:m}),l),D=p.tooltipProps,g=p.triggerProps,v=typeof t=="function"?t:ne.default.Children.only(t),C=Qi(Qi({},g),{},lE({tabIndex:g.tabIndex,"aria-describedby":g["aria-describedby"],onBlur:g.onBlur,onFocus:g.onFocus,onMouseEnter:g.onPointerEnter,onMouseLeave:g.onPointerLeave,onPointerEnter:g.onPointerEnter,onPointerLeave:g.onPointerLeave},typeof PointerEvent<"u"?"onPointerDown":"onClick",m));return ne.default.createElement(ne.default.Fragment,null,typeof v=="function"?v({triggerProps:C,targetRef:s}):ne.default.cloneElement(v,Qi({ref:s},nee.mergeProps(v.props,C))),ne.default.createElement(xnu,{isOpen:c.isOpen},ne.default.createElement(hse,I1({ref:l,className:a,state:c},E,D),r&&ne.default.createElement(fse,I1({placementAxis:h},f)),o)))});A3.propTypes={children:Oe.default.node.isRequired,className:Oe.default.string,delay:Oe.default.number,hasArrow:Oe.default.bool,placement:Oe.default.oneOf(["top","bottom","left","right"]),title:Oe.default.node.isRequired};A3.defaultProps={className:"",delay:100,hasArrow:!1,placement:"top"};A3.displayName="Tooltip";var gnu=ne.default.createContext(sse),YD=function(){var u=Kt.useContext(gnu);if(!u)throw new Error("useTheme must be used within a ThemeContext");return u},mse=function(u){var t=u.options,a=Qi(Qi({},sse),t);return ne.default.createElement(gnu.Provider,I1({value:a},u))};mse.propTypes={options:Oe.default.object};mse.defaultProps={options:sse};var QGa=function(){var u=Ns(),t=u.actions,a=u.callbacks,n=YD(),r=n.showImportHar,i=function(){t.resetState(),a.onReset(),r&&window.history.pushState({},document.title,"/")};return ne.default.createElement(A3,{title:"Reset"},ne.default.createElement(Bd,{className:SE["icon-button"],onClick:i},ne.default.createElement(Ese,{className:SE["action-icon"]})))},YGa=".Dropdown-styles__dropdown-container___xrmM-{position:relative}.Dropdown-styles__dropdown-container___xrmM- .Dropdown-styles__dropdown-toggle___YCeZ6{color:#1e2127;display:flex;font-size:14px;font-weight:500;justify-content:space-between;width:8.5rem}.Dropdown-styles__dropdown-container___xrmM- .Dropdown-styles__dropdown-toggle___YCeZ6.Dropdown-styles__active___FHgVF,.Dropdown-styles__dropdown-container___xrmM- .Dropdown-styles__dropdown-toggle___YCeZ6:hover{background:#fff}.Dropdown-styles__dropdown-container___xrmM- .Dropdown-styles__dropdown-toggle___YCeZ6.Dropdown-styles__active___FHgVF{border-radius:4px 4px 0 0}.Dropdown-styles__dropdown-container___xrmM- .Dropdown-styles__dropdown-toggle___YCeZ6 .Dropdown-styles__icn___KwnE-{height:12px;pointer-events:none;width:12px}.Dropdown-styles__dropdown-container___xrmM- .Dropdown-styles__list___Bc4Yh{background-clip:padding-box;background-color:#fff;border:1px solid #dbe0ea;border-radius:0 0 4px 4px;float:left;left:1px;list-style:none;margin:.125rem 0 0;padding:0;position:absolute;text-align:left;top:0;transform:translate3d(-1px,23px,0);width:7.5rem;will-change:transform;z-index:1000}.Dropdown-styles__dropdown-container___xrmM- .Dropdown-styles__list-item___F-hmT{background:transparent;border:0;clear:both;color:#1e2127;display:block;font-size:14px;font-weight:500;padding:0;text-align:inherit;white-space:nowrap;width:100%}.Dropdown-styles__dropdown-container___xrmM- .Dropdown-styles__list-item___F-hmT.Dropdown-styles__active___FHgVF{background:#e6f1fd;color:#1e2127}.Dropdown-styles__dropdown-container___xrmM- .Dropdown-styles__list-item___F-hmT:not(.Dropdown-styles__active___FHgVF):hover{background:#f7f8fa}.Dropdown-styles__dropdown-container___xrmM- .Dropdown-styles__item-text___-30oI{cursor:pointer;display:block;padding:.25rem 1.5rem}",Jb={brandBlue:"#0E75DD","dropdown-container":"Dropdown-styles__dropdown-container___xrmM-","dropdown-toggle":"Dropdown-styles__dropdown-toggle___YCeZ6",active:"Dropdown-styles__active___FHgVF",icn:"Dropdown-styles__icn___KwnE-",list:"Dropdown-styles__list___Bc4Yh","list-item":"Dropdown-styles__list-item___F-hmT","item-text":"Dropdown-styles__item-text___-30oI"};t0(YGa);var pse=function(u){var t=u.className;return ne.default.createElement("svg",{className:t,height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("path",{clipRule:"evenodd",d:"M20.7774 7.21667C21.0742 7.50555 21.0742 7.97393 20.7774 8.26282L12.5374 16.2833C12.2406 16.5722 11.7594 16.5722 11.4626 16.2833L3.22259 8.26282C2.9258 7.97393 2.9258 7.50555 3.22259 7.21667C3.51939 6.92778 4.00059 6.92778 4.29738 7.21667L12 14.7141L19.7026 7.21667C19.9994 6.92778 20.4806 6.92778 20.7774 7.21667Z",fillRule:"evenodd"}))};pse.propTypes={className:Oe.default.string};pse.defaultProps={className:""};var Dse=function(u){var t=u.className;return ne.default.createElement("svg",{className:t,height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("path",{clipRule:"evenodd",d:"M20.7774 16.7833C21.0742 16.4944 21.0742 16.0261 20.7774 15.7372L12.5374 7.71667C12.2406 7.42778 11.7594 7.42778 11.4626 7.71667L3.22259 15.7372C2.9258 16.0261 2.9258 16.4944 3.22259 16.7833C3.51939 17.0722 4.00059 17.0722 4.29738 16.7833L12 9.2859L19.7026 16.7833C19.9994 17.0722 20.4806 17.0722 20.7774 16.7833Z",fillRule:"evenodd"}))};Dse.propTypes={className:Oe.default.string};Dse.defaultProps={className:""};var zG=Uc.default.bind(Jb),xse=function(u){var t=u.items,a=u.selected,n=u.onChange,r=u.className,i=Kt.useState(!1),o=Yr(i,2),s=o[0],l=o[1],c=Kt.useState(a!==null?a:t[0]),d=Yr(c,2),E=d[0],h=d[1],f=Kt.useRef(null),m=Kt.useRef(s),p=function(C){l(C),m.current=C},D=function(C){h(C),n(C),p(!1)},g=function(C){var y=C.target;m.current&&!f.current.contains(y)&&p(!1)};return Kt.useEffect(function(){return window.addEventListener("click",g),function(){window.removeEventListener("click",g)}},[]),Kt.useEffect(function(){h(a)},[a]),ne.default.createElement("span",{ref:f,className:zG("dropdown-container",r,{expanded:s})},ne.default.createElement(Bd,{className:zG("dropdown-toggle",{active:s}),onClick:function(){return p(!s)}},ne.default.createElement(ne.default.Fragment,null,"Status: ".concat(E.name),s?ne.default.createElement(pse,{className:Jb.icn}):ne.default.createElement(Dse,{className:Jb.icn}))),s&&ne.default.createElement("ul",{className:Jb.list},t.map(function(v,C){return ne.default.createElement("li",{key:v.value,className:zG("list-item",{active:v.value===E.value})},ne.default.createElement("span",{className:Jb["item-text"],onClick:function(){return D(v)},role:"button",tabIndex:C},v.name))})))};xse.propTypes={className:Oe.default.string,items:Oe.default.array.isRequired,onChange:Oe.default.func.isRequired,selected:Oe.default.oneOfType([Oe.default.number,Oe.default.string,Oe.default.object])};xse.defaultProps={className:null,selected:null};var XGa=function(){var u=Ns(),t=u.state,a=u.actions,n=t.get("statusFilter");return ne.default.createElement(xse,{items:YVa,onChange:a.updateStatusFilter,selected:n})},gse=function(u){var t=u.className;return ne.default.createElement("svg",{className:t,height:"24",preserveAspectRatio:"xMidYMid",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("path",{d:"M9 0.2C9 0.0895429 9.08954 0 9.2 0H14.8C14.9105 0 15 0.0895431 15 0.2V10H18.8C18.974 10 19.0651 10.2115 18.9475 10.3427L12.1477 17.9336C12.0684 18.0221 11.932 18.0221 11.8527 17.9336L5.05292 10.3427C4.93539 10.2115 5.0264 10 5.20039 10H9V0.2Z"}),ne.default.createElement("path",{d:"M2.5 19.25C2.5 18.5596 1.94036 18 1.25 18C0.559644 18 0 18.5596 0 19.25V22.75C0 23.4404 0.559644 24 1.25 24H22.75C23.4404 24 24 23.4404 24 22.75V19.25C24 18.5596 23.4404 18 22.75 18C22.0596 18 21.5 18.5596 21.5 19.25V21.5H2.5V19.25Z"}))};gse.propTypes={className:Oe.default.string};gse.defaultProps={className:""};var vse=function(u){var t=u.rawData,a=function(){var r=JSON.stringify(t,null,2);RVa.default.saveAs(new Blob([r]),"network.har")};return ne.default.createElement(A3,{title:"Export HAR"},ne.default.createElement(Bd,{className:SE["icon-button"],onClick:a},ne.default.createElement(gse,{className:SE["action-icon"]})))};vse.propTypes={rawData:Oe.default.object};vse.defaultProps={rawData:tnu};var Cse=function(u){var t=u.className;return ne.default.createElement("svg",{className:t,height:"24",preserveAspectRatio:"xMidYMid",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("path",{d:"M3 1C2.44772 1 2 1.44772 2 2V22C2 22.5523 2.44772 23 3 23H9C9.55228 23 10 22.5523 10 22V2C10 1.44772 9.55228 1 9 1H3Z"}),ne.default.createElement("path",{d:"M15 1C14.4477 1 14 1.44772 14 2V22C14 22.5523 14.4477 23 15 23H21C21.5523 23 22 22.5523 22 22V2C22 1.44772 21.5523 1 21 1H15Z"}))};Cse.propTypes={className:Oe.default.string};Cse.defaultProps={className:""};var yse=function(u){var t=u.className;return ne.default.createElement("svg",{className:t,height:"24",preserveAspectRatio:"xMidYMid",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("path",{d:"M2 1.06665C2 0.246202 2.88801 -0.266152 3.59754 0.144921L22.469 11.0783C23.177 11.4885 23.177 12.5115 22.469 12.9217L3.59754 23.8551C2.88801 24.2662 2 23.7538 2 22.9334V1.06665Z"}))};yse.propTypes={className:Oe.default.string};yse.defaultProps={className:""};var eUa=function(){var u=Ns(),t=u.callbacks,a=Kt.useState(!1),n=Yr(a,2),r=n[0],i=n[1],o=function(){i(!0),t.onPause()},s=function(){i(!1),t.onResume()};return ne.default.createElement(A3,{title:r?"Resume":"Pause"},ne.default.createElement(Bd,{className:SE["icon-button"],onClick:r?s:o},r?ne.default.createElement(yse,{className:SE["action-icon"]}):ne.default.createElement(Cse,{className:SE["action-icon"]})))},uUa=Uc.default.bind(pO),tUa=function(){var u=Ns(),t=u.state,a=u.actions,n=t.get("typeFilter");return QVa.map(function(r){var i=r.name,o=r.filterBy,s=o.value===n.value;return ne.default.createElement(Bd,{key:i,className:uUa({active:s}),onClick:function(){return a.updateTypeFilter(o)},variant:"text"},i)})},aUa=".ImportHAR-styles__drag-drop___RvgHH{align-items:center;border:2px dashed #dbe0ea;border-radius:4px;color:#1e2127;cursor:pointer;display:flex;font-size:18px;height:100%;justify-content:center;margin:1rem;min-height:300px}.ImportHAR-styles__drag-drop___RvgHH:hover{border-color:#bfbfbf;color:#555}",nUa={brandBlue:"#0E75DD","drag-drop":"ImportHAR-styles__drag-drop___RvgHH"};t0(aUa);var bse=function(u){var t=u.className;return ne.default.createElement("svg",{className:t,height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("path",{d:"M9 16.8C9 16.9105 9.08954 17 9.2 17H14.8C14.9105 17 15 16.9105 15 16.8V8H18.8C18.974 8 19.0651 7.78851 18.9475 7.65731L12.1477 0.0663729C12.0684 -0.0221243 11.932 -0.0221243 11.8527 0.0663729L5.05292 7.65731C4.93539 7.78851 5.0264 8 5.20039 8H9V16.8Z"}),ne.default.createElement("path",{d:"M2.5 19.25C2.5 18.5596 1.94036 18 1.25 18C0.559644 18 0 18.5596 0 19.25V22.75C0 23.4404 0.559644 24 1.25 24H22.75C23.4404 24 24 23.4404 24 22.75V19.25C24 18.5596 23.4404 18 22.75 18C22.0596 18 21.5 18.5596 21.5 19.25V21.5H2.5V19.25Z"}))};bse.propTypes={className:Oe.default.string};bse.defaultProps={className:""};var rUa=function(){return ne.default.createElement(A3,{title:"Import HAR"},ne.default.createElement(Bd,{className:SE["icon-button"]},ne.default.createElement(bse,{className:SE["action-icon"]})))},iUa={accept:".har",multiple:!1},m$=function(u){var t=u.showButton,a=Ns(),n=a.actions,r=n.updateErrorMessage,i=function(E){return n.updateData(E)},o=function(E){var h=new FileReader;h.onabort=function(){return r({title:"file reading was aborted"})},h.onerror=function(){return r({title:"file reading has failed"})},h.onload=function(){try{var f=JSON.parse(h.result);i(f)}catch{r({title:"Error while parsing HAR file"})}},h.readAsText(E[0])},s=MVa.useDropzone(Qi(Qi({},iUa),{},{onDrop:o})),l=s.getRootProps,c=s.getInputProps;return ne.default.createElement("div",l(),ne.default.createElement("input",c()),t?ne.default.createElement(rUa,null):ne.default.createElement("p",{className:nUa["drag-drop"]},"Drag and drop HAR file here, or click to select file"))};m$.propTypes={showButton:Oe.default.bool};m$.defaultProps={showButton:!0};var oUa=function(){var u=Ns(),t=u.state,a=YD(),n=a.showExportHar,r=a.showImportHar,i=a.showReset,o=a.showPauseResume;return ne.default.createElement("section",{className:pO["filters-container"]},ne.default.createElement("div",{className:pO["filter-row"]},ne.default.createElement(XGa,null),ne.default.createElement(dse,t.get("search")),o&&ne.default.createElement(eUa,null),i&&ne.default.createElement(QGa,null),n&&ne.default.createElement(vse,{rawData:t.get("rawData")}),r&&ne.default.createElement(m$,null)),ne.default.createElement("div",{className:pO["type-filter-row"]},ne.default.createElement(tUa,null)))},sUa=".NetworkTable-styles__network-table-body___l3R54{border-top:1px solid #dbe0ea;outline:none}.NetworkTable-styles__no-data___bPXUs{align-items:center;display:flex;flex-direction:column;padding:44px 20px;text-align:center}.NetworkTable-styles__no-data___bPXUs .NetworkTable-styles__network-icon___FRcuW{fill:#979eab;height:28px;width:28px}.NetworkTable-styles__no-data___bPXUs .NetworkTable-styles__header___BQV3I{color:#1e2127;font-weight:600;padding:28px 0 12px}.NetworkTable-styles__no-data___bPXUs .NetworkTable-styles__subtext___eiHs3{color:#6d7584}.NetworkTable-styles__network-table-header___mqPXQ{align-content:center;color:#6d7584;display:flex;font-size:12px;font-weight:700;padding:8px;text-transform:uppercase;width:100%}.NetworkTable-styles__network-table-header___mqPXQ:last-child{padding-right:0}.NetworkTable-styles__table-column___V-6tl{align-self:center;display:flex;min-width:60px;padding-right:8px;width:12%}.NetworkTable-styles__table-column___V-6tl:last-child{padding-right:0}.NetworkTable-styles__table-column___V-6tl.NetworkTable-styles__show-waterfall___mZRWk{width:10%}.NetworkTable-styles__table-column___V-6tl.NetworkTable-styles__file___mIiM0{width:25%}.NetworkTable-styles__table-column___V-6tl.NetworkTable-styles__file___mIiM0.NetworkTable-styles__limited-cols___iWJI3{width:100%}.NetworkTable-styles__table-column___V-6tl.NetworkTable-styles__domain___MPiUt{width:15%}.NetworkTable-styles__network-table-row___L06AP{border-bottom:1px solid #dbe0ea;color:#1e2127;cursor:pointer;display:flex;font-size:12px;overflow:hidden;padding:4px 8px;width:100%}.NetworkTable-styles__network-table-row___L06AP.NetworkTable-styles__pending___-aI5r{color:#aaa}.NetworkTable-styles__network-table-row___L06AP.NetworkTable-styles__error___bm5-V{color:#eb3f47}.NetworkTable-styles__network-table-row___L06AP:hover{background:#e6e6e6}.NetworkTable-styles__network-table-row___L06AP.NetworkTable-styles__highlight___xgHFo{background:#5c7288;color:#fff}.NetworkTable-styles__value-text___qF7zL{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:break-all}.NetworkTable-styles__network-table-footer___FNR-H{background:#f7f8fa;border-top:1px solid #dbe0ea;display:inline-flex;font-size:12px;padding:4px 12px;vertical-align:middle;width:100%}.NetworkTable-styles__network-table-footer___FNR-H span{align-items:center;border-right:1px solid #ccc;display:inline-flex;flex:1 1 auto;justify-content:center;overflow:hidden;padding:0 4px}.NetworkTable-styles__network-table-footer___FNR-H span:last-child{border-right:none}",K4={brandBlue:"#0E75DD","network-table-body":"NetworkTable-styles__network-table-body___l3R54","no-data":"NetworkTable-styles__no-data___bPXUs","network-icon":"NetworkTable-styles__network-icon___FRcuW",header:"NetworkTable-styles__header___BQV3I",subtext:"NetworkTable-styles__subtext___eiHs3","network-table-header":"NetworkTable-styles__network-table-header___mqPXQ","table-column":"NetworkTable-styles__table-column___V-6tl","show-waterfall":"NetworkTable-styles__show-waterfall___mZRWk",file:"NetworkTable-styles__file___mIiM0","limited-cols":"NetworkTable-styles__limited-cols___iWJI3",domain:"NetworkTable-styles__domain___MPiUt","network-table-row":"NetworkTable-styles__network-table-row___L06AP",pending:"NetworkTable-styles__pending___-aI5r",error:"NetworkTable-styles__error___bm5-V",highlight:"NetworkTable-styles__highlight___xgHFo","value-text":"NetworkTable-styles__value-text___qF7zL","network-table-footer":"NetworkTable-styles__network-table-footer___FNR-H"};t0(sUa);var lUa=Uc.default.bind(K4),cUa=function(){var u=Ns(),t=u.state,a=t.get("showReqDetail"),n=t.get("tableHeaderWidth"),r=YD(),i=r.showWaterfall,o=nnu(a,i);return ne.default.createElement("div",{className:K4["network-table-header"],style:{width:n}},Object.entries(o).map(function(s){var l=Yr(s,2),c=l[0],d=l[1],E=d.key,h=d.name;return ne.default.createElement("div",{key:E,className:lUa("table-column","value-cell",c,{"limited-cols":a},{"show-waterfall":i})},h)}))},dUa=".NetworkTableContainer-styles__table-container___yl5KV{display:flex;flex-direction:column;height:100%;width:100%}.NetworkTableContainer-styles__table-container___yl5KV.NetworkTableContainer-styles__limited-cols___gJdQk{width:30%}.NetworkTableContainer-styles__har-selection___5ibaM{display:flex;flex-direction:column;width:100%}",vnu={brandBlue:"#0E75DD","table-container":"NetworkTableContainer-styles__table-container___yl5KV","limited-cols":"NetworkTableContainer-styles__limited-cols___gJdQk","har-selection":"NetworkTableContainer-styles__har-selection___5ibaM"};t0(dUa);var EUa=".ErrorMessage-styles__error-container___ljOFx{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:1rem;width:100%}.ErrorMessage-styles__error-container___ljOFx .ErrorMessage-styles__title___lJTo9{color:red;font-weight:300}",Rye={"error-container":"ErrorMessage-styles__error-container___ljOFx",title:"ErrorMessage-styles__title___lJTo9"};t0(EUa);var kse=function(u){var t=u.title,a=u.description;return ne.default.createElement("div",{className:Rye["error-container"]},t&&ne.default.createElement("h4",{className:Rye.title},t),a&&ne.default.createElement("p",null,a))};kse.propTypes={description:Oe.default.any,title:Oe.default.any};kse.defaultProps={description:null,title:null};var hUa=".InputHAR-styles__input-har-container___skL-t{align-items:center;color:#1e2127;display:flex;flex-direction:column;margin:1rem}.InputHAR-styles__input-har-container___skL-t .InputHAR-styles__input-har-text___usjRP{font-size:18px;font-weight:400}.InputHAR-styles__input-har-container___skL-t .InputHAR-styles__example-url___luNOl{padding-left:4px;text-decoration:none}",OG={brandBlue:"#0E75DD","input-har-container":"InputHAR-styles__input-har-container___skL-t","input-har-text":"InputHAR-styles__input-har-text___usjRP","example-url":"InputHAR-styles__example-url___luNOl"};t0(hUa);var fUa=".URLInput-styles__url-input-container___b98a5{align-items:stretch;display:flex;flex-wrap:wrap;margin:0;max-width:992px;position:relative;width:100%}.URLInput-styles__url-input-container___b98a5 .URLInput-styles__postpend-button___NjC5z{display:flex;height:auto;margin-left:-1px}.URLInput-styles__url-input-container___b98a5 .URLInput-styles__input___vWMQw{background-clip:padding-box;background-color:#fff;border:1px solid #dbe0ea;border-radius:.2rem;border-bottom-right-radius:0;border-top-right-radius:0;color:#646464;flex:1 1 auto;font-size:.875rem;height:26px;line-height:1.5;margin-bottom:0;padding:.25rem .5rem;position:relative;width:1%}",_G={brandBlue:"#0E75DD","url-input-container":"URLInput-styles__url-input-container___b98a5","postpend-button":"URLInput-styles__postpend-button___NjC5z",input:"URLInput-styles__input___vWMQw"};t0(fUa);var mUa=".Checkbox-styles__checkbox-container___nEBCK{min-width:110px;padding:2px 0 0 24px;text-align:right}.Checkbox-styles__checkbox-container___nEBCK .Checkbox-styles__checkbox-label___e-tDx{color:#1e2127;cursor:pointer;font-style:normal;font-weight:400;margin:0;text-transform:none}.Checkbox-styles__checkbox-container___nEBCK .Checkbox-styles__checkbox___driKN{cursor:pointer;margin-right:4px}",lee={brandBlue:"#0E75DD","checkbox-container":"Checkbox-styles__checkbox-container___nEBCK","checkbox-label":"Checkbox-styles__checkbox-label___e-tDx",checkbox:"Checkbox-styles__checkbox___driKN"};t0(mUa);var pUa=Uc.default.bind(lee),Fse=function(u){var t=u.containerClassName,a=u.isChecked,n=u.onChange,r=u.children,i=u.title;return ne.default.createElement("div",{className:pUa("checkbox-container",t)},ne.default.createElement("label",{className:lee["checkbox-label"],title:i},ne.default.createElement("input",{checked:a,className:lee.checkbox,name:"checkbox",onChange:n,type:"checkbox"}),r))};Fse.propTypes={children:Oe.default.any.isRequired,containerClassName:Oe.default.string,isChecked:Oe.default.bool,onChange:Oe.default.func.isRequired,title:Oe.default.string};Fse.defaultProps={containerClassName:"",isChecked:!1,title:""};var DUa=".CORSCheckbox-styles__cors-container___bI-rV{align-items:center;display:flex;min-width:50px;padding:0 1rem 0 0;width:auto}",xUa={"cors-container":"CORSCheckbox-styles__cors-container___bI-rV"};t0(DUa);var Cnu=function(u){var t=u.isEnabled,a=u.onChange,n=function(){a(!t)};return ne.default.createElement(Fse,{containerClassName:xUa["cors-container"],isChecked:t,onChange:n,title:"CORS Enable"},"CORS")};Cnu.propTypes={isEnabled:Oe.default.bool.isRequired,onChange:Oe.default.func.isRequired};var gUa=function(){var u=Kt.useState(""),t=Yr(u,2),a=t[0],n=t[1],r=Kt.useState(!1),i=Yr(r,2),o=i[0],s=i[1],l=function(E){var h=E.target;n(h.value)},c=function(){var E=document.location,h=E.origin,f=E.pathname,m="".concat(h).concat(f,"?").concat(PVa.stringify({file:a,isCORSEnabled:o}));document.location.href=m};return ne.default.createElement("div",{className:_G["url-input-container"]},ne.default.createElement(Cnu,{isEnabled:o,onChange:s}),ne.default.createElement("input",{className:_G.input,name:"har-url",onChange:l,placeholder:"HAR file URL",type:"text",value:a}),ne.default.createElement(Bd,{className:_G["postpend-button"],onClick:c},"GO"))},Lye="https://raw.githubusercontent.com/saucelabs/network-viewer/main/examples/src/data/network.har",vUa=function(){return ne.default.createElement("div",{className:OG["input-har-container"]},ne.default.createElement("h4",{className:OG["input-har-text"]},"OR add HAR file URL in the below input box"),ne.default.createElement(gUa,null),ne.default.createElement("p",null,ne.default.createElement("span",null,"For Example use this har file"),ne.default.createElement("a",{className:OG["example-url"],href:Lye,rel:"noopener noreferrer",target:"_blank"},Lye)))},CUa='.TimeChart-styles__time-chart-tooltip___XcshK{background-color:#fff!important;overflow:hidden!important;scrollbar-color:auto!important}.TimeChart-styles__tooltip___4c9Mx{background:#fff;color:#555;display:block;font-size:12px;height:auto;opacity:1;padding:8px;width:280px}.TimeChart-styles__tooltip-info___-xcil{margin-bottom:16px}.TimeChart-styles__tooltip-info___-xcil .TimeChart-styles__time-info___N38ca{margin:0}.TimeChart-styles__waterfall-tooltip-table___TZCxi{border:0;width:100%}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-th___1tswB,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-value___paBoL,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-th___1tswB,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-value___paBoL{background:transparent;border:0;font-weight:400;padding:0;text-align:left}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-value___paBoL,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-value___paBoL{text-align:right}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-tr___L44ET:nth-of-type(odd),.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-tr___L44ET:nth-of-type(odd){background-color:#fff}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ{font-weight:700;padding:0 16px;position:relative}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ:before,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ:before{content:"";height:8px;left:0;position:absolute;top:4px;width:8px}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__blocked___zYUSl,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__blocked___zYUSl{color:#a1000c}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__blocked___zYUSl:before,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__blocked___zYUSl:before{background:#a1000c}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__dns___FxMnA,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__dns___FxMnA{color:#dcc9e5}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__dns___FxMnA:before,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__dns___FxMnA:before{background:#dcc9e5}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__ssl___M5Y-M,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__ssl___M5Y-M{color:#e78057}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__ssl___M5Y-M:before,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__ssl___M5Y-M:before{background:#e78057}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__connect___goA6w,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__connect___goA6w{color:#db8553}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__connect___goA6w:before,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__connect___goA6w:before{background:#db8553}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__send___wZ5Z0,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__send___wZ5Z0{color:#3c96c4}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__send___wZ5Z0:before,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__send___wZ5Z0:before{background:#3c96c4}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__wait___MldqB,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__wait___MldqB{color:#7ca0bf}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__wait___MldqB:before,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__wait___MldqB:before{background:#7ca0bf}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__receive___LKvFd,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__receive___LKvFd{color:#65b955}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__receive___LKvFd:before,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__receive___LKvFd:before{background:#65b955}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__queueing___01zoc,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__queueing___01zoc{color:#ccc}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__queueing___01zoc:before,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__queueing___01zoc:before{background:#ccc}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-th___1tswB{color:gray;padding-bottom:8px}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-th___1tswB:nth-child(2){text-align:right}',oi={brandBlue:"#0E75DD","time-chart-tooltip":"TimeChart-styles__time-chart-tooltip___XcshK",tooltip:"TimeChart-styles__tooltip___4c9Mx","tooltip-info":"TimeChart-styles__tooltip-info___-xcil","time-info":"TimeChart-styles__time-info___N38ca","waterfall-tooltip-table":"TimeChart-styles__waterfall-tooltip-table___TZCxi","waterfall-tooltip-tbody":"TimeChart-styles__waterfall-tooltip-tbody___eMoBP","waterfall-tooltip-value":"TimeChart-styles__waterfall-tooltip-value___paBoL","waterfall-tooltip-key":"TimeChart-styles__waterfall-tooltip-key___eVaAQ","waterfall-tooltip-th":"TimeChart-styles__waterfall-tooltip-th___1tswB","waterfall-tooltip-thead":"TimeChart-styles__waterfall-tooltip-thead___B9Xf4","waterfall-tooltip-tr":"TimeChart-styles__waterfall-tooltip-tr___L44ET",blocked:"TimeChart-styles__blocked___zYUSl",dns:"TimeChart-styles__dns___FxMnA",ssl:"TimeChart-styles__ssl___M5Y-M",connect:"TimeChart-styles__connect___goA6w",send:"TimeChart-styles__send___wZ5Z0",wait:"TimeChart-styles__wait___MldqB",receive:"TimeChart-styles__receive___LKvFd",queueing:"TimeChart-styles__queueing___01zoc"};t0(CUa);var yUa=Uc.default.bind(oi),bUa=[{title:"Resource Scheduling",category:["queueing"]},{title:"Connection Start",category:["blocked","dns","ssl","connect"]},{title:"Request/Response",category:["send","wait","receive"]}],ynu=function(u){var t=u.data,a=Kt.useMemo(function(){return t?DGa(t):null},[t]);return a?ne.default.createElement("div",{className:oi.tooltip},ne.default.createElement("section",{className:oi["tooltip-info"]},ne.default.createElement("p",{className:oi["time-info"]},"Queued at ".concat(a.queuedAt)),ne.default.createElement("p",{className:oi["time-info"]},"Started at ".concat(a.startedAt))),bUa.map(function(n){var r=n.title,i=n.category;return ne.default.createElement("section",{key:r,className:oi["tooltip-info"]},ne.default.createElement("table",{className:oi["waterfall-tooltip-table"]},ne.default.createElement("thead",{className:oi["waterfall-tooltip-thead"]},ne.default.createElement("tr",{className:oi["waterfall-tooltip-tr"]},ne.default.createElement("th",{className:oi["waterfall-tooltip-th"]},r),ne.default.createElement("th",{className:oi["waterfall-tooltip-th"]},"DURATION"))),ne.default.createElement("tbody",{className:oi["waterfall-tooltip-tbody"]},i.map(function(o){return ne.default.createElement("tr",{key:o,className:oi["waterfall-tooltip-tr"]},ne.default.createElement("td",{className:yUa("waterfall-tooltip-key",o)},Tg[o].name),ne.default.createElement("td",{className:oi["waterfall-tooltip-value"]},Array.isArray(Tg[o].dataKey)?a[Tg[o].dataKey.find(function(s){return a[s]})]:a[Tg[o].dataKey]))}))))}),ne.default.createElement("section",{className:oi["tooltip-info"]},ne.default.createElement("p",{className:oi["time-info"]},"Total time ".concat(a.totalTime)))):null};ynu.propTypes={data:Oe.default.object.isRequired};var bnu=function(u){var t=u.timings,a=u.maxTime,n=Kt.useMemo(function(){return anu(t,a)},[t,a]);return ne.default.createElement(A3,{className:oi["time-chart-tooltip"],delay:300,placement:"left",title:ne.default.createElement(ynu,{data:t})},ne.default.createElement("svg",eGa,ne.default.createElement("g",null,n.map(function(r){return ne.default.createElement("rect",I1({key:r.key},r,uGa))}))))};bnu.propTypes={maxTime:Oe.default.number.isRequired,timings:Oe.default.object.isRequired};var $ye=Uc.default.bind(K4),Ase=function(u){var t=u.datakey,a=u.onClick,n=u.payload,r=u.unit,i=gGa(t,n[t],r,n),o=t===oee.file.key||n.error,s=function(){return t===oee.file.key?n.url:n.error?n.error:i};return o?ne.default.createElement(A3,{delay:500,title:s()},ne.default.createElement("div",{className:$ye("value-text",t),onClick:a},i)):ne.default.createElement("div",{className:$ye("value-text",t)},i)};Ase.propTypes={datakey:Oe.default.string.isRequired,onClick:Oe.default.func,payload:Oe.default.object,unit:Oe.default.string};Ase.defaultProps={onClick:function(){},payload:{},unit:null};var Iye=Uc.default.bind(K4),Bse=function(u){var t=u.entry,a=u.maxTime,n=u.onSelect,r=u.scrollHighlight,i=u.style,o=Ns(),s=o.state,l=s.get("showReqDetail"),c=YD(),d=c.showWaterfall,E=nnu(l,d),h={className:Iye("network-table-row",xGa(t),{highlight:r}),id:tGa+t.index,onClick:function(){return n(t)}};return ne.default.createElement("div",{style:Qi({},i)},ne.default.createElement("div",h,Object.entries(E).map(function(f){var m=Yr(f,2),p=m[0],D=m[1],g=D.key,v=D.unit;return ne.default.createElement("div",{key:g,className:Iye("table-column",p,{"limited-cols":l},{"show-waterfall":d})},g==="waterfall"&&t.time?ne.default.createElement(bnu,{maxTime:a,timings:t.timings}):ne.default.createElement(Ase,{datakey:g,onClick:h.onClick,payload:t,unit:v}))})))};Bse.propTypes={entry:Oe.default.object.isRequired,maxTime:Oe.default.number.isRequired,onSelect:Oe.default.func.isRequired,scrollHighlight:Oe.default.bool.isRequired,style:Oe.default.object};Bse.defaultProps={style:{}};var kUa=function(u,t){var a;return function(){for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];a&&clearTimeout(a),a=setTimeout(function(){u.apply(void 0,r)},t)}},knu=function(u){var t=Kt.useState({width:0,height:0}),a=Yr(t,2),n=a[0],r=a[1];return Kt.useEffect(function(){var i=kUa(function(){u&&r({width:u.clientWidth,height:u.clientHeight})},50),o=new ResizeObserver(function(){return i()});return u&&o.observe(u),function(){u&&o.unobserve(u)}},[u]),{elementDims:n}},Sse=function(u){var t=u.className;return ne.default.createElement("svg",{className:t,height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("path",{d:"M5.5 14.4999C5.5 14.7761 5.72386 14.9999 6 14.9999H8C8.27614 14.9999 8.5 14.7761 8.5 14.4999V6.99994H12.5697C12.7399 6.99994 12.8323 6.80096 12.7225 6.67093L7.1531 0.0736706C7.0732 -0.0209768 6.92735 -0.0209758 6.84745 0.0736716L1.27803 6.67093C1.16826 6.80096 1.26069 6.99994 1.43085 6.99994H5.5V14.4999Z"}),ne.default.createElement("path",{d:"M15.5 9.49994C15.5 9.2238 15.7239 8.99994 16 8.99994H18C18.2761 8.99994 18.5 9.2238 18.5 9.49994V16.9999H22.5697C22.7399 16.9999 22.8323 17.1989 22.7225 17.329L17.1531 23.9262C17.0732 24.0209 16.9274 24.0209 16.8474 23.9262L11.278 17.329C11.1683 17.1989 11.2607 16.9999 11.4309 16.9999H15.5V9.49994Z"}))};Sse.propTypes={className:Oe.default.string};Sse.defaultProps={className:""};var FUa=function(u){var t=u.data,a=u.index,n=u.style,r=t.listData,i=t.totalNetworkTime,o=t.handleReqSelect,s=t.selectedReqIndex,l=r.get(a);return ne.default.createElement(Bse,{key:a,entry:l,maxTime:i,onSelect:o,scrollHighlight:s===l.index,style:n})},Fnu=function(u){var t,a=u.height,n=Ns(),r=n.state,i=n.actions,o=n.callbacks,s=YD(),l=s.enableAutoScroll,c=s.NoDataPlaceholder,d=r.get("numberOfNewEntries"),E=r.get("data"),h=r.get("actualData"),f=r.get("totalNetworkTime"),m=r.get("selectedReqIndex"),p=Kt.useRef(null),D=knu((p==null||(t=p.current)===null||t===void 0?void 0:t._outerRef)||(p==null?void 0:p.current)),g=D.elementDims;Kt.useEffect(function(){i.setTableHeaderWidth(g.width)},[g]),Kt.useEffect(function(){var C;if(l&&p!==null&&p!==void 0&&(C=p.current)!==null&&C!==void 0&&C._outerRef){var y,b=p==null||(y=p.current)===null||y===void 0?void 0:y._outerRef,F=b.scrollTop+b.offsetHeight+d*zye>=b.scrollHeight;F&&(p.current._outerRef.scrollTop=b.scrollHeight)}},[E,p]);var v=function(y){m!==y.index&&(i.updateScrollToIndex(y.index),i.selectRequest(y),o.onRequestSelect(y))};return h.size===0?ne.default.createElement("div",{ref:p,className:K4["no-data"]},ne.default.createElement(Sse,{className:K4["network-icon"]}),c&&ne.default.createElement(c,null),!c&&ne.default.createElement(ne.default.Fragment,null,ne.default.createElement("span",{className:K4.header},"Recording network activity"),ne.default.createElement("span",{className:K4.subtext},"Perform a request to see the network activity"))):ne.default.createElement(ne.default.Fragment,null,ne.default.createElement(jVa.FixedSizeList,{ref:p,className:K4["network-table-body"],height:a,itemCount:E.size,itemData:{listData:E,totalNetworkTime:f,handleReqSelect:v,selectedReqIndex:m},itemSize:zye},FUa))};Fnu.propTypes={height:Oe.default.number.isRequired};var AUa=Uc.default.bind(vnu),BUa=function(){var u=Ns(),t=u.state,a=YD(),n=a.showImportHar,r=a.showWaterfall,i=t.get("actualData"),o=t.get("error"),s=t.get("showReqDetail"),l=Kt.useState(0),c=Yr(l,2),d=c[0],E=c[1],h=Kt.useRef(),f=knu(h==null?void 0:h.current),m=f.elementDims;return Kt.useEffect(function(){h!=null&&h.current&&m.height&&E(h.current.clientHeight-rGa)},[h==null?void 0:h.current,i,m]),o?ne.default.createElement(kse,o):!i.size&&n?ne.default.createElement("section",{className:vnu["har-selection"]},ne.default.createElement(m$,{showButton:!1}),ne.default.createElement(vUa,null)):ne.default.createElement("section",{ref:h,className:AUa("table-container",{"hide-waterfall":!r},{"limited-cols":s})},ne.default.createElement(cUa,null),ne.default.createElement(Fnu,{height:d}))},SUa=".LoaderContainer-styles__loader-container___22gl9{align-items:center;display:flex;justify-content:center;min-height:200px}.LoaderContainer-styles__spin___ky0rB{height:3rem;line-height:0;transform:translateZ(0);width:3rem}.LoaderContainer-styles__spin___ky0rB svg{animation:LoaderContainer-styles__load___lqM7u 1.4s linear infinite}.LoaderContainer-styles__text___FJnVM{padding-left:15px}@keyframes LoaderContainer-styles__load___lqM7u{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}",TG={"loader-container":"LoaderContainer-styles__loader-container___22gl9",spin:"LoaderContainer-styles__spin___ky0rB",load:"LoaderContainer-styles__load___lqM7u",text:"LoaderContainer-styles__text___FJnVM"};t0(SUa);var wse=function(u){var t=u.children,a=u.show,n=u.text,r="#0E75DD",i="Gradient-".concat(Math.round(Math.random()*1e7));return a?ne.default.createElement("section",{className:TG["loader-container"]},ne.default.createElement("div",{className:TG.spin},ne.default.createElement("svg",{viewBox:"0 0 100 100",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("defs",null,ne.default.createElement("linearGradient",{id:i},ne.default.createElement("stop",{offset:"0%",stopColor:r}),ne.default.createElement("stop",{offset:"75%",stopColor:r,stopOpacity:"0"}),ne.default.createElement("stop",{offset:"100%",stopColor:r,stopOpacity:"0"}))),ne.default.createElement("circle",{cx:"50",cy:"50",fill:"transparent",r:"43",stroke:"url(#".concat(i,")"),strokeWidth:"14"}))),n&&ne.default.createElement("p",{className:TG.text},n)):t};wse.propTypes={children:Oe.default.node,show:Oe.default.bool,text:Oe.default.oneOfType([Oe.default.string,Oe.default.node])};wse.defaultProps={children:null,show:!0,text:null};var wUa=".ReqDetailContainer-styles__req-detail-container___tjrsQ{background:#fff;border-left:1px solid #dbe0ea;height:100%;overflow:auto;position:relative;width:70%}.ReqDetailContainer-styles__req-detail-container___tjrsQ .ReqDetailContainer-styles__nav-tabs___Ilz0g{height:35px;padding-left:35px}.ReqDetailContainer-styles__req-detail-container___tjrsQ .ReqDetailContainer-styles__tab-link___2Qz7z{border:0;color:#1e2127;margin:0;padding:8px 12px 4px}.ReqDetailContainer-styles__req-detail-container___tjrsQ .ReqDetailContainer-styles__tab-link___2Qz7z:hover{text-decoration:none}.ReqDetailContainer-styles__req-detail-container___tjrsQ .ReqDetailContainer-styles__tab-link___2Qz7z.ReqDetailContainer-styles__active___NYqvK{border-bottom:2px solid #1e2127;color:#1e2127;font-weight:600}.ReqDetailContainer-styles__req-detail-container___tjrsQ .ReqDetailContainer-styles__close-button___bd4r1{background:transparent;border:0;cursor:pointer;left:8px;outline:none;padding-top:4px;position:absolute;top:8px}.ReqDetailContainer-styles__req-detail-container___tjrsQ .ReqDetailContainer-styles__close-button___bd4r1 .ReqDetailContainer-styles__close-icon___Og3Vi{fill:#6d7584;height:12px;width:12px}.ReqDetailContainer-styles__req-detail-container___tjrsQ .ReqDetailContainer-styles__close-button___bd4r1 .ReqDetailContainer-styles__close-icon___Og3Vi g{stroke:#555}.ReqDetailContainer-styles__req-detail-container___tjrsQ .ReqDetailContainer-styles__close-button___bd4r1:hover .ReqDetailContainer-styles__close-icon___Og3Vi g{stroke:#000}.ReqDetailContainer-styles__req-detail-container___tjrsQ .ReqDetailContainer-styles__tabs-container___RgAIs{display:flex;height:calc(100% - 35px);outline:none;overflow:auto;width:100%}",jm={brandBlue:"#0E75DD","req-detail-container":"ReqDetailContainer-styles__req-detail-container___tjrsQ","nav-tabs":"ReqDetailContainer-styles__nav-tabs___Ilz0g","tab-link":"ReqDetailContainer-styles__tab-link___2Qz7z",active:"ReqDetailContainer-styles__active___NYqvK","close-button":"ReqDetailContainer-styles__close-button___bd4r1","close-icon":"ReqDetailContainer-styles__close-icon___Og3Vi","tabs-container":"ReqDetailContainer-styles__tabs-container___RgAIs"};t0(wUa);var zUa=".Tabs-styles__nav-tabs___abDlX{border-bottom:1px solid #e6e6e6;display:flex;flex-wrap:wrap;list-style:none;margin-bottom:0;padding-left:0}.Tabs-styles__tab-item___E6kiN{background-color:transparent;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem;color:#007bff;cursor:pointer;display:block;margin-bottom:-1px;padding:.5rem 1rem;text-decoration:none}.Tabs-styles__tab-item___E6kiN:active,.Tabs-styles__tab-item___E6kiN:focus{outline:none}.Tabs-styles__tab-item___E6kiN.Tabs-styles__active___xRcuF{background-color:#fff;border-color:#e6e6e6 #e6e6e6 #fff;color:#646464}",Anu={brandBlue:"#0E75DD","nav-tabs":"Tabs-styles__nav-tabs___abDlX","tab-item":"Tabs-styles__tab-item___E6kiN",active:"Tabs-styles__active___xRcuF"};t0(zUa);var MG=Uc.default.bind(Anu),zse=function(u){var t=u.onUpdate,a=u.selectedKey,n=u.defaultSelectedKey,r=u.children,i=u.navTabsClassName,o=u.tabsContainerClassName,s=u.navLinkClassName,l=u.activeClassName,c=Kt.useState([]),d=Yr(c,2),E=d[0],h=d[1];Kt.useEffect(function(){var C=[];ne.default.Children.forEach(r,function(y){if(ne.default.isValidElement(y)){var b=y.props,F=b.name,S=b.eventKey,M=b.children;C.push({name:F,key:S,component:M})}}),h(C)},[r]);var f=Kt.useState(n||(E&&E.length?E[0].key:null)),m=Yr(f,2),p=m[0],D=m[1],g=function(y){D(y),t&&t(y)},v=function(){var y=E.find(function(b){var F=b.key;return F===(a||p)});return y?y.component:null};return ne.default.createElement(ne.default.Fragment,null,ne.default.createElement("nav",{className:MG("nav-tabs",i)},E.map(function(C,y){var b=C.key,F=C.name;return ne.default.createElement("a",{key:b,className:MG("tab-item",s,lE({},l||Anu.active,p===b)),onClick:function(){return g(b)},role:"tab",tabIndex:y},F)})),ne.default.createElement("section",{className:MG(o)},v()))};zse.propTypes={activeClassName:Oe.default.string,children:Oe.default.node.isRequired,defaultSelectedKey:Oe.default.string,navLinkClassName:Oe.default.string,navTabsClassName:Oe.default.string,onUpdate:Oe.default.func,selectedKey:Oe.default.string,tabsContainerClassName:Oe.default.string};zse.defaultProps={activeClassName:null,defaultSelectedKey:null,navLinkClassName:null,navTabsClassName:null,onUpdate:null,selectedKey:null,tabsContainerClassName:null};var DO=function(u){var t=u.children;return t};DO.propTypes={children:Oe.default.node.isRequired};var OUa=".ReqDetail-styles__section-container___JHZCz{width:100%}.ReqDetail-styles__section-title-row___mSF8m{align-items:center;background:#f7f8fa;border-bottom:1px solid #dbe0ea;border-top:1px solid #dbe0ea;color:#1e2127;cursor:pointer;display:flex;font-size:13px;font-weight:500;padding:4px 12px;width:100%}.ReqDetail-styles__section-title-row___mSF8m:first-child{border-top:0}.ReqDetail-styles__section-title-row___mSF8m .ReqDetail-styles__section-title___hc3Hi{align-items:center;display:flex}.ReqDetail-styles__section-title-row___mSF8m .ReqDetail-styles__section-title___hc3Hi .ReqDetail-styles__caret-icon___r9OKY{fill:#6d7584;height:16px;margin-right:4px;width:16px}.ReqDetail-styles__section-title-row___mSF8m .ReqDetail-styles__encode-url___gm0tr{font-size:12px;margin-left:12px}.ReqDetail-styles__section-title-row___mSF8m span:focus,.ReqDetail-styles__section-title-row___mSF8m:focus{outline:none}.ReqDetail-styles__section-detail___MvXed{padding:8px 12px;width:100%}.ReqDetail-styles__section-detail___MvXed .ReqDetail-styles__info-row___QXOqe{font-size:12px;margin:0;padding-bottom:4px}.ReqDetail-styles__section-detail___MvXed .ReqDetail-styles__info-row___QXOqe:last-child{padding-bottom:0}.ReqDetail-styles__section-detail___MvXed .ReqDetail-styles__info-caption___p-Y-j{font-weight:700;padding-right:8px}.ReqDetail-styles__section-detail___MvXed .ReqDetail-styles__info-value___4gnJ-{word-break:break-all}.ReqDetail-styles__no-payload___NNYCE{align-items:center;color:#1e2127;display:flex;font-size:18px;justify-content:center;width:100%}.ReqDetail-styles__payload-content___Ej2F8{display:flex;flex-direction:column;font-size:12px;width:100%}.ReqDetail-styles__payload-content___Ej2F8 .ReqDetail-styles__copy-button___4-PO5{background:#fff;display:flex;justify-content:end;margin-top:-8px;position:sticky;top:0;width:100%}.ReqDetail-styles__payload-content___Ej2F8 .ReqDetail-styles__payload-body___YIngg{font-family:monospace;white-space:pre-wrap;word-break:break-all}",da={brandBlue:"#0E75DD","section-container":"ReqDetail-styles__section-container___JHZCz","section-title-row":"ReqDetail-styles__section-title-row___mSF8m","section-title":"ReqDetail-styles__section-title___hc3Hi","caret-icon":"ReqDetail-styles__caret-icon___r9OKY","encode-url":"ReqDetail-styles__encode-url___gm0tr","section-detail":"ReqDetail-styles__section-detail___MvXed","info-row":"ReqDetail-styles__info-row___QXOqe","info-caption":"ReqDetail-styles__info-caption___p-Y-j","info-value":"ReqDetail-styles__info-value___4gnJ-","no-payload":"ReqDetail-styles__no-payload___NNYCE","payload-content":"ReqDetail-styles__payload-content___Ej2F8","copy-button":"ReqDetail-styles__copy-button___4-PO5","payload-body":"ReqDetail-styles__payload-body___YIngg"};t0(OUa);var Ose=function(u){var t=u.data;return ne.default.createElement("div",{className:da["section-detail"]},Object.entries(aGa).map(function(a){var n=Yr(a,2),r=n[0],i=n[1],o=i.key,s=i.name;return ne.default.createElement("div",{key:r,className:da["info-row"]},ne.default.createElement("span",{className:da["info-caption"]},"".concat(s,":")),ne.default.createElement("span",{className:da["info-value"]},o==="status"&&t.error?t.error:t[o]))}))};Ose.propTypes={data:Oe.default.object};Ose.defaultProps={data:null};var _se=function(u){var t=u.data;return ne.default.createElement("div",{className:da["section-detail"]},t.headers.response.map(function(a,n){var r=a.name,i=a.value;return ne.default.createElement("div",{key:"".concat(r,"-").concat(n),className:da["info-row"]},ne.default.createElement("span",{className:da["info-caption"]},"".concat(r,":")),ne.default.createElement("span",{className:da["info-value"]},i))}))};_se.propTypes={data:Oe.default.object};_se.defaultProps={data:null};var Tse=function(u){var t=u.data;return ne.default.createElement("div",{className:da["section-detail"]},t.headers.request.map(function(a,n){var r=a.name,i=a.value;return ne.default.createElement("div",{key:"".concat(r,"-").concat(n),className:da["info-row"]},ne.default.createElement("span",{className:da["info-caption"]},"".concat(r,":")),ne.default.createElement("span",{className:da["info-value"]},i))}))};Tse.propTypes={data:Oe.default.object};Tse.defaultProps={data:null};var Mse=function(u){var t=u.className;return ne.default.createElement("svg",{className:t,height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("path",{d:"M5.04607 8.29925C4.94259 8.1833 5.02523 8 5.181 8H18.8192C18.975 8 19.0577 8.1833 18.9542 8.29925L12.1351 15.9397C12.0632 16.0201 11.937 16.0201 11.8652 15.9397L5.04607 8.29925Z"}))};Mse.propTypes={className:Oe.default.string};Mse.defaultProps={className:""};var Pse=function(u){var t=u.className;return ne.default.createElement("svg",{className:t,height:"24",viewBox:"0 0 25 24",width:"25",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("path",{d:"M8.42327 18.954C8.30732 19.0575 8.12402 18.9748 8.12402 18.8191L8.12402 5.18082C8.12402 5.02505 8.30732 4.9424 8.42327 5.04589L16.0637 11.865C16.1441 11.9368 16.1441 12.0631 16.0637 12.1349L8.42327 18.954Z"}))};Pse.propTypes={className:Oe.default.string};Pse.defaultProps={className:""};var jse=function(u){var t=u.onClick,a=u.eventKey,n=u.isEncodeEnabled,r=u.isOpen,i=u.onPayloadTransform,o=u.isPayloadTransformed,s=u.isParseEnabled,l=nGa[s?"parse":"encode"][o];return ne.default.createElement("div",{className:da["section-title-row"]},ne.default.createElement("span",{className:da["section-title"],onClick:function(){return t(wye[a].key)},role:"button",tabIndex:0},r?ne.default.createElement(Mse,{className:da["caret-icon"]}):ne.default.createElement(Pse,{className:da["caret-icon"]}),wye[a].name),(n||s)&&ne.default.createElement("span",{className:da["encode-url"],onClick:i,role:"button",tabIndex:0},"view ".concat(l)))};jse.propTypes={eventKey:Oe.default.string.isRequired,isEncodeEnabled:Oe.default.bool,isOpen:Oe.default.bool,isParseEnabled:Oe.default.bool,isPayloadTransformed:Oe.default.bool,onClick:Oe.default.func.isRequired,onPayloadTransform:Oe.default.func.isRequired};jse.defaultProps={isEncodeEnabled:!1,isOpen:!1,isParseEnabled:!1,isPayloadTransformed:!0};var Xh=function(u){var t=u.eventKey,a=u.data,n=u.component,r=u.isEncodeEnabled,i=u.isParseEnabled,o=u.isVisible,s=Kt.useState(o),l=Yr(s,2),c=l[0],d=l[1],E=Kt.useState(!0),h=Yr(E,2),f=h[0],m=h[1],p=function(){return m(!f)},D=function(){return n({data:a,isPayloadTransformed:f,onChangeEncode:p})};return ne.default.createElement(ne.default.Fragment,null,ne.default.createElement(jse,{eventKey:t,isEncodeEnabled:r,isOpen:c,isParseEnabled:i,isPayloadTransformed:f,onClick:function(){return d(!c)},onPayloadTransform:p}),c&&ne.default.createElement(D,null))};Xh.propTypes={component:Oe.default.func.isRequired,data:Oe.default.object,eventKey:Oe.default.string.isRequired,isEncodeEnabled:Oe.default.bool,isParseEnabled:Oe.default.bool,isVisible:Oe.default.bool};Xh.defaultProps={data:null,isEncodeEnabled:!1,isParseEnabled:!1,isVisible:!1};var Nse=function(u){var t=u.data;return t?ne.default.createElement("section",{className:da["section-container"]},ne.default.createElement(Xh,{component:Ose,data:t,eventKey:"general",isVisible:!0}),ne.default.createElement(Xh,{component:Tse,data:t,eventKey:"requestHeaders"}),ne.default.createElement(Xh,{component:_se,data:t,eventKey:"responseHeaders"})):null};Nse.propTypes={data:Oe.default.object};Nse.defaultProps={data:null};var Rse=function(u){var t=u.className;return ne.default.createElement("svg",{className:t,height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("path",{clipRule:"evenodd",d:"M3.33792 3.33794C3.82607 2.84979 4.61753 2.84979 5.10569 3.33794L12 10.2322L18.8943 3.33794C19.3824 2.84979 20.1739 2.84979 20.662 3.33794C21.1502 3.8261 21.1502 4.61755 20.662 5.10571L13.7677 12L20.662 18.8943C21.1502 19.3824 21.1502 20.1739 20.662 20.6621C20.1739 21.1502 19.3824 21.1502 18.8943 20.6621L12 13.7678L5.10569 20.6621C4.61753 21.1502 3.82607 21.1502 3.33792 20.6621C2.84976 20.1739 2.84976 19.3824 3.33792 18.8943L10.2322 12L3.33792 5.10571C2.84976 4.61755 2.84976 3.8261 3.33792 3.33794Z",fillRule:"evenodd"}))};Rse.propTypes={className:Oe.default.string};Rse.defaultProps={className:""};var _Ua=".CopyAllButton-styles__copy-button___Xxmiv{color:#0e75dd;font-size:12px;height:26px}.CopyAllButton-styles__copy-button___Xxmiv .CopyAllButton-styles__copy-text___wsmT3{padding-left:4px}.CopyAllButton-styles__copy-button___Xxmiv .CopyAllButton-styles__copy-icon___hPCHy{fill:#0e75dd;height:12px;width:12px}",Gw={brandBlue:"#0E75DD","copy-button":"CopyAllButton-styles__copy-button___Xxmiv","copy-text":"CopyAllButton-styles__copy-text___wsmT3","copy-icon":"CopyAllButton-styles__copy-icon___hPCHy"};t0(_Ua);var Lse=function(u){var t=u.className;return ne.default.createElement("svg",{className:t,height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("path",{clipRule:"evenodd",d:"M14.5 0C15.3284 0 16 0.671573 16 1.5V4H22C23.1046 4 24 4.89543 24 6V22C24 23.1046 23.1046 24 22 24H10C8.89543 24 8 23.1046 8 22V20H1.5C0.671572 20 0 19.3284 0 18.5V5.34711C0 4.93755 0.167468 4.5458 0.463528 4.2628L4.4882 0.415691C4.76731 0.148892 5.13856 0 5.52467 0H14.5ZM22 6V22H10V11.2H14.9999C15.2652 11.2 15.5195 11.0946 15.707 10.9071C15.8946 10.7195 15.9999 10.4652 15.9999 10.2V6H22ZM13.9999 6H13.7252L10.3775 9.19997H13.9999V6Z",fillRule:"evenodd"}))};Lse.propTypes={className:Oe.default.string};Lse.defaultProps={className:""};var $se=function(u){var t=u.className;return ne.default.createElement("svg",{className:t,height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("path",{clipRule:"evenodd",d:"M23.5789 2.30868C24.0956 2.75821 24.1435 3.53404 23.6857 4.04153L7.48717 22L0.313554 14.0321C-0.143724 13.5242 -0.0951526 12.7485 0.42204 12.2994C0.939233 11.8503 1.7292 11.898 2.18648 12.4059L7.48892 18.2954L21.8143 2.41361C22.2721 1.90612 23.0621 1.85914 23.5789 2.30868Z",fillRule:"evenodd"}))};$se.propTypes={className:Oe.default.string};$se.defaultProps={className:""};var p$=function(u){var t=u.text,a=Kt.useState(!1),n=Yr(a,2),r=n[0],i=n[1],o=Kt.useRef(null),s=function(){navigator.clipboard.writeText(t),i(!0),o.current&&clearTimeout(o.current),o.current=setTimeout(function(){i(!1)},5e3)};return ne.default.createElement(Bd,{className:Gw["copy-button"],onClick:s,variant:"text"},r?ne.default.createElement($se,{className:Gw["copy-icon"]}):ne.default.createElement(Lse,{className:Gw["copy-icon"]}),ne.default.createElement("span",{className:Gw["copy-text"]},r?"Copied!":"Copy All"))};p$.propTypes={text:Oe.default.any};p$.defaultProps={text:""};var TUa=function(){return ne.default.createElement("h4",{className:da["no-payload"]},"This request has no response data available.")},Ise=function(u){var t=u.data,a=t&&t.body?t.body:null;return a?ne.default.createElement("div",{className:da["section-detail"]},ne.default.createElement("div",{className:da["payload-content"]},ne.default.createElement("div",{className:da["copy-button"]},ne.default.createElement(p$,{text:a})),ne.default.createElement("span",{className:da["payload-body"]},a))):ne.default.createElement(TUa,null)};Ise.propTypes={data:Oe.default.object};Ise.defaultProps={data:null};var Kse=function(u){var t=u.data,a=u.isPayloadTransformed;return ne.default.createElement("div",{className:da["section-detail"]},t.headers.queryString.map(function(n,r){var i=n.name,o=n.value;return ne.default.createElement("div",{key:"".concat(i,"-").concat(r),className:da["info-row"]},ne.default.createElement("span",{className:da["info-caption"]},"".concat(i,":")),ne.default.createElement("span",{className:da["info-value"]},a?decodeURIComponent(o):o))}))};Kse.propTypes={data:Oe.default.object,isPayloadTransformed:Oe.default.bool.isRequired};Kse.defaultProps={data:null};var Hse=function(u){var t=u.data,a=u.isPayloadTransformed;return ne.default.createElement("div",{className:da["section-detail"]},t.headers.postData.params.map(function(n,r){var i=n.name,o=n.value;return ne.default.createElement("div",{key:"".concat(i,"-").concat(r),className:da["info-row"]},ne.default.createElement("span",{className:da["info-caption"]},"".concat(i,":")),ne.default.createElement("span",{className:da["info-value"]},a?decodeURIComponent(o):o))}))};Hse.propTypes={data:Oe.default.object,isPayloadTransformed:Oe.default.bool.isRequired};Hse.defaultProps={data:null};var Vse=function(u){var t=u.data,a=u.isPayloadTransformed,n=t.headers.postData.text,r=Kt.useMemo(function(){return FGa(n)},[n]),i=a?r:n;return ne.default.createElement("div",{className:da["section-detail"]},ne.default.createElement("div",{className:da["payload-content"]},ne.default.createElement("div",{className:da["copy-button"]},ne.default.createElement(p$,{text:i})),ne.default.createElement("div",{className:da["payload-body"]},i)))};Vse.propTypes={data:Oe.default.object,isPayloadTransformed:Oe.default.bool.isRequired};Vse.defaultProps={data:null};var Gse=function(u){var t,a,n,r=u.data;return!((t=r.headers.postData)!==null&&t!==void 0&&t.text)&&!((a=r.headers.postData)!==null&&a!==void 0&&a.params)&&!((n=r.headers.queryString)!==null&&n!==void 0&&n.length)?ne.default.createElement("h4",{className:da["no-payload"]},"This request has no request data available."):r?ne.default.createElement("section",{className:da["section-container"]},r.headers.postData&&r.headers.postData.text&&ne.default.createElement(Xh,{component:Vse,data:r,eventKey:"requestPayload",isParseEnabled:!0,isVisible:!0}),r.headers.queryString&&!!r.headers.queryString.length&&ne.default.createElement(Xh,{component:Kse,data:r,eventKey:"queryString",isEncodeEnabled:!0}),r.headers.postData&&r.headers.postData.params&&ne.default.createElement(Xh,{component:Hse,data:r,eventKey:"formData",isEncodeEnabled:!0})):null};Gse.propTypes={data:Oe.default.object};Gse.defaultProps={data:null};var MUa=function(){var u=Ns(),t=u.actions,a=u.state,n=a.get("reqDetail"),r=function(){t.selectRequest(null)};return ne.default.createElement("div",{className:jm["req-detail-container"]},ne.default.createElement("button",{"aria-label":"Close button",className:jm["close-button"],onClick:r,type:"button"},ne.default.createElement(Rse,{className:jm["close-icon"]})),ne.default.createElement(zse,{activeClassName:jm.active,defaultSelectedKey:"headers",navLinkClassName:jm["tab-link"],navTabsClassName:jm["nav-tabs"],tabsContainerClassName:jm["tabs-container"]},ne.default.createElement(DO,{eventKey:"headers",name:"Headers"},ne.default.createElement(Nse,{data:n})),ne.default.createElement(DO,{eventKey:"request",name:"Request"},ne.default.createElement(Gse,{data:n})),ne.default.createElement(DO,{eventKey:"response",name:"Response"},ne.default.createElement(Ise,{data:n}))))},PUa=".MainContainer-styles__viewer-container___l41Pm{display:flex;flex-direction:column;height:100%;justify-content:space-between}.MainContainer-styles__main-container___DyCC-{display:flex;height:100%;outline:none;overflow:auto;overflow-x:hidden;width:100%}",Kye={brandBlue:"#0E75DD","viewer-container":"MainContainer-styles__viewer-container___l41Pm","main-container":"MainContainer-styles__main-container___DyCC-"};t0(PUa);var jUa=".TimelineContainer-styles__timeline-container___aDQbZ{border-bottom:1px solid #d8dde3;width:100%}",NUa={brandBlue:"#0E75DD","timeline-container":"TimelineContainer-styles__timeline-container___aDQbZ"};t0(jUa);var RUa=".TimelineChart-styles__chart-container___Hkzqm{margin:0 8px}.TimelineChart-styles__scatter-chart___Umnwb tspan{fill:gray;font-size:10px}",Hye={brandBlue:"#0E75DD","chart-container":"TimelineChart-styles__chart-container___Hkzqm","scatter-chart":"TimelineChart-styles__scatter-chart___Umnwb"};t0(RUa);var Use=function(u){var t=u.payload,a=u.maxTime,n=u.cx,r=u.cy,i=u.index,o=t.timings,s=Kt.useMemo(function(){return anu(o,a,n,i,r)},[o,a]);return t?ne.default.createElement("g",null,s.map(function(l){return ne.default.createElement("rect",I1({key:l.key},l,{height:unu}))})):null};Use.propTypes={cx:Oe.default.number,cy:Oe.default.number,index:Oe.default.number,maxTime:Oe.default.number.isRequired,payload:Oe.default.object};Use.defaultProps={cx:0,cy:0,index:0,payload:null};var LUa=".TimelineTooltip-styles__tooltip___lq96r{background:#fff;border:1px solid #e6e6e6;border-radius:3px;color:#555;display:block;font-size:12px;height:auto;opacity:1;padding:8px;width:300px}.TimelineTooltip-styles__content___dsjFO{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}",Vye={brandBlue:"#0E75DD",tooltip:"TimelineTooltip-styles__tooltip___lq96r",content:"TimelineTooltip-styles__content___dsjFO"};t0(LUa);var Wse=function(u){var t=u.payload;return!t||!t.length?null:ne.default.createElement("div",{className:Vye.tooltip},ne.default.createElement("div",{className:Vye.content},t[0].payload.filename),ne.default.createElement("div",null,"Started at: ".concat(nF(t[0].payload.timings.startTime))))};Wse.propTypes={payload:Oe.default.array};Wse.defaultProps={payload:null};var Bnu=function(u){var t=u.chartData,a=u.totalNetworkTime;return ne.default.createElement("div",{className:Hye["chart-container"]},ne.default.createElement(Tx.ResponsiveContainer,{height:100,width:"100%"},ne.default.createElement(Tx.ScatterChart,{className:Hye["scatter-chart"]},ne.default.createElement(Tx.XAxis,{axisLine:!1,dataKey:"timings.startTime",domain:[0,a],interval:"preserveStartEnd",orientation:"top",tickCount:10,tickFormatter:nF,tickLine:!1,type:"number"}),ne.default.createElement(Tx.YAxis,{dataKey:"index",domain:["min","max"],hide:!0,reversed:!0}),ne.default.createElement(Tx.Tooltip,{content:ne.default.createElement(Wse,null)}),ne.default.createElement(Tx.Scatter,{data:t,shape:ne.default.createElement(Use,{maxTime:a})}))))};Bnu.propTypes={chartData:Oe.default.array.isRequired,totalNetworkTime:Oe.default.number.isRequired};var $Ua=function(){var u=Ns(),t=u.state,a=t.get("data"),n=t.get("actualData"),r=t.get("error"),i=t.get("totalNetworkTime");return r||!n.size?null:ne.default.createElement("section",{className:NUa["timeline-container"]},ne.default.createElement(Bnu,{chartData:a.toArray(),totalNetworkTime:i}))},IUa=Uc.default.bind(K4),Jse=function(u){var t=u.dataSummary,a=u.showAllInfo;return ne.default.createElement("div",{className:IUa("network-table-footer")},a?ne.default.createElement(ne.default.Fragment,null,ne.default.createElement("span",null,"".concat(t.get("totalRequests")," requests")),ne.default.createElement("span",null,"".concat(Mg(t.get("totalTransferredSize"))," transferred")),ne.default.createElement("span",null,"".concat(Mg(t.get("totalUncompressedSize"))," resources")),ne.default.createElement("span",null,"Finished: ".concat(nF(t.get("finish")))),ne.default.createElement("span",null,"DOMContentLoaded: ".concat(nF(t.get("timings").DOMContentLoaded))),ne.default.createElement("span",null,"Load: ".concat(nF(t.get("timings").onLoad)))):ne.default.createElement("span",null,"".concat(t.get("totalRequests")," requests")))};Jse.propTypes={dataSummary:Oe.default.object.isRequired,showAllInfo:Oe.default.bool};Jse.defaultProps={showAllInfo:!0};var KUa=function(){var u=Ns(),t=u.state,a=YD(),n=a.showTimeline,r=t.get("loading"),i=t.get("showReqDetail"),o=t.get("dataSummary"),s=t.get("actualData");return ne.default.createElement(ne.default.Fragment,null,ne.default.createElement(wse,{show:r,text:XVa},ne.default.createElement("div",{className:Kye["viewer-container"]},ne.default.createElement("div",null,n&&ne.default.createElement($Ua,null),ne.default.createElement(oUa,null)),ne.default.createElement("section",{className:Kye["main-container"]},ne.default.createElement(BUa,null),i&&ne.default.createElement(MUa,null)),s.size?ne.default.createElement(Jse,{dataSummary:o}):null)))},HUa=".NetworkViewer-styles__network-viewer___H9u5-{height:100%}.NetworkViewer-styles__network-viewer___H9u5- *{box-sizing:border-box}",VUa={"network-viewer":"NetworkViewer-styles__network-viewer___H9u5-"};t0(HUa);var GUa=Uc.default.bind(VUa),qse=function(u){var t=u.file,a=u.data,n=u.fetchOptions,r=u.scrollTimeStamp,i=u.options,o=u.onPause,s=u.onRequestSelect,l=u.onResume,c=u.onReset,d=u.scrollRequestPosition,E=u.autoHighlightChange,h=u.onDataLoaded,f=u.onDataError,m=u.containerClassName;return ne.default.createElement("section",{className:GUa("network-viewer",m)},ne.default.createElement(mse,{options:i},ne.default.createElement(cse,{autoHighlightChange:E,data:a,fetchOptions:n,file:t,onDataError:f,onDataLoaded:h,onPause:o,onRequestSelect:s,onReset:c,onResume:l,scrollRequestPosition:d,scrollTimeStamp:r},ne.default.createElement(KUa,null))))};qse.propTypes={autoHighlightChange:Oe.default.bool,containerClassName:Oe.default.string,data:Oe.default.object,fetchOptions:Oe.default.object,file:Oe.default.string,onDataError:Oe.default.func,onDataLoaded:Oe.default.func,onPause:Oe.default.func,onRequestSelect:Oe.default.func,onReset:Oe.default.func,onResume:Oe.default.func,options:Oe.default.object,scrollRequestPosition:Oe.default.oneOf(["before","after","near"]),scrollTimeStamp:Oe.default.number};qse.defaultProps={autoHighlightChange:!1,containerClassName:null,data:null,fetchOptions:{withCredentials:!0},file:null,onDataError:null,onDataLoaded:null,onPause:function(){},onRequestSelect:function(){},onReset:function(){},onResume:function(){},options:null,scrollRequestPosition:"near",scrollTimeStamp:null};var UUa=fqe.NetworkViewer=qse;function WUa(e){const{toTime:u}=e,t=R.useMemo(()=>u?e.har.log.entries.filter(n=>new Date(n.startedDateTime)<=u):e.har.log.entries,[e.har.log.entries,u]),a={log:{...e.har.log,entries:t}};return x.jsx(UUa,{data:a,options:{showTimeline:!1,showImportHAR:!1}})}function JUa(e){const{html:u}=e;return x.jsx($Je,{xml:u})}const qUa=We({name:x9,description:ge(),folderPath:ge().transform(e=>e===$J?void 0:e)}),ZUa=e=>{const[u,t]=k.useState(!1),a=e.moduleFolders.map(d=>d.id),n=e.testFolders.map(d=>d.id),r=Array.from(new Set([...a,...n,$J])),i=$N({resolver:IN(qUa),defaultValues:{name:"",description:"",folderPath:$J},mode:"onChange"}),[o,s]=k5(async d=>{var h;const E={name:d.name,description:d.description,enabled:!0,steps:e.steps,testFilePath:e.testPath,folderPath:d.folderPath};try{const f=await Ya(`${Va}/api/modules`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(E)});(h=e.onSuccess)==null||h.call(e,f),t(!1)}catch(f){hn.error("Failed to create module.",{description:`${f}`})}},[e.steps,e.onSuccess]),{isDirty:l,isValid:c}=i.formState;return k.useEffect(()=>{i.reset()},[i,u]),x.jsxs(CD,{open:u,onOpenChange:t,children:[x.jsx(yD,{asChild:!0,children:x.jsx(Tt,{variant:"outline",disabled:e.disabled,children:"Save module"})}),x.jsxs(Gf,{children:[x.jsxs(Uf,{children:[x.jsx(Wf,{children:"Create module"}),x.jsx(bD,{children:"Group and reuse steps across different tests."})]}),x.jsx(KN,{...i,children:x.jsxs("form",{onSubmit:i.handleSubmit(s),className:"space-y-6",children:[x.jsx(Qa,{control:i.control,name:"name",render:({field:d})=>x.jsxs($a,{children:[x.jsx(Di,{children:"Name"}),x.jsx(Ia,{children:x.jsx(Y2,{placeholder:"example-module-name",...d})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:i.control,name:"description",render:({field:d})=>x.jsxs($a,{children:[x.jsx(Di,{children:"Description"}),x.jsx(Ia,{children:x.jsx(I9,{...d})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:i.control,name:"folderPath",render:({field:d})=>x.jsxs($a,{children:[x.jsx(Di,{children:"Folder"}),x.jsx(Ia,{children:x.jsxs(c0,{value:d.value,onValueChange:d.onChange,defaultValue:"/",children:[x.jsx(Wn,{children:x.jsx(d0,{placeholder:"Select a folder"})}),x.jsx(Jn,{children:r.sort((E,h)=>E.localeCompare(h)).map(E=>x.jsx(Ka,{value:E,children:E},E))})]})}),x.jsx(un,{})]})}),x.jsx(Q2,{children:x.jsx(Tt,{type:"submit",disabled:!l||!c||o.loading,children:"Create module"})})]})})]})]})},QUa=e=>{const u=R.useMemo(()=>Ute.parse(e.advanced),[e.advanced]),t=$N({resolver:IN(Q6t),defaultValues:{name:e.name,baseUrl:e.baseUrl,retries:e.retries,disabled:e.disabled,advanced:u},mode:"onChange"});R.useEffect(()=>{e.saveInProgress||t.reset({name:e.name,baseUrl:e.baseUrl,retries:e.retries,disabled:e.disabled,advanced:u})},[u,t,e.baseUrl,e.name,e.isOpen,e.retries,e.saveInProgress,e.disabled]);const{isDirty:a,isValid:n}=t.formState,r=l=>{var c,d,E,h;l.advanced.pageLoadTimeoutMs===-1&&(l.advanced.pageLoadTimeoutMs=void 0),l.advanced.smartWaitingTimeoutMs===-1&&(l.advanced.smartWaitingTimeoutMs=void 0),l.advanced.userAgent===""&&(l.advanced.userAgent=void 0),((c=l.parameters)==null?void 0:c.length)===0&&(l.parameters=void 0),((d=l.advanced.localChromeExtensionPaths)==null?void 0:d.length)===0&&(l.advanced.localChromeExtensionPaths=void 0),!((E=l.advanced.basicAuthorization)!=null&&E.username)&&!((h=l.advanced.basicAuthorization)!=null&&h.password)&&(l.advanced.basicAuthorization=void 0),e.onSave(l)},i=Object.entries(tvt).map(([l,c])=>({label:c,value:l})),o=t.getValues("advanced.locale"),s=i.find(l=>l.value===o)||{label:o,value:o};return x.jsxs(CD,{onOpenChange:e.onOpenChange,open:e.isOpen,children:[x.jsx(yD,{asChild:!0,children:x.jsxs(Tt,{variant:"outline",children:[x.jsx(cAt,{className:"h-4 w-4"}),"Options"]})}),x.jsxs(Gf,{children:[x.jsxs(Uf,{children:[x.jsx(Wf,{children:"Test options"}),x.jsx(bD,{children:"Once you save these settings, the editor session will reload."})]}),x.jsx(KN,{...t,children:x.jsxs("form",{onSubmit:t.handleSubmit(r),className:"space-y-4",children:[x.jsxs(hc,{defaultValue:"general",children:[x.jsxs(dl,{children:[x.jsx(pa,{value:"general",children:"General"}),x.jsx(pa,{value:"browser",children:"Browser"}),x.jsx(pa,{value:"ai",children:"AI"}),x.jsx(pa,{value:"network",children:"Network"})]}),x.jsxs(Da,{value:"general",className:"space-y-4",children:[x.jsx(Qa,{control:t.control,name:"name",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Di,{children:"Name"}),x.jsx(Ia,{children:x.jsx(Y2,{placeholder:"example-test-name",...l})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"baseUrl",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:`The URL the test starts on. Defaults to the value of the ${ZF} in the environment if one is configured.`,children:"Override base URL"}),x.jsx(Ia,{children:x.jsx(Vt,{placeholder:"https://example.com",...l,value:l.value||""})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"retries",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"The number of additional attempts Momentic will make when a test fails. A value greater than zero is recommended to avoid transient errors.",children:"Retries"}),x.jsx(Ia,{children:x.jsx(Vt,{type:"number",min:0,max:10,...l,onChange:c=>l.onChange(c.target.valueAsNumber)})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"advanced.slowMoMs",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"Number of milliseconds to wait between step executions. Increasing this delay will make the test more closely emulate a human user at the cost of having a longer total execution time. Defaults to no delay.",children:"Slow Mo"}),x.jsx(Ia,{children:x.jsx(Vt,{type:"number",min:0,max:XW,value:l.value===-1||l.value==null?"":l.value,onChange:c=>{const d=parseInt(c.target.value);isNaN(d)?l.onChange(-1):l.onChange(d)}})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"disabled",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"Prevents the test from running.",children:"Disabled"}),x.jsx(Ia,{children:x.jsx("div",{children:x.jsx(F1,{onCheckedChange:c=>l.onChange(c),checked:l.value})})}),x.jsx(un,{})]})})]}),x.jsxs(Da,{value:"browser",className:"space-y-4",children:[x.jsx(Qa,{control:t.control,name:"advanced.browserType",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Di,{children:"Browser type"}),x.jsx(Ia,{children:x.jsxs(c0,{onValueChange:c=>l.onChange(c),value:l.value||"",children:[x.jsx(Wn,{className:"space-x-2",children:x.jsx(d0,{placeholder:"Select browser type..."})}),x.jsx(Jn,{children:Object.values(ff).map((c,d)=>x.jsx(A5,{value:c,tooltip:K8e[c],children:c},d))})]})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"advanced.viewport",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Di,{children:"Viewport"}),x.jsx(Ia,{children:x.jsxs(c0,{onValueChange:c=>l.onChange(Hp[c]),value:QW.find(c=>Object.keys(Sk(Hp[c]??{},l.value||{})).length===0),children:[x.jsx(Wn,{className:"space-x-2",children:x.jsx(d0,{placeholder:"Select viewport..."})}),x.jsx(Jn,{children:QW.map((c,d)=>{const E=Hp[c];return x.jsxs(Ka,{value:c,children:[c," (",E.width,"x",E.height,")"]},d)})})]})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"advanced.locale",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Di,{children:"Locale"}),x.jsx(Ia,{children:x.jsx(Rb,{...l,isClearable:!0,className:"my-react-select-container",classNamePrefix:"my-react-select",value:s,options:i,onChange:c=>{l.onChange((c==null?void 0:c.value)||"")}})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"advanced.timezone",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Di,{children:"Timezone"}),x.jsx(Ia,{children:x.jsxs(c0,{onValueChange:c=>l.onChange(c),value:l.value||"",children:[x.jsx(Wn,{className:"space-x-2",children:x.jsx(d0,{placeholder:"Select timezone..."})}),x.jsx(Jn,{children:G8e.map((c,d)=>x.jsx(Ka,{value:c,children:c},d))})]})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"advanced.colorScheme",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Di,{children:"Color Scheme"}),x.jsx(Ia,{children:x.jsxs(c0,{onValueChange:c=>l.onChange(c),value:l.value||"",children:[x.jsx(Wn,{className:"space-x-2",children:x.jsx(d0,{placeholder:"Select color scheme..."})}),x.jsx(Jn,{children:[{label:"Light",value:"light"},{label:"Dark",value:"dark"}].map(c=>x.jsx(Ka,{value:c.value,children:c.label},c.value))})]})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"advanced.disableJavaScript",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"Disable JavaScript execution on all pages. Useful for testing static rendering.",children:"Disable JavaScript"}),x.jsx(Ia,{children:x.jsx("div",{children:x.jsx(F1,{onCheckedChange:c=>l.onChange(c),checked:l.value})})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"advanced.disableGpu",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"Disable GPU emulation. This can greatly improve the loading performance on certain pages but removes support for 3D graphics.",children:"Disable GPU"}),x.jsx(Ia,{children:x.jsx("div",{children:x.jsx(F1,{onCheckedChange:c=>l.onChange(c),checked:l.value})})}),x.jsx(un,{})]})}),e.mode==="local"&&x.jsx(Qa,{control:t.control,name:"advanced.localChromeExtensionPaths",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"Path to a directory on disk containing an unpacked Chrome extension. Multiple extensions can be loaded by separating paths with a comma. This setting is only supported on the Google Chrome and Chromium browsers.",children:"Load Chrome extension"}),x.jsx(Ia,{children:x.jsx(Vt,{placeholder:"/tmp/my-extension-1,/tmp/my-extension-2",...l,value:l.value?l.value.join(","):"",onChange:c=>{c.target.value.trim()?l.onChange(c.target.value.split(",")):l.onChange([])}})}),x.jsx(un,{})]})})]}),x.jsxs(Da,{value:"ai",className:"space-y-4",children:[x.jsx(Qa,{control:t.control,name:"advanced.disableAICaching",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"Whether to cache AI responses. Turning this off will cause greater latency and variance.",children:"AI caching"}),x.jsx(Ia,{children:x.jsx("div",{children:x.jsx(F1,{onCheckedChange:c=>l.onChange(!c),checked:!l.value})})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"advanced.failureRecovery",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"Let Momentic automatically suggest changes to failing tests.",children:"Failure recovery"}),x.jsx(Ia,{children:x.jsxs(c0,{onValueChange:c=>{c===eJ.INHERIT?l.onChange(void 0):l.onChange(c===eJ.ENABLED)},value:Qyu(l.value),children:[x.jsx(Wn,{className:"space-x-2",children:x.jsx(d0,{placeholder:"Select option..."})}),x.jsx(Jn,{children:Yyu.map(({value:c,label:d},E)=>x.jsx(Ka,{value:c,children:d},E))})]})}),x.jsxs(Ck,{children:["Auto-recover from certain test failures by adding or changing test steps."," ",x.jsx(hqe,{slug:"/failure-recovery"})]}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"advanced.smartWaitingTimeoutMs",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"Maximum number of seconds that can be spent on smart waiting before each action. Smart waiting is a Momentic feature that automatically pauses for network requests to complete and the active page to stabilize before attempting each action. Set to zero to disable (default: 3 seconds).",children:"Smart waiting timeout"}),x.jsx(Ia,{children:x.jsx(Vt,{type:"number",min:0,max:YW/1e3,value:l.value===-1||l.value==null?"":l.value/1e3,onChange:c=>{const d=parseInt(c.target.value);isNaN(d)?l.onChange(-1):l.onChange(d*1e3)}})}),x.jsx(un,{})]})})]}),x.jsxs(Da,{value:"network",className:"space-y-4",children:[x.jsx(Qa,{control:t.control,name:"advanced.extraHeaders",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"Include extra HTTP headers on every request fired throughout the test. Useful for triggering unique test behavior on the backend or tagging traces.",children:"HTTP headers"}),x.jsx(Ia,{children:x.jsx(YA,{data:l.value||{},onChange:c=>{l.onChange(c)}})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"advanced.userAgent",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"Override the user agent reported by the browser. Defaults to Desktop Chrome Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36.",children:"Override user agent"}),x.jsx(Ia,{children:x.jsx(Vt,{...l,value:l.value||""})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"advanced.basicAuthorization.username",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"Specify a username that will be passed as an Authorization header when a 401 response code is received from the server.",children:"Basic Auth Username"}),x.jsx(Ia,{children:x.jsx(Vt,{...l,value:l.value||""})})]})}),x.jsx(Qa,{control:t.control,name:"advanced.basicAuthorization.password",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"Specify a password that will be passed as an Authorization header when a 401 response code is received from the server.",children:"Basic Auth Password"}),x.jsx(Ia,{children:x.jsx(Vt,{...l,value:l.value||""})})]})}),x.jsx(Qa,{control:t.control,name:"advanced.pageLoadTimeoutMs",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"Maximum number of seconds to wait for pages to load. All loads, includes those triggered by clicks, new tabs, and keyboard actions, will be subject to this timeout (default: 8 seconds).",children:"Page load timeout"}),x.jsx(Ia,{children:x.jsx(Vt,{type:"number",min:1,max:JW/1e3,value:l.value===void 0||l.value===-1?"":l.value/1e3,onChange:c=>{const d=parseInt(c.target.value);isNaN(d)?l.onChange(-1):l.onChange(d*1e3)}})}),x.jsx(un,{})]})})]})]}),x.jsx(Q2,{children:x.jsx(Tt,{type:"submit",disabled:e.saveInProgress||!a||!n,children:"Save test"})})]})})]})]})},YUa=e=>{const[u,t]=k.useState(!1),[a,n]=k5(async i=>{const o={...i,id:e.id,schemaVersion:e.schemaVersion};try{const s=await Ya(`${Va}/api/tests/${encodeURIComponent(e.testPath)}/metadata`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)}),l=uvt.parse(s);hn.success("Test saved!"),t(!1),e.onSuccess(l.newRelativeTestPath)}catch(s){hn.error("Failed to save test.",{description:`${s}`})}},[]);function r(i){try{oyt(i,e.envs??void 0)}catch(o){hn.error(o.message);return}n(i).catch(o=>hn.error(o.message))}return x.jsx(QUa,{...e,isOpen:u,onOpenChange:t,onSave:r,saveInProgress:a.loading,mode:"local"})},Uw="None",XUa=e=>{const u=e.value||Uw;return x.jsxs(c0,{value:u,onValueChange:t=>{t===Uw?e.onChange(void 0):e.onChange(t)},children:[x.jsxs(Wn,{className:"space-x-2",children:[x.jsx("span",{className:"text-muted-foreground",children:"Default environment:"}),x.jsx(d0,{placeholder:"Select environment"})]}),x.jsxs(Jn,{children:[x.jsx(Ka,{value:Uw,disabled:!e.baseUrl,children:Uw}),e.options.map(t=>x.jsx(A5,{value:t.name,tooltip:t.variables[ZF],children:t.name},t.name))]})]})},eWa=({test:e,modules:u,environments:t,testPath:a,tests:n})=>{var ou,Bu;const r=m9(),{logs:i,networkPages:o,networkEntries:s,a11yTree:l,isLoadingA11yTree:c,html:d,isLoadingHtml:E,isInPageLoad:h,validState:f,hasDiff:m,canceling:p,executing:D,recording:g,creatingModule:v,steps:C,debouncedSteps:y,stepsState:b,viewport:F,screenshot:S,iframeSrcUrls:M,error:T,testContext:O,activeTab:A,tabs:w,url:z,canEdit:_,canExecute:j,lastMouseLocation:$,canRecord:P,canRefresh:L,lintTriggerKey:V,interactive:G,handleRefresh:N,handleReset:K,handleSaveTestSuccess:U,handleRunAllSteps:W,handleStepChange:I,handleAdd:J,handleMoveToTop:Y,handleMoveUp:ae,handleMoveDown:ue,handleMoveToBottom:le,handleDuplicate:Z,handleUngroup:de,handleExecute:pe,handleExecuteTo:Ce,handleExecuteFrom:ee,handleDelete:ye,handleSelectChange:Ge,handleExpandChange:Te,handleLocate:q,handleStartCreatingModule:X,handleCreateModuleSuccess:ie,handleCancelCreateModule:Q,handleEditChange:te,handleCancelExecution:se,handleTrapKeyDown:_e,handleTrapMouseEvent:Le,handleTrapWheel:Ye,handleStartRecordingTarget:Je,handleActiveTabChange:tu,handleToggleRecord:au,handleFetchA11yTree:fu,handleFetchHtml:tt,handleLintStep:Rt,handleInteractiveChange:La}=Era({websocketUrl:Va,test:e,environments:t,platform:"local",logger:E_t}),Vu=hu=>{if(hu){window.location.replace(`/tests/${encodeURIComponent(hu)}`);return}r.revalidate(),K()},[ra,en]=k5(async(hu,wu=!0)=>{const Ee={schemaVersion:e.schemaVersion,stepLists:{steps:hu}};try{await Ya(`${Va}/api/tests/${encodeURIComponent(a)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(Ee)}),wu&&hn.success("Test saved!"),r.revalidate(),U(hu)}catch(Xe){hn.error("Failed to save test.",{description:`${Xe}`})}},[a,U,r]),ht=rE((hu=!0)=>{if(m&&!D){if(!f.valid){hn.error("Failed to save test.",{description:f.message});return}en(C,hu)}});k.useEffect(()=>{f.valid&&ht(!1)},[f,y]);const[,Wa]=k5(async hu=>{const wu={defaultEnv:hu};try{await Ya(`${Va}/api/tests/${encodeURIComponent(a)}/environments`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(wu)}),Vu()}catch(Ee){hn.error("Failed to update environment.",{description:`${Ee}`})}},[a,Vu]),Sa=lfu(()=>m),Wc=b.filter(hu=>hu.selected).length,De=k.useMemo(()=>u.map(hu=>hu.content),[u]),ce=k.useMemo(()=>QN(u).folders,[u]),we=k.useMemo(()=>ZN(n).folders,[n]);return x.jsxs("div",{className:"grid max-h-screen min-h-screen grid-rows-[auto_minmax(0px,_1fr)]",children:[x.jsxs("div",{className:"flex h-16 items-center gap-2 border-b px-6",children:[x.jsx(h5,{to:-1,children:x.jsx(sv,{className:"h-6 w-6"})}),x.jsx("div",{className:"font-semibold",children:D9(e.name)}),x.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[x.jsx(XUa,{value:(Bu=(ou=e.envs)==null?void 0:ou.find(hu=>hu.default))==null?void 0:Bu.name,baseUrl:e.baseUrl,onChange:hu=>{Wa(hu)},options:t}),x.jsx(YUa,{...e,testPath:a,onSuccess:Vu,schemaVersion:e.schemaVersion})]})]}),x.jsxs("div",{className:"grid h-full grid-cols-[auto_minmax(0px,_1fr)]",children:[x.jsxs("div",{className:"grid w-[25vw] min-w-[600px] grid-rows-[auto_auto_auto_1fr] overflow-auto border-r",children:[x.jsxs("div",{className:"flex flex-col border-b",children:[x.jsxs("div",{className:"flex items-center justify-end gap-2 p-2",children:[x.jsxs(Tt,{variant:"outline",disabled:!m||ra.loading,onClick:()=>ht(),children:[ra.loading?x.jsx(sAt,{className:"h-4 w-4 animate-spin"}):x.jsx(lAt,{className:"h-4 w-4"}),ra.loading?"Saving...":m?"Save":"Saved"]}),x.jsx(Tt,{variant:"outline",onClick:au,disabled:g?!1:!P,children:x.jsxs("div",{className:"flex items-center gap-2",children:[x.jsx(gAt,{className:"h-4 w-4"}),g?"Stop":"Record"]})}),x.jsxs(Tt,{variant:"outline",onClick:X,disabled:!_,children:[x.jsx(yTe,{className:"h-4 w-4"}),"Create module"]}),p?x.jsxs(vr,{defaultOpen:!0,children:[x.jsx(Cr,{asChild:!0,children:x.jsxs(Tt,{variant:"outline",className:"text-destructive hover:text-destructive",children:[x.jsx(VEe,{className:"h-4 w-4"}),"Canceling"]})}),x.jsx(nr,{side:"bottom",className:"max-w-xs",children:"Waiting for the current step to finish executing. This may take a few seconds."})]}):D?x.jsxs(Tt,{variant:"outline",className:"text-destructive hover:text-destructive",onClick:se,children:[x.jsx(VEe,{className:"h-4 w-4"}),"Cancel"]}):x.jsxs(Tt,{onClick:W,disabled:!j,children:[x.jsx(bTe,{className:"h-4 w-4"}),"Run from start"]})]}),v&&x.jsxs(x.Fragment,{children:[x.jsx(Hh,{}),x.jsxs("div",{className:"flex items-center justify-end gap-2 p-2",children:[x.jsx("div",{children:"Select steps using the checkboxes."}),x.jsx(ZUa,{disabled:Wc<1||!_,steps:C.filter((hu,wu)=>{var Ee;return(Ee=b[wu])==null?void 0:Ee.selected}).filter(HF),onSuccess:ie,testId:e.id,testPath:a,testFolders:we,moduleFolders:ce}),x.jsx(Tt,{variant:"outline",size:"icon",onClick:Q,children:x.jsx(sv,{className:"h-4 w-4"})})]})]}),g&&x.jsxs(x.Fragment,{children:[x.jsx(Hh,{}),x.jsxs("div",{className:"flex items-center justify-center gap-2 p-2 text-sm",children:[x.jsx(gae,{color:"red",fill:"red",className:"h-3 w-3"}),"Use your mouse and keyboard to interact with the page."]})]})]}),x.jsx("div",{className:"relative space-y-2 overflow-auto p-4 empty:pt-0",children:b.map((hu,wu)=>{const Ee=Xe=>[wu,...Xe];return x.jsx(yJe,{index:wu,platform:"local",parentStepIdChain:[],modules:De,moduleFolders:ce,state:hu,disabled:!_,iframeSrcUrls:M,showCheckbox:v&&HF(hu.step),onEditChange:(Xe,Gu)=>{te(Xe,Ee(Gu))},onStepChange:(Xe,Gu,ia)=>I(Xe,Gu,Ee(ia)),onAddBefore:(Xe,Gu)=>J(Xe,Ee(Gu)),onAddAfter:(Xe,Gu)=>{const ia=Ee(Gu);ia[ia.length-1]+=1,J(Xe,ia)},onMoveToTop:Xe=>Y(Ee(Xe)),onMoveUp:Xe=>ae(Ee(Xe)),onMoveDown:Xe=>ue(Ee(Xe)),onMoveToBottom:Xe=>le(Ee(Xe)),onDuplicate:Xe=>Z(Ee(Xe)),onUngroup:Xe=>de(Ee(Xe)),onExecute:pe,onExecuteTo:Ce,onExecuteFrom:ee,onDelete:Xe=>ye(Ee(Xe)),onSelectChange:(Xe,Gu)=>Ge(Xe,Ee(Gu)),onExpandChange:(Xe,Gu)=>Te(Xe,Ee(Gu)),onLocate:(Xe,Gu,ia)=>q(Xe,Gu,ia),onStartRecordingTarget:Je,onStepLint:Rt,lintTriggerKey:V},hu.uniqueId)})}),x.jsx("div",{className:"mb-2 flex items-center justify-center",children:x.jsx(Jz,{disabled:!_,modules:De,moduleFolders:ce,onAdd:hu=>J(hu,[])})})]}),x.jsxs("div",{className:"grid grid-rows-[auto_1fr]",children:[x.jsxs("div",{className:"flex items-center justify-between gap-2 border-b p-2",children:[x.jsxs("div",{className:"flex w-1/2 gap-2",children:[x.jsx(Tt,{variant:"outline",size:"icon",onClick:N,disabled:!L,children:x.jsx(oAt,{className:"h-2 w-2"})}),x.jsx(Vt,{readOnly:!0,value:z})]}),x.jsxs("div",{className:"flex gap-2",children:[x.jsx(Mca,{value:A,options:w,onChange:tu}),x.jsxs(Tt,{variant:"outline",className:"text-destructive hover:text-destructive",onClick:K,children:[x.jsx(FTe,{className:"h-4 w-4"}),"Reset"]})]})]}),x.jsxs(QVe,{direction:"vertical",children:[x.jsx(eM,{defaultSize:75,className:"bg-muted",children:T?x.jsxs("div",{className:"flex aspect-video w-full flex-col items-center justify-center gap-2",children:[x.jsx("h2",{className:"text-xl font-semibold",children:"An unexpected error happened!"}),x.jsxs("div",{className:"text-destructive max-w-lg",children:["Error: ",T]}),x.jsxs("div",{className:"text-muted-foreground max-w-lg text-center",children:["We apologize for the inconvenience. We have been notified of this problem. If the issue persists please contact"," ",x.jsx("a",{href:"mailto:support@momentic.ai",className:"text-primary hover:underline",children:"support@momentic.ai"}),"."]}),x.jsx(Tt,{variant:"outline",onClick:K,children:"Reconnect"})]}):S&&F?x.jsx("div",{className:"mx-auto max-h-[calc(100%-4px)] max-w-full",style:{aspectRatio:`${F.width}/${F.height}`},children:x.jsx("div",{className:"overflow-hidden",children:x.jsxs(Tna,{active:G,onActiveChange:La,onMouseEvent:Le,onKeyDown:_e,onWheel:Ye,children:[x.jsx(jXt,{image:S,viewport:F}),$&&G&&x.jsxs("div",{className:"bg-foreground text-background pointer-events-none absolute bottom-1 right-1 rounded p-1 text-xs opacity-50",children:["X: ",$.x,", Y: ",$.y]})]})})}):x.jsx("div",{className:"flex h-full w-full items-center justify-center",children:x.jsx("h2",{className:"text-xl font-semibold",children:"Starting browser..."})})}),x.jsx(YVe,{withHandle:!0}),x.jsx(eM,{children:x.jsxs(hc,{defaultValue:"context",className:"flex h-full flex-col p-2",children:[x.jsxs(dl,{className:"self-start",children:[x.jsx(pa,{value:"context",children:"Context"}),x.jsx(pa,{value:"console",children:"Console"}),x.jsx(pa,{value:"network",children:"Network"}),x.jsx(pa,{value:"accessibility",children:"Accessibility"}),x.jsx(pa,{value:"html",children:"HTML"})]}),x.jsx(Da,{value:"context",className:"flex-1 overflow-auto",children:x.jsxs("div",{className:"grid h-full grid-rows-[auto_1fr] gap-2",children:[x.jsxs("p",{className:"text-muted-foreground text-sm",children:["You can access these values directly in a JavaScript step, or using the special"," ",x.jsx("span",{className:"text-foreground whitespace-nowrap font-mono",children:"{{ }}"})," ","syntax in other steps. For example, you can get the current URL with"," ",x.jsxs("span",{className:"text-foreground whitespace-nowrap font-mono",children:["{{ env.CURRENT_URL }}","."]})," ",x.jsx(hqe,{slug:"/variables"})]}),O&&x.jsx(qNe,{data:O})]})}),x.jsx(Da,{value:"console",className:"flex-1 overflow-auto",children:x.jsx(Vaa,{logs:i})}),x.jsx(Da,{value:"network",className:"h-full flex-1 overflow-auto",style:{height:"calc(100% - 45px)"},children:Object.keys(s).length?x.jsx(WUa,{har:J6t(o,s)}):x.jsx("p",{className:"text-muted-foreground text-sm",children:"No network data available."})}),x.jsxs(Da,{value:"accessibility",className:"h-full flex-1 overflow-auto",style:{height:"calc(100% - 45px)"},children:[x.jsx(Tt,{onClick:fu,disabled:c||!j||h,variant:"secondary",size:"sm",children:"Load current page accessibility tree"}),x.jsx("div",{className:"p-2",style:{height:"calc(100% - 45px)",overflow:"none"},children:l?x.jsx(y4a,{a11yTree:l}):x.jsx("p",{className:"text-muted-foreground text-sm",children:"No a11y tree snapshot available."})})]}),x.jsxs(Da,{value:"html",className:"h-full flex-1 overflow-auto",style:{height:"calc(100% - 45px)"},children:[x.jsx(Tt,{onClick:tt,disabled:E||!j||h,variant:"secondary",size:"sm",children:"Load current page HTML"}),x.jsx("div",{className:"p-2",style:{height:"calc(100% - 45px)",overflow:"none"},children:d?x.jsx(JUa,{html:d}):x.jsx("p",{className:"text-muted-foreground text-sm",children:"No html snapshot available."})})]})]})})]})]}),x.jsx(M4a,{open:Sa.state==="blocked",children:x.jsxs(iqe,{children:[x.jsxs(oqe,{children:[x.jsx(lqe,{children:"Are you sure?"}),x.jsx(cqe,{children:"You have unsaved changes. Leaving this page will discard any unsaved changes."})]}),x.jsxs(sqe,{children:[x.jsx(Eqe,{onClick:()=>{var hu;(hu=Sa.reset)==null||hu.call(Sa)},children:"Cancel"}),x.jsx(dqe,{className:CN({variant:"destructive"}),onClick:()=>{var hu;(hu=Sa.proceed)==null||hu.call(Sa)},children:"Continue"})]})]})})]})]})};async function uWa({params:e}){return Promise.all([Ya(`${Va}/api/tests/${encodeURIComponent(e.testPath)}`).then(g_e.parse),Ya(`${Va}/api/modules`).then(x_e.parse),Ya(`${Va}/api/environments`).then(aae.parse),Ya(`${Va}/api/tests`).then(D_e.parse),Ya(`${Va}/api/settings`)])}const tWa=()=>{const{testPath:e}=j7e(),[u,t,a,n,r]=mD();return x.jsx(vNe,{ai:r.ai,children:x.jsx(eWa,{test:u,modules:t,environments:a,tests:n,testPath:e})})};async function aWa(){return Promise.all([Ya(`${Va}/api/environments`).then(aae.parse),Ya(`${Va}/api/labels`).then(dN.parse)])}const nWa=()=>{const[e,u]=mD(),[t,a]=Lj("sidebar-layout");return x.jsxs("div",{className:"flex h-full flex-col gap-4 overflow-auto p-8",children:[x.jsxs("div",{className:"flex items-center justify-between",children:[x.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:"Tests"}),x.jsx(Jje,{environments:e})]}),x.jsx(OR,{view:"tests",tests:t,modules:a,labels:u})]})};var rWa={POSTHOG_WRITE_HOST:"https://us.i.posthog.com",SENTRY_AUTH_TOKEN:"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",POSTHOG_WEB_PROJECT_ID:"37121",SENTRY_PROJECT:"cli",POSTHOG_ANALYTICS_WRITE_KEY:"phc_oy1FexHsc0S3axxOMXCm46yZsW35zROAoV4SOzpDSXH",APP_ENV:"production",SENTRY_ORG:"momentic",POSTHOG_ANALYTICS_PROJECT_ID:"112124",POSTHOG_WEB_WRITE_KEY:"phc_WRWd8LYIv6rolgDsyCdrPpxtZhsu6qXAkEwPicl44bI",BASE_URL:"/",MODE:"production",DEV:!1,PROD:!0,SSR:!1};Ip.init("phc_WRWd8LYIv6rolgDsyCdrPpxtZhsu6qXAkEwPicl44bI",{api_host:"https://us.i.posthog.com"});Sdu({dsn:"https://adf6c8e3b8b510836cd3bb02a1cc73de@o4506426201800704.ingest.us.sentry.io/4507653231673344",release:rWa.SENTRY_RELEASE,integrations:[kdu(),ddu()],environment:"production",tracesSampleRate:1,tracePropagationTargets:["localhost"],replaysSessionSampleRate:.1,replaysOnErrorSampleRate:1});const iWa=()=>x.jsx(GMe,{sidebarWidth:"auto",children:x.jsxs(HMe,{delayDuration:0,children:[x.jsx(L7e,{}),x.jsx(Wpu,{richColors:!0,closeButton:!0})]})}),oWa=vfu([{path:"/",element:x.jsx(iWa,{}),errorElement:x.jsx(t8t,{}),children:[{index:!0,loader:GQt},{id:"sidebar-layout",loader:AXt,element:x.jsx(BXt,{}),children:[{path:"search",element:x.jsx(UYt,{}),loader:GYt},{path:"tests",element:x.jsx(nWa,{}),loader:aWa},{path:"modules",element:x.jsx(WQt,{}),loader:UQt},{path:"folders/:folderPath",element:x.jsx(VQt,{}),loader:HQt}]},{path:"tests/:testPath",element:x.jsx(tWa,{}),loader:uWa}]}]),sWa=()=>(k.useEffect(()=>{async function e(){try{const u=await Ya(`${Va}/api/identify`);Ip.identify(u.userId,{organizationId:u.orgId})}catch(u){Dvt.warn(`Failed to fetch feature flags from PostHog: ${u}`)}}e()},[]),x.jsx(Mfu,{children:x.jsx(wfu,{router:oWa})}));KW.createRoot(document.getElementById("root")).render(x.jsx(R.StrictMode,{children:x.jsx(Spu,{client:Ip,children:x.jsx(sWa,{})})}))});export default lWa();
|
|
1024
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Sye(e,u){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);u&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,a)}return t}function Qi(e){for(var u=1;u<arguments.length;u++){var t=arguments[u]!=null?arguments[u]:{};u%2?Sye(Object(t),!0).forEach(function(a){lE(e,a,t[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):Sye(Object(t)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(t,a))})}return e}function ose(e,u){if(e==null)return{};var t,a,n=GVa(e,u);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a<r.length;a++)t=r[a],u.includes(t)||{}.propertyIsEnumerable.call(e,t)&&(n[t]=e[t])}return n}function GVa(e,u){if(e==null)return{};var t={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(u.includes(a))continue;t[a]=e[a]}return t}function Yr(e,u){return LVa(e)||KVa(e,u)||Xau(e,u)||HVa()}function iee(e){return $Va(e)||IVa(e)||Xau(e)||VVa()}function UVa(e,u){if(typeof e!="object"||!e)return e;var t=e[Symbol.toPrimitive];if(t!==void 0){var a=t.call(e,u||"default");if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(u==="string"?String:Number)(e)}function WVa(e){var u=UVa(e,"string");return typeof u=="symbol"?u:u+""}function Xau(e,u){if(e){if(typeof e=="string")return ree(e,u);var t={}.toString.call(e).slice(8,-1);return t==="Object"&&e.constructor&&(t=e.constructor.name),t==="Map"||t==="Set"?Array.from(e):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?ree(e,u):void 0}}var oee=Object.freeze({file:Object.freeze({key:"filename",name:"Path"}),domain:Object.freeze({key:"domain",name:"Domain"}),status:Object.freeze({key:"status",name:"Status"}),method:Object.freeze({key:"method",name:"Method"}),type:Object.freeze({key:"type",name:"Type"}),size:Object.freeze({key:"size",name:"Size"}),time:Object.freeze({key:"time",name:"Time"}),waterfall:Object.freeze({key:"waterfall",name:"Waterfall"})}),JVa=Object.freeze({file:Object.freeze({key:"filename",name:"Path"}),domain:Object.freeze({key:"domain",name:"Domain"}),status:Object.freeze({key:"status",name:"Status"}),method:Object.freeze({key:"method",name:"Method"}),type:Object.freeze({key:"type",name:"Type"}),size:Object.freeze({key:"size",name:"Size"}),time:Object.freeze({key:"time",name:"Time"})}),qVa={file:Object.freeze({key:"filename",name:"Path"})},_g=Object.freeze({STATUS:"STATUS",TYPE:"TYPE",URL:"URL",BODY:"BODY"}),ZVa={name:null,value:null},QVa=[{name:"All",filterBy:ZVa},{name:"XHR",filterBy:{name:"type",value:["xhr","XHR","fetch"]}},{name:"JS",filterBy:{name:"type",value:["script","javascript","x-javascript","json"]}},{name:"CSS",filterBy:{name:"type",value:["stylesheet","css"]}},{name:"Img",filterBy:{name:"type",value:["image","png","jpeg","svg+xml","gif"]}},{name:"Media",filterBy:{name:"type",value:["media"]}},{name:"Font",filterBy:{name:"type",value:["font","woff2"]}},{name:"Doc",filterBy:{name:"type",value:["document","html"]}},{name:"WS",filterBy:{name:"type",value:["websocket"]}},{name:"Manifest",filterBy:{name:"type",value:["manifest.json"]}}],enu={name:"All",value:null},YVa=[enu,{name:"1xx",value:"1"},{name:"2xx",value:"2"},{name:"3xx",value:"3"},{name:"4xx",value:"4"},{name:"5xx",value:"5"}],XVa="Please wait, fetching file is in progress.",Tg={queueing:{dataKey:["_blocked_queueing","_queued"],fill:"#ccc",name:"Queueing"},blocked:{dataKey:"blocked",fill:"#A1000C",name:"Stalled"},dns:{dataKey:"dns",fill:"#DCC9E5",name:"DNS Lookup"},ssl:{dataKey:"ssl",fill:"#E78057",name:"SSL"},connect:{dataKey:"connect",fill:"#DB8553",name:"Initial Connection"},send:{dataKey:"send",fill:"#3C96C4",name:"Request Sent"},wait:{dataKey:"wait",fill:"#7CA0BF",name:"Waiting (TTFB)"},receive:{dataKey:"receive",fill:"#65B955",name:"Content Downloaded"}},eGa={height:"15",viewBox:"0 0 200 20",version:"1.1",preserveAspectRatio:"xMinYMin meet"},uGa={height:30,y:0},tGa="network-viewer-table-row-",aGa=Object.freeze({url:Object.freeze({key:"url",name:"Request URL"}),method:Object.freeze({key:"method",name:"Request Method"}),status:Object.freeze({key:"status",name:"Status Code"}),serverIPAddress:Object.freeze({key:"serverIPAddress",name:"Remote Address"})}),wye=Object.freeze({general:Object.freeze({key:"general",name:"General"}),requestHeaders:Object.freeze({key:"requestHeaders",name:"Request Headers"}),responseHeaders:Object.freeze({key:"responseHeaders",name:"Response Headers"}),requestPayload:Object.freeze({key:"requestPayload",name:"Request Payload"}),queryString:Object.freeze({key:"queryString",name:"Query String Parameters"}),formData:Object.freeze({key:"formData",name:"Form Data"})}),unu=2,sse={NoDataPlaceholder:void 0,enableAutoScroll:!1,showExportHar:!1,showImportHar:!0,showPauseResume:!1,showReset:!0,showTimeline:!1,showWaterfall:!0},nGa=Object.freeze({encode:Object.freeze({true:"URL encoded",false:"decoded"}),parse:Object.freeze({true:"source",false:"parsed"})}),tnu=Object.freeze({log:{version:"",creator:{name:"",version:""},entries:[],pages:[]}}),rGa=32,zye=24,SG=function(u){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,a=Math.pow(10,t);return Math.round(u*a)/a},Mg=function(u){return u<1024?"".concat(SG(u)," B"):u<Math.pow(1024,2)?"".concat(SG(u/1024)," KB"):"".concat(SG(u/Math.pow(1024,2))," MB")},nF=function(u){return u<1e3?"".concat(Math.round(u),"ms"):u<6e4?"".concat(Math.ceil(u/10)/100,"s"):"".concat(Math.ceil(u/6e4)*100/100,"m")},Oye=function(u){try{var t=new URL(u),a=t.pathname.split("/"),n=(a[a.length-1].trim()?a[a.length-1]:a[a.length-2])+t.search;return{domain:t.host,filename:n||t.href,url:t.href}}catch{return{domain:"N/A",filename:u??"N/A",url:u}}},iGa=function(u){var t=u.bodySize,a=u._transferSize,n=u.headers,r=u.content;if(r&&r.size)return Mg(r.size);if(a>-1)return Mg(a);if(t>-1)return Mg(t);var i=n.find(function(o){var s=o.name;return["content-length","Content-Length"].includes(s)});return i?Mg(i.value):0},oGa=function(u){if(u._resourceType)return u._resourceType.toLowerCase();var t=u.response.headers,a=t.find(function(r){var i=r.name;return["content-type","Content-Type"].includes(i)});if(!a)return"";var n=a.value.split(";")[0].split("/");return n.length>1?n[1]:n[0]},sGa=function(u,t){var a=u.startedDateTime,n=u.timings;return Qi(Qi({},n),{},{startTime:new Date(a).getTime()-new Date(t).getTime()})},lGa=function(u){var t=u.mimeType,a=u.text;if(t==="application/json"){var n;try{n=JSON.stringify(JSON.parse(a),null,2)}catch{n=a}return n}return a},_ye=function(u){var t=u.response,a=t.bodySize,n=t._transferSize;return n>-1?n:a>-1?a:-1},Tye=function(u){var t=u.response,a=t.bodySize,n=t._transferSize,r=t.content.size;return r>0?r:n>-1?n:a>-1?a:-1},cGa=function(u){var t=u.map(function(a){var n=a.timings;return Object.values(n).reduce(function(r,i){return r+(i>-1?i:0)},0)});return Math.max.apply(Math,iee(t))},Mye=function(u,t){return u.name<t.name?-1:u.name>t.name?1:0},dGa=function(u){var t=iee(u.request.headers),a=iee(u.response.headers);return{request:t.sort(Mye),response:a.sort(Mye),queryString:u.request.queryString,postData:u.request.postData}},Pye=function(u){var t=u.startedDateTime,a=u.time,n=u.timings;return new Date(t).getTime()+a+((n==null?void 0:n._blocked_queueing)||(n==null?void 0:n._queued)||0)},EGa=function(u){var t=u.response;return t&&t._error?t._error:null},hGa=function(u){if(!u.length)return{totalNetworkTime:0,data:[],totalRequests:0,totalTransferredSize:0,totalUncompressedSize:0,finishTime:0};var t=u[0].startedDateTime,a=Pye(u[u.length-1]),n=0,r=0,i=u.filter(function(c){return c.response&&Oye(c.request.url).domain}).map(function(c,d){n+=_ye(c),r+=Tye(c);var E=Pye(c);return a=a<E?E:a,Qi({index:d,status:c.response.status,method:c.request.method,size:iGa(c.response),startedDateTime:new Date(c.startedDateTime).getTime(),type:oGa(c),timings:sGa(c,t),body:lGa(c.response.content),time:c.time,serverIPAddress:c.serverIPAddress||":80",headers:dGa(c),transferredSize:_ye(c),uncompressedSize:Tye(c),error:EGa(c)},Oye(c.request.url))}),o=i.length,s=a-new Date(t).getTime(),l=cGa(i);return{totalNetworkTime:s,data:i,totalRequests:o,totalTransferredSize:n,totalUncompressedSize:r,finishTime:l}},jye=function(u,t){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,n=a?1:-1;return u.sort(function(r,i){var o=r[t],s=i[t];return o<s?-n:o>s?n:0})},fGa=function(u,t,a){switch(u){case _g.STATUS:return a.status&&a.status.toString().startsWith(t.value);case _g.TYPE:return a.type&&t.value.includes(a.type);case _g.URL:return a.url&&a.url.includes(t.value);case _g.BODY:return a.body&&a.body.includes(t.value);default:return!0}},Vw=function(u){var t=u.data,a=u.search,n=a===void 0?{}:a,r=u.statusFilter,i=r===void 0?{}:r,o=u.typeFilter,s=o===void 0?{}:o,l=n.value&&n.value.trim();if(!l&&!i.value&&!s.value)return t;var c=[{option:_g.STATUS,filter:i},{option:_g.TYPE,filter:s},{option:n.name,filter:{value:l}}];return t.filter(function(d){return c.every(function(E){var h=E.option,f=E.filter;return!f.value||fGa(h,f,d)})})},mGa=function(){var u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return function(t,a){return Object.keys(u).reduce(function(n,r){return Qi(Qi({},n),{},lE({},r,u[r](t,a)))},{})}},Wb=function(u){return u&&(u>1e3?"".concat((u/1e3).toFixed(2)," s"):"".concat(u.toFixed(2)," ms"))},pGa=function(u){return Object.keys(u).filter(function(t){return!["_blocked_queueing","_queued","startTime"].includes(t)}).reduce(function(t,a){return t+u[a]},0)},DGa=function(u){return Qi({queuedAt:Wb(u.startTime),startedAt:Wb(u.startTime+(u._blocked_queueing||u._queued||0)),totalTime:Wb(pGa(u))},Object.keys(u).reduce(function(t,a){return t[a]=Wb(u[a]),t},{}))},xGa=function(u){var t=u.status,a=u.error;return t===0&&!a?"pending":t>=400||a?"error":"info"},gGa=function(u,t,a){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};switch(u){case"time":return n.status===0?"Pending":t===0&&!n.error?"-":Wb(t);case"status":return n.error?"(failed)":t===0?"Pending":t;default:return a?"".concat(t," ").concat(a):t}},anu=function(u,t,a,n){var r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:null,i=u.startTime/t*100,o=0,s=0,l=[];return Object.keys(Tg).forEach(function(c){var d=Tg[c],E=Array.isArray(d.dataKey)?d.dataKey.find(function(f){return u[f]}):d.dataKey,h=u[E];h<=0||(o+=s||i,s=h>0?h/t*100:0,l.push({width:"".concat(s,"%"),y:n?n%10*(unu+1)+40:r,x:"".concat(o,"%"),fill:d.fill,key:c}))}),l},vGa=function(u,t){return u.reduce(function(a,n){var r=a.value,i=a.index,o=n.startedDateTime,s=n.index;return Math.abs(o-t)<Math.abs(r-t)?{value:o,index:s}:{value:r,index:i}},{value:0,index:0}).index},CGa=function(u,t){var a=u.reverse().findIndex(function(n){var r=n.startedDateTime;return r<=t});return a<0?0:u.size-(a+1)},yGa=function(u,t){return u.findIndex(function(a){var n=a.startedDateTime;return n>=t})},bGa=function(u){var t=u.data,a=u.timestamp,n=u.position;switch(n){case"before":return CGa(t,a);case"after":return yGa(t,a);case"near":default:return vGa(t,a)}},kGa=function(u){return u.reduce(function(t,a){var n=t.DOMContentLoaded,r=t.onLoad,i=a.pageTimings;return{DOMContentLoaded:n+i.onContentLoad,onLoad:r+i.onLoad}},{DOMContentLoaded:0,onLoad:0})},wG=function(u){return u.reduce(function(t,a){return t.totalTransferredSize+=a.transferredSize,t.totalUncompressedSize+=a.uncompressedSize,t},{totalTransferredSize:0,totalUncompressedSize:0,totalRequests:u.size})},FGa=function(u){var t;try{t=JSON.stringify(JSON.parse(u),null,2)}catch{t=u}return t},nnu=function(u,t){return u?qVa:t?oee:JVa},rnu="UPDATE_DATA",inu="UPDATE_SEARCH",onu="UPDATE_SORT",snu="UPDATE_STATUS_FILTER",lnu="UPDATE_TYPE_FILTER",cnu="UPDATE_ERROR_MESSAGE",dnu="UPDATE_SCROLL_TO_INDEX",Enu="SELECT_REQUEST",hnu="SET_TABLE_HEADER_WIDTH",C6={REQUEST:"FETCH_FILE_REQUEST",SUCCESS:"FETCH_FILE_SUCCESS",FAILURE:"FETCH_FILE_FAILURE"},fnu="RESET",see=new Og.Map({rawData:tnu,data:new Og.List,actualData:new Og.List,totalNetworkTime:null,dataSummary:new Og.Map,sort:{key:"startedDateTime",isAsc:!0},search:{name:"URL",value:""},statusFilter:enu,typeFilter:{name:null,value:null},error:null,loading:!1,scrollToIndex:null,selectedReqIndex:null,showReqDetail:!1,reqDetail:null,tableHeaderWidth:"100%",numberOfNewEntries:0}),AGa=function(){var u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:see,t=arguments.length>1?arguments[1]:void 0,a=t.type,n=t.payload;switch(a){case rnu:return u.withMutations(function(r){var i=hGa(n.log.entries),o=i.data,s=i.totalNetworkTime,l=i.totalRequests,c=i.totalTransferredSize,d=i.totalUncompressedSize,E=i.finishTime,h=u.get("sort"),f=new Og.List(jye(o,h.key,h.isAsc)),m=Vw({data:f,statusFilter:u.get("statusFilter"),typeFilter:u.get("typeFilter"),search:u.get("search")}),p=u.get("data"),D=m.size-p.size;r.set("error",null).set("rawData",n).set("data",m).set("actualData",f).set("numberOfNewEntries",D).set("totalNetworkTime",s).set("dataSummary",new Og.Map({totalRequests:l,totalTransferredSize:c,totalUncompressedSize:d,finishTime:E,timings:kGa(n.log.pages),finish:E}))});case inu:return u.withMutations(function(r){var i=Vw({data:u.get("actualData"),statusFilter:u.get("statusFilter"),typeFilter:u.get("typeFilter"),search:n}),o=wG(i);r.set("search",n).set("data",i).setIn(["dataSummary","totalRequests"],o.totalRequests).setIn(["dataSummary","totalTransferredSize"],o.totalTransferredSize).setIn(["dataSummary","totalUncompressedSize"],o.totalUncompressedSize)});case snu:return u.withMutations(function(r){var i=Vw({data:u.get("actualData"),statusFilter:n,typeFilter:u.get("typeFilter"),search:u.get("search")}),o=wG(i);r.set("statusFilter",n).set("data",i).setIn(["dataSummary","totalRequests"],o.totalRequests).setIn(["dataSummary","totalTransferredSize"],o.totalTransferredSize).setIn(["dataSummary","totalUncompressedSize"],o.totalUncompressedSize)});case lnu:return u.withMutations(function(r){var i=Vw({data:u.get("actualData"),statusFilter:u.get("statusFilter"),typeFilter:n,search:u.get("search")}),o=wG(i);r.set("typeFilter",n).set("data",i).setIn(["dataSummary","totalRequests"],o.totalRequests).setIn(["dataSummary","totalTransferredSize"],o.totalTransferredSize).setIn(["dataSummary","totalUncompressedSize"],o.totalUncompressedSize)});case onu:return u.withMutations(function(r){r.set("sort",n).set("data",jye(u.get("data"),n.key,n.isAsc))});case C6.REQUEST:return u.withMutations(function(r){r.set("error",null).set("loading",!0)});case C6.SUCCESS:return u.withMutations(function(r){r.set("error",null).set("loading",!1)});case C6.FAILURE:case cnu:return u.withMutations(function(r){r.set("error",n).set("loading",!1)});case dnu:return u.withMutations(function(r){r.set("selectedReqIndex",n?n.index:null).set("reqDetail",n)});case Enu:return u.withMutations(function(r){r.set("selectedReqIndex",n?n.index:null).set("reqDetail",n).set("showReqDetail",!!n)});case hnu:return u.withMutations(function(r){r.set("tableHeaderWidth","".concat(n,"px"))});case fnu:return see;default:return u}},lse=function(u){return function(t){return u({type:rnu,payload:t})}},BGa=function(u){return function(t){return u({type:inu,payload:t})}},SGa=function(u){return function(t){return u({type:onu,payload:t})}},wGa=function(u){return function(t){return u({type:snu,payload:t})}},zGa=function(u){return function(t){return u({type:lnu,payload:t})}},OGa=function(u){return function(t){return u({type:C6.REQUEST,payload:t})}},_Ga=function(u){return function(t){return u({type:C6.SUCCESS,payload:t})}},TGa=function(u){return function(t){return u({type:C6.FAILURE,payload:t})}},MGa=function(u){return function(t){return u({type:cnu,payload:t})}},mnu=function(u){return function(t){return u({type:dnu,payload:t})}},PGa=function(u){return function(t){return u({type:Enu,payload:t})}},jGa=function(u){return function(t){return u({type:hnu,payload:t})}},NGa=function(u){return function(t){return u({type:fnu,payload:t})}},pnu=function(u){return function(t){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{withCredentials:!0};OGa(u)(),NVa.default.get(t,a).then(function(n){var r=n.data;r&&r.log&&lse(u)(r),_Ga(u)()}).catch(function(n){return TGa(u)({title:"Error while fetching file",description:n.message})})}},Dnu=ne.default.createContext(),Ns=function(){var u=Kt.useContext(Dnu);if(!u)throw new Error("useNetwork must be used within a NetworkProvider");var t=Yr(u,3),a=t[0],n=t[1],r=t[2],i=mGa({fetchFile:pnu,updateData:lse,updateSearch:BGa,updateSort:SGa,updateStatusFilter:wGa,updateTypeFilter:zGa,updateErrorMessage:MGa,selectRequest:PGa,setTableHeaderWidth:jGa,updateScrollToIndex:mnu,resetState:NGa})(n,a);return{state:a,dispatch:n,actions:i,callbacks:r}},cse=function(u){var t=u.data,a=u.file,n=u.fetchOptions,r=u.initialState,i=u.scrollTimeStamp,o=u.scrollRequestPosition,s=u.autoHighlightChange,l=u.onDataLoaded,c=u.onDataError,d=u.onPause,E=u.onResume,h=u.onReset,f=u.onRequestSelect,m=Kt.useReducer(AGa,r),p=Yr(m,2),D=p[0],g=p[1],v={onPause:d,onResume:E,onReset:h,onRequestSelect:f},C=Kt.useMemo(function(){return[D,g,v]},[D]),y=C[0].get("data"),b=C[0].get("showReqDetail"),F=C[0].get("actualData"),S=C[0].get("error");return Kt.useEffect(function(){t&&t.log&&t.log.entries&&lse(g)(t)},[t]),Kt.useEffect(function(){a&&pnu(g)(a,n)},[a]),Kt.useEffect(function(){F.size&&l&&l(F)},[F]),Kt.useEffect(function(){S&&c&&c(S)},[S]),Kt.useEffect(function(){var M=b?s:!0;if(i&&M){var T=bGa({data:y,timestamp:i,position:o});(T||T===0)&&mnu(g)(y.get(T))}},[i,F]),ne.default.createElement(Dnu.Provider,I1({value:C},u))};cse.propTypes={autoHighlightChange:Oe.default.bool,data:Oe.default.object,fetchOptions:Oe.default.object,file:Oe.default.string,initialState:Oe.default.object,onDataError:Oe.default.func,onDataLoaded:Oe.default.func,onPause:Oe.default.func,onRequestSelect:Oe.default.func,onReset:Oe.default.func,onResume:Oe.default.func,scrollRequestPosition:Oe.default.oneOf(["before","after","near"]),scrollTimeStamp:Oe.default.number};cse.defaultProps={autoHighlightChange:!1,data:null,fetchOptions:{withCredentials:!0},file:null,initialState:see,onDataError:null,onDataLoaded:null,onPause:null,onRequestSelect:null,onReset:null,onResume:null,scrollRequestPosition:"near",scrollTimeStamp:null};function t0(e,u){u===void 0&&(u={});var t=u.insertAt;if(!(!e||typeof document>"u")){var a=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",t==="top"&&a.firstChild?a.insertBefore(n,a.firstChild):a.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}var RGa=".Search-styles__search-input___dXaO4{background-color:#fff;border:1px solid #dbe0ea;border-radius:4px;color:#1e2127;font-size:14px;height:26px;min-width:10rem;padding:4px 8px;width:35%}.Search-styles__search-input___dXaO4:focus{background-color:#fff;border:1px solid #dbe0ea;outline:1px solid transparent}",LGa={brandBlue:"#0E75DD","search-input":"Search-styles__search-input___dXaO4"};t0(RGa);var dse=function(u){var t=u.name,a=u.value,n=Ns(),r=n.actions,i=function(s){var l=s.target;r.updateSearch({name:t,value:l.value})};return ne.default.createElement("input",{className:LGa["search-input"],name:"search",onChange:i,placeholder:"Search by URL",type:"text",value:a})};dse.propTypes={name:Oe.default.string.isRequired,value:Oe.default.string};dse.defaultProps={value:""};var $Ga=".FilterContainer-styles__filters-container___ObFHd{background:#f7f8fa;display:flex;flex-direction:column}.FilterContainer-styles__filters-container___ObFHd .FilterContainer-styles__filter-row___Dvkpa,.FilterContainer-styles__filters-container___ObFHd .FilterContainer-styles__type-filter-row___rbgN4{border-bottom:1px solid #dbe0ea;display:flex;padding:8px 12px;width:100%}.FilterContainer-styles__filters-container___ObFHd .FilterContainer-styles__type-filter-row___rbgN4{overflow-x:auto}.FilterContainer-styles__filters-container___ObFHd .FilterContainer-styles__filter-row___Dvkpa>:not(:last-child){margin-right:8px}.FilterContainer-styles__filters-container___ObFHd .FilterContainer-styles__type-filter-row___rbgN4>:not(:last-child){margin-right:4px}",pO={brandBlue:"#0E75DD","filters-container":"FilterContainer-styles__filters-container___ObFHd","filter-row":"FilterContainer-styles__filter-row___Dvkpa","type-filter-row":"FilterContainer-styles__type-filter-row___rbgN4"};t0($Ga);var IGa=".Button-styles__btn___kQ5AC{align-items:center;background:#fff;border:1px solid #dbe0ea;border-radius:4px;color:#6d7584;cursor:pointer;display:flex;font-size:14px;font-weight:600;justify-content:center;outline:none;padding:4px 8px;text-decoration:none}.Button-styles__btn___kQ5AC:hover{background:#e6f1fd}.Button-styles__btn___kQ5AC[disabled]{border-color:#d8dde3;color:#d8dde3;cursor:not-allowed}.Button-styles__btn___kQ5AC[disabled] svg{fill:#d8dde3}.Button-styles__btn___kQ5AC[disabled]:hover{border-color:#bac3ce}.Button-styles__btn___kQ5AC svg{fill:#1e2127}.Button-styles__btn___kQ5AC.Button-styles__text-variant___B5fDF{background:transparent;border:none}.Button-styles__btn___kQ5AC.Button-styles__text-variant___B5fDF:hover{background:#e6f1fd}.Button-styles__btn___kQ5AC.Button-styles__text-variant___B5fDF.Button-styles__active___WnULS{background:#0e75dd;color:#fff}",KGa={brandBlue:"#0E75DD",btn:"Button-styles__btn___kQ5AC","text-variant":"Button-styles__text-variant___B5fDF",active:"Button-styles__active___WnULS"};t0(IGa);var HGa=["children","className","disabled","href","variant"],VGa=Uc.default.bind(KGa),Bd=Kt.forwardRef(function(e,u){var t=e.children,a=e.className,n=e.disabled,r=e.href,i=e.variant,o=ose(e,HGa),s=VGa("btn",a,{"text-variant":i==="text"}),l=r&&!n?"a":"button";return ne.default.createElement(l,I1({ref:u,className:s,disabled:n,href:r},o),t)});Bd.propTypes={children:Oe.default.node.isRequired,className:Oe.default.any,disabled:Oe.default.bool,href:Oe.default.string,type:Oe.default.oneOf(["submit","reset","button","menu"]),variant:Oe.default.oneOf(["default","text"])};Bd.defaultProps={className:null,disabled:!1,href:null,type:"button",variant:"default"};var Ese=function(u){var t=u.className;return ne.default.createElement("svg",{className:t,height:"24",preserveAspectRatio:"xMidYMid",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("g",{clipPath:"url(#refresh_clip0)"},ne.default.createElement("path",{d:"M10.8803 -6.08475e-05C10.9939 -0.000234689 11.0668 0.12043 11.0135 0.220324L7.15162 7.46004C7.09684 7.56273 6.95057 7.56643 6.89026 7.46665L5.2476 4.74904C3.3255 6.36294 2.0772 8.75571 2.00218 11.4547C1.88511 15.6666 4.6625 19.2912 8.53796 20.4307C9.06765 20.5865 9.3703 21.1405 9.21394 21.6681C9.05759 22.1957 8.50144 22.4972 7.97175 22.3414C3.24816 20.9525 -0.139855 16.537 0.00294616 11.3995C0.0976061 7.99401 1.72376 4.99084 4.20545 3.02489L2.52185 0.239546C2.46154 0.13977 2.53326 0.0127309 2.65 0.012552L10.8803 -6.08475e-05Z"}),ne.default.createElement("path",{d:"M14.5072 1.73094C14.6489 1.1992 15.1964 0.882516 15.7302 1.0236C20.4906 2.28174 24 6.60218 24 11.7416C24 15.6586 21.9615 19.0998 18.8846 21.0722L20.5095 23.7603C20.5698 23.8601 20.4981 23.9871 20.3813 23.9873L12.151 23.9999C12.0374 24.0001 11.9645 23.8794 12.0178 23.7796L15.8797 16.5398C15.9345 16.4371 16.0808 16.4335 16.1411 16.5332L17.8526 19.3647C20.35 17.7411 22 14.9325 22 11.7416C22 7.52812 19.123 3.98143 15.2173 2.94919C14.6835 2.8081 14.3656 2.26267 14.5072 1.73094Z"})),ne.default.createElement("defs",null,ne.default.createElement("clipPath",{id:"refresh_clip0"},ne.default.createElement("rect",{height:"24",width:"24"}))))};Ese.propTypes={className:Oe.default.string};Ese.defaultProps={className:""};var GGa=".IconButton-styles__icon-button___Znt-A{height:26px;padding:4px 8px}.IconButton-styles__icon-button___Znt-A .IconButton-styles__action-icon___ffZLK{fill:#1e2127;height:12px;width:12px}",SE={brandBlue:"#0E75DD","icon-button":"IconButton-styles__icon-button___Znt-A","action-icon":"IconButton-styles__action-icon___ffZLK"};t0(GGa);var UGa=".Tooltip-styles__tooltip-label___JpOBu{opacity:0;position:absolute;transition:opacity .3s ease-in-out}.Tooltip-styles__tooltip-label___JpOBu .Tooltip-styles__tooltip-label-box___KUxBt{background-color:#1e2127;border:1px solid #1e2127;border-radius:4px;color:#fff;display:inline-block;font-size:12px;max-height:500px;max-width:300px;overflow-y:auto;padding:4px 8px;scrollbar-color:#6d7584 #1e2127;word-break:break-all}.Tooltip-styles__tooltip-visible___-AKVR{opacity:1}.Tooltip-styles__tooltip-arrow___8Fj9-{background-color:#1e2127;border:2px solid #1e2127;position:absolute;rotate:-45deg}.Tooltip-styles__tooltip-arrow-position-left___ICPTZ{right:100%;translate:.125rem}.Tooltip-styles__tooltip-arrow-position-right___0Ff2s{left:100%;translate:-.125rem}.Tooltip-styles__tooltip-arrow-position-bottom___uPbQX{top:100%;translate:0 -.125rem}.Tooltip-styles__tooltip-arrow-position-top___xRdkg{bottom:100%;translate:0 .125rem}",wh={brandBlue:"#0E75DD","tooltip-label":"Tooltip-styles__tooltip-label___JpOBu","tooltip-label-box":"Tooltip-styles__tooltip-label-box___KUxBt","tooltip-visible":"Tooltip-styles__tooltip-visible___-AKVR","tooltip-arrow":"Tooltip-styles__tooltip-arrow___8Fj9-","tooltip-arrow-position-left":"Tooltip-styles__tooltip-arrow-position-left___ICPTZ","tooltip-arrow-position-right":"Tooltip-styles__tooltip-arrow-position-right___0Ff2s","tooltip-arrow-position-bottom":"Tooltip-styles__tooltip-arrow-position-bottom___uPbQX","tooltip-arrow-position-top":"Tooltip-styles__tooltip-arrow-position-top___xRdkg"};t0(UGa);var WGa=["state","className","children","isOpen"],hse=Kt.forwardRef(function(e,u){var t=e.state,a=e.className,n=e.children,r=e.isOpen,i=ose(e,WGa),o=Qau.useTooltip(i,t),s=o.tooltipProps;return ne.default.createElement("div",I1({ref:u,className:WP.default(wh["tooltip-label"],lE({},wh["tooltip-visible"],r))},nee.mergeProps(i,s)),ne.default.createElement("span",{className:WP.default(a,wh["tooltip-label-box"])},n))});hse.propTypes={children:Oe.default.node.isRequired,className:Oe.default.string,isOpen:Oe.default.bool,state:Oe.default.object.isRequired};hse.defaultProps={className:"",isOpen:!1};var JGa=["placementAxis"],qGa=function(u){return WP.default("tooltip-arrow-position",lE(lE(lE(lE({},wh["tooltip-arrow-position-right"],u==="left"),wh["tooltip-arrow-position-left"],u==="right"),wh["tooltip-arrow-position-bottom"],u==="top"),wh["tooltip-arrow-position-top"],u==="bottom"))},fse=function(u){var t=u.placementAxis,a=ose(u,JGa);return ne.default.createElement("div",I1({className:WP.default(wh["tooltip-arrow"],qGa(t))},a))};fse.propTypes={placementAxis:Oe.default.oneOf(["top","bottom","left","right","center"])};fse.defaultProps={placementAxis:"bottom"};var ZGa={entering:!1,entered:!0},xnu=function(u){var t=u.children,a=u.isOpen,n=Kt.useState(!a),r=Yr(n,2),i=r[0],o=r[1],s=function(){return o(!1)},l=function(){return o(!0)},c=a||!i;return c?ne.default.createElement(_Va.Transition,{appear:!0,in:a,onEntered:s,onExited:l,timeout:{enter:50,exit:350}},function(d){return ne.default.Children.map(t,function(E){return ne.default.createElement(Yau.OverlayContainer,null,ne.default.isValidElement(E)&&ne.default.cloneElement(E,{isOpen:!!ZGa[d]}))})}):null};xnu.propTypes={children:Oe.default.node.isRequired,isOpen:Oe.default.bool.isRequired};var Nye=Math.sqrt(32),A3=Kt.forwardRef(function(e,u){var t=e.children,a=e.className,n=e.delay,r=e.hasArrow,i=e.placement,o=e.title,s=nee.useObjectRef(u),l=Kt.useRef(null),c=zVa.useTooltipTriggerState({delay:n}),d=Yau.useOverlayPosition({targetRef:s,overlayRef:l,placement:i,isOpen:c.isOpen,arrowSize:Nye,offset:Nye/2+2}),E=d.overlayProps,h=d.placement,f=d.arrowProps,m=function(){return c.close(!0)},p=Qau.useTooltipTrigger({isOpen:c.isOpen},Qi(Qi({},c),{},{close:m}),l),D=p.tooltipProps,g=p.triggerProps,v=typeof t=="function"?t:ne.default.Children.only(t),C=Qi(Qi({},g),{},lE({tabIndex:g.tabIndex,"aria-describedby":g["aria-describedby"],onBlur:g.onBlur,onFocus:g.onFocus,onMouseEnter:g.onPointerEnter,onMouseLeave:g.onPointerLeave,onPointerEnter:g.onPointerEnter,onPointerLeave:g.onPointerLeave},typeof PointerEvent<"u"?"onPointerDown":"onClick",m));return ne.default.createElement(ne.default.Fragment,null,typeof v=="function"?v({triggerProps:C,targetRef:s}):ne.default.cloneElement(v,Qi({ref:s},nee.mergeProps(v.props,C))),ne.default.createElement(xnu,{isOpen:c.isOpen},ne.default.createElement(hse,I1({ref:l,className:a,state:c},E,D),r&&ne.default.createElement(fse,I1({placementAxis:h},f)),o)))});A3.propTypes={children:Oe.default.node.isRequired,className:Oe.default.string,delay:Oe.default.number,hasArrow:Oe.default.bool,placement:Oe.default.oneOf(["top","bottom","left","right"]),title:Oe.default.node.isRequired};A3.defaultProps={className:"",delay:100,hasArrow:!1,placement:"top"};A3.displayName="Tooltip";var gnu=ne.default.createContext(sse),YD=function(){var u=Kt.useContext(gnu);if(!u)throw new Error("useTheme must be used within a ThemeContext");return u},mse=function(u){var t=u.options,a=Qi(Qi({},sse),t);return ne.default.createElement(gnu.Provider,I1({value:a},u))};mse.propTypes={options:Oe.default.object};mse.defaultProps={options:sse};var QGa=function(){var u=Ns(),t=u.actions,a=u.callbacks,n=YD(),r=n.showImportHar,i=function(){t.resetState(),a.onReset(),r&&window.history.pushState({},document.title,"/")};return ne.default.createElement(A3,{title:"Reset"},ne.default.createElement(Bd,{className:SE["icon-button"],onClick:i},ne.default.createElement(Ese,{className:SE["action-icon"]})))},YGa=".Dropdown-styles__dropdown-container___xrmM-{position:relative}.Dropdown-styles__dropdown-container___xrmM- .Dropdown-styles__dropdown-toggle___YCeZ6{color:#1e2127;display:flex;font-size:14px;font-weight:500;justify-content:space-between;width:8.5rem}.Dropdown-styles__dropdown-container___xrmM- .Dropdown-styles__dropdown-toggle___YCeZ6.Dropdown-styles__active___FHgVF,.Dropdown-styles__dropdown-container___xrmM- .Dropdown-styles__dropdown-toggle___YCeZ6:hover{background:#fff}.Dropdown-styles__dropdown-container___xrmM- .Dropdown-styles__dropdown-toggle___YCeZ6.Dropdown-styles__active___FHgVF{border-radius:4px 4px 0 0}.Dropdown-styles__dropdown-container___xrmM- .Dropdown-styles__dropdown-toggle___YCeZ6 .Dropdown-styles__icn___KwnE-{height:12px;pointer-events:none;width:12px}.Dropdown-styles__dropdown-container___xrmM- .Dropdown-styles__list___Bc4Yh{background-clip:padding-box;background-color:#fff;border:1px solid #dbe0ea;border-radius:0 0 4px 4px;float:left;left:1px;list-style:none;margin:.125rem 0 0;padding:0;position:absolute;text-align:left;top:0;transform:translate3d(-1px,23px,0);width:7.5rem;will-change:transform;z-index:1000}.Dropdown-styles__dropdown-container___xrmM- .Dropdown-styles__list-item___F-hmT{background:transparent;border:0;clear:both;color:#1e2127;display:block;font-size:14px;font-weight:500;padding:0;text-align:inherit;white-space:nowrap;width:100%}.Dropdown-styles__dropdown-container___xrmM- .Dropdown-styles__list-item___F-hmT.Dropdown-styles__active___FHgVF{background:#e6f1fd;color:#1e2127}.Dropdown-styles__dropdown-container___xrmM- .Dropdown-styles__list-item___F-hmT:not(.Dropdown-styles__active___FHgVF):hover{background:#f7f8fa}.Dropdown-styles__dropdown-container___xrmM- .Dropdown-styles__item-text___-30oI{cursor:pointer;display:block;padding:.25rem 1.5rem}",Jb={brandBlue:"#0E75DD","dropdown-container":"Dropdown-styles__dropdown-container___xrmM-","dropdown-toggle":"Dropdown-styles__dropdown-toggle___YCeZ6",active:"Dropdown-styles__active___FHgVF",icn:"Dropdown-styles__icn___KwnE-",list:"Dropdown-styles__list___Bc4Yh","list-item":"Dropdown-styles__list-item___F-hmT","item-text":"Dropdown-styles__item-text___-30oI"};t0(YGa);var pse=function(u){var t=u.className;return ne.default.createElement("svg",{className:t,height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("path",{clipRule:"evenodd",d:"M20.7774 7.21667C21.0742 7.50555 21.0742 7.97393 20.7774 8.26282L12.5374 16.2833C12.2406 16.5722 11.7594 16.5722 11.4626 16.2833L3.22259 8.26282C2.9258 7.97393 2.9258 7.50555 3.22259 7.21667C3.51939 6.92778 4.00059 6.92778 4.29738 7.21667L12 14.7141L19.7026 7.21667C19.9994 6.92778 20.4806 6.92778 20.7774 7.21667Z",fillRule:"evenodd"}))};pse.propTypes={className:Oe.default.string};pse.defaultProps={className:""};var Dse=function(u){var t=u.className;return ne.default.createElement("svg",{className:t,height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("path",{clipRule:"evenodd",d:"M20.7774 16.7833C21.0742 16.4944 21.0742 16.0261 20.7774 15.7372L12.5374 7.71667C12.2406 7.42778 11.7594 7.42778 11.4626 7.71667L3.22259 15.7372C2.9258 16.0261 2.9258 16.4944 3.22259 16.7833C3.51939 17.0722 4.00059 17.0722 4.29738 16.7833L12 9.2859L19.7026 16.7833C19.9994 17.0722 20.4806 17.0722 20.7774 16.7833Z",fillRule:"evenodd"}))};Dse.propTypes={className:Oe.default.string};Dse.defaultProps={className:""};var zG=Uc.default.bind(Jb),xse=function(u){var t=u.items,a=u.selected,n=u.onChange,r=u.className,i=Kt.useState(!1),o=Yr(i,2),s=o[0],l=o[1],c=Kt.useState(a!==null?a:t[0]),d=Yr(c,2),E=d[0],h=d[1],f=Kt.useRef(null),m=Kt.useRef(s),p=function(C){l(C),m.current=C},D=function(C){h(C),n(C),p(!1)},g=function(C){var y=C.target;m.current&&!f.current.contains(y)&&p(!1)};return Kt.useEffect(function(){return window.addEventListener("click",g),function(){window.removeEventListener("click",g)}},[]),Kt.useEffect(function(){h(a)},[a]),ne.default.createElement("span",{ref:f,className:zG("dropdown-container",r,{expanded:s})},ne.default.createElement(Bd,{className:zG("dropdown-toggle",{active:s}),onClick:function(){return p(!s)}},ne.default.createElement(ne.default.Fragment,null,"Status: ".concat(E.name),s?ne.default.createElement(pse,{className:Jb.icn}):ne.default.createElement(Dse,{className:Jb.icn}))),s&&ne.default.createElement("ul",{className:Jb.list},t.map(function(v,C){return ne.default.createElement("li",{key:v.value,className:zG("list-item",{active:v.value===E.value})},ne.default.createElement("span",{className:Jb["item-text"],onClick:function(){return D(v)},role:"button",tabIndex:C},v.name))})))};xse.propTypes={className:Oe.default.string,items:Oe.default.array.isRequired,onChange:Oe.default.func.isRequired,selected:Oe.default.oneOfType([Oe.default.number,Oe.default.string,Oe.default.object])};xse.defaultProps={className:null,selected:null};var XGa=function(){var u=Ns(),t=u.state,a=u.actions,n=t.get("statusFilter");return ne.default.createElement(xse,{items:YVa,onChange:a.updateStatusFilter,selected:n})},gse=function(u){var t=u.className;return ne.default.createElement("svg",{className:t,height:"24",preserveAspectRatio:"xMidYMid",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("path",{d:"M9 0.2C9 0.0895429 9.08954 0 9.2 0H14.8C14.9105 0 15 0.0895431 15 0.2V10H18.8C18.974 10 19.0651 10.2115 18.9475 10.3427L12.1477 17.9336C12.0684 18.0221 11.932 18.0221 11.8527 17.9336L5.05292 10.3427C4.93539 10.2115 5.0264 10 5.20039 10H9V0.2Z"}),ne.default.createElement("path",{d:"M2.5 19.25C2.5 18.5596 1.94036 18 1.25 18C0.559644 18 0 18.5596 0 19.25V22.75C0 23.4404 0.559644 24 1.25 24H22.75C23.4404 24 24 23.4404 24 22.75V19.25C24 18.5596 23.4404 18 22.75 18C22.0596 18 21.5 18.5596 21.5 19.25V21.5H2.5V19.25Z"}))};gse.propTypes={className:Oe.default.string};gse.defaultProps={className:""};var vse=function(u){var t=u.rawData,a=function(){var r=JSON.stringify(t,null,2);RVa.default.saveAs(new Blob([r]),"network.har")};return ne.default.createElement(A3,{title:"Export HAR"},ne.default.createElement(Bd,{className:SE["icon-button"],onClick:a},ne.default.createElement(gse,{className:SE["action-icon"]})))};vse.propTypes={rawData:Oe.default.object};vse.defaultProps={rawData:tnu};var Cse=function(u){var t=u.className;return ne.default.createElement("svg",{className:t,height:"24",preserveAspectRatio:"xMidYMid",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("path",{d:"M3 1C2.44772 1 2 1.44772 2 2V22C2 22.5523 2.44772 23 3 23H9C9.55228 23 10 22.5523 10 22V2C10 1.44772 9.55228 1 9 1H3Z"}),ne.default.createElement("path",{d:"M15 1C14.4477 1 14 1.44772 14 2V22C14 22.5523 14.4477 23 15 23H21C21.5523 23 22 22.5523 22 22V2C22 1.44772 21.5523 1 21 1H15Z"}))};Cse.propTypes={className:Oe.default.string};Cse.defaultProps={className:""};var yse=function(u){var t=u.className;return ne.default.createElement("svg",{className:t,height:"24",preserveAspectRatio:"xMidYMid",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("path",{d:"M2 1.06665C2 0.246202 2.88801 -0.266152 3.59754 0.144921L22.469 11.0783C23.177 11.4885 23.177 12.5115 22.469 12.9217L3.59754 23.8551C2.88801 24.2662 2 23.7538 2 22.9334V1.06665Z"}))};yse.propTypes={className:Oe.default.string};yse.defaultProps={className:""};var eUa=function(){var u=Ns(),t=u.callbacks,a=Kt.useState(!1),n=Yr(a,2),r=n[0],i=n[1],o=function(){i(!0),t.onPause()},s=function(){i(!1),t.onResume()};return ne.default.createElement(A3,{title:r?"Resume":"Pause"},ne.default.createElement(Bd,{className:SE["icon-button"],onClick:r?s:o},r?ne.default.createElement(yse,{className:SE["action-icon"]}):ne.default.createElement(Cse,{className:SE["action-icon"]})))},uUa=Uc.default.bind(pO),tUa=function(){var u=Ns(),t=u.state,a=u.actions,n=t.get("typeFilter");return QVa.map(function(r){var i=r.name,o=r.filterBy,s=o.value===n.value;return ne.default.createElement(Bd,{key:i,className:uUa({active:s}),onClick:function(){return a.updateTypeFilter(o)},variant:"text"},i)})},aUa=".ImportHAR-styles__drag-drop___RvgHH{align-items:center;border:2px dashed #dbe0ea;border-radius:4px;color:#1e2127;cursor:pointer;display:flex;font-size:18px;height:100%;justify-content:center;margin:1rem;min-height:300px}.ImportHAR-styles__drag-drop___RvgHH:hover{border-color:#bfbfbf;color:#555}",nUa={brandBlue:"#0E75DD","drag-drop":"ImportHAR-styles__drag-drop___RvgHH"};t0(aUa);var bse=function(u){var t=u.className;return ne.default.createElement("svg",{className:t,height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("path",{d:"M9 16.8C9 16.9105 9.08954 17 9.2 17H14.8C14.9105 17 15 16.9105 15 16.8V8H18.8C18.974 8 19.0651 7.78851 18.9475 7.65731L12.1477 0.0663729C12.0684 -0.0221243 11.932 -0.0221243 11.8527 0.0663729L5.05292 7.65731C4.93539 7.78851 5.0264 8 5.20039 8H9V16.8Z"}),ne.default.createElement("path",{d:"M2.5 19.25C2.5 18.5596 1.94036 18 1.25 18C0.559644 18 0 18.5596 0 19.25V22.75C0 23.4404 0.559644 24 1.25 24H22.75C23.4404 24 24 23.4404 24 22.75V19.25C24 18.5596 23.4404 18 22.75 18C22.0596 18 21.5 18.5596 21.5 19.25V21.5H2.5V19.25Z"}))};bse.propTypes={className:Oe.default.string};bse.defaultProps={className:""};var rUa=function(){return ne.default.createElement(A3,{title:"Import HAR"},ne.default.createElement(Bd,{className:SE["icon-button"]},ne.default.createElement(bse,{className:SE["action-icon"]})))},iUa={accept:".har",multiple:!1},m$=function(u){var t=u.showButton,a=Ns(),n=a.actions,r=n.updateErrorMessage,i=function(E){return n.updateData(E)},o=function(E){var h=new FileReader;h.onabort=function(){return r({title:"file reading was aborted"})},h.onerror=function(){return r({title:"file reading has failed"})},h.onload=function(){try{var f=JSON.parse(h.result);i(f)}catch{r({title:"Error while parsing HAR file"})}},h.readAsText(E[0])},s=MVa.useDropzone(Qi(Qi({},iUa),{},{onDrop:o})),l=s.getRootProps,c=s.getInputProps;return ne.default.createElement("div",l(),ne.default.createElement("input",c()),t?ne.default.createElement(rUa,null):ne.default.createElement("p",{className:nUa["drag-drop"]},"Drag and drop HAR file here, or click to select file"))};m$.propTypes={showButton:Oe.default.bool};m$.defaultProps={showButton:!0};var oUa=function(){var u=Ns(),t=u.state,a=YD(),n=a.showExportHar,r=a.showImportHar,i=a.showReset,o=a.showPauseResume;return ne.default.createElement("section",{className:pO["filters-container"]},ne.default.createElement("div",{className:pO["filter-row"]},ne.default.createElement(XGa,null),ne.default.createElement(dse,t.get("search")),o&&ne.default.createElement(eUa,null),i&&ne.default.createElement(QGa,null),n&&ne.default.createElement(vse,{rawData:t.get("rawData")}),r&&ne.default.createElement(m$,null)),ne.default.createElement("div",{className:pO["type-filter-row"]},ne.default.createElement(tUa,null)))},sUa=".NetworkTable-styles__network-table-body___l3R54{border-top:1px solid #dbe0ea;outline:none}.NetworkTable-styles__no-data___bPXUs{align-items:center;display:flex;flex-direction:column;padding:44px 20px;text-align:center}.NetworkTable-styles__no-data___bPXUs .NetworkTable-styles__network-icon___FRcuW{fill:#979eab;height:28px;width:28px}.NetworkTable-styles__no-data___bPXUs .NetworkTable-styles__header___BQV3I{color:#1e2127;font-weight:600;padding:28px 0 12px}.NetworkTable-styles__no-data___bPXUs .NetworkTable-styles__subtext___eiHs3{color:#6d7584}.NetworkTable-styles__network-table-header___mqPXQ{align-content:center;color:#6d7584;display:flex;font-size:12px;font-weight:700;padding:8px;text-transform:uppercase;width:100%}.NetworkTable-styles__network-table-header___mqPXQ:last-child{padding-right:0}.NetworkTable-styles__table-column___V-6tl{align-self:center;display:flex;min-width:60px;padding-right:8px;width:12%}.NetworkTable-styles__table-column___V-6tl:last-child{padding-right:0}.NetworkTable-styles__table-column___V-6tl.NetworkTable-styles__show-waterfall___mZRWk{width:10%}.NetworkTable-styles__table-column___V-6tl.NetworkTable-styles__file___mIiM0{width:25%}.NetworkTable-styles__table-column___V-6tl.NetworkTable-styles__file___mIiM0.NetworkTable-styles__limited-cols___iWJI3{width:100%}.NetworkTable-styles__table-column___V-6tl.NetworkTable-styles__domain___MPiUt{width:15%}.NetworkTable-styles__network-table-row___L06AP{border-bottom:1px solid #dbe0ea;color:#1e2127;cursor:pointer;display:flex;font-size:12px;overflow:hidden;padding:4px 8px;width:100%}.NetworkTable-styles__network-table-row___L06AP.NetworkTable-styles__pending___-aI5r{color:#aaa}.NetworkTable-styles__network-table-row___L06AP.NetworkTable-styles__error___bm5-V{color:#eb3f47}.NetworkTable-styles__network-table-row___L06AP:hover{background:#e6e6e6}.NetworkTable-styles__network-table-row___L06AP.NetworkTable-styles__highlight___xgHFo{background:#5c7288;color:#fff}.NetworkTable-styles__value-text___qF7zL{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:break-all}.NetworkTable-styles__network-table-footer___FNR-H{background:#f7f8fa;border-top:1px solid #dbe0ea;display:inline-flex;font-size:12px;padding:4px 12px;vertical-align:middle;width:100%}.NetworkTable-styles__network-table-footer___FNR-H span{align-items:center;border-right:1px solid #ccc;display:inline-flex;flex:1 1 auto;justify-content:center;overflow:hidden;padding:0 4px}.NetworkTable-styles__network-table-footer___FNR-H span:last-child{border-right:none}",K4={brandBlue:"#0E75DD","network-table-body":"NetworkTable-styles__network-table-body___l3R54","no-data":"NetworkTable-styles__no-data___bPXUs","network-icon":"NetworkTable-styles__network-icon___FRcuW",header:"NetworkTable-styles__header___BQV3I",subtext:"NetworkTable-styles__subtext___eiHs3","network-table-header":"NetworkTable-styles__network-table-header___mqPXQ","table-column":"NetworkTable-styles__table-column___V-6tl","show-waterfall":"NetworkTable-styles__show-waterfall___mZRWk",file:"NetworkTable-styles__file___mIiM0","limited-cols":"NetworkTable-styles__limited-cols___iWJI3",domain:"NetworkTable-styles__domain___MPiUt","network-table-row":"NetworkTable-styles__network-table-row___L06AP",pending:"NetworkTable-styles__pending___-aI5r",error:"NetworkTable-styles__error___bm5-V",highlight:"NetworkTable-styles__highlight___xgHFo","value-text":"NetworkTable-styles__value-text___qF7zL","network-table-footer":"NetworkTable-styles__network-table-footer___FNR-H"};t0(sUa);var lUa=Uc.default.bind(K4),cUa=function(){var u=Ns(),t=u.state,a=t.get("showReqDetail"),n=t.get("tableHeaderWidth"),r=YD(),i=r.showWaterfall,o=nnu(a,i);return ne.default.createElement("div",{className:K4["network-table-header"],style:{width:n}},Object.entries(o).map(function(s){var l=Yr(s,2),c=l[0],d=l[1],E=d.key,h=d.name;return ne.default.createElement("div",{key:E,className:lUa("table-column","value-cell",c,{"limited-cols":a},{"show-waterfall":i})},h)}))},dUa=".NetworkTableContainer-styles__table-container___yl5KV{display:flex;flex-direction:column;height:100%;width:100%}.NetworkTableContainer-styles__table-container___yl5KV.NetworkTableContainer-styles__limited-cols___gJdQk{width:30%}.NetworkTableContainer-styles__har-selection___5ibaM{display:flex;flex-direction:column;width:100%}",vnu={brandBlue:"#0E75DD","table-container":"NetworkTableContainer-styles__table-container___yl5KV","limited-cols":"NetworkTableContainer-styles__limited-cols___gJdQk","har-selection":"NetworkTableContainer-styles__har-selection___5ibaM"};t0(dUa);var EUa=".ErrorMessage-styles__error-container___ljOFx{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:1rem;width:100%}.ErrorMessage-styles__error-container___ljOFx .ErrorMessage-styles__title___lJTo9{color:red;font-weight:300}",Rye={"error-container":"ErrorMessage-styles__error-container___ljOFx",title:"ErrorMessage-styles__title___lJTo9"};t0(EUa);var kse=function(u){var t=u.title,a=u.description;return ne.default.createElement("div",{className:Rye["error-container"]},t&&ne.default.createElement("h4",{className:Rye.title},t),a&&ne.default.createElement("p",null,a))};kse.propTypes={description:Oe.default.any,title:Oe.default.any};kse.defaultProps={description:null,title:null};var hUa=".InputHAR-styles__input-har-container___skL-t{align-items:center;color:#1e2127;display:flex;flex-direction:column;margin:1rem}.InputHAR-styles__input-har-container___skL-t .InputHAR-styles__input-har-text___usjRP{font-size:18px;font-weight:400}.InputHAR-styles__input-har-container___skL-t .InputHAR-styles__example-url___luNOl{padding-left:4px;text-decoration:none}",OG={brandBlue:"#0E75DD","input-har-container":"InputHAR-styles__input-har-container___skL-t","input-har-text":"InputHAR-styles__input-har-text___usjRP","example-url":"InputHAR-styles__example-url___luNOl"};t0(hUa);var fUa=".URLInput-styles__url-input-container___b98a5{align-items:stretch;display:flex;flex-wrap:wrap;margin:0;max-width:992px;position:relative;width:100%}.URLInput-styles__url-input-container___b98a5 .URLInput-styles__postpend-button___NjC5z{display:flex;height:auto;margin-left:-1px}.URLInput-styles__url-input-container___b98a5 .URLInput-styles__input___vWMQw{background-clip:padding-box;background-color:#fff;border:1px solid #dbe0ea;border-radius:.2rem;border-bottom-right-radius:0;border-top-right-radius:0;color:#646464;flex:1 1 auto;font-size:.875rem;height:26px;line-height:1.5;margin-bottom:0;padding:.25rem .5rem;position:relative;width:1%}",_G={brandBlue:"#0E75DD","url-input-container":"URLInput-styles__url-input-container___b98a5","postpend-button":"URLInput-styles__postpend-button___NjC5z",input:"URLInput-styles__input___vWMQw"};t0(fUa);var mUa=".Checkbox-styles__checkbox-container___nEBCK{min-width:110px;padding:2px 0 0 24px;text-align:right}.Checkbox-styles__checkbox-container___nEBCK .Checkbox-styles__checkbox-label___e-tDx{color:#1e2127;cursor:pointer;font-style:normal;font-weight:400;margin:0;text-transform:none}.Checkbox-styles__checkbox-container___nEBCK .Checkbox-styles__checkbox___driKN{cursor:pointer;margin-right:4px}",lee={brandBlue:"#0E75DD","checkbox-container":"Checkbox-styles__checkbox-container___nEBCK","checkbox-label":"Checkbox-styles__checkbox-label___e-tDx",checkbox:"Checkbox-styles__checkbox___driKN"};t0(mUa);var pUa=Uc.default.bind(lee),Fse=function(u){var t=u.containerClassName,a=u.isChecked,n=u.onChange,r=u.children,i=u.title;return ne.default.createElement("div",{className:pUa("checkbox-container",t)},ne.default.createElement("label",{className:lee["checkbox-label"],title:i},ne.default.createElement("input",{checked:a,className:lee.checkbox,name:"checkbox",onChange:n,type:"checkbox"}),r))};Fse.propTypes={children:Oe.default.any.isRequired,containerClassName:Oe.default.string,isChecked:Oe.default.bool,onChange:Oe.default.func.isRequired,title:Oe.default.string};Fse.defaultProps={containerClassName:"",isChecked:!1,title:""};var DUa=".CORSCheckbox-styles__cors-container___bI-rV{align-items:center;display:flex;min-width:50px;padding:0 1rem 0 0;width:auto}",xUa={"cors-container":"CORSCheckbox-styles__cors-container___bI-rV"};t0(DUa);var Cnu=function(u){var t=u.isEnabled,a=u.onChange,n=function(){a(!t)};return ne.default.createElement(Fse,{containerClassName:xUa["cors-container"],isChecked:t,onChange:n,title:"CORS Enable"},"CORS")};Cnu.propTypes={isEnabled:Oe.default.bool.isRequired,onChange:Oe.default.func.isRequired};var gUa=function(){var u=Kt.useState(""),t=Yr(u,2),a=t[0],n=t[1],r=Kt.useState(!1),i=Yr(r,2),o=i[0],s=i[1],l=function(E){var h=E.target;n(h.value)},c=function(){var E=document.location,h=E.origin,f=E.pathname,m="".concat(h).concat(f,"?").concat(PVa.stringify({file:a,isCORSEnabled:o}));document.location.href=m};return ne.default.createElement("div",{className:_G["url-input-container"]},ne.default.createElement(Cnu,{isEnabled:o,onChange:s}),ne.default.createElement("input",{className:_G.input,name:"har-url",onChange:l,placeholder:"HAR file URL",type:"text",value:a}),ne.default.createElement(Bd,{className:_G["postpend-button"],onClick:c},"GO"))},Lye="https://raw.githubusercontent.com/saucelabs/network-viewer/main/examples/src/data/network.har",vUa=function(){return ne.default.createElement("div",{className:OG["input-har-container"]},ne.default.createElement("h4",{className:OG["input-har-text"]},"OR add HAR file URL in the below input box"),ne.default.createElement(gUa,null),ne.default.createElement("p",null,ne.default.createElement("span",null,"For Example use this har file"),ne.default.createElement("a",{className:OG["example-url"],href:Lye,rel:"noopener noreferrer",target:"_blank"},Lye)))},CUa='.TimeChart-styles__time-chart-tooltip___XcshK{background-color:#fff!important;overflow:hidden!important;scrollbar-color:auto!important}.TimeChart-styles__tooltip___4c9Mx{background:#fff;color:#555;display:block;font-size:12px;height:auto;opacity:1;padding:8px;width:280px}.TimeChart-styles__tooltip-info___-xcil{margin-bottom:16px}.TimeChart-styles__tooltip-info___-xcil .TimeChart-styles__time-info___N38ca{margin:0}.TimeChart-styles__waterfall-tooltip-table___TZCxi{border:0;width:100%}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-th___1tswB,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-value___paBoL,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-th___1tswB,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-value___paBoL{background:transparent;border:0;font-weight:400;padding:0;text-align:left}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-value___paBoL,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-value___paBoL{text-align:right}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-tr___L44ET:nth-of-type(odd),.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-tr___L44ET:nth-of-type(odd){background-color:#fff}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ{font-weight:700;padding:0 16px;position:relative}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ:before,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ:before{content:"";height:8px;left:0;position:absolute;top:4px;width:8px}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__blocked___zYUSl,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__blocked___zYUSl{color:#a1000c}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__blocked___zYUSl:before,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__blocked___zYUSl:before{background:#a1000c}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__dns___FxMnA,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__dns___FxMnA{color:#dcc9e5}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__dns___FxMnA:before,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__dns___FxMnA:before{background:#dcc9e5}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__ssl___M5Y-M,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__ssl___M5Y-M{color:#e78057}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__ssl___M5Y-M:before,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__ssl___M5Y-M:before{background:#e78057}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__connect___goA6w,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__connect___goA6w{color:#db8553}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__connect___goA6w:before,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__connect___goA6w:before{background:#db8553}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__send___wZ5Z0,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__send___wZ5Z0{color:#3c96c4}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__send___wZ5Z0:before,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__send___wZ5Z0:before{background:#3c96c4}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__wait___MldqB,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__wait___MldqB{color:#7ca0bf}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__wait___MldqB:before,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__wait___MldqB:before{background:#7ca0bf}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__receive___LKvFd,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__receive___LKvFd{color:#65b955}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__receive___LKvFd:before,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__receive___LKvFd:before{background:#65b955}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__queueing___01zoc,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__queueing___01zoc{color:#ccc}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-tbody___eMoBP .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__queueing___01zoc:before,.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-key___eVaAQ.TimeChart-styles__queueing___01zoc:before{background:#ccc}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-th___1tswB{color:gray;padding-bottom:8px}.TimeChart-styles__waterfall-tooltip-table___TZCxi .TimeChart-styles__waterfall-tooltip-thead___B9Xf4 .TimeChart-styles__waterfall-tooltip-th___1tswB:nth-child(2){text-align:right}',oi={brandBlue:"#0E75DD","time-chart-tooltip":"TimeChart-styles__time-chart-tooltip___XcshK",tooltip:"TimeChart-styles__tooltip___4c9Mx","tooltip-info":"TimeChart-styles__tooltip-info___-xcil","time-info":"TimeChart-styles__time-info___N38ca","waterfall-tooltip-table":"TimeChart-styles__waterfall-tooltip-table___TZCxi","waterfall-tooltip-tbody":"TimeChart-styles__waterfall-tooltip-tbody___eMoBP","waterfall-tooltip-value":"TimeChart-styles__waterfall-tooltip-value___paBoL","waterfall-tooltip-key":"TimeChart-styles__waterfall-tooltip-key___eVaAQ","waterfall-tooltip-th":"TimeChart-styles__waterfall-tooltip-th___1tswB","waterfall-tooltip-thead":"TimeChart-styles__waterfall-tooltip-thead___B9Xf4","waterfall-tooltip-tr":"TimeChart-styles__waterfall-tooltip-tr___L44ET",blocked:"TimeChart-styles__blocked___zYUSl",dns:"TimeChart-styles__dns___FxMnA",ssl:"TimeChart-styles__ssl___M5Y-M",connect:"TimeChart-styles__connect___goA6w",send:"TimeChart-styles__send___wZ5Z0",wait:"TimeChart-styles__wait___MldqB",receive:"TimeChart-styles__receive___LKvFd",queueing:"TimeChart-styles__queueing___01zoc"};t0(CUa);var yUa=Uc.default.bind(oi),bUa=[{title:"Resource Scheduling",category:["queueing"]},{title:"Connection Start",category:["blocked","dns","ssl","connect"]},{title:"Request/Response",category:["send","wait","receive"]}],ynu=function(u){var t=u.data,a=Kt.useMemo(function(){return t?DGa(t):null},[t]);return a?ne.default.createElement("div",{className:oi.tooltip},ne.default.createElement("section",{className:oi["tooltip-info"]},ne.default.createElement("p",{className:oi["time-info"]},"Queued at ".concat(a.queuedAt)),ne.default.createElement("p",{className:oi["time-info"]},"Started at ".concat(a.startedAt))),bUa.map(function(n){var r=n.title,i=n.category;return ne.default.createElement("section",{key:r,className:oi["tooltip-info"]},ne.default.createElement("table",{className:oi["waterfall-tooltip-table"]},ne.default.createElement("thead",{className:oi["waterfall-tooltip-thead"]},ne.default.createElement("tr",{className:oi["waterfall-tooltip-tr"]},ne.default.createElement("th",{className:oi["waterfall-tooltip-th"]},r),ne.default.createElement("th",{className:oi["waterfall-tooltip-th"]},"DURATION"))),ne.default.createElement("tbody",{className:oi["waterfall-tooltip-tbody"]},i.map(function(o){return ne.default.createElement("tr",{key:o,className:oi["waterfall-tooltip-tr"]},ne.default.createElement("td",{className:yUa("waterfall-tooltip-key",o)},Tg[o].name),ne.default.createElement("td",{className:oi["waterfall-tooltip-value"]},Array.isArray(Tg[o].dataKey)?a[Tg[o].dataKey.find(function(s){return a[s]})]:a[Tg[o].dataKey]))}))))}),ne.default.createElement("section",{className:oi["tooltip-info"]},ne.default.createElement("p",{className:oi["time-info"]},"Total time ".concat(a.totalTime)))):null};ynu.propTypes={data:Oe.default.object.isRequired};var bnu=function(u){var t=u.timings,a=u.maxTime,n=Kt.useMemo(function(){return anu(t,a)},[t,a]);return ne.default.createElement(A3,{className:oi["time-chart-tooltip"],delay:300,placement:"left",title:ne.default.createElement(ynu,{data:t})},ne.default.createElement("svg",eGa,ne.default.createElement("g",null,n.map(function(r){return ne.default.createElement("rect",I1({key:r.key},r,uGa))}))))};bnu.propTypes={maxTime:Oe.default.number.isRequired,timings:Oe.default.object.isRequired};var $ye=Uc.default.bind(K4),Ase=function(u){var t=u.datakey,a=u.onClick,n=u.payload,r=u.unit,i=gGa(t,n[t],r,n),o=t===oee.file.key||n.error,s=function(){return t===oee.file.key?n.url:n.error?n.error:i};return o?ne.default.createElement(A3,{delay:500,title:s()},ne.default.createElement("div",{className:$ye("value-text",t),onClick:a},i)):ne.default.createElement("div",{className:$ye("value-text",t)},i)};Ase.propTypes={datakey:Oe.default.string.isRequired,onClick:Oe.default.func,payload:Oe.default.object,unit:Oe.default.string};Ase.defaultProps={onClick:function(){},payload:{},unit:null};var Iye=Uc.default.bind(K4),Bse=function(u){var t=u.entry,a=u.maxTime,n=u.onSelect,r=u.scrollHighlight,i=u.style,o=Ns(),s=o.state,l=s.get("showReqDetail"),c=YD(),d=c.showWaterfall,E=nnu(l,d),h={className:Iye("network-table-row",xGa(t),{highlight:r}),id:tGa+t.index,onClick:function(){return n(t)}};return ne.default.createElement("div",{style:Qi({},i)},ne.default.createElement("div",h,Object.entries(E).map(function(f){var m=Yr(f,2),p=m[0],D=m[1],g=D.key,v=D.unit;return ne.default.createElement("div",{key:g,className:Iye("table-column",p,{"limited-cols":l},{"show-waterfall":d})},g==="waterfall"&&t.time?ne.default.createElement(bnu,{maxTime:a,timings:t.timings}):ne.default.createElement(Ase,{datakey:g,onClick:h.onClick,payload:t,unit:v}))})))};Bse.propTypes={entry:Oe.default.object.isRequired,maxTime:Oe.default.number.isRequired,onSelect:Oe.default.func.isRequired,scrollHighlight:Oe.default.bool.isRequired,style:Oe.default.object};Bse.defaultProps={style:{}};var kUa=function(u,t){var a;return function(){for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];a&&clearTimeout(a),a=setTimeout(function(){u.apply(void 0,r)},t)}},knu=function(u){var t=Kt.useState({width:0,height:0}),a=Yr(t,2),n=a[0],r=a[1];return Kt.useEffect(function(){var i=kUa(function(){u&&r({width:u.clientWidth,height:u.clientHeight})},50),o=new ResizeObserver(function(){return i()});return u&&o.observe(u),function(){u&&o.unobserve(u)}},[u]),{elementDims:n}},Sse=function(u){var t=u.className;return ne.default.createElement("svg",{className:t,height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("path",{d:"M5.5 14.4999C5.5 14.7761 5.72386 14.9999 6 14.9999H8C8.27614 14.9999 8.5 14.7761 8.5 14.4999V6.99994H12.5697C12.7399 6.99994 12.8323 6.80096 12.7225 6.67093L7.1531 0.0736706C7.0732 -0.0209768 6.92735 -0.0209758 6.84745 0.0736716L1.27803 6.67093C1.16826 6.80096 1.26069 6.99994 1.43085 6.99994H5.5V14.4999Z"}),ne.default.createElement("path",{d:"M15.5 9.49994C15.5 9.2238 15.7239 8.99994 16 8.99994H18C18.2761 8.99994 18.5 9.2238 18.5 9.49994V16.9999H22.5697C22.7399 16.9999 22.8323 17.1989 22.7225 17.329L17.1531 23.9262C17.0732 24.0209 16.9274 24.0209 16.8474 23.9262L11.278 17.329C11.1683 17.1989 11.2607 16.9999 11.4309 16.9999H15.5V9.49994Z"}))};Sse.propTypes={className:Oe.default.string};Sse.defaultProps={className:""};var FUa=function(u){var t=u.data,a=u.index,n=u.style,r=t.listData,i=t.totalNetworkTime,o=t.handleReqSelect,s=t.selectedReqIndex,l=r.get(a);return ne.default.createElement(Bse,{key:a,entry:l,maxTime:i,onSelect:o,scrollHighlight:s===l.index,style:n})},Fnu=function(u){var t,a=u.height,n=Ns(),r=n.state,i=n.actions,o=n.callbacks,s=YD(),l=s.enableAutoScroll,c=s.NoDataPlaceholder,d=r.get("numberOfNewEntries"),E=r.get("data"),h=r.get("actualData"),f=r.get("totalNetworkTime"),m=r.get("selectedReqIndex"),p=Kt.useRef(null),D=knu((p==null||(t=p.current)===null||t===void 0?void 0:t._outerRef)||(p==null?void 0:p.current)),g=D.elementDims;Kt.useEffect(function(){i.setTableHeaderWidth(g.width)},[g]),Kt.useEffect(function(){var C;if(l&&p!==null&&p!==void 0&&(C=p.current)!==null&&C!==void 0&&C._outerRef){var y,b=p==null||(y=p.current)===null||y===void 0?void 0:y._outerRef,F=b.scrollTop+b.offsetHeight+d*zye>=b.scrollHeight;F&&(p.current._outerRef.scrollTop=b.scrollHeight)}},[E,p]);var v=function(y){m!==y.index&&(i.updateScrollToIndex(y.index),i.selectRequest(y),o.onRequestSelect(y))};return h.size===0?ne.default.createElement("div",{ref:p,className:K4["no-data"]},ne.default.createElement(Sse,{className:K4["network-icon"]}),c&&ne.default.createElement(c,null),!c&&ne.default.createElement(ne.default.Fragment,null,ne.default.createElement("span",{className:K4.header},"Recording network activity"),ne.default.createElement("span",{className:K4.subtext},"Perform a request to see the network activity"))):ne.default.createElement(ne.default.Fragment,null,ne.default.createElement(jVa.FixedSizeList,{ref:p,className:K4["network-table-body"],height:a,itemCount:E.size,itemData:{listData:E,totalNetworkTime:f,handleReqSelect:v,selectedReqIndex:m},itemSize:zye},FUa))};Fnu.propTypes={height:Oe.default.number.isRequired};var AUa=Uc.default.bind(vnu),BUa=function(){var u=Ns(),t=u.state,a=YD(),n=a.showImportHar,r=a.showWaterfall,i=t.get("actualData"),o=t.get("error"),s=t.get("showReqDetail"),l=Kt.useState(0),c=Yr(l,2),d=c[0],E=c[1],h=Kt.useRef(),f=knu(h==null?void 0:h.current),m=f.elementDims;return Kt.useEffect(function(){h!=null&&h.current&&m.height&&E(h.current.clientHeight-rGa)},[h==null?void 0:h.current,i,m]),o?ne.default.createElement(kse,o):!i.size&&n?ne.default.createElement("section",{className:vnu["har-selection"]},ne.default.createElement(m$,{showButton:!1}),ne.default.createElement(vUa,null)):ne.default.createElement("section",{ref:h,className:AUa("table-container",{"hide-waterfall":!r},{"limited-cols":s})},ne.default.createElement(cUa,null),ne.default.createElement(Fnu,{height:d}))},SUa=".LoaderContainer-styles__loader-container___22gl9{align-items:center;display:flex;justify-content:center;min-height:200px}.LoaderContainer-styles__spin___ky0rB{height:3rem;line-height:0;transform:translateZ(0);width:3rem}.LoaderContainer-styles__spin___ky0rB svg{animation:LoaderContainer-styles__load___lqM7u 1.4s linear infinite}.LoaderContainer-styles__text___FJnVM{padding-left:15px}@keyframes LoaderContainer-styles__load___lqM7u{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}",TG={"loader-container":"LoaderContainer-styles__loader-container___22gl9",spin:"LoaderContainer-styles__spin___ky0rB",load:"LoaderContainer-styles__load___lqM7u",text:"LoaderContainer-styles__text___FJnVM"};t0(SUa);var wse=function(u){var t=u.children,a=u.show,n=u.text,r="#0E75DD",i="Gradient-".concat(Math.round(Math.random()*1e7));return a?ne.default.createElement("section",{className:TG["loader-container"]},ne.default.createElement("div",{className:TG.spin},ne.default.createElement("svg",{viewBox:"0 0 100 100",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("defs",null,ne.default.createElement("linearGradient",{id:i},ne.default.createElement("stop",{offset:"0%",stopColor:r}),ne.default.createElement("stop",{offset:"75%",stopColor:r,stopOpacity:"0"}),ne.default.createElement("stop",{offset:"100%",stopColor:r,stopOpacity:"0"}))),ne.default.createElement("circle",{cx:"50",cy:"50",fill:"transparent",r:"43",stroke:"url(#".concat(i,")"),strokeWidth:"14"}))),n&&ne.default.createElement("p",{className:TG.text},n)):t};wse.propTypes={children:Oe.default.node,show:Oe.default.bool,text:Oe.default.oneOfType([Oe.default.string,Oe.default.node])};wse.defaultProps={children:null,show:!0,text:null};var wUa=".ReqDetailContainer-styles__req-detail-container___tjrsQ{background:#fff;border-left:1px solid #dbe0ea;height:100%;overflow:auto;position:relative;width:70%}.ReqDetailContainer-styles__req-detail-container___tjrsQ .ReqDetailContainer-styles__nav-tabs___Ilz0g{height:35px;padding-left:35px}.ReqDetailContainer-styles__req-detail-container___tjrsQ .ReqDetailContainer-styles__tab-link___2Qz7z{border:0;color:#1e2127;margin:0;padding:8px 12px 4px}.ReqDetailContainer-styles__req-detail-container___tjrsQ .ReqDetailContainer-styles__tab-link___2Qz7z:hover{text-decoration:none}.ReqDetailContainer-styles__req-detail-container___tjrsQ .ReqDetailContainer-styles__tab-link___2Qz7z.ReqDetailContainer-styles__active___NYqvK{border-bottom:2px solid #1e2127;color:#1e2127;font-weight:600}.ReqDetailContainer-styles__req-detail-container___tjrsQ .ReqDetailContainer-styles__close-button___bd4r1{background:transparent;border:0;cursor:pointer;left:8px;outline:none;padding-top:4px;position:absolute;top:8px}.ReqDetailContainer-styles__req-detail-container___tjrsQ .ReqDetailContainer-styles__close-button___bd4r1 .ReqDetailContainer-styles__close-icon___Og3Vi{fill:#6d7584;height:12px;width:12px}.ReqDetailContainer-styles__req-detail-container___tjrsQ .ReqDetailContainer-styles__close-button___bd4r1 .ReqDetailContainer-styles__close-icon___Og3Vi g{stroke:#555}.ReqDetailContainer-styles__req-detail-container___tjrsQ .ReqDetailContainer-styles__close-button___bd4r1:hover .ReqDetailContainer-styles__close-icon___Og3Vi g{stroke:#000}.ReqDetailContainer-styles__req-detail-container___tjrsQ .ReqDetailContainer-styles__tabs-container___RgAIs{display:flex;height:calc(100% - 35px);outline:none;overflow:auto;width:100%}",jm={brandBlue:"#0E75DD","req-detail-container":"ReqDetailContainer-styles__req-detail-container___tjrsQ","nav-tabs":"ReqDetailContainer-styles__nav-tabs___Ilz0g","tab-link":"ReqDetailContainer-styles__tab-link___2Qz7z",active:"ReqDetailContainer-styles__active___NYqvK","close-button":"ReqDetailContainer-styles__close-button___bd4r1","close-icon":"ReqDetailContainer-styles__close-icon___Og3Vi","tabs-container":"ReqDetailContainer-styles__tabs-container___RgAIs"};t0(wUa);var zUa=".Tabs-styles__nav-tabs___abDlX{border-bottom:1px solid #e6e6e6;display:flex;flex-wrap:wrap;list-style:none;margin-bottom:0;padding-left:0}.Tabs-styles__tab-item___E6kiN{background-color:transparent;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem;color:#007bff;cursor:pointer;display:block;margin-bottom:-1px;padding:.5rem 1rem;text-decoration:none}.Tabs-styles__tab-item___E6kiN:active,.Tabs-styles__tab-item___E6kiN:focus{outline:none}.Tabs-styles__tab-item___E6kiN.Tabs-styles__active___xRcuF{background-color:#fff;border-color:#e6e6e6 #e6e6e6 #fff;color:#646464}",Anu={brandBlue:"#0E75DD","nav-tabs":"Tabs-styles__nav-tabs___abDlX","tab-item":"Tabs-styles__tab-item___E6kiN",active:"Tabs-styles__active___xRcuF"};t0(zUa);var MG=Uc.default.bind(Anu),zse=function(u){var t=u.onUpdate,a=u.selectedKey,n=u.defaultSelectedKey,r=u.children,i=u.navTabsClassName,o=u.tabsContainerClassName,s=u.navLinkClassName,l=u.activeClassName,c=Kt.useState([]),d=Yr(c,2),E=d[0],h=d[1];Kt.useEffect(function(){var C=[];ne.default.Children.forEach(r,function(y){if(ne.default.isValidElement(y)){var b=y.props,F=b.name,S=b.eventKey,M=b.children;C.push({name:F,key:S,component:M})}}),h(C)},[r]);var f=Kt.useState(n||(E&&E.length?E[0].key:null)),m=Yr(f,2),p=m[0],D=m[1],g=function(y){D(y),t&&t(y)},v=function(){var y=E.find(function(b){var F=b.key;return F===(a||p)});return y?y.component:null};return ne.default.createElement(ne.default.Fragment,null,ne.default.createElement("nav",{className:MG("nav-tabs",i)},E.map(function(C,y){var b=C.key,F=C.name;return ne.default.createElement("a",{key:b,className:MG("tab-item",s,lE({},l||Anu.active,p===b)),onClick:function(){return g(b)},role:"tab",tabIndex:y},F)})),ne.default.createElement("section",{className:MG(o)},v()))};zse.propTypes={activeClassName:Oe.default.string,children:Oe.default.node.isRequired,defaultSelectedKey:Oe.default.string,navLinkClassName:Oe.default.string,navTabsClassName:Oe.default.string,onUpdate:Oe.default.func,selectedKey:Oe.default.string,tabsContainerClassName:Oe.default.string};zse.defaultProps={activeClassName:null,defaultSelectedKey:null,navLinkClassName:null,navTabsClassName:null,onUpdate:null,selectedKey:null,tabsContainerClassName:null};var DO=function(u){var t=u.children;return t};DO.propTypes={children:Oe.default.node.isRequired};var OUa=".ReqDetail-styles__section-container___JHZCz{width:100%}.ReqDetail-styles__section-title-row___mSF8m{align-items:center;background:#f7f8fa;border-bottom:1px solid #dbe0ea;border-top:1px solid #dbe0ea;color:#1e2127;cursor:pointer;display:flex;font-size:13px;font-weight:500;padding:4px 12px;width:100%}.ReqDetail-styles__section-title-row___mSF8m:first-child{border-top:0}.ReqDetail-styles__section-title-row___mSF8m .ReqDetail-styles__section-title___hc3Hi{align-items:center;display:flex}.ReqDetail-styles__section-title-row___mSF8m .ReqDetail-styles__section-title___hc3Hi .ReqDetail-styles__caret-icon___r9OKY{fill:#6d7584;height:16px;margin-right:4px;width:16px}.ReqDetail-styles__section-title-row___mSF8m .ReqDetail-styles__encode-url___gm0tr{font-size:12px;margin-left:12px}.ReqDetail-styles__section-title-row___mSF8m span:focus,.ReqDetail-styles__section-title-row___mSF8m:focus{outline:none}.ReqDetail-styles__section-detail___MvXed{padding:8px 12px;width:100%}.ReqDetail-styles__section-detail___MvXed .ReqDetail-styles__info-row___QXOqe{font-size:12px;margin:0;padding-bottom:4px}.ReqDetail-styles__section-detail___MvXed .ReqDetail-styles__info-row___QXOqe:last-child{padding-bottom:0}.ReqDetail-styles__section-detail___MvXed .ReqDetail-styles__info-caption___p-Y-j{font-weight:700;padding-right:8px}.ReqDetail-styles__section-detail___MvXed .ReqDetail-styles__info-value___4gnJ-{word-break:break-all}.ReqDetail-styles__no-payload___NNYCE{align-items:center;color:#1e2127;display:flex;font-size:18px;justify-content:center;width:100%}.ReqDetail-styles__payload-content___Ej2F8{display:flex;flex-direction:column;font-size:12px;width:100%}.ReqDetail-styles__payload-content___Ej2F8 .ReqDetail-styles__copy-button___4-PO5{background:#fff;display:flex;justify-content:end;margin-top:-8px;position:sticky;top:0;width:100%}.ReqDetail-styles__payload-content___Ej2F8 .ReqDetail-styles__payload-body___YIngg{font-family:monospace;white-space:pre-wrap;word-break:break-all}",da={brandBlue:"#0E75DD","section-container":"ReqDetail-styles__section-container___JHZCz","section-title-row":"ReqDetail-styles__section-title-row___mSF8m","section-title":"ReqDetail-styles__section-title___hc3Hi","caret-icon":"ReqDetail-styles__caret-icon___r9OKY","encode-url":"ReqDetail-styles__encode-url___gm0tr","section-detail":"ReqDetail-styles__section-detail___MvXed","info-row":"ReqDetail-styles__info-row___QXOqe","info-caption":"ReqDetail-styles__info-caption___p-Y-j","info-value":"ReqDetail-styles__info-value___4gnJ-","no-payload":"ReqDetail-styles__no-payload___NNYCE","payload-content":"ReqDetail-styles__payload-content___Ej2F8","copy-button":"ReqDetail-styles__copy-button___4-PO5","payload-body":"ReqDetail-styles__payload-body___YIngg"};t0(OUa);var Ose=function(u){var t=u.data;return ne.default.createElement("div",{className:da["section-detail"]},Object.entries(aGa).map(function(a){var n=Yr(a,2),r=n[0],i=n[1],o=i.key,s=i.name;return ne.default.createElement("div",{key:r,className:da["info-row"]},ne.default.createElement("span",{className:da["info-caption"]},"".concat(s,":")),ne.default.createElement("span",{className:da["info-value"]},o==="status"&&t.error?t.error:t[o]))}))};Ose.propTypes={data:Oe.default.object};Ose.defaultProps={data:null};var _se=function(u){var t=u.data;return ne.default.createElement("div",{className:da["section-detail"]},t.headers.response.map(function(a,n){var r=a.name,i=a.value;return ne.default.createElement("div",{key:"".concat(r,"-").concat(n),className:da["info-row"]},ne.default.createElement("span",{className:da["info-caption"]},"".concat(r,":")),ne.default.createElement("span",{className:da["info-value"]},i))}))};_se.propTypes={data:Oe.default.object};_se.defaultProps={data:null};var Tse=function(u){var t=u.data;return ne.default.createElement("div",{className:da["section-detail"]},t.headers.request.map(function(a,n){var r=a.name,i=a.value;return ne.default.createElement("div",{key:"".concat(r,"-").concat(n),className:da["info-row"]},ne.default.createElement("span",{className:da["info-caption"]},"".concat(r,":")),ne.default.createElement("span",{className:da["info-value"]},i))}))};Tse.propTypes={data:Oe.default.object};Tse.defaultProps={data:null};var Mse=function(u){var t=u.className;return ne.default.createElement("svg",{className:t,height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("path",{d:"M5.04607 8.29925C4.94259 8.1833 5.02523 8 5.181 8H18.8192C18.975 8 19.0577 8.1833 18.9542 8.29925L12.1351 15.9397C12.0632 16.0201 11.937 16.0201 11.8652 15.9397L5.04607 8.29925Z"}))};Mse.propTypes={className:Oe.default.string};Mse.defaultProps={className:""};var Pse=function(u){var t=u.className;return ne.default.createElement("svg",{className:t,height:"24",viewBox:"0 0 25 24",width:"25",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("path",{d:"M8.42327 18.954C8.30732 19.0575 8.12402 18.9748 8.12402 18.8191L8.12402 5.18082C8.12402 5.02505 8.30732 4.9424 8.42327 5.04589L16.0637 11.865C16.1441 11.9368 16.1441 12.0631 16.0637 12.1349L8.42327 18.954Z"}))};Pse.propTypes={className:Oe.default.string};Pse.defaultProps={className:""};var jse=function(u){var t=u.onClick,a=u.eventKey,n=u.isEncodeEnabled,r=u.isOpen,i=u.onPayloadTransform,o=u.isPayloadTransformed,s=u.isParseEnabled,l=nGa[s?"parse":"encode"][o];return ne.default.createElement("div",{className:da["section-title-row"]},ne.default.createElement("span",{className:da["section-title"],onClick:function(){return t(wye[a].key)},role:"button",tabIndex:0},r?ne.default.createElement(Mse,{className:da["caret-icon"]}):ne.default.createElement(Pse,{className:da["caret-icon"]}),wye[a].name),(n||s)&&ne.default.createElement("span",{className:da["encode-url"],onClick:i,role:"button",tabIndex:0},"view ".concat(l)))};jse.propTypes={eventKey:Oe.default.string.isRequired,isEncodeEnabled:Oe.default.bool,isOpen:Oe.default.bool,isParseEnabled:Oe.default.bool,isPayloadTransformed:Oe.default.bool,onClick:Oe.default.func.isRequired,onPayloadTransform:Oe.default.func.isRequired};jse.defaultProps={isEncodeEnabled:!1,isOpen:!1,isParseEnabled:!1,isPayloadTransformed:!0};var Xh=function(u){var t=u.eventKey,a=u.data,n=u.component,r=u.isEncodeEnabled,i=u.isParseEnabled,o=u.isVisible,s=Kt.useState(o),l=Yr(s,2),c=l[0],d=l[1],E=Kt.useState(!0),h=Yr(E,2),f=h[0],m=h[1],p=function(){return m(!f)},D=function(){return n({data:a,isPayloadTransformed:f,onChangeEncode:p})};return ne.default.createElement(ne.default.Fragment,null,ne.default.createElement(jse,{eventKey:t,isEncodeEnabled:r,isOpen:c,isParseEnabled:i,isPayloadTransformed:f,onClick:function(){return d(!c)},onPayloadTransform:p}),c&&ne.default.createElement(D,null))};Xh.propTypes={component:Oe.default.func.isRequired,data:Oe.default.object,eventKey:Oe.default.string.isRequired,isEncodeEnabled:Oe.default.bool,isParseEnabled:Oe.default.bool,isVisible:Oe.default.bool};Xh.defaultProps={data:null,isEncodeEnabled:!1,isParseEnabled:!1,isVisible:!1};var Nse=function(u){var t=u.data;return t?ne.default.createElement("section",{className:da["section-container"]},ne.default.createElement(Xh,{component:Ose,data:t,eventKey:"general",isVisible:!0}),ne.default.createElement(Xh,{component:Tse,data:t,eventKey:"requestHeaders"}),ne.default.createElement(Xh,{component:_se,data:t,eventKey:"responseHeaders"})):null};Nse.propTypes={data:Oe.default.object};Nse.defaultProps={data:null};var Rse=function(u){var t=u.className;return ne.default.createElement("svg",{className:t,height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("path",{clipRule:"evenodd",d:"M3.33792 3.33794C3.82607 2.84979 4.61753 2.84979 5.10569 3.33794L12 10.2322L18.8943 3.33794C19.3824 2.84979 20.1739 2.84979 20.662 3.33794C21.1502 3.8261 21.1502 4.61755 20.662 5.10571L13.7677 12L20.662 18.8943C21.1502 19.3824 21.1502 20.1739 20.662 20.6621C20.1739 21.1502 19.3824 21.1502 18.8943 20.6621L12 13.7678L5.10569 20.6621C4.61753 21.1502 3.82607 21.1502 3.33792 20.6621C2.84976 20.1739 2.84976 19.3824 3.33792 18.8943L10.2322 12L3.33792 5.10571C2.84976 4.61755 2.84976 3.8261 3.33792 3.33794Z",fillRule:"evenodd"}))};Rse.propTypes={className:Oe.default.string};Rse.defaultProps={className:""};var _Ua=".CopyAllButton-styles__copy-button___Xxmiv{color:#0e75dd;font-size:12px;height:26px}.CopyAllButton-styles__copy-button___Xxmiv .CopyAllButton-styles__copy-text___wsmT3{padding-left:4px}.CopyAllButton-styles__copy-button___Xxmiv .CopyAllButton-styles__copy-icon___hPCHy{fill:#0e75dd;height:12px;width:12px}",Gw={brandBlue:"#0E75DD","copy-button":"CopyAllButton-styles__copy-button___Xxmiv","copy-text":"CopyAllButton-styles__copy-text___wsmT3","copy-icon":"CopyAllButton-styles__copy-icon___hPCHy"};t0(_Ua);var Lse=function(u){var t=u.className;return ne.default.createElement("svg",{className:t,height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("path",{clipRule:"evenodd",d:"M14.5 0C15.3284 0 16 0.671573 16 1.5V4H22C23.1046 4 24 4.89543 24 6V22C24 23.1046 23.1046 24 22 24H10C8.89543 24 8 23.1046 8 22V20H1.5C0.671572 20 0 19.3284 0 18.5V5.34711C0 4.93755 0.167468 4.5458 0.463528 4.2628L4.4882 0.415691C4.76731 0.148892 5.13856 0 5.52467 0H14.5ZM22 6V22H10V11.2H14.9999C15.2652 11.2 15.5195 11.0946 15.707 10.9071C15.8946 10.7195 15.9999 10.4652 15.9999 10.2V6H22ZM13.9999 6H13.7252L10.3775 9.19997H13.9999V6Z",fillRule:"evenodd"}))};Lse.propTypes={className:Oe.default.string};Lse.defaultProps={className:""};var $se=function(u){var t=u.className;return ne.default.createElement("svg",{className:t,height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},ne.default.createElement("path",{clipRule:"evenodd",d:"M23.5789 2.30868C24.0956 2.75821 24.1435 3.53404 23.6857 4.04153L7.48717 22L0.313554 14.0321C-0.143724 13.5242 -0.0951526 12.7485 0.42204 12.2994C0.939233 11.8503 1.7292 11.898 2.18648 12.4059L7.48892 18.2954L21.8143 2.41361C22.2721 1.90612 23.0621 1.85914 23.5789 2.30868Z",fillRule:"evenodd"}))};$se.propTypes={className:Oe.default.string};$se.defaultProps={className:""};var p$=function(u){var t=u.text,a=Kt.useState(!1),n=Yr(a,2),r=n[0],i=n[1],o=Kt.useRef(null),s=function(){navigator.clipboard.writeText(t),i(!0),o.current&&clearTimeout(o.current),o.current=setTimeout(function(){i(!1)},5e3)};return ne.default.createElement(Bd,{className:Gw["copy-button"],onClick:s,variant:"text"},r?ne.default.createElement($se,{className:Gw["copy-icon"]}):ne.default.createElement(Lse,{className:Gw["copy-icon"]}),ne.default.createElement("span",{className:Gw["copy-text"]},r?"Copied!":"Copy All"))};p$.propTypes={text:Oe.default.any};p$.defaultProps={text:""};var TUa=function(){return ne.default.createElement("h4",{className:da["no-payload"]},"This request has no response data available.")},Ise=function(u){var t=u.data,a=t&&t.body?t.body:null;return a?ne.default.createElement("div",{className:da["section-detail"]},ne.default.createElement("div",{className:da["payload-content"]},ne.default.createElement("div",{className:da["copy-button"]},ne.default.createElement(p$,{text:a})),ne.default.createElement("span",{className:da["payload-body"]},a))):ne.default.createElement(TUa,null)};Ise.propTypes={data:Oe.default.object};Ise.defaultProps={data:null};var Kse=function(u){var t=u.data,a=u.isPayloadTransformed;return ne.default.createElement("div",{className:da["section-detail"]},t.headers.queryString.map(function(n,r){var i=n.name,o=n.value;return ne.default.createElement("div",{key:"".concat(i,"-").concat(r),className:da["info-row"]},ne.default.createElement("span",{className:da["info-caption"]},"".concat(i,":")),ne.default.createElement("span",{className:da["info-value"]},a?decodeURIComponent(o):o))}))};Kse.propTypes={data:Oe.default.object,isPayloadTransformed:Oe.default.bool.isRequired};Kse.defaultProps={data:null};var Hse=function(u){var t=u.data,a=u.isPayloadTransformed;return ne.default.createElement("div",{className:da["section-detail"]},t.headers.postData.params.map(function(n,r){var i=n.name,o=n.value;return ne.default.createElement("div",{key:"".concat(i,"-").concat(r),className:da["info-row"]},ne.default.createElement("span",{className:da["info-caption"]},"".concat(i,":")),ne.default.createElement("span",{className:da["info-value"]},a?decodeURIComponent(o):o))}))};Hse.propTypes={data:Oe.default.object,isPayloadTransformed:Oe.default.bool.isRequired};Hse.defaultProps={data:null};var Vse=function(u){var t=u.data,a=u.isPayloadTransformed,n=t.headers.postData.text,r=Kt.useMemo(function(){return FGa(n)},[n]),i=a?r:n;return ne.default.createElement("div",{className:da["section-detail"]},ne.default.createElement("div",{className:da["payload-content"]},ne.default.createElement("div",{className:da["copy-button"]},ne.default.createElement(p$,{text:i})),ne.default.createElement("div",{className:da["payload-body"]},i)))};Vse.propTypes={data:Oe.default.object,isPayloadTransformed:Oe.default.bool.isRequired};Vse.defaultProps={data:null};var Gse=function(u){var t,a,n,r=u.data;return!((t=r.headers.postData)!==null&&t!==void 0&&t.text)&&!((a=r.headers.postData)!==null&&a!==void 0&&a.params)&&!((n=r.headers.queryString)!==null&&n!==void 0&&n.length)?ne.default.createElement("h4",{className:da["no-payload"]},"This request has no request data available."):r?ne.default.createElement("section",{className:da["section-container"]},r.headers.postData&&r.headers.postData.text&&ne.default.createElement(Xh,{component:Vse,data:r,eventKey:"requestPayload",isParseEnabled:!0,isVisible:!0}),r.headers.queryString&&!!r.headers.queryString.length&&ne.default.createElement(Xh,{component:Kse,data:r,eventKey:"queryString",isEncodeEnabled:!0}),r.headers.postData&&r.headers.postData.params&&ne.default.createElement(Xh,{component:Hse,data:r,eventKey:"formData",isEncodeEnabled:!0})):null};Gse.propTypes={data:Oe.default.object};Gse.defaultProps={data:null};var MUa=function(){var u=Ns(),t=u.actions,a=u.state,n=a.get("reqDetail"),r=function(){t.selectRequest(null)};return ne.default.createElement("div",{className:jm["req-detail-container"]},ne.default.createElement("button",{"aria-label":"Close button",className:jm["close-button"],onClick:r,type:"button"},ne.default.createElement(Rse,{className:jm["close-icon"]})),ne.default.createElement(zse,{activeClassName:jm.active,defaultSelectedKey:"headers",navLinkClassName:jm["tab-link"],navTabsClassName:jm["nav-tabs"],tabsContainerClassName:jm["tabs-container"]},ne.default.createElement(DO,{eventKey:"headers",name:"Headers"},ne.default.createElement(Nse,{data:n})),ne.default.createElement(DO,{eventKey:"request",name:"Request"},ne.default.createElement(Gse,{data:n})),ne.default.createElement(DO,{eventKey:"response",name:"Response"},ne.default.createElement(Ise,{data:n}))))},PUa=".MainContainer-styles__viewer-container___l41Pm{display:flex;flex-direction:column;height:100%;justify-content:space-between}.MainContainer-styles__main-container___DyCC-{display:flex;height:100%;outline:none;overflow:auto;overflow-x:hidden;width:100%}",Kye={brandBlue:"#0E75DD","viewer-container":"MainContainer-styles__viewer-container___l41Pm","main-container":"MainContainer-styles__main-container___DyCC-"};t0(PUa);var jUa=".TimelineContainer-styles__timeline-container___aDQbZ{border-bottom:1px solid #d8dde3;width:100%}",NUa={brandBlue:"#0E75DD","timeline-container":"TimelineContainer-styles__timeline-container___aDQbZ"};t0(jUa);var RUa=".TimelineChart-styles__chart-container___Hkzqm{margin:0 8px}.TimelineChart-styles__scatter-chart___Umnwb tspan{fill:gray;font-size:10px}",Hye={brandBlue:"#0E75DD","chart-container":"TimelineChart-styles__chart-container___Hkzqm","scatter-chart":"TimelineChart-styles__scatter-chart___Umnwb"};t0(RUa);var Use=function(u){var t=u.payload,a=u.maxTime,n=u.cx,r=u.cy,i=u.index,o=t.timings,s=Kt.useMemo(function(){return anu(o,a,n,i,r)},[o,a]);return t?ne.default.createElement("g",null,s.map(function(l){return ne.default.createElement("rect",I1({key:l.key},l,{height:unu}))})):null};Use.propTypes={cx:Oe.default.number,cy:Oe.default.number,index:Oe.default.number,maxTime:Oe.default.number.isRequired,payload:Oe.default.object};Use.defaultProps={cx:0,cy:0,index:0,payload:null};var LUa=".TimelineTooltip-styles__tooltip___lq96r{background:#fff;border:1px solid #e6e6e6;border-radius:3px;color:#555;display:block;font-size:12px;height:auto;opacity:1;padding:8px;width:300px}.TimelineTooltip-styles__content___dsjFO{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}",Vye={brandBlue:"#0E75DD",tooltip:"TimelineTooltip-styles__tooltip___lq96r",content:"TimelineTooltip-styles__content___dsjFO"};t0(LUa);var Wse=function(u){var t=u.payload;return!t||!t.length?null:ne.default.createElement("div",{className:Vye.tooltip},ne.default.createElement("div",{className:Vye.content},t[0].payload.filename),ne.default.createElement("div",null,"Started at: ".concat(nF(t[0].payload.timings.startTime))))};Wse.propTypes={payload:Oe.default.array};Wse.defaultProps={payload:null};var Bnu=function(u){var t=u.chartData,a=u.totalNetworkTime;return ne.default.createElement("div",{className:Hye["chart-container"]},ne.default.createElement(Tx.ResponsiveContainer,{height:100,width:"100%"},ne.default.createElement(Tx.ScatterChart,{className:Hye["scatter-chart"]},ne.default.createElement(Tx.XAxis,{axisLine:!1,dataKey:"timings.startTime",domain:[0,a],interval:"preserveStartEnd",orientation:"top",tickCount:10,tickFormatter:nF,tickLine:!1,type:"number"}),ne.default.createElement(Tx.YAxis,{dataKey:"index",domain:["min","max"],hide:!0,reversed:!0}),ne.default.createElement(Tx.Tooltip,{content:ne.default.createElement(Wse,null)}),ne.default.createElement(Tx.Scatter,{data:t,shape:ne.default.createElement(Use,{maxTime:a})}))))};Bnu.propTypes={chartData:Oe.default.array.isRequired,totalNetworkTime:Oe.default.number.isRequired};var $Ua=function(){var u=Ns(),t=u.state,a=t.get("data"),n=t.get("actualData"),r=t.get("error"),i=t.get("totalNetworkTime");return r||!n.size?null:ne.default.createElement("section",{className:NUa["timeline-container"]},ne.default.createElement(Bnu,{chartData:a.toArray(),totalNetworkTime:i}))},IUa=Uc.default.bind(K4),Jse=function(u){var t=u.dataSummary,a=u.showAllInfo;return ne.default.createElement("div",{className:IUa("network-table-footer")},a?ne.default.createElement(ne.default.Fragment,null,ne.default.createElement("span",null,"".concat(t.get("totalRequests")," requests")),ne.default.createElement("span",null,"".concat(Mg(t.get("totalTransferredSize"))," transferred")),ne.default.createElement("span",null,"".concat(Mg(t.get("totalUncompressedSize"))," resources")),ne.default.createElement("span",null,"Finished: ".concat(nF(t.get("finish")))),ne.default.createElement("span",null,"DOMContentLoaded: ".concat(nF(t.get("timings").DOMContentLoaded))),ne.default.createElement("span",null,"Load: ".concat(nF(t.get("timings").onLoad)))):ne.default.createElement("span",null,"".concat(t.get("totalRequests")," requests")))};Jse.propTypes={dataSummary:Oe.default.object.isRequired,showAllInfo:Oe.default.bool};Jse.defaultProps={showAllInfo:!0};var KUa=function(){var u=Ns(),t=u.state,a=YD(),n=a.showTimeline,r=t.get("loading"),i=t.get("showReqDetail"),o=t.get("dataSummary"),s=t.get("actualData");return ne.default.createElement(ne.default.Fragment,null,ne.default.createElement(wse,{show:r,text:XVa},ne.default.createElement("div",{className:Kye["viewer-container"]},ne.default.createElement("div",null,n&&ne.default.createElement($Ua,null),ne.default.createElement(oUa,null)),ne.default.createElement("section",{className:Kye["main-container"]},ne.default.createElement(BUa,null),i&&ne.default.createElement(MUa,null)),s.size?ne.default.createElement(Jse,{dataSummary:o}):null)))},HUa=".NetworkViewer-styles__network-viewer___H9u5-{height:100%}.NetworkViewer-styles__network-viewer___H9u5- *{box-sizing:border-box}",VUa={"network-viewer":"NetworkViewer-styles__network-viewer___H9u5-"};t0(HUa);var GUa=Uc.default.bind(VUa),qse=function(u){var t=u.file,a=u.data,n=u.fetchOptions,r=u.scrollTimeStamp,i=u.options,o=u.onPause,s=u.onRequestSelect,l=u.onResume,c=u.onReset,d=u.scrollRequestPosition,E=u.autoHighlightChange,h=u.onDataLoaded,f=u.onDataError,m=u.containerClassName;return ne.default.createElement("section",{className:GUa("network-viewer",m)},ne.default.createElement(mse,{options:i},ne.default.createElement(cse,{autoHighlightChange:E,data:a,fetchOptions:n,file:t,onDataError:f,onDataLoaded:h,onPause:o,onRequestSelect:s,onReset:c,onResume:l,scrollRequestPosition:d,scrollTimeStamp:r},ne.default.createElement(KUa,null))))};qse.propTypes={autoHighlightChange:Oe.default.bool,containerClassName:Oe.default.string,data:Oe.default.object,fetchOptions:Oe.default.object,file:Oe.default.string,onDataError:Oe.default.func,onDataLoaded:Oe.default.func,onPause:Oe.default.func,onRequestSelect:Oe.default.func,onReset:Oe.default.func,onResume:Oe.default.func,options:Oe.default.object,scrollRequestPosition:Oe.default.oneOf(["before","after","near"]),scrollTimeStamp:Oe.default.number};qse.defaultProps={autoHighlightChange:!1,containerClassName:null,data:null,fetchOptions:{withCredentials:!0},file:null,onDataError:null,onDataLoaded:null,onPause:function(){},onRequestSelect:function(){},onReset:function(){},onResume:function(){},options:null,scrollRequestPosition:"near",scrollTimeStamp:null};var UUa=fqe.NetworkViewer=qse;function WUa(e){const{toTime:u}=e,t=R.useMemo(()=>u?e.har.log.entries.filter(n=>new Date(n.startedDateTime)<=u):e.har.log.entries,[e.har.log.entries,u]),a={log:{...e.har.log,entries:t}};return x.jsx(UUa,{data:a,options:{showTimeline:!1,showImportHAR:!1}})}function JUa(e){const{html:u}=e;return x.jsx($Je,{xml:u})}const qUa=We({name:x9,description:ge(),folderPath:ge().transform(e=>e===$J?void 0:e)}),ZUa=e=>{const[u,t]=k.useState(!1),a=e.moduleFolders.map(d=>d.id),n=e.testFolders.map(d=>d.id),r=Array.from(new Set([...a,...n,$J])),i=$N({resolver:IN(qUa),defaultValues:{name:"",description:"",folderPath:$J},mode:"onChange"}),[o,s]=k5(async d=>{var h;const E={name:d.name,description:d.description,enabled:!0,steps:e.steps,testFilePath:e.testPath,folderPath:d.folderPath};try{const f=await Ya(`${Va}/api/modules`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(E)});(h=e.onSuccess)==null||h.call(e,f),t(!1)}catch(f){hn.error("Failed to create module.",{description:`${f}`})}},[e.steps,e.onSuccess]),{isDirty:l,isValid:c}=i.formState;return k.useEffect(()=>{i.reset()},[i,u]),x.jsxs(CD,{open:u,onOpenChange:t,children:[x.jsx(yD,{asChild:!0,children:x.jsx(Tt,{variant:"outline",disabled:e.disabled,children:"Save module"})}),x.jsxs(Gf,{children:[x.jsxs(Uf,{children:[x.jsx(Wf,{children:"Create module"}),x.jsx(bD,{children:"Group and reuse steps across different tests."})]}),x.jsx(KN,{...i,children:x.jsxs("form",{onSubmit:i.handleSubmit(s),className:"space-y-6",children:[x.jsx(Qa,{control:i.control,name:"name",render:({field:d})=>x.jsxs($a,{children:[x.jsx(Di,{children:"Name"}),x.jsx(Ia,{children:x.jsx(Y2,{placeholder:"example-module-name",...d})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:i.control,name:"description",render:({field:d})=>x.jsxs($a,{children:[x.jsx(Di,{children:"Description"}),x.jsx(Ia,{children:x.jsx(I9,{...d})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:i.control,name:"folderPath",render:({field:d})=>x.jsxs($a,{children:[x.jsx(Di,{children:"Folder"}),x.jsx(Ia,{children:x.jsxs(c0,{value:d.value,onValueChange:d.onChange,defaultValue:"/",children:[x.jsx(Wn,{children:x.jsx(d0,{placeholder:"Select a folder"})}),x.jsx(Jn,{children:r.sort((E,h)=>E.localeCompare(h)).map(E=>x.jsx(Ka,{value:E,children:E},E))})]})}),x.jsx(un,{})]})}),x.jsx(Q2,{children:x.jsx(Tt,{type:"submit",disabled:!l||!c||o.loading,children:"Create module"})})]})})]})]})},QUa=e=>{const u=R.useMemo(()=>Ute.parse(e.advanced),[e.advanced]),t=$N({resolver:IN(Q6t),defaultValues:{name:e.name,baseUrl:e.baseUrl,retries:e.retries,disabled:e.disabled,advanced:u},mode:"onChange"});R.useEffect(()=>{e.saveInProgress||t.reset({name:e.name,baseUrl:e.baseUrl,retries:e.retries,disabled:e.disabled,advanced:u})},[u,t,e.baseUrl,e.name,e.isOpen,e.retries,e.saveInProgress,e.disabled]);const{isDirty:a,isValid:n}=t.formState,r=l=>{var c,d,E,h;l.advanced.pageLoadTimeoutMs===-1&&(l.advanced.pageLoadTimeoutMs=void 0),l.advanced.smartWaitingTimeoutMs===-1&&(l.advanced.smartWaitingTimeoutMs=void 0),l.advanced.userAgent===""&&(l.advanced.userAgent=void 0),((c=l.parameters)==null?void 0:c.length)===0&&(l.parameters=void 0),((d=l.advanced.localChromeExtensionPaths)==null?void 0:d.length)===0&&(l.advanced.localChromeExtensionPaths=void 0),!((E=l.advanced.basicAuthorization)!=null&&E.username)&&!((h=l.advanced.basicAuthorization)!=null&&h.password)&&(l.advanced.basicAuthorization=void 0),e.onSave(l)},i=Object.entries(tvt).map(([l,c])=>({label:c,value:l})),o=t.getValues("advanced.locale"),s=i.find(l=>l.value===o)||{label:o,value:o};return x.jsxs(CD,{onOpenChange:e.onOpenChange,open:e.isOpen,children:[x.jsx(yD,{asChild:!0,children:x.jsxs(Tt,{variant:"outline",children:[x.jsx(cAt,{className:"h-4 w-4"}),"Options"]})}),x.jsxs(Gf,{children:[x.jsxs(Uf,{children:[x.jsx(Wf,{children:"Test options"}),x.jsx(bD,{children:"Once you save these settings, the editor session will reload."})]}),x.jsx(KN,{...t,children:x.jsxs("form",{onSubmit:t.handleSubmit(r),className:"space-y-4",children:[x.jsxs(hc,{defaultValue:"general",children:[x.jsxs(dl,{children:[x.jsx(pa,{value:"general",children:"General"}),x.jsx(pa,{value:"browser",children:"Browser"}),x.jsx(pa,{value:"ai",children:"AI"}),x.jsx(pa,{value:"network",children:"Network"})]}),x.jsxs(Da,{value:"general",className:"space-y-4",children:[x.jsx(Qa,{control:t.control,name:"name",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Di,{children:"Name"}),x.jsx(Ia,{children:x.jsx(Y2,{placeholder:"example-test-name",...l})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"baseUrl",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:`The URL the test starts on. Defaults to the value of the ${ZF} in the environment if one is configured.`,children:"Override base URL"}),x.jsx(Ia,{children:x.jsx(Vt,{placeholder:"https://example.com",...l,value:l.value||""})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"retries",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"The number of additional attempts Momentic will make when a test fails. A value greater than zero is recommended to avoid transient errors.",children:"Retries"}),x.jsx(Ia,{children:x.jsx(Vt,{type:"number",min:0,max:10,...l,onChange:c=>l.onChange(c.target.valueAsNumber)})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"advanced.slowMoMs",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"Number of milliseconds to wait between step executions. Increasing this delay will make the test more closely emulate a human user at the cost of having a longer total execution time. Defaults to no delay.",children:"Slow Mo"}),x.jsx(Ia,{children:x.jsx(Vt,{type:"number",min:0,max:XW,value:l.value===-1||l.value==null?"":l.value,onChange:c=>{const d=parseInt(c.target.value);isNaN(d)?l.onChange(-1):l.onChange(d)}})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"disabled",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"Prevents the test from running.",children:"Disabled"}),x.jsx(Ia,{children:x.jsx("div",{children:x.jsx(F1,{onCheckedChange:c=>l.onChange(c),checked:l.value})})}),x.jsx(un,{})]})})]}),x.jsxs(Da,{value:"browser",className:"space-y-4",children:[x.jsx(Qa,{control:t.control,name:"advanced.browserType",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Di,{children:"Browser type"}),x.jsx(Ia,{children:x.jsxs(c0,{onValueChange:c=>l.onChange(c),value:l.value||"",children:[x.jsx(Wn,{className:"space-x-2",children:x.jsx(d0,{placeholder:"Select browser type..."})}),x.jsx(Jn,{children:Object.values(ff).map((c,d)=>x.jsx(A5,{value:c,tooltip:K8e[c],children:c},d))})]})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"advanced.viewport",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Di,{children:"Viewport"}),x.jsx(Ia,{children:x.jsxs(c0,{onValueChange:c=>l.onChange(Hp[c]),value:QW.find(c=>Object.keys(Sk(Hp[c]??{},l.value||{})).length===0),children:[x.jsx(Wn,{className:"space-x-2",children:x.jsx(d0,{placeholder:"Select viewport..."})}),x.jsx(Jn,{children:QW.map((c,d)=>{const E=Hp[c];return x.jsxs(Ka,{value:c,children:[c," (",E.width,"x",E.height,")"]},d)})})]})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"advanced.locale",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Di,{children:"Locale"}),x.jsx(Ia,{children:x.jsx(Rb,{...l,isClearable:!0,className:"my-react-select-container",classNamePrefix:"my-react-select",value:s,options:i,onChange:c=>{l.onChange((c==null?void 0:c.value)||"")}})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"advanced.timezone",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Di,{children:"Timezone"}),x.jsx(Ia,{children:x.jsxs(c0,{onValueChange:c=>l.onChange(c),value:l.value||"",children:[x.jsx(Wn,{className:"space-x-2",children:x.jsx(d0,{placeholder:"Select timezone..."})}),x.jsx(Jn,{children:G8e.map((c,d)=>x.jsx(Ka,{value:c,children:c},d))})]})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"advanced.colorScheme",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Di,{children:"Color Scheme"}),x.jsx(Ia,{children:x.jsxs(c0,{onValueChange:c=>l.onChange(c),value:l.value||"",children:[x.jsx(Wn,{className:"space-x-2",children:x.jsx(d0,{placeholder:"Select color scheme..."})}),x.jsx(Jn,{children:[{label:"Light",value:"light"},{label:"Dark",value:"dark"}].map(c=>x.jsx(Ka,{value:c.value,children:c.label},c.value))})]})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"advanced.disableJavaScript",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"Disable JavaScript execution on all pages. Useful for testing static rendering.",children:"Disable JavaScript"}),x.jsx(Ia,{children:x.jsx("div",{children:x.jsx(F1,{onCheckedChange:c=>l.onChange(c),checked:l.value})})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"advanced.disableGpu",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"Disable GPU emulation. This can greatly improve the loading performance on certain pages but removes support for 3D graphics.",children:"Disable GPU"}),x.jsx(Ia,{children:x.jsx("div",{children:x.jsx(F1,{onCheckedChange:c=>l.onChange(c),checked:l.value})})}),x.jsx(un,{})]})}),e.mode==="local"&&x.jsx(Qa,{control:t.control,name:"advanced.localChromeExtensionPaths",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"Path to a directory on disk containing an unpacked Chrome extension. Multiple extensions can be loaded by separating paths with a comma. This setting is only supported on the Google Chrome and Chromium browsers.",children:"Load Chrome extension"}),x.jsx(Ia,{children:x.jsx(Vt,{placeholder:"/tmp/my-extension-1,/tmp/my-extension-2",...l,value:l.value?l.value.join(","):"",onChange:c=>{c.target.value.trim()?l.onChange(c.target.value.split(",")):l.onChange([])}})}),x.jsx(un,{})]})})]}),x.jsxs(Da,{value:"ai",className:"space-y-4",children:[x.jsx(Qa,{control:t.control,name:"advanced.disableAICaching",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"Whether to cache AI responses. Turning this off will cause greater latency and variance.",children:"AI caching"}),x.jsx(Ia,{children:x.jsx("div",{children:x.jsx(F1,{onCheckedChange:c=>l.onChange(!c),checked:!l.value})})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"advanced.failureRecovery",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"Let Momentic automatically suggest changes to failing tests.",children:"Failure recovery"}),x.jsx(Ia,{children:x.jsxs(c0,{onValueChange:c=>{c===eJ.INHERIT?l.onChange(void 0):l.onChange(c===eJ.ENABLED)},value:Qyu(l.value),children:[x.jsx(Wn,{className:"space-x-2",children:x.jsx(d0,{placeholder:"Select option..."})}),x.jsx(Jn,{children:Yyu.map(({value:c,label:d},E)=>x.jsx(Ka,{value:c,children:d},E))})]})}),x.jsxs(Ck,{children:["Auto-recover from certain test failures by adding or changing test steps."," ",x.jsx(hqe,{slug:"/failure-recovery"})]}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"advanced.smartWaitingTimeoutMs",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"Maximum number of seconds that can be spent on smart waiting before each action. Smart waiting is a Momentic feature that automatically pauses for network requests to complete and the active page to stabilize before attempting each action. Set to zero to disable (default: 3 seconds).",children:"Smart waiting timeout"}),x.jsx(Ia,{children:x.jsx(Vt,{type:"number",min:0,max:YW/1e3,value:l.value===-1||l.value==null?"":l.value/1e3,onChange:c=>{const d=parseInt(c.target.value);isNaN(d)?l.onChange(-1):l.onChange(d*1e3)}})}),x.jsx(un,{})]})})]}),x.jsxs(Da,{value:"network",className:"space-y-4",children:[x.jsx(Qa,{control:t.control,name:"advanced.extraHeaders",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"Include extra HTTP headers on every request fired throughout the test. Useful for triggering unique test behavior on the backend or tagging traces.",children:"HTTP headers"}),x.jsx(Ia,{children:x.jsx(YA,{data:l.value||{},onChange:c=>{l.onChange(c)}})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"advanced.userAgent",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"Override the user agent reported by the browser. Defaults to Desktop Chrome Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36.",children:"Override user agent"}),x.jsx(Ia,{children:x.jsx(Vt,{...l,value:l.value||""})}),x.jsx(un,{})]})}),x.jsx(Qa,{control:t.control,name:"advanced.basicAuthorization.username",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"Specify a username that will be passed as an Authorization header when a 401 response code is received from the server.",children:"Basic Auth Username"}),x.jsx(Ia,{children:x.jsx(Vt,{...l,value:l.value||""})})]})}),x.jsx(Qa,{control:t.control,name:"advanced.basicAuthorization.password",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"Specify a password that will be passed as an Authorization header when a 401 response code is received from the server.",children:"Basic Auth Password"}),x.jsx(Ia,{children:x.jsx(Vt,{...l,value:l.value||""})})]})}),x.jsx(Qa,{control:t.control,name:"advanced.pageLoadTimeoutMs",render:({field:l})=>x.jsxs($a,{children:[x.jsx(Ii,{tooltip:"Maximum number of seconds to wait for pages to load. All loads, includes those triggered by clicks, new tabs, and keyboard actions, will be subject to this timeout (default: 8 seconds).",children:"Page load timeout"}),x.jsx(Ia,{children:x.jsx(Vt,{type:"number",min:1,max:JW/1e3,value:l.value===void 0||l.value===-1?"":l.value/1e3,onChange:c=>{const d=parseInt(c.target.value);isNaN(d)?l.onChange(-1):l.onChange(d*1e3)}})}),x.jsx(un,{})]})})]})]}),x.jsx(Q2,{children:x.jsx(Tt,{type:"submit",disabled:e.saveInProgress||!a||!n,children:"Save test"})})]})})]})]})},YUa=e=>{const[u,t]=k.useState(!1),[a,n]=k5(async i=>{const o={...i,id:e.id,schemaVersion:e.schemaVersion};try{const s=await Ya(`${Va}/api/tests/${encodeURIComponent(e.testPath)}/metadata`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)}),l=uvt.parse(s);hn.success("Test saved!"),t(!1),e.onSuccess(l.newRelativeTestPath)}catch(s){hn.error("Failed to save test.",{description:`${s}`})}},[]);function r(i){try{oyt(i,e.envs??void 0)}catch(o){hn.error(o.message);return}n(i).catch(o=>hn.error(o.message))}return x.jsx(QUa,{...e,isOpen:u,onOpenChange:t,onSave:r,saveInProgress:a.loading,mode:"local"})},Uw="None",XUa=e=>{const u=e.value||Uw;return x.jsxs(c0,{value:u,onValueChange:t=>{t===Uw?e.onChange(void 0):e.onChange(t)},children:[x.jsxs(Wn,{className:"space-x-2",children:[x.jsx("span",{className:"text-muted-foreground",children:"Default environment:"}),x.jsx(d0,{placeholder:"Select environment"})]}),x.jsxs(Jn,{children:[x.jsx(Ka,{value:Uw,disabled:!e.baseUrl,children:Uw}),e.options.map(t=>x.jsx(A5,{value:t.name,tooltip:t.variables[ZF],children:t.name},t.name))]})]})},eWa=({test:e,modules:u,environments:t,testPath:a,tests:n})=>{var ou,Bu;const r=m9(),{logs:i,networkPages:o,networkEntries:s,a11yTree:l,isLoadingA11yTree:c,html:d,isLoadingHtml:E,isInPageLoad:h,validState:f,hasDiff:m,canceling:p,executing:D,recording:g,creatingModule:v,steps:C,debouncedSteps:y,stepsState:b,viewport:F,screenshot:S,iframeSrcUrls:M,error:T,testContext:O,activeTab:A,tabs:w,url:z,canEdit:_,canExecute:j,lastMouseLocation:$,canRecord:P,canRefresh:L,lintTriggerKey:V,interactive:G,handleRefresh:N,handleReset:K,handleSaveTestSuccess:U,handleRunAllSteps:W,handleStepChange:I,handleAdd:J,handleMoveToTop:Y,handleMoveUp:ae,handleMoveDown:ue,handleMoveToBottom:le,handleDuplicate:Z,handleUngroup:de,handleExecute:pe,handleExecuteTo:Ce,handleExecuteFrom:ee,handleDelete:ye,handleSelectChange:Ge,handleExpandChange:Te,handleLocate:q,handleStartCreatingModule:X,handleCreateModuleSuccess:ie,handleCancelCreateModule:Q,handleEditChange:te,handleCancelExecution:se,handleTrapKeyDown:_e,handleTrapMouseEvent:Le,handleTrapWheel:Ye,handleStartRecordingTarget:Je,handleActiveTabChange:tu,handleToggleRecord:au,handleFetchA11yTree:fu,handleFetchHtml:tt,handleLintStep:Rt,handleInteractiveChange:La}=Era({websocketUrl:Va,test:e,environments:t,platform:"local",logger:E_t}),Vu=hu=>{if(hu){window.location.replace(`/tests/${encodeURIComponent(hu)}`);return}r.revalidate(),K()},[ra,en]=k5(async(hu,wu=!0)=>{const Ee={schemaVersion:e.schemaVersion,stepLists:{steps:hu}};try{await Ya(`${Va}/api/tests/${encodeURIComponent(a)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(Ee)}),wu&&hn.success("Test saved!"),r.revalidate(),U(hu)}catch(Xe){hn.error("Failed to save test.",{description:`${Xe}`})}},[a,U,r]),ht=rE((hu=!0)=>{if(m&&!D){if(!f.valid){hn.error("Failed to save test.",{description:f.message});return}en(C,hu)}});k.useEffect(()=>{f.valid&&ht(!1)},[f,y]);const[,Wa]=k5(async hu=>{const wu={defaultEnv:hu};try{await Ya(`${Va}/api/tests/${encodeURIComponent(a)}/environments`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(wu)}),Vu()}catch(Ee){hn.error("Failed to update environment.",{description:`${Ee}`})}},[a,Vu]),Sa=lfu(()=>m),Wc=b.filter(hu=>hu.selected).length,De=k.useMemo(()=>u.map(hu=>hu.content),[u]),ce=k.useMemo(()=>QN(u).folders,[u]),we=k.useMemo(()=>ZN(n).folders,[n]);return x.jsxs("div",{className:"grid h-full max-h-screen min-h-screen w-full grid-rows-[auto_minmax(0px,_1fr)]",children:[x.jsxs("div",{className:"flex h-16 items-center gap-2 border-b px-6",children:[x.jsx(h5,{to:-1,children:x.jsx(sv,{className:"h-6 w-6"})}),x.jsx("div",{className:"font-semibold",children:D9(e.name)}),x.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[x.jsx(XUa,{value:(Bu=(ou=e.envs)==null?void 0:ou.find(hu=>hu.default))==null?void 0:Bu.name,baseUrl:e.baseUrl,onChange:hu=>{Wa(hu)},options:t}),x.jsx(YUa,{...e,testPath:a,onSuccess:Vu,schemaVersion:e.schemaVersion})]})]}),x.jsxs("div",{className:"grid h-full w-full grid-cols-[auto_minmax(0px,_1fr)]",children:[x.jsxs("div",{className:"grid w-[25vw] min-w-[600px] grid-rows-[auto_auto_auto_1fr] overflow-auto border-r",children:[x.jsxs("div",{className:"flex flex-col border-b",children:[x.jsxs("div",{className:"flex items-center justify-end gap-2 p-2",children:[x.jsxs(Tt,{variant:"outline",disabled:!m||ra.loading,onClick:()=>ht(),children:[ra.loading?x.jsx(sAt,{className:"h-4 w-4 animate-spin"}):x.jsx(lAt,{className:"h-4 w-4"}),ra.loading?"Saving...":m?"Save":"Saved"]}),x.jsx(Tt,{variant:"outline",onClick:au,disabled:g?!1:!P,children:x.jsxs("div",{className:"flex items-center gap-2",children:[x.jsx(gAt,{className:"h-4 w-4"}),g?"Stop":"Record"]})}),x.jsxs(Tt,{variant:"outline",onClick:X,disabled:!_,children:[x.jsx(yTe,{className:"h-4 w-4"}),"Create module"]}),p?x.jsxs(vr,{defaultOpen:!0,children:[x.jsx(Cr,{asChild:!0,children:x.jsxs(Tt,{variant:"outline",className:"text-destructive hover:text-destructive",children:[x.jsx(VEe,{className:"h-4 w-4"}),"Canceling"]})}),x.jsx(nr,{side:"bottom",className:"max-w-xs",children:"Waiting for the current step to finish executing. This may take a few seconds."})]}):D?x.jsxs(Tt,{variant:"outline",className:"text-destructive hover:text-destructive",onClick:se,children:[x.jsx(VEe,{className:"h-4 w-4"}),"Cancel"]}):x.jsxs(Tt,{onClick:W,disabled:!j,children:[x.jsx(bTe,{className:"h-4 w-4"}),"Run from start"]})]}),v&&x.jsxs(x.Fragment,{children:[x.jsx(Hh,{}),x.jsxs("div",{className:"flex items-center justify-end gap-2 p-2",children:[x.jsx("div",{children:"Select steps using the checkboxes."}),x.jsx(ZUa,{disabled:Wc<1||!_,steps:C.filter((hu,wu)=>{var Ee;return(Ee=b[wu])==null?void 0:Ee.selected}).filter(HF),onSuccess:ie,testId:e.id,testPath:a,testFolders:we,moduleFolders:ce}),x.jsx(Tt,{variant:"outline",size:"icon",onClick:Q,children:x.jsx(sv,{className:"h-4 w-4"})})]})]}),g&&x.jsxs(x.Fragment,{children:[x.jsx(Hh,{}),x.jsxs("div",{className:"flex items-center justify-center gap-2 p-2 text-sm",children:[x.jsx(gae,{color:"red",fill:"red",className:"h-3 w-3"}),"Use your mouse and keyboard to interact with the page."]})]})]}),x.jsx("div",{className:"relative space-y-2 overflow-auto p-4 empty:pt-0",children:b.map((hu,wu)=>{const Ee=Xe=>[wu,...Xe];return x.jsx(yJe,{index:wu,platform:"local",parentStepIdChain:[],modules:De,moduleFolders:ce,state:hu,disabled:!_,iframeSrcUrls:M,showCheckbox:v&&HF(hu.step),onEditChange:(Xe,Gu)=>{te(Xe,Ee(Gu))},onStepChange:(Xe,Gu,ia)=>I(Xe,Gu,Ee(ia)),onAddBefore:(Xe,Gu)=>J(Xe,Ee(Gu)),onAddAfter:(Xe,Gu)=>{const ia=Ee(Gu);ia[ia.length-1]+=1,J(Xe,ia)},onMoveToTop:Xe=>Y(Ee(Xe)),onMoveUp:Xe=>ae(Ee(Xe)),onMoveDown:Xe=>ue(Ee(Xe)),onMoveToBottom:Xe=>le(Ee(Xe)),onDuplicate:Xe=>Z(Ee(Xe)),onUngroup:Xe=>de(Ee(Xe)),onExecute:pe,onExecuteTo:Ce,onExecuteFrom:ee,onDelete:Xe=>ye(Ee(Xe)),onSelectChange:(Xe,Gu)=>Ge(Xe,Ee(Gu)),onExpandChange:(Xe,Gu)=>Te(Xe,Ee(Gu)),onLocate:(Xe,Gu,ia)=>q(Xe,Gu,ia),onStartRecordingTarget:Je,onStepLint:Rt,lintTriggerKey:V},hu.uniqueId)})}),x.jsx("div",{className:"mb-2 flex items-center justify-center",children:x.jsx(Jz,{disabled:!_,modules:De,moduleFolders:ce,onAdd:hu=>J(hu,[])})})]}),x.jsxs("div",{className:"grid grid-rows-[auto_1fr]",children:[x.jsxs("div",{className:"flex items-center justify-between gap-2 border-b p-2",children:[x.jsxs("div",{className:"flex w-1/2 gap-2",children:[x.jsx(Tt,{variant:"outline",size:"icon",onClick:N,disabled:!L,children:x.jsx(oAt,{className:"h-2 w-2"})}),x.jsx(Vt,{readOnly:!0,value:z})]}),x.jsxs("div",{className:"flex gap-2",children:[x.jsx(Mca,{value:A,options:w,onChange:tu}),x.jsxs(Tt,{variant:"outline",className:"text-destructive hover:text-destructive",onClick:K,children:[x.jsx(FTe,{className:"h-4 w-4"}),"Reset"]})]})]}),x.jsxs(QVe,{direction:"vertical",children:[x.jsx(eM,{defaultSize:75,className:"bg-muted",children:T?x.jsxs("div",{className:"flex h-full w-full flex-col items-center justify-center gap-2",children:[x.jsx("h2",{className:"text-xl font-semibold",children:"An unexpected error happened!"}),x.jsxs("div",{className:"text-destructive max-w-lg",children:["Error: ",T]}),x.jsxs("div",{className:"text-muted-foreground max-w-lg text-center",children:["We apologize for the inconvenience. We have been notified of this problem. If the issue persists please contact"," ",x.jsx("a",{href:"mailto:support@momentic.ai",className:"text-primary hover:underline",children:"support@momentic.ai"}),"."]}),x.jsx(Tt,{variant:"outline",onClick:K,children:"Reconnect"})]}):S&&F?x.jsx("div",{className:"mx-auto max-h-[calc(100%-4px)] max-w-full",style:{aspectRatio:`${F.width}/${F.height}`},children:x.jsx("div",{className:"overflow-hidden",children:x.jsxs(Tna,{active:G,onActiveChange:La,onMouseEvent:Le,onKeyDown:_e,onWheel:Ye,children:[x.jsx(jXt,{image:S,viewport:F}),$&&G&&x.jsxs("div",{className:"bg-foreground text-background pointer-events-none absolute bottom-1 right-1 rounded p-1 text-xs opacity-50",children:["X: ",$.x,", Y: ",$.y]})]})})}):x.jsx("div",{className:"flex h-full w-full items-center justify-center",children:x.jsx("h2",{className:"text-xl font-semibold",children:"Starting browser..."})})}),x.jsx(YVe,{withHandle:!0}),x.jsx(eM,{children:x.jsxs(hc,{defaultValue:"context",className:"flex h-full flex-col p-2",children:[x.jsxs(dl,{className:"self-start",children:[x.jsx(pa,{value:"context",children:"Context"}),x.jsx(pa,{value:"console",children:"Console"}),x.jsx(pa,{value:"network",children:"Network"}),x.jsx(pa,{value:"accessibility",children:"Accessibility"}),x.jsx(pa,{value:"html",children:"HTML"})]}),x.jsx(Da,{value:"context",className:"flex-1 overflow-auto",children:x.jsxs("div",{className:"grid h-full grid-rows-[auto_1fr] gap-2",children:[x.jsxs("p",{className:"text-muted-foreground text-sm",children:["You can access these values directly in a JavaScript step, or using the special"," ",x.jsx("span",{className:"text-foreground whitespace-nowrap font-mono",children:"{{ }}"})," ","syntax in other steps. For example, you can get the current URL with"," ",x.jsxs("span",{className:"text-foreground whitespace-nowrap font-mono",children:["{{ env.CURRENT_URL }}","."]})," ",x.jsx(hqe,{slug:"/variables"})]}),O&&x.jsx(qNe,{data:O})]})}),x.jsx(Da,{value:"console",className:"flex-1 overflow-auto",children:x.jsx(Vaa,{logs:i})}),x.jsx(Da,{value:"network",className:"h-full flex-1 overflow-auto",style:{height:"calc(100% - 45px)"},children:Object.keys(s).length?x.jsx(WUa,{har:J6t(o,s)}):x.jsx("p",{className:"text-muted-foreground text-sm",children:"No network data available."})}),x.jsxs(Da,{value:"accessibility",className:"h-full flex-1 overflow-auto",style:{height:"calc(100% - 45px)"},children:[x.jsx(Tt,{onClick:fu,disabled:c||!j||h,variant:"secondary",size:"sm",children:"Load current page accessibility tree"}),x.jsx("div",{className:"p-2",style:{height:"calc(100% - 45px)",overflow:"none"},children:l?x.jsx(y4a,{a11yTree:l}):x.jsx("p",{className:"text-muted-foreground text-sm",children:"No a11y tree snapshot available."})})]}),x.jsxs(Da,{value:"html",className:"h-full flex-1 overflow-auto",style:{height:"calc(100% - 45px)"},children:[x.jsx(Tt,{onClick:tt,disabled:E||!j||h,variant:"secondary",size:"sm",children:"Load current page HTML"}),x.jsx("div",{className:"p-2",style:{height:"calc(100% - 45px)",overflow:"none"},children:d?x.jsx(JUa,{html:d}):x.jsx("p",{className:"text-muted-foreground text-sm",children:"No html snapshot available."})})]})]})})]})]}),x.jsx(M4a,{open:Sa.state==="blocked",children:x.jsxs(iqe,{children:[x.jsxs(oqe,{children:[x.jsx(lqe,{children:"Are you sure?"}),x.jsx(cqe,{children:"You have unsaved changes. Leaving this page will discard any unsaved changes."})]}),x.jsxs(sqe,{children:[x.jsx(Eqe,{onClick:()=>{var hu;(hu=Sa.reset)==null||hu.call(Sa)},children:"Cancel"}),x.jsx(dqe,{className:CN({variant:"destructive"}),onClick:()=>{var hu;(hu=Sa.proceed)==null||hu.call(Sa)},children:"Continue"})]})]})})]})]})};async function uWa({params:e}){return Promise.all([Ya(`${Va}/api/tests/${encodeURIComponent(e.testPath)}`).then(g_e.parse),Ya(`${Va}/api/modules`).then(x_e.parse),Ya(`${Va}/api/environments`).then(aae.parse),Ya(`${Va}/api/tests`).then(D_e.parse),Ya(`${Va}/api/settings`)])}const tWa=()=>{const{testPath:e}=j7e(),[u,t,a,n,r]=mD();return x.jsx(vNe,{ai:r.ai,children:x.jsx(eWa,{test:u,modules:t,environments:a,tests:n,testPath:e})})};async function aWa(){return Promise.all([Ya(`${Va}/api/environments`).then(aae.parse),Ya(`${Va}/api/labels`).then(dN.parse)])}const nWa=()=>{const[e,u]=mD(),[t,a]=Lj("sidebar-layout");return x.jsxs("div",{className:"flex h-full flex-col gap-4 overflow-auto p-8",children:[x.jsxs("div",{className:"flex items-center justify-between",children:[x.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:"Tests"}),x.jsx(Jje,{environments:e})]}),x.jsx(OR,{view:"tests",tests:t,modules:a,labels:u})]})};var rWa={POSTHOG_WRITE_HOST:"https://us.i.posthog.com",SENTRY_AUTH_TOKEN:"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",POSTHOG_WEB_PROJECT_ID:"37121",SENTRY_PROJECT:"cli",POSTHOG_ANALYTICS_WRITE_KEY:"phc_oy1FexHsc0S3axxOMXCm46yZsW35zROAoV4SOzpDSXH",APP_ENV:"production",SENTRY_ORG:"momentic",POSTHOG_ANALYTICS_PROJECT_ID:"112124",POSTHOG_WEB_WRITE_KEY:"phc_WRWd8LYIv6rolgDsyCdrPpxtZhsu6qXAkEwPicl44bI",BASE_URL:"/",MODE:"production",DEV:!1,PROD:!0,SSR:!1};Ip.init("phc_WRWd8LYIv6rolgDsyCdrPpxtZhsu6qXAkEwPicl44bI",{api_host:"https://us.i.posthog.com"});Sdu({dsn:"https://adf6c8e3b8b510836cd3bb02a1cc73de@o4506426201800704.ingest.us.sentry.io/4507653231673344",release:rWa.SENTRY_RELEASE,integrations:[kdu(),ddu()],environment:"production",tracesSampleRate:1,tracePropagationTargets:["localhost"],replaysSessionSampleRate:.1,replaysOnErrorSampleRate:1});const iWa=()=>x.jsx(GMe,{sidebarWidth:"auto",children:x.jsxs(HMe,{delayDuration:0,children:[x.jsx(L7e,{}),x.jsx(Wpu,{richColors:!0,closeButton:!0})]})}),oWa=vfu([{path:"/",element:x.jsx(iWa,{}),errorElement:x.jsx(t8t,{}),children:[{index:!0,loader:GQt},{id:"sidebar-layout",loader:AXt,element:x.jsx(BXt,{}),children:[{path:"search",element:x.jsx(UYt,{}),loader:GYt},{path:"tests",element:x.jsx(nWa,{}),loader:aWa},{path:"modules",element:x.jsx(WQt,{}),loader:UQt},{path:"folders/:folderPath",element:x.jsx(VQt,{}),loader:HQt}]},{path:"tests/:testPath",element:x.jsx(tWa,{}),loader:uWa}]}]),sWa=()=>(k.useEffect(()=>{async function e(){try{const u=await Ya(`${Va}/api/identify`);Ip.identify(u.userId,{organizationId:u.orgId})}catch(u){Dvt.warn(`Failed to fetch feature flags from PostHog: ${u}`)}}e()},[]),x.jsx(Mfu,{children:x.jsx(wfu,{router:oWa})}));KW.createRoot(document.getElementById("root")).render(x.jsx(R.StrictMode,{children:x.jsx(Spu,{client:Ip,children:x.jsx(sWa,{})})}))});export default lWa();
|
package/static/index.html
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
|
|
8
8
|
<title>Momentic Local App</title>
|
|
9
|
-
<script type="module" crossorigin src="/assets/index-
|
|
9
|
+
<script type="module" crossorigin src="/assets/index-sd2_Kw1e.js"></script>
|
|
10
10
|
<link rel="stylesheet" crossorigin href="/assets/index-SPwZZ1qX.css">
|
|
11
11
|
</head>
|
|
12
12
|
<body>
|