@dtect/security-sdk-js 0.0.16 → 0.0.18
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/README.md +24 -0
- package/dist/index.d.mts +22 -2
- package/dist/index.d.ts +22 -2
- package/dist/index.js +11 -1
- package/dist/index.mjs +11 -1
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -143,6 +143,30 @@ dtect
|
|
|
143
143
|
</script>
|
|
144
144
|
```
|
|
145
145
|
|
|
146
|
+
## Testing
|
|
147
|
+
|
|
148
|
+
This package uses [Vitest](https://vitest.dev/) with a JSDOM environment for deterministic unit tests.
|
|
149
|
+
|
|
150
|
+
- Run the full unit test suite:
|
|
151
|
+
|
|
152
|
+
```sh
|
|
153
|
+
yarn test
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
- Run tests in watch mode while developing:
|
|
157
|
+
|
|
158
|
+
```sh
|
|
159
|
+
yarn test:watch
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
- Run tests with coverage flag
|
|
163
|
+
|
|
164
|
+
```sh
|
|
165
|
+
yarn test --coverage
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
The test configuration is defined in `vitest.config.ts`, and coverage thresholds are enforced for the `src/` directory.
|
|
169
|
+
|
|
146
170
|
## Errors
|
|
147
171
|
|
|
148
172
|
_Read full documentation about errors on [our official docs](https://docs.dtect.io/errors)_
|
package/dist/index.d.mts
CHANGED
|
@@ -93,6 +93,26 @@ interface ISecurityResultResponse {
|
|
|
93
93
|
interface ISecurityTokenResponse {
|
|
94
94
|
token: string;
|
|
95
95
|
}
|
|
96
|
+
interface BaseQuestion {
|
|
97
|
+
id: string;
|
|
98
|
+
text: string;
|
|
99
|
+
}
|
|
100
|
+
interface SingleSelectQuestion extends BaseQuestion {
|
|
101
|
+
type: "single_select";
|
|
102
|
+
options: QuestionOption[];
|
|
103
|
+
}
|
|
104
|
+
interface OpenEndQuestion extends BaseQuestion {
|
|
105
|
+
type: "open_end";
|
|
106
|
+
}
|
|
107
|
+
interface MultiSelectQuestion extends BaseQuestion {
|
|
108
|
+
type: "multi_select";
|
|
109
|
+
options: QuestionOption[];
|
|
110
|
+
}
|
|
111
|
+
interface QuestionOption {
|
|
112
|
+
id: string;
|
|
113
|
+
text: string;
|
|
114
|
+
}
|
|
115
|
+
type IQualityQuestionsResponse = (SingleSelectQuestion | OpenEndQuestion | MultiSelectQuestion)[];
|
|
96
116
|
|
|
97
117
|
interface ISecurityAPIInitProps {
|
|
98
118
|
clientId: string;
|
|
@@ -107,7 +127,7 @@ interface Idtect {
|
|
|
107
127
|
getSecurityToken: (props: ISecurityCheckInput) => Promise<ISecurityResultResponse | ISecurityTokenResponse>;
|
|
108
128
|
isAIUsageDetected: (props: IIsAiUsageDetectedInput) => Promise<ISecurityResultResponse | ISecurityTokenResponse | undefined>;
|
|
109
129
|
checkQualityQuestions: (props: ICheckQualityQuestionsInput) => Promise<ISecurityResultResponse | ISecurityTokenResponse | undefined>;
|
|
110
|
-
getQualityQuestions: (props: IGetQualityQuestionsInput) => Promise<
|
|
130
|
+
getQualityQuestions: (props: IGetQualityQuestionsInput) => Promise<IQualityQuestionsResponse | undefined>;
|
|
111
131
|
QualityQuestionsRespondentTypes: typeof QualityQuestionsRespondentTypes;
|
|
112
132
|
LanguageCodes: typeof LanguageCodes;
|
|
113
133
|
}
|
|
@@ -128,7 +148,7 @@ declare const SecurityAPIError: {
|
|
|
128
148
|
};
|
|
129
149
|
declare function getSecurityResult(props: ISecurityCheckInput): Promise<ISecurityResultResponse | ISecurityTokenResponse>;
|
|
130
150
|
declare function getSecurityToken(props: ISecurityCheckInput): Promise<ISecurityResultResponse | ISecurityTokenResponse>;
|
|
131
|
-
declare function getQualityQuestions(props: IGetQualityQuestionsInput): Promise<
|
|
151
|
+
declare function getQualityQuestions(props: IGetQualityQuestionsInput): Promise<IQualityQuestionsResponse | undefined>;
|
|
132
152
|
declare function checkQualityQuestions(props: ICheckQualityQuestionsInput): Promise<ISecurityResultResponse | ISecurityTokenResponse | undefined>;
|
|
133
153
|
declare function isAIUsageDetected(props: IIsAiUsageDetectedInput): Promise<ISecurityResultResponse | ISecurityTokenResponse | undefined>;
|
|
134
154
|
declare function init(props: ISecurityAPIInitProps): Promise<IdtectModule>;
|
package/dist/index.d.ts
CHANGED
|
@@ -93,6 +93,26 @@ interface ISecurityResultResponse {
|
|
|
93
93
|
interface ISecurityTokenResponse {
|
|
94
94
|
token: string;
|
|
95
95
|
}
|
|
96
|
+
interface BaseQuestion {
|
|
97
|
+
id: string;
|
|
98
|
+
text: string;
|
|
99
|
+
}
|
|
100
|
+
interface SingleSelectQuestion extends BaseQuestion {
|
|
101
|
+
type: "single_select";
|
|
102
|
+
options: QuestionOption[];
|
|
103
|
+
}
|
|
104
|
+
interface OpenEndQuestion extends BaseQuestion {
|
|
105
|
+
type: "open_end";
|
|
106
|
+
}
|
|
107
|
+
interface MultiSelectQuestion extends BaseQuestion {
|
|
108
|
+
type: "multi_select";
|
|
109
|
+
options: QuestionOption[];
|
|
110
|
+
}
|
|
111
|
+
interface QuestionOption {
|
|
112
|
+
id: string;
|
|
113
|
+
text: string;
|
|
114
|
+
}
|
|
115
|
+
type IQualityQuestionsResponse = (SingleSelectQuestion | OpenEndQuestion | MultiSelectQuestion)[];
|
|
96
116
|
|
|
97
117
|
interface ISecurityAPIInitProps {
|
|
98
118
|
clientId: string;
|
|
@@ -107,7 +127,7 @@ interface Idtect {
|
|
|
107
127
|
getSecurityToken: (props: ISecurityCheckInput) => Promise<ISecurityResultResponse | ISecurityTokenResponse>;
|
|
108
128
|
isAIUsageDetected: (props: IIsAiUsageDetectedInput) => Promise<ISecurityResultResponse | ISecurityTokenResponse | undefined>;
|
|
109
129
|
checkQualityQuestions: (props: ICheckQualityQuestionsInput) => Promise<ISecurityResultResponse | ISecurityTokenResponse | undefined>;
|
|
110
|
-
getQualityQuestions: (props: IGetQualityQuestionsInput) => Promise<
|
|
130
|
+
getQualityQuestions: (props: IGetQualityQuestionsInput) => Promise<IQualityQuestionsResponse | undefined>;
|
|
111
131
|
QualityQuestionsRespondentTypes: typeof QualityQuestionsRespondentTypes;
|
|
112
132
|
LanguageCodes: typeof LanguageCodes;
|
|
113
133
|
}
|
|
@@ -128,7 +148,7 @@ declare const SecurityAPIError: {
|
|
|
128
148
|
};
|
|
129
149
|
declare function getSecurityResult(props: ISecurityCheckInput): Promise<ISecurityResultResponse | ISecurityTokenResponse>;
|
|
130
150
|
declare function getSecurityToken(props: ISecurityCheckInput): Promise<ISecurityResultResponse | ISecurityTokenResponse>;
|
|
131
|
-
declare function getQualityQuestions(props: IGetQualityQuestionsInput): Promise<
|
|
151
|
+
declare function getQualityQuestions(props: IGetQualityQuestionsInput): Promise<IQualityQuestionsResponse | undefined>;
|
|
132
152
|
declare function checkQualityQuestions(props: ICheckQualityQuestionsInput): Promise<ISecurityResultResponse | ISecurityTokenResponse | undefined>;
|
|
133
153
|
declare function isAIUsageDetected(props: IIsAiUsageDetectedInput): Promise<ISecurityResultResponse | ISecurityTokenResponse | undefined>;
|
|
134
154
|
declare function init(props: ISecurityAPIInitProps): Promise<IdtectModule>;
|
package/dist/index.js
CHANGED
|
@@ -1 +1,11 @@
|
|
|
1
|
-
"use strict";var ne=Object.defineProperty;var ut=Object.getOwnPropertyDescriptor;var lt=Object.getOwnPropertyNames;var ht=Object.prototype.hasOwnProperty;var ft=(e,t)=>{for(var r in t)ne(e,r,{get:t[r],enumerable:!0})},dt=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of lt(t))!ht.call(e,i)&&i!==r&&ne(e,i,{get:()=>t[i],enumerable:!(n=ut(t,i))||n.enumerable});return e};var Et=e=>dt(ne({},"__esModule",{value:!0}),e);var _r={};ft(_r,{LanguageCodes:()=>x,QualityQuestionsRespondentTypes:()=>q,SecurityAPIError:()=>nt,checkQualityQuestions:()=>ve,default:()=>Or,getQualityQuestions:()=>_e,getSecurityResult:()=>Te,getSecurityToken:()=>Oe,init:()=>at,isAIUsageDetected:()=>ge});module.exports=Et(_r);function Rt(e,t){return function(r,n){return Object.prototype.hasOwnProperty.call(r,n)}(e,t)?e[t]:void 0}function mt(e,t,r,n){let i=document,o="securitypolicyviolation",c,s=d=>{let u=new URL(e,location.href),{blockedURI:l}=d;l!==u.href&&l!==u.protocol.slice(0,-1)&&l!==u.origin||(c=d,a())};i.addEventListener(o,s);let a=()=>i.removeEventListener(o,s);return n?.then(a,a),Promise.resolve().then(t).then(d=>(a(),d),d=>new Promise(u=>{let l=new MessageChannel;l.port1.onmessage=()=>u(),l.port2.postMessage(null)}).then(()=>{if(a(),c)return r(c);throw d}))}function g(e){let t="";for(let r=0;r<e.length;++r)if(r>0){let n=e[r].toLowerCase();n!==e[r]?t+=` ${n}`:t+=e[r]}else t+=e[r].toUpperCase();return t}var pt={default:"endpoint"},yt={default:"tlsEndpoint"},It="Client timeout",Tt="Network connection error",Ot="Network request aborted",_t="Response cannot be parsed",ie="Blocked by CSP",se="The endpoint parameter is not a valid URL",vt="Handle on demand agent data error",gt=g("WrongRegion"),At=g("SubscriptionNotActive"),wt=g("UnsupportedVersion"),Dt=g("InstallationMethodRestricted"),Nt=g("HostnameRestricted"),bt=g("IntegrationFailed"),Pt=g("NetworkRestricted"),St=g("InvalidProxyIntegrationSecret"),kt=g("InvalidProxyIntegrationHeaders"),Mt=g("ProxyIntegrationSecretEnvironmentMismatch"),oe="API key required",Ae="API key not found",we="API key expired",Lt="Request cannot be parsed",Ut="Request failed",Ft="Request failed to process",xt="Too many requests, rate limit exceeded",qt="Not available for this origin",Kt="Not available with restricted header",Gt=oe,Bt=Ae,jt=we,Ct="3.12.0",V="Failed to load the JS script of the agent",ae="9319";function Vt(e,t){let r=[],[n,i]=function(s){let a=function(l){let m=[...l];return{current:()=>m[0],postpone(){let p=m.shift();p!==void 0&&m.push(p)},exclude(){m.shift()}}}(s),d=function(l,m){let p=0;return()=>Math.random()*Math.min(m,l*Math.pow(2,p++))}(100,3e3),u=new Set;return[a.current(),(l,m)=>{let p,E=m instanceof Error?m.message:"";if(E===ie||E===se)a.exclude(),p=0;else if(E===ae)a.exclude();else if(E===V){let O=Date.now()-l.getTime()<50,h=a.current();h&&O&&!u.has(h)&&(u.add(h),p=0),a.postpone()}else a.postpone();let f=a.current();return f===void 0?void 0:[f,p??l.getTime()+d()-Date.now()]}]}(e),o;if(n===void 0)return Promise.reject(new TypeError("The list of script URL patterns is empty"));let c=s=>{let a=new Date,d=l=>r.push({url:s,startedAt:a,finishedAt:new Date,error:l}),u=t(s);return u.then(()=>d(),d),u.catch(l=>{if(o!=null||(o=l),r.length>=5)throw o;let m=i(a,l);if(!m)throw o;let[p,E]=m;return(f=E,new Promise(O=>setTimeout(O,f))).then(()=>c(p));var f})};return c(n).then(s=>[s,r])}var De="https://fpnpmcdn.net/v<version>/<apiKey>/loader_v<loaderVersion>.js",Qt=De;function Yt(e){var t,r;let{picked:n,rest:i}=function(u,l){let m={},p={};for(let[E,f]of Object.entries(u))l.includes(E)?m[E]=f:p[E]=f;return{picked:m,rest:p}}(e,["scriptUrlPattern","token","apiKey"]),o=n.token,c=(t=n.apiKey)!==null&&t!==void 0?t:o,s=(r=Rt(e,"scriptUrlPattern"))!==null&&r!==void 0?r:De,[a,d]=function(){let u=[],l=()=>{u.push({time:new Date,state:document.visibilityState})},m=function(p,E,f,O){return p.addEventListener(E,f,O),()=>p.removeEventListener(E,f,O)}(document,"visibilitychange",l);return l(),[u,m]}();return Promise.resolve().then(()=>{if(!c||typeof c!="string")throw new Error(oe);let u=function(l,m){return(Array.isArray(l)?l:[l]).map(p=>function(E,f){let O=encodeURIComponent;return E.replace(/<[^<>]+>/g,h=>h==="<version>"?"3":h==="<apiKey>"?O(f):h==="<loaderVersion>"?O(Ct):h)}(String(p),m))}(s,c);return Vt(u,$t)}).catch(u=>{throw d(),function(l){return l instanceof Error&&l.message===ae?new Error(V):l}(u)}).then(([u,l])=>(d(),u.load({...i,ldi:{attempts:l,visibilityStates:a}})))}function $t(e){return mt(e,()=>function(t){return new Promise((r,n)=>{if(function(s){if(URL.prototype)try{return new URL(s,location.href),!1}catch(a){if(a instanceof Error&&a.name==="TypeError")return!0;throw a}}(t))throw new Error(se);let i=document.createElement("script"),o=()=>{var s;return(s=i.parentNode)===null||s===void 0?void 0:s.removeChild(i)},c=document.head||document.getElementsByTagName("head")[0];i.onload=()=>{o(),r()},i.onerror=()=>{o(),n(new Error(V))},i.async=!0,i.src=t,c.appendChild(i)})}(e),()=>{throw new Error(ie)}).then(Xt)}function Xt(){let e=window,t="__fpjs_p_l_b",r=e[t];if(function(n,i){var o;let c=(o=Object.getOwnPropertyDescriptor)===null||o===void 0?void 0:o.call(Object,n,i);c?.configurable?delete n[i]:c&&!c.writable||(n[i]=void 0)}(e,t),typeof r?.load!="function")throw new Error(ae);return r}var k={load:Yt,defaultScriptUrlPattern:Qt,ERROR_SCRIPT_LOAD_FAIL:V,ERROR_API_KEY_EXPIRED:we,ERROR_API_KEY_INVALID:Ae,ERROR_API_KEY_MISSING:oe,ERROR_BAD_REQUEST_FORMAT:Lt,ERROR_BAD_RESPONSE_FORMAT:_t,ERROR_CLIENT_TIMEOUT:It,ERROR_CSP_BLOCK:ie,ERROR_FORBIDDEN_ENDPOINT:Nt,ERROR_FORBIDDEN_HEADER:Kt,ERROR_FORBIDDEN_ORIGIN:qt,ERROR_GENERAL_SERVER_FAILURE:Ut,ERROR_HANDLE_AGENT_DATA:vt,ERROR_INSTALLATION_METHOD_RESTRICTED:Dt,ERROR_INTEGRATION_FAILURE:bt,ERROR_INVALID_ENDPOINT:se,ERROR_INVALID_PROXY_INTEGRATION_HEADERS:kt,ERROR_INVALID_PROXY_INTEGRATION_SECRET:St,ERROR_NETWORK_ABORT:Ot,ERROR_NETWORK_CONNECTION:Tt,ERROR_NETWORK_RESTRICTED:Pt,ERROR_PROXY_INTEGRATION_SECRET_ENVIRONMENT_MISMATCH:Mt,ERROR_RATE_LIMIT:xt,ERROR_SERVER_TIMEOUT:Ft,ERROR_SUBSCRIPTION_NOT_ACTIVE:At,ERROR_TOKEN_EXPIRED:jt,ERROR_TOKEN_INVALID:Bt,ERROR_TOKEN_MISSING:Gt,ERROR_UNSUPPORTED_VERSION:wt,ERROR_WRONG_REGION:gt,defaultEndpoint:pt,defaultTlsEndpoint:yt};var _=[];for(let e=0;e<256;++e)_.push((e+256).toString(16).slice(1));function Ne(e,t=0){return(_[e[t+0]]+_[e[t+1]]+_[e[t+2]]+_[e[t+3]]+"-"+_[e[t+4]]+_[e[t+5]]+"-"+_[e[t+6]]+_[e[t+7]]+"-"+_[e[t+8]]+_[e[t+9]]+"-"+_[e[t+10]]+_[e[t+11]]+_[e[t+12]]+_[e[t+13]]+_[e[t+14]]+_[e[t+15]]).toLowerCase()}var ce,Wt=new Uint8Array(16);function ue(){if(!ce){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");ce=crypto.getRandomValues.bind(crypto)}return ce(Wt)}var zt=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),le={randomUUID:zt};function Jt(e,t,r){if(le.randomUUID&&!t&&!e)return le.randomUUID();e=e||{};let n=e.random??e.rng?.()??ue();if(n.length<16)throw new Error("Random bytes length must be >= 16");if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,t){if(r=r||0,r<0||r+16>t.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let i=0;i<16;++i)t[r+i]=n[i];return t}return Ne(n)}var Q=Jt;var Zt={UNAUTHORIZED:"Unauthorized"},Ht={EXPIRED:"EXPIRED_TOKEN",INVALID_API_KEY:"INVALID_API_KEY",MISSING_AUTHENTICATION_TOKEN:"MISSING_AUTHENTICATION_TOKEN"},be={INTERNAL_SERVER_ERROR:"Internal Server Error during API Request",MISSING_CREDENTIALS:"Missing Public Client ID or Public API Key",MAINTENANCE_MODE:"API Under Maintenance",RATE_LIMIT_REACHED:"Too many requests. Rate limit exceeded"},Pe={SDK_INIT_ERROR:"Internal Server Error during SDK Initialization",DUPLICATE_INITIALIZATION:"Multiple SDK Initializations Detected",NOT_INITIALIZED:"SDK Not Initialized"},Se={INVALID_CREDENTIALS:"Invalid Public Client ID or Public API Key"},ke={FAILED_TO_GET_SECURITY_RESULT:"Failed to Retrieve Security Result"},Me={FAILED_TO_GET_SECURITY_TOKEN:" Failed to Generate Security Token"},R={...Zt,...Ht,...be,...Pe,...Se,...ke,...Me},Le={...be,...Pe,...Se,...ke,...Me};var x=(h=>(h.AR="ar",h.BN="bn",h.DE="de",h.EN="en",h.ES="es",h.FR="fr",h.HI="hi",h.ID="id",h.IT="it",h.JA="ja",h.KO="ko",h.MS="ms",h.NL="nl",h.PT="pt",h.RU="ru",h.YU="yu",h.ZH="zh",h))(x||{}),q=(y=>(y.GeneralConsumer="general-consumer",y.HRManagerDirector="hr-manager-director",y.WebDeveloper="web-developer",y.SoftwareEngineer="software-engineer",y.ITDirector="it-director",y.BusinessAdministrator="business-administrator",y.AccountsPayableManager="accounts-payable-manager",y.Accountant="accountant",y.FinanceDirector="finance-director",y.SmallBusinessOwner="small-business-owner",y.GeneralContractor="general-contractor",y.MarketingManagerDirector="marketing-manager-director",y.ConsumerShopper="consumer-shopper",y.Travel="travel",y.Entertainment="entertainment",y.FinanceAndBanking="finance-and-banking",y.General="general",y.B2BWhiteCollar="b2b-white-collar",y.B2BBlueCollar="b2b-blue-collar",y.Lawyer="lawyer",y))(q||{});var er=(e,t={})=>({"Content-Type":"application/json",...e?.accessToken&&{Authorization:`Bearer ${e?.accessToken}`},...t}),tr=async(e,t)=>{if(!e.ok){let r=await e.text();throw new Error(r)}return t==="file"?e.blob():t==="json"?e.json():t==="text"?e.text():null},Ue=async({url:e,auth:t,body:r,method:n="GET",headers:i={},responseType:o="json"})=>{let c={method:n,headers:er(t,i),...r?{body:r instanceof FormData?r:JSON.stringify(r)}:{}},s=await fetch(e,c);return tr(s,o)},he=e=>Ue({...e,method:"GET"}),Y=e=>Ue({...e,method:"POST"});function Fe(){let e=!1,t=!1,r=!1,n=null,i=0,o=()=>{e=!1,t=!1,r=!1,n=void 0,i=0},c=()=>{let u=window?.getSelection()?.toString();u&&u.length>0&&(i=Date.now(),e=!0)},s=d=>{let u=d.clipboardData?.getData("text"),l=d.target instanceof HTMLInputElement||d.target instanceof HTMLTextAreaElement;u&&l&&(r=!0)},a=()=>{t=!0;let d=Date.now();if(i){let u=(d-i)/1e3;(n===void 0||u<n)&&(n=u)}};return document?.addEventListener("copy",c),document?.addEventListener("paste",s),window?.addEventListener("blur",a),{get qbc(){return e},get mas(){return t},get apd(){return r},get scb(){return n},reset:o,destroy(){document?.removeEventListener("copy",c),document?.removeEventListener("paste",s),window?.removeEventListener("blur",a)}}}var A=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}};var w=typeof window>"u"||"Deno"in globalThis;function v(){}function Ke(e,t){return typeof e=="function"?e(t):e}function Ge(e){return typeof e=="number"&&e>=0&&e!==1/0}function Be(e,t){return Math.max(e+(t||0)-Date.now(),0)}function de(e,t){return typeof e=="function"?e(t):e}function je(e,t){return typeof e=="function"?e(t):e}function Ee(e,t){let{type:r="all",exact:n,fetchStatus:i,predicate:o,queryKey:c,stale:s}=e;if(c){if(n){if(t.queryHash!==K(c,t.options))return!1}else if(!L(t.queryKey,c))return!1}if(r!=="all"){let a=t.isActive();if(r==="active"&&!a||r==="inactive"&&a)return!1}return!(typeof s=="boolean"&&t.isStale()!==s||i&&i!==t.state.fetchStatus||o&&!o(t))}function Re(e,t){let{exact:r,status:n,predicate:i,mutationKey:o}=e;if(o){if(!t.options.mutationKey)return!1;if(r){if(M(t.options.mutationKey)!==M(o))return!1}else if(!L(t.options.mutationKey,o))return!1}return!(n&&t.state.status!==n||i&&!i(t))}function K(e,t){return(t?.queryKeyHashFn||M)(e)}function M(e){return JSON.stringify(e,(t,r)=>fe(r)?Object.keys(r).sort().reduce((n,i)=>(n[i]=r[i],n),{}):r)}function L(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?!Object.keys(t).some(r=>!L(e[r],t[r])):!1}function Ce(e,t){if(e===t)return e;let r=xe(e)&&xe(t);if(r||fe(e)&&fe(t)){let n=r?e:Object.keys(e),i=n.length,o=r?t:Object.keys(t),c=o.length,s=r?[]:{},a=0;for(let d=0;d<c;d++){let u=r?d:o[d];(!r&&n.includes(u)||r)&&e[u]===void 0&&t[u]===void 0?(s[u]=void 0,a++):(s[u]=Ce(e[u],t[u]),s[u]===e[u]&&e[u]!==void 0&&a++)}return i===c&&a===i?e:s}return t}function xe(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function fe(e){if(!qe(e))return!1;let t=e.constructor;if(t===void 0)return!0;let r=t.prototype;return!(!qe(r)||!r.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(e)!==Object.prototype)}function qe(e){return Object.prototype.toString.call(e)==="[object Object]"}function Ve(e){return new Promise(t=>{setTimeout(t,e)})}function Qe(e,t,r){return typeof r.structuralSharing=="function"?r.structuralSharing(e,t):r.structuralSharing!==!1?Ce(e,t):t}function Ye(e,t,r=0){let n=[...e,t];return r&&n.length>r?n.slice(1):n}function $e(e,t,r=0){let n=[t,...e];return r&&n.length>r?n.slice(0,-1):n}var G=Symbol();function $(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===G?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}var rr=class extends A{#e;#t;#r;constructor(){super(),this.#r=e=>{if(!w&&window.addEventListener){let t=()=>e();return window.addEventListener("visibilitychange",t,!1),()=>{window.removeEventListener("visibilitychange",t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#r)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#r=e,this.#t?.(),this.#t=e(t=>{typeof t=="boolean"?this.setFocused(t):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e=="boolean"?this.#e:globalThis.document?.visibilityState!=="hidden"}},X=new rr;var nr=class extends A{#e=!0;#t;#r;constructor(){super(),this.#r=e=>{if(!w&&window.addEventListener){let t=()=>e(!0),r=()=>e(!1);return window.addEventListener("online",t,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",t),window.removeEventListener("offline",r)}}}}onSubscribe(){this.#t||this.setEventListener(this.#r)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#r=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(r=>{r(e)}))}isOnline(){return this.#e}},U=new nr;function Xe(){let e,t,r=new Promise((i,o)=>{e=i,t=o});r.status="pending",r.catch(()=>{});function n(i){Object.assign(r,i),delete r.resolve,delete r.reject}return r.resolve=i=>{n({status:"fulfilled",value:i}),e(i)},r.reject=i=>{n({status:"rejected",reason:i}),t(i)},r}function ir(e){return Math.min(1e3*2**e,3e4)}function me(e){return(e??"online")==="online"?U.isOnline():!0}var We=class extends Error{constructor(e){super("CancelledError"),this.revert=e?.revert,this.silent=e?.silent}};function W(e){return e instanceof We}function z(e){let t=!1,r=0,n=!1,i,o=Xe(),c=f=>{n||(m(new We(f)),e.abort?.())},s=()=>{t=!0},a=()=>{t=!1},d=()=>X.isFocused()&&(e.networkMode==="always"||U.isOnline())&&e.canRun(),u=()=>me(e.networkMode)&&e.canRun(),l=f=>{n||(n=!0,e.onSuccess?.(f),i?.(),o.resolve(f))},m=f=>{n||(n=!0,e.onError?.(f),i?.(),o.reject(f))},p=()=>new Promise(f=>{i=O=>{(n||d())&&f(O)},e.onPause?.()}).then(()=>{i=void 0,n||e.onContinue?.()}),E=()=>{if(n)return;let f,O=r===0?e.initialPromise:void 0;try{f=O??e.fn()}catch(h){f=Promise.reject(h)}Promise.resolve(f).then(l).catch(h=>{if(n)return;let N=e.retry??(w?0:3),S=e.retryDelay??ir,y=typeof S=="function"?S(r,h):S,ct=N===!0||typeof N=="number"&&r<N||typeof N=="function"&&N(r,h);if(t||!ct){m(h);return}r++,e.onFail?.(r,h),Ve(y).then(()=>d()?void 0:p()).then(()=>{t?m(h):E()})})};return{promise:o,cancel:c,continue:()=>(i?.(),o),cancelRetry:s,continueRetry:a,canStart:u,start:()=>(u()?E():p().then(E),o)}}function sr(){let e=[],t=0,r=s=>{s()},n=s=>{s()},i=s=>setTimeout(s,0),o=s=>{t?e.push(s):i(()=>{r(s)})},c=()=>{let s=e;e=[],s.length&&i(()=>{n(()=>{s.forEach(a=>{r(a)})})})};return{batch:s=>{let a;t++;try{a=s()}finally{t--,t||c()}return a},batchCalls:s=>(...a)=>{o(()=>{s(...a)})},schedule:o,setNotifyFunction:s=>{r=s},setBatchNotifyFunction:s=>{n=s},setScheduler:s=>{i=s}}}var T=sr();var J=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),Ge(this.gcTime)&&(this.#e=setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(w?1/0:5*60*1e3))}clearGcTimeout(){this.#e&&(clearTimeout(this.#e),this.#e=void 0)}};var ze=class extends J{#e;#t;#r;#n;#o;#s;constructor(e){super(),this.#s=!1,this.#o=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#r=e.cache,this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#e=ar(this.options),this.state=e.state??this.#e,this.scheduleGc()}get meta(){return this.options.meta}get promise(){return this.#n?.promise}setOptions(e){this.options={...this.#o,...e},this.updateGcTime(this.options.gcTime)}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&this.#r.remove(this)}setData(e,t){let r=Qe(this.state.data,e,this.options);return this.#i({data:r,type:"success",dataUpdatedAt:t?.updatedAt,manual:t?.manual}),r}setState(e,t){this.#i({type:"setState",state:e,setStateOptions:t})}cancel(e){let t=this.#n?.promise;return this.#n?.cancel(e),t?t.then(v).catch(v):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(this.#e)}isActive(){return this.observers.some(e=>je(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===G||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStale(){return this.state.isInvalidated?!0:this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0}isStaleByTime(e=0){return this.state.isInvalidated||this.state.data===void 0||!Be(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(t=>t.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#n?.continue()}onOnline(){this.observers.find(t=>t.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#n?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#r.notify({type:"observerAdded",query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#n&&(this.#s?this.#n.cancel({revert:!0}):this.#n.cancelRetry()),this.scheduleGc()),this.#r.notify({type:"observerRemoved",query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#i({type:"invalidate"})}fetch(e,t){if(this.state.fetchStatus!=="idle"){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#n)return this.#n.continueRetry(),this.#n.promise}if(e&&this.setOptions(e),!this.options.queryFn){let s=this.observers.find(a=>a.options.queryFn);s&&this.setOptions(s.options)}let r=new AbortController,n=s=>{Object.defineProperty(s,"signal",{enumerable:!0,get:()=>(this.#s=!0,r.signal)})},i=()=>{let s=$(this.options,t),a={queryKey:this.queryKey,meta:this.meta};return n(a),this.#s=!1,this.options.persister?this.options.persister(s,a,this):s(a)},o={fetchOptions:t,options:this.options,queryKey:this.queryKey,state:this.state,fetchFn:i};n(o),this.options.behavior?.onFetch(o,this),this.#t=this.state,(this.state.fetchStatus==="idle"||this.state.fetchMeta!==o.fetchOptions?.meta)&&this.#i({type:"fetch",meta:o.fetchOptions?.meta});let c=s=>{W(s)&&s.silent||this.#i({type:"error",error:s}),W(s)||(this.#r.config.onError?.(s,this),this.#r.config.onSettled?.(this.state.data,s,this)),this.scheduleGc()};return this.#n=z({initialPromise:t?.initialPromise,fn:o.fetchFn,abort:r.abort.bind(r),onSuccess:s=>{if(s===void 0){c(new Error(`${this.queryHash} data is undefined`));return}try{this.setData(s)}catch(a){c(a);return}this.#r.config.onSuccess?.(s,this),this.#r.config.onSettled?.(s,this.state.error,this),this.scheduleGc()},onError:c,onFail:(s,a)=>{this.#i({type:"failed",failureCount:s,error:a})},onPause:()=>{this.#i({type:"pause"})},onContinue:()=>{this.#i({type:"continue"})},retry:o.options.retry,retryDelay:o.options.retryDelay,networkMode:o.options.networkMode,canRun:()=>!0}),this.#n.start()}#i(e){let t=r=>{switch(e.type){case"failed":return{...r,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case"pause":return{...r,fetchStatus:"paused"};case"continue":return{...r,fetchStatus:"fetching"};case"fetch":return{...r,...or(r.data,this.options),fetchMeta:e.meta??null};case"success":return{...r,data:e.data,dataUpdateCount:r.dataUpdateCount+1,dataUpdatedAt:e.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!e.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":let n=e.error;return W(n)&&n.revert&&this.#t?{...this.#t,fetchStatus:"idle"}:{...r,error:n,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchFailureReason:n,fetchStatus:"idle",status:"error"};case"invalidate":return{...r,isInvalidated:!0};case"setState":return{...r,...e.state}}};this.state=t(this.state),T.batch(()=>{this.observers.forEach(r=>{r.onQueryUpdate()}),this.#r.notify({query:this,type:"updated",action:e})})}};function or(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:me(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function ar(e){let t=typeof e.initialData=="function"?e.initialData():e.initialData,r=t!==void 0,n=r?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:r?n??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:r?"success":"pending",fetchStatus:"idle"}}var B=class extends A{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,r){let n=t.queryKey,i=t.queryHash??K(n,t),o=this.get(i);return o||(o=new ze({cache:this,queryKey:n,queryHash:i,options:e.defaultQueryOptions(t),state:r,defaultOptions:e.getQueryDefaults(n)}),this.add(o)),o}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){T.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(r=>Ee(t,r))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(r=>Ee(e,r)):t}notify(e){T.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){T.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){T.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}};var Je=class extends J{#e;#t;#r;constructor(e){super(),this.mutationId=e.mutationId,this.#t=e.mutationCache,this.#e=[],this.state=e.state||cr(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#e.includes(e)||(this.#e.push(e),this.clearGcTimeout(),this.#t.notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){this.#e=this.#e.filter(t=>t!==e),this.scheduleGc(),this.#t.notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){this.#e.length||(this.state.status==="pending"?this.scheduleGc():this.#t.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){this.#r=z({fn:()=>this.options.mutationFn?this.options.mutationFn(e):Promise.reject(new Error("No mutationFn found")),onFail:(n,i)=>{this.#n({type:"failed",failureCount:n,error:i})},onPause:()=>{this.#n({type:"pause"})},onContinue:()=>{this.#n({type:"continue"})},retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#t.canRun(this)});let t=this.state.status==="pending",r=!this.#r.canStart();try{if(!t){this.#n({type:"pending",variables:e,isPaused:r}),await this.#t.config.onMutate?.(e,this);let i=await this.options.onMutate?.(e);i!==this.state.context&&this.#n({type:"pending",context:i,variables:e,isPaused:r})}let n=await this.#r.start();return await this.#t.config.onSuccess?.(n,e,this.state.context,this),await this.options.onSuccess?.(n,e,this.state.context),await this.#t.config.onSettled?.(n,null,this.state.variables,this.state.context,this),await this.options.onSettled?.(n,null,e,this.state.context),this.#n({type:"success",data:n}),n}catch(n){try{throw await this.#t.config.onError?.(n,e,this.state.context,this),await this.options.onError?.(n,e,this.state.context),await this.#t.config.onSettled?.(void 0,n,this.state.variables,this.state.context,this),await this.options.onSettled?.(void 0,n,e,this.state.context),n}finally{this.#n({type:"error",error:n})}}finally{this.#t.runNext(this)}}#n(e){let t=r=>{switch(e.type){case"failed":return{...r,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...r,isPaused:!0};case"continue":return{...r,isPaused:!1};case"pending":return{...r,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:"pending",variables:e.variables,submittedAt:Date.now()};case"success":return{...r,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...r,data:void 0,error:e.error,failureCount:r.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"}}};this.state=t(this.state),T.batch(()=>{this.#e.forEach(r=>{r.onMutationUpdate(e)}),this.#t.notify({mutation:this,type:"updated",action:e})})}};function cr(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var j=class extends A{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#r=0}#e;#t;#r;build(e,t,r){let n=new Je({mutationCache:this,mutationId:++this.#r,options:e.defaultMutationOptions(t),state:r});return this.add(n),n}add(e){this.#e.add(e);let t=Z(e);if(typeof t=="string"){let r=this.#t.get(t);r?r.push(e):this.#t.set(t,[e])}this.notify({type:"added",mutation:e})}remove(e){if(this.#e.delete(e)){let t=Z(e);if(typeof t=="string"){let r=this.#t.get(t);if(r)if(r.length>1){let n=r.indexOf(e);n!==-1&&r.splice(n,1)}else r[0]===e&&this.#t.delete(t)}}this.notify({type:"removed",mutation:e})}canRun(e){let t=Z(e);if(typeof t=="string"){let n=this.#t.get(t)?.find(i=>i.state.status==="pending");return!n||n===e}else return!0}runNext(e){let t=Z(e);return typeof t=="string"?this.#t.get(t)?.find(n=>n!==e&&n.state.isPaused)?.continue()??Promise.resolve():Promise.resolve()}clear(){T.batch(()=>{this.#e.forEach(e=>{this.notify({type:"removed",mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(r=>Re(t,r))}findAll(e={}){return this.getAll().filter(t=>Re(e,t))}notify(e){T.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(t=>t.state.isPaused);return T.batch(()=>Promise.all(e.map(t=>t.continue().catch(v))))}};function Z(e){return e.options.scope?.id}function pe(e){return{onFetch:(t,r)=>{let n=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,o=t.state.data?.pages||[],c=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},a=0,d=async()=>{let u=!1,l=E=>{Object.defineProperty(E,"signal",{enumerable:!0,get:()=>(t.signal.aborted?u=!0:t.signal.addEventListener("abort",()=>{u=!0}),t.signal)})},m=$(t.options,t.fetchOptions),p=async(E,f,O)=>{if(u)return Promise.reject();if(f==null&&E.pages.length)return Promise.resolve(E);let h={queryKey:t.queryKey,pageParam:f,direction:O?"backward":"forward",meta:t.options.meta};l(h);let N=await m(h),{maxPages:S}=t.options,y=O?$e:Ye;return{pages:y(E.pages,N,S),pageParams:y(E.pageParams,f,S)}};if(i&&o.length){let E=i==="backward",f=E?ur:Ze,O={pages:o,pageParams:c},h=f(n,O);s=await p(O,h,E)}else{let E=e??o.length;do{let f=a===0?c[0]??n.initialPageParam:Ze(n,s);if(a>0&&f==null)break;s=await p(s,f),a++}while(a<E)}return s};t.options.persister?t.fetchFn=()=>t.options.persister?.(d,{queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},r):t.fetchFn=d}}}function Ze(e,{pages:t,pageParams:r}){let n=t.length-1;return t.length>0?e.getNextPageParam(t[n],t,r[n],r):void 0}function ur(e,{pages:t,pageParams:r}){return t.length>0?e.getPreviousPageParam?.(t[0],t,r[0],r):void 0}var ye=class{#e;#t;#r;#n;#o;#s;#i;#a;constructor(e={}){this.#e=e.queryCache||new B,this.#t=e.mutationCache||new j,this.#r=e.defaultOptions||{},this.#n=new Map,this.#o=new Map,this.#s=0}mount(){this.#s++,this.#s===1&&(this.#i=X.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#a=U.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#s--,this.#s===0&&(this.#i?.(),this.#i=void 0,this.#a?.(),this.#a=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return this.#t.findAll({...e,status:"pending"}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),r=this.#e.build(this,t),n=r.state.data;return n===void 0?this.fetchQuery(e):(e.revalidateIfStale&&r.isStaleByTime(de(t.staleTime,r))&&this.prefetchQuery(t),Promise.resolve(n))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:t,state:r})=>{let n=r.data;return[t,n]})}setQueryData(e,t,r){let n=this.defaultQueryOptions({queryKey:e}),o=this.#e.get(n.queryHash)?.state.data,c=Ke(t,o);if(c!==void 0)return this.#e.build(this,n).setData(c,{...r,manual:!0})}setQueriesData(e,t,r){return T.batch(()=>this.#e.findAll(e).map(({queryKey:n})=>[n,this.setQueryData(n,t,r)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;T.batch(()=>{t.findAll(e).forEach(r=>{t.remove(r)})})}resetQueries(e,t){let r=this.#e,n={type:"active",...e};return T.batch(()=>(r.findAll(e).forEach(i=>{i.reset()}),this.refetchQueries(n,t)))}cancelQueries(e,t={}){let r={revert:!0,...t},n=T.batch(()=>this.#e.findAll(e).map(i=>i.cancel(r)));return Promise.all(n).then(v).catch(v)}invalidateQueries(e,t={}){return T.batch(()=>{if(this.#e.findAll(e).forEach(n=>{n.invalidate()}),e?.refetchType==="none")return Promise.resolve();let r={...e,type:e?.refetchType??e?.type??"active"};return this.refetchQueries(r,t)})}refetchQueries(e,t={}){let r={...t,cancelRefetch:t.cancelRefetch??!0},n=T.batch(()=>this.#e.findAll(e).filter(i=>!i.isDisabled()).map(i=>{let o=i.fetch(void 0,r);return r.throwOnError||(o=o.catch(v)),i.state.fetchStatus==="paused"?Promise.resolve():o}));return Promise.all(n).then(v)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let r=this.#e.build(this,t);return r.isStaleByTime(de(t.staleTime,r))?r.fetch(t):Promise.resolve(r.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(v).catch(v)}fetchInfiniteQuery(e){return e.behavior=pe(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(v).catch(v)}ensureInfiniteQueryData(e){return e.behavior=pe(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return U.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#r}setDefaultOptions(e){this.#r=e}setQueryDefaults(e,t){this.#n.set(M(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#n.values()],r={};return t.forEach(n=>{L(e,n.queryKey)&&Object.assign(r,n.defaultOptions)}),r}setMutationDefaults(e,t){this.#o.set(M(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#o.values()],r={};return t.forEach(n=>{L(e,n.mutationKey)&&(r={...r,...n.defaultOptions})}),r}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#r.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=K(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===G&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#r.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}};var lr=new ye({defaultOptions:{queries:{staleTime:3e4}},queryCache:new B({onError:(e,t)=>{}}),mutationCache:new j}),He=lr;var H,b="https://api.dtect.io/security",ee=`${b}/client/check`,D="",P="",tt="0.0.16",re,rt,et,hr="20000000-aaaa-bbbb-cccc-000000000002",te,I={isLoading:!1,token:"",visitorId:"",projectId:"",questionData:null,clientData:null,aiCheckData:null,tokens:null};var nt=Le,C;async function fr({clientId:e,apiKey:t,endpoint:r}){return await He.fetchQuery({queryKey:["getClientConfig",e,t],queryFn:()=>he({url:`${r}/client/config`,headers:{"client-id":D,"x-api-key":P}})})}function Ie(e){if(e instanceof Error){if(e?.message?.includes("maintenance_mode"))throw new Error(R.MAINTENANCE_MODE);if(e?.message?.includes("rate-limited"))throw new Error(R.RATE_LIMIT_REACHED);switch(e?.message){case k.ERROR_RATE_LIMIT:throw new Error(R.RATE_LIMIT_REACHED);default:throw new Error(R.INTERNAL_SERVER_ERROR)}}throw new Error(R.FAILED_TO_GET_SECURITY_TOKEN)}function F(){let e=window?.location?.href?.includes("localhost")||window?.location?.href?.includes("file:///"),t=document.querySelector("#dtect-h-captcha");return!!(H&&(t||e))}function it(){return!!(D&&P)}function dr(){return new Promise(e=>{let t=()=>{window?.hcaptcha?e():requestAnimationFrame(t)};t()})}var st=()=>window?.location?.href?.includes("localhost")||window?.location?.href?.includes("file:///");async function Er({behaviorKey:e}){if(H=await k.load({apiKey:e,endpoint:["https://fp.dtect.io",k.defaultEndpoint],scriptUrlPattern:["https://fp.dtect.io/web/v<version>/<apiKey>/loader_v<loaderVersion>.js",k.defaultScriptUrlPattern]}),st()||(await dr(),await window.hcaptcha.render("dtect-h-captcha",{sitekey:re,size:"invisible"})),!H)throw new Error(R.SDK_INIT_ERROR)}async function Rr(){if(I.tokens)return I.tokens;let e=new Promise(i=>{let o=H?.get();i(o)}),t=new Promise(async i=>{st()&&i({response:hr}),await window?.hcaptcha?.render("dtect-h-captcha",{sitekey:re,size:"invisible"});let c=await window?.hcaptcha?.execute({async:!0});i(c)}),[r,n]=await Promise.all([t,e]);return I.tokens={behaviorRequestId:n?.requestId,behaviorToken:n?.sealedResult,automationToken:r?.response},I.tokens}async function ot(e,t){if(!F())throw new Error(R.NOT_INITIALIZED);if(!it())throw new Error(R.MISSING_CREDENTIALS);let{projectId:r,visitorId:n}=mr(e);if(!e||!r?.trim())throw new Error(R.FAILED_TO_GET_SECURITY_RESULT);try{let i=await Rr();if(i?.behaviorToken&&i?.behaviorRequestId&&i?.automationToken){let o={behaviorToken:i.behaviorToken,automationToken:i.automationToken,behaviorRequestId:i.behaviorRequestId,entryLink:window?.location?.href,securitySettings:e.securitySettings,metaData:e.metaData};I.clientData=o;let c={...e,projectId:r?.trim(),visitorId:n?.trim()||Q(),clientData:o,version:"0.0.16",token:I.token,questionData:I.questionData,aiCheckData:I.aiCheckData};et=performance.now();let s=(et-rt).toFixed(),a=await Y({url:`${t}?clientId=${D}&diff=${s}`,body:{...c},headers:{"client-id":D,"x-api-key":P}});if("token"in a||"results"in a)return a}throw new Error(R.INTERNAL_SERVER_ERROR)}catch(i){if(i instanceof Error){if(i?.message?.includes("maintenance_mode"))throw new Error(R.MAINTENANCE_MODE);if(i?.message?.includes("rate-limited")||i?.message?.includes("429"))throw new Error(R.RATE_LIMIT_REACHED);switch(i?.message){case k.ERROR_RATE_LIMIT:throw new Error(R.RATE_LIMIT_REACHED);default:throw new Error(R.INTERNAL_SERVER_ERROR)}}throw new Error(R.FAILED_TO_GET_SECURITY_RESULT)}}async function Te(e){return await ot(e,`${b}/client/check/result`)}async function Oe(e){return await ot(e,`${b}/client/check`)}function mr(e){let t=e?.projectId,r=e?.visitorId;return(typeof e?.projectId=="number"||typeof e?.visitorId=="number")&&(t=`${e?.projectId}`,r=`${e?.visitorId}`),{visitorId:r,projectId:t}}async function _e(e){if(!F())throw new Error(R.NOT_INITIALIZED);let{respondentType:t,language:r}=e;try{let n=await he({url:`${b}/client/quality-questions/${t}/${r}`,headers:{"client-id":D,"x-api-key":P}});if(n)return n;throw new Error(R.INTERNAL_SERVER_ERROR)}catch(n){Ie(n)}}async function ve(e){if(!F())throw new Error(R.NOT_INITIALIZED);I.questionData={questions:e.questions};try{let t=await Y({url:ee,headers:{"client-id":D,"x-api-key":P},body:{token:I.token,visitorId:e.visitorId,projectId:e.projectId,version:tt,questionData:I.questionData,aiCheckData:I.aiCheckData,clientData:I.clientData}});if(t)return t;throw new Error(R.INTERNAL_SERVER_ERROR)}catch(t){Ie(t)}}async function ge(e){if(!F())throw new Error(R.NOT_INITIALIZED);I.aiCheckData={timeTakenSeconds:e.timeTakenSeconds,qbc:e.qbc||C.qbc,mas:e.mas||C.mas,scb:e.scb||C.scb,apd:e.apd||C.apd};try{let t=await Y({url:ee,headers:{"client-id":D,"x-api-key":P},body:{token:I.token,visitorId:e.visitorId,projectId:e.projectId,version:tt,clientData:I.clientData,questionData:I.questionData,aiCheckData:I.aiCheckData}});if(t)return t;throw new Error(R.INTERNAL_SERVER_ERROR)}catch(t){Ie(t)}}async function pr(){return Q()}function yr(){let e=document.querySelector("head"),t=document.querySelector("body");if(!(window?.location?.href?.includes("localhost")||window?.location?.href?.includes("file:///"))){t?.insertAdjacentHTML("beforeend",'<div id="dtect-h-captcha" ></div>');let n=document.createElement("script");n.setAttribute("src","https://js.hcaptcha.com/1/api.js"),n.setAttribute("async","true"),n.setAttribute("defer","true"),e?.append(n)}}function Ir(){return!!re}function Tr(e){return e?.automationKey&&e?.behaviorKey}async function at(e){if(!e?.clientId||!e?.apiKey)throw new Error(R.MISSING_CREDENTIALS);rt=performance.now();let{clientId:t,apiKey:r,endpoint:n="https://api.dtect.io/security",includeResults:i}=e;b=n,ee=`${b}/client/check`;let o=await pr();if(I.isLoading){if(F())return te;throw new Error(R.DUPLICATE_INITIALIZATION)}if(C=Fe(),D=t,P=r,i&&(ee=`${b}/client/check/result`),I={...I,isLoading:!0,token:o||""},!it())throw new Error(R.MISSING_CREDENTIALS);if(F())return te;yr();try{let c=await fr({clientId:t,apiKey:r,endpoint:n});if(!Tr(c)||Ir())throw new Error;return re=c.automationKey,Er({behaviorKey:c.behaviorKey}).then(()=>({getSecurityResult:Te,getSecurityToken:Oe,SecurityAPIError:nt,isAIUsageDetected:ge,checkQualityQuestions:ve,getQualityQuestions:_e,LanguageCodes:x,QualityQuestionsRespondentTypes:q})).catch(s=>{throw new Error(s.message)})}catch(c){if(c instanceof Error){if(c?.message?.includes("maintenance_mode"))throw new Error(R.MAINTENANCE_MODE);if([R.INVALID_API_KEY,R.UNAUTHORIZED].includes(c?.message))throw new Error(R.INVALID_CREDENTIALS)}throw new Error(R.SDK_INIT_ERROR)}finally{I={...I,isLoading:!1,token:o}}}te={init:at,getSecurityResult:Te,getSecurityToken:Oe,isAIUsageDetected:ge,checkQualityQuestions:ve,getQualityQuestions:_e,QualityQuestionsRespondentTypes:q,LanguageCodes:x};var Or=te;
|
|
1
|
+
"use strict";var Ne=Object.defineProperty;var Er=Object.getOwnPropertyDescriptor;var wr=Object.getOwnPropertyNames;var Ir=Object.prototype.hasOwnProperty;var vr=(e,t)=>{for(var r in t)Ne(e,r,{get:t[r],enumerable:!0})},Rr=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of wr(t))!Ir.call(e,o)&&o!==r&&Ne(e,o,{get:()=>t[o],enumerable:!(n=Er(t,o))||n.enumerable});return e};var br=e=>Rr(Ne({},"__esModule",{value:!0}),e);var ho={};vr(ho,{LanguageCodes:()=>V,QualityQuestionsRespondentTypes:()=>j,SecurityAPIError:()=>fr,checkQualityQuestions:()=>Oe,default:()=>fo,getQualityQuestions:()=>Te,getSecurityResult:()=>Re,getSecurityToken:()=>be,init:()=>yr,isAIUsageDetected:()=>Ae});module.exports=br(ho);function Tr(e,t){return function(r,n){return Object.prototype.hasOwnProperty.call(r,n)}(e,t)?e[t]:void 0}function Or(e,t,r,n){let o=document,i="securitypolicyviolation",a,s=m=>{let u=new URL(e,location.href),{blockedURI:l}=m;l!==u.href&&l!==u.protocol.slice(0,-1)&&l!==u.origin||(a=m,c())};o.addEventListener(i,s);let c=()=>o.removeEventListener(i,s);return n?.then(c,c),Promise.resolve().then(t).then(m=>(c(),m),m=>new Promise(u=>{let l=new MessageChannel;l.port1.onmessage=()=>u(),l.port2.postMessage(null)}).then(()=>{if(c(),a)return r(a);throw m}))}function N(e){let t="";for(let r=0;r<e.length;++r)if(r>0){let n=e[r].toLowerCase();n!==e[r]?t+=` ${n}`:t+=e[r]}else t+=e[r].toUpperCase();return t}var Ar={default:"endpoint"},Dr={default:"tlsEndpoint"},Sr="Client timeout",_r="Network connection error",Pr="Network request aborted",xr="Response cannot be parsed",Me="Blocked by CSP",Le="The endpoint parameter is not a valid URL",kr="Handle on demand agent data error",Nr=N("WrongRegion"),Mr=N("SubscriptionNotActive"),Lr=N("UnsupportedVersion"),Cr=N("InstallationMethodRestricted"),Fr=N("HostnameRestricted"),Ur=N("IntegrationFailed"),Br=N("NetworkRestricted"),qr=N("InvalidProxyIntegrationSecret"),Kr=N("InvalidProxyIntegrationHeaders"),Gr=N("ProxyIntegrationSecretEnvironmentMismatch"),Ce="API key required",pt="API key not found",gt="API key expired",Vr="Request cannot be parsed",jr="Request failed",Wr="Request failed to process",Qr="Too many requests, rate limit exceeded",$r="Not available for this origin",zr="Not available with restricted header",Yr=Ce,Xr=pt,Jr=gt,Zr="3.12.0",oe="Failed to load the JS script of the agent",Fe="9319";function Hr(e,t){let r=[],[n,o]=function(s){let c=function(l){let d=[...l];return{current:()=>d[0],postpone(){let y=d.shift();y!==void 0&&d.push(y)},exclude(){d.shift()}}}(s),m=function(l,d){let y=0;return()=>Math.random()*Math.min(d,l*Math.pow(2,y++))}(100,3e3),u=new Set;return[c.current(),(l,d)=>{let y,E=d instanceof Error?d.message:"";if(E===Me||E===Le)c.exclude(),y=0;else if(E===Fe)c.exclude();else if(E===oe){let w=Date.now()-l.getTime()<50,p=c.current();p&&w&&!u.has(p)&&(u.add(p),y=0),c.postpone()}else c.postpone();let f=c.current();return f===void 0?void 0:[f,y??l.getTime()+m()-Date.now()]}]}(e),i;if(n===void 0)return Promise.reject(new TypeError("The list of script URL patterns is empty"));let a=s=>{let c=new Date,m=l=>r.push({url:s,startedAt:c,finishedAt:new Date,error:l}),u=t(s);return u.then(()=>m(),m),u.catch(l=>{if(i!=null||(i=l),r.length>=5)throw i;let d=o(c,l);if(!d)throw i;let[y,E]=d;return(f=E,new Promise(w=>setTimeout(w,f))).then(()=>a(y));var f})};return a(n).then(s=>[s,r])}var yt="https://fpnpmcdn.net/v<version>/<apiKey>/loader_v<loaderVersion>.js",en=yt;function tn(e){var t,r;let{picked:n,rest:o}=function(u,l){let d={},y={};for(let[E,f]of Object.entries(u))l.includes(E)?d[E]=f:y[E]=f;return{picked:d,rest:y}}(e,["scriptUrlPattern","token","apiKey"]),i=n.token,a=(t=n.apiKey)!==null&&t!==void 0?t:i,s=(r=Tr(e,"scriptUrlPattern"))!==null&&r!==void 0?r:yt,[c,m]=function(){let u=[],l=()=>{u.push({time:new Date,state:document.visibilityState})},d=function(y,E,f,w){return y.addEventListener(E,f,w),()=>y.removeEventListener(E,f,w)}(document,"visibilitychange",l);return l(),[u,d]}();return Promise.resolve().then(()=>{if(!a||typeof a!="string")throw new Error(Ce);let u=function(l,d){return(Array.isArray(l)?l:[l]).map(y=>function(E,f){let w=encodeURIComponent;return E.replace(/<[^<>]+>/g,p=>p==="<version>"?"3":p==="<apiKey>"?w(f):p==="<loaderVersion>"?w(Zr):p)}(String(y),d))}(s,a);return Hr(u,rn)}).catch(u=>{throw m(),function(l){return l instanceof Error&&l.message===Fe?new Error(oe):l}(u)}).then(([u,l])=>(m(),u.load({...o,ldi:{attempts:l,visibilityStates:c}})))}function rn(e){return Or(e,()=>function(t){return new Promise((r,n)=>{if(function(s){if(URL.prototype)try{return new URL(s,location.href),!1}catch(c){if(c instanceof Error&&c.name==="TypeError")return!0;throw c}}(t))throw new Error(Le);let o=document.createElement("script"),i=()=>{var s;return(s=o.parentNode)===null||s===void 0?void 0:s.removeChild(o)},a=document.head||document.getElementsByTagName("head")[0];o.onload=()=>{i(),r()},o.onerror=()=>{i(),n(new Error(oe))},o.async=!0,o.src=t,a.appendChild(o)})}(e),()=>{throw new Error(Me)}).then(nn)}function nn(){let e=window,t="__fpjs_p_l_b",r=e[t];if(function(n,o){var i;let a=(i=Object.getOwnPropertyDescriptor)===null||i===void 0?void 0:i.call(Object,n,o);a?.configurable?delete n[o]:a&&!a.writable||(n[o]=void 0)}(e,t),typeof r?.load!="function")throw new Error(Fe);return r}var G={load:tn,defaultScriptUrlPattern:en,ERROR_SCRIPT_LOAD_FAIL:oe,ERROR_API_KEY_EXPIRED:gt,ERROR_API_KEY_INVALID:pt,ERROR_API_KEY_MISSING:Ce,ERROR_BAD_REQUEST_FORMAT:Vr,ERROR_BAD_RESPONSE_FORMAT:xr,ERROR_CLIENT_TIMEOUT:Sr,ERROR_CSP_BLOCK:Me,ERROR_FORBIDDEN_ENDPOINT:Fr,ERROR_FORBIDDEN_HEADER:zr,ERROR_FORBIDDEN_ORIGIN:$r,ERROR_GENERAL_SERVER_FAILURE:jr,ERROR_HANDLE_AGENT_DATA:kr,ERROR_INSTALLATION_METHOD_RESTRICTED:Cr,ERROR_INTEGRATION_FAILURE:Ur,ERROR_INVALID_ENDPOINT:Le,ERROR_INVALID_PROXY_INTEGRATION_HEADERS:Kr,ERROR_INVALID_PROXY_INTEGRATION_SECRET:qr,ERROR_NETWORK_ABORT:Pr,ERROR_NETWORK_CONNECTION:_r,ERROR_NETWORK_RESTRICTED:Br,ERROR_PROXY_INTEGRATION_SECRET_ENVIRONMENT_MISMATCH:Gr,ERROR_RATE_LIMIT:Qr,ERROR_SERVER_TIMEOUT:Wr,ERROR_SUBSCRIPTION_NOT_ACTIVE:Mr,ERROR_TOKEN_EXPIRED:Jr,ERROR_TOKEN_INVALID:Xr,ERROR_TOKEN_MISSING:Yr,ERROR_UNSUPPORTED_VERSION:Lr,ERROR_WRONG_REGION:Nr,defaultEndpoint:Ar,defaultTlsEndpoint:Dr};var T=[];for(let e=0;e<256;++e)T.push((e+256).toString(16).slice(1));function Et(e,t=0){return(T[e[t+0]]+T[e[t+1]]+T[e[t+2]]+T[e[t+3]]+"-"+T[e[t+4]]+T[e[t+5]]+"-"+T[e[t+6]]+T[e[t+7]]+"-"+T[e[t+8]]+T[e[t+9]]+"-"+T[e[t+10]]+T[e[t+11]]+T[e[t+12]]+T[e[t+13]]+T[e[t+14]]+T[e[t+15]]).toLowerCase()}var Ue,on=new Uint8Array(16);function Be(){if(!Ue){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Ue=crypto.getRandomValues.bind(crypto)}return Ue(on)}var sn=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),qe={randomUUID:sn};function an(e,t,r){if(qe.randomUUID&&!t&&!e)return qe.randomUUID();e=e||{};let n=e.random??e.rng?.()??Be();if(n.length<16)throw new Error("Random bytes length must be >= 16");if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,t){if(r=r||0,r<0||r+16>t.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let o=0;o<16;++o)t[r+o]=n[o];return t}return Et(n)}var X=an;var cn={UNAUTHORIZED:"Unauthorized"},un={EXPIRED:"EXPIRED_TOKEN",INVALID_API_KEY:"INVALID_API_KEY",MISSING_AUTHENTICATION_TOKEN:"MISSING_AUTHENTICATION_TOKEN"},wt={INTERNAL_SERVER_ERROR:"Internal Server Error during API Request",MISSING_CREDENTIALS:"Missing Public Client ID or Public API Key",MAINTENANCE_MODE:"API Under Maintenance",RATE_LIMIT_REACHED:"Too many requests. Rate limit exceeded"},It={SDK_INIT_ERROR:"Internal Server Error during SDK Initialization",DUPLICATE_INITIALIZATION:"Multiple SDK Initializations Detected",NOT_INITIALIZED:"SDK Not Initialized"},vt={INVALID_CREDENTIALS:"Invalid Public Client ID or Public API Key"},Rt={FAILED_TO_GET_SECURITY_RESULT:"Failed to Retrieve Security Result"},bt={FAILED_TO_GET_SECURITY_TOKEN:" Failed to Generate Security Token"},v={...cn,...un,...wt,...It,...vt,...Rt,...bt},Tt={...wt,...It,...vt,...Rt,...bt};var V=(p=>(p.AR="ar",p.BN="bn",p.DE="de",p.EN="en",p.ES="es",p.FR="fr",p.HI="hi",p.ID="id",p.IT="it",p.JA="ja",p.KO="ko",p.MS="ms",p.NL="nl",p.PT="pt",p.RU="ru",p.YU="yu",p.ZH="zh",p))(V||{}),j=(I=>(I.GeneralConsumer="general-consumer",I.HRManagerDirector="hr-manager-director",I.WebDeveloper="web-developer",I.SoftwareEngineer="software-engineer",I.ITDirector="it-director",I.BusinessAdministrator="business-administrator",I.AccountsPayableManager="accounts-payable-manager",I.Accountant="accountant",I.FinanceDirector="finance-director",I.SmallBusinessOwner="small-business-owner",I.GeneralContractor="general-contractor",I.MarketingManagerDirector="marketing-manager-director",I.ConsumerShopper="consumer-shopper",I.Travel="travel",I.Entertainment="entertainment",I.FinanceAndBanking="finance-and-banking",I.General="general",I.B2BWhiteCollar="b2b-white-collar",I.B2BBlueCollar="b2b-blue-collar",I.Lawyer="lawyer",I))(j||{});var W={exclude:[],include:[],stabilize:["private","iframe"],logging:!0,timeout:5e3,cache_api_call:!0,performance:!1,experimental:!1},Fo={...W},Ke={private:[{exclude:["canvas"],browsers:["firefox","safari>=17","brave"]},{exclude:["audio"],browsers:["samsungbrowser","safari"]},{exclude:["fonts"],browsers:["firefox"]},{exclude:["audio.sampleHash","hardware.deviceMemory","header.acceptLanguage.q","system.hardwareConcurrency","plugins"],browsers:["brave"]},{exclude:["tls.extensions"],browsers:["firefox","chrome","safari"]},{exclude:["header.acceptLanguage"],browsers:["edge","chrome"]}],iframe:[{exclude:["system.applePayVersion","system.cookieEnabled"],browsers:["safari"]},{exclude:["permissions"]}],vpn:[{exclude:["ip"]}]};async function Ge(){return ln()}async function ln(){return new Promise((t,r)=>{try{let i=new(window.OfflineAudioContext||window.webkitOfflineAudioContext)(1,5e3,44100),a=i?.createBufferSource(),s=i.createOscillator();s.frequency.value=1e3;let c=i.createDynamicsCompressor();c.threshold.value=-50,c.knee.value=40,c.ratio.value=12,c.attack.value=0,c.release.value=.2,s.connect(c),c.connect(i.destination),s.start();let m;i.oncomplete=u=>{m=u.renderedBuffer.getChannelData(0),t({sampleHash:mn(m),maxChannels:i.destination.maxChannelCount,channelCountMode:a.channelCountMode})},i.startRendering()}catch(n){console.error("Error creating audio fingerprint:",n),r(n)}})}function mn(e){let t=0;for(let r=0;r<e.length;++r)t+=Math.abs(e[r]);return t}function ie(e,t,r){let n=[];for(let a=0;a<e[0].data.length;a++){let s=[];for(let c=0;c<e.length;c++)s.push(e[c].data[a]);n.push(dn(s))}let o=n,i=new Uint8ClampedArray(o);return new ImageData(i,t,r)}function dn(e){if(e.length===0)return 0;let t={};for(let n of e)t[n]=(t[n]||0)+1;let r=e[0];for(let n in t)t[n]>t[r]&&(r=parseInt(n,10));return r}function fn(e){return new TextEncoder().encode(e).buffer}function se(e){return e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),e^=e>>>16,e>>>0}var A=new Uint32Array([597399067,2869860233,951274213,2716044179]);function x(e,t){return e<<t|e>>>32-t}function hn(e,t){let r=e.byteLength/16|0,n=new Uint32Array(e,0,r*4);for(let o=0;o<r;o++){let i=n.subarray(o*4,(o+1)*4);i[0]=Math.imul(i[0],A[0]),i[0]=x(i[0],15),i[0]=Math.imul(i[0],A[1]),t[0]=t[0]^i[0],t[0]=x(t[0],19),t[0]=t[0]+t[1],t[0]=Math.imul(t[0],5)+1444728091,i[1]=Math.imul(i[1],A[1]),i[1]=x(i[1],16),i[1]=Math.imul(i[1],A[2]),t[1]=t[1]^i[1],t[1]=x(t[1],17),t[1]=t[1]+t[2],t[1]=Math.imul(t[1],5)+197830471,i[2]=Math.imul(i[2],A[2]),i[2]=x(i[2],17),i[2]=Math.imul(i[2],A[3]),t[2]=t[2]^i[2],t[2]=x(t[2],15),t[2]=t[2]+t[3],t[2]=Math.imul(t[2],5)+2530024501,i[3]=Math.imul(i[3],A[3]),i[3]=x(i[3],18),i[3]=Math.imul(i[3],A[0]),t[3]=t[3]^i[3],t[3]=x(t[3],13),t[3]=t[3]+t[0],t[3]=Math.imul(t[3],5)+850148119}}function pn(e,t){let r=e.byteLength/16|0,n=e.byteLength%16,o=new Uint32Array(4),i=new Uint8Array(e,r*16,n);switch(n){case 15:o[3]=o[3]^i[14]<<16;case 14:o[3]=o[3]^i[13]<<8;case 13:o[3]=o[3]^i[12]<<0,o[3]=Math.imul(o[3],A[3]),o[3]=x(o[3],18),o[3]=Math.imul(o[3],A[0]),t[3]=t[3]^o[3];case 12:o[2]=o[2]^i[11]<<24;case 11:o[2]=o[2]^i[10]<<16;case 10:o[2]=o[2]^i[9]<<8;case 9:o[2]=o[2]^i[8]<<0,o[2]=Math.imul(o[2],A[2]),o[2]=x(o[2],17),o[2]=Math.imul(o[2],A[3]),t[2]=t[2]^o[2];case 8:o[1]=o[1]^i[7]<<24;case 7:o[1]=o[1]^i[6]<<16;case 6:o[1]=o[1]^i[5]<<8;case 5:o[1]=o[1]^i[4]<<0,o[1]=Math.imul(o[1],A[1]),o[1]=x(o[1],16),o[1]=Math.imul(o[1],A[2]),t[1]=t[1]^o[1];case 4:o[0]=o[0]^i[3]<<24;case 3:o[0]=o[0]^i[2]<<16;case 2:o[0]=o[0]^i[1]<<8;case 1:o[0]=o[0]^i[0]<<0,o[0]=Math.imul(o[0],A[0]),o[0]=x(o[0],15),o[0]=Math.imul(o[0],A[1]),t[0]=t[0]^o[0]}}function gn(e,t){t[0]=t[0]^e.byteLength,t[1]=t[1]^e.byteLength,t[2]=t[2]^e.byteLength,t[3]=t[3]^e.byteLength,t[0]=t[0]+t[1]|0,t[0]=t[0]+t[2]|0,t[0]=t[0]+t[3]|0,t[1]=t[1]+t[0]|0,t[2]=t[2]+t[0]|0,t[3]=t[3]+t[0]|0,t[0]=se(t[0]),t[1]=se(t[1]),t[2]=se(t[2]),t[3]=se(t[3]),t[0]=t[0]+t[1]|0,t[0]=t[0]+t[2]|0,t[0]=t[0]+t[3]|0,t[1]=t[1]+t[0]|0,t[2]=t[2]+t[0]|0,t[3]=t[3]+t[0]|0}function O(e,t=0){if(t=t?t|0:0,typeof e=="string"&&(e=fn(e)),!(e instanceof ArrayBuffer))throw new TypeError("Expected key to be ArrayBuffer or string");let r=new Uint32Array([t,t,t,t]);hn(e,r),pn(e,r),gn(e,r);let n=new Uint8Array(r.buffer);return Array.from(n).map(o=>o.toString(16).padStart(2,"0")).join("")}var yn=3,Ot=280,At=20;async function Ve(){return En()}function En(){return new Promise(e=>{let t=Array.from({length:yn},()=>wn()),r=ie(t,Ot,At);e({commonPixelsHash:O(r.data.toString()).toString()})})}function wn(){let e=document.createElement("canvas"),t=e.getContext("2d");if(!t)return new ImageData(1,1);e.width=Ot,e.height=At;let r=t.createLinearGradient(0,0,e.width,e.height);r.addColorStop(0,"red"),r.addColorStop(1/6,"orange"),r.addColorStop(2/6,"yellow"),r.addColorStop(3/6,"green"),r.addColorStop(4/6,"blue"),r.addColorStop(5/6,"indigo"),r.addColorStop(1,"violet"),t.fillStyle=r,t.fillRect(0,0,e.width,e.height);let n="Random Text WMwmil10Oo";return t.font="23.123px Arial",t.fillStyle="black",t.fillText(n,-5,15),t.fillStyle="rgba(0, 0, 255, 0.5)",t.fillText(n,-3.3,17.7),t.beginPath(),t.moveTo(0,0),t.lineTo(e.width*2/7,e.height),t.strokeStyle="white",t.lineWidth=2,t.stroke(),t.getImageData(0,0,e.width,e.height)}async function ae(e){for(;!document.body;)await In(50);let t=document.createElement("iframe");t.setAttribute("frameBorder","0");let r=t.style;r.setProperty("position","fixed"),r.setProperty("display","block","important"),r.setProperty("visibility","visible"),r.setProperty("border","0"),r.setProperty("opacity","0"),t.src="about:blank",document.body.appendChild(t);let n=t.contentDocument||t.contentWindow?.document;if(!n)throw new Error("Iframe document is not accessible");e({iframe:n}),setTimeout(()=>{document.body.removeChild(t)},0)}function In(e,t){return new Promise(r=>setTimeout(r,e,t))}var vn=["Arial","Arial Black","Arial Narrow","Arial Rounded MT","Arimo","Archivo","Barlow","Bebas Neue","Bitter","Bookman","Calibri","Cabin","Candara","Century","Century Gothic","Comic Sans MS","Constantia","Courier","Courier New","Crimson Text","DM Mono","DM Sans","DM Serif Display","DM Serif Text","Dosis","Droid Sans","Exo","Fira Code","Fira Sans","Franklin Gothic Medium","Garamond","Geneva","Georgia","Gill Sans","Helvetica","Impact","Inconsolata","Indie Flower","Inter","Josefin Sans","Karla","Lato","Lexend","Lucida Bright","Lucida Console","Lucida Sans Unicode","Manrope","Merriweather","Merriweather Sans","Montserrat","Myriad","Noto Sans","Nunito","Nunito Sans","Open Sans","Optima","Orbitron","Oswald","Pacifico","Palatino","Perpetua","PT Sans","PT Serif","Poppins","Prompt","Public Sans","Quicksand","Rajdhani","Recursive","Roboto","Roboto Condensed","Rockwell","Rubik","Segoe Print","Segoe Script","Segoe UI","Sora","Source Sans Pro","Space Mono","Tahoma","Taviraj","Times","Times New Roman","Titillium Web","Trebuchet MS","Ubuntu","Varela Round","Verdana","Work Sans"],Rn=["monospace","sans-serif","serif"];async function je(e){return bn()}function bn(){return new Promise((e,t)=>{try{ae(async({iframe:r})=>{let o=r.createElement("canvas").getContext("2d"),i=Rn.map(s=>Dt(o,s)),a={};vn.forEach(s=>{let c=Dt(o,s);i.includes(c)||(a[s]=c)}),e(a)})}catch{t({error:"unsupported"})}})}function Dt(e,t){if(!e)return null;let r="WwMmLli0Oo";return e.font=`72px ${t}`,e.measureText(r).width}function We(){return new Promise((e,t)=>{let r=navigator.deviceMemory!==void 0?navigator.deviceMemory:0,n=window.performance&&window.performance.memory?window.performance.memory:0;e({videocard:Tn(),architecture:On(),deviceMemory:r.toString()||"undefined",jsHeapSizeLimit:n.jsHeapSizeLimit||0})})}function Tn(){let e=document.createElement("canvas"),t=e.getContext("webgl")??e.getContext("experimental-webgl");if(t&&"getParameter"in t)try{let r=(t.getParameter(t.VENDOR)||"").toString(),n=(t.getParameter(t.RENDERER)||"").toString(),o={vendor:r,renderer:n,version:(t.getParameter(t.VERSION)||"").toString(),shadingLanguageVersion:(t.getParameter(t.SHADING_LANGUAGE_VERSION)||"").toString()};if(!n.length||!r.length){let i=t.getExtension("WEBGL_debug_renderer_info");if(i){let a=(t.getParameter(i.UNMASKED_VENDOR_WEBGL)||"").toString(),s=(t.getParameter(i.UNMASKED_RENDERER_WEBGL)||"").toString();a&&(o.vendorUnmasked=a),s&&(o.rendererUnmasked=s)}}return o}catch{}return"undefined"}function On(){let e=new Float32Array(1),t=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],t[3]}function Qe(){return new Promise(e=>{e({languages:An(),timezone:Dn()})})}function An(){let e=[];return navigator.language}function Dn(){return Intl.DateTimeFormat().resolvedOptions().timeZone}var ce=(e,t,r,n)=>{let o=(r-t)/n,i=0;for(let a=0;a<n;a++){let s=t+(a+.5)*o;i+=e(s)}return i*o};function $e(){return new Promise(e=>{e({acos:Math.acos(.5),asin:ce(Math.asin,-1,1,97),cos:ce(Math.cos,0,Math.PI,97),largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),sin:ce(Math.sin,-Math.PI,Math.PI,97),tan:ce(Math.tan,0,2*Math.PI,97)})})}function Sn(e){if(e.length===0)return null;let t={};e.forEach(o=>{let i=String(o);t[i]=(t[i]||0)+1});let r=e[0],n=1;return Object.keys(t).forEach(o=>{t[o]>n&&(r=o,n=t[o])}),r}function St(e,t){let r={};return t.forEach(n=>{let o=e.map(a=>n in a?a[n]:void 0).filter(a=>a!==void 0),i=Sn(o);i&&(r[n]=i)}),r}var _n=["accelerometer","accessibility","accessibility-events","ambient-light-sensor","background-fetch","background-sync","bluetooth","camera","clipboard-read","clipboard-write","device-info","display-capture","gyroscope","geolocation","local-fonts","magnetometer","microphone","midi","nfc","notifications","payment-handler","persistent-storage","push","speaker","storage-access","top-level-storage-access","window-management","query"];async function ze(e){let t=e?.permissions_to_check||_n,n=await Promise.all(Array.from({length:3},()=>Pn(t)));return St(n,t)}async function Pn(e){let t={};for(let r of e)try{let n=await navigator.permissions.query({name:r});t[r]=n.state.toString()}catch{}return t}async function Ye(){let e=[];if(navigator.plugins)for(let t=0;t<navigator.plugins.length;t++){let r=navigator.plugins[t];e.push([r.name,r.filename,r.description].join("|"))}return new Promise(t=>{t({plugins:e})})}function Q(){if(typeof navigator>"u")return{name:"unknown",version:"unknown"};let e=navigator.userAgent,t=[/(?<name>SamsungBrowser)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>EdgA|EdgiOS|Edg)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>OPR|OPX)\/(?<version>\d+(?:\.\d+)+)/,/Opera[\s\/](?<version>\d+(?:\.\d+)+)/,/Opera Mini\/(?<version>\d+(?:\.\d+)+)/,/Opera Mobi\/(?<version>\d+(?:\.\d+)+)/,/(?<name>Vivaldi)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>Brave)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>CriOS)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>FxiOS)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>Chrome|Chromium)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>Firefox|Waterfox|Iceweasel|IceCat)\/(?<version>\d+(?:\.\d+)+)/,/Version\/(?<version1>[\d.]+).*Safari\/[\d.]+|(?<name>Safari)\/(?<version2>[\d.]+)/,/(?<name>MSIE|Trident|IEMobile).+?(?<version>\d+(?:\.\d+)+)/,/(?<name>[A-Za-z]+)\/(?<version>\d+(?:\.\d+)+)/],r={edg:"Edge",edga:"Edge",edgios:"Edge",opr:"Opera",opx:"Opera",crios:"Chrome",fxios:"Firefox",samsung:"SamsungBrowser",vivaldi:"Vivaldi",brave:"Brave"};for(let n of t){let o=e.match(n);if(o){let i=o.groups?.name,a=o.groups?.version||o.groups?.version1||o.groups?.version2;if(!i&&(o.groups?.version1||o.groups?.version2)&&(i="Safari"),!i&&n.source.includes("Opera Mini")&&(i="Opera Mini"),!i&&n.source.includes("Opera Mobi")&&(i="Opera Mobi"),!i&&n.source.includes("Opera")&&(i="Opera"),!i&&o[1]&&(i=o[1]),!a&&o[2]&&(a=o[2]),i)return{name:r[i.toLowerCase()]||i,version:a||"unknown"}}}return{name:"unknown",version:"unknown"}}function ue(){if(typeof navigator>"u"||!navigator.userAgent)return!1;let e=navigator.userAgent;return/Mobi|Android|iPhone|iPod|IEMobile|Opera Mini|Opera Mobi|webOS|BlackBerry|Windows Phone/i.test(e)&&!/iPad/i.test(e)}function Xe(){return new Promise(e=>{let t={is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:kn()};ue()&&navigator.maxTouchPoints>0&&(t.resolution=xn()),e(t)})}function xn(){let e=window.screen.width,t=window.screen.height,r=Math.max(e,t).toString(),n=Math.min(e,t).toString();return`${r}x${n}`}function kn(){let e=[],t={"prefers-contrast":["high","more","low","less","forced","no-preference"],"any-hover":["hover","none"],"any-pointer":["none","coarse","fine"],pointer:["none","coarse","fine"],hover:["hover","none"],update:["fast","slow"],"inverted-colors":["inverted","none"],"prefers-reduced-motion":["reduce","no-preference"],"prefers-reduced-transparency":["reduce","no-preference"],scripting:["none","initial-only","enabled"],"forced-colors":["active","none"]};return Object.keys(t).forEach(r=>{t[r].forEach(n=>{matchMedia(`(${r}: ${n})`).matches&&e.push(`${r}: ${n}`)})}),e}function Je(){return new Promise(e=>{let t=Q(),r=navigator.userAgent,n={platform:window.navigator.platform,productSub:navigator.productSub,product:navigator.product,useragent:navigator.userAgent,hardwareConcurrency:navigator.hardwareConcurrency,browser:{name:t.name,version:t.version},mobile:ue(),applePayVersion:Nn(),cookieEnabled:window.navigator.cookieEnabled};e(n)})}function Nn(){if(window.location.protocol==="https:"&&typeof window.ApplePaySession=="function")try{let e=window.ApplePaySession.supportsVersion;for(let t=15;t>0;t--)if(e(t))return t}catch{return 0}return 0}var Mn=Q().name!=="SamsungBrowser"?1:3,D,h=null;function Ln(){typeof document<"u"&&(D=document.createElement("canvas"),D.width=200,D.height=100,h=D.getContext("webgl"))}async function Ze(){Ln();try{if(!h)throw new Error("WebGL not supported");let e=Array.from({length:Mn},()=>Cn()),t=ie(e,D.width,D.height);return{commonPixelsHash:O(t.data.toString()).toString()}}catch{return{webgl:"unsupported"}}}function Cn(){try{if(!h)throw new Error("WebGL not supported");let e=`
|
|
2
|
+
attribute vec2 position;
|
|
3
|
+
void main() {
|
|
4
|
+
gl_Position = vec4(position, 0.0, 1.0);
|
|
5
|
+
}
|
|
6
|
+
`,t=`
|
|
7
|
+
precision mediump float;
|
|
8
|
+
void main() {
|
|
9
|
+
gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color
|
|
10
|
+
}
|
|
11
|
+
`,r=h.createShader(h.VERTEX_SHADER),n=h.createShader(h.FRAGMENT_SHADER);if(!r||!n)throw new Error("Failed to create shaders");if(h.shaderSource(r,e),h.shaderSource(n,t),h.compileShader(r),!h.getShaderParameter(r,h.COMPILE_STATUS))throw new Error("Vertex shader compilation failed: "+h.getShaderInfoLog(r));if(h.compileShader(n),!h.getShaderParameter(n,h.COMPILE_STATUS))throw new Error("Fragment shader compilation failed: "+h.getShaderInfoLog(n));let o=h.createProgram();if(!o)throw new Error("Failed to create shader program");if(h.attachShader(o,r),h.attachShader(o,n),h.linkProgram(o),!h.getProgramParameter(o,h.LINK_STATUS))throw new Error("Shader program linking failed: "+h.getProgramInfoLog(o));h.useProgram(o);let i=137,a=new Float32Array(i*4),s=2*Math.PI/i;for(let d=0;d<i;d++){let y=d*s;a[d*4]=0,a[d*4+1]=0,a[d*4+2]=Math.cos(y)*(D.width/2),a[d*4+3]=Math.sin(y)*(D.height/2)}let c=h.createBuffer();h.bindBuffer(h.ARRAY_BUFFER,c),h.bufferData(h.ARRAY_BUFFER,a,h.STATIC_DRAW);let m=h.getAttribLocation(o,"position");h.enableVertexAttribArray(m),h.vertexAttribPointer(m,2,h.FLOAT,!1,0,0),h.viewport(0,0,D.width,D.height),h.clearColor(0,0,0,1),h.clear(h.COLOR_BUFFER_BIT),h.drawArrays(h.LINES,0,i*2);let u=new Uint8ClampedArray(D.width*D.height*4);return h.readPixels(0,0,D.width,D.height,h.RGBA,h.UNSIGNED_BYTE,u),new ImageData(u,D.width,D.height)}catch{return new ImageData(1,1)}finally{h&&(h.bindBuffer(h.ARRAY_BUFFER,null),h.useProgram(null),h.viewport(0,0,h.drawingBufferWidth,h.drawingBufferHeight),h.clearColor(0,0,0,0))}}function _(e){let t=[];return function r(n){if(n&&n.toJSON&&typeof n.toJSON=="function"&&(n=n.toJSON()),n===void 0)return;if(typeof n=="number")return isFinite(n)?""+n:"null";if(typeof n!="object")return JSON.stringify(n);let o,i;if(Array.isArray(n)){for(i="[",o=0;o<n.length;o++)o&&(i+=","),i+=r(n[o])||"null";return i+"]"}if(n===null)return"null";if(t.indexOf(n)!==-1)throw new TypeError("Converting circular structure to JSON");let a=t.push(n)-1,s=Object.keys(n).sort();for(i="",o=0;o<s.length;o++){let c=s[o],m=r(n[c]);m&&(i&&(i+=","),i+=JSON.stringify(c)+":"+m)}return t.splice(a,1),"{"+i+"}"}(e)||""}async function He(){return new Promise(e=>{try{let t=window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection;if(!t){e({supported:!1,error:"WebRTC not supported"});return}let r={iceCandidatePoolSize:1,iceServers:[]},n=new t(r);n.createDataChannel(""),(async()=>{try{let i={offerToReceiveAudio:!0,offerToReceiveVideo:!0},a=await n.createOffer(i);await n.setLocalDescription(a);let s=a.sdp||"",c=[...new Set((s.match(/extmap:\d+ [^\n\r]+/g)||[]).map(f=>f.replace(/extmap:\d+ /,"")))].sort(),m=f=>{let w=s.match(new RegExp(`m=${f} [^\\s]+ [^\\s]+ ([^\\n\\r]+)`));return w?w[1].split(" "):[]},u=(f,w)=>w.map(p=>{let b=new RegExp(`(rtpmap|fmtp|rtcp-fb):${p} (.+)`,"g"),S=[...s.matchAll(b)];if(!S.length)return null;let I={};return S.forEach(_e=>{let[po,Pe,xe]=_e,ke=xe.split("/");Pe==="rtpmap"?(I.mimeType=`${f}/${ke[0]}`,I.clockRate=+ke[1],f==="audio"&&(I.channels=+ke[2]||1)):Pe==="rtcp-fb"?(I.feedbackSupport=I.feedbackSupport||[],I.feedbackSupport.push(xe)):Pe==="fmtp"&&(I.sdpFmtpLine=xe)}),I}).filter(Boolean),l=u("audio",m("audio")),d=u("video",m("video")),y={audio:{count:l.length,hash:O(_(l))},video:{count:d.length,hash:O(_(d))},extensionsHash:O(_(c))},E=await new Promise(f=>{let w=setTimeout(()=>{n.removeEventListener("icecandidate",p),n.close(),f({supported:!0,...y,timeout:!0})},3e3),p=b=>{let S=b.candidate;!S||!S.candidate||(clearTimeout(w),n.removeEventListener("icecandidate",p),n.close(),f({supported:!0,...y,candidateType:S.type||""}))};n.addEventListener("icecandidate",p)});e({details:E,hash:O(_(E))})}catch(i){n.close(),e({supported:!0,error:`WebRTC offer failed: ${i.message}`})}})()}catch(t){e({supported:!1,error:`WebRTC error: ${t.message}`})}})}var _t=["\u{1D504}","\u{1D505}","\u212D","\u{1D507}","\u{1D508}","\u{1D509}","\u{1D538}","\u{1D539}","\u2102","\u{1D53B}","\u{1D53C}","\u{1D53D}"],Pt=["\u03B2","\u03C8","\u03BB","\u03B5","\u03B6","\u03B1","\u03BE","\u03BC","\u03C1","\u03C6","\u03BA","\u03C4","\u03B7","\u03C3","\u03B9","\u03C9","\u03B3","\u03BD","\u03C7","\u03B4","\u03B8","\u03C0","\u03C5","\u03BF"];async function et(){return new Promise(e=>{try{ae(async({iframe:t})=>{try{if(!Fn(t)){e({supported:!1,error:"MathML not supported"});return}let r=[J("integral","<msubsup><mo>\u222B</mo><mi>a</mi><mi>b</mi></msubsup><mfrac><mrow><mi>f</mi><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mrow><mi>g</mi><mo>(</mo><mi>x</mi><mo>)</mo></mrow></mfrac><mi>dx</mi>"),J("fraction","<mfrac><mrow><mi>\u03C0</mi><mo>\xD7</mo><msup><mi>r</mi><mn>2</mn></msup></mrow><mrow><mn>2</mn><mi>\u03C3</mi></mrow></mfrac>"),J("matrix","<mo>[</mo><mtable><mtr><mtd><mi>\u03B1</mi></mtd><mtd><mi>\u03B2</mi></mtd></mtr><mtr><mtd><mi>\u03B3</mi></mtd><mtd><mi>\u03B4</mi></mtd></mtr></mtable><mo>]</mo>"),Un(),...Bn()],n=[],o="";r.forEach((a,s)=>{let c=qn(a,t);n.push({width:c.dimensions.width,height:c.dimensions.height}),s===0&&c.fontInfo&&(o=O(_(c.fontInfo)))});let i={fontStyleHash:o,dimensions:n};e({details:i,hash:O(_(i))})}catch(r){e({supported:!1,error:`MathML error: ${r.message}`})}})}catch(t){e({supported:!1,error:`MathML error: ${t.message}`})}})}function Fn(e){try{let t=e.createElement("math");t.innerHTML="<mrow><mi>x</mi></mrow>",t.style.position="absolute",t.style.visibility="hidden",e.body.appendChild(t);let r=t.getBoundingClientRect();return e.body.removeChild(t),r.width>0&&r.height>0}catch{return!1}}function J(e,t){return`<math><mrow>${t}</mrow></math>`}function Un(){let e="<mo>\u220F</mo>";return _t.forEach((t,r)=>{let n=r*2,o=Pt.slice(n,n+2);o.length===2&&(e+=`<mmultiscripts><mi>${t}</mi><none/><mi>${o[1]}</mi><mprescripts></mprescripts><mi>${o[0]}</mi><none/></mmultiscripts>`)}),J("complex_nested",`<munderover><mmultiscripts>${e}</mmultiscripts></munderover>`)}function Bn(){let e=[];return _t.forEach((t,r)=>{let n=r*2,o=Pt.slice(n,n+2);o.length===2&&e.push(J("combined",`<mmultiscripts><mi>${t}</mi><none/><mi>${o[1]}</mi><mprescripts></mprescripts><mi>${o[0]}</mi><none/></mmultiscripts>`))}),e}function qn(e,t){try{let r=t.createElement("math");r.innerHTML=e.replace(/<\/?math>/g,""),r.style.whiteSpace="nowrap",r.style.position="absolute",r.style.visibility="hidden",r.style.top="-9999px",t.body.appendChild(r);let n=r.getBoundingClientRect(),i=(t.defaultView||window).getComputedStyle(r),a={dimensions:{width:n.width,height:n.height},fontInfo:{fontFamily:i.fontFamily,fontSize:i.fontSize,fontWeight:i.fontWeight,fontStyle:i.fontStyle,lineHeight:i.lineHeight,fontVariant:i.fontVariant||"normal",fontStretch:i.fontStretch||"normal",fontSizeAdjust:i.fontSizeAdjust||"none",textRendering:i.textRendering||"auto",fontFeatureSettings:i.fontFeatureSettings||"normal",fontVariantNumeric:i.fontVariantNumeric||"normal",fontKerning:i.fontKerning||"auto"}};return t.body.removeChild(r),a}catch(r){return{error:r.message}}}var Kn=800;async function tt(){return new Promise(e=>{try{if(typeof window>"u"||!window.speechSynthesis||typeof window.speechSynthesis.getVoices!="function"){e({supported:!1,error:"Speech Synthesis API not supported"});return}let t=!1,r=null,n=a=>{if(!t){t=!0,r&&clearTimeout(r);try{let s=a.map(m=>{let u=d=>d.replace(/\\/g,"\\\\").replace(/,/g,"\\,");return[u(m.voiceURI||""),u(m.name||""),u(m.lang||""),m.localService?"1":"0",m.default?"1":"0"].join(",")});s.sort();let c={voiceCount:a.length,voicesHash:O(_(s))};e({details:c,hash:O(_(c))})}catch(s){e({supported:!0,error:`Voice processing failed: ${s.message}`})}}},o=window.speechSynthesis.getVoices();if(o.length>0){n(o);return}r=setTimeout(()=>{let a=window.speechSynthesis.getVoices();n(a)},Kn);let i=()=>{window.speechSynthesis.removeEventListener("voiceschanged",i);let a=window.speechSynthesis.getVoices();n(a)};window.speechSynthesis.addEventListener("voiceschanged",i)}catch(t){e({supported:!1,error:`Speech Synthesis error: ${t.message}`})}})}var xt={audio:Ge,canvas:Ve,fonts:je,hardware:We,locales:Qe,math:$e,permissions:ze,plugins:Ye,screen:Xe,system:Je,webgl:Ze},kt={webrtc:He,mathml:et,speech:tt},rt={},Nt={timeout:"true"},nt=(e,t,r)=>{rt[e]=t};function Gn(e,t){return new Promise(r=>{setTimeout(()=>r(t),e)})}function Mt(e,t,r){return Promise.all(e.map(n=>{let o=performance.now();return Promise.race([n.then(i=>({value:i,elapsed:performance.now()-o})),Gn(t,r).then(i=>({value:i,elapsed:performance.now()-o}))])}))}function le(e,t){let r=Q();if(r.name==="unknown"&&e.system&&typeof e.system=="object"&&!Array.isArray(e.system)){let l=e.system.browser;if(l&&typeof l=="object"&&!Array.isArray(l)){let d=l;r={name:d.name||"unknown",version:d.version||"unknown"}}}let n=r.name.toLowerCase(),o=r.version.split(".")[0]||"0",i=parseInt(o,10),a=[...t?.exclude||[]],s=t?.stabilize||[],c=t?.include||[];for(let u of s){let l=Ke[u];if(l)for(let d of l){let y=!("browsers"in d),E=!y&&d.browsers?.some(f=>{let w=f.match(/(.+?)(>=)(\d+)/);if(w){let[,p,,b]=w,S=parseInt(b,10);return n===p&&i>=S}return n===f});(y||E)&&a.push(...d.exclude)}}function m(u,l=""){let d={};for(let[y,E]of Object.entries(u)){let f=l?`${l}.${y}`:y;if(typeof E=="object"&&!Array.isArray(E)&&E!==null){let w=m(E,f);Object.keys(w).length>0&&(d[y]=w)}else{let w=a.some(b=>f.startsWith(b)),p=c.some(b=>f.startsWith(b));(!w||p)&&(d[y]=E)}}return d}return m(e)}async function ot(e){let t={...W,...e},r=t.logging&&!sessionStorage.getItem("_tmjs_l")&&Math.random()<1e-4,n={...xt,...rt},{elapsed:o,resolvedComponents:i}=await Lt(n,t),a={},s={};if(r||t.experimental){let{elapsed:w,resolvedComponents:p}=await Lt(kt,t);a=p,s=w}let c={...o,...s},m=t.performance?{elapsed:c}:{},u=le({},t),l={...i,...u},d={};return{thumbmark:O(_(l)),components:l,info:d,version:"",...m,...Object.keys(a).length>0&&t.experimental&&{experimental:a}}}async function Lt(e,t){let r={...W,...t},n=Object.entries(e).filter(([u])=>!r?.exclude?.includes(u)).filter(([u])=>r?.include?.some(l=>l.includes("."))?r?.include?.some(l=>l.startsWith(u)):r?.include?.length===0||r?.include?.includes(u)),o=n.map(([u])=>u),i=n.map(([u,l])=>l(t)),a=await Mt(i,r?.timeout||5e3,Nt),s={},c={};a.forEach((u,l)=>{u.value!=null&&(c[o[l]]=u.value,s[o[l]]=u.elapsed??0)});let m=le(c,r);return{elapsed:s,resolvedComponents:m}}var Z=class{options;constructor(t){this.options={...W,...t}}async get(t){let r={...this.options,...t};return ot(r)}getVersion(){return""}includeComponent(t,r){nt(t,r)}};var Vn=(e,t={})=>({"Content-Type":"application/json",...e?.accessToken&&{Authorization:`Bearer ${e?.accessToken}`},...t}),jn=async(e,t)=>{if(!e.ok){let r=await e.text();throw new Error(r)}return t==="file"?e.blob():t==="json"?e.json():t==="text"?e.text():null},Ct=async({url:e,auth:t,body:r,method:n="GET",headers:o={},responseType:i="json"})=>{let a={method:n,headers:Vn(t,o),...r?{body:r instanceof FormData?r:JSON.stringify(r)}:{}},s=await fetch(e,a);return jn(s,i)},it=e=>Ct({...e,method:"GET"}),me=e=>Ct({...e,method:"POST"});function Ft(e){let t=e?.qbc||!1,r=e?.mas||!1,n=e?.apd||!1,o=e?.scb||null,i=0,a=()=>{t=!1,r=!1,n=!1,o=void 0,i=0},s=()=>{let l=window?.getSelection()?.toString();l&&l.length>0&&(i=Date.now(),t=!0)},c=u=>{let l=u.clipboardData?.getData("text"),d=u.target instanceof HTMLInputElement||u.target instanceof HTMLTextAreaElement;l&&d&&(n=!0)},m=()=>{r=!0;let u=Date.now();if(i){let l=(u-i)/1e3;(o===void 0||l<o)&&(o=l)}};return document?.addEventListener("copy",s),document?.addEventListener("paste",c),window?.addEventListener("blur",m),{get qbc(){return t},get mas(){return r},get apd(){return n},get scb(){return o},reset:a,destroy(){document?.removeEventListener("copy",s),document?.removeEventListener("paste",c),window?.removeEventListener("blur",m)}}}var L=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}};var C=typeof window>"u"||"Deno"in globalThis;function P(){}function qt(e,t){return typeof e=="function"?e(t):e}function Kt(e){return typeof e=="number"&&e>=0&&e!==1/0}function Gt(e,t){return Math.max(e+(t||0)-Date.now(),0)}function at(e,t){return typeof e=="function"?e(t):e}function Vt(e,t){return typeof e=="function"?e(t):e}function ct(e,t){let{type:r="all",exact:n,fetchStatus:o,predicate:i,queryKey:a,stale:s}=e;if(a){if(n){if(t.queryHash!==H(a,t.options))return!1}else if(!z(t.queryKey,a))return!1}if(r!=="all"){let c=t.isActive();if(r==="active"&&!c||r==="inactive"&&c)return!1}return!(typeof s=="boolean"&&t.isStale()!==s||o&&o!==t.state.fetchStatus||i&&!i(t))}function ut(e,t){let{exact:r,status:n,predicate:o,mutationKey:i}=e;if(i){if(!t.options.mutationKey)return!1;if(r){if($(t.options.mutationKey)!==$(i))return!1}else if(!z(t.options.mutationKey,i))return!1}return!(n&&t.state.status!==n||o&&!o(t))}function H(e,t){return(t?.queryKeyHashFn||$)(e)}function $(e){return JSON.stringify(e,(t,r)=>st(r)?Object.keys(r).sort().reduce((n,o)=>(n[o]=r[o],n),{}):r)}function z(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?!Object.keys(t).some(r=>!z(e[r],t[r])):!1}function jt(e,t){if(e===t)return e;let r=Ut(e)&&Ut(t);if(r||st(e)&&st(t)){let n=r?e:Object.keys(e),o=n.length,i=r?t:Object.keys(t),a=i.length,s=r?[]:{},c=0;for(let m=0;m<a;m++){let u=r?m:i[m];(!r&&n.includes(u)||r)&&e[u]===void 0&&t[u]===void 0?(s[u]=void 0,c++):(s[u]=jt(e[u],t[u]),s[u]===e[u]&&e[u]!==void 0&&c++)}return o===a&&c===o?e:s}return t}function Ut(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function st(e){if(!Bt(e))return!1;let t=e.constructor;if(t===void 0)return!0;let r=t.prototype;return!(!Bt(r)||!r.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(e)!==Object.prototype)}function Bt(e){return Object.prototype.toString.call(e)==="[object Object]"}function Wt(e){return new Promise(t=>{setTimeout(t,e)})}function Qt(e,t,r){return typeof r.structuralSharing=="function"?r.structuralSharing(e,t):r.structuralSharing!==!1?jt(e,t):t}function $t(e,t,r=0){let n=[...e,t];return r&&n.length>r?n.slice(1):n}function zt(e,t,r=0){let n=[t,...e];return r&&n.length>r?n.slice(0,-1):n}var ee=Symbol();function de(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===ee?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}var Wn=class extends L{#e;#t;#r;constructor(){super(),this.#r=e=>{if(!C&&window.addEventListener){let t=()=>e();return window.addEventListener("visibilitychange",t,!1),()=>{window.removeEventListener("visibilitychange",t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#r)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#r=e,this.#t?.(),this.#t=e(t=>{typeof t=="boolean"?this.setFocused(t):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e=="boolean"?this.#e:globalThis.document?.visibilityState!=="hidden"}},fe=new Wn;var Qn=class extends L{#e=!0;#t;#r;constructor(){super(),this.#r=e=>{if(!C&&window.addEventListener){let t=()=>e(!0),r=()=>e(!1);return window.addEventListener("online",t,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",t),window.removeEventListener("offline",r)}}}}onSubscribe(){this.#t||this.setEventListener(this.#r)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#r=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(r=>{r(e)}))}isOnline(){return this.#e}},Y=new Qn;function Yt(){let e,t,r=new Promise((o,i)=>{e=o,t=i});r.status="pending",r.catch(()=>{});function n(o){Object.assign(r,o),delete r.resolve,delete r.reject}return r.resolve=o=>{n({status:"fulfilled",value:o}),e(o)},r.reject=o=>{n({status:"rejected",reason:o}),t(o)},r}function $n(e){return Math.min(1e3*2**e,3e4)}function lt(e){return(e??"online")==="online"?Y.isOnline():!0}var Xt=class extends Error{constructor(e){super("CancelledError"),this.revert=e?.revert,this.silent=e?.silent}};function he(e){return e instanceof Xt}function pe(e){let t=!1,r=0,n=!1,o,i=Yt(),a=f=>{n||(d(new Xt(f)),e.abort?.())},s=()=>{t=!0},c=()=>{t=!1},m=()=>fe.isFocused()&&(e.networkMode==="always"||Y.isOnline())&&e.canRun(),u=()=>lt(e.networkMode)&&e.canRun(),l=f=>{n||(n=!0,e.onSuccess?.(f),o?.(),i.resolve(f))},d=f=>{n||(n=!0,e.onError?.(f),o?.(),i.reject(f))},y=()=>new Promise(f=>{o=w=>{(n||m())&&f(w)},e.onPause?.()}).then(()=>{o=void 0,n||e.onContinue?.()}),E=()=>{if(n)return;let f,w=r===0?e.initialPromise:void 0;try{f=w??e.fn()}catch(p){f=Promise.reject(p)}Promise.resolve(f).then(l).catch(p=>{if(n)return;let b=e.retry??(C?0:3),S=e.retryDelay??$n,I=typeof S=="function"?S(r,p):S,_e=b===!0||typeof b=="number"&&r<b||typeof b=="function"&&b(r,p);if(t||!_e){d(p);return}r++,e.onFail?.(r,p),Wt(I).then(()=>m()?void 0:y()).then(()=>{t?d(p):E()})})};return{promise:i,cancel:a,continue:()=>(o?.(),i),cancelRetry:s,continueRetry:c,canStart:u,start:()=>(u()?E():y().then(E),i)}}function zn(){let e=[],t=0,r=s=>{s()},n=s=>{s()},o=s=>setTimeout(s,0),i=s=>{t?e.push(s):o(()=>{r(s)})},a=()=>{let s=e;e=[],s.length&&o(()=>{n(()=>{s.forEach(c=>{r(c)})})})};return{batch:s=>{let c;t++;try{c=s()}finally{t--,t||a()}return c},batchCalls:s=>(...c)=>{i(()=>{s(...c)})},schedule:i,setNotifyFunction:s=>{r=s},setBatchNotifyFunction:s=>{n=s},setScheduler:s=>{o=s}}}var R=zn();var ge=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),Kt(this.gcTime)&&(this.#e=setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(C?1/0:5*60*1e3))}clearGcTimeout(){this.#e&&(clearTimeout(this.#e),this.#e=void 0)}};var Jt=class extends ge{#e;#t;#r;#n;#s;#i;constructor(e){super(),this.#i=!1,this.#s=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#r=e.cache,this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#e=Xn(this.options),this.state=e.state??this.#e,this.scheduleGc()}get meta(){return this.options.meta}get promise(){return this.#n?.promise}setOptions(e){this.options={...this.#s,...e},this.updateGcTime(this.options.gcTime)}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&this.#r.remove(this)}setData(e,t){let r=Qt(this.state.data,e,this.options);return this.#o({data:r,type:"success",dataUpdatedAt:t?.updatedAt,manual:t?.manual}),r}setState(e,t){this.#o({type:"setState",state:e,setStateOptions:t})}cancel(e){let t=this.#n?.promise;return this.#n?.cancel(e),t?t.then(P).catch(P):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(this.#e)}isActive(){return this.observers.some(e=>Vt(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===ee||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStale(){return this.state.isInvalidated?!0:this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0}isStaleByTime(e=0){return this.state.isInvalidated||this.state.data===void 0||!Gt(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(t=>t.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#n?.continue()}onOnline(){this.observers.find(t=>t.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#n?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#r.notify({type:"observerAdded",query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#n&&(this.#i?this.#n.cancel({revert:!0}):this.#n.cancelRetry()),this.scheduleGc()),this.#r.notify({type:"observerRemoved",query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#o({type:"invalidate"})}fetch(e,t){if(this.state.fetchStatus!=="idle"){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#n)return this.#n.continueRetry(),this.#n.promise}if(e&&this.setOptions(e),!this.options.queryFn){let s=this.observers.find(c=>c.options.queryFn);s&&this.setOptions(s.options)}let r=new AbortController,n=s=>{Object.defineProperty(s,"signal",{enumerable:!0,get:()=>(this.#i=!0,r.signal)})},o=()=>{let s=de(this.options,t),c={queryKey:this.queryKey,meta:this.meta};return n(c),this.#i=!1,this.options.persister?this.options.persister(s,c,this):s(c)},i={fetchOptions:t,options:this.options,queryKey:this.queryKey,state:this.state,fetchFn:o};n(i),this.options.behavior?.onFetch(i,this),this.#t=this.state,(this.state.fetchStatus==="idle"||this.state.fetchMeta!==i.fetchOptions?.meta)&&this.#o({type:"fetch",meta:i.fetchOptions?.meta});let a=s=>{he(s)&&s.silent||this.#o({type:"error",error:s}),he(s)||(this.#r.config.onError?.(s,this),this.#r.config.onSettled?.(this.state.data,s,this)),this.scheduleGc()};return this.#n=pe({initialPromise:t?.initialPromise,fn:i.fetchFn,abort:r.abort.bind(r),onSuccess:s=>{if(s===void 0){a(new Error(`${this.queryHash} data is undefined`));return}try{this.setData(s)}catch(c){a(c);return}this.#r.config.onSuccess?.(s,this),this.#r.config.onSettled?.(s,this.state.error,this),this.scheduleGc()},onError:a,onFail:(s,c)=>{this.#o({type:"failed",failureCount:s,error:c})},onPause:()=>{this.#o({type:"pause"})},onContinue:()=>{this.#o({type:"continue"})},retry:i.options.retry,retryDelay:i.options.retryDelay,networkMode:i.options.networkMode,canRun:()=>!0}),this.#n.start()}#o(e){let t=r=>{switch(e.type){case"failed":return{...r,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case"pause":return{...r,fetchStatus:"paused"};case"continue":return{...r,fetchStatus:"fetching"};case"fetch":return{...r,...Yn(r.data,this.options),fetchMeta:e.meta??null};case"success":return{...r,data:e.data,dataUpdateCount:r.dataUpdateCount+1,dataUpdatedAt:e.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!e.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":let n=e.error;return he(n)&&n.revert&&this.#t?{...this.#t,fetchStatus:"idle"}:{...r,error:n,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchFailureReason:n,fetchStatus:"idle",status:"error"};case"invalidate":return{...r,isInvalidated:!0};case"setState":return{...r,...e.state}}};this.state=t(this.state),R.batch(()=>{this.observers.forEach(r=>{r.onQueryUpdate()}),this.#r.notify({query:this,type:"updated",action:e})})}};function Yn(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:lt(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function Xn(e){let t=typeof e.initialData=="function"?e.initialData():e.initialData,r=t!==void 0,n=r?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:r?n??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:r?"success":"pending",fetchStatus:"idle"}}var te=class extends L{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,r){let n=t.queryKey,o=t.queryHash??H(n,t),i=this.get(o);return i||(i=new Jt({cache:this,queryKey:n,queryHash:o,options:e.defaultQueryOptions(t),state:r,defaultOptions:e.getQueryDefaults(n)}),this.add(i)),i}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){R.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(r=>ct(t,r))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(r=>ct(e,r)):t}notify(e){R.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){R.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){R.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}};var Zt=class extends ge{#e;#t;#r;constructor(e){super(),this.mutationId=e.mutationId,this.#t=e.mutationCache,this.#e=[],this.state=e.state||Jn(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#e.includes(e)||(this.#e.push(e),this.clearGcTimeout(),this.#t.notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){this.#e=this.#e.filter(t=>t!==e),this.scheduleGc(),this.#t.notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){this.#e.length||(this.state.status==="pending"?this.scheduleGc():this.#t.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){this.#r=pe({fn:()=>this.options.mutationFn?this.options.mutationFn(e):Promise.reject(new Error("No mutationFn found")),onFail:(n,o)=>{this.#n({type:"failed",failureCount:n,error:o})},onPause:()=>{this.#n({type:"pause"})},onContinue:()=>{this.#n({type:"continue"})},retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#t.canRun(this)});let t=this.state.status==="pending",r=!this.#r.canStart();try{if(!t){this.#n({type:"pending",variables:e,isPaused:r}),await this.#t.config.onMutate?.(e,this);let o=await this.options.onMutate?.(e);o!==this.state.context&&this.#n({type:"pending",context:o,variables:e,isPaused:r})}let n=await this.#r.start();return await this.#t.config.onSuccess?.(n,e,this.state.context,this),await this.options.onSuccess?.(n,e,this.state.context),await this.#t.config.onSettled?.(n,null,this.state.variables,this.state.context,this),await this.options.onSettled?.(n,null,e,this.state.context),this.#n({type:"success",data:n}),n}catch(n){try{throw await this.#t.config.onError?.(n,e,this.state.context,this),await this.options.onError?.(n,e,this.state.context),await this.#t.config.onSettled?.(void 0,n,this.state.variables,this.state.context,this),await this.options.onSettled?.(void 0,n,e,this.state.context),n}finally{this.#n({type:"error",error:n})}}finally{this.#t.runNext(this)}}#n(e){let t=r=>{switch(e.type){case"failed":return{...r,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...r,isPaused:!0};case"continue":return{...r,isPaused:!1};case"pending":return{...r,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:"pending",variables:e.variables,submittedAt:Date.now()};case"success":return{...r,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...r,data:void 0,error:e.error,failureCount:r.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"}}};this.state=t(this.state),R.batch(()=>{this.#e.forEach(r=>{r.onMutationUpdate(e)}),this.#t.notify({mutation:this,type:"updated",action:e})})}};function Jn(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var re=class extends L{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#r=0}#e;#t;#r;build(e,t,r){let n=new Zt({mutationCache:this,mutationId:++this.#r,options:e.defaultMutationOptions(t),state:r});return this.add(n),n}add(e){this.#e.add(e);let t=ye(e);if(typeof t=="string"){let r=this.#t.get(t);r?r.push(e):this.#t.set(t,[e])}this.notify({type:"added",mutation:e})}remove(e){if(this.#e.delete(e)){let t=ye(e);if(typeof t=="string"){let r=this.#t.get(t);if(r)if(r.length>1){let n=r.indexOf(e);n!==-1&&r.splice(n,1)}else r[0]===e&&this.#t.delete(t)}}this.notify({type:"removed",mutation:e})}canRun(e){let t=ye(e);if(typeof t=="string"){let n=this.#t.get(t)?.find(o=>o.state.status==="pending");return!n||n===e}else return!0}runNext(e){let t=ye(e);return typeof t=="string"?this.#t.get(t)?.find(n=>n!==e&&n.state.isPaused)?.continue()??Promise.resolve():Promise.resolve()}clear(){R.batch(()=>{this.#e.forEach(e=>{this.notify({type:"removed",mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(r=>ut(t,r))}findAll(e={}){return this.getAll().filter(t=>ut(e,t))}notify(e){R.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(t=>t.state.isPaused);return R.batch(()=>Promise.all(e.map(t=>t.continue().catch(P))))}};function ye(e){return e.options.scope?.id}function mt(e){return{onFetch:(t,r)=>{let n=t.options,o=t.fetchOptions?.meta?.fetchMore?.direction,i=t.state.data?.pages||[],a=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},c=0,m=async()=>{let u=!1,l=E=>{Object.defineProperty(E,"signal",{enumerable:!0,get:()=>(t.signal.aborted?u=!0:t.signal.addEventListener("abort",()=>{u=!0}),t.signal)})},d=de(t.options,t.fetchOptions),y=async(E,f,w)=>{if(u)return Promise.reject();if(f==null&&E.pages.length)return Promise.resolve(E);let p={queryKey:t.queryKey,pageParam:f,direction:w?"backward":"forward",meta:t.options.meta};l(p);let b=await d(p),{maxPages:S}=t.options,I=w?zt:$t;return{pages:I(E.pages,b,S),pageParams:I(E.pageParams,f,S)}};if(o&&i.length){let E=o==="backward",f=E?Zn:Ht,w={pages:i,pageParams:a},p=f(n,w);s=await y(w,p,E)}else{let E=e??i.length;do{let f=c===0?a[0]??n.initialPageParam:Ht(n,s);if(c>0&&f==null)break;s=await y(s,f),c++}while(c<E)}return s};t.options.persister?t.fetchFn=()=>t.options.persister?.(m,{queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},r):t.fetchFn=m}}}function Ht(e,{pages:t,pageParams:r}){let n=t.length-1;return t.length>0?e.getNextPageParam(t[n],t,r[n],r):void 0}function Zn(e,{pages:t,pageParams:r}){return t.length>0?e.getPreviousPageParam?.(t[0],t,r[0],r):void 0}var dt=class{#e;#t;#r;#n;#s;#i;#o;#a;constructor(e={}){this.#e=e.queryCache||new te,this.#t=e.mutationCache||new re,this.#r=e.defaultOptions||{},this.#n=new Map,this.#s=new Map,this.#i=0}mount(){this.#i++,this.#i===1&&(this.#o=fe.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#a=Y.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#i--,this.#i===0&&(this.#o?.(),this.#o=void 0,this.#a?.(),this.#a=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return this.#t.findAll({...e,status:"pending"}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),r=this.#e.build(this,t),n=r.state.data;return n===void 0?this.fetchQuery(e):(e.revalidateIfStale&&r.isStaleByTime(at(t.staleTime,r))&&this.prefetchQuery(t),Promise.resolve(n))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:t,state:r})=>{let n=r.data;return[t,n]})}setQueryData(e,t,r){let n=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(n.queryHash)?.state.data,a=qt(t,i);if(a!==void 0)return this.#e.build(this,n).setData(a,{...r,manual:!0})}setQueriesData(e,t,r){return R.batch(()=>this.#e.findAll(e).map(({queryKey:n})=>[n,this.setQueryData(n,t,r)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;R.batch(()=>{t.findAll(e).forEach(r=>{t.remove(r)})})}resetQueries(e,t){let r=this.#e,n={type:"active",...e};return R.batch(()=>(r.findAll(e).forEach(o=>{o.reset()}),this.refetchQueries(n,t)))}cancelQueries(e,t={}){let r={revert:!0,...t},n=R.batch(()=>this.#e.findAll(e).map(o=>o.cancel(r)));return Promise.all(n).then(P).catch(P)}invalidateQueries(e,t={}){return R.batch(()=>{if(this.#e.findAll(e).forEach(n=>{n.invalidate()}),e?.refetchType==="none")return Promise.resolve();let r={...e,type:e?.refetchType??e?.type??"active"};return this.refetchQueries(r,t)})}refetchQueries(e,t={}){let r={...t,cancelRefetch:t.cancelRefetch??!0},n=R.batch(()=>this.#e.findAll(e).filter(o=>!o.isDisabled()).map(o=>{let i=o.fetch(void 0,r);return r.throwOnError||(i=i.catch(P)),o.state.fetchStatus==="paused"?Promise.resolve():i}));return Promise.all(n).then(P)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let r=this.#e.build(this,t);return r.isStaleByTime(at(t.staleTime,r))?r.fetch(t):Promise.resolve(r.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(P).catch(P)}fetchInfiniteQuery(e){return e.behavior=mt(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(P).catch(P)}ensureInfiniteQueryData(e){return e.behavior=mt(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return Y.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#r}setDefaultOptions(e){this.#r=e}setQueryDefaults(e,t){this.#n.set($(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#n.values()],r={};return t.forEach(n=>{z(e,n.queryKey)&&Object.assign(r,n.defaultOptions)}),r}setMutationDefaults(e,t){this.#s.set($(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#s.values()],r={};return t.forEach(n=>{z(e,n.mutationKey)&&(r={...r,...n.defaultOptions})}),r}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#r.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=H(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===ee&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#r.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}};var Hn=new dt({defaultOptions:{queries:{staleTime:3e4}},queryCache:new te({onError:(e,t)=>{}}),mutationCache:new re}),er=Hn;var eo=[{name:"lowCpuCores",weight:1,async check(){let e=navigator.hardwareConcurrency||0,t=e>0&&e<=2;return{value:e,triggered:t}}},{name:"lowDeviceMemory",weight:1,async check(){let e=navigator.deviceMemory||0,t=e>0&&e<=4;return{value:e,triggered:t}}},{name:"platformMismatch",weight:1,async check(){let e=navigator.userAgent||"",t=navigator.platform||"",r=e.includes("Mac")&&t.includes("Linux")||e.includes("Win")&&t.includes("Mac")||t===""||t==="Unknown";return{value:t,triggered:r}}},{name:"webglSoftwareRenderer",weight:2,async check(){let e=null,t=null,r=!1;try{let n=document.createElement("canvas"),o=n.getContext("webgl")||n.getContext("experimental-webgl");if(o){let i=o.getExtension("WEBGL_debug_renderer_info");if(i){e=o.getParameter(i.UNMASKED_VENDOR_WEBGL)||"",t=o.getParameter(i.UNMASKED_RENDERER_WEBGL)||"";let a=t.toLowerCase(),s=e.toLowerCase();r=a.includes("swiftshader")||a.includes("llvmpipe")||a.includes("softwar")||a.includes("basic render")||a.includes("vmware")||a.includes("virtualbox")||s.includes("vmware")||s.includes("parallels")}}}catch{}return{value:{vendor:e,renderer:t},triggered:r}}},{name:"missingWebGPUAdapter",weight:2,async check(){if(!("gpu"in navigator))return{value:"no WebGPU",triggered:!0};try{let e=await navigator.gpu.requestAdapter();return{value:e?"adapter-present":"adapter-null",triggered:!e}}catch{return{value:"adapter-error",triggered:!0}}}},{name:"reducedTimerPrecision",weight:1,async check(){let e=performance.now();await new Promise(n=>setTimeout(n,50));let t=performance.now()-e,r=t<30||t>80;return{value:t.toFixed(2),triggered:r}}},{name:"timerJitter",weight:1,async check(){let e=[];for(let n=0;n<10;n++){let o=performance.now();await new Promise(a=>setTimeout(a,10));let i=performance.now();e.push(i-o)}let t=Math.sqrt(e.map(n=>(n-10)**2).reduce((n,o)=>n+o)/e.length),r=t>5;return{value:t.toFixed(3),triggered:r}}},{name:"audioFingerprint",weight:1,async check(){try{let e=new(window.OfflineAudioContext||window.webkitOfflineAudioContext)(1,44100,44100),t=e.createOscillator();t.frequency.value=440,t.connect(e.destination),t.start(0);let n=(await e.startRendering()).getChannelData(0).reduce((i,a)=>i+Math.abs(a),0),o=n<100;return{value:n,triggered:o}}catch{return{value:"audio-error",triggered:!0}}}},{name:"canvasEntropy",weight:1,async check(){try{let e=document.createElement("canvas"),t=e.getContext("2d");t.textBaseline="top",t.font="14px 'Arial'",t.fillText("VM CHECK",2,2);let n=[...e.toDataURL()].reduce((i,a)=>(i+a.charCodeAt(0))%9999999,0);return{value:n,triggered:n===0||n===999999}}catch{return{value:"canvas-error",triggered:!0}}}},{name:"windowSizeWeird",weight:1,async check(){let e=window.innerWidth/window.innerHeight,t=e===1.333||e===1.6;return{value:e.toFixed(2),triggered:t}}},{name:"touchMismatch",weight:1,async check(){let e="ontouchstart"in window,t=navigator.maxTouchPoints||0;return{value:{hasTouch:e,maxTouch:t},triggered:e&&t===0}}},{name:"batteryVirtualized",weight:1,async check(){if(!navigator.getBattery)return{value:"no API",triggered:!0};try{let e=await navigator.getBattery(),t=e.chargingTime===0&&e.dischargingTime===1/0;return{value:{chargingTime:e.chargingTime,dischargingTime:e.dischargingTime},triggered:t}}catch{return{value:"battery-error",triggered:!0}}}},{name:"permissionsWeird",weight:1,async check(){try{let e=await navigator.permissions.query({name:"camera"}),t=e.state==="prompt";return{value:e.state,triggered:t}}catch{return{value:"perm-error",triggered:!0}}}},{name:"noMediaDevices",weight:1,async check(){try{let e=await navigator.mediaDevices.enumerateDevices(),t=e.length===0;return{value:e.length,triggered:t}}catch{return{value:"media-error",triggered:!0}}}},{name:"virtualizedMediaDevices",weight:1,async check(){try{let e=await navigator.mediaDevices.enumerateDevices(),t=e.some(r=>r.label.toLowerCase().includes("virtual"));return{value:e.map(r=>r.label),triggered:t}}catch{return{value:"media-error",triggered:!0}}}},{name:"webrtcIpPattern",weight:2,async check(){return new Promise(e=>{let t=new RTCPeerConnection({iceServers:[]});t.createDataChannel("x"),t.onicecandidate=r=>{if(!r||!r.candidate){e({value:"no candidate",triggered:!0});return}let n=r.candidate.candidate.toLowerCase(),o=n.includes("10.0.2.")||n.includes("172.16.")||n.includes("192.168.56.");e({value:n,triggered:o})},t.createOffer().then(r=>t.setLocalDescription(r))})}},{name:"gpuAccelerationDisabled",weight:2,async check(){let t=document.createElement("canvas").getContext("webgl");return{value:!!t,triggered:!t}}},{name:"noWebGL2",weight:1,async check(){let e=document.createElement("canvas").getContext("webgl2");return{value:!!e,triggered:!e}}},{name:"lowStorageQuota",weight:1,async check(){try{let e=await navigator.storage.estimate(),t=e.quota<500*1024*1024;return{value:e.quota,triggered:t}}catch{return{value:"storage-error",triggered:!0}}}},{name:"lowEntropy",weight:1,async check(){let e=Object.keys(navigator).length+Object.keys(screen).length+Object.keys(window).length,t=e<200;return{value:e,triggered:t}}},{name:"noLanguages",weight:1,async check(){let e=navigator.languages||[];return{value:e,triggered:e.length===0}}},{name:"uaEntropyLow",weight:1,async check(){let e=navigator.userAgent,t=e.length<30;return{value:e,triggered:t}}},{name:"weirdDPI",weight:1,async check(){let e=window.devicePixelRatio;return{value:e,triggered:e===1}}}];async function tr({threshold:e=6}={}){let t={},r=0;for(let n of eo){let o=await n.check();t[n.name]=o,o.triggered&&(r+=n.weight)}return{isLikelyVM:r>=e,score:r,threshold:e,signals:t}}var to=[{name:"hookedFunctionToString",weight:2,async check(){let e=Function.prototype.toString.toString(),t=Function.prototype.toString+"";return{value:{native:e,current:t},triggered:e!==t}}},{name:"navigatorProxyTrap",weight:2,async check(){let e=!1;try{let t=Object.getOwnPropertyDescriptor(window,"navigator");t&&t.get&&t.get.toString()?.includes("[native code]")===!1&&(e=!0)}catch{}return{value:"navigator getter",triggered:e}}},{name:"uaMismatch",weight:2,async check(){let e=navigator.userAgent||"",t="";try{let n=await navigator.userAgentData?.getHighEntropyValues?.(["platform","brands"]);t=JSON.stringify(n)}catch{}let r=e?.includes("Mac")&&t?.includes("Windows")||e?.includes("Win")&&t?.includes("Mac")||t&&t.length>0&&!e;return{value:{ua:e,brandInfo:t},triggered:r}}},{name:"timezoneLocaleMismatch",weight:1,async check(){let e=Intl.DateTimeFormat().resolvedOptions().timeZone,t=navigator.language||"",r=t.startsWith("en")&&e==="Asia/Shanghai"||t.startsWith("zh")&&e==="America/New_York"||e===void 0;return{value:{tz:e,lang:t},triggered:r}}},{name:"canvasNoise",weight:2,async check(){let e=()=>{let o=document.createElement("canvas"),i=o.getContext("2d");return i.textBaseline="top",i.font="14px Arial",i.fillText("anti-detect-check",2,2),o.toDataURL()},t=e(),r=e();return{value:{a:t,b:r},triggered:t!==r}}},{name:"webglNoise",weight:2,async check(){try{let t=document.createElement("canvas").getContext("webgl");if(!t)return{value:"no-webgl",triggered:!0};let r=t.getExtension("WEBGL_debug_renderer_info");if(!r)return{value:"no-debug-extension",triggered:!1};let n=t.getParameter(r.UNMASKED_VENDOR_WEBGL),o=t.getParameter(r.UNMASKED_RENDERER_WEBGL),i=n===""||o===""||n?.includes(" ")===!1||o?.includes(" ")===!1;return{value:{v:n,r:o},triggered:i}}catch{return{value:"gl-error",triggered:!0}}}},{name:"webdriverFlag",weight:3,async check(){let e=navigator.webdriver===!0;return{value:navigator.webdriver,triggered:e}}},{name:"perfectEventTiming",weight:1,async check(){let e=performance.now();return{value:e,triggered:e%1===0}}},{name:"serviceWorkerBlocked",weight:1,async check(){let e=!("serviceWorker"in navigator);return{value:e,triggered:e}}},{name:"smallQuota",weight:2,async check(){try{let e=await navigator.storage.estimate(),t=e.quota<50*1024*1024;return{value:e.quota,triggered:t}}catch{return{value:"quota-error",triggered:!0}}}},{name:"indexedDbBlocked",weight:2,async check(){try{let e=indexedDB.open("tamper-check");return await new Promise(t=>{e.onerror=()=>t({value:"error",triggered:!0}),e.onsuccess=()=>t({value:"ok",triggered:!1})})}catch{return{value:"throw",triggered:!0}}}},{name:"screenDprMismatch",weight:1,async check(){let e=window.screen.width,t=window.screen.height,r=window.devicePixelRatio,n=e===1920&&r===1&&t===1080||r%1!==0&&r%1!==.5;return{value:{w:e,h:t,dpr:r},triggered:n}}},{name:"missingCommonFonts",weight:1,async check(){return{value:"skipped",triggered:!1}}},{name:"noMediaDevices",weight:1,async check(){try{let e=await navigator.mediaDevices.enumerateDevices();return{value:e.length,triggered:e.length===0}}catch{return{value:"error",triggered:!0}}}},{name:"languagesEmpty",weight:1,async check(){let e=navigator.languages||[];return{value:e,triggered:e.length===0}}},{name:"pluginMismatch",weight:1,async check(){try{let e=navigator.plugins.length;return{value:e,triggered:e===0}}catch{return{value:"error",triggered:!0}}}},{name:"devtoolsDetected",weight:2,async check(){return new Promise(async e=>{let t={viewportBreakpoint:!1,debuggerLatency:!1,consoleSpeed:!1},r=160,n=window.outerWidth-window.innerWidth,o=window.outerHeight-window.innerHeight;(n>r||o>r)&&(t.viewportBreakpoint=!0);function i(c=200){let m=performance.now();debugger;return performance.now()-m>c}t.debuggerLatency=i();async function a(c=50){return new Promise(m=>{let u=performance.now();console.log("%c ","font-size:3000px");let l=performance.now();m(l-u>c)})}t.consoleSpeed=await a();let s=Object.values(t).some(Boolean);setTimeout(()=>{e({value:s,triggered:s})},50)})}},{name:"knownAntiDetectBrowser",weight:5,async check(){let e=navigator.userAgent.toLowerCase(),r=["incogniton","multilogin","morelogin","adspect","kameleo","goLogin"].some(n=>e?.includes(n));return{value:e,triggered:r}}}];async function rr({threshold:e=5}={}){let t={},r=0;for(let o of to){let i=await o.check();t[o.name]=i,i.triggered&&(r+=o.weight)}let n=Math.min(1,r/15);return{result:n>=.5||t.knownAntiDetectBrowser?.triggered,anomalyScore:n,antiDetectBrowser:t.knownAntiDetectBrowser?.triggered||!1,signals:t}}function ro(){let e=0;try{0 .toFixed(-1)}catch(t){e=t.message.length}return e}function no(){let e=navigator.userAgent,t=ro();return t===44||t===43?"Safari":t===51?"Chrome":t===25?"Firefox":navigator.msSaveBlob!==void 0?"MSIE":e.match(/Chrome/)?navigator.brave!==void 0?"Brave":e.includes("Edg")?"Edge":e.includes("OPR")?"Opera":"Chrome":"Unknown"}var oo=[{name:"safari_currentStorageTest",weight:2,browser:"Safari",async check(){if(typeof navigator.storage?.getDirectory!="function")return{triggered:!1,value:"unsupported"};try{return await navigator.storage.getDirectory(),{triggered:!1,value:"ok"}}catch(e){let t=e?.message??String(e);return{triggered:t.includes("unknown transient reason"),value:t}}}},{name:"safari13to18_indexedDbBlobTest",weight:2,browser:"Safari",async check(){return await new Promise(e=>{let t=String(Math.random()),r=indexedDB.open(t,1);r.onupgradeneeded=n=>{let o=n.target.result;try{o.createObjectStore("t",{autoIncrement:!0}).put(new Blob),e({triggered:!1,value:"ok"})}catch(i){let a=i?.message??String(i);e({triggered:a.includes("are not yet supported"),value:a})}finally{o.close(),indexedDB.deleteDatabase(t)}},r.onerror=()=>e({triggered:!1,value:"idb-error"})})}},{name:"safari_oldWebkitTest",weight:1,browser:"Safari",async check(){let e=window.openDatabase,t=window.localStorage;try{e(null,null,null,null)}catch{return{triggered:!0,value:"openDatabase denied"}}try{t.setItem("test","1"),t.removeItem("test")}catch{return{triggered:!0,value:"localStorage denied"}}return{triggered:!1,value:"ok"}}},{name:"chrome_storageQuotaPrivateTest",weight:2,browser:"Chrome",async check(){return await new Promise((e,t)=>{let n=window?.performance?.memory?.jsHeapSizeLimit??1073741824;navigator.webkitTemporaryStorage.queryUsageAndQuota((o,i)=>{let a=Math.round(i/1048576),s=Math.round(n/(1024*1024))*2;e({triggered:a<s,value:{quotaMB:a,limitMB:s}})},o=>t(o))})}},{name:"chrome_oldFileSystemTest",weight:1,browser:"Chrome",async check(){let e=window.webkitRequestFileSystem;return e?await new Promise(t=>e(0,1,()=>t({triggered:!1,value:"ok"}),()=>t({triggered:!0,value:"denied"}))):{triggered:!1,value:"unsupported"}}},{name:"firefox_storageDirectoryTest",weight:2,browser:"Firefox",async check(){if(typeof navigator.storage?.getDirectory!="function")return{triggered:!1,value:"unsupported"};try{return await navigator.storage.getDirectory(),{triggered:!1,value:"ok"}}catch(e){let t=e?.message??String(e);return{triggered:t.includes("Security error"),value:t}}}},{name:"firefox_indexedDbInvalidStateTest",weight:1,browser:"Firefox",async check(){return await new Promise(e=>{let t=indexedDB.open("inPrivate");t.onerror=()=>{e({triggered:t.error?.name==="InvalidStateError",value:t.error?.name})},t.onsuccess=()=>{indexedDB.deleteDatabase("inPrivate"),e({triggered:!1,value:"ok"})}})}},{name:"msie_indexedDbMissing",weight:2,browser:"MSIE",async check(){return{triggered:window.indexedDB===void 0,value:"msie-idb-check"}}}];async function nr(){let e=no(),t={},r=0;for(let n of oo){if(n.browser!==e)continue;let o=await n.check();t[n.name]=o,o.triggered&&(r+=n.weight)}return{isPrivate:r>0,browserName:e,score:r,signals:t}}typeof window<"u"&&(window.detectIncognito=nr);var or=nr;var ir="dtect_security_sdk_state",sr=typeof window<"u",ar={isLoading:!1,token:"",visitorId:"",projectId:"",questionData:null,clientData:null,aiCheckData:null,tokens:null},Ee={state:{...ar},securityKeys:{behaviorKey:"",automationKey:""}};function cr(){if(!sr)return Ee;try{let e=sessionStorage.getItem(ir);if(!e)return Ee;let t=JSON.parse(e);return t.expiresAt&&t.expiresAt<Date.now()?Ee:{state:{...ar,...t.state},securityKeys:t.securityKeys||{behaviorKey:"",automationKey:""}}}catch{return Ee}}function U(e){if(sr)try{let t=Date.now()+864e5,r={...e,expiresAt:t};sessionStorage.setItem(ir,JSON.stringify(r))}catch{}}function ur(e){return e.token||X()}var we,B="https://api.dtect.io/security",Ie=`${B}/client/check`,F="",K="",mr="0.0.18",dr,lr,io="20000000-aaaa-bbbb-cccc-000000000002",ve;var{state:g,securityKeys:{automationKey:k,behaviorKey:M}}=cr(),fr=Tt,ne;async function so({clientId:e,apiKey:t,endpoint:r}){if(De({automationKey:k,behaviorKey:M}))return{automationKey:k,behaviorKey:M};let n=await er.fetchQuery({queryKey:["getClientConfig",e,t],queryFn:()=>it({url:`${r}/client/config`,headers:{"client-id":F,"x-api-key":K}})});if(!De(n))throw new Error;return k=n.automationKey,M=n.behaviorKey,U({state:g,securityKeys:n}),n}function ft(e){if(e instanceof Error){if(e?.message?.includes("maintenance_mode"))throw new Error(v.MAINTENANCE_MODE);if(e?.message?.includes("rate-limited"))throw new Error(v.RATE_LIMIT_REACHED);switch(e?.message){case G.ERROR_RATE_LIMIT:throw new Error(v.RATE_LIMIT_REACHED);default:throw new Error(v.INTERNAL_SERVER_ERROR)}}throw new Error(v.FAILED_TO_GET_SECURITY_TOKEN)}function q(){if(gr(g)&&De({automationKey:k,behaviorKey:M}))return!0;let e=Se(),t=document.querySelector("#dtect-h-captcha");return!!we&&!!(t||e)}function hr(){return!!(F&&K)}function ao(){return new Promise(e=>{let t=()=>{window?.hcaptcha?e():requestAnimationFrame(t)};t()})}var Se=()=>window?.location?.href?.includes("localhost")||window?.location?.href?.includes("file:///");async function co({behaviorKey:e}){if(we=await G.load({apiKey:e,endpoint:["https://fp.dtect.io",G.defaultEndpoint],scriptUrlPattern:["https://fp.dtect.io/web/v<version>/<apiKey>/loader_v<loaderVersion>.js",G.defaultScriptUrlPattern]}),Se()||(await ao(),await window.hcaptcha.render("dtect-h-captcha",{sitekey:k,size:"invisible"})),!we)throw new Error(v.SDK_INIT_ERROR)}async function uo(){if(g.tokens)return g.tokens;let e=new Promise(o=>{let i=we?.get();o(i)}),t=new Promise(async o=>{Se()&&o({response:io});let a=await window?.hcaptcha?.execute({async:!0});o(a)}),[r,n]=await Promise.all([t,e]);return g.tokens={behaviorRequestId:n?.requestId,behaviorToken:n?.sealedResult,automationToken:r?.response},g.tokens}function lo(e){let t=e?.projectId,r=e?.visitorId||X();return(typeof e?.projectId=="number"||typeof e?.visitorId=="number")&&(t=`${e?.projectId}`,r=`${e?.visitorId}`),{visitorId:r,projectId:t}}function ht(e){if(g.projectId&&g.visitorId)return{visitorId:g.visitorId,projectId:g.projectId};let{projectId:t,visitorId:r}=lo(e);return{projectId:t,visitorId:r}}async function pr(e,t){if(!q())throw new Error(v.NOT_INITIALIZED);if(!hr())throw new Error(v.MISSING_CREDENTIALS);let{projectId:r,visitorId:n}=ht(e);if(g.projectId=r,g.visitorId=n,!e||!r?.trim())throw new Error(v.FAILED_TO_GET_SECURITY_RESULT);try{let o=await uo(),i=new Z,[a,s,c,m]=await Promise.allSettled([i.get(),tr(),rr(),or()]);if(o?.behaviorToken&&o?.behaviorRequestId&&o?.automationToken){let u={behaviorToken:o.behaviorToken,automationToken:o.automationToken,behaviorRequestId:o.behaviorRequestId,entryLink:window?.location?.href,securitySettings:e.securitySettings,metaData:e.metaData,vmDtectResults:s?.value,tamperingDtectResults:c?.value,incognitoDtectResults:m?.value,deviceIdResults:a?.value};g.clientData=u;let l={...e,projectId:r,visitorId:n,clientData:u,version:"0.0.18",token:g.token,questionData:g.questionData,aiCheckData:g.aiCheckData};lr=performance.now();let d=(lr-dr).toFixed(),y=await me({url:`${t}?clientId=${F}&diff=${d}`,body:{...l},headers:{"client-id":F,"x-api-key":K}});if("token"in y||"results"in y)return U({state:g,securityKeys:{automationKey:k,behaviorKey:M}}),y}throw new Error(v.INTERNAL_SERVER_ERROR)}catch(o){if(o instanceof Error){if(o?.message?.includes("maintenance_mode"))throw new Error(v.MAINTENANCE_MODE);if(o?.message?.includes("rate-limited")||o?.message?.includes("429"))throw new Error(v.RATE_LIMIT_REACHED);switch(o?.message){case G.ERROR_RATE_LIMIT:throw new Error(v.RATE_LIMIT_REACHED);default:throw new Error(v.INTERNAL_SERVER_ERROR)}}throw new Error(v.FAILED_TO_GET_SECURITY_RESULT)}}async function Re(e){return await pr(e,`${B}/client/check/result`)}async function be(e){return await pr(e,`${B}/client/check`)}async function Te(e){if(!q())throw new Error(v.NOT_INITIALIZED);let{respondentType:t,language:r}=e;try{let n=await it({url:`${B}/client/quality-questions/${t}/${r}`,headers:{"client-id":F,"x-api-key":K}});if(n)return n;throw new Error(v.INTERNAL_SERVER_ERROR)}catch(n){ft(n)}}async function Oe(e){if(!q())throw new Error(v.NOT_INITIALIZED);g.questionData||(g.questionData={questions:e.questions});let{visitorId:t,projectId:r}=ht(e);g.visitorId=t,g.projectId=r;try{let n=await me({url:Ie,headers:{"client-id":F,"x-api-key":K},body:{token:g.token,visitorId:t,projectId:r,version:mr,questionData:g.questionData,aiCheckData:g.aiCheckData,clientData:g.clientData}});if(n)return U({state:g,securityKeys:{automationKey:k,behaviorKey:M}}),n;throw new Error(v.INTERNAL_SERVER_ERROR)}catch(n){ft(n)}}async function Ae(e){if(!q())throw new Error(v.NOT_INITIALIZED);g.aiCheckData={timeTakenSeconds:e.timeTakenSeconds,qbc:e.qbc||ne.qbc,mas:e.mas||ne.mas,scb:e.scb||ne.scb,apd:e.apd||ne.apd};let{visitorId:t,projectId:r}=ht(e);g.visitorId=t,g.projectId=r;try{let n=await me({url:Ie,headers:{"client-id":F,"x-api-key":K},body:{token:g.token,visitorId:t,projectId:r,version:mr,clientData:g.clientData,questionData:g.questionData,aiCheckData:g.aiCheckData}});if(n)return U({state:g,securityKeys:{automationKey:k,behaviorKey:M}}),n;throw new Error(v.INTERNAL_SERVER_ERROR)}catch(n){ft(n)}}function mo(){let e=document.querySelector("head"),t=document.querySelector("body");if(!Se()){t?.insertAdjacentHTML("beforeend",'<div id="dtect-h-captcha" ></div>');let n=document.createElement("script");n.setAttribute("src","https://js.hcaptcha.com/1/api.js"),n.setAttribute("async","true"),n.setAttribute("defer","true"),e?.append(n)}}function De(e){return e?.automationKey&&e?.behaviorKey}function gr(e){let t=e.tokens;return!!(t&&t.behaviorToken&&t.behaviorRequestId&&t.automationToken)}async function yr(e){if(!e?.clientId||!e?.apiKey)throw new Error(v.MISSING_CREDENTIALS);dr=performance.now();let{clientId:t,apiKey:r,endpoint:n="https://api.dtect.io/security",includeResults:o}=e;B=n,Ie=`${B}/client/check`;let i=ur(g);if(g.isLoading){if(q())return ve;throw new Error(v.DUPLICATE_INITIALIZATION)}if(ne=Ft(g.aiCheckData),F=t,K=r,o&&(Ie=`${B}/client/check/result`),g={...g,isLoading:!0,token:i||""},gr(g)&&De({automationKey:k,behaviorKey:M}))return g={...g,isLoading:!1,token:i},U({state:g,securityKeys:{automationKey:k,behaviorKey:M}}),{getSecurityResult:Re,getSecurityToken:be,isAIUsageDetected:Ae,checkQualityQuestions:Oe,getQualityQuestions:Te,LanguageCodes:V,QualityQuestionsRespondentTypes:j};if(!hr())throw new Error(v.MISSING_CREDENTIALS);if(q())return ve;mo();try{let s=await so({clientId:t,apiKey:r,endpoint:n});if(q())throw new Error;return co({behaviorKey:s.behaviorKey}).then(()=>({getSecurityResult:Re,getSecurityToken:be,SecurityAPIError:fr,isAIUsageDetected:Ae,checkQualityQuestions:Oe,getQualityQuestions:Te,LanguageCodes:V,QualityQuestionsRespondentTypes:j})).catch(c=>{throw new Error(c.message)})}catch(s){if(s instanceof Error){if(s?.message?.includes("maintenance_mode"))throw new Error(v.MAINTENANCE_MODE);if([v.INVALID_API_KEY,v.UNAUTHORIZED].includes(s?.message))throw new Error(v.INVALID_CREDENTIALS)}throw new Error(v.SDK_INIT_ERROR)}finally{g={...g,isLoading:!1,token:i},U({state:g,securityKeys:{automationKey:k,behaviorKey:M}})}}ve={init:yr,getSecurityResult:Re,getSecurityToken:be,isAIUsageDetected:Ae,checkQualityQuestions:Oe,getQualityQuestions:Te,QualityQuestionsRespondentTypes:j,LanguageCodes:V};var fo=ve;
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1,11 @@
|
|
|
1
|
-
function ot(e,t){return function(r,n){return Object.prototype.hasOwnProperty.call(r,n)}(e,t)?e[t]:void 0}function at(e,t,r,n){let i=document,o="securitypolicyviolation",c,s=d=>{let u=new URL(e,location.href),{blockedURI:l}=d;l!==u.href&&l!==u.protocol.slice(0,-1)&&l!==u.origin||(c=d,a())};i.addEventListener(o,s);let a=()=>i.removeEventListener(o,s);return n?.then(a,a),Promise.resolve().then(t).then(d=>(a(),d),d=>new Promise(u=>{let l=new MessageChannel;l.port1.onmessage=()=>u(),l.port2.postMessage(null)}).then(()=>{if(a(),c)return r(c);throw d}))}function g(e){let t="";for(let r=0;r<e.length;++r)if(r>0){let n=e[r].toLowerCase();n!==e[r]?t+=` ${n}`:t+=e[r]}else t+=e[r].toUpperCase();return t}var ct={default:"endpoint"},ut={default:"tlsEndpoint"},lt="Client timeout",ht="Network connection error",ft="Network request aborted",dt="Response cannot be parsed",ne="Blocked by CSP",ie="The endpoint parameter is not a valid URL",Et="Handle on demand agent data error",Rt=g("WrongRegion"),mt=g("SubscriptionNotActive"),pt=g("UnsupportedVersion"),yt=g("InstallationMethodRestricted"),It=g("HostnameRestricted"),Tt=g("IntegrationFailed"),Ot=g("NetworkRestricted"),_t=g("InvalidProxyIntegrationSecret"),vt=g("InvalidProxyIntegrationHeaders"),gt=g("ProxyIntegrationSecretEnvironmentMismatch"),se="API key required",Ie="API key not found",Te="API key expired",At="Request cannot be parsed",wt="Request failed",Dt="Request failed to process",Nt="Too many requests, rate limit exceeded",bt="Not available for this origin",Pt="Not available with restricted header",St=se,kt=Ie,Mt=Te,Lt="3.12.0",j="Failed to load the JS script of the agent",oe="9319";function Ut(e,t){let r=[],[n,i]=function(s){let a=function(l){let m=[...l];return{current:()=>m[0],postpone(){let p=m.shift();p!==void 0&&m.push(p)},exclude(){m.shift()}}}(s),d=function(l,m){let p=0;return()=>Math.random()*Math.min(m,l*Math.pow(2,p++))}(100,3e3),u=new Set;return[a.current(),(l,m)=>{let p,E=m instanceof Error?m.message:"";if(E===ne||E===ie)a.exclude(),p=0;else if(E===oe)a.exclude();else if(E===j){let O=Date.now()-l.getTime()<50,h=a.current();h&&O&&!u.has(h)&&(u.add(h),p=0),a.postpone()}else a.postpone();let f=a.current();return f===void 0?void 0:[f,p??l.getTime()+d()-Date.now()]}]}(e),o;if(n===void 0)return Promise.reject(new TypeError("The list of script URL patterns is empty"));let c=s=>{let a=new Date,d=l=>r.push({url:s,startedAt:a,finishedAt:new Date,error:l}),u=t(s);return u.then(()=>d(),d),u.catch(l=>{if(o!=null||(o=l),r.length>=5)throw o;let m=i(a,l);if(!m)throw o;let[p,E]=m;return(f=E,new Promise(O=>setTimeout(O,f))).then(()=>c(p));var f})};return c(n).then(s=>[s,r])}var Oe="https://fpnpmcdn.net/v<version>/<apiKey>/loader_v<loaderVersion>.js",Ft=Oe;function xt(e){var t,r;let{picked:n,rest:i}=function(u,l){let m={},p={};for(let[E,f]of Object.entries(u))l.includes(E)?m[E]=f:p[E]=f;return{picked:m,rest:p}}(e,["scriptUrlPattern","token","apiKey"]),o=n.token,c=(t=n.apiKey)!==null&&t!==void 0?t:o,s=(r=ot(e,"scriptUrlPattern"))!==null&&r!==void 0?r:Oe,[a,d]=function(){let u=[],l=()=>{u.push({time:new Date,state:document.visibilityState})},m=function(p,E,f,O){return p.addEventListener(E,f,O),()=>p.removeEventListener(E,f,O)}(document,"visibilitychange",l);return l(),[u,m]}();return Promise.resolve().then(()=>{if(!c||typeof c!="string")throw new Error(se);let u=function(l,m){return(Array.isArray(l)?l:[l]).map(p=>function(E,f){let O=encodeURIComponent;return E.replace(/<[^<>]+>/g,h=>h==="<version>"?"3":h==="<apiKey>"?O(f):h==="<loaderVersion>"?O(Lt):h)}(String(p),m))}(s,c);return Ut(u,qt)}).catch(u=>{throw d(),function(l){return l instanceof Error&&l.message===oe?new Error(j):l}(u)}).then(([u,l])=>(d(),u.load({...i,ldi:{attempts:l,visibilityStates:a}})))}function qt(e){return at(e,()=>function(t){return new Promise((r,n)=>{if(function(s){if(URL.prototype)try{return new URL(s,location.href),!1}catch(a){if(a instanceof Error&&a.name==="TypeError")return!0;throw a}}(t))throw new Error(ie);let i=document.createElement("script"),o=()=>{var s;return(s=i.parentNode)===null||s===void 0?void 0:s.removeChild(i)},c=document.head||document.getElementsByTagName("head")[0];i.onload=()=>{o(),r()},i.onerror=()=>{o(),n(new Error(j))},i.async=!0,i.src=t,c.appendChild(i)})}(e),()=>{throw new Error(ne)}).then(Kt)}function Kt(){let e=window,t="__fpjs_p_l_b",r=e[t];if(function(n,i){var o;let c=(o=Object.getOwnPropertyDescriptor)===null||o===void 0?void 0:o.call(Object,n,i);c?.configurable?delete n[i]:c&&!c.writable||(n[i]=void 0)}(e,t),typeof r?.load!="function")throw new Error(oe);return r}var k={load:xt,defaultScriptUrlPattern:Ft,ERROR_SCRIPT_LOAD_FAIL:j,ERROR_API_KEY_EXPIRED:Te,ERROR_API_KEY_INVALID:Ie,ERROR_API_KEY_MISSING:se,ERROR_BAD_REQUEST_FORMAT:At,ERROR_BAD_RESPONSE_FORMAT:dt,ERROR_CLIENT_TIMEOUT:lt,ERROR_CSP_BLOCK:ne,ERROR_FORBIDDEN_ENDPOINT:It,ERROR_FORBIDDEN_HEADER:Pt,ERROR_FORBIDDEN_ORIGIN:bt,ERROR_GENERAL_SERVER_FAILURE:wt,ERROR_HANDLE_AGENT_DATA:Et,ERROR_INSTALLATION_METHOD_RESTRICTED:yt,ERROR_INTEGRATION_FAILURE:Tt,ERROR_INVALID_ENDPOINT:ie,ERROR_INVALID_PROXY_INTEGRATION_HEADERS:vt,ERROR_INVALID_PROXY_INTEGRATION_SECRET:_t,ERROR_NETWORK_ABORT:ft,ERROR_NETWORK_CONNECTION:ht,ERROR_NETWORK_RESTRICTED:Ot,ERROR_PROXY_INTEGRATION_SECRET_ENVIRONMENT_MISMATCH:gt,ERROR_RATE_LIMIT:Nt,ERROR_SERVER_TIMEOUT:Dt,ERROR_SUBSCRIPTION_NOT_ACTIVE:mt,ERROR_TOKEN_EXPIRED:Mt,ERROR_TOKEN_INVALID:kt,ERROR_TOKEN_MISSING:St,ERROR_UNSUPPORTED_VERSION:pt,ERROR_WRONG_REGION:Rt,defaultEndpoint:ct,defaultTlsEndpoint:ut};var _=[];for(let e=0;e<256;++e)_.push((e+256).toString(16).slice(1));function _e(e,t=0){return(_[e[t+0]]+_[e[t+1]]+_[e[t+2]]+_[e[t+3]]+"-"+_[e[t+4]]+_[e[t+5]]+"-"+_[e[t+6]]+_[e[t+7]]+"-"+_[e[t+8]]+_[e[t+9]]+"-"+_[e[t+10]]+_[e[t+11]]+_[e[t+12]]+_[e[t+13]]+_[e[t+14]]+_[e[t+15]]).toLowerCase()}var ae,Gt=new Uint8Array(16);function ce(){if(!ae){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");ae=crypto.getRandomValues.bind(crypto)}return ae(Gt)}var Bt=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),ue={randomUUID:Bt};function jt(e,t,r){if(ue.randomUUID&&!t&&!e)return ue.randomUUID();e=e||{};let n=e.random??e.rng?.()??ce();if(n.length<16)throw new Error("Random bytes length must be >= 16");if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,t){if(r=r||0,r<0||r+16>t.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let i=0;i<16;++i)t[r+i]=n[i];return t}return _e(n)}var C=jt;var Ct={UNAUTHORIZED:"Unauthorized"},Vt={EXPIRED:"EXPIRED_TOKEN",INVALID_API_KEY:"INVALID_API_KEY",MISSING_AUTHENTICATION_TOKEN:"MISSING_AUTHENTICATION_TOKEN"},ve={INTERNAL_SERVER_ERROR:"Internal Server Error during API Request",MISSING_CREDENTIALS:"Missing Public Client ID or Public API Key",MAINTENANCE_MODE:"API Under Maintenance",RATE_LIMIT_REACHED:"Too many requests. Rate limit exceeded"},ge={SDK_INIT_ERROR:"Internal Server Error during SDK Initialization",DUPLICATE_INITIALIZATION:"Multiple SDK Initializations Detected",NOT_INITIALIZED:"SDK Not Initialized"},Ae={INVALID_CREDENTIALS:"Invalid Public Client ID or Public API Key"},we={FAILED_TO_GET_SECURITY_RESULT:"Failed to Retrieve Security Result"},De={FAILED_TO_GET_SECURITY_TOKEN:" Failed to Generate Security Token"},R={...Ct,...Vt,...ve,...ge,...Ae,...we,...De},Ne={...ve,...ge,...Ae,...we,...De};var V=(h=>(h.AR="ar",h.BN="bn",h.DE="de",h.EN="en",h.ES="es",h.FR="fr",h.HI="hi",h.ID="id",h.IT="it",h.JA="ja",h.KO="ko",h.MS="ms",h.NL="nl",h.PT="pt",h.RU="ru",h.YU="yu",h.ZH="zh",h))(V||{}),Q=(y=>(y.GeneralConsumer="general-consumer",y.HRManagerDirector="hr-manager-director",y.WebDeveloper="web-developer",y.SoftwareEngineer="software-engineer",y.ITDirector="it-director",y.BusinessAdministrator="business-administrator",y.AccountsPayableManager="accounts-payable-manager",y.Accountant="accountant",y.FinanceDirector="finance-director",y.SmallBusinessOwner="small-business-owner",y.GeneralContractor="general-contractor",y.MarketingManagerDirector="marketing-manager-director",y.ConsumerShopper="consumer-shopper",y.Travel="travel",y.Entertainment="entertainment",y.FinanceAndBanking="finance-and-banking",y.General="general",y.B2BWhiteCollar="b2b-white-collar",y.B2BBlueCollar="b2b-blue-collar",y.Lawyer="lawyer",y))(Q||{});var Qt=(e,t={})=>({"Content-Type":"application/json",...e?.accessToken&&{Authorization:`Bearer ${e?.accessToken}`},...t}),Yt=async(e,t)=>{if(!e.ok){let r=await e.text();throw new Error(r)}return t==="file"?e.blob():t==="json"?e.json():t==="text"?e.text():null},be=async({url:e,auth:t,body:r,method:n="GET",headers:i={},responseType:o="json"})=>{let c={method:n,headers:Qt(t,i),...r?{body:r instanceof FormData?r:JSON.stringify(r)}:{}},s=await fetch(e,c);return Yt(s,o)},le=e=>be({...e,method:"GET"}),Y=e=>be({...e,method:"POST"});function Pe(){let e=!1,t=!1,r=!1,n=null,i=0,o=()=>{e=!1,t=!1,r=!1,n=void 0,i=0},c=()=>{let u=window?.getSelection()?.toString();u&&u.length>0&&(i=Date.now(),e=!0)},s=d=>{let u=d.clipboardData?.getData("text"),l=d.target instanceof HTMLInputElement||d.target instanceof HTMLTextAreaElement;u&&l&&(r=!0)},a=()=>{t=!0;let d=Date.now();if(i){let u=(d-i)/1e3;(n===void 0||u<n)&&(n=u)}};return document?.addEventListener("copy",c),document?.addEventListener("paste",s),window?.addEventListener("blur",a),{get qbc(){return e},get mas(){return t},get apd(){return r},get scb(){return n},reset:o,destroy(){document?.removeEventListener("copy",c),document?.removeEventListener("paste",s),window?.removeEventListener("blur",a)}}}var A=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}};var w=typeof window>"u"||"Deno"in globalThis;function v(){}function Me(e,t){return typeof e=="function"?e(t):e}function Le(e){return typeof e=="number"&&e>=0&&e!==1/0}function Ue(e,t){return Math.max(e+(t||0)-Date.now(),0)}function fe(e,t){return typeof e=="function"?e(t):e}function Fe(e,t){return typeof e=="function"?e(t):e}function de(e,t){let{type:r="all",exact:n,fetchStatus:i,predicate:o,queryKey:c,stale:s}=e;if(c){if(n){if(t.queryHash!==x(c,t.options))return!1}else if(!L(t.queryKey,c))return!1}if(r!=="all"){let a=t.isActive();if(r==="active"&&!a||r==="inactive"&&a)return!1}return!(typeof s=="boolean"&&t.isStale()!==s||i&&i!==t.state.fetchStatus||o&&!o(t))}function Ee(e,t){let{exact:r,status:n,predicate:i,mutationKey:o}=e;if(o){if(!t.options.mutationKey)return!1;if(r){if(M(t.options.mutationKey)!==M(o))return!1}else if(!L(t.options.mutationKey,o))return!1}return!(n&&t.state.status!==n||i&&!i(t))}function x(e,t){return(t?.queryKeyHashFn||M)(e)}function M(e){return JSON.stringify(e,(t,r)=>he(r)?Object.keys(r).sort().reduce((n,i)=>(n[i]=r[i],n),{}):r)}function L(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?!Object.keys(t).some(r=>!L(e[r],t[r])):!1}function xe(e,t){if(e===t)return e;let r=Se(e)&&Se(t);if(r||he(e)&&he(t)){let n=r?e:Object.keys(e),i=n.length,o=r?t:Object.keys(t),c=o.length,s=r?[]:{},a=0;for(let d=0;d<c;d++){let u=r?d:o[d];(!r&&n.includes(u)||r)&&e[u]===void 0&&t[u]===void 0?(s[u]=void 0,a++):(s[u]=xe(e[u],t[u]),s[u]===e[u]&&e[u]!==void 0&&a++)}return i===c&&a===i?e:s}return t}function Se(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function he(e){if(!ke(e))return!1;let t=e.constructor;if(t===void 0)return!0;let r=t.prototype;return!(!ke(r)||!r.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(e)!==Object.prototype)}function ke(e){return Object.prototype.toString.call(e)==="[object Object]"}function qe(e){return new Promise(t=>{setTimeout(t,e)})}function Ke(e,t,r){return typeof r.structuralSharing=="function"?r.structuralSharing(e,t):r.structuralSharing!==!1?xe(e,t):t}function Ge(e,t,r=0){let n=[...e,t];return r&&n.length>r?n.slice(1):n}function Be(e,t,r=0){let n=[t,...e];return r&&n.length>r?n.slice(0,-1):n}var q=Symbol();function $(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===q?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}var $t=class extends A{#e;#t;#r;constructor(){super(),this.#r=e=>{if(!w&&window.addEventListener){let t=()=>e();return window.addEventListener("visibilitychange",t,!1),()=>{window.removeEventListener("visibilitychange",t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#r)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#r=e,this.#t?.(),this.#t=e(t=>{typeof t=="boolean"?this.setFocused(t):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e=="boolean"?this.#e:globalThis.document?.visibilityState!=="hidden"}},X=new $t;var Xt=class extends A{#e=!0;#t;#r;constructor(){super(),this.#r=e=>{if(!w&&window.addEventListener){let t=()=>e(!0),r=()=>e(!1);return window.addEventListener("online",t,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",t),window.removeEventListener("offline",r)}}}}onSubscribe(){this.#t||this.setEventListener(this.#r)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#r=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(r=>{r(e)}))}isOnline(){return this.#e}},U=new Xt;function je(){let e,t,r=new Promise((i,o)=>{e=i,t=o});r.status="pending",r.catch(()=>{});function n(i){Object.assign(r,i),delete r.resolve,delete r.reject}return r.resolve=i=>{n({status:"fulfilled",value:i}),e(i)},r.reject=i=>{n({status:"rejected",reason:i}),t(i)},r}function Wt(e){return Math.min(1e3*2**e,3e4)}function Re(e){return(e??"online")==="online"?U.isOnline():!0}var Ce=class extends Error{constructor(e){super("CancelledError"),this.revert=e?.revert,this.silent=e?.silent}};function W(e){return e instanceof Ce}function z(e){let t=!1,r=0,n=!1,i,o=je(),c=f=>{n||(m(new Ce(f)),e.abort?.())},s=()=>{t=!0},a=()=>{t=!1},d=()=>X.isFocused()&&(e.networkMode==="always"||U.isOnline())&&e.canRun(),u=()=>Re(e.networkMode)&&e.canRun(),l=f=>{n||(n=!0,e.onSuccess?.(f),i?.(),o.resolve(f))},m=f=>{n||(n=!0,e.onError?.(f),i?.(),o.reject(f))},p=()=>new Promise(f=>{i=O=>{(n||d())&&f(O)},e.onPause?.()}).then(()=>{i=void 0,n||e.onContinue?.()}),E=()=>{if(n)return;let f,O=r===0?e.initialPromise:void 0;try{f=O??e.fn()}catch(h){f=Promise.reject(h)}Promise.resolve(f).then(l).catch(h=>{if(n)return;let N=e.retry??(w?0:3),S=e.retryDelay??Wt,y=typeof S=="function"?S(r,h):S,st=N===!0||typeof N=="number"&&r<N||typeof N=="function"&&N(r,h);if(t||!st){m(h);return}r++,e.onFail?.(r,h),qe(y).then(()=>d()?void 0:p()).then(()=>{t?m(h):E()})})};return{promise:o,cancel:c,continue:()=>(i?.(),o),cancelRetry:s,continueRetry:a,canStart:u,start:()=>(u()?E():p().then(E),o)}}function zt(){let e=[],t=0,r=s=>{s()},n=s=>{s()},i=s=>setTimeout(s,0),o=s=>{t?e.push(s):i(()=>{r(s)})},c=()=>{let s=e;e=[],s.length&&i(()=>{n(()=>{s.forEach(a=>{r(a)})})})};return{batch:s=>{let a;t++;try{a=s()}finally{t--,t||c()}return a},batchCalls:s=>(...a)=>{o(()=>{s(...a)})},schedule:o,setNotifyFunction:s=>{r=s},setBatchNotifyFunction:s=>{n=s},setScheduler:s=>{i=s}}}var T=zt();var J=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),Le(this.gcTime)&&(this.#e=setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(w?1/0:5*60*1e3))}clearGcTimeout(){this.#e&&(clearTimeout(this.#e),this.#e=void 0)}};var Ve=class extends J{#e;#t;#r;#n;#o;#s;constructor(e){super(),this.#s=!1,this.#o=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#r=e.cache,this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#e=Zt(this.options),this.state=e.state??this.#e,this.scheduleGc()}get meta(){return this.options.meta}get promise(){return this.#n?.promise}setOptions(e){this.options={...this.#o,...e},this.updateGcTime(this.options.gcTime)}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&this.#r.remove(this)}setData(e,t){let r=Ke(this.state.data,e,this.options);return this.#i({data:r,type:"success",dataUpdatedAt:t?.updatedAt,manual:t?.manual}),r}setState(e,t){this.#i({type:"setState",state:e,setStateOptions:t})}cancel(e){let t=this.#n?.promise;return this.#n?.cancel(e),t?t.then(v).catch(v):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(this.#e)}isActive(){return this.observers.some(e=>Fe(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===q||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStale(){return this.state.isInvalidated?!0:this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0}isStaleByTime(e=0){return this.state.isInvalidated||this.state.data===void 0||!Ue(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(t=>t.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#n?.continue()}onOnline(){this.observers.find(t=>t.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#n?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#r.notify({type:"observerAdded",query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#n&&(this.#s?this.#n.cancel({revert:!0}):this.#n.cancelRetry()),this.scheduleGc()),this.#r.notify({type:"observerRemoved",query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#i({type:"invalidate"})}fetch(e,t){if(this.state.fetchStatus!=="idle"){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#n)return this.#n.continueRetry(),this.#n.promise}if(e&&this.setOptions(e),!this.options.queryFn){let s=this.observers.find(a=>a.options.queryFn);s&&this.setOptions(s.options)}let r=new AbortController,n=s=>{Object.defineProperty(s,"signal",{enumerable:!0,get:()=>(this.#s=!0,r.signal)})},i=()=>{let s=$(this.options,t),a={queryKey:this.queryKey,meta:this.meta};return n(a),this.#s=!1,this.options.persister?this.options.persister(s,a,this):s(a)},o={fetchOptions:t,options:this.options,queryKey:this.queryKey,state:this.state,fetchFn:i};n(o),this.options.behavior?.onFetch(o,this),this.#t=this.state,(this.state.fetchStatus==="idle"||this.state.fetchMeta!==o.fetchOptions?.meta)&&this.#i({type:"fetch",meta:o.fetchOptions?.meta});let c=s=>{W(s)&&s.silent||this.#i({type:"error",error:s}),W(s)||(this.#r.config.onError?.(s,this),this.#r.config.onSettled?.(this.state.data,s,this)),this.scheduleGc()};return this.#n=z({initialPromise:t?.initialPromise,fn:o.fetchFn,abort:r.abort.bind(r),onSuccess:s=>{if(s===void 0){c(new Error(`${this.queryHash} data is undefined`));return}try{this.setData(s)}catch(a){c(a);return}this.#r.config.onSuccess?.(s,this),this.#r.config.onSettled?.(s,this.state.error,this),this.scheduleGc()},onError:c,onFail:(s,a)=>{this.#i({type:"failed",failureCount:s,error:a})},onPause:()=>{this.#i({type:"pause"})},onContinue:()=>{this.#i({type:"continue"})},retry:o.options.retry,retryDelay:o.options.retryDelay,networkMode:o.options.networkMode,canRun:()=>!0}),this.#n.start()}#i(e){let t=r=>{switch(e.type){case"failed":return{...r,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case"pause":return{...r,fetchStatus:"paused"};case"continue":return{...r,fetchStatus:"fetching"};case"fetch":return{...r,...Jt(r.data,this.options),fetchMeta:e.meta??null};case"success":return{...r,data:e.data,dataUpdateCount:r.dataUpdateCount+1,dataUpdatedAt:e.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!e.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":let n=e.error;return W(n)&&n.revert&&this.#t?{...this.#t,fetchStatus:"idle"}:{...r,error:n,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchFailureReason:n,fetchStatus:"idle",status:"error"};case"invalidate":return{...r,isInvalidated:!0};case"setState":return{...r,...e.state}}};this.state=t(this.state),T.batch(()=>{this.observers.forEach(r=>{r.onQueryUpdate()}),this.#r.notify({query:this,type:"updated",action:e})})}};function Jt(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:Re(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function Zt(e){let t=typeof e.initialData=="function"?e.initialData():e.initialData,r=t!==void 0,n=r?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:r?n??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:r?"success":"pending",fetchStatus:"idle"}}var K=class extends A{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,r){let n=t.queryKey,i=t.queryHash??x(n,t),o=this.get(i);return o||(o=new Ve({cache:this,queryKey:n,queryHash:i,options:e.defaultQueryOptions(t),state:r,defaultOptions:e.getQueryDefaults(n)}),this.add(o)),o}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){T.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(r=>de(t,r))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(r=>de(e,r)):t}notify(e){T.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){T.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){T.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}};var Qe=class extends J{#e;#t;#r;constructor(e){super(),this.mutationId=e.mutationId,this.#t=e.mutationCache,this.#e=[],this.state=e.state||Ht(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#e.includes(e)||(this.#e.push(e),this.clearGcTimeout(),this.#t.notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){this.#e=this.#e.filter(t=>t!==e),this.scheduleGc(),this.#t.notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){this.#e.length||(this.state.status==="pending"?this.scheduleGc():this.#t.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){this.#r=z({fn:()=>this.options.mutationFn?this.options.mutationFn(e):Promise.reject(new Error("No mutationFn found")),onFail:(n,i)=>{this.#n({type:"failed",failureCount:n,error:i})},onPause:()=>{this.#n({type:"pause"})},onContinue:()=>{this.#n({type:"continue"})},retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#t.canRun(this)});let t=this.state.status==="pending",r=!this.#r.canStart();try{if(!t){this.#n({type:"pending",variables:e,isPaused:r}),await this.#t.config.onMutate?.(e,this);let i=await this.options.onMutate?.(e);i!==this.state.context&&this.#n({type:"pending",context:i,variables:e,isPaused:r})}let n=await this.#r.start();return await this.#t.config.onSuccess?.(n,e,this.state.context,this),await this.options.onSuccess?.(n,e,this.state.context),await this.#t.config.onSettled?.(n,null,this.state.variables,this.state.context,this),await this.options.onSettled?.(n,null,e,this.state.context),this.#n({type:"success",data:n}),n}catch(n){try{throw await this.#t.config.onError?.(n,e,this.state.context,this),await this.options.onError?.(n,e,this.state.context),await this.#t.config.onSettled?.(void 0,n,this.state.variables,this.state.context,this),await this.options.onSettled?.(void 0,n,e,this.state.context),n}finally{this.#n({type:"error",error:n})}}finally{this.#t.runNext(this)}}#n(e){let t=r=>{switch(e.type){case"failed":return{...r,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...r,isPaused:!0};case"continue":return{...r,isPaused:!1};case"pending":return{...r,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:"pending",variables:e.variables,submittedAt:Date.now()};case"success":return{...r,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...r,data:void 0,error:e.error,failureCount:r.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"}}};this.state=t(this.state),T.batch(()=>{this.#e.forEach(r=>{r.onMutationUpdate(e)}),this.#t.notify({mutation:this,type:"updated",action:e})})}};function Ht(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var G=class extends A{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#r=0}#e;#t;#r;build(e,t,r){let n=new Qe({mutationCache:this,mutationId:++this.#r,options:e.defaultMutationOptions(t),state:r});return this.add(n),n}add(e){this.#e.add(e);let t=Z(e);if(typeof t=="string"){let r=this.#t.get(t);r?r.push(e):this.#t.set(t,[e])}this.notify({type:"added",mutation:e})}remove(e){if(this.#e.delete(e)){let t=Z(e);if(typeof t=="string"){let r=this.#t.get(t);if(r)if(r.length>1){let n=r.indexOf(e);n!==-1&&r.splice(n,1)}else r[0]===e&&this.#t.delete(t)}}this.notify({type:"removed",mutation:e})}canRun(e){let t=Z(e);if(typeof t=="string"){let n=this.#t.get(t)?.find(i=>i.state.status==="pending");return!n||n===e}else return!0}runNext(e){let t=Z(e);return typeof t=="string"?this.#t.get(t)?.find(n=>n!==e&&n.state.isPaused)?.continue()??Promise.resolve():Promise.resolve()}clear(){T.batch(()=>{this.#e.forEach(e=>{this.notify({type:"removed",mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(r=>Ee(t,r))}findAll(e={}){return this.getAll().filter(t=>Ee(e,t))}notify(e){T.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(t=>t.state.isPaused);return T.batch(()=>Promise.all(e.map(t=>t.continue().catch(v))))}};function Z(e){return e.options.scope?.id}function me(e){return{onFetch:(t,r)=>{let n=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,o=t.state.data?.pages||[],c=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},a=0,d=async()=>{let u=!1,l=E=>{Object.defineProperty(E,"signal",{enumerable:!0,get:()=>(t.signal.aborted?u=!0:t.signal.addEventListener("abort",()=>{u=!0}),t.signal)})},m=$(t.options,t.fetchOptions),p=async(E,f,O)=>{if(u)return Promise.reject();if(f==null&&E.pages.length)return Promise.resolve(E);let h={queryKey:t.queryKey,pageParam:f,direction:O?"backward":"forward",meta:t.options.meta};l(h);let N=await m(h),{maxPages:S}=t.options,y=O?Be:Ge;return{pages:y(E.pages,N,S),pageParams:y(E.pageParams,f,S)}};if(i&&o.length){let E=i==="backward",f=E?er:Ye,O={pages:o,pageParams:c},h=f(n,O);s=await p(O,h,E)}else{let E=e??o.length;do{let f=a===0?c[0]??n.initialPageParam:Ye(n,s);if(a>0&&f==null)break;s=await p(s,f),a++}while(a<E)}return s};t.options.persister?t.fetchFn=()=>t.options.persister?.(d,{queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},r):t.fetchFn=d}}}function Ye(e,{pages:t,pageParams:r}){let n=t.length-1;return t.length>0?e.getNextPageParam(t[n],t,r[n],r):void 0}function er(e,{pages:t,pageParams:r}){return t.length>0?e.getPreviousPageParam?.(t[0],t,r[0],r):void 0}var pe=class{#e;#t;#r;#n;#o;#s;#i;#a;constructor(e={}){this.#e=e.queryCache||new K,this.#t=e.mutationCache||new G,this.#r=e.defaultOptions||{},this.#n=new Map,this.#o=new Map,this.#s=0}mount(){this.#s++,this.#s===1&&(this.#i=X.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#a=U.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#s--,this.#s===0&&(this.#i?.(),this.#i=void 0,this.#a?.(),this.#a=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return this.#t.findAll({...e,status:"pending"}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),r=this.#e.build(this,t),n=r.state.data;return n===void 0?this.fetchQuery(e):(e.revalidateIfStale&&r.isStaleByTime(fe(t.staleTime,r))&&this.prefetchQuery(t),Promise.resolve(n))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:t,state:r})=>{let n=r.data;return[t,n]})}setQueryData(e,t,r){let n=this.defaultQueryOptions({queryKey:e}),o=this.#e.get(n.queryHash)?.state.data,c=Me(t,o);if(c!==void 0)return this.#e.build(this,n).setData(c,{...r,manual:!0})}setQueriesData(e,t,r){return T.batch(()=>this.#e.findAll(e).map(({queryKey:n})=>[n,this.setQueryData(n,t,r)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;T.batch(()=>{t.findAll(e).forEach(r=>{t.remove(r)})})}resetQueries(e,t){let r=this.#e,n={type:"active",...e};return T.batch(()=>(r.findAll(e).forEach(i=>{i.reset()}),this.refetchQueries(n,t)))}cancelQueries(e,t={}){let r={revert:!0,...t},n=T.batch(()=>this.#e.findAll(e).map(i=>i.cancel(r)));return Promise.all(n).then(v).catch(v)}invalidateQueries(e,t={}){return T.batch(()=>{if(this.#e.findAll(e).forEach(n=>{n.invalidate()}),e?.refetchType==="none")return Promise.resolve();let r={...e,type:e?.refetchType??e?.type??"active"};return this.refetchQueries(r,t)})}refetchQueries(e,t={}){let r={...t,cancelRefetch:t.cancelRefetch??!0},n=T.batch(()=>this.#e.findAll(e).filter(i=>!i.isDisabled()).map(i=>{let o=i.fetch(void 0,r);return r.throwOnError||(o=o.catch(v)),i.state.fetchStatus==="paused"?Promise.resolve():o}));return Promise.all(n).then(v)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let r=this.#e.build(this,t);return r.isStaleByTime(fe(t.staleTime,r))?r.fetch(t):Promise.resolve(r.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(v).catch(v)}fetchInfiniteQuery(e){return e.behavior=me(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(v).catch(v)}ensureInfiniteQueryData(e){return e.behavior=me(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return U.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#r}setDefaultOptions(e){this.#r=e}setQueryDefaults(e,t){this.#n.set(M(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#n.values()],r={};return t.forEach(n=>{L(e,n.queryKey)&&Object.assign(r,n.defaultOptions)}),r}setMutationDefaults(e,t){this.#o.set(M(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#o.values()],r={};return t.forEach(n=>{L(e,n.mutationKey)&&(r={...r,...n.defaultOptions})}),r}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#r.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=x(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===q&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#r.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}};var tr=new pe({defaultOptions:{queries:{staleTime:3e4}},queryCache:new K({onError:(e,t)=>{}}),mutationCache:new G}),$e=tr;var H,b="https://api.dtect.io/security",ee=`${b}/client/check`,D="",P="",We="0.0.16",re,ze,Xe,rr="20000000-aaaa-bbbb-cccc-000000000002",te,I={isLoading:!1,token:"",visitorId:"",projectId:"",questionData:null,clientData:null,aiCheckData:null,tokens:null};var nr=Ne,B;async function ir({clientId:e,apiKey:t,endpoint:r}){return await $e.fetchQuery({queryKey:["getClientConfig",e,t],queryFn:()=>le({url:`${r}/client/config`,headers:{"client-id":D,"x-api-key":P}})})}function ye(e){if(e instanceof Error){if(e?.message?.includes("maintenance_mode"))throw new Error(R.MAINTENANCE_MODE);if(e?.message?.includes("rate-limited"))throw new Error(R.RATE_LIMIT_REACHED);switch(e?.message){case k.ERROR_RATE_LIMIT:throw new Error(R.RATE_LIMIT_REACHED);default:throw new Error(R.INTERNAL_SERVER_ERROR)}}throw new Error(R.FAILED_TO_GET_SECURITY_TOKEN)}function F(){let e=window?.location?.href?.includes("localhost")||window?.location?.href?.includes("file:///"),t=document.querySelector("#dtect-h-captcha");return!!(H&&(t||e))}function Je(){return!!(D&&P)}function sr(){return new Promise(e=>{let t=()=>{window?.hcaptcha?e():requestAnimationFrame(t)};t()})}var Ze=()=>window?.location?.href?.includes("localhost")||window?.location?.href?.includes("file:///");async function or({behaviorKey:e}){if(H=await k.load({apiKey:e,endpoint:["https://fp.dtect.io",k.defaultEndpoint],scriptUrlPattern:["https://fp.dtect.io/web/v<version>/<apiKey>/loader_v<loaderVersion>.js",k.defaultScriptUrlPattern]}),Ze()||(await sr(),await window.hcaptcha.render("dtect-h-captcha",{sitekey:re,size:"invisible"})),!H)throw new Error(R.SDK_INIT_ERROR)}async function ar(){if(I.tokens)return I.tokens;let e=new Promise(i=>{let o=H?.get();i(o)}),t=new Promise(async i=>{Ze()&&i({response:rr}),await window?.hcaptcha?.render("dtect-h-captcha",{sitekey:re,size:"invisible"});let c=await window?.hcaptcha?.execute({async:!0});i(c)}),[r,n]=await Promise.all([t,e]);return I.tokens={behaviorRequestId:n?.requestId,behaviorToken:n?.sealedResult,automationToken:r?.response},I.tokens}async function He(e,t){if(!F())throw new Error(R.NOT_INITIALIZED);if(!Je())throw new Error(R.MISSING_CREDENTIALS);let{projectId:r,visitorId:n}=cr(e);if(!e||!r?.trim())throw new Error(R.FAILED_TO_GET_SECURITY_RESULT);try{let i=await ar();if(i?.behaviorToken&&i?.behaviorRequestId&&i?.automationToken){let o={behaviorToken:i.behaviorToken,automationToken:i.automationToken,behaviorRequestId:i.behaviorRequestId,entryLink:window?.location?.href,securitySettings:e.securitySettings,metaData:e.metaData};I.clientData=o;let c={...e,projectId:r?.trim(),visitorId:n?.trim()||C(),clientData:o,version:"0.0.16",token:I.token,questionData:I.questionData,aiCheckData:I.aiCheckData};Xe=performance.now();let s=(Xe-ze).toFixed(),a=await Y({url:`${t}?clientId=${D}&diff=${s}`,body:{...c},headers:{"client-id":D,"x-api-key":P}});if("token"in a||"results"in a)return a}throw new Error(R.INTERNAL_SERVER_ERROR)}catch(i){if(i instanceof Error){if(i?.message?.includes("maintenance_mode"))throw new Error(R.MAINTENANCE_MODE);if(i?.message?.includes("rate-limited")||i?.message?.includes("429"))throw new Error(R.RATE_LIMIT_REACHED);switch(i?.message){case k.ERROR_RATE_LIMIT:throw new Error(R.RATE_LIMIT_REACHED);default:throw new Error(R.INTERNAL_SERVER_ERROR)}}throw new Error(R.FAILED_TO_GET_SECURITY_RESULT)}}async function et(e){return await He(e,`${b}/client/check/result`)}async function tt(e){return await He(e,`${b}/client/check`)}function cr(e){let t=e?.projectId,r=e?.visitorId;return(typeof e?.projectId=="number"||typeof e?.visitorId=="number")&&(t=`${e?.projectId}`,r=`${e?.visitorId}`),{visitorId:r,projectId:t}}async function rt(e){if(!F())throw new Error(R.NOT_INITIALIZED);let{respondentType:t,language:r}=e;try{let n=await le({url:`${b}/client/quality-questions/${t}/${r}`,headers:{"client-id":D,"x-api-key":P}});if(n)return n;throw new Error(R.INTERNAL_SERVER_ERROR)}catch(n){ye(n)}}async function nt(e){if(!F())throw new Error(R.NOT_INITIALIZED);I.questionData={questions:e.questions};try{let t=await Y({url:ee,headers:{"client-id":D,"x-api-key":P},body:{token:I.token,visitorId:e.visitorId,projectId:e.projectId,version:We,questionData:I.questionData,aiCheckData:I.aiCheckData,clientData:I.clientData}});if(t)return t;throw new Error(R.INTERNAL_SERVER_ERROR)}catch(t){ye(t)}}async function it(e){if(!F())throw new Error(R.NOT_INITIALIZED);I.aiCheckData={timeTakenSeconds:e.timeTakenSeconds,qbc:e.qbc||B.qbc,mas:e.mas||B.mas,scb:e.scb||B.scb,apd:e.apd||B.apd};try{let t=await Y({url:ee,headers:{"client-id":D,"x-api-key":P},body:{token:I.token,visitorId:e.visitorId,projectId:e.projectId,version:We,clientData:I.clientData,questionData:I.questionData,aiCheckData:I.aiCheckData}});if(t)return t;throw new Error(R.INTERNAL_SERVER_ERROR)}catch(t){ye(t)}}async function ur(){return C()}function lr(){let e=document.querySelector("head"),t=document.querySelector("body");if(!(window?.location?.href?.includes("localhost")||window?.location?.href?.includes("file:///"))){t?.insertAdjacentHTML("beforeend",'<div id="dtect-h-captcha" ></div>');let n=document.createElement("script");n.setAttribute("src","https://js.hcaptcha.com/1/api.js"),n.setAttribute("async","true"),n.setAttribute("defer","true"),e?.append(n)}}function hr(){return!!re}function fr(e){return e?.automationKey&&e?.behaviorKey}async function dr(e){if(!e?.clientId||!e?.apiKey)throw new Error(R.MISSING_CREDENTIALS);ze=performance.now();let{clientId:t,apiKey:r,endpoint:n="https://api.dtect.io/security",includeResults:i}=e;b=n,ee=`${b}/client/check`;let o=await ur();if(I.isLoading){if(F())return te;throw new Error(R.DUPLICATE_INITIALIZATION)}if(B=Pe(),D=t,P=r,i&&(ee=`${b}/client/check/result`),I={...I,isLoading:!0,token:o||""},!Je())throw new Error(R.MISSING_CREDENTIALS);if(F())return te;lr();try{let c=await ir({clientId:t,apiKey:r,endpoint:n});if(!fr(c)||hr())throw new Error;return re=c.automationKey,or({behaviorKey:c.behaviorKey}).then(()=>({getSecurityResult:et,getSecurityToken:tt,SecurityAPIError:nr,isAIUsageDetected:it,checkQualityQuestions:nt,getQualityQuestions:rt,LanguageCodes:V,QualityQuestionsRespondentTypes:Q})).catch(s=>{throw new Error(s.message)})}catch(c){if(c instanceof Error){if(c?.message?.includes("maintenance_mode"))throw new Error(R.MAINTENANCE_MODE);if([R.INVALID_API_KEY,R.UNAUTHORIZED].includes(c?.message))throw new Error(R.INVALID_CREDENTIALS)}throw new Error(R.SDK_INIT_ERROR)}finally{I={...I,isLoading:!1,token:o}}}te={init:dr,getSecurityResult:et,getSecurityToken:tt,isAIUsageDetected:it,checkQualityQuestions:nt,getQualityQuestions:rt,QualityQuestionsRespondentTypes:Q,LanguageCodes:V};var pi=te;export{V as LanguageCodes,Q as QualityQuestionsRespondentTypes,nr as SecurityAPIError,nt as checkQualityQuestions,pi as default,rt as getQualityQuestions,et as getSecurityResult,tt as getSecurityToken,dr as init,it as isAIUsageDetected};
|
|
1
|
+
function pr(e,t){return function(r,n){return Object.prototype.hasOwnProperty.call(r,n)}(e,t)?e[t]:void 0}function gr(e,t,r,n){let o=document,i="securitypolicyviolation",a,s=m=>{let u=new URL(e,location.href),{blockedURI:l}=m;l!==u.href&&l!==u.protocol.slice(0,-1)&&l!==u.origin||(a=m,c())};o.addEventListener(i,s);let c=()=>o.removeEventListener(i,s);return n?.then(c,c),Promise.resolve().then(t).then(m=>(c(),m),m=>new Promise(u=>{let l=new MessageChannel;l.port1.onmessage=()=>u(),l.port2.postMessage(null)}).then(()=>{if(c(),a)return r(a);throw m}))}function N(e){let t="";for(let r=0;r<e.length;++r)if(r>0){let n=e[r].toLowerCase();n!==e[r]?t+=` ${n}`:t+=e[r]}else t+=e[r].toUpperCase();return t}var yr={default:"endpoint"},Er={default:"tlsEndpoint"},wr="Client timeout",Ir="Network connection error",vr="Network request aborted",Rr="Response cannot be parsed",Se="Blocked by CSP",_e="The endpoint parameter is not a valid URL",br="Handle on demand agent data error",Tr=N("WrongRegion"),Or=N("SubscriptionNotActive"),Ar=N("UnsupportedVersion"),Dr=N("InstallationMethodRestricted"),Sr=N("HostnameRestricted"),_r=N("IntegrationFailed"),Pr=N("NetworkRestricted"),xr=N("InvalidProxyIntegrationSecret"),kr=N("InvalidProxyIntegrationHeaders"),Nr=N("ProxyIntegrationSecretEnvironmentMismatch"),Pe="API key required",ht="API key not found",pt="API key expired",Mr="Request cannot be parsed",Lr="Request failed",Cr="Request failed to process",Fr="Too many requests, rate limit exceeded",Ur="Not available for this origin",Br="Not available with restricted header",qr=Pe,Kr=ht,Gr=pt,Vr="3.12.0",oe="Failed to load the JS script of the agent",xe="9319";function jr(e,t){let r=[],[n,o]=function(s){let c=function(l){let d=[...l];return{current:()=>d[0],postpone(){let y=d.shift();y!==void 0&&d.push(y)},exclude(){d.shift()}}}(s),m=function(l,d){let y=0;return()=>Math.random()*Math.min(d,l*Math.pow(2,y++))}(100,3e3),u=new Set;return[c.current(),(l,d)=>{let y,E=d instanceof Error?d.message:"";if(E===Se||E===_e)c.exclude(),y=0;else if(E===xe)c.exclude();else if(E===oe){let w=Date.now()-l.getTime()<50,p=c.current();p&&w&&!u.has(p)&&(u.add(p),y=0),c.postpone()}else c.postpone();let f=c.current();return f===void 0?void 0:[f,y??l.getTime()+m()-Date.now()]}]}(e),i;if(n===void 0)return Promise.reject(new TypeError("The list of script URL patterns is empty"));let a=s=>{let c=new Date,m=l=>r.push({url:s,startedAt:c,finishedAt:new Date,error:l}),u=t(s);return u.then(()=>m(),m),u.catch(l=>{if(i!=null||(i=l),r.length>=5)throw i;let d=o(c,l);if(!d)throw i;let[y,E]=d;return(f=E,new Promise(w=>setTimeout(w,f))).then(()=>a(y));var f})};return a(n).then(s=>[s,r])}var gt="https://fpnpmcdn.net/v<version>/<apiKey>/loader_v<loaderVersion>.js",Wr=gt;function Qr(e){var t,r;let{picked:n,rest:o}=function(u,l){let d={},y={};for(let[E,f]of Object.entries(u))l.includes(E)?d[E]=f:y[E]=f;return{picked:d,rest:y}}(e,["scriptUrlPattern","token","apiKey"]),i=n.token,a=(t=n.apiKey)!==null&&t!==void 0?t:i,s=(r=pr(e,"scriptUrlPattern"))!==null&&r!==void 0?r:gt,[c,m]=function(){let u=[],l=()=>{u.push({time:new Date,state:document.visibilityState})},d=function(y,E,f,w){return y.addEventListener(E,f,w),()=>y.removeEventListener(E,f,w)}(document,"visibilitychange",l);return l(),[u,d]}();return Promise.resolve().then(()=>{if(!a||typeof a!="string")throw new Error(Pe);let u=function(l,d){return(Array.isArray(l)?l:[l]).map(y=>function(E,f){let w=encodeURIComponent;return E.replace(/<[^<>]+>/g,p=>p==="<version>"?"3":p==="<apiKey>"?w(f):p==="<loaderVersion>"?w(Vr):p)}(String(y),d))}(s,a);return jr(u,$r)}).catch(u=>{throw m(),function(l){return l instanceof Error&&l.message===xe?new Error(oe):l}(u)}).then(([u,l])=>(m(),u.load({...o,ldi:{attempts:l,visibilityStates:c}})))}function $r(e){return gr(e,()=>function(t){return new Promise((r,n)=>{if(function(s){if(URL.prototype)try{return new URL(s,location.href),!1}catch(c){if(c instanceof Error&&c.name==="TypeError")return!0;throw c}}(t))throw new Error(_e);let o=document.createElement("script"),i=()=>{var s;return(s=o.parentNode)===null||s===void 0?void 0:s.removeChild(o)},a=document.head||document.getElementsByTagName("head")[0];o.onload=()=>{i(),r()},o.onerror=()=>{i(),n(new Error(oe))},o.async=!0,o.src=t,a.appendChild(o)})}(e),()=>{throw new Error(Se)}).then(zr)}function zr(){let e=window,t="__fpjs_p_l_b",r=e[t];if(function(n,o){var i;let a=(i=Object.getOwnPropertyDescriptor)===null||i===void 0?void 0:i.call(Object,n,o);a?.configurable?delete n[o]:a&&!a.writable||(n[o]=void 0)}(e,t),typeof r?.load!="function")throw new Error(xe);return r}var G={load:Qr,defaultScriptUrlPattern:Wr,ERROR_SCRIPT_LOAD_FAIL:oe,ERROR_API_KEY_EXPIRED:pt,ERROR_API_KEY_INVALID:ht,ERROR_API_KEY_MISSING:Pe,ERROR_BAD_REQUEST_FORMAT:Mr,ERROR_BAD_RESPONSE_FORMAT:Rr,ERROR_CLIENT_TIMEOUT:wr,ERROR_CSP_BLOCK:Se,ERROR_FORBIDDEN_ENDPOINT:Sr,ERROR_FORBIDDEN_HEADER:Br,ERROR_FORBIDDEN_ORIGIN:Ur,ERROR_GENERAL_SERVER_FAILURE:Lr,ERROR_HANDLE_AGENT_DATA:br,ERROR_INSTALLATION_METHOD_RESTRICTED:Dr,ERROR_INTEGRATION_FAILURE:_r,ERROR_INVALID_ENDPOINT:_e,ERROR_INVALID_PROXY_INTEGRATION_HEADERS:kr,ERROR_INVALID_PROXY_INTEGRATION_SECRET:xr,ERROR_NETWORK_ABORT:vr,ERROR_NETWORK_CONNECTION:Ir,ERROR_NETWORK_RESTRICTED:Pr,ERROR_PROXY_INTEGRATION_SECRET_ENVIRONMENT_MISMATCH:Nr,ERROR_RATE_LIMIT:Fr,ERROR_SERVER_TIMEOUT:Cr,ERROR_SUBSCRIPTION_NOT_ACTIVE:Or,ERROR_TOKEN_EXPIRED:Gr,ERROR_TOKEN_INVALID:Kr,ERROR_TOKEN_MISSING:qr,ERROR_UNSUPPORTED_VERSION:Ar,ERROR_WRONG_REGION:Tr,defaultEndpoint:yr,defaultTlsEndpoint:Er};var T=[];for(let e=0;e<256;++e)T.push((e+256).toString(16).slice(1));function yt(e,t=0){return(T[e[t+0]]+T[e[t+1]]+T[e[t+2]]+T[e[t+3]]+"-"+T[e[t+4]]+T[e[t+5]]+"-"+T[e[t+6]]+T[e[t+7]]+"-"+T[e[t+8]]+T[e[t+9]]+"-"+T[e[t+10]]+T[e[t+11]]+T[e[t+12]]+T[e[t+13]]+T[e[t+14]]+T[e[t+15]]).toLowerCase()}var ke,Yr=new Uint8Array(16);function Ne(){if(!ke){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");ke=crypto.getRandomValues.bind(crypto)}return ke(Yr)}var Xr=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),Me={randomUUID:Xr};function Jr(e,t,r){if(Me.randomUUID&&!t&&!e)return Me.randomUUID();e=e||{};let n=e.random??e.rng?.()??Ne();if(n.length<16)throw new Error("Random bytes length must be >= 16");if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,t){if(r=r||0,r<0||r+16>t.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let o=0;o<16;++o)t[r+o]=n[o];return t}return yt(n)}var z=Jr;var Zr={UNAUTHORIZED:"Unauthorized"},Hr={EXPIRED:"EXPIRED_TOKEN",INVALID_API_KEY:"INVALID_API_KEY",MISSING_AUTHENTICATION_TOKEN:"MISSING_AUTHENTICATION_TOKEN"},Et={INTERNAL_SERVER_ERROR:"Internal Server Error during API Request",MISSING_CREDENTIALS:"Missing Public Client ID or Public API Key",MAINTENANCE_MODE:"API Under Maintenance",RATE_LIMIT_REACHED:"Too many requests. Rate limit exceeded"},wt={SDK_INIT_ERROR:"Internal Server Error during SDK Initialization",DUPLICATE_INITIALIZATION:"Multiple SDK Initializations Detected",NOT_INITIALIZED:"SDK Not Initialized"},It={INVALID_CREDENTIALS:"Invalid Public Client ID or Public API Key"},vt={FAILED_TO_GET_SECURITY_RESULT:"Failed to Retrieve Security Result"},Rt={FAILED_TO_GET_SECURITY_TOKEN:" Failed to Generate Security Token"},v={...Zr,...Hr,...Et,...wt,...It,...vt,...Rt},bt={...Et,...wt,...It,...vt,...Rt};var Y=(p=>(p.AR="ar",p.BN="bn",p.DE="de",p.EN="en",p.ES="es",p.FR="fr",p.HI="hi",p.ID="id",p.IT="it",p.JA="ja",p.KO="ko",p.MS="ms",p.NL="nl",p.PT="pt",p.RU="ru",p.YU="yu",p.ZH="zh",p))(Y||{}),X=(I=>(I.GeneralConsumer="general-consumer",I.HRManagerDirector="hr-manager-director",I.WebDeveloper="web-developer",I.SoftwareEngineer="software-engineer",I.ITDirector="it-director",I.BusinessAdministrator="business-administrator",I.AccountsPayableManager="accounts-payable-manager",I.Accountant="accountant",I.FinanceDirector="finance-director",I.SmallBusinessOwner="small-business-owner",I.GeneralContractor="general-contractor",I.MarketingManagerDirector="marketing-manager-director",I.ConsumerShopper="consumer-shopper",I.Travel="travel",I.Entertainment="entertainment",I.FinanceAndBanking="finance-and-banking",I.General="general",I.B2BWhiteCollar="b2b-white-collar",I.B2BBlueCollar="b2b-blue-collar",I.Lawyer="lawyer",I))(X||{});var V={exclude:[],include:[],stabilize:["private","iframe"],logging:!0,timeout:5e3,cache_api_call:!0,performance:!1,experimental:!1},Do={...V},Le={private:[{exclude:["canvas"],browsers:["firefox","safari>=17","brave"]},{exclude:["audio"],browsers:["samsungbrowser","safari"]},{exclude:["fonts"],browsers:["firefox"]},{exclude:["audio.sampleHash","hardware.deviceMemory","header.acceptLanguage.q","system.hardwareConcurrency","plugins"],browsers:["brave"]},{exclude:["tls.extensions"],browsers:["firefox","chrome","safari"]},{exclude:["header.acceptLanguage"],browsers:["edge","chrome"]}],iframe:[{exclude:["system.applePayVersion","system.cookieEnabled"],browsers:["safari"]},{exclude:["permissions"]}],vpn:[{exclude:["ip"]}]};async function Ce(){return en()}async function en(){return new Promise((t,r)=>{try{let i=new(window.OfflineAudioContext||window.webkitOfflineAudioContext)(1,5e3,44100),a=i?.createBufferSource(),s=i.createOscillator();s.frequency.value=1e3;let c=i.createDynamicsCompressor();c.threshold.value=-50,c.knee.value=40,c.ratio.value=12,c.attack.value=0,c.release.value=.2,s.connect(c),c.connect(i.destination),s.start();let m;i.oncomplete=u=>{m=u.renderedBuffer.getChannelData(0),t({sampleHash:tn(m),maxChannels:i.destination.maxChannelCount,channelCountMode:a.channelCountMode})},i.startRendering()}catch(n){console.error("Error creating audio fingerprint:",n),r(n)}})}function tn(e){let t=0;for(let r=0;r<e.length;++r)t+=Math.abs(e[r]);return t}function ie(e,t,r){let n=[];for(let a=0;a<e[0].data.length;a++){let s=[];for(let c=0;c<e.length;c++)s.push(e[c].data[a]);n.push(rn(s))}let o=n,i=new Uint8ClampedArray(o);return new ImageData(i,t,r)}function rn(e){if(e.length===0)return 0;let t={};for(let n of e)t[n]=(t[n]||0)+1;let r=e[0];for(let n in t)t[n]>t[r]&&(r=parseInt(n,10));return r}function nn(e){return new TextEncoder().encode(e).buffer}function se(e){return e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),e^=e>>>16,e>>>0}var A=new Uint32Array([597399067,2869860233,951274213,2716044179]);function x(e,t){return e<<t|e>>>32-t}function on(e,t){let r=e.byteLength/16|0,n=new Uint32Array(e,0,r*4);for(let o=0;o<r;o++){let i=n.subarray(o*4,(o+1)*4);i[0]=Math.imul(i[0],A[0]),i[0]=x(i[0],15),i[0]=Math.imul(i[0],A[1]),t[0]=t[0]^i[0],t[0]=x(t[0],19),t[0]=t[0]+t[1],t[0]=Math.imul(t[0],5)+1444728091,i[1]=Math.imul(i[1],A[1]),i[1]=x(i[1],16),i[1]=Math.imul(i[1],A[2]),t[1]=t[1]^i[1],t[1]=x(t[1],17),t[1]=t[1]+t[2],t[1]=Math.imul(t[1],5)+197830471,i[2]=Math.imul(i[2],A[2]),i[2]=x(i[2],17),i[2]=Math.imul(i[2],A[3]),t[2]=t[2]^i[2],t[2]=x(t[2],15),t[2]=t[2]+t[3],t[2]=Math.imul(t[2],5)+2530024501,i[3]=Math.imul(i[3],A[3]),i[3]=x(i[3],18),i[3]=Math.imul(i[3],A[0]),t[3]=t[3]^i[3],t[3]=x(t[3],13),t[3]=t[3]+t[0],t[3]=Math.imul(t[3],5)+850148119}}function sn(e,t){let r=e.byteLength/16|0,n=e.byteLength%16,o=new Uint32Array(4),i=new Uint8Array(e,r*16,n);switch(n){case 15:o[3]=o[3]^i[14]<<16;case 14:o[3]=o[3]^i[13]<<8;case 13:o[3]=o[3]^i[12]<<0,o[3]=Math.imul(o[3],A[3]),o[3]=x(o[3],18),o[3]=Math.imul(o[3],A[0]),t[3]=t[3]^o[3];case 12:o[2]=o[2]^i[11]<<24;case 11:o[2]=o[2]^i[10]<<16;case 10:o[2]=o[2]^i[9]<<8;case 9:o[2]=o[2]^i[8]<<0,o[2]=Math.imul(o[2],A[2]),o[2]=x(o[2],17),o[2]=Math.imul(o[2],A[3]),t[2]=t[2]^o[2];case 8:o[1]=o[1]^i[7]<<24;case 7:o[1]=o[1]^i[6]<<16;case 6:o[1]=o[1]^i[5]<<8;case 5:o[1]=o[1]^i[4]<<0,o[1]=Math.imul(o[1],A[1]),o[1]=x(o[1],16),o[1]=Math.imul(o[1],A[2]),t[1]=t[1]^o[1];case 4:o[0]=o[0]^i[3]<<24;case 3:o[0]=o[0]^i[2]<<16;case 2:o[0]=o[0]^i[1]<<8;case 1:o[0]=o[0]^i[0]<<0,o[0]=Math.imul(o[0],A[0]),o[0]=x(o[0],15),o[0]=Math.imul(o[0],A[1]),t[0]=t[0]^o[0]}}function an(e,t){t[0]=t[0]^e.byteLength,t[1]=t[1]^e.byteLength,t[2]=t[2]^e.byteLength,t[3]=t[3]^e.byteLength,t[0]=t[0]+t[1]|0,t[0]=t[0]+t[2]|0,t[0]=t[0]+t[3]|0,t[1]=t[1]+t[0]|0,t[2]=t[2]+t[0]|0,t[3]=t[3]+t[0]|0,t[0]=se(t[0]),t[1]=se(t[1]),t[2]=se(t[2]),t[3]=se(t[3]),t[0]=t[0]+t[1]|0,t[0]=t[0]+t[2]|0,t[0]=t[0]+t[3]|0,t[1]=t[1]+t[0]|0,t[2]=t[2]+t[0]|0,t[3]=t[3]+t[0]|0}function O(e,t=0){if(t=t?t|0:0,typeof e=="string"&&(e=nn(e)),!(e instanceof ArrayBuffer))throw new TypeError("Expected key to be ArrayBuffer or string");let r=new Uint32Array([t,t,t,t]);on(e,r),sn(e,r),an(e,r);let n=new Uint8Array(r.buffer);return Array.from(n).map(o=>o.toString(16).padStart(2,"0")).join("")}var cn=3,Tt=280,Ot=20;async function Fe(){return un()}function un(){return new Promise(e=>{let t=Array.from({length:cn},()=>ln()),r=ie(t,Tt,Ot);e({commonPixelsHash:O(r.data.toString()).toString()})})}function ln(){let e=document.createElement("canvas"),t=e.getContext("2d");if(!t)return new ImageData(1,1);e.width=Tt,e.height=Ot;let r=t.createLinearGradient(0,0,e.width,e.height);r.addColorStop(0,"red"),r.addColorStop(1/6,"orange"),r.addColorStop(2/6,"yellow"),r.addColorStop(3/6,"green"),r.addColorStop(4/6,"blue"),r.addColorStop(5/6,"indigo"),r.addColorStop(1,"violet"),t.fillStyle=r,t.fillRect(0,0,e.width,e.height);let n="Random Text WMwmil10Oo";return t.font="23.123px Arial",t.fillStyle="black",t.fillText(n,-5,15),t.fillStyle="rgba(0, 0, 255, 0.5)",t.fillText(n,-3.3,17.7),t.beginPath(),t.moveTo(0,0),t.lineTo(e.width*2/7,e.height),t.strokeStyle="white",t.lineWidth=2,t.stroke(),t.getImageData(0,0,e.width,e.height)}async function ae(e){for(;!document.body;)await mn(50);let t=document.createElement("iframe");t.setAttribute("frameBorder","0");let r=t.style;r.setProperty("position","fixed"),r.setProperty("display","block","important"),r.setProperty("visibility","visible"),r.setProperty("border","0"),r.setProperty("opacity","0"),t.src="about:blank",document.body.appendChild(t);let n=t.contentDocument||t.contentWindow?.document;if(!n)throw new Error("Iframe document is not accessible");e({iframe:n}),setTimeout(()=>{document.body.removeChild(t)},0)}function mn(e,t){return new Promise(r=>setTimeout(r,e,t))}var dn=["Arial","Arial Black","Arial Narrow","Arial Rounded MT","Arimo","Archivo","Barlow","Bebas Neue","Bitter","Bookman","Calibri","Cabin","Candara","Century","Century Gothic","Comic Sans MS","Constantia","Courier","Courier New","Crimson Text","DM Mono","DM Sans","DM Serif Display","DM Serif Text","Dosis","Droid Sans","Exo","Fira Code","Fira Sans","Franklin Gothic Medium","Garamond","Geneva","Georgia","Gill Sans","Helvetica","Impact","Inconsolata","Indie Flower","Inter","Josefin Sans","Karla","Lato","Lexend","Lucida Bright","Lucida Console","Lucida Sans Unicode","Manrope","Merriweather","Merriweather Sans","Montserrat","Myriad","Noto Sans","Nunito","Nunito Sans","Open Sans","Optima","Orbitron","Oswald","Pacifico","Palatino","Perpetua","PT Sans","PT Serif","Poppins","Prompt","Public Sans","Quicksand","Rajdhani","Recursive","Roboto","Roboto Condensed","Rockwell","Rubik","Segoe Print","Segoe Script","Segoe UI","Sora","Source Sans Pro","Space Mono","Tahoma","Taviraj","Times","Times New Roman","Titillium Web","Trebuchet MS","Ubuntu","Varela Round","Verdana","Work Sans"],fn=["monospace","sans-serif","serif"];async function Ue(e){return hn()}function hn(){return new Promise((e,t)=>{try{ae(async({iframe:r})=>{let o=r.createElement("canvas").getContext("2d"),i=fn.map(s=>At(o,s)),a={};dn.forEach(s=>{let c=At(o,s);i.includes(c)||(a[s]=c)}),e(a)})}catch{t({error:"unsupported"})}})}function At(e,t){if(!e)return null;let r="WwMmLli0Oo";return e.font=`72px ${t}`,e.measureText(r).width}function Be(){return new Promise((e,t)=>{let r=navigator.deviceMemory!==void 0?navigator.deviceMemory:0,n=window.performance&&window.performance.memory?window.performance.memory:0;e({videocard:pn(),architecture:gn(),deviceMemory:r.toString()||"undefined",jsHeapSizeLimit:n.jsHeapSizeLimit||0})})}function pn(){let e=document.createElement("canvas"),t=e.getContext("webgl")??e.getContext("experimental-webgl");if(t&&"getParameter"in t)try{let r=(t.getParameter(t.VENDOR)||"").toString(),n=(t.getParameter(t.RENDERER)||"").toString(),o={vendor:r,renderer:n,version:(t.getParameter(t.VERSION)||"").toString(),shadingLanguageVersion:(t.getParameter(t.SHADING_LANGUAGE_VERSION)||"").toString()};if(!n.length||!r.length){let i=t.getExtension("WEBGL_debug_renderer_info");if(i){let a=(t.getParameter(i.UNMASKED_VENDOR_WEBGL)||"").toString(),s=(t.getParameter(i.UNMASKED_RENDERER_WEBGL)||"").toString();a&&(o.vendorUnmasked=a),s&&(o.rendererUnmasked=s)}}return o}catch{}return"undefined"}function gn(){let e=new Float32Array(1),t=new Uint8Array(e.buffer);return e[0]=1/0,e[0]=e[0]-e[0],t[3]}function qe(){return new Promise(e=>{e({languages:yn(),timezone:En()})})}function yn(){let e=[];return navigator.language}function En(){return Intl.DateTimeFormat().resolvedOptions().timeZone}var ce=(e,t,r,n)=>{let o=(r-t)/n,i=0;for(let a=0;a<n;a++){let s=t+(a+.5)*o;i+=e(s)}return i*o};function Ke(){return new Promise(e=>{e({acos:Math.acos(.5),asin:ce(Math.asin,-1,1,97),cos:ce(Math.cos,0,Math.PI,97),largeCos:Math.cos(1e20),largeSin:Math.sin(1e20),largeTan:Math.tan(1e20),sin:ce(Math.sin,-Math.PI,Math.PI,97),tan:ce(Math.tan,0,2*Math.PI,97)})})}function wn(e){if(e.length===0)return null;let t={};e.forEach(o=>{let i=String(o);t[i]=(t[i]||0)+1});let r=e[0],n=1;return Object.keys(t).forEach(o=>{t[o]>n&&(r=o,n=t[o])}),r}function Dt(e,t){let r={};return t.forEach(n=>{let o=e.map(a=>n in a?a[n]:void 0).filter(a=>a!==void 0),i=wn(o);i&&(r[n]=i)}),r}var In=["accelerometer","accessibility","accessibility-events","ambient-light-sensor","background-fetch","background-sync","bluetooth","camera","clipboard-read","clipboard-write","device-info","display-capture","gyroscope","geolocation","local-fonts","magnetometer","microphone","midi","nfc","notifications","payment-handler","persistent-storage","push","speaker","storage-access","top-level-storage-access","window-management","query"];async function Ge(e){let t=e?.permissions_to_check||In,n=await Promise.all(Array.from({length:3},()=>vn(t)));return Dt(n,t)}async function vn(e){let t={};for(let r of e)try{let n=await navigator.permissions.query({name:r});t[r]=n.state.toString()}catch{}return t}async function Ve(){let e=[];if(navigator.plugins)for(let t=0;t<navigator.plugins.length;t++){let r=navigator.plugins[t];e.push([r.name,r.filename,r.description].join("|"))}return new Promise(t=>{t({plugins:e})})}function j(){if(typeof navigator>"u")return{name:"unknown",version:"unknown"};let e=navigator.userAgent,t=[/(?<name>SamsungBrowser)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>EdgA|EdgiOS|Edg)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>OPR|OPX)\/(?<version>\d+(?:\.\d+)+)/,/Opera[\s\/](?<version>\d+(?:\.\d+)+)/,/Opera Mini\/(?<version>\d+(?:\.\d+)+)/,/Opera Mobi\/(?<version>\d+(?:\.\d+)+)/,/(?<name>Vivaldi)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>Brave)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>CriOS)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>FxiOS)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>Chrome|Chromium)\/(?<version>\d+(?:\.\d+)+)/,/(?<name>Firefox|Waterfox|Iceweasel|IceCat)\/(?<version>\d+(?:\.\d+)+)/,/Version\/(?<version1>[\d.]+).*Safari\/[\d.]+|(?<name>Safari)\/(?<version2>[\d.]+)/,/(?<name>MSIE|Trident|IEMobile).+?(?<version>\d+(?:\.\d+)+)/,/(?<name>[A-Za-z]+)\/(?<version>\d+(?:\.\d+)+)/],r={edg:"Edge",edga:"Edge",edgios:"Edge",opr:"Opera",opx:"Opera",crios:"Chrome",fxios:"Firefox",samsung:"SamsungBrowser",vivaldi:"Vivaldi",brave:"Brave"};for(let n of t){let o=e.match(n);if(o){let i=o.groups?.name,a=o.groups?.version||o.groups?.version1||o.groups?.version2;if(!i&&(o.groups?.version1||o.groups?.version2)&&(i="Safari"),!i&&n.source.includes("Opera Mini")&&(i="Opera Mini"),!i&&n.source.includes("Opera Mobi")&&(i="Opera Mobi"),!i&&n.source.includes("Opera")&&(i="Opera"),!i&&o[1]&&(i=o[1]),!a&&o[2]&&(a=o[2]),i)return{name:r[i.toLowerCase()]||i,version:a||"unknown"}}}return{name:"unknown",version:"unknown"}}function ue(){if(typeof navigator>"u"||!navigator.userAgent)return!1;let e=navigator.userAgent;return/Mobi|Android|iPhone|iPod|IEMobile|Opera Mini|Opera Mobi|webOS|BlackBerry|Windows Phone/i.test(e)&&!/iPad/i.test(e)}function je(){return new Promise(e=>{let t={is_touchscreen:navigator.maxTouchPoints>0,maxTouchPoints:navigator.maxTouchPoints,colorDepth:screen.colorDepth,mediaMatches:bn()};ue()&&navigator.maxTouchPoints>0&&(t.resolution=Rn()),e(t)})}function Rn(){let e=window.screen.width,t=window.screen.height,r=Math.max(e,t).toString(),n=Math.min(e,t).toString();return`${r}x${n}`}function bn(){let e=[],t={"prefers-contrast":["high","more","low","less","forced","no-preference"],"any-hover":["hover","none"],"any-pointer":["none","coarse","fine"],pointer:["none","coarse","fine"],hover:["hover","none"],update:["fast","slow"],"inverted-colors":["inverted","none"],"prefers-reduced-motion":["reduce","no-preference"],"prefers-reduced-transparency":["reduce","no-preference"],scripting:["none","initial-only","enabled"],"forced-colors":["active","none"]};return Object.keys(t).forEach(r=>{t[r].forEach(n=>{matchMedia(`(${r}: ${n})`).matches&&e.push(`${r}: ${n}`)})}),e}function We(){return new Promise(e=>{let t=j(),r=navigator.userAgent,n={platform:window.navigator.platform,productSub:navigator.productSub,product:navigator.product,useragent:navigator.userAgent,hardwareConcurrency:navigator.hardwareConcurrency,browser:{name:t.name,version:t.version},mobile:ue(),applePayVersion:Tn(),cookieEnabled:window.navigator.cookieEnabled};e(n)})}function Tn(){if(window.location.protocol==="https:"&&typeof window.ApplePaySession=="function")try{let e=window.ApplePaySession.supportsVersion;for(let t=15;t>0;t--)if(e(t))return t}catch{return 0}return 0}var On=j().name!=="SamsungBrowser"?1:3,D,h=null;function An(){typeof document<"u"&&(D=document.createElement("canvas"),D.width=200,D.height=100,h=D.getContext("webgl"))}async function Qe(){An();try{if(!h)throw new Error("WebGL not supported");let e=Array.from({length:On},()=>Dn()),t=ie(e,D.width,D.height);return{commonPixelsHash:O(t.data.toString()).toString()}}catch{return{webgl:"unsupported"}}}function Dn(){try{if(!h)throw new Error("WebGL not supported");let e=`
|
|
2
|
+
attribute vec2 position;
|
|
3
|
+
void main() {
|
|
4
|
+
gl_Position = vec4(position, 0.0, 1.0);
|
|
5
|
+
}
|
|
6
|
+
`,t=`
|
|
7
|
+
precision mediump float;
|
|
8
|
+
void main() {
|
|
9
|
+
gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color
|
|
10
|
+
}
|
|
11
|
+
`,r=h.createShader(h.VERTEX_SHADER),n=h.createShader(h.FRAGMENT_SHADER);if(!r||!n)throw new Error("Failed to create shaders");if(h.shaderSource(r,e),h.shaderSource(n,t),h.compileShader(r),!h.getShaderParameter(r,h.COMPILE_STATUS))throw new Error("Vertex shader compilation failed: "+h.getShaderInfoLog(r));if(h.compileShader(n),!h.getShaderParameter(n,h.COMPILE_STATUS))throw new Error("Fragment shader compilation failed: "+h.getShaderInfoLog(n));let o=h.createProgram();if(!o)throw new Error("Failed to create shader program");if(h.attachShader(o,r),h.attachShader(o,n),h.linkProgram(o),!h.getProgramParameter(o,h.LINK_STATUS))throw new Error("Shader program linking failed: "+h.getProgramInfoLog(o));h.useProgram(o);let i=137,a=new Float32Array(i*4),s=2*Math.PI/i;for(let d=0;d<i;d++){let y=d*s;a[d*4]=0,a[d*4+1]=0,a[d*4+2]=Math.cos(y)*(D.width/2),a[d*4+3]=Math.sin(y)*(D.height/2)}let c=h.createBuffer();h.bindBuffer(h.ARRAY_BUFFER,c),h.bufferData(h.ARRAY_BUFFER,a,h.STATIC_DRAW);let m=h.getAttribLocation(o,"position");h.enableVertexAttribArray(m),h.vertexAttribPointer(m,2,h.FLOAT,!1,0,0),h.viewport(0,0,D.width,D.height),h.clearColor(0,0,0,1),h.clear(h.COLOR_BUFFER_BIT),h.drawArrays(h.LINES,0,i*2);let u=new Uint8ClampedArray(D.width*D.height*4);return h.readPixels(0,0,D.width,D.height,h.RGBA,h.UNSIGNED_BYTE,u),new ImageData(u,D.width,D.height)}catch{return new ImageData(1,1)}finally{h&&(h.bindBuffer(h.ARRAY_BUFFER,null),h.useProgram(null),h.viewport(0,0,h.drawingBufferWidth,h.drawingBufferHeight),h.clearColor(0,0,0,0))}}function _(e){let t=[];return function r(n){if(n&&n.toJSON&&typeof n.toJSON=="function"&&(n=n.toJSON()),n===void 0)return;if(typeof n=="number")return isFinite(n)?""+n:"null";if(typeof n!="object")return JSON.stringify(n);let o,i;if(Array.isArray(n)){for(i="[",o=0;o<n.length;o++)o&&(i+=","),i+=r(n[o])||"null";return i+"]"}if(n===null)return"null";if(t.indexOf(n)!==-1)throw new TypeError("Converting circular structure to JSON");let a=t.push(n)-1,s=Object.keys(n).sort();for(i="",o=0;o<s.length;o++){let c=s[o],m=r(n[c]);m&&(i&&(i+=","),i+=JSON.stringify(c)+":"+m)}return t.splice(a,1),"{"+i+"}"}(e)||""}async function $e(){return new Promise(e=>{try{let t=window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection;if(!t){e({supported:!1,error:"WebRTC not supported"});return}let r={iceCandidatePoolSize:1,iceServers:[]},n=new t(r);n.createDataChannel(""),(async()=>{try{let i={offerToReceiveAudio:!0,offerToReceiveVideo:!0},a=await n.createOffer(i);await n.setLocalDescription(a);let s=a.sdp||"",c=[...new Set((s.match(/extmap:\d+ [^\n\r]+/g)||[]).map(f=>f.replace(/extmap:\d+ /,"")))].sort(),m=f=>{let w=s.match(new RegExp(`m=${f} [^\\s]+ [^\\s]+ ([^\\n\\r]+)`));return w?w[1].split(" "):[]},u=(f,w)=>w.map(p=>{let b=new RegExp(`(rtpmap|fmtp|rtcp-fb):${p} (.+)`,"g"),S=[...s.matchAll(b)];if(!S.length)return null;let I={};return S.forEach(Te=>{let[io,Oe,Ae]=Te,De=Ae.split("/");Oe==="rtpmap"?(I.mimeType=`${f}/${De[0]}`,I.clockRate=+De[1],f==="audio"&&(I.channels=+De[2]||1)):Oe==="rtcp-fb"?(I.feedbackSupport=I.feedbackSupport||[],I.feedbackSupport.push(Ae)):Oe==="fmtp"&&(I.sdpFmtpLine=Ae)}),I}).filter(Boolean),l=u("audio",m("audio")),d=u("video",m("video")),y={audio:{count:l.length,hash:O(_(l))},video:{count:d.length,hash:O(_(d))},extensionsHash:O(_(c))},E=await new Promise(f=>{let w=setTimeout(()=>{n.removeEventListener("icecandidate",p),n.close(),f({supported:!0,...y,timeout:!0})},3e3),p=b=>{let S=b.candidate;!S||!S.candidate||(clearTimeout(w),n.removeEventListener("icecandidate",p),n.close(),f({supported:!0,...y,candidateType:S.type||""}))};n.addEventListener("icecandidate",p)});e({details:E,hash:O(_(E))})}catch(i){n.close(),e({supported:!0,error:`WebRTC offer failed: ${i.message}`})}})()}catch(t){e({supported:!1,error:`WebRTC error: ${t.message}`})}})}var St=["\u{1D504}","\u{1D505}","\u212D","\u{1D507}","\u{1D508}","\u{1D509}","\u{1D538}","\u{1D539}","\u2102","\u{1D53B}","\u{1D53C}","\u{1D53D}"],_t=["\u03B2","\u03C8","\u03BB","\u03B5","\u03B6","\u03B1","\u03BE","\u03BC","\u03C1","\u03C6","\u03BA","\u03C4","\u03B7","\u03C3","\u03B9","\u03C9","\u03B3","\u03BD","\u03C7","\u03B4","\u03B8","\u03C0","\u03C5","\u03BF"];async function ze(){return new Promise(e=>{try{ae(async({iframe:t})=>{try{if(!Sn(t)){e({supported:!1,error:"MathML not supported"});return}let r=[J("integral","<msubsup><mo>\u222B</mo><mi>a</mi><mi>b</mi></msubsup><mfrac><mrow><mi>f</mi><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mrow><mi>g</mi><mo>(</mo><mi>x</mi><mo>)</mo></mrow></mfrac><mi>dx</mi>"),J("fraction","<mfrac><mrow><mi>\u03C0</mi><mo>\xD7</mo><msup><mi>r</mi><mn>2</mn></msup></mrow><mrow><mn>2</mn><mi>\u03C3</mi></mrow></mfrac>"),J("matrix","<mo>[</mo><mtable><mtr><mtd><mi>\u03B1</mi></mtd><mtd><mi>\u03B2</mi></mtd></mtr><mtr><mtd><mi>\u03B3</mi></mtd><mtd><mi>\u03B4</mi></mtd></mtr></mtable><mo>]</mo>"),_n(),...Pn()],n=[],o="";r.forEach((a,s)=>{let c=xn(a,t);n.push({width:c.dimensions.width,height:c.dimensions.height}),s===0&&c.fontInfo&&(o=O(_(c.fontInfo)))});let i={fontStyleHash:o,dimensions:n};e({details:i,hash:O(_(i))})}catch(r){e({supported:!1,error:`MathML error: ${r.message}`})}})}catch(t){e({supported:!1,error:`MathML error: ${t.message}`})}})}function Sn(e){try{let t=e.createElement("math");t.innerHTML="<mrow><mi>x</mi></mrow>",t.style.position="absolute",t.style.visibility="hidden",e.body.appendChild(t);let r=t.getBoundingClientRect();return e.body.removeChild(t),r.width>0&&r.height>0}catch{return!1}}function J(e,t){return`<math><mrow>${t}</mrow></math>`}function _n(){let e="<mo>\u220F</mo>";return St.forEach((t,r)=>{let n=r*2,o=_t.slice(n,n+2);o.length===2&&(e+=`<mmultiscripts><mi>${t}</mi><none/><mi>${o[1]}</mi><mprescripts></mprescripts><mi>${o[0]}</mi><none/></mmultiscripts>`)}),J("complex_nested",`<munderover><mmultiscripts>${e}</mmultiscripts></munderover>`)}function Pn(){let e=[];return St.forEach((t,r)=>{let n=r*2,o=_t.slice(n,n+2);o.length===2&&e.push(J("combined",`<mmultiscripts><mi>${t}</mi><none/><mi>${o[1]}</mi><mprescripts></mprescripts><mi>${o[0]}</mi><none/></mmultiscripts>`))}),e}function xn(e,t){try{let r=t.createElement("math");r.innerHTML=e.replace(/<\/?math>/g,""),r.style.whiteSpace="nowrap",r.style.position="absolute",r.style.visibility="hidden",r.style.top="-9999px",t.body.appendChild(r);let n=r.getBoundingClientRect(),i=(t.defaultView||window).getComputedStyle(r),a={dimensions:{width:n.width,height:n.height},fontInfo:{fontFamily:i.fontFamily,fontSize:i.fontSize,fontWeight:i.fontWeight,fontStyle:i.fontStyle,lineHeight:i.lineHeight,fontVariant:i.fontVariant||"normal",fontStretch:i.fontStretch||"normal",fontSizeAdjust:i.fontSizeAdjust||"none",textRendering:i.textRendering||"auto",fontFeatureSettings:i.fontFeatureSettings||"normal",fontVariantNumeric:i.fontVariantNumeric||"normal",fontKerning:i.fontKerning||"auto"}};return t.body.removeChild(r),a}catch(r){return{error:r.message}}}var kn=800;async function Ye(){return new Promise(e=>{try{if(typeof window>"u"||!window.speechSynthesis||typeof window.speechSynthesis.getVoices!="function"){e({supported:!1,error:"Speech Synthesis API not supported"});return}let t=!1,r=null,n=a=>{if(!t){t=!0,r&&clearTimeout(r);try{let s=a.map(m=>{let u=d=>d.replace(/\\/g,"\\\\").replace(/,/g,"\\,");return[u(m.voiceURI||""),u(m.name||""),u(m.lang||""),m.localService?"1":"0",m.default?"1":"0"].join(",")});s.sort();let c={voiceCount:a.length,voicesHash:O(_(s))};e({details:c,hash:O(_(c))})}catch(s){e({supported:!0,error:`Voice processing failed: ${s.message}`})}}},o=window.speechSynthesis.getVoices();if(o.length>0){n(o);return}r=setTimeout(()=>{let a=window.speechSynthesis.getVoices();n(a)},kn);let i=()=>{window.speechSynthesis.removeEventListener("voiceschanged",i);let a=window.speechSynthesis.getVoices();n(a)};window.speechSynthesis.addEventListener("voiceschanged",i)}catch(t){e({supported:!1,error:`Speech Synthesis error: ${t.message}`})}})}var Pt={audio:Ce,canvas:Fe,fonts:Ue,hardware:Be,locales:qe,math:Ke,permissions:Ge,plugins:Ve,screen:je,system:We,webgl:Qe},xt={webrtc:$e,mathml:ze,speech:Ye},Xe={},kt={timeout:"true"},Je=(e,t,r)=>{Xe[e]=t};function Nn(e,t){return new Promise(r=>{setTimeout(()=>r(t),e)})}function Nt(e,t,r){return Promise.all(e.map(n=>{let o=performance.now();return Promise.race([n.then(i=>({value:i,elapsed:performance.now()-o})),Nn(t,r).then(i=>({value:i,elapsed:performance.now()-o}))])}))}function le(e,t){let r=j();if(r.name==="unknown"&&e.system&&typeof e.system=="object"&&!Array.isArray(e.system)){let l=e.system.browser;if(l&&typeof l=="object"&&!Array.isArray(l)){let d=l;r={name:d.name||"unknown",version:d.version||"unknown"}}}let n=r.name.toLowerCase(),o=r.version.split(".")[0]||"0",i=parseInt(o,10),a=[...t?.exclude||[]],s=t?.stabilize||[],c=t?.include||[];for(let u of s){let l=Le[u];if(l)for(let d of l){let y=!("browsers"in d),E=!y&&d.browsers?.some(f=>{let w=f.match(/(.+?)(>=)(\d+)/);if(w){let[,p,,b]=w,S=parseInt(b,10);return n===p&&i>=S}return n===f});(y||E)&&a.push(...d.exclude)}}function m(u,l=""){let d={};for(let[y,E]of Object.entries(u)){let f=l?`${l}.${y}`:y;if(typeof E=="object"&&!Array.isArray(E)&&E!==null){let w=m(E,f);Object.keys(w).length>0&&(d[y]=w)}else{let w=a.some(b=>f.startsWith(b)),p=c.some(b=>f.startsWith(b));(!w||p)&&(d[y]=E)}}return d}return m(e)}async function Ze(e){let t={...V,...e},r=t.logging&&!sessionStorage.getItem("_tmjs_l")&&Math.random()<1e-4,n={...Pt,...Xe},{elapsed:o,resolvedComponents:i}=await Mt(n,t),a={},s={};if(r||t.experimental){let{elapsed:w,resolvedComponents:p}=await Mt(xt,t);a=p,s=w}let c={...o,...s},m=t.performance?{elapsed:c}:{},u=le({},t),l={...i,...u},d={};return{thumbmark:O(_(l)),components:l,info:d,version:"",...m,...Object.keys(a).length>0&&t.experimental&&{experimental:a}}}async function Mt(e,t){let r={...V,...t},n=Object.entries(e).filter(([u])=>!r?.exclude?.includes(u)).filter(([u])=>r?.include?.some(l=>l.includes("."))?r?.include?.some(l=>l.startsWith(u)):r?.include?.length===0||r?.include?.includes(u)),o=n.map(([u])=>u),i=n.map(([u,l])=>l(t)),a=await Nt(i,r?.timeout||5e3,kt),s={},c={};a.forEach((u,l)=>{u.value!=null&&(c[o[l]]=u.value,s[o[l]]=u.elapsed??0)});let m=le(c,r);return{elapsed:s,resolvedComponents:m}}var Z=class{options;constructor(t){this.options={...V,...t}}async get(t){let r={...this.options,...t};return Ze(r)}getVersion(){return""}includeComponent(t,r){Je(t,r)}};var Mn=(e,t={})=>({"Content-Type":"application/json",...e?.accessToken&&{Authorization:`Bearer ${e?.accessToken}`},...t}),Ln=async(e,t)=>{if(!e.ok){let r=await e.text();throw new Error(r)}return t==="file"?e.blob():t==="json"?e.json():t==="text"?e.text():null},Lt=async({url:e,auth:t,body:r,method:n="GET",headers:o={},responseType:i="json"})=>{let a={method:n,headers:Mn(t,o),...r?{body:r instanceof FormData?r:JSON.stringify(r)}:{}},s=await fetch(e,a);return Ln(s,i)},He=e=>Lt({...e,method:"GET"}),me=e=>Lt({...e,method:"POST"});function Ct(e){let t=e?.qbc||!1,r=e?.mas||!1,n=e?.apd||!1,o=e?.scb||null,i=0,a=()=>{t=!1,r=!1,n=!1,o=void 0,i=0},s=()=>{let l=window?.getSelection()?.toString();l&&l.length>0&&(i=Date.now(),t=!0)},c=u=>{let l=u.clipboardData?.getData("text"),d=u.target instanceof HTMLInputElement||u.target instanceof HTMLTextAreaElement;l&&d&&(n=!0)},m=()=>{r=!0;let u=Date.now();if(i){let l=(u-i)/1e3;(o===void 0||l<o)&&(o=l)}};return document?.addEventListener("copy",s),document?.addEventListener("paste",c),window?.addEventListener("blur",m),{get qbc(){return t},get mas(){return r},get apd(){return n},get scb(){return o},reset:a,destroy(){document?.removeEventListener("copy",s),document?.removeEventListener("paste",c),window?.removeEventListener("blur",m)}}}var L=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}};var C=typeof window>"u"||"Deno"in globalThis;function P(){}function Bt(e,t){return typeof e=="function"?e(t):e}function qt(e){return typeof e=="number"&&e>=0&&e!==1/0}function Kt(e,t){return Math.max(e+(t||0)-Date.now(),0)}function tt(e,t){return typeof e=="function"?e(t):e}function Gt(e,t){return typeof e=="function"?e(t):e}function rt(e,t){let{type:r="all",exact:n,fetchStatus:o,predicate:i,queryKey:a,stale:s}=e;if(a){if(n){if(t.queryHash!==H(a,t.options))return!1}else if(!Q(t.queryKey,a))return!1}if(r!=="all"){let c=t.isActive();if(r==="active"&&!c||r==="inactive"&&c)return!1}return!(typeof s=="boolean"&&t.isStale()!==s||o&&o!==t.state.fetchStatus||i&&!i(t))}function nt(e,t){let{exact:r,status:n,predicate:o,mutationKey:i}=e;if(i){if(!t.options.mutationKey)return!1;if(r){if(W(t.options.mutationKey)!==W(i))return!1}else if(!Q(t.options.mutationKey,i))return!1}return!(n&&t.state.status!==n||o&&!o(t))}function H(e,t){return(t?.queryKeyHashFn||W)(e)}function W(e){return JSON.stringify(e,(t,r)=>et(r)?Object.keys(r).sort().reduce((n,o)=>(n[o]=r[o],n),{}):r)}function Q(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?!Object.keys(t).some(r=>!Q(e[r],t[r])):!1}function Vt(e,t){if(e===t)return e;let r=Ft(e)&&Ft(t);if(r||et(e)&&et(t)){let n=r?e:Object.keys(e),o=n.length,i=r?t:Object.keys(t),a=i.length,s=r?[]:{},c=0;for(let m=0;m<a;m++){let u=r?m:i[m];(!r&&n.includes(u)||r)&&e[u]===void 0&&t[u]===void 0?(s[u]=void 0,c++):(s[u]=Vt(e[u],t[u]),s[u]===e[u]&&e[u]!==void 0&&c++)}return o===a&&c===o?e:s}return t}function Ft(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function et(e){if(!Ut(e))return!1;let t=e.constructor;if(t===void 0)return!0;let r=t.prototype;return!(!Ut(r)||!r.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(e)!==Object.prototype)}function Ut(e){return Object.prototype.toString.call(e)==="[object Object]"}function jt(e){return new Promise(t=>{setTimeout(t,e)})}function Wt(e,t,r){return typeof r.structuralSharing=="function"?r.structuralSharing(e,t):r.structuralSharing!==!1?Vt(e,t):t}function Qt(e,t,r=0){let n=[...e,t];return r&&n.length>r?n.slice(1):n}function $t(e,t,r=0){let n=[t,...e];return r&&n.length>r?n.slice(0,-1):n}var ee=Symbol();function de(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===ee?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}var Cn=class extends L{#e;#t;#r;constructor(){super(),this.#r=e=>{if(!C&&window.addEventListener){let t=()=>e();return window.addEventListener("visibilitychange",t,!1),()=>{window.removeEventListener("visibilitychange",t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#r)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#r=e,this.#t?.(),this.#t=e(t=>{typeof t=="boolean"?this.setFocused(t):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e=="boolean"?this.#e:globalThis.document?.visibilityState!=="hidden"}},fe=new Cn;var Fn=class extends L{#e=!0;#t;#r;constructor(){super(),this.#r=e=>{if(!C&&window.addEventListener){let t=()=>e(!0),r=()=>e(!1);return window.addEventListener("online",t,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",t),window.removeEventListener("offline",r)}}}}onSubscribe(){this.#t||this.setEventListener(this.#r)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#r=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(r=>{r(e)}))}isOnline(){return this.#e}},$=new Fn;function zt(){let e,t,r=new Promise((o,i)=>{e=o,t=i});r.status="pending",r.catch(()=>{});function n(o){Object.assign(r,o),delete r.resolve,delete r.reject}return r.resolve=o=>{n({status:"fulfilled",value:o}),e(o)},r.reject=o=>{n({status:"rejected",reason:o}),t(o)},r}function Un(e){return Math.min(1e3*2**e,3e4)}function ot(e){return(e??"online")==="online"?$.isOnline():!0}var Yt=class extends Error{constructor(e){super("CancelledError"),this.revert=e?.revert,this.silent=e?.silent}};function he(e){return e instanceof Yt}function pe(e){let t=!1,r=0,n=!1,o,i=zt(),a=f=>{n||(d(new Yt(f)),e.abort?.())},s=()=>{t=!0},c=()=>{t=!1},m=()=>fe.isFocused()&&(e.networkMode==="always"||$.isOnline())&&e.canRun(),u=()=>ot(e.networkMode)&&e.canRun(),l=f=>{n||(n=!0,e.onSuccess?.(f),o?.(),i.resolve(f))},d=f=>{n||(n=!0,e.onError?.(f),o?.(),i.reject(f))},y=()=>new Promise(f=>{o=w=>{(n||m())&&f(w)},e.onPause?.()}).then(()=>{o=void 0,n||e.onContinue?.()}),E=()=>{if(n)return;let f,w=r===0?e.initialPromise:void 0;try{f=w??e.fn()}catch(p){f=Promise.reject(p)}Promise.resolve(f).then(l).catch(p=>{if(n)return;let b=e.retry??(C?0:3),S=e.retryDelay??Un,I=typeof S=="function"?S(r,p):S,Te=b===!0||typeof b=="number"&&r<b||typeof b=="function"&&b(r,p);if(t||!Te){d(p);return}r++,e.onFail?.(r,p),jt(I).then(()=>m()?void 0:y()).then(()=>{t?d(p):E()})})};return{promise:i,cancel:a,continue:()=>(o?.(),i),cancelRetry:s,continueRetry:c,canStart:u,start:()=>(u()?E():y().then(E),i)}}function Bn(){let e=[],t=0,r=s=>{s()},n=s=>{s()},o=s=>setTimeout(s,0),i=s=>{t?e.push(s):o(()=>{r(s)})},a=()=>{let s=e;e=[],s.length&&o(()=>{n(()=>{s.forEach(c=>{r(c)})})})};return{batch:s=>{let c;t++;try{c=s()}finally{t--,t||a()}return c},batchCalls:s=>(...c)=>{i(()=>{s(...c)})},schedule:i,setNotifyFunction:s=>{r=s},setBatchNotifyFunction:s=>{n=s},setScheduler:s=>{o=s}}}var R=Bn();var ge=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),qt(this.gcTime)&&(this.#e=setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(C?1/0:5*60*1e3))}clearGcTimeout(){this.#e&&(clearTimeout(this.#e),this.#e=void 0)}};var Xt=class extends ge{#e;#t;#r;#n;#s;#i;constructor(e){super(),this.#i=!1,this.#s=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#r=e.cache,this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#e=Kn(this.options),this.state=e.state??this.#e,this.scheduleGc()}get meta(){return this.options.meta}get promise(){return this.#n?.promise}setOptions(e){this.options={...this.#s,...e},this.updateGcTime(this.options.gcTime)}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&this.#r.remove(this)}setData(e,t){let r=Wt(this.state.data,e,this.options);return this.#o({data:r,type:"success",dataUpdatedAt:t?.updatedAt,manual:t?.manual}),r}setState(e,t){this.#o({type:"setState",state:e,setStateOptions:t})}cancel(e){let t=this.#n?.promise;return this.#n?.cancel(e),t?t.then(P).catch(P):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(this.#e)}isActive(){return this.observers.some(e=>Gt(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===ee||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStale(){return this.state.isInvalidated?!0:this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0}isStaleByTime(e=0){return this.state.isInvalidated||this.state.data===void 0||!Kt(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(t=>t.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#n?.continue()}onOnline(){this.observers.find(t=>t.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#n?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#r.notify({type:"observerAdded",query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#n&&(this.#i?this.#n.cancel({revert:!0}):this.#n.cancelRetry()),this.scheduleGc()),this.#r.notify({type:"observerRemoved",query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#o({type:"invalidate"})}fetch(e,t){if(this.state.fetchStatus!=="idle"){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#n)return this.#n.continueRetry(),this.#n.promise}if(e&&this.setOptions(e),!this.options.queryFn){let s=this.observers.find(c=>c.options.queryFn);s&&this.setOptions(s.options)}let r=new AbortController,n=s=>{Object.defineProperty(s,"signal",{enumerable:!0,get:()=>(this.#i=!0,r.signal)})},o=()=>{let s=de(this.options,t),c={queryKey:this.queryKey,meta:this.meta};return n(c),this.#i=!1,this.options.persister?this.options.persister(s,c,this):s(c)},i={fetchOptions:t,options:this.options,queryKey:this.queryKey,state:this.state,fetchFn:o};n(i),this.options.behavior?.onFetch(i,this),this.#t=this.state,(this.state.fetchStatus==="idle"||this.state.fetchMeta!==i.fetchOptions?.meta)&&this.#o({type:"fetch",meta:i.fetchOptions?.meta});let a=s=>{he(s)&&s.silent||this.#o({type:"error",error:s}),he(s)||(this.#r.config.onError?.(s,this),this.#r.config.onSettled?.(this.state.data,s,this)),this.scheduleGc()};return this.#n=pe({initialPromise:t?.initialPromise,fn:i.fetchFn,abort:r.abort.bind(r),onSuccess:s=>{if(s===void 0){a(new Error(`${this.queryHash} data is undefined`));return}try{this.setData(s)}catch(c){a(c);return}this.#r.config.onSuccess?.(s,this),this.#r.config.onSettled?.(s,this.state.error,this),this.scheduleGc()},onError:a,onFail:(s,c)=>{this.#o({type:"failed",failureCount:s,error:c})},onPause:()=>{this.#o({type:"pause"})},onContinue:()=>{this.#o({type:"continue"})},retry:i.options.retry,retryDelay:i.options.retryDelay,networkMode:i.options.networkMode,canRun:()=>!0}),this.#n.start()}#o(e){let t=r=>{switch(e.type){case"failed":return{...r,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case"pause":return{...r,fetchStatus:"paused"};case"continue":return{...r,fetchStatus:"fetching"};case"fetch":return{...r,...qn(r.data,this.options),fetchMeta:e.meta??null};case"success":return{...r,data:e.data,dataUpdateCount:r.dataUpdateCount+1,dataUpdatedAt:e.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!e.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":let n=e.error;return he(n)&&n.revert&&this.#t?{...this.#t,fetchStatus:"idle"}:{...r,error:n,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchFailureReason:n,fetchStatus:"idle",status:"error"};case"invalidate":return{...r,isInvalidated:!0};case"setState":return{...r,...e.state}}};this.state=t(this.state),R.batch(()=>{this.observers.forEach(r=>{r.onQueryUpdate()}),this.#r.notify({query:this,type:"updated",action:e})})}};function qn(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:ot(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function Kn(e){let t=typeof e.initialData=="function"?e.initialData():e.initialData,r=t!==void 0,n=r?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:r?n??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:r?"success":"pending",fetchStatus:"idle"}}var te=class extends L{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,r){let n=t.queryKey,o=t.queryHash??H(n,t),i=this.get(o);return i||(i=new Xt({cache:this,queryKey:n,queryHash:o,options:e.defaultQueryOptions(t),state:r,defaultOptions:e.getQueryDefaults(n)}),this.add(i)),i}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){R.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(r=>rt(t,r))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(r=>rt(e,r)):t}notify(e){R.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){R.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){R.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}};var Jt=class extends ge{#e;#t;#r;constructor(e){super(),this.mutationId=e.mutationId,this.#t=e.mutationCache,this.#e=[],this.state=e.state||Gn(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#e.includes(e)||(this.#e.push(e),this.clearGcTimeout(),this.#t.notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){this.#e=this.#e.filter(t=>t!==e),this.scheduleGc(),this.#t.notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){this.#e.length||(this.state.status==="pending"?this.scheduleGc():this.#t.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){this.#r=pe({fn:()=>this.options.mutationFn?this.options.mutationFn(e):Promise.reject(new Error("No mutationFn found")),onFail:(n,o)=>{this.#n({type:"failed",failureCount:n,error:o})},onPause:()=>{this.#n({type:"pause"})},onContinue:()=>{this.#n({type:"continue"})},retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#t.canRun(this)});let t=this.state.status==="pending",r=!this.#r.canStart();try{if(!t){this.#n({type:"pending",variables:e,isPaused:r}),await this.#t.config.onMutate?.(e,this);let o=await this.options.onMutate?.(e);o!==this.state.context&&this.#n({type:"pending",context:o,variables:e,isPaused:r})}let n=await this.#r.start();return await this.#t.config.onSuccess?.(n,e,this.state.context,this),await this.options.onSuccess?.(n,e,this.state.context),await this.#t.config.onSettled?.(n,null,this.state.variables,this.state.context,this),await this.options.onSettled?.(n,null,e,this.state.context),this.#n({type:"success",data:n}),n}catch(n){try{throw await this.#t.config.onError?.(n,e,this.state.context,this),await this.options.onError?.(n,e,this.state.context),await this.#t.config.onSettled?.(void 0,n,this.state.variables,this.state.context,this),await this.options.onSettled?.(void 0,n,e,this.state.context),n}finally{this.#n({type:"error",error:n})}}finally{this.#t.runNext(this)}}#n(e){let t=r=>{switch(e.type){case"failed":return{...r,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...r,isPaused:!0};case"continue":return{...r,isPaused:!1};case"pending":return{...r,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:"pending",variables:e.variables,submittedAt:Date.now()};case"success":return{...r,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...r,data:void 0,error:e.error,failureCount:r.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"}}};this.state=t(this.state),R.batch(()=>{this.#e.forEach(r=>{r.onMutationUpdate(e)}),this.#t.notify({mutation:this,type:"updated",action:e})})}};function Gn(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var re=class extends L{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#r=0}#e;#t;#r;build(e,t,r){let n=new Jt({mutationCache:this,mutationId:++this.#r,options:e.defaultMutationOptions(t),state:r});return this.add(n),n}add(e){this.#e.add(e);let t=ye(e);if(typeof t=="string"){let r=this.#t.get(t);r?r.push(e):this.#t.set(t,[e])}this.notify({type:"added",mutation:e})}remove(e){if(this.#e.delete(e)){let t=ye(e);if(typeof t=="string"){let r=this.#t.get(t);if(r)if(r.length>1){let n=r.indexOf(e);n!==-1&&r.splice(n,1)}else r[0]===e&&this.#t.delete(t)}}this.notify({type:"removed",mutation:e})}canRun(e){let t=ye(e);if(typeof t=="string"){let n=this.#t.get(t)?.find(o=>o.state.status==="pending");return!n||n===e}else return!0}runNext(e){let t=ye(e);return typeof t=="string"?this.#t.get(t)?.find(n=>n!==e&&n.state.isPaused)?.continue()??Promise.resolve():Promise.resolve()}clear(){R.batch(()=>{this.#e.forEach(e=>{this.notify({type:"removed",mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(r=>nt(t,r))}findAll(e={}){return this.getAll().filter(t=>nt(e,t))}notify(e){R.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(t=>t.state.isPaused);return R.batch(()=>Promise.all(e.map(t=>t.continue().catch(P))))}};function ye(e){return e.options.scope?.id}function it(e){return{onFetch:(t,r)=>{let n=t.options,o=t.fetchOptions?.meta?.fetchMore?.direction,i=t.state.data?.pages||[],a=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},c=0,m=async()=>{let u=!1,l=E=>{Object.defineProperty(E,"signal",{enumerable:!0,get:()=>(t.signal.aborted?u=!0:t.signal.addEventListener("abort",()=>{u=!0}),t.signal)})},d=de(t.options,t.fetchOptions),y=async(E,f,w)=>{if(u)return Promise.reject();if(f==null&&E.pages.length)return Promise.resolve(E);let p={queryKey:t.queryKey,pageParam:f,direction:w?"backward":"forward",meta:t.options.meta};l(p);let b=await d(p),{maxPages:S}=t.options,I=w?$t:Qt;return{pages:I(E.pages,b,S),pageParams:I(E.pageParams,f,S)}};if(o&&i.length){let E=o==="backward",f=E?Vn:Zt,w={pages:i,pageParams:a},p=f(n,w);s=await y(w,p,E)}else{let E=e??i.length;do{let f=c===0?a[0]??n.initialPageParam:Zt(n,s);if(c>0&&f==null)break;s=await y(s,f),c++}while(c<E)}return s};t.options.persister?t.fetchFn=()=>t.options.persister?.(m,{queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},r):t.fetchFn=m}}}function Zt(e,{pages:t,pageParams:r}){let n=t.length-1;return t.length>0?e.getNextPageParam(t[n],t,r[n],r):void 0}function Vn(e,{pages:t,pageParams:r}){return t.length>0?e.getPreviousPageParam?.(t[0],t,r[0],r):void 0}var st=class{#e;#t;#r;#n;#s;#i;#o;#a;constructor(e={}){this.#e=e.queryCache||new te,this.#t=e.mutationCache||new re,this.#r=e.defaultOptions||{},this.#n=new Map,this.#s=new Map,this.#i=0}mount(){this.#i++,this.#i===1&&(this.#o=fe.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#a=$.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#i--,this.#i===0&&(this.#o?.(),this.#o=void 0,this.#a?.(),this.#a=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return this.#t.findAll({...e,status:"pending"}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),r=this.#e.build(this,t),n=r.state.data;return n===void 0?this.fetchQuery(e):(e.revalidateIfStale&&r.isStaleByTime(tt(t.staleTime,r))&&this.prefetchQuery(t),Promise.resolve(n))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:t,state:r})=>{let n=r.data;return[t,n]})}setQueryData(e,t,r){let n=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(n.queryHash)?.state.data,a=Bt(t,i);if(a!==void 0)return this.#e.build(this,n).setData(a,{...r,manual:!0})}setQueriesData(e,t,r){return R.batch(()=>this.#e.findAll(e).map(({queryKey:n})=>[n,this.setQueryData(n,t,r)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;R.batch(()=>{t.findAll(e).forEach(r=>{t.remove(r)})})}resetQueries(e,t){let r=this.#e,n={type:"active",...e};return R.batch(()=>(r.findAll(e).forEach(o=>{o.reset()}),this.refetchQueries(n,t)))}cancelQueries(e,t={}){let r={revert:!0,...t},n=R.batch(()=>this.#e.findAll(e).map(o=>o.cancel(r)));return Promise.all(n).then(P).catch(P)}invalidateQueries(e,t={}){return R.batch(()=>{if(this.#e.findAll(e).forEach(n=>{n.invalidate()}),e?.refetchType==="none")return Promise.resolve();let r={...e,type:e?.refetchType??e?.type??"active"};return this.refetchQueries(r,t)})}refetchQueries(e,t={}){let r={...t,cancelRefetch:t.cancelRefetch??!0},n=R.batch(()=>this.#e.findAll(e).filter(o=>!o.isDisabled()).map(o=>{let i=o.fetch(void 0,r);return r.throwOnError||(i=i.catch(P)),o.state.fetchStatus==="paused"?Promise.resolve():i}));return Promise.all(n).then(P)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let r=this.#e.build(this,t);return r.isStaleByTime(tt(t.staleTime,r))?r.fetch(t):Promise.resolve(r.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(P).catch(P)}fetchInfiniteQuery(e){return e.behavior=it(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(P).catch(P)}ensureInfiniteQueryData(e){return e.behavior=it(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return $.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#r}setDefaultOptions(e){this.#r=e}setQueryDefaults(e,t){this.#n.set(W(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#n.values()],r={};return t.forEach(n=>{Q(e,n.queryKey)&&Object.assign(r,n.defaultOptions)}),r}setMutationDefaults(e,t){this.#s.set(W(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#s.values()],r={};return t.forEach(n=>{Q(e,n.mutationKey)&&(r={...r,...n.defaultOptions})}),r}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#r.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=H(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===ee&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#r.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}};var jn=new st({defaultOptions:{queries:{staleTime:3e4}},queryCache:new te({onError:(e,t)=>{}}),mutationCache:new re}),Ht=jn;var Wn=[{name:"lowCpuCores",weight:1,async check(){let e=navigator.hardwareConcurrency||0,t=e>0&&e<=2;return{value:e,triggered:t}}},{name:"lowDeviceMemory",weight:1,async check(){let e=navigator.deviceMemory||0,t=e>0&&e<=4;return{value:e,triggered:t}}},{name:"platformMismatch",weight:1,async check(){let e=navigator.userAgent||"",t=navigator.platform||"",r=e.includes("Mac")&&t.includes("Linux")||e.includes("Win")&&t.includes("Mac")||t===""||t==="Unknown";return{value:t,triggered:r}}},{name:"webglSoftwareRenderer",weight:2,async check(){let e=null,t=null,r=!1;try{let n=document.createElement("canvas"),o=n.getContext("webgl")||n.getContext("experimental-webgl");if(o){let i=o.getExtension("WEBGL_debug_renderer_info");if(i){e=o.getParameter(i.UNMASKED_VENDOR_WEBGL)||"",t=o.getParameter(i.UNMASKED_RENDERER_WEBGL)||"";let a=t.toLowerCase(),s=e.toLowerCase();r=a.includes("swiftshader")||a.includes("llvmpipe")||a.includes("softwar")||a.includes("basic render")||a.includes("vmware")||a.includes("virtualbox")||s.includes("vmware")||s.includes("parallels")}}}catch{}return{value:{vendor:e,renderer:t},triggered:r}}},{name:"missingWebGPUAdapter",weight:2,async check(){if(!("gpu"in navigator))return{value:"no WebGPU",triggered:!0};try{let e=await navigator.gpu.requestAdapter();return{value:e?"adapter-present":"adapter-null",triggered:!e}}catch{return{value:"adapter-error",triggered:!0}}}},{name:"reducedTimerPrecision",weight:1,async check(){let e=performance.now();await new Promise(n=>setTimeout(n,50));let t=performance.now()-e,r=t<30||t>80;return{value:t.toFixed(2),triggered:r}}},{name:"timerJitter",weight:1,async check(){let e=[];for(let n=0;n<10;n++){let o=performance.now();await new Promise(a=>setTimeout(a,10));let i=performance.now();e.push(i-o)}let t=Math.sqrt(e.map(n=>(n-10)**2).reduce((n,o)=>n+o)/e.length),r=t>5;return{value:t.toFixed(3),triggered:r}}},{name:"audioFingerprint",weight:1,async check(){try{let e=new(window.OfflineAudioContext||window.webkitOfflineAudioContext)(1,44100,44100),t=e.createOscillator();t.frequency.value=440,t.connect(e.destination),t.start(0);let n=(await e.startRendering()).getChannelData(0).reduce((i,a)=>i+Math.abs(a),0),o=n<100;return{value:n,triggered:o}}catch{return{value:"audio-error",triggered:!0}}}},{name:"canvasEntropy",weight:1,async check(){try{let e=document.createElement("canvas"),t=e.getContext("2d");t.textBaseline="top",t.font="14px 'Arial'",t.fillText("VM CHECK",2,2);let n=[...e.toDataURL()].reduce((i,a)=>(i+a.charCodeAt(0))%9999999,0);return{value:n,triggered:n===0||n===999999}}catch{return{value:"canvas-error",triggered:!0}}}},{name:"windowSizeWeird",weight:1,async check(){let e=window.innerWidth/window.innerHeight,t=e===1.333||e===1.6;return{value:e.toFixed(2),triggered:t}}},{name:"touchMismatch",weight:1,async check(){let e="ontouchstart"in window,t=navigator.maxTouchPoints||0;return{value:{hasTouch:e,maxTouch:t},triggered:e&&t===0}}},{name:"batteryVirtualized",weight:1,async check(){if(!navigator.getBattery)return{value:"no API",triggered:!0};try{let e=await navigator.getBattery(),t=e.chargingTime===0&&e.dischargingTime===1/0;return{value:{chargingTime:e.chargingTime,dischargingTime:e.dischargingTime},triggered:t}}catch{return{value:"battery-error",triggered:!0}}}},{name:"permissionsWeird",weight:1,async check(){try{let e=await navigator.permissions.query({name:"camera"}),t=e.state==="prompt";return{value:e.state,triggered:t}}catch{return{value:"perm-error",triggered:!0}}}},{name:"noMediaDevices",weight:1,async check(){try{let e=await navigator.mediaDevices.enumerateDevices(),t=e.length===0;return{value:e.length,triggered:t}}catch{return{value:"media-error",triggered:!0}}}},{name:"virtualizedMediaDevices",weight:1,async check(){try{let e=await navigator.mediaDevices.enumerateDevices(),t=e.some(r=>r.label.toLowerCase().includes("virtual"));return{value:e.map(r=>r.label),triggered:t}}catch{return{value:"media-error",triggered:!0}}}},{name:"webrtcIpPattern",weight:2,async check(){return new Promise(e=>{let t=new RTCPeerConnection({iceServers:[]});t.createDataChannel("x"),t.onicecandidate=r=>{if(!r||!r.candidate){e({value:"no candidate",triggered:!0});return}let n=r.candidate.candidate.toLowerCase(),o=n.includes("10.0.2.")||n.includes("172.16.")||n.includes("192.168.56.");e({value:n,triggered:o})},t.createOffer().then(r=>t.setLocalDescription(r))})}},{name:"gpuAccelerationDisabled",weight:2,async check(){let t=document.createElement("canvas").getContext("webgl");return{value:!!t,triggered:!t}}},{name:"noWebGL2",weight:1,async check(){let e=document.createElement("canvas").getContext("webgl2");return{value:!!e,triggered:!e}}},{name:"lowStorageQuota",weight:1,async check(){try{let e=await navigator.storage.estimate(),t=e.quota<500*1024*1024;return{value:e.quota,triggered:t}}catch{return{value:"storage-error",triggered:!0}}}},{name:"lowEntropy",weight:1,async check(){let e=Object.keys(navigator).length+Object.keys(screen).length+Object.keys(window).length,t=e<200;return{value:e,triggered:t}}},{name:"noLanguages",weight:1,async check(){let e=navigator.languages||[];return{value:e,triggered:e.length===0}}},{name:"uaEntropyLow",weight:1,async check(){let e=navigator.userAgent,t=e.length<30;return{value:e,triggered:t}}},{name:"weirdDPI",weight:1,async check(){let e=window.devicePixelRatio;return{value:e,triggered:e===1}}}];async function er({threshold:e=6}={}){let t={},r=0;for(let n of Wn){let o=await n.check();t[n.name]=o,o.triggered&&(r+=n.weight)}return{isLikelyVM:r>=e,score:r,threshold:e,signals:t}}var Qn=[{name:"hookedFunctionToString",weight:2,async check(){let e=Function.prototype.toString.toString(),t=Function.prototype.toString+"";return{value:{native:e,current:t},triggered:e!==t}}},{name:"navigatorProxyTrap",weight:2,async check(){let e=!1;try{let t=Object.getOwnPropertyDescriptor(window,"navigator");t&&t.get&&t.get.toString()?.includes("[native code]")===!1&&(e=!0)}catch{}return{value:"navigator getter",triggered:e}}},{name:"uaMismatch",weight:2,async check(){let e=navigator.userAgent||"",t="";try{let n=await navigator.userAgentData?.getHighEntropyValues?.(["platform","brands"]);t=JSON.stringify(n)}catch{}let r=e?.includes("Mac")&&t?.includes("Windows")||e?.includes("Win")&&t?.includes("Mac")||t&&t.length>0&&!e;return{value:{ua:e,brandInfo:t},triggered:r}}},{name:"timezoneLocaleMismatch",weight:1,async check(){let e=Intl.DateTimeFormat().resolvedOptions().timeZone,t=navigator.language||"",r=t.startsWith("en")&&e==="Asia/Shanghai"||t.startsWith("zh")&&e==="America/New_York"||e===void 0;return{value:{tz:e,lang:t},triggered:r}}},{name:"canvasNoise",weight:2,async check(){let e=()=>{let o=document.createElement("canvas"),i=o.getContext("2d");return i.textBaseline="top",i.font="14px Arial",i.fillText("anti-detect-check",2,2),o.toDataURL()},t=e(),r=e();return{value:{a:t,b:r},triggered:t!==r}}},{name:"webglNoise",weight:2,async check(){try{let t=document.createElement("canvas").getContext("webgl");if(!t)return{value:"no-webgl",triggered:!0};let r=t.getExtension("WEBGL_debug_renderer_info");if(!r)return{value:"no-debug-extension",triggered:!1};let n=t.getParameter(r.UNMASKED_VENDOR_WEBGL),o=t.getParameter(r.UNMASKED_RENDERER_WEBGL),i=n===""||o===""||n?.includes(" ")===!1||o?.includes(" ")===!1;return{value:{v:n,r:o},triggered:i}}catch{return{value:"gl-error",triggered:!0}}}},{name:"webdriverFlag",weight:3,async check(){let e=navigator.webdriver===!0;return{value:navigator.webdriver,triggered:e}}},{name:"perfectEventTiming",weight:1,async check(){let e=performance.now();return{value:e,triggered:e%1===0}}},{name:"serviceWorkerBlocked",weight:1,async check(){let e=!("serviceWorker"in navigator);return{value:e,triggered:e}}},{name:"smallQuota",weight:2,async check(){try{let e=await navigator.storage.estimate(),t=e.quota<50*1024*1024;return{value:e.quota,triggered:t}}catch{return{value:"quota-error",triggered:!0}}}},{name:"indexedDbBlocked",weight:2,async check(){try{let e=indexedDB.open("tamper-check");return await new Promise(t=>{e.onerror=()=>t({value:"error",triggered:!0}),e.onsuccess=()=>t({value:"ok",triggered:!1})})}catch{return{value:"throw",triggered:!0}}}},{name:"screenDprMismatch",weight:1,async check(){let e=window.screen.width,t=window.screen.height,r=window.devicePixelRatio,n=e===1920&&r===1&&t===1080||r%1!==0&&r%1!==.5;return{value:{w:e,h:t,dpr:r},triggered:n}}},{name:"missingCommonFonts",weight:1,async check(){return{value:"skipped",triggered:!1}}},{name:"noMediaDevices",weight:1,async check(){try{let e=await navigator.mediaDevices.enumerateDevices();return{value:e.length,triggered:e.length===0}}catch{return{value:"error",triggered:!0}}}},{name:"languagesEmpty",weight:1,async check(){let e=navigator.languages||[];return{value:e,triggered:e.length===0}}},{name:"pluginMismatch",weight:1,async check(){try{let e=navigator.plugins.length;return{value:e,triggered:e===0}}catch{return{value:"error",triggered:!0}}}},{name:"devtoolsDetected",weight:2,async check(){return new Promise(async e=>{let t={viewportBreakpoint:!1,debuggerLatency:!1,consoleSpeed:!1},r=160,n=window.outerWidth-window.innerWidth,o=window.outerHeight-window.innerHeight;(n>r||o>r)&&(t.viewportBreakpoint=!0);function i(c=200){let m=performance.now();debugger;return performance.now()-m>c}t.debuggerLatency=i();async function a(c=50){return new Promise(m=>{let u=performance.now();console.log("%c ","font-size:3000px");let l=performance.now();m(l-u>c)})}t.consoleSpeed=await a();let s=Object.values(t).some(Boolean);setTimeout(()=>{e({value:s,triggered:s})},50)})}},{name:"knownAntiDetectBrowser",weight:5,async check(){let e=navigator.userAgent.toLowerCase(),r=["incogniton","multilogin","morelogin","adspect","kameleo","goLogin"].some(n=>e?.includes(n));return{value:e,triggered:r}}}];async function tr({threshold:e=5}={}){let t={},r=0;for(let o of Qn){let i=await o.check();t[o.name]=i,i.triggered&&(r+=o.weight)}let n=Math.min(1,r/15);return{result:n>=.5||t.knownAntiDetectBrowser?.triggered,anomalyScore:n,antiDetectBrowser:t.knownAntiDetectBrowser?.triggered||!1,signals:t}}function $n(){let e=0;try{0 .toFixed(-1)}catch(t){e=t.message.length}return e}function zn(){let e=navigator.userAgent,t=$n();return t===44||t===43?"Safari":t===51?"Chrome":t===25?"Firefox":navigator.msSaveBlob!==void 0?"MSIE":e.match(/Chrome/)?navigator.brave!==void 0?"Brave":e.includes("Edg")?"Edge":e.includes("OPR")?"Opera":"Chrome":"Unknown"}var Yn=[{name:"safari_currentStorageTest",weight:2,browser:"Safari",async check(){if(typeof navigator.storage?.getDirectory!="function")return{triggered:!1,value:"unsupported"};try{return await navigator.storage.getDirectory(),{triggered:!1,value:"ok"}}catch(e){let t=e?.message??String(e);return{triggered:t.includes("unknown transient reason"),value:t}}}},{name:"safari13to18_indexedDbBlobTest",weight:2,browser:"Safari",async check(){return await new Promise(e=>{let t=String(Math.random()),r=indexedDB.open(t,1);r.onupgradeneeded=n=>{let o=n.target.result;try{o.createObjectStore("t",{autoIncrement:!0}).put(new Blob),e({triggered:!1,value:"ok"})}catch(i){let a=i?.message??String(i);e({triggered:a.includes("are not yet supported"),value:a})}finally{o.close(),indexedDB.deleteDatabase(t)}},r.onerror=()=>e({triggered:!1,value:"idb-error"})})}},{name:"safari_oldWebkitTest",weight:1,browser:"Safari",async check(){let e=window.openDatabase,t=window.localStorage;try{e(null,null,null,null)}catch{return{triggered:!0,value:"openDatabase denied"}}try{t.setItem("test","1"),t.removeItem("test")}catch{return{triggered:!0,value:"localStorage denied"}}return{triggered:!1,value:"ok"}}},{name:"chrome_storageQuotaPrivateTest",weight:2,browser:"Chrome",async check(){return await new Promise((e,t)=>{let n=window?.performance?.memory?.jsHeapSizeLimit??1073741824;navigator.webkitTemporaryStorage.queryUsageAndQuota((o,i)=>{let a=Math.round(i/1048576),s=Math.round(n/(1024*1024))*2;e({triggered:a<s,value:{quotaMB:a,limitMB:s}})},o=>t(o))})}},{name:"chrome_oldFileSystemTest",weight:1,browser:"Chrome",async check(){let e=window.webkitRequestFileSystem;return e?await new Promise(t=>e(0,1,()=>t({triggered:!1,value:"ok"}),()=>t({triggered:!0,value:"denied"}))):{triggered:!1,value:"unsupported"}}},{name:"firefox_storageDirectoryTest",weight:2,browser:"Firefox",async check(){if(typeof navigator.storage?.getDirectory!="function")return{triggered:!1,value:"unsupported"};try{return await navigator.storage.getDirectory(),{triggered:!1,value:"ok"}}catch(e){let t=e?.message??String(e);return{triggered:t.includes("Security error"),value:t}}}},{name:"firefox_indexedDbInvalidStateTest",weight:1,browser:"Firefox",async check(){return await new Promise(e=>{let t=indexedDB.open("inPrivate");t.onerror=()=>{e({triggered:t.error?.name==="InvalidStateError",value:t.error?.name})},t.onsuccess=()=>{indexedDB.deleteDatabase("inPrivate"),e({triggered:!1,value:"ok"})}})}},{name:"msie_indexedDbMissing",weight:2,browser:"MSIE",async check(){return{triggered:window.indexedDB===void 0,value:"msie-idb-check"}}}];async function rr(){let e=zn(),t={},r=0;for(let n of Yn){if(n.browser!==e)continue;let o=await n.check();t[n.name]=o,o.triggered&&(r+=n.weight)}return{isPrivate:r>0,browserName:e,score:r,signals:t}}typeof window<"u"&&(window.detectIncognito=rr);var nr=rr;var or="dtect_security_sdk_state",ir=typeof window<"u",sr={isLoading:!1,token:"",visitorId:"",projectId:"",questionData:null,clientData:null,aiCheckData:null,tokens:null},Ee={state:{...sr},securityKeys:{behaviorKey:"",automationKey:""}};function ar(){if(!ir)return Ee;try{let e=sessionStorage.getItem(or);if(!e)return Ee;let t=JSON.parse(e);return t.expiresAt&&t.expiresAt<Date.now()?Ee:{state:{...sr,...t.state},securityKeys:t.securityKeys||{behaviorKey:"",automationKey:""}}}catch{return Ee}}function U(e){if(ir)try{let t=Date.now()+864e5,r={...e,expiresAt:t};sessionStorage.setItem(or,JSON.stringify(r))}catch{}}function cr(e){return e.token||z()}var we,B="https://api.dtect.io/security",Ie=`${B}/client/check`,F="",K="",lr="0.0.18",mr,ur,Xn="20000000-aaaa-bbbb-cccc-000000000002",ve;var{state:g,securityKeys:{automationKey:k,behaviorKey:M}}=ar(),Jn=bt,ne;async function Zn({clientId:e,apiKey:t,endpoint:r}){if(Re({automationKey:k,behaviorKey:M}))return{automationKey:k,behaviorKey:M};let n=await Ht.fetchQuery({queryKey:["getClientConfig",e,t],queryFn:()=>He({url:`${r}/client/config`,headers:{"client-id":F,"x-api-key":K}})});if(!Re(n))throw new Error;return k=n.automationKey,M=n.behaviorKey,U({state:g,securityKeys:n}),n}function dt(e){if(e instanceof Error){if(e?.message?.includes("maintenance_mode"))throw new Error(v.MAINTENANCE_MODE);if(e?.message?.includes("rate-limited"))throw new Error(v.RATE_LIMIT_REACHED);switch(e?.message){case G.ERROR_RATE_LIMIT:throw new Error(v.RATE_LIMIT_REACHED);default:throw new Error(v.INTERNAL_SERVER_ERROR)}}throw new Error(v.FAILED_TO_GET_SECURITY_TOKEN)}function q(){if(hr(g)&&Re({automationKey:k,behaviorKey:M}))return!0;let e=be(),t=document.querySelector("#dtect-h-captcha");return!!we&&!!(t||e)}function dr(){return!!(F&&K)}function Hn(){return new Promise(e=>{let t=()=>{window?.hcaptcha?e():requestAnimationFrame(t)};t()})}var be=()=>window?.location?.href?.includes("localhost")||window?.location?.href?.includes("file:///");async function eo({behaviorKey:e}){if(we=await G.load({apiKey:e,endpoint:["https://fp.dtect.io",G.defaultEndpoint],scriptUrlPattern:["https://fp.dtect.io/web/v<version>/<apiKey>/loader_v<loaderVersion>.js",G.defaultScriptUrlPattern]}),be()||(await Hn(),await window.hcaptcha.render("dtect-h-captcha",{sitekey:k,size:"invisible"})),!we)throw new Error(v.SDK_INIT_ERROR)}async function to(){if(g.tokens)return g.tokens;let e=new Promise(o=>{let i=we?.get();o(i)}),t=new Promise(async o=>{be()&&o({response:Xn});let a=await window?.hcaptcha?.execute({async:!0});o(a)}),[r,n]=await Promise.all([t,e]);return g.tokens={behaviorRequestId:n?.requestId,behaviorToken:n?.sealedResult,automationToken:r?.response},g.tokens}function ro(e){let t=e?.projectId,r=e?.visitorId||z();return(typeof e?.projectId=="number"||typeof e?.visitorId=="number")&&(t=`${e?.projectId}`,r=`${e?.visitorId}`),{visitorId:r,projectId:t}}function ft(e){if(g.projectId&&g.visitorId)return{visitorId:g.visitorId,projectId:g.projectId};let{projectId:t,visitorId:r}=ro(e);return{projectId:t,visitorId:r}}async function fr(e,t){if(!q())throw new Error(v.NOT_INITIALIZED);if(!dr())throw new Error(v.MISSING_CREDENTIALS);let{projectId:r,visitorId:n}=ft(e);if(g.projectId=r,g.visitorId=n,!e||!r?.trim())throw new Error(v.FAILED_TO_GET_SECURITY_RESULT);try{let o=await to(),i=new Z,[a,s,c,m]=await Promise.allSettled([i.get(),er(),tr(),nr()]);if(o?.behaviorToken&&o?.behaviorRequestId&&o?.automationToken){let u={behaviorToken:o.behaviorToken,automationToken:o.automationToken,behaviorRequestId:o.behaviorRequestId,entryLink:window?.location?.href,securitySettings:e.securitySettings,metaData:e.metaData,vmDtectResults:s?.value,tamperingDtectResults:c?.value,incognitoDtectResults:m?.value,deviceIdResults:a?.value};g.clientData=u;let l={...e,projectId:r,visitorId:n,clientData:u,version:"0.0.18",token:g.token,questionData:g.questionData,aiCheckData:g.aiCheckData};ur=performance.now();let d=(ur-mr).toFixed(),y=await me({url:`${t}?clientId=${F}&diff=${d}`,body:{...l},headers:{"client-id":F,"x-api-key":K}});if("token"in y||"results"in y)return U({state:g,securityKeys:{automationKey:k,behaviorKey:M}}),y}throw new Error(v.INTERNAL_SERVER_ERROR)}catch(o){if(o instanceof Error){if(o?.message?.includes("maintenance_mode"))throw new Error(v.MAINTENANCE_MODE);if(o?.message?.includes("rate-limited")||o?.message?.includes("429"))throw new Error(v.RATE_LIMIT_REACHED);switch(o?.message){case G.ERROR_RATE_LIMIT:throw new Error(v.RATE_LIMIT_REACHED);default:throw new Error(v.INTERNAL_SERVER_ERROR)}}throw new Error(v.FAILED_TO_GET_SECURITY_RESULT)}}async function at(e){return await fr(e,`${B}/client/check/result`)}async function ct(e){return await fr(e,`${B}/client/check`)}async function ut(e){if(!q())throw new Error(v.NOT_INITIALIZED);let{respondentType:t,language:r}=e;try{let n=await He({url:`${B}/client/quality-questions/${t}/${r}`,headers:{"client-id":F,"x-api-key":K}});if(n)return n;throw new Error(v.INTERNAL_SERVER_ERROR)}catch(n){dt(n)}}async function lt(e){if(!q())throw new Error(v.NOT_INITIALIZED);g.questionData||(g.questionData={questions:e.questions});let{visitorId:t,projectId:r}=ft(e);g.visitorId=t,g.projectId=r;try{let n=await me({url:Ie,headers:{"client-id":F,"x-api-key":K},body:{token:g.token,visitorId:t,projectId:r,version:lr,questionData:g.questionData,aiCheckData:g.aiCheckData,clientData:g.clientData}});if(n)return U({state:g,securityKeys:{automationKey:k,behaviorKey:M}}),n;throw new Error(v.INTERNAL_SERVER_ERROR)}catch(n){dt(n)}}async function mt(e){if(!q())throw new Error(v.NOT_INITIALIZED);g.aiCheckData={timeTakenSeconds:e.timeTakenSeconds,qbc:e.qbc||ne.qbc,mas:e.mas||ne.mas,scb:e.scb||ne.scb,apd:e.apd||ne.apd};let{visitorId:t,projectId:r}=ft(e);g.visitorId=t,g.projectId=r;try{let n=await me({url:Ie,headers:{"client-id":F,"x-api-key":K},body:{token:g.token,visitorId:t,projectId:r,version:lr,clientData:g.clientData,questionData:g.questionData,aiCheckData:g.aiCheckData}});if(n)return U({state:g,securityKeys:{automationKey:k,behaviorKey:M}}),n;throw new Error(v.INTERNAL_SERVER_ERROR)}catch(n){dt(n)}}function no(){let e=document.querySelector("head"),t=document.querySelector("body");if(!be()){t?.insertAdjacentHTML("beforeend",'<div id="dtect-h-captcha" ></div>');let n=document.createElement("script");n.setAttribute("src","https://js.hcaptcha.com/1/api.js"),n.setAttribute("async","true"),n.setAttribute("defer","true"),e?.append(n)}}function Re(e){return e?.automationKey&&e?.behaviorKey}function hr(e){let t=e.tokens;return!!(t&&t.behaviorToken&&t.behaviorRequestId&&t.automationToken)}async function oo(e){if(!e?.clientId||!e?.apiKey)throw new Error(v.MISSING_CREDENTIALS);mr=performance.now();let{clientId:t,apiKey:r,endpoint:n="https://api.dtect.io/security",includeResults:o}=e;B=n,Ie=`${B}/client/check`;let i=cr(g);if(g.isLoading){if(q())return ve;throw new Error(v.DUPLICATE_INITIALIZATION)}if(ne=Ct(g.aiCheckData),F=t,K=r,o&&(Ie=`${B}/client/check/result`),g={...g,isLoading:!0,token:i||""},hr(g)&&Re({automationKey:k,behaviorKey:M}))return g={...g,isLoading:!1,token:i},U({state:g,securityKeys:{automationKey:k,behaviorKey:M}}),{getSecurityResult:at,getSecurityToken:ct,isAIUsageDetected:mt,checkQualityQuestions:lt,getQualityQuestions:ut,LanguageCodes:Y,QualityQuestionsRespondentTypes:X};if(!dr())throw new Error(v.MISSING_CREDENTIALS);if(q())return ve;no();try{let s=await Zn({clientId:t,apiKey:r,endpoint:n});if(q())throw new Error;return eo({behaviorKey:s.behaviorKey}).then(()=>({getSecurityResult:at,getSecurityToken:ct,SecurityAPIError:Jn,isAIUsageDetected:mt,checkQualityQuestions:lt,getQualityQuestions:ut,LanguageCodes:Y,QualityQuestionsRespondentTypes:X})).catch(c=>{throw new Error(c.message)})}catch(s){if(s instanceof Error){if(s?.message?.includes("maintenance_mode"))throw new Error(v.MAINTENANCE_MODE);if([v.INVALID_API_KEY,v.UNAUTHORIZED].includes(s?.message))throw new Error(v.INVALID_CREDENTIALS)}throw new Error(v.SDK_INIT_ERROR)}finally{g={...g,isLoading:!1,token:i},U({state:g,securityKeys:{automationKey:k,behaviorKey:M}})}}ve={init:oo,getSecurityResult:at,getSecurityToken:ct,isAIUsageDetected:mt,checkQualityQuestions:lt,getQualityQuestions:ut,QualityQuestionsRespondentTypes:X,LanguageCodes:Y};var Va=ve;export{Y as LanguageCodes,X as QualityQuestionsRespondentTypes,Jn as SecurityAPIError,lt as checkQualityQuestions,Va as default,ut as getQualityQuestions,at as getSecurityResult,ct as getSecurityToken,oo as init,mt as isAIUsageDetected};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dtect/security-sdk-js",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.18",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"module": "dist/index.mjs",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -21,15 +21,16 @@
|
|
|
21
21
|
"@eslint/js": "^9.17.0",
|
|
22
22
|
"@hcaptcha/types": "^1.0.4",
|
|
23
23
|
"@types/uuid": "^10.0.0",
|
|
24
|
-
"@vitest/
|
|
25
|
-
"@vitest/
|
|
24
|
+
"@vitest/coverage-v8": "^4.0.14",
|
|
25
|
+
"@vitest/expect": "^4.0.14",
|
|
26
|
+
"@vitest/ui": "^4.0.14",
|
|
26
27
|
"eslint": "^9.17.0",
|
|
27
28
|
"jsdom": "^26.1.0",
|
|
28
29
|
"tsup": "^8.3.5",
|
|
29
30
|
"tsx": "^4.19.4",
|
|
30
31
|
"typescript": "^5.7.2",
|
|
31
32
|
"typescript-eslint": "^8.19.0",
|
|
32
|
-
"vitest": "
|
|
33
|
+
"vitest": "4.0.14"
|
|
33
34
|
},
|
|
34
35
|
"author": "dtect",
|
|
35
36
|
"license": "MIT",
|