@testim/testim-cli 4.179.0 → 4.179.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli.js +1 -1
- package/cli.js.map +2 -2
- package/npm-shrinkwrap.json +88 -34
- package/package.json +2 -2
package/cli.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#! /usr/bin/env node
|
|
2
|
-
"use strict";var sw=Object.create;var hn=Object.defineProperty;var iw=Object.getOwnPropertyDescriptor;var nw=Object.getOwnPropertyNames;var ow=Object.getPrototypeOf,aw=Object.prototype.hasOwnProperty;var I=(s,e)=>()=>(s&&(e=s(s=0)),e);var z=(s,e)=>{for(var t in e)hn(s,t,{get:e[t],enumerable:!0})},Id=(s,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of nw(e))!aw.call(s,i)&&i!==t&&hn(s,i,{get:()=>e[i],enumerable:!(r=iw(e,i))||r.enumerable});return s};var R=(s,e,t)=>(t=s!=null?sw(ow(s)):{},Id(e||!s||!s.__esModule?hn(t,"default",{value:s,enumerable:!0}):t,s)),Xe=s=>Id(hn({},"__esModule",{value:!0}),s);var Ve={};z(Ve,{log:()=>M,measure:()=>lw});function M(...s){if(!xd)return;let e=Date.now();console.log(`${e-cw} ${e-Rd} `,...s),Rd=e}function lw(s,e){if(!xd)return;let t=Date.now();try{s()}finally{console.log(e||s.name,"took",Date.now()-t)}}var xd,cw,Rd,Ge=I(()=>{"use strict";xd=process.env.MEASURE_TESTIM_CLI_PERFORMANCE,cw=Date.now(),Rd=Date.now()});var Xt,Gr=I(()=>{"use strict";Xt="element-6066-11e4-a52e-4f735466cecf"});function ie(s=16){let e="qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890",t="";for(let r=0;r<s;r++){let i=Math.floor(Math.random()*e.length);t+=e[i]}return t}function Ye(s,e,t,r,i){let n="";return i=i?encodeURIComponent(i):"master",e&&t&&(n=`${s}/#/project/${e}/branch/${i}/test/${t}`,r&&(n+=`?result-id=${r}`)),n}function hc(s,e){return`Basic ${Buffer.from(`${s}:${e}`).toString("base64")}`}function Me(s){let e=/^(https?:\/\/)/i,t=new RegExp("^(?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u00a1-\\uffff][a-z0-9\\u00a1-\\uffff_-]{0,62})?[a-z0-9\\u00a1-\\uffff]\\.)+(?:[a-z\\u00a1-\\uffff]{2,}\\.?))(?::\\d{2,5})?(?:[/?#]\\S*)?$","i");return e.test(s)||t.test(s)}var yc=I(()=>{"use strict"});var Tc,Ad,Cd,In=I(()=>{Tc={ngrok:"4.3.3","v8-to-istanbul":"9.1.0","istanbul-lib-coverage":"3.2.0","@bcoe/v8-coverage":"0.2.3","convert-source-map":"1.7.0",multer:"2.0.1"},Ad={"@applitools/eyes-sdk-core":"13.11.34-legacy.1","@applitools/spec-driver-webdriverio":"1.4.29","@segment/analytics-node":"2.1.3","@types/unzip-stream":"0.3.4",ajv:"6.12.6","body-parser":"1.20.3",chalk:"4.1.2","chrome-launcher":"0.15.0",commander:"10.0.0",compression:"1.8.1",cors:"2.8.5","data-uri-to-buffer":"2.0.2",dayjs:"1.11.8",eventsource:"3.0.6","form-data":"4.0.
|
|
2
|
+
"use strict";var sw=Object.create;var hn=Object.defineProperty;var iw=Object.getOwnPropertyDescriptor;var nw=Object.getOwnPropertyNames;var ow=Object.getPrototypeOf,aw=Object.prototype.hasOwnProperty;var I=(s,e)=>()=>(s&&(e=s(s=0)),e);var z=(s,e)=>{for(var t in e)hn(s,t,{get:e[t],enumerable:!0})},Id=(s,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of nw(e))!aw.call(s,i)&&i!==t&&hn(s,i,{get:()=>e[i],enumerable:!(r=iw(e,i))||r.enumerable});return s};var R=(s,e,t)=>(t=s!=null?sw(ow(s)):{},Id(e||!s||!s.__esModule?hn(t,"default",{value:s,enumerable:!0}):t,s)),Xe=s=>Id(hn({},"__esModule",{value:!0}),s);var Ve={};z(Ve,{log:()=>M,measure:()=>lw});function M(...s){if(!xd)return;let e=Date.now();console.log(`${e-cw} ${e-Rd} `,...s),Rd=e}function lw(s,e){if(!xd)return;let t=Date.now();try{s()}finally{console.log(e||s.name,"took",Date.now()-t)}}var xd,cw,Rd,Ge=I(()=>{"use strict";xd=process.env.MEASURE_TESTIM_CLI_PERFORMANCE,cw=Date.now(),Rd=Date.now()});var Xt,Gr=I(()=>{"use strict";Xt="element-6066-11e4-a52e-4f735466cecf"});function ie(s=16){let e="qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890",t="";for(let r=0;r<s;r++){let i=Math.floor(Math.random()*e.length);t+=e[i]}return t}function Ye(s,e,t,r,i){let n="";return i=i?encodeURIComponent(i):"master",e&&t&&(n=`${s}/#/project/${e}/branch/${i}/test/${t}`,r&&(n+=`?result-id=${r}`)),n}function hc(s,e){return`Basic ${Buffer.from(`${s}:${e}`).toString("base64")}`}function Me(s){let e=/^(https?:\/\/)/i,t=new RegExp("^(?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u00a1-\\uffff][a-z0-9\\u00a1-\\uffff_-]{0,62})?[a-z0-9\\u00a1-\\uffff]\\.)+(?:[a-z\\u00a1-\\uffff]{2,}\\.?))(?::\\d{2,5})?(?:[/?#]\\S*)?$","i");return e.test(s)||t.test(s)}var yc=I(()=>{"use strict"});var Tc,Ad,Cd,In=I(()=>{Tc={ngrok:"4.3.3","v8-to-istanbul":"9.1.0","istanbul-lib-coverage":"3.2.0","@bcoe/v8-coverage":"0.2.3","convert-source-map":"1.7.0",multer:"2.0.1"},Ad={"@applitools/eyes-sdk-core":"13.11.34-legacy.1","@applitools/spec-driver-webdriverio":"1.4.29","@segment/analytics-node":"2.1.3","@types/unzip-stream":"0.3.4",ajv:"6.12.6","body-parser":"1.20.3",chalk:"4.1.2","chrome-launcher":"0.15.0",commander:"10.0.0",compression:"1.8.1",cors:"2.8.5","data-uri-to-buffer":"2.0.2",dayjs:"1.11.8",eventsource:"3.0.6","form-data":"^4.0.4",express:"4.21.2",fkill:"7.2.1","https-proxy-agent":"7.0.2","istanbul-lib-report":"3.0.0","istanbul-reports":"3.1.5",jsonwebtoken:"9.0.0",linkedom:"0.18.0",lodash:"4.17.21","memory-fs":"0.5.0",ms:"2.1.2","node-fetch":"2.7.0","object-hash":"3.0.0",ora:"5.4.1","p-limit":"4.0.0","p-retry":"4.6.2",pako:"1.0.11",portfinder:"1.0.28","promise-queue":"2.2.5",prompts:"2.4.2","proxy-agent":"6.3.1","rox-node":"5.4.12",semver:"7.6.0","serialize-error":"7.0.1","socket.io-client":"4.8.0","source-map-support":"0.5.19",superagent:"9.0.1","superagent-proxy":"3.0.0","test-exclude":"7.0.0","ua-parser-js":"0.7.39","unzip-stream":"0.3.4",uuid:"11.0.5","validate-npm-package-name":"3.0.0",webdriverio:"8.44.1",winston:"3.11.0","winston-transport":"4.6.0",ws:"8.17.1",xml2js:"0.6.2",yaml:"2.2.2"},Cd={node:">= 18.0.0"}});var hr,yr,Pd,qs,dw,Yt,kd,Od,Rn,ot,_d,be,Ld,Dd,xn,He,wc,Nd,An,Md,Fd,ex,tx,Ud,Bd,jd,$d,vc,Wd,Sc,Vd,zs,Ks,ce=I(()=>{"use strict";hr=process.env.SERVICES_HOST||"https://services.testim.io",yr="https://app.testim.io";process.env.GATEWAY_URL&&(process.env.CORALOGIX_URL=`${process.env.GATEWAY_URL}/testim/coralogix/api/v1/logs`,process.env.SERVICES_HOST=`${process.env.GATEWAY_URL}/testim/services`,process.env.EXTENSION_SERVICES_HOST=process.env.TUNNEL_GATEWAY?process.env.SERVICES_HOST:hr,hr=process.env.SERVICES_HOST);Pd=process.env.TESTIM_REGION||"us-west-2",qs=process.env.RUNNER_ENVIRONMENT||"production",dw={production:"",staging:".staging",development:".dev"},Yt=process.env.EXTENSION_SP_S3_HOST||`https://playback-components${dw[qs]||""}.testim.io`,kd=parseInt(process.env.DISABLE_AGENT_ORIGIN_CHECK||"0",10),Od=parseInt(process.env.DISABLE_DEBUGGER_INFINITE_TIMEOUT||"0",10),Rn=parseInt(process.env.OVERRIDE_TIMEOUTS||"0",10),ot=process.env.EDITOR_URL,_d=process.env.WEBSOCKET_HOST||`${hr}/ws`,be=()=>hr,Ld=parseInt(process.env.LOGGER_CONSOLE||"0",10),Dd=parseInt(process.env.LOGGER_DEBUG||"0",10),xn=parseInt(process.env.WEBDRIVER_DEBUG||"0",10),He=parseInt(process.env.IS_ON_PREM||"0",10),wc=process.env.REQUESTS_QUEUE_SIZE?parseInt(process.env.REQUESTS_QUEUE_SIZE,10):void 0,Nd=parseInt(process.env.DEBUG_MODE||"0",10),An=process.env.TESTIM_CONCURRENT_WORKER_COUNT?parseInt(process.env.TESTIM_CONCURRENT_WORKER_COUNT,10):null,Md=process.env.ROLLOUT_KEY||"5b5560729601aa6484276518",Fd=process.env.CORALOGIX_PRIVATE_KEY||"d0eb01da-f966-1663-63c6-8871225d7c39",ex=parseInt(process.env.DF_ENABLE_VIDEO||"0",10),tx=process.env.APPIUM_VERSION||"1.10.1",Ud=process.env.GATEWAY_URL,Bd=()=>process.env.EXTENSION_SERVICES_HOST||hr,jd=5*60*1e3,$d=40,vc=process.env.TDC_MOBILE_API_BASE_URL||"https://api.tdc.tricentis-cloud.com",Wd=process.env.TDC_DEVICES_API_PATH||"v0",Sc=process.env.TDC_APPS_API_PATH||"v1",Vd=process.env.TVC_MOBILE_API_URL||"https://api.waldo.com",zs=process.env.BROWSERSTACK_APPS_API_URL||"https://api-cloud.browserstack.com/app-automate",Ks=s=>{hr=s,process.env.SERVICES_HOST=s,process.env.EXTENSION_SERVICES_HOST=process.env.TUNNEL_GATEWAY?process.env.SERVICES_HOST:hr}});var Gd,Cn,Hd=I(()=>{"use strict";Gd=R(require("superagent"));ce();Cn=class{constructor(e){this.logs=[];this.url=process.env.CORALOGIX_URL||"https://ingress.coralogix.com/logs/v1/bulk",this.token=Fd,this.applicationName=e.applicationName,this.subsystemName=e.subsystemName,this.flushIntervalMs=e.flushIntervalMs||2e3,this.maxBufferedLogsCount=e.maxBufferedLogsCount||50,this.interval=setInterval(()=>this.flushLogs(),this.flushIntervalMs)}addLog(e){this.logs.push(e),this.logs.length>=this.maxBufferedLogsCount&&this.flushLogs()}setProxy(e){this.proxy=e}async waitForFlush(){clearInterval(this.interval),await this.flushLogs()}async flushLogs(){try{if(this.logs.length===0)return;let e={applicationName:this.applicationName,subsystemName:this.subsystemName,logEntries:[...this.logs]};this.logs=[];let t=Gd.default.post(this.url).set("Content-Type","application/json; charset=UTF-8").set("Authorization",`Bearer ${this.token}`).send(e);this.proxy&&t.proxy(this.proxy),await t}catch{}}}});var zd={};z(zd,{CoralogixTransport:()=>Ec});var qd,mw,fw,Ec,Kd=I(()=>{"use strict";qd=R(require("winston-transport"));Hd();mw={debug:1,silly:2,verbose:2,silent:2,info:3,http:3,warn:4,warning:4,error:5,critical:6,crit:6},fw=["err","error","reason","e"],Ec=class extends qd.default{constructor(t){super(t);this.name="Coralogix Transport",this.category=t.category,this.logger=new Cn({applicationName:"testim",subsystemName:"runner"})}log(t,r){let{category:i,level:n,message:o,meta:a={},...c}=t,l={...a,...c},d={severity:mw[n],text:o,category:i||this.category};l.className&&(d.className=l.className),l.methodName&&(d.methodName=l.methodName),l.threadId&&(d.threadId=l.threadId),delete l.className,delete l.methodName,delete l.threadId,delete l.category,delete l.level,delete l.message;let m=!1;a instanceof Error&&(m=!0,l.msg=a.message+a.stack,o&&(l.msg=`${o}
|
|
3
3
|
${l.msg}`));for(let u of fw)a[u]instanceof Error&&(l[u]={message:a[u].message,stack:a[u].stack,name:a[u].name,type:a[u].type,cause:a[u].cause,...a[u]});Object.keys(l).length>0&&(o&&!m&&(l.msg=o),d.text=JSON.stringify(l)),this.logger.addLog(d),r(null,!0)}setProxy(t){this.logger.setProxy(t)}async waitForFlush(){return await this.logger.waitForFlush()}}});function yw(){let s=[],e=()=>Promise.resolve(),t=r=>{};if(!He){let{CoralogixTransport:r}=(Kd(),Xe(zd)),i=new r({category:"ROOT"});s.push(i),e=()=>i.waitForFlush(),t=n=>i.setProxy(n)}if(Ld){let r={depth:5,colors:!0};s.push(new ht.transports.Console({format:ht.format.combine(ht.format.colorize({all:!0,colors:{info:"blue",error:"red",warning:"yellow"}}),ht.format.timestamp({format:"HH:mm:ss:SSS"}),ht.format.printf(i=>`[${i.timestamp}] ${i.level} ${i.category}: ${i.message} ${kn.inspect(i.meta,r)}`))}))}return[s,e,t]}function tm(s){Ic=s}function rm(s){em=s}function sm(s){He||!s||ww(s)}function Xd(s){return{projectId:em,time:new Date().toISOString(),region:$t.getRegion(),...Ic&&!s&&{executionId:Ic}}}function C(s){return new $t(Ew.child({category:s}))}var Yd,ht,kn,Pn,Qd,gw,hw,Jd,Zd,bw,Tw,ww,vw,Sw,Ew,Ic,em,$t,W=I(()=>{"use strict";Yd=R(require("node:os")),ht=R(require("winston"));ce();kn=R(require("node:util")),Pn=R(require("chalk")),Qd=R(require("dayjs"));F();gw=Yd.hostname(),hw=at();Jd={depth:5,colors:!0},Zd=(s,e,t)=>{let r=`[${(0,Qd.default)().format("HH:mm:ss:SSS")}]`,i=kn.inspect(e,Jd),n=kn.inspect(t,Jd);return`${Pn.default.white(r)} ${Pn.default.reset()}SessionPlayer-${Pn.default.red(s)} ${i} ${n}`},[bw,Tw,ww]=yw(),vw=Dd?"debug":"info",Sw={release:Boolean(!1),branch:"test"},Ew=ht.createLogger({levels:ht.config.syslog.levels,level:vw,transports:bw,defaultMeta:{name:"runner",hostname:gw,nodeVersion:process.version,runnerVersion:hw,...Sw}}),Ic=null,em=null;$t=class{constructor(e){this._logger=e;this.debug=this.debug.bind(this),this.info=this.info.bind(this),this.warn=this.warn.bind(this),this.error=this.error.bind(this),this.fatal=this.fatal.bind(this)}static setRegion(e){$t.region=e}static getRegion(){return $t.region}debug(e,t={}){this.innerLog("debug",e,t)}info(e,t={}){this.innerLog("info",e,t)}warn(e,t={}){this.innerLog("warning",e,t)}error(e,t={}){this.innerLog("error",e,t)}fatal(e,t={}){this.innerLog("crit",e,t)}innerLog(e,t,r={}){let{executionId:i}=r;try{this._logger.log(e,{meta:r,message:t,...Xd(i)})}catch(n){try{this._logger.log("crit",{message:`failed to log message ${n.message}, ${n.stack}`,...Xd(i)})}catch{}}}waitForFlush(){return Tw()}}});var Dn,Hr,x,Qt,br,kt,On,qr,le,Js,ct,Zt,Ot,_n,zr,Ln,Xs,Y=I(()=>{"use strict";Dn=require("p-retry"),Hr=class extends Error{constructor(){super(...arguments);this.name="NoArgsError"}},x=class extends Error{constructor(){super(...arguments);this.name="ArgError"}},Qt=class extends Error{constructor(){super(...arguments);this.name="StopRunOnError"}},br=class extends Error{constructor(t,r){super(t instanceof Error?t.message:t,{cause:t});this.type=r}},kt=class extends Dn.AbortError{},On=class extends Dn.AbortError{},qr=class extends Dn.AbortError{},le=class extends Error{},Js=class extends Error{},ct=class extends Error{constructor(){super(...arguments);this.name="GridError"}toString(){return this.message}},Zt=class extends ct{constructor(){super(...arguments);this.name="GridConcurrencyError"}},Ot=class extends Error{constructor(){super(...arguments);this.name="NpmPackageError"}},_n=class extends Error{constructor(){super(...arguments);this.message="selenium driver crashed";this.name="SeleniumCrashError"}},zr=class extends Error{constructor(t){super(`Testim had missing write access to ${t}`);this.path=t}},Ln=class extends Error{constructor(e){super(`Package for CLI action need to have a CommonJS export which the package ${e} does not have`)}},Xs=class extends Error{constructor(e=!1){let t="not implemented";e&&(t="should be implemented on descendant"),super(t)}}});function Rc(s){return!!s&&(typeof s=="object"||typeof s=="function")&&typeof s.then=="function"&&typeof s.catch=="function"}function de(s){return(0,om.setTimeout)(s)}function xc(s,e){let t=new Promise((r,i)=>{e.onabort=()=>{i(e.reason)}});return Promise.race([s,t])}function ue(s,e,t="Timeout Error"){Rn&&!im&&(im=!0,console.log("Debugger connected - timeouts were overridden to 10 minutes to improve debugging"));let r=new le(t);return e=Rn?Number(Rn)||6e5:e,Promise.race([s,de(e).then(()=>{throw r})])}async function ne(s,e,{concurrency:t}={}){if(t){nm||=(await import("p-limit")).default;let r=nm(t);return await Promise.all(Array.from(s,(i,n)=>r(()=>e(i,n))))}return await Promise.all(Array.from(s,e))}function er(s){return new Promise((e,t)=>{s((r,i)=>r?t(r):e(i))})}var om,im,nm,Ac=I(()=>{"use strict";om=require("timers/promises");Y();ce();im=!1});var Qs,am,Rw,Ys,cm,xw,Aw,lm,um=I(()=>{"use strict";Qs=R(require("lodash"));ce();am=require("dns");W();Ac();Rw=C("http-request-counters"),Ys=!1,cm=async()=>{if(He)return!0;let s=["www.google.com","www.facebook.com","www.microsoft.com","testim.io"];try{let e=Boolean(await ne(s,t=>am.promises.lookup(t)));return e||(Ys=!0),e}catch{return Rw.error("network connectivity test failed"),Ys=!0,!1}},xw=Qs.throttle(cm,10*1e3),Aw=60*1e3*15,lm=()=>{let s={call:new Map,success:new Map,fail:new Map};function e(i,n){let o=i.get(n)||0;i.set(n,o+1),setTimeout(()=>{let a=i.get(n)||1;i.set(n,a-1)},Aw)}function t(i,n=i.name){return async function(...o){e(s.call,n);try{let a=await i.call(null,...o);return e(s.success,n),a}catch(a){throw e(s.fail,n),Ys||xw(),a}}}async function r(){if(Ys||!await cm())return!1;let i=Qs.sum([...s.fail.values()]),n=Qs.sum([...s.call.values()]);return i<n*.1}return r.counters=s,t.counters=s,t.isNetworkHealthy=r,t.didNetworkConnectivityTestFail=()=>Ys,t}});var Qe={};z(Qe,{deleteReq:()=>Zs,didNetworkConnectivityTestFail:()=>Dc,download:()=>_c,get:()=>ve,getFullRes:()=>Lw,getText:()=>kc,head:()=>Dw,isNetworkHealthy:()=>Lc,post:()=>qe,postForm:()=>ei,postText:()=>_w,put:()=>Oc});function Pw(){return global.caFileContent}function kw(s,e){let t=[];s.on("data",r=>{t.push(r)}),s.on("end",()=>{e(null,Buffer.concat(t))})}function Ow(){return!("proxy"in yt.default.Request.prototype)&&global.SuperagentProxy&&global.SuperagentProxy(yt.default),global.proxyUri}function Tr(s,e=!1){let t=Pw();t&&s.ca(t);let r=!e&&Ow();r&&s.proxy(r)}async function pm(s,e,t={},r=Kr,i=0){let n=yt.default.post(s).send(e).timeout(r).set(t);Tr(n),i&&n.retry(i);try{return await n}catch(o){throw o.url=s,o.originalRequestTimeout=r,o.additionalSetHeaders=t,o}}async function Pc(s,e,t={},r=Kr,{isBinary:i=!1,skipProxy:n=!1}={}){let o=yt.default.get(s).query(e||{}).timeout(r).set(t);return i&&o.buffer(!0),Tr(o,n),await o}var yt,Cc,lt,Kr,Cw,Wt,Zs,qe,ei,kc,_w,ve,Lw,Dw,Oc,_c,Lc,Dc,ze=I(()=>{"use strict";yt=R(require("superagent"));W();um();Cc=C("http-request"),lt=lm(),Kr=parseInt(process.env.DEFAULT_REQUEST_TIMEOUT||"0",10)||3e4,Cw=6e4;Wt=(s,e,t)=>{let r=e.response;e.response instanceof yt.default.Response&&typeof r.toError=="function"&&(e=e.response.toError(),e.requestHeaders=r==null?void 0:r.header,e.responseHeaders=r==null?void 0:r.headers);let i=new Error("").stack;throw Cc.error(s,{...t,error:e,logErrorAndRethrowStack:i}),e};Zs=lt(async(s,e={},t={},r=Kr)=>{try{let i=yt.default.delete(s).send(e).timeout(r).set(t);Tr(i);let n=await i;return n.type==="text/plain"?n.text:n.body}catch(i){return Wt("failed to delete request",i,{url:s})}}),qe=lt(async({url:s,body:e,headers:t,timeout:r,retry:i})=>{try{let n=await pm(s,e,t,r,i);return n.type==="text/plain"?n.text:n.body}catch(n){return Wt("failed to post request",n,{url:s})}});ei=lt(async(s,e,t,r={},i=Kr)=>{let n=yt.default.post(s).type("form").timeout(i).set(r);n.field(e),Object.entries(t).forEach(([o,a])=>{n.attach(o,a.buffer,a.fileName)}),Tr(n);try{let o=await n;return o.type==="text/plain"?o.text:o.body}catch(o){return Wt("failed to post request",o,{url:s})}});kc=lt(async(s,e,t)=>{try{return(await Pc(s,e,t)).text}catch(r){return Wt("failed to getText request",r,{url:s,query:e})}}),_w=lt(async({url:s,body:e,headers:t,timeout:r,retry:i})=>{try{return(await pm(s,e,t,r,i)).text}catch(n){return Wt("failed to post request",n,{url:s})}}),ve=lt(async(s,e,t,r,i)=>{try{return(await Pc(s,e,t,r,i)).body}catch(n){return Wt("failed to get request",n,{url:s,query:e})}}),Lw=lt((s,e,t,r)=>Pc(s,e,t,r)),Dw=lt(async s=>{let e=yt.default.head(s).timeout(Kr);Tr(e);try{return await e}catch(t){return Wt("failed to head request",t,{url:s})}}),Oc=lt(async(s,e,t={},r=Kr)=>{let i=yt.default.put(s).send(e).timeout(r).set(t);Tr(i);try{return(await i).body}catch(n){return Wt("failed to put request",n,{url:s})}}),_c=lt(async s=>{Cc.info("start to download",{url:s});let e=yt.default.get(s).set("User-Agent","Testim.io").timeout(Cw).buffer(!0).parse(kw);Tr(e);try{let t=await e;return Cc.info("finished to download",{url:s}),t}catch(t){return Wt("failed to download",t,{url:s})}}),Lc=lt.isNetworkHealthy,Dc=lt.didNetworkConnectivityTestFail});function bt(){let s;return require.main?(require.main.filename.includes("/src")||require.main.filename.includes("\\src")?s=Vt.resolve(__dirname,"../../"):s=Vt.resolve(__dirname,""),s):process.cwd()}function Nn(s,e){return Me(s)?e||Vt.join(process.cwd(),s.replace(/^.*[\\/]/,"")):e||Vt.basename(s)}function at(){try{return require(`${__dirname}/package.json`).version}catch{return""}}function Fc(){try{return Cd.node}catch{return""}}async function fm(s,e,t=!0){let r=await ut.promises.readdir(s,{withFileTypes:!0});await ut.promises.mkdir(e,{recursive:t});for(let i of r){let n=Vt.join(s,i.name),o=Vt.join(e,i.name);i.isDirectory()?await fm(n,o):await ut.promises.copyFile(n,o)}}async function Te(s){try{return await ut.promises.access(s),!0}catch(e){if(e.code==="ENOENT")return!1;throw e}}var Vt,dm,mm,ut,Nw,Gt,Ze,Mn,Nc,je,Mc,Uc=I(()=>{"use strict";Vt=R(require("node:path"));yc();In();dm=R(require("unzip-stream")),mm=R(require("p-retry")),ut=require("node:fs"),Nw=3;Gt=async s=>{let e=await Promise.resolve().then(()=>(ze(),Qe));return(0,mm.default)(()=>e.download(s),{retries:Nw,factor:1})},Ze=async(s,e)=>{let t=await Gt(s);return ut.promises.writeFile(e,t.body)};Mn=async(s,e)=>{let t=Nn(s,e);return Me(s)?Ze(s,t):ut.promises.copyFile(s,t)},Nc=async s=>Me(s)?Gt(s):ut.promises.readFile(s),je=async(s,e)=>(0,ut.createReadStream)(s).pipe(dm.Extract({path:e})),Mc=s=>(0,ut.statSync)(s).size/1e6});var Ht={};z(Ht,{APPIUM_SESSION_MESSAGE:()=>Vc,CLI_MODE:()=>J,MOBILE_APP_SOURCE:()=>Fn,MOBILE_RUN_SKIP_REASON:()=>Wc,OPERANDS:()=>ri,REGION_CONFIG:()=>Xr,X_HEADER_RUNNER_ID:()=>Gc,gridMessages:()=>Tt,gridTypes:()=>N,mobileWeb:()=>jc,runnerStatus:()=>Bc,runnerTestStatus:()=>he,socketEventTypes:()=>_t,stepResult:()=>Jr,test:()=>$c,testRunStatus:()=>ti,testStatus:()=>et,timeoutMessages:()=>Pe});var Pe,ti,Bc,he,et,Tt,jc,$c,_t,J,N,Jr,Fn,Wc,Vc,Gc,Xr,ri,ae=I(()=>{"use strict";Pe={GET_BROWSER_TIMEOUT_MSG:"get-browser-timeout",TEST_START_TIMEOUT_MSG:"test-start-timeout",TEST_COMPLETE_TIMEOUT_MSG:"test-complete-timeout",TEST_REACHED_CUSTOM_TIMEOUT_MSG:"test-reached-custom-timeout"},ti={COMPLETED:"completed"},Bc={RUNNING:"RUNNING",SKIPPED:"SKIPPED",FINISHED:"FINISHED",ABORTED:"ABORTED",QUEUED:"QUEUED",TIMEOUT:"TIMEOUT"},he={PASSED:"PASSED",FAILED:"FAILED",ABORTED:"ABORTED",SKIPPED:"SKIPPED",QUEUED:"QUEUED",PENDING:"PENDING"},et={DRAFT:"draft",EVALUATING:"evaluating",ACTIVE:"active",QUARANTINE:"quarantine"},Tt={NOT_FOUND:"The specified grid is not available",UNKNOWN:"Test couldn't get browser - unknown error"},jc={MOBILE_WEB_REMOTE_RUN_HEADER_SPACING:50},$c={HIDDEN_PARAM:"TST_HIDDEN_PARAM"},_t={TEST_RESULT_CREATED:"test-result-created",TEST_RESULT_UPDATED:"test-result-updated",REMOTE_STEP_SAVED:"remote-step-saved"},J={EXTENSION:"extension",SELENIUM:"selenium",APPIUM:"appium"},N={TESTIM_ENTERPRISE:"testimEnterprise",TESTIM:"testim",TESTIM_PRIVATE:"testimPrivate",LAMBDATEST:"lambdaTest",TESTIM_LAMBDATEST:"testimLambdaTest",DEVICE_FARM:"testimDF",HYBRID:"testimHybrid",BROWSERSTACK:"browserstack",SAUCELABS:"saucelabs",TESTIM_TDC:"testimTDC",TESTIM_TVC:"testimTVC"},Jr={SETUP_TIMEOUT:"setup-timeout",NETWORK_ERROR:"network-error",GRID_ERROR:"grid-error",SELENIUM_ERROR:"selenium-error",BROWSER_CLOSED:"browser-closed",MOBILE_SESSION_ERROR:"mobile-session-error",UNKNOWN_ERROR:"unknown-error",KEEP_ALIVE_FAILED:"keep-alive-failed"},Fn={FROM_LIBRARY:"from-library",FROM_DEVICE:"from-device"},Wc={APP_FROM_DEVICE:"app-from-device",VIRTUAL_BUILD:"virtual-build"},Vc={APP_NOT_EXIST_ON_DEVICE:"used to start the app doesn't exist or cannot be launched",APP_NEVER_STARTED:"never started",DEVICE_OS_VERSION_TOO_LOW:"DeviceOSVersionTooLow",TIMEOUT_ERROR:"Timeout awaiting 'request'",SAUCELABS_APP_IS_NOT_INSTALLED:"Original error: 'app' option is required for reinstall"},Gc="X-Testim-Runner-ID",Xr={TTL:1e3*60*60*24,CACHE_FN_NAME:"setRegionConfig"},ri=(t=>(t.AND="AND",t.OR="OR",t))(ri||{})});function si(s,e){var t,r,i,n,o,a;return(t=s.browserstack)!=null&&t.browserName||(r=s.saucelabs)!=null&&r.browserName?[(i=s.browser)==null?void 0:i.toLowerCase()]:(n=s.testConfigNames)!=null&&n.length||(o=s.testConfigIds)!=null&&o.length||s.testPlan.length||s.testPlanIds.length||!s.browser?[...new Set(e.map(c=>{var l;return(l=c.runConfig)==null?void 0:l.browserValue}))]:[(a=s.browser)==null?void 0:a.toLowerCase()]}function Mw(){let{argv:s}=process;if(s.includes("--remoteRunId"))return{remoteRunId:s[s.indexOf("--remoteRunId")+1],projectId:s[s.indexOf("--project")+1],token:s[s.indexOf("--token")+1]}}var ii,gm,tt,Fw,Uw,Bw,jw,$w,Hc,qc,hm=I(()=>{"use strict";ae();ii=s=>{var e,t;return Boolean(((e=s.testPlan)==null?void 0:e.length)||((t=s.testPlanIds)==null?void 0:t.length))},gm=s=>Boolean(s.resultId&&s.source==="remote-run"),tt=(s,e)=>s.testStatus===et.QUARANTINE&&!gm(e)&&!e.runQuarantinedTests;Fw=s=>Boolean(s.loginMode),Uw=s=>Boolean(s.tunnelOnlyMode),Bw=s=>Boolean(s.createPrefechedData),jw=s=>Boolean(s.installLazyDepsMode),$w=s=>Boolean(s.agentMode),Hc=(s,e)=>{s.forEach((t,r)=>{e.has(t)&&(s[r]=`--${t}`)})},qc=s=>{let e=[];return Object.entries(s).forEach(([t,r])=>{r&&e.push(`--${t}`,r)}),e}});function Bn(s=0){return Un.default.duration(s).format("HH:mm:ss.SSS")}function zc(s=0){return Un.default.duration(s).asSeconds()}var Un,ym,jn,bm=I(()=>{"use strict";Un=R(require("dayjs")),ym=R(require("dayjs/plugin/duration"));Un.default.extend(ym.default);jn=s=>{let e=Math.floor(s.asMinutes()),t=s.asSeconds()%60||0;return e>0?`${e} min ${Math.floor(t)} sec`:`${Math.floor(t)} sec`}});var ni,Yr,tr,Tm,Qr,wm=I(()=>{"use strict";ae();ni=s=>!(!s||"fileName"in s),Yr=(s,e)=>{if(e===N.TESTIM_TVC)return!1;if(s){if(s.appMetadata&&"iOSSupportedTargetDevice"in s.appMetadata)return s.appMetadata.iOSSupportedTargetDevice==="virtual";if("fileName"in s)return s.fileName.endsWith(".app")}return!1},tr=s=>{var e,t;return((e=s.projectData)==null?void 0:e.type)==="ios"||((t=s.projectData)==null?void 0:t.type)==="android"},Tm=s=>s===N.TESTIM_TVC,Qr=(s,e)=>Tm(e)||!s.flags.allowAppFromDeviceRuns.isEnabled()});function Kc(s=4e3){let e=process.memoryUsage(),t=r=>Math.round(r/1024/1024*100)/100;return{isOverThreshold:t(e.rss)>s,rss:`${t(e.rss)} MB -> Resident Set Size - total memory allocated for the process execution`,heapTotal:`${t(e.heapTotal)} MB -> total size of the allocated heap`,heapUsed:`${t(e.heapUsed)} MB -> actual memory used during the execution`,external:`${t(e.external)} MB -> V8 external memory`}}var vm=I(()=>{"use strict"});var Q={};z(Q,{OSS:()=>Zr,TESTIM_BROWSER_DIR:()=>wt,buildBasicHeader:()=>hc,calcPercentile:()=>Vn,copyDir:()=>fm,delay:()=>de,doesPathExist:()=>Te,download:()=>Gt,downloadAndSave:()=>Ze,extractElementId:()=>Fe,formatTimeoutDuration:()=>jn,getArgsOnRemoteRunFailure:()=>Mw,getBrowserInfo:()=>Vw,getCdpAddressForHost:()=>Sr,getCliLocation:()=>bt,getDuration:()=>Bn,getDurationSec:()=>zc,getEnginesVersion:()=>Fc,getEnvironmentGitBranch:()=>vr,getLinksFromUnescapeHTML:()=>ci,getLocalFileSizeInMB:()=>Mc,getMemorySnapshot:()=>Kc,getPlanType:()=>Wn,getRunConfigByBrowserName:()=>oi,getRunnerVersion:()=>at,getSource:()=>Mn,getSourceAsBuffer:()=>Nc,getSourcePath:()=>Nn,getTestUrl:()=>Ye,getUniqBrowsers:()=>si,groupTestsByRetries:()=>Xc,guid:()=>ie,hasTestPlanFlag:()=>ii,isAgentMode:()=>$w,isAppFromDevice:()=>ni,isAppFromDeviceDisabled:()=>Qr,isCreatePrefetchedDataMode:()=>Bw,isInstallLazyDepsMode:()=>jw,isLoginMode:()=>Fw,isMobileProject:()=>tr,isPromise:()=>Rc,isQuarantineAndNotRemoteRun:()=>tt,isRemoteRun:()=>gm,isTestimVirtualGrid:()=>Tm,isTunnelOnlyMode:()=>Uw,isURL:()=>Me,promiseAbort:()=>xc,promiseFromCallback:()=>er,promiseMap:()=>ne,promiseTimeout:()=>ue,removePropertyFromObject:()=>$n,replaceArgsWithNoDashes:()=>Hc,sanitizeNumberValue:()=>wr,shouldBlockVirtualIosBuild:()=>Yr,spreadObjectToArgs:()=>qc,unescapeHTML:()=>ai,unzipFile:()=>je});function wr(s,e){let t=Number(s);return Number.isNaN(t)||t<=0?e:t}function Vw(s){return s=s.toLowerCase(),Jc.find(e=>e.browserValue===s)}function oi(s,e,t){s=s==null?void 0:s.toLowerCase();let r=Jc.find(n=>n.browserName.toLowerCase()===s||s.includes(n.synonyms))||Jc[0],i=Zr.find(n=>n.osName==="Windows 10");return e&&(e.platform?i=Zr.find(n=>n.sl.platform===e.platform):e.platformName&&(i=Zr.find(n=>n.sl.platformName===e.platformName))),t&&(t.os_version?i=Zr.find(n=>n.bs.os_version===t.os_version):t.platform&&(i=Zr.find(n=>n.bs.platform===t.platform))),es.merge(r,i)}function vr(){return process.env.GIT_BRANCH||process.env.CIRCLE_BRANCH||process.env.TRAVIS_BRANCH||process.env.CI_BRANCH}function $n(s,e,t){for(let r in s)Object.hasOwn(s,r)&&(t(r,e)?delete s[r]:typeof s[r]=="object"&&$n(s[r],e,t))}function Fe(s){return s.ELEMENT||s[Xt]}function Wn(s){s||={};let e=Date.now(),t=s.expireAt||s.expireAT;return s.plan!=="free"?"pro":t?t<e?"free":"trial":"free"}function Xc(s=[]){return es.chain(s).groupBy(e=>e.originalTestResultId||e.resultId).values().reduce((e,t)=>{if(!t)return e;if(t.length===1)return e.push(t[0]),e;let r=t.slice().sort((n,o)=>{let a=typeof n.retryCount=="number"?n.retryCount:1,c=typeof o.retryCount=="number"?o.retryCount:1;return a===c?n.startTime-o.startTime:(n.retryCount??0)-(o.retryCount??0)}),i=es.cloneDeep(r.at(-1));return i&&(i.retryTestResults=r,e.push(i)),e},[]).compact().value()}function ai(s){return xm.parseFromString(`<html><body>${s}</body></html>`,"text/html").documentElement.textContent}function ci(s){return[...xm.parseFromString(`<html><body>${s}</body></html>`,"text/html").getElementsByTagName("a")].map(t=>t.href).filter(Boolean)}async function Sr(s,e){let t=await Promise.resolve().then(()=>(ze(),Qe));try{return(await t.get(`http://${s}/json/version`,void 0,void 0,e)).webSocketDebuggerUrl}catch{throw new Error("unable to connect to devtools server")}}var Em,es,Im,Rm,Ww,wt,Sm,Zr,Jc,Vn,xm,F=I(()=>{"use strict";Em=R(require("os")),es=R(require("lodash")),Im=R(require("path")),Rm=require("linkedom");Gr();Uc();hm();bm();yc();Ac();wm();vm();Ww=Em.homedir(),wt=Im.join(Ww,".testim-browser-profile"),Sm="133",Zr=[{osName:"Linux",bs:{os:"LINUX"},sl:{platform:"Linux"},lt:{platform:"Linux"}},{osName:"Windows 11",bs:{os:"WINDOWS",os_version:"11"},sl:{platform:"Windows 11"},lt:{platform:"Windows 11"}},{osName:"Windows 10",bs:{os:"WINDOWS",os_version:"10"},sl:{platform:"Windows 10"},lt:{platform:"Windows 10"}},{osName:"Windows 8",bs:{os:"WINDOWS",os_version:"8"},sl:{platform:"Windows 8"}},{osName:"Windows 8.1",bs:{os:"WINDOWS",os_version:"8.1"},sl:{platform:"Windows 8.1"}},{osName:"Windows 7",bs:{os:"WINDOWS",os_version:"7"},sl:{platform:"Windows 7"}},{osName:"Windows XP",bs:{os:"WINDOWS",os_version:"XP"},sl:{platform:"Windows XP"}},{osName:"macOS Sonoma",bs:{os:"OS X",os_version:"Sonoma",safari_version:"17"},sl:{},lt:{platform:"macOS Sonoma",safari_version:"17"}},{osName:"macOS Ventura",bs:{os:"OS X",os_version:"Ventura",safari_version:"16.5"},sl:{platform:"macOS 13",safari_version:"latest"},lt:{platform:"macOS Ventura",safari_version:"16"}},{osName:"macOS Monterey",bs:{os:"OS X",os_version:"Monterey",safari_version:"15.6"},sl:{platform:"macOS 12",safari_version:"latest"},lt:{platform:"macOS Monterey",safari_version:"15"}},{osName:"macOS Big Sur",bs:{os:"OS X",os_version:"Big Sur",safari_version:"14.1"},sl:{platform:"macOS 11",safari_version:"latest"}},{osName:"macOS Catalina",bs:{os:"OS X",os_version:"Catalina",safari_version:"13.1"},sl:{platform:"macOS 10.15",safari_version:"latest"}},{osName:"macOS Mojave",bs:{os:"OS X",os_version:"Mojave",safari_version:"12.1"},sl:{platform:"macOS 10.14",safari_version:"latest"}},{osName:"macOS High Sierra",bs:{os:"OS X",os_version:"High Sierra",safari_version:"11.1"},sl:{platform:"macOS 10.13",safari_version:"latest"}},{osName:"macOS Sierra",bs:{os:"OS X",os_version:"Sierra",safari_version:"10.1"},sl:{platform:"macOS 10.12",safari_version:"latest"}},{osName:"OS X El Capitan",bs:{os:"OS X",os_version:"El Capitan",safari_version:"9.1"},sl:{platform:"OS X 10.11",safari_version:"latest"}},{osName:"OS X Yosemite",bs:{os:"OS X",os_version:"Yosemite",safari_version:"8"},sl:{platform:"OS X 10.10",safari_version:"latest"}},{osName:"OS X Mavericks",bs:{os:"OS X",os_version:"Mavericks",safari_version:"7.1"},sl:{platform:"OS X 10.9",safari_version:"latest"}},{osName:"OS X Mountain Lion",bs:{os:"OS X",os_version:"Mountain Lion",safari_version:"6.2"},sl:{platform:"OS X 10.8",safari_version:"latest"}},{osName:"OS X Lion",bs:{os:"OS X",os_version:"Lion",safari_version:"6"},sl:{}},{osName:"OS X Snow Leopard",bs:{os:"OS X",os_version:"Snow Leopard",safari_version:"5.1"},sl:{}},{osName:"iOS",bs:{platform:"MAC"},sl:{platformName:"iOS",appiumVersion:"1.6.4"}},{osName:"Android",bs:{platform:"ANDROID"},sl:{platformName:"Android",appiumVersion:"1.6.4"}}],Jc=[{browserName:"Chrome",bs:{browser:"Chrome",browser_version:Sm},sl:{browserName:"chrome",version:"94.0"},browserValue:"chrome"},{browserName:"Firefox",bs:{browser:"Firefox",browser_version:"89"},sl:{browserName:"firefox",version:"89.0"},browserValue:"firefox"},{browserName:"Safari",bs:{browser:"Safari"},sl:{browserName:"safari"},browserValue:"safari"},{browserName:"Edge Chromium",bs:{browser:"Edge",browser_version:Sm},sl:{browserName:"MicrosoftEdge",version:"94"},synonyms:["edge-chromium"],browserValue:"edge-chromium",seleniumName:"MicrosoftEdge"},{browserName:"Browser",bs:{},sl:{browserName:"Browser"},browserValue:"browser"},{browserName:"Android",bs:{browserName:"android"},sl:{},browserValue:"android"},{browserName:"iPad",bs:{browserName:"iPad"},sl:{},browserValue:"ipad"},{browserName:"iPhone",bs:{browserName:"iPhone"},sl:{},browserValue:"iphone"}];Vn=(s,e)=>{if(s.length===0)return 0;if(typeof e!="number")throw new TypeError("p must be a number");if(s=[...s].sort((r,i)=>r-i),e<=0)return s[0];if(e>=100)return s.at(-1);let t=Math.ceil(s.length*(e/100))-1;return s[t]};xm=new Rm.DOMParser});var Yc={};z(Yc,{$schema:()=>Gw,default:()=>Jw,definitions:()=>Hw,properties:()=>Kw,required:()=>zw,type:()=>qw});var Gw,Hw,qw,zw,Kw,Jw,Am=I(()=>{Gw="http://json-schema.org/draft-07/schema#",Hw={request:{type:"object",required:["url"],additionalProperties:!1,properties:{url:{type:"string"},method:{type:"string",pattern:"^GET$|^HEAD$|^POST$|^PUT$|^DELETE$|^CONNECT$|^OPTIONS$|^TRACE$|^PATCH$"}}},header:{type:"object",required:["name","value"],additionalProperties:!1,properties:{name:{type:"string"},value:{type:"string"}}},cookie:{type:"object",required:["name","value"],additionalProperties:!1,properties:{name:{type:"string"},value:{type:"string"},path:{type:"string"},domain:{type:"string"},expires:{type:"string",format:"date-time"},httpOnly:{type:"boolean"},secure:{type:"boolean"}}},response:{type:"object",required:["status"],additionalProperties:!1,properties:{status:{type:"integer",minimum:100,exclusiveMaximum:600},headers:{type:"array",items:{$ref:"#/definitions/header"}},cookies:{type:"array",items:{$ref:"#/definitions/cookie"}},content:{type:"object",required:["text"],additionalProperties:!1,properties:{text:{type:"string"}}}}},redirectResponse:{type:"object",required:["redirectUrl"],additionalProperties:!1,properties:{redirectUrl:{type:"string"}}},passthroughResponse:{type:"object",required:["passthrough"],additionalProperties:!1,properties:{passthrough:{type:"boolean",enum:[!0]}}},entry:{type:"object",required:["request","response"],additionalProperties:!1,properties:{request:{$ref:"#/definitions/request"},response:{oneOf:[{$ref:"#/definitions/response"},{$ref:"#/definitions/redirectResponse"},{$ref:"#/definitions/passthroughResponse"}]},maxHits:{type:"integer",minimum:1}}}},qw="object",zw=["entries"],Kw={version:{type:"string",enum:["1.2","1.2.0"]},creator:{type:"string"},entries:{type:"array",items:{$ref:"#/definitions/entry"}}},Jw={$schema:Gw,definitions:Hw,type:qw,required:zw,properties:Kw}});async function Dm(){try{return await ue(Gn.promises.readFile(Kn()).then(async s=>{let e=await Lm;return Qw(e,s)}),3e4)}catch{return{}}}function Qw(s,e){let t=e.slice(0,16),r=e.slice(16),i=Buffer.from(s),n=rs.createDecipheriv("aes-256-cbc",Buffer.concat([i,Buffer.alloc(32)],32),t),o=n.update(r);return JSON.parse(Buffer.concat([o,n.final()]))}function Lt(s,e,t=Xw,r=void 0){return async()=>{if(!km)return await s();let i=e;r&&(e+=JSON.stringify(r));let n=await Zc(e);if(n)return li.debug("cache hit:",{fnName:e}),n;if(li.debug("cache miss:",{fnName:e}),!Om)throw new Error(`Attempted to rebuild cache for ${i}. cache miss is not allowed with current run configuration`);let o=await s();return o&&await Zw(e,o,t),o}}async function Zc(s){let t=(await Jn)[s];if(!t)return;let{value:r,expiry:i}=t;if(!(i<Date.now())&&r)return r}async function Zw(s,e,t){if(Qc)throw li.error("calling set after waitForSave is not allowed",{key:s,ttl:t}),new Error("calling set after waitForSave is not allowed");try{let r=await Jn;r[s]={value:e,expiry:Date.now()+t},_m=new Promise(i=>{zn=i}),Yw(r)}catch{li.error("failed updating cache")}}async function ss(){let s=await Jn;Object.keys(s).forEach(e=>{delete s[e]})}function Nm(s){km=s}function ev(s=!0){Om=s}async function Mm(){try{return Qc=!0,await _m}finally{Qc=!1}}function Fm(s){qn=s,Jn=Dm()}var Gn,Hn,rs,Cm,li,qn,Pm,zn,km,Om,Qc,_m,Lm,Xw,Kn,Jn,Yw,Um,Bm,Ox,jm,rr=I(()=>{"use strict";Gn=R(require("fs")),Hn=R(require("path")),rs=R(require("crypto"));F();Cm=require("lodash");W();li=C("local cache"),qn=Hn.resolve(bt(),"testim-cache"),km=!0,Om=!0,Qc=!1,_m=new Promise(s=>{zn=s}),Lm=new Promise(s=>{Pm=s}),Xw=1e3*60*60*3,Kn=()=>Hn.resolve(Hn.resolve(qn,"testim.cache"));Jn=Dm(),Yw=(0,Cm.debounce)(async s=>{let e;try{let t=await Lm,r=rs.randomBytes(16),i=JSON.stringify(s),n=Buffer.from(t),o=rs.createCipheriv("aes-256-cbc",Buffer.concat([n,Buffer.alloc(32)],32),r),a=Buffer.concat([r,o.update(i),o.final()]);await Te(qn)||await Gn.promises.mkdir(qn,{recursive:!0}),await Gn.promises.writeFile(Kn(),a)}catch(t){li.error("failed saving cache",{err:t}),e=t}zn(e?{success:!1,error:e}:{success:!0})},200);Um=Pm,Bm=Nm.bind(void 0,!1),Ox=Nm.bind(void 0,!0),jm=()=>ev(!1)});function Xn(){return{cliLocation:bt(),userInfo:is.userInfo(),platform:is.platform(),release:is.release()}}var is,el=I(()=>{"use strict";is=R(require("node:os"));F()});function tv(s){try{return Yn.resolve(Yn.dirname(require.resolve(`${s}/package.json`)),require(`${s}/package.json`).main||"")}catch(e){if(e.code==="ERR_PACKAGE_PATH_NOT_EXPORTED")return require.resolve(s);throw e}}function sr(s){let e=tv(s);return require(e)}var Yn,ui=I(()=>{"use strict";Yn=R(require("path"))});function rv(s){let t=/EACCES[^']+'(.+)'/.exec(s);return t===null?!1:t[1]}function sv(s){return/The "to" argument must be of type string./.exec(s)}function Gm(s,e,t){let r=rv(s),i=sv(s);return r||i?(Vm.info("Failed to install package due to insufficient write access",{...Xn(),package:t,path:r}),console.error(`
|
|
4
4
|
|
|
5
5
|
Testim failed installing the package ${t||""} due to insufficient permissions.
|