twd-js 1.5.0 → 1.5.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/dist/bundled.es.js +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +1 -1
- package/dist/mock-sw.js +2 -2
- package/package.json +2 -2
package/dist/bundled.es.js
CHANGED
|
@@ -1014,7 +1014,7 @@ class Ge {
|
|
|
1014
1014
|
}
|
|
1015
1015
|
}
|
|
1016
1016
|
window.__testRunner = Ge;
|
|
1017
|
-
const Ye = "1.5.
|
|
1017
|
+
const Ye = "1.5.1", zt = () => typeof window < "u" ? (window.__TWD_MOCK_STATE__ || (window.__TWD_MOCK_STATE__ = {
|
|
1018
1018
|
rules: [],
|
|
1019
1019
|
counts: {}
|
|
1020
1020
|
}), window.__TWD_MOCK_STATE__) : {
|
package/dist/index.cjs.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Po=require("./runner.cjs.js"),j=require("./jsx-runtime-BbmOcM6v.js"),ae=require("react"),ym=(e,t,r=2e3,n=50)=>new Promise((o,a)=>{const i=Date.now(),s=()=>{const l=t();if(l)return o(l);if(Date.now()-i>r)return a(new Error(`Timeout waiting for element ${e}`));setTimeout(s,n)};s()}),wm=(e,t,r=2e3,n=50)=>new Promise((o,a)=>{const i=Date.now(),s=()=>{const l=t();if(l&&l.length>0)return o(Array.from(l));if(Date.now()-i>r)return a(new Error(`Timeout waiting for elements ${e}`));setTimeout(s,n)};s()}),la=e=>new Promise(t=>setTimeout(t,e)),ei=(e,t,r,n)=>{if(!e&&!t)throw new Error(n);if(e&&t)throw new Error(n.replace("to be","to not be").replace("to have","to not have").replace("to contain","to not contain"));return r};function Rm(e){if(!e.isConnected)return!1;let t=e;for(;t;){const r=getComputedStyle(t);if(r.display==="none"||r.visibility==="hidden"||r.visibility==="collapse")return!1;t=t.parentElement}return!0}const Em={"have.text":{positive:{pass:e=>`Assertion passed: Text is exactly "${e[0]}"`,fail:(e,t)=>`Assertion failed: Expected text to be "${e[0]}", but got "${t}"`},negative:{pass:e=>`Assertion passed: Text is not exactly "${e[0]}"`,fail:(e,t)=>`Assertion failed: Expected text to not be "${e[0]}", but got "${t}"`}},"contain.text":{positive:{pass:e=>`Assertion passed: Text contains "${e[0]}"`,fail:(e,t)=>`Assertion failed: Expected text to contain "${e[0]}", but got "${t}"`},negative:{pass:e=>`Assertion passed: Text does not contain "${e[0]}"`,fail:(e,t)=>`Assertion failed: Expected text to not contain "${e[0]}", but got "${t}"`}},"be.empty":{positive:{pass:()=>"Assertion passed: Text is empty",fail:(e,t)=>`Assertion failed: Expected text to be empty, but got "${t}"`},negative:{pass:()=>"Assertion passed: Text is not empty",fail:(e,t)=>`Assertion failed: Expected text to not be empty, but got "${t}"`}},"have.attr":{positive:{pass:e=>`Assertion passed: Attribute "${e[0]}" is "${e[1]}"`,fail:(e,t)=>`Assertion failed: Expected attribute "${e[0]}" to be "${e[1]}", but got "${t}"`},negative:{pass:e=>`Assertion passed: Attribute "${e[0]}" is not "${e[1]}"`,fail:(e,t)=>`Assertion failed: Expected attribute "${e[0]}" to not be "${e[1]}", but got "${t}"`}},"have.value":{positive:{pass:e=>`Assertion passed: Value is "${e[0]}"`,fail:(e,t)=>`Assertion failed: Expected value to be "${e[0]}", but got "${t}"`},negative:{pass:e=>`Assertion passed: Value is not "${e[0]}"`,fail:(e,t)=>`Assertion failed: Expected value to not be "${e[0]}", but got "${t}"`}},"be.disabled":{positive:{pass:()=>"Assertion passed: Element is disabled",fail:()=>"Assertion failed: Expected element to be disabled"},negative:{pass:()=>"Assertion passed: Element is not disabled",fail:()=>"Assertion failed: Expected element to not be disabled"}},"be.enabled":{positive:{pass:()=>"Assertion passed: Element is enabled",fail:()=>"Assertion failed: Expected element to be enabled"},negative:{pass:()=>"Assertion passed: Element is not enabled",fail:()=>"Assertion failed: Expected element to not be enabled"}},"be.checked":{positive:{pass:()=>"Assertion passed: Element is checked",fail:()=>"Assertion failed: Expected element to be checked"},negative:{pass:()=>"Assertion passed: Element is not checked",fail:()=>"Assertion failed: Expected element to not be checked"}},"be.selected":{positive:{pass:()=>"Assertion passed: Element is selected",fail:()=>"Assertion failed: Expected element to be selected"},negative:{pass:()=>"Assertion passed: Element is not selected",fail:()=>"Assertion failed: Expected element to not be selected"}},"be.focused":{positive:{pass:()=>"Assertion passed: Element is focused",fail:()=>"Assertion failed: Expected element to be focused"},negative:{pass:()=>"Assertion passed: Element is not focused",fail:()=>"Assertion failed: Expected element to not be focused"}},"be.visible":{positive:{pass:()=>"Assertion passed: Element is visible",fail:()=>"Assertion failed: Expected element to be visible"},negative:{pass:()=>"Assertion passed: Element is not visible",fail:()=>"Assertion failed: Expected element to not be visible"}},"have.class":{positive:{pass:e=>`Assertion passed: Element has class "${e[0]}"`,fail:e=>`Assertion failed: Expected element to have class "${e[0]}"`},negative:{pass:e=>`Assertion passed: Element does not have class "${e[0]}"`,fail:e=>`Assertion failed: Expected element to not have class "${e[0]}"`}}},La=(e,t,...r)=>{const n=t.startsWith("not."),o=n?t.slice(4):t,a=(e.textContent||"").trim(),i=Em[o];if(!i)throw new Error(`Unknown assertion: ${o}`);const s=n?"negative":"positive";let l,u;switch(o){case"have.text":l=a===r[0],u=a;break;case"contain.text":l=a.includes(r[0]),u=a;break;case"be.empty":l=a.length===0,u=a;break;case"have.attr":u=e.getAttribute(r[0]),l=u===r[1];break;case"have.value":u=e.value,l=u===r[0];break;case"be.disabled":l=e.disabled===!0;break;case"be.enabled":l=e.disabled===!1;break;case"be.checked":l=e.checked===!0;break;case"be.selected":l=e.selected===!0;break;case"be.focused":l=document.activeElement===e;break;case"be.visible":l=Rm(e);break;case"have.class":l=e.classList.contains(r[0]);break;default:throw new Error(`Unknown assertion: ${o}`)}return ei(l,n,i[s].pass(r),i[s].fail(r,u))},he=e=>{const t=Po.handlers.size?Array.from(Po.handlers.values()).find(r=>r.status==="running"):null;t&&t.logs?.push(e)},Ti="1.5.0",xm=()=>typeof window<"u"?(window.__TWD_MOCK_STATE__||(window.__TWD_MOCK_STATE__={rules:[],counts:{}}),window.__TWD_MOCK_STATE__):{rules:[],counts:{}},dt=xm(),Je=dt.rules,Cm=100;let As=!1;const qm=async e=>{if(As){console.warn("[TWD] Request mocking already initialized");return}if("serviceWorker"in navigator){As=!0;const t=e??"/mock-sw.js";await navigator.serviceWorker.register(`${t}?v=${Ti}`),navigator.serviceWorker.controller||await new Promise(r=>{navigator.serviceWorker.addEventListener("controllerchange",r,{once:!0})}),navigator.serviceWorker.addEventListener("message",r=>{if(r.data?.type==="EXECUTED"){const{alias:n,request:o,hitCount:a}=r.data,i=Je.find(s=>s.alias===n);i&&(i.executed=!0,i.request=o,i.hitCount=a),dt.counts[n]=a??(dt.counts[n]??0)+1}})}},_m=async(e,t)=>{const r={alias:e,...t,executed:!1},n=Je.findIndex(o=>o.alias===e);n!==-1?Je[n]=r:Je.push(r),navigator.serviceWorker.controller?.postMessage({type:"ADD_RULE",rule:r,version:Ti}),await la(Cm),await Promise.resolve()},Pm=async e=>await Promise.all(e.map(r=>xd(r))),xd=async(e,t=10,r=100)=>{if(!Je.find(o=>o.alias===e))throw new Error(`Rule ${e} not found`);for(let o=0;o<t;o++){const a=Je.find(i=>i.alias===e&&i.executed);if(a)return Promise.resolve(a);o<t-1&&await new Promise(i=>setTimeout(i,r))}throw console.log(`Rule ${e} was not executed within ${t*r}ms`),new Error(`Rule ${e} was not executed within ${t*r}ms`)},Cd=()=>Je,qd=()=>{navigator.serviceWorker.controller?.postMessage({type:"CLEAR_RULES",version:Ti}),Je.length=0;for(const e in dt.counts)delete dt.counts[e]},Tm=e=>dt.counts[e]??0,Sm=()=>({...dt.counts}),Am=(e,t)=>{const r=e.startsWith("not.");switch(r?e.slice(4):e){case"eq":return ei(window.location.href===t,r,`Assertion passed: URL is ${t}`,`Assertion failed: Expected URL to be ${t}, but got ${window.location.href}`);case"contain.url":return ei(window.location.href.includes(t),r,`Assertion passed: URL contains ${t}`,`Assertion failed: Expected URL to contain ${t}, but got ${window.location.href}`);default:throw new Error(`Unknown assertion: ${e}`)}},Mm=()=>({location:window.location,should:async(e,t,r=5)=>{let n="",o;for(let a=0;a<r;a++)try{n=Am(e,t),he(n);break}catch(i){await new Promise(s=>setTimeout(s,100)),o=i}if(o)throw o;return n}}),Om=100,Im=async(e,t)=>{if(he(`visit("${e}")`),window.location.pathname===e||t){const r=`/__dummy_${Math.random().toString(36).slice(2)}`;window.history.pushState({},"",r),window.dispatchEvent(new PopStateEvent("popstate")),await la(10)}window.history.pushState({},"",e),window.dispatchEvent(new PopStateEvent("popstate")),await la(Om)},Nm={get:async e=>{const t=`body > div:not(#twd-sidebar-root) ${e}`;he(`Searching get("${e}")`);const r=await ym(e,()=>document.querySelector(t)),n={el:r,should:(o,...a)=>{const i=La(r,o,...a);return he(i),n}};return n},setInputValue:(e,t)=>{const{set:r}=Object.getOwnPropertyDescriptor(e.__proto__,"value");r.call(e,t),e.dispatchEvent(new Event("input",{bubbles:!0}))},getAll:async e=>{const t=`body > div:not(#twd-sidebar-root) ${e}`;return he(`Searching getAll("${e}")`),(await wm(e,()=>document.querySelectorAll(t))).map(n=>{const o={el:n,should:(a,...i)=>{const s=La(n,a,...i);return he(s),o}};return o})},visit:Im,url:Mm,mockRequest:_m,waitForRequest:xd,waitForRequests:Pm,initRequestMocking:qm,clearRequestMockRules:qd,getRequestMockRules:Cd,getRequestCount:Tm,getRequestCounts:Sm,should:(e,t,...r)=>{const n=La(e,t,...r);he(n)},wait:la,mockComponent:j.m,clearComponentMocks:j.c,notExists:async e=>{const t=`body > div:not(#twd-sidebar-root) ${e}`;if(he(`Checking notExists("${e}")`),document.querySelector(t))throw new Error(`Element "${e}" exists in the DOM.`);he(`Assertion passed: Element "${e}" does not exist in the DOM.`)}};var Si=Object.defineProperty,km=(e,t,r)=>t in e?Si(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,x=(e,t)=>Si(e,"name",{value:t,configurable:!0}),Ai=(e,t)=>{for(var r in t)Si(e,r,{get:t[r],enumerable:!0})},_d=(e,t,r)=>km(e,typeof t!="symbol"?t+"":t,r),ua={};Ai(ua,{addChainableMethod:()=>zi,addLengthGuard:()=>Lo,addMethod:()=>Li,addProperty:()=>Bi,checkError:()=>pe,compareByInspect:()=>fa,eql:()=>tf,events:()=>Pa,expectTypes:()=>kd,flag:()=>U,getActual:()=>qa,getMessage:()=>Ii,getName:()=>Ta,getOperator:()=>Gi,getOwnEnumerableProperties:()=>Wi,getOwnEnumerablePropertySymbols:()=>Hi,getPathInfo:()=>Di,hasProperty:()=>_a,inspect:()=>H,isNaN:()=>pa,isNumeric:()=>ne,isProxyEnabled:()=>Bo,isRegExp:()=>ma,objDisplay:()=>ut,overwriteChainableMethod:()=>Vi,overwriteMethod:()=>Ui,overwriteProperty:()=>Fi,proxify:()=>St,test:()=>Mi,transferFlags:()=>xe,type:()=>Q});var pe={};Ai(pe,{compatibleConstructor:()=>Sd,compatibleInstance:()=>Td,compatibleMessage:()=>Ad,getConstructorName:()=>Md,getMessage:()=>Od});function Ca(e){return e instanceof Error||Object.prototype.toString.call(e)==="[object Error]"}x(Ca,"isErrorInstance");function Pd(e){return Object.prototype.toString.call(e)==="[object RegExp]"}x(Pd,"isRegExp");function Td(e,t){return Ca(t)&&e===t}x(Td,"compatibleInstance");function Sd(e,t){return Ca(t)?e.constructor===t.constructor||e instanceof t.constructor:(typeof t=="object"||typeof t=="function")&&t.prototype?e.constructor===t||e instanceof t:!1}x(Sd,"compatibleConstructor");function Ad(e,t){const r=typeof e=="string"?e:e.message;return Pd(t)?t.test(r):typeof t=="string"?r.indexOf(t)!==-1:!1}x(Ad,"compatibleMessage");function Md(e){let t=e;return Ca(e)?t=e.constructor.name:typeof e=="function"&&(t=e.name,t===""&&(t=new e().name||t)),t}x(Md,"getConstructorName");function Od(e){let t="";return e&&e.message?t=e.message:typeof e=="string"&&(t=e),t}x(Od,"getMessage");function U(e,t,r){let n=e.__flags||(e.__flags=Object.create(null));if(arguments.length===3)n[t]=r;else return n[t]}x(U,"flag");function Mi(e,t){let r=U(e,"negate"),n=t[0];return r?!n:n}x(Mi,"test");function Q(e){if(typeof e>"u")return"undefined";if(e===null)return"null";const t=e[Symbol.toStringTag];return typeof t=="string"?t:Object.prototype.toString.call(e).slice(8,-1)}x(Q,"type");var jm="captureStackTrace"in Error,Id=class Nd extends Error{constructor(t="Unspecified AssertionError",r,n){super(t),_d(this,"message"),this.message=t,jm&&Error.captureStackTrace(this,n||Nd);for(const o in r)o in this||(this[o]=r[o])}get name(){return"AssertionError"}get ok(){return!1}toJSON(t){return{...this,name:this.name,message:this.message,ok:!1,stack:t!==!1?this.stack:void 0}}};x(Id,"AssertionError");var G=Id;function kd(e,t){let r=U(e,"message"),n=U(e,"ssfi");r=r?r+": ":"",e=U(e,"object"),t=t.map(function(i){return i.toLowerCase()}),t.sort();let o=t.map(function(i,s){let l=~["a","e","i","o","u"].indexOf(i.charAt(0))?"an":"a";return(t.length>1&&s===t.length-1?"or ":"")+l+" "+i}).join(", "),a=Q(e).toLowerCase();if(!t.some(function(i){return a===i}))throw new G(r+"object tested must be "+o+", but "+a+" given",void 0,n)}x(kd,"expectTypes");function qa(e,t){return t.length>4?t[4]:e._obj}x(qa,"getActual");var Ms={bold:["1","22"],dim:["2","22"],italic:["3","23"],underline:["4","24"],inverse:["7","27"],hidden:["8","28"],strike:["9","29"],black:["30","39"],red:["31","39"],green:["32","39"],yellow:["33","39"],blue:["34","39"],magenta:["35","39"],cyan:["36","39"],white:["37","39"],brightblack:["30;1","39"],brightred:["31;1","39"],brightgreen:["32;1","39"],brightyellow:["33;1","39"],brightblue:["34;1","39"],brightmagenta:["35;1","39"],brightcyan:["36;1","39"],brightwhite:["37;1","39"],grey:["90","39"]},Dm={special:"cyan",number:"yellow",bigint:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",symbol:"green",date:"magenta",regexp:"red"},Rt="…";function jd(e,t){const r=Ms[Dm[t]]||Ms[t]||"";return r?`\x1B[${r[0]}m${String(e)}\x1B[${r[1]}m`:String(e)}x(jd,"colorise");function Dd({showHidden:e=!1,depth:t=2,colors:r=!1,customInspect:n=!0,showProxy:o=!1,maxArrayLength:a=1/0,breakLength:i=1/0,seen:s=[],truncate:l=1/0,stylize:u=String}={},d){const f={showHidden:!!e,depth:Number(t),colors:!!r,customInspect:!!n,showProxy:!!o,maxArrayLength:Number(a),breakLength:Number(i),truncate:Number(l),seen:s,inspect:d,stylize:u};return f.colors&&(f.stylize=jd),f}x(Dd,"normaliseOptions");function $d(e){return e>="\uD800"&&e<="\uDBFF"}x($d,"isHighSurrogate");function Ue(e,t,r=Rt){e=String(e);const n=r.length,o=e.length;if(n>t&&o>n)return r;if(o>t&&o>n){let a=t-n;return a>0&&$d(e[a-1])&&(a=a-1),`${e.slice(0,a)}${r}`}return e}x(Ue,"truncate");function ve(e,t,r,n=", "){r=r||t.inspect;const o=e.length;if(o===0)return"";const a=t.truncate;let i="",s="",l="";for(let u=0;u<o;u+=1){const d=u+1===e.length,f=u+2===e.length;l=`${Rt}(${e.length-u})`;const c=e[u];t.truncate=a-i.length-(d?0:n.length);const v=s||r(c,t)+(d?"":n),m=i.length+v.length,g=m+l.length;if(d&&m>a&&i.length+l.length<=a||!d&&!f&&g>a||(s=d?"":r(e[u+1],t)+(f?"":n),!d&&f&&g>a&&m+s.length>a))break;if(i+=v,!d&&!f&&m+s.length>=a){l=`${Rt}(${e.length-u-1})`;break}l=""}return`${i}${l}`}x(ve,"inspectList");function Bd(e){return e.match(/^[a-zA-Z_][a-zA-Z_0-9]*$/)?e:JSON.stringify(e).replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'")}x(Bd,"quoteComplexKey");function Et([e,t],r){return r.truncate-=2,typeof e=="string"?e=Bd(e):typeof e!="number"&&(e=`[${r.inspect(e,r)}]`),r.truncate-=e.length,t=r.inspect(t,r),`${e}: ${t}`}x(Et,"inspectProperty");function Ld(e,t){const r=Object.keys(e).slice(e.length);if(!e.length&&!r.length)return"[]";t.truncate-=4;const n=ve(e,t);t.truncate-=n.length;let o="";return r.length&&(o=ve(r.map(a=>[a,e[a]]),t,Et)),`[ ${n}${o?`, ${o}`:""} ]`}x(Ld,"inspectArray");var $m=x(e=>typeof Buffer=="function"&&e instanceof Buffer?"Buffer":e[Symbol.toStringTag]?e[Symbol.toStringTag]:e.constructor.name,"getArrayName");function _e(e,t){const r=$m(e);t.truncate-=r.length+4;const n=Object.keys(e).slice(e.length);if(!e.length&&!n.length)return`${r}[]`;let o="";for(let i=0;i<e.length;i++){const s=`${t.stylize(Ue(e[i],t.truncate),"number")}${i===e.length-1?"":", "}`;if(t.truncate-=s.length,e[i]!==e.length&&t.truncate<=3){o+=`${Rt}(${e.length-e[i]+1})`;break}o+=s}let a="";return n.length&&(a=ve(n.map(i=>[i,e[i]]),t,Et)),`${r}[ ${o}${a?`, ${a}`:""} ]`}x(_e,"inspectTypedArray");function Fd(e,t){const r=e.toJSON();if(r===null)return"Invalid Date";const n=r.split("T"),o=n[0];return t.stylize(`${o}T${Ue(n[1],t.truncate-o.length-1)}`,"date")}x(Fd,"inspectDate");function ti(e,t){const r=e[Symbol.toStringTag]||"Function",n=e.name;return n?t.stylize(`[${r} ${Ue(n,t.truncate-11)}]`,"special"):t.stylize(`[${r}]`,"special")}x(ti,"inspectFunction");function Ud([e,t],r){return r.truncate-=4,e=r.inspect(e,r),r.truncate-=e.length,t=r.inspect(t,r),`${e} => ${t}`}x(Ud,"inspectMapEntry");function zd(e){const t=[];return e.forEach((r,n)=>{t.push([n,r])}),t}x(zd,"mapToEntries");function Vd(e,t){return e.size===0?"Map{}":(t.truncate-=7,`Map{ ${ve(zd(e),t,Ud)} }`)}x(Vd,"inspectMap");var Bm=Number.isNaN||(e=>e!==e);function ri(e,t){return Bm(e)?t.stylize("NaN","number"):e===1/0?t.stylize("Infinity","number"):e===-1/0?t.stylize("-Infinity","number"):e===0?t.stylize(1/e===1/0?"+0":"-0","number"):t.stylize(Ue(String(e),t.truncate),"number")}x(ri,"inspectNumber");function ni(e,t){let r=Ue(e.toString(),t.truncate-1);return r!==Rt&&(r+="n"),t.stylize(r,"bigint")}x(ni,"inspectBigInt");function Hd(e,t){const r=e.toString().split("/")[2],n=t.truncate-(2+r.length),o=e.source;return t.stylize(`/${Ue(o,n)}/${r}`,"regexp")}x(Hd,"inspectRegExp");function Wd(e){const t=[];return e.forEach(r=>{t.push(r)}),t}x(Wd,"arrayFromSet");function Gd(e,t){return e.size===0?"Set{}":(t.truncate-=7,`Set{ ${ve(Wd(e),t)} }`)}x(Gd,"inspectSet");var Os=new RegExp("['\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]","g"),Lm={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r","'":"\\'","\\":"\\\\"},Fm=16;function Kd(e){return Lm[e]||`\\u${`0000${e.charCodeAt(0).toString(Fm)}`.slice(-4)}`}x(Kd,"escape");function oi(e,t){return Os.test(e)&&(e=e.replace(Os,Kd)),t.stylize(`'${Ue(e,t.truncate-2)}'`,"string")}x(oi,"inspectString");function ai(e){return"description"in Symbol.prototype?e.description?`Symbol(${e.description})`:"Symbol()":e.toString()}x(ai,"inspectSymbol");var Um=x(()=>"Promise{…}","getPromiseValue"),zm=Um;function To(e,t){const r=Object.getOwnPropertyNames(e),n=Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e):[];if(r.length===0&&n.length===0)return"{}";if(t.truncate-=4,t.seen=t.seen||[],t.seen.includes(e))return"[Circular]";t.seen.push(e);const o=ve(r.map(s=>[s,e[s]]),t,Et),a=ve(n.map(s=>[s,e[s]]),t,Et);t.seen.pop();let i="";return o&&a&&(i=", "),`{ ${o}${i}${a} }`}x(To,"inspectObject");var Fa=typeof Symbol<"u"&&Symbol.toStringTag?Symbol.toStringTag:!1;function Yd(e,t){let r="";return Fa&&Fa in e&&(r=e[Fa]),r=r||e.constructor.name,(!r||r==="_class")&&(r="<Anonymous Class>"),t.truncate-=r.length,`${r}${To(e,t)}`}x(Yd,"inspectClass");function Xd(e,t){return e.length===0?"Arguments[]":(t.truncate-=13,`Arguments[ ${ve(e,t)} ]`)}x(Xd,"inspectArguments");var Vm=["stack","line","column","name","message","fileName","lineNumber","columnNumber","number","description","cause"];function Jd(e,t){const r=Object.getOwnPropertyNames(e).filter(i=>Vm.indexOf(i)===-1),n=e.name;t.truncate-=n.length;let o="";if(typeof e.message=="string"?o=Ue(e.message,t.truncate):r.unshift("message"),o=o?`: ${o}`:"",t.truncate-=o.length+5,t.seen=t.seen||[],t.seen.includes(e))return"[Circular]";t.seen.push(e);const a=ve(r.map(i=>[i,e[i]]),t,Et);return`${n}${o}${a?` { ${a} }`:""}`}x(Jd,"inspectObject");function Qd([e,t],r){return r.truncate-=3,t?`${r.stylize(String(e),"yellow")}=${r.stylize(`"${t}"`,"string")}`:`${r.stylize(String(e),"yellow")}`}x(Qd,"inspectAttribute");function ca(e,t){return ve(e,t,Zd,`
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Po=require("./runner.cjs.js"),j=require("./jsx-runtime-BbmOcM6v.js"),ae=require("react"),ym=(e,t,r=2e3,n=50)=>new Promise((o,a)=>{const i=Date.now(),s=()=>{const l=t();if(l)return o(l);if(Date.now()-i>r)return a(new Error(`Timeout waiting for element ${e}`));setTimeout(s,n)};s()}),wm=(e,t,r=2e3,n=50)=>new Promise((o,a)=>{const i=Date.now(),s=()=>{const l=t();if(l&&l.length>0)return o(Array.from(l));if(Date.now()-i>r)return a(new Error(`Timeout waiting for elements ${e}`));setTimeout(s,n)};s()}),la=e=>new Promise(t=>setTimeout(t,e)),ei=(e,t,r,n)=>{if(!e&&!t)throw new Error(n);if(e&&t)throw new Error(n.replace("to be","to not be").replace("to have","to not have").replace("to contain","to not contain"));return r};function Rm(e){if(!e.isConnected)return!1;let t=e;for(;t;){const r=getComputedStyle(t);if(r.display==="none"||r.visibility==="hidden"||r.visibility==="collapse")return!1;t=t.parentElement}return!0}const Em={"have.text":{positive:{pass:e=>`Assertion passed: Text is exactly "${e[0]}"`,fail:(e,t)=>`Assertion failed: Expected text to be "${e[0]}", but got "${t}"`},negative:{pass:e=>`Assertion passed: Text is not exactly "${e[0]}"`,fail:(e,t)=>`Assertion failed: Expected text to not be "${e[0]}", but got "${t}"`}},"contain.text":{positive:{pass:e=>`Assertion passed: Text contains "${e[0]}"`,fail:(e,t)=>`Assertion failed: Expected text to contain "${e[0]}", but got "${t}"`},negative:{pass:e=>`Assertion passed: Text does not contain "${e[0]}"`,fail:(e,t)=>`Assertion failed: Expected text to not contain "${e[0]}", but got "${t}"`}},"be.empty":{positive:{pass:()=>"Assertion passed: Text is empty",fail:(e,t)=>`Assertion failed: Expected text to be empty, but got "${t}"`},negative:{pass:()=>"Assertion passed: Text is not empty",fail:(e,t)=>`Assertion failed: Expected text to not be empty, but got "${t}"`}},"have.attr":{positive:{pass:e=>`Assertion passed: Attribute "${e[0]}" is "${e[1]}"`,fail:(e,t)=>`Assertion failed: Expected attribute "${e[0]}" to be "${e[1]}", but got "${t}"`},negative:{pass:e=>`Assertion passed: Attribute "${e[0]}" is not "${e[1]}"`,fail:(e,t)=>`Assertion failed: Expected attribute "${e[0]}" to not be "${e[1]}", but got "${t}"`}},"have.value":{positive:{pass:e=>`Assertion passed: Value is "${e[0]}"`,fail:(e,t)=>`Assertion failed: Expected value to be "${e[0]}", but got "${t}"`},negative:{pass:e=>`Assertion passed: Value is not "${e[0]}"`,fail:(e,t)=>`Assertion failed: Expected value to not be "${e[0]}", but got "${t}"`}},"be.disabled":{positive:{pass:()=>"Assertion passed: Element is disabled",fail:()=>"Assertion failed: Expected element to be disabled"},negative:{pass:()=>"Assertion passed: Element is not disabled",fail:()=>"Assertion failed: Expected element to not be disabled"}},"be.enabled":{positive:{pass:()=>"Assertion passed: Element is enabled",fail:()=>"Assertion failed: Expected element to be enabled"},negative:{pass:()=>"Assertion passed: Element is not enabled",fail:()=>"Assertion failed: Expected element to not be enabled"}},"be.checked":{positive:{pass:()=>"Assertion passed: Element is checked",fail:()=>"Assertion failed: Expected element to be checked"},negative:{pass:()=>"Assertion passed: Element is not checked",fail:()=>"Assertion failed: Expected element to not be checked"}},"be.selected":{positive:{pass:()=>"Assertion passed: Element is selected",fail:()=>"Assertion failed: Expected element to be selected"},negative:{pass:()=>"Assertion passed: Element is not selected",fail:()=>"Assertion failed: Expected element to not be selected"}},"be.focused":{positive:{pass:()=>"Assertion passed: Element is focused",fail:()=>"Assertion failed: Expected element to be focused"},negative:{pass:()=>"Assertion passed: Element is not focused",fail:()=>"Assertion failed: Expected element to not be focused"}},"be.visible":{positive:{pass:()=>"Assertion passed: Element is visible",fail:()=>"Assertion failed: Expected element to be visible"},negative:{pass:()=>"Assertion passed: Element is not visible",fail:()=>"Assertion failed: Expected element to not be visible"}},"have.class":{positive:{pass:e=>`Assertion passed: Element has class "${e[0]}"`,fail:e=>`Assertion failed: Expected element to have class "${e[0]}"`},negative:{pass:e=>`Assertion passed: Element does not have class "${e[0]}"`,fail:e=>`Assertion failed: Expected element to not have class "${e[0]}"`}}},La=(e,t,...r)=>{const n=t.startsWith("not."),o=n?t.slice(4):t,a=(e.textContent||"").trim(),i=Em[o];if(!i)throw new Error(`Unknown assertion: ${o}`);const s=n?"negative":"positive";let l,u;switch(o){case"have.text":l=a===r[0],u=a;break;case"contain.text":l=a.includes(r[0]),u=a;break;case"be.empty":l=a.length===0,u=a;break;case"have.attr":u=e.getAttribute(r[0]),l=u===r[1];break;case"have.value":u=e.value,l=u===r[0];break;case"be.disabled":l=e.disabled===!0;break;case"be.enabled":l=e.disabled===!1;break;case"be.checked":l=e.checked===!0;break;case"be.selected":l=e.selected===!0;break;case"be.focused":l=document.activeElement===e;break;case"be.visible":l=Rm(e);break;case"have.class":l=e.classList.contains(r[0]);break;default:throw new Error(`Unknown assertion: ${o}`)}return ei(l,n,i[s].pass(r),i[s].fail(r,u))},he=e=>{const t=Po.handlers.size?Array.from(Po.handlers.values()).find(r=>r.status==="running"):null;t&&t.logs?.push(e)},Ti="1.5.1",xm=()=>typeof window<"u"?(window.__TWD_MOCK_STATE__||(window.__TWD_MOCK_STATE__={rules:[],counts:{}}),window.__TWD_MOCK_STATE__):{rules:[],counts:{}},dt=xm(),Je=dt.rules,Cm=100;let As=!1;const qm=async e=>{if(As){console.warn("[TWD] Request mocking already initialized");return}if("serviceWorker"in navigator){As=!0;const t=e??"/mock-sw.js";await navigator.serviceWorker.register(`${t}?v=${Ti}`),navigator.serviceWorker.controller||await new Promise(r=>{navigator.serviceWorker.addEventListener("controllerchange",r,{once:!0})}),navigator.serviceWorker.addEventListener("message",r=>{if(r.data?.type==="EXECUTED"){const{alias:n,request:o,hitCount:a}=r.data,i=Je.find(s=>s.alias===n);i&&(i.executed=!0,i.request=o,i.hitCount=a),dt.counts[n]=a??(dt.counts[n]??0)+1}})}},_m=async(e,t)=>{const r={alias:e,...t,executed:!1},n=Je.findIndex(o=>o.alias===e);n!==-1?Je[n]=r:Je.push(r),navigator.serviceWorker.controller?.postMessage({type:"ADD_RULE",rule:r,version:Ti}),await la(Cm),await Promise.resolve()},Pm=async e=>await Promise.all(e.map(r=>xd(r))),xd=async(e,t=10,r=100)=>{if(!Je.find(o=>o.alias===e))throw new Error(`Rule ${e} not found`);for(let o=0;o<t;o++){const a=Je.find(i=>i.alias===e&&i.executed);if(a)return Promise.resolve(a);o<t-1&&await new Promise(i=>setTimeout(i,r))}throw console.log(`Rule ${e} was not executed within ${t*r}ms`),new Error(`Rule ${e} was not executed within ${t*r}ms`)},Cd=()=>Je,qd=()=>{navigator.serviceWorker.controller?.postMessage({type:"CLEAR_RULES",version:Ti}),Je.length=0;for(const e in dt.counts)delete dt.counts[e]},Tm=e=>dt.counts[e]??0,Sm=()=>({...dt.counts}),Am=(e,t)=>{const r=e.startsWith("not.");switch(r?e.slice(4):e){case"eq":return ei(window.location.href===t,r,`Assertion passed: URL is ${t}`,`Assertion failed: Expected URL to be ${t}, but got ${window.location.href}`);case"contain.url":return ei(window.location.href.includes(t),r,`Assertion passed: URL contains ${t}`,`Assertion failed: Expected URL to contain ${t}, but got ${window.location.href}`);default:throw new Error(`Unknown assertion: ${e}`)}},Mm=()=>({location:window.location,should:async(e,t,r=5)=>{let n="",o;for(let a=0;a<r;a++)try{n=Am(e,t),he(n);break}catch(i){await new Promise(s=>setTimeout(s,100)),o=i}if(o)throw o;return n}}),Om=100,Im=async(e,t)=>{if(he(`visit("${e}")`),window.location.pathname===e||t){const r=`/__dummy_${Math.random().toString(36).slice(2)}`;window.history.pushState({},"",r),window.dispatchEvent(new PopStateEvent("popstate")),await la(10)}window.history.pushState({},"",e),window.dispatchEvent(new PopStateEvent("popstate")),await la(Om)},Nm={get:async e=>{const t=`body > div:not(#twd-sidebar-root) ${e}`;he(`Searching get("${e}")`);const r=await ym(e,()=>document.querySelector(t)),n={el:r,should:(o,...a)=>{const i=La(r,o,...a);return he(i),n}};return n},setInputValue:(e,t)=>{const{set:r}=Object.getOwnPropertyDescriptor(e.__proto__,"value");r.call(e,t),e.dispatchEvent(new Event("input",{bubbles:!0}))},getAll:async e=>{const t=`body > div:not(#twd-sidebar-root) ${e}`;return he(`Searching getAll("${e}")`),(await wm(e,()=>document.querySelectorAll(t))).map(n=>{const o={el:n,should:(a,...i)=>{const s=La(n,a,...i);return he(s),o}};return o})},visit:Im,url:Mm,mockRequest:_m,waitForRequest:xd,waitForRequests:Pm,initRequestMocking:qm,clearRequestMockRules:qd,getRequestMockRules:Cd,getRequestCount:Tm,getRequestCounts:Sm,should:(e,t,...r)=>{const n=La(e,t,...r);he(n)},wait:la,mockComponent:j.m,clearComponentMocks:j.c,notExists:async e=>{const t=`body > div:not(#twd-sidebar-root) ${e}`;if(he(`Checking notExists("${e}")`),document.querySelector(t))throw new Error(`Element "${e}" exists in the DOM.`);he(`Assertion passed: Element "${e}" does not exist in the DOM.`)}};var Si=Object.defineProperty,km=(e,t,r)=>t in e?Si(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,x=(e,t)=>Si(e,"name",{value:t,configurable:!0}),Ai=(e,t)=>{for(var r in t)Si(e,r,{get:t[r],enumerable:!0})},_d=(e,t,r)=>km(e,typeof t!="symbol"?t+"":t,r),ua={};Ai(ua,{addChainableMethod:()=>zi,addLengthGuard:()=>Lo,addMethod:()=>Li,addProperty:()=>Bi,checkError:()=>pe,compareByInspect:()=>fa,eql:()=>tf,events:()=>Pa,expectTypes:()=>kd,flag:()=>U,getActual:()=>qa,getMessage:()=>Ii,getName:()=>Ta,getOperator:()=>Gi,getOwnEnumerableProperties:()=>Wi,getOwnEnumerablePropertySymbols:()=>Hi,getPathInfo:()=>Di,hasProperty:()=>_a,inspect:()=>H,isNaN:()=>pa,isNumeric:()=>ne,isProxyEnabled:()=>Bo,isRegExp:()=>ma,objDisplay:()=>ut,overwriteChainableMethod:()=>Vi,overwriteMethod:()=>Ui,overwriteProperty:()=>Fi,proxify:()=>St,test:()=>Mi,transferFlags:()=>xe,type:()=>Q});var pe={};Ai(pe,{compatibleConstructor:()=>Sd,compatibleInstance:()=>Td,compatibleMessage:()=>Ad,getConstructorName:()=>Md,getMessage:()=>Od});function Ca(e){return e instanceof Error||Object.prototype.toString.call(e)==="[object Error]"}x(Ca,"isErrorInstance");function Pd(e){return Object.prototype.toString.call(e)==="[object RegExp]"}x(Pd,"isRegExp");function Td(e,t){return Ca(t)&&e===t}x(Td,"compatibleInstance");function Sd(e,t){return Ca(t)?e.constructor===t.constructor||e instanceof t.constructor:(typeof t=="object"||typeof t=="function")&&t.prototype?e.constructor===t||e instanceof t:!1}x(Sd,"compatibleConstructor");function Ad(e,t){const r=typeof e=="string"?e:e.message;return Pd(t)?t.test(r):typeof t=="string"?r.indexOf(t)!==-1:!1}x(Ad,"compatibleMessage");function Md(e){let t=e;return Ca(e)?t=e.constructor.name:typeof e=="function"&&(t=e.name,t===""&&(t=new e().name||t)),t}x(Md,"getConstructorName");function Od(e){let t="";return e&&e.message?t=e.message:typeof e=="string"&&(t=e),t}x(Od,"getMessage");function U(e,t,r){let n=e.__flags||(e.__flags=Object.create(null));if(arguments.length===3)n[t]=r;else return n[t]}x(U,"flag");function Mi(e,t){let r=U(e,"negate"),n=t[0];return r?!n:n}x(Mi,"test");function Q(e){if(typeof e>"u")return"undefined";if(e===null)return"null";const t=e[Symbol.toStringTag];return typeof t=="string"?t:Object.prototype.toString.call(e).slice(8,-1)}x(Q,"type");var jm="captureStackTrace"in Error,Id=class Nd extends Error{constructor(t="Unspecified AssertionError",r,n){super(t),_d(this,"message"),this.message=t,jm&&Error.captureStackTrace(this,n||Nd);for(const o in r)o in this||(this[o]=r[o])}get name(){return"AssertionError"}get ok(){return!1}toJSON(t){return{...this,name:this.name,message:this.message,ok:!1,stack:t!==!1?this.stack:void 0}}};x(Id,"AssertionError");var G=Id;function kd(e,t){let r=U(e,"message"),n=U(e,"ssfi");r=r?r+": ":"",e=U(e,"object"),t=t.map(function(i){return i.toLowerCase()}),t.sort();let o=t.map(function(i,s){let l=~["a","e","i","o","u"].indexOf(i.charAt(0))?"an":"a";return(t.length>1&&s===t.length-1?"or ":"")+l+" "+i}).join(", "),a=Q(e).toLowerCase();if(!t.some(function(i){return a===i}))throw new G(r+"object tested must be "+o+", but "+a+" given",void 0,n)}x(kd,"expectTypes");function qa(e,t){return t.length>4?t[4]:e._obj}x(qa,"getActual");var Ms={bold:["1","22"],dim:["2","22"],italic:["3","23"],underline:["4","24"],inverse:["7","27"],hidden:["8","28"],strike:["9","29"],black:["30","39"],red:["31","39"],green:["32","39"],yellow:["33","39"],blue:["34","39"],magenta:["35","39"],cyan:["36","39"],white:["37","39"],brightblack:["30;1","39"],brightred:["31;1","39"],brightgreen:["32;1","39"],brightyellow:["33;1","39"],brightblue:["34;1","39"],brightmagenta:["35;1","39"],brightcyan:["36;1","39"],brightwhite:["37;1","39"],grey:["90","39"]},Dm={special:"cyan",number:"yellow",bigint:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",symbol:"green",date:"magenta",regexp:"red"},Rt="…";function jd(e,t){const r=Ms[Dm[t]]||Ms[t]||"";return r?`\x1B[${r[0]}m${String(e)}\x1B[${r[1]}m`:String(e)}x(jd,"colorise");function Dd({showHidden:e=!1,depth:t=2,colors:r=!1,customInspect:n=!0,showProxy:o=!1,maxArrayLength:a=1/0,breakLength:i=1/0,seen:s=[],truncate:l=1/0,stylize:u=String}={},d){const f={showHidden:!!e,depth:Number(t),colors:!!r,customInspect:!!n,showProxy:!!o,maxArrayLength:Number(a),breakLength:Number(i),truncate:Number(l),seen:s,inspect:d,stylize:u};return f.colors&&(f.stylize=jd),f}x(Dd,"normaliseOptions");function $d(e){return e>="\uD800"&&e<="\uDBFF"}x($d,"isHighSurrogate");function Ue(e,t,r=Rt){e=String(e);const n=r.length,o=e.length;if(n>t&&o>n)return r;if(o>t&&o>n){let a=t-n;return a>0&&$d(e[a-1])&&(a=a-1),`${e.slice(0,a)}${r}`}return e}x(Ue,"truncate");function ve(e,t,r,n=", "){r=r||t.inspect;const o=e.length;if(o===0)return"";const a=t.truncate;let i="",s="",l="";for(let u=0;u<o;u+=1){const d=u+1===e.length,f=u+2===e.length;l=`${Rt}(${e.length-u})`;const c=e[u];t.truncate=a-i.length-(d?0:n.length);const v=s||r(c,t)+(d?"":n),m=i.length+v.length,g=m+l.length;if(d&&m>a&&i.length+l.length<=a||!d&&!f&&g>a||(s=d?"":r(e[u+1],t)+(f?"":n),!d&&f&&g>a&&m+s.length>a))break;if(i+=v,!d&&!f&&m+s.length>=a){l=`${Rt}(${e.length-u-1})`;break}l=""}return`${i}${l}`}x(ve,"inspectList");function Bd(e){return e.match(/^[a-zA-Z_][a-zA-Z_0-9]*$/)?e:JSON.stringify(e).replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'")}x(Bd,"quoteComplexKey");function Et([e,t],r){return r.truncate-=2,typeof e=="string"?e=Bd(e):typeof e!="number"&&(e=`[${r.inspect(e,r)}]`),r.truncate-=e.length,t=r.inspect(t,r),`${e}: ${t}`}x(Et,"inspectProperty");function Ld(e,t){const r=Object.keys(e).slice(e.length);if(!e.length&&!r.length)return"[]";t.truncate-=4;const n=ve(e,t);t.truncate-=n.length;let o="";return r.length&&(o=ve(r.map(a=>[a,e[a]]),t,Et)),`[ ${n}${o?`, ${o}`:""} ]`}x(Ld,"inspectArray");var $m=x(e=>typeof Buffer=="function"&&e instanceof Buffer?"Buffer":e[Symbol.toStringTag]?e[Symbol.toStringTag]:e.constructor.name,"getArrayName");function _e(e,t){const r=$m(e);t.truncate-=r.length+4;const n=Object.keys(e).slice(e.length);if(!e.length&&!n.length)return`${r}[]`;let o="";for(let i=0;i<e.length;i++){const s=`${t.stylize(Ue(e[i],t.truncate),"number")}${i===e.length-1?"":", "}`;if(t.truncate-=s.length,e[i]!==e.length&&t.truncate<=3){o+=`${Rt}(${e.length-e[i]+1})`;break}o+=s}let a="";return n.length&&(a=ve(n.map(i=>[i,e[i]]),t,Et)),`${r}[ ${o}${a?`, ${a}`:""} ]`}x(_e,"inspectTypedArray");function Fd(e,t){const r=e.toJSON();if(r===null)return"Invalid Date";const n=r.split("T"),o=n[0];return t.stylize(`${o}T${Ue(n[1],t.truncate-o.length-1)}`,"date")}x(Fd,"inspectDate");function ti(e,t){const r=e[Symbol.toStringTag]||"Function",n=e.name;return n?t.stylize(`[${r} ${Ue(n,t.truncate-11)}]`,"special"):t.stylize(`[${r}]`,"special")}x(ti,"inspectFunction");function Ud([e,t],r){return r.truncate-=4,e=r.inspect(e,r),r.truncate-=e.length,t=r.inspect(t,r),`${e} => ${t}`}x(Ud,"inspectMapEntry");function zd(e){const t=[];return e.forEach((r,n)=>{t.push([n,r])}),t}x(zd,"mapToEntries");function Vd(e,t){return e.size===0?"Map{}":(t.truncate-=7,`Map{ ${ve(zd(e),t,Ud)} }`)}x(Vd,"inspectMap");var Bm=Number.isNaN||(e=>e!==e);function ri(e,t){return Bm(e)?t.stylize("NaN","number"):e===1/0?t.stylize("Infinity","number"):e===-1/0?t.stylize("-Infinity","number"):e===0?t.stylize(1/e===1/0?"+0":"-0","number"):t.stylize(Ue(String(e),t.truncate),"number")}x(ri,"inspectNumber");function ni(e,t){let r=Ue(e.toString(),t.truncate-1);return r!==Rt&&(r+="n"),t.stylize(r,"bigint")}x(ni,"inspectBigInt");function Hd(e,t){const r=e.toString().split("/")[2],n=t.truncate-(2+r.length),o=e.source;return t.stylize(`/${Ue(o,n)}/${r}`,"regexp")}x(Hd,"inspectRegExp");function Wd(e){const t=[];return e.forEach(r=>{t.push(r)}),t}x(Wd,"arrayFromSet");function Gd(e,t){return e.size===0?"Set{}":(t.truncate-=7,`Set{ ${ve(Wd(e),t)} }`)}x(Gd,"inspectSet");var Os=new RegExp("['\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]","g"),Lm={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r","'":"\\'","\\":"\\\\"},Fm=16;function Kd(e){return Lm[e]||`\\u${`0000${e.charCodeAt(0).toString(Fm)}`.slice(-4)}`}x(Kd,"escape");function oi(e,t){return Os.test(e)&&(e=e.replace(Os,Kd)),t.stylize(`'${Ue(e,t.truncate-2)}'`,"string")}x(oi,"inspectString");function ai(e){return"description"in Symbol.prototype?e.description?`Symbol(${e.description})`:"Symbol()":e.toString()}x(ai,"inspectSymbol");var Um=x(()=>"Promise{…}","getPromiseValue"),zm=Um;function To(e,t){const r=Object.getOwnPropertyNames(e),n=Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e):[];if(r.length===0&&n.length===0)return"{}";if(t.truncate-=4,t.seen=t.seen||[],t.seen.includes(e))return"[Circular]";t.seen.push(e);const o=ve(r.map(s=>[s,e[s]]),t,Et),a=ve(n.map(s=>[s,e[s]]),t,Et);t.seen.pop();let i="";return o&&a&&(i=", "),`{ ${o}${i}${a} }`}x(To,"inspectObject");var Fa=typeof Symbol<"u"&&Symbol.toStringTag?Symbol.toStringTag:!1;function Yd(e,t){let r="";return Fa&&Fa in e&&(r=e[Fa]),r=r||e.constructor.name,(!r||r==="_class")&&(r="<Anonymous Class>"),t.truncate-=r.length,`${r}${To(e,t)}`}x(Yd,"inspectClass");function Xd(e,t){return e.length===0?"Arguments[]":(t.truncate-=13,`Arguments[ ${ve(e,t)} ]`)}x(Xd,"inspectArguments");var Vm=["stack","line","column","name","message","fileName","lineNumber","columnNumber","number","description","cause"];function Jd(e,t){const r=Object.getOwnPropertyNames(e).filter(i=>Vm.indexOf(i)===-1),n=e.name;t.truncate-=n.length;let o="";if(typeof e.message=="string"?o=Ue(e.message,t.truncate):r.unshift("message"),o=o?`: ${o}`:"",t.truncate-=o.length+5,t.seen=t.seen||[],t.seen.includes(e))return"[Circular]";t.seen.push(e);const a=ve(r.map(i=>[i,e[i]]),t,Et);return`${n}${o}${a?` { ${a} }`:""}`}x(Jd,"inspectObject");function Qd([e,t],r){return r.truncate-=3,t?`${r.stylize(String(e),"yellow")}=${r.stylize(`"${t}"`,"string")}`:`${r.stylize(String(e),"yellow")}`}x(Qd,"inspectAttribute");function ca(e,t){return ve(e,t,Zd,`
|
|
2
2
|
`)}x(ca,"inspectNodeCollection");function Zd(e,t){switch(e.nodeType){case 1:return Oi(e,t);case 3:return t.inspect(e.data,t);default:return t.inspect(e,t)}}x(Zd,"inspectNode");function Oi(e,t){const r=e.getAttributeNames(),n=e.tagName.toLowerCase(),o=t.stylize(`<${n}`,"special"),a=t.stylize(">","special"),i=t.stylize(`</${n}>`,"special");t.truncate-=n.length*2+5;let s="";r.length>0&&(s+=" ",s+=ve(r.map(d=>[d,e.getAttribute(d)]),t,Qd," ")),t.truncate-=s.length;const l=t.truncate;let u=ca(e.children,t);return u&&u.length>l&&(u=`${Rt}(${e.children.length})`),`${o}${s}${a}${u}${i}`}x(Oi,"inspectHTML");var Hm=typeof Symbol=="function"&&typeof Symbol.for=="function",Ua=Hm?Symbol.for("chai/inspect"):"@@chai/inspect",za=Symbol.for("nodejs.util.inspect.custom"),Is=new WeakMap,Ns={},ks={undefined:x((e,t)=>t.stylize("undefined","undefined"),"undefined"),null:x((e,t)=>t.stylize("null","null"),"null"),boolean:x((e,t)=>t.stylize(String(e),"boolean"),"boolean"),Boolean:x((e,t)=>t.stylize(String(e),"boolean"),"Boolean"),number:ri,Number:ri,bigint:ni,BigInt:ni,string:oi,String:oi,function:ti,Function:ti,symbol:ai,Symbol:ai,Array:Ld,Date:Fd,Map:Vd,Set:Gd,RegExp:Hd,Promise:zm,WeakSet:x((e,t)=>t.stylize("WeakSet{…}","special"),"WeakSet"),WeakMap:x((e,t)=>t.stylize("WeakMap{…}","special"),"WeakMap"),Arguments:Xd,Int8Array:_e,Uint8Array:_e,Uint8ClampedArray:_e,Int16Array:_e,Uint16Array:_e,Int32Array:_e,Uint32Array:_e,Float32Array:_e,Float64Array:_e,Generator:x(()=>"","Generator"),DataView:x(()=>"","DataView"),ArrayBuffer:x(()=>"","ArrayBuffer"),Error:Jd,HTMLCollection:ca,NodeList:ca},Wm=x((e,t,r,n)=>Ua in e&&typeof e[Ua]=="function"?e[Ua](t):za in e&&typeof e[za]=="function"?e[za](t.depth,t,n):"inspect"in e&&typeof e.inspect=="function"?e.inspect(t.depth,t):"constructor"in e&&Is.has(e.constructor)?Is.get(e.constructor)(e,t):Ns[r]?Ns[r](e,t):"","inspectCustom"),Gm=Object.prototype.toString;function So(e,t={}){const r=Dd(t,So),{customInspect:n}=r;let o=e===null?"null":typeof e;if(o==="object"&&(o=Gm.call(e).slice(8,-1)),o in ks)return ks[o](e,r);if(n&&e){const i=Wm(e,r,o,So);if(i)return typeof i=="string"?i:So(i,r)}const a=e?Object.getPrototypeOf(e):!1;return a===Object.prototype||a===null?To(e,r):e&&typeof HTMLElement=="function"&&e instanceof HTMLElement?Oi(e,r):"constructor"in e?e.constructor!==Object?Yd(e,r):To(e,r):e===Object(e)?To(e,r):r.stylize(String(e),o)}x(So,"inspect");var ie={includeStack:!1,showDiff:!0,truncateThreshold:40,useProxy:!0,proxyExcludedKeys:["then","catch","inspect","toJSON"],deepEqual:null};function H(e,t,r,n){let o={colors:n,depth:typeof r>"u"?2:r,showHidden:t,truncate:ie.truncateThreshold?ie.truncateThreshold:1/0};return So(e,o)}x(H,"inspect");function ut(e){let t=H(e),r=Object.prototype.toString.call(e);if(ie.truncateThreshold&&t.length>=ie.truncateThreshold){if(r==="[object Function]")return!e.name||e.name===""?"[Function]":"[Function: "+e.name+"]";if(r==="[object Array]")return"[ Array("+e.length+") ]";if(r==="[object Object]"){let n=Object.keys(e);return"{ Object ("+(n.length>2?n.splice(0,2).join(", ")+", ...":n.join(", "))+") }"}else return t}else return t}x(ut,"objDisplay");function Ii(e,t){let r=U(e,"negate"),n=U(e,"object"),o=t[3],a=qa(e,t),i=r?t[2]:t[1],s=U(e,"message");return typeof i=="function"&&(i=i()),i=i||"",i=i.replace(/#\{this\}/g,function(){return ut(n)}).replace(/#\{act\}/g,function(){return ut(a)}).replace(/#\{exp\}/g,function(){return ut(o)}),s?s+": "+i:i}x(Ii,"getMessage");function xe(e,t,r){let n=e.__flags||(e.__flags=Object.create(null));t.__flags||(t.__flags=Object.create(null)),r=arguments.length===3?r:!0;for(let o in n)(r||o!=="object"&&o!=="ssfi"&&o!=="lockSsfi"&&o!="message")&&(t.__flags[o]=n[o])}x(xe,"transferFlags");function ii(e){if(typeof e>"u")return"undefined";if(e===null)return"null";const t=e[Symbol.toStringTag];return typeof t=="string"?t:Object.prototype.toString.call(e).slice(8,-1)}x(ii,"type");function Ni(){this._key="chai/deep-eql__"+Math.random()+Date.now()}x(Ni,"FakeMap");Ni.prototype={get:x(function(t){return t[this._key]},"get"),set:x(function(t,r){Object.isExtensible(t)&&Object.defineProperty(t,this._key,{value:r,configurable:!0})},"set")};var ef=typeof WeakMap=="function"?WeakMap:Ni;function si(e,t,r){if(!r||ft(e)||ft(t))return null;var n=r.get(e);if(n){var o=n.get(t);if(typeof o=="boolean")return o}return null}x(si,"memoizeCompare");function xo(e,t,r,n){if(!(!r||ft(e)||ft(t))){var o=r.get(e);o?o.set(t,n):(o=new ef,o.set(t,n),r.set(e,o))}}x(xo,"memoizeSet");var tf=$o;function $o(e,t,r){if(r&&r.comparator)return li(e,t,r);var n=ki(e,t);return n!==null?n:li(e,t,r)}x($o,"deepEqual");function ki(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t?!0:ft(e)||ft(t)?!1:null}x(ki,"simpleEqual");function li(e,t,r){r=r||{},r.memoize=r.memoize===!1?!1:r.memoize||new ef;var n=r&&r.comparator,o=si(e,t,r.memoize);if(o!==null)return o;var a=si(t,e,r.memoize);if(a!==null)return a;if(n){var i=n(e,t);if(i===!1||i===!0)return xo(e,t,r.memoize,i),i;var s=ki(e,t);if(s!==null)return s}var l=ii(e);if(l!==ii(t))return xo(e,t,r.memoize,!1),!1;xo(e,t,r.memoize,!0);var u=rf(e,t,l,r);return xo(e,t,r.memoize,u),u}x(li,"extensiveDeepEqual");function rf(e,t,r,n){switch(r){case"String":case"Number":case"Boolean":case"Date":return $o(e.valueOf(),t.valueOf());case"Promise":case"Symbol":case"function":case"WeakMap":case"WeakSet":return e===t;case"Error":return ji(e,t,["name","message","code"],n);case"Arguments":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"Array":return Qe(e,t,n);case"RegExp":return nf(e,t);case"Generator":return of(e,t,n);case"DataView":return Qe(new Uint8Array(e.buffer),new Uint8Array(t.buffer),n);case"ArrayBuffer":return Qe(new Uint8Array(e),new Uint8Array(t),n);case"Set":return ui(e,t,n);case"Map":return ui(e,t,n);case"Temporal.PlainDate":case"Temporal.PlainTime":case"Temporal.PlainDateTime":case"Temporal.Instant":case"Temporal.ZonedDateTime":case"Temporal.PlainYearMonth":case"Temporal.PlainMonthDay":return e.equals(t);case"Temporal.Duration":return e.total("nanoseconds")===t.total("nanoseconds");case"Temporal.TimeZone":case"Temporal.Calendar":return e.toString()===t.toString();default:return sf(e,t,n)}}x(rf,"extensiveDeepEqualByType");function nf(e,t){return e.toString()===t.toString()}x(nf,"regexpEqual");function ui(e,t,r){try{if(e.size!==t.size)return!1;if(e.size===0)return!0}catch{return!1}var n=[],o=[];return e.forEach(x(function(i,s){n.push([i,s])},"gatherEntries")),t.forEach(x(function(i,s){o.push([i,s])},"gatherEntries")),Qe(n.sort(),o.sort(),r)}x(ui,"entriesEqual");function Qe(e,t,r){var n=e.length;if(n!==t.length)return!1;if(n===0)return!0;for(var o=-1;++o<n;)if($o(e[o],t[o],r)===!1)return!1;return!0}x(Qe,"iterableEqual");function of(e,t,r){return Qe(da(e),da(t),r)}x(of,"generatorEqual");function af(e){return typeof Symbol<"u"&&typeof e=="object"&&typeof Symbol.iterator<"u"&&typeof e[Symbol.iterator]=="function"}x(af,"hasIteratorFunction");function ci(e){if(af(e))try{return da(e[Symbol.iterator]())}catch{return[]}return[]}x(ci,"getIteratorEntries");function da(e){for(var t=e.next(),r=[t.value];t.done===!1;)t=e.next(),r.push(t.value);return r}x(da,"getGeneratorEntries");function di(e){var t=[];for(var r in e)t.push(r);return t}x(di,"getEnumerableKeys");function fi(e){for(var t=[],r=Object.getOwnPropertySymbols(e),n=0;n<r.length;n+=1){var o=r[n];Object.getOwnPropertyDescriptor(e,o).enumerable&&t.push(o)}return t}x(fi,"getEnumerableSymbols");function ji(e,t,r,n){var o=r.length;if(o===0)return!0;for(var a=0;a<o;a+=1)if($o(e[r[a]],t[r[a]],n)===!1)return!1;return!0}x(ji,"keysEqual");function sf(e,t,r){var n=di(e),o=di(t),a=fi(e),i=fi(t);if(n=n.concat(a),o=o.concat(i),n.length&&n.length===o.length)return Qe(pi(n).sort(),pi(o).sort())===!1?!1:ji(e,t,n,r);var s=ci(e),l=ci(t);return s.length&&s.length===l.length?(s.sort(),l.sort(),Qe(s,l,r)):n.length===0&&s.length===0&&o.length===0&&l.length===0}x(sf,"objectEqual");function ft(e){return e===null||typeof e!="object"}x(ft,"isPrimitive");function pi(e){return e.map(x(function(r){return typeof r=="symbol"?r.toString():r},"mapSymbol"))}x(pi,"mapSymbols");function _a(e,t){return typeof e>"u"||e===null?!1:t in Object(e)}x(_a,"hasProperty");function lf(e){return e.replace(/([^\\])\[/g,"$1.[").match(/(\\\.|[^.]+?)+/g).map(n=>{if(n==="constructor"||n==="__proto__"||n==="prototype")return{};const a=/^\[(\d+)\]$/.exec(n);let i=null;return a?i={i:parseFloat(a[1])}:i={p:n.replace(/\\([.[\]])/g,"$1")},i})}x(lf,"parsePath");function mi(e,t,r){let n=e,o=null;r=typeof r>"u"?t.length:r;for(let a=0;a<r;a++){const i=t[a];n&&(typeof i.p>"u"?n=n[i.i]:n=n[i.p],a===r-1&&(o=n))}return o}x(mi,"internalGetPathValue");function Di(e,t){const r=lf(t),n=r[r.length-1],o={parent:r.length>1?mi(e,r,r.length-1):e,name:n.p||n.i,value:mi(e,r)};return o.exists=_a(o.parent,o.name),o}x(Di,"getPathInfo");var uf=class cf{constructor(t,r,n,o){return _d(this,"__flags",{}),U(this,"ssfi",n||cf),U(this,"lockSsfi",o),U(this,"object",t),U(this,"message",r),U(this,"eql",ie.deepEqual||tf),St(this)}static get includeStack(){return console.warn("Assertion.includeStack is deprecated, use chai.config.includeStack instead."),ie.includeStack}static set includeStack(t){console.warn("Assertion.includeStack is deprecated, use chai.config.includeStack instead."),ie.includeStack=t}static get showDiff(){return console.warn("Assertion.showDiff is deprecated, use chai.config.showDiff instead."),ie.showDiff}static set showDiff(t){console.warn("Assertion.showDiff is deprecated, use chai.config.showDiff instead."),ie.showDiff=t}static addProperty(t,r){Bi(this.prototype,t,r)}static addMethod(t,r){Li(this.prototype,t,r)}static addChainableMethod(t,r,n){zi(this.prototype,t,r,n)}static overwriteProperty(t,r){Fi(this.prototype,t,r)}static overwriteMethod(t,r){Ui(this.prototype,t,r)}static overwriteChainableMethod(t,r,n){Vi(this.prototype,t,r,n)}assert(t,r,n,o,a,i){const s=Mi(this,arguments);if(i!==!1&&(i=!0),o===void 0&&a===void 0&&(i=!1),ie.showDiff!==!0&&(i=!1),!s){r=Ii(this,arguments);const u={actual:qa(this,arguments),expected:o,showDiff:i},d=Gi(this,arguments);throw d&&(u.operator=d),new G(r,u,ie.includeStack?this.assert:U(this,"ssfi"))}}get _obj(){return U(this,"object")}set _obj(t){U(this,"object",t)}};x(uf,"Assertion");var b=uf,Pa=new EventTarget,df=class extends Event{constructor(t,r,n){super(t),this.name=String(r),this.fn=n}};x(df,"PluginEvent");var $i=df;function Bo(){return ie.useProxy&&typeof Proxy<"u"&&typeof Reflect<"u"}x(Bo,"isProxyEnabled");function Bi(e,t,r){r=r===void 0?function(){}:r,Object.defineProperty(e,t,{get:x(function n(){!Bo()&&!U(this,"lockSsfi")&&U(this,"ssfi",n);let o=r.call(this);if(o!==void 0)return o;let a=new b;return xe(this,a),a},"propertyGetter"),configurable:!0}),Pa.dispatchEvent(new $i("addProperty",t,r))}x(Bi,"addProperty");var Km=Object.getOwnPropertyDescriptor(function(){},"length");function Lo(e,t,r){return Km.configurable&&Object.defineProperty(e,"length",{get:x(function(){throw Error(r?"Invalid Chai property: "+t+'.length. Due to a compatibility issue, "length" cannot directly follow "'+t+'". Use "'+t+'.lengthOf" instead.':"Invalid Chai property: "+t+'.length. See docs for proper usage of "'+t+'".')},"get")}),e}x(Lo,"addLengthGuard");function ff(e){let t=Object.getOwnPropertyNames(e);function r(o){t.indexOf(o)===-1&&t.push(o)}x(r,"addProperty");let n=Object.getPrototypeOf(e);for(;n!==null;)Object.getOwnPropertyNames(n).forEach(r),n=Object.getPrototypeOf(n);return t}x(ff,"getProperties");var js=["__flags","__methods","_obj","assert"];function St(e,t){return Bo()?new Proxy(e,{get:x(function r(n,o){if(typeof o=="string"&&ie.proxyExcludedKeys.indexOf(o)===-1&&!Reflect.has(n,o)){if(t)throw Error("Invalid Chai property: "+t+"."+o+'. See docs for proper usage of "'+t+'".');let a=null,i=4;throw ff(n).forEach(function(s){if(!Object.prototype.hasOwnProperty(s)&&js.indexOf(s)===-1){let l=pf(o,s,i);l<i&&(a=s,i=l)}}),Error(a!==null?"Invalid Chai property: "+o+'. Did you mean "'+a+'"?':"Invalid Chai property: "+o)}return js.indexOf(o)===-1&&!U(n,"lockSsfi")&&U(n,"ssfi",r),Reflect.get(n,o)},"proxyGetter")}):e}x(St,"proxify");function pf(e,t,r){if(Math.abs(e.length-t.length)>=r)return r;let n=[];for(let o=0;o<=e.length;o++)n[o]=Array(t.length+1).fill(0),n[o][0]=o;for(let o=0;o<t.length;o++)n[0][o]=o;for(let o=1;o<=e.length;o++){let a=e.charCodeAt(o-1);for(let i=1;i<=t.length;i++){if(Math.abs(o-i)>=r){n[o][i]=r;continue}n[o][i]=Math.min(n[o-1][i]+1,n[o][i-1]+1,n[o-1][i-1]+(a===t.charCodeAt(i-1)?0:1))}}return n[e.length][t.length]}x(pf,"stringDistanceCapped");function Li(e,t,r){let n=x(function(){U(this,"lockSsfi")||U(this,"ssfi",n);let o=r.apply(this,arguments);if(o!==void 0)return o;let a=new b;return xe(this,a),a},"methodWrapper");Lo(n,t,!1),e[t]=St(n,t),Pa.dispatchEvent(new $i("addMethod",t,r))}x(Li,"addMethod");function Fi(e,t,r){let n=Object.getOwnPropertyDescriptor(e,t),o=x(function(){},"_super");n&&typeof n.get=="function"&&(o=n.get),Object.defineProperty(e,t,{get:x(function a(){!Bo()&&!U(this,"lockSsfi")&&U(this,"ssfi",a);let i=U(this,"lockSsfi");U(this,"lockSsfi",!0);let s=r(o).call(this);if(U(this,"lockSsfi",i),s!==void 0)return s;let l=new b;return xe(this,l),l},"overwritingPropertyGetter"),configurable:!0})}x(Fi,"overwriteProperty");function Ui(e,t,r){let n=e[t],o=x(function(){throw new Error(t+" is not a function")},"_super");n&&typeof n=="function"&&(o=n);let a=x(function(){U(this,"lockSsfi")||U(this,"ssfi",a);let i=U(this,"lockSsfi");U(this,"lockSsfi",!0);let s=r(o).apply(this,arguments);if(U(this,"lockSsfi",i),s!==void 0)return s;let l=new b;return xe(this,l),l},"overwritingMethodWrapper");Lo(a,t,!1),e[t]=St(a,t)}x(Ui,"overwriteMethod");var Ym=typeof Object.setPrototypeOf=="function",Ds=x(function(){},"testFn"),Xm=Object.getOwnPropertyNames(Ds).filter(function(e){let t=Object.getOwnPropertyDescriptor(Ds,e);return typeof t!="object"?!0:!t.configurable}),Jm=Function.prototype.call,Qm=Function.prototype.apply,mf=class extends $i{constructor(t,r,n,o){super(t,r,n),this.chainingBehavior=o}};x(mf,"PluginAddChainableMethodEvent");var Zm=mf;function zi(e,t,r,n){typeof n!="function"&&(n=x(function(){},"chainingBehavior"));let o={method:r,chainingBehavior:n};e.__methods||(e.__methods={}),e.__methods[t]=o,Object.defineProperty(e,t,{get:x(function(){o.chainingBehavior.call(this);let i=x(function(){U(this,"lockSsfi")||U(this,"ssfi",i);let s=o.method.apply(this,arguments);if(s!==void 0)return s;let l=new b;return xe(this,l),l},"chainableMethodWrapper");if(Lo(i,t,!0),Ym){let s=Object.create(this);s.call=Jm,s.apply=Qm,Object.setPrototypeOf(i,s)}else Object.getOwnPropertyNames(e).forEach(function(l){if(Xm.indexOf(l)!==-1)return;let u=Object.getOwnPropertyDescriptor(e,l);Object.defineProperty(i,l,u)});return xe(this,i),St(i)},"chainableMethodGetter"),configurable:!0}),Pa.dispatchEvent(new Zm("addChainableMethod",t,r,n))}x(zi,"addChainableMethod");function Vi(e,t,r,n){let o=e.__methods[t],a=o.chainingBehavior;o.chainingBehavior=x(function(){let l=n(a).call(this);if(l!==void 0)return l;let u=new b;return xe(this,u),u},"overwritingChainableMethodGetter");let i=o.method;o.method=x(function(){let l=r(i).apply(this,arguments);if(l!==void 0)return l;let u=new b;return xe(this,u),u},"overwritingChainableMethodWrapper")}x(Vi,"overwriteChainableMethod");function fa(e,t){return H(e)<H(t)?-1:1}x(fa,"compareByInspect");function Hi(e){return typeof Object.getOwnPropertySymbols!="function"?[]:Object.getOwnPropertySymbols(e).filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})}x(Hi,"getOwnEnumerablePropertySymbols");function Wi(e){return Object.keys(e).concat(Hi(e))}x(Wi,"getOwnEnumerableProperties");var pa=Number.isNaN;function hf(e){let t=Q(e);return["Array","Object","Function"].indexOf(t)!==-1}x(hf,"isObjectType");function Gi(e,t){let r=U(e,"operator"),n=U(e,"negate"),o=t[3],a=n?t[2]:t[1];if(r)return r;if(typeof a=="function"&&(a=a()),a=a||"",!a||/\shave\s/.test(a))return;let i=hf(o);return/\snot\s/.test(a)?i?"notDeepStrictEqual":"notStrictEqual":i?"deepStrictEqual":"strictEqual"}x(Gi,"getOperator");function Ta(e){return e.name}x(Ta,"getName");function ma(e){return Object.prototype.toString.call(e)==="[object RegExp]"}x(ma,"isRegExp");function ne(e){return["Number","BigInt"].includes(Q(e))}x(ne,"isNumeric");var{flag:R}=ua;["to","be","been","is","and","has","have","with","that","which","at","of","same","but","does","still","also"].forEach(function(e){b.addProperty(e)});b.addProperty("not",function(){R(this,"negate",!0)});b.addProperty("deep",function(){R(this,"deep",!0)});b.addProperty("nested",function(){R(this,"nested",!0)});b.addProperty("own",function(){R(this,"own",!0)});b.addProperty("ordered",function(){R(this,"ordered",!0)});b.addProperty("any",function(){R(this,"any",!0),R(this,"all",!1)});b.addProperty("all",function(){R(this,"all",!0),R(this,"any",!1)});var $s={function:["function","asyncfunction","generatorfunction","asyncgeneratorfunction"],asyncfunction:["asyncfunction","asyncgeneratorfunction"],generatorfunction:["generatorfunction","asyncgeneratorfunction"],asyncgeneratorfunction:["asyncgeneratorfunction"]};function Ki(e,t){t&&R(this,"message",t),e=e.toLowerCase();let r=R(this,"object"),n=~["a","e","i","o","u"].indexOf(e.charAt(0))?"an ":"a ";const o=Q(r).toLowerCase();$s.function.includes(e)?this.assert($s[e].includes(o),"expected #{this} to be "+n+e,"expected #{this} not to be "+n+e):this.assert(e===o,"expected #{this} to be "+n+e,"expected #{this} not to be "+n+e)}x(Ki,"an");b.addChainableMethod("an",Ki);b.addChainableMethod("a",Ki);function bf(e,t){return pa(e)&&pa(t)||e===t}x(bf,"SameValueZero");function Fo(){R(this,"contains",!0)}x(Fo,"includeChainingBehavior");function Uo(e,t){t&&R(this,"message",t);let r=R(this,"object"),n=Q(r).toLowerCase(),o=R(this,"message"),a=R(this,"negate"),i=R(this,"ssfi"),s=R(this,"deep"),l=s?"deep ":"",u=s?R(this,"eql"):bf;o=o?o+": ":"";let d=!1;switch(n){case"string":d=r.indexOf(e)!==-1;break;case"weakset":if(s)throw new G(o+"unable to use .deep.include with WeakSet",void 0,i);d=r.has(e);break;case"map":r.forEach(function(f){d=d||u(f,e)});break;case"set":s?r.forEach(function(f){d=d||u(f,e)}):d=r.has(e);break;case"array":s?d=r.some(function(f){return u(f,e)}):d=r.indexOf(e)!==-1;break;default:{if(e!==Object(e))throw new G(o+"the given combination of arguments ("+n+" and "+Q(e).toLowerCase()+") is invalid for this assertion. You can use an array, a map, an object, a set, a string, or a weakset instead of a "+Q(e).toLowerCase(),void 0,i);let f=Object.keys(e),c=null,v=0;if(f.forEach(function(m){let g=new b(r);if(xe(this,g,!0),R(g,"lockSsfi",!0),!a||f.length===1){g.property(m,e[m]);return}try{g.property(m,e[m])}catch(T){if(!pe.compatibleConstructor(T,G))throw T;c===null&&(c=T),v++}},this),a&&f.length>1&&v===f.length)throw c;return}}this.assert(d,"expected #{this} to "+l+"include "+H(e),"expected #{this} to not "+l+"include "+H(e))}x(Uo,"include");b.addChainableMethod("include",Uo,Fo);b.addChainableMethod("contain",Uo,Fo);b.addChainableMethod("contains",Uo,Fo);b.addChainableMethod("includes",Uo,Fo);b.addProperty("ok",function(){this.assert(R(this,"object"),"expected #{this} to be truthy","expected #{this} to be falsy")});b.addProperty("true",function(){this.assert(R(this,"object")===!0,"expected #{this} to be true","expected #{this} to be false",!R(this,"negate"))});b.addProperty("numeric",function(){const e=R(this,"object");this.assert(["Number","BigInt"].includes(Q(e)),"expected #{this} to be numeric","expected #{this} to not be numeric",!R(this,"negate"))});b.addProperty("callable",function(){const e=R(this,"object"),t=R(this,"ssfi"),r=R(this,"message"),n=r?`${r}: `:"",o=R(this,"negate"),a=o?`${n}expected ${H(e)} not to be a callable function`:`${n}expected ${H(e)} to be a callable function`,i=["Function","AsyncFunction","GeneratorFunction","AsyncGeneratorFunction"].includes(Q(e));if(i&&o||!i&&!o)throw new G(a,void 0,t)});b.addProperty("false",function(){this.assert(R(this,"object")===!1,"expected #{this} to be false","expected #{this} to be true",!!R(this,"negate"))});b.addProperty("null",function(){this.assert(R(this,"object")===null,"expected #{this} to be null","expected #{this} not to be null")});b.addProperty("undefined",function(){this.assert(R(this,"object")===void 0,"expected #{this} to be undefined","expected #{this} not to be undefined")});b.addProperty("NaN",function(){this.assert(pa(R(this,"object")),"expected #{this} to be NaN","expected #{this} not to be NaN")});function Yi(){let e=R(this,"object");this.assert(e!=null,"expected #{this} to exist","expected #{this} to not exist")}x(Yi,"assertExist");b.addProperty("exist",Yi);b.addProperty("exists",Yi);b.addProperty("empty",function(){let e=R(this,"object"),t=R(this,"ssfi"),r=R(this,"message"),n;switch(r=r?r+": ":"",Q(e).toLowerCase()){case"array":case"string":n=e.length;break;case"map":case"set":n=e.size;break;case"weakmap":case"weakset":throw new G(r+".empty was passed a weak collection",void 0,t);case"function":{const o=r+".empty was passed a function "+Ta(e);throw new G(o.trim(),void 0,t)}default:if(e!==Object(e))throw new G(r+".empty was passed non-string primitive "+H(e),void 0,t);n=Object.keys(e).length}this.assert(n===0,"expected #{this} to be empty","expected #{this} not to be empty")});function Xi(){let e=R(this,"object"),t=Q(e);this.assert(t==="Arguments","expected #{this} to be arguments but got "+t,"expected #{this} to not be arguments")}x(Xi,"checkArguments");b.addProperty("arguments",Xi);b.addProperty("Arguments",Xi);function Sa(e,t){t&&R(this,"message",t);let r=R(this,"object");if(R(this,"deep")){let n=R(this,"lockSsfi");R(this,"lockSsfi",!0),this.eql(e),R(this,"lockSsfi",n)}else this.assert(e===r,"expected #{this} to equal #{exp}","expected #{this} to not equal #{exp}",e,this._obj,!0)}x(Sa,"assertEqual");b.addMethod("equal",Sa);b.addMethod("equals",Sa);b.addMethod("eq",Sa);function Ji(e,t){t&&R(this,"message",t);let r=R(this,"eql");this.assert(r(e,R(this,"object")),"expected #{this} to deeply equal #{exp}","expected #{this} to not deeply equal #{exp}",e,this._obj,!0)}x(Ji,"assertEql");b.addMethod("eql",Ji);b.addMethod("eqls",Ji);function Aa(e,t){t&&R(this,"message",t);let r=R(this,"object"),n=R(this,"doLength"),o=R(this,"message"),a=o?o+": ":"",i=R(this,"ssfi"),s=Q(r).toLowerCase(),l=Q(e).toLowerCase();if(n&&s!=="map"&&s!=="set"&&new b(r,o,i,!0).to.have.property("length"),!n&&s==="date"&&l!=="date")throw new G(a+"the argument to above must be a date",void 0,i);if(!ne(e)&&(n||ne(r)))throw new G(a+"the argument to above must be a number",void 0,i);if(!n&&s!=="date"&&!ne(r)){let u=s==="string"?"'"+r+"'":r;throw new G(a+"expected "+u+" to be a number or a date",void 0,i)}if(n){let u="length",d;s==="map"||s==="set"?(u="size",d=r.size):d=r.length,this.assert(d>e,"expected #{this} to have a "+u+" above #{exp} but got #{act}","expected #{this} to not have a "+u+" above #{exp}",e,d)}else this.assert(r>e,"expected #{this} to be above #{exp}","expected #{this} to be at most #{exp}",e)}x(Aa,"assertAbove");b.addMethod("above",Aa);b.addMethod("gt",Aa);b.addMethod("greaterThan",Aa);function Ma(e,t){t&&R(this,"message",t);let r=R(this,"object"),n=R(this,"doLength"),o=R(this,"message"),a=o?o+": ":"",i=R(this,"ssfi"),s=Q(r).toLowerCase(),l=Q(e).toLowerCase(),u,d=!0;if(n&&s!=="map"&&s!=="set"&&new b(r,o,i,!0).to.have.property("length"),!n&&s==="date"&&l!=="date")u=a+"the argument to least must be a date";else if(!ne(e)&&(n||ne(r)))u=a+"the argument to least must be a number";else if(!n&&s!=="date"&&!ne(r)){let f=s==="string"?"'"+r+"'":r;u=a+"expected "+f+" to be a number or a date"}else d=!1;if(d)throw new G(u,void 0,i);if(n){let f="length",c;s==="map"||s==="set"?(f="size",c=r.size):c=r.length,this.assert(c>=e,"expected #{this} to have a "+f+" at least #{exp} but got #{act}","expected #{this} to have a "+f+" below #{exp}",e,c)}else this.assert(r>=e,"expected #{this} to be at least #{exp}","expected #{this} to be below #{exp}",e)}x(Ma,"assertLeast");b.addMethod("least",Ma);b.addMethod("gte",Ma);b.addMethod("greaterThanOrEqual",Ma);function Oa(e,t){t&&R(this,"message",t);let r=R(this,"object"),n=R(this,"doLength"),o=R(this,"message"),a=o?o+": ":"",i=R(this,"ssfi"),s=Q(r).toLowerCase(),l=Q(e).toLowerCase(),u,d=!0;if(n&&s!=="map"&&s!=="set"&&new b(r,o,i,!0).to.have.property("length"),!n&&s==="date"&&l!=="date")u=a+"the argument to below must be a date";else if(!ne(e)&&(n||ne(r)))u=a+"the argument to below must be a number";else if(!n&&s!=="date"&&!ne(r)){let f=s==="string"?"'"+r+"'":r;u=a+"expected "+f+" to be a number or a date"}else d=!1;if(d)throw new G(u,void 0,i);if(n){let f="length",c;s==="map"||s==="set"?(f="size",c=r.size):c=r.length,this.assert(c<e,"expected #{this} to have a "+f+" below #{exp} but got #{act}","expected #{this} to not have a "+f+" below #{exp}",e,c)}else this.assert(r<e,"expected #{this} to be below #{exp}","expected #{this} to be at least #{exp}",e)}x(Oa,"assertBelow");b.addMethod("below",Oa);b.addMethod("lt",Oa);b.addMethod("lessThan",Oa);function Ia(e,t){t&&R(this,"message",t);let r=R(this,"object"),n=R(this,"doLength"),o=R(this,"message"),a=o?o+": ":"",i=R(this,"ssfi"),s=Q(r).toLowerCase(),l=Q(e).toLowerCase(),u,d=!0;if(n&&s!=="map"&&s!=="set"&&new b(r,o,i,!0).to.have.property("length"),!n&&s==="date"&&l!=="date")u=a+"the argument to most must be a date";else if(!ne(e)&&(n||ne(r)))u=a+"the argument to most must be a number";else if(!n&&s!=="date"&&!ne(r)){let f=s==="string"?"'"+r+"'":r;u=a+"expected "+f+" to be a number or a date"}else d=!1;if(d)throw new G(u,void 0,i);if(n){let f="length",c;s==="map"||s==="set"?(f="size",c=r.size):c=r.length,this.assert(c<=e,"expected #{this} to have a "+f+" at most #{exp} but got #{act}","expected #{this} to have a "+f+" above #{exp}",e,c)}else this.assert(r<=e,"expected #{this} to be at most #{exp}","expected #{this} to be above #{exp}",e)}x(Ia,"assertMost");b.addMethod("most",Ia);b.addMethod("lte",Ia);b.addMethod("lessThanOrEqual",Ia);b.addMethod("within",function(e,t,r){r&&R(this,"message",r);let n=R(this,"object"),o=R(this,"doLength"),a=R(this,"message"),i=a?a+": ":"",s=R(this,"ssfi"),l=Q(n).toLowerCase(),u=Q(e).toLowerCase(),d=Q(t).toLowerCase(),f,c=!0,v=u==="date"&&d==="date"?e.toISOString()+".."+t.toISOString():e+".."+t;if(o&&l!=="map"&&l!=="set"&&new b(n,a,s,!0).to.have.property("length"),!o&&l==="date"&&(u!=="date"||d!=="date"))f=i+"the arguments to within must be dates";else if((!ne(e)||!ne(t))&&(o||ne(n)))f=i+"the arguments to within must be numbers";else if(!o&&l!=="date"&&!ne(n)){let m=l==="string"?"'"+n+"'":n;f=i+"expected "+m+" to be a number or a date"}else c=!1;if(c)throw new G(f,void 0,s);if(o){let m="length",g;l==="map"||l==="set"?(m="size",g=n.size):g=n.length,this.assert(g>=e&&g<=t,"expected #{this} to have a "+m+" within "+v,"expected #{this} to not have a "+m+" within "+v)}else this.assert(n>=e&&n<=t,"expected #{this} to be within "+v,"expected #{this} to not be within "+v)});function Qi(e,t){t&&R(this,"message",t);let r=R(this,"object"),n=R(this,"ssfi"),o=R(this,"message"),a;try{a=r instanceof e}catch(s){throw s instanceof TypeError?(o=o?o+": ":"",new G(o+"The instanceof assertion needs a constructor but "+Q(e)+" was given.",void 0,n)):s}let i=Ta(e);i==null&&(i="an unnamed constructor"),this.assert(a,"expected #{this} to be an instance of "+i,"expected #{this} to not be an instance of "+i)}x(Qi,"assertInstanceOf");b.addMethod("instanceof",Qi);b.addMethod("instanceOf",Qi);function Zi(e,t,r){r&&R(this,"message",r);let n=R(this,"nested"),o=R(this,"own"),a=R(this,"message"),i=R(this,"object"),s=R(this,"ssfi"),l=typeof e;if(a=a?a+": ":"",n){if(l!=="string")throw new G(a+"the argument to property must be a string when using nested syntax",void 0,s)}else if(l!=="string"&&l!=="number"&&l!=="symbol")throw new G(a+"the argument to property must be a string, number, or symbol",void 0,s);if(n&&o)throw new G(a+'The "nested" and "own" flags cannot be combined.',void 0,s);if(i==null)throw new G(a+"Target cannot be null or undefined.",void 0,s);let u=R(this,"deep"),d=R(this,"negate"),f=n?Di(i,e):null,c=n?f.value:i[e],v=u?R(this,"eql"):(T,p)=>T===p,m="";u&&(m+="deep "),o&&(m+="own "),n&&(m+="nested "),m+="property ";let g;o?g=Object.prototype.hasOwnProperty.call(i,e):n?g=f.exists:g=_a(i,e),(!d||arguments.length===1)&&this.assert(g,"expected #{this} to have "+m+H(e),"expected #{this} to not have "+m+H(e)),arguments.length>1&&this.assert(g&&v(t,c),"expected #{this} to have "+m+H(e)+" of #{exp}, but got #{act}","expected #{this} to not have "+m+H(e)+" of #{act}",t,c),R(this,"object",c)}x(Zi,"assertProperty");b.addMethod("property",Zi);function es(e,t,r){R(this,"own",!0),Zi.apply(this,arguments)}x(es,"assertOwnProperty");b.addMethod("ownProperty",es);b.addMethod("haveOwnProperty",es);function ts(e,t,r){typeof t=="string"&&(r=t,t=null),r&&R(this,"message",r);let n=R(this,"object"),o=Object.getOwnPropertyDescriptor(Object(n),e),a=R(this,"eql");o&&t?this.assert(a(t,o),"expected the own property descriptor for "+H(e)+" on #{this} to match "+H(t)+", got "+H(o),"expected the own property descriptor for "+H(e)+" on #{this} to not match "+H(t),t,o,!0):this.assert(o,"expected #{this} to have an own property descriptor for "+H(e),"expected #{this} to not have an own property descriptor for "+H(e)),R(this,"object",o)}x(ts,"assertOwnPropertyDescriptor");b.addMethod("ownPropertyDescriptor",ts);b.addMethod("haveOwnPropertyDescriptor",ts);function rs(){R(this,"doLength",!0)}x(rs,"assertLengthChain");function ns(e,t){t&&R(this,"message",t);let r=R(this,"object"),n=Q(r).toLowerCase(),o=R(this,"message"),a=R(this,"ssfi"),i="length",s;switch(n){case"map":case"set":i="size",s=r.size;break;default:new b(r,o,a,!0).to.have.property("length"),s=r.length}this.assert(s==e,"expected #{this} to have a "+i+" of #{exp} but got #{act}","expected #{this} to not have a "+i+" of #{act}",e,s)}x(ns,"assertLength");b.addChainableMethod("length",ns,rs);b.addChainableMethod("lengthOf",ns,rs);function os(e,t){t&&R(this,"message",t);let r=R(this,"object");this.assert(e.exec(r),"expected #{this} to match "+e,"expected #{this} not to match "+e)}x(os,"assertMatch");b.addMethod("match",os);b.addMethod("matches",os);b.addMethod("string",function(e,t){t&&R(this,"message",t);let r=R(this,"object"),n=R(this,"message"),o=R(this,"ssfi");new b(r,n,o,!0).is.a("string"),this.assert(~r.indexOf(e),"expected #{this} to contain "+H(e),"expected #{this} to not contain "+H(e))});function as(e){let t=R(this,"object"),r=Q(t),n=Q(e),o=R(this,"ssfi"),a=R(this,"deep"),i,s="",l,u=!0,d=R(this,"message");d=d?d+": ":"";let f=d+"when testing keys against an object or an array you must give a single Array|Object|String argument or multiple String arguments";if(r==="Map"||r==="Set")s=a?"deeply ":"",l=[],t.forEach(function(p,q){l.push(q)}),n!=="Array"&&(e=Array.prototype.slice.call(arguments));else{switch(l=Wi(t),n){case"Array":if(arguments.length>1)throw new G(f,void 0,o);break;case"Object":if(arguments.length>1)throw new G(f,void 0,o);e=Object.keys(e);break;default:e=Array.prototype.slice.call(arguments)}e=e.map(function(p){return typeof p=="symbol"?p:String(p)})}if(!e.length)throw new G(d+"keys required",void 0,o);let c=e.length,v=R(this,"any"),m=R(this,"all"),g=e,T=a?R(this,"eql"):(p,q)=>p===q;if(!v&&!m&&(m=!0),v&&(u=g.some(function(p){return l.some(function(q){return T(p,q)})})),m&&(u=g.every(function(p){return l.some(function(q){return T(p,q)})}),R(this,"contains")||(u=u&&e.length==l.length)),c>1){e=e.map(function(q){return H(q)});let p=e.pop();m&&(i=e.join(", ")+", and "+p),v&&(i=e.join(", ")+", or "+p)}else i=H(e[0]);i=(c>1?"keys ":"key ")+i,i=(R(this,"contains")?"contain ":"have ")+i,this.assert(u,"expected #{this} to "+s+i,"expected #{this} to not "+s+i,g.slice(0).sort(fa),l.sort(fa),!0)}x(as,"assertKeys");b.addMethod("keys",as);b.addMethod("key",as);function Na(e,t,r){r&&R(this,"message",r);let n=R(this,"object"),o=R(this,"ssfi"),a=R(this,"message"),i=R(this,"negate")||!1;new b(n,a,o,!0).is.a("function"),(ma(e)||typeof e=="string")&&(t=e,e=null);let s,l=!1;try{n()}catch(v){l=!0,s=v}let u=e===void 0&&t===void 0,d=!!(e&&t),f=!1,c=!1;if(u||!u&&!i){let v="an error";e instanceof Error?v="#{exp}":e&&(v=pe.getConstructorName(e));let m=s;if(s instanceof Error)m=s.toString();else if(typeof s=="string")m=s;else if(s&&(typeof s=="object"||typeof s=="function"))try{m=pe.getConstructorName(s)}catch{}this.assert(l,"expected #{this} to throw "+v,"expected #{this} to not throw an error but #{act} was thrown",e&&e.toString(),m)}if(e&&s&&(e instanceof Error&&pe.compatibleInstance(s,e)===i&&(d&&i?f=!0:this.assert(i,"expected #{this} to throw #{exp} but #{act} was thrown","expected #{this} to not throw #{exp}"+(s&&!i?" but #{act} was thrown":""),e.toString(),s.toString())),pe.compatibleConstructor(s,e)===i&&(d&&i?f=!0:this.assert(i,"expected #{this} to throw #{exp} but #{act} was thrown","expected #{this} to not throw #{exp}"+(s?" but #{act} was thrown":""),e instanceof Error?e.toString():e&&pe.getConstructorName(e),s instanceof Error?s.toString():s&&pe.getConstructorName(s)))),s&&t!==void 0&&t!==null){let v="including";ma(t)&&(v="matching"),pe.compatibleMessage(s,t)===i&&(d&&i?c=!0:this.assert(i,"expected #{this} to throw error "+v+" #{exp} but got #{act}","expected #{this} to throw error not "+v+" #{exp}",t,pe.getMessage(s)))}f&&c&&this.assert(i,"expected #{this} to throw #{exp} but #{act} was thrown","expected #{this} to not throw #{exp}"+(s?" but #{act} was thrown":""),e instanceof Error?e.toString():e&&pe.getConstructorName(e),s instanceof Error?s.toString():s&&pe.getConstructorName(s)),R(this,"object",s)}x(Na,"assertThrows");b.addMethod("throw",Na);b.addMethod("throws",Na);b.addMethod("Throw",Na);function is(e,t){t&&R(this,"message",t);let r=R(this,"object"),n=R(this,"itself"),o=typeof r=="function"&&!n?r.prototype[e]:r[e];this.assert(typeof o=="function","expected #{this} to respond to "+H(e),"expected #{this} to not respond to "+H(e))}x(is,"respondTo");b.addMethod("respondTo",is);b.addMethod("respondsTo",is);b.addProperty("itself",function(){R(this,"itself",!0)});function ss(e,t){t&&R(this,"message",t);let r=R(this,"object"),n=e(r);this.assert(n,"expected #{this} to satisfy "+ut(e),"expected #{this} to not satisfy"+ut(e),!R(this,"negate"),n)}x(ss,"satisfy");b.addMethod("satisfy",ss);b.addMethod("satisfies",ss);function ls(e,t,r){r&&R(this,"message",r);let n=R(this,"object"),o=R(this,"message"),a=R(this,"ssfi");new b(n,o,a,!0).is.numeric;let i="A `delta` value is required for `closeTo`";if(t==null)throw new G(o?`${o}: ${i}`:i,void 0,a);if(new b(t,o,a,!0).is.numeric,i="A `expected` value is required for `closeTo`",e==null)throw new G(o?`${o}: ${i}`:i,void 0,a);new b(e,o,a,!0).is.numeric;const s=x(u=>u<0?-u:u,"abs"),l=x(u=>parseFloat(parseFloat(u).toPrecision(12)),"strip");this.assert(l(s(n-e))<=t,"expected #{this} to be close to "+e+" +/- "+t,"expected #{this} not to be close to "+e+" +/- "+t)}x(ls,"closeTo");b.addMethod("closeTo",ls);b.addMethod("approximately",ls);function vf(e,t,r,n,o){let a=Array.from(t),i=Array.from(e);if(!n){if(i.length!==a.length)return!1;a=a.slice()}return i.every(function(s,l){if(o)return r?r(s,a[l]):s===a[l];if(!r){let u=a.indexOf(s);return u===-1?!1:(n||a.splice(u,1),!0)}return a.some(function(u,d){return r(s,u)?(n||a.splice(d,1),!0):!1})})}x(vf,"isSubsetOf");b.addMethod("members",function(e,t){t&&R(this,"message",t);let r=R(this,"object"),n=R(this,"message"),o=R(this,"ssfi");new b(r,n,o,!0).to.be.iterable,new b(e,n,o,!0).to.be.iterable;let a=R(this,"contains"),i=R(this,"ordered"),s,l,u;a?(s=i?"an ordered superset":"a superset",l="expected #{this} to be "+s+" of #{exp}",u="expected #{this} to not be "+s+" of #{exp}"):(s=i?"ordered members":"members",l="expected #{this} to have the same "+s+" as #{exp}",u="expected #{this} to not have the same "+s+" as #{exp}");let d=R(this,"deep")?R(this,"eql"):void 0;this.assert(vf(e,r,d,a,i),l,u,e,r,!0)});b.addProperty("iterable",function(e){e&&R(this,"message",e);let t=R(this,"object");this.assert(t!=null&&t[Symbol.iterator],"expected #{this} to be an iterable","expected #{this} to not be an iterable",t)});function gf(e,t){t&&R(this,"message",t);let r=R(this,"object"),n=R(this,"message"),o=R(this,"ssfi"),a=R(this,"contains"),i=R(this,"deep"),s=R(this,"eql");new b(e,n,o,!0).to.be.an("array"),a?this.assert(e.some(function(l){return r.indexOf(l)>-1}),"expected #{this} to contain one of #{exp}","expected #{this} to not contain one of #{exp}",e,r):i?this.assert(e.some(function(l){return s(r,l)}),"expected #{this} to deeply equal one of #{exp}","expected #{this} to deeply equal one of #{exp}",e,r):this.assert(e.indexOf(r)>-1,"expected #{this} to be one of #{exp}","expected #{this} to not be one of #{exp}",e,r)}x(gf,"oneOf");b.addMethod("oneOf",gf);function us(e,t,r){r&&R(this,"message",r);let n=R(this,"object"),o=R(this,"message"),a=R(this,"ssfi");new b(n,o,a,!0).is.a("function");let i;t?(new b(e,o,a,!0).to.have.property(t),i=e[t]):(new b(e,o,a,!0).is.a("function"),i=e()),n();let s=t==null?e():e[t],l=t==null?i:"."+t;R(this,"deltaMsgObj",l),R(this,"initialDeltaValue",i),R(this,"finalDeltaValue",s),R(this,"deltaBehavior","change"),R(this,"realDelta",s!==i),this.assert(i!==s,"expected "+l+" to change","expected "+l+" to not change")}x(us,"assertChanges");b.addMethod("change",us);b.addMethod("changes",us);function cs(e,t,r){r&&R(this,"message",r);let n=R(this,"object"),o=R(this,"message"),a=R(this,"ssfi");new b(n,o,a,!0).is.a("function");let i;t?(new b(e,o,a,!0).to.have.property(t),i=e[t]):(new b(e,o,a,!0).is.a("function"),i=e()),new b(i,o,a,!0).is.a("number"),n();let s=t==null?e():e[t],l=t==null?i:"."+t;R(this,"deltaMsgObj",l),R(this,"initialDeltaValue",i),R(this,"finalDeltaValue",s),R(this,"deltaBehavior","increase"),R(this,"realDelta",s-i),this.assert(s-i>0,"expected "+l+" to increase","expected "+l+" to not increase")}x(cs,"assertIncreases");b.addMethod("increase",cs);b.addMethod("increases",cs);function ds(e,t,r){r&&R(this,"message",r);let n=R(this,"object"),o=R(this,"message"),a=R(this,"ssfi");new b(n,o,a,!0).is.a("function");let i;t?(new b(e,o,a,!0).to.have.property(t),i=e[t]):(new b(e,o,a,!0).is.a("function"),i=e()),new b(i,o,a,!0).is.a("number"),n();let s=t==null?e():e[t],l=t==null?i:"."+t;R(this,"deltaMsgObj",l),R(this,"initialDeltaValue",i),R(this,"finalDeltaValue",s),R(this,"deltaBehavior","decrease"),R(this,"realDelta",i-s),this.assert(s-i<0,"expected "+l+" to decrease","expected "+l+" to not decrease")}x(ds,"assertDecreases");b.addMethod("decrease",ds);b.addMethod("decreases",ds);function yf(e,t){t&&R(this,"message",t);let r=R(this,"deltaMsgObj"),n=R(this,"initialDeltaValue"),o=R(this,"finalDeltaValue"),a=R(this,"deltaBehavior"),i=R(this,"realDelta"),s;a==="change"?s=Math.abs(o-n)===Math.abs(e):s=i===Math.abs(e),this.assert(s,"expected "+r+" to "+a+" by "+e,"expected "+r+" to not "+a+" by "+e)}x(yf,"assertDelta");b.addMethod("by",yf);b.addProperty("extensible",function(){let e=R(this,"object"),t=e===Object(e)&&Object.isExtensible(e);this.assert(t,"expected #{this} to be extensible","expected #{this} to not be extensible")});b.addProperty("sealed",function(){let e=R(this,"object"),t=e===Object(e)?Object.isSealed(e):!0;this.assert(t,"expected #{this} to be sealed","expected #{this} to not be sealed")});b.addProperty("frozen",function(){let e=R(this,"object"),t=e===Object(e)?Object.isFrozen(e):!0;this.assert(t,"expected #{this} to be frozen","expected #{this} to not be frozen")});b.addProperty("finite",function(e){let t=R(this,"object");this.assert(typeof t=="number"&&isFinite(t),"expected #{this} to be a finite number","expected #{this} to not be a finite number")});function ha(e,t){return e===t?!0:typeof t!=typeof e?!1:typeof e!="object"||e===null?e===t:t?Array.isArray(e)?Array.isArray(t)?e.every(function(r){return t.some(function(n){return ha(r,n)})}):!1:e instanceof Date?t instanceof Date?e.getTime()===t.getTime():!1:Object.keys(e).every(function(r){let n=e[r],o=t[r];return typeof n=="object"&&n!==null&&o!==null?ha(n,o):typeof n=="function"?n(o):o===n}):!1}x(ha,"compareSubset");b.addMethod("containSubset",function(e){const t=U(this,"object"),r=ie.showDiff;this.assert(ha(e,t),"expected #{act} to contain subset #{exp}","expected #{act} to not contain subset #{exp}",e,t,r)});function Mo(e,t){return new b(e,t)}x(Mo,"expect");Mo.fail=function(e,t,r,n){throw arguments.length<2&&(r=e,e=void 0),r=r||"expect.fail()",new G(r,{actual:e,expected:t,operator:n},Mo.fail)};var wf={};Ai(wf,{Should:()=>th,should:()=>eh});function fs(){function e(){return this instanceof String||this instanceof Number||this instanceof Boolean||typeof Symbol=="function"&&this instanceof Symbol||typeof BigInt=="function"&&this instanceof BigInt?new b(this.valueOf(),null,e):new b(this,null,e)}x(e,"shouldGetter");function t(n){Object.defineProperty(this,"should",{value:n,enumerable:!0,configurable:!0,writable:!0})}x(t,"shouldSetter"),Object.defineProperty(Object.prototype,"should",{set:t,get:e,configurable:!0});let r={};return r.fail=function(n,o,a,i){throw arguments.length<2&&(a=n,n=void 0),a=a||"should.fail()",new G(a,{actual:n,expected:o,operator:i},r.fail)},r.equal=function(n,o,a){new b(n,a).to.equal(o)},r.Throw=function(n,o,a,i){new b(n,i).to.Throw(o,a)},r.exist=function(n,o){new b(n,o).to.exist},r.not={},r.not.equal=function(n,o,a){new b(n,a).to.not.equal(o)},r.not.Throw=function(n,o,a,i){new b(n,i).to.not.Throw(o,a)},r.not.exist=function(n,o){new b(n,o).to.not.exist},r.throw=r.Throw,r.not.throw=r.not.Throw,r}x(fs,"loadShould");var eh=fs,th=fs;function h(e,t){new b(null,null,h,!0).assert(e,t,"[ negation message unavailable ]")}x(h,"assert");h.fail=function(e,t,r,n){throw arguments.length<2&&(r=e,e=void 0),r=r||"assert.fail()",new G(r,{actual:e,expected:t,operator:n},h.fail)};h.isOk=function(e,t){new b(e,t,h.isOk,!0).is.ok};h.isNotOk=function(e,t){new b(e,t,h.isNotOk,!0).is.not.ok};h.equal=function(e,t,r){let n=new b(e,r,h.equal,!0);n.assert(t==U(n,"object"),"expected #{this} to equal #{exp}","expected #{this} to not equal #{act}",t,e,!0)};h.notEqual=function(e,t,r){let n=new b(e,r,h.notEqual,!0);n.assert(t!=U(n,"object"),"expected #{this} to not equal #{exp}","expected #{this} to equal #{act}",t,e,!0)};h.strictEqual=function(e,t,r){new b(e,r,h.strictEqual,!0).to.equal(t)};h.notStrictEqual=function(e,t,r){new b(e,r,h.notStrictEqual,!0).to.not.equal(t)};h.deepEqual=h.deepStrictEqual=function(e,t,r){new b(e,r,h.deepEqual,!0).to.eql(t)};h.notDeepEqual=function(e,t,r){new b(e,r,h.notDeepEqual,!0).to.not.eql(t)};h.isAbove=function(e,t,r){new b(e,r,h.isAbove,!0).to.be.above(t)};h.isAtLeast=function(e,t,r){new b(e,r,h.isAtLeast,!0).to.be.least(t)};h.isBelow=function(e,t,r){new b(e,r,h.isBelow,!0).to.be.below(t)};h.isAtMost=function(e,t,r){new b(e,r,h.isAtMost,!0).to.be.most(t)};h.isTrue=function(e,t){new b(e,t,h.isTrue,!0).is.true};h.isNotTrue=function(e,t){new b(e,t,h.isNotTrue,!0).to.not.equal(!0)};h.isFalse=function(e,t){new b(e,t,h.isFalse,!0).is.false};h.isNotFalse=function(e,t){new b(e,t,h.isNotFalse,!0).to.not.equal(!1)};h.isNull=function(e,t){new b(e,t,h.isNull,!0).to.equal(null)};h.isNotNull=function(e,t){new b(e,t,h.isNotNull,!0).to.not.equal(null)};h.isNaN=function(e,t){new b(e,t,h.isNaN,!0).to.be.NaN};h.isNotNaN=function(e,t){new b(e,t,h.isNotNaN,!0).not.to.be.NaN};h.exists=function(e,t){new b(e,t,h.exists,!0).to.exist};h.notExists=function(e,t){new b(e,t,h.notExists,!0).to.not.exist};h.isUndefined=function(e,t){new b(e,t,h.isUndefined,!0).to.equal(void 0)};h.isDefined=function(e,t){new b(e,t,h.isDefined,!0).to.not.equal(void 0)};h.isCallable=function(e,t){new b(e,t,h.isCallable,!0).is.callable};h.isNotCallable=function(e,t){new b(e,t,h.isNotCallable,!0).is.not.callable};h.isObject=function(e,t){new b(e,t,h.isObject,!0).to.be.a("object")};h.isNotObject=function(e,t){new b(e,t,h.isNotObject,!0).to.not.be.a("object")};h.isArray=function(e,t){new b(e,t,h.isArray,!0).to.be.an("array")};h.isNotArray=function(e,t){new b(e,t,h.isNotArray,!0).to.not.be.an("array")};h.isString=function(e,t){new b(e,t,h.isString,!0).to.be.a("string")};h.isNotString=function(e,t){new b(e,t,h.isNotString,!0).to.not.be.a("string")};h.isNumber=function(e,t){new b(e,t,h.isNumber,!0).to.be.a("number")};h.isNotNumber=function(e,t){new b(e,t,h.isNotNumber,!0).to.not.be.a("number")};h.isNumeric=function(e,t){new b(e,t,h.isNumeric,!0).is.numeric};h.isNotNumeric=function(e,t){new b(e,t,h.isNotNumeric,!0).is.not.numeric};h.isFinite=function(e,t){new b(e,t,h.isFinite,!0).to.be.finite};h.isBoolean=function(e,t){new b(e,t,h.isBoolean,!0).to.be.a("boolean")};h.isNotBoolean=function(e,t){new b(e,t,h.isNotBoolean,!0).to.not.be.a("boolean")};h.typeOf=function(e,t,r){new b(e,r,h.typeOf,!0).to.be.a(t)};h.notTypeOf=function(e,t,r){new b(e,r,h.notTypeOf,!0).to.not.be.a(t)};h.instanceOf=function(e,t,r){new b(e,r,h.instanceOf,!0).to.be.instanceOf(t)};h.notInstanceOf=function(e,t,r){new b(e,r,h.notInstanceOf,!0).to.not.be.instanceOf(t)};h.include=function(e,t,r){new b(e,r,h.include,!0).include(t)};h.notInclude=function(e,t,r){new b(e,r,h.notInclude,!0).not.include(t)};h.deepInclude=function(e,t,r){new b(e,r,h.deepInclude,!0).deep.include(t)};h.notDeepInclude=function(e,t,r){new b(e,r,h.notDeepInclude,!0).not.deep.include(t)};h.nestedInclude=function(e,t,r){new b(e,r,h.nestedInclude,!0).nested.include(t)};h.notNestedInclude=function(e,t,r){new b(e,r,h.notNestedInclude,!0).not.nested.include(t)};h.deepNestedInclude=function(e,t,r){new b(e,r,h.deepNestedInclude,!0).deep.nested.include(t)};h.notDeepNestedInclude=function(e,t,r){new b(e,r,h.notDeepNestedInclude,!0).not.deep.nested.include(t)};h.ownInclude=function(e,t,r){new b(e,r,h.ownInclude,!0).own.include(t)};h.notOwnInclude=function(e,t,r){new b(e,r,h.notOwnInclude,!0).not.own.include(t)};h.deepOwnInclude=function(e,t,r){new b(e,r,h.deepOwnInclude,!0).deep.own.include(t)};h.notDeepOwnInclude=function(e,t,r){new b(e,r,h.notDeepOwnInclude,!0).not.deep.own.include(t)};h.match=function(e,t,r){new b(e,r,h.match,!0).to.match(t)};h.notMatch=function(e,t,r){new b(e,r,h.notMatch,!0).to.not.match(t)};h.property=function(e,t,r){new b(e,r,h.property,!0).to.have.property(t)};h.notProperty=function(e,t,r){new b(e,r,h.notProperty,!0).to.not.have.property(t)};h.propertyVal=function(e,t,r,n){new b(e,n,h.propertyVal,!0).to.have.property(t,r)};h.notPropertyVal=function(e,t,r,n){new b(e,n,h.notPropertyVal,!0).to.not.have.property(t,r)};h.deepPropertyVal=function(e,t,r,n){new b(e,n,h.deepPropertyVal,!0).to.have.deep.property(t,r)};h.notDeepPropertyVal=function(e,t,r,n){new b(e,n,h.notDeepPropertyVal,!0).to.not.have.deep.property(t,r)};h.ownProperty=function(e,t,r){new b(e,r,h.ownProperty,!0).to.have.own.property(t)};h.notOwnProperty=function(e,t,r){new b(e,r,h.notOwnProperty,!0).to.not.have.own.property(t)};h.ownPropertyVal=function(e,t,r,n){new b(e,n,h.ownPropertyVal,!0).to.have.own.property(t,r)};h.notOwnPropertyVal=function(e,t,r,n){new b(e,n,h.notOwnPropertyVal,!0).to.not.have.own.property(t,r)};h.deepOwnPropertyVal=function(e,t,r,n){new b(e,n,h.deepOwnPropertyVal,!0).to.have.deep.own.property(t,r)};h.notDeepOwnPropertyVal=function(e,t,r,n){new b(e,n,h.notDeepOwnPropertyVal,!0).to.not.have.deep.own.property(t,r)};h.nestedProperty=function(e,t,r){new b(e,r,h.nestedProperty,!0).to.have.nested.property(t)};h.notNestedProperty=function(e,t,r){new b(e,r,h.notNestedProperty,!0).to.not.have.nested.property(t)};h.nestedPropertyVal=function(e,t,r,n){new b(e,n,h.nestedPropertyVal,!0).to.have.nested.property(t,r)};h.notNestedPropertyVal=function(e,t,r,n){new b(e,n,h.notNestedPropertyVal,!0).to.not.have.nested.property(t,r)};h.deepNestedPropertyVal=function(e,t,r,n){new b(e,n,h.deepNestedPropertyVal,!0).to.have.deep.nested.property(t,r)};h.notDeepNestedPropertyVal=function(e,t,r,n){new b(e,n,h.notDeepNestedPropertyVal,!0).to.not.have.deep.nested.property(t,r)};h.lengthOf=function(e,t,r){new b(e,r,h.lengthOf,!0).to.have.lengthOf(t)};h.hasAnyKeys=function(e,t,r){new b(e,r,h.hasAnyKeys,!0).to.have.any.keys(t)};h.hasAllKeys=function(e,t,r){new b(e,r,h.hasAllKeys,!0).to.have.all.keys(t)};h.containsAllKeys=function(e,t,r){new b(e,r,h.containsAllKeys,!0).to.contain.all.keys(t)};h.doesNotHaveAnyKeys=function(e,t,r){new b(e,r,h.doesNotHaveAnyKeys,!0).to.not.have.any.keys(t)};h.doesNotHaveAllKeys=function(e,t,r){new b(e,r,h.doesNotHaveAllKeys,!0).to.not.have.all.keys(t)};h.hasAnyDeepKeys=function(e,t,r){new b(e,r,h.hasAnyDeepKeys,!0).to.have.any.deep.keys(t)};h.hasAllDeepKeys=function(e,t,r){new b(e,r,h.hasAllDeepKeys,!0).to.have.all.deep.keys(t)};h.containsAllDeepKeys=function(e,t,r){new b(e,r,h.containsAllDeepKeys,!0).to.contain.all.deep.keys(t)};h.doesNotHaveAnyDeepKeys=function(e,t,r){new b(e,r,h.doesNotHaveAnyDeepKeys,!0).to.not.have.any.deep.keys(t)};h.doesNotHaveAllDeepKeys=function(e,t,r){new b(e,r,h.doesNotHaveAllDeepKeys,!0).to.not.have.all.deep.keys(t)};h.throws=function(e,t,r,n){(typeof t=="string"||t instanceof RegExp)&&(r=t,t=null);let o=new b(e,n,h.throws,!0).to.throw(t,r);return U(o,"object")};h.doesNotThrow=function(e,t,r,n){(typeof t=="string"||t instanceof RegExp)&&(r=t,t=null),new b(e,n,h.doesNotThrow,!0).to.not.throw(t,r)};h.operator=function(e,t,r,n){let o;switch(t){case"==":o=e==r;break;case"===":o=e===r;break;case">":o=e>r;break;case">=":o=e>=r;break;case"<":o=e<r;break;case"<=":o=e<=r;break;case"!=":o=e!=r;break;case"!==":o=e!==r;break;default:throw n=n&&n+": ",new G(n+'Invalid operator "'+t+'"',void 0,h.operator)}let a=new b(o,n,h.operator,!0);a.assert(U(a,"object")===!0,"expected "+H(e)+" to be "+t+" "+H(r),"expected "+H(e)+" to not be "+t+" "+H(r))};h.closeTo=function(e,t,r,n){new b(e,n,h.closeTo,!0).to.be.closeTo(t,r)};h.approximately=function(e,t,r,n){new b(e,n,h.approximately,!0).to.be.approximately(t,r)};h.sameMembers=function(e,t,r){new b(e,r,h.sameMembers,!0).to.have.same.members(t)};h.notSameMembers=function(e,t,r){new b(e,r,h.notSameMembers,!0).to.not.have.same.members(t)};h.sameDeepMembers=function(e,t,r){new b(e,r,h.sameDeepMembers,!0).to.have.same.deep.members(t)};h.notSameDeepMembers=function(e,t,r){new b(e,r,h.notSameDeepMembers,!0).to.not.have.same.deep.members(t)};h.sameOrderedMembers=function(e,t,r){new b(e,r,h.sameOrderedMembers,!0).to.have.same.ordered.members(t)};h.notSameOrderedMembers=function(e,t,r){new b(e,r,h.notSameOrderedMembers,!0).to.not.have.same.ordered.members(t)};h.sameDeepOrderedMembers=function(e,t,r){new b(e,r,h.sameDeepOrderedMembers,!0).to.have.same.deep.ordered.members(t)};h.notSameDeepOrderedMembers=function(e,t,r){new b(e,r,h.notSameDeepOrderedMembers,!0).to.not.have.same.deep.ordered.members(t)};h.includeMembers=function(e,t,r){new b(e,r,h.includeMembers,!0).to.include.members(t)};h.notIncludeMembers=function(e,t,r){new b(e,r,h.notIncludeMembers,!0).to.not.include.members(t)};h.includeDeepMembers=function(e,t,r){new b(e,r,h.includeDeepMembers,!0).to.include.deep.members(t)};h.notIncludeDeepMembers=function(e,t,r){new b(e,r,h.notIncludeDeepMembers,!0).to.not.include.deep.members(t)};h.includeOrderedMembers=function(e,t,r){new b(e,r,h.includeOrderedMembers,!0).to.include.ordered.members(t)};h.notIncludeOrderedMembers=function(e,t,r){new b(e,r,h.notIncludeOrderedMembers,!0).to.not.include.ordered.members(t)};h.includeDeepOrderedMembers=function(e,t,r){new b(e,r,h.includeDeepOrderedMembers,!0).to.include.deep.ordered.members(t)};h.notIncludeDeepOrderedMembers=function(e,t,r){new b(e,r,h.notIncludeDeepOrderedMembers,!0).to.not.include.deep.ordered.members(t)};h.oneOf=function(e,t,r){new b(e,r,h.oneOf,!0).to.be.oneOf(t)};h.isIterable=function(e,t){if(e==null||!e[Symbol.iterator])throw t=t?`${t} expected ${H(e)} to be an iterable`:`expected ${H(e)} to be an iterable`,new G(t,void 0,h.isIterable)};h.changes=function(e,t,r,n){arguments.length===3&&typeof t=="function"&&(n=r,r=null),new b(e,n,h.changes,!0).to.change(t,r)};h.changesBy=function(e,t,r,n,o){if(arguments.length===4&&typeof t=="function"){let a=n;n=r,o=a}else arguments.length===3&&(n=r,r=null);new b(e,o,h.changesBy,!0).to.change(t,r).by(n)};h.doesNotChange=function(e,t,r,n){return arguments.length===3&&typeof t=="function"&&(n=r,r=null),new b(e,n,h.doesNotChange,!0).to.not.change(t,r)};h.changesButNotBy=function(e,t,r,n,o){if(arguments.length===4&&typeof t=="function"){let a=n;n=r,o=a}else arguments.length===3&&(n=r,r=null);new b(e,o,h.changesButNotBy,!0).to.change(t,r).but.not.by(n)};h.increases=function(e,t,r,n){return arguments.length===3&&typeof t=="function"&&(n=r,r=null),new b(e,n,h.increases,!0).to.increase(t,r)};h.increasesBy=function(e,t,r,n,o){if(arguments.length===4&&typeof t=="function"){let a=n;n=r,o=a}else arguments.length===3&&(n=r,r=null);new b(e,o,h.increasesBy,!0).to.increase(t,r).by(n)};h.doesNotIncrease=function(e,t,r,n){return arguments.length===3&&typeof t=="function"&&(n=r,r=null),new b(e,n,h.doesNotIncrease,!0).to.not.increase(t,r)};h.increasesButNotBy=function(e,t,r,n,o){if(arguments.length===4&&typeof t=="function"){let a=n;n=r,o=a}else arguments.length===3&&(n=r,r=null);new b(e,o,h.increasesButNotBy,!0).to.increase(t,r).but.not.by(n)};h.decreases=function(e,t,r,n){return arguments.length===3&&typeof t=="function"&&(n=r,r=null),new b(e,n,h.decreases,!0).to.decrease(t,r)};h.decreasesBy=function(e,t,r,n,o){if(arguments.length===4&&typeof t=="function"){let a=n;n=r,o=a}else arguments.length===3&&(n=r,r=null);new b(e,o,h.decreasesBy,!0).to.decrease(t,r).by(n)};h.doesNotDecrease=function(e,t,r,n){return arguments.length===3&&typeof t=="function"&&(n=r,r=null),new b(e,n,h.doesNotDecrease,!0).to.not.decrease(t,r)};h.doesNotDecreaseBy=function(e,t,r,n,o){if(arguments.length===4&&typeof t=="function"){let a=n;n=r,o=a}else arguments.length===3&&(n=r,r=null);return new b(e,o,h.doesNotDecreaseBy,!0).to.not.decrease(t,r).by(n)};h.decreasesButNotBy=function(e,t,r,n,o){if(arguments.length===4&&typeof t=="function"){let a=n;n=r,o=a}else arguments.length===3&&(n=r,r=null);new b(e,o,h.decreasesButNotBy,!0).to.decrease(t,r).but.not.by(n)};h.ifError=function(e){if(e)throw e};h.isExtensible=function(e,t){new b(e,t,h.isExtensible,!0).to.be.extensible};h.isNotExtensible=function(e,t){new b(e,t,h.isNotExtensible,!0).to.not.be.extensible};h.isSealed=function(e,t){new b(e,t,h.isSealed,!0).to.be.sealed};h.isNotSealed=function(e,t){new b(e,t,h.isNotSealed,!0).to.not.be.sealed};h.isFrozen=function(e,t){new b(e,t,h.isFrozen,!0).to.be.frozen};h.isNotFrozen=function(e,t){new b(e,t,h.isNotFrozen,!0).to.not.be.frozen};h.isEmpty=function(e,t){new b(e,t,h.isEmpty,!0).to.be.empty};h.isNotEmpty=function(e,t){new b(e,t,h.isNotEmpty,!0).to.not.be.empty};h.containsSubset=function(e,t,r){new b(e,r).to.containSubset(t)};h.doesNotContainSubset=function(e,t,r){new b(e,r).to.not.containSubset(t)};var rh=[["isOk","ok"],["isNotOk","notOk"],["throws","throw"],["throws","Throw"],["isExtensible","extensible"],["isNotExtensible","notExtensible"],["isSealed","sealed"],["isNotSealed","notSealed"],["isFrozen","frozen"],["isNotFrozen","notFrozen"],["isEmpty","empty"],["isNotEmpty","notEmpty"],["isCallable","isFunction"],["isNotCallable","isNotFunction"],["containsSubset","containSubset"]];for(const[e,t]of rh)h[t]=h[e];var Bs=[];function Rf(e){const t={use:Rf,AssertionError:G,util:ua,config:ie,expect:Mo,assert:h,Assertion:b,...wf};return~Bs.indexOf(e)||(e(t,ua),Bs.push(e)),t}x(Rf,"use");function nh(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}const oh=e=>{const t=new Map,r=[];for(const n of e)t.set(n.id,{...n,childrenNodes:[]});for(const n of t.values())n.parent?t.get(n.parent)?.childrenNodes?.push(n):r.push(n);return r},ah={animation:"spin 1s linear infinite"},ih=()=>j.j.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"var(--twd-icon-color-secondary)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"lucide lucide-loader-circle-icon lucide-loader-circle",style:ah,"data-testid":"loader-icon",children:j.j.jsx("path",{d:"M21 12a9 9 0 1 1-6.219-8.56"})}),Go=document.createElement("style");Go&&!document.getElementById("loader-spin-keyframes")&&(Go.id="loader-spin-keyframes",Go.innerHTML=`
|
|
3
3
|
@keyframes spin {
|
|
4
4
|
0% { transform: rotate(0deg); }
|
package/dist/index.es.js
CHANGED
|
@@ -213,7 +213,7 @@ const _m = {
|
|
|
213
213
|
}, me = (e) => {
|
|
214
214
|
const t = sa.size ? Array.from(sa.values()).find((r) => r.status === "running") : null;
|
|
215
215
|
t && t.logs?.push(e);
|
|
216
|
-
}, Mi = "1.5.
|
|
216
|
+
}, Mi = "1.5.1", Pm = () => typeof window < "u" ? (window.__TWD_MOCK_STATE__ || (window.__TWD_MOCK_STATE__ = {
|
|
217
217
|
rules: [],
|
|
218
218
|
counts: {}
|
|
219
219
|
}), window.__TWD_MOCK_STATE__) : {
|
package/dist/mock-sw.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(){"use strict";const f=e=>{try{return new RegExp(e),!0}catch{return!1}},h=new Set(["js","mjs","cjs","ts","tsx","jsx","mts","cts","css","scss","sass","less","styl","html","htm","xml","xhtml","vue","svelte","json","yaml","yml","toml","csv","txt","md","mdx","pdf","doc","docx","png","jpg","jpeg","gif","svg","webp","ico","bmp","avif","woff","woff2","ttf","eot","otf","mp3","mp4","webm","ogg","wav","zip","tar","gz","rar","map"]),d=e=>{const
|
|
1
|
+
(function(){"use strict";const f=e=>{try{return new RegExp(e),!0}catch{return!1}},h=new Set(["js","mjs","cjs","ts","tsx","jsx","mts","cts","css","scss","sass","less","styl","html","htm","xml","xhtml","vue","svelte","json","yaml","yml","toml","csv","txt","md","mdx","pdf","doc","docx","png","jpg","jpeg","gif","svg","webp","ico","bmp","avif","woff","woff2","ttf","eot","otf","mp3","mp4","webm","ogg","wav","zip","tar","gz","rar","map"]),d=e=>{const o=e.split("?")[0].match(/\.([a-zA-Z0-9]+)$/);return o?h.has(o[1].toLowerCase()):!1},m=(e,n)=>{const o=e.indexOf(n);if(o===-1)return!1;const t=o+n.length,s=e[t];if(s===void 0)return!0;const i=e.indexOf("?");return i!==-1&&t>i?!0:"/?#&".includes(s)};function p(e,n,o){return o.find(t=>{const s=t.method.toLowerCase()===e.toLowerCase();if(t.urlRegex&&f(t.url)){const c=new RegExp(t.url);return s&&c.test(n)}if(d(t.url))return s&&n.includes(t.url);const u=t.url===n||m(n,t.url);return s&&u&&!d(n)})}function y(e,n,o,t){e.forEach(s=>s.postMessage({type:"EXECUTED",alias:n.alias,request:o,hitCount:t}))}const g=(e,n,o)=>{const s=![204,205,304].includes(n),i=s?JSON.stringify(e):null;return new Response(i,{status:n,headers:s?o||{"Content-Type":"application/json"}:o||{}})},r="1.5.1";let a=[],l={};const w=async e=>{const{method:n}=e.request,o=e.request.url,t=p(n,o,a);t&&(console.log("[TWD] Mock hit:",t.alias,n,o),e.respondWith((async()=>{let s=null;const i=e.request.headers.get("content-type")||"application/json";if(i.includes("application/json"))try{s=await e.request.clone().json()}catch{}else if(i.includes("form"))try{const c=await e.request.clone().formData();s={},c.forEach((W,v)=>{s[v]=W})}catch{}else if(i.includes("text"))try{s=await e.request.clone().text()}catch{}else if(i.includes("octet-stream"))try{s=await e.request.clone().arrayBuffer()}catch{}else if(i.includes("image"))try{s=await e.request.clone().blob()}catch{}else try{s=await e.request.clone().text()}catch{}l[t.alias]||(l[t.alias]=0),l[t.alias]++;const u=await self.clients.matchAll();return y(u,t,s,l[t.alias]),t.delay&&t.delay>0&&await new Promise(c=>setTimeout(c,t.delay)),g(t.response,t.status??200,t.responseHeaders)})()))},x=e=>{e!==r&&console.warn(`[TWD] ⚠️ Version mismatch detected:
|
|
2
2
|
Client version: ${e}
|
|
3
3
|
Service Worker version: ${r}
|
|
4
4
|
|
|
@@ -8,4 +8,4 @@ Please unregister the Service Worker and reload the page to ensure compatibility
|
|
|
8
8
|
To reinstall:
|
|
9
9
|
npx twd-js init public --save
|
|
10
10
|
|
|
11
|
-
Docs: https://brikev.github.io/twd/api-mocking.html#_1-install-mock-service-worker`)},E=e=>{const{type:
|
|
11
|
+
Docs: https://brikev.github.io/twd/api-mocking.html#_1-install-mock-service-worker`)},E=e=>{const{type:n,rule:o,version:t}=e.data||{};x(t),n==="ADD_RULE"&&(a=a.filter(s=>s.alias!==o.alias),a.push(o),console.log("[TWD] Rule added:",o)),n==="CLEAR_RULES"&&(a=[],l={},console.log("[TWD] All rules cleared"))};self.addEventListener("install",()=>{self.skipWaiting()}),self.addEventListener("activate",e=>{e.waitUntil(self.clients.claim())}),console.log(`[TWD] Mock Service Worker loaded - version ${r}`),self.addEventListener("fetch",w),self.addEventListener("message",E)})();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "twd-js",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.1",
|
|
4
4
|
"description": "Test While Developing (TWD) - in-browser testing",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "BRIKEV",
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
"@testing-library/react": "^16.3.2",
|
|
83
83
|
"@types/react": "^19.2.13",
|
|
84
84
|
"@types/react-dom": "^19.2.3",
|
|
85
|
-
"@vitejs/plugin-react": "^5.1.
|
|
85
|
+
"@vitejs/plugin-react": "^5.1.4",
|
|
86
86
|
"@vitest/coverage-v8": "^4.0.18",
|
|
87
87
|
"conventional-changelog": "^7.1.1",
|
|
88
88
|
"jsdom": "^28.0.0",
|