@camera.ui/browser 0.0.80 → 0.0.81
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle.js +1 -1
- package/dist/types/packages/client/browser/src/proxy/cameraDevice.d.ts +3 -1
- package/dist/types/server/src/api/index.d.ts +0 -1
- package/dist/types/server/src/api/routes/index.d.ts +1 -1
- package/dist/types/server/src/api/schemas/config.schema.d.ts +0 -3
- package/dist/types/server/src/api/services/cameras.service.d.ts +0 -2
- package/dist/types/server/src/api/types/index.d.ts +0 -6
- package/dist/types/server/src/camera/controller.d.ts +3 -2
- package/dist/types/server/src/camera/index.d.ts +3 -2
- package/dist/types/server/src/camera/interfaces/camera.d.ts +4 -13
- package/dist/types/server/src/camera/interfaces/prebuffer.d.ts +3 -3
- package/dist/types/server/src/camera/types.d.ts +2 -7
- package/dist/types/server/src/nats/proxy/cameraDevice.d.ts +8 -41
- package/dist/types/server/src/nats/types.d.ts +11 -50
- package/dist/types/server/src/polyglot/node/plugins/proxy/cameraDevice.d.ts +3 -2
- package/dist/types/server/src/services/config/types.d.ts +0 -1
- package/package.json +4 -4
- package/dist/types/server/src/api/controllers/streams.controller.d.ts +0 -12
- package/dist/types/server/src/api/routes/streams.routes.d.ts +0 -2
package/dist/bundle.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var t={d:(e,s)=>{for(var r in s)t.o(s,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:s[r]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.d(e,{j:()=>wi});var s={};t.r(s),t.d(s,{hasBrowserEnv:()=>ot,hasStandardBrowserEnv:()=>at,hasStandardBrowserWebWorkerEnv:()=>ht,origin:()=>ut});var r={};function i(t,e){return function(){return t.apply(e,arguments)}}t.r(r),t.d(r,{Decoder:()=>ui,Encoder:()=>ci,PacketType:()=>ai,protocol:()=>oi});const{toString:n}=Object.prototype,{getPrototypeOf:o}=Object,a=(t=>e=>{const s=n.call(e);return t[s]||(t[s]=s.slice(8,-1).toLowerCase())})(Object.create(null)),c=t=>(t=t.toLowerCase(),e=>a(e)===t),h=t=>e=>typeof e===t,{isArray:u}=Array,l=h("undefined"),d=c("ArrayBuffer"),f=h("string"),p=h("function"),g=h("number"),m=t=>null!==t&&"object"==typeof t,y=t=>{if("object"!==a(t))return!1;const e=o(t);return!(null!==e&&e!==Object.prototype&&null!==Object.getPrototypeOf(e)||Symbol.toStringTag in t||Symbol.iterator in t)},b=c("Date"),v=c("File"),w=c("Blob"),S=c("FileList"),k=c("URLSearchParams"),[E,_,O,T]=["ReadableStream","Request","Response","Headers"].map(c);function x(t,e,{allOwnKeys:s=!1}={}){if(null==t)return;let r,i;if("object"!=typeof t&&(t=[t]),u(t))for(r=0,i=t.length;r<i;r++)e.call(null,t[r],r,t);else{const i=s?Object.getOwnPropertyNames(t):Object.keys(t),n=i.length;let o;for(r=0;r<n;r++)o=i[r],e.call(null,t[o],o,t)}}function A(t,e){e=e.toLowerCase();const s=Object.keys(t);let r,i=s.length;for(;i-- >0;)if(r=s[i],e===r.toLowerCase())return r;return null}const R="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,L=t=>!l(t)&&t!==R,C=(j="undefined"!=typeof Uint8Array&&o(Uint8Array),t=>j&&t instanceof j);var j;const B=c("HTMLFormElement"),P=(({hasOwnProperty:t})=>(e,s)=>t.call(e,s))(Object.prototype),D=c("RegExp"),F=(t,e)=>{const s=Object.getOwnPropertyDescriptors(t),r={};x(s,((s,i)=>{let n;!1!==(n=e(s,i,t))&&(r[i]=n||s)})),Object.defineProperties(t,r)},N="abcdefghijklmnopqrstuvwxyz",M="0123456789",I={DIGIT:M,ALPHA:N,ALPHA_DIGIT:N+N.toUpperCase()+M},z=c("AsyncFunction"),q={isArray:u,isArrayBuffer:d,isBuffer:function(t){return null!==t&&!l(t)&&null!==t.constructor&&!l(t.constructor)&&p(t.constructor.isBuffer)&&t.constructor.isBuffer(t)},isFormData:t=>{let e;return t&&("function"==typeof FormData&&t instanceof FormData||p(t.append)&&("formdata"===(e=a(t))||"object"===e&&p(t.toString)&&"[object FormData]"===t.toString()))},isArrayBufferView:function(t){let e;return e="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&d(t.buffer),e},isString:f,isNumber:g,isBoolean:t=>!0===t||!1===t,isObject:m,isPlainObject:y,isReadableStream:E,isRequest:_,isResponse:O,isHeaders:T,isUndefined:l,isDate:b,isFile:v,isBlob:w,isRegExp:D,isFunction:p,isStream:t=>m(t)&&p(t.pipe),isURLSearchParams:k,isTypedArray:C,isFileList:S,forEach:x,merge:function t(){const{caseless:e}=L(this)&&this||{},s={},r=(r,i)=>{const n=e&&A(s,i)||i;y(s[n])&&y(r)?s[n]=t(s[n],r):y(r)?s[n]=t({},r):u(r)?s[n]=r.slice():s[n]=r};for(let t=0,e=arguments.length;t<e;t++)arguments[t]&&x(arguments[t],r);return s},extend:(t,e,s,{allOwnKeys:r}={})=>(x(e,((e,r)=>{s&&p(e)?t[r]=i(e,s):t[r]=e}),{allOwnKeys:r}),t),trim:t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:t=>(65279===t.charCodeAt(0)&&(t=t.slice(1)),t),inherits:(t,e,s,r)=>{t.prototype=Object.create(e.prototype,r),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),s&&Object.assign(t.prototype,s)},toFlatObject:(t,e,s,r)=>{let i,n,a;const c={};if(e=e||{},null==t)return e;do{for(i=Object.getOwnPropertyNames(t),n=i.length;n-- >0;)a=i[n],r&&!r(a,t,e)||c[a]||(e[a]=t[a],c[a]=!0);t=!1!==s&&o(t)}while(t&&(!s||s(t,e))&&t!==Object.prototype);return e},kindOf:a,kindOfTest:c,endsWith:(t,e,s)=>{t=String(t),(void 0===s||s>t.length)&&(s=t.length),s-=e.length;const r=t.indexOf(e,s);return-1!==r&&r===s},toArray:t=>{if(!t)return null;if(u(t))return t;let e=t.length;if(!g(e))return null;const s=new Array(e);for(;e-- >0;)s[e]=t[e];return s},forEachEntry:(t,e)=>{const s=(t&&t[Symbol.iterator]).call(t);let r;for(;(r=s.next())&&!r.done;){const s=r.value;e.call(t,s[0],s[1])}},matchAll:(t,e)=>{let s;const r=[];for(;null!==(s=t.exec(e));)r.push(s);return r},isHTMLForm:B,hasOwnProperty:P,hasOwnProp:P,reduceDescriptors:F,freezeMethods:t=>{F(t,((e,s)=>{if(p(t)&&-1!==["arguments","caller","callee"].indexOf(s))return!1;const r=t[s];p(r)&&(e.enumerable=!1,"writable"in e?e.writable=!1:e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+s+"'")}))}))},toObjectSet:(t,e)=>{const s={},r=t=>{t.forEach((t=>{s[t]=!0}))};return u(t)?r(t):r(String(t).split(e)),s},toCamelCase:t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(t,e,s){return e.toUpperCase()+s})),noop:()=>{},toFiniteNumber:(t,e)=>null!=t&&Number.isFinite(t=+t)?t:e,findKey:A,global:R,isContextDefined:L,ALPHABET:I,generateString:(t=16,e=I.ALPHA_DIGIT)=>{let s="";const{length:r}=e;for(;t--;)s+=e[Math.random()*r|0];return s},isSpecCompliantForm:function(t){return!!(t&&p(t.append)&&"FormData"===t[Symbol.toStringTag]&&t[Symbol.iterator])},toJSONObject:t=>{const e=new Array(10),s=(t,r)=>{if(m(t)){if(e.indexOf(t)>=0)return;if(!("toJSON"in t)){e[r]=t;const i=u(t)?[]:{};return x(t,((t,e)=>{const n=s(t,r+1);!l(n)&&(i[e]=n)})),e[r]=void 0,i}}return t};return s(t,0)},isAsyncFn:z,isThenable:t=>t&&(m(t)||p(t))&&p(t.then)&&p(t.catch)};function U(t,e,s,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name="AxiosError",e&&(this.code=e),s&&(this.config=s),r&&(this.request=r),i&&(this.response=i)}q.inherits(U,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:q.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const V=U.prototype,W={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((t=>{W[t]={value:t}})),Object.defineProperties(U,W),Object.defineProperty(V,"isAxiosError",{value:!0}),U.from=(t,e,s,r,i,n)=>{const o=Object.create(V);return q.toFlatObject(t,o,(function(t){return t!==Error.prototype}),(t=>"isAxiosError"!==t)),U.call(o,t.message,e,s,r,i),o.cause=t,o.name=t.name,n&&Object.assign(o,n),o};const H=U;function $(t){return q.isPlainObject(t)||q.isArray(t)}function J(t){return q.endsWith(t,"[]")?t.slice(0,-2):t}function G(t,e,s){return t?t.concat(e).map((function(t,e){return t=J(t),!s&&e?"["+t+"]":t})).join(s?".":""):e}const K=q.toFlatObject(q,{},null,(function(t){return/^is[A-Z]/.test(t)})),Y=function(t,e,s){if(!q.isObject(t))throw new TypeError("target must be an object");e=e||new FormData;const r=(s=q.toFlatObject(s,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(t,e){return!q.isUndefined(e[t])}))).metaTokens,i=s.visitor||h,n=s.dots,o=s.indexes,a=(s.Blob||"undefined"!=typeof Blob&&Blob)&&q.isSpecCompliantForm(e);if(!q.isFunction(i))throw new TypeError("visitor must be a function");function c(t){if(null===t)return"";if(q.isDate(t))return t.toISOString();if(!a&&q.isBlob(t))throw new H("Blob is not supported. Use a Buffer instead.");return q.isArrayBuffer(t)||q.isTypedArray(t)?a&&"function"==typeof Blob?new Blob([t]):Buffer.from(t):t}function h(t,s,i){let a=t;if(t&&!i&&"object"==typeof t)if(q.endsWith(s,"{}"))s=r?s:s.slice(0,-2),t=JSON.stringify(t);else if(q.isArray(t)&&function(t){return q.isArray(t)&&!t.some($)}(t)||(q.isFileList(t)||q.endsWith(s,"[]"))&&(a=q.toArray(t)))return s=J(s),a.forEach((function(t,r){!q.isUndefined(t)&&null!==t&&e.append(!0===o?G([s],r,n):null===o?s:s+"[]",c(t))})),!1;return!!$(t)||(e.append(G(i,s,n),c(t)),!1)}const u=[],l=Object.assign(K,{defaultVisitor:h,convertValue:c,isVisitable:$});if(!q.isObject(t))throw new TypeError("data must be an object");return function t(s,r){if(!q.isUndefined(s)){if(-1!==u.indexOf(s))throw Error("Circular reference detected in "+r.join("."));u.push(s),q.forEach(s,(function(s,n){!0===(!(q.isUndefined(s)||null===s)&&i.call(e,s,q.isString(n)?n.trim():n,r,l))&&t(s,r?r.concat(n):[n])})),u.pop()}}(t),e};function X(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function(t){return e[t]}))}function Q(t,e){this._pairs=[],t&&Y(t,this,e)}const Z=Q.prototype;Z.append=function(t,e){this._pairs.push([t,e])},Z.toString=function(t){const e=t?function(e){return t.call(this,e,X)}:X;return this._pairs.map((function(t){return e(t[0])+"="+e(t[1])}),"").join("&")};const tt=Q;function et(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function st(t,e,s){if(!e)return t;const r=s&&s.encode||et,i=s&&s.serialize;let n;if(n=i?i(e,s):q.isURLSearchParams(e)?e.toString():new tt(e,s).toString(r),n){const e=t.indexOf("#");-1!==e&&(t=t.slice(0,e)),t+=(-1===t.indexOf("?")?"?":"&")+n}return t}const rt=class{constructor(){this.handlers=[]}use(t,e,s){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!s&&s.synchronous,runWhen:s?s.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){q.forEach(this.handlers,(function(e){null!==e&&t(e)}))}},it={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},nt={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:tt,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},ot="undefined"!=typeof window&&"undefined"!=typeof document,at=(ct="undefined"!=typeof navigator&&navigator.product,ot&&["ReactNative","NativeScript","NS"].indexOf(ct)<0);var ct;const ht="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,ut=ot&&window.location.href||"http://localhost",lt={...s,...nt},dt=function(t){function e(t,s,r,i){let n=t[i++];if("__proto__"===n)return!0;const o=Number.isFinite(+n),a=i>=t.length;return n=!n&&q.isArray(r)?r.length:n,a?(q.hasOwnProp(r,n)?r[n]=[r[n],s]:r[n]=s,!o):(r[n]&&q.isObject(r[n])||(r[n]=[]),e(t,s,r[n],i)&&q.isArray(r[n])&&(r[n]=function(t){const e={},s=Object.keys(t);let r;const i=s.length;let n;for(r=0;r<i;r++)n=s[r],e[n]=t[n];return e}(r[n])),!o)}if(q.isFormData(t)&&q.isFunction(t.entries)){const s={};return q.forEachEntry(t,((t,r)=>{e(function(t){return q.matchAll(/\w+|\[(\w*)]/g,t).map((t=>"[]"===t[0]?"":t[1]||t[0]))}(t),r,s,0)})),s}return null},ft={transitional:it,adapter:["xhr","http","fetch"],transformRequest:[function(t,e){const s=e.getContentType()||"",r=s.indexOf("application/json")>-1,i=q.isObject(t);if(i&&q.isHTMLForm(t)&&(t=new FormData(t)),q.isFormData(t))return r?JSON.stringify(dt(t)):t;if(q.isArrayBuffer(t)||q.isBuffer(t)||q.isStream(t)||q.isFile(t)||q.isBlob(t)||q.isReadableStream(t))return t;if(q.isArrayBufferView(t))return t.buffer;if(q.isURLSearchParams(t))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let n;if(i){if(s.indexOf("application/x-www-form-urlencoded")>-1)return function(t,e){return Y(t,new lt.classes.URLSearchParams,Object.assign({visitor:function(t,e,s,r){return lt.isNode&&q.isBuffer(t)?(this.append(e,t.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},e))}(t,this.formSerializer).toString();if((n=q.isFileList(t))||s.indexOf("multipart/form-data")>-1){const e=this.env&&this.env.FormData;return Y(n?{"files[]":t}:t,e&&new e,this.formSerializer)}}return i||r?(e.setContentType("application/json",!1),function(t,e,s){if(q.isString(t))try{return(0,JSON.parse)(t),q.trim(t)}catch(t){if("SyntaxError"!==t.name)throw t}return(0,JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){const e=this.transitional||ft.transitional,s=e&&e.forcedJSONParsing,r="json"===this.responseType;if(q.isResponse(t)||q.isReadableStream(t))return t;if(t&&q.isString(t)&&(s&&!this.responseType||r)){const s=!(e&&e.silentJSONParsing)&&r;try{return JSON.parse(t)}catch(t){if(s){if("SyntaxError"===t.name)throw H.from(t,H.ERR_BAD_RESPONSE,this,null,this.response);throw t}}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:lt.classes.FormData,Blob:lt.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};q.forEach(["delete","get","head","post","put","patch"],(t=>{ft.headers[t]={}}));const pt=ft,gt=q.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),mt=Symbol("internals");function yt(t){return t&&String(t).trim().toLowerCase()}function bt(t){return!1===t||null==t?t:q.isArray(t)?t.map(bt):String(t)}function vt(t,e,s,r,i){return q.isFunction(r)?r.call(this,e,s):(i&&(e=s),q.isString(e)?q.isString(r)?-1!==e.indexOf(r):q.isRegExp(r)?r.test(e):void 0:void 0)}class wt{constructor(t){t&&this.set(t)}set(t,e,s){const r=this;function i(t,e,s){const i=yt(e);if(!i)throw new Error("header name must be a non-empty string");const n=q.findKey(r,i);(!n||void 0===r[n]||!0===s||void 0===s&&!1!==r[n])&&(r[n||e]=bt(t))}const n=(t,e)=>q.forEach(t,((t,s)=>i(t,s,e)));if(q.isPlainObject(t)||t instanceof this.constructor)n(t,e);else if(q.isString(t)&&(t=t.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim()))n((t=>{const e={};let s,r,i;return t&&t.split("\n").forEach((function(t){i=t.indexOf(":"),s=t.substring(0,i).trim().toLowerCase(),r=t.substring(i+1).trim(),!s||e[s]&>[s]||("set-cookie"===s?e[s]?e[s].push(r):e[s]=[r]:e[s]=e[s]?e[s]+", "+r:r)})),e})(t),e);else if(q.isHeaders(t))for(const[e,r]of t.entries())i(r,e,s);else null!=t&&i(e,t,s);return this}get(t,e){if(t=yt(t)){const s=q.findKey(this,t);if(s){const t=this[s];if(!e)return t;if(!0===e)return function(t){const e=Object.create(null),s=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=s.exec(t);)e[r[1]]=r[2];return e}(t);if(q.isFunction(e))return e.call(this,t,s);if(q.isRegExp(e))return e.exec(t);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,e){if(t=yt(t)){const s=q.findKey(this,t);return!(!s||void 0===this[s]||e&&!vt(0,this[s],s,e))}return!1}delete(t,e){const s=this;let r=!1;function i(t){if(t=yt(t)){const i=q.findKey(s,t);!i||e&&!vt(0,s[i],i,e)||(delete s[i],r=!0)}}return q.isArray(t)?t.forEach(i):i(t),r}clear(t){const e=Object.keys(this);let s=e.length,r=!1;for(;s--;){const i=e[s];t&&!vt(0,this[i],i,t,!0)||(delete this[i],r=!0)}return r}normalize(t){const e=this,s={};return q.forEach(this,((r,i)=>{const n=q.findKey(s,i);if(n)return e[n]=bt(r),void delete e[i];const o=t?function(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((t,e,s)=>e.toUpperCase()+s))}(i):String(i).trim();o!==i&&delete e[i],e[o]=bt(r),s[o]=!0})),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const e=Object.create(null);return q.forEach(this,((s,r)=>{null!=s&&!1!==s&&(e[r]=t&&q.isArray(s)?s.join(", "):s)})),e}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([t,e])=>t+": "+e)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...e){const s=new this(t);return e.forEach((t=>s.set(t))),s}static accessor(t){const e=(this[mt]=this[mt]={accessors:{}}).accessors,s=this.prototype;function r(t){const r=yt(t);e[r]||(function(t,e){const s=q.toCamelCase(" "+e);["get","set","has"].forEach((r=>{Object.defineProperty(t,r+s,{value:function(t,s,i){return this[r].call(this,e,t,s,i)},configurable:!0})}))}(s,t),e[r]=!0)}return q.isArray(t)?t.forEach(r):r(t),this}}wt.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),q.reduceDescriptors(wt.prototype,(({value:t},e)=>{let s=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(t){this[s]=t}}})),q.freezeMethods(wt);const St=wt;function kt(t,e){const s=this||pt,r=e||s,i=St.from(r.headers);let n=r.data;return q.forEach(t,(function(t){n=t.call(s,n,i.normalize(),e?e.status:void 0)})),i.normalize(),n}function Et(t){return!(!t||!t.__CANCEL__)}function _t(t,e,s){H.call(this,null==t?"canceled":t,H.ERR_CANCELED,e,s),this.name="CanceledError"}q.inherits(_t,H,{__CANCEL__:!0});const Ot=_t;function Tt(t,e,s){const r=s.config.validateStatus;s.status&&r&&!r(s.status)?e(new H("Request failed with status code "+s.status,[H.ERR_BAD_REQUEST,H.ERR_BAD_RESPONSE][Math.floor(s.status/100)-4],s.config,s.request,s)):t(s)}const xt=(t,e,s=3)=>{let r=0;const i=function(t,e){t=t||10;const s=new Array(t),r=new Array(t);let i,n=0,o=0;return e=void 0!==e?e:1e3,function(a){const c=Date.now(),h=r[o];i||(i=c),s[n]=a,r[n]=c;let u=o,l=0;for(;u!==n;)l+=s[u++],u%=t;if(n=(n+1)%t,n===o&&(o=(o+1)%t),c-i<e)return;const d=h&&c-h;return d?Math.round(1e3*l/d):void 0}}(50,250);return function(t,e){let s=0;const r=1e3/e;let i=null;return function(){const e=!0===this,n=Date.now();if(e||n-s>r)return i&&(clearTimeout(i),i=null),s=n,t.apply(null,arguments);i||(i=setTimeout((()=>(i=null,s=Date.now(),t.apply(null,arguments))),r-(n-s)))}}((s=>{const n=s.loaded,o=s.lengthComputable?s.total:void 0,a=n-r,c=i(a);r=n;const h={loaded:n,total:o,progress:o?n/o:void 0,bytes:a,rate:c||void 0,estimated:c&&o&&n<=o?(o-n)/c:void 0,event:s,lengthComputable:null!=o};h[e?"download":"upload"]=!0,t(h)}),s)},At=lt.hasStandardBrowserEnv?function(){const t=/(msie|trident)/i.test(navigator.userAgent),e=document.createElement("a");let s;function r(s){let r=s;return t&&(e.setAttribute("href",r),r=e.href),e.setAttribute("href",r),{href:e.href,protocol:e.protocol?e.protocol.replace(/:$/,""):"",host:e.host,search:e.search?e.search.replace(/^\?/,""):"",hash:e.hash?e.hash.replace(/^#/,""):"",hostname:e.hostname,port:e.port,pathname:"/"===e.pathname.charAt(0)?e.pathname:"/"+e.pathname}}return s=r(window.location.href),function(t){const e=q.isString(t)?r(t):t;return e.protocol===s.protocol&&e.host===s.host}}():function(){return!0},Rt=lt.hasStandardBrowserEnv?{write(t,e,s,r,i,n){const o=[t+"="+encodeURIComponent(e)];q.isNumber(s)&&o.push("expires="+new Date(s).toGMTString()),q.isString(r)&&o.push("path="+r),q.isString(i)&&o.push("domain="+i),!0===n&&o.push("secure"),document.cookie=o.join("; ")},read(t){const e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function Lt(t,e){return t&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)?function(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}(t,e):e}const Ct=t=>t instanceof St?{...t}:t;function jt(t,e){e=e||{};const s={};function r(t,e,s){return q.isPlainObject(t)&&q.isPlainObject(e)?q.merge.call({caseless:s},t,e):q.isPlainObject(e)?q.merge({},e):q.isArray(e)?e.slice():e}function i(t,e,s){return q.isUndefined(e)?q.isUndefined(t)?void 0:r(void 0,t,s):r(t,e,s)}function n(t,e){if(!q.isUndefined(e))return r(void 0,e)}function o(t,e){return q.isUndefined(e)?q.isUndefined(t)?void 0:r(void 0,t):r(void 0,e)}function a(s,i,n){return n in e?r(s,i):n in t?r(void 0,s):void 0}const c={url:n,method:n,data:n,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:a,headers:(t,e)=>i(Ct(t),Ct(e),!0)};return q.forEach(Object.keys(Object.assign({},t,e)),(function(r){const n=c[r]||i,o=n(t[r],e[r],r);q.isUndefined(o)&&n!==a||(s[r]=o)})),s}const Bt=t=>{const e=jt({},t);let s,{data:r,withXSRFToken:i,xsrfHeaderName:n,xsrfCookieName:o,headers:a,auth:c}=e;if(e.headers=a=St.from(a),e.url=st(Lt(e.baseURL,e.url),t.params,t.paramsSerializer),c&&a.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):""))),q.isFormData(r))if(lt.hasStandardBrowserEnv||lt.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if(!1!==(s=a.getContentType())){const[t,...e]=s?s.split(";").map((t=>t.trim())).filter(Boolean):[];a.setContentType([t||"multipart/form-data",...e].join("; "))}if(lt.hasStandardBrowserEnv&&(i&&q.isFunction(i)&&(i=i(e)),i||!1!==i&&At(e.url))){const t=n&&o&&Rt.read(o);t&&a.set(n,t)}return e},Pt="undefined"!=typeof XMLHttpRequest&&function(t){return new Promise((function(e,s){const r=Bt(t);let i=r.data;const n=St.from(r.headers).normalize();let o,{responseType:a}=r;function c(){r.cancelToken&&r.cancelToken.unsubscribe(o),r.signal&&r.signal.removeEventListener("abort",o)}let h=new XMLHttpRequest;function u(){if(!h)return;const r=St.from("getAllResponseHeaders"in h&&h.getAllResponseHeaders());Tt((function(t){e(t),c()}),(function(t){s(t),c()}),{data:a&&"text"!==a&&"json"!==a?h.response:h.responseText,status:h.status,statusText:h.statusText,headers:r,config:t,request:h}),h=null}h.open(r.method.toUpperCase(),r.url,!0),h.timeout=r.timeout,"onloadend"in h?h.onloadend=u:h.onreadystatechange=function(){h&&4===h.readyState&&(0!==h.status||h.responseURL&&0===h.responseURL.indexOf("file:"))&&setTimeout(u)},h.onabort=function(){h&&(s(new H("Request aborted",H.ECONNABORTED,r,h)),h=null)},h.onerror=function(){s(new H("Network Error",H.ERR_NETWORK,r,h)),h=null},h.ontimeout=function(){let t=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const e=r.transitional||it;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),s(new H(t,e.clarifyTimeoutError?H.ETIMEDOUT:H.ECONNABORTED,r,h)),h=null},void 0===i&&n.setContentType(null),"setRequestHeader"in h&&q.forEach(n.toJSON(),(function(t,e){h.setRequestHeader(e,t)})),q.isUndefined(r.withCredentials)||(h.withCredentials=!!r.withCredentials),a&&"json"!==a&&(h.responseType=r.responseType),"function"==typeof r.onDownloadProgress&&h.addEventListener("progress",xt(r.onDownloadProgress,!0)),"function"==typeof r.onUploadProgress&&h.upload&&h.upload.addEventListener("progress",xt(r.onUploadProgress)),(r.cancelToken||r.signal)&&(o=e=>{h&&(s(!e||e.type?new Ot(null,t,h):e),h.abort(),h=null)},r.cancelToken&&r.cancelToken.subscribe(o),r.signal&&(r.signal.aborted?o():r.signal.addEventListener("abort",o)));const l=function(t){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}(r.url);l&&-1===lt.protocols.indexOf(l)?s(new H("Unsupported protocol "+l+":",H.ERR_BAD_REQUEST,t)):h.send(i||null)}))},Dt=(t,e)=>{let s,r=new AbortController;const i=function(t){if(!s){s=!0,o();const e=t instanceof Error?t:this.reason;r.abort(e instanceof H?e:new Ot(e instanceof Error?e.message:e))}};let n=e&&setTimeout((()=>{i(new H(`timeout ${e} of ms exceeded`,H.ETIMEDOUT))}),e);const o=()=>{t&&(n&&clearTimeout(n),n=null,t.forEach((t=>{t&&(t.removeEventListener?t.removeEventListener("abort",i):t.unsubscribe(i))})),t=null)};t.forEach((t=>t&&t.addEventListener&&t.addEventListener("abort",i)));const{signal:a}=r;return a.unsubscribe=o,[a,()=>{n&&clearTimeout(n),n=null}]},Ft=function*(t,e){let s=t.byteLength;if(!e||s<e)return void(yield t);let r,i=0;for(;i<s;)r=i+e,yield t.slice(i,r),i=r},Nt=(t,e,s,r,i)=>{const n=async function*(t,e,s){for await(const r of t)yield*Ft(ArrayBuffer.isView(r)?r:await s(String(r)),e)}(t,e,i);let o=0;return new ReadableStream({type:"bytes",async pull(t){const{done:e,value:i}=await n.next();if(e)return t.close(),void r();let a=i.byteLength;s&&s(o+=a),t.enqueue(new Uint8Array(i))},cancel:t=>(r(t),n.return())},{highWaterMark:2})},Mt=(t,e)=>{const s=null!=t;return r=>setTimeout((()=>e({lengthComputable:s,total:t,loaded:r})))},It="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,zt=It&&"function"==typeof ReadableStream,qt=It&&("function"==typeof TextEncoder?(Ut=new TextEncoder,t=>Ut.encode(t)):async t=>new Uint8Array(await new Response(t).arrayBuffer()));var Ut;const Vt=zt&&(()=>{let t=!1;const e=new Request(lt.origin,{body:new ReadableStream,method:"POST",get duplex(){return t=!0,"half"}}).headers.has("Content-Type");return t&&!e})(),Wt=zt&&!!(()=>{try{return q.isReadableStream(new Response("").body)}catch(t){}})(),Ht={stream:Wt&&(t=>t.body)};var $t;It&&($t=new Response,["text","arrayBuffer","blob","formData","stream"].forEach((t=>{!Ht[t]&&(Ht[t]=q.isFunction($t[t])?e=>e[t]():(e,s)=>{throw new H(`Response type '${t}' is not supported`,H.ERR_NOT_SUPPORT,s)})})));const Jt=It&&(async t=>{let{url:e,method:s,data:r,signal:i,cancelToken:n,timeout:o,onDownloadProgress:a,onUploadProgress:c,responseType:h,headers:u,withCredentials:l="same-origin",fetchOptions:d}=Bt(t);h=h?(h+"").toLowerCase():"text";let f,p,[g,m]=i||n||o?Dt([i,n],o):[];const y=()=>{!f&&setTimeout((()=>{g&&g.unsubscribe()})),f=!0};let b;try{if(c&&Vt&&"get"!==s&&"head"!==s&&0!==(b=await(async(t,e)=>{const s=q.toFiniteNumber(t.getContentLength());return null==s?(async t=>null==t?0:q.isBlob(t)?t.size:q.isSpecCompliantForm(t)?(await new Request(t).arrayBuffer()).byteLength:q.isArrayBufferView(t)?t.byteLength:(q.isURLSearchParams(t)&&(t+=""),q.isString(t)?(await qt(t)).byteLength:void 0))(e):s})(u,r))){let t,s=new Request(e,{method:"POST",body:r,duplex:"half"});q.isFormData(r)&&(t=s.headers.get("content-type"))&&u.setContentType(t),s.body&&(r=Nt(s.body,65536,Mt(b,xt(c)),null,qt))}q.isString(l)||(l=l?"cors":"omit"),p=new Request(e,{...d,signal:g,method:s.toUpperCase(),headers:u.normalize().toJSON(),body:r,duplex:"half",withCredentials:l});let i=await fetch(p);const n=Wt&&("stream"===h||"response"===h);if(Wt&&(a||n)){const t={};["status","statusText","headers"].forEach((e=>{t[e]=i[e]}));const e=q.toFiniteNumber(i.headers.get("content-length"));i=new Response(Nt(i.body,65536,a&&Mt(e,xt(a,!0)),n&&y,qt),t)}h=h||"text";let o=await Ht[q.findKey(Ht,h)||"text"](i,t);return!n&&y(),m&&m(),await new Promise(((e,s)=>{Tt(e,s,{data:o,headers:St.from(i.headers),status:i.status,statusText:i.statusText,config:t,request:p})}))}catch(e){if(y(),e&&"TypeError"===e.name&&/fetch/i.test(e.message))throw Object.assign(new H("Network Error",H.ERR_NETWORK,t,p),{cause:e.cause||e});throw H.from(e,e&&e.code,t,p)}}),Gt={http:null,xhr:Pt,fetch:Jt};q.forEach(Gt,((t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch(t){}Object.defineProperty(t,"adapterName",{value:e})}}));const Kt=t=>`- ${t}`,Yt=t=>q.isFunction(t)||null===t||!1===t,Xt=t=>{t=q.isArray(t)?t:[t];const{length:e}=t;let s,r;const i={};for(let n=0;n<e;n++){let e;if(s=t[n],r=s,!Yt(s)&&(r=Gt[(e=String(s)).toLowerCase()],void 0===r))throw new H(`Unknown adapter '${e}'`);if(r)break;i[e||"#"+n]=r}if(!r){const t=Object.entries(i).map((([t,e])=>`adapter ${t} `+(!1===e?"is not supported by the environment":"is not available in the build")));let s=e?t.length>1?"since :\n"+t.map(Kt).join("\n"):" "+Kt(t[0]):"as no adapter specified";throw new H("There is no suitable adapter to dispatch the request "+s,"ERR_NOT_SUPPORT")}return r};function Qt(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Ot(null,t)}function Zt(t){return Qt(t),t.headers=St.from(t.headers),t.data=kt.call(t,t.transformRequest),-1!==["post","put","patch"].indexOf(t.method)&&t.headers.setContentType("application/x-www-form-urlencoded",!1),Xt(t.adapter||pt.adapter)(t).then((function(e){return Qt(t),e.data=kt.call(t,t.transformResponse,e),e.headers=St.from(e.headers),e}),(function(e){return Et(e)||(Qt(t),e&&e.response&&(e.response.data=kt.call(t,t.transformResponse,e.response),e.response.headers=St.from(e.response.headers))),Promise.reject(e)}))}const te={};["object","boolean","number","function","string","symbol"].forEach(((t,e)=>{te[t]=function(s){return typeof s===t||"a"+(e<1?"n ":" ")+t}}));const ee={};te.transitional=function(t,e,s){function r(t,e){return"[Axios v1.7.2] Transitional option '"+t+"'"+e+(s?". "+s:"")}return(s,i,n)=>{if(!1===t)throw new H(r(i," has been removed"+(e?" in "+e:"")),H.ERR_DEPRECATED);return e&&!ee[i]&&(ee[i]=!0,console.warn(r(i," has been deprecated since v"+e+" and will be removed in the near future"))),!t||t(s,i,n)}};const se={assertOptions:function(t,e,s){if("object"!=typeof t)throw new H("options must be an object",H.ERR_BAD_OPTION_VALUE);const r=Object.keys(t);let i=r.length;for(;i-- >0;){const n=r[i],o=e[n];if(o){const e=t[n],s=void 0===e||o(e,n,t);if(!0!==s)throw new H("option "+n+" must be "+s,H.ERR_BAD_OPTION_VALUE)}else if(!0!==s)throw new H("Unknown option "+n,H.ERR_BAD_OPTION)}},validators:te},re=se.validators;class ie{constructor(t){this.defaults=t,this.interceptors={request:new rt,response:new rt}}async request(t,e){try{return await this._request(t,e)}catch(t){if(t instanceof Error){let e;Error.captureStackTrace?Error.captureStackTrace(e={}):e=new Error;const s=e.stack?e.stack.replace(/^.+\n/,""):"";try{t.stack?s&&!String(t.stack).endsWith(s.replace(/^.+\n.+\n/,""))&&(t.stack+="\n"+s):t.stack=s}catch(t){}}throw t}}_request(t,e){"string"==typeof t?(e=e||{}).url=t:e=t||{},e=jt(this.defaults,e);const{transitional:s,paramsSerializer:r,headers:i}=e;void 0!==s&&se.assertOptions(s,{silentJSONParsing:re.transitional(re.boolean),forcedJSONParsing:re.transitional(re.boolean),clarifyTimeoutError:re.transitional(re.boolean)},!1),null!=r&&(q.isFunction(r)?e.paramsSerializer={serialize:r}:se.assertOptions(r,{encode:re.function,serialize:re.function},!0)),e.method=(e.method||this.defaults.method||"get").toLowerCase();let n=i&&q.merge(i.common,i[e.method]);i&&q.forEach(["delete","get","head","post","put","patch","common"],(t=>{delete i[t]})),e.headers=St.concat(n,i);const o=[];let a=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(e)||(a=a&&t.synchronous,o.unshift(t.fulfilled,t.rejected))}));const c=[];let h;this.interceptors.response.forEach((function(t){c.push(t.fulfilled,t.rejected)}));let u,l=0;if(!a){const t=[Zt.bind(this),void 0];for(t.unshift.apply(t,o),t.push.apply(t,c),u=t.length,h=Promise.resolve(e);l<u;)h=h.then(t[l++],t[l++]);return h}u=o.length;let d=e;for(l=0;l<u;){const t=o[l++],e=o[l++];try{d=t(d)}catch(t){e.call(this,t);break}}try{h=Zt.call(this,d)}catch(t){return Promise.reject(t)}for(l=0,u=c.length;l<u;)h=h.then(c[l++],c[l++]);return h}getUri(t){return st(Lt((t=jt(this.defaults,t)).baseURL,t.url),t.params,t.paramsSerializer)}}q.forEach(["delete","get","head","options"],(function(t){ie.prototype[t]=function(e,s){return this.request(jt(s||{},{method:t,url:e,data:(s||{}).data}))}})),q.forEach(["post","put","patch"],(function(t){function e(e){return function(s,r,i){return this.request(jt(i||{},{method:t,headers:e?{"Content-Type":"multipart/form-data"}:{},url:s,data:r}))}}ie.prototype[t]=e(),ie.prototype[t+"Form"]=e(!0)}));const ne=ie;class oe{constructor(t){if("function"!=typeof t)throw new TypeError("executor must be a function.");let e;this.promise=new Promise((function(t){e=t}));const s=this;this.promise.then((t=>{if(!s._listeners)return;let e=s._listeners.length;for(;e-- >0;)s._listeners[e](t);s._listeners=null})),this.promise.then=t=>{let e;const r=new Promise((t=>{s.subscribe(t),e=t})).then(t);return r.cancel=function(){s.unsubscribe(e)},r},t((function(t,r,i){s.reason||(s.reason=new Ot(t,r,i),e(s.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1)}static source(){let t;return{token:new oe((function(e){t=e})),cancel:t}}}const ae=oe,ce={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(ce).forEach((([t,e])=>{ce[e]=t}));const he=ce,ue=function t(e){const s=new ne(e),r=i(ne.prototype.request,s);return q.extend(r,ne.prototype,s,{allOwnKeys:!0}),q.extend(r,s,null,{allOwnKeys:!0}),r.create=function(s){return t(jt(e,s))},r}(pt);ue.Axios=ne,ue.CanceledError=Ot,ue.CancelToken=ae,ue.isCancel=Et,ue.VERSION="1.7.2",ue.toFormData=Y,ue.AxiosError=H,ue.Cancel=ue.CanceledError,ue.all=function(t){return Promise.all(t)},ue.spread=function(t){return function(e){return t.apply(null,e)}},ue.isAxiosError=function(t){return q.isObject(t)&&!0===t.isAxiosError},ue.mergeConfig=jt,ue.AxiosHeaders=St,ue.formToJSON=t=>dt(q.isHTMLForm(t)?new FormData(t):t),ue.getAdapter=Xt,ue.HttpStatusCode=he,ue.default=ue;const le=ue;class de{interceptor;constructor(t){this.interceptor=le.create({baseURL:`${t}/api`}),this.interceptor.interceptors.request.use((t=>{const e=le.CancelToken.source();return t.cancelToken=e.token,setTimeout((()=>{e.cancel("Timeout: request took more than 15 seconds")}),15e3),t}),(t=>Promise.reject(t)))}}const fe="object"==typeof performance&&performance&&"function"==typeof performance.now?performance:Date,pe=new Set,ge="object"==typeof process&&process?process:{},me=(t,e,s,r)=>{"function"==typeof ge.emitWarning?ge.emitWarning(t,e,s,r):console.error(`[${s}] ${e}: ${t}`)};let ye=globalThis.AbortController,be=globalThis.AbortSignal;if(void 0===ye){be=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(t,e){this._onabort.push(e)}},ye=class{constructor(){e()}signal=new be;abort(t){if(!this.signal.aborted){this.signal.reason=t,this.signal.aborted=!0;for(const e of this.signal._onabort)e(t);this.signal.onabort?.(t)}}};let t="1"!==ge.env?.LRU_CACHE_IGNORE_AC_WARNING;const e=()=>{t&&(t=!1,me("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",e))}}Symbol("type");const ve=t=>t&&t===Math.floor(t)&&t>0&&isFinite(t),we=t=>ve(t)?t<=Math.pow(2,8)?Uint8Array:t<=Math.pow(2,16)?Uint16Array:t<=Math.pow(2,32)?Uint32Array:t<=Number.MAX_SAFE_INTEGER?Se:null:null;class Se extends Array{constructor(t){super(t),this.fill(0)}}class ke{heap;length;static#t=!1;static create(t){const e=we(t);if(!e)return[];ke.#t=!0;const s=new ke(t,e);return ke.#t=!1,s}constructor(t,e){if(!ke.#t)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new e(t),this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}}class Ee{#e;#s;#r;#i;#n;#o;ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#a;#c;#h;#u;#l;#d;#f;#p;#g;#m;#y;#b;#v;#w;#S;#k;#E;static unsafeExposeInternals(t){return{starts:t.#v,ttls:t.#w,sizes:t.#b,keyMap:t.#h,keyList:t.#u,valList:t.#l,next:t.#d,prev:t.#f,get head(){return t.#p},get tail(){return t.#g},free:t.#m,isBackgroundFetch:e=>t.#_(e),backgroundFetch:(e,s,r,i)=>t.#O(e,s,r,i),moveToTail:e=>t.#T(e),indexes:e=>t.#x(e),rindexes:e=>t.#A(e),isStale:e=>t.#R(e)}}get max(){return this.#e}get maxSize(){return this.#s}get calculatedSize(){return this.#c}get size(){return this.#a}get fetchMethod(){return this.#n}get memoMethod(){return this.#o}get dispose(){return this.#r}get disposeAfter(){return this.#i}constructor(t){const{max:e=0,ttl:s,ttlResolution:r=1,ttlAutopurge:i,updateAgeOnGet:n,updateAgeOnHas:o,allowStale:a,dispose:c,disposeAfter:h,noDisposeOnSet:u,noUpdateTTL:l,maxSize:d=0,maxEntrySize:f=0,sizeCalculation:p,fetchMethod:g,memoMethod:m,noDeleteOnFetchRejection:y,noDeleteOnStaleGet:b,allowStaleOnFetchRejection:v,allowStaleOnFetchAbort:w,ignoreFetchAbort:S}=t;if(0!==e&&!ve(e))throw new TypeError("max option must be a nonnegative integer");const k=e?we(e):Array;if(!k)throw new Error("invalid max value: "+e);if(this.#e=e,this.#s=d,this.maxEntrySize=f||this.#s,this.sizeCalculation=p,this.sizeCalculation){if(!this.#s&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if("function"!=typeof this.sizeCalculation)throw new TypeError("sizeCalculation set to non-function")}if(void 0!==m&&"function"!=typeof m)throw new TypeError("memoMethod must be a function if defined");if(this.#o=m,void 0!==g&&"function"!=typeof g)throw new TypeError("fetchMethod must be a function if specified");if(this.#n=g,this.#k=!!g,this.#h=new Map,this.#u=new Array(e).fill(void 0),this.#l=new Array(e).fill(void 0),this.#d=new k(e),this.#f=new k(e),this.#p=0,this.#g=0,this.#m=ke.create(e),this.#a=0,this.#c=0,"function"==typeof c&&(this.#r=c),"function"==typeof h?(this.#i=h,this.#y=[]):(this.#i=void 0,this.#y=void 0),this.#S=!!this.#r,this.#E=!!this.#i,this.noDisposeOnSet=!!u,this.noUpdateTTL=!!l,this.noDeleteOnFetchRejection=!!y,this.allowStaleOnFetchRejection=!!v,this.allowStaleOnFetchAbort=!!w,this.ignoreFetchAbort=!!S,0!==this.maxEntrySize){if(0!==this.#s&&!ve(this.#s))throw new TypeError("maxSize must be a positive integer if specified");if(!ve(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#L()}if(this.allowStale=!!a,this.noDeleteOnStaleGet=!!b,this.updateAgeOnGet=!!n,this.updateAgeOnHas=!!o,this.ttlResolution=ve(r)||0===r?r:1,this.ttlAutopurge=!!i,this.ttl=s||0,this.ttl){if(!ve(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#C()}if(0===this.#e&&0===this.ttl&&0===this.#s)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#e&&!this.#s){const t="LRU_CACHE_UNBOUNDED";(t=>!pe.has(t))(t)&&(pe.add(t),me("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",t,Ee))}}getRemainingTTL(t){return this.#h.has(t)?1/0:0}#C(){const t=new Se(this.#e),e=new Se(this.#e);this.#w=t,this.#v=e,this.#j=(s,r,i=fe.now())=>{if(e[s]=0!==r?i:0,t[s]=r,0!==r&&this.ttlAutopurge){const t=setTimeout((()=>{this.#R(s)&&this.#B(this.#u[s],"expire")}),r+1);t.unref&&t.unref()}},this.#P=s=>{e[s]=0!==t[s]?fe.now():0},this.#D=(i,n)=>{if(t[n]){const o=t[n],a=e[n];if(!o||!a)return;i.ttl=o,i.start=a,i.now=s||r();const c=i.now-a;i.remainingTTL=o-c}};let s=0;const r=()=>{const t=fe.now();if(this.ttlResolution>0){s=t;const e=setTimeout((()=>s=0),this.ttlResolution);e.unref&&e.unref()}return t};this.getRemainingTTL=i=>{const n=this.#h.get(i);if(void 0===n)return 0;const o=t[n],a=e[n];return o&&a?o-((s||r())-a):1/0},this.#R=i=>{const n=e[i],o=t[i];return!!o&&!!n&&(s||r())-n>o}}#P=()=>{};#D=()=>{};#j=()=>{};#R=()=>!1;#L(){const t=new Se(this.#e);this.#c=0,this.#b=t,this.#F=e=>{this.#c-=t[e],t[e]=0},this.#N=(t,e,s,r)=>{if(this.#_(e))return 0;if(!ve(s)){if(!r)throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");if("function"!=typeof r)throw new TypeError("sizeCalculation must be a function");if(s=r(e,t),!ve(s))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}return s},this.#M=(e,s,r)=>{if(t[e]=s,this.#s){const s=this.#s-t[e];for(;this.#c>s;)this.#I(!0)}this.#c+=t[e],r&&(r.entrySize=s,r.totalCalculatedSize=this.#c)}}#F=t=>{};#M=(t,e,s)=>{};#N=(t,e,s,r)=>{if(s||r)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#x({allowStale:t=this.allowStale}={}){if(this.#a)for(let e=this.#g;this.#z(e)&&(!t&&this.#R(e)||(yield e),e!==this.#p);)e=this.#f[e]}*#A({allowStale:t=this.allowStale}={}){if(this.#a)for(let e=this.#p;this.#z(e)&&(!t&&this.#R(e)||(yield e),e!==this.#g);)e=this.#d[e]}#z(t){return void 0!==t&&this.#h.get(this.#u[t])===t}*entries(){for(const t of this.#x())void 0===this.#l[t]||void 0===this.#u[t]||this.#_(this.#l[t])||(yield[this.#u[t],this.#l[t]])}*rentries(){for(const t of this.#A())void 0===this.#l[t]||void 0===this.#u[t]||this.#_(this.#l[t])||(yield[this.#u[t],this.#l[t]])}*keys(){for(const t of this.#x()){const e=this.#u[t];void 0===e||this.#_(this.#l[t])||(yield e)}}*rkeys(){for(const t of this.#A()){const e=this.#u[t];void 0===e||this.#_(this.#l[t])||(yield e)}}*values(){for(const t of this.#x())void 0===this.#l[t]||this.#_(this.#l[t])||(yield this.#l[t])}*rvalues(){for(const t of this.#A())void 0===this.#l[t]||this.#_(this.#l[t])||(yield this.#l[t])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(t,e={}){for(const s of this.#x()){const r=this.#l[s],i=this.#_(r)?r.__staleWhileFetching:r;if(void 0!==i&&t(i,this.#u[s],this))return this.get(this.#u[s],e)}}forEach(t,e=this){for(const s of this.#x()){const r=this.#l[s],i=this.#_(r)?r.__staleWhileFetching:r;void 0!==i&&t.call(e,i,this.#u[s],this)}}rforEach(t,e=this){for(const s of this.#A()){const r=this.#l[s],i=this.#_(r)?r.__staleWhileFetching:r;void 0!==i&&t.call(e,i,this.#u[s],this)}}purgeStale(){let t=!1;for(const e of this.#A({allowStale:!0}))this.#R(e)&&(this.#B(this.#u[e],"expire"),t=!0);return t}info(t){const e=this.#h.get(t);if(void 0===e)return;const s=this.#l[e],r=this.#_(s)?s.__staleWhileFetching:s;if(void 0===r)return;const i={value:r};if(this.#w&&this.#v){const t=this.#w[e],s=this.#v[e];if(t&&s){const e=t-(fe.now()-s);i.ttl=e,i.start=Date.now()}}return this.#b&&(i.size=this.#b[e]),i}dump(){const t=[];for(const e of this.#x({allowStale:!0})){const s=this.#u[e],r=this.#l[e],i=this.#_(r)?r.__staleWhileFetching:r;if(void 0===i||void 0===s)continue;const n={value:i};if(this.#w&&this.#v){n.ttl=this.#w[e];const t=fe.now()-this.#v[e];n.start=Math.floor(Date.now()-t)}this.#b&&(n.size=this.#b[e]),t.unshift([s,n])}return t}load(t){this.clear();for(const[e,s]of t){if(s.start){const t=Date.now()-s.start;s.start=fe.now()-t}this.set(e,s.value,s)}}set(t,e,s={}){if(void 0===e)return this.delete(t),this;const{ttl:r=this.ttl,start:i,noDisposeOnSet:n=this.noDisposeOnSet,sizeCalculation:o=this.sizeCalculation,status:a}=s;let{noUpdateTTL:c=this.noUpdateTTL}=s;const h=this.#N(t,e,s.size||0,o);if(this.maxEntrySize&&h>this.maxEntrySize)return a&&(a.set="miss",a.maxEntrySizeExceeded=!0),this.#B(t,"set"),this;let u=0===this.#a?void 0:this.#h.get(t);if(void 0===u)u=0===this.#a?this.#g:0!==this.#m.length?this.#m.pop():this.#a===this.#e?this.#I(!1):this.#a,this.#u[u]=t,this.#l[u]=e,this.#h.set(t,u),this.#d[this.#g]=u,this.#f[u]=this.#g,this.#g=u,this.#a++,this.#M(u,h,a),a&&(a.set="add"),c=!1;else{this.#T(u);const s=this.#l[u];if(e!==s){if(this.#k&&this.#_(s)){s.__abortController.abort(new Error("replaced"));const{__staleWhileFetching:e}=s;void 0===e||n||(this.#S&&this.#r?.(e,t,"set"),this.#E&&this.#y?.push([e,t,"set"]))}else n||(this.#S&&this.#r?.(s,t,"set"),this.#E&&this.#y?.push([s,t,"set"]));if(this.#F(u),this.#M(u,h,a),this.#l[u]=e,a){a.set="replace";const t=s&&this.#_(s)?s.__staleWhileFetching:s;void 0!==t&&(a.oldValue=t)}}else a&&(a.set="update")}if(0===r||this.#w||this.#C(),this.#w&&(c||this.#j(u,r,i),a&&this.#D(a,u)),!n&&this.#E&&this.#y){const t=this.#y;let e;for(;e=t?.shift();)this.#i?.(...e)}return this}pop(){try{for(;this.#a;){const t=this.#l[this.#p];if(this.#I(!0),this.#_(t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(void 0!==t)return t}}finally{if(this.#E&&this.#y){const t=this.#y;let e;for(;e=t?.shift();)this.#i?.(...e)}}}#I(t){const e=this.#p,s=this.#u[e],r=this.#l[e];return this.#k&&this.#_(r)?r.__abortController.abort(new Error("evicted")):(this.#S||this.#E)&&(this.#S&&this.#r?.(r,s,"evict"),this.#E&&this.#y?.push([r,s,"evict"])),this.#F(e),t&&(this.#u[e]=void 0,this.#l[e]=void 0,this.#m.push(e)),1===this.#a?(this.#p=this.#g=0,this.#m.length=0):this.#p=this.#d[e],this.#h.delete(s),this.#a--,e}has(t,e={}){const{updateAgeOnHas:s=this.updateAgeOnHas,status:r}=e,i=this.#h.get(t);if(void 0!==i){const t=this.#l[i];if(this.#_(t)&&void 0===t.__staleWhileFetching)return!1;if(!this.#R(i))return s&&this.#P(i),r&&(r.has="hit",this.#D(r,i)),!0;r&&(r.has="stale",this.#D(r,i))}else r&&(r.has="miss");return!1}peek(t,e={}){const{allowStale:s=this.allowStale}=e,r=this.#h.get(t);if(void 0===r||!s&&this.#R(r))return;const i=this.#l[r];return this.#_(i)?i.__staleWhileFetching:i}#O(t,e,s,r){const i=void 0===e?void 0:this.#l[e];if(this.#_(i))return i;const n=new ye,{signal:o}=s;o?.addEventListener("abort",(()=>n.abort(o.reason)),{signal:n.signal});const a={signal:n.signal,options:s,context:r},c=(r,i=!1)=>{const{aborted:o}=n.signal,c=s.ignoreFetchAbort&&void 0!==r;if(s.status&&(o&&!i?(s.status.fetchAborted=!0,s.status.fetchError=n.signal.reason,c&&(s.status.fetchAbortIgnored=!0)):s.status.fetchResolved=!0),o&&!c&&!i)return h(n.signal.reason);const l=u;return this.#l[e]===u&&(void 0===r?l.__staleWhileFetching?this.#l[e]=l.__staleWhileFetching:this.#B(t,"fetch"):(s.status&&(s.status.fetchUpdated=!0),this.set(t,r,a.options))),r},h=r=>{const{aborted:i}=n.signal,o=i&&s.allowStaleOnFetchAbort,a=o||s.allowStaleOnFetchRejection,c=a||s.noDeleteOnFetchRejection,h=u;if(this.#l[e]===u&&(c&&void 0!==h.__staleWhileFetching?o||(this.#l[e]=h.__staleWhileFetching):this.#B(t,"fetch")),a)return s.status&&void 0!==h.__staleWhileFetching&&(s.status.returnedStale=!0),h.__staleWhileFetching;if(h.__returned===h)throw r};s.status&&(s.status.fetchDispatched=!0);const u=new Promise(((e,r)=>{const o=this.#n?.(t,i,a);o&&o instanceof Promise&&o.then((t=>e(void 0===t?void 0:t)),r),n.signal.addEventListener("abort",(()=>{s.ignoreFetchAbort&&!s.allowStaleOnFetchAbort||(e(void 0),s.allowStaleOnFetchAbort&&(e=t=>c(t,!0)))}))})).then(c,(t=>(s.status&&(s.status.fetchRejected=!0,s.status.fetchError=t),h(t)))),l=Object.assign(u,{__abortController:n,__staleWhileFetching:i,__returned:void 0});return void 0===e?(this.set(t,l,{...a.options,status:void 0}),e=this.#h.get(t)):this.#l[e]=l,l}#_(t){if(!this.#k)return!1;const e=t;return!!e&&e instanceof Promise&&e.hasOwnProperty("__staleWhileFetching")&&e.__abortController instanceof ye}async fetch(t,e={}){const{allowStale:s=this.allowStale,updateAgeOnGet:r=this.updateAgeOnGet,noDeleteOnStaleGet:i=this.noDeleteOnStaleGet,ttl:n=this.ttl,noDisposeOnSet:o=this.noDisposeOnSet,size:a=0,sizeCalculation:c=this.sizeCalculation,noUpdateTTL:h=this.noUpdateTTL,noDeleteOnFetchRejection:u=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:l=this.allowStaleOnFetchRejection,ignoreFetchAbort:d=this.ignoreFetchAbort,allowStaleOnFetchAbort:f=this.allowStaleOnFetchAbort,context:p,forceRefresh:g=!1,status:m,signal:y}=e;if(!this.#k)return m&&(m.fetch="get"),this.get(t,{allowStale:s,updateAgeOnGet:r,noDeleteOnStaleGet:i,status:m});const b={allowStale:s,updateAgeOnGet:r,noDeleteOnStaleGet:i,ttl:n,noDisposeOnSet:o,size:a,sizeCalculation:c,noUpdateTTL:h,noDeleteOnFetchRejection:u,allowStaleOnFetchRejection:l,allowStaleOnFetchAbort:f,ignoreFetchAbort:d,status:m,signal:y};let v=this.#h.get(t);if(void 0===v){m&&(m.fetch="miss");const e=this.#O(t,v,b,p);return e.__returned=e}{const e=this.#l[v];if(this.#_(e)){const t=s&&void 0!==e.__staleWhileFetching;return m&&(m.fetch="inflight",t&&(m.returnedStale=!0)),t?e.__staleWhileFetching:e.__returned=e}const i=this.#R(v);if(!g&&!i)return m&&(m.fetch="hit"),this.#T(v),r&&this.#P(v),m&&this.#D(m,v),e;const n=this.#O(t,v,b,p),o=void 0!==n.__staleWhileFetching&&s;return m&&(m.fetch=i?"stale":"refresh",o&&i&&(m.returnedStale=!0)),o?n.__staleWhileFetching:n.__returned=n}}async forceFetch(t,e={}){const s=await this.fetch(t,e);if(void 0===s)throw new Error("fetch() returned undefined");return s}memo(t,e={}){const s=this.#o;if(!s)throw new Error("no memoMethod provided to constructor");const{context:r,forceRefresh:i,...n}=e,o=this.get(t,n);if(!i&&void 0!==o)return o;const a=s(t,o,{options:n,context:r});return this.set(t,a,n),a}get(t,e={}){const{allowStale:s=this.allowStale,updateAgeOnGet:r=this.updateAgeOnGet,noDeleteOnStaleGet:i=this.noDeleteOnStaleGet,status:n}=e,o=this.#h.get(t);if(void 0!==o){const e=this.#l[o],a=this.#_(e);return n&&this.#D(n,o),this.#R(o)?(n&&(n.get="stale"),a?(n&&s&&void 0!==e.__staleWhileFetching&&(n.returnedStale=!0),s?e.__staleWhileFetching:void 0):(i||this.#B(t,"expire"),n&&s&&(n.returnedStale=!0),s?e:void 0)):(n&&(n.get="hit"),a?e.__staleWhileFetching:(this.#T(o),r&&this.#P(o),e))}n&&(n.get="miss")}#q(t,e){this.#f[e]=t,this.#d[t]=e}#T(t){t!==this.#g&&(t===this.#p?this.#p=this.#d[t]:this.#q(this.#f[t],this.#d[t]),this.#q(this.#g,t),this.#g=t)}delete(t){return this.#B(t,"delete")}#B(t,e){let s=!1;if(0!==this.#a){const r=this.#h.get(t);if(void 0!==r)if(s=!0,1===this.#a)this.#U(e);else{this.#F(r);const s=this.#l[r];if(this.#_(s)?s.__abortController.abort(new Error("deleted")):(this.#S||this.#E)&&(this.#S&&this.#r?.(s,t,e),this.#E&&this.#y?.push([s,t,e])),this.#h.delete(t),this.#u[r]=void 0,this.#l[r]=void 0,r===this.#g)this.#g=this.#f[r];else if(r===this.#p)this.#p=this.#d[r];else{const t=this.#f[r];this.#d[t]=this.#d[r];const e=this.#d[r];this.#f[e]=this.#f[r]}this.#a--,this.#m.push(r)}}if(this.#E&&this.#y?.length){const t=this.#y;let e;for(;e=t?.shift();)this.#i?.(...e)}return s}clear(){return this.#U("delete")}#U(t){for(const e of this.#A({allowStale:!0})){const s=this.#l[e];if(this.#_(s))s.__abortController.abort(new Error("deleted"));else{const r=this.#u[e];this.#S&&this.#r?.(s,r,t),this.#E&&this.#y?.push([s,r,t])}}if(this.#h.clear(),this.#l.fill(void 0),this.#u.fill(void 0),this.#w&&this.#v&&(this.#w.fill(0),this.#v.fill(0)),this.#b&&this.#b.fill(0),this.#p=0,this.#g=0,this.#m.length=0,this.#c=0,this.#a=0,this.#E&&this.#y){const t=this.#y;let e;for(;e=t?.shift();)this.#i?.(...e)}}}var _e=function(t,e){return _e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&(t[s]=e[s])},_e(t,e)};function Oe(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function s(){this.constructor=t}_e(t,e),t.prototype=null===e?Object.create(e):(s.prototype=e.prototype,new s)}function Te(t,e){var s,r,i,n,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return n={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(n[Symbol.iterator]=function(){return this}),n;function a(a){return function(c){return function(a){if(s)throw new TypeError("Generator is already executing.");for(;n&&(n=0,a[0]&&(o=0)),o;)try{if(s=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!((i=(i=o.trys).length>0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]<i[3])){o.label=a[1];break}if(6===a[0]&&o.label<i[1]){o.label=i[1],i=a;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(a);break}i[2]&&o.ops.pop(),o.trys.pop();continue}a=e.call(t,o)}catch(t){a=[6,t],r=0}finally{s=i=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,c])}}}function xe(t){var e="function"==typeof Symbol&&Symbol.iterator,s=e&&t[e],r=0;if(s)return s.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function Ae(t,e){var s="function"==typeof Symbol&&t[Symbol.iterator];if(!s)return t;var r,i,n=s.call(t),o=[];try{for(;(void 0===e||e-- >0)&&!(r=n.next()).done;)o.push(r.value)}catch(t){i={error:t}}finally{try{r&&!r.done&&(s=n.return)&&s.call(n)}finally{if(i)throw i.error}}return o}function Re(t,e,s){if(s||2===arguments.length)for(var r,i=0,n=e.length;i<n;i++)!r&&i in e||(r||(r=Array.prototype.slice.call(e,0,i)),r[i]=e[i]);return t.concat(r||Array.prototype.slice.call(e))}function Le(t){return this instanceof Le?(this.v=t,this):new Le(t)}function Ce(t){return"function"==typeof t}function je(t){var e=t((function(t){Error.call(t),t.stack=(new Error).stack}));return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;var Be=je((function(t){return function(e){t(this),this.message=e?e.length+" errors occurred during unsubscription:\n"+e.map((function(t,e){return e+1+") "+t.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=e}}));function Pe(t,e){if(t){var s=t.indexOf(e);0<=s&&t.splice(s,1)}}var De=function(){function t(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return t.prototype.unsubscribe=function(){var t,e,s,r,i;if(!this.closed){this.closed=!0;var n=this._parentage;if(n)if(this._parentage=null,Array.isArray(n))try{for(var o=xe(n),a=o.next();!a.done;a=o.next())a.value.remove(this)}catch(e){t={error:e}}finally{try{a&&!a.done&&(e=o.return)&&e.call(o)}finally{if(t)throw t.error}}else n.remove(this);var c=this.initialTeardown;if(Ce(c))try{c()}catch(t){i=t instanceof Be?t.errors:[t]}var h=this._finalizers;if(h){this._finalizers=null;try{for(var u=xe(h),l=u.next();!l.done;l=u.next()){var d=l.value;try{Me(d)}catch(t){i=null!=i?i:[],t instanceof Be?i=Re(Re([],Ae(i)),Ae(t.errors)):i.push(t)}}}catch(t){s={error:t}}finally{try{l&&!l.done&&(r=u.return)&&r.call(u)}finally{if(s)throw s.error}}}if(i)throw new Be(i)}},t.prototype.add=function(e){var s;if(e&&e!==this)if(this.closed)Me(e);else{if(e instanceof t){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._finalizers=null!==(s=this._finalizers)&&void 0!==s?s:[]).push(e)}},t.prototype._hasParent=function(t){var e=this._parentage;return e===t||Array.isArray(e)&&e.includes(t)},t.prototype._addParent=function(t){var e=this._parentage;this._parentage=Array.isArray(e)?(e.push(t),e):e?[e,t]:t},t.prototype._removeParent=function(t){var e=this._parentage;e===t?this._parentage=null:Array.isArray(e)&&Pe(e,t)},t.prototype.remove=function(e){var s=this._finalizers;s&&Pe(s,e),e instanceof t&&e._removeParent(this)},t.EMPTY=function(){var e=new t;return e.closed=!0,e}(),t}(),Fe=De.EMPTY;function Ne(t){return t instanceof De||t&&"closed"in t&&Ce(t.remove)&&Ce(t.add)&&Ce(t.unsubscribe)}function Me(t){Ce(t)?t():t.unsubscribe()}var Ie={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},ze={setTimeout:function(t,e){for(var s=[],r=2;r<arguments.length;r++)s[r-2]=arguments[r];var i=ze.delegate;return(null==i?void 0:i.setTimeout)?i.setTimeout.apply(i,Re([t,e],Ae(s))):setTimeout.apply(void 0,Re([t,e],Ae(s)))},clearTimeout:function(t){var e=ze.delegate;return((null==e?void 0:e.clearTimeout)||clearTimeout)(t)},delegate:void 0};function qe(t){ze.setTimeout((function(){var e=Ie.onUnhandledError;if(!e)throw t;e(t)}))}function Ue(){}var Ve=We("C",void 0,void 0);function We(t,e,s){return{kind:t,value:e,error:s}}var He=null;function $e(t){if(Ie.useDeprecatedSynchronousErrorHandling){var e=!He;if(e&&(He={errorThrown:!1,error:null}),t(),e){var s=He,r=s.errorThrown,i=s.error;if(He=null,r)throw i}}else t()}var Je=function(t){function e(e){var s=t.call(this)||this;return s.isStopped=!1,e?(s.destination=e,Ne(e)&&e.add(s)):s.destination=ts,s}return Oe(e,t),e.create=function(t,e,s){return new Xe(t,e,s)},e.prototype.next=function(t){this.isStopped?Ze(function(t){return We("N",t,void 0)}(t),this):this._next(t)},e.prototype.error=function(t){this.isStopped?Ze(We("E",void 0,t),this):(this.isStopped=!0,this._error(t))},e.prototype.complete=function(){this.isStopped?Ze(Ve,this):(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this),this.destination=null)},e.prototype._next=function(t){this.destination.next(t)},e.prototype._error=function(t){try{this.destination.error(t)}finally{this.unsubscribe()}},e.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},e}(De),Ge=Function.prototype.bind;function Ke(t,e){return Ge.call(t,e)}var Ye=function(){function t(t){this.partialObserver=t}return t.prototype.next=function(t){var e=this.partialObserver;if(e.next)try{e.next(t)}catch(t){Qe(t)}},t.prototype.error=function(t){var e=this.partialObserver;if(e.error)try{e.error(t)}catch(t){Qe(t)}else Qe(t)},t.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(t){Qe(t)}},t}(),Xe=function(t){function e(e,s,r){var i,n,o=t.call(this)||this;return Ce(e)||!e?i={next:null!=e?e:void 0,error:null!=s?s:void 0,complete:null!=r?r:void 0}:o&&Ie.useDeprecatedNextContext?((n=Object.create(e)).unsubscribe=function(){return o.unsubscribe()},i={next:e.next&&Ke(e.next,n),error:e.error&&Ke(e.error,n),complete:e.complete&&Ke(e.complete,n)}):i=e,o.destination=new Ye(i),o}return Oe(e,t),e}(Je);function Qe(t){var e;Ie.useDeprecatedSynchronousErrorHandling?(e=t,Ie.useDeprecatedSynchronousErrorHandling&&He&&(He.errorThrown=!0,He.error=e)):qe(t)}function Ze(t,e){var s=Ie.onStoppedNotification;s&&ze.setTimeout((function(){return s(t,e)}))}var ts={closed:!0,next:Ue,error:function(t){throw t},complete:Ue},es="function"==typeof Symbol&&Symbol.observable||"@@observable";function ss(t){return t}var rs=function(){function t(t){t&&(this._subscribe=t)}return t.prototype.lift=function(e){var s=new t;return s.source=this,s.operator=e,s},t.prototype.subscribe=function(t,e,s){var r=this,i=function(t){return t&&t instanceof Je||function(t){return t&&Ce(t.next)&&Ce(t.error)&&Ce(t.complete)}(t)&&Ne(t)}(t)?t:new Xe(t,e,s);return $e((function(){var t=r,e=t.operator,s=t.source;i.add(e?e.call(i,s):s?r._subscribe(i):r._trySubscribe(i))})),i},t.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(e){t.error(e)}},t.prototype.forEach=function(t,e){var s=this;return new(e=is(e))((function(e,r){var i=new Xe({next:function(e){try{t(e)}catch(t){r(t),i.unsubscribe()}},error:r,complete:e});s.subscribe(i)}))},t.prototype._subscribe=function(t){var e;return null===(e=this.source)||void 0===e?void 0:e.subscribe(t)},t.prototype[es]=function(){return this},t.prototype.pipe=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return(0===(s=t).length?ss:1===s.length?s[0]:function(t){return s.reduce((function(t,e){return e(t)}),t)})(this);var s},t.prototype.toPromise=function(t){var e=this;return new(t=is(t))((function(t,s){var r;e.subscribe((function(t){return r=t}),(function(t){return s(t)}),(function(){return t(r)}))}))},t.create=function(e){return new t(e)},t}();function is(t){var e;return null!==(e=null!=t?t:Ie.Promise)&&void 0!==e?e:Promise}var ns=je((function(t){return function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}})),os=function(t){function e(){var e=t.call(this)||this;return e.closed=!1,e.currentObservers=null,e.observers=[],e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return Oe(e,t),e.prototype.lift=function(t){var e=new as(this,this);return e.operator=t,e},e.prototype._throwIfClosed=function(){if(this.closed)throw new ns},e.prototype.next=function(t){var e=this;$e((function(){var s,r;if(e._throwIfClosed(),!e.isStopped){e.currentObservers||(e.currentObservers=Array.from(e.observers));try{for(var i=xe(e.currentObservers),n=i.next();!n.done;n=i.next())n.value.next(t)}catch(t){s={error:t}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(s)throw s.error}}}}))},e.prototype.error=function(t){var e=this;$e((function(){if(e._throwIfClosed(),!e.isStopped){e.hasError=e.isStopped=!0,e.thrownError=t;for(var s=e.observers;s.length;)s.shift().error(t)}}))},e.prototype.complete=function(){var t=this;$e((function(){if(t._throwIfClosed(),!t.isStopped){t.isStopped=!0;for(var e=t.observers;e.length;)e.shift().complete()}}))},e.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(e.prototype,"observed",{get:function(){var t;return(null===(t=this.observers)||void 0===t?void 0:t.length)>0},enumerable:!1,configurable:!0}),e.prototype._trySubscribe=function(e){return this._throwIfClosed(),t.prototype._trySubscribe.call(this,e)},e.prototype._subscribe=function(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)},e.prototype._innerSubscribe=function(t){var e=this,s=this,r=s.hasError,i=s.isStopped,n=s.observers;return r||i?Fe:(this.currentObservers=null,n.push(t),new De((function(){e.currentObservers=null,Pe(n,t)})))},e.prototype._checkFinalizedStatuses=function(t){var e=this,s=e.hasError,r=e.thrownError,i=e.isStopped;s?t.error(r):i&&t.complete()},e.prototype.asObservable=function(){var t=new rs;return t.source=this,t},e.create=function(t,e){return new as(t,e)},e}(rs),as=function(t){function e(e,s){var r=t.call(this)||this;return r.destination=e,r.source=s,r}return Oe(e,t),e.prototype.next=function(t){var e,s;null===(s=null===(e=this.destination)||void 0===e?void 0:e.next)||void 0===s||s.call(e,t)},e.prototype.error=function(t){var e,s;null===(s=null===(e=this.destination)||void 0===e?void 0:e.error)||void 0===s||s.call(e,t)},e.prototype.complete=function(){var t,e;null===(e=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===e||e.call(t)},e.prototype._subscribe=function(t){var e,s;return null!==(s=null===(e=this.source)||void 0===e?void 0:e.subscribe(t))&&void 0!==s?s:Fe},e}(os),cs=function(t){function e(e){var s=t.call(this)||this;return s._value=e,s}return Oe(e,t),Object.defineProperty(e.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),e.prototype._subscribe=function(e){var s=t.prototype._subscribe.call(this,e);return!s.closed&&e.next(this._value),s},e.prototype.getValue=function(){var t=this,e=t.hasError,s=t.thrownError,r=t._value;if(e)throw s;return this._throwIfClosed(),r},e.prototype.next=function(e){t.prototype.next.call(this,this._value=e)},e}(os),hs={now:function(){return(hs.delegate||Date).now()},delegate:void 0},us=function(t){function e(e,s,r){void 0===e&&(e=1/0),void 0===s&&(s=1/0),void 0===r&&(r=hs);var i=t.call(this)||this;return i._bufferSize=e,i._windowTime=s,i._timestampProvider=r,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=s===1/0,i._bufferSize=Math.max(1,e),i._windowTime=Math.max(1,s),i}return Oe(e,t),e.prototype.next=function(e){var s=this,r=s.isStopped,i=s._buffer,n=s._infiniteTimeWindow,o=s._timestampProvider,a=s._windowTime;r||(i.push(e),!n&&i.push(o.now()+a)),this._trimBuffer(),t.prototype.next.call(this,e)},e.prototype._subscribe=function(t){this._throwIfClosed(),this._trimBuffer();for(var e=this._innerSubscribe(t),s=this._infiniteTimeWindow,r=this._buffer.slice(),i=0;i<r.length&&!t.closed;i+=s?1:2)t.next(r[i]);return this._checkFinalizedStatuses(t),e},e.prototype._trimBuffer=function(){var t=this,e=t._bufferSize,s=t._timestampProvider,r=t._buffer,i=t._infiniteTimeWindow,n=(i?1:2)*e;if(e<1/0&&n<r.length&&r.splice(0,r.length-n),!i){for(var o=s.now(),a=0,c=1;c<r.length&&r[c]<=o;c+=2)a=c;a&&r.splice(0,a+1)}},e}(os);function ls(t){return function(e){if(function(t){return Ce(null==t?void 0:t.lift)}(e))return e.lift((function(e){try{return t(e,this)}catch(t){this.error(t)}}));throw new TypeError("Unable to lift unknown Observable type")}}function ds(t,e,s,r,i){return new fs(t,e,s,r,i)}var fs=function(t){function e(e,s,r,i,n,o){var a=t.call(this,e)||this;return a.onFinalize=n,a.shouldUnsubscribe=o,a._next=s?function(t){try{s(t)}catch(t){e.error(t)}}:t.prototype._next,a._error=i?function(t){try{i(t)}catch(t){e.error(t)}finally{this.unsubscribe()}}:t.prototype._error,a._complete=r?function(){try{r()}catch(t){e.error(t)}finally{this.unsubscribe()}}:t.prototype._complete,a}return Oe(e,t),e.prototype.unsubscribe=function(){var e;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var s=this.closed;t.prototype.unsubscribe.call(this),!s&&(null===(e=this.onFinalize)||void 0===e||e.call(this))}},e}(Je);function ps(){return ls((function(t,e){var s,r=!1;t.subscribe(ds(e,(function(t){var i=s;s=t,r&&e.next([i,t]),r=!0})))}))}function gs(t,e){return ls((function(s,r){var i=0;s.subscribe(ds(r,(function(s){return t.call(e,s,i++)&&r.next(s)})))}))}function ms(t,e){return ls((function(s,r){var i=0;s.subscribe(ds(r,(function(s){r.next(t.call(e,s,i++))})))}))}var ys=function(t){return t&&"number"==typeof t.length&&"function"!=typeof t},bs="function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator";function vs(t){if(t instanceof rs)return t;if(null!=t){if(function(t){return Ce(t[es])}(t))return i=t,new rs((function(t){var e=i[es]();if(Ce(e.subscribe))return e.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")}));if(ys(t))return r=t,new rs((function(t){for(var e=0;e<r.length&&!t.closed;e++)t.next(r[e]);t.complete()}));if(function(t){return Ce(null==t?void 0:t.then)}(t))return s=t,new rs((function(t){s.then((function(e){t.closed||(t.next(e),t.complete())}),(function(e){return t.error(e)})).then(null,qe)}));if(function(t){return Symbol.asyncIterator&&Ce(null==t?void 0:t[Symbol.asyncIterator])}(t))return ws(t);if(function(t){return Ce(null==t?void 0:t[bs])}(t))return e=t,new rs((function(t){var s,r;try{for(var i=xe(e),n=i.next();!n.done;n=i.next()){var o=n.value;if(t.next(o),t.closed)return}}catch(t){s={error:t}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(s)throw s.error}}t.complete()}));if(function(t){return Ce(null==t?void 0:t.getReader)}(t))return ws(function(t){return function(t,e,s){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,i=s.apply(t,e||[]),n=[];return r={},o("next"),o("throw"),o("return",(function(t){return function(e){return Promise.resolve(e).then(t,h)}})),r[Symbol.asyncIterator]=function(){return this},r;function o(t,e){i[t]&&(r[t]=function(e){return new Promise((function(s,r){n.push([t,e,s,r])>1||a(t,e)}))},e&&(r[t]=e(r[t])))}function a(t,e){try{(s=i[t](e)).value instanceof Le?Promise.resolve(s.value.v).then(c,h):u(n[0][2],s)}catch(t){u(n[0][3],t)}var s}function c(t){a("next",t)}function h(t){a("throw",t)}function u(t,e){t(e),n.shift(),n.length&&a(n[0][0],n[0][1])}}(this,arguments,(function(){var e,s,r;return Te(this,(function(i){switch(i.label){case 0:e=t.getReader(),i.label=1;case 1:i.trys.push([1,,9,10]),i.label=2;case 2:return[4,Le(e.read())];case 3:return s=i.sent(),r=s.value,s.done?[4,Le(void 0)]:[3,5];case 4:return[2,i.sent()];case 5:return[4,Le(r)];case 6:return[4,i.sent()];case 7:return i.sent(),[3,2];case 8:return[3,10];case 9:return e.releaseLock(),[7];case 10:return[2]}}))}))}(t))}var e,s,r,i;throw function(t){return new TypeError("You provided "+(null!==t&&"object"==typeof t?"an invalid object":"'"+t+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}(t)}function ws(t){return new rs((function(e){(function(t,e){var s,r,i,n,o,a,c,h;return o=this,a=void 0,h=function(){var o,a;return Te(this,(function(c){switch(c.label){case 0:c.trys.push([0,5,6,11]),s=function(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,s=t[Symbol.asyncIterator];return s?s.call(t):(t=xe(t),e={},r("next"),r("throw"),r("return"),e[Symbol.asyncIterator]=function(){return this},e);function r(s){e[s]=t[s]&&function(e){return new Promise((function(r,i){!function(t,e,s,r){Promise.resolve(r).then((function(e){t({value:e,done:s})}),e)}(r,i,(e=t[s](e)).done,e.value)}))}}}(t),c.label=1;case 1:return[4,s.next()];case 2:if((r=c.sent()).done)return[3,4];if(o=r.value,e.next(o),e.closed)return[2];c.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return a=c.sent(),i={error:a},[3,11];case 6:return c.trys.push([6,,9,10]),r&&!r.done&&(n=s.return)?[4,n.call(s)]:[3,8];case 7:c.sent(),c.label=8;case 8:return[3,10];case 9:if(i)throw i.error;return[7];case 10:return[7];case 11:return e.complete(),[2]}}))},new((c=void 0)||(c=Promise))((function(t,e){function s(t){try{i(h.next(t))}catch(t){e(t)}}function r(t){try{i(h.throw(t))}catch(t){e(t)}}function i(e){e.done?t(e.value):function(t){return t instanceof c?t:new c((function(e){e(t)}))}(e.value).then(s,r)}i((h=h.apply(o,a||[])).next())}))})(t,e).catch((function(t){return e.error(t)}))}))}function Ss(t){void 0===t&&(t={});var e=t.connector,s=void 0===e?function(){return new os}:e,r=t.resetOnError,i=void 0===r||r,n=t.resetOnComplete,o=void 0===n||n,a=t.resetOnRefCountZero,c=void 0===a||a;return function(t){var e,r,n,a=0,h=!1,u=!1,l=function(){null==r||r.unsubscribe(),r=void 0},d=function(){l(),e=n=void 0,h=u=!1},f=function(){var t=e;d(),null==t||t.unsubscribe()};return ls((function(t,p){a++,u||h||l();var g=n=null!=n?n:s();p.add((function(){0!=--a||u||h||(r=ks(f,c))})),g.subscribe(p),!e&&a>0&&(e=new Xe({next:function(t){return g.next(t)},error:function(t){u=!0,l(),r=ks(d,i,t),g.error(t)},complete:function(){h=!0,l(),r=ks(d,o),g.complete()}}),vs(t).subscribe(e))}))(t)}}function ks(t,e){for(var s=[],r=2;r<arguments.length;r++)s[r-2]=arguments[r];if(!0!==e){if(!1!==e){var i=new Xe({next:function(){i.unsubscribe(),t()}});return vs(e.apply(void 0,Re([],Ae(s)))).subscribe(i)}}else t()}function Es(t,e,s){return void 0===s&&(s=1/0),Ce(e)?Es((function(s,r){return ms((function(t,i){return e(s,t,r,i)}))(vs(t(s,r)))}),s):("number"==typeof e&&(s=e),ls((function(e,r){return function(t,e,s,r,i,n,o,a){var c=[],h=0,u=0,l=!1,d=function(){!l||c.length||h||e.complete()},f=function(t){return h<r?p(t):c.push(t)},p=function(t){h++;var i=!1;vs(s(t,u++)).subscribe(ds(e,(function(t){e.next(t)}),(function(){i=!0}),void 0,(function(){if(i)try{h--;for(var t=function(){var t=c.shift();p(t)};c.length&&h<r;)t();d()}catch(t){e.error(t)}})))};return t.subscribe(ds(e,f,(function(){l=!0,d()}))),function(){}}(e,r,t,s)})))}function _s(t,e){return t===e}const Os=(t,e,s=!1)=>{if(t===e)return!0;if((void 0===t||void 0===e||null===t||null===e)&&(t||e))return!1;const r=t?.constructor.name,i=e?.constructor.name;if(r!==i)return!1;if("Array"===r&&"Array"===i){if(t.length!==e.length)return!1;if(s){const r=[...e];return t.every((t=>{const e=r.findIndex((e=>Os(t,e,s)));return-1!==e&&(r.splice(e,1),!0)}))}{let r=!0;for(let i=0;i<t.length;i++)if(!Os(t[i],e[i],s)){r=!1;break}return r}}if("Object"===r&&"Object"===i){let r=!0;const i=Object.keys(t),n=Object.keys(e);if(i.length!==n.length)return!1;for(let n=0;n<i.length;n++)if(t[i[n]]&&e[i[n]]){if(t[i[n]]===e[i[n]])continue;if(!t[i[n]]||"Array"!==t[i[n]].constructor.name&&"Object"!==t[i[n]].constructor.name){if(t[i[n]]!==e[i[n]]){r=!1;break}}else if(r=Os(t[i[n]],e[i[n]],s),!r)break}else if(t[i[n]]&&!e[i[n]]||!t[i[n]]&&e[i[n]]){r=!1;break}return r}return t===e},Ts=t=>JSON.parse(JSON.stringify(t)),xs=(t,e)=>{const{origWidth:s,origHeight:r}=e,i=t.points.map((([t,e])=>[t*s/100,e*r/100]));return{...t,points:i}},As=t=>{const{origWidth:e,origHeight:s,inputWidth:r,inputHeight:i}=t,[n,o,a,c]=t.boundingBox,h=n*e/r,u=o*s/i,l=a*e/r,d=c*s/i;return{...t,boundingBox:[h,u,l,d]}},Rs=(t,e,s)=>{if(t.confidence<s.object.confidence)return!1;if(0===e.length)return!0;const[r,i,n,o]=t.boundingBox,a={xmin:r,ymin:i,xmax:n,ymax:o};let c=!1;for(const s of e){const e=xs(s,t);if(e.isPrivacyMask){if(Cs(a,e.points)){c=!1;break}}else"include"===e.filter?"contain"===e.type?Cs(a,e.points)&&(c=!0):"intersect"===e.type&&(Ls(a,e.points)||Cs(a,e.points))&&(c=!0):"exclude"===e.filter&&("contain"===e.type?Cs(a,e.points)||(c=!0):"intersect"===e.type&&(Ls(a,e.points)||Cs(a,e.points)||(c=!0)))}return c},Ls=(t,e)=>{const s=js(t);for(const t of s)for(let s=0;s<e.length;s++){const r=[e[s],e[(s+1)%e.length]];if(Bs(t,r))return!0}return!1},Cs=(t,e)=>[[t.xmin,t.ymin],[t.xmax,t.ymin],[t.xmax,t.ymax],[t.xmin,t.ymax]].every((t=>Ps(t,e))),js=t=>{const{xmin:e,ymin:s,xmax:r,ymax:i}=t;return[[[e,s],[r,s]],[[r,s],[r,i]],[[r,i],[e,i]],[[e,i],[e,s]]]},Bs=(t,e)=>{const s=(t,e,s)=>(s[1]-t[1])*(e[0]-t[0])>(e[1]-t[1])*(s[0]-t[0]);return r=t[0],i=t[1],s(r,n=e[0],o=e[1])!==s(i,n,o)&&s(r,i,n)!==s(r,i,o);var r,i,n,o},Ps=(t,e)=>{const[s,r]=t;let i=!1,[n,o]=e[e.length-1];for(const[t,a]of e)a>r!=o>r&&s<(n-t)*(r-a)/(o-a)+t&&(i=!i),[n,o]=[t,a];return i};class Ds{subscriptions=[];additionalSubscriptions=[];addSubscriptions(...t){this.subscriptions.push(...t)}addAdditionalSubscriptions(...t){this.additionalSubscriptions.push(...t)}unsubscribe(){this.subscriptions.forEach((t=>t.unsubscribe()))}unsubscribeAdditional(){this.additionalSubscriptions.forEach((t=>t.unsubscribe()))}}class Fs extends Ds{logger;snapshotCache=new Ee({max:100,ttl:3e5});cameraSubject;cameraState=new cs(!1);lightState=new cs(this.getLightState({state:!1},!0));motionState=new cs(this.getMotionState({detections:[],state:!1},!0));audioState=new cs(this.getAudioState({state:!1,db:0},!0));objectState=new cs(this.getObjectState({detections:[]},!0));doorbellState=new cs(this.getDoorbellState({state:!1},!0));sirenState=new cs(this.getSirenState({state:!1,level:0},!0));batteryState=new cs(this.getBatteryState({level:100,charging:!1,lowBattery:!1},!0));prebufferStateSubjects={};onConnected=this.createStateObservable(this.cameraState);onLightSwitched=this.createStateObservable(this.lightState);onMotionDetected=this.createStateObservable(this.motionState);onAudioDetected=this.createStateObservable(this.audioState);onObjectDetected=this.createStateObservable(this.objectState);onDoorbellPressed=this.createStateObservable(this.doorbellState);onSirenDetected=this.createStateObservable(this.sirenState);onBatteryChanged=this.createStateObservable(this.batteryState);get cameraObject(){return Ts(this.cameraSubject.getValue())}get id(){return this.cameraSubject.getValue()._id}get nativeId(){return this.cameraSubject.getValue().nativeId}get pluginId(){return this.cameraSubject.getValue().pluginId}get connected(){return this.cameraState.getValue()}get disabled(){return this.cameraSubject.getValue().disabled}get name(){return this.cameraSubject.getValue().name}get type(){return this.cameraSubject.getValue().type}get info(){return Ts(this.cameraSubject.getValue().info)}get isCloud(){return this.cameraSubject.getValue().isCloud}get hasLight(){return this.cameraSubject.getValue().hasLight}get hasSiren(){return this.cameraSubject.getValue().hasSiren}get hasBinarySensor(){return this.cameraSubject.getValue().hasBinarySensor}get hasBattery(){return this.cameraSubject.getValue().hasBattery}get hasMotionDetector(){return this.cameraSubject.getValue().hasMotionDetector}get hasAudioDetector(){return this.cameraSubject.getValue().hasAudioDetector}get hasObjectDetector(){return this.cameraSubject.getValue().hasObjectDetector}get hasPtz(){return this.cameraSubject.getValue().hasPtz}get hasPrebuffer(){return this.cameraSubject.getValue().hasPrebuffer}get activityZones(){return Ts(this.cameraSubject.getValue().activityZones)}get activitySettings(){return Ts(this.cameraSubject.getValue().activitySettings)}get frameWorkerSettings(){return Ts(this.cameraSubject.getValue().frameWorkerSettings)}get sources(){return Ts(this.cameraSubject.getValue().sources).map((t=>({...t,updatePrebufferingState:async(e,s)=>this.updatePrebuffer(t._id,e,s),getPrebufferingState:e=>this.cameraSourcePrebufferState(t._id,e),onPrebuffering:e=>this.createPrebufferStateObservable(t._id,e),getStreamInfo:async()=>{}})))}get streamSource(){return this.sources.find((t=>t.roles.includes("stream")))||this.sources[0]}get snapshotSource(){return this.sources.find((t=>t.roles.includes("snapshot")))||this.streamSource}get recordingSource(){return this.sources.find((t=>t.roles.includes("record")))||this.streamSource}get detectionSource(){return this.sources.find((t=>t.roles.includes("detect")))||this.streamSource}constructor(t,e){super(),this.logger=e,this.cameraSubject=new cs(t),"native"===t.pluginId&&this.cameraState.next(!0)}getValue(t){switch(t){case"light":return Ts(this.lightState.getValue());case"motion":return Ts(this.motionState.getValue());case"audio":return Ts(this.audioState.getValue());case"object":return Ts(this.objectState.getValue());case"doorbell":return Ts(this.doorbellState.getValue());case"siren":return Ts(this.sirenState.getValue());case"battery":return Ts(this.batteryState.getValue());default:throw new Error(`Unknown state: ${t}`)}}async snapshot(t){const e=this.snapshotSource.urls.www.jpegSnapshot,s=this.snapshotCache.get(this.snapshotSource._id);if(!t&&s)return s;const r=await fetch(e);if(!r.ok)throw new Error("Status Code: "+r.status);const i=await r.arrayBuffer();return i.byteLength>0&&this.snapshotCache.set(this.snapshotSource._id,i),i}onStateChange(t){return this[`${t}State`].pipe(ps(),gs((([e,s])=>"boolean"==typeof e||"boolean"==typeof s?e!==s:this.stateChanged(e,s,t))),ms((([t,e])=>({oldState:t,newState:e}))),Ss({connector:()=>new us(1)}))}updateStateInternal(t,e,s){let r,i=!1;if(s)i=!0,r=e;else{const s=this.checkStateInternal(t,e);i=s.changed,r=s.event}if(i)switch(t){case"light":this.lightState.next(this.getLightState(r));break;case"motion":this.motionState.next(this.getMotionState(r));break;case"audio":this.audioState.next(this.getAudioState(r));break;case"object":this.objectState.next(this.getObjectState(r));break;case"doorbell":this.doorbellState.next(this.getDoorbellState(r));break;case"siren":this.sirenState.next(this.getSirenState(r));break;case"battery":this.batteryState.next(this.getBatteryState(r));break;default:throw new Error(`Unknown state: ${t}`)}}onPropertyChange(t){return this.cameraSubject.pipe(ps(),Es((([e,s])=>(Array.isArray(t)?t:[t]).map((t=>({property:t,oldData:e[t],newData:s[t]}))))),gs((({oldData:t,newData:e})=>!Os(t,e,!0))),Ss({connector:()=>new us(1)}))}removeAllListeners(){this.lightState.complete(),this.motionState.complete(),this.audioState.complete(),this.objectState.complete(),this.doorbellState.complete(),this.sirenState.complete(),this.batteryState.complete(),this.cameraSubject.complete(),this.cameraState.complete()}checkStateInternal(t,e){let s,r=!1;switch(t){case"audio":const i=e;s=this.getAudioState(i),r=this.stateChanged(this.getValue("audio"),s,"audio");break;case"light":const n=e;s=this.getLightState(n),r=this.stateChanged(this.getValue("light"),s,"light");break;case"motion":const o=e;void 0!==o.state&&(o.detections=[]),o.detections=((t,e,s)=>{const r=[];for(const i of t)Rs(As(i),e,s)&&e.some((t=>!t.classes.length||t.classes.includes(i.label)))&&r.push(i);return r})(o.detections,this.activityZones,this.activitySettings),s=this.getMotionState(o),r=this.stateChanged(this.getValue("motion"),s,"motion");break;case"object":const a=e;a.detections=((t,e,s)=>{const r=[];for(const i of t)Rs(As(i),e,s)&&e.some((t=>!t.classes.length||t.classes.includes(i.label)))&&r.push(i);return r})(a.detections,this.activityZones,this.activitySettings),s=this.getObjectState(a),r=this.stateChanged(this.getValue("object"),s,"object");break;case"doorbell":const c=e;s=this.getDoorbellState(c),r=this.stateChanged(this.getValue("doorbell"),s,"doorbell");break;case"siren":const h=e;s=this.getSirenState(h),r=this.stateChanged(this.getValue("siren"),s,"siren");break;case"battery":const u=e;s=this.getBatteryState(u),r=this.stateChanged(this.getValue("battery"),s,"battery");break;default:throw new Error(`Unknown state: ${t}`)}return{changed:r,event:s}}getAudioState(t,e=!1){let s,r;if(!e){const t=this.getValue("audio");t.state?s=t:t.lastEvent?.state&&(s=t.lastEvent),s&&delete s.lastEvent}if(this.isStateEvent(t))r=t;else{const e={...t,timestamp:Date.now()};r={...e,db:e.db||s?.db||0,lastEvent:s||(e.state?e:void 0)}}return r}getMotionState(t,e=!1){let s,r;if(!e){const t=this.getValue("motion");t.detections.length?s=t:t.lastEvent?.detections.length&&(s=t.lastEvent),s&&delete s.lastEvent}if(this.isStateEvent(t))r=t;else{const e={...t,timestamp:Date.now()};r={...e,lastEvent:s||(e.detections.length?e:void 0)}}return r}getObjectState(t,e=!1){let s,r;if(!e){const t=this.getValue("object");t.detections.length?s=t:t.lastEvent?.detections.length&&(s=t.lastEvent),s&&delete s.lastEvent}if(this.isStateEvent(t))r=t;else{const e={...t,timestamp:Date.now()};r={...e,lastEvent:s||(e.detections.length?e:void 0)}}return r}getDoorbellState(t,e=!1){let s,r;if(!e){const t=this.getValue("doorbell");t.state?s=t:t.lastEvent?.state&&(s=t.lastEvent),s&&delete s.lastEvent}if(this.isStateEvent(t))r=t;else{const e={...t,timestamp:Date.now()};r={...e,lastEvent:s||(e.state?e:void 0)}}return r}getLightState(t,e=!1){let s,r;if(!e){const t=this.getValue("light");t.state?s=t:t.lastEvent?.state&&(s=t.lastEvent),s&&delete s.lastEvent}if(this.isStateEvent(t))r=t;else{const e={...t,timestamp:Date.now()};r={...e,lastEvent:s||(e.state?e:void 0)}}return r}getSirenState(t,e=!1){let s,r;if(!e){const t=this.getValue("siren");t.state?s=t:t.lastEvent?.state&&(s=t.lastEvent),s&&delete s.lastEvent}if(this.isStateEvent(t))r=t;else{const e={...t,timestamp:Date.now()};r={...e,level:e.level||s?.level||0,lastEvent:s||(e.state?e:void 0)}}return r}getBatteryState(t,e=!1){let s,r;if(!e){const e=this.getValue("battery");this.stateChanged(e,t,"battery")?s=e:e.lastEvent&&this.stateChanged(e.lastEvent,t,"battery")&&(s=e.lastEvent),s&&delete s.lastEvent}if(this.isStateEvent(t))r=t;else{const e={...t,timestamp:Date.now()};r={...e,charging:t.charging||s?.charging||!1,lowBattery:t.lowBattery||s?.lowBattery||!1,lastEvent:s||e}}return r}updateCamera(t){this.cameraSubject.next(t),this.updateCameraSourcesState()}async updatePrebuffer(t,e,s){this.prebufferStateSubjects[t]&&this.prebufferStateSubjects[t][e]&&this.prebufferStateSubjects[t][e].next({state:s.state,url:s.url||void 0,maxDuration:s.maxDuration,availableDuration:s.availableDuration})}updateCameraSourcesState(){const t=this.cameraSubject.getValue().sources;for(const e in this.prebufferStateSubjects)if(!t.some((t=>t._id===e))){for(const t in this.prebufferStateSubjects[e])this.prebufferStateSubjects[e][t].complete();delete this.prebufferStateSubjects[e]}}updateCameraState(t){this.cameraState.next(t)}cameraSourcePrebufferState(t,e){let s={state:!1,maxDuration:0,availableDuration:0};return this.prebufferStateSubjects[t]&&this.prebufferStateSubjects[t][e]&&(s=this.prebufferStateSubjects[t][e].getValue()),s}createStateObservable(t){return t.pipe(Ss({connector:()=>new us(1)}))}createPrebufferStateObservable(t,e){return this.prebufferStateSubjects[t]||(this.prebufferStateSubjects[t]={}),this.prebufferStateSubjects[t][e]||(this.prebufferStateSubjects[t][e]=new cs({state:!1,maxDuration:0,availableDuration:0})),this.prebufferStateSubjects[t][e].pipe((void 0===r&&(r=ss),s=null!=(s=(t,e)=>t.state===e.state&&t.url===e.url)?s:_s,ls((function(t,e){var i,n=!0;t.subscribe(ds(e,(function(t){var o=r(t);!n&&s(i,o)||(n=!1,i=o,e.next(t))})))}))),Ss({connector:()=>new us(1)}));var s,r}stateChanged(t,e,s){if(!t||!e||!s)return!1;if("audio"==s){if(!this.hasAudioDetector)return!1;const s=t,r=e;return s.state!==r.state||s.db!==r.db}if("motion"==s){if(!this.hasMotionDetector)return!1;const s=t,r=e;return void 0!==r.state?s.state!==r.state:!Os(s.detections,r.detections,!0)}if("object"==s){if(!this.hasObjectDetector)return!1;const s=e;return!Os(t.detections,s.detections,!0)}if("siren"==s){if(!this.hasSiren)return!1;const s=t,r=e;return s.state!==r.state||s.level!==r.level}if("battery"==s){if(!this.hasBattery)return!1;const s=t,r=e;return s.level!==r.level||s.lowBattery!==r.lowBattery||s.charging!==r.charging}if("doorbell"==s){if(!this.hasBinarySensor)return!1;const s=e;return t.state!==s.state}if("light"==s){if(!this.hasLight)return!1;const s=e;return t.state!==s.state}return!1}isStateEvent(t){return"timestamp"in t}}class Ns{}class Ms{}class Is{}class zs{}class qs{}class Us extends qs{delegate;onRequest;logger;constructor(t,e){super(),this.onRequest=t,this.logger=e}async detectAudio(t){return this.delegate?this.delegate.detectAudio(t):this._onRequest("detectAudio",[t])}_onRequest(t,e,s){return this.onRequest("audioDetectorDelegate",t,e,s)}}class Vs extends Is{delegate;onRequest;logger;constructor(t,e){super(),this.onRequest=t,this.logger=e}async detectImage(t){return this.delegate?this.delegate.detectImage(t):this._onRequest("detectImage",[t])}_onRequest(t,e,s){return this.onRequest("motionDetectorDelegate",t,e,s)}}class Ws extends zs{delegate;onRequest;logger;constructor(t,e){super(),this.onRequest=t,this.logger=e}async detectImage(t){return this.delegate?this.delegate.detectImage(t):this._onRequest("detectImage",[t])}_onRequest(t,e,s){return this.onRequest("objectDetectorDelegate",t,e,s)}}class Hs extends Ns{delegate;onRequest;logger;constructor(t,e){super(),this.onRequest=t,this.logger=e}async getStreamInfo(t){return this.delegate?this.delegate.getStreamInfo(t):this._onRequest("prebuffer","getStreamInfo",[t])}async updatePrebufferState(t,e,s){return this._onRequest("cameraFn","updatePrebufferState",{sourceId:t,container:e,state:s},0)}_onRequest(t,e,s,r){return this.onRequest("ptzDelegate",e,s,r)}}class $s extends Ms{delegate;onRequest;logger;constructor(t,e){super(),this.onRequest=t,this.logger=e}async moveAbsolute(t,e,s){return this.delegate?this.delegate.moveAbsolute(t,e,s):this._onRequest("moveAbsolute",[t,e,s])}async moveRelative(t,e,s){return this.delegate?this.delegate.moveRelative(t,e,s):this._onRequest("moveRelative",[t,e,s])}async moveContinuous(t,e,s){return this.delegate?this.delegate.moveContinuous(t,e,s):this._onRequest("moveContinuous",[t,e,s])}async stop(){return this.delegate?this.delegate.stop():this._onRequest("stop",[])}_onRequest(t,e,s){return this.onRequest("ptzDelegate",t,e,s)}}class Js extends EventTarget{cameraDevice;socketService;logger;options;videoPlayer;socket;streamId;closed=!1;micTransceiver=null;pc=null;buf=new Uint8Array(2097152);mediaSource=null;sourceBuffer=null;bufLen=0;mseCodecs="";videoPlayerMp4;media=["video","audio","microphone"];codecList=[];reconnectTimeout;_finishLoading=!1;get mode(){return this.options.mode}webrtcReconnectTimeout;constructor(t,e,s,r){super(),this.options=r,this.videoPlayer=r.videoElement,this.cameraDevice=t,this.socketService=e,this.logger=s;const{socket:i}=this.socketService.getSocket(`${t.id}-go2rtcSession`,!0);this.socket=i,this.socket.connect(),this.streamId=this.uuidv4(),this.createCodecsList()}connect(t){t&&(this.options.mode=t),this.socket.on("ws-open",this.onWsOpen.bind(this)),this.socket.on("ws-close",this.onWsClose.bind(this)),this.socket.on("ws-message",this.onWsMessage.bind(this)),this.socket.emit("ws-open",{id:this.streamId,cameraSource:this.options.sourceName,mode:this.options.mode})}disconnect(){this.socket.removeListener("ws-open",this.onWsOpen.bind(this)),this.socket.removeListener("ws-close",this.onWsClose.bind(this)),this.socket.removeListener("ws-message",this.onWsMessage.bind(this)),this.socket.emit("ws-close",{id:this.streamId})}async reconnect(t){this.dispatchEvent(new Event("reconnect")),this.close(),await new Promise((t=>setTimeout(t,100))),this.connect(t)}reset(){this._finishLoading=!1,this.pc?.getTransceivers().forEach((t=>t.sender?.track?.stop())),this.pc?.close(),this.pc=null,this.videoPlayerMp4?.remove(),this.videoPlayerMp4=void 0,this.videoPlayer.srcObject=null,this.videoPlayer.src="",this.videoPlayer.poster=""}close(){this.closed=!0,this.reset(),this.disconnect(),this.socket.emit("end"),this.socket.removeAllListeners()}onWsOpen({id:t}){if(t===this.streamId)switch(this.options.mode){case"webrtc":case"webrtc/tcp":this.requestWebrtc();break;case"mse":this.requestMse();break;case"hls":this.requestHls();break;case"mp4":this.requestMp4();break;case"mjpeg":this.requestMjpeg();break;default:this.dispatchEvent(new ErrorEvent("error",{message:"Unknown mode: "+this.options.mode}))}}onWsClose({id:t}){t===this.streamId&&(this.closed||void 0===this.options.reconnectInterval||(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=setTimeout((()=>{this.reconnect()}),this.options.reconnectInterval)))}onWsMessage({id:t,data:e}){if(t===this.streamId&&e.type)switch(e.type){case"mse":this.onMseData(e);break;case"hls":this.onHlsData(e);break;case"webrtc/candidate":case"webrtc/answer":this.onWebrtcData(e);break;case"mse-binary":this.onMseBuffer(e);break;case"mjpeg-binary":this.onMjpegBuffer(e);break;case"mp4-binary":this.onMp4Buffer(e);break;case"error":this.dispatchEvent(new ErrorEvent("error",{error:e,message:e.value}))}}async requestWebrtc(){this.reset(),this.pc=new RTCPeerConnection({bundlePolicy:"max-bundle",iceServers:[{urls:"stun:stun.l.google.com:19302"}],sdpSemantics:"unified-plan"}),this.pc.addEventListener("icecandidate",(t=>{if("webrtc/tcp"===this.options.mode&&"udp"===t.candidate?.protocol)return;const e=t.candidate?.toJSON().candidate||"";this.socket.emit("stream-payload",{id:this.streamId,data:{type:"webrtc/candidate",value:e}})})),this.pc.addEventListener("connectionstatechange",(()=>{if("connected"===this.pc?.connectionState){const t=this.pc?.getTransceivers().filter((t=>"recvonly"===t.currentDirection)).map((t=>t.receiver.track));this.videoPlayer.srcObject=new MediaStream(t),this.finishLoading(),this.play(),this.disconnect()}else"failed"!==this.pc?.connectionState&&"disconnected"!==this.pc?.connectionState||(clearTimeout(this.webrtcReconnectTimeout),this.webrtcReconnectTimeout=setTimeout((()=>{"failed"!==this.pc?.connectionState&&"disconnected"!==this.pc?.connectionState||this.reconnect()}),1e3))}));const t=await this.createOffer();t&&this.socket.emit("stream-payload",{id:this.streamId,data:{type:"webrtc/offer",value:t.sdp}})}async onWebrtcData(t){try{switch(t.type){case"webrtc/candidate":if("webrtc/tcp"===this.options.mode&&t.value.indexOf(" udp ")>0)return;await(this.pc?.addIceCandidate({candidate:t.value,sdpMid:"0"}));break;case"webrtc/answer":await(this.pc?.setRemoteDescription({type:"answer",sdp:t.value}));break;case"error":if(t.value.indexOf("webrtc/offer")<0)return;this.pc?.close()}}catch(t){this.dispatchEvent(new ErrorEvent("error",{error:t,message:t.message}))}}async createOffer(){if(this.pc){this.pc.addTransceiver("video",{direction:"recvonly"}),this.pc.addTransceiver("audio",{direction:"recvonly"}),this.micTransceiver=this.pc.addTransceiver("audio",{direction:"sendonly"});const t=await this.pc.createOffer();return await this.pc.setLocalDescription(t),t}}requestMse(){if(this.reset(),"ManagedMediaSource"in window){const t=window.ManagedMediaSource;this.mediaSource=new t,this.mediaSource.addEventListener("sourceopen",(()=>{this.socket.emit("stream-payload",{id:this.streamId,data:{type:"mse",value:this.parseCodecs(t.isTypeSupported)}})}),{once:!0}),this.videoPlayer.disableRemotePlayback=!0,this.videoPlayer.srcObject=this.mediaSource}else this.mediaSource=new MediaSource,this.mediaSource.addEventListener("sourceopen",(()=>{URL.revokeObjectURL(this.videoPlayer.src),this.socket.emit("stream-payload",{id:this.streamId,data:{type:"mse",value:this.parseCodecs(MediaSource.isTypeSupported)}})}),{once:!0}),this.videoPlayer.src=URL.createObjectURL(this.mediaSource),this.videoPlayer.srcObject=null;this.play(),this.mseCodecs=""}onMseData(t){this.mediaSource&&(this.mseCodecs=t.value,this.bufLen=0,this.buf=new Uint8Array(2097152),this.sourceBuffer=this.mediaSource.addSourceBuffer(t.value),this.sourceBuffer.mode="segments",this.sourceBuffer.addEventListener("updateend",(()=>{if(!this.sourceBuffer?.updating)try{if(this.bufLen>0){const t=this.buf.slice(0,this.bufLen);this.bufLen=0,this.sourceBuffer?.appendBuffer(t)}else if(this.sourceBuffer?.buffered?.length){const t=this.sourceBuffer.buffered.end(this.sourceBuffer.buffered.length-1)-15,e=this.sourceBuffer.buffered.start(0);t>e&&(this.sourceBuffer.remove(e,t),this.mediaSource?.setLiveSeekableRange(t,t+15))}}catch(t){}})))}async onMseBuffer(t){if("closed"!==this.mediaSource?.readyState)if(this.finishLoading(),this.sourceBuffer?.updating||this.bufLen>0){const e=new Uint8Array(t.value);this.buf.set(e,this.bufLen),this.bufLen+=e.byteLength}else try{this.sourceBuffer?.appendBuffer(t.value)}catch(t){}else this.closed||(this.closed=!0,this.dispatchEvent(new ErrorEvent("error",{message:"MediaSource closed"})),this.options.mode="webrtc",this.requestWebrtc())}requestMjpeg(){this.reset(),this.socket.emit("stream-payload",{id:this.streamId,data:{type:"mjpeg"}})}onMjpegBuffer(t){this.videoPlayer.controls=!1,this.videoPlayer.poster="data:image/jpeg;base64,"+this.btoaBinary(t.value),this.finishLoading()}requestMp4(){this.reset();const t=document.createElement("canvas");let e=null;this.videoPlayerMp4=document.createElement("video"),this.videoPlayerMp4.autoplay=!0,this.videoPlayerMp4.playsInline=!0,this.videoPlayerMp4.muted=!0,this.videoPlayerMp4.addEventListener("loadeddata",(()=>{this.videoPlayerMp4&&(e||(t.width=this.videoPlayerMp4.videoWidth,t.height=this.videoPlayerMp4.videoHeight,e=t.getContext("2d")),e?.drawImage(this.videoPlayerMp4,0,0,t.width,t.height),this.videoPlayer.controls=!1,this.videoPlayer.poster=t.toDataURL("image/jpeg"))}));const s=this.codecList.filter((t=>this.media.includes(t.indexOf("vc1")>0?"video":"audio"))).filter((t=>this.videoPlayer.canPlayType(`video/mp4; codecs="${t}"`))).join();this.socket.emit("stream-payload",{id:this.streamId,data:{type:"mp4",value:s}})}onMp4Buffer(t){this.finishLoading(),this.videoPlayerMp4&&(this.videoPlayerMp4.src="data:video/mp4;base64,"+this.btoaBinary(t.value))}requestHls(){this.reset(),this.socket.emit("stream-payload",{id:this.streamId,data:{type:"hls",value:this.parseCodecs((t=>this.videoPlayer.canPlayType(t)))}})}onHlsData(t){const e="http"+t.wsURL.substring(2,t.wsURL.indexOf("/ws"))+"/hls/",s=t.value.replace("hls/",e),r="data:application/vnd.apple.mpegurl;base64,"+btoa(s.toString());this.videoPlayer.src=r,this.finishLoading(),this.play()}async play(){try{await this.videoPlayer.play()}catch(t){if(!this.videoPlayer.muted)return this.videoPlayer.muted=!0,this.play();this.logger.warn(this.cameraDevice.name,t)}}finishLoading(){this._finishLoading||(this._finishLoading=!0,this.dispatchEvent(new Event("finishLoading")))}createCodecsList(){const t=["avc1.640029","avc1.64002A","avc1.640033","hvc1.1.6.L153.B0","mp4a.40.2","mp4a.40.5","flac","opus"],e="undefined"==typeof window?null:navigator.userAgent.match(/Version\/(\d+).+Safari/);if(e?.[1]){const s=e[1]<"13"?"mp4a.40.2":e[1]<"14"?"flac":"opus";t.splice(t.indexOf(s))}this.codecList=t}parseCodecs(t){return this.codecList.filter((t=>this.media.includes(t.indexOf("vc1")>0?"video":"audio"))).filter((e=>t(`video/mp4; codecs="${e}"`))).join()}btoaBinary(t){const e=new Uint8Array(t),s=e.byteLength;let r="";for(let t=0;t<s;t++)r+=String.fromCharCode(e[t]);return window.btoa(r)}uuidv4(){return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,(t=>(t^crypto.getRandomValues(new Uint8Array(1))[0]&15>>t/4).toString(16)))}}class Gs extends Fs{socketService;socket;pluginName="@camera.ui/client";subject;_started=!1;get started(){return this._started}prebufferDelegate=new Hs(this.onRequest,this.logger);ptzDelegate=new $s(this.onRequest,this.logger);audioDetectorDelegate=new Us(this.onRequest,this.logger);motionDetectorDelegate=new Vs(this.onRequest,this.logger);objectDetectorDelegate=new Ws(this.onRequest,this.logger);get sources(){return super.sources.map((t=>({...t,updatePrebufferingState:(e,s)=>this.prebufferDelegate.updatePrebufferState(t._id,e,s.state),getPrebufferingState:e=>super.cameraSourcePrebufferState(t._id,e),onPrebuffering:e=>super.createPrebufferStateObservable(t._id,e),getStreamInfo:async()=>this.prebufferDelegate.getStreamInfo(t.name)})))}constructor(t,e,s){super(t,s),this.socketService=e;const{socket:r}=this.socketService.getSocket(this.id,!0);this.socket=r,this.socket.connect(),this.subject=`${this.pluginName}.camera.${this.id}`,this.listenToMessages()}async start(){this._started||(this._started=!0,await this.refreshStates(),this.socket.emit("joinRoomStates",this.id))}stop(){this._started=!1,this.socket.emit("leaveRoomStates",this.id)}close(){this.cleanup()}connect(){return this.onRequest("cameraFn","connect")}disconnect(){return this.onRequest("cameraFn","disconnect")}getIceServers(){return this.onRequest("cameraFn","getIceServers")}createSession(t){return new Js(this,this.socketService,this.logger,t)}async updateState(t,e){const{changed:s,event:r}=super.checkStateInternal(t,e);if(s)return super.updateStateInternal(t,r,!0),this.onRequest("cameraFn","updateState",{stateName:t,eventData:r},0)}addCameraSource(t){return this.onRequest("cameraFn","addCameraSource",{source:t})}updateCameraSource(t,e){return this.onRequest("cameraFn","updateCameraSource",{id:t,...e})}removeCameraSource(t){return this.onRequest("cameraFn","removeCameraSource",{id:t})}async refreshStates(){const t=await this.onRequest("cameraFn","refreshStates");super.updateCamera(t.camera),super.updateCameraState(t.cameraState);for(const[e,s]of Object.entries(t.states))super.updateStateInternal(e,s,!0)}async cleanup(){this.stop(),this.removeAllListeners(),this.unsubscribe(),this.socket.removeAllListeners()}listenToMessages(){this.socket.emit("joinRoomDevice",this.id),this.socket.on("updateState",(t=>{t.cameraId===this.id&&super.updateStateInternal(t.stateName,t.data.newEvent,!0)})),this.socket.on("updateDevice",(t=>{if(t.cameraId===this.id)switch(t.type){case"removed":this.cleanup();break;case"updated":super.updateCamera(t.data);break;case"cameraState":super.updateCameraState(t.data);break;case"prebufferState":super.updatePrebuffer(t.data.sourceId,t.data.container,t.data.state)}}))}onRequest(t,e,s=[],r=5e3){const i={requestId:crypto.randomUUID(),targetId:this.subject,targetName:this.name,pluginId:this.pluginName,cameraId:this.id,type:"request",proxy:"camera",client:t,fn:e,args:s,timestamp:Date.now(),timeout:r};return new Promise(((t,e)=>{this.socket.emit("request",i,(s=>{s.response?t(s.response):s.error?e(s.error):t()}))}))}}class Ks{socketService;socket;logger;pluginName="@camera.ui/client";subject;constructor(t,e){this.socketService=t,this.socket=t.socket,this.logger=e,this.subject=`${this.pluginName}.deviceManager`}async getCameraById(t){const e=await this.onRequest("getCameraById",{id:t});if(e){const t=new Gs(e,this.socketService,this.logger);return await t.refreshStates(),t}}async getCameraByName(t){const e=await this.onRequest("getCameraByName",{name:t});if(e){const t=new Gs(e,this.socketService,this.logger);return await t.refreshStates(),t}}onRequest(t,e={}){const s={requestId:crypto.randomUUID(),targetId:this.subject,targetName:this.pluginName,pluginId:this.pluginName,type:"request",proxy:"device",client:"device",fn:t,args:e,timestamp:Date.now(),timeout:5e3};return new Promise(((t,e)=>{this.socket.emit("request",s,(s=>{s.response?t(s.response):s.error?e(s.error):t()}))}))}}class Ys{socketService;logger;constructor(t,e){this.socketService=t,this.logger=e}}class Xs{socketService;logger;constructor(t,e){this.socketService=t,this.logger=e}}const Qs=Object.create(null);Qs.open="0",Qs.close="1",Qs.ping="2",Qs.pong="3",Qs.message="4",Qs.upgrade="5",Qs.noop="6";const Zs=Object.create(null);Object.keys(Qs).forEach((t=>{Zs[Qs[t]]=t}));const tr={type:"error",data:"parser error"},er="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===Object.prototype.toString.call(Blob),sr="function"==typeof ArrayBuffer,rr=t=>"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer instanceof ArrayBuffer,ir=({type:t,data:e},s,r)=>er&&e instanceof Blob?s?r(e):nr(e,r):sr&&(e instanceof ArrayBuffer||rr(e))?s?r(e):nr(new Blob([e]),r):r(Qs[t]+(e||"")),nr=(t,e)=>{const s=new FileReader;return s.onload=function(){const t=s.result.split(",")[1];e("b"+(t||""))},s.readAsDataURL(t)};function or(t){return t instanceof Uint8Array?t:t instanceof ArrayBuffer?new Uint8Array(t):new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}let ar;const cr="undefined"==typeof Uint8Array?[]:new Uint8Array(256);for(let t=0;t<64;t++)cr["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(t)]=t;const hr="function"==typeof ArrayBuffer,ur=(t,e)=>{if("string"!=typeof t)return{type:"message",data:dr(t,e)};const s=t.charAt(0);return"b"===s?{type:"message",data:lr(t.substring(1),e)}:Zs[s]?t.length>1?{type:Zs[s],data:t.substring(1)}:{type:Zs[s]}:tr},lr=(t,e)=>{if(hr){const s=(t=>{let e,s,r,i,n,o=.75*t.length,a=t.length,c=0;"="===t[t.length-1]&&(o--,"="===t[t.length-2]&&o--);const h=new ArrayBuffer(o),u=new Uint8Array(h);for(e=0;e<a;e+=4)s=cr[t.charCodeAt(e)],r=cr[t.charCodeAt(e+1)],i=cr[t.charCodeAt(e+2)],n=cr[t.charCodeAt(e+3)],u[c++]=s<<2|r>>4,u[c++]=(15&r)<<4|i>>2,u[c++]=(3&i)<<6|63&n;return h})(t);return dr(s,e)}return{base64:!0,data:t}},dr=(t,e)=>"blob"===e?t instanceof Blob?t:new Blob([t]):t instanceof ArrayBuffer?t:t.buffer,fr=String.fromCharCode(30);let pr;function gr(t){return t.reduce(((t,e)=>t+e.length),0)}function mr(t,e){if(t[0].length===e)return t.shift();const s=new Uint8Array(e);let r=0;for(let i=0;i<e;i++)s[i]=t[0][r++],r===t[0].length&&(t.shift(),r=0);return t.length&&r<t[0].length&&(t[0]=t[0].slice(r)),s}function yr(t){if(t)return function(t){for(var e in yr.prototype)t[e]=yr.prototype[e];return t}(t)}yr.prototype.on=yr.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks["$"+t]=this._callbacks["$"+t]||[]).push(e),this},yr.prototype.once=function(t,e){function s(){this.off(t,s),e.apply(this,arguments)}return s.fn=e,this.on(t,s),this},yr.prototype.off=yr.prototype.removeListener=yr.prototype.removeAllListeners=yr.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var s,r=this._callbacks["$"+t];if(!r)return this;if(1==arguments.length)return delete this._callbacks["$"+t],this;for(var i=0;i<r.length;i++)if((s=r[i])===e||s.fn===e){r.splice(i,1);break}return 0===r.length&&delete this._callbacks["$"+t],this},yr.prototype.emit=function(t){this._callbacks=this._callbacks||{};for(var e=new Array(arguments.length-1),s=this._callbacks["$"+t],r=1;r<arguments.length;r++)e[r-1]=arguments[r];if(s){r=0;for(var i=(s=s.slice(0)).length;r<i;++r)s[r].apply(this,e)}return this},yr.prototype.emitReserved=yr.prototype.emit,yr.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks["$"+t]||[]},yr.prototype.hasListeners=function(t){return!!this.listeners(t).length};const br="undefined"!=typeof self?self:"undefined"!=typeof window?window:Function("return this")();function vr(t,...e){return e.reduce(((e,s)=>(t.hasOwnProperty(s)&&(e[s]=t[s]),e)),{})}const wr=br.setTimeout,Sr=br.clearTimeout;function kr(t,e){e.useNativeTimers?(t.setTimeoutFn=wr.bind(br),t.clearTimeoutFn=Sr.bind(br)):(t.setTimeoutFn=br.setTimeout.bind(br),t.clearTimeoutFn=br.clearTimeout.bind(br))}class Er extends Error{constructor(t,e,s){super(t),this.description=e,this.context=s,this.type="TransportError"}}class _r extends yr{constructor(t){super(),this.writable=!1,kr(this,t),this.opts=t,this.query=t.query,this.socket=t.socket}onError(t,e,s){return super.emitReserved("error",new Er(t,e,s)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this}send(t){"open"===this.readyState&&this.write(t)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(t){const e=ur(t,this.socket.binaryType);this.onPacket(e)}onPacket(t){super.emitReserved("packet",t)}onClose(t){this.readyState="closed",super.emitReserved("close",t)}pause(t){}createUri(t,e={}){return t+"://"+this._hostname()+this._port()+this.opts.path+this._query(e)}_hostname(){const t=this.opts.hostname;return-1===t.indexOf(":")?t:"["+t+"]"}_port(){return this.opts.port&&(this.opts.secure&&Number(443!==this.opts.port)||!this.opts.secure&&80!==Number(this.opts.port))?":"+this.opts.port:""}_query(t){const e=function(t){let e="";for(let s in t)t.hasOwnProperty(s)&&(e.length&&(e+="&"),e+=encodeURIComponent(s)+"="+encodeURIComponent(t[s]));return e}(t);return e.length?"?"+e:""}}const Or="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),Tr=64,xr={};let Ar,Rr=0,Lr=0;function Cr(t){let e="";do{e=Or[t%Tr]+e,t=Math.floor(t/Tr)}while(t>0);return e}function jr(){const t=Cr(+new Date);return t!==Ar?(Rr=0,Ar=t):t+"."+Cr(Rr++)}for(;Lr<Tr;Lr++)xr[Or[Lr]]=Lr;let Br=!1;try{Br="undefined"!=typeof XMLHttpRequest&&"withCredentials"in new XMLHttpRequest}catch(t){}const Pr=Br;function Dr(t){const e=t.xdomain;try{if("undefined"!=typeof XMLHttpRequest&&(!e||Pr))return new XMLHttpRequest}catch(t){}if(!e)try{return new(br[["Active"].concat("Object").join("X")])("Microsoft.XMLHTTP")}catch(t){}}function Fr(){}const Nr=null!=new Dr({xdomain:!1}).responseType;class Mr extends yr{constructor(t,e){super(),kr(this,e),this.opts=e,this.method=e.method||"GET",this.uri=t,this.data=void 0!==e.data?e.data:null,this.create()}create(){var t;const e=vr(this.opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");e.xdomain=!!this.opts.xd;const s=this.xhr=new Dr(e);try{s.open(this.method,this.uri,!0);try{if(this.opts.extraHeaders){s.setDisableHeaderCheck&&s.setDisableHeaderCheck(!0);for(let t in this.opts.extraHeaders)this.opts.extraHeaders.hasOwnProperty(t)&&s.setRequestHeader(t,this.opts.extraHeaders[t])}}catch(t){}if("POST"===this.method)try{s.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(t){}try{s.setRequestHeader("Accept","*/*")}catch(t){}null===(t=this.opts.cookieJar)||void 0===t||t.addCookies(s),"withCredentials"in s&&(s.withCredentials=this.opts.withCredentials),this.opts.requestTimeout&&(s.timeout=this.opts.requestTimeout),s.onreadystatechange=()=>{var t;3===s.readyState&&(null===(t=this.opts.cookieJar)||void 0===t||t.parseCookies(s)),4===s.readyState&&(200===s.status||1223===s.status?this.onLoad():this.setTimeoutFn((()=>{this.onError("number"==typeof s.status?s.status:0)}),0))},s.send(this.data)}catch(t){return void this.setTimeoutFn((()=>{this.onError(t)}),0)}"undefined"!=typeof document&&(this.index=Mr.requestsCount++,Mr.requests[this.index]=this)}onError(t){this.emitReserved("error",t,this.xhr),this.cleanup(!0)}cleanup(t){if(void 0!==this.xhr&&null!==this.xhr){if(this.xhr.onreadystatechange=Fr,t)try{this.xhr.abort()}catch(t){}"undefined"!=typeof document&&delete Mr.requests[this.index],this.xhr=null}}onLoad(){const t=this.xhr.responseText;null!==t&&(this.emitReserved("data",t),this.emitReserved("success"),this.cleanup())}abort(){this.cleanup()}}function Ir(){for(let t in Mr.requests)Mr.requests.hasOwnProperty(t)&&Mr.requests[t].abort()}Mr.requestsCount=0,Mr.requests={},"undefined"!=typeof document&&("function"==typeof attachEvent?attachEvent("onunload",Ir):"function"==typeof addEventListener&&addEventListener("onpagehide"in br?"pagehide":"unload",Ir,!1));const zr="function"==typeof Promise&&"function"==typeof Promise.resolve?t=>Promise.resolve().then(t):(t,e)=>e(t,0),qr=br.WebSocket||br.MozWebSocket,Ur="undefined"!=typeof navigator&&"string"==typeof navigator.product&&"reactnative"===navigator.product.toLowerCase(),Vr={websocket:class extends _r{constructor(t){super(t),this.supportsBinary=!t.forceBase64}get name(){return"websocket"}doOpen(){if(!this.check())return;const t=this.uri(),e=this.opts.protocols,s=Ur?{}:vr(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(s.headers=this.opts.extraHeaders);try{this.ws=Ur?new qr(t,e,s):e?new qr(t,e):new qr(t)}catch(t){return this.emitReserved("error",t)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=t=>this.onClose({description:"websocket connection closed",context:t}),this.ws.onmessage=t=>this.onData(t.data),this.ws.onerror=t=>this.onError("websocket error",t)}write(t){this.writable=!1;for(let e=0;e<t.length;e++){const s=t[e],r=e===t.length-1;ir(s,this.supportsBinary,(t=>{try{this.ws.send(t)}catch(t){}r&&zr((()=>{this.writable=!0,this.emitReserved("drain")}),this.setTimeoutFn)}))}}doClose(){void 0!==this.ws&&(this.ws.close(),this.ws=null)}uri(){const t=this.opts.secure?"wss":"ws",e=this.query||{};return this.opts.timestampRequests&&(e[this.opts.timestampParam]=jr()),this.supportsBinary||(e.b64=1),this.createUri(t,e)}check(){return!!qr}},webtransport:class extends _r{get name(){return"webtransport"}doOpen(){"function"==typeof WebTransport&&(this.transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name]),this.transport.closed.then((()=>{this.onClose()})).catch((t=>{this.onError("webtransport error",t)})),this.transport.ready.then((()=>{this.transport.createBidirectionalStream().then((t=>{const e=function(t,e){pr||(pr=new TextDecoder);const s=[];let r=0,i=-1,n=!1;return new TransformStream({transform(o,a){for(s.push(o);;){if(0===r){if(gr(s)<1)break;const t=mr(s,1);n=!(128&~t[0]),i=127&t[0],r=i<126?3:126===i?1:2}else if(1===r){if(gr(s)<2)break;const t=mr(s,2);i=new DataView(t.buffer,t.byteOffset,t.length).getUint16(0),r=3}else if(2===r){if(gr(s)<8)break;const t=mr(s,8),e=new DataView(t.buffer,t.byteOffset,t.length),n=e.getUint32(0);if(n>Math.pow(2,21)-1){a.enqueue(tr);break}i=n*Math.pow(2,32)+e.getUint32(4),r=3}else{if(gr(s)<i)break;const t=mr(s,i);a.enqueue(ur(n?t:pr.decode(t),e)),r=0}if(0===i||i>t){a.enqueue(tr);break}}}})}(Number.MAX_SAFE_INTEGER,this.socket.binaryType),s=t.readable.pipeThrough(e).getReader(),r=new TransformStream({transform(t,e){!function(t,e){er&&t.data instanceof Blob?t.data.arrayBuffer().then(or).then(e):sr&&(t.data instanceof ArrayBuffer||rr(t.data))?e(or(t.data)):ir(t,!1,(t=>{ar||(ar=new TextEncoder),e(ar.encode(t))}))}(t,(s=>{const r=s.length;let i;if(r<126)i=new Uint8Array(1),new DataView(i.buffer).setUint8(0,r);else if(r<65536){i=new Uint8Array(3);const t=new DataView(i.buffer);t.setUint8(0,126),t.setUint16(1,r)}else{i=new Uint8Array(9);const t=new DataView(i.buffer);t.setUint8(0,127),t.setBigUint64(1,BigInt(r))}t.data&&"string"!=typeof t.data&&(i[0]|=128),e.enqueue(i),e.enqueue(s)}))}});r.readable.pipeTo(t.writable),this.writer=r.writable.getWriter();const i=()=>{s.read().then((({done:t,value:e})=>{t||(this.onPacket(e),i())})).catch((t=>{}))};i();const n={type:"open"};this.query.sid&&(n.data=`{"sid":"${this.query.sid}"}`),this.writer.write(n).then((()=>this.onOpen()))}))})))}write(t){this.writable=!1;for(let e=0;e<t.length;e++){const s=t[e],r=e===t.length-1;this.writer.write(s).then((()=>{r&&zr((()=>{this.writable=!0,this.emitReserved("drain")}),this.setTimeoutFn)}))}}doClose(){var t;null===(t=this.transport)||void 0===t||t.close()}},polling:class extends _r{constructor(t){if(super(t),this.polling=!1,"undefined"!=typeof location){const e="https:"===location.protocol;let s=location.port;s||(s=e?"443":"80"),this.xd="undefined"!=typeof location&&t.hostname!==location.hostname||s!==t.port}const e=t&&t.forceBase64;this.supportsBinary=Nr&&!e,this.opts.withCredentials&&(this.cookieJar=void 0)}get name(){return"polling"}doOpen(){this.poll()}pause(t){this.readyState="pausing";const e=()=>{this.readyState="paused",t()};if(this.polling||!this.writable){let t=0;this.polling&&(t++,this.once("pollComplete",(function(){--t||e()}))),this.writable||(t++,this.once("drain",(function(){--t||e()})))}else e()}poll(){this.polling=!0,this.doPoll(),this.emitReserved("poll")}onData(t){((t,e)=>{const s=t.split(fr),r=[];for(let t=0;t<s.length;t++){const i=ur(s[t],e);if(r.push(i),"error"===i.type)break}return r})(t,this.socket.binaryType).forEach((t=>{if("opening"===this.readyState&&"open"===t.type&&this.onOpen(),"close"===t.type)return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(t)})),"closed"!==this.readyState&&(this.polling=!1,this.emitReserved("pollComplete"),"open"===this.readyState&&this.poll())}doClose(){const t=()=>{this.write([{type:"close"}])};"open"===this.readyState?t():this.once("open",t)}write(t){this.writable=!1,((t,e)=>{const s=t.length,r=new Array(s);let i=0;t.forEach(((t,n)=>{ir(t,!1,(t=>{r[n]=t,++i===s&&e(r.join(fr))}))}))})(t,(t=>{this.doWrite(t,(()=>{this.writable=!0,this.emitReserved("drain")}))}))}uri(){const t=this.opts.secure?"https":"http",e=this.query||{};return!1!==this.opts.timestampRequests&&(e[this.opts.timestampParam]=jr()),this.supportsBinary||e.sid||(e.b64=1),this.createUri(t,e)}request(t={}){return Object.assign(t,{xd:this.xd,cookieJar:this.cookieJar},this.opts),new Mr(this.uri(),t)}doWrite(t,e){const s=this.request({method:"POST",data:t});s.on("success",e),s.on("error",((t,e)=>{this.onError("xhr post error",t,e)}))}doPoll(){const t=this.request();t.on("data",this.onData.bind(this)),t.on("error",((t,e)=>{this.onError("xhr poll error",t,e)})),this.pollXhr=t}}},Wr=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,Hr=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function $r(t){if(t.length>2e3)throw"URI too long";const e=t,s=t.indexOf("["),r=t.indexOf("]");-1!=s&&-1!=r&&(t=t.substring(0,s)+t.substring(s,r).replace(/:/g,";")+t.substring(r,t.length));let i=Wr.exec(t||""),n={},o=14;for(;o--;)n[Hr[o]]=i[o]||"";return-1!=s&&-1!=r&&(n.source=e,n.host=n.host.substring(1,n.host.length-1).replace(/;/g,":"),n.authority=n.authority.replace("[","").replace("]","").replace(/;/g,":"),n.ipv6uri=!0),n.pathNames=function(t,e){const s=e.replace(/\/{2,9}/g,"/").split("/");return"/"!=e.slice(0,1)&&0!==e.length||s.splice(0,1),"/"==e.slice(-1)&&s.splice(s.length-1,1),s}(0,n.path),n.queryKey=function(t,e){const s={};return e.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,(function(t,e,r){e&&(s[e]=r)})),s}(0,n.query),n}class Jr extends yr{constructor(t,e={}){super(),this.binaryType="arraybuffer",this.writeBuffer=[],t&&"object"==typeof t&&(e=t,t=null),t?(t=$r(t),e.hostname=t.host,e.secure="https"===t.protocol||"wss"===t.protocol,e.port=t.port,t.query&&(e.query=t.query)):e.host&&(e.hostname=$r(e.host).host),kr(this,e),this.secure=null!=e.secure?e.secure:"undefined"!=typeof location&&"https:"===location.protocol,e.hostname&&!e.port&&(e.port=this.secure?"443":"80"),this.hostname=e.hostname||("undefined"!=typeof location?location.hostname:"localhost"),this.port=e.port||("undefined"!=typeof location&&location.port?location.port:this.secure?"443":"80"),this.transports=e.transports||["polling","websocket","webtransport"],this.writeBuffer=[],this.prevBufferLen=0,this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},e),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),"string"==typeof this.opts.query&&(this.opts.query=function(t){let e={},s=t.split("&");for(let t=0,r=s.length;t<r;t++){let r=s[t].split("=");e[decodeURIComponent(r[0])]=decodeURIComponent(r[1])}return e}(this.opts.query)),this.id=null,this.upgrades=null,this.pingInterval=null,this.pingTimeout=null,this.pingTimeoutTimer=null,"function"==typeof addEventListener&&(this.opts.closeOnBeforeunload&&(this.beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this.beforeunloadEventListener,!1)),"localhost"!==this.hostname&&(this.offlineEventListener=()=>{this.onClose("transport close",{description:"network connection lost"})},addEventListener("offline",this.offlineEventListener,!1))),this.open()}createTransport(t){const e=Object.assign({},this.opts.query);e.EIO=4,e.transport=t,this.id&&(e.sid=this.id);const s=Object.assign({},this.opts,{query:e,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[t]);return new Vr[t](s)}open(){let t;if(this.opts.rememberUpgrade&&Jr.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket"))t="websocket";else{if(0===this.transports.length)return void this.setTimeoutFn((()=>{this.emitReserved("error","No transports available")}),0);t=this.transports[0]}this.readyState="opening";try{t=this.createTransport(t)}catch(t){return this.transports.shift(),void this.open()}t.open(),this.setTransport(t)}setTransport(t){this.transport&&this.transport.removeAllListeners(),this.transport=t,t.on("drain",this.onDrain.bind(this)).on("packet",this.onPacket.bind(this)).on("error",this.onError.bind(this)).on("close",(t=>this.onClose("transport close",t)))}probe(t){let e=this.createTransport(t),s=!1;Jr.priorWebsocketSuccess=!1;const r=()=>{s||(e.send([{type:"ping",data:"probe"}]),e.once("packet",(t=>{if(!s)if("pong"===t.type&&"probe"===t.data){if(this.upgrading=!0,this.emitReserved("upgrading",e),!e)return;Jr.priorWebsocketSuccess="websocket"===e.name,this.transport.pause((()=>{s||"closed"!==this.readyState&&(h(),this.setTransport(e),e.send([{type:"upgrade"}]),this.emitReserved("upgrade",e),e=null,this.upgrading=!1,this.flush())}))}else{const t=new Error("probe error");t.transport=e.name,this.emitReserved("upgradeError",t)}})))};function i(){s||(s=!0,h(),e.close(),e=null)}const n=t=>{const s=new Error("probe error: "+t);s.transport=e.name,i(),this.emitReserved("upgradeError",s)};function o(){n("transport closed")}function a(){n("socket closed")}function c(t){e&&t.name!==e.name&&i()}const h=()=>{e.removeListener("open",r),e.removeListener("error",n),e.removeListener("close",o),this.off("close",a),this.off("upgrading",c)};e.once("open",r),e.once("error",n),e.once("close",o),this.once("close",a),this.once("upgrading",c),-1!==this.upgrades.indexOf("webtransport")&&"webtransport"!==t?this.setTimeoutFn((()=>{s||e.open()}),200):e.open()}onOpen(){if(this.readyState="open",Jr.priorWebsocketSuccess="websocket"===this.transport.name,this.emitReserved("open"),this.flush(),"open"===this.readyState&&this.opts.upgrade){let t=0;const e=this.upgrades.length;for(;t<e;t++)this.probe(this.upgrades[t])}}onPacket(t){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState)switch(this.emitReserved("packet",t),this.emitReserved("heartbeat"),this.resetPingTimeout(),t.type){case"open":this.onHandshake(JSON.parse(t.data));break;case"ping":this.sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong");break;case"error":const e=new Error("server error");e.code=t.data,this.onError(e);break;case"message":this.emitReserved("data",t.data),this.emitReserved("message",t.data)}}onHandshake(t){this.emitReserved("handshake",t),this.id=t.sid,this.transport.query.sid=t.sid,this.upgrades=this.filterUpgrades(t.upgrades),this.pingInterval=t.pingInterval,this.pingTimeout=t.pingTimeout,this.maxPayload=t.maxPayload,this.onOpen(),"closed"!==this.readyState&&this.resetPingTimeout()}resetPingTimeout(){this.clearTimeoutFn(this.pingTimeoutTimer),this.pingTimeoutTimer=this.setTimeoutFn((()=>{this.onClose("ping timeout")}),this.pingInterval+this.pingTimeout),this.opts.autoUnref&&this.pingTimeoutTimer.unref()}onDrain(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,0===this.writeBuffer.length?this.emitReserved("drain"):this.flush()}flush(){if("closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const t=this.getWritablePackets();this.transport.send(t),this.prevBufferLen=t.length,this.emitReserved("flush")}}getWritablePackets(){if(!(this.maxPayload&&"polling"===this.transport.name&&this.writeBuffer.length>1))return this.writeBuffer;let t=1;for(let s=0;s<this.writeBuffer.length;s++){const r=this.writeBuffer[s].data;if(r&&(t+="string"==typeof(e=r)?function(t){let e=0,s=0;for(let r=0,i=t.length;r<i;r++)e=t.charCodeAt(r),e<128?s+=1:e<2048?s+=2:e<55296||e>=57344?s+=3:(r++,s+=4);return s}(e):Math.ceil(1.33*(e.byteLength||e.size))),s>0&&t>this.maxPayload)return this.writeBuffer.slice(0,s);t+=2}var e;return this.writeBuffer}write(t,e,s){return this.sendPacket("message",t,e,s),this}send(t,e,s){return this.sendPacket("message",t,e,s),this}sendPacket(t,e,s,r){if("function"==typeof e&&(r=e,e=void 0),"function"==typeof s&&(r=s,s=null),"closing"===this.readyState||"closed"===this.readyState)return;(s=s||{}).compress=!1!==s.compress;const i={type:t,data:e,options:s};this.emitReserved("packetCreate",i),this.writeBuffer.push(i),r&&this.once("flush",r),this.flush()}close(){const t=()=>{this.onClose("forced close"),this.transport.close()},e=()=>{this.off("upgrade",e),this.off("upgradeError",e),t()},s=()=>{this.once("upgrade",e),this.once("upgradeError",e)};return"opening"!==this.readyState&&"open"!==this.readyState||(this.readyState="closing",this.writeBuffer.length?this.once("drain",(()=>{this.upgrading?s():t()})):this.upgrading?s():t()),this}onError(t){Jr.priorWebsocketSuccess=!1,this.emitReserved("error",t),this.onClose("transport error",t)}onClose(t,e){"opening"!==this.readyState&&"open"!==this.readyState&&"closing"!==this.readyState||(this.clearTimeoutFn(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),"function"==typeof removeEventListener&&(removeEventListener("beforeunload",this.beforeunloadEventListener,!1),removeEventListener("offline",this.offlineEventListener,!1)),this.readyState="closed",this.id=null,this.emitReserved("close",t,e),this.writeBuffer=[],this.prevBufferLen=0)}filterUpgrades(t){const e=[];let s=0;const r=t.length;for(;s<r;s++)~this.transports.indexOf(t[s])&&e.push(t[s]);return e}}Jr.protocol=4,Jr.protocol;const Gr="function"==typeof ArrayBuffer,Kr=t=>"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(t):t.buffer instanceof ArrayBuffer,Yr=Object.prototype.toString,Xr="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===Yr.call(Blob),Qr="function"==typeof File||"undefined"!=typeof File&&"[object FileConstructor]"===Yr.call(File);function Zr(t){return Gr&&(t instanceof ArrayBuffer||Kr(t))||Xr&&t instanceof Blob||Qr&&t instanceof File}function ti(t,e){if(!t||"object"!=typeof t)return!1;if(Array.isArray(t)){for(let e=0,s=t.length;e<s;e++)if(ti(t[e]))return!0;return!1}if(Zr(t))return!0;if(t.toJSON&&"function"==typeof t.toJSON&&1===arguments.length)return ti(t.toJSON(),!0);for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e)&&ti(t[e]))return!0;return!1}function ei(t){const e=[],s=t.data,r=t;return r.data=si(s,e),r.attachments=e.length,{packet:r,buffers:e}}function si(t,e){if(!t)return t;if(Zr(t)){const s={_placeholder:!0,num:e.length};return e.push(t),s}if(Array.isArray(t)){const s=new Array(t.length);for(let r=0;r<t.length;r++)s[r]=si(t[r],e);return s}if("object"==typeof t&&!(t instanceof Date)){const s={};for(const r in t)Object.prototype.hasOwnProperty.call(t,r)&&(s[r]=si(t[r],e));return s}return t}function ri(t,e){return t.data=ii(t.data,e),delete t.attachments,t}function ii(t,e){if(!t)return t;if(t&&!0===t._placeholder){if("number"==typeof t.num&&t.num>=0&&t.num<e.length)return e[t.num];throw new Error("illegal attachments")}if(Array.isArray(t))for(let s=0;s<t.length;s++)t[s]=ii(t[s],e);else if("object"==typeof t)for(const s in t)Object.prototype.hasOwnProperty.call(t,s)&&(t[s]=ii(t[s],e));return t}const ni=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"],oi=5;var ai;!function(t){t[t.CONNECT=0]="CONNECT",t[t.DISCONNECT=1]="DISCONNECT",t[t.EVENT=2]="EVENT",t[t.ACK=3]="ACK",t[t.CONNECT_ERROR=4]="CONNECT_ERROR",t[t.BINARY_EVENT=5]="BINARY_EVENT",t[t.BINARY_ACK=6]="BINARY_ACK"}(ai||(ai={}));class ci{constructor(t){this.replacer=t}encode(t){return t.type!==ai.EVENT&&t.type!==ai.ACK||!ti(t)?[this.encodeAsString(t)]:this.encodeAsBinary({type:t.type===ai.EVENT?ai.BINARY_EVENT:ai.BINARY_ACK,nsp:t.nsp,data:t.data,id:t.id})}encodeAsString(t){let e=""+t.type;return t.type!==ai.BINARY_EVENT&&t.type!==ai.BINARY_ACK||(e+=t.attachments+"-"),t.nsp&&"/"!==t.nsp&&(e+=t.nsp+","),null!=t.id&&(e+=t.id),null!=t.data&&(e+=JSON.stringify(t.data,this.replacer)),e}encodeAsBinary(t){const e=ei(t),s=this.encodeAsString(e.packet),r=e.buffers;return r.unshift(s),r}}function hi(t){return"[object Object]"===Object.prototype.toString.call(t)}class ui extends yr{constructor(t){super(),this.reviver=t}add(t){let e;if("string"==typeof t){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");e=this.decodeString(t);const s=e.type===ai.BINARY_EVENT;s||e.type===ai.BINARY_ACK?(e.type=s?ai.EVENT:ai.ACK,this.reconstructor=new li(e),0===e.attachments&&super.emitReserved("decoded",e)):super.emitReserved("decoded",e)}else{if(!Zr(t)&&!t.base64)throw new Error("Unknown type: "+t);if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");e=this.reconstructor.takeBinaryData(t),e&&(this.reconstructor=null,super.emitReserved("decoded",e))}}decodeString(t){let e=0;const s={type:Number(t.charAt(0))};if(void 0===ai[s.type])throw new Error("unknown packet type "+s.type);if(s.type===ai.BINARY_EVENT||s.type===ai.BINARY_ACK){const r=e+1;for(;"-"!==t.charAt(++e)&&e!=t.length;);const i=t.substring(r,e);if(i!=Number(i)||"-"!==t.charAt(e))throw new Error("Illegal attachments");s.attachments=Number(i)}if("/"===t.charAt(e+1)){const r=e+1;for(;++e&&","!==t.charAt(e)&&e!==t.length;);s.nsp=t.substring(r,e)}else s.nsp="/";const r=t.charAt(e+1);if(""!==r&&Number(r)==r){const r=e+1;for(;++e;){const s=t.charAt(e);if(null==s||Number(s)!=s){--e;break}if(e===t.length)break}s.id=Number(t.substring(r,e+1))}if(t.charAt(++e)){const r=this.tryParse(t.substr(e));if(!ui.isPayloadValid(s.type,r))throw new Error("invalid payload");s.data=r}return s}tryParse(t){try{return JSON.parse(t,this.reviver)}catch(t){return!1}}static isPayloadValid(t,e){switch(t){case ai.CONNECT:return hi(e);case ai.DISCONNECT:return void 0===e;case ai.CONNECT_ERROR:return"string"==typeof e||hi(e);case ai.EVENT:case ai.BINARY_EVENT:return Array.isArray(e)&&("number"==typeof e[0]||"string"==typeof e[0]&&-1===ni.indexOf(e[0]));case ai.ACK:case ai.BINARY_ACK:return Array.isArray(e)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class li{constructor(t){this.packet=t,this.buffers=[],this.reconPack=t}takeBinaryData(t){if(this.buffers.push(t),this.buffers.length===this.reconPack.attachments){const t=ri(this.reconPack,this.buffers);return this.finishedReconstruction(),t}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}function di(t,e,s){return t.on(e,s),function(){t.off(e,s)}}const fi=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class pi extends yr{constructor(t,e,s){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=t,this.nsp=e,s&&s.auth&&(this.auth=s.auth),this._opts=Object.assign({},s),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const t=this.io;this.subs=[di(t,"open",this.onopen.bind(this)),di(t,"packet",this.onpacket.bind(this)),di(t,"error",this.onerror.bind(this)),di(t,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected||(this.subEvents(),this.io._reconnecting||this.io.open(),"open"===this.io._readyState&&this.onopen()),this}open(){return this.connect()}send(...t){return t.unshift("message"),this.emit.apply(this,t),this}emit(t,...e){if(fi.hasOwnProperty(t))throw new Error('"'+t.toString()+'" is a reserved event name');if(e.unshift(t),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(e),this;const s={type:ai.EVENT,data:e,options:{}};if(s.options.compress=!1!==this.flags.compress,"function"==typeof e[e.length-1]){const t=this.ids++,r=e.pop();this._registerAckCallback(t,r),s.id=t}const r=this.io.engine&&this.io.engine.transport&&this.io.engine.transport.writable;return this.flags.volatile&&(!r||!this.connected)||(this.connected?(this.notifyOutgoingListeners(s),this.packet(s)):this.sendBuffer.push(s)),this.flags={},this}_registerAckCallback(t,e){var s;const r=null!==(s=this.flags.timeout)&&void 0!==s?s:this._opts.ackTimeout;if(void 0===r)return void(this.acks[t]=e);const i=this.io.setTimeoutFn((()=>{delete this.acks[t];for(let e=0;e<this.sendBuffer.length;e++)this.sendBuffer[e].id===t&&this.sendBuffer.splice(e,1);e.call(this,new Error("operation has timed out"))}),r),n=(...t)=>{this.io.clearTimeoutFn(i),e.apply(this,t)};n.withError=!0,this.acks[t]=n}emitWithAck(t,...e){return new Promise(((s,r)=>{const i=(t,e)=>t?r(t):s(e);i.withError=!0,e.push(i),this.emit(t,...e)}))}_addToQueue(t){let e;"function"==typeof t[t.length-1]&&(e=t.pop());const s={id:this._queueSeq++,tryCount:0,pending:!1,args:t,flags:Object.assign({fromQueue:!0},this.flags)};t.push(((t,...r)=>{if(s===this._queue[0])return null!==t?s.tryCount>this._opts.retries&&(this._queue.shift(),e&&e(t)):(this._queue.shift(),e&&e(null,...r)),s.pending=!1,this._drainQueue()})),this._queue.push(s),this._drainQueue()}_drainQueue(t=!1){if(!this.connected||0===this._queue.length)return;const e=this._queue[0];e.pending&&!t||(e.pending=!0,e.tryCount++,this.flags=e.flags,this.emit.apply(this,e.args))}packet(t){t.nsp=this.nsp,this.io._packet(t)}onopen(){"function"==typeof this.auth?this.auth((t=>{this._sendConnectPacket(t)})):this._sendConnectPacket(this.auth)}_sendConnectPacket(t){this.packet({type:ai.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},t):t})}onerror(t){this.connected||this.emitReserved("connect_error",t)}onclose(t,e){this.connected=!1,delete this.id,this.emitReserved("disconnect",t,e),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach((t=>{if(!this.sendBuffer.some((e=>String(e.id)===t))){const e=this.acks[t];delete this.acks[t],e.withError&&e.call(this,new Error("socket has been disconnected"))}}))}onpacket(t){if(t.nsp===this.nsp)switch(t.type){case ai.CONNECT:t.data&&t.data.sid?this.onconnect(t.data.sid,t.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case ai.EVENT:case ai.BINARY_EVENT:this.onevent(t);break;case ai.ACK:case ai.BINARY_ACK:this.onack(t);break;case ai.DISCONNECT:this.ondisconnect();break;case ai.CONNECT_ERROR:this.destroy();const e=new Error(t.data.message);e.data=t.data.data,this.emitReserved("connect_error",e)}}onevent(t){const e=t.data||[];null!=t.id&&e.push(this.ack(t.id)),this.connected?this.emitEvent(e):this.receiveBuffer.push(Object.freeze(e))}emitEvent(t){if(this._anyListeners&&this._anyListeners.length){const e=this._anyListeners.slice();for(const s of e)s.apply(this,t)}super.emit.apply(this,t),this._pid&&t.length&&"string"==typeof t[t.length-1]&&(this._lastOffset=t[t.length-1])}ack(t){const e=this;let s=!1;return function(...r){s||(s=!0,e.packet({type:ai.ACK,id:t,data:r}))}}onack(t){const e=this.acks[t.id];"function"==typeof e&&(delete this.acks[t.id],e.withError&&t.data.unshift(null),e.apply(this,t.data))}onconnect(t,e){this.id=t,this.recovered=e&&this._pid===e,this._pid=e,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach((t=>this.emitEvent(t))),this.receiveBuffer=[],this.sendBuffer.forEach((t=>{this.notifyOutgoingListeners(t),this.packet(t)})),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach((t=>t())),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:ai.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(t){return this.flags.compress=t,this}get volatile(){return this.flags.volatile=!0,this}timeout(t){return this.flags.timeout=t,this}onAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(t),this}prependAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(t),this}offAny(t){if(!this._anyListeners)return this;if(t){const e=this._anyListeners;for(let s=0;s<e.length;s++)if(t===e[s])return e.splice(s,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(t){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(t),this}prependAnyOutgoing(t){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(t),this}offAnyOutgoing(t){if(!this._anyOutgoingListeners)return this;if(t){const e=this._anyOutgoingListeners;for(let s=0;s<e.length;s++)if(t===e[s])return e.splice(s,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(t){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){const e=this._anyOutgoingListeners.slice();for(const s of e)s.apply(this,t.data)}}}function gi(t){t=t||{},this.ms=t.min||100,this.max=t.max||1e4,this.factor=t.factor||2,this.jitter=t.jitter>0&&t.jitter<=1?t.jitter:0,this.attempts=0}gi.prototype.duration=function(){var t=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),s=Math.floor(e*this.jitter*t);t=1&Math.floor(10*e)?t+s:t-s}return 0|Math.min(t,this.max)},gi.prototype.reset=function(){this.attempts=0},gi.prototype.setMin=function(t){this.ms=t},gi.prototype.setMax=function(t){this.max=t},gi.prototype.setJitter=function(t){this.jitter=t};class mi extends yr{constructor(t,e){var s;super(),this.nsps={},this.subs=[],t&&"object"==typeof t&&(e=t,t=void 0),(e=e||{}).path=e.path||"/socket.io",this.opts=e,kr(this,e),this.reconnection(!1!==e.reconnection),this.reconnectionAttempts(e.reconnectionAttempts||1/0),this.reconnectionDelay(e.reconnectionDelay||1e3),this.reconnectionDelayMax(e.reconnectionDelayMax||5e3),this.randomizationFactor(null!==(s=e.randomizationFactor)&&void 0!==s?s:.5),this.backoff=new gi({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(null==e.timeout?2e4:e.timeout),this._readyState="closed",this.uri=t;const i=e.parser||r;this.encoder=new i.Encoder,this.decoder=new i.Decoder,this._autoConnect=!1!==e.autoConnect,this._autoConnect&&this.open()}reconnection(t){return arguments.length?(this._reconnection=!!t,this):this._reconnection}reconnectionAttempts(t){return void 0===t?this._reconnectionAttempts:(this._reconnectionAttempts=t,this)}reconnectionDelay(t){var e;return void 0===t?this._reconnectionDelay:(this._reconnectionDelay=t,null===(e=this.backoff)||void 0===e||e.setMin(t),this)}randomizationFactor(t){var e;return void 0===t?this._randomizationFactor:(this._randomizationFactor=t,null===(e=this.backoff)||void 0===e||e.setJitter(t),this)}reconnectionDelayMax(t){var e;return void 0===t?this._reconnectionDelayMax:(this._reconnectionDelayMax=t,null===(e=this.backoff)||void 0===e||e.setMax(t),this)}timeout(t){return arguments.length?(this._timeout=t,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()}open(t){if(~this._readyState.indexOf("open"))return this;this.engine=new Jr(this.uri,this.opts);const e=this.engine,s=this;this._readyState="opening",this.skipReconnect=!1;const r=di(e,"open",(function(){s.onopen(),t&&t()})),i=e=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",e),t?t(e):this.maybeReconnectOnOpen()},n=di(e,"error",i);if(!1!==this._timeout){const t=this._timeout,s=this.setTimeoutFn((()=>{r(),i(new Error("timeout")),e.close()}),t);this.opts.autoUnref&&s.unref(),this.subs.push((()=>{this.clearTimeoutFn(s)}))}return this.subs.push(r),this.subs.push(n),this}connect(t){return this.open(t)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const t=this.engine;this.subs.push(di(t,"ping",this.onping.bind(this)),di(t,"data",this.ondata.bind(this)),di(t,"error",this.onerror.bind(this)),di(t,"close",this.onclose.bind(this)),di(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(t){try{this.decoder.add(t)}catch(t){this.onclose("parse error",t)}}ondecoded(t){zr((()=>{this.emitReserved("packet",t)}),this.setTimeoutFn)}onerror(t){this.emitReserved("error",t)}socket(t,e){let s=this.nsps[t];return s?this._autoConnect&&!s.active&&s.connect():(s=new pi(this,t,e),this.nsps[t]=s),s}_destroy(t){const e=Object.keys(this.nsps);for(const t of e)if(this.nsps[t].active)return;this._close()}_packet(t){const e=this.encoder.encode(t);for(let s=0;s<e.length;s++)this.engine.write(e[s],t.options)}cleanup(){this.subs.forEach((t=>t())),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close"),this.engine&&this.engine.close()}disconnect(){return this._close()}onclose(t,e){this.cleanup(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",t,e),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const t=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const e=this.backoff.duration();this._reconnecting=!0;const s=this.setTimeoutFn((()=>{t.skipReconnect||(this.emitReserved("reconnect_attempt",t.backoff.attempts),t.skipReconnect||t.open((e=>{e?(t._reconnecting=!1,t.reconnect(),this.emitReserved("reconnect_error",e)):t.onreconnect()})))}),e);this.opts.autoUnref&&s.unref(),this.subs.push((()=>{this.clearTimeoutFn(s)}))}}onreconnect(){const t=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",t)}}const yi={};function bi(t,e){"object"==typeof t&&(e=t,t=void 0);const s=function(t,e="",s){let r=t;s=s||"undefined"!=typeof location&&location,null==t&&(t=s.protocol+"//"+s.host),"string"==typeof t&&("/"===t.charAt(0)&&(t="/"===t.charAt(1)?s.protocol+t:s.host+t),/^(https?|wss?):\/\//.test(t)||(t=void 0!==s?s.protocol+"//"+t:"https://"+t),r=$r(t)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port="80":/^(http|ws)s$/.test(r.protocol)&&(r.port="443")),r.path=r.path||"/";const i=-1!==r.host.indexOf(":")?"["+r.host+"]":r.host;return r.id=r.protocol+"://"+i+":"+r.port+e,r.href=r.protocol+"://"+i+(s&&s.port===r.port?"":":"+r.port),r}(t,(e=e||{}).path||"/socket.io"),r=s.source,i=s.id,n=s.path,o=yi[i]&&n in yi[i].nsps;let a;return e.forceNew||e["force new connection"]||!1===e.multiplex||o?a=new mi(r,e):(yi[i]||(yi[i]=new mi(r,e)),a=yi[i]),s.query&&!e.query&&(e.query=s.queryKey),a.socket(s.path,e)}Object.assign(bi,{Manager:mi,Socket:pi,io:bi,connect:bi});class vi{socket;token;endpoint;socketList=new Map;constructor(t,e){this.endpoint=t.replace("https://","wss://").replace("http://","ws://"),this.token=e,this.socket=this.getSocket("default").socket,this.socket.connect()}close(){this.socket.emit("end"),this.socket.removeAllListeners(),this.socket.disconnect()}getSocket(t,e){return this.socketList.has(t)||this.socketList.set(t,this.createManager(e)),this.socketList.get(t)}createManager(t){const e=new mi(this.endpoint,{reconnection:!0,reconnectionDelay:500,rejectUnauthorized:!1,transports:["websocket"],forceNew:t}),s=e.socket("/proxy",{auth:{token:`Bearer ${this.token}`}});return{manager:e,socket:s}}}class wi{api;socketService;config;logger;token;deviceManager;pluginsManager;systemManager;constructor(t){this.config=t,this.logger=t.logger||{...console,attention:console.warn},this.api=new de(t.endpoint)}async connect(){return this.deviceManager&&this.pluginsManager&&this.systemManager||(this.cleanUpClient(),await this.login(),this.token=this.token||this.config.token,this.socketService=new vi(this.config.endpoint,this.token),this.deviceManager=new Ks(this.socketService,this.logger),this.pluginsManager=new Ys(this.socketService,this.logger),this.systemManager=new Xs(this.socketService,this.logger),this.checkSession()),{deviceManager:this.deviceManager,pluginsManager:this.pluginsManager,systemManager:this.systemManager}}async disconnect(){this.socketService?.close(),this.cleanUpClient(),this.config.username&&this.config.password&&await this.api.interceptor.post("/auth/logout",void 0,{headers:{Authorization:`Bearer ${this.token}`}})}async updateCredentials(t){this.config={...this.config,...t},this.socketService&&await this.disconnect(),await this.connect()}async login(){if(this.config.username&&this.config.password)try{const t=await this.api.interceptor.post("/auth/login",{username:this.config.username,password:this.config.password});this.token=t.data.access_token}catch(t){throw 401===t.response?.status?new Error("Invalid credentials"):new Error(`Failed to get token: ${t.message}`)}else if(this.config.token&&!this.config.skipCheck)try{await this.api.interceptor.get("/auth/check",{headers:{Authorization:`Bearer ${this.config.token}`}})}catch(t){throw new Error(`Invalid token: ${t.message}`)}this.token=this.token||this.config.token}getDeviceManager(){return this.deviceManager}getPluginsManager(){return this.pluginsManager}getSystemManager(){return this.systemManager}checkSession(){this.socketService?.socket.removeListener("invalidToken"),this.socketService?.socket.on("invalidToken",(async t=>{t===this.token&&await this.disconnect()}))}cleanUpClient(){this.deviceManager=void 0,this.pluginsManager=void 0,this.systemManager=void 0}}var Si=e.j;export{Si as CameraUiClient};
|
|
1
|
+
var t={d:(e,s)=>{for(var r in s)t.o(s,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:s[r]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.d(e,{j:()=>ki});var s={};t.r(s),t.d(s,{hasBrowserEnv:()=>ot,hasStandardBrowserEnv:()=>at,hasStandardBrowserWebWorkerEnv:()=>ht,origin:()=>ut});var r={};function i(t,e){return function(){return t.apply(e,arguments)}}t.r(r),t.d(r,{Decoder:()=>di,Encoder:()=>ui,PacketType:()=>hi,protocol:()=>ci});const{toString:n}=Object.prototype,{getPrototypeOf:o}=Object,a=(t=>e=>{const s=n.call(e);return t[s]||(t[s]=s.slice(8,-1).toLowerCase())})(Object.create(null)),c=t=>(t=t.toLowerCase(),e=>a(e)===t),h=t=>e=>typeof e===t,{isArray:u}=Array,l=h("undefined"),d=c("ArrayBuffer"),f=h("string"),p=h("function"),g=h("number"),m=t=>null!==t&&"object"==typeof t,y=t=>{if("object"!==a(t))return!1;const e=o(t);return!(null!==e&&e!==Object.prototype&&null!==Object.getPrototypeOf(e)||Symbol.toStringTag in t||Symbol.iterator in t)},b=c("Date"),v=c("File"),w=c("Blob"),S=c("FileList"),k=c("URLSearchParams"),[E,_,O,T]=["ReadableStream","Request","Response","Headers"].map(c);function x(t,e,{allOwnKeys:s=!1}={}){if(null==t)return;let r,i;if("object"!=typeof t&&(t=[t]),u(t))for(r=0,i=t.length;r<i;r++)e.call(null,t[r],r,t);else{const i=s?Object.getOwnPropertyNames(t):Object.keys(t),n=i.length;let o;for(r=0;r<n;r++)o=i[r],e.call(null,t[o],o,t)}}function A(t,e){e=e.toLowerCase();const s=Object.keys(t);let r,i=s.length;for(;i-- >0;)if(r=s[i],e===r.toLowerCase())return r;return null}const R="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,L=t=>!l(t)&&t!==R,C=(j="undefined"!=typeof Uint8Array&&o(Uint8Array),t=>j&&t instanceof j);var j;const B=c("HTMLFormElement"),P=(({hasOwnProperty:t})=>(e,s)=>t.call(e,s))(Object.prototype),D=c("RegExp"),F=(t,e)=>{const s=Object.getOwnPropertyDescriptors(t),r={};x(s,((s,i)=>{let n;!1!==(n=e(s,i,t))&&(r[i]=n||s)})),Object.defineProperties(t,r)},N="abcdefghijklmnopqrstuvwxyz",M="0123456789",q={DIGIT:M,ALPHA:N,ALPHA_DIGIT:N+N.toUpperCase()+M},I=c("AsyncFunction"),z={isArray:u,isArrayBuffer:d,isBuffer:function(t){return null!==t&&!l(t)&&null!==t.constructor&&!l(t.constructor)&&p(t.constructor.isBuffer)&&t.constructor.isBuffer(t)},isFormData:t=>{let e;return t&&("function"==typeof FormData&&t instanceof FormData||p(t.append)&&("formdata"===(e=a(t))||"object"===e&&p(t.toString)&&"[object FormData]"===t.toString()))},isArrayBufferView:function(t){let e;return e="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&d(t.buffer),e},isString:f,isNumber:g,isBoolean:t=>!0===t||!1===t,isObject:m,isPlainObject:y,isReadableStream:E,isRequest:_,isResponse:O,isHeaders:T,isUndefined:l,isDate:b,isFile:v,isBlob:w,isRegExp:D,isFunction:p,isStream:t=>m(t)&&p(t.pipe),isURLSearchParams:k,isTypedArray:C,isFileList:S,forEach:x,merge:function t(){const{caseless:e}=L(this)&&this||{},s={},r=(r,i)=>{const n=e&&A(s,i)||i;y(s[n])&&y(r)?s[n]=t(s[n],r):y(r)?s[n]=t({},r):u(r)?s[n]=r.slice():s[n]=r};for(let t=0,e=arguments.length;t<e;t++)arguments[t]&&x(arguments[t],r);return s},extend:(t,e,s,{allOwnKeys:r}={})=>(x(e,((e,r)=>{s&&p(e)?t[r]=i(e,s):t[r]=e}),{allOwnKeys:r}),t),trim:t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:t=>(65279===t.charCodeAt(0)&&(t=t.slice(1)),t),inherits:(t,e,s,r)=>{t.prototype=Object.create(e.prototype,r),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),s&&Object.assign(t.prototype,s)},toFlatObject:(t,e,s,r)=>{let i,n,a;const c={};if(e=e||{},null==t)return e;do{for(i=Object.getOwnPropertyNames(t),n=i.length;n-- >0;)a=i[n],r&&!r(a,t,e)||c[a]||(e[a]=t[a],c[a]=!0);t=!1!==s&&o(t)}while(t&&(!s||s(t,e))&&t!==Object.prototype);return e},kindOf:a,kindOfTest:c,endsWith:(t,e,s)=>{t=String(t),(void 0===s||s>t.length)&&(s=t.length),s-=e.length;const r=t.indexOf(e,s);return-1!==r&&r===s},toArray:t=>{if(!t)return null;if(u(t))return t;let e=t.length;if(!g(e))return null;const s=new Array(e);for(;e-- >0;)s[e]=t[e];return s},forEachEntry:(t,e)=>{const s=(t&&t[Symbol.iterator]).call(t);let r;for(;(r=s.next())&&!r.done;){const s=r.value;e.call(t,s[0],s[1])}},matchAll:(t,e)=>{let s;const r=[];for(;null!==(s=t.exec(e));)r.push(s);return r},isHTMLForm:B,hasOwnProperty:P,hasOwnProp:P,reduceDescriptors:F,freezeMethods:t=>{F(t,((e,s)=>{if(p(t)&&-1!==["arguments","caller","callee"].indexOf(s))return!1;const r=t[s];p(r)&&(e.enumerable=!1,"writable"in e?e.writable=!1:e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+s+"'")}))}))},toObjectSet:(t,e)=>{const s={},r=t=>{t.forEach((t=>{s[t]=!0}))};return u(t)?r(t):r(String(t).split(e)),s},toCamelCase:t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(t,e,s){return e.toUpperCase()+s})),noop:()=>{},toFiniteNumber:(t,e)=>null!=t&&Number.isFinite(t=+t)?t:e,findKey:A,global:R,isContextDefined:L,ALPHABET:q,generateString:(t=16,e=q.ALPHA_DIGIT)=>{let s="";const{length:r}=e;for(;t--;)s+=e[Math.random()*r|0];return s},isSpecCompliantForm:function(t){return!!(t&&p(t.append)&&"FormData"===t[Symbol.toStringTag]&&t[Symbol.iterator])},toJSONObject:t=>{const e=new Array(10),s=(t,r)=>{if(m(t)){if(e.indexOf(t)>=0)return;if(!("toJSON"in t)){e[r]=t;const i=u(t)?[]:{};return x(t,((t,e)=>{const n=s(t,r+1);!l(n)&&(i[e]=n)})),e[r]=void 0,i}}return t};return s(t,0)},isAsyncFn:I,isThenable:t=>t&&(m(t)||p(t))&&p(t.then)&&p(t.catch)};function U(t,e,s,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name="AxiosError",e&&(this.code=e),s&&(this.config=s),r&&(this.request=r),i&&(this.response=i)}z.inherits(U,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:z.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const V=U.prototype,W={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((t=>{W[t]={value:t}})),Object.defineProperties(U,W),Object.defineProperty(V,"isAxiosError",{value:!0}),U.from=(t,e,s,r,i,n)=>{const o=Object.create(V);return z.toFlatObject(t,o,(function(t){return t!==Error.prototype}),(t=>"isAxiosError"!==t)),U.call(o,t.message,e,s,r,i),o.cause=t,o.name=t.name,n&&Object.assign(o,n),o};const H=U;function $(t){return z.isPlainObject(t)||z.isArray(t)}function J(t){return z.endsWith(t,"[]")?t.slice(0,-2):t}function G(t,e,s){return t?t.concat(e).map((function(t,e){return t=J(t),!s&&e?"["+t+"]":t})).join(s?".":""):e}const K=z.toFlatObject(z,{},null,(function(t){return/^is[A-Z]/.test(t)})),Y=function(t,e,s){if(!z.isObject(t))throw new TypeError("target must be an object");e=e||new FormData;const r=(s=z.toFlatObject(s,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(t,e){return!z.isUndefined(e[t])}))).metaTokens,i=s.visitor||h,n=s.dots,o=s.indexes,a=(s.Blob||"undefined"!=typeof Blob&&Blob)&&z.isSpecCompliantForm(e);if(!z.isFunction(i))throw new TypeError("visitor must be a function");function c(t){if(null===t)return"";if(z.isDate(t))return t.toISOString();if(!a&&z.isBlob(t))throw new H("Blob is not supported. Use a Buffer instead.");return z.isArrayBuffer(t)||z.isTypedArray(t)?a&&"function"==typeof Blob?new Blob([t]):Buffer.from(t):t}function h(t,s,i){let a=t;if(t&&!i&&"object"==typeof t)if(z.endsWith(s,"{}"))s=r?s:s.slice(0,-2),t=JSON.stringify(t);else if(z.isArray(t)&&function(t){return z.isArray(t)&&!t.some($)}(t)||(z.isFileList(t)||z.endsWith(s,"[]"))&&(a=z.toArray(t)))return s=J(s),a.forEach((function(t,r){!z.isUndefined(t)&&null!==t&&e.append(!0===o?G([s],r,n):null===o?s:s+"[]",c(t))})),!1;return!!$(t)||(e.append(G(i,s,n),c(t)),!1)}const u=[],l=Object.assign(K,{defaultVisitor:h,convertValue:c,isVisitable:$});if(!z.isObject(t))throw new TypeError("data must be an object");return function t(s,r){if(!z.isUndefined(s)){if(-1!==u.indexOf(s))throw Error("Circular reference detected in "+r.join("."));u.push(s),z.forEach(s,(function(s,n){!0===(!(z.isUndefined(s)||null===s)&&i.call(e,s,z.isString(n)?n.trim():n,r,l))&&t(s,r?r.concat(n):[n])})),u.pop()}}(t),e};function X(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function(t){return e[t]}))}function Q(t,e){this._pairs=[],t&&Y(t,this,e)}const Z=Q.prototype;Z.append=function(t,e){this._pairs.push([t,e])},Z.toString=function(t){const e=t?function(e){return t.call(this,e,X)}:X;return this._pairs.map((function(t){return e(t[0])+"="+e(t[1])}),"").join("&")};const tt=Q;function et(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function st(t,e,s){if(!e)return t;const r=s&&s.encode||et,i=s&&s.serialize;let n;if(n=i?i(e,s):z.isURLSearchParams(e)?e.toString():new tt(e,s).toString(r),n){const e=t.indexOf("#");-1!==e&&(t=t.slice(0,e)),t+=(-1===t.indexOf("?")?"?":"&")+n}return t}const rt=class{constructor(){this.handlers=[]}use(t,e,s){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!s&&s.synchronous,runWhen:s?s.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){z.forEach(this.handlers,(function(e){null!==e&&t(e)}))}},it={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},nt={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:tt,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},ot="undefined"!=typeof window&&"undefined"!=typeof document,at=(ct="undefined"!=typeof navigator&&navigator.product,ot&&["ReactNative","NativeScript","NS"].indexOf(ct)<0);var ct;const ht="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,ut=ot&&window.location.href||"http://localhost",lt={...s,...nt},dt=function(t){function e(t,s,r,i){let n=t[i++];if("__proto__"===n)return!0;const o=Number.isFinite(+n),a=i>=t.length;return n=!n&&z.isArray(r)?r.length:n,a?(z.hasOwnProp(r,n)?r[n]=[r[n],s]:r[n]=s,!o):(r[n]&&z.isObject(r[n])||(r[n]=[]),e(t,s,r[n],i)&&z.isArray(r[n])&&(r[n]=function(t){const e={},s=Object.keys(t);let r;const i=s.length;let n;for(r=0;r<i;r++)n=s[r],e[n]=t[n];return e}(r[n])),!o)}if(z.isFormData(t)&&z.isFunction(t.entries)){const s={};return z.forEachEntry(t,((t,r)=>{e(function(t){return z.matchAll(/\w+|\[(\w*)]/g,t).map((t=>"[]"===t[0]?"":t[1]||t[0]))}(t),r,s,0)})),s}return null},ft={transitional:it,adapter:["xhr","http","fetch"],transformRequest:[function(t,e){const s=e.getContentType()||"",r=s.indexOf("application/json")>-1,i=z.isObject(t);if(i&&z.isHTMLForm(t)&&(t=new FormData(t)),z.isFormData(t))return r?JSON.stringify(dt(t)):t;if(z.isArrayBuffer(t)||z.isBuffer(t)||z.isStream(t)||z.isFile(t)||z.isBlob(t)||z.isReadableStream(t))return t;if(z.isArrayBufferView(t))return t.buffer;if(z.isURLSearchParams(t))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let n;if(i){if(s.indexOf("application/x-www-form-urlencoded")>-1)return function(t,e){return Y(t,new lt.classes.URLSearchParams,Object.assign({visitor:function(t,e,s,r){return lt.isNode&&z.isBuffer(t)?(this.append(e,t.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},e))}(t,this.formSerializer).toString();if((n=z.isFileList(t))||s.indexOf("multipart/form-data")>-1){const e=this.env&&this.env.FormData;return Y(n?{"files[]":t}:t,e&&new e,this.formSerializer)}}return i||r?(e.setContentType("application/json",!1),function(t,e,s){if(z.isString(t))try{return(0,JSON.parse)(t),z.trim(t)}catch(t){if("SyntaxError"!==t.name)throw t}return(0,JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){const e=this.transitional||ft.transitional,s=e&&e.forcedJSONParsing,r="json"===this.responseType;if(z.isResponse(t)||z.isReadableStream(t))return t;if(t&&z.isString(t)&&(s&&!this.responseType||r)){const s=!(e&&e.silentJSONParsing)&&r;try{return JSON.parse(t)}catch(t){if(s){if("SyntaxError"===t.name)throw H.from(t,H.ERR_BAD_RESPONSE,this,null,this.response);throw t}}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:lt.classes.FormData,Blob:lt.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};z.forEach(["delete","get","head","post","put","patch"],(t=>{ft.headers[t]={}}));const pt=ft,gt=z.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),mt=Symbol("internals");function yt(t){return t&&String(t).trim().toLowerCase()}function bt(t){return!1===t||null==t?t:z.isArray(t)?t.map(bt):String(t)}function vt(t,e,s,r,i){return z.isFunction(r)?r.call(this,e,s):(i&&(e=s),z.isString(e)?z.isString(r)?-1!==e.indexOf(r):z.isRegExp(r)?r.test(e):void 0:void 0)}class wt{constructor(t){t&&this.set(t)}set(t,e,s){const r=this;function i(t,e,s){const i=yt(e);if(!i)throw new Error("header name must be a non-empty string");const n=z.findKey(r,i);(!n||void 0===r[n]||!0===s||void 0===s&&!1!==r[n])&&(r[n||e]=bt(t))}const n=(t,e)=>z.forEach(t,((t,s)=>i(t,s,e)));if(z.isPlainObject(t)||t instanceof this.constructor)n(t,e);else if(z.isString(t)&&(t=t.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim()))n((t=>{const e={};let s,r,i;return t&&t.split("\n").forEach((function(t){i=t.indexOf(":"),s=t.substring(0,i).trim().toLowerCase(),r=t.substring(i+1).trim(),!s||e[s]&>[s]||("set-cookie"===s?e[s]?e[s].push(r):e[s]=[r]:e[s]=e[s]?e[s]+", "+r:r)})),e})(t),e);else if(z.isHeaders(t))for(const[e,r]of t.entries())i(r,e,s);else null!=t&&i(e,t,s);return this}get(t,e){if(t=yt(t)){const s=z.findKey(this,t);if(s){const t=this[s];if(!e)return t;if(!0===e)return function(t){const e=Object.create(null),s=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=s.exec(t);)e[r[1]]=r[2];return e}(t);if(z.isFunction(e))return e.call(this,t,s);if(z.isRegExp(e))return e.exec(t);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,e){if(t=yt(t)){const s=z.findKey(this,t);return!(!s||void 0===this[s]||e&&!vt(0,this[s],s,e))}return!1}delete(t,e){const s=this;let r=!1;function i(t){if(t=yt(t)){const i=z.findKey(s,t);!i||e&&!vt(0,s[i],i,e)||(delete s[i],r=!0)}}return z.isArray(t)?t.forEach(i):i(t),r}clear(t){const e=Object.keys(this);let s=e.length,r=!1;for(;s--;){const i=e[s];t&&!vt(0,this[i],i,t,!0)||(delete this[i],r=!0)}return r}normalize(t){const e=this,s={};return z.forEach(this,((r,i)=>{const n=z.findKey(s,i);if(n)return e[n]=bt(r),void delete e[i];const o=t?function(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((t,e,s)=>e.toUpperCase()+s))}(i):String(i).trim();o!==i&&delete e[i],e[o]=bt(r),s[o]=!0})),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const e=Object.create(null);return z.forEach(this,((s,r)=>{null!=s&&!1!==s&&(e[r]=t&&z.isArray(s)?s.join(", "):s)})),e}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([t,e])=>t+": "+e)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...e){const s=new this(t);return e.forEach((t=>s.set(t))),s}static accessor(t){const e=(this[mt]=this[mt]={accessors:{}}).accessors,s=this.prototype;function r(t){const r=yt(t);e[r]||(function(t,e){const s=z.toCamelCase(" "+e);["get","set","has"].forEach((r=>{Object.defineProperty(t,r+s,{value:function(t,s,i){return this[r].call(this,e,t,s,i)},configurable:!0})}))}(s,t),e[r]=!0)}return z.isArray(t)?t.forEach(r):r(t),this}}wt.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),z.reduceDescriptors(wt.prototype,(({value:t},e)=>{let s=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(t){this[s]=t}}})),z.freezeMethods(wt);const St=wt;function kt(t,e){const s=this||pt,r=e||s,i=St.from(r.headers);let n=r.data;return z.forEach(t,(function(t){n=t.call(s,n,i.normalize(),e?e.status:void 0)})),i.normalize(),n}function Et(t){return!(!t||!t.__CANCEL__)}function _t(t,e,s){H.call(this,null==t?"canceled":t,H.ERR_CANCELED,e,s),this.name="CanceledError"}z.inherits(_t,H,{__CANCEL__:!0});const Ot=_t;function Tt(t,e,s){const r=s.config.validateStatus;s.status&&r&&!r(s.status)?e(new H("Request failed with status code "+s.status,[H.ERR_BAD_REQUEST,H.ERR_BAD_RESPONSE][Math.floor(s.status/100)-4],s.config,s.request,s)):t(s)}const xt=(t,e,s=3)=>{let r=0;const i=function(t,e){t=t||10;const s=new Array(t),r=new Array(t);let i,n=0,o=0;return e=void 0!==e?e:1e3,function(a){const c=Date.now(),h=r[o];i||(i=c),s[n]=a,r[n]=c;let u=o,l=0;for(;u!==n;)l+=s[u++],u%=t;if(n=(n+1)%t,n===o&&(o=(o+1)%t),c-i<e)return;const d=h&&c-h;return d?Math.round(1e3*l/d):void 0}}(50,250);return function(t,e){let s=0;const r=1e3/e;let i=null;return function(){const e=!0===this,n=Date.now();if(e||n-s>r)return i&&(clearTimeout(i),i=null),s=n,t.apply(null,arguments);i||(i=setTimeout((()=>(i=null,s=Date.now(),t.apply(null,arguments))),r-(n-s)))}}((s=>{const n=s.loaded,o=s.lengthComputable?s.total:void 0,a=n-r,c=i(a);r=n;const h={loaded:n,total:o,progress:o?n/o:void 0,bytes:a,rate:c||void 0,estimated:c&&o&&n<=o?(o-n)/c:void 0,event:s,lengthComputable:null!=o};h[e?"download":"upload"]=!0,t(h)}),s)},At=lt.hasStandardBrowserEnv?function(){const t=/(msie|trident)/i.test(navigator.userAgent),e=document.createElement("a");let s;function r(s){let r=s;return t&&(e.setAttribute("href",r),r=e.href),e.setAttribute("href",r),{href:e.href,protocol:e.protocol?e.protocol.replace(/:$/,""):"",host:e.host,search:e.search?e.search.replace(/^\?/,""):"",hash:e.hash?e.hash.replace(/^#/,""):"",hostname:e.hostname,port:e.port,pathname:"/"===e.pathname.charAt(0)?e.pathname:"/"+e.pathname}}return s=r(window.location.href),function(t){const e=z.isString(t)?r(t):t;return e.protocol===s.protocol&&e.host===s.host}}():function(){return!0},Rt=lt.hasStandardBrowserEnv?{write(t,e,s,r,i,n){const o=[t+"="+encodeURIComponent(e)];z.isNumber(s)&&o.push("expires="+new Date(s).toGMTString()),z.isString(r)&&o.push("path="+r),z.isString(i)&&o.push("domain="+i),!0===n&&o.push("secure"),document.cookie=o.join("; ")},read(t){const e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function Lt(t,e){return t&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)?function(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}(t,e):e}const Ct=t=>t instanceof St?{...t}:t;function jt(t,e){e=e||{};const s={};function r(t,e,s){return z.isPlainObject(t)&&z.isPlainObject(e)?z.merge.call({caseless:s},t,e):z.isPlainObject(e)?z.merge({},e):z.isArray(e)?e.slice():e}function i(t,e,s){return z.isUndefined(e)?z.isUndefined(t)?void 0:r(void 0,t,s):r(t,e,s)}function n(t,e){if(!z.isUndefined(e))return r(void 0,e)}function o(t,e){return z.isUndefined(e)?z.isUndefined(t)?void 0:r(void 0,t):r(void 0,e)}function a(s,i,n){return n in e?r(s,i):n in t?r(void 0,s):void 0}const c={url:n,method:n,data:n,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:a,headers:(t,e)=>i(Ct(t),Ct(e),!0)};return z.forEach(Object.keys(Object.assign({},t,e)),(function(r){const n=c[r]||i,o=n(t[r],e[r],r);z.isUndefined(o)&&n!==a||(s[r]=o)})),s}const Bt=t=>{const e=jt({},t);let s,{data:r,withXSRFToken:i,xsrfHeaderName:n,xsrfCookieName:o,headers:a,auth:c}=e;if(e.headers=a=St.from(a),e.url=st(Lt(e.baseURL,e.url),t.params,t.paramsSerializer),c&&a.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):""))),z.isFormData(r))if(lt.hasStandardBrowserEnv||lt.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if(!1!==(s=a.getContentType())){const[t,...e]=s?s.split(";").map((t=>t.trim())).filter(Boolean):[];a.setContentType([t||"multipart/form-data",...e].join("; "))}if(lt.hasStandardBrowserEnv&&(i&&z.isFunction(i)&&(i=i(e)),i||!1!==i&&At(e.url))){const t=n&&o&&Rt.read(o);t&&a.set(n,t)}return e},Pt="undefined"!=typeof XMLHttpRequest&&function(t){return new Promise((function(e,s){const r=Bt(t);let i=r.data;const n=St.from(r.headers).normalize();let o,{responseType:a}=r;function c(){r.cancelToken&&r.cancelToken.unsubscribe(o),r.signal&&r.signal.removeEventListener("abort",o)}let h=new XMLHttpRequest;function u(){if(!h)return;const r=St.from("getAllResponseHeaders"in h&&h.getAllResponseHeaders());Tt((function(t){e(t),c()}),(function(t){s(t),c()}),{data:a&&"text"!==a&&"json"!==a?h.response:h.responseText,status:h.status,statusText:h.statusText,headers:r,config:t,request:h}),h=null}h.open(r.method.toUpperCase(),r.url,!0),h.timeout=r.timeout,"onloadend"in h?h.onloadend=u:h.onreadystatechange=function(){h&&4===h.readyState&&(0!==h.status||h.responseURL&&0===h.responseURL.indexOf("file:"))&&setTimeout(u)},h.onabort=function(){h&&(s(new H("Request aborted",H.ECONNABORTED,r,h)),h=null)},h.onerror=function(){s(new H("Network Error",H.ERR_NETWORK,r,h)),h=null},h.ontimeout=function(){let t=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const e=r.transitional||it;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),s(new H(t,e.clarifyTimeoutError?H.ETIMEDOUT:H.ECONNABORTED,r,h)),h=null},void 0===i&&n.setContentType(null),"setRequestHeader"in h&&z.forEach(n.toJSON(),(function(t,e){h.setRequestHeader(e,t)})),z.isUndefined(r.withCredentials)||(h.withCredentials=!!r.withCredentials),a&&"json"!==a&&(h.responseType=r.responseType),"function"==typeof r.onDownloadProgress&&h.addEventListener("progress",xt(r.onDownloadProgress,!0)),"function"==typeof r.onUploadProgress&&h.upload&&h.upload.addEventListener("progress",xt(r.onUploadProgress)),(r.cancelToken||r.signal)&&(o=e=>{h&&(s(!e||e.type?new Ot(null,t,h):e),h.abort(),h=null)},r.cancelToken&&r.cancelToken.subscribe(o),r.signal&&(r.signal.aborted?o():r.signal.addEventListener("abort",o)));const l=function(t){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}(r.url);l&&-1===lt.protocols.indexOf(l)?s(new H("Unsupported protocol "+l+":",H.ERR_BAD_REQUEST,t)):h.send(i||null)}))},Dt=(t,e)=>{let s,r=new AbortController;const i=function(t){if(!s){s=!0,o();const e=t instanceof Error?t:this.reason;r.abort(e instanceof H?e:new Ot(e instanceof Error?e.message:e))}};let n=e&&setTimeout((()=>{i(new H(`timeout ${e} of ms exceeded`,H.ETIMEDOUT))}),e);const o=()=>{t&&(n&&clearTimeout(n),n=null,t.forEach((t=>{t&&(t.removeEventListener?t.removeEventListener("abort",i):t.unsubscribe(i))})),t=null)};t.forEach((t=>t&&t.addEventListener&&t.addEventListener("abort",i)));const{signal:a}=r;return a.unsubscribe=o,[a,()=>{n&&clearTimeout(n),n=null}]},Ft=function*(t,e){let s=t.byteLength;if(!e||s<e)return void(yield t);let r,i=0;for(;i<s;)r=i+e,yield t.slice(i,r),i=r},Nt=(t,e,s,r,i)=>{const n=async function*(t,e,s){for await(const r of t)yield*Ft(ArrayBuffer.isView(r)?r:await s(String(r)),e)}(t,e,i);let o=0;return new ReadableStream({type:"bytes",async pull(t){const{done:e,value:i}=await n.next();if(e)return t.close(),void r();let a=i.byteLength;s&&s(o+=a),t.enqueue(new Uint8Array(i))},cancel:t=>(r(t),n.return())},{highWaterMark:2})},Mt=(t,e)=>{const s=null!=t;return r=>setTimeout((()=>e({lengthComputable:s,total:t,loaded:r})))},qt="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,It=qt&&"function"==typeof ReadableStream,zt=qt&&("function"==typeof TextEncoder?(Ut=new TextEncoder,t=>Ut.encode(t)):async t=>new Uint8Array(await new Response(t).arrayBuffer()));var Ut;const Vt=It&&(()=>{let t=!1;const e=new Request(lt.origin,{body:new ReadableStream,method:"POST",get duplex(){return t=!0,"half"}}).headers.has("Content-Type");return t&&!e})(),Wt=It&&!!(()=>{try{return z.isReadableStream(new Response("").body)}catch(t){}})(),Ht={stream:Wt&&(t=>t.body)};var $t;qt&&($t=new Response,["text","arrayBuffer","blob","formData","stream"].forEach((t=>{!Ht[t]&&(Ht[t]=z.isFunction($t[t])?e=>e[t]():(e,s)=>{throw new H(`Response type '${t}' is not supported`,H.ERR_NOT_SUPPORT,s)})})));const Jt=qt&&(async t=>{let{url:e,method:s,data:r,signal:i,cancelToken:n,timeout:o,onDownloadProgress:a,onUploadProgress:c,responseType:h,headers:u,withCredentials:l="same-origin",fetchOptions:d}=Bt(t);h=h?(h+"").toLowerCase():"text";let f,p,[g,m]=i||n||o?Dt([i,n],o):[];const y=()=>{!f&&setTimeout((()=>{g&&g.unsubscribe()})),f=!0};let b;try{if(c&&Vt&&"get"!==s&&"head"!==s&&0!==(b=await(async(t,e)=>{const s=z.toFiniteNumber(t.getContentLength());return null==s?(async t=>null==t?0:z.isBlob(t)?t.size:z.isSpecCompliantForm(t)?(await new Request(t).arrayBuffer()).byteLength:z.isArrayBufferView(t)?t.byteLength:(z.isURLSearchParams(t)&&(t+=""),z.isString(t)?(await zt(t)).byteLength:void 0))(e):s})(u,r))){let t,s=new Request(e,{method:"POST",body:r,duplex:"half"});z.isFormData(r)&&(t=s.headers.get("content-type"))&&u.setContentType(t),s.body&&(r=Nt(s.body,65536,Mt(b,xt(c)),null,zt))}z.isString(l)||(l=l?"cors":"omit"),p=new Request(e,{...d,signal:g,method:s.toUpperCase(),headers:u.normalize().toJSON(),body:r,duplex:"half",withCredentials:l});let i=await fetch(p);const n=Wt&&("stream"===h||"response"===h);if(Wt&&(a||n)){const t={};["status","statusText","headers"].forEach((e=>{t[e]=i[e]}));const e=z.toFiniteNumber(i.headers.get("content-length"));i=new Response(Nt(i.body,65536,a&&Mt(e,xt(a,!0)),n&&y,zt),t)}h=h||"text";let o=await Ht[z.findKey(Ht,h)||"text"](i,t);return!n&&y(),m&&m(),await new Promise(((e,s)=>{Tt(e,s,{data:o,headers:St.from(i.headers),status:i.status,statusText:i.statusText,config:t,request:p})}))}catch(e){if(y(),e&&"TypeError"===e.name&&/fetch/i.test(e.message))throw Object.assign(new H("Network Error",H.ERR_NETWORK,t,p),{cause:e.cause||e});throw H.from(e,e&&e.code,t,p)}}),Gt={http:null,xhr:Pt,fetch:Jt};z.forEach(Gt,((t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch(t){}Object.defineProperty(t,"adapterName",{value:e})}}));const Kt=t=>`- ${t}`,Yt=t=>z.isFunction(t)||null===t||!1===t,Xt=t=>{t=z.isArray(t)?t:[t];const{length:e}=t;let s,r;const i={};for(let n=0;n<e;n++){let e;if(s=t[n],r=s,!Yt(s)&&(r=Gt[(e=String(s)).toLowerCase()],void 0===r))throw new H(`Unknown adapter '${e}'`);if(r)break;i[e||"#"+n]=r}if(!r){const t=Object.entries(i).map((([t,e])=>`adapter ${t} `+(!1===e?"is not supported by the environment":"is not available in the build")));let s=e?t.length>1?"since :\n"+t.map(Kt).join("\n"):" "+Kt(t[0]):"as no adapter specified";throw new H("There is no suitable adapter to dispatch the request "+s,"ERR_NOT_SUPPORT")}return r};function Qt(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Ot(null,t)}function Zt(t){return Qt(t),t.headers=St.from(t.headers),t.data=kt.call(t,t.transformRequest),-1!==["post","put","patch"].indexOf(t.method)&&t.headers.setContentType("application/x-www-form-urlencoded",!1),Xt(t.adapter||pt.adapter)(t).then((function(e){return Qt(t),e.data=kt.call(t,t.transformResponse,e),e.headers=St.from(e.headers),e}),(function(e){return Et(e)||(Qt(t),e&&e.response&&(e.response.data=kt.call(t,t.transformResponse,e.response),e.response.headers=St.from(e.response.headers))),Promise.reject(e)}))}const te={};["object","boolean","number","function","string","symbol"].forEach(((t,e)=>{te[t]=function(s){return typeof s===t||"a"+(e<1?"n ":" ")+t}}));const ee={};te.transitional=function(t,e,s){function r(t,e){return"[Axios v1.7.2] Transitional option '"+t+"'"+e+(s?". "+s:"")}return(s,i,n)=>{if(!1===t)throw new H(r(i," has been removed"+(e?" in "+e:"")),H.ERR_DEPRECATED);return e&&!ee[i]&&(ee[i]=!0,console.warn(r(i," has been deprecated since v"+e+" and will be removed in the near future"))),!t||t(s,i,n)}};const se={assertOptions:function(t,e,s){if("object"!=typeof t)throw new H("options must be an object",H.ERR_BAD_OPTION_VALUE);const r=Object.keys(t);let i=r.length;for(;i-- >0;){const n=r[i],o=e[n];if(o){const e=t[n],s=void 0===e||o(e,n,t);if(!0!==s)throw new H("option "+n+" must be "+s,H.ERR_BAD_OPTION_VALUE)}else if(!0!==s)throw new H("Unknown option "+n,H.ERR_BAD_OPTION)}},validators:te},re=se.validators;class ie{constructor(t){this.defaults=t,this.interceptors={request:new rt,response:new rt}}async request(t,e){try{return await this._request(t,e)}catch(t){if(t instanceof Error){let e;Error.captureStackTrace?Error.captureStackTrace(e={}):e=new Error;const s=e.stack?e.stack.replace(/^.+\n/,""):"";try{t.stack?s&&!String(t.stack).endsWith(s.replace(/^.+\n.+\n/,""))&&(t.stack+="\n"+s):t.stack=s}catch(t){}}throw t}}_request(t,e){"string"==typeof t?(e=e||{}).url=t:e=t||{},e=jt(this.defaults,e);const{transitional:s,paramsSerializer:r,headers:i}=e;void 0!==s&&se.assertOptions(s,{silentJSONParsing:re.transitional(re.boolean),forcedJSONParsing:re.transitional(re.boolean),clarifyTimeoutError:re.transitional(re.boolean)},!1),null!=r&&(z.isFunction(r)?e.paramsSerializer={serialize:r}:se.assertOptions(r,{encode:re.function,serialize:re.function},!0)),e.method=(e.method||this.defaults.method||"get").toLowerCase();let n=i&&z.merge(i.common,i[e.method]);i&&z.forEach(["delete","get","head","post","put","patch","common"],(t=>{delete i[t]})),e.headers=St.concat(n,i);const o=[];let a=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(e)||(a=a&&t.synchronous,o.unshift(t.fulfilled,t.rejected))}));const c=[];let h;this.interceptors.response.forEach((function(t){c.push(t.fulfilled,t.rejected)}));let u,l=0;if(!a){const t=[Zt.bind(this),void 0];for(t.unshift.apply(t,o),t.push.apply(t,c),u=t.length,h=Promise.resolve(e);l<u;)h=h.then(t[l++],t[l++]);return h}u=o.length;let d=e;for(l=0;l<u;){const t=o[l++],e=o[l++];try{d=t(d)}catch(t){e.call(this,t);break}}try{h=Zt.call(this,d)}catch(t){return Promise.reject(t)}for(l=0,u=c.length;l<u;)h=h.then(c[l++],c[l++]);return h}getUri(t){return st(Lt((t=jt(this.defaults,t)).baseURL,t.url),t.params,t.paramsSerializer)}}z.forEach(["delete","get","head","options"],(function(t){ie.prototype[t]=function(e,s){return this.request(jt(s||{},{method:t,url:e,data:(s||{}).data}))}})),z.forEach(["post","put","patch"],(function(t){function e(e){return function(s,r,i){return this.request(jt(i||{},{method:t,headers:e?{"Content-Type":"multipart/form-data"}:{},url:s,data:r}))}}ie.prototype[t]=e(),ie.prototype[t+"Form"]=e(!0)}));const ne=ie;class oe{constructor(t){if("function"!=typeof t)throw new TypeError("executor must be a function.");let e;this.promise=new Promise((function(t){e=t}));const s=this;this.promise.then((t=>{if(!s._listeners)return;let e=s._listeners.length;for(;e-- >0;)s._listeners[e](t);s._listeners=null})),this.promise.then=t=>{let e;const r=new Promise((t=>{s.subscribe(t),e=t})).then(t);return r.cancel=function(){s.unsubscribe(e)},r},t((function(t,r,i){s.reason||(s.reason=new Ot(t,r,i),e(s.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1)}static source(){let t;return{token:new oe((function(e){t=e})),cancel:t}}}const ae=oe,ce={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(ce).forEach((([t,e])=>{ce[e]=t}));const he=ce,ue=function t(e){const s=new ne(e),r=i(ne.prototype.request,s);return z.extend(r,ne.prototype,s,{allOwnKeys:!0}),z.extend(r,s,null,{allOwnKeys:!0}),r.create=function(s){return t(jt(e,s))},r}(pt);ue.Axios=ne,ue.CanceledError=Ot,ue.CancelToken=ae,ue.isCancel=Et,ue.VERSION="1.7.2",ue.toFormData=Y,ue.AxiosError=H,ue.Cancel=ue.CanceledError,ue.all=function(t){return Promise.all(t)},ue.spread=function(t){return function(e){return t.apply(null,e)}},ue.isAxiosError=function(t){return z.isObject(t)&&!0===t.isAxiosError},ue.mergeConfig=jt,ue.AxiosHeaders=St,ue.formToJSON=t=>dt(z.isHTMLForm(t)?new FormData(t):t),ue.getAdapter=Xt,ue.HttpStatusCode=he,ue.default=ue;const le=ue;class de{interceptor;constructor(t){this.interceptor=le.create({baseURL:`${t}/api`}),this.interceptor.interceptors.request.use((t=>{const e=le.CancelToken.source();return t.cancelToken=e.token,setTimeout((()=>{e.cancel("Timeout: request took more than 15 seconds")}),15e3),t}),(t=>Promise.reject(t)))}}const fe="object"==typeof performance&&performance&&"function"==typeof performance.now?performance:Date,pe=new Set,ge="object"==typeof process&&process?process:{},me=(t,e,s,r)=>{"function"==typeof ge.emitWarning?ge.emitWarning(t,e,s,r):console.error(`[${s}] ${e}: ${t}`)};let ye=globalThis.AbortController,be=globalThis.AbortSignal;if(void 0===ye){be=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(t,e){this._onabort.push(e)}},ye=class{constructor(){e()}signal=new be;abort(t){if(!this.signal.aborted){this.signal.reason=t,this.signal.aborted=!0;for(const e of this.signal._onabort)e(t);this.signal.onabort?.(t)}}};let t="1"!==ge.env?.LRU_CACHE_IGNORE_AC_WARNING;const e=()=>{t&&(t=!1,me("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",e))}}Symbol("type");const ve=t=>t&&t===Math.floor(t)&&t>0&&isFinite(t),we=t=>ve(t)?t<=Math.pow(2,8)?Uint8Array:t<=Math.pow(2,16)?Uint16Array:t<=Math.pow(2,32)?Uint32Array:t<=Number.MAX_SAFE_INTEGER?Se:null:null;class Se extends Array{constructor(t){super(t),this.fill(0)}}class ke{heap;length;static#t=!1;static create(t){const e=we(t);if(!e)return[];ke.#t=!0;const s=new ke(t,e);return ke.#t=!1,s}constructor(t,e){if(!ke.#t)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new e(t),this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}}class Ee{#e;#s;#r;#i;#n;#o;ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#a;#c;#h;#u;#l;#d;#f;#p;#g;#m;#y;#b;#v;#w;#S;#k;#E;static unsafeExposeInternals(t){return{starts:t.#v,ttls:t.#w,sizes:t.#b,keyMap:t.#h,keyList:t.#u,valList:t.#l,next:t.#d,prev:t.#f,get head(){return t.#p},get tail(){return t.#g},free:t.#m,isBackgroundFetch:e=>t.#_(e),backgroundFetch:(e,s,r,i)=>t.#O(e,s,r,i),moveToTail:e=>t.#T(e),indexes:e=>t.#x(e),rindexes:e=>t.#A(e),isStale:e=>t.#R(e)}}get max(){return this.#e}get maxSize(){return this.#s}get calculatedSize(){return this.#c}get size(){return this.#a}get fetchMethod(){return this.#n}get memoMethod(){return this.#o}get dispose(){return this.#r}get disposeAfter(){return this.#i}constructor(t){const{max:e=0,ttl:s,ttlResolution:r=1,ttlAutopurge:i,updateAgeOnGet:n,updateAgeOnHas:o,allowStale:a,dispose:c,disposeAfter:h,noDisposeOnSet:u,noUpdateTTL:l,maxSize:d=0,maxEntrySize:f=0,sizeCalculation:p,fetchMethod:g,memoMethod:m,noDeleteOnFetchRejection:y,noDeleteOnStaleGet:b,allowStaleOnFetchRejection:v,allowStaleOnFetchAbort:w,ignoreFetchAbort:S}=t;if(0!==e&&!ve(e))throw new TypeError("max option must be a nonnegative integer");const k=e?we(e):Array;if(!k)throw new Error("invalid max value: "+e);if(this.#e=e,this.#s=d,this.maxEntrySize=f||this.#s,this.sizeCalculation=p,this.sizeCalculation){if(!this.#s&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if("function"!=typeof this.sizeCalculation)throw new TypeError("sizeCalculation set to non-function")}if(void 0!==m&&"function"!=typeof m)throw new TypeError("memoMethod must be a function if defined");if(this.#o=m,void 0!==g&&"function"!=typeof g)throw new TypeError("fetchMethod must be a function if specified");if(this.#n=g,this.#k=!!g,this.#h=new Map,this.#u=new Array(e).fill(void 0),this.#l=new Array(e).fill(void 0),this.#d=new k(e),this.#f=new k(e),this.#p=0,this.#g=0,this.#m=ke.create(e),this.#a=0,this.#c=0,"function"==typeof c&&(this.#r=c),"function"==typeof h?(this.#i=h,this.#y=[]):(this.#i=void 0,this.#y=void 0),this.#S=!!this.#r,this.#E=!!this.#i,this.noDisposeOnSet=!!u,this.noUpdateTTL=!!l,this.noDeleteOnFetchRejection=!!y,this.allowStaleOnFetchRejection=!!v,this.allowStaleOnFetchAbort=!!w,this.ignoreFetchAbort=!!S,0!==this.maxEntrySize){if(0!==this.#s&&!ve(this.#s))throw new TypeError("maxSize must be a positive integer if specified");if(!ve(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#L()}if(this.allowStale=!!a,this.noDeleteOnStaleGet=!!b,this.updateAgeOnGet=!!n,this.updateAgeOnHas=!!o,this.ttlResolution=ve(r)||0===r?r:1,this.ttlAutopurge=!!i,this.ttl=s||0,this.ttl){if(!ve(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#C()}if(0===this.#e&&0===this.ttl&&0===this.#s)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#e&&!this.#s){const t="LRU_CACHE_UNBOUNDED";(t=>!pe.has(t))(t)&&(pe.add(t),me("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",t,Ee))}}getRemainingTTL(t){return this.#h.has(t)?1/0:0}#C(){const t=new Se(this.#e),e=new Se(this.#e);this.#w=t,this.#v=e,this.#j=(s,r,i=fe.now())=>{if(e[s]=0!==r?i:0,t[s]=r,0!==r&&this.ttlAutopurge){const t=setTimeout((()=>{this.#R(s)&&this.#B(this.#u[s],"expire")}),r+1);t.unref&&t.unref()}},this.#P=s=>{e[s]=0!==t[s]?fe.now():0},this.#D=(i,n)=>{if(t[n]){const o=t[n],a=e[n];if(!o||!a)return;i.ttl=o,i.start=a,i.now=s||r();const c=i.now-a;i.remainingTTL=o-c}};let s=0;const r=()=>{const t=fe.now();if(this.ttlResolution>0){s=t;const e=setTimeout((()=>s=0),this.ttlResolution);e.unref&&e.unref()}return t};this.getRemainingTTL=i=>{const n=this.#h.get(i);if(void 0===n)return 0;const o=t[n],a=e[n];return o&&a?o-((s||r())-a):1/0},this.#R=i=>{const n=e[i],o=t[i];return!!o&&!!n&&(s||r())-n>o}}#P=()=>{};#D=()=>{};#j=()=>{};#R=()=>!1;#L(){const t=new Se(this.#e);this.#c=0,this.#b=t,this.#F=e=>{this.#c-=t[e],t[e]=0},this.#N=(t,e,s,r)=>{if(this.#_(e))return 0;if(!ve(s)){if(!r)throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");if("function"!=typeof r)throw new TypeError("sizeCalculation must be a function");if(s=r(e,t),!ve(s))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}return s},this.#M=(e,s,r)=>{if(t[e]=s,this.#s){const s=this.#s-t[e];for(;this.#c>s;)this.#q(!0)}this.#c+=t[e],r&&(r.entrySize=s,r.totalCalculatedSize=this.#c)}}#F=t=>{};#M=(t,e,s)=>{};#N=(t,e,s,r)=>{if(s||r)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#x({allowStale:t=this.allowStale}={}){if(this.#a)for(let e=this.#g;this.#I(e)&&(!t&&this.#R(e)||(yield e),e!==this.#p);)e=this.#f[e]}*#A({allowStale:t=this.allowStale}={}){if(this.#a)for(let e=this.#p;this.#I(e)&&(!t&&this.#R(e)||(yield e),e!==this.#g);)e=this.#d[e]}#I(t){return void 0!==t&&this.#h.get(this.#u[t])===t}*entries(){for(const t of this.#x())void 0===this.#l[t]||void 0===this.#u[t]||this.#_(this.#l[t])||(yield[this.#u[t],this.#l[t]])}*rentries(){for(const t of this.#A())void 0===this.#l[t]||void 0===this.#u[t]||this.#_(this.#l[t])||(yield[this.#u[t],this.#l[t]])}*keys(){for(const t of this.#x()){const e=this.#u[t];void 0===e||this.#_(this.#l[t])||(yield e)}}*rkeys(){for(const t of this.#A()){const e=this.#u[t];void 0===e||this.#_(this.#l[t])||(yield e)}}*values(){for(const t of this.#x())void 0===this.#l[t]||this.#_(this.#l[t])||(yield this.#l[t])}*rvalues(){for(const t of this.#A())void 0===this.#l[t]||this.#_(this.#l[t])||(yield this.#l[t])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(t,e={}){for(const s of this.#x()){const r=this.#l[s],i=this.#_(r)?r.__staleWhileFetching:r;if(void 0!==i&&t(i,this.#u[s],this))return this.get(this.#u[s],e)}}forEach(t,e=this){for(const s of this.#x()){const r=this.#l[s],i=this.#_(r)?r.__staleWhileFetching:r;void 0!==i&&t.call(e,i,this.#u[s],this)}}rforEach(t,e=this){for(const s of this.#A()){const r=this.#l[s],i=this.#_(r)?r.__staleWhileFetching:r;void 0!==i&&t.call(e,i,this.#u[s],this)}}purgeStale(){let t=!1;for(const e of this.#A({allowStale:!0}))this.#R(e)&&(this.#B(this.#u[e],"expire"),t=!0);return t}info(t){const e=this.#h.get(t);if(void 0===e)return;const s=this.#l[e],r=this.#_(s)?s.__staleWhileFetching:s;if(void 0===r)return;const i={value:r};if(this.#w&&this.#v){const t=this.#w[e],s=this.#v[e];if(t&&s){const e=t-(fe.now()-s);i.ttl=e,i.start=Date.now()}}return this.#b&&(i.size=this.#b[e]),i}dump(){const t=[];for(const e of this.#x({allowStale:!0})){const s=this.#u[e],r=this.#l[e],i=this.#_(r)?r.__staleWhileFetching:r;if(void 0===i||void 0===s)continue;const n={value:i};if(this.#w&&this.#v){n.ttl=this.#w[e];const t=fe.now()-this.#v[e];n.start=Math.floor(Date.now()-t)}this.#b&&(n.size=this.#b[e]),t.unshift([s,n])}return t}load(t){this.clear();for(const[e,s]of t){if(s.start){const t=Date.now()-s.start;s.start=fe.now()-t}this.set(e,s.value,s)}}set(t,e,s={}){if(void 0===e)return this.delete(t),this;const{ttl:r=this.ttl,start:i,noDisposeOnSet:n=this.noDisposeOnSet,sizeCalculation:o=this.sizeCalculation,status:a}=s;let{noUpdateTTL:c=this.noUpdateTTL}=s;const h=this.#N(t,e,s.size||0,o);if(this.maxEntrySize&&h>this.maxEntrySize)return a&&(a.set="miss",a.maxEntrySizeExceeded=!0),this.#B(t,"set"),this;let u=0===this.#a?void 0:this.#h.get(t);if(void 0===u)u=0===this.#a?this.#g:0!==this.#m.length?this.#m.pop():this.#a===this.#e?this.#q(!1):this.#a,this.#u[u]=t,this.#l[u]=e,this.#h.set(t,u),this.#d[this.#g]=u,this.#f[u]=this.#g,this.#g=u,this.#a++,this.#M(u,h,a),a&&(a.set="add"),c=!1;else{this.#T(u);const s=this.#l[u];if(e!==s){if(this.#k&&this.#_(s)){s.__abortController.abort(new Error("replaced"));const{__staleWhileFetching:e}=s;void 0===e||n||(this.#S&&this.#r?.(e,t,"set"),this.#E&&this.#y?.push([e,t,"set"]))}else n||(this.#S&&this.#r?.(s,t,"set"),this.#E&&this.#y?.push([s,t,"set"]));if(this.#F(u),this.#M(u,h,a),this.#l[u]=e,a){a.set="replace";const t=s&&this.#_(s)?s.__staleWhileFetching:s;void 0!==t&&(a.oldValue=t)}}else a&&(a.set="update")}if(0===r||this.#w||this.#C(),this.#w&&(c||this.#j(u,r,i),a&&this.#D(a,u)),!n&&this.#E&&this.#y){const t=this.#y;let e;for(;e=t?.shift();)this.#i?.(...e)}return this}pop(){try{for(;this.#a;){const t=this.#l[this.#p];if(this.#q(!0),this.#_(t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(void 0!==t)return t}}finally{if(this.#E&&this.#y){const t=this.#y;let e;for(;e=t?.shift();)this.#i?.(...e)}}}#q(t){const e=this.#p,s=this.#u[e],r=this.#l[e];return this.#k&&this.#_(r)?r.__abortController.abort(new Error("evicted")):(this.#S||this.#E)&&(this.#S&&this.#r?.(r,s,"evict"),this.#E&&this.#y?.push([r,s,"evict"])),this.#F(e),t&&(this.#u[e]=void 0,this.#l[e]=void 0,this.#m.push(e)),1===this.#a?(this.#p=this.#g=0,this.#m.length=0):this.#p=this.#d[e],this.#h.delete(s),this.#a--,e}has(t,e={}){const{updateAgeOnHas:s=this.updateAgeOnHas,status:r}=e,i=this.#h.get(t);if(void 0!==i){const t=this.#l[i];if(this.#_(t)&&void 0===t.__staleWhileFetching)return!1;if(!this.#R(i))return s&&this.#P(i),r&&(r.has="hit",this.#D(r,i)),!0;r&&(r.has="stale",this.#D(r,i))}else r&&(r.has="miss");return!1}peek(t,e={}){const{allowStale:s=this.allowStale}=e,r=this.#h.get(t);if(void 0===r||!s&&this.#R(r))return;const i=this.#l[r];return this.#_(i)?i.__staleWhileFetching:i}#O(t,e,s,r){const i=void 0===e?void 0:this.#l[e];if(this.#_(i))return i;const n=new ye,{signal:o}=s;o?.addEventListener("abort",(()=>n.abort(o.reason)),{signal:n.signal});const a={signal:n.signal,options:s,context:r},c=(r,i=!1)=>{const{aborted:o}=n.signal,c=s.ignoreFetchAbort&&void 0!==r;if(s.status&&(o&&!i?(s.status.fetchAborted=!0,s.status.fetchError=n.signal.reason,c&&(s.status.fetchAbortIgnored=!0)):s.status.fetchResolved=!0),o&&!c&&!i)return h(n.signal.reason);const l=u;return this.#l[e]===u&&(void 0===r?l.__staleWhileFetching?this.#l[e]=l.__staleWhileFetching:this.#B(t,"fetch"):(s.status&&(s.status.fetchUpdated=!0),this.set(t,r,a.options))),r},h=r=>{const{aborted:i}=n.signal,o=i&&s.allowStaleOnFetchAbort,a=o||s.allowStaleOnFetchRejection,c=a||s.noDeleteOnFetchRejection,h=u;if(this.#l[e]===u&&(c&&void 0!==h.__staleWhileFetching?o||(this.#l[e]=h.__staleWhileFetching):this.#B(t,"fetch")),a)return s.status&&void 0!==h.__staleWhileFetching&&(s.status.returnedStale=!0),h.__staleWhileFetching;if(h.__returned===h)throw r};s.status&&(s.status.fetchDispatched=!0);const u=new Promise(((e,r)=>{const o=this.#n?.(t,i,a);o&&o instanceof Promise&&o.then((t=>e(void 0===t?void 0:t)),r),n.signal.addEventListener("abort",(()=>{s.ignoreFetchAbort&&!s.allowStaleOnFetchAbort||(e(void 0),s.allowStaleOnFetchAbort&&(e=t=>c(t,!0)))}))})).then(c,(t=>(s.status&&(s.status.fetchRejected=!0,s.status.fetchError=t),h(t)))),l=Object.assign(u,{__abortController:n,__staleWhileFetching:i,__returned:void 0});return void 0===e?(this.set(t,l,{...a.options,status:void 0}),e=this.#h.get(t)):this.#l[e]=l,l}#_(t){if(!this.#k)return!1;const e=t;return!!e&&e instanceof Promise&&e.hasOwnProperty("__staleWhileFetching")&&e.__abortController instanceof ye}async fetch(t,e={}){const{allowStale:s=this.allowStale,updateAgeOnGet:r=this.updateAgeOnGet,noDeleteOnStaleGet:i=this.noDeleteOnStaleGet,ttl:n=this.ttl,noDisposeOnSet:o=this.noDisposeOnSet,size:a=0,sizeCalculation:c=this.sizeCalculation,noUpdateTTL:h=this.noUpdateTTL,noDeleteOnFetchRejection:u=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:l=this.allowStaleOnFetchRejection,ignoreFetchAbort:d=this.ignoreFetchAbort,allowStaleOnFetchAbort:f=this.allowStaleOnFetchAbort,context:p,forceRefresh:g=!1,status:m,signal:y}=e;if(!this.#k)return m&&(m.fetch="get"),this.get(t,{allowStale:s,updateAgeOnGet:r,noDeleteOnStaleGet:i,status:m});const b={allowStale:s,updateAgeOnGet:r,noDeleteOnStaleGet:i,ttl:n,noDisposeOnSet:o,size:a,sizeCalculation:c,noUpdateTTL:h,noDeleteOnFetchRejection:u,allowStaleOnFetchRejection:l,allowStaleOnFetchAbort:f,ignoreFetchAbort:d,status:m,signal:y};let v=this.#h.get(t);if(void 0===v){m&&(m.fetch="miss");const e=this.#O(t,v,b,p);return e.__returned=e}{const e=this.#l[v];if(this.#_(e)){const t=s&&void 0!==e.__staleWhileFetching;return m&&(m.fetch="inflight",t&&(m.returnedStale=!0)),t?e.__staleWhileFetching:e.__returned=e}const i=this.#R(v);if(!g&&!i)return m&&(m.fetch="hit"),this.#T(v),r&&this.#P(v),m&&this.#D(m,v),e;const n=this.#O(t,v,b,p),o=void 0!==n.__staleWhileFetching&&s;return m&&(m.fetch=i?"stale":"refresh",o&&i&&(m.returnedStale=!0)),o?n.__staleWhileFetching:n.__returned=n}}async forceFetch(t,e={}){const s=await this.fetch(t,e);if(void 0===s)throw new Error("fetch() returned undefined");return s}memo(t,e={}){const s=this.#o;if(!s)throw new Error("no memoMethod provided to constructor");const{context:r,forceRefresh:i,...n}=e,o=this.get(t,n);if(!i&&void 0!==o)return o;const a=s(t,o,{options:n,context:r});return this.set(t,a,n),a}get(t,e={}){const{allowStale:s=this.allowStale,updateAgeOnGet:r=this.updateAgeOnGet,noDeleteOnStaleGet:i=this.noDeleteOnStaleGet,status:n}=e,o=this.#h.get(t);if(void 0!==o){const e=this.#l[o],a=this.#_(e);return n&&this.#D(n,o),this.#R(o)?(n&&(n.get="stale"),a?(n&&s&&void 0!==e.__staleWhileFetching&&(n.returnedStale=!0),s?e.__staleWhileFetching:void 0):(i||this.#B(t,"expire"),n&&s&&(n.returnedStale=!0),s?e:void 0)):(n&&(n.get="hit"),a?e.__staleWhileFetching:(this.#T(o),r&&this.#P(o),e))}n&&(n.get="miss")}#z(t,e){this.#f[e]=t,this.#d[t]=e}#T(t){t!==this.#g&&(t===this.#p?this.#p=this.#d[t]:this.#z(this.#f[t],this.#d[t]),this.#z(this.#g,t),this.#g=t)}delete(t){return this.#B(t,"delete")}#B(t,e){let s=!1;if(0!==this.#a){const r=this.#h.get(t);if(void 0!==r)if(s=!0,1===this.#a)this.#U(e);else{this.#F(r);const s=this.#l[r];if(this.#_(s)?s.__abortController.abort(new Error("deleted")):(this.#S||this.#E)&&(this.#S&&this.#r?.(s,t,e),this.#E&&this.#y?.push([s,t,e])),this.#h.delete(t),this.#u[r]=void 0,this.#l[r]=void 0,r===this.#g)this.#g=this.#f[r];else if(r===this.#p)this.#p=this.#d[r];else{const t=this.#f[r];this.#d[t]=this.#d[r];const e=this.#d[r];this.#f[e]=this.#f[r]}this.#a--,this.#m.push(r)}}if(this.#E&&this.#y?.length){const t=this.#y;let e;for(;e=t?.shift();)this.#i?.(...e)}return s}clear(){return this.#U("delete")}#U(t){for(const e of this.#A({allowStale:!0})){const s=this.#l[e];if(this.#_(s))s.__abortController.abort(new Error("deleted"));else{const r=this.#u[e];this.#S&&this.#r?.(s,r,t),this.#E&&this.#y?.push([s,r,t])}}if(this.#h.clear(),this.#l.fill(void 0),this.#u.fill(void 0),this.#w&&this.#v&&(this.#w.fill(0),this.#v.fill(0)),this.#b&&this.#b.fill(0),this.#p=0,this.#g=0,this.#m.length=0,this.#c=0,this.#a=0,this.#E&&this.#y){const t=this.#y;let e;for(;e=t?.shift();)this.#i?.(...e)}}}var _e=function(t,e){return _e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&(t[s]=e[s])},_e(t,e)};function Oe(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function s(){this.constructor=t}_e(t,e),t.prototype=null===e?Object.create(e):(s.prototype=e.prototype,new s)}function Te(t,e){var s,r,i,n,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return n={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(n[Symbol.iterator]=function(){return this}),n;function a(a){return function(c){return function(a){if(s)throw new TypeError("Generator is already executing.");for(;n&&(n=0,a[0]&&(o=0)),o;)try{if(s=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!((i=(i=o.trys).length>0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]<i[3])){o.label=a[1];break}if(6===a[0]&&o.label<i[1]){o.label=i[1],i=a;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(a);break}i[2]&&o.ops.pop(),o.trys.pop();continue}a=e.call(t,o)}catch(t){a=[6,t],r=0}finally{s=i=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,c])}}}function xe(t){var e="function"==typeof Symbol&&Symbol.iterator,s=e&&t[e],r=0;if(s)return s.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function Ae(t,e){var s="function"==typeof Symbol&&t[Symbol.iterator];if(!s)return t;var r,i,n=s.call(t),o=[];try{for(;(void 0===e||e-- >0)&&!(r=n.next()).done;)o.push(r.value)}catch(t){i={error:t}}finally{try{r&&!r.done&&(s=n.return)&&s.call(n)}finally{if(i)throw i.error}}return o}function Re(t,e,s){if(s||2===arguments.length)for(var r,i=0,n=e.length;i<n;i++)!r&&i in e||(r||(r=Array.prototype.slice.call(e,0,i)),r[i]=e[i]);return t.concat(r||Array.prototype.slice.call(e))}function Le(t){return this instanceof Le?(this.v=t,this):new Le(t)}function Ce(t){return"function"==typeof t}function je(t){var e=t((function(t){Error.call(t),t.stack=(new Error).stack}));return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;var Be=je((function(t){return function(e){t(this),this.message=e?e.length+" errors occurred during unsubscription:\n"+e.map((function(t,e){return e+1+") "+t.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=e}}));function Pe(t,e){if(t){var s=t.indexOf(e);0<=s&&t.splice(s,1)}}var De=function(){function t(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return t.prototype.unsubscribe=function(){var t,e,s,r,i;if(!this.closed){this.closed=!0;var n=this._parentage;if(n)if(this._parentage=null,Array.isArray(n))try{for(var o=xe(n),a=o.next();!a.done;a=o.next())a.value.remove(this)}catch(e){t={error:e}}finally{try{a&&!a.done&&(e=o.return)&&e.call(o)}finally{if(t)throw t.error}}else n.remove(this);var c=this.initialTeardown;if(Ce(c))try{c()}catch(t){i=t instanceof Be?t.errors:[t]}var h=this._finalizers;if(h){this._finalizers=null;try{for(var u=xe(h),l=u.next();!l.done;l=u.next()){var d=l.value;try{Me(d)}catch(t){i=null!=i?i:[],t instanceof Be?i=Re(Re([],Ae(i)),Ae(t.errors)):i.push(t)}}}catch(t){s={error:t}}finally{try{l&&!l.done&&(r=u.return)&&r.call(u)}finally{if(s)throw s.error}}}if(i)throw new Be(i)}},t.prototype.add=function(e){var s;if(e&&e!==this)if(this.closed)Me(e);else{if(e instanceof t){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._finalizers=null!==(s=this._finalizers)&&void 0!==s?s:[]).push(e)}},t.prototype._hasParent=function(t){var e=this._parentage;return e===t||Array.isArray(e)&&e.includes(t)},t.prototype._addParent=function(t){var e=this._parentage;this._parentage=Array.isArray(e)?(e.push(t),e):e?[e,t]:t},t.prototype._removeParent=function(t){var e=this._parentage;e===t?this._parentage=null:Array.isArray(e)&&Pe(e,t)},t.prototype.remove=function(e){var s=this._finalizers;s&&Pe(s,e),e instanceof t&&e._removeParent(this)},t.EMPTY=function(){var e=new t;return e.closed=!0,e}(),t}(),Fe=De.EMPTY;function Ne(t){return t instanceof De||t&&"closed"in t&&Ce(t.remove)&&Ce(t.add)&&Ce(t.unsubscribe)}function Me(t){Ce(t)?t():t.unsubscribe()}var qe={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Ie={setTimeout:function(t,e){for(var s=[],r=2;r<arguments.length;r++)s[r-2]=arguments[r];var i=Ie.delegate;return(null==i?void 0:i.setTimeout)?i.setTimeout.apply(i,Re([t,e],Ae(s))):setTimeout.apply(void 0,Re([t,e],Ae(s)))},clearTimeout:function(t){var e=Ie.delegate;return((null==e?void 0:e.clearTimeout)||clearTimeout)(t)},delegate:void 0};function ze(t){Ie.setTimeout((function(){var e=qe.onUnhandledError;if(!e)throw t;e(t)}))}function Ue(){}var Ve=We("C",void 0,void 0);function We(t,e,s){return{kind:t,value:e,error:s}}var He=null;function $e(t){if(qe.useDeprecatedSynchronousErrorHandling){var e=!He;if(e&&(He={errorThrown:!1,error:null}),t(),e){var s=He,r=s.errorThrown,i=s.error;if(He=null,r)throw i}}else t()}var Je=function(t){function e(e){var s=t.call(this)||this;return s.isStopped=!1,e?(s.destination=e,Ne(e)&&e.add(s)):s.destination=ts,s}return Oe(e,t),e.create=function(t,e,s){return new Xe(t,e,s)},e.prototype.next=function(t){this.isStopped?Ze(function(t){return We("N",t,void 0)}(t),this):this._next(t)},e.prototype.error=function(t){this.isStopped?Ze(We("E",void 0,t),this):(this.isStopped=!0,this._error(t))},e.prototype.complete=function(){this.isStopped?Ze(Ve,this):(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this),this.destination=null)},e.prototype._next=function(t){this.destination.next(t)},e.prototype._error=function(t){try{this.destination.error(t)}finally{this.unsubscribe()}},e.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},e}(De),Ge=Function.prototype.bind;function Ke(t,e){return Ge.call(t,e)}var Ye=function(){function t(t){this.partialObserver=t}return t.prototype.next=function(t){var e=this.partialObserver;if(e.next)try{e.next(t)}catch(t){Qe(t)}},t.prototype.error=function(t){var e=this.partialObserver;if(e.error)try{e.error(t)}catch(t){Qe(t)}else Qe(t)},t.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(t){Qe(t)}},t}(),Xe=function(t){function e(e,s,r){var i,n,o=t.call(this)||this;return Ce(e)||!e?i={next:null!=e?e:void 0,error:null!=s?s:void 0,complete:null!=r?r:void 0}:o&&qe.useDeprecatedNextContext?((n=Object.create(e)).unsubscribe=function(){return o.unsubscribe()},i={next:e.next&&Ke(e.next,n),error:e.error&&Ke(e.error,n),complete:e.complete&&Ke(e.complete,n)}):i=e,o.destination=new Ye(i),o}return Oe(e,t),e}(Je);function Qe(t){var e;qe.useDeprecatedSynchronousErrorHandling?(e=t,qe.useDeprecatedSynchronousErrorHandling&&He&&(He.errorThrown=!0,He.error=e)):ze(t)}function Ze(t,e){var s=qe.onStoppedNotification;s&&Ie.setTimeout((function(){return s(t,e)}))}var ts={closed:!0,next:Ue,error:function(t){throw t},complete:Ue},es="function"==typeof Symbol&&Symbol.observable||"@@observable";function ss(t){return t}var rs=function(){function t(t){t&&(this._subscribe=t)}return t.prototype.lift=function(e){var s=new t;return s.source=this,s.operator=e,s},t.prototype.subscribe=function(t,e,s){var r=this,i=function(t){return t&&t instanceof Je||function(t){return t&&Ce(t.next)&&Ce(t.error)&&Ce(t.complete)}(t)&&Ne(t)}(t)?t:new Xe(t,e,s);return $e((function(){var t=r,e=t.operator,s=t.source;i.add(e?e.call(i,s):s?r._subscribe(i):r._trySubscribe(i))})),i},t.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(e){t.error(e)}},t.prototype.forEach=function(t,e){var s=this;return new(e=is(e))((function(e,r){var i=new Xe({next:function(e){try{t(e)}catch(t){r(t),i.unsubscribe()}},error:r,complete:e});s.subscribe(i)}))},t.prototype._subscribe=function(t){var e;return null===(e=this.source)||void 0===e?void 0:e.subscribe(t)},t.prototype[es]=function(){return this},t.prototype.pipe=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return(0===(s=t).length?ss:1===s.length?s[0]:function(t){return s.reduce((function(t,e){return e(t)}),t)})(this);var s},t.prototype.toPromise=function(t){var e=this;return new(t=is(t))((function(t,s){var r;e.subscribe((function(t){return r=t}),(function(t){return s(t)}),(function(){return t(r)}))}))},t.create=function(e){return new t(e)},t}();function is(t){var e;return null!==(e=null!=t?t:qe.Promise)&&void 0!==e?e:Promise}var ns=je((function(t){return function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}})),os=function(t){function e(){var e=t.call(this)||this;return e.closed=!1,e.currentObservers=null,e.observers=[],e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return Oe(e,t),e.prototype.lift=function(t){var e=new as(this,this);return e.operator=t,e},e.prototype._throwIfClosed=function(){if(this.closed)throw new ns},e.prototype.next=function(t){var e=this;$e((function(){var s,r;if(e._throwIfClosed(),!e.isStopped){e.currentObservers||(e.currentObservers=Array.from(e.observers));try{for(var i=xe(e.currentObservers),n=i.next();!n.done;n=i.next())n.value.next(t)}catch(t){s={error:t}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(s)throw s.error}}}}))},e.prototype.error=function(t){var e=this;$e((function(){if(e._throwIfClosed(),!e.isStopped){e.hasError=e.isStopped=!0,e.thrownError=t;for(var s=e.observers;s.length;)s.shift().error(t)}}))},e.prototype.complete=function(){var t=this;$e((function(){if(t._throwIfClosed(),!t.isStopped){t.isStopped=!0;for(var e=t.observers;e.length;)e.shift().complete()}}))},e.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(e.prototype,"observed",{get:function(){var t;return(null===(t=this.observers)||void 0===t?void 0:t.length)>0},enumerable:!1,configurable:!0}),e.prototype._trySubscribe=function(e){return this._throwIfClosed(),t.prototype._trySubscribe.call(this,e)},e.prototype._subscribe=function(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)},e.prototype._innerSubscribe=function(t){var e=this,s=this,r=s.hasError,i=s.isStopped,n=s.observers;return r||i?Fe:(this.currentObservers=null,n.push(t),new De((function(){e.currentObservers=null,Pe(n,t)})))},e.prototype._checkFinalizedStatuses=function(t){var e=this,s=e.hasError,r=e.thrownError,i=e.isStopped;s?t.error(r):i&&t.complete()},e.prototype.asObservable=function(){var t=new rs;return t.source=this,t},e.create=function(t,e){return new as(t,e)},e}(rs),as=function(t){function e(e,s){var r=t.call(this)||this;return r.destination=e,r.source=s,r}return Oe(e,t),e.prototype.next=function(t){var e,s;null===(s=null===(e=this.destination)||void 0===e?void 0:e.next)||void 0===s||s.call(e,t)},e.prototype.error=function(t){var e,s;null===(s=null===(e=this.destination)||void 0===e?void 0:e.error)||void 0===s||s.call(e,t)},e.prototype.complete=function(){var t,e;null===(e=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===e||e.call(t)},e.prototype._subscribe=function(t){var e,s;return null!==(s=null===(e=this.source)||void 0===e?void 0:e.subscribe(t))&&void 0!==s?s:Fe},e}(os),cs=function(t){function e(e){var s=t.call(this)||this;return s._value=e,s}return Oe(e,t),Object.defineProperty(e.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),e.prototype._subscribe=function(e){var s=t.prototype._subscribe.call(this,e);return!s.closed&&e.next(this._value),s},e.prototype.getValue=function(){var t=this,e=t.hasError,s=t.thrownError,r=t._value;if(e)throw s;return this._throwIfClosed(),r},e.prototype.next=function(e){t.prototype.next.call(this,this._value=e)},e}(os),hs={now:function(){return(hs.delegate||Date).now()},delegate:void 0},us=function(t){function e(e,s,r){void 0===e&&(e=1/0),void 0===s&&(s=1/0),void 0===r&&(r=hs);var i=t.call(this)||this;return i._bufferSize=e,i._windowTime=s,i._timestampProvider=r,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=s===1/0,i._bufferSize=Math.max(1,e),i._windowTime=Math.max(1,s),i}return Oe(e,t),e.prototype.next=function(e){var s=this,r=s.isStopped,i=s._buffer,n=s._infiniteTimeWindow,o=s._timestampProvider,a=s._windowTime;r||(i.push(e),!n&&i.push(o.now()+a)),this._trimBuffer(),t.prototype.next.call(this,e)},e.prototype._subscribe=function(t){this._throwIfClosed(),this._trimBuffer();for(var e=this._innerSubscribe(t),s=this._infiniteTimeWindow,r=this._buffer.slice(),i=0;i<r.length&&!t.closed;i+=s?1:2)t.next(r[i]);return this._checkFinalizedStatuses(t),e},e.prototype._trimBuffer=function(){var t=this,e=t._bufferSize,s=t._timestampProvider,r=t._buffer,i=t._infiniteTimeWindow,n=(i?1:2)*e;if(e<1/0&&n<r.length&&r.splice(0,r.length-n),!i){for(var o=s.now(),a=0,c=1;c<r.length&&r[c]<=o;c+=2)a=c;a&&r.splice(0,a+1)}},e}(os);function ls(t){return function(e){if(function(t){return Ce(null==t?void 0:t.lift)}(e))return e.lift((function(e){try{return t(e,this)}catch(t){this.error(t)}}));throw new TypeError("Unable to lift unknown Observable type")}}function ds(t,e,s,r,i){return new fs(t,e,s,r,i)}var fs=function(t){function e(e,s,r,i,n,o){var a=t.call(this,e)||this;return a.onFinalize=n,a.shouldUnsubscribe=o,a._next=s?function(t){try{s(t)}catch(t){e.error(t)}}:t.prototype._next,a._error=i?function(t){try{i(t)}catch(t){e.error(t)}finally{this.unsubscribe()}}:t.prototype._error,a._complete=r?function(){try{r()}catch(t){e.error(t)}finally{this.unsubscribe()}}:t.prototype._complete,a}return Oe(e,t),e.prototype.unsubscribe=function(){var e;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var s=this.closed;t.prototype.unsubscribe.call(this),!s&&(null===(e=this.onFinalize)||void 0===e||e.call(this))}},e}(Je);function ps(){return ls((function(t,e){var s,r=!1;t.subscribe(ds(e,(function(t){var i=s;s=t,r&&e.next([i,t]),r=!0})))}))}function gs(t,e){return ls((function(s,r){var i=0;s.subscribe(ds(r,(function(s){return t.call(e,s,i++)&&r.next(s)})))}))}function ms(t,e){return ls((function(s,r){var i=0;s.subscribe(ds(r,(function(s){r.next(t.call(e,s,i++))})))}))}var ys=function(t){return t&&"number"==typeof t.length&&"function"!=typeof t},bs="function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator";function vs(t){if(t instanceof rs)return t;if(null!=t){if(function(t){return Ce(t[es])}(t))return i=t,new rs((function(t){var e=i[es]();if(Ce(e.subscribe))return e.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")}));if(ys(t))return r=t,new rs((function(t){for(var e=0;e<r.length&&!t.closed;e++)t.next(r[e]);t.complete()}));if(function(t){return Ce(null==t?void 0:t.then)}(t))return s=t,new rs((function(t){s.then((function(e){t.closed||(t.next(e),t.complete())}),(function(e){return t.error(e)})).then(null,ze)}));if(function(t){return Symbol.asyncIterator&&Ce(null==t?void 0:t[Symbol.asyncIterator])}(t))return ws(t);if(function(t){return Ce(null==t?void 0:t[bs])}(t))return e=t,new rs((function(t){var s,r;try{for(var i=xe(e),n=i.next();!n.done;n=i.next()){var o=n.value;if(t.next(o),t.closed)return}}catch(t){s={error:t}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(s)throw s.error}}t.complete()}));if(function(t){return Ce(null==t?void 0:t.getReader)}(t))return ws(function(t){return function(t,e,s){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,i=s.apply(t,e||[]),n=[];return r={},o("next"),o("throw"),o("return",(function(t){return function(e){return Promise.resolve(e).then(t,h)}})),r[Symbol.asyncIterator]=function(){return this},r;function o(t,e){i[t]&&(r[t]=function(e){return new Promise((function(s,r){n.push([t,e,s,r])>1||a(t,e)}))},e&&(r[t]=e(r[t])))}function a(t,e){try{(s=i[t](e)).value instanceof Le?Promise.resolve(s.value.v).then(c,h):u(n[0][2],s)}catch(t){u(n[0][3],t)}var s}function c(t){a("next",t)}function h(t){a("throw",t)}function u(t,e){t(e),n.shift(),n.length&&a(n[0][0],n[0][1])}}(this,arguments,(function(){var e,s,r;return Te(this,(function(i){switch(i.label){case 0:e=t.getReader(),i.label=1;case 1:i.trys.push([1,,9,10]),i.label=2;case 2:return[4,Le(e.read())];case 3:return s=i.sent(),r=s.value,s.done?[4,Le(void 0)]:[3,5];case 4:return[2,i.sent()];case 5:return[4,Le(r)];case 6:return[4,i.sent()];case 7:return i.sent(),[3,2];case 8:return[3,10];case 9:return e.releaseLock(),[7];case 10:return[2]}}))}))}(t))}var e,s,r,i;throw function(t){return new TypeError("You provided "+(null!==t&&"object"==typeof t?"an invalid object":"'"+t+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}(t)}function ws(t){return new rs((function(e){(function(t,e){var s,r,i,n,o,a,c,h;return o=this,a=void 0,h=function(){var o,a;return Te(this,(function(c){switch(c.label){case 0:c.trys.push([0,5,6,11]),s=function(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,s=t[Symbol.asyncIterator];return s?s.call(t):(t=xe(t),e={},r("next"),r("throw"),r("return"),e[Symbol.asyncIterator]=function(){return this},e);function r(s){e[s]=t[s]&&function(e){return new Promise((function(r,i){!function(t,e,s,r){Promise.resolve(r).then((function(e){t({value:e,done:s})}),e)}(r,i,(e=t[s](e)).done,e.value)}))}}}(t),c.label=1;case 1:return[4,s.next()];case 2:if((r=c.sent()).done)return[3,4];if(o=r.value,e.next(o),e.closed)return[2];c.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return a=c.sent(),i={error:a},[3,11];case 6:return c.trys.push([6,,9,10]),r&&!r.done&&(n=s.return)?[4,n.call(s)]:[3,8];case 7:c.sent(),c.label=8;case 8:return[3,10];case 9:if(i)throw i.error;return[7];case 10:return[7];case 11:return e.complete(),[2]}}))},new((c=void 0)||(c=Promise))((function(t,e){function s(t){try{i(h.next(t))}catch(t){e(t)}}function r(t){try{i(h.throw(t))}catch(t){e(t)}}function i(e){e.done?t(e.value):function(t){return t instanceof c?t:new c((function(e){e(t)}))}(e.value).then(s,r)}i((h=h.apply(o,a||[])).next())}))})(t,e).catch((function(t){return e.error(t)}))}))}function Ss(t){void 0===t&&(t={});var e=t.connector,s=void 0===e?function(){return new os}:e,r=t.resetOnError,i=void 0===r||r,n=t.resetOnComplete,o=void 0===n||n,a=t.resetOnRefCountZero,c=void 0===a||a;return function(t){var e,r,n,a=0,h=!1,u=!1,l=function(){null==r||r.unsubscribe(),r=void 0},d=function(){l(),e=n=void 0,h=u=!1},f=function(){var t=e;d(),null==t||t.unsubscribe()};return ls((function(t,p){a++,u||h||l();var g=n=null!=n?n:s();p.add((function(){0!=--a||u||h||(r=ks(f,c))})),g.subscribe(p),!e&&a>0&&(e=new Xe({next:function(t){return g.next(t)},error:function(t){u=!0,l(),r=ks(d,i,t),g.error(t)},complete:function(){h=!0,l(),r=ks(d,o),g.complete()}}),vs(t).subscribe(e))}))(t)}}function ks(t,e){for(var s=[],r=2;r<arguments.length;r++)s[r-2]=arguments[r];if(!0!==e){if(!1!==e){var i=new Xe({next:function(){i.unsubscribe(),t()}});return vs(e.apply(void 0,Re([],Ae(s)))).subscribe(i)}}else t()}function Es(t,e,s){return void 0===s&&(s=1/0),Ce(e)?Es((function(s,r){return ms((function(t,i){return e(s,t,r,i)}))(vs(t(s,r)))}),s):("number"==typeof e&&(s=e),ls((function(e,r){return function(t,e,s,r,i,n,o,a){var c=[],h=0,u=0,l=!1,d=function(){!l||c.length||h||e.complete()},f=function(t){return h<r?p(t):c.push(t)},p=function(t){h++;var i=!1;vs(s(t,u++)).subscribe(ds(e,(function(t){e.next(t)}),(function(){i=!0}),void 0,(function(){if(i)try{h--;for(var t=function(){var t=c.shift();p(t)};c.length&&h<r;)t();d()}catch(t){e.error(t)}})))};return t.subscribe(ds(e,f,(function(){l=!0,d()}))),function(){}}(e,r,t,s)})))}function _s(t,e){return t===e}const Os=(t,e,s=!1)=>{if(t===e)return!0;if((void 0===t||void 0===e||null===t||null===e)&&(t||e))return!1;const r=t?.constructor.name,i=e?.constructor.name;if(r!==i)return!1;if("Array"===r&&"Array"===i){if(t.length!==e.length)return!1;if(s){const r=[...e];return t.every((t=>{const e=r.findIndex((e=>Os(t,e,s)));return-1!==e&&(r.splice(e,1),!0)}))}{let r=!0;for(let i=0;i<t.length;i++)if(!Os(t[i],e[i],s)){r=!1;break}return r}}if("Object"===r&&"Object"===i){let r=!0;const i=Object.keys(t),n=Object.keys(e);if(i.length!==n.length)return!1;for(let n=0;n<i.length;n++)if(t[i[n]]&&e[i[n]]){if(t[i[n]]===e[i[n]])continue;if(!t[i[n]]||"Array"!==t[i[n]].constructor.name&&"Object"!==t[i[n]].constructor.name){if(t[i[n]]!==e[i[n]]){r=!1;break}}else if(r=Os(t[i[n]],e[i[n]],s),!r)break}else if(t[i[n]]&&!e[i[n]]||!t[i[n]]&&e[i[n]]){r=!1;break}return r}return t===e},Ts=t=>JSON.parse(JSON.stringify(t)),xs=(t,e)=>{const{origWidth:s,origHeight:r}=e,i=t.points.map((([t,e])=>[t*s/100,e*r/100]));return{...t,points:i}},As=t=>{const{origWidth:e,origHeight:s,inputWidth:r,inputHeight:i}=t,[n,o,a,c]=t.boundingBox,h=n*e/r,u=o*s/i,l=a*e/r,d=c*s/i;return{...t,boundingBox:[h,u,l,d]}},Rs=(t,e,s)=>{if(t.confidence<s.object.confidence)return!1;if(0===e.length)return!0;const[r,i,n,o]=t.boundingBox,a={xmin:r,ymin:i,xmax:n,ymax:o};let c=!1;for(const s of e){const e=xs(s,t);if(e.isPrivacyMask){if(Cs(a,e.points)){c=!1;break}}else"include"===e.filter?"contain"===e.type?Cs(a,e.points)&&(c=!0):"intersect"===e.type&&(Ls(a,e.points)||Cs(a,e.points))&&(c=!0):"exclude"===e.filter&&("contain"===e.type?Cs(a,e.points)||(c=!0):"intersect"===e.type&&(Ls(a,e.points)||Cs(a,e.points)||(c=!0)))}return c},Ls=(t,e)=>{const s=js(t);for(const t of s)for(let s=0;s<e.length;s++){const r=[e[s],e[(s+1)%e.length]];if(Bs(t,r))return!0}return!1},Cs=(t,e)=>[[t.xmin,t.ymin],[t.xmax,t.ymin],[t.xmax,t.ymax],[t.xmin,t.ymax]].every((t=>Ps(t,e))),js=t=>{const{xmin:e,ymin:s,xmax:r,ymax:i}=t;return[[[e,s],[r,s]],[[r,s],[r,i]],[[r,i],[e,i]],[[e,i],[e,s]]]},Bs=(t,e)=>{const s=(t,e,s)=>(s[1]-t[1])*(e[0]-t[0])>(e[1]-t[1])*(s[0]-t[0]);return r=t[0],i=t[1],s(r,n=e[0],o=e[1])!==s(i,n,o)&&s(r,i,n)!==s(r,i,o);var r,i,n,o},Ps=(t,e)=>{const[s,r]=t;let i=!1,[n,o]=e[e.length-1];for(const[t,a]of e)a>r!=o>r&&s<(n-t)*(r-a)/(o-a)+t&&(i=!i),[n,o]=[t,a];return i};class Ds{subscriptions=[];additionalSubscriptions=[];addSubscriptions(...t){this.subscriptions.push(...t)}addAdditionalSubscriptions(...t){this.additionalSubscriptions.push(...t)}unsubscribe(){this.subscriptions.forEach((t=>t.unsubscribe()))}unsubscribeAdditional(){this.additionalSubscriptions.forEach((t=>t.unsubscribe()))}}class Fs extends Ds{logger;snapshotCache=new Ee({max:100,ttl:3e5});cameraSubject;cameraState=new cs(!1);lightState=new cs(this.getLightState({state:!1},!0));motionState=new cs(this.getMotionState({detections:[],state:!1},!0));audioState=new cs(this.getAudioState({state:!1,db:0},!0));objectState=new cs(this.getObjectState({detections:[]},!0));doorbellState=new cs(this.getDoorbellState({state:!1},!0));sirenState=new cs(this.getSirenState({state:!1,level:0},!0));batteryState=new cs(this.getBatteryState({level:100,charging:!1,lowBattery:!1},!0));prebufferStateSubjects={};onConnected=this.createStateObservable(this.cameraState);onLightSwitched=this.createStateObservable(this.lightState);onMotionDetected=this.createStateObservable(this.motionState);onAudioDetected=this.createStateObservable(this.audioState);onObjectDetected=this.createStateObservable(this.objectState);onDoorbellPressed=this.createStateObservable(this.doorbellState);onSirenDetected=this.createStateObservable(this.sirenState);onBatteryChanged=this.createStateObservable(this.batteryState);get cameraObject(){return Ts(this.cameraSubject.getValue())}get id(){return this.cameraSubject.getValue()._id}get nativeId(){return this.cameraSubject.getValue().nativeId}get pluginId(){return this.cameraSubject.getValue().pluginId}get connected(){return this.cameraState.getValue()}get disabled(){return this.cameraSubject.getValue().disabled}get name(){return this.cameraSubject.getValue().name}get type(){return this.cameraSubject.getValue().type}get info(){return Ts(this.cameraSubject.getValue().info)}get isCloud(){return this.cameraSubject.getValue().isCloud}get hasLight(){return this.cameraSubject.getValue().hasLight}get hasSiren(){return this.cameraSubject.getValue().hasSiren}get hasBinarySensor(){return this.cameraSubject.getValue().hasBinarySensor}get hasBattery(){return this.cameraSubject.getValue().hasBattery}get hasMotionDetector(){return this.cameraSubject.getValue().hasMotionDetector}get hasAudioDetector(){return this.cameraSubject.getValue().hasAudioDetector}get hasObjectDetector(){return this.cameraSubject.getValue().hasObjectDetector}get hasPtz(){return this.cameraSubject.getValue().hasPtz}get hasPrebuffer(){return this.cameraSubject.getValue().hasPrebuffer}get activityZones(){return Ts(this.cameraSubject.getValue().activityZones)}get activitySettings(){return Ts(this.cameraSubject.getValue().activitySettings)}get frameWorkerSettings(){return Ts(this.cameraSubject.getValue().frameWorkerSettings)}get sources(){return Ts(this.cameraSubject.getValue().sources).map((t=>({...t,updatePrebufferingState:async(e,s)=>this.updatePrebuffer(t._id,e,s),getPrebufferingState:e=>this.cameraSourcePrebufferState(t._id,e),onPrebuffering:e=>this.createPrebufferStateObservable(t._id,e),getStreamInfo:async()=>{}})))}get streamSource(){return this.sources.find((t=>t.roles.includes("stream")))||this.sources[0]}get snapshotSource(){return this.sources.find((t=>t.roles.includes("snapshot")))||this.streamSource}get recordingSource(){return this.sources.find((t=>t.roles.includes("record")))||this.streamSource}get detectionSource(){return this.sources.find((t=>t.roles.includes("detect")))||this.streamSource}constructor(t,e){super(),this.logger=e,this.cameraSubject=new cs(t),"native"===t.pluginId&&this.cameraState.next(!0)}getValue(t){switch(t){case"light":return Ts(this.lightState.getValue());case"motion":return Ts(this.motionState.getValue());case"audio":return Ts(this.audioState.getValue());case"object":return Ts(this.objectState.getValue());case"doorbell":return Ts(this.doorbellState.getValue());case"siren":return Ts(this.sirenState.getValue());case"battery":return Ts(this.batteryState.getValue());default:throw new Error(`Unknown state: ${t}`)}}async snapshot(t){const e=this.snapshotSource.urls.www.jpegSnapshot,s=this.snapshotCache.get(this.snapshotSource._id);if(!t&&s)return s;const r=await fetch(e);if(!r.ok)throw new Error("Status Code: "+r.status);const i=await r.arrayBuffer();return i.byteLength>0&&this.snapshotCache.set(this.snapshotSource._id,i),i}onStateChange(t){return this[`${t}State`].pipe(ps(),gs((([e,s])=>"boolean"==typeof e||"boolean"==typeof s?e!==s:this.stateChanged(e,s,t))),ms((([t,e])=>({oldState:t,newState:e}))),Ss({connector:()=>new us(1)}))}updateStateInternal(t,e,s){let r,i=!1;if(s)i=!0,r=e;else{const s=this.checkStateInternal(t,e);i=s.changed,r=s.event}if(i)switch(t){case"light":this.lightState.next(this.getLightState(r));break;case"motion":this.motionState.next(this.getMotionState(r));break;case"audio":this.audioState.next(this.getAudioState(r));break;case"object":this.objectState.next(this.getObjectState(r));break;case"doorbell":this.doorbellState.next(this.getDoorbellState(r));break;case"siren":this.sirenState.next(this.getSirenState(r));break;case"battery":this.batteryState.next(this.getBatteryState(r));break;default:throw new Error(`Unknown state: ${t}`)}}onPropertyChange(t){return this.cameraSubject.pipe(ps(),Es((([e,s])=>(Array.isArray(t)?t:[t]).map((t=>({property:t,oldData:e[t],newData:s[t]}))))),gs((({oldData:t,newData:e})=>!Os(t,e,!0))),Ss({connector:()=>new us(1)}))}removeAllListeners(){this.lightState.complete(),this.motionState.complete(),this.audioState.complete(),this.objectState.complete(),this.doorbellState.complete(),this.sirenState.complete(),this.batteryState.complete(),this.cameraSubject.complete(),this.cameraState.complete()}checkStateInternal(t,e){let s,r=!1;switch(t){case"audio":const i=e;s=this.getAudioState(i),r=this.stateChanged(this.getValue("audio"),s,"audio");break;case"light":const n=e;s=this.getLightState(n),r=this.stateChanged(this.getValue("light"),s,"light");break;case"motion":const o=e;void 0!==o.state&&(o.detections=[]),o.detections=((t,e,s)=>{const r=[];for(const i of t)Rs(As(i),e,s)&&e.some((t=>!t.classes.length||t.classes.includes(i.label)))&&r.push(i);return r})(o.detections,this.activityZones,this.activitySettings),s=this.getMotionState(o),r=this.stateChanged(this.getValue("motion"),s,"motion");break;case"object":const a=e;a.detections=((t,e,s)=>{const r=[];for(const i of t)Rs(As(i),e,s)&&e.some((t=>!t.classes.length||t.classes.includes(i.label)))&&r.push(i);return r})(a.detections,this.activityZones,this.activitySettings),s=this.getObjectState(a),r=this.stateChanged(this.getValue("object"),s,"object");break;case"doorbell":const c=e;s=this.getDoorbellState(c),r=this.stateChanged(this.getValue("doorbell"),s,"doorbell");break;case"siren":const h=e;s=this.getSirenState(h),r=this.stateChanged(this.getValue("siren"),s,"siren");break;case"battery":const u=e;s=this.getBatteryState(u),r=this.stateChanged(this.getValue("battery"),s,"battery");break;default:throw new Error(`Unknown state: ${t}`)}return{changed:r,event:s}}getAudioState(t,e=!1){let s,r;if(!e){const t=this.getValue("audio");t.state?s=t:t.lastEvent?.state&&(s=t.lastEvent),s&&delete s.lastEvent}if(this.isStateEvent(t))r=t;else{const e={...t,timestamp:Date.now()};r={...e,db:e.db||s?.db||0,lastEvent:s||(e.state?e:void 0)}}return r}getMotionState(t,e=!1){let s,r;if(!e){const t=this.getValue("motion");t.detections.length?s=t:t.lastEvent?.detections.length&&(s=t.lastEvent),s&&delete s.lastEvent}if(this.isStateEvent(t))r=t;else{const e={...t,timestamp:Date.now()};r={...e,lastEvent:s||(e.detections.length?e:void 0)}}return r}getObjectState(t,e=!1){let s,r;if(!e){const t=this.getValue("object");t.detections.length?s=t:t.lastEvent?.detections.length&&(s=t.lastEvent),s&&delete s.lastEvent}if(this.isStateEvent(t))r=t;else{const e={...t,timestamp:Date.now()};r={...e,lastEvent:s||(e.detections.length?e:void 0)}}return r}getDoorbellState(t,e=!1){let s,r;if(!e){const t=this.getValue("doorbell");t.state?s=t:t.lastEvent?.state&&(s=t.lastEvent),s&&delete s.lastEvent}if(this.isStateEvent(t))r=t;else{const e={...t,timestamp:Date.now()};r={...e,lastEvent:s||(e.state?e:void 0)}}return r}getLightState(t,e=!1){let s,r;if(!e){const t=this.getValue("light");t.state?s=t:t.lastEvent?.state&&(s=t.lastEvent),s&&delete s.lastEvent}if(this.isStateEvent(t))r=t;else{const e={...t,timestamp:Date.now()};r={...e,lastEvent:s||(e.state?e:void 0)}}return r}getSirenState(t,e=!1){let s,r;if(!e){const t=this.getValue("siren");t.state?s=t:t.lastEvent?.state&&(s=t.lastEvent),s&&delete s.lastEvent}if(this.isStateEvent(t))r=t;else{const e={...t,timestamp:Date.now()};r={...e,level:e.level||s?.level||0,lastEvent:s||(e.state?e:void 0)}}return r}getBatteryState(t,e=!1){let s,r;if(!e){const e=this.getValue("battery");this.stateChanged(e,t,"battery")?s=e:e.lastEvent&&this.stateChanged(e.lastEvent,t,"battery")&&(s=e.lastEvent),s&&delete s.lastEvent}if(this.isStateEvent(t))r=t;else{const e={...t,timestamp:Date.now()};r={...e,charging:t.charging||s?.charging||!1,lowBattery:t.lowBattery||s?.lowBattery||!1,lastEvent:s||e}}return r}updateCamera(t){this.cameraSubject.next(t),this.updateCameraSourcesState()}async updatePrebuffer(t,e,s){this.prebufferStateSubjects[t]&&this.prebufferStateSubjects[t][e]&&this.prebufferStateSubjects[t][e].next({state:s.state,url:s.url||void 0,maxDuration:s.maxDuration,availableDuration:s.availableDuration})}updateCameraSourcesState(){const t=this.cameraSubject.getValue().sources;for(const e in this.prebufferStateSubjects)if(!t.some((t=>t._id===e))){for(const t in this.prebufferStateSubjects[e])this.prebufferStateSubjects[e][t].complete();delete this.prebufferStateSubjects[e]}}updateCameraState(t){this.cameraState.next(t)}cameraSourcePrebufferState(t,e){let s={state:!1,maxDuration:0,availableDuration:0};return this.prebufferStateSubjects[t]&&this.prebufferStateSubjects[t][e]&&(s=this.prebufferStateSubjects[t][e].getValue()),s}createStateObservable(t){return t.pipe(Ss({connector:()=>new us(1)}))}createPrebufferStateObservable(t,e){return this.prebufferStateSubjects[t]||(this.prebufferStateSubjects[t]={}),this.prebufferStateSubjects[t][e]||(this.prebufferStateSubjects[t][e]=new cs({state:!1,maxDuration:0,availableDuration:0})),this.prebufferStateSubjects[t][e].pipe((void 0===r&&(r=ss),s=null!=(s=(t,e)=>t.state===e.state&&t.url===e.url)?s:_s,ls((function(t,e){var i,n=!0;t.subscribe(ds(e,(function(t){var o=r(t);!n&&s(i,o)||(n=!1,i=o,e.next(t))})))}))),Ss({connector:()=>new us(1)}));var s,r}stateChanged(t,e,s){if(!t||!e||!s)return!1;if("audio"==s){if(!this.hasAudioDetector)return!1;const s=t,r=e;return s.state!==r.state||s.db!==r.db}if("motion"==s){if(!this.hasMotionDetector)return!1;const s=t,r=e;return void 0!==r.state?s.state!==r.state:!Os(s.detections,r.detections,!0)}if("object"==s){if(!this.hasObjectDetector)return!1;const s=e;return!Os(t.detections,s.detections,!0)}if("siren"==s){if(!this.hasSiren)return!1;const s=t,r=e;return s.state!==r.state||s.level!==r.level}if("battery"==s){if(!this.hasBattery)return!1;const s=t,r=e;return s.level!==r.level||s.lowBattery!==r.lowBattery||s.charging!==r.charging}if("doorbell"==s){if(!this.hasBinarySensor)return!1;const s=e;return t.state!==s.state}if("light"==s){if(!this.hasLight)return!1;const s=e;return t.state!==s.state}return!1}isStateEvent(t){return"timestamp"in t}}class Ns{}class Ms{}class qs{}class Is{}class zs{}class Us{}class Vs extends Us{delegate;onRequest;logger;constructor(t,e){super(),this.onRequest=t,this.logger=e}async detectAudio(t){return this.delegate?this.delegate.detectAudio(t):this._onRequest("detectAudio",[t])}_onRequest(t,e,s){return this.onRequest("audioDetectorDelegate",t,e,s)}}class Ws extends Ns{delegate;onRequest;logger;constructor(t,e){super(),this.onRequest=t,this.logger=e}async reboot(){return this.delegate?this.delegate.reboot():this._onRequest("reboot")}_onRequest(t,e,s){return this.onRequest("cameraDelegate",t,e,s)}}class Hs extends Is{delegate;onRequest;logger;constructor(t,e){super(),this.onRequest=t,this.logger=e}async detectImage(t){return this.delegate?this.delegate.detectImage(t):this._onRequest("detectImage",[t])}_onRequest(t,e,s){return this.onRequest("motionDetectorDelegate",t,e,s)}}class $s extends zs{delegate;onRequest;logger;constructor(t,e){super(),this.onRequest=t,this.logger=e}async detectImage(t){return this.delegate?this.delegate.detectImage(t):this._onRequest("detectImage",[t])}_onRequest(t,e,s){return this.onRequest("objectDetectorDelegate",t,e,s)}}class Js extends Ms{delegate;onRequest;logger;constructor(t,e){super(),this.onRequest=t,this.logger=e}async getStreamInfo(t){return this.delegate?this.delegate.getStreamInfo(t):this._onRequest("prebuffer","getStreamInfo",[t])}async updatePrebufferState(t,e,s){return this._onRequest("cameraFn","updatePrebufferState",[t,e,s],0)}_onRequest(t,e,s,r){return this.onRequest("ptzDelegate",e,s,r)}}class Gs extends qs{delegate;onRequest;logger;constructor(t,e){super(),this.onRequest=t,this.logger=e}async moveAbsolute(t,e,s){return this.delegate?this.delegate.moveAbsolute(t,e,s):this._onRequest("moveAbsolute",[t,e,s])}async moveRelative(t,e,s){return this.delegate?this.delegate.moveRelative(t,e,s):this._onRequest("moveRelative",[t,e,s])}async moveContinuous(t,e,s){return this.delegate?this.delegate.moveContinuous(t,e,s):this._onRequest("moveContinuous",[t,e,s])}async stop(){return this.delegate?this.delegate.stop():this._onRequest("stop",[])}_onRequest(t,e,s){return this.onRequest("ptzDelegate",t,e,s)}}class Ks extends EventTarget{cameraDevice;socketService;logger;options;videoPlayer;socket;streamId;closed=!1;micTransceiver=null;pc=null;buf=new Uint8Array(2097152);mediaSource=null;sourceBuffer=null;bufLen=0;mseCodecs="";videoPlayerMp4;media=["video","audio","microphone"];codecList=[];reconnectTimeout;_finishLoading=!1;get mode(){return this.options.mode}webrtcReconnectTimeout;constructor(t,e,s,r){super(),this.options=r,this.videoPlayer=r.videoElement,this.cameraDevice=t,this.socketService=e,this.logger=s;const{socket:i}=this.socketService.getSocket(`${t.id}-go2rtcSession`,!0);this.socket=i,this.socket.connect(),this.streamId=this.uuidv4(),this.createCodecsList()}connect(t){t&&(this.options.mode=t),this.socket.on("ws-open",this.onWsOpen.bind(this)),this.socket.on("ws-close",this.onWsClose.bind(this)),this.socket.on("ws-message",this.onWsMessage.bind(this)),this.socket.emit("ws-open",{id:this.streamId,cameraSource:this.options.sourceName,mode:this.options.mode})}disconnect(){this.socket.removeListener("ws-open",this.onWsOpen.bind(this)),this.socket.removeListener("ws-close",this.onWsClose.bind(this)),this.socket.removeListener("ws-message",this.onWsMessage.bind(this)),this.socket.emit("ws-close",{id:this.streamId})}async reconnect(t){this.dispatchEvent(new Event("reconnect")),this.close(),await new Promise((t=>setTimeout(t,100))),this.connect(t)}reset(){this._finishLoading=!1,this.pc?.getTransceivers().forEach((t=>t.sender?.track?.stop())),this.pc?.close(),this.pc=null,this.videoPlayerMp4?.remove(),this.videoPlayerMp4=void 0,this.videoPlayer.srcObject=null,this.videoPlayer.src="",this.videoPlayer.poster=""}close(){this.closed=!0,this.reset(),this.disconnect(),this.socket.emit("end"),this.socket.removeAllListeners()}onWsOpen({id:t}){if(t===this.streamId)switch(this.options.mode){case"webrtc":case"webrtc/tcp":this.requestWebrtc();break;case"mse":this.requestMse();break;case"hls":this.requestHls();break;case"mp4":this.requestMp4();break;case"mjpeg":this.requestMjpeg();break;default:this.dispatchEvent(new ErrorEvent("error",{message:"Unknown mode: "+this.options.mode}))}}onWsClose({id:t}){t===this.streamId&&(this.closed||void 0===this.options.reconnectInterval||(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=setTimeout((()=>{this.reconnect()}),this.options.reconnectInterval)))}onWsMessage({id:t,data:e}){if(t===this.streamId&&e.type)switch(e.type){case"mse":this.onMseData(e);break;case"hls":this.onHlsData(e);break;case"webrtc/candidate":case"webrtc/answer":this.onWebrtcData(e);break;case"mse-binary":this.onMseBuffer(e);break;case"mjpeg-binary":this.onMjpegBuffer(e);break;case"mp4-binary":this.onMp4Buffer(e);break;case"error":this.dispatchEvent(new ErrorEvent("error",{error:e,message:e.value}))}}async requestWebrtc(){this.reset(),this.pc=new RTCPeerConnection({bundlePolicy:"max-bundle",iceServers:[{urls:"stun:stun.l.google.com:19302"}],sdpSemantics:"unified-plan"}),this.pc.addEventListener("icecandidate",(t=>{if("webrtc/tcp"===this.options.mode&&"udp"===t.candidate?.protocol)return;const e=t.candidate?.toJSON().candidate||"";this.socket.emit("stream-payload",{id:this.streamId,data:{type:"webrtc/candidate",value:e}})})),this.pc.addEventListener("connectionstatechange",(()=>{if("connected"===this.pc?.connectionState){const t=this.pc?.getTransceivers().filter((t=>"recvonly"===t.currentDirection)).map((t=>t.receiver.track));this.videoPlayer.srcObject=new MediaStream(t),this.finishLoading(),this.play(),this.disconnect()}else"failed"!==this.pc?.connectionState&&"disconnected"!==this.pc?.connectionState||(clearTimeout(this.webrtcReconnectTimeout),this.webrtcReconnectTimeout=setTimeout((()=>{"failed"!==this.pc?.connectionState&&"disconnected"!==this.pc?.connectionState||this.reconnect()}),1e3))}));const t=await this.createOffer();t&&this.socket.emit("stream-payload",{id:this.streamId,data:{type:"webrtc/offer",value:t.sdp}})}async onWebrtcData(t){try{switch(t.type){case"webrtc/candidate":if("webrtc/tcp"===this.options.mode&&t.value.indexOf(" udp ")>0)return;await(this.pc?.addIceCandidate({candidate:t.value,sdpMid:"0"}));break;case"webrtc/answer":await(this.pc?.setRemoteDescription({type:"answer",sdp:t.value}));break;case"error":if(t.value.indexOf("webrtc/offer")<0)return;this.pc?.close()}}catch(t){this.dispatchEvent(new ErrorEvent("error",{error:t,message:t.message}))}}async createOffer(){if(this.pc){this.pc.addTransceiver("video",{direction:"recvonly"}),this.pc.addTransceiver("audio",{direction:"recvonly"}),this.micTransceiver=this.pc.addTransceiver("audio",{direction:"sendonly"});const t=await this.pc.createOffer();return await this.pc.setLocalDescription(t),t}}requestMse(){if(this.reset(),"ManagedMediaSource"in window){const t=window.ManagedMediaSource;this.mediaSource=new t,this.mediaSource.addEventListener("sourceopen",(()=>{this.socket.emit("stream-payload",{id:this.streamId,data:{type:"mse",value:this.parseCodecs(t.isTypeSupported)}})}),{once:!0}),this.videoPlayer.disableRemotePlayback=!0,this.videoPlayer.srcObject=this.mediaSource}else this.mediaSource=new MediaSource,this.mediaSource.addEventListener("sourceopen",(()=>{URL.revokeObjectURL(this.videoPlayer.src),this.socket.emit("stream-payload",{id:this.streamId,data:{type:"mse",value:this.parseCodecs(MediaSource.isTypeSupported)}})}),{once:!0}),this.videoPlayer.src=URL.createObjectURL(this.mediaSource),this.videoPlayer.srcObject=null;this.play(),this.mseCodecs=""}onMseData(t){this.mediaSource&&(this.mseCodecs=t.value,this.bufLen=0,this.buf=new Uint8Array(2097152),this.sourceBuffer=this.mediaSource.addSourceBuffer(t.value),this.sourceBuffer.mode="segments",this.sourceBuffer.addEventListener("updateend",(()=>{if(!this.sourceBuffer?.updating)try{if(this.bufLen>0){const t=this.buf.slice(0,this.bufLen);this.bufLen=0,this.sourceBuffer?.appendBuffer(t)}else if(this.sourceBuffer?.buffered?.length){const t=this.sourceBuffer.buffered.end(this.sourceBuffer.buffered.length-1)-15,e=this.sourceBuffer.buffered.start(0);t>e&&(this.sourceBuffer.remove(e,t),this.mediaSource?.setLiveSeekableRange(t,t+15))}}catch(t){}})))}async onMseBuffer(t){if("closed"!==this.mediaSource?.readyState)if(this.finishLoading(),this.sourceBuffer?.updating||this.bufLen>0){const e=new Uint8Array(t.value);this.buf.set(e,this.bufLen),this.bufLen+=e.byteLength}else try{this.sourceBuffer?.appendBuffer(t.value)}catch(t){}else this.closed||(this.closed=!0,this.dispatchEvent(new ErrorEvent("error",{message:"MediaSource closed"})),this.options.mode="webrtc",this.requestWebrtc())}requestMjpeg(){this.reset(),this.socket.emit("stream-payload",{id:this.streamId,data:{type:"mjpeg"}})}onMjpegBuffer(t){this.videoPlayer.controls=!1,this.videoPlayer.poster="data:image/jpeg;base64,"+this.btoaBinary(t.value),this.finishLoading()}requestMp4(){this.reset();const t=document.createElement("canvas");let e=null;this.videoPlayerMp4=document.createElement("video"),this.videoPlayerMp4.autoplay=!0,this.videoPlayerMp4.playsInline=!0,this.videoPlayerMp4.muted=!0,this.videoPlayerMp4.addEventListener("loadeddata",(()=>{this.videoPlayerMp4&&(e||(t.width=this.videoPlayerMp4.videoWidth,t.height=this.videoPlayerMp4.videoHeight,e=t.getContext("2d")),e?.drawImage(this.videoPlayerMp4,0,0,t.width,t.height),this.videoPlayer.controls=!1,this.videoPlayer.poster=t.toDataURL("image/jpeg"))}));const s=this.codecList.filter((t=>this.media.includes(t.indexOf("vc1")>0?"video":"audio"))).filter((t=>this.videoPlayer.canPlayType(`video/mp4; codecs="${t}"`))).join();this.socket.emit("stream-payload",{id:this.streamId,data:{type:"mp4",value:s}})}onMp4Buffer(t){this.finishLoading(),this.videoPlayerMp4&&(this.videoPlayerMp4.src="data:video/mp4;base64,"+this.btoaBinary(t.value))}requestHls(){this.reset(),this.socket.emit("stream-payload",{id:this.streamId,data:{type:"hls",value:this.parseCodecs((t=>this.videoPlayer.canPlayType(t)))}})}onHlsData(t){const e="http"+t.wsURL.substring(2,t.wsURL.indexOf("/ws"))+"/hls/",s=t.value.replace("hls/",e),r="data:application/vnd.apple.mpegurl;base64,"+btoa(s.toString());this.videoPlayer.src=r,this.finishLoading(),this.play()}async play(){try{await this.videoPlayer.play()}catch(t){if(!this.videoPlayer.muted)return this.videoPlayer.muted=!0,this.play();this.logger.warn(this.cameraDevice.name,t)}}finishLoading(){this._finishLoading||(this._finishLoading=!0,this.dispatchEvent(new Event("finishLoading")))}createCodecsList(){const t=["avc1.640029","avc1.64002A","avc1.640033","hvc1.1.6.L153.B0","mp4a.40.2","mp4a.40.5","flac","opus"],e="undefined"==typeof window?null:navigator.userAgent.match(/Version\/(\d+).+Safari/);if(e?.[1]){const s=e[1]<"13"?"mp4a.40.2":e[1]<"14"?"flac":"opus";t.splice(t.indexOf(s))}this.codecList=t}parseCodecs(t){return this.codecList.filter((t=>this.media.includes(t.indexOf("vc1")>0?"video":"audio"))).filter((e=>t(`video/mp4; codecs="${e}"`))).join()}btoaBinary(t){const e=new Uint8Array(t),s=e.byteLength;let r="";for(let t=0;t<s;t++)r+=String.fromCharCode(e[t]);return window.btoa(r)}uuidv4(){return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,(t=>(t^crypto.getRandomValues(new Uint8Array(1))[0]&15>>t/4).toString(16)))}}class Ys extends Fs{socketService;socket;pluginName="@camera.ui/client";subject;_started=!1;get started(){return this._started}cameraDelegate=new Ws(this.onRequest,this.logger);prebufferDelegate=new Js(this.onRequest,this.logger);ptzDelegate=new Gs(this.onRequest,this.logger);audioDetectorDelegate=new Vs(this.onRequest,this.logger);motionDetectorDelegate=new Hs(this.onRequest,this.logger);objectDetectorDelegate=new $s(this.onRequest,this.logger);get sources(){return super.sources.map((t=>({...t,updatePrebufferingState:(e,s)=>this.prebufferDelegate.updatePrebufferState(t._id,e,s),getPrebufferingState:e=>super.cameraSourcePrebufferState(t._id,e),onPrebuffering:e=>super.createPrebufferStateObservable(t._id,e),getStreamInfo:async()=>this.prebufferDelegate.getStreamInfo(t.name)})))}constructor(t,e,s){super(t,s),this.socketService=e;const{socket:r}=this.socketService.getSocket(this.id,!0);this.socket=r,this.socket.connect(),this.subject=`${this.pluginName}.camera.${this.id}`,this.listenToMessages()}async start(){this._started||(this._started=!0,await this.refreshStates(),this.socket.emit("joinRoomStates",this.id))}stop(){this._started=!1,this.socket.emit("leaveRoomStates",this.id)}close(){this.cleanup()}connect(){return this.onRequest("cameraFn","connect")}disconnect(){return this.onRequest("cameraFn","disconnect")}getIceServers(){return this.onRequest("cameraFn","getIceServers")}createSession(t){return new Ks(this,this.socketService,this.logger,t)}async updateState(t,e){const{changed:s,event:r}=super.checkStateInternal(t,e);if(s)return super.updateStateInternal(t,r,!0),this.onRequest("cameraFn","updateState",[t,r],0)}addCameraSource(t){return this.onRequest("cameraFn","addCameraSource",[t])}updateCameraSource(t,e){return this.onRequest("cameraFn","updateCameraSource",[t,e])}removeCameraSource(t){return this.onRequest("cameraFn","removeCameraSource",[t])}async refreshStates(){const t=await this.onRequest("cameraFn","refreshStates");super.updateCamera(t.camera),super.updateCameraState(t.cameraState);for(const[e,s]of Object.entries(t.states))super.updateStateInternal(e,s,!0)}async cleanup(){this.stop(),this.removeAllListeners(),this.unsubscribe(),this.socket.removeAllListeners()}listenToMessages(){this.socket.emit("joinRoomDevice",this.id),this.socket.on("updateState",(t=>{t.cameraId===this.id&&super.updateStateInternal(t.stateName,t.data.newEvent,!0)})),this.socket.on("updateDevice",(t=>{if(t.cameraId===this.id)switch(t.type){case"removed":this.cleanup();break;case"updated":super.updateCamera(t.data);break;case"cameraState":super.updateCameraState(t.data);break;case"prebufferState":super.updatePrebuffer(t.data.sourceId,t.data.container,t.data.state)}}))}onRequest(t,e,s=[],r=5e3){const i={requestId:crypto.randomUUID(),targetId:this.subject,targetName:this.name,pluginId:this.pluginName,cameraId:this.id,type:"request",proxy:"camera",client:t,fn:e,args:s,timestamp:Date.now(),timeout:r};return new Promise(((t,e)=>{this.socket.emit("request",i,(s=>{s.response?t(s.response):s.error?e(s.error):t()}))}))}}class Xs{socketService;socket;logger;pluginName="@camera.ui/client";subject;constructor(t,e){this.socketService=t,this.socket=t.socket,this.logger=e,this.subject=`${this.pluginName}.deviceManager`}async getCameraById(t){const e=await this.onRequest("getCameraById",[t]);if(e){const t=new Ys(e,this.socketService,this.logger);return await t.refreshStates(),t}}async getCameraByName(t){const e=await this.onRequest("getCameraByName",[t]);if(e){const t=new Ys(e,this.socketService,this.logger);return await t.refreshStates(),t}}onRequest(t,e){const s={requestId:crypto.randomUUID(),targetId:this.subject,targetName:this.pluginName,pluginId:this.pluginName,type:"request",proxy:"device",client:"device",fn:t,args:e||[],timestamp:Date.now(),timeout:5e3};return new Promise(((t,e)=>{this.socket.emit("request",s,(s=>{s.response?t(s.response):s.error?e(s.error):t()}))}))}}class Qs{socketService;logger;constructor(t,e){this.socketService=t,this.logger=e}}class Zs{socketService;logger;constructor(t,e){this.socketService=t,this.logger=e}}const tr=Object.create(null);tr.open="0",tr.close="1",tr.ping="2",tr.pong="3",tr.message="4",tr.upgrade="5",tr.noop="6";const er=Object.create(null);Object.keys(tr).forEach((t=>{er[tr[t]]=t}));const sr={type:"error",data:"parser error"},rr="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===Object.prototype.toString.call(Blob),ir="function"==typeof ArrayBuffer,nr=t=>"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer instanceof ArrayBuffer,or=({type:t,data:e},s,r)=>rr&&e instanceof Blob?s?r(e):ar(e,r):ir&&(e instanceof ArrayBuffer||nr(e))?s?r(e):ar(new Blob([e]),r):r(tr[t]+(e||"")),ar=(t,e)=>{const s=new FileReader;return s.onload=function(){const t=s.result.split(",")[1];e("b"+(t||""))},s.readAsDataURL(t)};function cr(t){return t instanceof Uint8Array?t:t instanceof ArrayBuffer?new Uint8Array(t):new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}let hr;const ur="undefined"==typeof Uint8Array?[]:new Uint8Array(256);for(let t=0;t<64;t++)ur["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(t)]=t;const lr="function"==typeof ArrayBuffer,dr=(t,e)=>{if("string"!=typeof t)return{type:"message",data:pr(t,e)};const s=t.charAt(0);return"b"===s?{type:"message",data:fr(t.substring(1),e)}:er[s]?t.length>1?{type:er[s],data:t.substring(1)}:{type:er[s]}:sr},fr=(t,e)=>{if(lr){const s=(t=>{let e,s,r,i,n,o=.75*t.length,a=t.length,c=0;"="===t[t.length-1]&&(o--,"="===t[t.length-2]&&o--);const h=new ArrayBuffer(o),u=new Uint8Array(h);for(e=0;e<a;e+=4)s=ur[t.charCodeAt(e)],r=ur[t.charCodeAt(e+1)],i=ur[t.charCodeAt(e+2)],n=ur[t.charCodeAt(e+3)],u[c++]=s<<2|r>>4,u[c++]=(15&r)<<4|i>>2,u[c++]=(3&i)<<6|63&n;return h})(t);return pr(s,e)}return{base64:!0,data:t}},pr=(t,e)=>"blob"===e?t instanceof Blob?t:new Blob([t]):t instanceof ArrayBuffer?t:t.buffer,gr=String.fromCharCode(30);let mr;function yr(t){return t.reduce(((t,e)=>t+e.length),0)}function br(t,e){if(t[0].length===e)return t.shift();const s=new Uint8Array(e);let r=0;for(let i=0;i<e;i++)s[i]=t[0][r++],r===t[0].length&&(t.shift(),r=0);return t.length&&r<t[0].length&&(t[0]=t[0].slice(r)),s}function vr(t){if(t)return function(t){for(var e in vr.prototype)t[e]=vr.prototype[e];return t}(t)}vr.prototype.on=vr.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks["$"+t]=this._callbacks["$"+t]||[]).push(e),this},vr.prototype.once=function(t,e){function s(){this.off(t,s),e.apply(this,arguments)}return s.fn=e,this.on(t,s),this},vr.prototype.off=vr.prototype.removeListener=vr.prototype.removeAllListeners=vr.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var s,r=this._callbacks["$"+t];if(!r)return this;if(1==arguments.length)return delete this._callbacks["$"+t],this;for(var i=0;i<r.length;i++)if((s=r[i])===e||s.fn===e){r.splice(i,1);break}return 0===r.length&&delete this._callbacks["$"+t],this},vr.prototype.emit=function(t){this._callbacks=this._callbacks||{};for(var e=new Array(arguments.length-1),s=this._callbacks["$"+t],r=1;r<arguments.length;r++)e[r-1]=arguments[r];if(s){r=0;for(var i=(s=s.slice(0)).length;r<i;++r)s[r].apply(this,e)}return this},vr.prototype.emitReserved=vr.prototype.emit,vr.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks["$"+t]||[]},vr.prototype.hasListeners=function(t){return!!this.listeners(t).length};const wr="undefined"!=typeof self?self:"undefined"!=typeof window?window:Function("return this")();function Sr(t,...e){return e.reduce(((e,s)=>(t.hasOwnProperty(s)&&(e[s]=t[s]),e)),{})}const kr=wr.setTimeout,Er=wr.clearTimeout;function _r(t,e){e.useNativeTimers?(t.setTimeoutFn=kr.bind(wr),t.clearTimeoutFn=Er.bind(wr)):(t.setTimeoutFn=wr.setTimeout.bind(wr),t.clearTimeoutFn=wr.clearTimeout.bind(wr))}class Or extends Error{constructor(t,e,s){super(t),this.description=e,this.context=s,this.type="TransportError"}}class Tr extends vr{constructor(t){super(),this.writable=!1,_r(this,t),this.opts=t,this.query=t.query,this.socket=t.socket}onError(t,e,s){return super.emitReserved("error",new Or(t,e,s)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this}send(t){"open"===this.readyState&&this.write(t)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(t){const e=dr(t,this.socket.binaryType);this.onPacket(e)}onPacket(t){super.emitReserved("packet",t)}onClose(t){this.readyState="closed",super.emitReserved("close",t)}pause(t){}createUri(t,e={}){return t+"://"+this._hostname()+this._port()+this.opts.path+this._query(e)}_hostname(){const t=this.opts.hostname;return-1===t.indexOf(":")?t:"["+t+"]"}_port(){return this.opts.port&&(this.opts.secure&&Number(443!==this.opts.port)||!this.opts.secure&&80!==Number(this.opts.port))?":"+this.opts.port:""}_query(t){const e=function(t){let e="";for(let s in t)t.hasOwnProperty(s)&&(e.length&&(e+="&"),e+=encodeURIComponent(s)+"="+encodeURIComponent(t[s]));return e}(t);return e.length?"?"+e:""}}const xr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),Ar=64,Rr={};let Lr,Cr=0,jr=0;function Br(t){let e="";do{e=xr[t%Ar]+e,t=Math.floor(t/Ar)}while(t>0);return e}function Pr(){const t=Br(+new Date);return t!==Lr?(Cr=0,Lr=t):t+"."+Br(Cr++)}for(;jr<Ar;jr++)Rr[xr[jr]]=jr;let Dr=!1;try{Dr="undefined"!=typeof XMLHttpRequest&&"withCredentials"in new XMLHttpRequest}catch(t){}const Fr=Dr;function Nr(t){const e=t.xdomain;try{if("undefined"!=typeof XMLHttpRequest&&(!e||Fr))return new XMLHttpRequest}catch(t){}if(!e)try{return new(wr[["Active"].concat("Object").join("X")])("Microsoft.XMLHTTP")}catch(t){}}function Mr(){}const qr=null!=new Nr({xdomain:!1}).responseType;class Ir extends vr{constructor(t,e){super(),_r(this,e),this.opts=e,this.method=e.method||"GET",this.uri=t,this.data=void 0!==e.data?e.data:null,this.create()}create(){var t;const e=Sr(this.opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");e.xdomain=!!this.opts.xd;const s=this.xhr=new Nr(e);try{s.open(this.method,this.uri,!0);try{if(this.opts.extraHeaders){s.setDisableHeaderCheck&&s.setDisableHeaderCheck(!0);for(let t in this.opts.extraHeaders)this.opts.extraHeaders.hasOwnProperty(t)&&s.setRequestHeader(t,this.opts.extraHeaders[t])}}catch(t){}if("POST"===this.method)try{s.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(t){}try{s.setRequestHeader("Accept","*/*")}catch(t){}null===(t=this.opts.cookieJar)||void 0===t||t.addCookies(s),"withCredentials"in s&&(s.withCredentials=this.opts.withCredentials),this.opts.requestTimeout&&(s.timeout=this.opts.requestTimeout),s.onreadystatechange=()=>{var t;3===s.readyState&&(null===(t=this.opts.cookieJar)||void 0===t||t.parseCookies(s)),4===s.readyState&&(200===s.status||1223===s.status?this.onLoad():this.setTimeoutFn((()=>{this.onError("number"==typeof s.status?s.status:0)}),0))},s.send(this.data)}catch(t){return void this.setTimeoutFn((()=>{this.onError(t)}),0)}"undefined"!=typeof document&&(this.index=Ir.requestsCount++,Ir.requests[this.index]=this)}onError(t){this.emitReserved("error",t,this.xhr),this.cleanup(!0)}cleanup(t){if(void 0!==this.xhr&&null!==this.xhr){if(this.xhr.onreadystatechange=Mr,t)try{this.xhr.abort()}catch(t){}"undefined"!=typeof document&&delete Ir.requests[this.index],this.xhr=null}}onLoad(){const t=this.xhr.responseText;null!==t&&(this.emitReserved("data",t),this.emitReserved("success"),this.cleanup())}abort(){this.cleanup()}}function zr(){for(let t in Ir.requests)Ir.requests.hasOwnProperty(t)&&Ir.requests[t].abort()}Ir.requestsCount=0,Ir.requests={},"undefined"!=typeof document&&("function"==typeof attachEvent?attachEvent("onunload",zr):"function"==typeof addEventListener&&addEventListener("onpagehide"in wr?"pagehide":"unload",zr,!1));const Ur="function"==typeof Promise&&"function"==typeof Promise.resolve?t=>Promise.resolve().then(t):(t,e)=>e(t,0),Vr=wr.WebSocket||wr.MozWebSocket,Wr="undefined"!=typeof navigator&&"string"==typeof navigator.product&&"reactnative"===navigator.product.toLowerCase(),Hr={websocket:class extends Tr{constructor(t){super(t),this.supportsBinary=!t.forceBase64}get name(){return"websocket"}doOpen(){if(!this.check())return;const t=this.uri(),e=this.opts.protocols,s=Wr?{}:Sr(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(s.headers=this.opts.extraHeaders);try{this.ws=Wr?new Vr(t,e,s):e?new Vr(t,e):new Vr(t)}catch(t){return this.emitReserved("error",t)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=t=>this.onClose({description:"websocket connection closed",context:t}),this.ws.onmessage=t=>this.onData(t.data),this.ws.onerror=t=>this.onError("websocket error",t)}write(t){this.writable=!1;for(let e=0;e<t.length;e++){const s=t[e],r=e===t.length-1;or(s,this.supportsBinary,(t=>{try{this.ws.send(t)}catch(t){}r&&Ur((()=>{this.writable=!0,this.emitReserved("drain")}),this.setTimeoutFn)}))}}doClose(){void 0!==this.ws&&(this.ws.close(),this.ws=null)}uri(){const t=this.opts.secure?"wss":"ws",e=this.query||{};return this.opts.timestampRequests&&(e[this.opts.timestampParam]=Pr()),this.supportsBinary||(e.b64=1),this.createUri(t,e)}check(){return!!Vr}},webtransport:class extends Tr{get name(){return"webtransport"}doOpen(){"function"==typeof WebTransport&&(this.transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name]),this.transport.closed.then((()=>{this.onClose()})).catch((t=>{this.onError("webtransport error",t)})),this.transport.ready.then((()=>{this.transport.createBidirectionalStream().then((t=>{const e=function(t,e){mr||(mr=new TextDecoder);const s=[];let r=0,i=-1,n=!1;return new TransformStream({transform(o,a){for(s.push(o);;){if(0===r){if(yr(s)<1)break;const t=br(s,1);n=!(128&~t[0]),i=127&t[0],r=i<126?3:126===i?1:2}else if(1===r){if(yr(s)<2)break;const t=br(s,2);i=new DataView(t.buffer,t.byteOffset,t.length).getUint16(0),r=3}else if(2===r){if(yr(s)<8)break;const t=br(s,8),e=new DataView(t.buffer,t.byteOffset,t.length),n=e.getUint32(0);if(n>Math.pow(2,21)-1){a.enqueue(sr);break}i=n*Math.pow(2,32)+e.getUint32(4),r=3}else{if(yr(s)<i)break;const t=br(s,i);a.enqueue(dr(n?t:mr.decode(t),e)),r=0}if(0===i||i>t){a.enqueue(sr);break}}}})}(Number.MAX_SAFE_INTEGER,this.socket.binaryType),s=t.readable.pipeThrough(e).getReader(),r=new TransformStream({transform(t,e){!function(t,e){rr&&t.data instanceof Blob?t.data.arrayBuffer().then(cr).then(e):ir&&(t.data instanceof ArrayBuffer||nr(t.data))?e(cr(t.data)):or(t,!1,(t=>{hr||(hr=new TextEncoder),e(hr.encode(t))}))}(t,(s=>{const r=s.length;let i;if(r<126)i=new Uint8Array(1),new DataView(i.buffer).setUint8(0,r);else if(r<65536){i=new Uint8Array(3);const t=new DataView(i.buffer);t.setUint8(0,126),t.setUint16(1,r)}else{i=new Uint8Array(9);const t=new DataView(i.buffer);t.setUint8(0,127),t.setBigUint64(1,BigInt(r))}t.data&&"string"!=typeof t.data&&(i[0]|=128),e.enqueue(i),e.enqueue(s)}))}});r.readable.pipeTo(t.writable),this.writer=r.writable.getWriter();const i=()=>{s.read().then((({done:t,value:e})=>{t||(this.onPacket(e),i())})).catch((t=>{}))};i();const n={type:"open"};this.query.sid&&(n.data=`{"sid":"${this.query.sid}"}`),this.writer.write(n).then((()=>this.onOpen()))}))})))}write(t){this.writable=!1;for(let e=0;e<t.length;e++){const s=t[e],r=e===t.length-1;this.writer.write(s).then((()=>{r&&Ur((()=>{this.writable=!0,this.emitReserved("drain")}),this.setTimeoutFn)}))}}doClose(){var t;null===(t=this.transport)||void 0===t||t.close()}},polling:class extends Tr{constructor(t){if(super(t),this.polling=!1,"undefined"!=typeof location){const e="https:"===location.protocol;let s=location.port;s||(s=e?"443":"80"),this.xd="undefined"!=typeof location&&t.hostname!==location.hostname||s!==t.port}const e=t&&t.forceBase64;this.supportsBinary=qr&&!e,this.opts.withCredentials&&(this.cookieJar=void 0)}get name(){return"polling"}doOpen(){this.poll()}pause(t){this.readyState="pausing";const e=()=>{this.readyState="paused",t()};if(this.polling||!this.writable){let t=0;this.polling&&(t++,this.once("pollComplete",(function(){--t||e()}))),this.writable||(t++,this.once("drain",(function(){--t||e()})))}else e()}poll(){this.polling=!0,this.doPoll(),this.emitReserved("poll")}onData(t){((t,e)=>{const s=t.split(gr),r=[];for(let t=0;t<s.length;t++){const i=dr(s[t],e);if(r.push(i),"error"===i.type)break}return r})(t,this.socket.binaryType).forEach((t=>{if("opening"===this.readyState&&"open"===t.type&&this.onOpen(),"close"===t.type)return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(t)})),"closed"!==this.readyState&&(this.polling=!1,this.emitReserved("pollComplete"),"open"===this.readyState&&this.poll())}doClose(){const t=()=>{this.write([{type:"close"}])};"open"===this.readyState?t():this.once("open",t)}write(t){this.writable=!1,((t,e)=>{const s=t.length,r=new Array(s);let i=0;t.forEach(((t,n)=>{or(t,!1,(t=>{r[n]=t,++i===s&&e(r.join(gr))}))}))})(t,(t=>{this.doWrite(t,(()=>{this.writable=!0,this.emitReserved("drain")}))}))}uri(){const t=this.opts.secure?"https":"http",e=this.query||{};return!1!==this.opts.timestampRequests&&(e[this.opts.timestampParam]=Pr()),this.supportsBinary||e.sid||(e.b64=1),this.createUri(t,e)}request(t={}){return Object.assign(t,{xd:this.xd,cookieJar:this.cookieJar},this.opts),new Ir(this.uri(),t)}doWrite(t,e){const s=this.request({method:"POST",data:t});s.on("success",e),s.on("error",((t,e)=>{this.onError("xhr post error",t,e)}))}doPoll(){const t=this.request();t.on("data",this.onData.bind(this)),t.on("error",((t,e)=>{this.onError("xhr poll error",t,e)})),this.pollXhr=t}}},$r=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,Jr=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function Gr(t){if(t.length>2e3)throw"URI too long";const e=t,s=t.indexOf("["),r=t.indexOf("]");-1!=s&&-1!=r&&(t=t.substring(0,s)+t.substring(s,r).replace(/:/g,";")+t.substring(r,t.length));let i=$r.exec(t||""),n={},o=14;for(;o--;)n[Jr[o]]=i[o]||"";return-1!=s&&-1!=r&&(n.source=e,n.host=n.host.substring(1,n.host.length-1).replace(/;/g,":"),n.authority=n.authority.replace("[","").replace("]","").replace(/;/g,":"),n.ipv6uri=!0),n.pathNames=function(t,e){const s=e.replace(/\/{2,9}/g,"/").split("/");return"/"!=e.slice(0,1)&&0!==e.length||s.splice(0,1),"/"==e.slice(-1)&&s.splice(s.length-1,1),s}(0,n.path),n.queryKey=function(t,e){const s={};return e.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,(function(t,e,r){e&&(s[e]=r)})),s}(0,n.query),n}class Kr extends vr{constructor(t,e={}){super(),this.binaryType="arraybuffer",this.writeBuffer=[],t&&"object"==typeof t&&(e=t,t=null),t?(t=Gr(t),e.hostname=t.host,e.secure="https"===t.protocol||"wss"===t.protocol,e.port=t.port,t.query&&(e.query=t.query)):e.host&&(e.hostname=Gr(e.host).host),_r(this,e),this.secure=null!=e.secure?e.secure:"undefined"!=typeof location&&"https:"===location.protocol,e.hostname&&!e.port&&(e.port=this.secure?"443":"80"),this.hostname=e.hostname||("undefined"!=typeof location?location.hostname:"localhost"),this.port=e.port||("undefined"!=typeof location&&location.port?location.port:this.secure?"443":"80"),this.transports=e.transports||["polling","websocket","webtransport"],this.writeBuffer=[],this.prevBufferLen=0,this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},e),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),"string"==typeof this.opts.query&&(this.opts.query=function(t){let e={},s=t.split("&");for(let t=0,r=s.length;t<r;t++){let r=s[t].split("=");e[decodeURIComponent(r[0])]=decodeURIComponent(r[1])}return e}(this.opts.query)),this.id=null,this.upgrades=null,this.pingInterval=null,this.pingTimeout=null,this.pingTimeoutTimer=null,"function"==typeof addEventListener&&(this.opts.closeOnBeforeunload&&(this.beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this.beforeunloadEventListener,!1)),"localhost"!==this.hostname&&(this.offlineEventListener=()=>{this.onClose("transport close",{description:"network connection lost"})},addEventListener("offline",this.offlineEventListener,!1))),this.open()}createTransport(t){const e=Object.assign({},this.opts.query);e.EIO=4,e.transport=t,this.id&&(e.sid=this.id);const s=Object.assign({},this.opts,{query:e,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[t]);return new Hr[t](s)}open(){let t;if(this.opts.rememberUpgrade&&Kr.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket"))t="websocket";else{if(0===this.transports.length)return void this.setTimeoutFn((()=>{this.emitReserved("error","No transports available")}),0);t=this.transports[0]}this.readyState="opening";try{t=this.createTransport(t)}catch(t){return this.transports.shift(),void this.open()}t.open(),this.setTransport(t)}setTransport(t){this.transport&&this.transport.removeAllListeners(),this.transport=t,t.on("drain",this.onDrain.bind(this)).on("packet",this.onPacket.bind(this)).on("error",this.onError.bind(this)).on("close",(t=>this.onClose("transport close",t)))}probe(t){let e=this.createTransport(t),s=!1;Kr.priorWebsocketSuccess=!1;const r=()=>{s||(e.send([{type:"ping",data:"probe"}]),e.once("packet",(t=>{if(!s)if("pong"===t.type&&"probe"===t.data){if(this.upgrading=!0,this.emitReserved("upgrading",e),!e)return;Kr.priorWebsocketSuccess="websocket"===e.name,this.transport.pause((()=>{s||"closed"!==this.readyState&&(h(),this.setTransport(e),e.send([{type:"upgrade"}]),this.emitReserved("upgrade",e),e=null,this.upgrading=!1,this.flush())}))}else{const t=new Error("probe error");t.transport=e.name,this.emitReserved("upgradeError",t)}})))};function i(){s||(s=!0,h(),e.close(),e=null)}const n=t=>{const s=new Error("probe error: "+t);s.transport=e.name,i(),this.emitReserved("upgradeError",s)};function o(){n("transport closed")}function a(){n("socket closed")}function c(t){e&&t.name!==e.name&&i()}const h=()=>{e.removeListener("open",r),e.removeListener("error",n),e.removeListener("close",o),this.off("close",a),this.off("upgrading",c)};e.once("open",r),e.once("error",n),e.once("close",o),this.once("close",a),this.once("upgrading",c),-1!==this.upgrades.indexOf("webtransport")&&"webtransport"!==t?this.setTimeoutFn((()=>{s||e.open()}),200):e.open()}onOpen(){if(this.readyState="open",Kr.priorWebsocketSuccess="websocket"===this.transport.name,this.emitReserved("open"),this.flush(),"open"===this.readyState&&this.opts.upgrade){let t=0;const e=this.upgrades.length;for(;t<e;t++)this.probe(this.upgrades[t])}}onPacket(t){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState)switch(this.emitReserved("packet",t),this.emitReserved("heartbeat"),this.resetPingTimeout(),t.type){case"open":this.onHandshake(JSON.parse(t.data));break;case"ping":this.sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong");break;case"error":const e=new Error("server error");e.code=t.data,this.onError(e);break;case"message":this.emitReserved("data",t.data),this.emitReserved("message",t.data)}}onHandshake(t){this.emitReserved("handshake",t),this.id=t.sid,this.transport.query.sid=t.sid,this.upgrades=this.filterUpgrades(t.upgrades),this.pingInterval=t.pingInterval,this.pingTimeout=t.pingTimeout,this.maxPayload=t.maxPayload,this.onOpen(),"closed"!==this.readyState&&this.resetPingTimeout()}resetPingTimeout(){this.clearTimeoutFn(this.pingTimeoutTimer),this.pingTimeoutTimer=this.setTimeoutFn((()=>{this.onClose("ping timeout")}),this.pingInterval+this.pingTimeout),this.opts.autoUnref&&this.pingTimeoutTimer.unref()}onDrain(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,0===this.writeBuffer.length?this.emitReserved("drain"):this.flush()}flush(){if("closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const t=this.getWritablePackets();this.transport.send(t),this.prevBufferLen=t.length,this.emitReserved("flush")}}getWritablePackets(){if(!(this.maxPayload&&"polling"===this.transport.name&&this.writeBuffer.length>1))return this.writeBuffer;let t=1;for(let s=0;s<this.writeBuffer.length;s++){const r=this.writeBuffer[s].data;if(r&&(t+="string"==typeof(e=r)?function(t){let e=0,s=0;for(let r=0,i=t.length;r<i;r++)e=t.charCodeAt(r),e<128?s+=1:e<2048?s+=2:e<55296||e>=57344?s+=3:(r++,s+=4);return s}(e):Math.ceil(1.33*(e.byteLength||e.size))),s>0&&t>this.maxPayload)return this.writeBuffer.slice(0,s);t+=2}var e;return this.writeBuffer}write(t,e,s){return this.sendPacket("message",t,e,s),this}send(t,e,s){return this.sendPacket("message",t,e,s),this}sendPacket(t,e,s,r){if("function"==typeof e&&(r=e,e=void 0),"function"==typeof s&&(r=s,s=null),"closing"===this.readyState||"closed"===this.readyState)return;(s=s||{}).compress=!1!==s.compress;const i={type:t,data:e,options:s};this.emitReserved("packetCreate",i),this.writeBuffer.push(i),r&&this.once("flush",r),this.flush()}close(){const t=()=>{this.onClose("forced close"),this.transport.close()},e=()=>{this.off("upgrade",e),this.off("upgradeError",e),t()},s=()=>{this.once("upgrade",e),this.once("upgradeError",e)};return"opening"!==this.readyState&&"open"!==this.readyState||(this.readyState="closing",this.writeBuffer.length?this.once("drain",(()=>{this.upgrading?s():t()})):this.upgrading?s():t()),this}onError(t){Kr.priorWebsocketSuccess=!1,this.emitReserved("error",t),this.onClose("transport error",t)}onClose(t,e){"opening"!==this.readyState&&"open"!==this.readyState&&"closing"!==this.readyState||(this.clearTimeoutFn(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),"function"==typeof removeEventListener&&(removeEventListener("beforeunload",this.beforeunloadEventListener,!1),removeEventListener("offline",this.offlineEventListener,!1)),this.readyState="closed",this.id=null,this.emitReserved("close",t,e),this.writeBuffer=[],this.prevBufferLen=0)}filterUpgrades(t){const e=[];let s=0;const r=t.length;for(;s<r;s++)~this.transports.indexOf(t[s])&&e.push(t[s]);return e}}Kr.protocol=4,Kr.protocol;const Yr="function"==typeof ArrayBuffer,Xr=t=>"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(t):t.buffer instanceof ArrayBuffer,Qr=Object.prototype.toString,Zr="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===Qr.call(Blob),ti="function"==typeof File||"undefined"!=typeof File&&"[object FileConstructor]"===Qr.call(File);function ei(t){return Yr&&(t instanceof ArrayBuffer||Xr(t))||Zr&&t instanceof Blob||ti&&t instanceof File}function si(t,e){if(!t||"object"!=typeof t)return!1;if(Array.isArray(t)){for(let e=0,s=t.length;e<s;e++)if(si(t[e]))return!0;return!1}if(ei(t))return!0;if(t.toJSON&&"function"==typeof t.toJSON&&1===arguments.length)return si(t.toJSON(),!0);for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e)&&si(t[e]))return!0;return!1}function ri(t){const e=[],s=t.data,r=t;return r.data=ii(s,e),r.attachments=e.length,{packet:r,buffers:e}}function ii(t,e){if(!t)return t;if(ei(t)){const s={_placeholder:!0,num:e.length};return e.push(t),s}if(Array.isArray(t)){const s=new Array(t.length);for(let r=0;r<t.length;r++)s[r]=ii(t[r],e);return s}if("object"==typeof t&&!(t instanceof Date)){const s={};for(const r in t)Object.prototype.hasOwnProperty.call(t,r)&&(s[r]=ii(t[r],e));return s}return t}function ni(t,e){return t.data=oi(t.data,e),delete t.attachments,t}function oi(t,e){if(!t)return t;if(t&&!0===t._placeholder){if("number"==typeof t.num&&t.num>=0&&t.num<e.length)return e[t.num];throw new Error("illegal attachments")}if(Array.isArray(t))for(let s=0;s<t.length;s++)t[s]=oi(t[s],e);else if("object"==typeof t)for(const s in t)Object.prototype.hasOwnProperty.call(t,s)&&(t[s]=oi(t[s],e));return t}const ai=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"],ci=5;var hi;!function(t){t[t.CONNECT=0]="CONNECT",t[t.DISCONNECT=1]="DISCONNECT",t[t.EVENT=2]="EVENT",t[t.ACK=3]="ACK",t[t.CONNECT_ERROR=4]="CONNECT_ERROR",t[t.BINARY_EVENT=5]="BINARY_EVENT",t[t.BINARY_ACK=6]="BINARY_ACK"}(hi||(hi={}));class ui{constructor(t){this.replacer=t}encode(t){return t.type!==hi.EVENT&&t.type!==hi.ACK||!si(t)?[this.encodeAsString(t)]:this.encodeAsBinary({type:t.type===hi.EVENT?hi.BINARY_EVENT:hi.BINARY_ACK,nsp:t.nsp,data:t.data,id:t.id})}encodeAsString(t){let e=""+t.type;return t.type!==hi.BINARY_EVENT&&t.type!==hi.BINARY_ACK||(e+=t.attachments+"-"),t.nsp&&"/"!==t.nsp&&(e+=t.nsp+","),null!=t.id&&(e+=t.id),null!=t.data&&(e+=JSON.stringify(t.data,this.replacer)),e}encodeAsBinary(t){const e=ri(t),s=this.encodeAsString(e.packet),r=e.buffers;return r.unshift(s),r}}function li(t){return"[object Object]"===Object.prototype.toString.call(t)}class di extends vr{constructor(t){super(),this.reviver=t}add(t){let e;if("string"==typeof t){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");e=this.decodeString(t);const s=e.type===hi.BINARY_EVENT;s||e.type===hi.BINARY_ACK?(e.type=s?hi.EVENT:hi.ACK,this.reconstructor=new fi(e),0===e.attachments&&super.emitReserved("decoded",e)):super.emitReserved("decoded",e)}else{if(!ei(t)&&!t.base64)throw new Error("Unknown type: "+t);if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");e=this.reconstructor.takeBinaryData(t),e&&(this.reconstructor=null,super.emitReserved("decoded",e))}}decodeString(t){let e=0;const s={type:Number(t.charAt(0))};if(void 0===hi[s.type])throw new Error("unknown packet type "+s.type);if(s.type===hi.BINARY_EVENT||s.type===hi.BINARY_ACK){const r=e+1;for(;"-"!==t.charAt(++e)&&e!=t.length;);const i=t.substring(r,e);if(i!=Number(i)||"-"!==t.charAt(e))throw new Error("Illegal attachments");s.attachments=Number(i)}if("/"===t.charAt(e+1)){const r=e+1;for(;++e&&","!==t.charAt(e)&&e!==t.length;);s.nsp=t.substring(r,e)}else s.nsp="/";const r=t.charAt(e+1);if(""!==r&&Number(r)==r){const r=e+1;for(;++e;){const s=t.charAt(e);if(null==s||Number(s)!=s){--e;break}if(e===t.length)break}s.id=Number(t.substring(r,e+1))}if(t.charAt(++e)){const r=this.tryParse(t.substr(e));if(!di.isPayloadValid(s.type,r))throw new Error("invalid payload");s.data=r}return s}tryParse(t){try{return JSON.parse(t,this.reviver)}catch(t){return!1}}static isPayloadValid(t,e){switch(t){case hi.CONNECT:return li(e);case hi.DISCONNECT:return void 0===e;case hi.CONNECT_ERROR:return"string"==typeof e||li(e);case hi.EVENT:case hi.BINARY_EVENT:return Array.isArray(e)&&("number"==typeof e[0]||"string"==typeof e[0]&&-1===ai.indexOf(e[0]));case hi.ACK:case hi.BINARY_ACK:return Array.isArray(e)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class fi{constructor(t){this.packet=t,this.buffers=[],this.reconPack=t}takeBinaryData(t){if(this.buffers.push(t),this.buffers.length===this.reconPack.attachments){const t=ni(this.reconPack,this.buffers);return this.finishedReconstruction(),t}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}function pi(t,e,s){return t.on(e,s),function(){t.off(e,s)}}const gi=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class mi extends vr{constructor(t,e,s){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=t,this.nsp=e,s&&s.auth&&(this.auth=s.auth),this._opts=Object.assign({},s),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const t=this.io;this.subs=[pi(t,"open",this.onopen.bind(this)),pi(t,"packet",this.onpacket.bind(this)),pi(t,"error",this.onerror.bind(this)),pi(t,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected||(this.subEvents(),this.io._reconnecting||this.io.open(),"open"===this.io._readyState&&this.onopen()),this}open(){return this.connect()}send(...t){return t.unshift("message"),this.emit.apply(this,t),this}emit(t,...e){if(gi.hasOwnProperty(t))throw new Error('"'+t.toString()+'" is a reserved event name');if(e.unshift(t),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(e),this;const s={type:hi.EVENT,data:e,options:{}};if(s.options.compress=!1!==this.flags.compress,"function"==typeof e[e.length-1]){const t=this.ids++,r=e.pop();this._registerAckCallback(t,r),s.id=t}const r=this.io.engine&&this.io.engine.transport&&this.io.engine.transport.writable;return this.flags.volatile&&(!r||!this.connected)||(this.connected?(this.notifyOutgoingListeners(s),this.packet(s)):this.sendBuffer.push(s)),this.flags={},this}_registerAckCallback(t,e){var s;const r=null!==(s=this.flags.timeout)&&void 0!==s?s:this._opts.ackTimeout;if(void 0===r)return void(this.acks[t]=e);const i=this.io.setTimeoutFn((()=>{delete this.acks[t];for(let e=0;e<this.sendBuffer.length;e++)this.sendBuffer[e].id===t&&this.sendBuffer.splice(e,1);e.call(this,new Error("operation has timed out"))}),r),n=(...t)=>{this.io.clearTimeoutFn(i),e.apply(this,t)};n.withError=!0,this.acks[t]=n}emitWithAck(t,...e){return new Promise(((s,r)=>{const i=(t,e)=>t?r(t):s(e);i.withError=!0,e.push(i),this.emit(t,...e)}))}_addToQueue(t){let e;"function"==typeof t[t.length-1]&&(e=t.pop());const s={id:this._queueSeq++,tryCount:0,pending:!1,args:t,flags:Object.assign({fromQueue:!0},this.flags)};t.push(((t,...r)=>{if(s===this._queue[0])return null!==t?s.tryCount>this._opts.retries&&(this._queue.shift(),e&&e(t)):(this._queue.shift(),e&&e(null,...r)),s.pending=!1,this._drainQueue()})),this._queue.push(s),this._drainQueue()}_drainQueue(t=!1){if(!this.connected||0===this._queue.length)return;const e=this._queue[0];e.pending&&!t||(e.pending=!0,e.tryCount++,this.flags=e.flags,this.emit.apply(this,e.args))}packet(t){t.nsp=this.nsp,this.io._packet(t)}onopen(){"function"==typeof this.auth?this.auth((t=>{this._sendConnectPacket(t)})):this._sendConnectPacket(this.auth)}_sendConnectPacket(t){this.packet({type:hi.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},t):t})}onerror(t){this.connected||this.emitReserved("connect_error",t)}onclose(t,e){this.connected=!1,delete this.id,this.emitReserved("disconnect",t,e),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach((t=>{if(!this.sendBuffer.some((e=>String(e.id)===t))){const e=this.acks[t];delete this.acks[t],e.withError&&e.call(this,new Error("socket has been disconnected"))}}))}onpacket(t){if(t.nsp===this.nsp)switch(t.type){case hi.CONNECT:t.data&&t.data.sid?this.onconnect(t.data.sid,t.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case hi.EVENT:case hi.BINARY_EVENT:this.onevent(t);break;case hi.ACK:case hi.BINARY_ACK:this.onack(t);break;case hi.DISCONNECT:this.ondisconnect();break;case hi.CONNECT_ERROR:this.destroy();const e=new Error(t.data.message);e.data=t.data.data,this.emitReserved("connect_error",e)}}onevent(t){const e=t.data||[];null!=t.id&&e.push(this.ack(t.id)),this.connected?this.emitEvent(e):this.receiveBuffer.push(Object.freeze(e))}emitEvent(t){if(this._anyListeners&&this._anyListeners.length){const e=this._anyListeners.slice();for(const s of e)s.apply(this,t)}super.emit.apply(this,t),this._pid&&t.length&&"string"==typeof t[t.length-1]&&(this._lastOffset=t[t.length-1])}ack(t){const e=this;let s=!1;return function(...r){s||(s=!0,e.packet({type:hi.ACK,id:t,data:r}))}}onack(t){const e=this.acks[t.id];"function"==typeof e&&(delete this.acks[t.id],e.withError&&t.data.unshift(null),e.apply(this,t.data))}onconnect(t,e){this.id=t,this.recovered=e&&this._pid===e,this._pid=e,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach((t=>this.emitEvent(t))),this.receiveBuffer=[],this.sendBuffer.forEach((t=>{this.notifyOutgoingListeners(t),this.packet(t)})),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach((t=>t())),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:hi.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(t){return this.flags.compress=t,this}get volatile(){return this.flags.volatile=!0,this}timeout(t){return this.flags.timeout=t,this}onAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(t),this}prependAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(t),this}offAny(t){if(!this._anyListeners)return this;if(t){const e=this._anyListeners;for(let s=0;s<e.length;s++)if(t===e[s])return e.splice(s,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(t){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(t),this}prependAnyOutgoing(t){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(t),this}offAnyOutgoing(t){if(!this._anyOutgoingListeners)return this;if(t){const e=this._anyOutgoingListeners;for(let s=0;s<e.length;s++)if(t===e[s])return e.splice(s,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(t){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){const e=this._anyOutgoingListeners.slice();for(const s of e)s.apply(this,t.data)}}}function yi(t){t=t||{},this.ms=t.min||100,this.max=t.max||1e4,this.factor=t.factor||2,this.jitter=t.jitter>0&&t.jitter<=1?t.jitter:0,this.attempts=0}yi.prototype.duration=function(){var t=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),s=Math.floor(e*this.jitter*t);t=1&Math.floor(10*e)?t+s:t-s}return 0|Math.min(t,this.max)},yi.prototype.reset=function(){this.attempts=0},yi.prototype.setMin=function(t){this.ms=t},yi.prototype.setMax=function(t){this.max=t},yi.prototype.setJitter=function(t){this.jitter=t};class bi extends vr{constructor(t,e){var s;super(),this.nsps={},this.subs=[],t&&"object"==typeof t&&(e=t,t=void 0),(e=e||{}).path=e.path||"/socket.io",this.opts=e,_r(this,e),this.reconnection(!1!==e.reconnection),this.reconnectionAttempts(e.reconnectionAttempts||1/0),this.reconnectionDelay(e.reconnectionDelay||1e3),this.reconnectionDelayMax(e.reconnectionDelayMax||5e3),this.randomizationFactor(null!==(s=e.randomizationFactor)&&void 0!==s?s:.5),this.backoff=new yi({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(null==e.timeout?2e4:e.timeout),this._readyState="closed",this.uri=t;const i=e.parser||r;this.encoder=new i.Encoder,this.decoder=new i.Decoder,this._autoConnect=!1!==e.autoConnect,this._autoConnect&&this.open()}reconnection(t){return arguments.length?(this._reconnection=!!t,this):this._reconnection}reconnectionAttempts(t){return void 0===t?this._reconnectionAttempts:(this._reconnectionAttempts=t,this)}reconnectionDelay(t){var e;return void 0===t?this._reconnectionDelay:(this._reconnectionDelay=t,null===(e=this.backoff)||void 0===e||e.setMin(t),this)}randomizationFactor(t){var e;return void 0===t?this._randomizationFactor:(this._randomizationFactor=t,null===(e=this.backoff)||void 0===e||e.setJitter(t),this)}reconnectionDelayMax(t){var e;return void 0===t?this._reconnectionDelayMax:(this._reconnectionDelayMax=t,null===(e=this.backoff)||void 0===e||e.setMax(t),this)}timeout(t){return arguments.length?(this._timeout=t,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()}open(t){if(~this._readyState.indexOf("open"))return this;this.engine=new Kr(this.uri,this.opts);const e=this.engine,s=this;this._readyState="opening",this.skipReconnect=!1;const r=pi(e,"open",(function(){s.onopen(),t&&t()})),i=e=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",e),t?t(e):this.maybeReconnectOnOpen()},n=pi(e,"error",i);if(!1!==this._timeout){const t=this._timeout,s=this.setTimeoutFn((()=>{r(),i(new Error("timeout")),e.close()}),t);this.opts.autoUnref&&s.unref(),this.subs.push((()=>{this.clearTimeoutFn(s)}))}return this.subs.push(r),this.subs.push(n),this}connect(t){return this.open(t)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const t=this.engine;this.subs.push(pi(t,"ping",this.onping.bind(this)),pi(t,"data",this.ondata.bind(this)),pi(t,"error",this.onerror.bind(this)),pi(t,"close",this.onclose.bind(this)),pi(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(t){try{this.decoder.add(t)}catch(t){this.onclose("parse error",t)}}ondecoded(t){Ur((()=>{this.emitReserved("packet",t)}),this.setTimeoutFn)}onerror(t){this.emitReserved("error",t)}socket(t,e){let s=this.nsps[t];return s?this._autoConnect&&!s.active&&s.connect():(s=new mi(this,t,e),this.nsps[t]=s),s}_destroy(t){const e=Object.keys(this.nsps);for(const t of e)if(this.nsps[t].active)return;this._close()}_packet(t){const e=this.encoder.encode(t);for(let s=0;s<e.length;s++)this.engine.write(e[s],t.options)}cleanup(){this.subs.forEach((t=>t())),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close"),this.engine&&this.engine.close()}disconnect(){return this._close()}onclose(t,e){this.cleanup(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",t,e),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const t=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const e=this.backoff.duration();this._reconnecting=!0;const s=this.setTimeoutFn((()=>{t.skipReconnect||(this.emitReserved("reconnect_attempt",t.backoff.attempts),t.skipReconnect||t.open((e=>{e?(t._reconnecting=!1,t.reconnect(),this.emitReserved("reconnect_error",e)):t.onreconnect()})))}),e);this.opts.autoUnref&&s.unref(),this.subs.push((()=>{this.clearTimeoutFn(s)}))}}onreconnect(){const t=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",t)}}const vi={};function wi(t,e){"object"==typeof t&&(e=t,t=void 0);const s=function(t,e="",s){let r=t;s=s||"undefined"!=typeof location&&location,null==t&&(t=s.protocol+"//"+s.host),"string"==typeof t&&("/"===t.charAt(0)&&(t="/"===t.charAt(1)?s.protocol+t:s.host+t),/^(https?|wss?):\/\//.test(t)||(t=void 0!==s?s.protocol+"//"+t:"https://"+t),r=Gr(t)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port="80":/^(http|ws)s$/.test(r.protocol)&&(r.port="443")),r.path=r.path||"/";const i=-1!==r.host.indexOf(":")?"["+r.host+"]":r.host;return r.id=r.protocol+"://"+i+":"+r.port+e,r.href=r.protocol+"://"+i+(s&&s.port===r.port?"":":"+r.port),r}(t,(e=e||{}).path||"/socket.io"),r=s.source,i=s.id,n=s.path,o=vi[i]&&n in vi[i].nsps;let a;return e.forceNew||e["force new connection"]||!1===e.multiplex||o?a=new bi(r,e):(vi[i]||(vi[i]=new bi(r,e)),a=vi[i]),s.query&&!e.query&&(e.query=s.queryKey),a.socket(s.path,e)}Object.assign(wi,{Manager:bi,Socket:mi,io:wi,connect:wi});class Si{socket;token;endpoint;socketList=new Map;constructor(t,e){this.endpoint=t.replace("https://","wss://").replace("http://","ws://"),this.token=e,this.socket=this.getSocket("default").socket,this.socket.connect()}close(){this.socket.emit("end"),this.socket.removeAllListeners(),this.socket.disconnect()}getSocket(t,e){return this.socketList.has(t)||this.socketList.set(t,this.createManager(e)),this.socketList.get(t)}createManager(t){const e=new bi(this.endpoint,{reconnection:!0,reconnectionDelay:500,rejectUnauthorized:!1,transports:["websocket"],forceNew:t}),s=e.socket("/proxy",{auth:{token:`Bearer ${this.token}`}});return{manager:e,socket:s}}}class ki{api;socketService;config;logger;token;deviceManager;pluginsManager;systemManager;constructor(t){this.config=t,this.logger=t.logger||{...console,attention:console.warn},this.api=new de(t.endpoint)}async connect(){return this.deviceManager&&this.pluginsManager&&this.systemManager||(this.cleanUpClient(),await this.login(),this.token=this.token||this.config.token,this.socketService=new Si(this.config.endpoint,this.token),this.deviceManager=new Xs(this.socketService,this.logger),this.pluginsManager=new Qs(this.socketService,this.logger),this.systemManager=new Zs(this.socketService,this.logger),this.checkSession()),{deviceManager:this.deviceManager,pluginsManager:this.pluginsManager,systemManager:this.systemManager}}async disconnect(){this.socketService?.close(),this.cleanUpClient(),this.config.username&&this.config.password&&await this.api.interceptor.post("/auth/logout",void 0,{headers:{Authorization:`Bearer ${this.token}`}})}async updateCredentials(t){this.config={...this.config,...t},this.socketService&&await this.disconnect(),await this.connect()}async login(){if(this.config.username&&this.config.password)try{const t=await this.api.interceptor.post("/auth/login",{username:this.config.username,password:this.config.password});this.token=t.data.access_token}catch(t){throw 401===t.response?.status?new Error("Invalid credentials"):new Error(`Failed to get token: ${t.message}`)}else if(this.config.token&&!this.config.skipCheck)try{await this.api.interceptor.get("/auth/check",{headers:{Authorization:`Bearer ${this.config.token}`}})}catch(t){throw new Error(`Invalid token: ${t.message}`)}this.token=this.token||this.config.token}getDeviceManager(){return this.deviceManager}getPluginsManager(){return this.pluginsManager}getSystemManager(){return this.systemManager}checkSession(){this.socketService?.socket.removeListener("invalidToken"),this.socketService?.socket.on("invalidToken",(async t=>{t===this.token&&await this.disconnect()}))}cleanUpClient(){this.deviceManager=void 0,this.pluginsManager=void 0,this.systemManager=void 0}}var Ei=e.j;export{Ei as CameraUiClient};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BaseCameraDevice } from '../../../../../server/src/camera/index.js';
|
|
2
2
|
import { CameraAudioDetectionInterface } from '../../../../../server/src/camera/interfaces/audioDetection.js';
|
|
3
|
+
import { CameraInterface } from '../../../../../server/src/camera/interfaces/camera.js';
|
|
3
4
|
import { CameraMotionDetectionInterface } from '../../../../../server/src/camera/interfaces/motionDetection.js';
|
|
4
5
|
import { CameraObjectDetectionInterface } from '../../../../../server/src/camera/interfaces/objectDetection.js';
|
|
5
6
|
import { CameraPrebufferInterface } from '../../../../../server/src/camera/interfaces/prebuffer.js';
|
|
@@ -15,7 +16,8 @@ export declare class CameraDeviceProxy extends BaseCameraDevice implements Camer
|
|
|
15
16
|
private subject;
|
|
16
17
|
private _started;
|
|
17
18
|
get started(): boolean;
|
|
18
|
-
|
|
19
|
+
cameraDelegate: CameraInterface;
|
|
20
|
+
prebufferDelegate: CameraPrebufferInterface;
|
|
19
21
|
ptzDelegate: CameraPTZInterface;
|
|
20
22
|
audioDetectorDelegate: CameraAudioDetectionInterface;
|
|
21
23
|
motionDetectorDelegate: CameraMotionDetectionInterface;
|
|
@@ -119,7 +119,6 @@ export declare const interfaceSettingsSchema: zod.ZodObject<{
|
|
|
119
119
|
}>;
|
|
120
120
|
export declare const patchConfigSchema: zod.ZodObject<{
|
|
121
121
|
port: zod.ZodDefault<zod.ZodNumber>;
|
|
122
|
-
localPort: zod.ZodDefault<zod.ZodNumber>;
|
|
123
122
|
tempFile: zod.ZodOptional<zod.ZodString>;
|
|
124
123
|
ssl: zod.ZodObject<{
|
|
125
124
|
certFile: zod.ZodString;
|
|
@@ -163,7 +162,6 @@ export declare const patchConfigSchema: zod.ZodObject<{
|
|
|
163
162
|
}>>;
|
|
164
163
|
}, "strict", zod.ZodTypeAny, {
|
|
165
164
|
port: number;
|
|
166
|
-
localPort: number;
|
|
167
165
|
ssl: {
|
|
168
166
|
certFile: string;
|
|
169
167
|
keyFile: string;
|
|
@@ -192,7 +190,6 @@ export declare const patchConfigSchema: zod.ZodObject<{
|
|
|
192
190
|
disableTimestamps?: boolean | undefined;
|
|
193
191
|
};
|
|
194
192
|
port?: number | undefined;
|
|
195
|
-
localPort?: number | undefined;
|
|
196
193
|
tempFile?: string | undefined;
|
|
197
194
|
plugins?: {
|
|
198
195
|
sudo?: boolean | undefined;
|
|
@@ -12,7 +12,6 @@ export declare class CamerasService {
|
|
|
12
12
|
private pluginsService;
|
|
13
13
|
constructor();
|
|
14
14
|
createCamera(cameraData: DBCamera): Promise<DBCamera>;
|
|
15
|
-
createTransformedCamera(cameraData: DBCamera, cameraSources: CameraInputSettings[]): Promise<Camera>;
|
|
16
15
|
createZone(cameraname: string, zoneData: CameraZone): Promise<DBCamera | undefined>;
|
|
17
16
|
patchZoneByName(cameraname: string, zonename: string, zoneData: CameraZone): Promise<DBCamera | undefined>;
|
|
18
17
|
removeZoneByName(cameraname: string, zonename: string): Promise<void>;
|
|
@@ -42,7 +41,6 @@ export declare class CamerasService {
|
|
|
42
41
|
removeByPluginIdAndName(cameraname: string, pluginId: string): Promise<void>;
|
|
43
42
|
removeAll(): Promise<void>;
|
|
44
43
|
transformCamera(camera: DBCamera): Camera;
|
|
45
|
-
createEmptySource(cameraId: string, source: CameraInputSettings): CameraInputSettings;
|
|
46
44
|
addCameraSources(cameraname: string, sources: CameraInputSettings[]): Promise<void>;
|
|
47
45
|
removeCameraSources(cameraname: string, sources: CameraInputSettings[]): Promise<void>;
|
|
48
46
|
private sourceExistAndEqual;
|
|
@@ -360,12 +360,6 @@ export type BackupCreateRequest = {
|
|
|
360
360
|
localStorage: Partial<UiLocalStorage>;
|
|
361
361
|
};
|
|
362
362
|
};
|
|
363
|
-
export type StreamsParamsNameRequest = {
|
|
364
|
-
Params: {
|
|
365
|
-
id: string;
|
|
366
|
-
name: string;
|
|
367
|
-
};
|
|
368
|
-
};
|
|
369
363
|
export interface BackupInfo {
|
|
370
364
|
backupDirectory: string;
|
|
371
365
|
backupFile: string;
|
|
@@ -7,7 +7,7 @@ import { CameraPTZInterface } from './interfaces/ptz.js';
|
|
|
7
7
|
import type { Camera } from '../api/database/types.js';
|
|
8
8
|
import type { ProxyServer } from '../nats/index.js';
|
|
9
9
|
import type { IceServer } from '../services/config/types.js';
|
|
10
|
-
import type { BaseLogger, CameraConfigInputSettings, CameraSource, SetValues } from './types.js';
|
|
10
|
+
import type { BaseLogger, CameraConfigInputSettings, CameraDelegate, CameraSource, SetValues } from './types.js';
|
|
11
11
|
export declare class CameraController extends BaseCameraDevice {
|
|
12
12
|
proxy: ProxyServer;
|
|
13
13
|
private motionTimeout?;
|
|
@@ -16,7 +16,8 @@ export declare class CameraController extends BaseCameraDevice {
|
|
|
16
16
|
private doorbellTimeout?;
|
|
17
17
|
private doorbellTimeoutDuration;
|
|
18
18
|
private prebufferStateSubscriptions;
|
|
19
|
-
|
|
19
|
+
cameraDelegate: CameraDelegate;
|
|
20
|
+
prebufferDelegate: CameraPrebufferInterface;
|
|
20
21
|
ptzDelegate: CameraPTZInterface;
|
|
21
22
|
audioDetectorDelegate: CameraAudioDetectionInterface;
|
|
22
23
|
motionDetectorDelegate: CameraMotionDetectionInterface;
|
|
@@ -4,7 +4,7 @@ import type { Observable, Subscription } from 'rxjs';
|
|
|
4
4
|
import type { Camera, CameraActivitySettings, CameraFrameWorkerSettings, CameraInformation, CameraType } from '../api/database/types.js';
|
|
5
5
|
import type { VideoFrame } from '../decoder/types.js';
|
|
6
6
|
import type { IceServer } from '../services/config/types.js';
|
|
7
|
-
import type { AudioSetEvent, AudioState, BaseLogger, BatterySetEvent, BatteryState, CameraAudioDetectionDelegate, CameraConfigInputSettings, CameraMotionDetectionDelegate, CameraObjectDetectionDelegate, CameraPTZDelegate, CameraPrebufferDelegate, CameraSource, Container, DetectionZone, DoorbellSetEvent, DoorbellState, LightSetEvent, LightState, MotionSetEvent, MotionState, ObjectSetEvent, ObjectState, PrebufferState, SetValues, Sets, SirenSetEvent, SirenState, StateValues, States } from './types.js';
|
|
7
|
+
import type { AudioSetEvent, AudioState, BaseLogger, BatterySetEvent, BatteryState, CameraAudioDetectionDelegate, CameraConfigInputSettings, CameraDelegate, CameraMotionDetectionDelegate, CameraObjectDetectionDelegate, CameraPTZDelegate, CameraPrebufferDelegate, CameraSource, Container, DetectionZone, DoorbellSetEvent, DoorbellState, LightSetEvent, LightState, MotionSetEvent, MotionState, ObjectSetEvent, ObjectState, PrebufferState, SetValues, Sets, SirenSetEvent, SirenState, StateValues, States } from './types.js';
|
|
8
8
|
declare class Subscribed {
|
|
9
9
|
private readonly subscriptions;
|
|
10
10
|
private readonly additionalSubscriptions;
|
|
@@ -38,7 +38,8 @@ export declare abstract class BaseCameraDevice extends Subscribed {
|
|
|
38
38
|
readonly onDoorbellPressed: Observable<DoorbellState>;
|
|
39
39
|
readonly onSirenDetected: Observable<SirenState>;
|
|
40
40
|
readonly onBatteryChanged: Observable<BatteryState>;
|
|
41
|
-
|
|
41
|
+
abstract cameraDelegate: CameraDelegate;
|
|
42
|
+
abstract prebufferDelegate: CameraPrebufferDelegate;
|
|
42
43
|
abstract ptzDelegate: CameraPTZDelegate;
|
|
43
44
|
abstract motionDetectorDelegate: CameraMotionDetectionDelegate;
|
|
44
45
|
abstract audioDetectorDelegate: CameraAudioDetectionDelegate;
|
|
@@ -1,19 +1,10 @@
|
|
|
1
1
|
import { CameraDelegate } from '../types.js';
|
|
2
|
-
import type { CameraDeviceProxy } from '../../polyglot/node/plugins/proxy/cameraDevice.js';
|
|
3
2
|
import type { BaseLogger } from '../types.js';
|
|
4
3
|
export declare class CameraInterface extends CameraDelegate {
|
|
5
4
|
delegate?: CameraDelegate;
|
|
6
|
-
private
|
|
7
|
-
private cameraDevice;
|
|
5
|
+
private onRequest;
|
|
8
6
|
private logger;
|
|
9
|
-
constructor(
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
stopStream(requestId: string, sourceName: string): Promise<void>;
|
|
13
|
-
onTalkbackSdp(requestId: string, sourceName: string, sdp: string, codec: 'PCMU' | 'PCMA' | 'opus'): void;
|
|
14
|
-
onTalkbackRtp(requestId: string, sourceName: string, rtp: Buffer): void;
|
|
15
|
-
onOffer(requestId: string, sdp: string): Promise<string>;
|
|
16
|
-
onCandidates(requestId: string, candidate: string): Promise<void>;
|
|
17
|
-
private generateSdp;
|
|
18
|
-
private createPeerCoonection;
|
|
7
|
+
constructor(onRequest: (client: any, fn: string, args?: any[], timeout?: number) => Promise<any>, logger: BaseLogger);
|
|
8
|
+
reboot(): Promise<void>;
|
|
9
|
+
private _onRequest;
|
|
19
10
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { CameraPrebufferDelegate } from '../types.js';
|
|
2
|
-
import type { BaseLogger, Container, StreamInfo } from '../types.js';
|
|
2
|
+
import type { BaseLogger, Container, PrebufferState, StreamInfo } from '../types.js';
|
|
3
3
|
export declare class CameraPrebufferInterface extends CameraPrebufferDelegate {
|
|
4
4
|
delegate?: CameraPrebufferDelegate;
|
|
5
5
|
private onRequest;
|
|
6
6
|
private logger;
|
|
7
|
-
constructor(onRequest: (client: any, fn: string, args?:
|
|
7
|
+
constructor(onRequest: (client: any, fn: string, args?: any[], timeout?: number) => Promise<any>, logger: BaseLogger);
|
|
8
8
|
getStreamInfo(sourceName: string): Promise<StreamInfo | undefined>;
|
|
9
|
-
updatePrebufferState(sourceId: string, container: Container, state:
|
|
9
|
+
updatePrebufferState(sourceId: string, container: Container, state: PrebufferState): Promise<void>;
|
|
10
10
|
private _onRequest;
|
|
11
11
|
}
|
|
@@ -90,8 +90,7 @@ export interface BaseCameraConfig {
|
|
|
90
90
|
disabled?: boolean;
|
|
91
91
|
info?: Partial<CameraInformation>;
|
|
92
92
|
}
|
|
93
|
-
export interface CameraConfigInputSettings extends Omit<CameraInputSettings, '_id'
|
|
94
|
-
urls?: string[];
|
|
93
|
+
export interface CameraConfigInputSettings extends Omit<CameraInputSettings, '_id'> {
|
|
95
94
|
}
|
|
96
95
|
export type CameraConfig = BaseCameraConfig & {
|
|
97
96
|
sources: CameraConfigInputSettings[];
|
|
@@ -183,11 +182,7 @@ export type StateValue<T extends keyof StateValues> = StateValues[T];
|
|
|
183
182
|
export type SetValue<T extends keyof SetValues> = SetValues[T];
|
|
184
183
|
export type OnChangeCallback<T extends keyof StateValues> = (newEvent: StateValues[T], oldEvent: StateValues[T]) => void;
|
|
185
184
|
export declare abstract class CameraDelegate {
|
|
186
|
-
abstract
|
|
187
|
-
abstract startStream(requestId: string, sourceName: string, videoPort: number, audioPort: number): Promise<void>;
|
|
188
|
-
abstract stopStream(requestId: string, sourceName: string): Promise<void>;
|
|
189
|
-
abstract onTalkbackSdp(requestId: string, sourceName: string, sdp: string, codec: 'PCMU' | 'PCMA' | 'opus'): void;
|
|
190
|
-
abstract onTalkbackRtp(requestId: string, sourceName: string, rtp: Buffer): void;
|
|
185
|
+
abstract reboot(): Promise<void>;
|
|
191
186
|
}
|
|
192
187
|
export declare abstract class CameraPrebufferDelegate {
|
|
193
188
|
abstract getStreamInfo(sourceName: string): Promise<StreamInfo | undefined>;
|
|
@@ -17,49 +17,16 @@ export declare class CameraDeviceProxy implements CameraDeviceProxyMethods {
|
|
|
17
17
|
private pluginsService;
|
|
18
18
|
private messageQueue;
|
|
19
19
|
constructor(messageQueue: MessageQueue);
|
|
20
|
-
connect(
|
|
21
|
-
|
|
22
|
-
pluginId: string;
|
|
23
|
-
}): void;
|
|
24
|
-
disconnect(data: {
|
|
25
|
-
cameraId: string;
|
|
26
|
-
pluginId: string;
|
|
27
|
-
}): void;
|
|
20
|
+
connect(cameraId: string): void;
|
|
21
|
+
disconnect(cameraId: string): void;
|
|
28
22
|
getFfmpegPath(): string;
|
|
29
23
|
getIceServers(): IceServer[];
|
|
30
|
-
updateState<T extends keyof SetValues>(
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
updatePrebufferState(data: {
|
|
37
|
-
sourceId: string;
|
|
38
|
-
container: Container;
|
|
39
|
-
state: PrebufferState;
|
|
40
|
-
cameraId: string;
|
|
41
|
-
pluginId: string;
|
|
42
|
-
}): Promise<void>;
|
|
43
|
-
addCameraSource(data: {
|
|
44
|
-
source: CameraConfigInputSettings;
|
|
45
|
-
cameraId: string;
|
|
46
|
-
pluginId: string;
|
|
47
|
-
}): Promise<void>;
|
|
48
|
-
updateCameraSource(data: {
|
|
49
|
-
id: string;
|
|
50
|
-
source: Partial<CameraConfigInputSettings>;
|
|
51
|
-
cameraId: string;
|
|
52
|
-
pluginId: string;
|
|
53
|
-
}): Promise<void>;
|
|
54
|
-
removeCameraSource(data: {
|
|
55
|
-
id: string;
|
|
56
|
-
cameraId: string;
|
|
57
|
-
pluginId: string;
|
|
58
|
-
}): Promise<void>;
|
|
59
|
-
refreshStates(data: {
|
|
60
|
-
cameraId: string;
|
|
61
|
-
pluginId: string;
|
|
62
|
-
}): {
|
|
24
|
+
updateState<T extends keyof SetValues>(stateName: T, eventData: SetValues[T], cameraId: string): Promise<void>;
|
|
25
|
+
updatePrebufferState(sourceId: string, container: Container, state: PrebufferState, cameraId: string, pluginId: string): Promise<void>;
|
|
26
|
+
addCameraSource(source: CameraConfigInputSettings, cameraId: string, pluginId: string): Promise<void>;
|
|
27
|
+
updateCameraSource(id: string, source: Partial<CameraConfigInputSettings>, cameraId: string, pluginId: string): Promise<void>;
|
|
28
|
+
removeCameraSource(id: string, cameraId: string, pluginId: string): Promise<void>;
|
|
29
|
+
refreshStates(cameraId: string): {
|
|
63
30
|
camera: Camera;
|
|
64
31
|
states: StateValues;
|
|
65
32
|
cameraState: boolean;
|
|
@@ -21,7 +21,7 @@ export interface ProxyMessageStructure {
|
|
|
21
21
|
proxy: 'system' | 'device' | 'plugins' | 'camera';
|
|
22
22
|
client: 'cameraFn' | 'pluginFn' | 'pluginStorage' | 'device' | 'system' | keyof CameraDelegates;
|
|
23
23
|
fn: string;
|
|
24
|
-
args: any[]
|
|
24
|
+
args: any[];
|
|
25
25
|
timeout: number;
|
|
26
26
|
timestamp: number;
|
|
27
27
|
response?: any;
|
|
@@ -69,59 +69,20 @@ export interface SystemManagerServerProxyMethods {
|
|
|
69
69
|
export interface PluginsManagerServerProxyMethods {
|
|
70
70
|
}
|
|
71
71
|
export interface CameraDeviceProxyMethods {
|
|
72
|
-
connect(
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}): void;
|
|
80
|
-
getFfmpegPath(data: {
|
|
81
|
-
cameraId: string;
|
|
82
|
-
pluginId: string;
|
|
83
|
-
}): string;
|
|
84
|
-
getIceServers(data: {
|
|
85
|
-
cameraId: string;
|
|
86
|
-
pluginId: string;
|
|
87
|
-
}): IceServer[];
|
|
88
|
-
updateState<T extends keyof SetValues>(data: {
|
|
89
|
-
stateName: T;
|
|
90
|
-
eventData: SetValues[T];
|
|
91
|
-
cameraId: string;
|
|
92
|
-
pluginId: string;
|
|
93
|
-
}): void;
|
|
94
|
-
updatePrebufferState(data: {
|
|
95
|
-
sourceId: string;
|
|
96
|
-
container: Container;
|
|
97
|
-
state: PrebufferState;
|
|
98
|
-
cameraId: string;
|
|
99
|
-
pluginId: string;
|
|
100
|
-
}): Promise<void>;
|
|
101
|
-
refreshStates(data: {
|
|
102
|
-
cameraId: string;
|
|
103
|
-
pluginId: string;
|
|
104
|
-
}): {
|
|
72
|
+
connect(): void;
|
|
73
|
+
disconnect(): void;
|
|
74
|
+
getFfmpegPath(): string;
|
|
75
|
+
getIceServers(): IceServer[];
|
|
76
|
+
updateState<T extends keyof SetValues>(stateName: T, eventData: SetValues[T]): void;
|
|
77
|
+
updatePrebufferState(sourceId: string, container: Container, state: PrebufferState): Promise<void>;
|
|
78
|
+
refreshStates(): {
|
|
105
79
|
camera: Camera;
|
|
106
80
|
states: StateValues;
|
|
107
81
|
cameraState: boolean;
|
|
108
82
|
};
|
|
109
|
-
addCameraSource(
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
pluginId: string;
|
|
113
|
-
}): Promise<void>;
|
|
114
|
-
updateCameraSource(data: {
|
|
115
|
-
id: string;
|
|
116
|
-
source: Partial<CameraConfigInputSettings>;
|
|
117
|
-
cameraId: string;
|
|
118
|
-
pluginId: string;
|
|
119
|
-
}): Promise<void>;
|
|
120
|
-
removeCameraSource(data: {
|
|
121
|
-
id: string;
|
|
122
|
-
cameraId: string;
|
|
123
|
-
pluginId: string;
|
|
124
|
-
}): Promise<void>;
|
|
83
|
+
addCameraSource(source: CameraConfigInputSettings): Promise<void>;
|
|
84
|
+
updateCameraSource(id: string, source: Partial<CameraConfigInputSettings>): Promise<void>;
|
|
85
|
+
removeCameraSource(id: string): Promise<void>;
|
|
125
86
|
}
|
|
126
87
|
export type CameraDeviceProxyMethodNames = MethodKeys<CameraDeviceProxyMethods>;
|
|
127
88
|
export interface DeviceManagerListenerMessagePayload {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CameraDevice } from '../../../../camera/device.js';
|
|
2
2
|
import { CameraAudioDetectionInterface } from '../../../../camera/interfaces/audioDetection.js';
|
|
3
|
+
import { CameraInterface } from '../../../../camera/interfaces/camera.js';
|
|
3
4
|
import { CameraMotionDetectionInterface } from '../../../../camera/interfaces/motionDetection.js';
|
|
4
5
|
import { CameraObjectDetectionInterface } from '../../../../camera/interfaces/objectDetection.js';
|
|
5
6
|
import { CameraPrebufferInterface } from '../../../../camera/interfaces/prebuffer.js';
|
|
@@ -41,7 +42,7 @@ export declare class CameraDeviceProxy extends CameraDevice {
|
|
|
41
42
|
private auth;
|
|
42
43
|
private proxyEndpoints;
|
|
43
44
|
private plugin;
|
|
44
|
-
|
|
45
|
+
cameraDelegate: CameraInterface;
|
|
45
46
|
prebufferDelegate: CameraPrebufferInterface;
|
|
46
47
|
ptzDelegate: CameraPTZInterface;
|
|
47
48
|
audioDetectorDelegate: CameraAudioDetectionInterface;
|
|
@@ -75,7 +76,7 @@ export declare class CameraDeviceProxy extends CameraDevice {
|
|
|
75
76
|
private requestHandler;
|
|
76
77
|
private listenToMessages;
|
|
77
78
|
private listenToSignalingMessages;
|
|
78
|
-
onRequest<T extends
|
|
79
|
+
onRequest<T extends MethodKeys<CameraDeviceProxyMethods>>(client: 'cameraFn', fn: T, args?: Parameters<MethodType<CameraDeviceProxyMethods, T>>, timeout?: number): Promise<any>;
|
|
79
80
|
onRequest<T extends MethodKeys<CameraDelegate>>(client: 'cameraDelegate', fn: T, args?: Parameters<MethodType<CameraDelegate, T>>, timeout?: number): Promise<any>;
|
|
80
81
|
onRequest<T extends MethodKeys<CameraPrebufferDelegate>>(client: 'prebufferDelegate', fn: T, args?: Parameters<MethodType<CameraPrebufferDelegate, T>>, timeout?: number): Promise<any>;
|
|
81
82
|
onRequest<T extends MethodKeys<CameraPTZDelegate>>(client: 'ptzDelegate', fn: T, args?: Parameters<MethodType<CameraPTZDelegate, T>>, timeout?: number): Promise<any>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camera.ui/browser",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.81",
|
|
4
4
|
"description": "camera.ui browser client",
|
|
5
5
|
"author": "seydx (https://github.com/seydx/camera.ui)",
|
|
6
6
|
"module": "./dist/bundle.js",
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
"@rushstack/eslint-patch": "^1.10.3",
|
|
33
33
|
"@swc/register": "^0.1.10",
|
|
34
34
|
"@types/webrtc": "^0.0.43",
|
|
35
|
-
"@typescript-eslint/eslint-plugin": "^7.
|
|
36
|
-
"@typescript-eslint/parser": "^7.
|
|
35
|
+
"@typescript-eslint/eslint-plugin": "^7.17.0",
|
|
36
|
+
"@typescript-eslint/parser": "^7.17.0",
|
|
37
37
|
"bufferutil": "^4.0.8",
|
|
38
38
|
"eslint": "^8.57.0",
|
|
39
39
|
"eslint-config-prettier": "^9.1.0",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"prettier": "^3.3.3",
|
|
42
42
|
"rimraf": "^6.0.1",
|
|
43
43
|
"ts-loader": "^9.5.1",
|
|
44
|
-
"typescript": "^5.5.
|
|
44
|
+
"typescript": "^5.5.4",
|
|
45
45
|
"updates": "^16.2.1",
|
|
46
46
|
"utf-8-validate": "^6.0.4",
|
|
47
47
|
"webpack": "^5.93.0",
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { WebSocket } from '@fastify/websocket';
|
|
2
|
-
import type { FastifyInstance, FastifyReply, FastifyRequest } from 'fastify';
|
|
3
|
-
import type { StreamsParamsNameRequest } from '../types/index.js';
|
|
4
|
-
export declare class StreamsController {
|
|
5
|
-
private app;
|
|
6
|
-
private api;
|
|
7
|
-
private logger;
|
|
8
|
-
private proxyServer;
|
|
9
|
-
constructor(app: FastifyInstance);
|
|
10
|
-
wsConnection(socket: WebSocket, req: FastifyRequest<StreamsParamsNameRequest>): Promise<void>;
|
|
11
|
-
httpConnection(req: FastifyRequest<StreamsParamsNameRequest>, reply: FastifyReply): Promise<FastifyReply>;
|
|
12
|
-
}
|