@camstack/addon-admin-ui 0.1.15 → 0.1.17
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/assets/{__mfe_internal__admin_ui_host__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.mjs-CKfGBI-Z.js → __mfe_internal__admin_ui_host__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.mjs-CeLhKMin.js} +1 -1
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.mjs_commonjs-proxy-CykPKLuU.js → __mfe_internal__admin_ui_host__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.mjs_commonjs-proxy-DXPQtD9p.js} +1 -1
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.mjs-xMlwAAY4.js → __mfe_internal__admin_ui_host__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.mjs-OcRSBqRe.js} +1 -1
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.mjs_commonjs-proxy-Clpxla3F.js → __mfe_internal__admin_ui_host__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.mjs_commonjs-proxy-GvBGLFI2.js} +1 -1
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare__react__loadShare__.mjs-B_akQFxJ.js → __mfe_internal__admin_ui_host__loadShare__react__loadShare__.mjs-Dl4u0xYE.js} +1 -1
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare__react__loadShare__.mjs_commonjs-proxy-BZBxNMgx.js → __mfe_internal__admin_ui_host__loadShare__react__loadShare__.mjs_commonjs-proxy-CSyOECfO.js} +1 -1
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare__react_mf_2_dom__loadShare__.mjs-CCRqQaXq.js → __mfe_internal__admin_ui_host__loadShare__react_mf_2_dom__loadShare__.mjs-CzO_Esxm.js} +1 -1
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare__react_mf_2_dom__loadShare__.mjs_commonjs-proxy-B5D3mvYP.js → __mfe_internal__admin_ui_host__loadShare__react_mf_2_dom__loadShare__.mjs_commonjs-proxy-xw6c6JeS.js} +1 -1
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare__react_mf_2_dom_mf_1_client__loadShare__.mjs-CRHuTm5p.js → __mfe_internal__admin_ui_host__loadShare__react_mf_2_dom_mf_1_client__loadShare__.mjs-DNpf5SLz.js} +1 -1
- package/dist/assets/{__mfe_internal__admin_ui_host__loadShare__react_mf_2_dom_mf_1_client__loadShare__.mjs_commonjs-proxy-XIS4Ck9-.js → __mfe_internal__admin_ui_host__loadShare__react_mf_2_dom_mf_1_client__loadShare__.mjs_commonjs-proxy-BEKtiDI3.js} +1 -1
- package/dist/assets/{_virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-D4TBsvIB.js → _virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-CziSE-Do.js} +1 -1
- package/dist/assets/auth-records-BEfan3dC.js +1 -0
- package/dist/assets/capability-router-map-B3jHfbHt.js +1 -0
- package/dist/assets/devices-BfsgGvwu.js +1 -0
- package/dist/assets/{hostInit-DpSCsYyA.js → hostInit-7yPTCcmg.js} +1 -1
- package/dist/assets/index-BlKJSHE9.js +80 -0
- package/dist/assets/index-ByDDdVKJ.css +1 -0
- package/dist/assets/index-C-M4yvxf.js +1 -0
- package/dist/assets/index-DculG9Gi.js +1098 -0
- package/dist/assets/index-DfH297U6.js +1 -0
- package/dist/assets/index-Dvmk3HcY.js +1 -0
- package/dist/assets/index-K1-f6oQr.js +1 -0
- package/dist/assets/index-X-IEwb-L.js +80 -0
- package/dist/assets/index-cfq-Npln.js +1 -0
- package/dist/assets/index-iCcWZGKs.js +1 -0
- package/dist/assets/index-ptcmLXsE.js +1 -0
- package/dist/assets/{remoteEntry-0zDoMSWf.js → remoteEntry-Da_G1gka.js} +1 -1
- package/dist/assets/{schemas-BOzikgNT.js → schemas-XgIEoUz3.js} +1 -1
- package/dist/assets/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-BnGk9xo_.js → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-kSAHDLPS.js} +2 -2
- package/dist/index.html +7 -8
- package/dist/mf-entry-bootstrap-0.js +2 -2
- package/dist/server/addon.js +11 -25
- package/dist/server/addon.js.map +1 -1
- package/dist/sw.js +1 -1
- package/package.json +4 -3
- package/dist/assets/capability-router-map-Bqwnkkax.js +0 -1
- package/dist/assets/devices-CFL4MLSo.js +0 -511
- package/dist/assets/index-BP0PcGIN.js +0 -1
- package/dist/assets/index-BQVATbZy.js +0 -5
- package/dist/assets/index-BZhZ3Jvf.js +0 -1
- package/dist/assets/index-BfdtdylV.js +0 -533
- package/dist/assets/index-BkJ1uzOh.js +0 -8420
- package/dist/assets/index-BuajxCgS.js +0 -1
- package/dist/assets/index-CKMQgnc3.js +0 -1
- package/dist/assets/index-DAq7g5_U.js +0 -1
- package/dist/assets/index-DRebE_bu.js +0 -22
- package/dist/assets/index-DUjRaULz.js +0 -1
- package/dist/assets/index-OcuNiGT5.js +0 -34
- package/dist/assets/index-R6tzT59K.css +0 -1
- package/dist/assets/index-pmj5N6Ix.js +0 -5
- package/dist/server/addon.d.ts +0 -12
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as _e,c as x,F as be,s as ve}from"./__mfe_internal__admin_ui_host__loadShare___mf_0_trpc_mf_1_client__loadShare__.mjs-DIkg6-MH.js";import{b as V,d as Ee}from"./auth-records-BEfan3dC.js";import"./schemas-XgIEoUz3.js";class Pe{constructor(){this.keyToValue=new Map,this.valueToKey=new Map}set(t,r){this.keyToValue.set(t,r),this.valueToKey.set(r,t)}getByKey(t){return this.keyToValue.get(t)}getByValue(t){return this.valueToKey.get(t)}clear(){this.keyToValue.clear(),this.valueToKey.clear()}}class q{constructor(t){this.generateIdentifier=t,this.kv=new Pe}register(t,r){this.kv.getByValue(t)||(r||(r=this.generateIdentifier(t)),this.kv.set(r,t))}clear(){this.kv.clear()}getIdentifier(t){return this.kv.getByValue(t)}getValue(t){return this.kv.getByKey(t)}}class Ce extends q{constructor(){super(t=>t.name),this.classToAllowedProps=new Map}register(t,r){typeof r=="object"?(r.allowProps&&this.classToAllowedProps.set(t,r.allowProps),super.register(t,r.identifier)):super.register(t,r)}getAllowedProps(t){return this.classToAllowedProps.get(t)}}function Se(e){if("values"in Object)return Object.values(e);const t=[];for(const r in e)e.hasOwnProperty(r)&&t.push(e[r]);return t}function ke(e,t){const r=Se(e);if("find"in r)return r.find(t);const s=r;for(let n=0;n<s.length;n++){const i=s[n];if(t(i))return i}}function v(e,t){Object.entries(e).forEach(([r,s])=>t(s,r))}function k(e,t){return e.indexOf(t)!==-1}function B(e,t){for(let r=0;r<e.length;r++){const s=e[r];if(t(s))return s}}class Re{constructor(){this.transfomers={}}register(t){this.transfomers[t.name]=t}findApplicable(t){return ke(this.transfomers,r=>r.isApplicable(t))}findByName(t){return this.transfomers[t]}}const Ie=e=>Object.prototype.toString.call(e).slice(8,-1),W=e=>typeof e>"u",Te=e=>e===null,P=e=>typeof e!="object"||e===null||e===Object.prototype?!1:Object.getPrototypeOf(e)===null?!0:Object.getPrototypeOf(e)===Object.prototype,T=e=>P(e)&&Object.keys(e).length===0,g=e=>Array.isArray(e),Ae=e=>typeof e=="string",Me=e=>typeof e=="number"&&!isNaN(e),Oe=e=>typeof e=="boolean",De=e=>e instanceof RegExp,C=e=>e instanceof Map,S=e=>e instanceof Set,K=e=>Ie(e)==="Symbol",Le=e=>e instanceof Date&&!isNaN(e.valueOf()),Y=e=>e instanceof Error,U=e=>typeof e=="number"&&isNaN(e),Ne=e=>Oe(e)||Te(e)||W(e)||Me(e)||Ae(e)||K(e),xe=e=>typeof e=="bigint",Ve=e=>e===1/0||e===-1/0,Be=e=>ArrayBuffer.isView(e)&&!(e instanceof DataView),Ue=e=>e instanceof URL,A=e=>e.replace(/\\/g,"\\\\").replace(/\./g,"\\."),I=e=>e.map(String).map(A).join("."),E=(e,t)=>{const r=[];let s="";for(let i=0;i<e.length;i++){let o=e.charAt(i);if(!t&&o==="\\"){const f=e.charAt(i+1);if(f==="\\"){s+="\\",i++;continue}else if(f!==".")throw Error("invalid path")}if(o==="\\"&&e.charAt(i+1)==="."){s+=".",i++;continue}if(o==="."){r.push(s),s="";continue}s+=o}const n=s;return r.push(n),r};function y(e,t,r,s){return{isApplicable:e,annotation:t,transform:r,untransform:s}}const G=[y(W,"undefined",()=>null,()=>{}),y(xe,"bigint",e=>e.toString(),e=>typeof BigInt<"u"?BigInt(e):(console.error("Please add a BigInt polyfill."),e)),y(Le,"Date",e=>e.toISOString(),e=>new Date(e)),y(Y,"Error",(e,t)=>{const r={name:e.name,message:e.message};return"cause"in e&&(r.cause=e.cause),t.allowedErrorProps.forEach(s=>{r[s]=e[s]}),r},(e,t)=>{const r=new Error(e.message,{cause:e.cause});return r.name=e.name,r.stack=e.stack,t.allowedErrorProps.forEach(s=>{r[s]=e[s]}),r}),y(De,"regexp",e=>""+e,e=>{const t=e.slice(1,e.lastIndexOf("/")),r=e.slice(e.lastIndexOf("/")+1);return new RegExp(t,r)}),y(S,"set",e=>[...e.values()],e=>new Set(e)),y(C,"map",e=>[...e.entries()],e=>new Map(e)),y(e=>U(e)||Ve(e),"number",e=>U(e)?"NaN":e>0?"Infinity":"-Infinity",Number),y(e=>e===0&&1/e===-1/0,"number",()=>"-0",Number),y(Ue,"URL",e=>e.toString(),e=>new URL(e))];function R(e,t,r,s){return{isApplicable:e,annotation:t,transform:r,untransform:s}}const H=R((e,t)=>K(e)?!!t.symbolRegistry.getIdentifier(e):!1,(e,t)=>["symbol",t.symbolRegistry.getIdentifier(e)],e=>e.description,(e,t,r)=>{const s=r.symbolRegistry.getValue(t[1]);if(!s)throw new Error("Trying to deserialize unknown symbol");return s}),ze=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,Uint8ClampedArray].reduce((e,t)=>(e[t.name]=t,e),{}),X=R(Be,e=>["typed-array",e.constructor.name],e=>[...e],(e,t)=>{const r=ze[t[1]];if(!r)throw new Error("Trying to deserialize unknown typed array");return new r(e)});function Z(e,t){return e?.constructor?!!t.classRegistry.getIdentifier(e.constructor):!1}const Q=R(Z,(e,t)=>["class",t.classRegistry.getIdentifier(e.constructor)],(e,t)=>{const r=t.classRegistry.getAllowedProps(e.constructor);if(!r)return{...e};const s={};return r.forEach(n=>{s[n]=e[n]}),s},(e,t,r)=>{const s=r.classRegistry.getValue(t[1]);if(!s)throw new Error(`Trying to deserialize unknown class '${t[1]}' - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564`);return Object.assign(Object.create(s.prototype),e)}),j=R((e,t)=>!!t.customTransformerRegistry.findApplicable(e),(e,t)=>["custom",t.customTransformerRegistry.findApplicable(e).name],(e,t)=>t.customTransformerRegistry.findApplicable(e).serialize(e),(e,t,r)=>{const s=r.customTransformerRegistry.findByName(t[1]);if(!s)throw new Error("Trying to deserialize unknown custom value");return s.deserialize(e)}),Fe=[Q,H,j,X],z=(e,t)=>{const r=B(Fe,n=>n.isApplicable(e,t));if(r)return{value:r.transform(e,t),type:r.annotation(e,t)};const s=B(G,n=>n.isApplicable(e,t));if(s)return{value:s.transform(e,t),type:s.annotation}},J={};G.forEach(e=>{J[e.annotation]=e});const $e=(e,t,r)=>{if(g(t))switch(t[0]){case"symbol":return H.untransform(e,t,r);case"class":return Q.untransform(e,t,r);case"custom":return j.untransform(e,t,r);case"typed-array":return X.untransform(e,t,r);default:throw new Error("Unknown transformation: "+t)}else{const s=J[t];if(!s)throw new Error("Unknown transformation: "+t);return s.untransform(e,r)}},b=(e,t)=>{if(t>e.size)throw new Error("index out of bounds");const r=e.keys();for(;t>0;)r.next(),t--;return r.next().value};function ee(e){if(k(e,"__proto__"))throw new Error("__proto__ is not allowed as a property");if(k(e,"prototype"))throw new Error("prototype is not allowed as a property");if(k(e,"constructor"))throw new Error("constructor is not allowed as a property")}const qe=(e,t)=>{ee(t);for(let r=0;r<t.length;r++){const s=t[r];if(S(e))e=b(e,+s);else if(C(e)){const n=+s,i=+t[++r]==0?"key":"value",o=b(e,n);switch(i){case"key":e=o;break;case"value":e=e.get(o);break}}else e=e[s]}return e},M=(e,t,r)=>{if(ee(t),t.length===0)return r(e);let s=e;for(let i=0;i<t.length-1;i++){const o=t[i];if(g(s)){const a=+o;s=s[a]}else if(P(s))s=s[o];else if(S(s)){const a=+o;s=b(s,a)}else if(C(s)){if(i===t.length-2)break;const c=+o,f=+t[++i]==0?"key":"value",h=b(s,c);switch(f){case"key":s=h;break;case"value":s=s.get(h);break}}}const n=t[t.length-1];if(g(s)?s[+n]=r(s[+n]):P(s)&&(s[n]=r(s[n])),S(s)){const i=b(s,+n),o=r(i);i!==o&&(s.delete(i),s.add(o))}if(C(s)){const i=+t[t.length-2],o=b(s,i);switch(+n==0?"key":"value"){case"key":{const c=r(o);s.set(c,s.get(o)),c!==o&&s.delete(o);break}case"value":{s.set(o,r(s.get(o)));break}}}return e},te=e=>e<1;function O(e,t,r,s=[]){if(!e)return;const n=te(r);if(!g(e)){v(e,(a,c)=>O(a,t,r,[...s,...E(c,n)]));return}const[i,o]=e;o&&v(o,(a,c)=>{O(a,t,r,[...s,...E(c,n)])}),t(i,s)}function We(e,t,r,s){return O(t,(n,i)=>{e=M(e,i,o=>$e(o,n,s))},r),e}function Ke(e,t,r){const s=te(r);function n(i,o){const a=qe(e,E(o,s));i.map(c=>E(c,s)).forEach(c=>{e=M(e,c,()=>a)})}if(g(t)){const[i,o]=t;i.forEach(a=>{e=M(e,E(a,s),()=>e)}),o&&v(o,n)}else v(t,n);return e}const Ye=(e,t)=>P(e)||g(e)||C(e)||S(e)||Y(e)||Z(e,t);function Ge(e,t,r){const s=r.get(e);s?s.push(t):r.set(e,[t])}function He(e,t){const r={};let s;return e.forEach(n=>{if(n.length<=1)return;t||(n=n.map(a=>a.map(String)).sort((a,c)=>a.length-c.length));const[i,...o]=n;i.length===0?s=o.map(I):r[I(i)]=o.map(I)}),s?T(r)?[s]:[s,r]:T(r)?void 0:r}const re=(e,t,r,s,n=[],i=[],o=new Map)=>{const a=Ne(e);if(!a){Ge(e,n,t);const u=o.get(e);if(u)return s?{transformedValue:null}:u}if(!Ye(e,r)){const u=z(e,r),m=u?{transformedValue:u.value,annotations:[u.type]}:{transformedValue:e};return a||o.set(e,m),m}if(k(i,e))return{transformedValue:null};const c=z(e,r),f=c?.value??e,h=g(f)?[]:{},p={};v(f,(u,m)=>{if(m==="__proto__"||m==="constructor"||m==="prototype")throw new Error(`Detected property ${m}. This is a prototype pollution risk, please remove it from your object.`);const _=re(u,t,r,s,[...n,m],[...i,e],o);h[m]=_.transformedValue,g(_.annotations)?p[A(m)]=_.annotations:P(_.annotations)&&v(_.annotations,(w,we)=>{p[A(m)+"."+we]=w})});const d=T(p)?{transformedValue:h,annotations:c?[c.type]:void 0}:{transformedValue:h,annotations:c?[c.type,p]:p};return a||o.set(e,d),d};function se(e){return Object.prototype.toString.call(e).slice(8,-1)}function F(e){return se(e)==="Array"}function Xe(e){if(se(e)!=="Object")return!1;const t=Object.getPrototypeOf(e);return!!t&&t.constructor===Object&&t===Object.prototype}function Ze(e,t,r,s,n){const i={}.propertyIsEnumerable.call(s,t)?"enumerable":"nonenumerable";i==="enumerable"&&(e[t]=r),n&&i==="nonenumerable"&&Object.defineProperty(e,t,{value:r,enumerable:!1,writable:!0,configurable:!0})}function D(e,t={}){if(F(e))return e.map(n=>D(n,t));if(!Xe(e))return e;const r=Object.getOwnPropertyNames(e),s=Object.getOwnPropertySymbols(e);return[...r,...s].reduce((n,i)=>{if(i==="__proto__"||F(t.props)&&!t.props.includes(i))return n;const o=e[i],a=D(o,t);return Ze(n,i,a,e,t.nonenumerable),n},{})}class l{constructor({dedupe:t=!1}={}){this.classRegistry=new Ce,this.symbolRegistry=new q(r=>r.description??""),this.customTransformerRegistry=new Re,this.allowedErrorProps=[],this.dedupe=t}serialize(t){const r=new Map,s=re(t,r,this,this.dedupe),n={json:s.transformedValue};s.annotations&&(n.meta={...n.meta,values:s.annotations});const i=He(r,this.dedupe);return i&&(n.meta={...n.meta,referentialEqualities:i}),n.meta&&(n.meta.v=1),n}deserialize(t,r){const{json:s,meta:n}=t;let i=r?.inPlace?s:D(s);return n?.values&&(i=We(i,n.values,n.v??0,this)),n?.referentialEqualities&&(i=Ke(i,n.referentialEqualities,n.v??0)),i}stringify(t){return JSON.stringify(this.serialize(t))}parse(t){return this.deserialize(JSON.parse(t),{inPlace:!0})}registerClass(t,r){this.classRegistry.register(t,r)}registerSymbol(t,r){this.symbolRegistry.register(t,r)}registerCustom(t,r){this.customTransformerRegistry.register({name:r,...t})}allowErrorProps(...t){this.allowedErrorProps.push(...t)}}l.defaultInstance=new l;l.serialize=l.defaultInstance.serialize.bind(l.defaultInstance);l.deserialize=l.defaultInstance.deserialize.bind(l.defaultInstance);l.stringify=l.defaultInstance.stringify.bind(l.defaultInstance);l.parse=l.defaultInstance.parse.bind(l.defaultInstance);l.registerClass=l.defaultInstance.registerClass.bind(l.defaultInstance);l.registerSymbol=l.defaultInstance.registerSymbol.bind(l.defaultInstance);l.registerCustom=l.defaultInstance.registerCustom.bind(l.defaultInstance);l.allowErrorProps=l.defaultInstance.allowErrorProps.bind(l.defaultInstance);l.serialize;l.deserialize;l.stringify;l.parse;l.registerClass;l.registerCustom;l.registerSymbol;l.allowErrorProps;const Qe=1e4,je=3e3,Je=2e3,et=3e4;class tt{_serverUrl;useWs;baseRetryMs;maxRetryMs;onConnectionChange;token;_trpcClient;_wsClient=null;mirror=null;mirrorInit=null;connected=!1;connectedPromise=null;_systemProxy;_connectionVersion=0;connectionListeners=new Set;constructor(t){this._serverUrl=t.serverUrl.replace(/\/+$/,""),this.token=t.token;const r=typeof window<"u";this.useWs=t.useWebSocket??r,this.onConnectionChange=t.onConnectionChange,this.baseRetryMs=t.retryDelayMs??Je,this.maxRetryMs=t.maxRetryDelayMs??et,this._trpcClient=this.buildTrpcClient(),this._systemProxy=V(this._trpcClient)}get serverUrl(){return this._serverUrl}get connectionVersion(){return this._connectionVersion}subscribeConnectionEvents(t){return this.connectionListeners.add(t),()=>{this.connectionListeners.delete(t)}}emitConnectionEvent(t){try{this.onConnectionChange?.(t)}catch{}for(const r of this.connectionListeners)try{r(t,this._connectionVersion)}catch{}}async awaitConnected(t){if(this.connected)return;if(this.connectedPromise)return this.connectedPromise;const r=t??15e3;this.connectedPromise=(async()=>{const s=this._trpcClient.auth.me.query();Number.isFinite(r)?await new Promise((n,i)=>{const o=setTimeout(()=>i(new Error(`System.awaitConnected: probe timed out after ${r}ms`)),r);s.then(()=>{clearTimeout(o),n()},a=>{clearTimeout(o),i(a instanceof Error?a:new Error(String(a)))})}):await s,this.connected=!0})();try{await this.connectedPromise}finally{this.connectedPromise=null}}async init(t){if(this.mirror?.isReady())return;if(this.mirrorInit)return this.mirrorInit;const r=new Ee(this._trpcClient);return this.mirror=r,this.mirrorInit=(async()=>{await this.awaitConnected(t),await r.init(t)})().finally(()=>{this.mirrorInit=null}),this.mirrorInit}async awaitReady(){if(!this.mirror?.isReady())return this.mirrorInit?this.mirrorInit:this.init()}isReady(){return this.mirror?.isReady()??!1}isConnected(){return this.connected}reconnect(){this.useWs&&(this.emitConnectionEvent("connecting"),this._wsClient?.close(),this.disposeMirror(),this.connected=!1,this.connectedPromise=null,this._trpcClient=this.buildTrpcClient(),this._systemProxy=V(this._trpcClient))}switchServerUrl(t){const r=t.replace(/\/+$/,"");r!==this._serverUrl&&(this._serverUrl=r,this.reconnect())}async raceConnectionEndpoints(t){const r=t?.perCandidateTimeoutMs??1500,s=(()=>{try{return new URL(this._serverUrl)}catch{return null}})(),n=s?.port?Number(s.port):s?.protocol==="https:"?443:80,i=s?.protocol==="https:"?"https":"http",a=this._trpcClient.localNetwork?.getConnectionEndpoints;if(!a)return{winner:this._serverUrl,switched:!1};let c;try{c=(await a.query({port:n,ipv4Only:t?.ipv4Only,scheme:i})).endpoints}catch{return{winner:this._serverUrl,switched:!1}}if(c.length===0)return{winner:this._serverUrl,switched:!1};const f=await rt(c.map(h=>h.baseUrl),r);return!f||f===this._serverUrl?{winner:f??this._serverUrl,switched:!1}:(this.switchServerUrl(f),{winner:f,switched:!0})}close(){this.disposeMirror(),this.connected=!1,this.connectedPromise=null,this._wsClient?.close()}disposeMirror(){this.mirror?.dispose(),this.mirror=null,this.mirrorInit=null}async login(t,r){const s=await this._trpcClient.auth.login.mutate({username:t,password:r});if(typeof s=="object"&&s!==null&&"token"in s){const n=s.token;typeof n=="string"&&this.setToken(n)}return s}async logout(){await this._trpcClient.auth.logout.mutate()}async getMe(){return await this._trpcClient.auth.me.query()}setToken(t){this.token=t}listDevices(t){return this.mirror?(t?this.mirror.query(t):this.mirror.getAllDevices()).map(s=>this.attachBinding(s)):[]}getDevice(t){const r=this.mirror?.getDeviceById(t)??null;return r?this.attachBinding(r):null}getDeviceByName(t){const r=this.mirror?.getDeviceByName(t)??null;return r?this.attachBinding(r):null}getDeviceByStableId(t){const r=this.mirror?.getDeviceByStableId(t)??null;return r?this.attachBinding(r):null}async waitForDevice(t,r){this.mirror||await this.init();const s=await this.mirror.waitForDevice(t,r??3e4);return this.attachBinding(s)}onDeviceAdded(t){if(!this.mirror)throw new Error("System.onDeviceAdded: call init() before subscribing");return this.mirror.onDeviceAdded(t)}onDeviceRemoved(t){if(!this.mirror)throw new Error("System.onDeviceRemoved: call init() before subscribing");return this.mirror.onDeviceRemoved(t)}attachBinding(t){const r=this.lookupBinding(t.deviceId);if(r===t.binding)return t;const s=t;return s.binding=r,t}lookupBinding(t){return this.mirror?this.mirror.getDeviceById(t)?.binding??null:null}get addonPages(){return this._systemProxy.addonPages}get addonSettings(){return this._systemProxy.addonSettings}get alerts(){return this._systemProxy.alerts}get audioAnalyzer(){return this._systemProxy.audioAnalyzer}get audioCodec(){return this._systemProxy.audioCodec}get backup(){return this._systemProxy.backup}get decoder(){return this._systemProxy.decoder}get deviceManager(){return this._systemProxy.deviceManager}get deviceProvider(){return this._systemProxy.deviceProvider}get deviceState(){return this._systemProxy.deviceState}get metricsProvider(){return this._systemProxy.metricsProvider}get notificationOutput(){return this._systemProxy.notificationOutput}get pipelineExecutor(){return this._systemProxy.pipelineExecutor}get pipelineOrchestrator(){return this._systemProxy.pipelineOrchestrator}get pipelineRunner(){return this._systemProxy.pipelineRunner}get platformProbe(){return this._systemProxy.platformProbe}get recordingEngine(){return this._systemProxy.recordingEngine}get settingsStore(){return this._systemProxy.settingsStore}get storage(){return this._systemProxy.storage}get streamBroker(){return this._systemProxy.streamBroker}get turnProvider(){return this._systemProxy.turnProvider}get userManagement(){return this._systemProxy.userManagement}subscribeEvent(t,r){const s=this._trpcClient.live.onEvent.subscribe({category:t},{onData:n=>{try{r(n)}catch{}}});return()=>{try{s.unsubscribe()}catch{}}}get trpcClient(){return this._trpcClient}get wsClient(){return this._wsClient}buildTrpcClient(){const t=()=>{const r={};return this.token&&(r.Authorization=`Bearer ${this.token}`),r};if(this.useWs){const r=this._serverUrl.replace(/^http/,"ws")+"/trpc",s=this.baseRetryMs,n=this.maxRetryMs;return this._wsClient=_e({url:r,connectionParams:()=>({token:this.token}),retryDelayMs:i=>Math.min(s*Math.pow(2,i),n),keepAlive:{enabled:!0,intervalMs:Qe,pongTimeoutMs:je},onOpen:()=>{this._connectionVersion+=1,this.emitConnectionEvent("connected")},onClose:()=>{this.emitConnectionEvent("disconnected")}}),x({links:[be({client:this._wsClient,transformer:l})]})}return this._wsClient=null,x({links:[ve({url:`${this._serverUrl}/trpc`,headers:t,transformer:l})]})}}function mt(e){return new tt(e)}async function rt(e,t){if(e.length===0)return null;if(typeof fetch!="function")return e[0]??null;const s=typeof window<"u"&&typeof window.location<"u"&&window.location.protocol==="https:"?e.filter(o=>o.toLowerCase().startsWith("https://")):e;if(s.length===0)return null;const n=s.map(()=>new AbortController),i=s.map(async(o,a)=>{const c=n[a],f=setTimeout(()=>c.abort(),t);try{const h=await fetch(`${o.replace(/\/+$/,"")}/trpc/health`,{method:"GET",signal:c.signal,credentials:"omit"});if(!h.ok)throw new Error(`${h.status}`);return o}finally{clearTimeout(f)}});try{const o=await Promise.any(i);for(const a of n)try{a.abort()}catch{}return o}catch{return null}}var ne=(e=>(e.Motion="motion",e.Person="person",e.Vehicle="vehicle",e.Animal="animal",e.Audio="audio",e.Face="face",e.Plate="plate",e.Package="package",e.Doorbell="doorbell",e.Sensor="sensor",e))(ne||{});const ie=["animal","dog_cat","dog","cat","horse","sheep","cow","elephant","bear","zebra","giraffe","mouse","rabbit","deer","lion","tiger","bird","eagle","owl","pigeon","fish","whale","dolphin","snake","turtle","lizard"],oe=["person","people","pedestrian","rider","driver","cyclist","skier","skateboarder","face","hand","head","body"],ae=["vehicle","car","truck","bus","motorcycle","bicycle","van","ambulance","police_car","fire_truck","train","subway","tram","airplane","boat","ship","helicopter"],le=["face","eyes","nose","mouth","ears","eyebrows","left_eye","right_eye","pupil","iris","eyelid","eye_corner","upper_lip","lower_lip","teeth","chin","cheek","forehead","jaw","glasses","sunglasses","facial_hair","beard","mustache","facial_landmark","facial_keypoint"],ce=["plate","license_plate","front_plate","rear_plate","motorcycle_plate","temporary_plate","dealer_plate","licensePlate","plate_number","plate_character","plate_digit","plate_letter","plate_symbol","plate_region","plate_country_identifier","plate_frame","plate_bolt","plate_sticker","plate_validation_tag","damaged_plate","obscured_plate","dirty_plate"],ue=["motion","movement","other"],de=["package","packet"],fe=["audio"],me=["speech","scream","babbling","yell","bellow","whoop","whispering","laughter","snicker","crying","cry","sigh","singing","choir","chant","mantra","child_singing","rapping","humming","groan","grunt","whistling","breathing","wheeze","snoring","gasp","pant","snort","cough","throat_clearing","sneeze","sniff","cheering","applause","chatter","crowd","children_playing","bark","yip","howl","bow-wow","growling","whimper_dog","purr","meow","hiss","caterwaul","pets","livestock","doorbell","ding-dong","door","slam","knock","alarm","telephone","music","dog","dogs"],he=["doorbell","ring"],pe=["lock","binary","flood","entry","door","leak","door_open","flooded","entry_open"],ye={...ie.reduce((e,t)=>({...e,[t]:"animal"}),{}),...oe.reduce((e,t)=>({...e,[t]:"person"}),{}),...ae.reduce((e,t)=>({...e,[t]:"vehicle"}),{}),...ue.reduce((e,t)=>({...e,[t]:"motion"}),{}),...de.reduce((e,t)=>({...e,[t]:"package"}),{}),...le.reduce((e,t)=>({...e,[t]:"face"}),{}),...ce.reduce((e,t)=>({...e,[t]:"plate"}),{}),...fe.reduce((e,t)=>({...e,[t]:"audio"}),{}),...me.reduce((e,t)=>({...e,[t]:"audio"}),{}),...he.reduce((e,t)=>({...e,[t]:"doorbell"}),{}),...pe.reduce((e,t)=>({...e,[t]:"sensor"}),{})},st=e=>le.includes(e),nt=e=>ce.includes(e),ht=e=>ie.includes(e),pt=e=>oe.includes(e),yt=e=>ae.includes(e),gt=e=>ue.includes(e),wt=e=>he.includes(e),_t=e=>de.includes(e),bt=e=>fe.includes(e)||me.includes(e),vt=e=>pe.includes(e),Et=e=>st(e)||nt(e),Pt=e=>ye[e],Ct=e=>{const{className:t}=e,r={face:"person",plate:"vehicle"},s=ye[t];return s&&s!==t?s:r[t]},it=Object.values(ne),L=it.filter(e=>e!=="motion"),ge=["person","doorbell","package"],ot=[...ge,"vehicle","animal","audio","face","plate"],at=[...L];function St(e,t){switch(e){case"critical":return ge;case"important":return ot;case"all":return at;case"custom":return t?.length?t:L;default:return L}}const $={Light:"light",Switch:"switch",WindowCovering:"cover",Lock:"lock",SecuritySystem:"alarm",Buttons:"button",Select:"select",Siren:"siren",Sensor:"sensor",Entry:"entry",Program:"script",MediaPlayer:"media_player",Outlet:"switch",light:"light",switch:"switch",input_boolean:"switch",cover:"cover",lock:"lock",alarm_control_panel:"alarm",input_button:"button",button:"button",input_select:"select",select:"select",siren:"siren",sensor:"sensor",media_player:"media_player",script:"script"},kt={light:"light",switch:"switch",input_boolean:"switch",cover:"cover",lock:"lock",alarm_control_panel:"alarm",input_button:"button",button:"button",input_select:"select",select:"select",siren:"siren",sensor:"sensor",binary_sensor:"sensor",media_player:"media_player",script:"script",climate:"climate",camera:"camera",fan:"fan",vacuum:"vacuum",automation:"automation",scene:"scene",input_number:"sensor",person:"person",device_tracker:"tracker",weather:"weather",water_heater:"climate"},Rt={Light:"light",Switch:"switch",WindowCovering:"cover",Lock:"lock",SecuritySystem:"alarm",Buttons:"button",Select:"select",Siren:"siren",Sensor:"sensor",Entry:"entry",Program:"script",MediaPlayer:"media_player",Camera:"camera",Doorbell:"doorbell",Fan:"fan",Outlet:"switch"};function It(e){const t=$[e];if(t)return t;const r=e.toLowerCase();return $[r]??null}const lt=["Entry","Light","Switch","Lock","SecuritySystem","Buttons","WindowCovering","Siren","Sensor","Select","Program"],Tt=new Set(lt),ct=["light","switch","input_boolean","cover","lock","alarm_control_panel","input_button","button","input_select","select","siren","media_player","script"],At=new Set(ct),N=[{id:"liveStream",label:"Live Stream",sources:{frigate:!0,scrypted:!0,rtsp:!0},adapterMethod:"getLiveStream"},{id:"multiResolution",label:"Multi-Resolution",sources:{frigate:!0,scrypted:!0,rtsp:!1},adapterMethod:"getResolutions"},{id:"motion",label:"Motion Detection",sources:{frigate:!1,scrypted:!0,rtsp:!1},adapterMethod:"getMotion"},{id:"objectDetection",label:"Object Detection",sources:{frigate:!1,scrypted:!0,rtsp:!1},adapterMethod:"getObjectDetections"},{id:"audioVolume",label:"Audio Level",sources:{frigate:!1,scrypted:!0,rtsp:!1},adapterMethod:"getAudioVolume"},{id:"audioVolumes",label:"Audio Volumes (dBFS)",sources:{frigate:!1,scrypted:!0,rtsp:!1},adapterMethod:"getAudioVolumes"},{id:"ptz",label:"PTZ Control",sources:{frigate:!1,scrypted:!0,rtsp:!1},adapterMethod:"getPTZ"},{id:"intercom",label:"Intercom (Mic)",sources:{frigate:!1,scrypted:!0,rtsp:!1},adapterMethod:"getIntercomSupport"},{id:"deviceStatus",label:"Device Status",sources:{frigate:!1,scrypted:!0,rtsp:!1},adapterMethod:"getStatus"},{id:"timeline",label:"Detection Timeline",sources:{frigate:!0,scrypted:!0,rtsp:!1},adapterMethod:"getCameraDayData"},{id:"clusteredTimeline",label:"Clustered Timeline",sources:{frigate:!0,scrypted:!0,rtsp:!1},requiresBackend:!0,adapterMethod:"getClusteredDayData"},{id:"detectionClasses",label:"Detection Classes",sources:{frigate:!0,scrypted:!0,rtsp:!1},adapterMethod:"getDetectionClasses"},{id:"videoClips",label:"Video Clips",sources:{frigate:!0,scrypted:!0,rtsp:!1},adapterMethod:"getVideoClips"},{id:"nvrPlayback",label:"NVR Playback",sources:{frigate:!0,scrypted:!0,rtsp:!1},adapterMethod:"getNvrPlaybackSupported"},{id:"nvrScrub",label:"NVR Scrub/Seek",sources:{frigate:!1,scrypted:!0,rtsp:!1},adapterMethod:"seekRecordingStream"},{id:"recordingThumbnail",label:"Recording Thumbnails",sources:{frigate:!0,scrypted:!0,rtsp:!1},adapterMethod:"getRecordingStreamThumbnail"},{id:"nvrSeekToLive",label:"Seek to Live",sources:{frigate:!1,scrypted:!0,rtsp:!1},adapterMethod:"seekNvrToLive"}];function Mt(e,t,r){const s=N.find(n=>n.id===e);return!(!s||!s.sources[t]||s.platforms&&s.platforms[r]===!1)}function Ot(e){return N.filter(t=>t.sources[e])}function Dt(){return N.filter(e=>e.requiresBackend)}function Lt(e,t,r){if(e.length===0)return null;const s=t.viewportWidth*t.viewportHeight*(t.pixelRatio??1),n=t.bandwidthMbps??100,i=t.packetLoss??0,o=t.rttMs??50;let a="high";t.maxResolution==="low"||t.isCellular||n<1||i>.05?a="low":t.maxResolution==="medium"||n<5||s<5e5||o>200?a="medium":(t.maxResolution==="high"||s>2e6)&&(a="high");const c={main:"high",sub:"medium",ext:"low"},f=r??"native",h=e.map(d=>{let u=0;const m=c[d.profile]??"medium";if(m===a?u+=100:(a==="high"&&m==="medium"||a==="medium"&&m==="high"||a==="medium"&&m==="low"||a==="low"&&m==="medium")&&(u+=50),d.transport===f?u+=30:d.transport==="native"?u+=20:d.transport==="rtsp"?u+=15:d.transport==="rtmp"&&(u+=10),d.metadata?.width&&d.metadata?.height){const w=d.metadata.width*d.metadata.height/Math.max(s,1);w>=.8&&w<=2?u+=25:w>=.5&&w<=3&&(u+=15),w>4&&n<10&&(u-=20)}return d.metadata?.codec&&(n<5&&d.metadata.codec.includes("265")&&(u+=10),n>=10&&d.metadata.codec.includes("264")&&(u+=5)),{...d,score:u,targetTier:a}});h.sort((d,u)=>u.score-d.score);const p=h[0];return{streamName:p.streamName,profile:p.profile,transport:p.transport,label:p.label,metadata:p.metadata,reason:`${p.targetTier} quality → ${p.profile}/${p.transport} (score: ${p.score})`}}function Nt(e,t){return t?10:e.isCellular||(e.packetLoss??0)>.02?15:30}export{L as DEFAULT_ENABLED_CLASSES,ne as DetectionClass,ct as ELIGIBLE_HA_DOMAINS,At as ELIGIBLE_HA_DOMAINS_SET,lt as ELIGIBLE_SCRYPTED_DEVICE_TYPES,Tt as ELIGIBLE_SCRYPTED_DEVICE_TYPES_SET,N as FEATURE_MATRIX,kt as HA_DOMAIN_TYPE_MAP,$ as RAW_TO_CANONICAL,Rt as SCRYPTED_TYPE_TO_CANONICAL,tt as System,at as TIMELINE_PRESET_ALL,ge as TIMELINE_PRESET_CRITICAL,ot as TIMELINE_PRESET_IMPORTANT,ie as animalClasses,fe as audioClasses,me as audioLabelClasses,mt as createSystem,it as defaultDetectionClasses,ye as detectionClassesDefaultMap,he as doorbellClasses,le as faceClasses,Dt as getBackendRequiredFeatures,It as getCanonicalDeviceType,St as getClassesForTimelinePreset,Nt as getNextEvalInterval,Pt as getParentClass,Ct as getParentDetectionClass,Ot as getSourceFeatures,ht as isAnimalClassname,bt as isAudioClassname,wt as isDoorbellClassname,st as isFaceClassname,Mt as isFeatureAvailable,Et as isLabelDetection,gt as isMotionClassname,_t as isPackageClassname,pt as isPersonClassname,nt as isPlateClassname,vt as isSensorLabelClassname,yt as isVehicleClassname,ce as licensePlateClasses,ue as motionClasses,de as packageClasses,oe as personClasses,rt as raceFastestEndpoint,Lt as selectOptimalStream,pe as sensorLabelClasses,ae as vehicleClasses};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as r}from"./index-DfH297U6.js";import{b as e}from"./__mfe_internal__admin_ui_host__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.mjs-C_6K4VBY.js";const o=e(r);export{o as r};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var Ge=(r,i)=>()=>(i||r((i={exports:{}}).exports,i),i.exports);var fi=Ge(n=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});const a=require("./auth-records-D5ZNaUos.js"),v=require("zod");class Ke{disposers=[];disposed=!1;onError;constructor(i={}){this.onError=i.onError??((e,o)=>{console.error(`[DisposerChain] disposer #${o} threw`,e)})}add(i){if(this.disposed){try{const e=i();e&&typeof e.then=="function"&&e.catch(o=>this.onError(o,-1))}catch(e){this.onError(e,-1)}return()=>{}}return this.disposers.push(i),()=>{const e=this.disposers.indexOf(i);e>=0&&this.disposers.splice(e,1)}}get isDisposed(){return this.disposed}get size(){return this.disposers.length}async dispose(){if(this.disposed)return;this.disposed=!0;const i=this.disposers.slice().reverse();this.disposers=[];for(let e=0;e<i.length;e++){const o=i[e];try{const c=o();c&&typeof c.then=="function"&&await c}catch(c){this.onError(c,i.length-1-e)}}}}const Ce="main-group",Ae="hub-only";function N(r){return{placement:r.execution?.placement??Ae,group:r.execution?.group??Ce}}function Ze(r){const i=N(r).placement;return i==="any-node"||i==="agent-only"}function Ye(r){return N(r).placement==="agent-only"}function Ve(r){return N(r).group}function Qe(r){return N(r).placement}var _=(r=>(r.SystemBoot="system.boot",r.SystemAddonsReady="system.addons-ready",r.SystemRestarting="system.restarting",r.SystemReadyState="system.ready-state",r.AddonStarted="addon.started",r.AddonStopped="addon.stopped",r.AddonRestarted="addon.restarted",r.AddonUpdated="addon.updated",r.AddonInstalled="addon.installed",r.AddonUninstalled="addon.uninstalled",r.AddonCrashed="addon.crashed",r.AddonError="addon.error",r.AddonPageReady="addon.page-ready",r.AddonWidgetReady="addon.widget-ready",r.AddonLoadFailed="addon.load-failed",r.AddonLoadRecovered="addon.load-recovered",r.AddonRetryScheduled="addon.retry-scheduled",r.AddonRetryAttempting="addon.retry-attempting",r.DeviceRegistered="device.registered",r.DeviceUnregistered="device.unregistered",r.DeviceEnabled="device.enabled",r.DeviceDisabled="device.disabled",r.DeviceSettingsUpdated="device.settings-updated",r.DeviceBindingsChanged="device.bindings-changed",r.DeviceMetaChanged="device.meta-changed",r.DeviceStreamsRegistered="device.streams-registered",r.IntegrationEnabled="integration.enabled",r.IntegrationDisabled="integration.disabled",r.IntegrationDeleted="integration.deleted",r.ProviderStarted="provider.started",r.ProviderStopped="provider.stopped",r.ProcessCrashed="process.crashed",r.ProcessRestartScheduled="process.restart_scheduled",r.ProcessRestarted="process.restarted",r.RecordingStarted="recording.started",r.RecordingStopped="recording.stopped",r.RecordingError="recording.error",r.RecordingHealthDegraded="recording.health.degraded",r.RecordingStorageCritical="recording.storage.critical",r.RecordingSegmentWritten="recording.segment.written",r.RecordingPolicyFallback="recording.policy.fallback",r.RecordingRetentionCompleted="recording.retention.completed",r.DetectionEvent="detection.event",r.SessionTrackNew="session.track.new",r.SessionTrackExpired="session.track.expired",r.BenchmarkProgress="benchmark.progress",r.PlatformProbePhase="platform-probe.phase",r.PipelineProgress="pipeline.progress",r.PipelineTrace="pipeline.trace",r.PipelineInferenceResult="pipeline.inference-result",r.PipelineCameraAssigned="pipeline.camera-assigned",r.PipelineCameraUnassigned="pipeline.camera-unassigned",r.PipelineCameraUpdated="pipeline.camera-updated",r.PipelineRunnerLoadSnapshot="pipeline.runner-load-snapshot",r.PipelineCameraMetricsSnapshot="pipeline.camera-metrics-snapshot",r.StreamBrokerMetricsSnapshot="stream-broker.metrics-snapshot",r.StreamBrokerOnCamStreamDemand="stream-broker.onCamStreamDemand",r.StreamBrokerOnCamStreamIdle="stream-broker.onCamStreamIdle",r.StreamBrokerOnRequestStreamSourceRefresh="stream-broker.onRequestStreamSourceRefresh",r.DeviceStateChanged="device.state-changed",r.BatteryOnStatusChanged="battery.onStatusChanged",r.DoorbellOnPressed="doorbell.onPressed",r.PipelineEngineMetricsSnapshot="pipeline.engine-metrics-snapshot",r.ClusterTopologySnapshot="cluster.topology-snapshot",r.MetricsNodeResourcesSnapshot="metrics.node-resources-snapshot",r.MetricsNodeProcessesSnapshot="metrics.node-processes-snapshot",r.CapabilityBindingChanged="capability.binding-changed",r.ModelDownloadProgress="model.download.progress",r.AgentRegistered="agent.registered",r.AgentUnregistered="agent.unregistered",r.AgentOnline="agent.online",r.AgentOffline="agent.offline",r.WorkerOnline="worker.online",r.WorkerOffline="worker.offline",r.AgentTaskDispatched="agent.task.dispatched",r.AgentTaskAssigned="agent.task.assigned",r.AgentTrpcConnected="agent.trpc.connected",r.AgentWsConnected="agent.ws.connected",r.AgentWsDisconnected="agent.ws.disconnected",r.AgentBackupActivated="agent.backup.activated",r.OrchestrationSettingsUpdated="orchestration.settings-updated",r.PipelineAgentHwaccelChanged="pipeline.agent-hwaccel-changed",r.MotionAnalysis="detection.motion-analysis",r.MotionZonesRaw="detection.motion-zones-raw",r.MotionOnMotionChanged="motion.on-motion-changed",r.DetectionResult="detection.result",r.DetectionRaw="detection.raw",r.DetectionCameraNative="detection.camera-native",r.PipelineAudioInferenceResult="pipeline.audio-inference-result",r.DetectionPhaseTransition="detection.phase-transition",r.ProviderMotion="provider.motion",r.ProviderDetection="provider.detection",r.EnrichmentEmbeddingStored="enrichment.embedding.stored",r.EnrichmentSceneStateChanged="enrichment.scene.state-changed",r.EnrichmentActivitySummary="enrichment.activity.summary",r.PipelineAnalyticsTrackStarted="pipeline-analytics.track-started",r.PipelineAnalyticsTrackEnded="pipeline-analytics.track-ended",r.PipelineAnalyticsDetectionEvent="pipeline-analytics.detection-event",r.PipelineAnalyticsFrameTracked="pipeline-analytics.frame-tracked",r.FrigateLiveEvent="frigate.live-event",r.CameraStreamsProfileSlotsChanged="camera-streams.onProfileSlotsChanged",r.StreamOnline="stream.online",r.StreamOffline="stream.offline",r.NetworkTunnelStarted="network.tunnel.started",r.NetworkTunnelStopped="network.tunnel.stopped",r.LocalNetworkChanged="network.local.changed",r.BackupCompleted="backup.completed",r.BackupRestored="backup.restored",r.NotificationDispatched="notification.dispatched",r.NotificationFailed="notification.failed",r.DeviceUpdated="device.updated",r.DeviceOnline="device.online",r.DeviceOffline="device.offline",r.DeviceAwake="device.awake",r.DeviceSleeping="device.sleeping",r.RetentionCleanup="retention.cleanup",r))(_||{});function Je(r,i){return r.category===i}function Y(r,i,e){return{id:typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).slice(2),timestamp:new Date,source:i,category:r,data:e}}function ke(r,i){const e=i.ts??Date.now();r.emit(Y("system.ready-state",{type:"capability",id:i.capName,nodeId:i.sourceNodeId},{capName:i.capName,scope:i.scope,state:i.state,generation:i.generation,sourceNodeId:i.sourceNodeId,ts:e}))}class Ie{_ctx=null;_config;_readinessGeneration=typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).slice(2,14);_registeredCapNames=[];defaults;constructor(i){this.defaults=i,this._config={...i}}get autoEmitReadiness(){return!0}get ctx(){if(!this._ctx)throw new Error(`${this.constructor.name}: ctx accessed before initialize()`);return this._ctx}get ctxIfReady(){return this._ctx}get config(){return this._config}async initialize(i){this._ctx=i,await this.resolveConfig();const e=await this.onInitialize();this.emitLifecycle(_.AddonStarted);const o=Pe(e),c=o&&"providers"in o&&o.providers?o.providers:[];return this._registeredCapNames=c.map(l=>l.capability.name),o}postBrokerStart(){this.autoEmitReadiness&&this._registeredCapNames.length>0&&this.emitReadinessForProviders("ready")}async onHubReachable(){}async shutdown(){this.emitLifecycle(_.AddonStopped),this.autoEmitReadiness&&this.emitReadinessForProviders("down"),await this.onShutdown();for(const i of this._subscriptions)i();this._subscriptions=[],this._ctx=null}async onShutdown(){}async onConfigChanged(){}field(i){return i}schema(i){return i}globalSettingsSchema(){return null}deviceSettingsSchema(){return null}async getGlobalSettings(i){const e=this.globalSettingsSchema();if(!e)return{sections:[]};const o=await this._ctx?.settings?.readAddonStore()??{};return a.hydrateSchema(e,i?{...o,...i}:o)}async updateGlobalSettings(i){await this._ctx?.settings?.writeAddonStore(i),await this.resolveConfig(),await this.onConfigChanged(),this.emitLifecycle(_.AddonUpdated,{level:"global"}),this.maybeAutoRestart(i,this.globalSettingsSchema())}maybeAutoRestart(i,e){if(!e)return;const o=new Set;for(const d of e.sections)for(const u of d.fields)u.type==="separator"||u.type==="info"||u.requiresRestart&&o.add(u.key);if(o.size===0||!Object.keys(i).some(d=>o.has(d)))return;const l=this._ctx;if(!l)return;const m=l.id;setImmediate(()=>{l.api.addons?.restartAddon?.mutate({addonId:m}).then(()=>{l.logger.info("addon auto-restart triggered by restart-required setting change",{meta:{changedFields:Object.keys(i).filter(u=>o.has(u))}})}).catch(u=>{l.logger.error("addon auto-restart failed",{meta:{error:u instanceof Error?u.message:String(u)}})})})}async getDeviceSettings(i){const e=this.deviceSettingsSchema();if(!e)return{sections:[]};const o=await this._ctx?.settings?.readDeviceStore(i)??{};return a.hydrateSchema(e,o)}async updateDeviceSettings(i,e){await this._ctx?.settings?.writeDeviceStore(i,e)}_subscriptions=[];watchCapability(i,e){const o=Array.isArray(i)?i:[i],c=new Set(o);this.subscribe({category:"system.ready-state"},l=>{const m=l.data;if(typeof m.capName!="string"||!c.has(m.capName)||m.scope?.type!=="node")return;const d=m.scope.nodeId;if(typeof d!="string"||d.length===0)return;const u=m.capName;m.state==="down"?e.onDown?.(d,u):m.state==="ready"&&e.onReady?.(d,u)})}subscribe(i,e){const o=this.ctx.eventBus.subscribe(i,e);this._subscriptions.push(o)}emitLifecycle(i,e){try{this._ctx?.eventBus.emit({id:`${this._ctx.id}-${Date.now()}`,timestamp:new Date,source:{type:"addon",id:this._ctx.id,nodeId:this._ctx.kernel.localNodeId??"hub"},category:i,data:e??{}})}catch{}}emitReadinessForProviders(i){const e=this._ctx;if(!e||this._registeredCapNames.length===0)return;const o=e.kernel?.localNodeId??"hub",c=o.includes("/")?o.split("/")[0]:o;for(const l of this._registeredCapNames)try{ke(e.eventBus,{capName:l,scope:{type:"node",nodeId:c},state:i,generation:this._readinessGeneration,sourceNodeId:c})}catch{}}async resolveModelsDir(){return this.ctx.api.storage.resolve.query({location:"models",relativePath:""}).catch(()=>"camstack-data/models")}get capabilities(){return this.ctx.capabilities??null}async resolveConfig(){const i=await this.readAddonStoreWithRetry(),e={...this.defaults};for(const o of Object.keys(this.defaults)){const c=i[o];if(c!=null){const l=typeof this.defaults[o];typeof c===l&&(e[o]=c)}}this._config=e}async readAddonStoreWithRetry(){const i=this._ctx?.settings;if(!i)return{};const e=[150,350,600,900];let o;for(let c=0;c<=e.length;c++)try{return await i.readAddonStore()??{}}catch(l){o=l;const m=l instanceof Error?l.message:String(l);if(!(m.includes("SqliteSettingsBackend not initialized")||m.includes("provider not available")))throw l;if(c===e.length)break;await new Promise(u=>setTimeout(u,e[c]))}return this._ctx?.logger?.warn?.("readAddonStore: settings-store unavailable after retries — using defaults",{meta:{error:o instanceof Error?o.message:String(o)}}),{}}}function Pe(r){if(r!=null)return Array.isArray(r)?{providers:r}:r}class De extends Error{capName;scope;waitedMs;constructor(i,e,o){super(`Timed out waiting for ${i} (${E(e)}) to become ready after ${o}ms`),this.name="ReadinessTimeoutError",this.capName=i,this.scope=e,this.waitedMs=o}}function W(r,i){return`${r}|${E(i)}`}function E(r){switch(r.type){case"global":return"global";case"node":return`node:${r.nodeId}`;case"device":return`device:${r.deviceId}`}}function G(r,i){return r.type!==i.type?!1:r.type==="global"||i.type==="global"?!0:r.type==="node"&&i.type==="node"?r.nodeId===i.nodeId:r.type==="device"&&i.type==="device"?r.deviceId===i.deviceId:!1}class Xe{bus;sourceNodeId;logger;now;generation;snapshot=new Map;subscriptions=new Set;unsubscribeBus;unsubscribeAgentOffline;constructor(i){if(this.bus=i.eventBus,this.sourceNodeId=i.sourceNodeId,this.logger=i.logger,this.now=i.now??(()=>Date.now()),this.generation=i.generation??et(),this.unsubscribeBus=this.bus.subscribe({category:"system.ready-state"},e=>this.ingest(e.data)),this.unsubscribeAgentOffline=this.bus.subscribe({category:"agent.offline"},e=>this.synthesizeDownForNode(e.data.agentId)),typeof this.bus.getRecent=="function")try{const e=this.bus.getRecent({category:"system.ready-state"});for(const o of e)this.ingest(o.data)}catch{}}close(){this.unsubscribeBus(),this.unsubscribeAgentOffline(),this.subscriptions.clear()}get(i,e){return this.snapshot.get(W(i,e))??null}getSnapshotForTransport(){return Array.from(this.snapshot.values())}hydrate(i){const e=this.now();for(const o of i){const c=W(o.capName,o.scope);if(this.snapshot.has(c))continue;const l={capName:o.capName,scope:o.scope,state:o.state,generation:o.generation,epoch:1,lastChange:e,sourceNodeId:o.sourceNodeId};this.snapshot.set(c,l),this.logger&&this.logger.debug(`readiness: ${o.capName} (${E(o.scope)}) → ${o.state} (hydrated, gen=${o.generation.slice(0,6)})`);const m={capName:o.capName,scope:o.scope,state:o.state,epoch:1,generation:o.generation,sourceNodeId:"hydrated",ts:e,durationInPrevState:0};for(const d of this.subscriptions)if(d.capName===o.capName&&G(d.scope,o.scope))try{d.handler(m)}catch(u){this.logger?.warn(`readiness hydrate handler threw for ${o.capName}: ${u.message??String(u)}`)}}}getAll(){return new Map(this.snapshot)}emitReady(i,e){this.emitTransition(i,e,"ready")}emitStarting(i,e){this.emitTransition(i,e,"starting")}emitDown(i,e){this.emitTransition(i,e,"down")}awaitReady(i,e,o={}){const c=o.timeoutMs??Number.POSITIVE_INFINITY,l=this.now();return this.get(i,e)?.state==="ready"?Promise.resolve():o.signal?.aborted?Promise.reject(o.signal.reason??new Error("aborted")):new Promise((d,u)=>{let p=!1;const h=this.onReadyState(i,e,D=>{D.state==="ready"&&(p||(p=!0,C(),d()))}),S=!Number.isFinite(c)?null:setTimeout(()=>{p||(p=!0,C(),u(new De(i,e,this.now()-l)))},c),y=()=>{p||(p=!0,C(),u(o.signal?.reason??new Error("aborted")))};o.signal?.addEventListener("abort",y,{once:!0});function C(){h(),S!==null&&clearTimeout(S),o.signal?.removeEventListener("abort",y)}})}onReadyState(i,e,o){const c={capName:i,scope:e,handler:o};this.subscriptions.add(c);const l=this.get(i,e);return l!==null&&queueMicrotask(()=>{this.subscriptions.has(c)&&o({capName:i,scope:e,state:l.state,epoch:l.epoch,generation:l.generation,sourceNodeId:this.sourceNodeId,ts:l.lastChange,durationInPrevState:0})}),()=>{this.subscriptions.delete(c)}}emitTransition(i,e,o){const c=this.now();this.bus.emit(Y("system.ready-state",{type:"capability",id:i,nodeId:this.sourceNodeId},{capName:i,scope:e,state:o,generation:this.generation,sourceNodeId:this.sourceNodeId,ts:c}))}ingest(i){if(typeof i?.capName!="string"||i.state!=="ready"&&i.state!=="starting"&&i.state!=="down"||typeof i.generation!="string"||i.scope?.type!=="global"&&i.scope?.type!=="node"&&i.scope?.type!=="device")return;const e=W(i.capName,i.scope),o=this.snapshot.get(e)??null,c=this.now();let l;if(o===null?l=i.state==="ready"?1:0:o.generation!==i.generation&&i.state==="ready"?l=o.epoch+1:l=o.epoch,o!==null&&o.generation===i.generation&&o.state===i.state)return;const m=o===null?0:Math.max(0,c-o.lastChange),d={capName:i.capName,scope:i.scope,state:i.state,generation:i.generation,epoch:l,lastChange:c,sourceNodeId:i.sourceNodeId};this.snapshot.set(e,d);const u={capName:i.capName,scope:i.scope,state:i.state,epoch:l,generation:i.generation,sourceNodeId:i.sourceNodeId,ts:i.ts,durationInPrevState:m};this.logger&&this.logger.debug(`readiness: ${i.capName} (${E(i.scope)}) → ${i.state} epoch=${l} gen=${i.generation.slice(0,6)} (prev ${m}ms)`);for(const p of this.subscriptions)if(p.capName===i.capName&&G(p.scope,i.scope))try{p.handler(u)}catch(h){this.logger?.warn(`readiness handler threw for ${i.capName}: ${h.message??String(h)}`)}}synthesizeDownForNode(i){const e=this.now();for(const[o,c]of this.snapshot){if(c.state==="down"||!(c.scope.type==="node"&&c.scope.nodeId===i||c.scope.type==="device"&&c.sourceNodeId===i))continue;const m=Math.max(0,e-c.lastChange),d={...c,state:"down",lastChange:e};this.snapshot.set(o,d);const u={capName:c.capName,scope:c.scope,state:"down",epoch:c.epoch,generation:c.generation,sourceNodeId:this.sourceNodeId,ts:e,durationInPrevState:m};this.logger&&this.logger.debug(`readiness: ${c.capName} (${E(c.scope)}) → down (synthesized from agent.offline ${i})`);for(const p of this.subscriptions)if(p.capName===c.capName&&G(p.scope,c.scope))try{p.handler(u)}catch(h){this.logger?.warn(`readiness handler threw during agent.offline demux for ${c.capName}: ${h.message??String(h)}`)}}}}function et(){return typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).slice(2,14)}function tt(r,i){for(const{capName:e,scope:o}of i)r.emitDown(e,o)}const it=["data","media","recordings","recordings-high","recordings-low","recordings-clips","event-images","models","addons-data","cache","logs","backups"],at={data:"db",media:"media",recordings:"recordings","recordings-high":"recordings-high","recordings-low":"recordings-low","recordings-clips":"recordings-clips","event-images":"event-images",models:"models","addons-data":"addons-data",cache:"/tmp/camstack-cache",logs:"logs",backups:"backups"},we={high:"High",mid:"Mid",low:"Low"};function nt(r){return we[r]??r.charAt(0).toUpperCase()+r.slice(1)}function Ee(r){return(r.width??0)*(r.height??0)}function Re(r){if(r.length===0)return[];const i=r.map((o,c)=>({s:o,i:c,px:Ee(o.metadata??{})})).sort((o,c)=>c.px-o.px),e=Array.from({length:r.length});for(let o=0;o<i.length;o++){const{s:c,i:l}=i[o];let m;o===0?m="high":o===i.length-1?m="low":m="mid",e[l]={...c,quality:m}}return e}function rt(r){const i=r.height??0,e=r.width??0;return i>=1080||e>=1920?"high":i>=480||e>=640?"mid":"low"}function st(r){const i=r.protocols.find(c=>c.type==="rtsp"&&c.url)??r.protocols.find(c=>c.url),e=i?.type,o=e==="rtsp"?"rtsp":e==="http"||e==="flv"?"http-mjpeg":"custom";return{id:r.id,label:r.label??r.id,protocol:o,url:i?.url,profileHint:r.quality}}function b(r){return typeof r=="string"}function ot(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)}function ct(r){return b(r)&&r.trim()?{url:r}:ot(r)&&b(r.url)&&r.url.trim()?{url:r.url,label:b(r.label)?r.label:void 0}:null}function dt(r){const i=b(r.snapshot_url)?r.snapshot_url:void 0;if(Array.isArray(r.streams)){const m=[];for(const d of r.streams){const u=ct(d);u&&m.push(u)}return{streams:m,snapshot_url:i}}const e=[],o=b(r.main_stream_url)?r.main_stream_url:void 0;o&&e.push({url:o,label:b(r.main_stream_name)?r.main_stream_name:void 0});const c=b(r.sub_stream_url)?r.sub_stream_url:void 0;c&&e.push({url:c,label:b(r.sub_stream_name)?r.sub_stream_name:void 0});const l=b(r.third_stream_url)?r.third_stream_url:void 0;return l&&e.push({url:l,label:b(r.third_stream_name)?r.third_stream_name:void 0}),{streams:e,snapshot_url:i}}function lt(r){if(r.length===0)return{};const i=Re(r),e={},o=i.find(d=>d.quality==="high"),c=i.find(d=>d.quality==="mid"),l=i.find(d=>d.quality==="low");o&&(e.high=o.id),c&&(e.mid=c.id),l&&(e.low=l.id);const m=o??c??l??i[0];return m&&(e.high||(e.high=m.id),e.mid||(e.mid=m.id),e.low||(e.low=m.id)),e}const ut={streaming:!0,notifications:!0,objectDetection:!1,remoteAccess:!0,agentCluster:!1,smartHome:!0,recordings:!0,backup:!0,repl:!0},mt=["face","plate"],pt=["face","plate","clip","custom"],ht={cleanupIntervalMs:3600*1e3,detectionEventsDays:30,audioLevelsDays:7,snapshotsDays:14};var Me=(r=>(r.Addon="addon",r.Core="core",r.Device="device",r.Provider="provider",r.System="system",r))(Me||{});const Te="camstack/camstack-models",gt=`https://huggingface.co/${Te}/resolve/main`,St={"features.streaming":!0,"features.notifications":!0,"features.objectDetection":!1,"features.remoteAccess":!0,"features.agentCluster":!1,"features.smartHome":!0,"features.recordings":!0,"features.backup":!0,"features.repl":!0,"retention.detectionEventsDays":30,"retention.audioLevelsDays":7,"logging.level":"info","logging.retentionDays":30,"eventBus.ringBufferSize":1e4,"storage.provider":"sqlite-storage","storage.locations":{data:"camstack-data/data",media:"camstack-data/media",recordings:"camstack-data/recordings",cache:"/tmp/camstack-cache",logs:"camstack-data/logs",models:"camstack-data/models"},providers:[],"recording.segmentDurationSeconds":4,"recording.defaultRetentionDays":30,"ffmpeg.binaryPath":"ffmpeg","ffmpeg.hwAccel":"auto","ffmpeg.threadCount":0,"auth.tokenExpiry":"24h"};function V(r){return JSON.parse(r)}function Oe(r){return r===null||typeof r!="object"||Array.isArray(r)?null:{...r}}function yt(r){return Array.isArray(r)?r:[]}function ft(r,i=""){return typeof r=="string"?r:i}function bt(r,i=0){return typeof r=="number"?r:i}function vt(r,i=!1){return typeof r=="boolean"?r:i}function Ct(r){try{return Oe(V(r))}catch{return null}}function At(r){try{const i=V(r);return Array.isArray(i)?i:null}catch{return null}}function kt(r,i){return`https://huggingface.co/${r}/resolve/main/${i}`}function It(r,i){if(r.length!==i.length)return 0;let e=0,o=0,c=0;for(let m=0;m<r.length;m++)e+=r[m]*i[m],o+=r[m]*r[m],c+=i[m]*i[m];const l=Math.sqrt(o)*Math.sqrt(c);return l===0?0:e/l}class Pt{constructor(i,e){this.elementId=i,this.getBackend=typeof e=="function"?e:()=>e}cache={};listeners=new Set;loaded=!1;getBackend;async ensureLoaded(){if(this.loaded)return;const i=this.getBackend();if(!i)throw new Error(`ElementConfigStore(${this.elementId}): settings backend not available`);const e=await i.query({collection:"config",filter:{where:{id:this.elementId},limit:1}});e.length>0&&(this.cache=e[0].data??{}),this.loaded=!0}getAll(){return{...this.cache}}get(i){const e=i.split(".");let o=this.cache;for(const c of e){if(o===null||typeof o!="object"||Array.isArray(o))return;o=Reflect.get(o,c)}return o}async set(i,e){await this.ensureLoaded(),Dt(this.cache,i,e),await this.persist(),this.notifyListeners()}async setAll(i){await this.ensureLoaded(),this.cache={...i},await this.persist(),this.notifyListeners()}onChange(i){return this.listeners.add(i),()=>{this.listeners.delete(i)}}async load(){await this.ensureLoaded()}async loadDefaults(i){await this.ensureLoaded(),Object.keys(this.cache).length===0&&(this.cache={...i},await this.persist())}async persist(){const i=this.getBackend();if(!i)throw new Error(`ElementConfigStore(${this.elementId}): settings backend not available — cannot persist config`);await i.set({collection:"config",key:this.elementId,value:this.cache})}notifyListeners(){const i=this.getAll();for(const e of this.listeners)try{e(i)}catch{}}}function Dt(r,i,e){const o=i.split(".");let c=r;for(let l=0;l<o.length-1;l++){const m=o[l],d=c[m];if(d===null||typeof d!="object"||Array.isArray(d)){const u={};c[m]=u,c=u}else c=d}c[o[o.length-1]]=e}const Q={cpu:"onnx",coreml:"onnx",cuda:"onnx",tensorrt:"onnx","onnx-py":"onnx",pytorch:"pt",openvino:"openvino"},qe={onnx:"onnx",coreml:"coreml",openvino:"openvino",tflite:"tflite",pytorch:"pt"},Le={coreml:"coreml_inference.py",pytorch:"pytorch_inference.py",openvino:"openvino_inference.py"};function _e(r,i){return r==="node"?"onnx":{coreml:"coreml",openvino:"openvino",pytorch:"pytorch","onnx-py":"onnx",cpu:"onnx"}[i]??i}function wt(r,i){return r==="node"?Q[i]??"onnx":{coreml:"coreml",openvino:"openvino",pytorch:"pt","onnx-py":"onnx",cpu:"onnx"}[i]??"onnx"}function Et(r,i){return!r||r==="auto"?"auto":_e(r,i??"cpu")}function Rt(r){return Q[r]??"onnx"}function Mt(r){return qe[r]}function Tt(r){return Le[r]}function Ot(r){return r==="coreml"||r==="pytorch"||r==="openvino"}async function qt(r,i){const e=performance.now();try{return{output:i!==void 0?await Lt(r(),i):await r(),durationMs:be(performance.now()-e),ok:!0}}catch(o){return{output:void 0,durationMs:be(performance.now()-e),ok:!1,error:a.errMsg(o)}}}function be(r){return Math.round(r*100)/100}function Lt(r,i){return new Promise((e,o)=>{const c=setTimeout(()=>o(new Error(`Inference timeout after ${i}ms`)),i);r.then(l=>{clearTimeout(c),e(l)}).catch(l=>{clearTimeout(c),o(l)})})}const _t=[{id:"person",name:"Person"},{id:"bicycle",name:"Bicycle"},{id:"car",name:"Car"},{id:"motorcycle",name:"Motorcycle"},{id:"airplane",name:"Airplane"},{id:"bus",name:"Bus"},{id:"train",name:"Train"},{id:"truck",name:"Truck"},{id:"boat",name:"Boat"},{id:"traffic light",name:"Traffic Light"},{id:"fire hydrant",name:"Fire Hydrant"},{id:"stop sign",name:"Stop Sign"},{id:"parking meter",name:"Parking Meter"},{id:"bench",name:"Bench"},{id:"bird",name:"Bird"},{id:"cat",name:"Cat"},{id:"dog",name:"Dog"},{id:"horse",name:"Horse"},{id:"sheep",name:"Sheep"},{id:"cow",name:"Cow"},{id:"elephant",name:"Elephant"},{id:"bear",name:"Bear"},{id:"zebra",name:"Zebra"},{id:"giraffe",name:"Giraffe"},{id:"backpack",name:"Backpack"},{id:"umbrella",name:"Umbrella"},{id:"handbag",name:"Handbag"},{id:"tie",name:"Tie"},{id:"suitcase",name:"Suitcase"},{id:"frisbee",name:"Frisbee"},{id:"skis",name:"Skis"},{id:"snowboard",name:"Snowboard"},{id:"sports ball",name:"Sports Ball"},{id:"kite",name:"Kite"},{id:"baseball bat",name:"Baseball Bat"},{id:"baseball glove",name:"Baseball Glove"},{id:"skateboard",name:"Skateboard"},{id:"surfboard",name:"Surfboard"},{id:"tennis racket",name:"Tennis Racket"},{id:"bottle",name:"Bottle"},{id:"wine glass",name:"Wine Glass"},{id:"cup",name:"Cup"},{id:"fork",name:"Fork"},{id:"knife",name:"Knife"},{id:"spoon",name:"Spoon"},{id:"bowl",name:"Bowl"},{id:"banana",name:"Banana"},{id:"apple",name:"Apple"},{id:"sandwich",name:"Sandwich"},{id:"orange",name:"Orange"},{id:"broccoli",name:"Broccoli"},{id:"carrot",name:"Carrot"},{id:"hot dog",name:"Hot Dog"},{id:"pizza",name:"Pizza"},{id:"donut",name:"Donut"},{id:"cake",name:"Cake"},{id:"chair",name:"Chair"},{id:"couch",name:"Couch"},{id:"potted plant",name:"Potted Plant"},{id:"bed",name:"Bed"},{id:"dining table",name:"Dining Table"},{id:"toilet",name:"Toilet"},{id:"tv",name:"TV"},{id:"laptop",name:"Laptop"},{id:"mouse",name:"Mouse"},{id:"remote",name:"Remote"},{id:"keyboard",name:"Keyboard"},{id:"cell phone",name:"Cell Phone"},{id:"microwave",name:"Microwave"},{id:"oven",name:"Oven"},{id:"toaster",name:"Toaster"},{id:"sink",name:"Sink"},{id:"refrigerator",name:"Refrigerator"},{id:"book",name:"Book"},{id:"clock",name:"Clock"},{id:"vase",name:"Vase"},{id:"scissors",name:"Scissors"},{id:"teddy bear",name:"Teddy Bear"},{id:"hair drier",name:"Hair Drier"},{id:"toothbrush",name:"Toothbrush"}],Bt=[{id:"person",name:"Person"},{id:"vehicle",name:"Vehicle"},{id:"animal",name:"Animal"}],Nt={mapping:{person:"person",bicycle:"vehicle",car:"vehicle",motorcycle:"vehicle",airplane:"vehicle",bus:"vehicle",train:"vehicle",truck:"vehicle",boat:"vehicle",bird:"animal",cat:"animal",dog:"animal",horse:"animal",sheep:"animal",cow:"animal",elephant:"animal",bear:"animal",zebra:"animal",giraffe:"animal"},preserveOriginal:!1},zt={camera:{type:"camera",label:"Camera",icon:"camera"}};class R{schema;data;persistFn;constructor(i,e,o){this.schema=i,this.data=e,this.persistFn=o}static fromSchema(i,e,o={},c){const l=i.safeParse(o);if(l.success)return new R(i,l.data,e);const m=new Set;for(const h of l.error.issues){const g=h.path[0];typeof g=="string"&&m.add(g)}const d={...o};for(const h of m)delete d[h];const u=i.safeParse(d);if(c?.({droppedKeys:[...m],issues:l.error.issues}),u.success)return e(u.data).catch(()=>{}),new R(i,u.data,e);const p=i.parse({});return new R(i,p,e)}get values(){return this.data}get(i){return this.data[i]}async set(i,e){const o=this.schema.parse({...this.data,[i]:e});this.data=o,await this.persistFn(this.data)}async setAll(i){const e=this.schema.parse({...this.data,...i});this.data=e,await this.persistFn(this.data)}async deleteKey(i){const{[i]:e,...o}=this.data,c=this.schema.parse(o);this.data=c,await this.persistFn(this.data)}entries(){const i=this.schema.shape;return Object.entries(i).map(([e,o])=>({key:e,schema:o,value:this.data[e],description:o.description}))}}class H{writer;pendingWrites=new Set;slices;schemas=new Map;listeners=new Set;capListeners=new Map;constructor(i,e){this.writer=e,this.slices=new Map;for(const[o,c]of Object.entries(i))c&&typeof c=="object"&&!Array.isArray(c)&&this.slices.set(o,{...c})}static fromInitial(i,e){return new H(i,e)}installCapSchema(i,e){const o=this.schemas.get(i);if(o){if(o!==e)throw new Error(`[DeviceRuntimeState] capability "${i}" registered a different runtime-state schema; each cap must declare ONE shape across every provider`);return}this.schemas.set(i,e);const c=this.slices.get(i);if(c){const l=e.safeParse(c);l.success?this.slices.set(i,l.data):this.slices.delete(i)}}getCapState(i){const e=this.slices.get(i);if(e)return Object.freeze({...e})}getCapField(i,e){return this.slices.get(i)?.[e]}setCapState(i,e){this.applyCapWrite(i,e,!1)}patchCapState(i,e){this.applyCapWrite(i,e,!0)}applyCapWrite(i,e,o){const c=this.schemas.get(i);if(!c)throw new Error(`[DeviceRuntimeState] no schema registered for cap "${i}" — did the device register it via ctx.registerNativeCap before writing?`);const l=this.slices.get(i)??{},m=o?{...l,...e}:{...e},d=c.parse(m);if(xt(l,d))return;this.slices.set(i,d),this.fireListeners([i]);const u=this.writer(i,{...d}).catch(()=>{});this.pendingWrites.add(u),u.finally(()=>{this.pendingWrites.delete(u)})}fireListeners(i){const e=this.snapshot();for(const o of this.listeners)try{o(i,e)}catch{}for(const o of i){const c=this.capListeners.get(o);if(!c)continue;const l=this.getCapState(o);for(const m of c)try{m(l)}catch{}}}subscribe(i){return this.listeners.add(i),()=>{this.listeners.delete(i)}}subscribeCap(i,e){let o=this.capListeners.get(i);o||(o=new Set,this.capListeners.set(i,o));const c=l=>{e(l)};return o.add(c),()=>{const l=this.capListeners.get(i);l&&(l.delete(c),l.size===0&&this.capListeners.delete(i))}}snapshot(){const i={};for(const[e,o]of this.slices)i[e]=Object.freeze({...o});return Object.freeze(i)}async flush(){if(this.pendingWrites.size===0)return;const i=[...this.pendingWrites];await Promise.allSettled(i)}}function xt(r,i){const e=Object.keys(r),o=Object.keys(i);if(e.length!==o.length)return!1;for(const c of e)if(r[c]!==i[c])return!1;return!0}const K="lastFetchedAt";function Ut(r){const{runtimeState:i,cap:e,ownDeviceId:o,refresh:c,staleMs:l,empty:m}=r,d=async()=>{const h=i.getCapState(e.name),g=typeof h?.[K]=="number"?h[K]:0;(!h||Date.now()-g>l)&&await c()},u=()=>{const h=i.getCapState(e.name);if(!h)return m();const{[K]:g,...S}=h;return S};return{ensureFresh:d,getStatus:async({deviceId:h})=>{if(h!==o)throw new Error(`${e.name}: deviceId mismatch, expected ${o}, got ${h}`);return await d(),u()}}}const Ft={audioMetrics:a.audioMetricsCapability,battery:a.batteryCapability,brightness:a.brightnessCapability,cameraStreams:a.cameraStreamsCapability,deviceDiscovery:a.deviceDiscoveryCapability,deviceStatus:a.deviceStatusCapability,doorbell:a.doorbellCapability,featureProbe:a.featureProbeCapability,motion:a.motionCapability,motionTrigger:a.motionTriggerCapability,ptzAutotrack:a.ptzAutotrackCapability,switch:a.switchCapability,zoneAnalytics:a.zoneAnalyticsCapability,zoneRules:a.zoneRulesCapability,zones:a.zonesCapability};class Wt{id;stableId;type;name;parentDeviceId;role;get online(){return this.runtimeState.getCapState("device-status")?.online??!1}set online(i){this.markOnline(i)}get state(){if(!this._stateProxyCache){const i={},e={get:(o,c)=>{const l=c;if(l in i)return i[l];const m=Ft[l];if(!m)return;const d=this.sliceProxy(m);return i[l]=d,d}};this._stateProxyCache=new Proxy(i,e)}return this._stateProxyCache}_stateProxyCache;config;runtimeState;ctx;location;disabled;constructor(i,e,o){if(this.ctx=i,this.id=i.id,this.stableId=i.stableId,this.type=o.type,!i.deviceMeta)throw new Error(`BaseDevice constructor: ctx.deviceMeta is required (id=${i.id} stableId=${i.stableId})`);this.name=i.deviceMeta.name,this.location=i.deviceMeta.location,this.disabled=i.deviceMeta.disabled,this.role=o.role,this.parentDeviceId=i.parentDeviceId;const c=i.persistedConfig??{};this.config=R.fromSchema(e,h=>i.persistConfig(h),c,({droppedKeys:h,issues:g})=>{i.logger.warn("Device config recovery: dropping invalid persisted fields",{tags:{deviceId:i.id,stableId:i.stableId},meta:{droppedKeys:[...h],firstIssue:g[0]?.message??null}})});let l=null;const m=async(h,g)=>{l||(l=i.fetchDevice(i.id)),await(await l).deviceState.setCapSlice({capName:h,slice:g})},d=i.initialRuntimeState??{};this.runtimeState=H.fromInitial(d,m),i.bindRuntimeState?.(this.runtimeState),i.registerNativeCap?.(a.deviceStatusCapability,{});const u={online:!1,lastChangedAt:Date.now()};this.runtimeState.setCapState("device-status",u),i.registerNativeCap?.(a.featureProbeCapability,{});const p={flags:{},deviceType:null,model:null,channelCount:null,lastProbedAt:0,lastFetchedAt:0};this.runtimeState.setCapState("feature-probe",p)}async removeDevice(){}markOnline(i){if(this.online===i)return;const e={online:i,lastChangedAt:Date.now()};this.runtimeState.setCapState("device-status",e)}async refreshFeatures(){const e=this.ctx.api?.deviceManager?.registerDevice;if(e)try{await e.mutate({addonId:this.ctx.deviceMeta.addonId,stableId:this.stableId,id:this.id,type:this.type,name:this.name,parentDeviceId:this.parentDeviceId,features:[...this.features],config:{}})}catch{}}getCapSlice(i){return this.runtimeState.getCapState(i.name)??null}setCapSlice(i,e){this.runtimeState.setCapState(i.name,e)}sliceProxy(i){const e={},o={get:(c,l)=>this.runtimeState.getCapState(i.name)?.[l],set:(c,l,m)=>(this.runtimeState.patchCapState(i.name,{[l]:m}),!0),has:(c,l)=>{const m=this.runtimeState.getCapState(i.name);return m?l in m:!1},ownKeys:()=>{const c=this.runtimeState.getCapState(i.name);return c?Object.keys(c):[]},getOwnPropertyDescriptor:(c,l)=>{const m=this.runtimeState.getCapState(i.name);if(!(!m||!(l in m)))return{configurable:!0,enumerable:!0,value:m[l]}}};return new Proxy(e,o)}getSettingsUISchema(){return{sections:[]}}async applySettingsPatch(i){await this.config.setAll(i)}async onProbe(){}async onActivate(){}async reprobe(){this._kernelReprobe?await this._kernelReprobe():await this.onProbe()}_kernelReprobe;getAccessoryChildren(){return[]}getProbeFlags(){return this.runtimeState.getCapState("feature-probe")?.flags??{}}hasProbed(){return(this.runtimeState.getCapState("feature-probe")?.lastProbedAt??0)>0}}function Be(r,i){const e={};for(const o of r.config.entries())e[o.key]=o.value;return{id:r.id,stableId:r.stableId,addonId:i,type:String(r.type),name:r.name,parentDeviceId:r.parentDeviceId,online:r.online,features:[...r.features],config:e}}class $t extends Ie{async onInitialize(){return this.ctx.logger.info(`${this.providerName} Provider initialized`),[{capability:a.deviceProviderCapability,provider:this}]}async onShutdown(){const i=await this.ctx.kernel.devices?.getAll()??[];for(const e of i)try{await this.ctx.kernel.devices?.decommission(e.id)}catch(o){this.ctx.logger.warn(`${this.providerName}: decommission failed`,{tags:{deviceId:e.id,stableId:e.stableId},meta:{error:o instanceof Error?o.message:String(o)}})}this.ctx.logger.info(`${this.providerName} Provider shut down`,{meta:{decommissionedCount:i.length}})}async start(){}async stop(){}async getStatus(){return{connected:!0,deviceCount:(await this.ctx.kernel.devices?.getAll()??[]).length}}async getDevices(){return(await this.ctx.kernel.devices?.getAll()??[]).map(e=>({id:e.stableId,name:e.name,type:String(e.type)}))}async supportsDiscovery(){return!1}async discoverDevices(){return[]}async adoptDiscoveredDevice(i){throw new Error(`${this.providerName} provider does not support discovery-based adoption`)}async supportsManualCreation(){return!0}async getChildCreationSchema(i){return this.onGetCreationSchema(i.type)}async createDevice(i){const e=await this.onCreateDevice(i.type,i.config),o=this.deviceClasses[e.meta.type];if(!o)throw new Error(`${this.providerName} provider: no device class registered for type "${e.meta.type}" — add it to the deviceClasses map`);const c=this.generateStableId(e.meta.type,e.config),l=await this.ctx.kernel.devices.create(c,o,e.config,null,e.meta);if(e.onAfterCreate)try{await e.onAfterCreate(l)}catch(m){this.ctx.logger.warn("createDevice: onAfterCreate hook threw — device is already registered",{tags:{deviceId:l.id,stableId:c},meta:{error:m instanceof Error?m.message:String(m)}})}return this.toSummary(l)}generateStableId(i,e){return`${this.addonId}-${Date.now()}`}async testCreationField(i){return{status:"ok",labels:["probe not implemented"]}}async restoreDevices(i){await this.onRestoreDevices(i),i.length>0&&this.ctx.logger.info(`Restored ${i.length} ${this.providerName} device(s)`)}async onRestoreDevices(i){const e=new Set;for(const c of i){if(c.parentDeviceId!==null)continue;const l=this.deviceClasses[c.type];if(!l){this.ctx.logger.warn("No device class registered for restored type — skipping",{tags:{stableId:c.stableId},meta:{type:c.type}});continue}try{await this.ctx.kernel.devices.create(c.stableId,l,{}),e.add(c.id)}catch(m){this.ctx.logger.warn("Failed to restore device",{tags:{stableId:c.stableId},meta:{type:c.type,error:m instanceof Error?m.message:String(m)}})}}const o=i.filter(c=>c.parentDeviceId!==null);for(const c of o){const l=this.deviceClasses[c.type];if(l&&c.parentDeviceId!==null&&e.has(c.parentDeviceId))try{await this.ctx.kernel.devices.create(c.stableId,l,{},c.parentDeviceId),e.add(c.id)}catch(m){this.ctx.logger.warn("Failed to restore hub-adopted child",{tags:{stableId:c.stableId,parentDeviceId:c.parentDeviceId},meta:{type:c.type,error:m instanceof Error?m.message:String(m)}})}}}toSummary(i){return Be(i,this.addonId)}}function B(r){return r.def}function Ht(r,i="Configuration",e="main"){const o=r.map(c=>jt(c.key,c.schema,c.description));return{sections:[{id:e,title:i,fields:o}]}}function jt(r,i,e){const o=$(i),c=Vt(i),l=e??Ne(r),m={key:r,label:l,description:e,default:c};return o instanceof v.z.ZodString?Gt(r,m):o instanceof v.z.ZodNumber?Kt(o,m):o instanceof v.z.ZodBoolean?{...m,type:"boolean"}:o instanceof v.z.ZodEnum?Yt(o,m):o instanceof v.z.ZodArray||o instanceof v.z.ZodObject?{...m,type:"textarea",rows:6,isJson:!0}:{...m,type:"text"}}function Gt(r,i){const e=r.toLowerCase();return e.includes("password")||e.includes("secret")||e.includes("token")||e.includes("apikey")||e.includes("api_key")?{...i,type:"password",showToggle:!0}:{...i,type:"text"}}function Kt(r,i){const e=r,o=e.minValue,c=e.maxValue,l=o!=null&&isFinite(o)?o:void 0,m=c!=null&&isFinite(c)?c:void 0,d=Zt(r);return{...i,type:"number",...l!==void 0?{min:l}:{},...m!==void 0?{max:m}:{},...d!==void 0?{step:d}:{}}}function Zt(r){const e=B(r).checks??[];for(const o of e)if(o._zod?.def?.check==="multiple_of"&&o._zod.def.value!==void 0)return o._zod.def.value}function Yt(r,i){const e=r.options.map(c=>String(c));return{...i,type:"select",options:e.map(c=>({label:Ne(c),value:c}))}}function $(r){return r instanceof v.z.ZodDefault||r instanceof v.z.ZodOptional||r instanceof v.z.ZodNullable?$(B(r).innerType):r}function Vt(r){if(r instanceof v.z.ZodDefault)return B(r).defaultValue}function Ne(r){return r.replace(/([A-Z])/g," $1").replace(/[_-]/g," ").replace(/^\w/,i=>i.toUpperCase()).trim()}const Qt="device.state-changed";function J(r){const i=new Map,e=new Map;let o=null;const c=(d,u)=>`${d}:${u}`,l=()=>{o||r.live?.onEvent&&(o=r.live.onEvent.subscribe({category:Qt},{onData:d=>{const u=d.data;if(!u||typeof u.deviceId!="number"||typeof u.capName!="string")return;const p=c(u.deviceId,u.capName);i.set(p,u.slice);const h=e.get(p);if(h)for(const g of h)try{g(u.slice)}catch{}}}))},m=()=>{o&&(e.size>0||(o.unsubscribe(),o=null))};return{read(d,u){return i.get(c(d,u))},async refresh(d,u){const p=await r.deviceState.getCapSlice.query({deviceId:d,capName:u}),h=c(d,u);i.set(h,p??void 0);const g=e.get(h);if(g)for(const S of g)try{S(p??void 0)}catch{}},watch(d,u,p){const h=c(d,u);let g=e.get(h);return g||(g=new Set,e.set(h,g)),g.add(p),l(),()=>{g.delete(p),g.size===0&&e.delete(h),m()}},async write(d,u,p){await r.deviceState.setCapSlice.mutate({deviceId:d,capName:u,slice:p})}}}function ze(r,i,e){const o=(c,l)=>`${c}:${l}`;return{read(c,l){return r.get(c)?.get(l)},async refresh(){},watch(c,l,m){const d=o(c,l);let u=i.get(d);return u||(u=new Set,i.set(d,u)),u.add(m),()=>{u.delete(m),u.size===0&&i.delete(d)}},async write(c,l,m){if(!e)throw new Error("createMirrorSource: write requires an api reference — pass it as the third argument when constructing the source");await e.deviceState.setCapSlice.mutate({deviceId:c,capName:l,slice:m})}}}function f(r,i,e){const o=Jt(r)?r:J(r);return{get value(){return o.read(i,e)},refresh(){return o.refresh(i,e)},subscribe(c){const l=o.watch(i,e,m=>{try{c(m)}catch{}});try{c(o.read(i,e))}catch{}return o.read(i,e)===void 0&&o.refresh(i,e).catch(()=>{}),l},async set(c){await o.write(i,e,c)},async patch(c){const m={...o.read(i,e)??{},...c};await o.write(i,e,m)}}}function Jt(r){return typeof r.read=="function"&&typeof r.watch=="function"}function xe(r,i,e){const o=r,c=e?.stateSource??J(r);function l(s,A){const k=typeof s=="object"&&s!==null?s:{};return A!==void 0?{...k,deviceId:i.deviceId,nodeId:A}:{...k,deviceId:i.deviceId}}function m(s,A,k,P,q){const U=o[s]?.[A];if(!U)throw new Error(`DeviceProxy: api has no '${s}.${A}'`);const L=U;return k==="mutation"?L.mutate(P):k==="subscription"?L.subscribe(P,q):L.query(P)}function d(s,A,k,P,q,U){const L=i.entries.find(je=>je.capName===s);return m(A,k,P,l(q,L?.providerNodeId),U)}function u(s,A,k,P,q){return m(s,A,k,l(P,void 0),q)}const p={getStatus:s=>d("accessories","accessories","getStatus","query",s)},h={resolveDeviceSettings:s=>d("audio-analysis","audioAnalysis","resolveDeviceSettings","query",s),getDeviceSettingsContribution:s=>d("audio-analysis","audioAnalysis","getDeviceSettingsContribution","query",s),getDeviceLiveContribution:s=>d("audio-analysis","audioAnalysis","getDeviceLiveContribution","query",s),applyDeviceSettingsPatch:s=>d("audio-analysis","audioAnalysis","applyDeviceSettingsPatch","mutation",s)},g={getCurrentSnapshot:s=>d("audio-metrics","audioMetrics","getCurrentSnapshot","query",s),getHistory:s=>d("audio-metrics","audioMetrics","getHistory","query",s)},S={getStatus:s=>d("battery","battery","getStatus","query",s)},y={setBrightness:s=>d("brightness","brightness","setBrightness","mutation",s),getStatus:s=>d("brightness","brightness","getStatus","query",s)},C={getCredentials:s=>d("camera-credentials","cameraCredentials","getCredentials","query",s),getStatus:s=>d("camera-credentials","cameraCredentials","getStatus","query",s)},D={getCameraStreams:s=>d("camera-streams","cameraStreams","getCameraStreams","query",s),getBrokerStreams:s=>d("camera-streams","cameraStreams","getBrokerStreams","query",s),getRtspEntries:s=>d("camera-streams","cameraStreams","getRtspEntries","query",s)},M={getDeviceSettingsContribution:s=>d("detection-pipeline","detectionPipeline","getDeviceSettingsContribution","query",s),getDeviceLiveContribution:s=>d("detection-pipeline","detectionPipeline","getDeviceLiveContribution","query",s),applyDeviceSettingsPatch:s=>d("detection-pipeline","detectionPipeline","applyDeviceSettingsPatch","mutation",s)},w={listDiscovered:s=>d("device-discovery","deviceDiscovery","listDiscovered","query",s),refreshDiscovery:s=>d("device-discovery","deviceDiscovery","refreshDiscovery","mutation",s),adoptDevice:s=>d("device-discovery","deviceDiscovery","adoptDevice","mutation",s),releaseDevice:s=>d("device-discovery","deviceDiscovery","releaseDevice","mutation",s),getStatus:s=>d("device-discovery","deviceDiscovery","getStatus","query",s)},X={getStreamSources:s=>d("device-ops","deviceOps","getStreamSources","query",s),getConfigEntries:s=>d("device-ops","deviceOps","getConfigEntries","query",s),setConfig:s=>d("device-ops","deviceOps","setConfig","mutation",s),removeDevice:s=>d("device-ops","deviceOps","removeDevice","mutation",s),getSettingsSchema:s=>d("device-ops","deviceOps","getSettingsSchema","query",s)},ee={getStatus:s=>d("device-status","deviceStatus","getStatus","query",s)},te={getStatus:s=>d("doorbell","doorbell","getStatus","query",s)},ie={getEvents:s=>d("events","events","getEvents","query",s),getEventThumbnail:s=>d("events","events","getEventThumbnail","query",s),getEventClipUrl:s=>d("events","events","getEventClipUrl","query",s)},ae={getStatus:s=>d("feature-probe","featureProbe","getStatus","query",s)},ne={startSession:s=>d("intercom","intercom","startSession","mutation",s),handleAnswer:s=>d("intercom","intercom","handleAnswer","mutation",s),stopSession:s=>d("intercom","intercom","stopSession","mutation",s),getStatus:s=>d("intercom","intercom","getStatus","query",s)},re={isDetected:s=>d("motion","motion","isDetected","query",s),getStatus:s=>d("motion","motion","getStatus","query",s)},se={analyze:s=>d("motion-detection","motionDetection","analyze","mutation",s),removeCamera:s=>d("motion-detection","motionDetection","removeCamera","mutation",s),reset:s=>d("motion-detection","motionDetection","reset","mutation",s),getDeviceSettingsContribution:s=>d("motion-detection","motionDetection","getDeviceSettingsContribution","query",s),getDeviceLiveContribution:s=>d("motion-detection","motionDetection","getDeviceLiveContribution","query",s),applyDeviceSettingsPatch:s=>d("motion-detection","motionDetection","applyDeviceSettingsPatch","mutation",s)},oe={setMotionTrigger:s=>d("motion-trigger","motionTrigger","setMotionTrigger","mutation",s),getStatus:s=>d("motion-trigger","motionTrigger","getStatus","query",s)},ce={getStatus:s=>d("native-object-detection","nativeObjectDetection","getStatus","query",s)},de={setOverlay:s=>d("osd","osd","setOverlay","mutation",s),getStatus:s=>d("osd","osd","getStatus","query",s)},le={getActiveTracks:s=>d("pipeline-analytics","pipelineAnalytics","getActiveTracks","query",s),getTrack:s=>d("pipeline-analytics","pipelineAnalytics","getTrack","query",s),listTracks:s=>d("pipeline-analytics","pipelineAnalytics","listTracks","query",s),clearTracks:s=>d("pipeline-analytics","pipelineAnalytics","clearTracks","mutation",s),getMotionEvents:s=>d("pipeline-analytics","pipelineAnalytics","getMotionEvents","query",s),getObjectEvents:s=>d("pipeline-analytics","pipelineAnalytics","getObjectEvents","query",s),getAudioEvents:s=>d("pipeline-analytics","pipelineAnalytics","getAudioEvents","query",s),getEventMedia:s=>d("pipeline-analytics","pipelineAnalytics","getEventMedia","query",s),getTrackMedia:s=>d("pipeline-analytics","pipelineAnalytics","getTrackMedia","query",s),getDeviceSettingsContribution:s=>d("pipeline-analytics","pipelineAnalytics","getDeviceSettingsContribution","query",s),getDeviceLiveContribution:s=>d("pipeline-analytics","pipelineAnalytics","getDeviceLiveContribution","query",s),applyDeviceSettingsPatch:s=>d("pipeline-analytics","pipelineAnalytics","applyDeviceSettingsPatch","mutation",s)},ue={move:s=>d("ptz","ptz","move","mutation",s),continuousMove:s=>d("ptz","ptz","continuousMove","mutation",s),stop:s=>d("ptz","ptz","stop","mutation",s),getPresets:s=>d("ptz","ptz","getPresets","query",s),goToPreset:s=>d("ptz","ptz","goToPreset","mutation",s),goHome:s=>d("ptz","ptz","goHome","mutation",s),getPosition:s=>d("ptz","ptz","getPosition","query",s),getStatus:s=>d("ptz","ptz","getStatus","query",s)},me={getStatus:s=>d("ptz-autotrack","ptzAutotrack","getStatus","query",s),setEnabled:s=>d("ptz-autotrack","ptzAutotrack","setEnabled","mutation",s),getSettings:s=>d("ptz-autotrack","ptzAutotrack","getSettings","query",s),setSettings:s=>d("ptz-autotrack","ptzAutotrack","setSettings","mutation",s)},pe={reboot:s=>d("reboot","reboot","reboot","mutation",s)},he={getSegments:s=>d("recording","recording","getSegments","query",s),getPlaybackUrl:s=>d("recording","recording","getPlaybackUrl","query",s),getThumbnailAt:s=>d("recording","recording","getThumbnailAt","query",s)},ge={getSnapshot:s=>d("snapshot","snapshot","getSnapshot","query",s),invalidateCache:s=>d("snapshot","snapshot","invalidateCache","mutation",s),getStatus:s=>d("snapshot","snapshot","getStatus","query",s),getDeviceSettingsContribution:s=>d("snapshot","snapshot","getDeviceSettingsContribution","query",s),getDeviceLiveContribution:s=>d("snapshot","snapshot","getDeviceLiveContribution","query",s),applyDeviceSettingsPatch:s=>d("snapshot","snapshot","applyDeviceSettingsPatch","mutation",s)},Se={setState:s=>d("switch","switch","setState","mutation",s),getStatus:s=>d("switch","switch","getStatus","query",s)},ye={listStreams:s=>d("webrtc-session","webrtcSession","listStreams","query",s),createSession:s=>d("webrtc-session","webrtcSession","createSession","mutation",s),handleAnswer:s=>d("webrtc-session","webrtcSession","handleAnswer","mutation",s),closeSession:s=>d("webrtc-session","webrtcSession","closeSession","mutation",s),hasAdaptiveBitrate:s=>d("webrtc-session","webrtcSession","hasAdaptiveBitrate","query",s)},fe={getCurrentSnapshot:s=>d("zone-analytics","zoneAnalytics","getCurrentSnapshot","query",s),getZoneHistory:s=>d("zone-analytics","zoneAnalytics","getZoneHistory","query",s),getCameraHistory:s=>d("zone-analytics","zoneAnalytics","getCameraHistory","query",s),getUnzonedHistory:s=>d("zone-analytics","zoneAnalytics","getUnzonedHistory","query",s)},t={listRules:s=>d("zone-rules","zoneRules","listRules","query",s),setRules:s=>d("zone-rules","zoneRules","setRules","mutation",s)},I={listZones:s=>d("zones","zones","listZones","query",s),addZone:s=>d("zones","zones","addZone","mutation",s),removeZone:s=>d("zones","zones","removeZone","mutation",s),updateZone:s=>d("zones","zones","updateZone","mutation",s)},z={getDeviceSettings:s=>u("addonSettings","getDeviceSettings","query",s),updateDeviceSettings:s=>u("addonSettings","updateDeviceSettings","mutation",s)},T={loadConfig:s=>u("deviceManager","loadConfig","query",s),loadRuntimeState:s=>u("deviceManager","loadRuntimeState","query",s),loadMeta:s=>u("deviceManager","loadMeta","query",s),setName:s=>u("deviceManager","setName","mutation",s),setLocation:s=>u("deviceManager","setLocation","mutation",s),setMetadata:s=>u("deviceManager","setMetadata","mutation",s),setDisabled:s=>u("deviceManager","setDisabled","mutation",s),getDevice:s=>u("deviceManager","getDevice","query",s),getStreamSources:s=>u("deviceManager","getStreamSources","query",s),getConfigSchema:s=>u("deviceManager","getConfigSchema","query",s),getSettingsSchema:s=>u("deviceManager","getSettingsSchema","query",s),updateConfig:s=>u("deviceManager","updateConfig","mutation",s),enable:s=>u("deviceManager","enable","mutation",s),disable:s=>u("deviceManager","disable","mutation",s),remove:s=>u("deviceManager","remove","mutation",s),getStreamProfileMap:s=>u("deviceManager","getStreamProfileMap","query",s),setStreamProfileMap:s=>u("deviceManager","setStreamProfileMap","mutation",s),probeStreams:s=>u("deviceManager","probeStreams","mutation",s),getBindings:s=>u("deviceManager","getBindings","query",s),getAllBindings:s=>u("deviceManager","getAllBindings","query",s),setWrapperActive:s=>u("deviceManager","setWrapperActive","mutation",s),getDeviceSettingsAggregate:s=>u("deviceManager","getDeviceSettingsAggregate","query",s),getDeviceLiveInfoAggregate:s=>u("deviceManager","getDeviceLiveInfoAggregate","query",s),getDeviceAggregate:s=>u("deviceManager","getDeviceAggregate","query",s),updateDeviceField:s=>u("deviceManager","updateDeviceField","mutation",s),updateDeviceFieldsBatch:s=>u("deviceManager","updateDeviceFieldsBatch","mutation",s),testField:s=>u("deviceManager","testField","mutation",s),getDeviceStatusAggregate:s=>u("deviceManager","getDeviceStatusAggregate","query",s)},j={getSnapshot:s=>u("deviceState","getSnapshot","query",s),getCapSlice:s=>u("deviceState","getCapSlice","query",s),setCapSlice:s=>u("deviceState","setCapSlice","mutation",s)},x={getDeviceStats:s=>u("networkQuality","getDeviceStats","query",s),reportClientStats:s=>u("networkQuality","reportClientStats","mutation",s)},O={runPipeline:s=>u("pipelineExecutor","runPipeline","mutation",s),runPipelineBatch:s=>u("pipelineExecutor","runPipelineBatch","mutation",s)},Ue={assignPipeline:s=>u("pipelineOrchestrator","assignPipeline","mutation",s),unassignPipeline:s=>u("pipelineOrchestrator","unassignPipeline","mutation",s),getPipelineAssignment:s=>u("pipelineOrchestrator","getPipelineAssignment","query",s),getCameraMetrics:s=>u("pipelineOrchestrator","getCameraMetrics","query",s),assignDecoder:s=>u("pipelineOrchestrator","assignDecoder","mutation",s),unassignDecoder:s=>u("pipelineOrchestrator","unassignDecoder","mutation",s),assignAudio:s=>u("pipelineOrchestrator","assignAudio","mutation",s),unassignAudio:s=>u("pipelineOrchestrator","unassignAudio","mutation",s),getAudioAssignment:s=>u("pipelineOrchestrator","getAudioAssignment","query",s),getAudioAssignments:s=>u("pipelineOrchestrator","getAudioAssignments","query",s),getDecoderAssignment:s=>u("pipelineOrchestrator","getDecoderAssignment","query",s),getCameraSettings:s=>u("pipelineOrchestrator","getCameraSettings","query",s),setCameraStepToggle:s=>u("pipelineOrchestrator","setCameraStepToggle","mutation",s),getCameraStepOverrides:s=>u("pipelineOrchestrator","getCameraStepOverrides","query",s),setCameraStepOverride:s=>u("pipelineOrchestrator","setCameraStepOverride","mutation",s),setCameraPipelineForAgent:s=>u("pipelineOrchestrator","setCameraPipelineForAgent","mutation",s),resolvePipeline:s=>u("pipelineOrchestrator","resolvePipeline","query",s),getDeviceSettingsContribution:s=>u("pipelineOrchestrator","getDeviceSettingsContribution","query",s),getDeviceLiveContribution:s=>u("pipelineOrchestrator","getDeviceLiveContribution","query",s),applyDeviceSettingsPatch:s=>u("pipelineOrchestrator","applyDeviceSettingsPatch","mutation",s)},Fe={detachCamera:s=>u("pipelineRunner","detachCamera","mutation",s),getCameraMetrics:s=>u("pipelineRunner","getCameraMetrics","query",s)},We={getPolicyStatus:s=>u("recordingEngine","getPolicyStatus","query",s)},$e={supportsDevice:s=>u("snapshotProvider","supportsDevice","query",s),getSnapshot:s=>u("snapshotProvider","getSnapshot","query",s)},He={publishCameraStream:s=>u("streamBroker","publishCameraStream","mutation",s),retractCameraStream:s=>u("streamBroker","retractCameraStream","mutation",s),assignProfile:s=>u("streamBroker","assignProfile","mutation",s),unassignProfile:s=>u("streamBroker","unassignProfile","mutation",s),restartProfile:s=>u("streamBroker","restartProfile","mutation",s),getDeviceSettingsContribution:s=>u("streamBroker","getDeviceSettingsContribution","query",s),getDeviceLiveContribution:s=>u("streamBroker","getDeviceLiveContribution","query",s),applyDeviceSettingsPatch:s=>u("streamBroker","applyDeviceSettingsPatch","mutation",s)};return{deviceId:i.deviceId,binding:i,state:{audioMetrics:f(c,i.deviceId,"audio-metrics"),battery:f(c,i.deviceId,"battery"),brightness:f(c,i.deviceId,"brightness"),cameraStreams:f(c,i.deviceId,"camera-streams"),deviceDiscovery:f(c,i.deviceId,"device-discovery"),deviceStatus:f(c,i.deviceId,"device-status"),doorbell:f(c,i.deviceId,"doorbell"),featureProbe:f(c,i.deviceId,"feature-probe"),motion:f(c,i.deviceId,"motion"),motionTrigger:f(c,i.deviceId,"motion-trigger"),ptzAutotrack:f(c,i.deviceId,"ptz-autotrack"),switch:f(c,i.deviceId,"switch"),zoneAnalytics:f(c,i.deviceId,"zone-analytics"),zoneRules:f(c,i.deviceId,"zone-rules"),zones:f(c,i.deviceId,"zones")},accessories:p,audioAnalysis:h,audioMetrics:g,battery:S,brightness:y,cameraCredentials:C,cameraStreams:D,detectionPipeline:M,deviceDiscovery:w,deviceOps:X,deviceStatus:ee,doorbell:te,events:ie,featureProbe:ae,intercom:ne,motion:re,motionDetection:se,motionTrigger:oe,nativeObjectDetection:ce,osd:de,pipelineAnalytics:le,ptz:ue,ptzAutotrack:me,reboot:pe,recording:he,snapshot:ge,switch:Se,webrtcSession:ye,zoneAnalytics:fe,zoneRules:t,zones:I,addonSettings:z,deviceManager:T,deviceState:j,networkQuality:x,pipelineExecutor:O,pipelineOrchestrator:Ue,pipelineRunner:Fe,recordingEngine:We,snapshotProvider:$e,streamBroker:He}}function Xt(r,i,e,o,c){if(e.length===0||i.length===0)return{passed:r,excluded:[]};const l=e.filter(S=>S.enabled!==!1),m=l.filter(S=>S.mode==="include"),d=l.filter(S=>S.mode==="exclude"),u=m.length>0,p=new Map(i.map(S=>[S.id,S])),h=[],g=[];for(const S of r){const y=o(S),C=c?.(S),D=m.some(w=>ve(w,y,C,p)),M=d.some(w=>ve(w,y,C,p));u?D&&!M?h.push(S):g.push(S):M?g.push(S):h.push(S)}return{passed:h,excluded:g}}function ve(r,i,e,o){if(r.classFilter&&r.classFilter.length>0&&e!==void 0&&!r.classFilter.includes(e))return!1;for(const c of r.zoneIds){const l=o.get(c);if(l&&ei(i,l.polygon))return!0}return!1}function ei(r,i){if(i.length<3)return!1;let e=!1;const{x:o,y:c}=r;for(let l=0,m=i.length-1;l<i.length;m=l++){const d=i[l],u=i[m];d.y>c!=u.y>c&&o<(u.x-d.x)*(c-d.y)/(u.y-d.y||Number.EPSILON)+d.x&&(e=!e)}return e}function ti(r){const i=r;function e(t,I,z,T,j){const x=i[t]?.[I];if(!x)throw new Error(`SystemProxy: api has no '${t}.${I}'`);const O=x;return z==="mutation"?O.mutate(T):z==="subscription"?O.subscribe(T,j):O.query(T)}return{addonPages:{listPages:t=>e("addonPages","listPages","query",t)},addons:{list:t=>e("addons","list","query",t),getLogs:t=>e("addons","getLogs","query",t),listPackages:t=>e("addons","listPackages","query",t),installPackage:t=>e("addons","installPackage","mutation",t),installFromWorkspace:t=>e("addons","installFromWorkspace","mutation",t),isWorkspaceAvailable:t=>e("addons","isWorkspaceAvailable","query",t),listWorkspacePackages:t=>e("addons","listWorkspacePackages","query",t),uninstallPackage:t=>e("addons","uninstallPackage","mutation",t),reloadPackages:t=>e("addons","reloadPackages","mutation",t),searchAvailable:t=>e("addons","searchAvailable","query",t),listUpdates:t=>e("addons","listUpdates","query",t),updatePackage:t=>e("addons","updatePackage","mutation",t),rollbackPackage:t=>e("addons","rollbackPackage","mutation",t),forceRefresh:t=>e("addons","forceRefresh","mutation",t),restartServer:t=>e("addons","restartServer","mutation",t),getVersions:t=>e("addons","getVersions","query",t),restartAddon:t=>e("addons","restartAddon","mutation",t),retryLoad:t=>e("addons","retryLoad","mutation",t),getAutoUpdateSettings:t=>e("addons","getAutoUpdateSettings","query",t),setAutoUpdateSettings:t=>e("addons","setAutoUpdateSettings","mutation",t),getAddonAutoUpdate:t=>e("addons","getAddonAutoUpdate","query",t),setAddonAutoUpdate:t=>e("addons","setAddonAutoUpdate","mutation",t),applyAutoUpdateToAll:t=>e("addons","applyAutoUpdateToAll","mutation",t),custom:t=>e("addons","custom","mutation",t),onAddonLogs:(t,I)=>e("addons","onAddonLogs","subscription",t,I)},addonSettings:{getGlobalSettings:t=>e("addonSettings","getGlobalSettings","query",t),updateGlobalSettings:t=>e("addonSettings","updateGlobalSettings","mutation",t)},addonWidgets:{listWidgets:t=>e("addonWidgets","listWidgets","query",t)},alerts:{emit:t=>e("alerts","emit","mutation",t),update:t=>e("alerts","update","mutation",t),list:t=>e("alerts","list","query",t),getUnreadCount:t=>e("alerts","getUnreadCount","query",t),markRead:t=>e("alerts","markRead","mutation",t),markAllRead:t=>e("alerts","markAllRead","mutation",t),dismiss:t=>e("alerts","dismiss","mutation",t)},audioAnalyzer:{analyseChunk:t=>e("audioAnalyzer","analyseChunk","mutation",t),classify:t=>e("audioAnalyzer","classify","query",t),isReady:t=>e("audioAnalyzer","isReady","query",t),dispose:t=>e("audioAnalyzer","dispose","mutation",t),reprobeAudioEngine:t=>e("audioAnalyzer","reprobeAudioEngine","mutation",t)},audioCodec:{listSupportedCodecs:t=>e("audioCodec","listSupportedCodecs","query",t),canHandle:t=>e("audioCodec","canHandle","query",t),createDecodeSession:t=>e("audioCodec","createDecodeSession","mutation",t),createEncodeSession:t=>e("audioCodec","createEncodeSession","mutation",t),closeSession:t=>e("audioCodec","closeSession","mutation",t),pushEncodedFrame:t=>e("audioCodec","pushEncodedFrame","mutation",t),pullPcm:t=>e("audioCodec","pullPcm","query",t),pushPcm:t=>e("audioCodec","pushPcm","mutation",t),pullEncoded:t=>e("audioCodec","pullEncoded","query",t),flushEncode:t=>e("audioCodec","flushEncode","mutation",t),listActiveSessions:t=>e("audioCodec","listActiveSessions","query",t)},authentication:{listProviders:t=>e("authentication","listProviders","query",t),setProviderEnabled:t=>e("authentication","setProviderEnabled","mutation",t)},backup:{listDestinations:t=>e("backup","listDestinations","query",t),trigger:t=>e("backup","trigger","mutation",t),list:t=>e("backup","list","query",t),listLocations:t=>e("backup","listLocations","query",t),getEntries:t=>e("backup","getEntries","query",t),restore:t=>e("backup","restore","mutation",t),delete:t=>e("backup","delete","mutation",t),listArchives:t=>e("backup","listArchives","query",t),upsertDestinationPolicy:t=>e("backup","upsertDestinationPolicy","mutation",t),previewSchedule:t=>e("backup","previewSchedule","query",t)},decoder:{supportsCodec:t=>e("decoder","supportsCodec","query",t),getInfo:t=>e("decoder","getInfo","query",t),createSession:t=>e("decoder","createSession","query",t),destroySession:t=>e("decoder","destroySession","query",t),pushPacket:t=>e("decoder","pushPacket","query",t),openStream:t=>e("decoder","openStream","query",t),pullFrames:t=>e("decoder","pullFrames","query",t),updateConfig:t=>e("decoder","updateConfig","query",t),getStats:t=>e("decoder","getStats","query",t),listActiveSessions:t=>e("decoder","listActiveSessions","query",t),reprobeHwaccel:t=>e("decoder","reprobeHwaccel","mutation",t)},deviceManager:{allocateDeviceId:t=>e("deviceManager","allocateDeviceId","mutation",t),registerDevice:t=>e("deviceManager","registerDevice","mutation",t),removeDevice:t=>e("deviceManager","removeDevice","mutation",t),persistConfig:t=>e("deviceManager","persistConfig","mutation",t),listLocations:t=>e("deviceManager","listLocations","query",t),addLocation:t=>e("deviceManager","addLocation","mutation",t),removeLocation:t=>e("deviceManager","removeLocation","mutation",t),listPersistedByAddon:t=>e("deviceManager","listPersistedByAddon","query",t),listAll:t=>e("deviceManager","listAll","query",t),getChildren:t=>e("deviceManager","getChildren","query",t),listWrappersForCap:t=>e("deviceManager","listWrappersForCap","query",t),listBindableCapsForDeviceType:t=>e("deviceManager","listBindableCapsForDeviceType","query",t),discoverDevices:t=>e("deviceManager","discoverDevices","mutation",t),adoptDevice:t=>e("deviceManager","adoptDevice","mutation",t),getCreationSchema:t=>e("deviceManager","getCreationSchema","query",t),createDevice:t=>e("deviceManager","createDevice","mutation",t),testCreationField:t=>e("deviceManager","testCreationField","mutation",t)},deviceProvider:{start:t=>e("deviceProvider","start","mutation",t),stop:t=>e("deviceProvider","stop","mutation",t),getStatus:t=>e("deviceProvider","getStatus","query",t),getDevices:t=>e("deviceProvider","getDevices","query",t),supportsDiscovery:t=>e("deviceProvider","supportsDiscovery","query",t),discoverDevices:t=>e("deviceProvider","discoverDevices","mutation",t),adoptDiscoveredDevice:t=>e("deviceProvider","adoptDiscoveredDevice","mutation",t),supportsManualCreation:t=>e("deviceProvider","supportsManualCreation","query",t),getChildCreationSchema:t=>e("deviceProvider","getChildCreationSchema","query",t),createDevice:t=>e("deviceProvider","createDevice","mutation",t),testCreationField:t=>e("deviceProvider","testCreationField","mutation",t)},deviceState:{getAllSnapshots:t=>e("deviceState","getAllSnapshots","query",t)},integrations:{list:t=>e("integrations","list","query",t),get:t=>e("integrations","get","query",t),getByAddonId:t=>e("integrations","getByAddonId","query",t),create:t=>e("integrations","create","mutation",t),update:t=>e("integrations","update","mutation",t),delete:t=>e("integrations","delete","mutation",t),getSettings:t=>e("integrations","getSettings","query",t),setSettings:t=>e("integrations","setSettings","mutation",t),getAvailableTypes:t=>e("integrations","getAvailableTypes","query",t),testConnection:t=>e("integrations","testConnection","mutation",t)},localNetwork:{list:t=>e("localNetwork","list","query",t),getPreferred:t=>e("localNetwork","getPreferred","query",t),getConnectionEndpoints:t=>e("localNetwork","getConnectionEndpoints","query",t),getAllowedAddresses:t=>e("localNetwork","getAllowedAddresses","query",t),setAllowedAddresses:t=>e("localNetwork","setAllowedAddresses","mutation",t),resetAllowlistToBestMatch:t=>e("localNetwork","resetAllowlistToBestMatch","mutation",t)},meshNetwork:{getStatus:t=>e("meshNetwork","getStatus","query",t),join:t=>e("meshNetwork","join","mutation",t),leave:t=>e("meshNetwork","leave","mutation",t),listPeers:t=>e("meshNetwork","listPeers","query",t),setPublicIngress:t=>e("meshNetwork","setPublicIngress","mutation",t),setMeshIngress:t=>e("meshNetwork","setMeshIngress","mutation",t)},meshOrchestrator:{listProviders:t=>e("meshOrchestrator","listProviders","query",t),joinProvider:t=>e("meshOrchestrator","joinProvider","mutation",t),leaveProvider:t=>e("meshOrchestrator","leaveProvider","mutation",t)},metricsProvider:{collectSnapshot:t=>e("metricsProvider","collectSnapshot","query",t),getCached:t=>e("metricsProvider","getCached","query",t),getCurrent:t=>e("metricsProvider","getCurrent","query",t),getDiskSpace:t=>e("metricsProvider","getDiskSpace","query",t),getGpuInfo:t=>e("metricsProvider","getGpuInfo","query",t),getCpuTemperature:t=>e("metricsProvider","getCpuTemperature","query",t),getProcessStats:t=>e("metricsProvider","getProcessStats","query",t),listAddonInstances:t=>e("metricsProvider","listAddonInstances","query",t),getAddonStats:t=>e("metricsProvider","getAddonStats","query",t),listNodeProcesses:t=>e("metricsProvider","listNodeProcesses","query",t),killProcess:t=>e("metricsProvider","killProcess","mutation",t)},networkQuality:{getAllStats:t=>e("networkQuality","getAllStats","query",t)},nodes:{topology:t=>e("nodes","topology","query",t),deployAddon:t=>e("nodes","deployAddon","mutation",t),undeployAddon:t=>e("nodes","undeployAddon","mutation",t),restartAddon:t=>e("nodes","restartAddon","mutation",t),restartProcess:t=>e("nodes","restartProcess","mutation",t),restartNode:t=>e("nodes","restartNode","mutation",t),shutdownNode:t=>e("nodes","shutdownNode","mutation",t),renameNode:t=>e("nodes","renameNode","mutation",t),clusterAddonStatus:t=>e("nodes","clusterAddonStatus","query",t),setProcessLogLevel:t=>e("nodes","setProcessLogLevel","mutation",t),executeQuery:t=>e("nodes","executeQuery","mutation",t)},notificationOutput:{send:t=>e("notificationOutput","send","mutation",t),sendTest:t=>e("notificationOutput","sendTest","mutation",t)},pipelineExecutor:{getAvailableEngines:t=>e("pipelineExecutor","getAvailableEngines","query",t),getSelectedEngine:t=>e("pipelineExecutor","getSelectedEngine","query",t),getDefaultSteps:t=>e("pipelineExecutor","getDefaultSteps","query",t),reprobeEngine:t=>e("pipelineExecutor","reprobeEngine","mutation",t),getVideoPipelineSteps:t=>e("pipelineExecutor","getVideoPipelineSteps","query",t),setVideoPipelineSteps:t=>e("pipelineExecutor","setVideoPipelineSteps","mutation",t),getSchema:t=>e("pipelineExecutor","getSchema","query",t),getGlobalSteps:t=>e("pipelineExecutor","getGlobalSteps","query",t),getGlobalPipelineConfig:t=>e("pipelineExecutor","getGlobalPipelineConfig","query",t),getOrchestratorConfigSchema:t=>e("pipelineExecutor","getOrchestratorConfigSchema","query",t),listTemplates:t=>e("pipelineExecutor","listTemplates","query",t),saveTemplate:t=>e("pipelineExecutor","saveTemplate","mutation",t),updateTemplate:t=>e("pipelineExecutor","updateTemplate","mutation",t),deleteTemplate:t=>e("pipelineExecutor","deleteTemplate","mutation",t),getCapabilities:t=>e("pipelineExecutor","getCapabilities","query",t),getAddonModels:t=>e("pipelineExecutor","getAddonModels","query",t),downloadModel:t=>e("pipelineExecutor","downloadModel","mutation",t),deleteModel:t=>e("pipelineExecutor","deleteModel","mutation",t),detect:t=>e("pipelineExecutor","detect","query",t),cacheFrameInPool:t=>e("pipelineExecutor","cacheFrameInPool","mutation",t),inferCached:t=>e("pipelineExecutor","inferCached","mutation",t),uncacheFrame:t=>e("pipelineExecutor","uncacheFrame","mutation",t),getEffectiveTuning:t=>e("pipelineExecutor","getEffectiveTuning","query",t),listLoadedEngines:t=>e("pipelineExecutor","listLoadedEngines","query",t),spinEngine:t=>e("pipelineExecutor","spinEngine","mutation",t),killEngine:t=>e("pipelineExecutor","killEngine","mutation",t),listReferenceImages:t=>e("pipelineExecutor","listReferenceImages","query",t),getReferenceImage:t=>e("pipelineExecutor","getReferenceImage","query",t),getReferenceAudioFiles:t=>e("pipelineExecutor","getReferenceAudioFiles","query",t),getReferenceAudio:t=>e("pipelineExecutor","getReferenceAudio","query",t),getAudioCapabilities:t=>e("pipelineExecutor","getAudioCapabilities","query",t),runAudioTest:t=>e("pipelineExecutor","runAudioTest","mutation",t),getDetectionConfigSchema:t=>e("pipelineExecutor","getDetectionConfigSchema","query",t)},pipelineOrchestrator:{rebalance:t=>e("pipelineOrchestrator","rebalance","mutation",t),getPipelineAssignments:t=>e("pipelineOrchestrator","getPipelineAssignments","query",t),getAgentLoad:t=>e("pipelineOrchestrator","getAgentLoad","query",t),getGlobalMetrics:t=>e("pipelineOrchestrator","getGlobalMetrics","query",t),getCapabilityBindings:t=>e("pipelineOrchestrator","getCapabilityBindings","query",t),setCapabilityBinding:t=>e("pipelineOrchestrator","setCapabilityBinding","mutation",t),getDecoderAssignments:t=>e("pipelineOrchestrator","getDecoderAssignments","query",t),getAudioNodeLoad:t=>e("pipelineOrchestrator","getAudioNodeLoad","query",t),getAgentSettings:t=>e("pipelineOrchestrator","getAgentSettings","query",t),listAgentSettings:t=>e("pipelineOrchestrator","listAgentSettings","query",t),setAgentAddonDefaults:t=>e("pipelineOrchestrator","setAgentAddonDefaults","mutation",t),removeAgentSettings:t=>e("pipelineOrchestrator","removeAgentSettings","mutation",t),listTemplates:t=>e("pipelineOrchestrator","listTemplates","query",t),saveTemplate:t=>e("pipelineOrchestrator","saveTemplate","mutation",t),updateTemplate:t=>e("pipelineOrchestrator","updateTemplate","mutation",t),deleteTemplate:t=>e("pipelineOrchestrator","deleteTemplate","mutation",t)},pipelineRunner:{attachCamera:t=>e("pipelineRunner","attachCamera","mutation",t),reportMotion:t=>e("pipelineRunner","reportMotion","mutation",t),getLocalLoad:t=>e("pipelineRunner","getLocalLoad","query",t),getLocalMetrics:t=>e("pipelineRunner","getLocalMetrics","query",t),getAllCameraMetrics:t=>e("pipelineRunner","getAllCameraMetrics","query",t),getLocalCameras:t=>e("pipelineRunner","getLocalCameras","query",t)},platformProbe:{getCapabilities:t=>e("platformProbe","getCapabilities","query",t),getHardware:t=>e("platformProbe","getHardware","query",t),resolveInferenceConfig:t=>e("platformProbe","resolveInferenceConfig","query",t),resolveHwAccel:t=>e("platformProbe","resolveHwAccel","query",t)},recordingEngine:{getStatus:t=>e("recordingEngine","getStatus","query",t),enable:t=>e("recordingEngine","enable","mutation",t),disable:t=>e("recordingEngine","disable","mutation",t),getConfig:t=>e("recordingEngine","getConfig","query",t),updateConfig:t=>e("recordingEngine","updateConfig","mutation",t),getPlaylist:t=>e("recordingEngine","getPlaylist","query",t),getThumbnail:t=>e("recordingEngine","getThumbnail","query",t),getSegments:t=>e("recordingEngine","getSegments","query",t),getAvailability:t=>e("recordingEngine","getAvailability","query",t),estimateStorage:t=>e("recordingEngine","estimateStorage","query",t),estimateGlobalStorage:t=>e("recordingEngine","estimateGlobalStorage","query",t),getStorageUsage:t=>e("recordingEngine","getStorageUsage","query",t),setPolicy:t=>e("recordingEngine","setPolicy","mutation",t),getPolicy:t=>e("recordingEngine","getPolicy","query",t),getRetentionConfig:t=>e("recordingEngine","getRetentionConfig","query",t),updateRetentionConfig:t=>e("recordingEngine","updateRetentionConfig","mutation",t),getMotionStats:t=>e("recordingEngine","getMotionStats","query",t)},remoteAccess:{listProviders:t=>e("remoteAccess","listProviders","query",t),startProvider:t=>e("remoteAccess","startProvider","mutation",t),stopProvider:t=>e("remoteAccess","stopProvider","mutation",t)},settingsStore:{get:t=>e("settingsStore","get","query",t),set:t=>e("settingsStore","set","mutation",t),query:t=>e("settingsStore","query","query",t),insert:t=>e("settingsStore","insert","mutation",t),update:t=>e("settingsStore","update","mutation",t),delete:t=>e("settingsStore","delete","mutation",t),count:t=>e("settingsStore","count","query",t),isEmpty:t=>e("settingsStore","isEmpty","query",t),declareCollection:t=>e("settingsStore","declareCollection","mutation",t)},storage:{resolve:t=>e("storage","resolve","query",t),write:t=>e("storage","write","mutation",t),read:t=>e("storage","read","query",t),exists:t=>e("storage","exists","query",t),list:t=>e("storage","list","query",t),delete:t=>e("storage","delete","mutation",t),getAvailableSpace:t=>e("storage","getAvailableSpace","query",t),beginUpload:t=>e("storage","beginUpload","mutation",t),writeChunk:t=>e("storage","writeChunk","mutation",t),finalizeUpload:t=>e("storage","finalizeUpload","mutation",t),abortUpload:t=>e("storage","abortUpload","mutation",t),beginDownload:t=>e("storage","beginDownload","mutation",t),readChunk:t=>e("storage","readChunk","query",t),endDownload:t=>e("storage","endDownload","mutation",t),listLocations:t=>e("storage","listLocations","query",t),getDefaultLocation:t=>e("storage","getDefaultLocation","query",t),upsertLocation:t=>e("storage","upsertLocation","mutation",t),deleteLocation:t=>e("storage","deleteLocation","mutation",t),testLocation:t=>e("storage","testLocation","query",t),listProviders:t=>e("storage","listProviders","query",t),testConfig:t=>e("storage","testConfig","query",t)},streamBroker:{listAllCameraStreams:t=>e("streamBroker","listAllCameraStreams","query",t),listAllProfileSlots:t=>e("streamBroker","listAllProfileSlots","query",t),getBrokerStats:t=>e("streamBroker","getBrokerStats","query",t),listClients:t=>e("streamBroker","listClients","query",t),killClient:t=>e("streamBroker","killClient","mutation",t),getStreamUrl:t=>e("streamBroker","getStreamUrl","query",t),getBroker:t=>e("streamBroker","getBroker","query",t),setPreBufferDuration:t=>e("streamBroker","setPreBufferDuration","mutation",t),getPreBufferInfo:t=>e("streamBroker","getPreBufferInfo","query",t),getRtspPort:t=>e("streamBroker","getRtspPort","query",t),getAllRtspEntries:t=>e("streamBroker","getAllRtspEntries","query",t),getRtspEntry:t=>e("streamBroker","getRtspEntry","query",t),regenerateRtspToken:t=>e("streamBroker","regenerateRtspToken","mutation",t),setRtspEnabled:t=>e("streamBroker","setRtspEnabled","mutation",t),isRtspEnabled:t=>e("streamBroker","isRtspEnabled","query",t)},system:{info:t=>e("system","info","query",t),health:t=>e("system","health","query",t),featureFlags:t=>e("system","featureFlags","query",t),networkAddresses:t=>e("system","networkAddresses","query",t),getRetentionConfig:t=>e("system","getRetentionConfig","query",t),setRetentionConfig:t=>e("system","setRetentionConfig","mutation",t),forceRetentionCleanup:t=>e("system","forceRetentionCleanup","mutation",t)},toast:{onToast:(t,I)=>e("toast","onToast","subscription",t,I)},turnOrchestrator:{listProviders:t=>e("turnOrchestrator","listProviders","query",t),getAllServers:t=>e("turnOrchestrator","getAllServers","query",t),setProviderEnabled:t=>e("turnOrchestrator","setProviderEnabled","mutation",t)},turnProvider:{getTurnServers:t=>e("turnProvider","getTurnServers","query",t)},userManagement:{listUsers:t=>e("userManagement","listUsers","query",t),createUser:t=>e("userManagement","createUser","mutation",t),updateUser:t=>e("userManagement","updateUser","mutation",t),deleteUser:t=>e("userManagement","deleteUser","mutation",t),resetPassword:t=>e("userManagement","resetPassword","mutation",t),validateCredentials:t=>e("userManagement","validateCredentials","mutation",t),listApiKeys:t=>e("userManagement","listApiKeys","query",t),createApiKey:t=>e("userManagement","createApiKey","mutation",t),revokeApiKey:t=>e("userManagement","revokeApiKey","mutation",t),validateApiKey:t=>e("userManagement","validateApiKey","mutation",t),createScopedToken:t=>e("userManagement","createScopedToken","mutation",t),revokeScopedToken:t=>e("userManagement","revokeScopedToken","mutation",t),validateScopedToken:t=>e("userManagement","validateScopedToken","query",t),listScopedTokens:t=>e("userManagement","listScopedTokens","query",t)}}}const ii="device.state-changed",ai="capability.binding-changed",ni="device.registered",ri="device.unregistered",si="device.updated";class oi{constructor(i){this.api=i,this.stateSource=ze(this.stateMirror,this.handleListeners,this.api)}stateMirror=new Map;bindings=new Map;devices=new Map;handleListeners=new Map;globalStateListeners=new Set;capListeners=new Map;deviceListeners=new Map;addedListeners=new Set;removedListeners=new Set;pendingWaits=new Set;stateSource;bridges=[];initialized=!1;initPromise=null;async init(i=15e3){if(!this.initialized){if(this.initPromise)return this.initPromise;this.initPromise=(async()=>{const e=(m,d)=>Number.isFinite(i)?new Promise((u,p)=>{const h=setTimeout(()=>p(new Error(`SystemMirror.init: '${d}' timed out after ${i}ms`)),i);m.then(g=>{clearTimeout(h),u(g)},g=>{clearTimeout(h),p(g)})}):m,[o,c,l]=await Promise.all([e(this.api.deviceManager.getAllBindings.query({}),"deviceManager.getAllBindings"),e(this.api.deviceState.getAllSnapshots.query({}),"deviceState.getAllSnapshots"),e(this.api.deviceManager.listAll.query({}),"deviceManager.listAll")]);for(const m of o)this.bindings.set(m.deviceId,m);for(const[m,d]of Object.entries(c)){const u=Number(m);if(!Number.isFinite(u))continue;const p=new Map;for(const[h,g]of Object.entries(d))p.set(h,g);this.stateMirror.set(u,p)}for(const m of l)this.devices.set(m.id,m);try{this.subscribeBus()}catch{}this.initialized=!0})();try{await this.initPromise}finally{this.initPromise=null}}}isReady(){return this.initialized}async awaitReady(){if(!this.initialized)return this.initPromise?this.initPromise:this.init()}dispose(){for(const i of this.bridges)try{i.unsubscribe()}catch{}this.bridges=[],this.handleListeners.clear(),this.globalStateListeners.clear(),this.capListeners.clear(),this.deviceListeners.clear(),this.addedListeners.clear(),this.removedListeners.clear(),this.pendingWaits.clear(),this.initialized=!1}getDeviceById(i){const e=this.bindings.get(i);return e?xe(this.api,e,{stateSource:this.stateSource}):null}getDeviceByName(i){for(const e of this.devices.values())if(e.name===i)return this.getDeviceById(e.id);return null}getDeviceByStableId(i){for(const e of this.devices.values())if(e.stableId===i)return this.getDeviceById(e.id);return null}getDevicesByAddon(i){return this.query({addonId:i})}getDevicesByType(i){return this.query({type:i})}getDeviceInfo(i){return this.devices.get(i)??null}getAllDevices(){const i=[];for(const e of this.bindings.keys()){const o=this.getDeviceById(e);o&&i.push(o)}return i}filterByCap(i){return this.query({caps:i})}query(i={}){const e=[];for(const[o,c]of this.bindings){const l=this.devices.get(o);if(i.id!==void 0&&!F(o,i.id)||i.stableId!==void 0&&(!l||!F(l.stableId,i.stableId))||i.addonId!==void 0&&(!l||!F(l.addonId,i.addonId))||i.type!==void 0&&(!l||!F(l.type,i.type)))continue;if(i.caps!==void 0){const d=Z(i.caps),u=new Set(c.entries.map(p=>p.capName));if(!d.every(p=>u.has(p)))continue}if(i.anyCap!==void 0){const d=Z(i.anyCap),u=new Set(c.entries.map(p=>p.capName));if(!d.some(p=>u.has(p)))continue}if(i.name!==void 0&&(!l||!ci(l.name,i.name))||i.online!==void 0&&(!l||l.online!==i.online))continue;if(i.parentDeviceId!==void 0){if(!l)continue;const d=i.parentDeviceId;if((l.parentDeviceId??null)!==d)continue}if(i.feature!==void 0&&(!l||!Z(i.feature).every(u=>l.features.includes(u)))||i.isCamera!==void 0&&(!l||l.isCamera!==i.isCamera))continue;const m=this.getDeviceById(o);if(m){if(i.where&&l){if(!i.where(l,m))continue}else if(i.where&&!l)continue;e.push(m)}}return e}whereState(i,e){const o=[];for(const[c,l]of this.stateMirror){const m=l.get(i);if(!m||!e(m,c))continue;const d=this.getDeviceById(c);d&&o.push(d)}return o}mapState(i,e){const o=[];for(const[c,l]of this.stateMirror){const m=l.get(i);m&&o.push(e(m,c))}return o}findState(i,e){for(const[o,c]of this.stateMirror){const l=c.get(i);if(l&&e(l,o))return this.getDeviceById(o)}return null}countByCap(i){let e=0;for(const o of this.bindings.values())o.entries.some(c=>c.capName===i)&&e++;return e}countByState(i,e){let o=0;for(const[c,l]of this.stateMirror){const m=l.get(i);m&&e(m,c)&&o++}return o}listen(i){return this.globalStateListeners.add(i),()=>{this.globalStateListeners.delete(i)}}listenCap(i,e){let o=this.capListeners.get(i);return o||(o=new Set,this.capListeners.set(i,o)),o.add(e),()=>{o.delete(e),o.size===0&&this.capListeners.delete(i)}}listenDevice(i,e){let o=this.deviceListeners.get(i);return o||(o=new Set,this.deviceListeners.set(i,o)),o.add(e),()=>{o.delete(e),o.size===0&&this.deviceListeners.delete(i)}}onDeviceAdded(i){return this.addedListeners.add(i),()=>{this.addedListeners.delete(i)}}onDeviceRemoved(i){return this.removedListeners.add(i),()=>{this.removedListeners.delete(i)}}waitForState(i,e,o,c=3e4){return new Promise((l,m)=>{const u=(()=>{const g=this.stateMirror.get(i)?.get(e);return g&&o(g)?g:null})();if(u){l(u);return}let p=null;const h=this.listenDevice(i,(g,S,y)=>{S===e&&y&&o(y)&&(p&&clearTimeout(p),h(),l(y))});Number.isFinite(c)&&(p=setTimeout(()=>{h(),m(new Error(`waitForState timed out after ${c}ms (deviceId=${i}, capName=${e})`))},c))})}waitForDevice(i,e=3e4){return new Promise((o,c)=>{const l=this.getDeviceById(i);if(l){o(l);return}let m=null;const d=this.onDeviceAdded(u=>{if(u!==i)return;const p=this.getDeviceById(u);p&&(m&&clearTimeout(m),d(),o(p))});Number.isFinite(e)&&(m=setTimeout(()=>{d(),c(new Error(`waitForDevice timed out after ${e}ms (deviceId=${i})`))},e))})}async forEachCap(i,e){for(const o of this.filterByCap(i))await e(o)}async invokeCap(i,e,o,c={}){const l=this.filterByCap(i),m=Math.max(1,c.parallelism??l.length),d=[];for(let u=0;u<l.length;u+=m){const p=l.slice(u,u+m),h=await Promise.allSettled(p.map(async g=>{const S=g[i];if(!S||typeof S[e]!="function")throw new Error(`device '${g.deviceId}' does not expose '${i}.${e}'`);return await S[e](o)}));for(let g=0;g<h.length;g++){const S=p[g],y=h[g];y.status==="fulfilled"?d.push({deviceId:S.deviceId,ok:!0,result:y.value}):d.push({deviceId:S.deviceId,ok:!1,error:y.reason})}}return d}summary(){const i={},e={},o={};let c=0,l=0;for(const m of this.bindings.values())for(const d of m.entries)i[d.capName]=(i[d.capName]??0)+1;for(const m of this.devices.values())e[m.addonId]=(e[m.addonId]??0)+1,o[m.type]=(o[m.type]??0)+1,m.online?c++:l++;return{totalDevices:this.bindings.size,online:c,offline:l,byCap:i,byAddon:e,byType:o,statedDevices:this.stateMirror.size}}dump(i){const e=c=>{const l=this.devices.get(c)??null,m=this.bindings.get(c)??null,d={},u=this.stateMirror.get(c);if(u)for(const[p,h]of u)d[p]={...h};return{deviceId:c,info:l,binding:m?{...m,entries:m.entries.map(p=>({...p}))}:null,state:d}};if(i!==void 0)return e(i);const o=[];for(const c of this.bindings.keys())o.push(e(c));return o}getRawMirror(){return this.stateMirror}getSystemState(){const i=new Map;for(const[e,o]of this.stateMirror){const c=new Map;for(const[l,m]of o)c.set(l,{...m});i.set(e,c)}return i}subscribeBus(){if(!this.api.live?.onEvent)return;const i=this.api.live.onEvent;this.bridges.push(i.subscribe({category:ii},{onData:e=>{const o=e.data;!o||typeof o.deviceId!="number"||typeof o.capName!="string"||this.applyStateUpdate(o.deviceId,o.capName,o.slice)}})),this.bridges.push(i.subscribe({category:ai},{onData:e=>{const o=e.data,c=typeof o?.deviceId=="number"?o.deviceId:o?.source?.type==="device"&&typeof o.source.id=="number"?o.source.id:null;c!==null&&this.refreshBinding(c)}})),this.bridges.push(i.subscribe({category:ni},{onData:e=>{const o=e.data;typeof o?.deviceId=="number"&&this.refreshDeviceMetadata(o.deviceId,"added")}})),this.bridges.push(i.subscribe({category:ri},{onData:e=>{const o=e.data;typeof o?.deviceId=="number"&&this.applyDeviceRemoval(o.deviceId)}})),this.bridges.push(i.subscribe({category:si},{onData:e=>{const o=e.data;typeof o?.deviceId=="number"&&this.refreshDeviceMetadata(o.deviceId,"updated")}}))}applyStateUpdate(i,e,o){let c=this.stateMirror.get(i);c||(c=new Map,this.stateMirror.set(i,c)),o===void 0?c.delete(e):c.set(e,o);const l=`${i}:${e}`,m=this.handleListeners.get(l);if(m)for(const p of m)try{p(o)}catch{}for(const p of this.globalStateListeners)try{p(i,e,o)}catch{}const d=this.capListeners.get(e);if(d)for(const p of d)try{p(i,o)}catch{}const u=this.deviceListeners.get(i);if(u)for(const p of u)try{p(i,e,o)}catch{}}applyDeviceRemoval(i){const e=this.devices.get(i)??null;this.bindings.delete(i),this.devices.delete(i),this.stateMirror.delete(i);for(const o of this.removedListeners)try{o(i,e)}catch{}}async refreshBinding(i){try{const o=(await this.api.deviceManager.getAllBindings.query({})).find(c=>c.deviceId===i);o?this.bindings.set(i,o):this.applyDeviceRemoval(i)}catch{}}async refreshDeviceMetadata(i,e){try{const c=(await this.api.deviceManager.listAll.query({})).find(m=>m.id===i);if(!c)return;const l=!this.devices.has(i);if(this.devices.set(i,c),e==="added"&&l){await this.refreshBinding(i);for(const m of this.addedListeners)try{m(i,c)}catch{}}}catch{}}}function F(r,i){return Array.isArray(i)?i.includes(r):r===i}function Z(r){return Array.isArray(r)?r:[r]}function ci(r,i){return typeof i=="string"?r===i:i instanceof RegExp?i.test(r):"exact"in i?r===i.exact:"contains"in i?r.toLowerCase().includes(i.contains.toLowerCase()):!1}function di(r){return r}function li(r,i,e){return{input:r,output:i,kind:e?.kind??"query",auth:e?.auth??"protected",scope:e?.scope??{kind:"system"}}}const ui={accessories:"accessories",addonPages:"addon-pages",addonPagesSource:"addon-pages-source",addonRoutes:"addon-routes",addonSettings:"addon-settings",addonWidgets:"addon-widgets",addonWidgetsSource:"addon-widgets-source",addons:"addons",adminUi:"admin-ui",advancedNotifier:"advanced-notifier",alerts:"alerts",audioAnalysis:"audio-analysis",audioAnalyzer:"audio-analyzer",audioCodec:"audio-codec",audioMetrics:"audio-metrics",authProvider:"auth-provider",authentication:"authentication",backup:"backup",battery:"battery",brightness:"brightness",cameraCredentials:"camera-credentials",cameraStreams:"camera-streams",decoder:"decoder",detectionPipeline:"detection-pipeline",deviceDiscovery:"device-discovery",deviceManager:"device-manager",deviceOps:"device-ops",deviceProvider:"device-provider",deviceState:"device-state",deviceStatus:"device-status",doorbell:"doorbell",embeddingEncoder:"embedding-encoder",events:"events",featureProbe:"feature-probe",integrations:"integrations",intercom:"intercom",localNetwork:"local-network",logDestination:"log-destination",meshNetwork:"mesh-network",meshOrchestrator:"mesh-orchestrator",metricsProvider:"metrics-provider",motion:"motion",motionDetection:"motion-detection",motionTrigger:"motion-trigger",nativeObjectDetection:"native-object-detection",networkAccess:"network-access",networkQuality:"network-quality",nodes:"nodes",notificationOutput:"notification-output",osd:"osd",pipelineAnalytics:"pipeline-analytics",pipelineExecutor:"pipeline-executor",pipelineOrchestrator:"pipeline-orchestrator",pipelineRunner:"pipeline-runner",platformProbe:"platform-probe",ptz:"ptz",ptzAutotrack:"ptz-autotrack",reboot:"reboot",recording:"recording",recordingEngine:"recording-engine",remoteAccess:"remote-access",restreamer:"restreamer",settingsStore:"settings-store",snapshot:"snapshot",snapshotProvider:"snapshot-provider",storage:"storage",storageProvider:"storage-provider",streamBroker:"stream-broker",streamingEngine:"streaming-engine",switch:"switch",system:"system",toast:"toast",turnOrchestrator:"turn-orchestrator",turnProvider:"turn-provider",userManagement:"user-management",webrtc:"webrtc",webrtcSession:"webrtc-session",zoneAnalytics:"zone-analytics",zoneRules:"zone-rules",zones:"zones"},mi=[{key:"accessories",name:"accessories"},{key:"addonPages",name:"addon-pages"},{key:"addonPagesSource",name:"addon-pages-source"},{key:"addonRoutes",name:"addon-routes"},{key:"addonSettings",name:"addon-settings"},{key:"addonWidgets",name:"addon-widgets"},{key:"addonWidgetsSource",name:"addon-widgets-source"},{key:"addons",name:"addons"},{key:"adminUi",name:"admin-ui"},{key:"advancedNotifier",name:"advanced-notifier"},{key:"alerts",name:"alerts"},{key:"audioAnalysis",name:"audio-analysis"},{key:"audioAnalyzer",name:"audio-analyzer"},{key:"audioCodec",name:"audio-codec"},{key:"audioMetrics",name:"audio-metrics"},{key:"authProvider",name:"auth-provider"},{key:"authentication",name:"authentication"},{key:"backup",name:"backup"},{key:"battery",name:"battery"},{key:"brightness",name:"brightness"},{key:"cameraCredentials",name:"camera-credentials"},{key:"cameraStreams",name:"camera-streams"},{key:"decoder",name:"decoder"},{key:"detectionPipeline",name:"detection-pipeline"},{key:"deviceDiscovery",name:"device-discovery"},{key:"deviceManager",name:"device-manager"},{key:"deviceOps",name:"device-ops"},{key:"deviceProvider",name:"device-provider"},{key:"deviceState",name:"device-state"},{key:"deviceStatus",name:"device-status"},{key:"doorbell",name:"doorbell"},{key:"embeddingEncoder",name:"embedding-encoder"},{key:"events",name:"events"},{key:"featureProbe",name:"feature-probe"},{key:"integrations",name:"integrations"},{key:"intercom",name:"intercom"},{key:"localNetwork",name:"local-network"},{key:"logDestination",name:"log-destination"},{key:"meshNetwork",name:"mesh-network"},{key:"meshOrchestrator",name:"mesh-orchestrator"},{key:"metricsProvider",name:"metrics-provider"},{key:"motion",name:"motion"},{key:"motionDetection",name:"motion-detection"},{key:"motionTrigger",name:"motion-trigger"},{key:"nativeObjectDetection",name:"native-object-detection"},{key:"networkAccess",name:"network-access"},{key:"networkQuality",name:"network-quality"},{key:"nodes",name:"nodes"},{key:"notificationOutput",name:"notification-output"},{key:"osd",name:"osd"},{key:"pipelineAnalytics",name:"pipeline-analytics"},{key:"pipelineExecutor",name:"pipeline-executor"},{key:"pipelineOrchestrator",name:"pipeline-orchestrator"},{key:"pipelineRunner",name:"pipeline-runner"},{key:"platformProbe",name:"platform-probe"},{key:"ptz",name:"ptz"},{key:"ptzAutotrack",name:"ptz-autotrack"},{key:"reboot",name:"reboot"},{key:"recording",name:"recording"},{key:"recordingEngine",name:"recording-engine"},{key:"remoteAccess",name:"remote-access"},{key:"restreamer",name:"restreamer"},{key:"settingsStore",name:"settings-store"},{key:"snapshot",name:"snapshot"},{key:"snapshotProvider",name:"snapshot-provider"},{key:"storage",name:"storage"},{key:"storageProvider",name:"storage-provider"},{key:"streamBroker",name:"stream-broker"},{key:"streamingEngine",name:"streaming-engine"},{key:"switch",name:"switch"},{key:"system",name:"system"},{key:"toast",name:"toast"},{key:"turnOrchestrator",name:"turn-orchestrator"},{key:"turnProvider",name:"turn-provider"},{key:"userManagement",name:"user-management"},{key:"webrtc",name:"webrtc"},{key:"webrtcSession",name:"webrtc-session"},{key:"zoneAnalytics",name:"zone-analytics"},{key:"zoneRules",name:"zone-rules"},{key:"zones",name:"zones"}],pi=[a.accessoriesCapability,a.addonPagesCapability,a.addonPagesSourceCapability,a.addonRoutesCapability,a.addonSettingsCapability,a.addonWidgetsCapability,a.addonWidgetsSourceCapability,a.addonsCapability,a.adminUiCapability,a.advancedNotifierCapability,a.alertsCapability,a.audioAnalysisCapability,a.audioAnalyzerCapability,a.audioCodecCapability,a.audioMetricsCapability,a.authProviderCapability,a.authenticationCapability,a.backupCapability,a.batteryCapability,a.brightnessCapability,a.cameraCredentialsCapability,a.cameraStreamsCapability,a.decoderCapability,a.detectionPipelineCapability,a.deviceDiscoveryCapability,a.deviceManagerCapability,a.deviceOpsCapability,a.deviceProviderCapability,a.deviceStateCapability,a.deviceStatusCapability,a.doorbellCapability,a.embeddingEncoderCapability,a.eventsCapability,a.featureProbeCapability,a.integrationsCapability,a.intercomCapability,a.localNetworkCapability,a.logDestinationCapability,a.meshNetworkCapability,a.meshOrchestratorCapability,a.metricsProviderCapability,a.motionCapability,a.motionDetectionCapability,a.motionTriggerCapability,a.nativeObjectDetectionCapability,a.networkAccessCapability,a.networkQualityCapability,a.nodesCapability,a.notificationOutputCapability,a.osdCapability,a.pipelineAnalyticsCapability,a.pipelineExecutorCapability,a.pipelineOrchestratorCapability,a.pipelineRunnerCapability,a.platformProbeCapability,a.ptzCapability,a.ptzAutotrackCapability,a.rebootCapability,a.recordingCapability,a.recordingEngineCapability,a.remoteAccessCapability,a.restreamerCapability,a.settingsStoreCapability,a.snapshotCapability,a.snapshotProviderCapability,a.storageCapability,a.storageProviderCapability,a.streamBrokerCapability,a.streamingEngineCapability,a.switchCapability,a.systemCapability,a.toastCapability,a.turnOrchestratorCapability,a.turnProviderCapability,a.userManagementCapability,a.webrtcCapability,a.webrtcSessionCapability,a.zoneAnalyticsCapability,a.zoneRulesCapability,a.zonesCapability],hi=["accessories","battery","brightness","camera-credentials","device-discovery","device-status","doorbell","feature-probe","intercom","motion","motion-trigger","native-object-detection","osd","ptz","ptz-autotrack","snapshot","switch"];function gi(r){try{const i=new URL(r);return!i.username&&!i.password?r:(i.username="",i.password="",i.toString())}catch{return r}}class Si{constructor(i){this.capacity=i,this.items=Array.from({length:i})}items;head=0;tail=0;count=0;get size(){return this.count}push(i){this.items[this.tail]=i,this.tail=(this.tail+1)%this.capacity,this.count<this.capacity?this.count++:this.head=(this.head+1)%this.capacity}drain(i){const e=[],o=Math.min(i,this.count);for(let c=0;c<o;c++)e.push(this.items[this.head]),this.items[this.head]=void 0,this.head=(this.head+1)%this.capacity;return this.count-=o,e}}function yi(r,i,e){const o={};for(const c of Object.keys(e))o[c]=l=>r.addons.custom.mutate({addonId:i,action:c,input:l});return o}n.ACCESSORY_LABEL=a.ACCESSORY_LABEL;n.APPLE_SA_TO_MACRO=a.APPLE_SA_TO_MACRO;n.AUDIO_BACKEND_CHOICES=a.AUDIO_BACKEND_CHOICES;n.AUDIO_MACRO_LABELS=a.AUDIO_MACRO_LABELS;n.AccessoriesStatusSchema=a.AccessoriesStatusSchema;n.AccessoryKind=a.AccessoryKind;n.AddonAutoUpdateSchema=a.AddonAutoUpdateSchema;n.AddonListItemSchema=a.AddonListItemSchema;n.AddonPageDeclarationSchema=a.AddonPageDeclarationSchema;n.AddonPageInfoSchema=a.AddonPageInfoSchema;n.AgentLoadSummarySchema=a.AgentLoadSummarySchema;n.AlertSchema=a.AlertSchema;n.AlertSeveritySchema=a.AlertSeveritySchema;n.AlertSourceSchema=a.AlertSourceSchema;n.AlertStatusSchema=a.AlertStatusSchema;n.ApiKeyRecordSchema=a.ApiKeyRecordSchema;n.ApiKeySummarySchema=a.ApiKeySummarySchema;n.ArchiveEntrySchema=a.ArchiveEntrySchema;n.ArchiveManifestSchema=a.ArchiveManifestSchema;n.AudioAnalysisResultSchema=a.AudioAnalysisResultSchema;n.AudioAnalysisSettingsSchema=a.AudioAnalysisSettingsSchema;n.AudioChunkInputSchema=a.AudioChunkInputSchema;n.AudioClassSummarySchema=a.AudioClassSummarySchema;n.AudioClassificationLabelSchema=a.AudioClassificationLabelSchema;n.AudioClassificationResultSchema=a.AudioClassificationResultSchema;n.AudioCodecInfoSchema=a.AudioCodecInfoSchema;n.AudioDecodeSessionConfigSchema=a.AudioDecodeSessionConfigSchema;n.AudioEncodeSessionConfigSchema=a.AudioEncodeSessionConfigSchema;n.AudioEncodedChunkSchema=a.AudioEncodedChunkSchema;n.AudioEventSchema=a.AudioEventSchema;n.AudioLevelSchema=a.AudioLevelSchema;n.AudioMetricsHistoryPointSchema=a.AudioMetricsHistoryPointSchema;n.AudioMetricsHistorySchema=a.AudioMetricsHistorySchema;n.AudioMetricsSnapshotSchema=a.AudioMetricsSnapshotSchema;n.AudioPcmChunkSchema=a.AudioPcmChunkSchema;n.AuthProviderInfoSchema=a.AuthProviderInfoSchema;n.AuthResultSchema=a.AuthResultSchema;n.AutoUpdateSettingsSchema=a.AutoUpdateSettingsSchema;n.AvailableIntegrationTypeSchema=a.AvailableIntegrationTypeSchema;n.BATTERY_DEVICE_PROFILE=a.BATTERY_DEVICE_PROFILE;n.BackupDestinationInfoSchema=a.BackupDestinationInfoSchema;n.BackupEntrySchema=a.BackupEntrySchema;n.BatteryStatusSchema=a.BatteryStatusSchema;n.BoundingBoxSchema=a.BoundingBoxSchema;n.BrightnessStatusSchema=a.BrightnessStatusSchema;n.BrokerAudioClientSchema=a.BrokerAudioClientSchema;n.BrokerClientsSchema=a.BrokerClientsSchema;n.BrokerDecodedClientSchema=a.BrokerDecodedClientSchema;n.BrokerRtspClientSchema=a.BrokerRtspClientSchema;n.BrokerStatsSchema=a.BrokerStatsSchema;n.BrokerStatusSchema=a.BrokerStatusSchema;n.CAM_PROFILE_ORDER=a.CAM_PROFILE_ORDER;n.CamProfileSchema=a.CamProfileSchema;n.CamStreamKindSchema=a.CamStreamKindSchema;n.CamStreamResolutionSchema=a.CamStreamResolutionSchema;n.CameraCredentialsSchema=a.CameraCredentialsSchema;n.CameraCredentialsStatusSchema=a.CameraCredentialsStatusSchema;n.CameraMetricsSchema=a.CameraMetricsSchema;n.CameraMetricsWithDeviceIdSchema=a.CameraMetricsWithDeviceIdSchema;n.CameraStreamSchema=a.CameraStreamSchema;n.CapabilityBindingsSchema=a.CapabilityBindingsSchema;n.ChargingStatus=a.ChargingStatus;n.ClientNetworkStatsSchema=a.ClientNetworkStatsSchema;n.ClusterAddonNodeDeploymentSchema=a.ClusterAddonNodeDeploymentSchema;n.ClusterAddonStatusEntrySchema=a.ClusterAddonStatusEntrySchema;n.CollectionColumnSchema=a.CollectionColumnSchema;n.CollectionIndexSchema=a.CollectionIndexSchema;n.ConfigEntrySchema=a.ConfigEntrySchema;n.ConfigSectionWithValuesSchema=a.ConfigSectionWithValuesSchema;n.ConfigTabDeclarationSchema=a.ConfigTabDeclarationSchema;n.CreateApiKeyInputSchema=a.CreateApiKeyInputSchema;n.CreateApiKeyResultSchema=a.CreateApiKeyResultSchema;n.CreateIntegrationInputSchema=a.CreateIntegrationInputSchema;n.CreateScopedTokenInputSchema=a.CreateScopedTokenInputSchema;n.CreateScopedTokenResultSchema=a.CreateScopedTokenResultSchema;n.CreateUserInputSchema=a.CreateUserInputSchema;n.CustomActionInputSchema=a.CustomActionInputSchema;n.DEFAULT_AUDIO_ANALYZER_CONFIG=a.DEFAULT_AUDIO_ANALYZER_CONFIG;n.DEFAULT_DECODER_HWACCEL_CONFIG=a.DEFAULT_DECODER_HWACCEL_CONFIG;n.DEVICE_PROFILES=a.DEVICE_PROFILES;n.DEVICE_SETTINGS_CONTRIBUTION_METHODS=a.DEVICE_SETTINGS_CONTRIBUTION_METHODS;n.DEVICE_STATUS_METHOD=a.DEVICE_STATUS_METHOD;n.DecodedFrameSchema=a.DecodedFrameSchema;n.DecoderAssignmentSchema=a.DecoderAssignmentSchema;n.DecoderSessionConfigSchema=a.DecoderSessionConfigSchema;n.DecoderStatsSchema=a.DecoderStatsSchema;n.DeleteIntegrationResultSchema=a.DeleteIntegrationResultSchema;n.DetectorOutputSchema=a.DetectorOutputSchema;n.DeviceDiscoveryStatusSchema=a.DeviceDiscoveryStatusSchema;n.DeviceFeature=a.DeviceFeature;n.DeviceInfoSchema=a.DeviceInfoSchema;n.DeviceNetworkStatsSchema=a.DeviceNetworkStatsSchema;n.DeviceRole=a.DeviceRole;n.DeviceStatusSchema=a.DeviceStatusSchema;n.DeviceType=a.DeviceType;n.DiscoveredChildDeviceSchema=a.DiscoveredChildDeviceSchema;n.DiscoveredChildStatusSchema=a.DiscoveredChildStatusSchema;n.DiscoveredDeviceSchema=a.DiscoveredDeviceSchema;n.DoorbellPressEventSchema=a.DoorbellPressEventSchema;n.DoorbellStatusSchema=a.DoorbellStatusSchema;n.EmbeddingInfoSchema=a.EmbeddingInfoSchema;n.EmbeddingResultSchema=a.EmbeddingResultSchema;n.EncodedPacketSchema=a.EncodedPacketSchema;n.EnrichedWidgetMetadataSchema=a.EnrichedWidgetMetadataSchema;n.EventItemSchema=a.EventItemSchema;n.EventKindSchema=a.EventKindSchema;n.ExposedResourceSchema=a.ExposedResourceSchema;n.FeatureManifestSchema=a.FeatureManifestSchema;n.FeatureProbeStatusSchema=a.FeatureProbeStatusSchema;n.FrameInputSchema=a.FrameInputSchema;n.GlobalMetricsSchema=a.GlobalMetricsSchema;n.HWACCEL_OPTIONS=a.HWACCEL_OPTIONS;n.HealthStatusSchema=a.HealthStatusSchema;n.HistoryPointSchema=a.HistoryPointSchema;n.HistoryResolutionEnum=a.HistoryResolutionEnum;n.InstalledPackageSchema=a.InstalledPackageSchema;n.IntegrationLiteSchema=a.IntegrationLiteSchema;n.IntegrationWithStateSchema=a.IntegrationWithStateSchema;n.IntercomAbilitySchema=a.IntercomAbilitySchema;n.IntercomStatusSchema=a.IntercomStatusSchema;n.LocationStatSchema=a.LocationStatSchema;n.LogEntrySchema=a.LogEntrySchema;n.LogLevelSchema=a.LogLevelSchema;n.LogStreamEntrySchema=a.LogStreamEntrySchema;n.MODEL_FORMATS=a.MODEL_FORMATS;n.MediaFileSchema=a.MediaFileSchema;n.MotionAnalysisResultSchema=a.MotionAnalysisResultSchema;n.MotionEventSchema=a.MotionEventSchema;n.MotionOnMotionChangedDataSchema=a.MotionOnMotionChangedDataSchema;n.MotionRegionSchema=a.MotionRegionSchema;n.MotionSourceEnum=a.MotionSourceEnum;n.MotionSourcesSchema=a.MotionSourcesSchema;n.MotionStatusSchema=a.MotionStatusSchema;n.MotionTriggerRuntimeStateSchema=a.MotionTriggerRuntimeStateSchema;n.MotionTriggerStatusSchema=a.MotionTriggerStatusSchema;n.NativeDetectionSchema=a.NativeDetectionSchema;n.NativeObjectClassEnum=a.NativeObjectClassEnum;n.NativeObjectDetectionStatusSchema=a.NativeObjectDetectionStatusSchema;n.NetworkAccessStatusSchema=a.NetworkAccessStatusSchema;n.NetworkAddressSchema=a.NetworkAddressSchema;n.NetworkEndpointSchema=a.NetworkEndpointSchema;n.NotificationHistoryEntrySchema=a.NotificationHistoryEntrySchema;n.NotificationRuleSchema=a.NotificationRuleSchema;n.NotificationSchema=a.NotificationSchema;n.ObjectEventSchema=a.ObjectEventSchema;n.OrchestratorMetricsSchema=a.OrchestratorMetricsSchema;n.OsdOverlayKindEnum=a.OsdOverlayKindEnum;n.OsdOverlayPatchSchema=a.OsdOverlayPatchSchema;n.OsdOverlaySchema=a.OsdOverlaySchema;n.OsdPositionEnum=a.OsdPositionEnum;n.OsdStatusSchema=a.OsdStatusSchema;n.PIPELINE_FLOW_CAPABILITY_NAMES=a.PIPELINE_FLOW_CAPABILITY_NAMES;n.PIPELINE_OWNER_CAPABILITY_NAMES=a.PIPELINE_OWNER_CAPABILITY_NAMES;n.PackageUpdateSchema=a.PackageUpdateSchema;n.PackageVersionInfoSchema=a.PackageVersionInfoSchema;n.PcmSampleFormatSchema=a.PcmSampleFormatSchema;n.PerScopeBreakdownSchema=a.PerScopeBreakdownSchema;n.PipelineAssignmentSchema=a.PipelineAssignmentSchema;n.PipelineDefaultStepSchema=a.PipelineDefaultStepSchema;n.PipelineEngineChoiceSchema=a.PipelineEngineChoiceSchema;n.PipelineRunResultBridge=a.PipelineRunResultBridge;n.PipelineStepInputSchema=a.PipelineStepInputSchema;n.PlaceholderReasonSchema=a.PlaceholderReasonSchema;n.PolygonPointSchema=a.PolygonPointSchema;n.ProfileSlotSchema=a.ProfileSlotSchema;n.ProfileSlotStatusSchema=a.ProfileSlotStatusSchema;n.ProviderStatusSchema=a.ProviderStatusSchema;n.PtzAutotrackRuntimeStateSchema=a.PtzAutotrackRuntimeStateSchema;n.PtzAutotrackSettingsSchema=a.PtzAutotrackSettingsSchema;n.PtzAutotrackStatusSchema=a.PtzAutotrackStatusSchema;n.PtzAutotrackTargetOptionSchema=a.PtzAutotrackTargetOptionSchema;n.PtzMoveCommandSchema=a.PtzMoveCommandSchema;n.PtzPositionSchema=a.PtzPositionSchema;n.PtzPresetSchema=a.PtzPresetSchema;n.QueryFilterSchema=a.QueryFilterSchema;n.RegisteredStreamSchema=a.RegisteredStreamSchema;n.RemoteAccessEndpointSchema=a.RemoteAccessEndpointSchema;n.RemoteAccessProviderInfoSchema=a.RemoteAccessProviderInfoSchema;n.ReportMotionInputSchema=a.ReportMotionInputSchema;n.RtspRestreamEntrySchema=a.RtspRestreamEntrySchema;n.RunnerCameraConfigSchema=a.RunnerCameraConfigSchema;n.RunnerCameraDeviceUIFields=a.RunnerCameraDeviceUIFields;n.RunnerLocalLoadSchema=a.RunnerLocalLoadSchema;n.RunnerLocalMetricsSchema=a.RunnerLocalMetricsSchema;n.STORAGE_LOCATION_CARDINALITY=a.STORAGE_LOCATION_CARDINALITY;n.ScopedTokenSchema=a.ScopedTokenSchema;n.ScopedTokenSummarySchema=a.ScopedTokenSummarySchema;n.SearchResultSchema=a.SearchResultSchema;n.SegmentSchema=a.SegmentSchema;n.SettingsPatchSchema=a.SettingsPatchSchema;n.SettingsRecordSchema=a.SettingsRecordSchema;n.SettingsSchemaWithValuesSchema=a.SettingsSchemaWithValuesSchema;n.SettingsUpdateResultSchema=a.SettingsUpdateResultSchema;n.SnapshotImageSchema=a.SnapshotImageSchema;n.SpatialDetectionSchema=a.SpatialDetectionSchema;n.StorageAbortUploadInputSchema=a.AbortUploadInputSchema;n.StorageBeginDownloadInputSchema=a.BeginDownloadInputSchema;n.StorageBeginDownloadResultSchema=a.BeginDownloadResultSchema;n.StorageBeginUploadInputSchema=a.BeginUploadInputSchema;n.StorageBeginUploadResultSchema=a.BeginUploadResultSchema;n.StorageEndDownloadInputSchema=a.EndDownloadInputSchema;n.StorageFinalizeUploadInputSchema=a.FinalizeUploadInputSchema;n.StorageLocationRefSchema=a.StorageLocationRefSchema;n.StorageLocationSchema=a.StorageLocationSchema;n.StorageLocationTypeSchema=a.StorageLocationTypeSchema;n.StorageProviderInfoSchema=a.ProviderInfoSchema;n.StorageReadChunkInputSchema=a.ReadChunkInputSchema;n.StorageTestLocationResultSchema=a.TestLocationResultSchema;n.StorageWriteChunkInputSchema=a.WriteChunkInputSchema;n.StreamFormatSchema=a.StreamFormatSchema;n.StreamInfoSchema=a.StreamInfoSchema;n.StreamNetworkStatsSchema=a.StreamNetworkStatsSchema;n.StreamSourceEntrySchema=a.StreamSourceEntrySchema;n.StreamSourceSchema=a.StreamSourceSchema;n.SwitchStatusSchema=a.SwitchStatusSchema;n.SystemMetricsSchema=a.SystemMetricsSchema;n.TestConnectionResultSchema=a.TestConnectionResultSchema;n.ToastSchema=a.ToastSchema;n.TokenScopeSchema=a.TokenScopeSchema;n.TopologyNodeSchema=a.TopologyNodeSchema;n.TopologyProcessSchema=a.TopologyProcessSchema;n.TopologyServiceSchema=a.TopologyServiceSchema;n.TrackSchema=a.TrackSchema;n.TrackStateSchema=a.TrackStateSchema;n.TrackedDetectionSchema=a.TrackedDetectionSchema;n.TurnProviderInfoSchema=a.TurnProviderInfoSchema;n.TurnServerSchema=a.TurnServerSchema;n.UpdateIntegrationInputSchema=a.UpdateIntegrationInputSchema;n.UpdateUserInputSchema=a.UpdateUserInputSchema;n.UserRecordSchema=a.UserRecordSchema;n.UserRoleSchema=a.UserRoleSchema;n.UserSummarySchema=a.UserSummarySchema;n.WELL_KNOWN_TABS=a.WELL_KNOWN_TABS;n.WELL_KNOWN_TAB_MAP=a.WELL_KNOWN_TAB_MAP;n.WebrtcStreamChoiceSchema=a.WebrtcStreamChoiceSchema;n.WebrtcStreamTargetSchema=a.WebrtcStreamTargetSchema;n.WidgetHostEnum=a.WidgetHostEnum;n.WidgetMetadataSchema=a.WidgetMetadataSchema;n.WidgetSizeEnum=a.WidgetSizeEnum;n.YAMNET_TO_MACRO=a.YAMNET_TO_MACRO;n.ZoneKindEnum=a.ZoneKindEnum;n.ZoneRuleModeEnum=a.ZoneRuleModeEnum;n.ZoneRuleSchema=a.ZoneRuleSchema;n.ZoneRuleStageEnum=a.ZoneRuleStageEnum;n.ZoneRulesArraySchema=a.ZoneRulesArraySchema;n.ZoneSchema=a.ZoneSchema;n.ZoneScopeBreakdownSchema=a.ZoneScopeBreakdownSchema;n.accessoriesCapability=a.accessoriesCapability;n.accessoryStableId=a.accessoryStableId;n.addonPagesCapability=a.addonPagesCapability;n.addonPagesSourceCapability=a.addonPagesSourceCapability;n.addonRoutesCapability=a.addonRoutesCapability;n.addonSettingsCapability=a.addonSettingsCapability;n.addonWidgetsCapability=a.addonWidgetsCapability;n.addonWidgetsSourceCapability=a.addonWidgetsSourceCapability;n.addonsCapability=a.addonsCapability;n.adminUiCapability=a.adminUiCapability;n.advancedNotifierCapability=a.advancedNotifierCapability;n.alertsCapability=a.alertsCapability;n.audioAnalysisCapability=a.audioAnalysisCapability;n.audioAnalyzerCapability=a.audioAnalyzerCapability;n.audioCodecCapability=a.audioCodecCapability;n.audioMetricsCapability=a.audioMetricsCapability;n.authProviderCapability=a.authProviderCapability;n.authenticationCapability=a.authenticationCapability;n.backupCapability=a.backupCapability;n.batteryCapability=a.batteryCapability;n.brightnessCapability=a.brightnessCapability;n.cameraCredentialsCapability=a.cameraCredentialsCapability;n.cameraStreamsCapability=a.cameraStreamsCapability;n.decoderCapability=a.decoderCapability;n.detectionPipelineCapability=a.detectionPipelineCapability;n.deviceDiscoveryCapability=a.deviceDiscoveryCapability;n.deviceManagerCapability=a.deviceManagerCapability;n.deviceMatchesProfile=a.deviceMatchesProfile;n.deviceOpsCapability=a.deviceOpsCapability;n.deviceProviderCapability=a.deviceProviderCapability;n.deviceStateCapability=a.deviceStateCapability;n.deviceStatusCapability=a.deviceStatusCapability;n.doorbellCapability=a.doorbellCapability;n.embeddingEncoderCapability=a.embeddingEncoderCapability;n.errMsg=a.errMsg;n.event=a.event;n.eventsCapability=a.eventsCapability;n.expandCapMethods=a.expandCapMethods;n.featureProbeCapability=a.featureProbeCapability;n.getAudioMacroClassIds=a.getAudioMacroClassIds;n.hydrateSchema=a.hydrateSchema;n.integrationsCapability=a.integrationsCapability;n.intercomCapability=a.intercomCapability;n.localNetworkCapability=a.localNetworkCapability;n.logDestinationCapability=a.logDestinationCapability;n.mapAudioLabelToMacro=a.mapAudioLabelToMacro;n.meshNetworkCapability=a.meshNetworkCapability;n.meshOrchestratorCapability=a.meshOrchestratorCapability;n.method=a.method;n.metricsProviderCapability=a.metricsProviderCapability;n.motionCapability=a.motionCapability;n.motionDetectionCapability=a.motionDetectionCapability;n.motionTriggerCapability=a.motionTriggerCapability;n.nativeObjectDetectionCapability=a.nativeObjectDetectionCapability;n.networkAccessCapability=a.networkAccessCapability;n.networkQualityCapability=a.networkQualityCapability;n.nodesCapability=a.nodesCapability;n.notificationOutputCapability=a.notificationOutputCapability;n.osdCapability=a.osdCapability;n.pipelineAnalyticsCapability=a.pipelineAnalyticsCapability;n.pipelineExecutorCapability=a.pipelineExecutorCapability;n.pipelineOrchestratorCapability=a.pipelineOrchestratorCapability;n.pipelineRunnerCapability=a.pipelineRunnerCapability;n.platformProbeCapability=a.platformProbeCapability;n.ptzAutotrackCapability=a.ptzAutotrackCapability;n.ptzCapability=a.ptzCapability;n.rebootCapability=a.rebootCapability;n.recordingCapability=a.recordingCapability;n.recordingEngineCapability=a.recordingEngineCapability;n.remoteAccessCapability=a.remoteAccessCapability;n.resolveDeviceProfile=a.resolveDeviceProfile;n.restreamerCapability=a.restreamerCapability;n.settingsStoreCapability=a.settingsStoreCapability;n.snapshotCapability=a.snapshotCapability;n.snapshotProviderCapability=a.snapshotProviderCapability;n.storageCapability=a.storageCapability;n.storageProviderCapability=a.storageProviderCapability;n.streamBrokerCapability=a.streamBrokerCapability;n.streamingEngineCapability=a.streamingEngineCapability;n.switchCapability=a.switchCapability;n.systemCapability=a.systemCapability;n.toastCapability=a.toastCapability;n.turnOrchestratorCapability=a.turnOrchestratorCapability;n.turnProviderCapability=a.turnProviderCapability;n.userManagementCapability=a.userManagementCapability;n.webrtcCapability=a.webrtcCapability;n.webrtcClientHintsSchema=a.webrtcClientHintsSchema;n.webrtcSessionCapability=a.webrtcSessionCapability;n.zoneAnalyticsCapability=a.zoneAnalyticsCapability;n.zoneRulesCapability=a.zoneRulesCapability;n.zonesCapability=a.zonesCapability;n.ALL_CAPABILITY_DEFINITIONS=pi;n.BACKEND_TO_FORMAT=Q;n.BaseAddon=Ie;n.BaseDevice=Wt;n.BaseDeviceProvider=$t;n.CAPABILITY_NAMES=ui;n.CAPABILITY_ROUTER_KEYS=mi;n.CAP_NAMES_WITH_STATUS=hi;n.COCO_80_LABELS=_t;n.COCO_TO_MACRO=Nt;n.DEFAULT_ADDON_GROUP=Ce;n.DEFAULT_ADDON_PLACEMENT=Ae;n.DEFAULT_FEATURES=ut;n.DEFAULT_LOCATION_SUBDIRS=at;n.DEFAULT_RETENTION=ht;n.DEVICE_TYPE_INFO=zt;n.DeviceConfig=R;n.DeviceRuntimeState=H;n.DisposerChain=Ke;n.ElementConfigStore=Pt;n.EventCategory=_;n.EventSourceType=Me;n.HF_BASE_URL=gt;n.HF_REPO=Te;n.MACRO_LABELS=Bt;n.PYTHON_SCRIPT=Le;n.RECOGNITION_TYPES=pt;n.RUNTIME_DEFAULTS=St;n.RUNTIME_TO_FORMAT=qe;n.ReadinessRegistry=Xe;n.ReadinessTimeoutError=De;n.RingBuffer=Si;n.STORAGE_LOCATION_TYPES=it;n.STREAM_QUALITY_LABELS=we;n.SUB_DETECTION_TYPES=mt;n.SystemMirror=oi;n.asBoolean=vt;n.asJsonArray=yt;n.asJsonObject=Oe;n.asNumber=bt;n.asString=ft;n.autoAssignProfiles=lt;n.bindAddonActions=yi;n.classifyStream=rt;n.classifyStreams=Re;n.cosineSimilarity=It;n.createDeviceProxy=xe;n.createEvent=Y;n.createLazyTrpcSource=J;n.createMirrorSource=ze;n.createRuntimeStateBridge=Ut;n.createSliceHandle=f;n.createSystemProxy=ti;n.customAction=li;n.defineCustomActions=di;n.emitDownForOwnedCaps=tt;n.emitReadiness=ke;n.evaluateZoneRules=Xt;n.formatForBackend=Rt;n.formatForRuntime=Mt;n.hfModelUrl=kt;n.isAgentOnlyPlacement=Ye;n.isDeployableToAgent=Ze;n.isEvent=Je;n.maskUrlCredentials=gi;n.normalizeAddonInitResult=Pe;n.parseCameraStreamConfig=dt;n.parseJsonArray=At;n.parseJsonObject=Ct;n.parseJsonUnknown=V;n.pythonScriptForBackend=Tt;n.readinessKey=W;n.requiresPython=Ot;n.resolveAddonExecution=N;n.resolveAddonGroup=Ve;n.resolveAddonPlacement=Qe;n.resolveAddonRuntime=Et;n.resolveDetectionRuntime=_e;n.resolveModelFormat=wt;n.runInferenceStep=qt;n.scopeKey=E;n.streamPixels=Ee;n.streamQualityLabel=nt;n.toDeviceSummary=Be;n.toStreamSourceEntry=st;n.zodEntriesToConfigUI=Ht});export default fi();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./preload-helper-BlTxHScW.js";import{g as r,i as a}from"./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-
|
|
1
|
+
import"./preload-helper-BlTxHScW.js";import{g as r,i as a}from"./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-kSAHDLPS.js";export{r as get,a as init};
|