@checksum-ai/runtime 1.3.8 → 1.3.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env +1 -1
- package/cli.js +1 -1
- package/index.js +1 -1
- package/package.json +1 -1
- package/pw-report-template.html +3 -3
- package/vtg-pw-bridge-runner.js +1 -1
package/.env
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
CHECKSUM_RUNTIME_BUILD_TIME=2025-09-
|
|
1
|
+
CHECKSUM_RUNTIME_BUILD_TIME=2025-09-19T07:03:05.121Z
|
package/cli.js
CHANGED
|
@@ -1592,7 +1592,7 @@ ${b}
|
|
|
1592
1592
|
${this.executedSteps.map(d=>{switch(d.type){case"action":return d.thought;case"assertion":return d.feedback}}).join(`,
|
|
1593
1593
|
`)}`))}async getReductionComponents(a){var s,l;return a.interruptionEvent==="didRequestMoreItemsEvent"?{reducedHTML:(l=(s=a.payload)==null?void 0:s.promptData)==null?void 0:l.reducedHTML,reducedDomHTMLElement:this.lastReducedDOM,flashingHTML:[],elementsForNodeInterpretation:[],currentChecksumId:ppe.currentChecksumId}:this.pageInteractor.getCurrentReducedHTML({stopFlashingElementsDetection:!0,assignChecksumIdsToAllElements:!0,initialChecksumId:ppe.currentChecksumId})}getErrorFileContent(a){try{let s=Rdr.default.dirname(this.fallbackData.testInfo.config.configFile);return iNe.toString(a,s)}catch{throw new Error("Error while getting error file content for AI fallback")}}async getPageScreenshot(){try{return this.checksumPage.wrapInternalSteps(async()=>{var d,g;let a=await this.page.screenshot({fullPage:!0,type:((g=(d=this.arConfig)==null?void 0:d.modelPreset)==null?void 0:g.type)==="anthropic-vertexai"?"jpeg":"png"}),s=4e3;return(await(0,k$r.default)(a).resize(s,s,{fit:"inside",withoutEnlargement:!0}).toBuffer()).toString("base64")})}catch{return}}getMatcherResultFileData(){let a=this.fallbackData.error.matcherResult;if((a==null?void 0:a.name)!=="toHaveScreenshot")return;let s=e((b,C=!0)=>{if(!b)return"";try{return(0,sXe.readFileSync)(b,C?"base64":"utf-8")}catch{return""}},"readFileSafe"),l=s(a==null?void 0:a.actual),d=s(a==null?void 0:a.diff),g=s(a==null?void 0:a.expected);if(!g)throw this.log("[AIFallback] No expected file found for 'toHaveScreenshot'"),new Error("No expected file found for 'toHaveScreenshot'");return{...a,actual:l,diff:d,expected:g}}async prepareDataForCurrentIteration(){let a=await this.getPreviousActionOverview(),s=this.getMatcherResultFileData(),{reducedHTML:l,flashingHTML:d,elementsForNodeInterpretation:g,currentChecksumId:b}=await this.getReductionComponents(a),C=await this.getPageScreenshot();this.lastReducedDOM=new T$r.JSDOM(l),ppe.currentChecksumId=b;let S=(()=>{let F=this.executedSteps[this.executedSteps.length-1];if(F&&F.type==="action")return F.locator})();return{reducedHTML:l,flashingHTML:d,elementsForNodeInterpretation:g,previousActionOverview:a,screenshot:C,matcherResult:s,fallbackActionErrorMessage:this.fallbackData.error.message,locatorUsed:S}}async iterate(){this.hasPreviousActionFailed=!1;let a=this.CLIENT_MAX_ITERATIONS;for(;a-- >0;){if(this.didCancel)return this.fallbackAnalytics.arFallbackEnd({result:"failed",avgDuration:0,failMessage:"User canceled"}),{result:"failed",thought:"Fallback Canceled"};let s=await this.prepareDataForCurrentIteration(),l=Date.now(),d=await this.getIterationResponse(s),g=Date.now()-l,{thought:b,command:C,changedVariables:S}=d;if(this.traceAIFallbackIterationNew({thought:b,command:C,duration:g}),this.handleChangedVariables(S),this.fallbackData.type==="assertion"){let q=d.payload;if(C==="scroll"){await this.scrollToElement(q.checksumId);continue}return this.handleAssertionResponse(q)}let F=d.payload;if(this.didCancel)return this.fallbackAnalytics.arFallbackEnd({result:"failed",avgDuration:0,failMessage:"User canceled"}),{result:"failed",thought:"Fallback Canceled"};let R=this.getStopIterationResult(C);if(R)return{result:R.result,summary:F.summary??void 0,thought:b};let N=Date.now();try{let q=await this.pageInteractor.translateActionResponseToAgentPotentialAction(F);await this.executeFallbackAction(F,q),this.trackActionExecution(F,q,Date.now()-N)}catch(q){this.log("[AIFallback] Error while executing selector",q.message),this.hasPreviousActionFailed=!0,this.trackActionExecutionFailure(F,Date.now()-N,q.message);continue}}return this.errorMessage="maximum repetition reached",this.log(`[AIFallback] ${this.errorMessage}`),{result:"failed",thought:"Fallback failed to recover action"}}trackActionExecution(a,s,l){this.fallbackAnalytics.arFallbackActionExecution({thought:a.thought,duration:l,command:a.action.type,checksumId:a.action.checksumid,type:a.action.type,selector:s.selector,locator:s.locator,fillValue:s.fillValue,getMoreItemsId:s.getMoreItemsId})}trackActionExecutionFailure(a,s,l){this.fallbackAnalytics.arFallbackActionExecutionFailure({thought:a.thought,duration:s,command:a.action.type,checksumId:a.action.checksumid,error:l})}getStopIterationResult(a){if(a==="fail")return this.log("[AIFallback] Received fail signal, will quit"),this.errorMessage="Received fail signal",{result:"failed"};if(a==="finish")return this.log("[AIFallback] Received finish step"),{result:"finish"}}handleAssertionResponse(a){if(this.log(`[AIFallback] for assertion returned with value: ${a.command}, feedback: ${a.analysis}`),this.didCancel)return{result:"failed",thought:"Fallback Canceled"};let s=a.command,l=["irrelevant","pass","soft_reject","soft_pass","soft_assertion"].includes(a.command);this.fallbackAnalytics.arFallbackAssertion({duration:0,command:a.command,thought:a.thought}),this.executedSteps.push({type:"assertion",feedback:a.analysis,response:a.command});let d={response:a.command,feedback:a.analysis};if(this.stepsPayload.push(d),a.command==="recovery"){let b={description:a.analysis,reason:a.thought};return{result:"switch_to_fallback_action",assertionToActionData:b,summary:a.summary,thought:a.thought}}return a.command==="hard_assertion"?{result:"hard_assertion",thought:a.thought}:{result:l?"soft_assertion":"failed",summary:a.summary,thought:a.thought}}async scrollToElement(a){if(!a){this.log("[AIFallback] No checksumId provided for scroll");return}await this.pageInteractor.scrollElementIntoViewByChecksumId(a),await FT(1e3)}async executeFallbackAction(a,s){let l=Date.now();try{await this.checksumPage.step(`AI: ${s.thought}`,async()=>await this.pageInteractor.performAction(s),void 0,{noLocation:!0})}catch(d){let g=Date.now()-l;throw this.fallbackAnalytics.arFallbackActionExecutionFailure({thought:s.thought,command:a.action.type,duration:g,checksumId:a.action.checksumid,error:d.message}),this.fallbackData.error=d,new Error("Action failed")}this.hasPreviousActionFailed=!1,this.executedSteps.push({type:"action",...s}),this.fallbackAnalytics.arFallbackActionExecution({thought:a.thought,duration:Date.now()-l,command:a.action.type,checksumId:a.action.checksumid,type:a.action.type,selector:s.selector,locator:s.locator,fillValue:s.fillValue,getMoreItemsId:s.getMoreItemsId}),this.addActionStepPayload(a,s),await FT(1e3)}addActionStepPayload(a,s){let{thought:l,action:{checksumid:d,type:g}}=a,{selector:b,locator:C,fillValue:S,getMoreItemsId:F}=s,R={thought:l,checksumid:d,type:g,selector:b,locator:C,fillValue:S,getMoreItemsId:F};return this.stepsPayload.push(R),R}handleMockServer(){return this.finish?{thought:"finish",command:"finish",payload:{thought:"finish"},changedVariables:[]}:(--this.actionsCounter===0&&(this.finish=!0),{thought:"mock-thought",changedVariables:[],command:"click",payload:{thought:"mock-thought",action:{type:"click",checksumid:"10"}}})}handleChangedVariables(a){a.forEach(({name:s,value:l})=>{this.checksumPage.variableStore.setVariable(s,l)})}async getIterationResponse({reducedHTML:a,flashingHTML:s,elementsForNodeInterpretation:l,previousActionOverview:d,screenshot:g,codeTrace:b,fallbackActionErrorMessage:C,locatorUsed:S}){let{apiKey:F}=this;if(this.mockServer)return this.handleMockServer();let R={reduction:{reducedHTML:a,flashingHTML:s,elementsForNodeInterpretation:l},currentURL:this.page.url(),previousActionOverview:d,resolvesSmartAssertion:this.withChecksumAI,variables:this.variables,screenshot:g,fallbackActionErrorMessage:C,locatorUsed:S};try{let N=await JNe(async()=>await fetch(`${this.getAPIBaseURL()}/iterate`,{method:"POST",headers:{"Content-Type":"application/json",ChecksumAppCode:this.apiKey},body:JSON.stringify({appName:F,sessionId:this.sessionId,iterationData:R})}));if(N.status!==201)throw new Error("Failed to get next iteration");let q=await N.json();return this.log("[AIFallback] Received next action",q),this.sanitizeIterationResponse(q)}catch(N){throw this.log("[AIFallback] Error calling iterate",N),N}}sanitizeIterationResponse(a){var s;return this.fallbackType==="assertion"?{thought:a.thought,command:a.command,payload:a,changedVariables:a.changedVariables??[]}:{thought:a.thought,command:(s=a.action)==null?void 0:s.type,payload:a,changedVariables:a.changedVariables??[]}}async getPreviousActionOverview(){let a=await this.pageInteractor.handleFileChooserEvent();return{success:!this.hasPreviousActionFailed,...this.hasPreviousActionFailed?{failureEvent:"generalExecutionFailureError"}:{},...this.getPreviousWaitActionOverview(),...a,...await this.getPreviousGetMoreItemsActionOverview()}}getExecutedActions(){return this.executedSteps.filter(a=>a.type==="action")}async getPreviousGetMoreItemsActionOverview(){let a=this.getExecutedActions(),s=a[a.length-1];if((s==null?void 0:s.eventCode)!=="get_more_items"||!this.lastReducedDOM)return{};try{return await this.pageInteractor.addMoreItemsToDom(this.lastReducedDOM.window.document.body,s.getMoreItemsId),{interruptionEvent:"didRequestMoreItemsEvent",payload:{promptData:{reducedHTML:this.lastReducedDOM.serialize()},getMoreItemsId:s.getMoreItemsId}}}catch{return{}}}getPreviousWaitActionOverview(){var l;let a=this.getExecutedActions();if(((l=a[a.length-1])==null?void 0:l.eventCode)!=="wait")return{};let s=0;return a.slice().reverse().every(d=>d.eventCode==="wait"?(s++,!0):!1,0),{payload:{waitCount:s}}}async initSession(){let{apiKey:a,goal:s,thoughts:l}=this;if(this.log("[AIFallback] Calling init session...",{appName:a,goal:s,thoughts:l}),!a){let C="Missing Checksum API key, will not run AI fallback";throw For(C),new Error(C)}if(this.mockServer){this.sessionId="mock-session-id";return}let d=this.getErrorFileContent(this.fallbackData.error),g={name:this.fallbackData.error.name??"Error",message:this.fallbackData.error.message,stack:this.fallbackData.error.stack},b={type:this.fallbackData.type,resolveSmartAssertion:this.withChecksumAI,storyTitle:s,testSuiteId:this.testSuiteId,testId:this.testId,thoughtsAndActions:{previous:l.slice(0,Math.max(l.length-1,0)).map(C=>({thought:C})),failing:{thought:l[l.length-1]},next:[]},testFileName:this.testFile.split("/").pop()??"",error:g,errorFileContent:d,matcherResult:this.getMatcherResultFileData(),assertionToActionData:this.fallbackData.type==="recovery"||this.fallbackData.type==="action"?this.fallbackData.assertionToActionData:void 0,arMode:this.arMode,overrideOptions:this.arOverrideOptions};this.fallbackAnalytics.arFallbackStart({error:this.fallbackData.error.message,failedThought:this.getFailedThought()});try{let C=await JNe(async()=>await fetch(`${this.getAPIBaseURL()}/init`,{method:"POST",headers:{"Content-Type":"application/json",ChecksumAppCode:this.apiKey},body:JSON.stringify({appName:a,data:b,format:"json"})}));if(C.status!==201)throw new Error("Failed to init session after 3 retries");let{sessionId:S,arConfig:F}=await C.json();this.sessionId=S,this.arConfig=F,this.fallbackAnalytics.updateToSessionId(S),this.fallbackAnalytics.arFallbackConfig({config:F}),this.log("[AIFallback] Session ID",this.sessionId)}catch(C){throw this.withChecksumAI&&C.message==="fetch failed"&&(this.checksumPage.step(aXe,async()=>{throw new Error(aXe)}),For(aXe)),this.fallbackAnalytics.arFallbackEnd({result:"failed",avgDuration:this.iterationSteps.length>0?this.iterationSteps.reduce((S,F)=>S+F.duration,0)/this.iterationSteps.length:0,failMessage:C==null?void 0:C.message}),this.log("[AIFallback] Error calling init session",C),C}}getReleaseIterationResultIfExists(a){if(this.fallbackType==="assertion"){if(a==="soft_assertion")return{result:"soft_assertion"}}else{if(a==="finish")return{result:"finish"};if(a==="fail")return{result:"failed"}}}translateExecutedActionToFallbackAction(a){return{type:"action",esraMetadata:a.esraMetadata,generatedLocator:a.locator,selector:a.selector,parentFramesSelectors:a.parentFramesSelectors,method:this.getMethodForPotentialAction(a),thought:a.thought}}getMethodForPotentialAction(a){return{name:this.actionEventCodeToMethodName[a.eventCode],args:e(()=>{switch(a.eventCode){case"click":case"double_click":return[{position:a.clickOffset}];case"drag_and_drop":return[this.pageInteractor.makeLocator(a.dropTarget.selector,a.dropTarget.parentFramesSelectors)];case"input":case"click_and_type":case"clear_and_type":case"selectoption":case"keystroke":case"navigation":return[this.pageInteractor.getActionFillValue(a,!1)];case"upload_files":return a.files;default:return}},"makeArgs")()}}getAPIBaseURL(){return this.API_BASE_DOMAIN+this.API_BASE_ROUTE}getAnalyticsPayload(){return{fallbackType:"ai",error:this.errorMessage,thought:this.getFailedThought(),sessionId:this.sessionId,steps:this.stepsPayload.map(a=>JSON.stringify(a))}}getFailedThought(){return this.thoughts[this.thoughts.length-1]}traceAIFallbackIterationNew(a){this.fallbackAnalytics.arFallbackIterationResponse({duration:a.duration,command:a.command,thought:a.thought}),this.iterationSteps.push({thought:a.thought,command:a.command,duration:a.duration})}toString(){return`Checksum AI ("${this.getFailedThought()}")`}get fallbackType(){return this.fallbackData.type}get fallbackAnalyticsPayload(){return{previousThoughts:this.thoughts,iterationSteps:this.iterationSteps}}};e(ppe,"AIFallback"),ppe.alreadyTriggered=!1,ppe.currentChecksumId="0";var Ldr=ppe;var Mdr=class Mdr extends the{constructor(){super(...arguments);this.API_BASE_ROUTE="/client-api/runtime/esra-fallback"}init(a){let{apiKey:s,testId:l,apiURL:d,checksumId:g,fileName:b,timeout:C}=a;return this.data={...this.data,testId:l,checksumId:g,fileName:b},this.apiKey=s,d&&(this.API_BASE_DOMAIN=d.replace(/\/$/,"")),C&&(this.timeout=C),this.checksumRootFolder=process.env.CHECKSUM_ROOT_FOLDER??HPr(GPr(this.data.fileName),this.data.fileName),this}getRecoveryAttemptTitle(a){return`Checksum auto-heal: trying to locate the element using checksumSelector("${this.data.checksumId}")...`}async sendLog(a){let s=this.getLogPayload(a);try{fetch(`${this.getAPIBaseURL()}/log`,{method:"POST",headers:{"Content-Type":"application/json",ChecksumAppCode:this.apiKey},body:JSON.stringify(s)}).catch(l=>this.log("[ESRAFallback] Error sending log"))}catch(l){this.log("[ESRAFallback] Error sending log",l)}}getLogPayload(a){let s=process.env.CHECKSUM_TEST_SUITE_ID??"",{selector:l}=a,{checksumId:d,testId:g}=this.data;return this.logPayload={testSuiteId:s,testId:g,selector:l,checksumId:d,thought:this.thought},this.logPayload}async getMetadataForTestId(){return VPr(this.checksumRootFolder,this.data.testId)}getAPIBaseURL(){return this.API_BASE_DOMAIN+this.API_BASE_ROUTE}};e(Mdr,"MetadataBaseFallback");var HNe=Mdr;var _AlternateSelectorFallback=class _AlternateSelectorFallback extends HNe{constructor(){super(...arguments);this.timeout=5*1e3}init(r){return super.init(r),this}async resolve(params){var r;try{let{method,args}=params,{checksumId}=this.data,alternateLocators=[];try{let a=await this.getMetadataForTestId();if(!(checksumId in a)||!a[checksumId].alternateLocators)throw new Error(`No alternate selection metadata found for id ${checksumId}`);alternateLocators=a[checksumId].alternateLocators.locators}catch(a){throw super.log(`Could not read alternate selector metadata file, ${a.message}`),a}try{this.log("Resolving alternate selectors locators");let elementsMap=new Map;await Promise.all(alternateLocators.map(async locatorExpression=>{let locator=eval(uAe(locatorExpression,"this.page"));try{await C8(locator.first().waitFor({bypassChecksum:!0}),5e3),(await C8(locator.elementHandles({bypassChecksum:!0}),1e3)).forEach(s=>{elementsMap.has(s)?elementsMap.set(s,elementsMap.get(s)+1):elementsMap.set(s,1)})}catch(a){return}}));let majorityElementHandle=(r=Array.from(elementsMap.entries()))==null?void 0:r.reduce((a,s)=>a[1]>s[1]?a:s)[0];if(!majorityElementHandle)throw this.errorMessage="No alternate element found",new Error(this.errorMessage);let totalElements=Array.from(elementsMap.values()).reduce((a,s)=>a+s,0),elementSelector=await this.evaluateWithChecksum(async({element:a})=>window.playwright.selector(a),{element:majorityElementHandle});this.log(`Resolved alternate selector: ${elementSelector}' With majority vote of ${elementsMap.get(majorityElementHandle)} out of ${totalElements} elements`),await this.checksumPage.wrapNoLocationSteps(async()=>this.execute(this.page.locator(elementSelector),method,args));let fallbackResult={selector:elementSelector,generatedLocator:`locator("${elementSelector}")`,esraMetadata:void 0};return this.sendLog(fallbackResult),this.logPayload=this.logPayload.concat({mejorityVote:`${elementsMap.get(majorityElementHandle)}/${totalElements}`}),this.checksumPage.addErrorMessage(params.error,`${this.thought?`"${this.thought}" auto-recovered`:"Auto-recovered"} using alternative selector "${elementSelector}"`),{steps:[{type:"action",...fallbackResult}]}}catch(a){throw new Error(`Failed to execute compound selection fallback action: ${a.message}`)}}catch(a){this.errorMessage=a.message,this.log(this.errorMessage);return}}getAnalyticsPayload(){return{fallbackType:"alternative-selector",...this.logPayload??{checksumId:this.data.checksumId,error:this.errorMessage}}}toString(){return`Checksum alternative selector (${this.data.checksumId})`}};e(_AlternateSelectorFallback,"AlternateSelectorFallback");var jdr=_AlternateSelectorFallback;var d0i=require("@playwright/test");var tei=require("jsdom");var I$r=zd(require("path"));var Qdr=class Qdr{constructor(r="all"){this.listeners=[];this.logLevel=r}log(r,...a){let s=this.shouldLog(r);try{let d=new Error().stack.split(`
|
|
1594
1594
|
`)[4].trim().match(/\(([^)]+)\)/);if(!(d&&d[1]))throw new Error;let g=d[1].split(":"),b=g.slice(0,-2).join(":"),C=g[g.length-2],F=`${I$r.default.basename(b)}:${C}`;s&&(console.log("\x1B[34m",F,"\x1B[0m",...a),setTimeout(()=>this.listeners.forEach(R=>R.onLog(...a)),0)),this.logStream&&this.logStream.write(`[${F}] ${a.map(R=>{if(typeof R=="object")try{return JSON.stringify(R,null,2)}catch{}return String(R)}).join(" ")}
|
|
1595
|
-
`)}catch{s&&console.log(...a)}}shouldLog(r){switch(r){case"warning":return this.logLevel==="all"||this.logLevel==="warnings";case"error":return!0;case"info":return this.logLevel==="all"}}addListener(r){this.listeners.push(r)}info(...r){this.log("info",...r)}warning(...r){this.log("warning",...r)}error(...r){this.log("error",...r)}setLogLevel(r){this.logLevel=r}setLogStream(r){this.logStream=r}};e(Qdr,"Logger");var Udr=Qdr,gDe=new Udr,rei=Object.assign((...i)=>gDe.info(...i),{info:e((...i)=>gDe.info(...i),"info"),warning:e((...i)=>gDe.warning(...i),"warning"),error:e((...i)=>gDe.error(...i),"error"),setLogLevel:e(i=>gDe.setLogLevel(i),"setLogLevel"),setLogStream:e(i=>gDe.setLogStream(i),"setLogStream"),addLogListener:e(i=>gDe.addListener(i),"addLogListener")}),JA=rei;var EYr=zd(bYr());var _0i=require("@playwright/test");var m0i=zd(bEt());var wgr=class wgr{constructor(r){this.options=r}async handleError(r,a,s){let l=`Error in ${a} action during ${r} execution: ${s.message}`;throw new Error(l)}async guardedExecute(){try{return await(this.options.timeout!=null?C8(this.execute(),this.options.timeout,"Execution timeout"):this.execute())}catch(r){return this.handleError(this.options.method,this.constructor.name,r)}}};e(wgr,"Action");var z3t=wgr,Tgr=class Tgr extends z3t{async execute(){return this.options.method in this.options.locator?this.options.locator[this.options.method](...this.options.args):this.options.locator}};e(Tgr,"PlaywrightAction");var Egr=Tgr,kgr=class kgr extends z3t{constructor(a,s){super(a);this.pageInteractor=s}};e(kgr,"APIAction");var Cgr=kgr,Igr=class Igr extends Cgr{constructor(r,a){super(r,a.pageInteractor)}async execute(){try{let{locator:r,args:a}=this.options,[s,l]=a,d=await r.screenshot({timeout:3e4}),b=(await this.pageInteractor.getTextDetection(d)).getRectangleByTextAndSizeRanking(s,l);if(!b)throw new Error("No matching text found");await r.click({position:b.center})}catch(r){throw new Error(`Error in canvas click action: ${r.message}`)}}};e(Igr,"CanvasClickAction");var Dgr=Igr,W3t=class W3t{static createAction(r,a){return r.method in this.customActionMap?new this.customActionMap[r.method]({...r,timeout:15e3},a):new Egr(r)}};e(W3t,"ActionFactory"),W3t.customActionMap={canvasClick:Dgr};var Sgr=W3t;pin();Hee();var Phe=class Phe{constructor(){this.toolsMap={}}get addTool(){return this._addTool||(this._addTool=this.buildAddToolFacade()),this._addTool}getToolNames(){return Object.keys(this.toolRecord.names)}get tools(){return this.toolsMap}buildAddToolFacade(){let r={},a=this.toolRecord.tools;for(let s of Object.keys(a))r[s]=l=>this._addSingleTool(s,l);return r}static describeTool(r,a){if(r instanceof W1.ZodObject){let s={},l=r.shape;for(let d of Object.keys(l)){let g=l[d],b=a==null?void 0:a[d];typeof b=="string"?s[d]=g.describe(b):b&&typeof b=="object"?s[d]=Phe.describeTool(g,b):s[d]=g}return W1.object(s).strict()}if(r instanceof W1.ZodArray){let s=r.element;return a&&typeof a=="object"&&a.element?W1.array(Phe.describeTool(s,a.element)):r}return r instanceof W1.ZodOptional?Phe.describeTool(r.unwrap(),a).optional():r instanceof W1.ZodNullable?Phe.describeTool(r.unwrap(),a).nullable():typeof a=="string"?r.describe(a):r}_addSingleTool(r,a){let s=a.name??String(r),d=this.toolRecord.tools[r]._create({...a,name:s,params:a.params,handler:a.handler}),g=this.toolRecord.tools[r],b=Phe.describeTool(g,a.params),S=zxr(e(async F=>{let R=b.parse(F);return a.handler(R)},"validatedHandler"),{name:d.name,description:d.description,schema:b});return this.toolsMap[r]=S,S}_buildOne(r,a){return this._addSingleTool(r,{...a,name:String(r)})}static buildTool(r,a,s){let l=String(a),g=r.tools[a]._create({name:l,description:"",handler:s,params:{}}),b=r.tools[a],C=Phe.describeTool(b,{});return zxr(e(async R=>{let N=C.parse(R);return s(N)},"validatedHandler"),{name:g.name,description:g.description,schema:C})}};e(Phe,"AbstractToolContainer");var gbe=Phe;Hee();var rwt=class rwt{constructor(r,a){this.version=r;let s={};for(let d in a)s[d]=d;this.names=s;let l={};for(let d in a){let g=a[d];Object.defineProperty(g,"name",{value:d,configurable:!1,enumerable:!0,writable:!1}),g._create=(b=>C=>{let S=C.name??b;return{...C,name:S}})(d),l[d]=g}this.tools=l}static create(r,a){return new rwt(r,a)}};e(rwt,"ToolProtocol");var twt=rwt;var wL=twt.create("v1",{readFile:W1.object({path:W1.string()}),getState:W1.object({thought:W1.string()}),invokeCode:W1.object({code:W1.string().refine(i=>{let r=i.trim();return r.includes("page.getByChecksumId(")||r.includes("page.getByChecksumId(")||r.startsWith("const ")||r.startsWith("let ")||r.startsWith("var ")||r.includes("=")||r.includes("variableStore.")},{message:"Code should use page.getByChecksumId() for element targeting, or be explicit variable assignments/function calls"}),thought:W1.string()}),wait:W1.object({time:W1.number().optional()}),scroll:W1.object({checksumId:W1.string(),thought:W1.string()}),final_result:W1.object({result:W1.enum(["pass","fail"]),thought:W1.string(),visualAnalysis:W1.string().optional()}),getElementScreenshot:W1.object({checksumId:W1.string(),thought:W1.string()}),analyze:W1.object({previousImmediateSteps:W1.string(),currentFailingStep:W1.string(),nextImmediateSteps:W1.string(),testStepToStopAt:W1.string()}),think:W1.object({thought:W1.string()})});var fAr=zd(_in(),1);var Xae=Object.create(null);Xae.open="0";Xae.close="1";Xae.ping="2";Xae.pong="3";Xae.message="4";Xae.upgrade="5";Xae.noop="6";var get=Object.create(null);Object.keys(Xae).forEach(i=>{get[Xae[i]]=i});var yet={type:"error",data:"parser error"};var vet=e(({type:i,data:r},a,s)=>r instanceof ArrayBuffer||ArrayBuffer.isView(r)?s(a?r:"b"+min(r,!0).toString("base64")):s(Xae[i]+(r||"")),"encodePacket"),min=e((i,r)=>Buffer.isBuffer(i)||i instanceof Uint8Array&&!r?i:i instanceof ArrayBuffer?Buffer.from(i):Buffer.from(i.buffer,i.byteOffset,i.byteLength),"toBuffer"),Xxr;function hin(i,r){if(i.data instanceof ArrayBuffer||ArrayBuffer.isView(i.data))return r(min(i.data,!1));vet(i,!0,a=>{Xxr||(Xxr=new TextEncoder),r(Xxr.encode(a))})}e(hin,"encodePacketToBinary");var xet=e((i,r)=>{if(typeof i!="string")return{type:"message",data:gin(i,r)};let a=i.charAt(0);if(a==="b"){let s=Buffer.from(i.substring(1),"base64");return{type:"message",data:gin(s,r)}}return get[a]?i.length>1?{type:get[a],data:i.substring(1)}:{type:get[a]}:yet},"decodePacket"),gin=e((i,r)=>{switch(r){case"arraybuffer":return i instanceof ArrayBuffer?i:Buffer.isBuffer(i)?i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength):i.buffer;case"nodebuffer":default:return Buffer.isBuffer(i)?i:Buffer.from(i)}},"mapBinary");var yin="",vin=e((i,r)=>{let a=i.length,s=new Array(a),l=0;i.forEach((d,g)=>{vet(d,!1,b=>{s[g]=b,++l===a&&r(s.join(yin))})})},"encodePayload"),xin=e((i,r)=>{let a=i.split(yin),s=[];for(let l=0;l<a.length;l++){let d=xet(a[l],r);if(s.push(d),d.type==="error")break}return s},"decodePayload");function Ain(){return new TransformStream({transform(i,r){hin(i,a=>{let s=a.length,l;if(s<126)l=new Uint8Array(1),new DataView(l.buffer).setUint8(0,s);else if(s<65536){l=new Uint8Array(3);let d=new DataView(l.buffer);d.setUint8(0,126),d.setUint16(1,s)}else{l=new Uint8Array(9);let d=new DataView(l.buffer);d.setUint8(0,127),d.setBigUint64(1,BigInt(s))}i.data&&typeof i.data!="string"&&(l[0]|=128),r.enqueue(l),r.enqueue(a)})}})}e(Ain,"createPacketEncoderStream");var Zxr;function nwt(i){return i.reduce((r,a)=>r+a.length,0)}e(nwt,"totalLength");function iwt(i,r){if(i[0].length===r)return i.shift();let a=new Uint8Array(r),s=0;for(let l=0;l<r;l++)a[l]=i[0][s++],s===i[0].length&&(i.shift(),s=0);return i.length&&s<i[0].length&&(i[0]=i[0].slice(s)),a}e(iwt,"concatChunks");function bin(i,r){Zxr||(Zxr=new TextDecoder);let a=[],s=0,l=-1,d=!1;return new TransformStream({transform(g,b){for(a.push(g);;){if(s===0){if(nwt(a)<1)break;let C=iwt(a,1);d=(C[0]&128)===128,l=C[0]&127,l<126?s=3:l===126?s=1:s=2}else if(s===1){if(nwt(a)<2)break;let C=iwt(a,2);l=new DataView(C.buffer,C.byteOffset,C.length).getUint16(0),s=3}else if(s===2){if(nwt(a)<8)break;let C=iwt(a,8),S=new DataView(C.buffer,C.byteOffset,C.length),F=S.getUint32(0);if(F>Math.pow(2,21)-1){b.enqueue(yet);break}l=F*Math.pow(2,32)+S.getUint32(4),s=3}else{if(nwt(a)<l)break;let C=iwt(a,l);b.enqueue(xet(d?C:Zxr.decode(C),r)),s=0}if(l===0||l>i){b.enqueue(yet);break}}}})}e(bin,"createPacketDecoderStream");var eAr=4;var Min=zd(PSe(),1);var Nhe=process.nextTick,a$=global,Cin="nodebuffer";function Din(){return new tAr}e(Din,"createCookieJar");function Dyi(i){let r=i.split("; "),a=r[0].indexOf("=");if(a===-1)return;let s=r[0].substring(0,a).trim();if(!s.length)return;let l=r[0].substring(a+1).trim();l.charCodeAt(0)===34&&(l=l.slice(1,-1));let d={name:s,value:l};for(let g=1;g<r.length;g++){let b=r[g].split("=");if(b.length!==2)continue;let C=b[0].trim(),S=b[1].trim();switch(C){case"Expires":d.expires=new Date(S);break;case"Max-Age":let F=new Date;F.setUTCSeconds(F.getUTCSeconds()+parseInt(S,10)),d.expires=F;break;default:}}return d}e(Dyi,"parse");var rAr=class rAr{constructor(){this._cookies=new Map}parseCookies(r){r&&r.forEach(a=>{let s=Dyi(a);s&&this._cookies.set(s.name,s)})}get cookies(){let r=Date.now();return this._cookies.forEach((a,s)=>{var l;((l=a.expires)===null||l===void 0?void 0:l.getTime())<r&&this._cookies.delete(s)}),this._cookies.entries()}addCookies(r){let a=[];for(let[s,l]of this.cookies)a.push(`${s}=${l.value}`);a.length&&(r.setDisableHeaderCheck(!0),r.setRequestHeader("cookie",a.join("; ")))}appendCookies(r){for(let[a,s]of this.cookies)r.append("cookie",`${a}=${s.value}`)}};e(rAr,"CookieJar");var tAr=rAr;function awt(i,...r){return r.reduce((a,s)=>(i.hasOwnProperty(s)&&(a[s]=i[s]),a),{})}e(awt,"pick");var Syi=a$.setTimeout,wyi=a$.clearTimeout;function Ohe(i,r){r.useNativeTimers?(i.setTimeoutFn=Syi.bind(a$),i.clearTimeoutFn=wyi.bind(a$)):(i.setTimeoutFn=a$.setTimeout.bind(a$),i.clearTimeoutFn=a$.clearTimeout.bind(a$))}e(Ohe,"installTimerFunctions");var Tyi=1.33;function Sin(i){return typeof i=="string"?kyi(i):Math.ceil((i.byteLength||i.size)*Tyi)}e(Sin,"byteLength");function kyi(i){let r=0,a=0;for(let s=0,l=i.length;s<l;s++)r=i.charCodeAt(s),r<128?a+=1:r<2048?a+=2:r<55296||r>=57344?a+=3:(s++,a+=4);return a}e(kyi,"utf8Length");function swt(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}e(swt,"randomString");function win(i){let r="";for(let a in i)i.hasOwnProperty(a)&&(r.length&&(r+="&"),r+=encodeURIComponent(a)+"="+encodeURIComponent(i[a]));return r}e(win,"encode");function Tin(i){let r={},a=i.split("&");for(let s=0,l=a.length;s<l;s++){let d=a[s].split("=");r[decodeURIComponent(d[0])]=decodeURIComponent(d[1])}return r}e(Tin,"decode");var jin=zd(OSe(),1);var Xyi=(0,jin.default)("engine.io-client:transport"),oAr=class oAr extends Error{constructor(r,a,s){super(r),this.description=a,this.context=s,this.type="TransportError"}};e(oAr,"TransportError");var pwt=oAr,uAr=class uAr extends Min.Emitter{constructor(r){super(),this.writable=!1,Ohe(this,r),this.opts=r,this.query=r.query,this.socket=r.socket,this.supportsBinary=!r.forceBase64}onError(r,a,s){return super.emitReserved("error",new pwt(r,a,s)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return(this.readyState==="opening"||this.readyState==="open")&&(this.doClose(),this.onClose()),this}send(r){this.readyState==="open"?this.write(r):Xyi("transport is not open, discarding packets")}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(r){let a=xet(r,this.socket.binaryType);this.onPacket(a)}onPacket(r){super.emitReserved("packet",r)}onClose(r){this.readyState="closed",super.emitReserved("close",r)}pause(r){}createUri(r,a={}){return r+"://"+this._hostname()+this._port()+this.opts.path+this._query(a)}_hostname(){let r=this.opts.hostname;return r.indexOf(":")===-1?r:"["+r+"]"}_port(){return this.opts.port&&(this.opts.secure&&+(this.opts.port!==443)||!this.opts.secure&&Number(this.opts.port)!==80)?":"+this.opts.port:""}_query(r){let a=win(r);return a.length?"?"+a:""}};e(uAr,"Transport");var Bhe=uAr;var Uin=zd(OSe(),1);var Zae=(0,Uin.default)("engine.io-client:polling"),cAr=class cAr extends Bhe{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(r){this.readyState="pausing";let a=e(()=>{Zae("paused"),this.readyState="paused",r()},"pause");if(this._polling||!this.writable){let s=0;this._polling&&(Zae("we are currently polling - waiting to pause"),s++,this.once("pollComplete",function(){Zae("pre-pause polling complete"),--s||a()})),this.writable||(Zae("we are currently writing - waiting to pause"),s++,this.once("drain",function(){Zae("pre-pause writing complete"),--s||a()}))}else a()}_poll(){Zae("polling"),this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(r){Zae("polling got data %s",r);let a=e(s=>{if(this.readyState==="opening"&&s.type==="open"&&this.onOpen(),s.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(s)},"callback");xin(r,this.socket.binaryType).forEach(a),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"?this._poll():Zae('ignoring poll - transport state "%s"',this.readyState))}doClose(){let r=e(()=>{Zae("writing close packet"),this.write([{type:"close"}])},"close");this.readyState==="open"?(Zae("transport open - closing"),r()):(Zae("transport not open - deferring close"),this.once("open",r))}write(r){this.writable=!1,vin(r,a=>{this.doWrite(a,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){let r=this.opts.secure?"https":"http",a=this.query||{};return this.opts.timestampRequests!==!1&&(a[this.opts.timestampParam]=swt()),!this.supportsBinary&&!a.sid&&(a.b64=1),this.createUri(r,a)}};e(cAr,"Polling");var bet=cAr;var Vin=zd(PSe(),1);var Qin=!1;try{Qin=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}var qin=Qin;var Jin=zd(OSe(),1);var lAr=(0,Jin.default)("engine.io-client:polling");function Zyi(){}e(Zyi,"empty");var pAr=class pAr extends bet{constructor(r){if(super(r),typeof location<"u"){let a=location.protocol==="https:",s=location.port;s||(s=a?"443":"80"),this.xd=typeof location<"u"&&r.hostname!==location.hostname||s!==r.port}}doWrite(r,a){let s=this.request({method:"POST",data:r});s.on("success",a),s.on("error",(l,d)=>{this.onError("xhr post error",l,d)})}doPoll(){lAr("xhr poll");let r=this.request();r.on("data",this.onData.bind(this)),r.on("error",(a,s)=>{this.onError("xhr poll error",a,s)}),this.pollXhr=r}};e(pAr,"BaseXHR");var fwt=pAr,MBe=class MBe extends Vin.Emitter{constructor(r,a,s){super(),this.createRequest=r,Ohe(this,s),this._opts=s,this._method=s.method||"GET",this._uri=a,this._data=s.data!==void 0?s.data:null,this._create()}_create(){var r;let a=awt(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");a.xdomain=!!this._opts.xd;let s=this._xhr=this.createRequest(a);try{lAr("xhr open %s: %s",this._method,this._uri),s.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){s.setDisableHeaderCheck&&s.setDisableHeaderCheck(!0);for(let l in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(l)&&s.setRequestHeader(l,this._opts.extraHeaders[l])}}catch{}if(this._method==="POST")try{s.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{s.setRequestHeader("Accept","*/*")}catch{}(r=this._opts.cookieJar)===null||r===void 0||r.addCookies(s),"withCredentials"in s&&(s.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(s.timeout=this._opts.requestTimeout),s.onreadystatechange=()=>{var l;s.readyState===3&&((l=this._opts.cookieJar)===null||l===void 0||l.parseCookies(s.getResponseHeader("set-cookie"))),s.readyState===4&&(s.status===200||s.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof s.status=="number"?s.status:0)},0))},lAr("xhr data %s",this._data),s.send(this._data)}catch(l){this.setTimeoutFn(()=>{this._onError(l)},0);return}typeof document<"u"&&(this._index=MBe.requestsCount++,MBe.requests[this._index]=this)}_onError(r){this.emitReserved("error",r,this._xhr),this._cleanup(!0)}_cleanup(r){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=Zyi,r)try{this._xhr.abort()}catch{}typeof document<"u"&&delete MBe.requests[this._index],this._xhr=null}}_onLoad(){let r=this._xhr.responseText;r!==null&&(this.emitReserved("data",r),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}};e(MBe,"Request");var Rhe=MBe;Rhe.requestsCount=0;Rhe.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",$in);else if(typeof addEventListener=="function"){let i="onpagehide"in a$?"pagehide":"unload";addEventListener(i,$in,!1)}}function $in(){for(let i in Rhe.requests)Rhe.requests.hasOwnProperty(i)&&Rhe.requests[i].abort()}e($in,"unloadHandler");var n1a=function(){let i=e2i({xdomain:!1});return i&&i.responseType!==null}();function e2i(i){let r=i.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!r||qin))return new XMLHttpRequest}catch{}if(!r)try{return new a$[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}e(e2i,"newRequest");var t2i=fAr.default||fAr,dAr=class dAr extends fwt{request(r={}){var a;return Object.assign(r,{xd:this.xd,cookieJar:(a=this.socket)===null||a===void 0?void 0:a._cookieJar},this.opts),new Rhe(s=>new t2i(s),this.uri(),r)}};e(dAr,"XHR");var jBe=dAr;var pvi=zd(Gin(),1),fvi=zd(wAr(),1),dvi=zd(kAr(),1),$Ar=zd(UAr(),1),_vi=zd(zan(),1);var Wan=zd(OSe(),1);var hvi=(0,Wan.default)("engine.io-client:websocket"),gvi=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative",VAr=class VAr extends Bhe{get name(){return"websocket"}doOpen(){let r=this.uri(),a=this.opts.protocols,s=gvi?{}:awt(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(s.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(r,a,s)}catch(l){return this.emitReserved("error",l)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=r=>this.onClose({description:"websocket connection closed",context:r}),this.ws.onmessage=r=>this.onData(r.data),this.ws.onerror=r=>this.onError("websocket error",r)}write(r){this.writable=!1;for(let a=0;a<r.length;a++){let s=r[a],l=a===r.length-1;vet(s,this.supportsBinary,d=>{try{this.doWrite(s,d)}catch{hvi("websocket closed before onclose event")}l&&Nhe(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){let r=this.opts.secure?"wss":"ws",a=this.query||{};return this.opts.timestampRequests&&(a[this.opts.timestampParam]=swt()),this.supportsBinary||(a.b64=1),this.createUri(r,a)}};e(VAr,"BaseWS");var Swt=VAr,$1a=a$.WebSocket||a$.MozWebSocket;var JAr=class JAr extends Swt{createSocket(r,a,s){var l;if(!((l=this.socket)===null||l===void 0)&&l._cookieJar){s.headers=s.headers||{},s.headers.cookie=typeof s.headers.cookie=="string"?[s.headers.cookie]:s.headers.cookie||[];for(let[d,g]of this.socket._cookieJar.cookies)s.headers.cookie.push(`${d}=${g.value}`)}return new $Ar.default(r,a,s)}doWrite(r,a){let s={};r.options&&(s.compress=r.options.compress),this.opts.perMessageDeflate&&(typeof a=="string"?Buffer.byteLength(a):a.length)<this.opts.perMessageDeflate.threshold&&(s.compress=!1),this.ws.send(a,s)}};e(JAr,"WS");var VBe=JAr;var Han=zd(OSe(),1);var Oet=(0,Han.default)("engine.io-client:webtransport"),zAr=class zAr extends Bhe{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(r){return this.emitReserved("error",r)}this._transport.closed.then(()=>{Oet("transport closed gracefully"),this.onClose()}).catch(r=>{Oet("transport closed due to %s",r),this.onError("webtransport error",r)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(r=>{let a=bin(Number.MAX_SAFE_INTEGER,this.socket.binaryType),s=r.readable.pipeThrough(a).getReader(),l=Ain();l.readable.pipeTo(r.writable),this._writer=l.writable.getWriter();let d=e(()=>{s.read().then(({done:b,value:C})=>{if(b){Oet("session is closed");return}Oet("received chunk: %o",C),this.onPacket(C),d()}).catch(b=>{Oet("an error occurred while reading: %s",b)})},"read");d();let g={type:"open"};this.query.sid&&(g.data=`{"sid":"${this.query.sid}"}`),this._writer.write(g).then(()=>this.onOpen())})})}write(r){this.writable=!1;for(let a=0;a<r.length;a++){let s=r[a],l=a===r.length-1;this._writer.write(s).then(()=>{l&&Nhe(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var r;(r=this._transport)===null||r===void 0||r.close()}};e(zAr,"WT");var JBe=zAr;var WAr={websocket:VBe,webtransport:JBe,polling:jBe};var yvi=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,vvi=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function zBe(i){if(i.length>8e3)throw"URI too long";let r=i,a=i.indexOf("["),s=i.indexOf("]");a!=-1&&s!=-1&&(i=i.substring(0,a)+i.substring(a,s).replace(/:/g,";")+i.substring(s,i.length));let l=yvi.exec(i||""),d={},g=14;for(;g--;)d[vvi[g]]=l[g]||"";return a!=-1&&s!=-1&&(d.source=r,d.host=d.host.substring(1,d.host.length-1).replace(/;/g,":"),d.authority=d.authority.replace("[","").replace("]","").replace(/;/g,":"),d.ipv6uri=!0),d.pathNames=xvi(d,d.path),d.queryKey=Avi(d,d.query),d}e(zBe,"parse");function xvi(i,r){let a=/\/{2,9}/g,s=r.replace(a,"/").split("/");return(r.slice(0,1)=="/"||r.length===0)&&s.splice(0,1),r.slice(-1)=="/"&&s.splice(s.length-1,1),s}e(xvi,"pathNames");function Avi(i,r){let a={};return r.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(s,l,d){l&&(a[l]=d)}),a}e(Avi,"queryKey");var Gan=zd(PSe(),1);var Kan=zd(OSe(),1);var k3=(0,Kan.default)("engine.io-client:socket"),HAr=typeof addEventListener=="function"&&typeof removeEventListener=="function",Bet=[];HAr&&addEventListener("offline",()=>{k3("closing %d connection(s) because the network was lost",Bet.length),Bet.forEach(i=>i())},!1);var WBe=class WBe extends Gan.Emitter{constructor(r,a){if(super(),this.binaryType=Cin,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,r&&typeof r=="object"&&(a=r,r=null),r){let s=zBe(r);a.hostname=s.host,a.secure=s.protocol==="https"||s.protocol==="wss",a.port=s.port,s.query&&(a.query=s.query)}else a.host&&(a.hostname=zBe(a.host).host);Ohe(this,a),this.secure=a.secure!=null?a.secure:typeof location<"u"&&location.protocol==="https:",a.hostname&&!a.port&&(a.port=this.secure?"443":"80"),this.hostname=a.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=a.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},a.transports.forEach(s=>{let l=s.prototype.name;this.transports.push(l),this._transportsByName[l]=s}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},a),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=Tin(this.opts.query)),HAr&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(k3("adding listener for the 'offline' event"),this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},Bet.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=Din()),this._open()}createTransport(r){k3('creating transport "%s"',r);let a=Object.assign({},this.opts.query);a.EIO=eAr,a.transport=r,this.id&&(a.sid=this.id);let s=Object.assign({},this.opts,{query:a,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[r]);return k3("options: %j",s),new this._transportsByName[r](s)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}let r=this.opts.rememberUpgrade&&WBe.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";let a=this.createTransport(r);a.open(),this.setTransport(a)}setTransport(r){k3("setting transport %s",r.name),this.transport&&(k3("clearing existing transport %s",this.transport.name),this.transport.removeAllListeners()),this.transport=r,r.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",a=>this._onClose("transport close",a))}onOpen(){k3("socket open"),this.readyState="open",WBe.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(r){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(k3('socket receive: type "%s", data "%s"',r.type,r.data),this.emitReserved("packet",r),this.emitReserved("heartbeat"),r.type){case"open":this.onHandshake(JSON.parse(r.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":let a=new Error("server error");a.code=r.data,this._onError(a);break;case"message":this.emitReserved("data",r.data),this.emitReserved("message",r.data);break}else k3('packet received with socket readyState "%s"',this.readyState)}onHandshake(r){this.emitReserved("handshake",r),this.id=r.sid,this.transport.query.sid=r.sid,this._pingInterval=r.pingInterval,this._pingTimeout=r.pingTimeout,this._maxPayload=r.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);let r=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+r,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},r),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){let r=this._getWritablePackets();k3("flushing %d packets in socket",r.length),this.transport.send(r),this._prevBufferLen=r.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let a=1;for(let s=0;s<this.writeBuffer.length;s++){let l=this.writeBuffer[s].data;if(l&&(a+=Sin(l)),s>0&&a>this._maxPayload)return k3("only send %d out of %d packets",s,this.writeBuffer.length),this.writeBuffer.slice(0,s);a+=2}return k3("payload size is %d (max: %d)",a,this._maxPayload),this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;let r=Date.now()>this._pingTimeoutTime;return r&&(k3("throttled timer detected, scheduling connection close"),this._pingTimeoutTime=0,Nhe(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),r}write(r,a,s){return this._sendPacket("message",r,a,s),this}send(r,a,s){return this._sendPacket("message",r,a,s),this}_sendPacket(r,a,s,l){if(typeof a=="function"&&(l=a,a=void 0),typeof s=="function"&&(l=s,s=null),this.readyState==="closing"||this.readyState==="closed")return;s=s||{},s.compress=s.compress!==!1;let d={type:r,data:a,options:s};this.emitReserved("packetCreate",d),this.writeBuffer.push(d),l&&this.once("flush",l),this.flush()}close(){let r=e(()=>{this._onClose("forced close"),k3("socket closing - telling transport to close"),this.transport.close()},"close"),a=e(()=>{this.off("upgrade",a),this.off("upgradeError",a),r()},"cleanupAndClose"),s=e(()=>{this.once("upgrade",a),this.once("upgradeError",a)},"waitForUpgrade");return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?s():r()}):this.upgrading?s():r()),this}_onError(r){if(k3("socket error %j",r),WBe.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return k3("trying next transport"),this.transports.shift(),this._open();this.emitReserved("error",r),this._onClose("transport error",r)}_onClose(r,a){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(k3('socket close with reason: "%s"',r),this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),HAr&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){let s=Bet.indexOf(this._offlineEventListener);s!==-1&&(k3("removing listener for the 'offline' event"),Bet.splice(s,1))}this.readyState="closed",this.id=null,this.emitReserved("close",r,a),this.writeBuffer=[],this._prevBufferLen=0}}};e(WBe,"SocketWithoutUpgrade");var jSe=WBe;jSe.protocol=eAr;var GAr=class GAr extends jSe{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade){k3("starting upgrade probes");for(let r=0;r<this._upgrades.length;r++)this._probe(this._upgrades[r])}}_probe(r){k3('probing transport "%s"',r);let a=this.createTransport(r),s=!1;jSe.priorWebsocketSuccess=!1;let l=e(()=>{s||(k3('probe transport "%s" opened',r),a.send([{type:"ping",data:"probe"}]),a.once("packet",R=>{if(!s)if(R.type==="pong"&&R.data==="probe"){if(k3('probe transport "%s" pong',r),this.upgrading=!0,this.emitReserved("upgrading",a),!a)return;jSe.priorWebsocketSuccess=a.name==="websocket",k3('pausing current transport "%s"',this.transport.name),this.transport.pause(()=>{s||this.readyState!=="closed"&&(k3("changing transport and sending upgrade packet"),F(),this.setTransport(a),a.send([{type:"upgrade"}]),this.emitReserved("upgrade",a),a=null,this.upgrading=!1,this.flush())})}else{k3('probe transport "%s" failed',r);let N=new Error("probe error");N.transport=a.name,this.emitReserved("upgradeError",N)}}))},"onTransportOpen");function d(){s||(s=!0,F(),a.close(),a=null)}e(d,"freezeTransport");let g=e(R=>{let N=new Error("probe error: "+R);N.transport=a.name,d(),k3('probe transport "%s" failed because of error: %s',r,R),this.emitReserved("upgradeError",N)},"onerror");function b(){g("transport closed")}e(b,"onTransportClose");function C(){g("socket closed")}e(C,"onclose");function S(R){a&&R.name!==a.name&&(k3('"%s" works - aborting "%s"',R.name,a.name),d())}e(S,"onupgrade");let F=e(()=>{a.removeListener("open",l),a.removeListener("error",g),a.removeListener("close",b),this.off("close",C),this.off("upgrading",S)},"cleanup");a.once("open",l),a.once("error",g),a.once("close",b),this.once("close",C),this.once("upgrading",S),this._upgrades.indexOf("webtransport")!==-1&&r!=="webtransport"?this.setTimeoutFn(()=>{s||a.open()},200):a.open()}onHandshake(r){this._upgrades=this._filterUpgrades(r.upgrades),super.onHandshake(r)}_filterUpgrades(r){let a=[];for(let s=0;s<r.length;s++)~this.transports.indexOf(r[s])&&a.push(r[s]);return a}};e(GAr,"SocketWithUpgrade");var wwt=GAr,KAr=class KAr extends wwt{constructor(r,a={}){let s=typeof r=="object"?r:a;(!s.transports||s.transports&&typeof s.transports[0]=="string")&&(s.transports=(s.transports||["polling","websocket","webtransport"]).map(l=>WAr[l]).filter(l=>!!l)),super(r,s)}};e(KAr,"Socket");var HBe=KAr;var yga=HBe.protocol;var rsn=zd(Ret(),1);var tsn=(0,rsn.default)("socket.io-client:url");function nsn(i,r="",a){let s=i;a=a||typeof location<"u"&&location,i==null&&(i=a.protocol+"//"+a.host),typeof i=="string"&&(i.charAt(0)==="/"&&(i.charAt(1)==="/"?i=a.protocol+i:i=a.host+i),/^(https?|wss?):\/\//.test(i)||(tsn("protocol-less url %s",i),typeof a<"u"?i=a.protocol+"//"+i:i="https://"+i),tsn("parse %s",i),s=zBe(i)),s.port||(/^(http|ws)$/.test(s.protocol)?s.port="80":/^(http|ws)s$/.test(s.protocol)&&(s.port="443")),s.path=s.path||"/";let d=s.host.indexOf(":")!==-1?"["+s.host+"]":s.host;return s.id=s.protocol+"://"+d+":"+s.port+r,s.href=s.protocol+"://"+d+(a&&a.port===s.port?"":":"+s.port),s}e(nsn,"url");var obr={};LKe(obr,{Decoder:()=>abr,Encoder:()=>ibr,PacketType:()=>Zb,protocol:()=>msn});var dsn=zd(PSe(),1);var Uvi=typeof ArrayBuffer=="function",Qvi=e(i=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(i):i.buffer instanceof ArrayBuffer,"isView"),isn=Object.prototype.toString,qvi=typeof Blob=="function"||typeof Blob<"u"&&isn.call(Blob)==="[object BlobConstructor]",$vi=typeof File=="function"||typeof File<"u"&&isn.call(File)==="[object FileConstructor]";function Met(i){return Uvi&&(i instanceof ArrayBuffer||Qvi(i))||qvi&&i instanceof Blob||$vi&&i instanceof File}e(Met,"isBinary");function Let(i,r){if(!i||typeof i!="object")return!1;if(Array.isArray(i)){for(let a=0,s=i.length;a<s;a++)if(Let(i[a]))return!0;return!1}if(Met(i))return!0;if(i.toJSON&&typeof i.toJSON=="function"&&arguments.length===1)return Let(i.toJSON(),!0);for(let a in i)if(Object.prototype.hasOwnProperty.call(i,a)&&Let(i[a]))return!0;return!1}e(Let,"hasBinary");function asn(i){let r=[],a=i.data,s=i;return s.data=ZAr(a,r),s.attachments=r.length,{packet:s,buffers:r}}e(asn,"deconstructPacket");function ZAr(i,r){if(!i)return i;if(Met(i)){let a={_placeholder:!0,num:r.length};return r.push(i),a}else if(Array.isArray(i)){let a=new Array(i.length);for(let s=0;s<i.length;s++)a[s]=ZAr(i[s],r);return a}else if(typeof i=="object"&&!(i instanceof Date)){let a={};for(let s in i)Object.prototype.hasOwnProperty.call(i,s)&&(a[s]=ZAr(i[s],r));return a}return i}e(ZAr,"_deconstructPacket");function ssn(i,r){return i.data=ebr(i.data,r),delete i.attachments,i}e(ssn,"reconstructPacket");function ebr(i,r){if(!i)return i;if(i&&i._placeholder===!0){if(typeof i.num=="number"&&i.num>=0&&i.num<r.length)return r[i.num];throw new Error("illegal attachments")}else if(Array.isArray(i))for(let a=0;a<i.length;a++)i[a]=ebr(i[a],r);else if(typeof i=="object")for(let a in i)Object.prototype.hasOwnProperty.call(i,a)&&(i[a]=ebr(i[a],r));return i}e(ebr,"_reconstructPacket");var _sn=zd(psn(),1);var nbr=(0,_sn.default)("socket.io-parser"),axi=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"],msn=5,Zb;(function(i){i[i.CONNECT=0]="CONNECT",i[i.DISCONNECT=1]="DISCONNECT",i[i.EVENT=2]="EVENT",i[i.ACK=3]="ACK",i[i.CONNECT_ERROR=4]="CONNECT_ERROR",i[i.BINARY_EVENT=5]="BINARY_EVENT",i[i.BINARY_ACK=6]="BINARY_ACK"})(Zb||(Zb={}));var ubr=class ubr{constructor(r){this.replacer=r}encode(r){return nbr("encoding packet %j",r),(r.type===Zb.EVENT||r.type===Zb.ACK)&&Let(r)?this.encodeAsBinary({type:r.type===Zb.EVENT?Zb.BINARY_EVENT:Zb.BINARY_ACK,nsp:r.nsp,data:r.data,id:r.id}):[this.encodeAsString(r)]}encodeAsString(r){let a=""+r.type;return(r.type===Zb.BINARY_EVENT||r.type===Zb.BINARY_ACK)&&(a+=r.attachments+"-"),r.nsp&&r.nsp!=="/"&&(a+=r.nsp+","),r.id!=null&&(a+=r.id),r.data!=null&&(a+=JSON.stringify(r.data,this.replacer)),nbr("encoded %j as %s",r,a),a}encodeAsBinary(r){let a=asn(r),s=this.encodeAsString(a.packet),l=a.buffers;return l.unshift(s),l}};e(ubr,"Encoder");var ibr=ubr;function fsn(i){return Object.prototype.toString.call(i)==="[object Object]"}e(fsn,"isObject");var Owt=class Owt extends dsn.Emitter{constructor(r){super(),this.reviver=r}add(r){let a;if(typeof r=="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");a=this.decodeString(r);let s=a.type===Zb.BINARY_EVENT;s||a.type===Zb.BINARY_ACK?(a.type=s?Zb.EVENT:Zb.ACK,this.reconstructor=new sbr(a),a.attachments===0&&super.emitReserved("decoded",a)):super.emitReserved("decoded",a)}else if(Met(r)||r.base64)if(this.reconstructor)a=this.reconstructor.takeBinaryData(r),a&&(this.reconstructor=null,super.emitReserved("decoded",a));else throw new Error("got binary data when not reconstructing a packet");else throw new Error("Unknown type: "+r)}decodeString(r){let a=0,s={type:Number(r.charAt(0))};if(Zb[s.type]===void 0)throw new Error("unknown packet type "+s.type);if(s.type===Zb.BINARY_EVENT||s.type===Zb.BINARY_ACK){let d=a+1;for(;r.charAt(++a)!=="-"&&a!=r.length;);let g=r.substring(d,a);if(g!=Number(g)||r.charAt(a)!=="-")throw new Error("Illegal attachments");s.attachments=Number(g)}if(r.charAt(a+1)==="/"){let d=a+1;for(;++a&&!(r.charAt(a)===","||a===r.length););s.nsp=r.substring(d,a)}else s.nsp="/";let l=r.charAt(a+1);if(l!==""&&Number(l)==l){let d=a+1;for(;++a;){let g=r.charAt(a);if(g==null||Number(g)!=g){--a;break}if(a===r.length)break}s.id=Number(r.substring(d,a+1))}if(r.charAt(++a)){let d=this.tryParse(r.substr(a));if(Owt.isPayloadValid(s.type,d))s.data=d;else throw new Error("invalid payload")}return nbr("decoded %s as %j",r,s),s}tryParse(r){try{return JSON.parse(r,this.reviver)}catch{return!1}}static isPayloadValid(r,a){switch(r){case Zb.CONNECT:return fsn(a);case Zb.DISCONNECT:return a===void 0;case Zb.CONNECT_ERROR:return typeof a=="string"||fsn(a);case Zb.EVENT:case Zb.BINARY_EVENT:return Array.isArray(a)&&(typeof a[0]=="number"||typeof a[0]=="string"&&axi.indexOf(a[0])===-1);case Zb.ACK:case Zb.BINARY_ACK:return Array.isArray(a)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}};e(Owt,"Decoder");var abr=Owt,cbr=class cbr{constructor(r){this.packet=r,this.buffers=[],this.reconPack=r}takeBinaryData(r){if(this.buffers.push(r),this.buffers.length===this.reconPack.attachments){let a=ssn(this.reconPack,this.buffers);return this.finishedReconstruction(),a}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}};e(cbr,"BinaryReconstructor");var sbr=cbr;function bK(i,r,a){return i.on(r,a),e(function(){i.off(r,a)},"subDestroy")}e(bK,"on");var hsn=zd(PSe(),1),gsn=zd(Ret(),1);var kP=(0,gsn.default)("socket.io-client:socket"),sxi=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1}),lbr=class lbr extends hsn.Emitter{constructor(r,a,s){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=r,this.nsp=a,s&&s.auth&&(this.auth=s.auth),this._opts=Object.assign({},s),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;let r=this.io;this.subs=[bK(r,"open",this.onopen.bind(this)),bK(r,"packet",this.onpacket.bind(this)),bK(r,"error",this.onerror.bind(this)),bK(r,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...r){return r.unshift("message"),this.emit.apply(this,r),this}emit(r,...a){var s,l,d;if(sxi.hasOwnProperty(r))throw new Error('"'+r.toString()+'" is a reserved event name');if(a.unshift(r),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(a),this;let g={type:Zb.EVENT,data:a};if(g.options={},g.options.compress=this.flags.compress!==!1,typeof a[a.length-1]=="function"){let F=this.ids++;kP("emitting packet with ack id %d",F);let R=a.pop();this._registerAckCallback(F,R),g.id=F}let b=(l=(s=this.io.engine)===null||s===void 0?void 0:s.transport)===null||l===void 0?void 0:l.writable,C=this.connected&&!(!((d=this.io.engine)===null||d===void 0)&&d._hasPingExpired());return this.flags.volatile&&!b?kP("discard packet as the transport is not currently writable"):C?(this.notifyOutgoingListeners(g),this.packet(g)):this.sendBuffer.push(g),this.flags={},this}_registerAckCallback(r,a){var s;let l=(s=this.flags.timeout)!==null&&s!==void 0?s:this._opts.ackTimeout;if(l===void 0){this.acks[r]=a;return}let d=this.io.setTimeoutFn(()=>{delete this.acks[r];for(let b=0;b<this.sendBuffer.length;b++)this.sendBuffer[b].id===r&&(kP("removing packet with ack id %d from the buffer",r),this.sendBuffer.splice(b,1));kP("event with ack id %d has timed out after %d ms",r,l),a.call(this,new Error("operation has timed out"))},l),g=e((...b)=>{this.io.clearTimeoutFn(d),a.apply(this,b)},"fn");g.withError=!0,this.acks[r]=g}emitWithAck(r,...a){return new Promise((s,l)=>{let d=e((g,b)=>g?l(g):s(b),"fn");d.withError=!0,a.push(d),this.emit(r,...a)})}_addToQueue(r){let a;typeof r[r.length-1]=="function"&&(a=r.pop());let s={id:this._queueSeq++,tryCount:0,pending:!1,args:r,flags:Object.assign({fromQueue:!0},this.flags)};r.push((l,...d)=>s!==this._queue[0]?void 0:(l!==null?s.tryCount>this._opts.retries&&(kP("packet [%d] is discarded after %d tries",s.id,s.tryCount),this._queue.shift(),a&&a(l)):(kP("packet [%d] was successfully sent",s.id),this._queue.shift(),a&&a(null,...d)),s.pending=!1,this._drainQueue())),this._queue.push(s),this._drainQueue()}_drainQueue(r=!1){if(kP("draining queue"),!this.connected||this._queue.length===0)return;let a=this._queue[0];if(a.pending&&!r){kP("packet [%d] has already been sent and is waiting for an ack",a.id);return}a.pending=!0,a.tryCount++,kP("sending packet [%d] (try n\xB0%d)",a.id,a.tryCount),this.flags=a.flags,this.emit.apply(this,a.args)}packet(r){r.nsp=this.nsp,this.io._packet(r)}onopen(){kP("transport is open - connecting"),typeof this.auth=="function"?this.auth(r=>{this._sendConnectPacket(r)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(r){this.packet({type:Zb.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},r):r})}onerror(r){this.connected||this.emitReserved("connect_error",r)}onclose(r,a){kP("close (%s)",r),this.connected=!1,delete this.id,this.emitReserved("disconnect",r,a),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(r=>{if(!this.sendBuffer.some(s=>String(s.id)===r)){let s=this.acks[r];delete this.acks[r],s.withError&&s.call(this,new Error("socket has been disconnected"))}})}onpacket(r){if(r.nsp===this.nsp)switch(r.type){case Zb.CONNECT:r.data&&r.data.sid?this.onconnect(r.data.sid,r.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case Zb.EVENT:case Zb.BINARY_EVENT:this.onevent(r);break;case Zb.ACK:case Zb.BINARY_ACK:this.onack(r);break;case Zb.DISCONNECT:this.ondisconnect();break;case Zb.CONNECT_ERROR:this.destroy();let s=new Error(r.data.message);s.data=r.data.data,this.emitReserved("connect_error",s);break}}onevent(r){let a=r.data||[];kP("emitting event %j",a),r.id!=null&&(kP("attaching ack callback to event"),a.push(this.ack(r.id))),this.connected?this.emitEvent(a):this.receiveBuffer.push(Object.freeze(a))}emitEvent(r){if(this._anyListeners&&this._anyListeners.length){let a=this._anyListeners.slice();for(let s of a)s.apply(this,r)}super.emit.apply(this,r),this._pid&&r.length&&typeof r[r.length-1]=="string"&&(this._lastOffset=r[r.length-1])}ack(r){let a=this,s=!1;return function(...l){s||(s=!0,kP("sending ack %j",l),a.packet({type:Zb.ACK,id:r,data:l}))}}onack(r){let a=this.acks[r.id];if(typeof a!="function"){kP("bad ack %s",r.id);return}delete this.acks[r.id],kP("calling ack %s with %j",r.id,r.data),a.withError&&r.data.unshift(null),a.apply(this,r.data)}onconnect(r,a){kP("socket connected with id %s",r),this.id=r,this.recovered=a&&this._pid===a,this._pid=a,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(r=>this.emitEvent(r)),this.receiveBuffer=[],this.sendBuffer.forEach(r=>{this.notifyOutgoingListeners(r),this.packet(r)}),this.sendBuffer=[]}ondisconnect(){kP("server disconnect (%s)",this.nsp),this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(r=>r()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&(kP("performing disconnect (%s)",this.nsp),this.packet({type:Zb.DISCONNECT})),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(r){return this.flags.compress=r,this}get volatile(){return this.flags.volatile=!0,this}timeout(r){return this.flags.timeout=r,this}onAny(r){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(r),this}prependAny(r){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(r),this}offAny(r){if(!this._anyListeners)return this;if(r){let a=this._anyListeners;for(let s=0;s<a.length;s++)if(r===a[s])return a.splice(s,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(r){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(r),this}prependAnyOutgoing(r){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(r),this}offAnyOutgoing(r){if(!this._anyOutgoingListeners)return this;if(r){let a=this._anyOutgoingListeners;for(let s=0;s<a.length;s++)if(r===a[s])return a.splice(s,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(r){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){let a=this._anyOutgoingListeners.slice();for(let s of a)s.apply(this,r.data)}}};e(lbr,"Socket");var GBe=lbr;function USe(i){i=i||{},this.ms=i.min||100,this.max=i.max||1e4,this.factor=i.factor||2,this.jitter=i.jitter>0&&i.jitter<=1?i.jitter:0,this.attempts=0}e(USe,"Backoff");USe.prototype.duration=function(){var i=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var r=Math.random(),a=Math.floor(r*this.jitter*i);i=Math.floor(r*10)&1?i+a:i-a}return Math.min(i,this.max)|0};USe.prototype.reset=function(){this.attempts=0};USe.prototype.setMin=function(i){this.ms=i};USe.prototype.setMax=function(i){this.max=i};USe.prototype.setJitter=function(i){this.jitter=i};var ysn=zd(PSe(),1),vsn=zd(Ret(),1);var TL=(0,vsn.default)("socket.io-client:manager"),pbr=class pbr extends ysn.Emitter{constructor(r,a){var s;super(),this.nsps={},this.subs=[],r&&typeof r=="object"&&(a=r,r=void 0),a=a||{},a.path=a.path||"/socket.io",this.opts=a,Ohe(this,a),this.reconnection(a.reconnection!==!1),this.reconnectionAttempts(a.reconnectionAttempts||1/0),this.reconnectionDelay(a.reconnectionDelay||1e3),this.reconnectionDelayMax(a.reconnectionDelayMax||5e3),this.randomizationFactor((s=a.randomizationFactor)!==null&&s!==void 0?s:.5),this.backoff=new USe({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(a.timeout==null?2e4:a.timeout),this._readyState="closed",this.uri=r;let l=a.parser||obr;this.encoder=new l.Encoder,this.decoder=new l.Decoder,this._autoConnect=a.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(r){return arguments.length?(this._reconnection=!!r,r||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(r){return r===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=r,this)}reconnectionDelay(r){var a;return r===void 0?this._reconnectionDelay:(this._reconnectionDelay=r,(a=this.backoff)===null||a===void 0||a.setMin(r),this)}randomizationFactor(r){var a;return r===void 0?this._randomizationFactor:(this._randomizationFactor=r,(a=this.backoff)===null||a===void 0||a.setJitter(r),this)}reconnectionDelayMax(r){var a;return r===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=r,(a=this.backoff)===null||a===void 0||a.setMax(r),this)}timeout(r){return arguments.length?(this._timeout=r,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(r){if(TL("readyState %s",this._readyState),~this._readyState.indexOf("open"))return this;TL("opening %s",this.uri),this.engine=new HBe(this.uri,this.opts);let a=this.engine,s=this;this._readyState="opening",this.skipReconnect=!1;let l=bK(a,"open",function(){s.onopen(),r&&r()}),d=e(b=>{TL("error"),this.cleanup(),this._readyState="closed",this.emitReserved("error",b),r?r(b):this.maybeReconnectOnOpen()},"onError"),g=bK(a,"error",d);if(this._timeout!==!1){let b=this._timeout;TL("connect attempt will timeout after %d",b);let C=this.setTimeoutFn(()=>{TL("connect attempt timed out after %d",b),l(),d(new Error("timeout")),a.close()},b);this.opts.autoUnref&&C.unref(),this.subs.push(()=>{this.clearTimeoutFn(C)})}return this.subs.push(l),this.subs.push(g),this}connect(r){return this.open(r)}onopen(){TL("open"),this.cleanup(),this._readyState="open",this.emitReserved("open");let r=this.engine;this.subs.push(bK(r,"ping",this.onping.bind(this)),bK(r,"data",this.ondata.bind(this)),bK(r,"error",this.onerror.bind(this)),bK(r,"close",this.onclose.bind(this)),bK(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(r){try{this.decoder.add(r)}catch(a){this.onclose("parse error",a)}}ondecoded(r){Nhe(()=>{this.emitReserved("packet",r)},this.setTimeoutFn)}onerror(r){TL("error",r),this.emitReserved("error",r)}socket(r,a){let s=this.nsps[r];return s?this._autoConnect&&!s.active&&s.connect():(s=new GBe(this,r,a),this.nsps[r]=s),s}_destroy(r){let a=Object.keys(this.nsps);for(let s of a)if(this.nsps[s].active){TL("socket %s is still active, skipping close",s);return}this._close()}_packet(r){TL("writing packet %j",r);let a=this.encoder.encode(r);for(let s=0;s<a.length;s++)this.engine.write(a[s],r.options)}cleanup(){TL("cleanup"),this.subs.forEach(r=>r()),this.subs.length=0,this.decoder.destroy()}_close(){TL("disconnect"),this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(r,a){var s;TL("closed due to %s",r),this.cleanup(),(s=this.engine)===null||s===void 0||s.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",r,a),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;let r=this;if(this.backoff.attempts>=this._reconnectionAttempts)TL("reconnect failed"),this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{let a=this.backoff.duration();TL("will wait %dms before reconnect attempt",a),this._reconnecting=!0;let s=this.setTimeoutFn(()=>{r.skipReconnect||(TL("attempting reconnect"),this.emitReserved("reconnect_attempt",r.backoff.attempts),!r.skipReconnect&&r.open(l=>{l?(TL("reconnect attempt error"),r._reconnecting=!1,r.reconnect(),this.emitReserved("reconnect_error",l)):(TL("reconnect success"),r.onreconnect())}))},a);this.opts.autoUnref&&s.unref(),this.subs.push(()=>{this.clearTimeoutFn(s)})}}onreconnect(){let r=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",r)}};e(pbr,"Manager");var KBe=pbr;var Asn=zd(Ret(),1);var xsn=(0,Asn.default)("socket.io-client"),jet={};function Uet(i,r){typeof i=="object"&&(r=i,i=void 0),r=r||{};let a=nsn(i,r.path||"/socket.io"),s=a.source,l=a.id,d=a.path,g=jet[l]&&d in jet[l].nsps,b=r.forceNew||r["force new connection"]||r.multiplex===!1||g,C;return b?(xsn("ignoring socket cache for %s",s),C=new KBe(s,r)):(jet[l]||(xsn("new io instance for %s",s),jet[l]=new KBe(s,r)),C=jet[l]),a.query&&!r.query&&(r.query=a.queryKey),C.socket(a.path,r)}e(Uet,"lookup");Object.assign(Uet,{Manager:KBe,Socket:GBe,io:Uet,connect:Uet});var Bwt={URL:"http://localhost:3000",NAMESPACE:"auto-recovery",RECONNECTION_ATTEMPTS:5,RECONNECTION_DELAY:1e3},fbr=class fbr{constructor(r={}){this.socket=null;this.connectionState="disconnected";this.connectionPromise=null;this.resolution=null;this.options=r,this.url=r.url||Bwt.URL,this.namespace=r.namespace||Bwt.NAMESPACE,this.initializationPromise=this.createInitializationPromise()}createInitializationPromise(){return new Promise((r,a)=>{this.resolveInitialization=s=>r(s),this.rejectInitialization=s=>a(s)}).then(r=>(this.resolution=r,this.log("\u2705 Client initialization successful"),r),r=>{throw this.resolution=r,this.logError("\u274C Client initialization failed:",r),r}).finally(()=>{this.disconnect()})}defineHandlers(r){return r}async startSession(r,a){try{return await this.connect(),this.emit(r,a,s=>{this.resolveInitialization(s)}),this.initializationPromise}catch(s){throw this.logError("\u274C Failed to start session:",s),this.rejectInitialization(s),s}}isConnected(){var r;return((r=this.socket)==null?void 0:r.connected)||!1}getConnectionState(){return this.connectionState}success(r){return{success:!0,data:r}}error(r){return{success:!1,error:r}}log(r,...a){this.options.verbose&&console.log(`[${this.namespace}] ${r}`,...a)}logError(r,...a){this.options.verbose&&console.error(`[${this.namespace}] ${r}`,...a)}async connect(){var r;if(this.connectionPromise)return this.connectionPromise;if(this.connectionState==="connected"&&((r=this.socket)!=null&&r.connected))return Promise.resolve();this.connectionState="connecting",this.connectionPromise=this.establishConnection();try{await this.connectionPromise,this.connectionState="connected"}catch(a){throw this.connectionState="disconnected",this.connectionPromise=null,a}return this.connectionPromise}establishConnection(){return new Promise((r,a)=>{let s=!1;try{let l=`${this.url}/${this.namespace}`;this.log(`\u{1F517} Connecting to socket at: ${l}`),this.socket=Uet(l,{autoConnect:!0,reconnection:!0,reconnectionAttempts:Bwt.RECONNECTION_ATTEMPTS,reconnectionDelay:Bwt.RECONNECTION_DELAY,...this.options.path&&{path:this.options.path}}),this.setupConnectionHandlers(r,a,s)}catch(l){this.logError("\u274C Failed to create socket connection:",l),s||a(l)}})}setupConnectionHandlers(r,a,s){if(!this.socket)return;let l={resolve:r,reject:a,connectionResolved:s};this.socket.on("connect",()=>this.handleConnect(l)),this.socket.on("reconnect",()=>this.handleReconnect()),this.socket.on("connect_error",d=>this.handleConnectError(d,l)),this.socket.on("disconnect",d=>this.handleDisconnect(d,l)),this.socket.io.on("reconnect_attempt",d=>this.handleReconnectAttempt(d)),this.socket.io.on("reconnect_error",d=>this.handleReconnectError(d)),this.socket.io.on("reconnect_failed",()=>this.handleReconnectFailed(l))}handleConnect(r){this.log("\u2705 Connected to socket"),this.connectionState="connected",this.setupEventHandlers(),r.connectionResolved||(r.connectionResolved=!0,r.resolve())}handleReconnect(){this.log("\u2705 Reconnected to socket"),this.connectionState="connected"}handleConnectError(r,a){var s;this.logError("\u274C Connection error:",r),this.connectionState="disconnected",!a.connectionResolved&&((s=this.socket)==null?void 0:s.disconnected)!==!1&&(a.connectionResolved=!0,a.reject(r))}handleDisconnect(r,a){this.log("\u{1F50C} Disconnected from socket:",r),this.connectionState="disconnected",this.resolution===null&&r==="io server disconnect"&&this.rejectInitialization(r),!a.connectionResolved&&(r==="io server disconnect"||r==="transport close")&&(a.connectionResolved=!0,a.reject(new Error(r)))}handleReconnectAttempt(r){this.log(`\u{1F504} Reconnection attempt #${r}`),this.connectionState="reconnecting"}handleReconnectError(r){this.logError("\u274C Reconnection attempt failed:",r)}handleReconnectFailed(r){this.logError("\u274C All reconnection attempts failed"),this.connectionState="disconnected",this.resolution===null&&this.rejectInitialization("All reconnection attempts failed"),r.connectionResolved||(r.connectionResolved=!0,r.reject(new Error("All reconnection attempts failed")))}setupEventHandlers(){if(!this.socket){this.logError("\u274C Cannot setup event handlers: socket is null");return}this.log("\u2705 Setting up event handlers"),this.socket.on("__call",this.handleGatewayCall.bind(this))}async handleGatewayCall(r,a){this.log(`\u{1F4E5} Gateway called method: ${r.key} with args:`,r.args);try{let s=this.validateGatewayCall(r);if(s){a(s);return}let l=this.handlers[r.key];if(!l){let g=`No handler registered for method: ${r.key}`;this.logError(`\u274C ${g}`),a(this.error(g));return}let d=await l(...r.args);a(this.success(d))}catch(s){this.logError("\u274C Error handling gateway call:",s),a(this.error(s.message||"Unknown error occurred"))}}validateGatewayCall(r){return r.key?Array.isArray(r.args)?null:(this.logError("\u274C Received call with invalid args"),this.error("Args must be an array")):(this.logError("\u274C Received call with undefined key"),this.error("Key is undefined"))}emit(r,a,s){if(!this.socket){this.logError("\u274C Cannot emit: socket is null");return}this.log(`\u{1F4E4} Emitting event: ${r}`),this.socket.emit(r,a,l=>{s(l)})}disconnect(){this.connectionState!=="shutting_down"&&(this.connectionState="shutting_down",this.log("\u{1F50C} Initiating disconnect"),this.socket&&(this.socket.disconnect(),this.socket=null),this.connectionPromise=null,this.connectionState="disconnected",this.log("\u2705 Disconnected successfully"))}};e(fbr,"AbstractClient");var Rwt=fbr;var bsn,Esn,Csn,Dsn,Ssn,wsn,Mwt=class Mwt extends(wsn=Rwt,Ssn=wL.names.getState,Dsn=wL.names.invokeCode,Csn=wL.names.final_result,Esn=wL.names.wait,bsn=wL.names.getElementScreenshot,wsn){constructor(a,s){super({verbose:i2.testRun.autoRecovery.verboseConsoleLog,url:s.config.apiURL,namespace:"auto-recovery",path:"/auto-recovery/socket.io"});this.utils=a;this.initData=s;this.stepsThoughts=[];this.handlers=this.defineHandlers({callLangChainTool:e(async(a,s)=>{if(!this[a])throw new Error(`Tool ${a} not found`);return s.thought&&this.stepsThoughts.push(s.thought),await this[a].invoke(s)},"callLangChainTool"),getStatus:e(async a=>({sessionId:a,status:"active",data:{message:"Status retrieved successfully"}}),"getStatus")});this[Ssn]=gbe.buildTool(wL,wL.names.getState,async a=>this.getStateHandler(a));this[Dsn]=gbe.buildTool(wL,wL.names.invokeCode,async a=>this.invokeCodeHandler(a));this[Csn]=gbe.buildTool(wL,wL.names.final_result,async a=>this.finalResultHandler(a));this[Esn]=gbe.buildTool(wL,wL.names.wait,async a=>this.waitHandler(a));this[bsn]=gbe.buildTool(wL,wL.names.getElementScreenshot,async a=>this.getElementScreenshotHandler(a))}async init(){let a={...this.initData,version:wL.version};return await this.startSession("initialize",a).catch(s=>{this.utils.analytics.ARError({error:s.message});let l="Auto-Recovery Failed";return this.utils.createChecksumStep({title:l,withError:!0}),{finalThought:l,stepsThoughts:[],result:"failed"}})}static async build(a){let s=await a.buildFallbackData();return new Mwt(a,s)}async invokeCodeHandler(a){let s;return await this.utils.runConditionallyWithinStep(!0,a.thought||"Invoke Code",async()=>{try{let l=await this.utils.invokeCode(a.code);this.utils.createChecksumStep({title:"Code Invoked Successfully"}),s={success:!0,invokeCodeResult:`invokeCodeResult: ${l}`,appState:(await this.utils.buildFallbackData()).applicationState}}catch(l){this.utils.createChecksumStep({title:"Error while invoking code",withError:!0}),s={success:!1,invokeCodeResult:`Error while invoking code: ${l}`,appState:(await this.utils.buildFallbackData()).applicationState}}}),s}async getStateHandler(a){return this.utils.createChecksumStep({title:a.thought}),this.utils.analytics.ARGetState(a.thought),{success:!0,appState:(await this.utils.buildFallbackData()).applicationState}}finalResultHandler(a){let s=a.result==="pass",l=this.initData.type==="assertion"?s?"soft_assertion":"hard_assertion":s?"finish":"failed";this.utils.analytics.ARFinalResult({finalThought:a.thought,result:l,stepsThoughts:this.stepsThoughts});let d={finalThought:a.thought,result:l,stepsThoughts:this.stepsThoughts};this.utils.addAutoRecoveryErrorToReport(a.thought,s),this.resolveInitialization(d)}async getElementScreenshotHandler(a){return{success:!0,screenshot:await this.utils.getScreenshotForElement(a.checksumId)}}async waitHandler(a){await new Promise(l=>setTimeout(l,a.time||5e3));let s=await this.utils.buildFallbackData();return{success:!0,waitResult:`waited for ${a.time} seconds, the current HTML of the application after the wait is: ${s.applicationState.reducedHTML}`}}};e(Mwt,"AutoRecoveryAgent");var Lwt=Mwt;var Tsn=require("fs"),ksn=zd(require("path"));var dbr=class dbr extends Fee{constructor(a,s){let l=Fee.getCurrentTestInfo();if(!l)throw new Error("TestRunAnalytics must be initialized with testInfo before FallbackAnalytics can be used");let d=Fee.getCurrentInstance();if(!d)throw new Error("TestRunAnalytics instance not found. Make sure TestRunAnalytics is initialized before creating FallbackAnalytics");let g=d.getTestSuiteRunInfo();super(g,Fee.isolatedMode,l);this.sessionId=null;this.fallbackId=a,this.fallbackType=s}updateToSessionId(a){this.sessionId!==a&&(this.sessionId=a,this.analytics&&this.analytics.alias({userId:a,previousId:this.fallbackId}))}get tableName(){return"auto_recovery"}get metadata(){return{...super.metadata,fallbackType:this.fallbackType,sessionId:this.sessionId||"unknown",fallbackId:this.fallbackId}}event(a){super.trackEventWithTable(a,this.metadata,this.tableName)}setFallbackType(a){this.fallbackType=a}ARStart(){this.event({event:"Auto-Recovery Start",metadata:this.metadata})}ARConfig(a){this.event({event:"Auto-Recovery Config",metadata:this.metadata,...a})}ARGetState(a){this.event({event:"Auto-Recovery State",metadata:this.metadata,thought:a})}ARInvokeCode(a,s){this.event({event:"Auto-Recovery Invoke Code",metadata:this.metadata,thought:a,code:s})}ARFinalResult(a){this.event({event:"Auto-Recovery Final Result",metadata:this.metadata,...a})}autoRecoveryDisconnect(a){this.event({event:"Auto-Recovery Disconnect",metadata:this.metadata,...a})}ARFinish(a){this.event({event:"Auto-Recovery Finish",metadata:this.metadata,...a})}ARError(a){this.event({event:"Auto-Recovery Error",metadata:this.metadata,...a})}};e(dbr,"AutoRecoveryAnalytics");var jwt=dbr;var QSe=class QSe{constructor({page:r,evaluateWithChecksum:a,checksumPage:s,pageInteractor:l,arConfig:d,sessionId:g,runtimeFallbackData:b,fallbackData:C,variableStore:S}){this.page=r,this.evaluateWithChecksum=a,this.checksumPage=s,this.pageInteractor=l,this.arConfig=d,this.sessionId=g,this.runtimeFallbackData=b,this.fallbackData=C,this.variableStore=S,this._analytics=new jwt(this.sessionId,C.type)}static async start(r){return new QSe({...r})}getMatcherResultFileData(r){let a=r.matcherResult;if((a==null?void 0:a.name)!=="toHaveScreenshot")return;let s=e((b,C=!0)=>{if(!b)return"";try{return(0,Tsn.readFileSync)(b,C?"base64":"utf-8")}catch{return""}},"readFileSafe"),l=s(a==null?void 0:a.actual),d=s(a==null?void 0:a.diff),g=s(a==null?void 0:a.expected);if(!g)throw new Error("No expected file found for 'toHaveScreenshot'");return{...a,actual:l,diff:d,expected:g}}async getSelectionDataForChecksumId(r){return await this.evaluateWithChecksum(async s=>{let{selector:l,locator:d,clickOffset:g,parentFramesSelectors:b,invalid:C,rrwebId:S}=await window.checksum.testGenerator.getSelectorForChecksumId(s),F=await window.checksum.testGenerator.getElementForChecksumId(s),R=F instanceof HTMLOptionElement&&F.value?F.value:void 0;return{selector:l,locator:d,clickOffset:g,selectOptionValue:R,parentFramesSelectors:b,invalid:C,rrwebId:S}},r)}async getReducedHtml(r=QSe.currentChecksumId){let{reducedHTML:a,currentChecksumId:s}=await this.pageInteractor.getCurrentReducedHTML({stopFlashingElementsDetection:!0,assignChecksumIdsToAllElements:!0,initialChecksumId:r});return QSe.currentChecksumId=s,{reducedHTML:a,currentChecksumId:s}}async getApplicationState(){let{reducedHTML:r}=await this.getReducedHtml();return{reducedHTML:r,screenshot:await this.getPageScreenshot()}}async buildFallbackData(){let{reducedHTML:r,currentChecksumId:a}=await this.getReducedHtml();return{storyInfo:this.runtimeFallbackData.storyInfo,testIdentification:this.runtimeFallbackData.testIdentification,fallbackConfig:this.runtimeFallbackData.fallbackConfig,thoughts:this.runtimeFallbackData.thoughts,errorData:{error:{name:this.fallbackData.error.name,message:this.fallbackData.error.message,stack:this.fallbackData.error.stack},errorFileContent:await this.getErrorFileContent(this.fallbackData.error)},applicationState:{reducedHTML:r,screenshot:await this.getPageScreenshot()},stepData:{matcher:this.getMatcherResultFileData(this.fallbackData.error)},currentChecksumId:a,failingStepThought:this.runtimeFallbackData.thoughts.failing,type:this.fallbackData.type,config:this.runtimeFallbackData.config,sessionId:this.runtimeFallbackData.testIdentification.testId,variableStore:this.variableStore.reduce((s,l)=>(s[`variablesStore.${l.name}`]=l.value,s),{}),arConfig:this.arConfig}}async scrollToElement(r){r&&await this.pageInteractor.scrollElementIntoViewByChecksumId(r)}async getPageScreenshot(r=this.arConfig){try{return this.checksumPage.wrapInternalSteps(async()=>{var s;return(await this.page.screenshot({fullPage:!0,type:((s=r.modelConfig)==null?void 0:s.provider)==="anthropic"?"jpeg":"png"})).toString("base64")})}catch{return}}async getErrorFileContent(r){try{let a=ksn.default.dirname(this.runtimeFallbackData.testIdentification.testFileName);return iNe.toRecord(r,a)}catch{throw new Error("Error while getting error file content for AI fallback")}}async wait(){await this.page.waitForTimeout(5e3)}async preprocessCode(r){var q;let a=r,s=r,l=[],d=r.match(/getByChecksumId\([^)]+\)\.([a-zA-Z]+)\(([^)]*)\)/),g=d==null?void 0:d[1],b=d==null?void 0:d[2],C=/(?:page\.)?getByChecksumId\(['"]([^'"]+)['"]\)/,S=(q=r.match(C))==null?void 0:q[1];if(!S)throw new Error("Checksum ID not found in the code");let F=await this.getSelectionDataForChecksumId(S);if(!(F!=null&&F.locator)||F.invalid)throw new Error(`Locator or selector not found for checksumId: ${S}`);s=s.replace(C,F.locator);let R=/variables?Store\.([a-zA-Z_$][a-zA-Z0-9_$]*)/g,N=null;for(;(N=R.exec(r))!==null;){let Q=N[1],z=this.variableStore.find(se=>se.name===Q);z&&(l.push(z),s=s.replace(N[0],`"${z.value}"`))}return{originalCode:a,modifiedCode:s,usedVariables:l,checksumId:S,locator:F.locator,method:g,methodArgs:b}}async invokeCode(r){try{let a=await this.preprocessCode(r),{modifiedCode:s}=a,l=new Function("page",`return (async () => { return page.${s}; })()`),d;return await this.step(s,async()=>d=await l(this.page),!1,{box:!0,noLocation:!0,obtainStep:e(g=>{this.checksumPage.addAutoRecoveryStepId(g.stepId)},"obtainStep")}),{success:!0,result:d}}catch(a){throw console.log("Error while invoking code",a.message),a}}addAutoRecoveryErrorToReport(r,a){let s=this.runtimeFallbackData.thoughts.failing,l=a?`\u2705 "${s}" auto-recovered`:`\u274C "${s}" failed`;this.checksumPage.addPwAnnotation({type:l,description:r.replace(/^"(.*)"$/,"$1")}),a&&this.checksumPage.addErrorMessage(this.fallbackData.error,`${l}:
|
|
1595
|
+
`)}catch{s&&console.log(...a)}}shouldLog(r){switch(r){case"warning":return this.logLevel==="all"||this.logLevel==="warnings";case"error":return!0;case"info":return this.logLevel==="all"}}addListener(r){this.listeners.push(r)}info(...r){this.log("info",...r)}warning(...r){this.log("warning",...r)}error(...r){this.log("error",...r)}setLogLevel(r){this.logLevel=r}setLogStream(r){this.logStream=r}};e(Qdr,"Logger");var Udr=Qdr,gDe=new Udr,rei=Object.assign((...i)=>gDe.info(...i),{info:e((...i)=>gDe.info(...i),"info"),warning:e((...i)=>gDe.warning(...i),"warning"),error:e((...i)=>gDe.error(...i),"error"),setLogLevel:e(i=>gDe.setLogLevel(i),"setLogLevel"),setLogStream:e(i=>gDe.setLogStream(i),"setLogStream"),addLogListener:e(i=>gDe.addListener(i),"addLogListener")}),JA=rei;var EYr=zd(bYr());var _0i=require("@playwright/test");var m0i=zd(bEt());var wgr=class wgr{constructor(r){this.options=r}async handleError(r,a,s){let l=`Error in ${a} action during ${r} execution: ${s.message}`;throw new Error(l)}async guardedExecute(){try{return await(this.options.timeout!=null?C8(this.execute(),this.options.timeout,"Execution timeout"):this.execute())}catch(r){return this.handleError(this.options.method,this.constructor.name,r)}}};e(wgr,"Action");var z3t=wgr,Tgr=class Tgr extends z3t{async execute(){return this.options.method in this.options.locator?this.options.locator[this.options.method](...this.options.args):this.options.locator}};e(Tgr,"PlaywrightAction");var Egr=Tgr,kgr=class kgr extends z3t{constructor(a,s){super(a);this.pageInteractor=s}};e(kgr,"APIAction");var Cgr=kgr,Igr=class Igr extends Cgr{constructor(r,a){super(r,a.pageInteractor)}async execute(){try{let{locator:r,args:a}=this.options,[s,l]=a,d=await r.screenshot({timeout:3e4}),b=(await this.pageInteractor.getTextDetection(d)).getRectangleByTextAndSizeRanking(s,l);if(!b)throw new Error("No matching text found");await r.click({position:b.center})}catch(r){throw new Error(`Error in canvas click action: ${r.message}`)}}};e(Igr,"CanvasClickAction");var Dgr=Igr,W3t=class W3t{static createAction(r,a){return r.method in this.customActionMap?new this.customActionMap[r.method]({...r,timeout:15e3},a):new Egr(r)}};e(W3t,"ActionFactory"),W3t.customActionMap={canvasClick:Dgr};var Sgr=W3t;pin();Hee();var Phe=class Phe{constructor(){this.toolsMap={}}get addTool(){return this._addTool||(this._addTool=this.buildAddToolFacade()),this._addTool}getToolNames(){return Object.keys(this.toolRecord.names)}get tools(){return this.toolsMap}buildAddToolFacade(){let r={},a=this.toolRecord.tools;for(let s of Object.keys(a))r[s]=l=>this._addSingleTool(s,l);return r}static describeTool(r,a){if(r instanceof W1.ZodObject){let s={},l=r.shape;for(let d of Object.keys(l)){let g=l[d],b=a==null?void 0:a[d];typeof b=="string"?s[d]=g.describe(b):b&&typeof b=="object"?s[d]=Phe.describeTool(g,b):s[d]=g}return W1.object(s).strict()}if(r instanceof W1.ZodArray){let s=r.element;return a&&typeof a=="object"&&a.element?W1.array(Phe.describeTool(s,a.element)):r}return r instanceof W1.ZodOptional?Phe.describeTool(r.unwrap(),a).optional():r instanceof W1.ZodNullable?Phe.describeTool(r.unwrap(),a).nullable():typeof a=="string"?r.describe(a):r}_addSingleTool(r,a){let s=a.name??String(r),d=this.toolRecord.tools[r]._create({...a,name:s,params:a.params,handler:a.handler}),g=this.toolRecord.tools[r],b=Phe.describeTool(g,a.params),S=zxr(e(async F=>{let R=b.parse(F);return a.handler(R)},"validatedHandler"),{name:d.name,description:d.description,schema:b});return this.toolsMap[r]=S,S}_buildOne(r,a){return this._addSingleTool(r,{...a,name:String(r)})}static buildTool(r,a,s){let l=String(a),g=r.tools[a]._create({name:l,description:"",handler:s,params:{}}),b=r.tools[a],C=Phe.describeTool(b,{});return zxr(e(async R=>{let N=C.parse(R);return s(N)},"validatedHandler"),{name:g.name,description:g.description,schema:C})}};e(Phe,"AbstractToolContainer");var gbe=Phe;Hee();var rwt=class rwt{constructor(r,a){this.version=r;let s={};for(let d in a)s[d]=d;this.names=s;let l={};for(let d in a){let g=a[d];Object.defineProperty(g,"name",{value:d,configurable:!1,enumerable:!0,writable:!1}),g._create=(b=>C=>{let S=C.name??b;return{...C,name:S}})(d),l[d]=g}this.tools=l}static create(r,a){return new rwt(r,a)}};e(rwt,"ToolProtocol");var twt=rwt;var wL=twt.create("v1",{readFile:W1.object({path:W1.string()}),getState:W1.object({thought:W1.string()}),invokeCode:W1.object({code:W1.string().refine(i=>{let r=i.trim();return r.includes("page.getByChecksumId(")||r.includes("page.getByChecksumId(")||r.startsWith("const ")||r.startsWith("let ")||r.startsWith("var ")||r.includes("=")||r.includes("variableStore.")},{message:"Code should use page.getByChecksumId() for element targeting, or be explicit variable assignments/function calls"}),thought:W1.string()}),wait:W1.object({time:W1.number().optional()}),scroll:W1.object({checksumId:W1.string(),thought:W1.string()}),final_result:W1.object({result:W1.enum(["pass","fail"]),thought:W1.string(),visualAnalysis:W1.string().optional()}),getElementScreenshot:W1.object({checksumId:W1.string(),thought:W1.string()}),analyze:W1.object({previousImmediateSteps:W1.string(),currentFailingStep:W1.string(),nextImmediateSteps:W1.string(),testStepToStopAt:W1.string()}),think:W1.object({thought:W1.string()})});var fAr=zd(_in(),1);var Xae=Object.create(null);Xae.open="0";Xae.close="1";Xae.ping="2";Xae.pong="3";Xae.message="4";Xae.upgrade="5";Xae.noop="6";var get=Object.create(null);Object.keys(Xae).forEach(i=>{get[Xae[i]]=i});var yet={type:"error",data:"parser error"};var vet=e(({type:i,data:r},a,s)=>r instanceof ArrayBuffer||ArrayBuffer.isView(r)?s(a?r:"b"+min(r,!0).toString("base64")):s(Xae[i]+(r||"")),"encodePacket"),min=e((i,r)=>Buffer.isBuffer(i)||i instanceof Uint8Array&&!r?i:i instanceof ArrayBuffer?Buffer.from(i):Buffer.from(i.buffer,i.byteOffset,i.byteLength),"toBuffer"),Xxr;function hin(i,r){if(i.data instanceof ArrayBuffer||ArrayBuffer.isView(i.data))return r(min(i.data,!1));vet(i,!0,a=>{Xxr||(Xxr=new TextEncoder),r(Xxr.encode(a))})}e(hin,"encodePacketToBinary");var xet=e((i,r)=>{if(typeof i!="string")return{type:"message",data:gin(i,r)};let a=i.charAt(0);if(a==="b"){let s=Buffer.from(i.substring(1),"base64");return{type:"message",data:gin(s,r)}}return get[a]?i.length>1?{type:get[a],data:i.substring(1)}:{type:get[a]}:yet},"decodePacket"),gin=e((i,r)=>{switch(r){case"arraybuffer":return i instanceof ArrayBuffer?i:Buffer.isBuffer(i)?i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength):i.buffer;case"nodebuffer":default:return Buffer.isBuffer(i)?i:Buffer.from(i)}},"mapBinary");var yin="",vin=e((i,r)=>{let a=i.length,s=new Array(a),l=0;i.forEach((d,g)=>{vet(d,!1,b=>{s[g]=b,++l===a&&r(s.join(yin))})})},"encodePayload"),xin=e((i,r)=>{let a=i.split(yin),s=[];for(let l=0;l<a.length;l++){let d=xet(a[l],r);if(s.push(d),d.type==="error")break}return s},"decodePayload");function Ain(){return new TransformStream({transform(i,r){hin(i,a=>{let s=a.length,l;if(s<126)l=new Uint8Array(1),new DataView(l.buffer).setUint8(0,s);else if(s<65536){l=new Uint8Array(3);let d=new DataView(l.buffer);d.setUint8(0,126),d.setUint16(1,s)}else{l=new Uint8Array(9);let d=new DataView(l.buffer);d.setUint8(0,127),d.setBigUint64(1,BigInt(s))}i.data&&typeof i.data!="string"&&(l[0]|=128),r.enqueue(l),r.enqueue(a)})}})}e(Ain,"createPacketEncoderStream");var Zxr;function nwt(i){return i.reduce((r,a)=>r+a.length,0)}e(nwt,"totalLength");function iwt(i,r){if(i[0].length===r)return i.shift();let a=new Uint8Array(r),s=0;for(let l=0;l<r;l++)a[l]=i[0][s++],s===i[0].length&&(i.shift(),s=0);return i.length&&s<i[0].length&&(i[0]=i[0].slice(s)),a}e(iwt,"concatChunks");function bin(i,r){Zxr||(Zxr=new TextDecoder);let a=[],s=0,l=-1,d=!1;return new TransformStream({transform(g,b){for(a.push(g);;){if(s===0){if(nwt(a)<1)break;let C=iwt(a,1);d=(C[0]&128)===128,l=C[0]&127,l<126?s=3:l===126?s=1:s=2}else if(s===1){if(nwt(a)<2)break;let C=iwt(a,2);l=new DataView(C.buffer,C.byteOffset,C.length).getUint16(0),s=3}else if(s===2){if(nwt(a)<8)break;let C=iwt(a,8),S=new DataView(C.buffer,C.byteOffset,C.length),F=S.getUint32(0);if(F>Math.pow(2,21)-1){b.enqueue(yet);break}l=F*Math.pow(2,32)+S.getUint32(4),s=3}else{if(nwt(a)<l)break;let C=iwt(a,l);b.enqueue(xet(d?C:Zxr.decode(C),r)),s=0}if(l===0||l>i){b.enqueue(yet);break}}}})}e(bin,"createPacketDecoderStream");var eAr=4;var Min=zd(PSe(),1);var Nhe=process.nextTick,a$=global,Cin="nodebuffer";function Din(){return new tAr}e(Din,"createCookieJar");function Dyi(i){let r=i.split("; "),a=r[0].indexOf("=");if(a===-1)return;let s=r[0].substring(0,a).trim();if(!s.length)return;let l=r[0].substring(a+1).trim();l.charCodeAt(0)===34&&(l=l.slice(1,-1));let d={name:s,value:l};for(let g=1;g<r.length;g++){let b=r[g].split("=");if(b.length!==2)continue;let C=b[0].trim(),S=b[1].trim();switch(C){case"Expires":d.expires=new Date(S);break;case"Max-Age":let F=new Date;F.setUTCSeconds(F.getUTCSeconds()+parseInt(S,10)),d.expires=F;break;default:}}return d}e(Dyi,"parse");var rAr=class rAr{constructor(){this._cookies=new Map}parseCookies(r){r&&r.forEach(a=>{let s=Dyi(a);s&&this._cookies.set(s.name,s)})}get cookies(){let r=Date.now();return this._cookies.forEach((a,s)=>{var l;((l=a.expires)===null||l===void 0?void 0:l.getTime())<r&&this._cookies.delete(s)}),this._cookies.entries()}addCookies(r){let a=[];for(let[s,l]of this.cookies)a.push(`${s}=${l.value}`);a.length&&(r.setDisableHeaderCheck(!0),r.setRequestHeader("cookie",a.join("; ")))}appendCookies(r){for(let[a,s]of this.cookies)r.append("cookie",`${a}=${s.value}`)}};e(rAr,"CookieJar");var tAr=rAr;function awt(i,...r){return r.reduce((a,s)=>(i.hasOwnProperty(s)&&(a[s]=i[s]),a),{})}e(awt,"pick");var Syi=a$.setTimeout,wyi=a$.clearTimeout;function Ohe(i,r){r.useNativeTimers?(i.setTimeoutFn=Syi.bind(a$),i.clearTimeoutFn=wyi.bind(a$)):(i.setTimeoutFn=a$.setTimeout.bind(a$),i.clearTimeoutFn=a$.clearTimeout.bind(a$))}e(Ohe,"installTimerFunctions");var Tyi=1.33;function Sin(i){return typeof i=="string"?kyi(i):Math.ceil((i.byteLength||i.size)*Tyi)}e(Sin,"byteLength");function kyi(i){let r=0,a=0;for(let s=0,l=i.length;s<l;s++)r=i.charCodeAt(s),r<128?a+=1:r<2048?a+=2:r<55296||r>=57344?a+=3:(s++,a+=4);return a}e(kyi,"utf8Length");function swt(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}e(swt,"randomString");function win(i){let r="";for(let a in i)i.hasOwnProperty(a)&&(r.length&&(r+="&"),r+=encodeURIComponent(a)+"="+encodeURIComponent(i[a]));return r}e(win,"encode");function Tin(i){let r={},a=i.split("&");for(let s=0,l=a.length;s<l;s++){let d=a[s].split("=");r[decodeURIComponent(d[0])]=decodeURIComponent(d[1])}return r}e(Tin,"decode");var jin=zd(OSe(),1);var Xyi=(0,jin.default)("engine.io-client:transport"),oAr=class oAr extends Error{constructor(r,a,s){super(r),this.description=a,this.context=s,this.type="TransportError"}};e(oAr,"TransportError");var pwt=oAr,uAr=class uAr extends Min.Emitter{constructor(r){super(),this.writable=!1,Ohe(this,r),this.opts=r,this.query=r.query,this.socket=r.socket,this.supportsBinary=!r.forceBase64}onError(r,a,s){return super.emitReserved("error",new pwt(r,a,s)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return(this.readyState==="opening"||this.readyState==="open")&&(this.doClose(),this.onClose()),this}send(r){this.readyState==="open"?this.write(r):Xyi("transport is not open, discarding packets")}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(r){let a=xet(r,this.socket.binaryType);this.onPacket(a)}onPacket(r){super.emitReserved("packet",r)}onClose(r){this.readyState="closed",super.emitReserved("close",r)}pause(r){}createUri(r,a={}){return r+"://"+this._hostname()+this._port()+this.opts.path+this._query(a)}_hostname(){let r=this.opts.hostname;return r.indexOf(":")===-1?r:"["+r+"]"}_port(){return this.opts.port&&(this.opts.secure&&+(this.opts.port!==443)||!this.opts.secure&&Number(this.opts.port)!==80)?":"+this.opts.port:""}_query(r){let a=win(r);return a.length?"?"+a:""}};e(uAr,"Transport");var Bhe=uAr;var Uin=zd(OSe(),1);var Zae=(0,Uin.default)("engine.io-client:polling"),cAr=class cAr extends Bhe{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(r){this.readyState="pausing";let a=e(()=>{Zae("paused"),this.readyState="paused",r()},"pause");if(this._polling||!this.writable){let s=0;this._polling&&(Zae("we are currently polling - waiting to pause"),s++,this.once("pollComplete",function(){Zae("pre-pause polling complete"),--s||a()})),this.writable||(Zae("we are currently writing - waiting to pause"),s++,this.once("drain",function(){Zae("pre-pause writing complete"),--s||a()}))}else a()}_poll(){Zae("polling"),this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(r){Zae("polling got data %s",r);let a=e(s=>{if(this.readyState==="opening"&&s.type==="open"&&this.onOpen(),s.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(s)},"callback");xin(r,this.socket.binaryType).forEach(a),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"?this._poll():Zae('ignoring poll - transport state "%s"',this.readyState))}doClose(){let r=e(()=>{Zae("writing close packet"),this.write([{type:"close"}])},"close");this.readyState==="open"?(Zae("transport open - closing"),r()):(Zae("transport not open - deferring close"),this.once("open",r))}write(r){this.writable=!1,vin(r,a=>{this.doWrite(a,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){let r=this.opts.secure?"https":"http",a=this.query||{};return this.opts.timestampRequests!==!1&&(a[this.opts.timestampParam]=swt()),!this.supportsBinary&&!a.sid&&(a.b64=1),this.createUri(r,a)}};e(cAr,"Polling");var bet=cAr;var Vin=zd(PSe(),1);var Qin=!1;try{Qin=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}var qin=Qin;var Jin=zd(OSe(),1);var lAr=(0,Jin.default)("engine.io-client:polling");function Zyi(){}e(Zyi,"empty");var pAr=class pAr extends bet{constructor(r){if(super(r),typeof location<"u"){let a=location.protocol==="https:",s=location.port;s||(s=a?"443":"80"),this.xd=typeof location<"u"&&r.hostname!==location.hostname||s!==r.port}}doWrite(r,a){let s=this.request({method:"POST",data:r});s.on("success",a),s.on("error",(l,d)=>{this.onError("xhr post error",l,d)})}doPoll(){lAr("xhr poll");let r=this.request();r.on("data",this.onData.bind(this)),r.on("error",(a,s)=>{this.onError("xhr poll error",a,s)}),this.pollXhr=r}};e(pAr,"BaseXHR");var fwt=pAr,MBe=class MBe extends Vin.Emitter{constructor(r,a,s){super(),this.createRequest=r,Ohe(this,s),this._opts=s,this._method=s.method||"GET",this._uri=a,this._data=s.data!==void 0?s.data:null,this._create()}_create(){var r;let a=awt(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");a.xdomain=!!this._opts.xd;let s=this._xhr=this.createRequest(a);try{lAr("xhr open %s: %s",this._method,this._uri),s.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){s.setDisableHeaderCheck&&s.setDisableHeaderCheck(!0);for(let l in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(l)&&s.setRequestHeader(l,this._opts.extraHeaders[l])}}catch{}if(this._method==="POST")try{s.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{s.setRequestHeader("Accept","*/*")}catch{}(r=this._opts.cookieJar)===null||r===void 0||r.addCookies(s),"withCredentials"in s&&(s.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(s.timeout=this._opts.requestTimeout),s.onreadystatechange=()=>{var l;s.readyState===3&&((l=this._opts.cookieJar)===null||l===void 0||l.parseCookies(s.getResponseHeader("set-cookie"))),s.readyState===4&&(s.status===200||s.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof s.status=="number"?s.status:0)},0))},lAr("xhr data %s",this._data),s.send(this._data)}catch(l){this.setTimeoutFn(()=>{this._onError(l)},0);return}typeof document<"u"&&(this._index=MBe.requestsCount++,MBe.requests[this._index]=this)}_onError(r){this.emitReserved("error",r,this._xhr),this._cleanup(!0)}_cleanup(r){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=Zyi,r)try{this._xhr.abort()}catch{}typeof document<"u"&&delete MBe.requests[this._index],this._xhr=null}}_onLoad(){let r=this._xhr.responseText;r!==null&&(this.emitReserved("data",r),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}};e(MBe,"Request");var Rhe=MBe;Rhe.requestsCount=0;Rhe.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",$in);else if(typeof addEventListener=="function"){let i="onpagehide"in a$?"pagehide":"unload";addEventListener(i,$in,!1)}}function $in(){for(let i in Rhe.requests)Rhe.requests.hasOwnProperty(i)&&Rhe.requests[i].abort()}e($in,"unloadHandler");var n1a=function(){let i=e2i({xdomain:!1});return i&&i.responseType!==null}();function e2i(i){let r=i.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!r||qin))return new XMLHttpRequest}catch{}if(!r)try{return new a$[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}e(e2i,"newRequest");var t2i=fAr.default||fAr,dAr=class dAr extends fwt{request(r={}){var a;return Object.assign(r,{xd:this.xd,cookieJar:(a=this.socket)===null||a===void 0?void 0:a._cookieJar},this.opts),new Rhe(s=>new t2i(s),this.uri(),r)}};e(dAr,"XHR");var jBe=dAr;var pvi=zd(Gin(),1),fvi=zd(wAr(),1),dvi=zd(kAr(),1),$Ar=zd(UAr(),1),_vi=zd(zan(),1);var Wan=zd(OSe(),1);var hvi=(0,Wan.default)("engine.io-client:websocket"),gvi=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative",VAr=class VAr extends Bhe{get name(){return"websocket"}doOpen(){let r=this.uri(),a=this.opts.protocols,s=gvi?{}:awt(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(s.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(r,a,s)}catch(l){return this.emitReserved("error",l)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=r=>this.onClose({description:"websocket connection closed",context:r}),this.ws.onmessage=r=>this.onData(r.data),this.ws.onerror=r=>this.onError("websocket error",r)}write(r){this.writable=!1;for(let a=0;a<r.length;a++){let s=r[a],l=a===r.length-1;vet(s,this.supportsBinary,d=>{try{this.doWrite(s,d)}catch{hvi("websocket closed before onclose event")}l&&Nhe(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){let r=this.opts.secure?"wss":"ws",a=this.query||{};return this.opts.timestampRequests&&(a[this.opts.timestampParam]=swt()),this.supportsBinary||(a.b64=1),this.createUri(r,a)}};e(VAr,"BaseWS");var Swt=VAr,$1a=a$.WebSocket||a$.MozWebSocket;var JAr=class JAr extends Swt{createSocket(r,a,s){var l;if(!((l=this.socket)===null||l===void 0)&&l._cookieJar){s.headers=s.headers||{},s.headers.cookie=typeof s.headers.cookie=="string"?[s.headers.cookie]:s.headers.cookie||[];for(let[d,g]of this.socket._cookieJar.cookies)s.headers.cookie.push(`${d}=${g.value}`)}return new $Ar.default(r,a,s)}doWrite(r,a){let s={};r.options&&(s.compress=r.options.compress),this.opts.perMessageDeflate&&(typeof a=="string"?Buffer.byteLength(a):a.length)<this.opts.perMessageDeflate.threshold&&(s.compress=!1),this.ws.send(a,s)}};e(JAr,"WS");var VBe=JAr;var Han=zd(OSe(),1);var Oet=(0,Han.default)("engine.io-client:webtransport"),zAr=class zAr extends Bhe{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(r){return this.emitReserved("error",r)}this._transport.closed.then(()=>{Oet("transport closed gracefully"),this.onClose()}).catch(r=>{Oet("transport closed due to %s",r),this.onError("webtransport error",r)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(r=>{let a=bin(Number.MAX_SAFE_INTEGER,this.socket.binaryType),s=r.readable.pipeThrough(a).getReader(),l=Ain();l.readable.pipeTo(r.writable),this._writer=l.writable.getWriter();let d=e(()=>{s.read().then(({done:b,value:C})=>{if(b){Oet("session is closed");return}Oet("received chunk: %o",C),this.onPacket(C),d()}).catch(b=>{Oet("an error occurred while reading: %s",b)})},"read");d();let g={type:"open"};this.query.sid&&(g.data=`{"sid":"${this.query.sid}"}`),this._writer.write(g).then(()=>this.onOpen())})})}write(r){this.writable=!1;for(let a=0;a<r.length;a++){let s=r[a],l=a===r.length-1;this._writer.write(s).then(()=>{l&&Nhe(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var r;(r=this._transport)===null||r===void 0||r.close()}};e(zAr,"WT");var JBe=zAr;var WAr={websocket:VBe,webtransport:JBe,polling:jBe};var yvi=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,vvi=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function zBe(i){if(i.length>8e3)throw"URI too long";let r=i,a=i.indexOf("["),s=i.indexOf("]");a!=-1&&s!=-1&&(i=i.substring(0,a)+i.substring(a,s).replace(/:/g,";")+i.substring(s,i.length));let l=yvi.exec(i||""),d={},g=14;for(;g--;)d[vvi[g]]=l[g]||"";return a!=-1&&s!=-1&&(d.source=r,d.host=d.host.substring(1,d.host.length-1).replace(/;/g,":"),d.authority=d.authority.replace("[","").replace("]","").replace(/;/g,":"),d.ipv6uri=!0),d.pathNames=xvi(d,d.path),d.queryKey=Avi(d,d.query),d}e(zBe,"parse");function xvi(i,r){let a=/\/{2,9}/g,s=r.replace(a,"/").split("/");return(r.slice(0,1)=="/"||r.length===0)&&s.splice(0,1),r.slice(-1)=="/"&&s.splice(s.length-1,1),s}e(xvi,"pathNames");function Avi(i,r){let a={};return r.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(s,l,d){l&&(a[l]=d)}),a}e(Avi,"queryKey");var Gan=zd(PSe(),1);var Kan=zd(OSe(),1);var k3=(0,Kan.default)("engine.io-client:socket"),HAr=typeof addEventListener=="function"&&typeof removeEventListener=="function",Bet=[];HAr&&addEventListener("offline",()=>{k3("closing %d connection(s) because the network was lost",Bet.length),Bet.forEach(i=>i())},!1);var WBe=class WBe extends Gan.Emitter{constructor(r,a){if(super(),this.binaryType=Cin,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,r&&typeof r=="object"&&(a=r,r=null),r){let s=zBe(r);a.hostname=s.host,a.secure=s.protocol==="https"||s.protocol==="wss",a.port=s.port,s.query&&(a.query=s.query)}else a.host&&(a.hostname=zBe(a.host).host);Ohe(this,a),this.secure=a.secure!=null?a.secure:typeof location<"u"&&location.protocol==="https:",a.hostname&&!a.port&&(a.port=this.secure?"443":"80"),this.hostname=a.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=a.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},a.transports.forEach(s=>{let l=s.prototype.name;this.transports.push(l),this._transportsByName[l]=s}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},a),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=Tin(this.opts.query)),HAr&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(k3("adding listener for the 'offline' event"),this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},Bet.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=Din()),this._open()}createTransport(r){k3('creating transport "%s"',r);let a=Object.assign({},this.opts.query);a.EIO=eAr,a.transport=r,this.id&&(a.sid=this.id);let s=Object.assign({},this.opts,{query:a,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[r]);return k3("options: %j",s),new this._transportsByName[r](s)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}let r=this.opts.rememberUpgrade&&WBe.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";let a=this.createTransport(r);a.open(),this.setTransport(a)}setTransport(r){k3("setting transport %s",r.name),this.transport&&(k3("clearing existing transport %s",this.transport.name),this.transport.removeAllListeners()),this.transport=r,r.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",a=>this._onClose("transport close",a))}onOpen(){k3("socket open"),this.readyState="open",WBe.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(r){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(k3('socket receive: type "%s", data "%s"',r.type,r.data),this.emitReserved("packet",r),this.emitReserved("heartbeat"),r.type){case"open":this.onHandshake(JSON.parse(r.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":let a=new Error("server error");a.code=r.data,this._onError(a);break;case"message":this.emitReserved("data",r.data),this.emitReserved("message",r.data);break}else k3('packet received with socket readyState "%s"',this.readyState)}onHandshake(r){this.emitReserved("handshake",r),this.id=r.sid,this.transport.query.sid=r.sid,this._pingInterval=r.pingInterval,this._pingTimeout=r.pingTimeout,this._maxPayload=r.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);let r=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+r,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},r),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){let r=this._getWritablePackets();k3("flushing %d packets in socket",r.length),this.transport.send(r),this._prevBufferLen=r.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let a=1;for(let s=0;s<this.writeBuffer.length;s++){let l=this.writeBuffer[s].data;if(l&&(a+=Sin(l)),s>0&&a>this._maxPayload)return k3("only send %d out of %d packets",s,this.writeBuffer.length),this.writeBuffer.slice(0,s);a+=2}return k3("payload size is %d (max: %d)",a,this._maxPayload),this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;let r=Date.now()>this._pingTimeoutTime;return r&&(k3("throttled timer detected, scheduling connection close"),this._pingTimeoutTime=0,Nhe(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),r}write(r,a,s){return this._sendPacket("message",r,a,s),this}send(r,a,s){return this._sendPacket("message",r,a,s),this}_sendPacket(r,a,s,l){if(typeof a=="function"&&(l=a,a=void 0),typeof s=="function"&&(l=s,s=null),this.readyState==="closing"||this.readyState==="closed")return;s=s||{},s.compress=s.compress!==!1;let d={type:r,data:a,options:s};this.emitReserved("packetCreate",d),this.writeBuffer.push(d),l&&this.once("flush",l),this.flush()}close(){let r=e(()=>{this._onClose("forced close"),k3("socket closing - telling transport to close"),this.transport.close()},"close"),a=e(()=>{this.off("upgrade",a),this.off("upgradeError",a),r()},"cleanupAndClose"),s=e(()=>{this.once("upgrade",a),this.once("upgradeError",a)},"waitForUpgrade");return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?s():r()}):this.upgrading?s():r()),this}_onError(r){if(k3("socket error %j",r),WBe.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return k3("trying next transport"),this.transports.shift(),this._open();this.emitReserved("error",r),this._onClose("transport error",r)}_onClose(r,a){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(k3('socket close with reason: "%s"',r),this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),HAr&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){let s=Bet.indexOf(this._offlineEventListener);s!==-1&&(k3("removing listener for the 'offline' event"),Bet.splice(s,1))}this.readyState="closed",this.id=null,this.emitReserved("close",r,a),this.writeBuffer=[],this._prevBufferLen=0}}};e(WBe,"SocketWithoutUpgrade");var jSe=WBe;jSe.protocol=eAr;var GAr=class GAr extends jSe{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade){k3("starting upgrade probes");for(let r=0;r<this._upgrades.length;r++)this._probe(this._upgrades[r])}}_probe(r){k3('probing transport "%s"',r);let a=this.createTransport(r),s=!1;jSe.priorWebsocketSuccess=!1;let l=e(()=>{s||(k3('probe transport "%s" opened',r),a.send([{type:"ping",data:"probe"}]),a.once("packet",R=>{if(!s)if(R.type==="pong"&&R.data==="probe"){if(k3('probe transport "%s" pong',r),this.upgrading=!0,this.emitReserved("upgrading",a),!a)return;jSe.priorWebsocketSuccess=a.name==="websocket",k3('pausing current transport "%s"',this.transport.name),this.transport.pause(()=>{s||this.readyState!=="closed"&&(k3("changing transport and sending upgrade packet"),F(),this.setTransport(a),a.send([{type:"upgrade"}]),this.emitReserved("upgrade",a),a=null,this.upgrading=!1,this.flush())})}else{k3('probe transport "%s" failed',r);let N=new Error("probe error");N.transport=a.name,this.emitReserved("upgradeError",N)}}))},"onTransportOpen");function d(){s||(s=!0,F(),a.close(),a=null)}e(d,"freezeTransport");let g=e(R=>{let N=new Error("probe error: "+R);N.transport=a.name,d(),k3('probe transport "%s" failed because of error: %s',r,R),this.emitReserved("upgradeError",N)},"onerror");function b(){g("transport closed")}e(b,"onTransportClose");function C(){g("socket closed")}e(C,"onclose");function S(R){a&&R.name!==a.name&&(k3('"%s" works - aborting "%s"',R.name,a.name),d())}e(S,"onupgrade");let F=e(()=>{a.removeListener("open",l),a.removeListener("error",g),a.removeListener("close",b),this.off("close",C),this.off("upgrading",S)},"cleanup");a.once("open",l),a.once("error",g),a.once("close",b),this.once("close",C),this.once("upgrading",S),this._upgrades.indexOf("webtransport")!==-1&&r!=="webtransport"?this.setTimeoutFn(()=>{s||a.open()},200):a.open()}onHandshake(r){this._upgrades=this._filterUpgrades(r.upgrades),super.onHandshake(r)}_filterUpgrades(r){let a=[];for(let s=0;s<r.length;s++)~this.transports.indexOf(r[s])&&a.push(r[s]);return a}};e(GAr,"SocketWithUpgrade");var wwt=GAr,KAr=class KAr extends wwt{constructor(r,a={}){let s=typeof r=="object"?r:a;(!s.transports||s.transports&&typeof s.transports[0]=="string")&&(s.transports=(s.transports||["polling","websocket","webtransport"]).map(l=>WAr[l]).filter(l=>!!l)),super(r,s)}};e(KAr,"Socket");var HBe=KAr;var yga=HBe.protocol;var rsn=zd(Ret(),1);var tsn=(0,rsn.default)("socket.io-client:url");function nsn(i,r="",a){let s=i;a=a||typeof location<"u"&&location,i==null&&(i=a.protocol+"//"+a.host),typeof i=="string"&&(i.charAt(0)==="/"&&(i.charAt(1)==="/"?i=a.protocol+i:i=a.host+i),/^(https?|wss?):\/\//.test(i)||(tsn("protocol-less url %s",i),typeof a<"u"?i=a.protocol+"//"+i:i="https://"+i),tsn("parse %s",i),s=zBe(i)),s.port||(/^(http|ws)$/.test(s.protocol)?s.port="80":/^(http|ws)s$/.test(s.protocol)&&(s.port="443")),s.path=s.path||"/";let d=s.host.indexOf(":")!==-1?"["+s.host+"]":s.host;return s.id=s.protocol+"://"+d+":"+s.port+r,s.href=s.protocol+"://"+d+(a&&a.port===s.port?"":":"+s.port),s}e(nsn,"url");var obr={};LKe(obr,{Decoder:()=>abr,Encoder:()=>ibr,PacketType:()=>Zb,protocol:()=>msn});var dsn=zd(PSe(),1);var Uvi=typeof ArrayBuffer=="function",Qvi=e(i=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(i):i.buffer instanceof ArrayBuffer,"isView"),isn=Object.prototype.toString,qvi=typeof Blob=="function"||typeof Blob<"u"&&isn.call(Blob)==="[object BlobConstructor]",$vi=typeof File=="function"||typeof File<"u"&&isn.call(File)==="[object FileConstructor]";function Met(i){return Uvi&&(i instanceof ArrayBuffer||Qvi(i))||qvi&&i instanceof Blob||$vi&&i instanceof File}e(Met,"isBinary");function Let(i,r){if(!i||typeof i!="object")return!1;if(Array.isArray(i)){for(let a=0,s=i.length;a<s;a++)if(Let(i[a]))return!0;return!1}if(Met(i))return!0;if(i.toJSON&&typeof i.toJSON=="function"&&arguments.length===1)return Let(i.toJSON(),!0);for(let a in i)if(Object.prototype.hasOwnProperty.call(i,a)&&Let(i[a]))return!0;return!1}e(Let,"hasBinary");function asn(i){let r=[],a=i.data,s=i;return s.data=ZAr(a,r),s.attachments=r.length,{packet:s,buffers:r}}e(asn,"deconstructPacket");function ZAr(i,r){if(!i)return i;if(Met(i)){let a={_placeholder:!0,num:r.length};return r.push(i),a}else if(Array.isArray(i)){let a=new Array(i.length);for(let s=0;s<i.length;s++)a[s]=ZAr(i[s],r);return a}else if(typeof i=="object"&&!(i instanceof Date)){let a={};for(let s in i)Object.prototype.hasOwnProperty.call(i,s)&&(a[s]=ZAr(i[s],r));return a}return i}e(ZAr,"_deconstructPacket");function ssn(i,r){return i.data=ebr(i.data,r),delete i.attachments,i}e(ssn,"reconstructPacket");function ebr(i,r){if(!i)return i;if(i&&i._placeholder===!0){if(typeof i.num=="number"&&i.num>=0&&i.num<r.length)return r[i.num];throw new Error("illegal attachments")}else if(Array.isArray(i))for(let a=0;a<i.length;a++)i[a]=ebr(i[a],r);else if(typeof i=="object")for(let a in i)Object.prototype.hasOwnProperty.call(i,a)&&(i[a]=ebr(i[a],r));return i}e(ebr,"_reconstructPacket");var _sn=zd(psn(),1);var nbr=(0,_sn.default)("socket.io-parser"),axi=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"],msn=5,Zb;(function(i){i[i.CONNECT=0]="CONNECT",i[i.DISCONNECT=1]="DISCONNECT",i[i.EVENT=2]="EVENT",i[i.ACK=3]="ACK",i[i.CONNECT_ERROR=4]="CONNECT_ERROR",i[i.BINARY_EVENT=5]="BINARY_EVENT",i[i.BINARY_ACK=6]="BINARY_ACK"})(Zb||(Zb={}));var ubr=class ubr{constructor(r){this.replacer=r}encode(r){return nbr("encoding packet %j",r),(r.type===Zb.EVENT||r.type===Zb.ACK)&&Let(r)?this.encodeAsBinary({type:r.type===Zb.EVENT?Zb.BINARY_EVENT:Zb.BINARY_ACK,nsp:r.nsp,data:r.data,id:r.id}):[this.encodeAsString(r)]}encodeAsString(r){let a=""+r.type;return(r.type===Zb.BINARY_EVENT||r.type===Zb.BINARY_ACK)&&(a+=r.attachments+"-"),r.nsp&&r.nsp!=="/"&&(a+=r.nsp+","),r.id!=null&&(a+=r.id),r.data!=null&&(a+=JSON.stringify(r.data,this.replacer)),nbr("encoded %j as %s",r,a),a}encodeAsBinary(r){let a=asn(r),s=this.encodeAsString(a.packet),l=a.buffers;return l.unshift(s),l}};e(ubr,"Encoder");var ibr=ubr;function fsn(i){return Object.prototype.toString.call(i)==="[object Object]"}e(fsn,"isObject");var Owt=class Owt extends dsn.Emitter{constructor(r){super(),this.reviver=r}add(r){let a;if(typeof r=="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");a=this.decodeString(r);let s=a.type===Zb.BINARY_EVENT;s||a.type===Zb.BINARY_ACK?(a.type=s?Zb.EVENT:Zb.ACK,this.reconstructor=new sbr(a),a.attachments===0&&super.emitReserved("decoded",a)):super.emitReserved("decoded",a)}else if(Met(r)||r.base64)if(this.reconstructor)a=this.reconstructor.takeBinaryData(r),a&&(this.reconstructor=null,super.emitReserved("decoded",a));else throw new Error("got binary data when not reconstructing a packet");else throw new Error("Unknown type: "+r)}decodeString(r){let a=0,s={type:Number(r.charAt(0))};if(Zb[s.type]===void 0)throw new Error("unknown packet type "+s.type);if(s.type===Zb.BINARY_EVENT||s.type===Zb.BINARY_ACK){let d=a+1;for(;r.charAt(++a)!=="-"&&a!=r.length;);let g=r.substring(d,a);if(g!=Number(g)||r.charAt(a)!=="-")throw new Error("Illegal attachments");s.attachments=Number(g)}if(r.charAt(a+1)==="/"){let d=a+1;for(;++a&&!(r.charAt(a)===","||a===r.length););s.nsp=r.substring(d,a)}else s.nsp="/";let l=r.charAt(a+1);if(l!==""&&Number(l)==l){let d=a+1;for(;++a;){let g=r.charAt(a);if(g==null||Number(g)!=g){--a;break}if(a===r.length)break}s.id=Number(r.substring(d,a+1))}if(r.charAt(++a)){let d=this.tryParse(r.substr(a));if(Owt.isPayloadValid(s.type,d))s.data=d;else throw new Error("invalid payload")}return nbr("decoded %s as %j",r,s),s}tryParse(r){try{return JSON.parse(r,this.reviver)}catch{return!1}}static isPayloadValid(r,a){switch(r){case Zb.CONNECT:return fsn(a);case Zb.DISCONNECT:return a===void 0;case Zb.CONNECT_ERROR:return typeof a=="string"||fsn(a);case Zb.EVENT:case Zb.BINARY_EVENT:return Array.isArray(a)&&(typeof a[0]=="number"||typeof a[0]=="string"&&axi.indexOf(a[0])===-1);case Zb.ACK:case Zb.BINARY_ACK:return Array.isArray(a)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}};e(Owt,"Decoder");var abr=Owt,cbr=class cbr{constructor(r){this.packet=r,this.buffers=[],this.reconPack=r}takeBinaryData(r){if(this.buffers.push(r),this.buffers.length===this.reconPack.attachments){let a=ssn(this.reconPack,this.buffers);return this.finishedReconstruction(),a}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}};e(cbr,"BinaryReconstructor");var sbr=cbr;function bK(i,r,a){return i.on(r,a),e(function(){i.off(r,a)},"subDestroy")}e(bK,"on");var hsn=zd(PSe(),1),gsn=zd(Ret(),1);var kP=(0,gsn.default)("socket.io-client:socket"),sxi=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1}),lbr=class lbr extends hsn.Emitter{constructor(r,a,s){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=r,this.nsp=a,s&&s.auth&&(this.auth=s.auth),this._opts=Object.assign({},s),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;let r=this.io;this.subs=[bK(r,"open",this.onopen.bind(this)),bK(r,"packet",this.onpacket.bind(this)),bK(r,"error",this.onerror.bind(this)),bK(r,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...r){return r.unshift("message"),this.emit.apply(this,r),this}emit(r,...a){var s,l,d;if(sxi.hasOwnProperty(r))throw new Error('"'+r.toString()+'" is a reserved event name');if(a.unshift(r),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(a),this;let g={type:Zb.EVENT,data:a};if(g.options={},g.options.compress=this.flags.compress!==!1,typeof a[a.length-1]=="function"){let F=this.ids++;kP("emitting packet with ack id %d",F);let R=a.pop();this._registerAckCallback(F,R),g.id=F}let b=(l=(s=this.io.engine)===null||s===void 0?void 0:s.transport)===null||l===void 0?void 0:l.writable,C=this.connected&&!(!((d=this.io.engine)===null||d===void 0)&&d._hasPingExpired());return this.flags.volatile&&!b?kP("discard packet as the transport is not currently writable"):C?(this.notifyOutgoingListeners(g),this.packet(g)):this.sendBuffer.push(g),this.flags={},this}_registerAckCallback(r,a){var s;let l=(s=this.flags.timeout)!==null&&s!==void 0?s:this._opts.ackTimeout;if(l===void 0){this.acks[r]=a;return}let d=this.io.setTimeoutFn(()=>{delete this.acks[r];for(let b=0;b<this.sendBuffer.length;b++)this.sendBuffer[b].id===r&&(kP("removing packet with ack id %d from the buffer",r),this.sendBuffer.splice(b,1));kP("event with ack id %d has timed out after %d ms",r,l),a.call(this,new Error("operation has timed out"))},l),g=e((...b)=>{this.io.clearTimeoutFn(d),a.apply(this,b)},"fn");g.withError=!0,this.acks[r]=g}emitWithAck(r,...a){return new Promise((s,l)=>{let d=e((g,b)=>g?l(g):s(b),"fn");d.withError=!0,a.push(d),this.emit(r,...a)})}_addToQueue(r){let a;typeof r[r.length-1]=="function"&&(a=r.pop());let s={id:this._queueSeq++,tryCount:0,pending:!1,args:r,flags:Object.assign({fromQueue:!0},this.flags)};r.push((l,...d)=>s!==this._queue[0]?void 0:(l!==null?s.tryCount>this._opts.retries&&(kP("packet [%d] is discarded after %d tries",s.id,s.tryCount),this._queue.shift(),a&&a(l)):(kP("packet [%d] was successfully sent",s.id),this._queue.shift(),a&&a(null,...d)),s.pending=!1,this._drainQueue())),this._queue.push(s),this._drainQueue()}_drainQueue(r=!1){if(kP("draining queue"),!this.connected||this._queue.length===0)return;let a=this._queue[0];if(a.pending&&!r){kP("packet [%d] has already been sent and is waiting for an ack",a.id);return}a.pending=!0,a.tryCount++,kP("sending packet [%d] (try n\xB0%d)",a.id,a.tryCount),this.flags=a.flags,this.emit.apply(this,a.args)}packet(r){r.nsp=this.nsp,this.io._packet(r)}onopen(){kP("transport is open - connecting"),typeof this.auth=="function"?this.auth(r=>{this._sendConnectPacket(r)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(r){this.packet({type:Zb.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},r):r})}onerror(r){this.connected||this.emitReserved("connect_error",r)}onclose(r,a){kP("close (%s)",r),this.connected=!1,delete this.id,this.emitReserved("disconnect",r,a),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(r=>{if(!this.sendBuffer.some(s=>String(s.id)===r)){let s=this.acks[r];delete this.acks[r],s.withError&&s.call(this,new Error("socket has been disconnected"))}})}onpacket(r){if(r.nsp===this.nsp)switch(r.type){case Zb.CONNECT:r.data&&r.data.sid?this.onconnect(r.data.sid,r.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case Zb.EVENT:case Zb.BINARY_EVENT:this.onevent(r);break;case Zb.ACK:case Zb.BINARY_ACK:this.onack(r);break;case Zb.DISCONNECT:this.ondisconnect();break;case Zb.CONNECT_ERROR:this.destroy();let s=new Error(r.data.message);s.data=r.data.data,this.emitReserved("connect_error",s);break}}onevent(r){let a=r.data||[];kP("emitting event %j",a),r.id!=null&&(kP("attaching ack callback to event"),a.push(this.ack(r.id))),this.connected?this.emitEvent(a):this.receiveBuffer.push(Object.freeze(a))}emitEvent(r){if(this._anyListeners&&this._anyListeners.length){let a=this._anyListeners.slice();for(let s of a)s.apply(this,r)}super.emit.apply(this,r),this._pid&&r.length&&typeof r[r.length-1]=="string"&&(this._lastOffset=r[r.length-1])}ack(r){let a=this,s=!1;return function(...l){s||(s=!0,kP("sending ack %j",l),a.packet({type:Zb.ACK,id:r,data:l}))}}onack(r){let a=this.acks[r.id];if(typeof a!="function"){kP("bad ack %s",r.id);return}delete this.acks[r.id],kP("calling ack %s with %j",r.id,r.data),a.withError&&r.data.unshift(null),a.apply(this,r.data)}onconnect(r,a){kP("socket connected with id %s",r),this.id=r,this.recovered=a&&this._pid===a,this._pid=a,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(r=>this.emitEvent(r)),this.receiveBuffer=[],this.sendBuffer.forEach(r=>{this.notifyOutgoingListeners(r),this.packet(r)}),this.sendBuffer=[]}ondisconnect(){kP("server disconnect (%s)",this.nsp),this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(r=>r()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&(kP("performing disconnect (%s)",this.nsp),this.packet({type:Zb.DISCONNECT})),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(r){return this.flags.compress=r,this}get volatile(){return this.flags.volatile=!0,this}timeout(r){return this.flags.timeout=r,this}onAny(r){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(r),this}prependAny(r){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(r),this}offAny(r){if(!this._anyListeners)return this;if(r){let a=this._anyListeners;for(let s=0;s<a.length;s++)if(r===a[s])return a.splice(s,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(r){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(r),this}prependAnyOutgoing(r){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(r),this}offAnyOutgoing(r){if(!this._anyOutgoingListeners)return this;if(r){let a=this._anyOutgoingListeners;for(let s=0;s<a.length;s++)if(r===a[s])return a.splice(s,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(r){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){let a=this._anyOutgoingListeners.slice();for(let s of a)s.apply(this,r.data)}}};e(lbr,"Socket");var GBe=lbr;function USe(i){i=i||{},this.ms=i.min||100,this.max=i.max||1e4,this.factor=i.factor||2,this.jitter=i.jitter>0&&i.jitter<=1?i.jitter:0,this.attempts=0}e(USe,"Backoff");USe.prototype.duration=function(){var i=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var r=Math.random(),a=Math.floor(r*this.jitter*i);i=Math.floor(r*10)&1?i+a:i-a}return Math.min(i,this.max)|0};USe.prototype.reset=function(){this.attempts=0};USe.prototype.setMin=function(i){this.ms=i};USe.prototype.setMax=function(i){this.max=i};USe.prototype.setJitter=function(i){this.jitter=i};var ysn=zd(PSe(),1),vsn=zd(Ret(),1);var TL=(0,vsn.default)("socket.io-client:manager"),pbr=class pbr extends ysn.Emitter{constructor(r,a){var s;super(),this.nsps={},this.subs=[],r&&typeof r=="object"&&(a=r,r=void 0),a=a||{},a.path=a.path||"/socket.io",this.opts=a,Ohe(this,a),this.reconnection(a.reconnection!==!1),this.reconnectionAttempts(a.reconnectionAttempts||1/0),this.reconnectionDelay(a.reconnectionDelay||1e3),this.reconnectionDelayMax(a.reconnectionDelayMax||5e3),this.randomizationFactor((s=a.randomizationFactor)!==null&&s!==void 0?s:.5),this.backoff=new USe({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(a.timeout==null?2e4:a.timeout),this._readyState="closed",this.uri=r;let l=a.parser||obr;this.encoder=new l.Encoder,this.decoder=new l.Decoder,this._autoConnect=a.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(r){return arguments.length?(this._reconnection=!!r,r||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(r){return r===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=r,this)}reconnectionDelay(r){var a;return r===void 0?this._reconnectionDelay:(this._reconnectionDelay=r,(a=this.backoff)===null||a===void 0||a.setMin(r),this)}randomizationFactor(r){var a;return r===void 0?this._randomizationFactor:(this._randomizationFactor=r,(a=this.backoff)===null||a===void 0||a.setJitter(r),this)}reconnectionDelayMax(r){var a;return r===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=r,(a=this.backoff)===null||a===void 0||a.setMax(r),this)}timeout(r){return arguments.length?(this._timeout=r,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(r){if(TL("readyState %s",this._readyState),~this._readyState.indexOf("open"))return this;TL("opening %s",this.uri),this.engine=new HBe(this.uri,this.opts);let a=this.engine,s=this;this._readyState="opening",this.skipReconnect=!1;let l=bK(a,"open",function(){s.onopen(),r&&r()}),d=e(b=>{TL("error"),this.cleanup(),this._readyState="closed",this.emitReserved("error",b),r?r(b):this.maybeReconnectOnOpen()},"onError"),g=bK(a,"error",d);if(this._timeout!==!1){let b=this._timeout;TL("connect attempt will timeout after %d",b);let C=this.setTimeoutFn(()=>{TL("connect attempt timed out after %d",b),l(),d(new Error("timeout")),a.close()},b);this.opts.autoUnref&&C.unref(),this.subs.push(()=>{this.clearTimeoutFn(C)})}return this.subs.push(l),this.subs.push(g),this}connect(r){return this.open(r)}onopen(){TL("open"),this.cleanup(),this._readyState="open",this.emitReserved("open");let r=this.engine;this.subs.push(bK(r,"ping",this.onping.bind(this)),bK(r,"data",this.ondata.bind(this)),bK(r,"error",this.onerror.bind(this)),bK(r,"close",this.onclose.bind(this)),bK(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(r){try{this.decoder.add(r)}catch(a){this.onclose("parse error",a)}}ondecoded(r){Nhe(()=>{this.emitReserved("packet",r)},this.setTimeoutFn)}onerror(r){TL("error",r),this.emitReserved("error",r)}socket(r,a){let s=this.nsps[r];return s?this._autoConnect&&!s.active&&s.connect():(s=new GBe(this,r,a),this.nsps[r]=s),s}_destroy(r){let a=Object.keys(this.nsps);for(let s of a)if(this.nsps[s].active){TL("socket %s is still active, skipping close",s);return}this._close()}_packet(r){TL("writing packet %j",r);let a=this.encoder.encode(r);for(let s=0;s<a.length;s++)this.engine.write(a[s],r.options)}cleanup(){TL("cleanup"),this.subs.forEach(r=>r()),this.subs.length=0,this.decoder.destroy()}_close(){TL("disconnect"),this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(r,a){var s;TL("closed due to %s",r),this.cleanup(),(s=this.engine)===null||s===void 0||s.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",r,a),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;let r=this;if(this.backoff.attempts>=this._reconnectionAttempts)TL("reconnect failed"),this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{let a=this.backoff.duration();TL("will wait %dms before reconnect attempt",a),this._reconnecting=!0;let s=this.setTimeoutFn(()=>{r.skipReconnect||(TL("attempting reconnect"),this.emitReserved("reconnect_attempt",r.backoff.attempts),!r.skipReconnect&&r.open(l=>{l?(TL("reconnect attempt error"),r._reconnecting=!1,r.reconnect(),this.emitReserved("reconnect_error",l)):(TL("reconnect success"),r.onreconnect())}))},a);this.opts.autoUnref&&s.unref(),this.subs.push(()=>{this.clearTimeoutFn(s)})}}onreconnect(){let r=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",r)}};e(pbr,"Manager");var KBe=pbr;var Asn=zd(Ret(),1);var xsn=(0,Asn.default)("socket.io-client"),jet={};function Uet(i,r){typeof i=="object"&&(r=i,i=void 0),r=r||{};let a=nsn(i,r.path||"/socket.io"),s=a.source,l=a.id,d=a.path,g=jet[l]&&d in jet[l].nsps,b=r.forceNew||r["force new connection"]||r.multiplex===!1||g,C;return b?(xsn("ignoring socket cache for %s",s),C=new KBe(s,r)):(jet[l]||(xsn("new io instance for %s",s),jet[l]=new KBe(s,r)),C=jet[l]),a.query&&!r.query&&(r.query=a.queryKey),C.socket(a.path,r)}e(Uet,"lookup");Object.assign(Uet,{Manager:KBe,Socket:GBe,io:Uet,connect:Uet});var Bwt={URL:"http://localhost:3000",NAMESPACE:"auto-recovery",RECONNECTION_ATTEMPTS:5,RECONNECTION_DELAY:1e3},fbr=class fbr{constructor(r={}){this.socket=null;this.connectionState="disconnected";this.connectionPromise=null;this.resolution=null;this.options=r,this.url=r.url||Bwt.URL,this.namespace=r.namespace||Bwt.NAMESPACE,this.initializationPromise=this.createInitializationPromise()}createInitializationPromise(){return new Promise((r,a)=>{this.resolveInitialization=s=>r(s),this.rejectInitialization=s=>a(s)}).then(r=>(this.resolution=r,this.log("\u2705 Client initialization successful"),r),r=>{throw this.resolution=r,this.logError("\u274C Client initialization failed:",r),r}).finally(()=>{this.disconnect()})}defineHandlers(r){return r}async startSession(r,a){try{return await this.connect(),this.emit(r,a,s=>{this.resolveInitialization(s)}),this.initializationPromise}catch(s){throw this.logError("\u274C Failed to start session:",s),this.rejectInitialization(s),s}}isConnected(){var r;return((r=this.socket)==null?void 0:r.connected)||!1}getConnectionState(){return this.connectionState}success(r){return{success:!0,data:r}}error(r){return{success:!1,error:r}}log(r,...a){this.options.verbose&&console.log(`[${this.namespace}] ${r}`,...a)}logError(r,...a){this.options.verbose&&console.error(`[${this.namespace}] ${r}`,...a)}async connect(){var r;if(this.connectionPromise)return this.connectionPromise;if(this.connectionState==="connected"&&((r=this.socket)!=null&&r.connected))return Promise.resolve();this.connectionState="connecting",this.connectionPromise=this.establishConnection();try{await this.connectionPromise,this.connectionState="connected"}catch(a){throw this.connectionState="disconnected",this.connectionPromise=null,a}return this.connectionPromise}establishConnection(){return new Promise((r,a)=>{let s=!1;try{let l=`${this.url}/${this.namespace}`;this.log(`\u{1F517} Connecting to socket at: ${l}`),this.socket=Uet(l,{autoConnect:!0,reconnection:!0,reconnectionAttempts:Bwt.RECONNECTION_ATTEMPTS,reconnectionDelay:Bwt.RECONNECTION_DELAY,...this.options.path&&{path:this.options.path}}),this.setupConnectionHandlers(r,a,s)}catch(l){this.logError("\u274C Failed to create socket connection:",l),s||a(l)}})}setupConnectionHandlers(r,a,s){if(!this.socket)return;let l={resolve:r,reject:a,connectionResolved:s};this.socket.on("connect",()=>this.handleConnect(l)),this.socket.on("reconnect",()=>this.handleReconnect()),this.socket.on("connect_error",d=>this.handleConnectError(d,l)),this.socket.on("disconnect",d=>this.handleDisconnect(d,l)),this.socket.io.on("reconnect_attempt",d=>this.handleReconnectAttempt(d)),this.socket.io.on("reconnect_error",d=>this.handleReconnectError(d)),this.socket.io.on("reconnect_failed",()=>this.handleReconnectFailed(l))}handleConnect(r){this.log("\u2705 Connected to socket"),this.connectionState="connected",this.setupEventHandlers(),r.connectionResolved||(r.connectionResolved=!0,r.resolve())}handleReconnect(){this.log("\u2705 Reconnected to socket"),this.connectionState="connected"}handleConnectError(r,a){var s;this.logError("\u274C Connection error:",r),this.connectionState="disconnected",!a.connectionResolved&&((s=this.socket)==null?void 0:s.disconnected)!==!1&&(a.connectionResolved=!0,a.reject(r))}handleDisconnect(r,a){this.log("\u{1F50C} Disconnected from socket:",r),this.connectionState="disconnected",this.resolution===null&&r==="io server disconnect"&&this.rejectInitialization(r),!a.connectionResolved&&(r==="io server disconnect"||r==="transport close")&&(a.connectionResolved=!0,a.reject(new Error(r)))}handleReconnectAttempt(r){this.log(`\u{1F504} Reconnection attempt #${r}`),this.connectionState="reconnecting"}handleReconnectError(r){this.logError("\u274C Reconnection attempt failed:",r)}handleReconnectFailed(r){this.logError("\u274C All reconnection attempts failed"),this.connectionState="disconnected",this.resolution===null&&this.rejectInitialization("All reconnection attempts failed"),r.connectionResolved||(r.connectionResolved=!0,r.reject(new Error("All reconnection attempts failed")))}setupEventHandlers(){if(!this.socket){this.logError("\u274C Cannot setup event handlers: socket is null");return}this.log("\u2705 Setting up event handlers"),this.socket.on("__call",this.handleGatewayCall.bind(this))}async handleGatewayCall(r,a){this.log(`\u{1F4E5} Gateway called method: ${r.key} with args:`,r.args);try{let s=this.validateGatewayCall(r);if(s){a(s);return}let l=this.handlers[r.key];if(!l){let g=`No handler registered for method: ${r.key}`;this.logError(`\u274C ${g}`),a(this.error(g));return}let d=await l(...r.args);a(this.success(d))}catch(s){this.logError("\u274C Error handling gateway call:",s),a(this.error(s.message||"Unknown error occurred"))}}validateGatewayCall(r){return r.key?Array.isArray(r.args)?null:(this.logError("\u274C Received call with invalid args"),this.error("Args must be an array")):(this.logError("\u274C Received call with undefined key"),this.error("Key is undefined"))}emit(r,a,s){if(!this.socket){this.logError("\u274C Cannot emit: socket is null");return}this.log(`\u{1F4E4} Emitting event: ${r}`),this.socket.emit(r,a,l=>{s(l)})}disconnect(){this.connectionState!=="shutting_down"&&(this.connectionState="shutting_down",this.log("\u{1F50C} Initiating disconnect"),this.socket&&(this.socket.disconnect(),this.socket=null),this.connectionPromise=null,this.connectionState="disconnected",this.log("\u2705 Disconnected successfully"))}};e(fbr,"AbstractClient");var Rwt=fbr;var bsn,Esn,Csn,Dsn,Ssn,wsn,Mwt=class Mwt extends(wsn=Rwt,Ssn=wL.names.getState,Dsn=wL.names.invokeCode,Csn=wL.names.final_result,Esn=wL.names.wait,bsn=wL.names.getElementScreenshot,wsn){constructor(a,s){super({verbose:i2.testRun.autoRecovery.verboseConsoleLog,url:s.config.apiURL,namespace:"auto-recovery",path:"/auto-recovery/socket.io"});this.utils=a;this.initData=s;this.stepsThoughts=[];this.handlers=this.defineHandlers({callLangChainTool:e(async(a,s)=>{if(!this[a])throw new Error(`Tool ${a} not found`);return s.thought&&this.stepsThoughts.push(s.thought),await this[a].invoke(s)},"callLangChainTool"),getStatus:e(async a=>({sessionId:a,status:"active",data:{message:"Status retrieved successfully"}}),"getStatus")});this[Ssn]=gbe.buildTool(wL,wL.names.getState,async a=>this.getStateHandler(a));this[Dsn]=gbe.buildTool(wL,wL.names.invokeCode,async a=>this.invokeCodeHandler(a));this[Csn]=gbe.buildTool(wL,wL.names.final_result,async a=>this.finalResultHandler(a));this[Esn]=gbe.buildTool(wL,wL.names.wait,async a=>this.waitHandler(a));this[bsn]=gbe.buildTool(wL,wL.names.getElementScreenshot,async a=>this.getElementScreenshotHandler(a))}async init(){let a={...this.initData,version:wL.version};return await this.startSession("initialize",a).catch(s=>{this.utils.analytics.ARError({error:s.message});let l="Auto-Recovery attempt finished unsuccessfully";return this.utils.createChecksumStep({title:l,withError:!0}),this.utils.addAutoRecoveryErrorToReport(l,!1),{finalThought:l,stepsThoughts:[],result:"failed"}})}static async build(a){let s=await a.buildFallbackData();return new Mwt(a,s)}async invokeCodeHandler(a){let s;return await this.utils.runConditionallyWithinStep(!0,a.thought||"Invoke Code",async()=>{try{let l=await this.utils.invokeCode(a.code);this.utils.createChecksumStep({title:"Code Invoked Successfully"}),s={success:!0,invokeCodeResult:`invokeCodeResult: ${l}`,appState:(await this.utils.buildFallbackData()).applicationState}}catch(l){s={success:!1,invokeCodeResult:`Error while invoking code: ${l}`,appState:(await this.utils.buildFallbackData()).applicationState}}}),s}async getStateHandler(a){return this.utils.createChecksumStep({title:a.thought}),this.utils.analytics.ARGetState(a.thought),{success:!0,appState:(await this.utils.buildFallbackData()).applicationState}}finalResultHandler(a){let s=a.result==="pass",l=this.initData.type==="assertion"?s?"soft_assertion":"hard_assertion":s?"finish":"failed";this.utils.analytics.ARFinalResult({finalThought:a.thought,result:l,stepsThoughts:this.stepsThoughts});let d={finalThought:a.thought,result:l,stepsThoughts:this.stepsThoughts};this.utils.addAutoRecoveryErrorToReport(a.thought,s),this.resolveInitialization(d)}async getElementScreenshotHandler(a){return{success:!0,screenshot:await this.utils.getScreenshotForElement(a.checksumId)}}async waitHandler(a){await new Promise(l=>setTimeout(l,a.time||5e3));let s=await this.utils.buildFallbackData();return{success:!0,waitResult:`waited for ${a.time} seconds, the current HTML of the application after the wait is: ${s.applicationState.reducedHTML}`}}};e(Mwt,"AutoRecoveryAgent");var Lwt=Mwt;var Tsn=require("fs"),ksn=zd(require("path"));var dbr=class dbr extends Fee{constructor(a,s){let l=Fee.getCurrentTestInfo();if(!l)throw new Error("TestRunAnalytics must be initialized with testInfo before FallbackAnalytics can be used");let d=Fee.getCurrentInstance();if(!d)throw new Error("TestRunAnalytics instance not found. Make sure TestRunAnalytics is initialized before creating FallbackAnalytics");let g=d.getTestSuiteRunInfo();super(g,Fee.isolatedMode,l);this.sessionId=null;this.fallbackId=a,this.fallbackType=s}updateToSessionId(a){this.sessionId!==a&&(this.sessionId=a,this.analytics&&this.analytics.alias({userId:a,previousId:this.fallbackId}))}get tableName(){return"auto_recovery"}get metadata(){return{...super.metadata,fallbackType:this.fallbackType,sessionId:this.sessionId||"unknown",fallbackId:this.fallbackId}}event(a){super.trackEventWithTable(a,this.metadata,this.tableName)}setFallbackType(a){this.fallbackType=a}ARStart(){this.event({event:"Auto-Recovery Start",metadata:this.metadata})}ARConfig(a){this.event({event:"Auto-Recovery Config",metadata:this.metadata,...a})}ARGetState(a){this.event({event:"Auto-Recovery State",metadata:this.metadata,thought:a})}ARInvokeCode(a,s){this.event({event:"Auto-Recovery Invoke Code",metadata:this.metadata,thought:a,code:s})}ARFinalResult(a){this.event({event:"Auto-Recovery Final Result",metadata:this.metadata,...a})}autoRecoveryDisconnect(a){this.event({event:"Auto-Recovery Disconnect",metadata:this.metadata,...a})}ARFinish(a){this.event({event:"Auto-Recovery Finish",metadata:this.metadata,...a})}ARError(a){this.event({event:"Auto-Recovery Error",metadata:this.metadata,...a})}};e(dbr,"AutoRecoveryAnalytics");var jwt=dbr;var QSe=class QSe{constructor({page:r,evaluateWithChecksum:a,checksumPage:s,pageInteractor:l,arConfig:d,sessionId:g,runtimeFallbackData:b,fallbackData:C,variableStore:S}){this.page=r,this.evaluateWithChecksum=a,this.checksumPage=s,this.pageInteractor=l,this.arConfig=d,this.sessionId=g,this.runtimeFallbackData=b,this.fallbackData=C,this.variableStore=S,this._analytics=new jwt(this.sessionId,C.type)}static async start(r){return new QSe({...r})}getMatcherResultFileData(r){let a=r.matcherResult;if((a==null?void 0:a.name)!=="toHaveScreenshot")return;let s=e((b,C=!0)=>{if(!b)return"";try{return(0,Tsn.readFileSync)(b,C?"base64":"utf-8")}catch{return""}},"readFileSafe"),l=s(a==null?void 0:a.actual),d=s(a==null?void 0:a.diff),g=s(a==null?void 0:a.expected);if(!g)throw new Error("No expected file found for 'toHaveScreenshot'");return{...a,actual:l,diff:d,expected:g}}async getSelectionDataForChecksumId(r){return await this.evaluateWithChecksum(async s=>{let{selector:l,locator:d,clickOffset:g,parentFramesSelectors:b,invalid:C,rrwebId:S}=await window.checksum.testGenerator.getSelectorForChecksumId(s),F=await window.checksum.testGenerator.getElementForChecksumId(s),R=F instanceof HTMLOptionElement&&F.value?F.value:void 0;return{selector:l,locator:d,clickOffset:g,selectOptionValue:R,parentFramesSelectors:b,invalid:C,rrwebId:S}},r)}async getReducedHtml(r=QSe.currentChecksumId){let{reducedHTML:a,currentChecksumId:s}=await this.pageInteractor.getCurrentReducedHTML({stopFlashingElementsDetection:!0,assignChecksumIdsToAllElements:!0,initialChecksumId:r});return QSe.currentChecksumId=s,{reducedHTML:a,currentChecksumId:s}}async getApplicationState(){let{reducedHTML:r}=await this.getReducedHtml();return{reducedHTML:r,screenshot:await this.getPageScreenshot()}}async buildFallbackData(){let{reducedHTML:r,currentChecksumId:a}=await this.getReducedHtml();return{storyInfo:this.runtimeFallbackData.storyInfo,testIdentification:this.runtimeFallbackData.testIdentification,fallbackConfig:this.runtimeFallbackData.fallbackConfig,thoughts:this.runtimeFallbackData.thoughts,errorData:{error:{name:this.fallbackData.error.name,message:this.fallbackData.error.message,stack:this.fallbackData.error.stack},errorFileContent:await this.getErrorFileContent(this.fallbackData.error)},applicationState:{reducedHTML:r,screenshot:await this.getPageScreenshot()},stepData:{matcher:this.getMatcherResultFileData(this.fallbackData.error)},currentChecksumId:a,failingStepThought:this.runtimeFallbackData.thoughts.failing,type:this.fallbackData.type,config:this.runtimeFallbackData.config,sessionId:this.runtimeFallbackData.testIdentification.testId,variableStore:this.variableStore.reduce((s,l)=>(s[`variablesStore.${l.name}`]=l.value,s),{}),arConfig:this.arConfig}}async scrollToElement(r){r&&await this.pageInteractor.scrollElementIntoViewByChecksumId(r)}async getPageScreenshot(r=this.arConfig){try{return this.checksumPage.wrapInternalSteps(async()=>{var s;return(await this.page.screenshot({fullPage:!0,type:((s=r.modelConfig)==null?void 0:s.provider)==="anthropic"?"jpeg":"png"})).toString("base64")})}catch{return}}async getErrorFileContent(r){try{let a=ksn.default.dirname(this.runtimeFallbackData.testIdentification.testFileName);return iNe.toRecord(r,a)}catch{throw new Error("Error while getting error file content for AI fallback")}}async wait(){await this.page.waitForTimeout(5e3)}async preprocessCode(r){var q;let a=r,s=r,l=[],d=r.match(/getByChecksumId\([^)]+\)\.([a-zA-Z]+)\(([^)]*)\)/),g=d==null?void 0:d[1],b=d==null?void 0:d[2],C=/(?:page\.)?getByChecksumId\(['"]([^'"]+)['"]\)/,S=(q=r.match(C))==null?void 0:q[1];if(!S)throw new Error("Checksum ID not found in the code");let F=await this.getSelectionDataForChecksumId(S);if(!(F!=null&&F.locator)||F.invalid)throw new Error(`Locator or selector not found for checksumId: ${S}`);s=s.replace(C,F.locator);let R=/variables?Store\.([a-zA-Z_$][a-zA-Z0-9_$]*)/g,N=null;for(;(N=R.exec(r))!==null;){let Q=N[1],z=this.variableStore.find(se=>se.name===Q);z&&(l.push(z),s=s.replace(N[0],`"${z.value}"`))}return{originalCode:a,modifiedCode:s,usedVariables:l,checksumId:S,locator:F.locator,method:g,methodArgs:b}}async invokeCode(r){try{let a=await this.preprocessCode(r),{modifiedCode:s}=a,l=new Function("page",`return (async () => { return page.${s}; })()`),d;return await this.step(s,async()=>d=await l(this.page),!1,{box:!0,noLocation:!0,obtainStep:e(g=>{this.checksumPage.addAutoRecoveryStepId(g.stepId)},"obtainStep")}),{success:!0,result:d}}catch(a){throw console.log("Error while invoking code",a.message),a}}addAutoRecoveryErrorToReport(r,a){let s=this.runtimeFallbackData.thoughts.failing,l=a?`\u2705 "${s}" auto-recovered`:`\u274C "${s}" failed`;this.checksumPage.addPwAnnotation({type:l,description:r.replace(/^"(.*)"$/,"$1")}),a&&this.checksumPage.addErrorMessage(this.fallbackData.error,`${l}:
|
|
1596
1596
|
${r}`)}get createChecksumStep(){return r=>this.checksumPage.createChecksumStep(r)}get step(){return this.checksumPage.step.bind(this.checksumPage)}get runConditionallyWithinStep(){return(r,a,s)=>this.checksumPage.runConditionallyWithinStep(r,a,s)}async getScreenshotForElement(r){var a;try{let s=await this.getSelectionDataForChecksumId(r);if(!s)throw new Error(`Locator not found for checksumId: ${r}`);let l=((a=this.arConfig.modelConfig)==null?void 0:a.provider)==="anthropic"?"jpeg":"png";return(await this.page.locator(s.selector).screenshot({type:l})).toString("base64")}catch{throw new Error(`Failed to get screenshot for element: ${r}`)}}get analytics(){return this._analytics}};e(QSe,"AutoRecoveryRuntimeIteratorUtils"),QSe.currentChecksumId="0";var Uwt=QSe;var YBe=class YBe extends the{init(r){var a;return this.initializationData=r,(a=this.initializationData.fallbackConfig).arMode??(a.arMode="fast"),this}canResolve(r){return!0}get failingThought(){return this.initializationData.thoughts.failing}getRecoveryAttemptTitle(){switch(this.initializationData.type){case"action":return`Checksum Auto-Recovery: trying to achieve action "${this.failingThought}"...`;case"assertion":return`Checksum Auto-Recovery: trying to verify assertion "${this.failingThought}"...`}}static async registerSession(r){let a=r.config.apiURL,s=r.config.apiKey;return await(await fetch(`${a}${YBe.API_BASE_ROUTE}/register-auto-recovery-session`,{method:"POST",headers:{"Content-Type":"application/json",ChecksumAppCode:s},body:JSON.stringify({appName:r.testIdentification.testFileName,fallbackData:r})})).json()}async prepareSession(r){let a=await YBe.registerSession(this.initializationData);this.utils=new Uwt({page:this.page,evaluateWithChecksum:this.evaluateWithChecksum,checksumPage:this.checksumPage,pageInteractor:this.pageInteractor,arConfig:a.arConfig,sessionId:a.sessionId,runtimeFallbackData:this.initializationData,fallbackData:r,variableStore:this.variables});try{this.agent=await Lwt.build(this.utils)}catch{throw new Error("Failed to prepare ARFallback")}}async resolve(r){let a=Date.now();await this.prepareSession(r),this.utils.analytics.ARStart();let s=await this.agent.init();return this.utils.analytics.ARFinish({duration:Date.now()-a}),{fbResult:s.result,thought:s.finalThought,stepsThoughts:s.stepsThoughts,steps:[]}}};e(YBe,"ARFallback"),YBe.API_BASE_ROUTE="/auto-recovery";var _br=YBe;var Y2a=1e3*30;var bbe={defaultMerge:Symbol("deepmerge-ts: default merge"),skip:Symbol("deepmerge-ts: skip")},tva={defaultMerge:bbe.defaultMerge};function _xi(i,r){return r}e(_xi,"defaultMetaDataUpdater");function mxi(i,r){return i.filter(a=>a!==void 0)}e(mxi,"defaultFilterValues");var Fsn;(function(i){i[i.NOT=0]="NOT",i[i.RECORD=1]="RECORD",i[i.ARRAY=2]="ARRAY",i[i.SET=3]="SET",i[i.MAP=4]="MAP",i[i.OTHER=5]="OTHER"})(Fsn||(Fsn={}));function Psn(i){return typeof i!="object"||i===null?0:Array.isArray(i)?2:yxi(i)?1:i instanceof Set?3:i instanceof Map?4:5}e(Psn,"getObjectType");function hxi(i){let r=new Set;for(let a of i)for(let s of[...Object.keys(a),...Object.getOwnPropertySymbols(a)])r.add(s);return r}e(hxi,"getKeys");function gxi(i,r){return typeof i=="object"&&Object.prototype.propertyIsEnumerable.call(i,r)}e(gxi,"objectHasProperty");function Osn(i){var s;let r=0,a=(s=i[0])==null?void 0:s[Symbol.iterator]();return{[Symbol.iterator](){return{next(){var l;do{if(a===void 0)return{done:!0,value:void 0};let d=a.next();if(d.done===!0){r+=1,a=(l=i[r])==null?void 0:l[Symbol.iterator]();continue}return{done:!1,value:d.value}}while(!0)}}}}}e(Osn,"getIterableOfIterables");var Nsn=["[object Object]","[object Module]"];function yxi(i){if(!Nsn.includes(Object.prototype.toString.call(i)))return!1;let{constructor:r}=i;if(r===void 0)return!0;let a=r.prototype;return!(a===null||typeof a!="object"||!Nsn.includes(Object.prototype.toString.call(a))||!a.hasOwnProperty("isPrototypeOf"))}e(yxi,"isRecord");function vxi(i,r,a){let s={};for(let l of hxi(i)){let d=[];for(let C of i)gxi(C,l)&&d.push(C[l]);if(d.length===0)continue;let g=r.metaDataUpdater(a,{key:l,parents:i}),b=Rsn(d,r,g);b!==bbe.skip&&(l==="__proto__"?Object.defineProperty(s,l,{value:b,configurable:!0,enumerable:!0,writable:!0}):s[l]=b)}return s}e(vxi,"mergeRecords$1");function xxi(i){return i.flat()}e(xxi,"mergeArrays$1");function Axi(i){return new Set(Osn(i))}e(Axi,"mergeSets$1");function bxi(i){return new Map(Osn(i))}e(bxi,"mergeMaps$1");function Exi(i){return i.at(-1)}e(Exi,"mergeOthers$1");var Qwt={mergeRecords:vxi,mergeArrays:xxi,mergeSets:Axi,mergeMaps:bxi,mergeOthers:Exi};function Bsn(...i){return Cxi({})(...i)}e(Bsn,"deepmerge");function Cxi(i,r){let a=Dxi(i,s);function s(...l){return Rsn(l,a,r)}return e(s,"customizedDeepmerge"),s}e(Cxi,"deepmergeCustom");function Dxi(i,r){return{defaultMergeFunctions:Qwt,mergeFunctions:{...Qwt,...Object.fromEntries(Object.entries(i).filter(([a,s])=>Object.hasOwn(Qwt,a)).map(([a,s])=>s===!1?[a,Qwt.mergeOthers]:[a,s]))},metaDataUpdater:i.metaDataUpdater??_xi,deepmerge:r,useImplicitDefaultMerging:i.enableImplicitDefaultMerging??!1,filterValues:i.filterValues===!1?void 0:i.filterValues??mxi,actions:bbe}}e(Dxi,"getUtils");function Rsn(i,r,a){var d;let s=((d=r.filterValues)==null?void 0:d.call(r,i,a))??i;if(s.length===0)return;if(s.length===1)return hbr(s,r,a);let l=Psn(s[0]);if(l!==0&&l!==5){for(let g=1;g<s.length;g++)if(Psn(s[g])!==l)return hbr(s,r,a)}switch(l){case 1:return Sxi(s,r,a);case 2:return wxi(s,r,a);case 3:return Txi(s,r,a);case 4:return kxi(s,r,a);default:return hbr(s,r,a)}}e(Rsn,"mergeUnknowns");function Sxi(i,r,a){let s=r.mergeFunctions.mergeRecords(i,r,a);return s===bbe.defaultMerge||r.useImplicitDefaultMerging&&s===void 0&&r.mergeFunctions.mergeRecords!==r.defaultMergeFunctions.mergeRecords?r.defaultMergeFunctions.mergeRecords(i,r,a):s}e(Sxi,"mergeRecords");function wxi(i,r,a){let s=r.mergeFunctions.mergeArrays(i,r,a);return s===bbe.defaultMerge||r.useImplicitDefaultMerging&&s===void 0&&r.mergeFunctions.mergeArrays!==r.defaultMergeFunctions.mergeArrays?r.defaultMergeFunctions.mergeArrays(i):s}e(wxi,"mergeArrays");function Txi(i,r,a){let s=r.mergeFunctions.mergeSets(i,r,a);return s===bbe.defaultMerge||r.useImplicitDefaultMerging&&s===void 0&&r.mergeFunctions.mergeSets!==r.defaultMergeFunctions.mergeSets?r.defaultMergeFunctions.mergeSets(i):s}e(Txi,"mergeSets");function kxi(i,r,a){let s=r.mergeFunctions.mergeMaps(i,r,a);return s===bbe.defaultMerge||r.useImplicitDefaultMerging&&s===void 0&&r.mergeFunctions.mergeMaps!==r.defaultMergeFunctions.mergeMaps?r.defaultMergeFunctions.mergeMaps(i):s}e(kxi,"mergeMaps");function hbr(i,r,a){let s=r.mergeFunctions.mergeOthers(i,r,a);return s===bbe.defaultMerge||r.useImplicitDefaultMerging&&s===void 0&&r.mergeFunctions.mergeOthers!==r.defaultMergeFunctions.mergeOthers?r.defaultMergeFunctions.mergeOthers(i):s}e(hbr,"mergeOthers");var Lsn=!1;function mbr(i){Lsn=i}e(mbr,"setLogToConsole");function pS(...i){Lsn&&console.log(...i)}e(pS,"log");async function D$r(i,r,a,s=6e4){if(!(r in i))return i;let l=e(()=>i[r](...a),"executor");return s===null?l():C8(l(),s,"Execution timeout")}e(D$r,"executePlaywrightMethodWithTimeout");var qwt;function Msn(i={}){var a,s,l,d;let r={apiKey:void 0,runMode:"normal",apiURL:"https://api.checksum.ai",options:{useChecksumSelectors:!0,useChecksumAI:{actions:!0,assertions:!1},newAssertionsEnabled:!0,useMockData:!1,printLogs:!1,hideReports:process.env.AUTHORIZE_REPORTS==="true"}};return((s=(a=i.options)==null?void 0:a.useChecksumAI)==null?void 0:s.visualComparison)===void 0&&((d=(l=i.options)==null?void 0:l.useChecksumAI)!=null&&d.assertions)&&(i.options.useChecksumAI.visualComparison=!0),qwt=Bsn(r,i),i2.testRun.disableAutoRecovery&&(qwt.options.useChecksumAI={actions:!1,assertions:!1,visualComparison:!1}),i2.testRun.disableHostReports&&(qwt.options.hostReports=!1),qwt}e(Msn,"getChecksumConfig");var aXe="Checksum failed connecting to the server";var bvn=zd(require("child_process")),kDr=require("crypto"),Krt=require("fs"),NK=require("path");var $wt=(S=>(S.RuntimeError="Runtime Error",S.TestRunMonitorError="Test Run Monitor Error",S.ChecksumConfigError="Checksum Config Error",S.InitializationError="Initialization Error",S.TraceProcessingError="Trace Processing Error",S.TestSuiteInitError="Test Suite Init Error",S.UploadStart="Upload Start",S.UploadComplete="Upload Complete",S.UploadFailed="Upload Failed",S))($wt||{});var Ebe=e(i=>i.name==="up"||i.name==="k"||i.ctrl&&i.name==="p","isUpKey"),XBe=e(i=>i.name==="down"||i.name==="j"||i.ctrl&&i.name==="n","isDownKey"),jsn=e(i=>i.name==="space","isSpaceKey"),ZBe=e(i=>i.name==="backspace","isBackspaceKey"),Vwt=e(i=>"123456789".includes(i.name),"isNumberKey"),SI=e(i=>i.name==="enter"||i.name==="return","isEnterKey");var gbr=class gbr extends Error{name="AbortPromptError";message="Prompt was aborted";constructor(r){super(),this.cause=r==null?void 0:r.cause}};e(gbr,"AbortPromptError");var Jwt=gbr,ybr=class ybr extends Error{name="CancelPromptError";message="Prompt was canceled"};e(ybr,"CancelPromptError");var zwt=ybr,vbr=class vbr extends Error{name="ExitPromptError"};e(vbr,"ExitPromptError");var Wwt=vbr,xbr=class xbr extends Error{name="HookError"};e(xbr,"HookError");var Hwt=xbr,Abr=class Abr extends Error{name="ValidationError"};e(Abr,"ValidationError");var Cbe=Abr;var Dbr=require("async_hooks");var Gwt=require("async_hooks");var Usn=new Gwt.AsyncLocalStorage;function Ixi(i){return{rl:i,hooks:[],hooksCleanup:[],hooksEffect:[],index:0,handleChange(){}}}e(Ixi,"createStore");function Qsn(i,r){let a=Ixi(i);return Usn.run(a,()=>{function s(l){a.handleChange=()=>{a.index=0,l()},a.handleChange()}return e(s,"cycle"),r(s)})}e(Qsn,"withHooks");function qSe(){let i=Usn.getStore();if(!i)throw new Hwt("[Inquirer] Hook functions can only be called from within a prompt");return i}e(qSe,"getStore");function bbr(){return qSe().rl}e(bbr,"readline");function Ebr(i){let r=e((...a)=>{let s=qSe(),l=!1,d=s.handleChange;s.handleChange=()=>{l=!0};let g=i(...a);return l&&d(),s.handleChange=d,g},"wrapped");return Gwt.AsyncResource.bind(r)}e(Ebr,"withUpdates");function eRe(i){let r=qSe(),{index:a}=r,s={get(){return r.hooks[a]},set(d){r.hooks[a]=d},initialized:a in r.hooks},l=i(s);return r.index++,l}e(eRe,"withPointer");function qsn(){qSe().handleChange()}e(qsn,"handleChange");var $Se={queue(i){let r=qSe(),{index:a}=r;r.hooksEffect.push(()=>{var l,d;(d=(l=r.hooksCleanup)[a])==null||d.call(l);let s=i(bbr());if(s!=null&&typeof s!="function")throw new Cbe("useEffect return value must be a cleanup function or nothing.");r.hooksCleanup[a]=s})},run(){let i=qSe();Ebr(()=>{i.hooksEffect.forEach(r=>{r()}),i.hooksEffect.length=0})()},clearAll(){let i=qSe();i.hooksCleanup.forEach(r=>{r==null||r()}),i.hooksEffect.length=0,i.hooksCleanup.length=0}};function P2(i){return eRe(r=>{let a=e(l=>{r.get()!==l&&(r.set(l),qsn())},"setFn");if(r.initialized)return[r.get(),a];let s=typeof i=="function"?i():i;return r.set(s),[s,a]})}e(P2,"useState");function tse(i,r){eRe(a=>{let s=a.get();(!Array.isArray(s)||r.some((d,g)=>!Object.is(d,s[g])))&&$Se.queue(i),a.set(r)})}e(tse,"useEffect");var lte=zd(Dbe(),1);var rse=zd(require("process"),1);function Pxi(){return rse.default.platform!=="win32"?rse.default.env.TERM!=="linux":!!rse.default.env.WT_SESSION||!!rse.default.env.TERMINUS_SUBLIME||rse.default.env.ConEmuTask==="{cmd::Cmder}"||rse.default.env.TERM_PROGRAM==="Terminus-Sublime"||rse.default.env.TERM_PROGRAM==="vscode"||rse.default.env.TERM==="xterm-256color"||rse.default.env.TERM==="alacritty"||rse.default.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}e(Pxi,"isUnicodeSupported");var zsn={circleQuestionMark:"(?)",questionMarkPrefix:"(?)",square:"\u2588",squareDarkShade:"\u2593",squareMediumShade:"\u2592",squareLightShade:"\u2591",squareTop:"\u2580",squareBottom:"\u2584",squareLeft:"\u258C",squareRight:"\u2590",squareCenter:"\u25A0",bullet:"\u25CF",dot:"\u2024",ellipsis:"\u2026",pointerSmall:"\u203A",triangleUp:"\u25B2",triangleUpSmall:"\u25B4",triangleDown:"\u25BC",triangleDownSmall:"\u25BE",triangleLeftSmall:"\u25C2",triangleRightSmall:"\u25B8",home:"\u2302",heart:"\u2665",musicNote:"\u266A",musicNoteBeamed:"\u266B",arrowUp:"\u2191",arrowDown:"\u2193",arrowLeft:"\u2190",arrowRight:"\u2192",arrowLeftRight:"\u2194",arrowUpDown:"\u2195",almostEqual:"\u2248",notEqual:"\u2260",lessOrEqual:"\u2264",greaterOrEqual:"\u2265",identical:"\u2261",infinity:"\u221E",subscriptZero:"\u2080",subscriptOne:"\u2081",subscriptTwo:"\u2082",subscriptThree:"\u2083",subscriptFour:"\u2084",subscriptFive:"\u2085",subscriptSix:"\u2086",subscriptSeven:"\u2087",subscriptEight:"\u2088",subscriptNine:"\u2089",oneHalf:"\xBD",oneThird:"\u2153",oneQuarter:"\xBC",oneFifth:"\u2155",oneSixth:"\u2159",oneEighth:"\u215B",twoThirds:"\u2154",twoFifths:"\u2156",threeQuarters:"\xBE",threeFifths:"\u2157",threeEighths:"\u215C",fourFifths:"\u2158",fiveSixths:"\u215A",fiveEighths:"\u215D",sevenEighths:"\u215E",line:"\u2500",lineBold:"\u2501",lineDouble:"\u2550",lineDashed0:"\u2504",lineDashed1:"\u2505",lineDashed2:"\u2508",lineDashed3:"\u2509",lineDashed4:"\u254C",lineDashed5:"\u254D",lineDashed6:"\u2574",lineDashed7:"\u2576",lineDashed8:"\u2578",lineDashed9:"\u257A",lineDashed10:"\u257C",lineDashed11:"\u257E",lineDashed12:"\u2212",lineDashed13:"\u2013",lineDashed14:"\u2010",lineDashed15:"\u2043",lineVertical:"\u2502",lineVerticalBold:"\u2503",lineVerticalDouble:"\u2551",lineVerticalDashed0:"\u2506",lineVerticalDashed1:"\u2507",lineVerticalDashed2:"\u250A",lineVerticalDashed3:"\u250B",lineVerticalDashed4:"\u254E",lineVerticalDashed5:"\u254F",lineVerticalDashed6:"\u2575",lineVerticalDashed7:"\u2577",lineVerticalDashed8:"\u2579",lineVerticalDashed9:"\u257B",lineVerticalDashed10:"\u257D",lineVerticalDashed11:"\u257F",lineDownLeft:"\u2510",lineDownLeftArc:"\u256E",lineDownBoldLeftBold:"\u2513",lineDownBoldLeft:"\u2512",lineDownLeftBold:"\u2511",lineDownDoubleLeftDouble:"\u2557",lineDownDoubleLeft:"\u2556",lineDownLeftDouble:"\u2555",lineDownRight:"\u250C",lineDownRightArc:"\u256D",lineDownBoldRightBold:"\u250F",lineDownBoldRight:"\u250E",lineDownRightBold:"\u250D",lineDownDoubleRightDouble:"\u2554",lineDownDoubleRight:"\u2553",lineDownRightDouble:"\u2552",lineUpLeft:"\u2518",lineUpLeftArc:"\u256F",lineUpBoldLeftBold:"\u251B",lineUpBoldLeft:"\u251A",lineUpLeftBold:"\u2519",lineUpDoubleLeftDouble:"\u255D",lineUpDoubleLeft:"\u255C",lineUpLeftDouble:"\u255B",lineUpRight:"\u2514",lineUpRightArc:"\u2570",lineUpBoldRightBold:"\u2517",lineUpBoldRight:"\u2516",lineUpRightBold:"\u2515",lineUpDoubleRightDouble:"\u255A",lineUpDoubleRight:"\u2559",lineUpRightDouble:"\u2558",lineUpDownLeft:"\u2524",lineUpBoldDownBoldLeftBold:"\u252B",lineUpBoldDownBoldLeft:"\u2528",lineUpDownLeftBold:"\u2525",lineUpBoldDownLeftBold:"\u2529",lineUpDownBoldLeftBold:"\u252A",lineUpDownBoldLeft:"\u2527",lineUpBoldDownLeft:"\u2526",lineUpDoubleDownDoubleLeftDouble:"\u2563",lineUpDoubleDownDoubleLeft:"\u2562",lineUpDownLeftDouble:"\u2561",lineUpDownRight:"\u251C",lineUpBoldDownBoldRightBold:"\u2523",lineUpBoldDownBoldRight:"\u2520",lineUpDownRightBold:"\u251D",lineUpBoldDownRightBold:"\u2521",lineUpDownBoldRightBold:"\u2522",lineUpDownBoldRight:"\u251F",lineUpBoldDownRight:"\u251E",lineUpDoubleDownDoubleRightDouble:"\u2560",lineUpDoubleDownDoubleRight:"\u255F",lineUpDownRightDouble:"\u255E",lineDownLeftRight:"\u252C",lineDownBoldLeftBoldRightBold:"\u2533",lineDownLeftBoldRightBold:"\u252F",lineDownBoldLeftRight:"\u2530",lineDownBoldLeftBoldRight:"\u2531",lineDownBoldLeftRightBold:"\u2532",lineDownLeftRightBold:"\u252E",lineDownLeftBoldRight:"\u252D",lineDownDoubleLeftDoubleRightDouble:"\u2566",lineDownDoubleLeftRight:"\u2565",lineDownLeftDoubleRightDouble:"\u2564",lineUpLeftRight:"\u2534",lineUpBoldLeftBoldRightBold:"\u253B",lineUpLeftBoldRightBold:"\u2537",lineUpBoldLeftRight:"\u2538",lineUpBoldLeftBoldRight:"\u2539",lineUpBoldLeftRightBold:"\u253A",lineUpLeftRightBold:"\u2536",lineUpLeftBoldRight:"\u2535",lineUpDoubleLeftDoubleRightDouble:"\u2569",lineUpDoubleLeftRight:"\u2568",lineUpLeftDoubleRightDouble:"\u2567",lineUpDownLeftRight:"\u253C",lineUpBoldDownBoldLeftBoldRightBold:"\u254B",lineUpDownBoldLeftBoldRightBold:"\u2548",lineUpBoldDownLeftBoldRightBold:"\u2547",lineUpBoldDownBoldLeftRightBold:"\u254A",lineUpBoldDownBoldLeftBoldRight:"\u2549",lineUpBoldDownLeftRight:"\u2540",lineUpDownBoldLeftRight:"\u2541",lineUpDownLeftBoldRight:"\u253D",lineUpDownLeftRightBold:"\u253E",lineUpBoldDownBoldLeftRight:"\u2542",lineUpDownLeftBoldRightBold:"\u253F",lineUpBoldDownLeftBoldRight:"\u2543",lineUpBoldDownLeftRightBold:"\u2544",lineUpDownBoldLeftBoldRight:"\u2545",lineUpDownBoldLeftRightBold:"\u2546",lineUpDoubleDownDoubleLeftDoubleRightDouble:"\u256C",lineUpDoubleDownDoubleLeftRight:"\u256B",lineUpDownLeftDoubleRightDouble:"\u256A",lineCross:"\u2573",lineBackslash:"\u2572",lineSlash:"\u2571"},Wsn={tick:"\u2714",info:"\u2139",warning:"\u26A0",cross:"\u2718",squareSmall:"\u25FB",squareSmallFilled:"\u25FC",circle:"\u25EF",circleFilled:"\u25C9",circleDotted:"\u25CC",circleDouble:"\u25CE",circleCircle:"\u24DE",circleCross:"\u24E7",circlePipe:"\u24BE",radioOn:"\u25C9",radioOff:"\u25EF",checkboxOn:"\u2612",checkboxOff:"\u2610",checkboxCircleOn:"\u24E7",checkboxCircleOff:"\u24BE",pointer:"\u276F",triangleUpOutline:"\u25B3",triangleLeft:"\u25C0",triangleRight:"\u25B6",lozenge:"\u25C6",lozengeOutline:"\u25C7",hamburger:"\u2630",smiley:"\u32E1",mustache:"\u0DF4",star:"\u2605",play:"\u25B6",nodejs:"\u2B22",oneSeventh:"\u2150",oneNinth:"\u2151",oneTenth:"\u2152"},Nxi={tick:"\u221A",info:"i",warning:"\u203C",cross:"\xD7",squareSmall:"\u25A1",squareSmallFilled:"\u25A0",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(\u25CB)",circleCross:"(\xD7)",circlePipe:"(\u2502)",radioOn:"(*)",radioOff:"( )",checkboxOn:"[\xD7]",checkboxOff:"[ ]",checkboxCircleOn:"(\xD7)",checkboxCircleOff:"( )",pointer:">",triangleUpOutline:"\u2206",triangleLeft:"\u25C4",triangleRight:"\u25BA",lozenge:"\u2666",lozengeOutline:"\u25CA",hamburger:"\u2261",smiley:"\u263A",mustache:"\u250C\u2500\u2510",star:"\u2736",play:"\u25BA",nodejs:"\u2666",oneSeventh:"1/7",oneNinth:"1/9",oneTenth:"1/10"},Oxi={...zsn,...Wsn},Bxi={...zsn,...Nxi},Rxi=Pxi(),Lxi=Rxi?Oxi:Bxi,cte=Lxi,wva=Object.entries(Wsn);var Hsn={prefix:{idle:lte.default.blue("?"),done:lte.default.green(cte.tick)},spinner:{interval:80,frames:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"].map(i=>lte.default.yellow(i))},style:{answer:lte.default.cyan,message:lte.default.bold,error:e(i=>lte.default.red(`> ${i}`),"error"),defaultAnswer:e(i=>lte.default.dim(`(${i})`),"defaultAnswer"),help:lte.default.dim,highlight:lte.default.cyan,key:e(i=>lte.default.cyan(lte.default.bold(`<${i}>`)),"key")}};function Gsn(i){if(typeof i!="object"||i===null)return!1;let r=i;for(;Object.getPrototypeOf(r)!==null;)r=Object.getPrototypeOf(r);return Object.getPrototypeOf(i)===r}e(Gsn,"isPlainObject");function Ksn(...i){let r={};for(let a of i)for(let[s,l]of Object.entries(a)){let d=r[s];r[s]=Gsn(d)&&Gsn(l)?Ksn(d,l):l}return r}e(Ksn,"deepMerge");function I8(...i){let r=[Hsn,...i.filter(a=>a!=null)];return Ksn(...r)}e(I8,"makeTheme");function yk({status:i="idle",theme:r}){let[a,s]=P2(!1),[l,d]=P2(0),{prefix:g,spinner:b}=I8(r);return tse(()=>{if(i==="loading"){let S,F=-1,R=setTimeout(Dbr.AsyncResource.bind(()=>{s(!0),S=setInterval(Dbr.AsyncResource.bind(()=>{F=F+1,d(F%b.frames.length)}),b.interval)}),300);return()=>{clearTimeout(R),clearInterval(S)}}else s(!1)},[i]),a?b.frames[l]:typeof g=="string"?g:g[i==="loading"?"idle":i]??g.idle}e(yk,"usePrefix");function EK(i,r){return eRe(a=>{let s=a.get();if(!s||s.dependencies.length!==r.length||s.dependencies.some((l,d)=>l!==r[d])){let l=i();return a.set({value:l,dependencies:r}),l}return s.value})}e(EK,"useMemo");function pte(i){return P2({current:i})[0]}e(pte,"useRef");function vk(i){let r=pte(i);r.current=i,tse(a=>{let s=!1,l=Ebr((d,g)=>{s||r.current(g,a)});return a.input.on("keypress",l),()=>{s=!0,a.input.removeListener("keypress",l)}},[])}e(vk,"useKeypress");var Don=zd(Xsn(),1),Son=zd(Con(),1);function $et(i,r){return i.split(`
|
|
1597
1597
|
`).flatMap(a=>(0,Son.default)(a,r,{trim:!1,hard:!0}).split(`
|
|
1598
1598
|
`).map(s=>s.trimEnd())).join(`
|