@miravo/cli-linux-x64 0.11.0 → 0.13.0
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/console-dist/assets/api-BG2sUkwk.js +1 -0
- package/console-dist/assets/api-CKfC8_zv.js +1 -0
- package/console-dist/assets/asset-detail-B2YDSfM1.js +1 -0
- package/console-dist/assets/asset-detail-actions-BrttEn24.js +1 -0
- package/console-dist/assets/{backup-power-BDMAO2bO.js → backup-power-Cm_Ij5yj.js} +1 -1
- package/console-dist/assets/{boiler-CWAR1Nq2.js → boiler-BQwqgoVY.js} +1 -1
- package/console-dist/assets/by-path-e6y8DTMV.js +1 -0
- package/console-dist/assets/catalog-Bz24KMiz.js +1 -0
- package/console-dist/assets/catalog-DOGCbTe4.js +1 -0
- package/console-dist/assets/catalog-template-icons-7CBAYTtP.js +1 -0
- package/console-dist/assets/chevron-right-CrNKVFcI.js +1 -0
- package/console-dist/assets/{chiller-BSx8eUMN.js → chiller-Jug0vRg-.js} +1 -1
- package/console-dist/assets/{commercial-building-CNvi6IZK.js → commercial-building-D95MTyEI.js} +1 -1
- package/console-dist/assets/{compressor-D63w6Ir2.js → compressor-BkWNdwvy.js} +1 -1
- package/console-dist/assets/{console-panel-CMDoBJiO.js → console-panel-iWo8EgKP.js} +1 -1
- package/console-dist/assets/control-BMhNX7vM.js +1 -0
- package/console-dist/assets/control-CML5aS8w.js +1 -0
- package/console-dist/assets/{district-heating-Cr4CrgCA.js → district-heating-B_YycTG-.js} +1 -1
- package/console-dist/assets/{events-RmbRTKFV.js → events-5RYkaW81.js} +1 -1
- package/console-dist/assets/events-z582V8se.js +1 -0
- package/console-dist/assets/{export-tab-fZDO4r2u.js → export-tab-BsV7px7m.js} +1 -1
- package/console-dist/assets/factory-3x3_UmJZ.js +1 -0
- package/console-dist/assets/factory-LkZOsGje.js +1 -0
- package/console-dist/assets/floor-page-D0qm0GgG.js +1 -0
- package/console-dist/assets/{genset-BRgqR1AT.js → genset-DBpkUT9p.js} +1 -1
- package/console-dist/assets/{get-error-message-dM0BMfdP.js → get-error-message-C9VW9IZB.js} +1 -1
- package/console-dist/assets/{index-CvuwOe37.js → index-M2C34y3X.js} +3 -3
- package/console-dist/assets/{integration-api-D2tA69Yb.js → integration-api-ChbzMP5N.js} +1 -1
- package/console-dist/assets/integrations-BpOu11IH.js +1 -0
- package/console-dist/assets/{integrations-iAjWxaDS.js → integrations-Cop24rSE.js} +1 -1
- package/console-dist/assets/{login-DpNKicxy.js → login-BZANmwgH.js} +1 -1
- package/console-dist/assets/models-BgGuH6PQ.js +1 -0
- package/console-dist/assets/models-C09Ba-2G.js +1 -0
- package/console-dist/assets/{pharma-cleanroom-ClJRwROz.js → pharma-cleanroom-BbYfEQjP.js} +1 -1
- package/console-dist/assets/protocol-card-B8XGneNM.js +1 -0
- package/console-dist/assets/registry-BXGfJ4np.js +2 -0
- package/console-dist/assets/{rtu-D-1lltcO.js → rtu-BR4DhLbE.js} +1 -1
- package/console-dist/assets/shallow-Cin0mLuv.js +1 -0
- package/console-dist/assets/{smart-factory-cem4tLAv.js → smart-factory-DozakG3N.js} +1 -1
- package/console-dist/assets/{stages-hidkaJPI.js → stages-C0cErwSQ.js} +1 -1
- package/console-dist/assets/{status-CZFZLqVk.js → status-DNfdEhTs.js} +1 -1
- package/console-dist/assets/status-kit-pFRjEjVU.js +1 -0
- package/console-dist/assets/tags-BjW65yls.js +1 -0
- package/console-dist/assets/{tags-BBz30-eV.js → tags-Bw7b0x14.js} +1 -1
- package/console-dist/assets/{tank-THHXGdzg.js → tank-xgQfMS2d.js} +1 -1
- package/console-dist/assets/{transition-nav-link-B11-gXld.js → transition-nav-link-CSrpkA7_.js} +1 -1
- package/console-dist/assets/use-engine-command-mutation-DrMOfYty.js +1 -0
- package/console-dist/assets/use-transition-navigate-D2Y8kfw6.js +2 -0
- package/console-dist/assets/{useQuery-M9KTdi7Q.js → useQuery-Cl48zZ73.js} +1 -1
- package/console-dist/assets/{validation-BkfmaBBi.js → validation-Cxhiswz2.js} +1 -1
- package/console-dist/assets/{water-treatment-CfVR0p0L.js → water-treatment-jG0T2rhc.js} +1 -1
- package/console-dist/index.html +30 -30
- package/miravo +2 -2
- package/package.json +1 -1
- package/console-dist/assets/api-B2QJEzbS.js +0 -1
- package/console-dist/assets/api-Vq4lny_H.js +0 -1
- package/console-dist/assets/asset-detail-E-TllNHT.js +0 -1
- package/console-dist/assets/asset-detail-actions-jjbvaDES.js +0 -1
- package/console-dist/assets/asset-panel-DDziFlFl.js +0 -1
- package/console-dist/assets/by-path-VBqTBdlG.js +0 -1
- package/console-dist/assets/catalog-BlkPPAWE.js +0 -1
- package/console-dist/assets/catalog-CQopEu5C.js +0 -1
- package/console-dist/assets/catalog-template-icons-BOSywIKV.js +0 -1
- package/console-dist/assets/chevron-left-XHFooLn1.js +0 -1
- package/console-dist/assets/chevron-right-CMSQPSEo.js +0 -1
- package/console-dist/assets/control-CBviLxJB.js +0 -1
- package/console-dist/assets/control-jNqzZWa9.js +0 -1
- package/console-dist/assets/events-D531_1EZ.js +0 -1
- package/console-dist/assets/factory-C2OucdpQ.js +0 -1
- package/console-dist/assets/factory-CgSIjU5V.js +0 -1
- package/console-dist/assets/factory-DLE12zAd.js +0 -1
- package/console-dist/assets/floor-page-D0mX5OuA.js +0 -1
- package/console-dist/assets/integrations-BLG4PT3c.js +0 -1
- package/console-dist/assets/model-schemas-3w38IPdc.js +0 -1
- package/console-dist/assets/models-CMN9Eppf.js +0 -1
- package/console-dist/assets/models-I_V8J5Y0.js +0 -1
- package/console-dist/assets/play-kg50os4l.js +0 -1
- package/console-dist/assets/protocol-card-ARSwIjkN.js +0 -1
- package/console-dist/assets/registry-Dau_GjK6.js +0 -2
- package/console-dist/assets/tags-K96jT8PY.js +0 -1
- package/console-dist/assets/use-engine-command-mutation-CHqjOqfS.js +0 -1
- package/console-dist/assets/use-transition-navigate-B-nk4aWh.js +0 -2
- /package/console-dist/assets/{circle-x-_o0nl0Rg.js → circle-x-6JtFdy1_.js} +0 -0
- /package/console-dist/assets/{dom-Cm_OH5jc.js → dom-CQuChC3G.js} +0 -0
- /package/console-dist/assets/{not-found-C4YVKP97.js → not-found-Cc35S-lZ.js} +0 -0
- /package/console-dist/assets/{runtime-link-vBANRqcD.js → runtime-link-BRnaEnOm.js} +0 -0
- /package/console-dist/assets/{tabs-BbQkzBZZ.js → tabs-Ch_VG8_S.js} +0 -0
- /package/console-dist/assets/{vendor-table-B0Z9e_sn.js → vendor-table-BQAIXM34.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e,r as t}from"./rolldown-runtime-COnpUsM8.js";import{c as n}from"./vendor-charts-95ykyDlI.js";var r=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},i=new class extends r{#e;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e();return window.addEventListener(`visibilitychange`,t,!1),()=>{window.removeEventListener(`visibilitychange`,t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(e=>{typeof e==`boolean`?this.setFocused(e):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e==`boolean`?this.#e:globalThis.document?.visibilityState!==`hidden`}},a={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},o=new class{#e=a;setTimeoutProvider(e){this.#e=e}setTimeout(e,t){return this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};function s(e){setTimeout(e,0)}var c=typeof window>`u`||`Deno`in globalThis;function l(){}function u(e,t){return typeof e==`function`?e(t):e}function d(e){return typeof e==`number`&&e>=0&&e!==1/0}function f(e,t){return Math.max(e+(t||0)-Date.now(),0)}function p(e,t){return typeof e==`function`?e(t):e}function m(e,t){return typeof e==`function`?e(t):e}function ee(e,t){let{type:n=`all`,exact:r,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(r){if(t.queryHash!==ne(o,t.options))return!1}else if(!ie(t.queryKey,o))return!1}if(n!==`all`){let e=t.isActive();if(n===`active`&&!e||n===`inactive`&&e)return!1}return!(typeof s==`boolean`&&t.isStale()!==s||i&&i!==t.state.fetchStatus||a&&!a(t))}function te(e,t){let{exact:n,status:r,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(re(t.options.mutationKey)!==re(a))return!1}else if(!ie(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function ne(e,t){return(t?.queryKeyHashFn||re)(e)}function re(e){return JSON.stringify(e,(e,t)=>le(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function ie(e,t){return e===t?!0:typeof e==typeof t&&e&&t&&typeof e==`object`&&typeof t==`object`?Object.keys(t).every(n=>ie(e[n],t[n])):!1}var ae=Object.prototype.hasOwnProperty;function oe(e,t,n=0){if(e===t)return e;if(n>500)return t;let r=ce(e)&&ce(t);if(!r&&!(le(e)&&le(t)))return t;let i=(r?e:Object.keys(e)).length,a=r?t:Object.keys(t),o=a.length,s=r?Array(o):{},c=0;for(let l=0;l<o;l++){let o=r?l:a[l],u=e[o],d=t[o];if(u===d){s[o]=u,(r?l<i:ae.call(e,o))&&c++;continue}if(u===null||d===null||typeof u!=`object`||typeof d!=`object`){s[o]=d;continue}let f=oe(u,d,n+1);s[o]=f,f===u&&c++}return i===o&&c===i?e:s}function se(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(e[n]!==t[n])return!1;return!0}function ce(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function le(e){if(!ue(e))return!1;let t=e.constructor;if(t===void 0)return!0;let n=t.prototype;return!(!ue(n)||!n.hasOwnProperty(`isPrototypeOf`)||Object.getPrototypeOf(e)!==Object.prototype)}function ue(e){return Object.prototype.toString.call(e)===`[object Object]`}function de(e){return new Promise(t=>{o.setTimeout(t,e)})}function fe(e,t,n){return typeof n.structuralSharing==`function`?n.structuralSharing(e,t):n.structuralSharing===!1?t:oe(e,t)}function pe(e){return e}function me(e,t,n=0){let r=[...e,t];return n&&r.length>n?r.slice(1):r}function he(e,t,n=0){let r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var ge=Symbol();function _e(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===ge?()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function ve(e,t){return typeof e==`function`?e(...t):!!e}function ye(e,t,n){let r=!1,i;return Object.defineProperty(e,`signal`,{enumerable:!0,get:()=>(i??=t(),r?i:(r=!0,i.aborted?n():i.addEventListener(`abort`,n,{once:!0}),i))}),e}var be=(()=>{let e=()=>c;return{isServer(){return e()},setIsServer(t){e=t}}})();function xe(){let e,t,n=new Promise((n,r)=>{e=n,t=r});n.status=`pending`,n.catch(()=>{});function r(e){Object.assign(n,e),delete n.resolve,delete n.reject}return n.resolve=t=>{r({status:`fulfilled`,value:t}),e(t)},n.reject=e=>{r({status:`rejected`,reason:e}),t(e)},n}function Se(e){let t;if(e.then(e=>(t=e,e),l)?.catch(l),t!==void 0)return{data:t}}function Ce(e){return e}function we(e){return{mutationKey:e.options.mutationKey,state:e.state,...e.options.scope&&{scope:e.options.scope},...e.meta&&{meta:e.meta}}}function Te(e,t,n){let r=()=>{let r=e.promise?.then(t).catch(e=>n(e)?Promise.reject(Error(`redacted`)):Promise.reject(e));return r?.catch(l),r};return{dehydratedAt:Date.now(),state:{...e.state,...e.state.data!==void 0&&{data:t(e.state.data)}},queryKey:e.queryKey,queryHash:e.queryHash,...e.state.status===`pending`&&{promise:r()},...e.meta&&{meta:e.meta}}}function Ee(e){return e.state.isPaused}function De(e){return e.state.status===`success`}function Oe(e){return!0}function ke(e,t={}){let n=t.shouldDehydrateMutation??e.getDefaultOptions().dehydrate?.shouldDehydrateMutation??Ee,r=e.getMutationCache().getAll().flatMap(e=>n(e)?[we(e)]:[]),i=t.shouldDehydrateQuery??e.getDefaultOptions().dehydrate?.shouldDehydrateQuery??De,a=t.shouldRedactErrors??e.getDefaultOptions().dehydrate?.shouldRedactErrors??Oe,o=t.serializeData??e.getDefaultOptions().dehydrate?.serializeData??Ce;return{mutations:r,queries:e.getQueryCache().getAll().flatMap(e=>i(e)?[Te(e,o,a)]:[])}}function Ae(e,t,n){if(typeof t!=`object`||!t)return;let r=e.getMutationCache(),i=e.getQueryCache(),a=n?.defaultOptions?.deserializeData??e.getDefaultOptions().hydrate?.deserializeData??Ce,o=t.mutations||[],s=t.queries||[];o.forEach(({state:t,...i})=>{r.build(e,{...e.getDefaultOptions().hydrate?.mutations,...n?.defaultOptions?.mutations,...i},t)}),s.forEach(({queryKey:t,state:r,queryHash:o,meta:s,promise:c,dehydratedAt:u})=>{let d=c?Se(c):void 0,f=r.data===void 0?d?.data:r.data,p=f===void 0?f:a(f),m=i.get(o),ee=m?.state.status===`pending`,te=m?.state.fetchStatus===`fetching`;if(m){let e=d&&u!==void 0&&u>m.state.dataUpdatedAt;if(r.dataUpdatedAt>m.state.dataUpdatedAt||e){let{fetchStatus:e,...t}=r;m.setState({...t,data:p})}}else m=i.build(e,{...e.getDefaultOptions().hydrate?.queries,...n?.defaultOptions?.queries,queryKey:t,queryHash:o,meta:s},{...r,data:p,fetchStatus:`idle`,status:p===void 0?r.status:`success`});c&&!ee&&!te&&(u===void 0||u>m.state.dataUpdatedAt)&&m.fetch(void 0,{initialPromise:Promise.resolve(c).then(a)}).catch(l)})}var je=s;function Me(){let e=[],t=0,n=e=>{e()},r=e=>{e()},i=je,a=r=>{t?e.push(r):i(()=>{n(r)})},o=()=>{let t=e;e=[],t.length&&i(()=>{r(()=>{t.forEach(e=>{n(e)})})})};return{batch:e=>{let n;t++;try{n=e()}finally{t--,t||o()}return n},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a,setNotifyFunction:e=>{n=e},setBatchNotifyFunction:e=>{r=e},setScheduler:e=>{i=e}}}var h=Me(),Ne=new class extends r{#e=!0;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e(!0),n=()=>e(!1);return window.addEventListener(`online`,t,!1),window.addEventListener(`offline`,n,!1),()=>{window.removeEventListener(`online`,t),window.removeEventListener(`offline`,n)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#e}};function Pe(e){return Math.min(1e3*2**e,3e4)}function Fe(e){return(e??`online`)===`online`?Ne.isOnline():!0}var Ie=class extends Error{constructor(e){super(`CancelledError`),this.revert=e?.revert,this.silent=e?.silent}};function Le(e){let t=!1,n=0,r,a=xe(),o=()=>a.status!==`pending`,s=t=>{if(!o()){let n=new Ie(t);p(n),e.onCancel?.(n)}},c=()=>{t=!0},l=()=>{t=!1},u=()=>i.isFocused()&&(e.networkMode===`always`||Ne.isOnline())&&e.canRun(),d=()=>Fe(e.networkMode)&&e.canRun(),f=e=>{o()||(r?.(),a.resolve(e))},p=e=>{o()||(r?.(),a.reject(e))},m=()=>new Promise(t=>{r=e=>{(o()||u())&&t(e)},e.onPause?.()}).then(()=>{r=void 0,o()||e.onContinue?.()}),ee=()=>{if(o())return;let r,i=n===0?e.initialPromise:void 0;try{r=i??e.fn()}catch(e){r=Promise.reject(e)}Promise.resolve(r).then(f).catch(r=>{if(o())return;let i=e.retry??(be.isServer()?0:3),a=e.retryDelay??Pe,s=typeof a==`function`?a(n,r):a,c=i===!0||typeof i==`number`&&n<i||typeof i==`function`&&i(n,r);if(t||!c){p(r);return}n++,e.onFail?.(n,r),de(s).then(()=>u()?void 0:m()).then(()=>{t?p(r):ee()})})};return{promise:a,status:()=>a.status,cancel:s,continue:()=>(r?.(),a),cancelRetry:c,continueRetry:l,canStart:d,start:()=>(d()?ee():m().then(ee),a)}}var Re=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),d(this.gcTime)&&(this.#e=o.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(be.isServer()?1/0:300*1e3))}clearGcTimeout(){this.#e!==void 0&&(o.clearTimeout(this.#e),this.#e=void 0)}},ze=class extends Re{#e;#t;#n;#r;#i;#a;#o;constructor(e){super(),this.#o=!1,this.#a=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#r=e.client,this.#n=this.#r.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#e=He(this.options),this.state=e.state??this.#e,this.scheduleGc()}get meta(){return this.options.meta}get promise(){return this.#i?.promise}setOptions(e){if(this.options={...this.#a,...e},this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){let e=He(this.options);e.data!==void 0&&(this.setState(Ve(e.data,e.dataUpdatedAt)),this.#e=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus===`idle`&&this.#n.remove(this)}setData(e,t){let n=fe(this.state.data,e,this.options);return this.#c({data:n,type:`success`,dataUpdatedAt:t?.updatedAt,manual:t?.manual}),n}setState(e,t){this.#c({type:`setState`,state:e,setStateOptions:t})}cancel(e){let t=this.#i?.promise;return this.#i?.cancel(e),t?t.then(l).catch(l):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#e}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>m(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===ge||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(e=>p(e.options.staleTime,this)===`static`):!1}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e===`static`?!1:this.state.isInvalidated?!0:!f(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(e=>e.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#i?.continue()}onOnline(){this.observers.find(e=>e.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#i?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#i&&(this.#o||this.#s()?this.#i.cancel({revert:!0}):this.#i.cancelRetry()),this.scheduleGc()),this.#n.notify({type:`observerRemoved`,query:this,observer:e}))}getObserversCount(){return this.observers.length}#s(){return this.state.fetchStatus===`paused`&&this.state.status===`pending`}invalidate(){this.state.isInvalidated||this.#c({type:`invalidate`})}async fetch(e,t){if(this.state.fetchStatus!==`idle`&&this.#i?.status()!==`rejected`){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#i)return this.#i.continueRetry(),this.#i.promise}if(e&&this.setOptions(e),!this.options.queryFn){let e=this.observers.find(e=>e.options.queryFn);e&&this.setOptions(e.options)}let n=new AbortController,r=e=>{Object.defineProperty(e,`signal`,{enumerable:!0,get:()=>(this.#o=!0,n.signal)})},i=()=>{let e=_e(this.options,t),n=(()=>{let e={client:this.#r,queryKey:this.queryKey,meta:this.meta};return r(e),e})();return this.#o=!1,this.options.persister?this.options.persister(e,n,this):e(n)},a=(()=>{let e={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#r,state:this.state,fetchFn:i};return r(e),e})();this.options.behavior?.onFetch(a,this),this.#t=this.state,(this.state.fetchStatus===`idle`||this.state.fetchMeta!==a.fetchOptions?.meta)&&this.#c({type:`fetch`,meta:a.fetchOptions?.meta}),this.#i=Le({initialPromise:t?.initialPromise,fn:a.fetchFn,onCancel:e=>{e instanceof Ie&&e.revert&&this.setState({...this.#t,fetchStatus:`idle`}),n.abort()},onFail:(e,t)=>{this.#c({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#c({type:`pause`})},onContinue:()=>{this.#c({type:`continue`})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode,canRun:()=>!0});try{let e=await this.#i.start();if(e===void 0)throw Error(`${this.queryHash} data is undefined`);return this.setData(e),this.#n.config.onSuccess?.(e,this),this.#n.config.onSettled?.(e,this.state.error,this),e}catch(e){if(e instanceof Ie){if(e.silent)return this.#i.promise;if(e.revert){if(this.state.data===void 0)throw e;return this.state.data}}throw this.#c({type:`error`,error:e}),this.#n.config.onError?.(e,this),this.#n.config.onSettled?.(this.state.data,e,this),e}finally{this.scheduleGc()}}#c(e){this.state=(t=>{switch(e.type){case`failed`:return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case`pause`:return{...t,fetchStatus:`paused`};case`continue`:return{...t,fetchStatus:`fetching`};case`fetch`:return{...t,...Be(t.data,this.options),fetchMeta:e.meta??null};case`success`:let n={...t,...Ve(e.data,e.dataUpdatedAt),dataUpdateCount:t.dataUpdateCount+1,...!e.manual&&{fetchStatus:`idle`,fetchFailureCount:0,fetchFailureReason:null}};return this.#t=e.manual?n:void 0,n;case`error`:let r=e.error;return{...t,error:r,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:`idle`,status:`error`,isInvalidated:!0};case`invalidate`:return{...t,isInvalidated:!0};case`setState`:return{...t,...e.state}}})(this.state),h.batch(()=>{this.observers.forEach(e=>{e.onQueryUpdate()}),this.#n.notify({query:this,type:`updated`,action:e})})}};function Be(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:Fe(t.networkMode)?`fetching`:`paused`,...e===void 0&&{error:null,status:`pending`}}}function Ve(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:`success`}}function He(e){let t=typeof e.initialData==`function`?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt==`function`?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?`success`:`pending`,fetchStatus:`idle`}}function Ue(e){return{onFetch:(t,n)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],o=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},c=0,l=async()=>{let n=!1,l=e=>{ye(e,()=>t.signal,()=>n=!0)},u=_e(t.options,t.fetchOptions),d=async(e,r,i)=>{if(n)return Promise.reject();if(r==null&&e.pages.length)return Promise.resolve(e);let a=await u((()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?`backward`:`forward`,meta:t.options.meta};return l(e),e})()),{maxPages:o}=t.options,s=i?he:me;return{pages:s(e.pages,a,o),pageParams:s(e.pageParams,r,o)}};if(i&&a.length){let e=i===`backward`,t=e?Ge:We,n={pages:a,pageParams:o};s=await d(n,t(r,n),e)}else{let t=e??a.length;do{let e=c===0?o[0]??r.initialPageParam:We(r,s);if(c>0&&e==null)break;s=await d(s,e),c++}while(c<t)}return s};t.options.persister?t.fetchFn=()=>t.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):t.fetchFn=l}}}function We(e,{pages:t,pageParams:n}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function Ge(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}function Ke(e,t){return t?We(e,t)!=null:!1}function qe(e,t){return!t||!e.getPreviousPageParam?!1:Ge(e,t)!=null}var Je=class extends Re{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||Ye(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){let t=()=>{this.#i({type:`continue`})},n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#r=Le({fn:()=>this.options.mutationFn?this.options.mutationFn(e,n):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)});let r=this.state.status===`pending`,i=!this.#r.canStart();try{if(r)t();else{this.#i({type:`pending`,variables:e,isPaused:i}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,n);let t=await this.options.onMutate?.(e,n);t!==this.state.context&&this.#i({type:`pending`,context:t,variables:e,isPaused:i})}let a=await this.#r.start();return await this.#n.config.onSuccess?.(a,e,this.state.context,this,n),await this.options.onSuccess?.(a,e,this.state.context,n),await this.#n.config.onSettled?.(a,null,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(a,null,e,this.state.context,n),this.#i({type:`success`,data:a}),a}catch(t){try{await this.#n.config.onError?.(t,e,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,n)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,n)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:t}),t}finally{this.#n.runNext(this)}}#i(e){this.state=(t=>{switch(e.type){case`failed`:return{...t,failureCount:e.failureCount,failureReason:e.error};case`pause`:return{...t,isPaused:!0};case`continue`:return{...t,isPaused:!1};case`pending`:return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:`pending`,variables:e.variables,submittedAt:Date.now()};case`success`:return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:`error`}}})(this.state),h.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function Ye(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}var Xe=class extends r{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}#e;#t;#n;build(e,t,n){let r=new Je({client:e,mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){this.#e.add(e);let t=Ze(e);if(typeof t==`string`){let n=this.#t.get(t);n?n.push(e):this.#t.set(t,[e])}this.notify({type:`added`,mutation:e})}remove(e){if(this.#e.delete(e)){let t=Ze(e);if(typeof t==`string`){let n=this.#t.get(t);if(n)if(n.length>1){let t=n.indexOf(e);t!==-1&&n.splice(t,1)}else n[0]===e&&this.#t.delete(t)}}this.notify({type:`removed`,mutation:e})}canRun(e){let t=Ze(e);if(typeof t==`string`){let n=this.#t.get(t)?.find(e=>e.state.status===`pending`);return!n||n===e}else return!0}runNext(e){let t=Ze(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){h.batch(()=>{this.#e.forEach(e=>{this.notify({type:`removed`,mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>te(t,e))}findAll(e={}){return this.getAll().filter(t=>te(e,t))}notify(e){h.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return h.batch(()=>Promise.all(e.map(e=>e.continue().catch(l))))}};function Ze(e){return e.options.scope?.id}var Qe=class extends r{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,n){let r=t.queryKey,i=t.queryHash??ne(r,t),a=this.get(i);return a||(a=new ze({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(r)}),this.add(a)),a}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:`added`,query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:`removed`,query:e}))}clear(){h.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>ee(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>ee(e,t)):t}notify(e){h.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){h.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){h.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},$e=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new Qe,this.#t=e.mutationCache||new Xe,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=i.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=Ne.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:`fetching`}).length}isMutating(e){return this.#t.findAll({...e,status:`pending`}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),n=this.#e.build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(p(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,n){let r=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(r.queryHash)?.state.data,a=u(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return h.batch(()=>this.#e.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,n)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;h.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return h.batch(()=>(n.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:`active`,...e},t)))}cancelQueries(e,t={}){let n={revert:!0,...t},r=h.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(l).catch(l)}invalidateQueries(e,t={}){return h.batch(()=>(this.#e.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType===`none`?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??`active`},t)))}refetchQueries(e,t={}){let n={...t,cancelRefetch:t.cancelRefetch??!0},r=h.batch(()=>this.#e.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,n);return n.throwOnError||(t=t.catch(l)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(l)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t);return n.isStaleByTime(p(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(l).catch(l)}fetchInfiniteQuery(e){return e.behavior=Ue(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(l).catch(l)}ensureInfiniteQueryData(e){return e.behavior=Ue(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return Ne.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#r.set(re(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{ie(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(re(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{ie(e,t.mutationKey)&&Object.assign(n,t.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||=ne(t.queryKey,t),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!==`always`),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode=`offlineFirst`),t.queryFn===ge&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},et=e(n(),1),tt=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},nt=(e=>e?tt(e):tt),rt=e=>e;function it(e,t=rt){let n=et.useSyncExternalStore(e.subscribe,et.useCallback(()=>t(e.getState()),[e,t]),et.useCallback(()=>t(e.getInitialState()),[e,t]));return et.useDebugValue(n),n}var at=e=>{let t=nt(e),n=e=>it(t,e);return Object.assign(n,t),n},ot=(e=>e?at(e):at),st=200,ct=60,lt=1e3,ut=`miravo:runtime-snapshot`;function dt(e){try{sessionStorage.setItem(ut,JSON.stringify(e))}catch{}}function ft(){try{sessionStorage.removeItem(ut)}catch{}}function pt(e){if(typeof e!=`object`||!e)return!1;let t=e;if(typeof t.revision!=`number`||typeof t.state!=`object`||t.state===null||typeof t.metrics!=`object`||t.metrics===null)return!1;let n=t.metrics;return typeof n.core!=`object`||n.core===null?!1:Array.isArray(t.templates)}function mt(){try{let e=sessionStorage.getItem(ut);if(!e)return null;let t=JSON.parse(e);return pt(t)?t:(ft(),null)}catch{return ft(),null}}function ht(e){let t=e.metrics.core.tickCount,n=e.metrics.core.actualTicksPerSecond,r=Date.now();return{connectionState:`live`,connectionStateSince:r,reconnectAttempts:0,fatalError:null,lastRevision:e.revision,factoryName:e.state.factoryName??e.metrics.factoryName??``,seed:e.state.config.seed,engineState:e.metrics.core.state,tick:t,simulationTime:e.metrics.core.simulationTimeSeconds,tickIntervalMs:e.state.config.tickIntervalMs,lastTickReceivedAt:r,assetCount:e.metrics.core.assetCount,memberValueCount:e.metrics.core.memberValueCount,quarantinedAssetCount:e.metrics.core.quarantinedAssetCount,engineErrorsCount:e.metrics.core.engineErrorsCount,tickOverrunsCount:e.metrics.core.tickOverrunsCount,circuitBreakerTripsCount:e.metrics.core.circuitBreakerTripsCount,tps:n,uptimeMs:e.metrics.core.uptimeMs,speedMultiplier:e.state.config.timeMultiplier,assets:[...e.state.assets],models:[...e.state.models],tpsHistory:[{tick:t,tps:n,sampledAtMs:r}],lines:[...e.state.lines??[]],templates:[...e.templates],bootTemplate:e.state.config.template,availableAdapters:e.state.availableAdapters??[],adapterMetrics:e.metrics.adapters??[],memberValues:new Map,events:[]}}function gt(e,t){return{connectionState:`live`,connectionStateSince:e.connectionState===`live`?e.connectionStateSince:t,reconnectAttempts:0,fatalError:null}}var _t=ot((e,t)=>({connectionState:`booting`,connectionStateSince:Date.now(),reconnectAttempts:0,fatalError:null,lastRevision:0,factoryName:``,seed:null,engineState:`idle`,tick:0,simulationTime:0,tickIntervalMs:1e3,lastTickReceivedAt:0,assetCount:0,memberValueCount:0,quarantinedAssetCount:0,engineErrorsCount:0,tickOverrunsCount:0,circuitBreakerTripsCount:0,tps:0,uptimeMs:0,speedMultiplier:1,assets:[],models:[],tpsHistory:[],lines:[],templates:[],bootTemplate:void 0,availableAdapters:[],adapterMetrics:[],memberValues:new Map,events:[],replaceRuntime:(n,r)=>{let i=t().lastRevision;i>0&&(n.revision<i&&!r?.allowRevisionRewind||n.revision===i&&!r?.allowSameRevision)||(e(()=>ht(n)),dt(n))},applyTick:n=>{let r=t();if(n.revision<=r.lastRevision)return;let i=n.delta??[],a=n.tick??r.tick,o=n.simulationTime??r.simulationTime,s=n.assetCount??r.assetCount,c=n.metrics.core.actualTicksPerSecond,l=Date.now();if(!(i.length>0||a!==r.tick||o!==r.simulationTime||s!==r.assetCount||n.metrics.adapters!==r.adapterMetrics||n.metrics.core.engineErrorsCount!==r.engineErrorsCount||n.metrics.core.tickOverrunsCount!==r.tickOverrunsCount||n.metrics.core.circuitBreakerTripsCount!==r.circuitBreakerTripsCount||n.metrics.core.memberValueCount!==r.memberValueCount||n.metrics.core.quarantinedAssetCount!==r.quarantinedAssetCount||c!==r.tps)){e({...gt(r,l),lastTickReceivedAt:l,lastRevision:n.revision});return}let u={...gt(r,l),tick:a,simulationTime:o,lastTickReceivedAt:l,assetCount:s,memberValueCount:n.metrics.core.memberValueCount,quarantinedAssetCount:n.metrics.core.quarantinedAssetCount,engineErrorsCount:n.metrics.core.engineErrorsCount,tickOverrunsCount:n.metrics.core.tickOverrunsCount,circuitBreakerTripsCount:n.metrics.core.circuitBreakerTripsCount,tps:c,uptimeMs:n.metrics.core.uptimeMs,adapterMetrics:n.metrics.adapters,lastRevision:n.revision},d=r.tpsHistory.at(-1),f={tps:c,tick:a,sampledAtMs:l};if(!d||l-d.sampledAtMs>=lt?u.tpsHistory=[...r.tpsHistory,f].slice(-ct):u.tpsHistory=[...r.tpsHistory.slice(0,-1),f],i.length>0){let e=new Map(r.memberValues),t=new Set;for(let n of i){if(!t.has(n.assetId)){let r=e.get(n.assetId);e.set(n.assetId,new Map(r)),t.add(n.assetId)}e.get(n.assetId)?.set(n.memberName,{value:n.value,quality:n.quality})}u.memberValues=e}e(u)},applyEvent:(n,r)=>{let i=t();if(r<=i.lastRevision)return;let a=Date.now(),o=[n,...i.events].slice(0,st),s={...gt(i,a),events:o,lastRevision:r};if(n.kind===`asset:removed`){let t=new Map(i.memberValues);t.delete(n.id),e({...s,memberValues:t});return}if(n.kind===`fault:triggered`||n.kind===`fault:cleared`){let t=i.assets.map(e=>{if(e.id!==n.assetId)return e;let t=n.kind===`fault:triggered`?[...e.activeFaults,n.fault]:e.activeFaults.filter(e=>e!==n.fault);return{...e,activeFaults:t}});e({...s,assets:t});return}if(n.kind===`lifecycle:changed`||n.kind===`asset:maintenance`){let t=i.assets.map(e=>e.id===n.assetId?{...e,lifecycleStage:n.to,operatingHours:n.operatingHours}:e);e({...s,assets:t});return}if(n.kind===`engine:state`){e({...s,engineState:n.to});return}e(s)},markConnection:n=>{t().connectionState!==n&&e({connectionState:n,connectionStateSince:Date.now()})},markFatal:t=>{e({connectionState:`fatal`,connectionStateSince:Date.now(),fatalError:t})},markUnauthenticated:()=>{t().connectionState!==`unauthenticated`&&e({connectionState:`unauthenticated`,connectionStateSince:Date.now()})},noteReconnectAttempt:()=>{e(e=>({reconnectAttempts:e.reconnectAttempts+1}))},resetReconnectAttempts:()=>{t().reconnectAttempts!==0&&e({reconnectAttempts:0})}})),g;(function(e){e.assertEqual=e=>{};function t(e){}e.assertIs=t;function n(e){throw Error()}e.assertNever=n,e.arrayToEnum=e=>{let t={};for(let n of e)t[n]=n;return t},e.getValidEnumValues=t=>{let n=e.objectKeys(t).filter(e=>typeof t[t[e]]!=`number`),r={};for(let e of n)r[e]=t[e];return e.objectValues(r)},e.objectValues=t=>e.objectKeys(t).map(function(e){return t[e]}),e.objectKeys=typeof Object.keys==`function`?e=>Object.keys(e):e=>{let t=[];for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=(e,t)=>{for(let n of e)if(t(n))return n},e.isInteger=typeof Number.isInteger==`function`?e=>Number.isInteger(e):e=>typeof e==`number`&&Number.isFinite(e)&&Math.floor(e)===e;function r(e,t=` | `){return e.map(e=>typeof e==`string`?`'${e}'`:e).join(t)}e.joinValues=r,e.jsonStringifyReplacer=(e,t)=>typeof t==`bigint`?t.toString():t})(g||={});var vt;(function(e){e.mergeShapes=(e,t)=>({...e,...t})})(vt||={});var _=g.arrayToEnum([`string`,`nan`,`number`,`integer`,`float`,`boolean`,`date`,`bigint`,`symbol`,`function`,`undefined`,`null`,`array`,`object`,`unknown`,`promise`,`void`,`never`,`map`,`set`]),v=e=>{switch(typeof e){case`undefined`:return _.undefined;case`string`:return _.string;case`number`:return Number.isNaN(e)?_.nan:_.number;case`boolean`:return _.boolean;case`function`:return _.function;case`bigint`:return _.bigint;case`symbol`:return _.symbol;case`object`:return Array.isArray(e)?_.array:e===null?_.null:e.then&&typeof e.then==`function`&&e.catch&&typeof e.catch==`function`?_.promise:typeof Map<`u`&&e instanceof Map?_.map:typeof Set<`u`&&e instanceof Set?_.set:typeof Date<`u`&&e instanceof Date?_.date:_.object;default:return _.unknown}},y=g.arrayToEnum([`invalid_type`,`invalid_literal`,`custom`,`invalid_union`,`invalid_union_discriminator`,`invalid_enum_value`,`unrecognized_keys`,`invalid_arguments`,`invalid_return_type`,`invalid_date`,`invalid_string`,`too_small`,`too_big`,`invalid_intersection_types`,`not_multiple_of`,`not_finite`]),yt=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,`$1:`),b=class e extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};let t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name=`ZodError`,this.issues=e}format(e){let t=e||function(e){return e.message},n={_errors:[]},r=e=>{for(let i of e.issues)if(i.code===`invalid_union`)i.unionErrors.map(r);else if(i.code===`invalid_return_type`)r(i.returnTypeError);else if(i.code===`invalid_arguments`)r(i.argumentsError);else if(i.path.length===0)n._errors.push(t(i));else{let e=n,r=0;for(;r<i.path.length;){let n=i.path[r];r===i.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(i))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(this),n}static assert(t){if(!(t instanceof e))throw Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,g.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=e=>e.message){let t={},n=[];for(let r of this.issues)if(r.path.length>0){let n=r.path[0];t[n]=t[n]||[],t[n].push(e(r))}else n.push(e(r));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}};b.create=e=>new b(e);var bt=(e,t)=>{let n;switch(e.code){case y.invalid_type:n=e.received===_.undefined?`Required`:`Expected ${e.expected}, received ${e.received}`;break;case y.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,g.jsonStringifyReplacer)}`;break;case y.unrecognized_keys:n=`Unrecognized key(s) in object: ${g.joinValues(e.keys,`, `)}`;break;case y.invalid_union:n=`Invalid input`;break;case y.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${g.joinValues(e.options)}`;break;case y.invalid_enum_value:n=`Invalid enum value. Expected ${g.joinValues(e.options)}, received '${e.received}'`;break;case y.invalid_arguments:n=`Invalid function arguments`;break;case y.invalid_return_type:n=`Invalid function return type`;break;case y.invalid_date:n=`Invalid date`;break;case y.invalid_string:typeof e.validation==`object`?`includes`in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position==`number`&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):`startsWith`in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:`endsWith`in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:g.assertNever(e.validation):n=e.validation===`regex`?`Invalid`:`Invalid ${e.validation}`;break;case y.too_small:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at least`:`more than`} ${e.minimum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at least`:`over`} ${e.minimum} character(s)`:e.type===`number`||e.type===`bigint`?`Number must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${e.minimum}`:e.type===`date`?`Date must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${new Date(Number(e.minimum))}`:`Invalid input`;break;case y.too_big:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at most`:`less than`} ${e.maximum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at most`:`under`} ${e.maximum} character(s)`:e.type===`number`?`Number must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`bigint`?`BigInt must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`date`?`Date must be ${e.exact?`exactly`:e.inclusive?`smaller than or equal to`:`smaller than`} ${new Date(Number(e.maximum))}`:`Invalid input`;break;case y.custom:n=`Invalid input`;break;case y.invalid_intersection_types:n=`Intersection results could not be merged`;break;case y.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case y.not_finite:n=`Number must be finite`;break;default:n=t.defaultError,g.assertNever(e)}return{message:n}},xt=bt;function St(e){xt=e}function Ct(){return xt}var wt=e=>{let{data:t,path:n,errorMaps:r,issueData:i}=e,a=[...n,...i.path||[]],o={...i,path:a};if(i.message!==void 0)return{...i,path:a,message:i.message};let s=``,c=r.filter(e=>!!e).slice().reverse();for(let e of c)s=e(o,{data:t,defaultError:s}).message;return{...i,path:a,message:s}},Tt=[];function x(e,t){let n=Ct(),r=wt({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===bt?void 0:bt].filter(e=>!!e)});e.common.issues.push(r)}var S=class e{constructor(){this.value=`valid`}dirty(){this.value===`valid`&&(this.value=`dirty`)}abort(){this.value!==`aborted`&&(this.value=`aborted`)}static mergeArray(e,t){let n=[];for(let r of t){if(r.status===`aborted`)return C;r.status===`dirty`&&e.dirty(),n.push(r.value)}return{status:e.value,value:n}}static async mergeObjectAsync(t,n){let r=[];for(let e of n){let t=await e.key,n=await e.value;r.push({key:t,value:n})}return e.mergeObjectSync(t,r)}static mergeObjectSync(e,t){let n={};for(let r of t){let{key:t,value:i}=r;if(t.status===`aborted`||i.status===`aborted`)return C;t.status===`dirty`&&e.dirty(),i.status===`dirty`&&e.dirty(),t.value!==`__proto__`&&(i.value!==void 0||r.alwaysSet)&&(n[t.value]=i.value)}return{status:e.value,value:n}}},C=Object.freeze({status:`aborted`}),Et=e=>({status:`dirty`,value:e}),w=e=>({status:`valid`,value:e}),Dt=e=>e.status===`aborted`,Ot=e=>e.status===`dirty`,kt=e=>e.status===`valid`,At=e=>typeof Promise<`u`&&e instanceof Promise,T;(function(e){e.errToObj=e=>typeof e==`string`?{message:e}:e||{},e.toString=e=>typeof e==`string`?e:e?.message})(T||={});var E=class{constructor(e,t,n,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},jt=(e,t)=>{if(kt(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw Error(`Validation failed but no issues detected.`);return{success:!1,get error(){return this._error||=new b(e.common.issues),this._error}}};function D(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(t,i)=>{let{message:a}=e;return t.code===`invalid_enum_value`?{message:a??i.defaultError}:i.data===void 0?{message:a??r??i.defaultError}:t.code===`invalid_type`?{message:a??n??i.defaultError}:{message:i.defaultError}},description:i}}var O=class{get description(){return this._def.description}_getType(e){return v(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:v(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new S,ctx:{common:e.parent.common,data:e.data,parsedType:v(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(At(t))throw Error(`Synchronous parse encountered promise.`);return t}_parseAsync(e){let t=this._parse(e);return Promise.resolve(t)}parse(e,t){let n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){let n={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:v(e)};return jt(n,this._parseSync({data:e,path:n.path,parent:n}))}"~validate"(e){let t={common:{issues:[],async:!!this[`~standard`].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:v(e)};if(!this[`~standard`].async)try{let n=this._parseSync({data:e,path:[],parent:t});return kt(n)?{value:n.value}:{issues:t.common.issues}}catch(e){e?.message?.toLowerCase()?.includes(`encountered`)&&(this[`~standard`].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(e=>kt(e)?{value:e.value}:{issues:t.common.issues})}async parseAsync(e,t){let n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){let n={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:v(e)},r=this._parse({data:e,path:n.path,parent:n});return jt(n,await(At(r)?r:Promise.resolve(r)))}refine(e,t){let n=e=>typeof t==`string`||t===void 0?{message:t}:typeof t==`function`?t(e):t;return this._refinement((t,r)=>{let i=e(t),a=()=>r.addIssue({code:y.custom,...n(t)});return typeof Promise<`u`&&i instanceof Promise?i.then(e=>e?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(e,t){return this._refinement((n,r)=>e(n)?!0:(r.addIssue(typeof t==`function`?t(n,r):t),!1))}_refinement(e){return new N({schema:this,typeName:F.ZodEffects,effect:{type:`refinement`,refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this[`~standard`]={version:1,vendor:`zod`,validate:e=>this[`~validate`](e)}}optional(){return P.create(this,this._def)}nullable(){return jn.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return hn.create(this)}promise(){return An.create(this,this._def)}or(e){return _n.create([this,e],this._def)}and(e){return bn.create(this,e,this._def)}transform(e){return new N({...D(this._def),schema:this,typeName:F.ZodEffects,effect:{type:`transform`,transform:e}})}default(e){let t=typeof e==`function`?e:()=>e;return new Mn({...D(this._def),innerType:this,defaultValue:t,typeName:F.ZodDefault})}brand(){return new In({typeName:F.ZodBranded,type:this,...D(this._def)})}catch(e){let t=typeof e==`function`?e:()=>e;return new Nn({...D(this._def),innerType:this,catchValue:t,typeName:F.ZodCatch})}describe(e){let t=this.constructor;return new t({...this._def,description:e})}pipe(e){return Ln.create(this,e)}readonly(){return Rn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Mt=/^c[^\s-]{8,}$/i,Nt=/^[0-9a-z]+$/,Pt=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Ft=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,It=/^[a-z0-9_-]{21}$/i,Lt=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Rt=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,zt=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Bt=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,Vt,Ht=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Ut=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Wt=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Gt=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Kt=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,qt=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Jt=`((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))`,Yt=RegExp(`^${Jt}$`);function Xt(e){let t=`[0-5]\\d`;e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision??(t=`${t}(\\.\\d+)?`);let n=e.precision?`+`:`?`;return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function Zt(e){return RegExp(`^${Xt(e)}$`)}function Qt(e){let t=`${Jt}T${Xt(e)}`,n=[];return n.push(e.local?`Z?`:`Z`),e.offset&&n.push(`([+-]\\d{2}:?\\d{2})`),t=`${t}(${n.join(`|`)})`,RegExp(`^${t}$`)}function $t(e,t){return!!((t===`v4`||!t)&&Ht.test(e)||(t===`v6`||!t)&&Wt.test(e))}function en(e,t){if(!Lt.test(e))return!1;try{let[n]=e.split(`.`);if(!n)return!1;let r=n.replace(/-/g,`+`).replace(/_/g,`/`).padEnd(n.length+(4-n.length%4)%4,`=`),i=JSON.parse(atob(r));return!(typeof i!=`object`||!i||`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&i.alg!==t)}catch{return!1}}function tn(e,t){return!!((t===`v4`||!t)&&Ut.test(e)||(t===`v6`||!t)&&Gt.test(e))}var nn=class e extends O{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==_.string){let t=this._getOrReturnCtx(e);return x(t,{code:y.invalid_type,expected:_.string,received:t.parsedType}),C}let t=new S,n;for(let r of this._def.checks)if(r.kind===`min`)e.data.length<r.value&&(n=this._getOrReturnCtx(e,n),x(n,{code:y.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`max`)e.data.length>r.value&&(n=this._getOrReturnCtx(e,n),x(n,{code:y.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`length`){let i=e.data.length>r.value,a=e.data.length<r.value;(i||a)&&(n=this._getOrReturnCtx(e,n),i?x(n,{code:y.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}):a&&x(n,{code:y.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}),t.dirty())}else if(r.kind===`email`)zt.test(e.data)||(n=this._getOrReturnCtx(e,n),x(n,{validation:`email`,code:y.invalid_string,message:r.message}),t.dirty());else if(r.kind===`emoji`)Vt||=new RegExp(Bt,`u`),Vt.test(e.data)||(n=this._getOrReturnCtx(e,n),x(n,{validation:`emoji`,code:y.invalid_string,message:r.message}),t.dirty());else if(r.kind===`uuid`)Ft.test(e.data)||(n=this._getOrReturnCtx(e,n),x(n,{validation:`uuid`,code:y.invalid_string,message:r.message}),t.dirty());else if(r.kind===`nanoid`)It.test(e.data)||(n=this._getOrReturnCtx(e,n),x(n,{validation:`nanoid`,code:y.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid`)Mt.test(e.data)||(n=this._getOrReturnCtx(e,n),x(n,{validation:`cuid`,code:y.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid2`)Nt.test(e.data)||(n=this._getOrReturnCtx(e,n),x(n,{validation:`cuid2`,code:y.invalid_string,message:r.message}),t.dirty());else if(r.kind===`ulid`)Pt.test(e.data)||(n=this._getOrReturnCtx(e,n),x(n,{validation:`ulid`,code:y.invalid_string,message:r.message}),t.dirty());else if(r.kind===`url`)try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),x(n,{validation:`url`,code:y.invalid_string,message:r.message}),t.dirty()}else r.kind===`regex`?(r.regex.lastIndex=0,r.regex.test(e.data)||(n=this._getOrReturnCtx(e,n),x(n,{validation:`regex`,code:y.invalid_string,message:r.message}),t.dirty())):r.kind===`trim`?e.data=e.data.trim():r.kind===`includes`?e.data.includes(r.value,r.position)||(n=this._getOrReturnCtx(e,n),x(n,{code:y.invalid_string,validation:{includes:r.value,position:r.position},message:r.message}),t.dirty()):r.kind===`toLowerCase`?e.data=e.data.toLowerCase():r.kind===`toUpperCase`?e.data=e.data.toUpperCase():r.kind===`startsWith`?e.data.startsWith(r.value)||(n=this._getOrReturnCtx(e,n),x(n,{code:y.invalid_string,validation:{startsWith:r.value},message:r.message}),t.dirty()):r.kind===`endsWith`?e.data.endsWith(r.value)||(n=this._getOrReturnCtx(e,n),x(n,{code:y.invalid_string,validation:{endsWith:r.value},message:r.message}),t.dirty()):r.kind===`datetime`?Qt(r).test(e.data)||(n=this._getOrReturnCtx(e,n),x(n,{code:y.invalid_string,validation:`datetime`,message:r.message}),t.dirty()):r.kind===`date`?Yt.test(e.data)||(n=this._getOrReturnCtx(e,n),x(n,{code:y.invalid_string,validation:`date`,message:r.message}),t.dirty()):r.kind===`time`?Zt(r).test(e.data)||(n=this._getOrReturnCtx(e,n),x(n,{code:y.invalid_string,validation:`time`,message:r.message}),t.dirty()):r.kind===`duration`?Rt.test(e.data)||(n=this._getOrReturnCtx(e,n),x(n,{validation:`duration`,code:y.invalid_string,message:r.message}),t.dirty()):r.kind===`ip`?$t(e.data,r.version)||(n=this._getOrReturnCtx(e,n),x(n,{validation:`ip`,code:y.invalid_string,message:r.message}),t.dirty()):r.kind===`jwt`?en(e.data,r.alg)||(n=this._getOrReturnCtx(e,n),x(n,{validation:`jwt`,code:y.invalid_string,message:r.message}),t.dirty()):r.kind===`cidr`?tn(e.data,r.version)||(n=this._getOrReturnCtx(e,n),x(n,{validation:`cidr`,code:y.invalid_string,message:r.message}),t.dirty()):r.kind===`base64`?Kt.test(e.data)||(n=this._getOrReturnCtx(e,n),x(n,{validation:`base64`,code:y.invalid_string,message:r.message}),t.dirty()):r.kind===`base64url`?qt.test(e.data)||(n=this._getOrReturnCtx(e,n),x(n,{validation:`base64url`,code:y.invalid_string,message:r.message}),t.dirty()):g.assertNever(r);return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:y.invalid_string,...T.errToObj(n)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(e){return this._addCheck({kind:`email`,...T.errToObj(e)})}url(e){return this._addCheck({kind:`url`,...T.errToObj(e)})}emoji(e){return this._addCheck({kind:`emoji`,...T.errToObj(e)})}uuid(e){return this._addCheck({kind:`uuid`,...T.errToObj(e)})}nanoid(e){return this._addCheck({kind:`nanoid`,...T.errToObj(e)})}cuid(e){return this._addCheck({kind:`cuid`,...T.errToObj(e)})}cuid2(e){return this._addCheck({kind:`cuid2`,...T.errToObj(e)})}ulid(e){return this._addCheck({kind:`ulid`,...T.errToObj(e)})}base64(e){return this._addCheck({kind:`base64`,...T.errToObj(e)})}base64url(e){return this._addCheck({kind:`base64url`,...T.errToObj(e)})}jwt(e){return this._addCheck({kind:`jwt`,...T.errToObj(e)})}ip(e){return this._addCheck({kind:`ip`,...T.errToObj(e)})}cidr(e){return this._addCheck({kind:`cidr`,...T.errToObj(e)})}datetime(e){return typeof e==`string`?this._addCheck({kind:`datetime`,precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:`datetime`,precision:e?.precision===void 0?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...T.errToObj(e?.message)})}date(e){return this._addCheck({kind:`date`,message:e})}time(e){return typeof e==`string`?this._addCheck({kind:`time`,precision:null,message:e}):this._addCheck({kind:`time`,precision:e?.precision===void 0?null:e?.precision,...T.errToObj(e?.message)})}duration(e){return this._addCheck({kind:`duration`,...T.errToObj(e)})}regex(e,t){return this._addCheck({kind:`regex`,regex:e,...T.errToObj(t)})}includes(e,t){return this._addCheck({kind:`includes`,value:e,position:t?.position,...T.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:`startsWith`,value:e,...T.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:`endsWith`,value:e,...T.errToObj(t)})}min(e,t){return this._addCheck({kind:`min`,value:e,...T.errToObj(t)})}max(e,t){return this._addCheck({kind:`max`,value:e,...T.errToObj(t)})}length(e,t){return this._addCheck({kind:`length`,value:e,...T.errToObj(t)})}nonempty(e){return this.min(1,T.errToObj(e))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:`trim`}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toLowerCase`}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toUpperCase`}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind===`datetime`)}get isDate(){return!!this._def.checks.find(e=>e.kind===`date`)}get isTime(){return!!this._def.checks.find(e=>e.kind===`time`)}get isDuration(){return!!this._def.checks.find(e=>e.kind===`duration`)}get isEmail(){return!!this._def.checks.find(e=>e.kind===`email`)}get isURL(){return!!this._def.checks.find(e=>e.kind===`url`)}get isEmoji(){return!!this._def.checks.find(e=>e.kind===`emoji`)}get isUUID(){return!!this._def.checks.find(e=>e.kind===`uuid`)}get isNANOID(){return!!this._def.checks.find(e=>e.kind===`nanoid`)}get isCUID(){return!!this._def.checks.find(e=>e.kind===`cuid`)}get isCUID2(){return!!this._def.checks.find(e=>e.kind===`cuid2`)}get isULID(){return!!this._def.checks.find(e=>e.kind===`ulid`)}get isIP(){return!!this._def.checks.find(e=>e.kind===`ip`)}get isCIDR(){return!!this._def.checks.find(e=>e.kind===`cidr`)}get isBase64(){return!!this._def.checks.find(e=>e.kind===`base64`)}get isBase64url(){return!!this._def.checks.find(e=>e.kind===`base64url`)}get minLength(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};nn.create=e=>new nn({checks:[],typeName:F.ZodString,coerce:e?.coerce??!1,...D(e)});function rn(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=(t.toString().split(`.`)[1]||``).length,i=n>r?n:r;return Number.parseInt(e.toFixed(i).replace(`.`,``))%Number.parseInt(t.toFixed(i).replace(`.`,``))/10**i}var an=class e extends O{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==_.number){let t=this._getOrReturnCtx(e);return x(t,{code:y.invalid_type,expected:_.number,received:t.parsedType}),C}let t,n=new S;for(let r of this._def.checks)r.kind===`int`?g.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),x(t,{code:y.invalid_type,expected:`integer`,received:`float`,message:r.message}),n.dirty()):r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),x(t,{code:y.too_small,minimum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),x(t,{code:y.too_big,maximum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`multipleOf`?rn(e.data,r.value)!==0&&(t=this._getOrReturnCtx(e,t),x(t,{code:y.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):r.kind===`finite`?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),x(t,{code:y.not_finite,message:r.message}),n.dirty()):g.assertNever(r);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit(`min`,e,!0,T.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,T.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,T.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,T.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:T.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(e){return this._addCheck({kind:`int`,message:T.toString(e)})}positive(e){return this._addCheck({kind:`min`,value:0,inclusive:!1,message:T.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:0,inclusive:!1,message:T.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:0,inclusive:!0,message:T.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:0,inclusive:!0,message:T.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:T.toString(t)})}finite(e){return this._addCheck({kind:`finite`,message:T.toString(e)})}safe(e){return this._addCheck({kind:`min`,inclusive:!0,value:-(2**53-1),message:T.toString(e)})._addCheck({kind:`max`,inclusive:!0,value:2**53-1,message:T.toString(e)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind===`int`||e.kind===`multipleOf`&&g.isInteger(e.value))}get isFinite(){let e=null,t=null;for(let n of this._def.checks)if(n.kind===`finite`||n.kind===`int`||n.kind===`multipleOf`)return!0;else n.kind===`min`?(t===null||n.value>t)&&(t=n.value):n.kind===`max`&&(e===null||n.value<e)&&(e=n.value);return Number.isFinite(t)&&Number.isFinite(e)}};an.create=e=>new an({checks:[],typeName:F.ZodNumber,coerce:e?.coerce||!1,...D(e)});var on=class e extends O{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==_.bigint)return this._getInvalidInput(e);let t,n=new S;for(let r of this._def.checks)r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),x(t,{code:y.too_small,type:`bigint`,minimum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),x(t,{code:y.too_big,type:`bigint`,maximum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`multipleOf`?e.data%r.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),x(t,{code:y.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):g.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return x(t,{code:y.invalid_type,expected:_.bigint,received:t.parsedType}),C}gte(e,t){return this.setLimit(`min`,e,!0,T.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,T.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,T.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,T.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:T.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!1,message:T.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!1,message:T.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!0,message:T.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!0,message:T.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:T.toString(t)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};on.create=e=>new on({checks:[],typeName:F.ZodBigInt,coerce:e?.coerce??!1,...D(e)});var sn=class extends O{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==_.boolean){let t=this._getOrReturnCtx(e);return x(t,{code:y.invalid_type,expected:_.boolean,received:t.parsedType}),C}return w(e.data)}};sn.create=e=>new sn({typeName:F.ZodBoolean,coerce:e?.coerce||!1,...D(e)});var cn=class e extends O{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==_.date){let t=this._getOrReturnCtx(e);return x(t,{code:y.invalid_type,expected:_.date,received:t.parsedType}),C}if(Number.isNaN(e.data.getTime()))return x(this._getOrReturnCtx(e),{code:y.invalid_date}),C;let t=new S,n;for(let r of this._def.checks)r.kind===`min`?e.data.getTime()<r.value&&(n=this._getOrReturnCtx(e,n),x(n,{code:y.too_small,message:r.message,inclusive:!0,exact:!1,minimum:r.value,type:`date`}),t.dirty()):r.kind===`max`?e.data.getTime()>r.value&&(n=this._getOrReturnCtx(e,n),x(n,{code:y.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:`date`}),t.dirty()):g.assertNever(r);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(e,t){return this._addCheck({kind:`min`,value:e.getTime(),message:T.toString(t)})}max(e,t){return this._addCheck({kind:`max`,value:e.getTime(),message:T.toString(t)})}get minDate(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e==null?null:new Date(e)}get maxDate(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e==null?null:new Date(e)}};cn.create=e=>new cn({checks:[],coerce:e?.coerce||!1,typeName:F.ZodDate,...D(e)});var ln=class extends O{_parse(e){if(this._getType(e)!==_.symbol){let t=this._getOrReturnCtx(e);return x(t,{code:y.invalid_type,expected:_.symbol,received:t.parsedType}),C}return w(e.data)}};ln.create=e=>new ln({typeName:F.ZodSymbol,...D(e)});var un=class extends O{_parse(e){if(this._getType(e)!==_.undefined){let t=this._getOrReturnCtx(e);return x(t,{code:y.invalid_type,expected:_.undefined,received:t.parsedType}),C}return w(e.data)}};un.create=e=>new un({typeName:F.ZodUndefined,...D(e)});var dn=class extends O{_parse(e){if(this._getType(e)!==_.null){let t=this._getOrReturnCtx(e);return x(t,{code:y.invalid_type,expected:_.null,received:t.parsedType}),C}return w(e.data)}};dn.create=e=>new dn({typeName:F.ZodNull,...D(e)});var fn=class extends O{constructor(){super(...arguments),this._any=!0}_parse(e){return w(e.data)}};fn.create=e=>new fn({typeName:F.ZodAny,...D(e)});var pn=class extends O{constructor(){super(...arguments),this._unknown=!0}_parse(e){return w(e.data)}};pn.create=e=>new pn({typeName:F.ZodUnknown,...D(e)});var k=class extends O{_parse(e){let t=this._getOrReturnCtx(e);return x(t,{code:y.invalid_type,expected:_.never,received:t.parsedType}),C}};k.create=e=>new k({typeName:F.ZodNever,...D(e)});var mn=class extends O{_parse(e){if(this._getType(e)!==_.undefined){let t=this._getOrReturnCtx(e);return x(t,{code:y.invalid_type,expected:_.void,received:t.parsedType}),C}return w(e.data)}};mn.create=e=>new mn({typeName:F.ZodVoid,...D(e)});var hn=class e extends O{_parse(e){let{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==_.array)return x(t,{code:y.invalid_type,expected:_.array,received:t.parsedType}),C;if(r.exactLength!==null){let e=t.data.length>r.exactLength.value,i=t.data.length<r.exactLength.value;(e||i)&&(x(t,{code:e?y.too_big:y.too_small,minimum:i?r.exactLength.value:void 0,maximum:e?r.exactLength.value:void 0,type:`array`,inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(r.minLength!==null&&t.data.length<r.minLength.value&&(x(t,{code:y.too_small,minimum:r.minLength.value,type:`array`,inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),r.maxLength!==null&&t.data.length>r.maxLength.value&&(x(t,{code:y.too_big,maximum:r.maxLength.value,type:`array`,inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((e,n)=>r.type._parseAsync(new E(t,e,t.path,n)))).then(e=>S.mergeArray(n,e));let i=[...t.data].map((e,n)=>r.type._parseSync(new E(t,e,t.path,n)));return S.mergeArray(n,i)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:T.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:T.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:T.toString(n)}})}nonempty(e){return this.min(1,e)}};hn.create=(e,t)=>new hn({type:e,minLength:null,maxLength:null,exactLength:null,typeName:F.ZodArray,...D(t)});function gn(e){if(e instanceof A){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=P.create(gn(r))}return new A({...e._def,shape:()=>t})}else if(e instanceof hn)return new hn({...e._def,type:gn(e.element)});else if(e instanceof P)return P.create(gn(e.unwrap()));else if(e instanceof jn)return jn.create(gn(e.unwrap()));else if(e instanceof M)return M.create(e.items.map(e=>gn(e)));else return e}var A=class e extends O{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape();return this._cached={shape:e,keys:g.objectKeys(e)},this._cached}_parse(e){if(this._getType(e)!==_.object){let t=this._getOrReturnCtx(e);return x(t,{code:y.invalid_type,expected:_.object,received:t.parsedType}),C}let{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof k&&this._def.unknownKeys===`strip`))for(let e in n.data)i.includes(e)||a.push(e);let o=[];for(let e of i){let t=r[e],i=n.data[e];o.push({key:{status:`valid`,value:e},value:t._parse(new E(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof k){let e=this._def.unknownKeys;if(e===`passthrough`)for(let e of a)o.push({key:{status:`valid`,value:e},value:{status:`valid`,value:n.data[e]}});else if(e===`strict`)a.length>0&&(x(n,{code:y.unrecognized_keys,keys:a}),t.dirty());else if(e!==`strip`)throw Error(`Internal ZodObject error: invalid unknownKeys value.`)}else{let e=this._def.catchall;for(let t of a){let r=n.data[t];o.push({key:{status:`valid`,value:t},value:e._parse(new E(n,r,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then(async()=>{let e=[];for(let t of o){let n=await t.key,r=await t.value;e.push({key:n,value:r,alwaysSet:t.alwaysSet})}return e}).then(e=>S.mergeObjectSync(t,e)):S.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(t){return T.errToObj,new e({...this._def,unknownKeys:`strict`,...t===void 0?{}:{errorMap:(e,n)=>{let r=this._def.errorMap?.(e,n).message??n.defaultError;return e.code===`unrecognized_keys`?{message:T.errToObj(t).message??r}:{message:r}}}})}strip(){return new e({...this._def,unknownKeys:`strip`})}passthrough(){return new e({...this._def,unknownKeys:`passthrough`})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:F.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let e of g.objectKeys(t))t[e]&&this.shape[e]&&(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let e of g.objectKeys(this.shape))t[e]||(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}deepPartial(){return gn(this)}partial(t){let n={};for(let e of g.objectKeys(this.shape)){let r=this.shape[e];t&&!t[e]?n[e]=r:n[e]=r.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let e of g.objectKeys(this.shape))if(t&&!t[e])n[e]=this.shape[e];else{let t=this.shape[e];for(;t instanceof P;)t=t._def.innerType;n[e]=t}return new e({...this._def,shape:()=>n})}keyof(){return Dn(g.objectKeys(this.shape))}};A.create=(e,t)=>new A({shape:()=>e,unknownKeys:`strip`,catchall:k.create(),typeName:F.ZodObject,...D(t)}),A.strictCreate=(e,t)=>new A({shape:()=>e,unknownKeys:`strict`,catchall:k.create(),typeName:F.ZodObject,...D(t)}),A.lazycreate=(e,t)=>new A({shape:e,unknownKeys:`strip`,catchall:k.create(),typeName:F.ZodObject,...D(t)});var _n=class extends O{_parse(e){let{ctx:t}=this._processInputParams(e),n=this._def.options;function r(e){for(let t of e)if(t.result.status===`valid`)return t.result;for(let n of e)if(n.result.status===`dirty`)return t.common.issues.push(...n.ctx.common.issues),n.result;let n=e.map(e=>new b(e.ctx.common.issues));return x(t,{code:y.invalid_union,unionErrors:n}),C}if(t.common.async)return Promise.all(n.map(async e=>{let n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}})).then(r);{let e,r=[];for(let i of n){let n={...t,common:{...t.common,issues:[]},parent:null},a=i._parseSync({data:t.data,path:t.path,parent:n});if(a.status===`valid`)return a;a.status===`dirty`&&!e&&(e={result:a,ctx:n}),n.common.issues.length&&r.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;let i=r.map(e=>new b(e));return x(t,{code:y.invalid_union,unionErrors:i}),C}}get options(){return this._def.options}};_n.create=(e,t)=>new _n({options:e,typeName:F.ZodUnion,...D(t)});var j=e=>e instanceof Tn?j(e.schema):e instanceof N?j(e.innerType()):e instanceof En?[e.value]:e instanceof On?e.options:e instanceof kn?g.objectValues(e.enum):e instanceof Mn?j(e._def.innerType):e instanceof un?[void 0]:e instanceof dn?[null]:e instanceof P?[void 0,...j(e.unwrap())]:e instanceof jn?[null,...j(e.unwrap())]:e instanceof In||e instanceof Rn?j(e.unwrap()):e instanceof Nn?j(e._def.innerType):[],vn=class e extends O{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==_.object)return x(t,{code:y.invalid_type,expected:_.object,received:t.parsedType}),C;let n=this.discriminator,r=t.data[n],i=this.optionsMap.get(r);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(x(t,{code:y.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),C)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let e of n){let n=j(e.shape[t]);if(!n.length)throw Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let r of n){if(i.has(r))throw Error(`Discriminator property ${String(t)} has duplicate value ${String(r)}`);i.set(r,e)}}return new e({typeName:F.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...D(r)})}};function yn(e,t){let n=v(e),r=v(t);if(e===t)return{valid:!0,data:e};if(n===_.object&&r===_.object){let n=g.objectKeys(t),r=g.objectKeys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=yn(e[n],t[n]);if(!r.valid)return{valid:!1};i[n]=r.data}return{valid:!0,data:i}}else if(n===_.array&&r===_.array){if(e.length!==t.length)return{valid:!1};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=yn(i,a);if(!o.valid)return{valid:!1};n.push(o.data)}return{valid:!0,data:n}}else if(n===_.date&&r===_.date&&+e==+t)return{valid:!0,data:e};else return{valid:!1}}var bn=class extends O{_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(Dt(e)||Dt(r))return C;let i=yn(e.value,r.value);return i.valid?((Ot(e)||Ot(r))&&t.dirty(),{status:t.value,value:i.data}):(x(n,{code:y.invalid_intersection_types}),C)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([e,t])=>r(e,t)):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};bn.create=(e,t,n)=>new bn({left:e,right:t,typeName:F.ZodIntersection,...D(n)});var M=class e extends O{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==_.array)return x(n,{code:y.invalid_type,expected:_.array,received:n.parsedType}),C;if(n.data.length<this._def.items.length)return x(n,{code:y.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),C;!this._def.rest&&n.data.length>this._def.items.length&&(x(n,{code:y.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),t.dirty());let r=[...n.data].map((e,t)=>{let r=this._def.items[t]||this._def.rest;return r?r._parse(new E(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>S.mergeArray(t,e)):S.mergeArray(t,r)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};M.create=(e,t)=>{if(!Array.isArray(e))throw Error(`You must pass an array of schemas to z.tuple([ ... ])`);return new M({items:e,typeName:F.ZodTuple,rest:null,...D(t)})};var xn=class e extends O{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==_.object)return x(n,{code:y.invalid_type,expected:_.object,received:n.parsedType}),C;let r=[],i=this._def.keyType,a=this._def.valueType;for(let e in n.data)r.push({key:i._parse(new E(n,e,n.path,e)),value:a._parse(new E(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?S.mergeObjectAsync(t,r):S.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof O?new e({keyType:t,valueType:n,typeName:F.ZodRecord,...D(r)}):new e({keyType:nn.create(),valueType:t,typeName:F.ZodRecord,...D(n)})}},Sn=class extends O{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==_.map)return x(n,{code:y.invalid_type,expected:_.map,received:n.parsedType}),C;let r=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([e,t],a)=>({key:r._parse(new E(n,e,n.path,[a,`key`])),value:i._parse(new E(n,t,n.path,[a,`value`]))}));if(n.common.async){let e=new Map;return Promise.resolve().then(async()=>{for(let n of a){let r=await n.key,i=await n.value;if(r.status===`aborted`||i.status===`aborted`)return C;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}})}else{let e=new Map;for(let n of a){let r=n.key,i=n.value;if(r.status===`aborted`||i.status===`aborted`)return C;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}}}};Sn.create=(e,t,n)=>new Sn({valueType:t,keyType:e,typeName:F.ZodMap,...D(n)});var Cn=class e extends O{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==_.set)return x(n,{code:y.invalid_type,expected:_.set,received:n.parsedType}),C;let r=this._def;r.minSize!==null&&n.data.size<r.minSize.value&&(x(n,{code:y.too_small,minimum:r.minSize.value,type:`set`,inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),r.maxSize!==null&&n.data.size>r.maxSize.value&&(x(n,{code:y.too_big,maximum:r.maxSize.value,type:`set`,inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());let i=this._def.valueType;function a(e){let n=new Set;for(let r of e){if(r.status===`aborted`)return C;r.status===`dirty`&&t.dirty(),n.add(r.value)}return{status:t.value,value:n}}let o=[...n.data.values()].map((e,t)=>i._parse(new E(n,e,n.path,t)));return n.common.async?Promise.all(o).then(e=>a(e)):a(o)}min(t,n){return new e({...this._def,minSize:{value:t,message:T.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:T.toString(n)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};Cn.create=(e,t)=>new Cn({valueType:e,minSize:null,maxSize:null,typeName:F.ZodSet,...D(t)});var wn=class e extends O{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==_.function)return x(t,{code:y.invalid_type,expected:_.function,received:t.parsedType}),C;function n(e,n){return wt({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Ct(),bt].filter(e=>!!e),issueData:{code:y.invalid_arguments,argumentsError:n}})}function r(e,n){return wt({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Ct(),bt].filter(e=>!!e),issueData:{code:y.invalid_return_type,returnTypeError:n}})}let i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof An){let e=this;return w(async function(...t){let o=new b([]),s=await e._def.args.parseAsync(t,i).catch(e=>{throw o.addIssue(n(t,e)),o}),c=await Reflect.apply(a,this,s);return await e._def.returns._def.type.parseAsync(c,i).catch(e=>{throw o.addIssue(r(c,e)),o})})}else{let e=this;return w(function(...t){let o=e._def.args.safeParse(t,i);if(!o.success)throw new b([n(t,o.error)]);let s=Reflect.apply(a,this,o.data),c=e._def.returns.safeParse(s,i);if(!c.success)throw new b([r(s,c.error)]);return c.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:M.create(t).rest(pn.create())})}returns(t){return new e({...this._def,returns:t})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(t,n,r){return new e({args:t||M.create([]).rest(pn.create()),returns:n||pn.create(),typeName:F.ZodFunction,...D(r)})}},Tn=class extends O{get schema(){return this._def.getter()}_parse(e){let{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}};Tn.create=(e,t)=>new Tn({getter:e,typeName:F.ZodLazy,...D(t)});var En=class extends O{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return x(t,{received:t.data,code:y.invalid_literal,expected:this._def.value}),C}return{status:`valid`,value:e.data}}get value(){return this._def.value}};En.create=(e,t)=>new En({value:e,typeName:F.ZodLiteral,...D(t)});function Dn(e,t){return new On({values:e,typeName:F.ZodEnum,...D(t)})}var On=class e extends O{_parse(e){if(typeof e.data!=`string`){let t=this._getOrReturnCtx(e),n=this._def.values;return x(t,{expected:g.joinValues(n),received:t.parsedType,code:y.invalid_type}),C}if(this._cache||=new Set(this._def.values),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),n=this._def.values;return x(t,{received:t.data,code:y.invalid_enum_value,options:n}),C}return w(e.data)}get options(){return this._def.values}get enum(){let e={};for(let t of this._def.values)e[t]=t;return e}get Values(){let e={};for(let t of this._def.values)e[t]=t;return e}get Enum(){let e={};for(let t of this._def.values)e[t]=t;return e}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(e=>!t.includes(e)),{...this._def,...n})}};On.create=Dn;var kn=class extends O{_parse(e){let t=g.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==_.string&&n.parsedType!==_.number){let e=g.objectValues(t);return x(n,{expected:g.joinValues(e),received:n.parsedType,code:y.invalid_type}),C}if(this._cache||=new Set(g.getValidEnumValues(this._def.values)),!this._cache.has(e.data)){let e=g.objectValues(t);return x(n,{received:n.data,code:y.invalid_enum_value,options:e}),C}return w(e.data)}get enum(){return this._def.values}};kn.create=(e,t)=>new kn({values:e,typeName:F.ZodNativeEnum,...D(t)});var An=class extends O{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);return t.parsedType!==_.promise&&t.common.async===!1?(x(t,{code:y.invalid_type,expected:_.promise,received:t.parsedType}),C):w((t.parsedType===_.promise?t.data:Promise.resolve(t.data)).then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}};An.create=(e,t)=>new An({type:e,typeName:F.ZodPromise,...D(t)});var N=class extends O{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===F.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=this._def.effect||null,i={addIssue:e=>{x(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),r.type===`preprocess`){let e=r.transform(n.data,i);if(n.common.async)return Promise.resolve(e).then(async e=>{if(t.value===`aborted`)return C;let r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return r.status===`aborted`?C:r.status===`dirty`||t.value===`dirty`?Et(r.value):r});{if(t.value===`aborted`)return C;let r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return r.status===`aborted`?C:r.status===`dirty`||t.value===`dirty`?Et(r.value):r}}if(r.type===`refinement`){let e=e=>{let t=r.refinement(e,i);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw Error(`Async refinement encountered during synchronous parse operation. Use .parseAsync instead.`);return e};if(n.common.async===!1){let r=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return r.status===`aborted`?C:(r.status===`dirty`&&t.dirty(),e(r.value),{status:t.value,value:r.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(n=>n.status===`aborted`?C:(n.status===`dirty`&&t.dirty(),e(n.value).then(()=>({status:t.value,value:n.value}))))}if(r.type===`transform`)if(n.common.async===!1){let e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!kt(e))return C;let a=r.transform(e.value,i);if(a instanceof Promise)throw Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);return{status:t.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(e=>kt(e)?Promise.resolve(r.transform(e.value,i)).then(e=>({status:t.value,value:e})):C);g.assertNever(r)}};N.create=(e,t,n)=>new N({schema:e,typeName:F.ZodEffects,effect:t,...D(n)}),N.createWithPreprocess=(e,t,n)=>new N({schema:t,effect:{type:`preprocess`,transform:e},typeName:F.ZodEffects,...D(n)});var P=class extends O{_parse(e){return this._getType(e)===_.undefined?w(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};P.create=(e,t)=>new P({innerType:e,typeName:F.ZodOptional,...D(t)});var jn=class extends O{_parse(e){return this._getType(e)===_.null?w(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};jn.create=(e,t)=>new jn({innerType:e,typeName:F.ZodNullable,...D(t)});var Mn=class extends O{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return t.parsedType===_.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};Mn.create=(e,t)=>new Mn({innerType:e,typeName:F.ZodDefault,defaultValue:typeof t.default==`function`?t.default:()=>t.default,...D(t)});var Nn=class extends O{_parse(e){let{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return At(r)?r.then(e=>({status:`valid`,value:e.status===`valid`?e.value:this._def.catchValue({get error(){return new b(n.common.issues)},input:n.data})})):{status:`valid`,value:r.status===`valid`?r.value:this._def.catchValue({get error(){return new b(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Nn.create=(e,t)=>new Nn({innerType:e,typeName:F.ZodCatch,catchValue:typeof t.catch==`function`?t.catch:()=>t.catch,...D(t)});var Pn=class extends O{_parse(e){if(this._getType(e)!==_.nan){let t=this._getOrReturnCtx(e);return x(t,{code:y.invalid_type,expected:_.nan,received:t.parsedType}),C}return{status:`valid`,value:e.data}}};Pn.create=e=>new Pn({typeName:F.ZodNaN,...D(e)});var Fn=Symbol(`zod_brand`),In=class extends O{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}},Ln=class e extends O{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return e.status===`aborted`?C:e.status===`dirty`?(t.dirty(),Et(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})();{let e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return e.status===`aborted`?C:e.status===`dirty`?(t.dirty(),{status:`dirty`,value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(t,n){return new e({in:t,out:n,typeName:F.ZodPipeline})}},Rn=class extends O{_parse(e){let t=this._def.innerType._parse(e),n=e=>(kt(e)&&(e.value=Object.freeze(e.value)),e);return At(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}};Rn.create=(e,t)=>new Rn({innerType:e,typeName:F.ZodReadonly,...D(t)});function zn(e,t){let n=typeof e==`function`?e(t):typeof e==`string`?{message:e}:e;return typeof n==`string`?{message:n}:n}function Bn(e,t={},n){return e?fn.create().superRefine((r,i)=>{let a=e(r);if(a instanceof Promise)return a.then(e=>{if(!e){let e=zn(t,r),a=e.fatal??n??!0;i.addIssue({code:`custom`,...e,fatal:a})}});if(!a){let e=zn(t,r),a=e.fatal??n??!0;i.addIssue({code:`custom`,...e,fatal:a})}}):fn.create()}var Vn={object:A.lazycreate},F;(function(e){e.ZodString=`ZodString`,e.ZodNumber=`ZodNumber`,e.ZodNaN=`ZodNaN`,e.ZodBigInt=`ZodBigInt`,e.ZodBoolean=`ZodBoolean`,e.ZodDate=`ZodDate`,e.ZodSymbol=`ZodSymbol`,e.ZodUndefined=`ZodUndefined`,e.ZodNull=`ZodNull`,e.ZodAny=`ZodAny`,e.ZodUnknown=`ZodUnknown`,e.ZodNever=`ZodNever`,e.ZodVoid=`ZodVoid`,e.ZodArray=`ZodArray`,e.ZodObject=`ZodObject`,e.ZodUnion=`ZodUnion`,e.ZodDiscriminatedUnion=`ZodDiscriminatedUnion`,e.ZodIntersection=`ZodIntersection`,e.ZodTuple=`ZodTuple`,e.ZodRecord=`ZodRecord`,e.ZodMap=`ZodMap`,e.ZodSet=`ZodSet`,e.ZodFunction=`ZodFunction`,e.ZodLazy=`ZodLazy`,e.ZodLiteral=`ZodLiteral`,e.ZodEnum=`ZodEnum`,e.ZodEffects=`ZodEffects`,e.ZodNativeEnum=`ZodNativeEnum`,e.ZodOptional=`ZodOptional`,e.ZodNullable=`ZodNullable`,e.ZodDefault=`ZodDefault`,e.ZodCatch=`ZodCatch`,e.ZodPromise=`ZodPromise`,e.ZodBranded=`ZodBranded`,e.ZodPipeline=`ZodPipeline`,e.ZodReadonly=`ZodReadonly`})(F||={});var Hn=(e,t={message:`Input not instance of ${e.name}`})=>Bn(t=>t instanceof e,t),I=nn.create,L=an.create,Un=Pn.create,Wn=on.create,R=sn.create,Gn=cn.create,Kn=ln.create,qn=un.create,Jn=dn.create,Yn=fn.create,z=pn.create,Xn=k.create,Zn=mn.create,B=hn.create,V=A.create,Qn=A.strictCreate,H=_n.create,U=vn.create,$n=bn.create,er=M.create,W=xn.create,tr=Sn.create,nr=Cn.create,rr=wn.create,ir=Tn.create,G=En.create,K=On.create,ar=kn.create,or=An.create,sr=N.create,cr=P.create,lr=jn.create,ur=N.createWithPreprocess,dr=Ln.create,fr=()=>I().optional(),pr=()=>L().optional(),mr=()=>R().optional(),hr={string:(e=>nn.create({...e,coerce:!0})),number:(e=>an.create({...e,coerce:!0})),boolean:(e=>sn.create({...e,coerce:!0})),bigint:(e=>on.create({...e,coerce:!0})),date:(e=>cn.create({...e,coerce:!0}))},gr=C,_r=t({BRAND:()=>Fn,DIRTY:()=>Et,EMPTY_PATH:()=>Tt,INVALID:()=>C,NEVER:()=>gr,OK:()=>w,ParseStatus:()=>S,Schema:()=>O,ZodAny:()=>fn,ZodArray:()=>hn,ZodBigInt:()=>on,ZodBoolean:()=>sn,ZodBranded:()=>In,ZodCatch:()=>Nn,ZodDate:()=>cn,ZodDefault:()=>Mn,ZodDiscriminatedUnion:()=>vn,ZodEffects:()=>N,ZodEnum:()=>On,ZodError:()=>b,ZodFirstPartyTypeKind:()=>F,ZodFunction:()=>wn,ZodIntersection:()=>bn,ZodIssueCode:()=>y,ZodLazy:()=>Tn,ZodLiteral:()=>En,ZodMap:()=>Sn,ZodNaN:()=>Pn,ZodNativeEnum:()=>kn,ZodNever:()=>k,ZodNull:()=>dn,ZodNullable:()=>jn,ZodNumber:()=>an,ZodObject:()=>A,ZodOptional:()=>P,ZodParsedType:()=>_,ZodPipeline:()=>Ln,ZodPromise:()=>An,ZodReadonly:()=>Rn,ZodRecord:()=>xn,ZodSchema:()=>O,ZodSet:()=>Cn,ZodString:()=>nn,ZodSymbol:()=>ln,ZodTransformer:()=>N,ZodTuple:()=>M,ZodType:()=>O,ZodUndefined:()=>un,ZodUnion:()=>_n,ZodUnknown:()=>pn,ZodVoid:()=>mn,addIssueToContext:()=>x,any:()=>Yn,array:()=>B,bigint:()=>Wn,boolean:()=>R,coerce:()=>hr,custom:()=>Bn,date:()=>Gn,datetimeRegex:()=>Qt,defaultErrorMap:()=>bt,discriminatedUnion:()=>U,effect:()=>sr,enum:()=>K,function:()=>rr,getErrorMap:()=>Ct,getParsedType:()=>v,instanceof:()=>Hn,intersection:()=>$n,isAborted:()=>Dt,isAsync:()=>At,isDirty:()=>Ot,isValid:()=>kt,late:()=>Vn,lazy:()=>ir,literal:()=>G,makeIssue:()=>wt,map:()=>tr,nan:()=>Un,nativeEnum:()=>ar,never:()=>Xn,null:()=>Jn,nullable:()=>lr,number:()=>L,object:()=>V,objectUtil:()=>vt,oboolean:()=>mr,onumber:()=>pr,optional:()=>cr,ostring:()=>fr,pipeline:()=>dr,preprocess:()=>ur,promise:()=>or,quotelessJson:()=>yt,record:()=>W,set:()=>nr,setErrorMap:()=>St,strictObject:()=>Qn,string:()=>I,symbol:()=>Kn,transformer:()=>sr,tuple:()=>er,undefined:()=>qn,union:()=>H,unknown:()=>z,util:()=>g,void:()=>Zn}),vr=V({username:I().min(1),password:I().min(1)}),yr=V({ok:G(!0),changePassword:R()}),br=V({oldPassword:I().min(1),newPassword:I().min(6)}),xr=V({ok:G(!0)}),Sr=V({authenticated:R(),username:I().optional()});V({password:I().min(1)});var Cr=class extends Error{fix;context;constructor(e,t,n){super(e),this.name=`MiravoError`,this.fix=t,this.context=n}},wr=`0.13.0`,Tr=1883,Er=4840,Dr=1502,Or={mqtt:Tr,opcua:Er,modbus:Dr},kr=65535;function Ar(e){return typeof e==`number`&&Number.isInteger(e)&&e>=1&&e<=65535}var jr=1e4,Mr=1e3,Nr=1e6,Pr=1e5,q=/^[a-zA-Z0-9_-]{1,64}$/,Fr=/^\$param\.(\S+)$/,Ir=L().int().min(1).max(kr),Lr=V({state:K([`healthy`,`busy`,`saturated`]),pendingWorkCount:L().finite().int().nonnegative(),completedLastTick:L().finite().int().nonnegative()}),Rr=V({active:L().finite().int().nonnegative(),subscriptions:L().finite().int().nonnegative().optional(),reads:L().finite().int().nonnegative().optional(),writes:L().finite().int().nonnegative().optional()}),zr=V({connected:R(),messagesPublished:L().finite().int().nonnegative(),messagesAttempted:L().finite().int().nonnegative(),messagesFiltered:L().finite().int().nonnegative(),errorsCount:L().finite().int().nonnegative(),rejectedWrites:L().finite().int().nonnegative().optional(),lastPublishMs:L().finite().nonnegative(),health:Lr.optional(),clients:Rr.optional()});V({name:I().min(1),enabled:R().default(!0)}).passthrough();var Br=V({name:I().min(1),enabled:R(),pending:R().optional(),endpoint:I().optional(),boundPort:Ir.optional(),config:W(I(),z())}),J=V({factoryName:I().min(1).optional(),core:V({state:K([`idle`,`running`,`paused`,`stopped`]),tickCount:L().int().nonnegative(),simulationTimeSeconds:L().finite().nonnegative(),pauseAtSimulationSeconds:L().finite().positive().optional(),assetCount:L().int().nonnegative(),memberValueCount:L().int().nonnegative(),quarantinedAssetCount:L().int().nonnegative(),engineErrorsCount:L().int().nonnegative(),lastEngineError:V({context:I(),message:I()}).optional(),tickOverrunsCount:L().int().nonnegative(),circuitBreakerTripsCount:L().int().nonnegative(),uptimeMs:L().finite().nonnegative(),actualTicksPerSecond:L().finite().nonnegative()}),fleet:V({modelBreakdown:B(V({model:I().min(1),count:L().int().nonnegative()})),lifecycleBreakdown:W(I(),L().int().nonnegative()),activeFaultCount:L().int().nonnegative(),faultBreakdown:B(V({fault:I().min(1),count:L().int().nonnegative()}))}),adapters:B(V({name:I().min(1),metrics:zr}))}),Vr=V({lines:B(V({line:I(),stations:B(V({id:I(),state:I(),good:L().int().nonnegative(),scrap:L().int().nonnegative()})),buffers:B(V({after:I(),level:L().int().nonnegative(),capacity:L().int().positive()}))})).optional(),factoryName:I().min(1).optional(),models:B(V({name:I().min(1),memberCount:L().int().nonnegative(),faultCount:L().int().nonnegative(),faultNames:B(I().min(1)),hasLifecycle:R()})),assets:B(V({id:I().min(1),model:I().min(1),browsePath:B(I().min(1)),lifecycleStage:I().min(1),operatingHours:L().finite().nonnegative(),activeFaults:B(I().min(1)),isQuarantined:R(),production:W(I(),H([L(),I(),R()])).optional()})),config:V({seed:L().int().nonnegative(),tickIntervalMs:L().int().positive(),timeMultiplier:L().finite().positive(),adapters:B(I().min(1)),template:V({name:I().min(1),path:I().min(1)}).optional()}),availableAdapters:B(Br).optional()}),Hr=V({templateId:I().min(1),templateName:I().min(1),templatePath:I().min(1),entryHash:I().min(1).optional(),assetIds:B(I().min(1)),models:B(I().min(1)),areas:B(V({name:I().min(1),lines:B(I().min(1))}))}),Ur=V({name:I().min(1),value:H([L().finite(),I(),R()]),quality:K([`good`,`bad`,`uncertain`]),unit:I().nullable(),kind:I().min(1),dataType:I().min(1)}),Wr=V({id:I().min(1),name:I().min(1),members:B(Ur),inputs:B(V({port:I().min(1),asset:I().min(1),member:I().min(1)}))}),Gr=V({state:Vr,metrics:J,templates:B(Hr),assetDetails:B(Wr),revision:L().int().nonnegative()}),Kr=U(`authenticated`,[V({authenticated:G(!1)}),V({authenticated:G(!0),username:I().min(1),runtime:Gr,viewToken:I().min(1).optional()})]),qr=V({assetId:I().min(1),memberName:I().min(1),value:H([L().finite(),I(),R()]),quality:K([`good`,`bad`,`uncertain`]),timestamp:L().finite().optional()}),Jr=U(`kind`,[V({kind:G(`fault:triggered`),assetId:I().min(1),fault:I().min(1),effects:W(I(),z())}),V({kind:G(`fault:cleared`),assetId:I().min(1),fault:I().min(1)}),V({kind:G(`lifecycle:changed`),assetId:I().min(1),from:I().min(1),to:I().min(1),operatingHours:L().finite().nonnegative()}),V({kind:G(`asset:maintenance`),assetId:I().min(1),from:I().min(1),to:I().min(1),operatingHours:L().finite().nonnegative(),reason:K([`manual`,`scheduled`])}),V({kind:G(`asset:created`),id:I().min(1),assetType:I().min(1),browsePath:B(I().min(1))}),V({kind:G(`asset:removed`),id:I().min(1)}),V({kind:K([`template:loaded`,`template:unloaded`]),templateId:I().min(1),assetCount:L().int().nonnegative()}),V({kind:G(`engine:state`),from:J.shape.core.shape.state,to:J.shape.core.shape.state}),V({kind:G(`engine:error`),context:I(),message:I(),fix:I().optional()}),V({kind:G(`adapter:enabled`),name:I().min(1),endpoint:I().min(1)}),V({kind:G(`adapter:disabled`),name:I().min(1)})]),Yr=V({core:V({memberValueCount:J.shape.core.shape.memberValueCount,quarantinedAssetCount:J.shape.core.shape.quarantinedAssetCount,engineErrorsCount:J.shape.core.shape.engineErrorsCount,tickOverrunsCount:J.shape.core.shape.tickOverrunsCount,circuitBreakerTripsCount:J.shape.core.shape.circuitBreakerTripsCount,uptimeMs:J.shape.core.shape.uptimeMs,actualTicksPerSecond:J.shape.core.shape.actualTicksPerSecond}),adapters:J.shape.adapters}),Xr=U(`type`,[V({type:G(`runtime:snapshot`),snapshot:Gr}),V({type:G(`runtime:tick`),revision:L().int().nonnegative(),tick:L().int().nonnegative(),simulationTime:L().finite().nonnegative(),delta:B(qr),assetCount:L().int().nonnegative(),lines:Vr.shape.lines.unwrap(),timeMultiplier:L().finite().positive(),metrics:Yr}),V({type:G(`runtime:event`),revision:L().int().nonnegative(),event:Jr}),V({type:G(`runtime:resync-required`),revision:L().int().nonnegative(),reason:I().min(1)})]),Zr=/^[A-Za-z0-9_-]+$/;function Qr(e){let t=/^(.+)-(\d+)$/.exec(e);if(!t)return null;let n=t[1],r=t[2];if(!n||!r)return null;let i=Number(r);return!Number.isSafeInteger(i)||i<1?null:{prefix:n,counter:i}}function $r(e){let t=e.trim();if(t.length===0)return`Name is required.`;let n=t.split(`-`);if(n.some(e=>e.length===0))return`Use hyphen-delimited segments without empty parts.`;for(let e of n)if(!Zr.test(e))return`Use only letters, numbers, underscores, and hyphens.`;return null}function ei(e){let t=e.trim();return t.length===0?null:t.length>120?`Use at most 120 characters.`:$r(e)}var Y=`Must be 1-64 chars and contain only letters, numbers, underscores, or hyphens.`,X=K([`mqtt`,`opcua`,`modbus`]),ti=B(X).min(1),ni=V({asset:I().regex(q,Y),member:I().regex(q,Y)}).strict(),ri=V({model:I().min(1),id:I().regex(q,Y).optional(),count:L().int().positive().default(1),variation:L().min(0).max(1).default(0),parameters:W(I(),L().finite()).optional(),inputs:W(I().regex(q,Y),ni).optional(),starting_hours:L().finite().nonnegative().optional(),protocol_scope:ti.optional()}).strict(),ii=V({asset:I().min(1),ideal_cycle_s:L().finite().positive(),scrap_rate:L().finite().min(0).max(1).default(0),cycle_cv:L().finite().min(0).max(.5).default(.02),buffer_after:V({capacity:L().int().positive(),initial:L().int().nonnegative().default(0)}).strict().refine(e=>e.initial<=e.capacity,`Reduce initial to buffer capacity.`).optional()}).strict(),ai=V({source:G(`unlimited`),stations:B(ii).min(1)}).strict(),oi=K([`mon`,`tue`,`wed`,`thu`,`fri`,`sat`,`sun`]),si=I().regex(/^([01]\d|2[0-3]):[0-5]\d$/,`Use HH:MM (00:00–23:59).`),ci=V({start:I().regex(/^(mon|tue|wed|thu|fri|sat|sun) ([01]\d|2[0-3]):[0-5]\d$/,`Use <day> HH:MM, e.g. mon 06:00.`).default(`mon 06:00`),timezone_offset_h:L().finite().min(-14).max(14).default(0),pattern:B(V({days:B(oi).min(1),start:si,end:si,breaks:B(V({start:si,minutes:L().finite().positive()}).strict()).default([])}).strict()).min(1),changeovers:B(V({every_parts:L().int().positive(),minutes:L().finite().positive(),station:I().min(1)}).strict()).default([])}).strict(),li=V({name:I().regex(q,Y),assets:B(ri).min(1),flow:ai.optional(),protocol_scope:ti.optional()}).strict(),ui=V({name:I().regex(q,Y),lines:B(li).min(1),protocol_scope:ti.optional()}).strict(),di=H([V({enterprise:I().regex(q,Y),site:I().regex(q,Y)}).strict(),V({prefix:I().regex(q,Y)}).strict()]),fi=V({maxAttempts:L().finite().int().min(0).default(0),initialDelayMs:L().finite().int().positive().default(1e3),maxDelayMs:L().finite().int().positive().default(3e4)}).strict(),pi=V({enabled:R().default(!1),deadband:L().finite().nonnegative().default(0)}).strict(),mi=K([`base`,`full`]),hi=V({embedded:R().default(!0),port:L().int().min(0).max(65535).default(1883),host:I().default(`127.0.0.1`),external:I().optional(),retain:R().default(!0),username:I().optional(),password:I().optional(),reconnect:fi.optional(),rbe:pi.optional(),metadata:mi.default(`base`),payload:K([`envelope`,`plain`]).default(`envelope`),drain_budget:L().int().min(512).max(65536).optional(),batch_size:L().int().min(64).max(16384).optional(),broker_concurrency:L().int().min(10).max(5e3).optional()});function gi(e){return e.refine(e=>!(e.embedded&&e.external),{message:`Cannot use both 'embedded: true' and 'external' URL. Set 'embedded: false' when using an external broker.`}).refine(e=>!e.password||e.username,{message:`Cannot set 'password' without 'username'.`})}gi(hi);var _i=V({port:L().int().min(0).max(65535).default(Er),host:I().default(`127.0.0.1`),security:K([`none`]).default(`none`),buildInfo:V({productName:I().default(`Miravo`)}).strict().optional(),write_budget:L().int().min(512).max(65536).optional()}).strict(),vi=V({port:L().int().min(0).max(65535).default(Dr),host:I().default(`127.0.0.1`)}).strict(),yi=V({mqtt:gi(hi.strict()).optional(),opcua:_i.optional(),modbus:vi.optional()}).strict(),bi=V({max_members_per_model:L().int().positive().max(Pr).default(Mr),max_asset_count:L().int().positive().max(Nr).default(jr)}).strict(),xi=V({tick_interval_ms:L().int().min(10).default(1e3),max_step_s:L().finite().positive().default(1),max_substeps:L().int().min(1).default(60),time_multiplier:L().positive().max(1e3).default(1),random_faults:R().default(!0),seed:L().int().optional(),overrun_threshold_multiplier:L().min(1).max(10).optional(),limits:bi.optional()}).strict();V({kind:G(`MiravoTemplate`),version:G(`1`),name:I().min(1),description:I().optional(),namespace:di.optional(),areas:B(ui).min(1),protocols:yi.optional(),shifts:ci.optional(),settings:xi.optional()}).strict().superRefine((e,t)=>{let n=new Set,r=new Set;e.areas.forEach((e,i)=>{e.lines.forEach((e,a)=>{let o=[`areas`,i,`lines`,a];e.assets.forEach((e,r)=>{e.id&&(e.count!==1||n.has(e.id))&&t.addIssue({code:y.custom,path:[...o,`assets`,r],message:`Assignment id '${e.id}' must be unique with count: 1. Fix: use a unique id and count: 1.`}),e.id&&n.add(e.id)});let s=e.flow;(s?.stations??[]).forEach((n,i)=>{let a=[...o,`flow`,`stations`,i],c=e.assets.find(e=>e.id===n.asset);(!c||c.count!==1||r.has(n.asset))&&t.addIssue({code:y.custom,path:[...a,`asset`],message:`Invalid station '${n.asset}'. Fix: reference a unique assignment id with count: 1 in this same line.`}),r.add(n.asset),s&&i<s.stations.length-1&&!n.buffer_after&&t.addIssue({code:y.custom,path:a,message:`Station '${n.asset}' needs buffer_after. Fix: add buffer_after: { capacity: 1 }.`})})})});for(let n of e.shifts?.changeovers??[])r.has(n.station)||t.addIssue({code:y.custom,message:`Unknown changeover station '${n.station}'. Fix: reference a flow station id.`});let i=e.settings?.limits?.max_asset_count??1e4;for(let n=0;n<e.areas.length;n++){let r=e.areas[n];if(r)for(let e=0;e<r.lines.length;e++){let a=r.lines[e];if(a)for(let r=0;r<a.assets.length;r++){let o=a.assets[r];!o||o.count<=i||t.addIssue({code:y.custom,path:[`areas`,n,`lines`,e,`assets`,r,`count`],message:`Asset assignment count must be at most ${i}. Fix: reduce count or set settings.limits.max_asset_count higher.`})}}}});var Si=1e3,Z=V({correlationId:I().optional()}),Ci=I().trim().min(1).superRefine((e,t)=>{let n=ei(e);n&&t.addIssue({code:y.custom,message:n})}),wi=Z.extend({type:G(`spawn`),model:I().min(1),count:L().int().positive().max(jr),assetName:Ci.optional(),assetPrefix:Ci.optional(),protocolScope:ti.optional(),dryRun:R().optional()}),Ti=Z.extend({type:G(`removeAsset`),assetId:I().min(1)}),Ei=Z.extend({type:G(`setParameter`),assetId:I().min(1),parameter:I().min(1),value:L().finite()}),Di=Z.extend({type:G(`triggerFault`),assetId:I().min(1),fault:I().min(1)}),Oi=Z.extend({type:G(`clearFault`),assetId:I().min(1),fault:I().min(1)}),ki=Z.extend({type:G(`pause`)}),Ai=Z.extend({type:G(`resume`)}),ji=Z.extend({type:G(`setSpeed`),multiplier:L().positive().finite().max(Si)}),Mi=Z.extend({type:G(`unquarantine`),assetId:I().min(1)}),Ni=Z.extend({type:G(`invokeMethod`),assetId:I().min(1),method:I().min(1),arguments:W(I().min(1),H([L().finite(),I(),R()])).optional()}),Pi=Z.extend({type:G(`loadTemplate`),templatePath:I().min(1)}),Fi=Z.extend({type:G(`unloadTemplate`),templateId:I().min(1)}),Ii=Z.extend({type:G(`resetFactory`)}),Li=Z.extend({type:G(`enableAdapter`),adapter:I().min(1),config:W(I(),z()).optional()}),Ri=Z.extend({type:G(`disableAdapter`),adapter:I().min(1)}),zi=U(`type`,[wi,Ti,Ei,Di,Oi,ki,Ai,ji,Mi,Ni,Pi,Fi,Ii,Li,Ri]),Bi=V({success:R(),command:I(),correlationId:I().optional(),message:I(),data:z().optional(),error:I().optional()}),Vi=`/api`,Hi=H([L().finite(),I(),R()]),Ui=er([L().finite(),L().finite()]),Wi=V({name:I().min(1),dataType:I().min(1),description:I().nullable()}),Gi=V({description:I().nullable(),inputArguments:B(Wi),outputArguments:B(Wi)}),Ki=V({id:I().min(1),assetType:I().min(1),browsePath:B(I().min(1)),lifecycleStage:I().min(1),operatingHours:L().finite().nonnegative(),activeFaults:B(I().min(1)),isQuarantined:R(),parameters:W(I().min(1),V({value:Hi,type:I().min(1),unit:I().optional()})),inputs:W(I().min(1),V({value:L().finite(),default:L().finite(),unit:I().optional(),binding:V({asset:I().min(1),member:I().min(1)}).nullable()})),members:W(I().min(1),V({value:Hi,quality:K([`good`,`bad`,`uncertain`]),timestamp:L().finite(),meta:V({kind:I().min(1),dataType:I().min(1),access:I().min(1),unit:I().nullable(),euRange:Ui.nullable()})})),methods:W(I().min(1),Gi)}),qi=V({name:I().min(1),description:I().nullable(),memberCount:L().int().nonnegative(),methodCount:L().int().nonnegative(),faultCount:L().int().nonnegative(),hasLifecycle:R(),lifecycleStageCount:L().int().nonnegative(),source:I().min(1)}),Ji=V({model:I().min(1),count:L().int().nonnegative(),variation:L().finite().nonnegative(),parameters:W(I().min(1),L().finite()).optional(),protocol_scope:B(X).optional()}),Yi=V({name:I().min(1),assets:B(Ji),protocol_scope:B(X).optional()}),Xi=V({name:I().min(1),lines:B(Yi),protocol_scope:B(X).optional()}),Zi=V({id:I().min(1),name:I().min(1),description:I().nullable(),category:I().min(1),models:B(I().min(1)),assetCount:L().int().nonnegative(),memberCount:L().int().nonnegative(),source:I().min(1)}),Qi=Zi,$i=Zi.extend({topology:B(Xi),namespace:V({enterprise:I().min(1).optional(),site:I().min(1).optional(),prefix:I().min(1).optional()}).optional(),settings:V({tickIntervalMs:L().int().positive().optional(),timeMultiplier:L().finite().positive().optional(),limits:V({maxMembersPerModel:L().int().positive().optional(),maxAssetCount:L().int().positive().optional()}).optional()}).optional()}),ea=K([`idle`,`running`,`paused`,`stopped`]),ta=V({events:B(U(`type`,[V({id:L().int().nonnegative(),type:G(`fault:triggered`),assetId:I().min(1),fault:I().min(1),effects:W(I(),z()),tick:L().int().nonnegative(),simulationTime:L().finite().nonnegative(),timestamp:L().finite().nonnegative()}),V({id:L().int().nonnegative(),type:G(`fault:cleared`),assetId:I().min(1),fault:I().min(1),tick:L().int().nonnegative(),simulationTime:L().finite().nonnegative(),timestamp:L().finite().nonnegative()}),V({id:L().int().nonnegative(),type:G(`lifecycle:changed`),assetId:I().min(1),from:I().min(1),to:I().min(1),operatingHours:L().finite().nonnegative(),tick:L().int().nonnegative(),simulationTime:L().finite().nonnegative(),timestamp:L().finite().nonnegative()}),V({id:L().int().nonnegative(),type:G(`asset:maintenance`),assetId:I().min(1),from:I().min(1),to:I().min(1),operatingHours:L().finite().nonnegative(),reason:K([`manual`,`scheduled`]),tick:L().int().nonnegative(),simulationTime:L().finite().nonnegative(),timestamp:L().finite().nonnegative()}),V({id:L().int().nonnegative(),type:G(`asset:created`),assetId:I().min(1),assetType:I().min(1),browsePath:B(I().min(1)),tick:L().int().nonnegative(),simulationTime:L().finite().nonnegative(),timestamp:L().finite().nonnegative()}),V({id:L().int().nonnegative(),type:G(`asset:removed`),assetId:I().min(1),tick:L().int().nonnegative(),simulationTime:L().finite().nonnegative(),timestamp:L().finite().nonnegative()}),V({id:L().int().nonnegative(),type:K([`template:loaded`,`template:unloaded`]),templateId:I().min(1),assetCount:L().int().nonnegative(),tick:L().int().nonnegative(),simulationTime:L().finite().nonnegative(),timestamp:L().finite().nonnegative()}),V({id:L().int().nonnegative(),type:G(`engine:state-changed`),from:ea,to:ea,tick:L().int().nonnegative(),simulationTime:L().finite().nonnegative(),timestamp:L().finite().nonnegative()}),V({id:L().int().nonnegative(),type:G(`engine:error`),context:I(),message:I(),fix:I().optional(),tick:L().int().nonnegative(),simulationTime:L().finite().nonnegative(),timestamp:L().finite().nonnegative()}),V({id:L().int().nonnegative(),type:G(`integration:resource`),operationId:I().min(1),operationType:K([`apply`,`cleanup`]),templateId:I().min(1),targetLabel:I().min(1),hostname:I().min(1),phase:I().min(1),resourceType:I().min(1),resourceName:I().min(1),action:I().min(1),status:K([`success`,`failed`]),error:I().optional(),tick:L().int().nonnegative(),simulationTime:L().finite().nonnegative(),timestamp:L().finite().nonnegative()}),V({id:L().int().nonnegative(),type:G(`integration:operation`),operationId:I().min(1),operationType:K([`apply`,`cleanup`]),templateId:I().min(1),targetLabel:I().min(1),hostname:I().min(1),applied:L().int().nonnegative(),failed:L().int().nonnegative(),duration:L().int().nonnegative(),tick:L().int().nonnegative(),simulationTime:L().finite().nonnegative(),timestamp:L().finite().nonnegative()})])),nextCursor:L().int().nonnegative().nullable(),hasMore:R()}),na=`litmus-edge`,ra=W(X,Ir),ia=V({id:I().min(1),integrationId:I().min(1),label:I().min(1),hostname:I().min(1),apiTokenSet:R(),sourceHostname:I().min(1),exposedPorts:ra.optional(),lastUsedAt:L().int().nonnegative().optional()}).strict(),aa=V({targets:B(ia)}).strict(),oa=V({integrationId:I().min(1).default(na),label:I().min(1),hostname:I().min(1),apiToken:I().min(1),sourceHostname:I().min(1)}),sa=V({integrationId:I().min(1).optional(),label:I().min(1).optional(),hostname:I().min(1).optional(),apiToken:I().min(1).optional(),sourceHostname:I().min(1).optional()}),ca=V({targetId:I().min(1).optional(),hostname:I().min(1),apiToken:I().min(1).optional(),sourceHostname:I().min(1)}).superRefine((e,t)=>{!e.targetId&&!e.apiToken&&t.addIssue({code:y.custom,message:`apiToken is required when targetId is omitted.`,path:[`apiToken`]})}),la=U(`connected`,[V({connected:G(!0),hostname:I().min(1),sourceHostname:I().min(1),litmusEdgeVersion:I().min(1).optional(),warning:I().min(1).optional()}),V({connected:G(!1),error:I().min(1)})]),ua=K([`devices`,`models`,`assets`]),da=K([`create`,`update`,`replace`,`delete`,`noop`,`blocked`]),fa=K([`device`,`model`,`asset`,`param-sync`]),pa=K([`apply`,`cleanup`]),ma=K([`success`,`partial`,`blocked`,`noop`,`failed`]);K([`device`,`model`,`asset`,`param-sync`]),K([`create`,`update`,`replace`,`delete`]);var ha=V({area:I().min(1).optional(),line:I().min(1).optional(),asset:I().min(1).optional()}),ga=V({action:da,resourceType:fa,name:I().min(1),resourceId:I().min(1).optional(),protocol:X.optional(),endpoint:I().min(1).optional(),detail:I().min(1).optional(),blockReason:I().min(1).optional()}),_a=V({sourceMode:K([`static`,`managed`]),targetHost:I().min(1),sourceHostname:I().min(1).optional(),scope:B(ua),filters:ha,entries:B(ga)}),va=V({plan:_a}),ya=`Provide exactly one of 'templateId' (a running template) or 'assetId' (a running standalone asset).`;function ba(e,t){let n=(e,n)=>{if(e.code===`unrecognized_keys`&&e.keys.some(e=>e===`templateId`||e===`assetId`))return{message:t};if(e.code!==`invalid_union`)return{message:n.defaultError};let r=n.data,i=typeof r==`object`&&r?r:{},a=`templateId`in i;return a===`assetId`in i?{message:t}:{message:e.unionErrors[+!a]?.issues.map(e=>e.message).join(`; `)??t}};return H([V({...e,templateId:I().min(1)},{errorMap:n}).strict(),V({...e,assetId:I().min(1)},{errorMap:n}).strict()],{errorMap:n})}var xa=ba({targetId:I().min(1),protocol:X.optional(),scope:B(ua).optional(),ifUnmanaged:K([`fail`,`skip`]).optional(),exposedPorts:ra.optional()},ya),Sa=V({plan:_a,applied:L().int().nonnegative(),failed:L().int().nonnegative(),error:I().min(1).optional()}),Ca=K([`this`,`all`]),wa=ba({targetId:I().min(1),scope:B(ua).optional(),instances:Ca.optional()},`Provide exactly one of 'templateId' or 'assetId'.`),Ta=V({plan:_a,deleted:L().int().nonnegative(),failed:L().int().nonnegative(),error:I().min(1).optional()}),Ea=V({create:L().int().nonnegative(),update:L().int().nonnegative(),replace:L().int().nonnegative(),delete:L().int().nonnegative(),noop:L().int().nonnegative(),failed:L().int().nonnegative(),total:L().int().nonnegative()}),Da=V({device:Ea,model:Ea,asset:Ea,"param-sync":Ea}),Oa=V({operations:B(V({schemaVersion:G(1),operationId:I().min(1),operationType:pa,status:ma,factoryName:I().min(1),templateId:I().min(1).optional(),assetId:I().min(1).optional(),targetId:I().min(1),targetLabel:I().min(1),hostname:I().min(1),scope:B(I().min(1)),instances:Ca.optional(),successCount:L().int().nonnegative(),failedCount:L().int().nonnegative(),blockedCount:L().int().nonnegative(),startedAt:L().int().nonnegative(),completedAt:L().int().nonnegative(),durationMs:L().int().nonnegative(),resourceCounts:Da,error:I().min(1).optional()}).refine(e=>e.templateId===void 0!=(e.assetId===void 0),{message:`An operation record names exactly one of 'templateId' or 'assetId'.`})),total:L().int().nonnegative(),hasMore:R()}),ka=V({type:pa.optional(),targetId:I().min(1).optional(),templateId:I().min(1).optional(),assetId:I().min(1).optional(),limit:hr.number().int().positive().max(500).optional(),offset:hr.number().int().nonnegative().optional()}),Aa=V({cancelled:G(!0)}),ja=V({operationId:I().min(1),type:pa,templateId:I().min(1).optional(),assetId:I().min(1).optional(),targetLabel:I().min(1),totalPlanned:L().int().nonnegative(),attempt:L().int().positive().optional(),maxAttempts:L().int().positive().optional()}),Ma=V({operationId:I().min(1),type:pa,targetId:I().min(1).optional(),templateId:I().min(1).optional(),assetId:I().min(1).optional()}),Na=V({operationId:I().min(1),phase:fa,total:L().int().nonnegative()}),Pa=V({operationId:I().min(1),phase:fa,name:I().min(1),action:da,status:K([`success`,`failed`]),error:I().min(1).optional(),index:L().int().positive(),of:L().int().positive()}),Fa=V({operationId:I().min(1),applied:L().int().nonnegative().optional(),deleted:L().int().nonnegative().optional(),failed:L().int().nonnegative(),duration:L().int().nonnegative(),plan:_a}),Ia=Fa,La=Fa,Ra=V({operationId:I().min(1),attempt:L().int().positive(),maxAttempts:L().int().positive(),delayMs:L().int().nonnegative(),error:I().min(1)}),za=V({message:I().min(1)}),Ba=V({level:K([`info`,`warn`,`error`]),message:I().min(1),protocol:X.optional(),port:Ir.optional(),templatePort:Ir.optional()}),Va=U(`event`,[V({event:G(`log`),data:Ba}),V({event:G(`started`),data:ja}),V({event:G(`accepted`),data:Ma}),V({event:G(`phase`),data:Na}),V({event:G(`resource`),data:Pa}),V({event:G(`complete`),data:Ia}),V({event:G(`cancelled`),data:La}),V({event:G(`retrying`),data:Ra}),V({event:G(`error`),data:za})]),Ha=V({enabled:R(),port:L().int().positive().optional()}),Ua=V({asset:I().min(1),browsePath:I(),member:I().min(1),model:I().min(1),dataType:I().min(1),unit:I().optional(),euRange:er([L().finite(),L().finite()]).optional(),access:I().min(1),kind:K([`variable`,`property`]),protocols:W(I(),W(I(),z()))}),Wa=V({template:I().min(1).optional(),generatedAt:I().datetime(),protocols:W(I(),Ha),tags:B(Ua),summary:V({totalTags:L().int().nonnegative(),totalAssets:L().int().nonnegative(),enabledProtocols:B(I().min(1))})}),Ga=V({name:I().min(1),description:I().nullable(),parameters:W(I().min(1),V({type:I().min(1),default:Hi,unit:I().optional()})),inputs:W(I().min(1),V({default:L().finite(),unit:I().optional(),description:I().optional()})).optional(),members:W(I().min(1),V({kind:I().min(1),dataType:I().min(1),access:I().min(1),unit:I().nullable(),euRange:Ui.nullable(),default:Hi.nullable()})),methods:W(I().min(1),Gi),faults:B(I().min(1)),lifecycle:V({stages:B(I().min(1)),totalHours:L().finite().nonnegative()}).nullable()}),Ka=V({status:K([`ok`,`fail`]),factoryState:J.shape.core.shape.state,tickCount:L().int().nonnegative(),mqttEnabled:R(),mqttConnected:R().nullable(),opcuaEnabled:R(),opcuaConnected:R().nullable(),modbusEnabled:R(),modbusConnected:R().nullable(),stalled:R(),reason:I().optional(),factoryName:I().min(1).optional(),processId:I().min(1).optional()}),qa=V({reason:I().min(1).optional()}),Ja=V({status:G(`shutting_down`)}),Ya=V({id:I().min(1)}),Xa=V({name:I().min(1)}),Za=V({id:I().min(1)}),Qa=V({operationId:I().min(1)}),$a=V({id:I().min(1)}),eo=V({type:K([`fault:triggered`,`fault:cleared`,`lifecycle:changed`,`asset:maintenance`,`asset:created`,`asset:removed`,`template:loaded`,`template:unloaded`,`engine:state-changed`,`engine:error`,`integration:resource`,`integration:operation`]).optional(),assetId:I().min(1).optional(),limit:hr.number().int().positive().max(1e3).optional(),cursor:hr.number().int().nonnegative().optional()}),to=hr.number().int().min(1).max(kr).optional(),no=V({host:I().min(1),protocol:X.optional(),modbusPort:to,opcuaPort:to,mqttPort:to}),ro=W(I(),z()),io=W(I(),z());function Q(e){return`${Vi}${e}`}var ao=[{method:`GET`,path:Q(`/openapi.json`),operationId:`openApiDocument`,auth:`none`,response:{kind:`json`,schema:io},description:`Generated OpenAPI document for the Miravo admin API.`},{method:`GET`,path:Q(`/healthz`),operationId:`health`,auth:`none`,response:{kind:`json`,schema:Ka},description:`Liveness probe for the Miravo admin server.`},{method:`GET`,path:Q(`/readyz`),operationId:`readiness`,auth:`none`,response:{kind:`json`,schema:Ka},description:`Readiness probe for the Miravo admin server.`},{method:`GET`,path:Q(`/metrics`),operationId:`metrics`,auth:`required`,response:{kind:`json`,schema:J},description:`Engine metrics snapshot.`},{method:`GET`,path:Q(`/state`),operationId:`state`,auth:`required`,response:{kind:`json`,schema:Vr},description:`Engine state snapshot.`},{method:`GET`,path:Q(`/bootstrap`),operationId:`bootstrap`,auth:`none`,response:{kind:`json`,schema:Kr},description:`Console bootstrap payload.`},{method:`POST`,path:Q(`/commands`),operationId:`commands`,auth:`required`,body:zi,response:{kind:`json`,schema:Bi},description:`Execute an engine command.`},{method:`POST`,path:Q(`/shutdown`),operationId:`shutdown`,auth:`required`,body:qa,response:{kind:`json`,schema:Ja},description:`Request graceful shutdown.`},{method:`GET`,path:Q(`/assets/:id`),operationId:`assetDetail`,auth:`required`,params:Ya,response:{kind:`json`,schema:Ki},description:`Inspect a running asset.`},{method:`GET`,path:Q(`/models/:name`),operationId:`modelDetail`,auth:`required`,params:Xa,response:{kind:`json`,schema:Ga},description:`Inspect a registered model schema.`},{method:`GET`,path:Q(`/events`),operationId:`events`,auth:`required`,query:eo,response:{kind:`json`,schema:ta},description:`Read paginated event log entries.`},{method:`GET`,path:Q(`/catalog/models`),operationId:`catalogModels`,auth:`required`,response:{kind:`json`,schema:B(qi)},description:`List catalog models.`},{method:`GET`,path:Q(`/catalog/models/:name/le-dt.json`),operationId:`catalogModelLeDt`,auth:`required`,params:Xa,response:{kind:`json`,schema:ro},description:`Download LE Digital Twin JSON for a catalog model.`},{method:`GET`,path:Q(`/catalog/models/:name/yaml`),operationId:`catalogModelYaml`,auth:`required`,params:Xa,response:{kind:`yaml`},description:`Read raw YAML for a catalog model.`},{method:`GET`,path:Q(`/catalog/models/:name`),operationId:`catalogModelDetail`,auth:`required`,params:Xa,response:{kind:`json`,schema:Ga},description:`Read catalog model schema.`},{method:`GET`,path:Q(`/catalog/templates/:id/le-template.json`),operationId:`catalogTemplateLeTemplateJson`,auth:`required`,params:Za,query:no,response:{kind:`passthrough`},description:`Download LE template JSON export.`},{method:`GET`,path:Q(`/catalog/templates/:id/le-tags.csv`),operationId:`catalogTemplateLeTagsCsv`,auth:`required`,params:Za,query:no,response:{kind:`passthrough`},description:`Download LE tags CSV export.`},{method:`GET`,path:Q(`/catalog/templates/:id/yaml`),operationId:`catalogTemplateYaml`,auth:`required`,params:Za,response:{kind:`yaml`},description:`Read raw YAML for a catalog template.`},{method:`GET`,path:Q(`/catalog/templates/:id`),operationId:`catalogTemplateDetail`,auth:`required`,params:Za,response:{kind:`json`,schema:$i},description:`Read catalog template detail.`},{method:`GET`,path:Q(`/catalog/templates`),operationId:`catalogTemplates`,auth:`required`,response:{kind:`json`,schema:B(Qi)},description:`List catalog templates.`},{method:`GET`,path:Q(`/templates`),operationId:`templates`,auth:`required`,response:{kind:`json`,schema:B(Hr)},description:`List templates loaded into the factory.`},{method:`GET`,path:Q(`/manifest`),operationId:`manifest`,auth:`required`,response:{kind:`json`,schema:Wa},description:`Read unified protocol manifest.`},{method:`POST`,path:Q(`/auth/login`),operationId:`authLogin`,auth:`none`,body:vr,response:{kind:`json`,schema:yr},description:`Authenticate and create an admin session.`},{method:`POST`,path:Q(`/auth/logout`),operationId:`authLogout`,auth:`none`,response:{kind:`json`,schema:xr},description:`Destroy the current admin session.`},{method:`PUT`,path:Q(`/auth/password`),operationId:`authPassword`,auth:`required`,body:br,response:{kind:`json`,schema:xr},description:`Change the admin password.`},{method:`GET`,path:Q(`/auth/status`),operationId:`authStatus`,auth:`none`,response:{kind:`json`,schema:Sr},description:`Check the current auth status.`},{method:`GET`,path:Q(`/ws`),operationId:`runtimeWebSocket`,auth:`required`,response:{kind:`passthrough`},description:`Upgrade to the runtime WebSocket stream.`},{method:`GET`,path:Q(`/integrations/le/operations`),operationId:`integrationOperations`,auth:`required`,query:ka,response:{kind:`json`,schema:Oa},description:`List persisted integration operation summaries, optionally for one template or asset.`},{method:`GET`,path:Q(`/integrations/le/targets`),operationId:`integrationTargets`,auth:`required`,response:{kind:`json`,schema:aa},description:`List saved LE targets.`},{method:`POST`,path:Q(`/integrations/le/targets`),operationId:`integrationTargetCreate`,auth:`required`,body:oa,response:{kind:`json`,schema:ia},description:`Create an LE target.`},{method:`POST`,path:Q(`/integrations/le/targets/test`),operationId:`integrationConnectionTest`,auth:`required`,body:ca,response:{kind:`json`,schema:la},description:`Test LE target connectivity.`},{method:`GET`,path:Q(`/integrations/le/targets/:id`),operationId:`integrationTargetDetail`,auth:`required`,params:$a,response:{kind:`json`,schema:ia},description:`Read one LE target.`},{method:`PUT`,path:Q(`/integrations/le/targets/:id`),operationId:`integrationTargetById`,auth:`required`,params:$a,body:sa,response:{kind:`json`,schema:ia},description:`Update one LE target.`},{method:`DELETE`,path:Q(`/integrations/le/targets/:id`),operationId:`integrationTargetDelete`,auth:`required`,params:$a,response:{kind:`json`,schema:V({message:I().min(1)})},description:`Delete one LE target.`},{method:`POST`,path:Q(`/integrations/le/plan`),operationId:`integrationPlan`,auth:`required`,body:xa,response:{kind:`json`,schema:va},description:`Preview applying a running template or standalone asset to an LE target.`},{method:`POST`,path:Q(`/integrations/le/apply`),operationId:`integrationApply`,auth:`required`,body:xa,response:{kind:`json`,schema:Sa},additionalSuccessResponses:{207:Sa},description:`Apply a running template or standalone asset to an LE target.`},{method:`POST`,path:Q(`/integrations/le/cleanup/plan`),operationId:`integrationCleanupPlan`,auth:`required`,body:wa,response:{kind:`json`,schema:va},description:`Preview removing what a template or standalone asset of this factory applied to an LE target.`},{method:`POST`,path:Q(`/integrations/le/cleanup`),operationId:`integrationCleanup`,auth:`required`,body:wa,response:{kind:`json`,schema:Ta},additionalSuccessResponses:{207:Ta},description:`Remove what a template or standalone asset of this factory applied to an LE target.`},{method:`POST`,path:Q(`/integrations/le/operations/:operationId/cancel`),operationId:`integrationOperationCancel`,auth:`required`,params:Qa,response:{kind:`json`,schema:Aa},description:`Cancel an in-flight streaming LE operation.`},{method:`POST`,path:Q(`/integrations/le/apply/stream`),operationId:`integrationApplyStream`,auth:`required`,body:xa,response:{kind:`passthrough`},description:`Stream LE apply progress over SSE.`},{method:`POST`,path:Q(`/integrations/le/cleanup/stream`),operationId:`integrationCleanupStream`,auth:`required`,body:wa,response:{kind:`passthrough`},description:`Stream LE cleanup progress over SSE.`}],oo=V({code:K([`UNAUTHORIZED`,`NOT_FOUND`,`INVALID_REQUEST`,`INTERNAL_ERROR`]),message:I(),hint:I().optional()}),so={UNAUTHORIZED:401,NOT_FOUND:404,INVALID_REQUEST:400,INTERNAL_ERROR:500},co=class extends Error{code;status;hint;constructor(e){super(e.message),this.name=`ApiError`,this.code=e.code,this.status=e.status??so[e.code],this.hint=e.hint}static is(e){return e instanceof Error&&e.name===`ApiError`}};function lo(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function uo(e,t){return e?._def?.typeName===t}function fo(e,t){let n=e.ZodType.prototype[t];e.ZodType.prototype[t]=function(...e){let t=n.apply(this,e);return t._def.openapi=this._def.openapi,t}}function po(e){if(e.ZodType.prototype.openapi!==void 0)return;e.ZodType.prototype.openapi=function(e,t){let n=(typeof e==`string`?t:e)??{},{param:r}=n,i=lo(n,[`param`]),a=Object.assign(Object.assign({},this._def.openapi?._internal),typeof e==`string`?{refId:e}:void 0),o=Object.assign(Object.assign(Object.assign({},this._def.openapi?.metadata),i),this._def.openapi?.metadata?.param||r?{param:Object.assign(Object.assign({},this._def.openapi?.metadata?.param),r)}:void 0),s=new this.constructor(Object.assign(Object.assign({},this._def),{openapi:Object.assign(Object.assign({},Object.keys(a).length>0?{_internal:a}:void 0),Object.keys(o).length>0?{metadata:o}:void 0)}));if(uo(this,`ZodObject`)){let e=this.extend;s.extend=function(...t){let n=e.apply(this,t);return n._def.openapi={_internal:{extendedFrom:this._def.openapi?._internal?.refId?{refId:this._def.openapi?._internal?.refId,schema:this}:this._def.openapi?._internal?.extendedFrom},metadata:n._def.openapi?.metadata},n}}return s},fo(e,`optional`),fo(e,`nullable`),fo(e,`default`),fo(e,`transform`),fo(e,`refine`);let t=e.ZodObject.prototype.deepPartial;e.ZodObject.prototype.deepPartial=function(){let e=this._def.shape(),n=t.apply(this),r=n._def.shape();return Object.entries(r).forEach(([t,n])=>{n._def.openapi=e[t]?._def?.openapi}),n._def.openapi=void 0,n};let n=e.ZodObject.prototype.pick;e.ZodObject.prototype.pick=function(...e){let t=n.apply(this,e);return t._def.openapi=void 0,t};let r=e.ZodObject.prototype.omit;e.ZodObject.prototype.omit=function(...e){let t=r.apply(this,e);return t._def.openapi=void 0,t}}var mo=class{constructor(e){this.parents=e,this._definitions=[]}get definitions(){return[...this.parents?.flatMap(e=>e.definitions)??[],...this._definitions]}register(e,t){let n=this.schemaWithRefId(e,t);return this._definitions.push({type:`schema`,schema:n}),n}registerParameter(e,t){let n=this.schemaWithRefId(e,t),r=n._def.openapi?.metadata,i=n.openapi(Object.assign(Object.assign({},r),{param:Object.assign(Object.assign({},r?.param),{name:r?.param?.name??e})}));return this._definitions.push({type:`parameter`,schema:i}),i}registerPath(e){this._definitions.push({type:`route`,route:e})}registerWebhook(e){this._definitions.push({type:`webhook`,webhook:e})}registerComponent(e,t,n){return this._definitions.push({type:`component`,componentType:e,name:t,component:n}),{name:t,ref:{$ref:`#/components/${e}/${t}`}}}schemaWithRefId(e,t){return t.openapi(e)}};po(_r),new mo,U(`type`,[wi.openapi(`SpawnCommand`),Ti.openapi(`RemoveAssetCommand`),Ei.openapi(`SetParameterCommand`),Di.openapi(`TriggerFaultCommand`),Oi.openapi(`ClearFaultCommand`),ki.openapi(`PauseCommand`),Ai.openapi(`ResumeCommand`),ji.openapi(`SetSpeedCommand`),Mi.openapi(`UnquarantineCommand`),Ni.openapi(`InvokeMethodCommand`),Pi.openapi(`LoadTemplateCommand`),Fi.openapi(`UnloadTemplateCommand`),Ii.openapi(`ResetFactoryCommand`),Li.openapi(`EnableAdapterCommand`),Ri.openapi(`DisableAdapterCommand`)]).openapi(`EngineCommand`);var ho=new Map(ao.map(e=>[`${e.method} ${e.path}`,e]));function $(e,t){let n=ho.get(`${e} ${t}`);if(!n)throw Error(`Missing admin route definition for ${e} ${t}`);return n}var go={assetDetail:$(`GET`,`/api/assets/:id`),authLogin:$(`POST`,`/api/auth/login`),authLogout:$(`POST`,`/api/auth/logout`),authPassword:$(`PUT`,`/api/auth/password`),authStatus:$(`GET`,`/api/auth/status`),bootstrap:$(`GET`,`/api/bootstrap`),catalogModelDetail:$(`GET`,`/api/catalog/models/:name`),catalogModelLeDt:$(`GET`,`/api/catalog/models/:name/le-dt.json`),catalogModels:$(`GET`,`/api/catalog/models`),catalogModelYaml:$(`GET`,`/api/catalog/models/:name/yaml`),catalogTemplateDetail:$(`GET`,`/api/catalog/templates/:id`),catalogTemplateLeTagsCsv:$(`GET`,`/api/catalog/templates/:id/le-tags.csv`),catalogTemplateLeTemplateJson:$(`GET`,`/api/catalog/templates/:id/le-template.json`),catalogTemplates:$(`GET`,`/api/catalog/templates`),catalogTemplateYaml:$(`GET`,`/api/catalog/templates/:id/yaml`),commands:$(`POST`,`/api/commands`),events:$(`GET`,`/api/events`),health:$(`GET`,`/api/healthz`),integrationApply:$(`POST`,`/api/integrations/le/apply`),integrationApplyStream:$(`POST`,`/api/integrations/le/apply/stream`),integrationCleanup:$(`POST`,`/api/integrations/le/cleanup`),integrationCleanupPlan:$(`POST`,`/api/integrations/le/cleanup/plan`),integrationCleanupStream:$(`POST`,`/api/integrations/le/cleanup/stream`),integrationConnectionTest:$(`POST`,`/api/integrations/le/targets/test`),integrationOperationCancel:$(`POST`,`/api/integrations/le/operations/:operationId/cancel`),integrationOperations:$(`GET`,`/api/integrations/le/operations`),integrationPlan:$(`POST`,`/api/integrations/le/plan`),integrationTargetById:$(`PUT`,`/api/integrations/le/targets/:id`),integrationTargetCreate:$(`POST`,`/api/integrations/le/targets`),integrationTargetDelete:$(`DELETE`,`/api/integrations/le/targets/:id`),integrationTargetDetail:$(`GET`,`/api/integrations/le/targets/:id`),integrationTargets:$(`GET`,`/api/integrations/le/targets`),manifest:$(`GET`,`/api/manifest`),metrics:$(`GET`,`/api/metrics`),modelDetail:$(`GET`,`/api/models/:name`),openApiDocument:$(`GET`,`/api/openapi.json`),readiness:$(`GET`,`/api/readyz`),runtimeWebSocket:$(`GET`,`/api/ws`),shutdown:$(`POST`,`/api/shutdown`),state:$(`GET`,`/api/state`),templates:$(`GET`,`/api/templates`)},_o=`miravo:console-username`;function vo(){try{let e=sessionStorage.getItem(_o);return typeof e==`string`&&e.length>0?e:``}catch{return``}}function yo(e){try{e!==null&&e.length>0?sessionStorage.setItem(_o,e):sessionStorage.removeItem(_o)}catch{}}var bo=new $e({defaultOptions:{queries:{staleTime:3e4,gcTime:10*6e4,retry:(e,t)=>{if(t instanceof Error&&t.message===`Session expired`)return!1;if(co.is(t)){let e=t.status;if(e>=400&&e<500)return!1}return e<2},refetchOnWindowFocus:!1}}}),xo={catalog:{templates:()=>[`catalog`,`templates`],models:()=>[`catalog`,`models`],templateDetail:e=>[`catalog`,`template`,e],modelSchema:e=>[`catalog`,`model-schema`,e],modelSchemasBatch:e=>[`catalog`,`model-schemas-batch`,e]},spawnPreviewAll:[`spawn`,`preview`],spawnPreview:(e,t,n,r)=>[`spawn`,`preview`,e,t,n,r],events:(e,t)=>[`events`,e,t],tags:{manifest:e=>[`tags`,`manifest`,e]},integrations:{targets:()=>[`integrations`,`targets`],operationsList:()=>[`integrations`,`operations`,`list`],operationsFactory:()=>[`integrations`,`operations`,`factory`],plan:(e,t)=>[`integrations`,`plan`,e,t],operationsForTarget:e=>[`integrations`,`operations`,`target`,e],operations:()=>[`integrations`,`operations`]},assets:{detail:e=>[`assets`,e]},floor:{state:()=>[`floor`,`state`]}},So=`miravo:query-cache:v2`,Co=5*6e4,wo=xo.integrations.targets(),To=`bootstrap`,Eo=!0;function Do(e){try{let t=sessionStorage.getItem(So);if(!t)return;let n=JSON.parse(t);if(typeof n!=`object`||!n)return;let r=n;if(typeof r.timestamp!=`number`)return;if(Date.now()-r.timestamp>Co){sessionStorage.removeItem(So);return}Ae(e,r.state)}catch{}}function Oo(e){try{let t=ke(e,{shouldDehydrateQuery:e=>e.state.status===`success`&&e.queryKey[0]!==To&&!(e.queryKey[0]===wo[0]&&e.queryKey[1]===wo[1])}),n={timestamp:Date.now(),state:t};sessionStorage.setItem(So,JSON.stringify(n))}catch{}}function ko(e){let t=null,n=e.getQueryCache().subscribe(()=>{Eo&&(t&&clearTimeout(t),t=setTimeout(()=>{Eo&&Oo(e)},500))});return()=>{t&&clearTimeout(t),n()}}function Ao(){try{sessionStorage.removeItem(So)}catch{}}function jo(){Eo=!0}function Mo(){Eo=!1}var No=(void 0)?.trim()||`/api`;function Po(e,t){return`${e.trim().replace(/\/+$/,``)||`/api`}${t.startsWith(`/`)?t:`/${t}`}`}function Fo(){Mo(),bo.cancelQueries(),bo.setQueryData([`bootstrap`],{authenticated:!1}),bo.removeQueries({predicate:e=>e.queryKey[0]!==`bootstrap`}),Ao(),ft(),yo(null)}function Io(){typeof window>`u`||(Fo(),window.location.pathname!==`/login`&&window.location.replace(`/login`))}var Lo=class extends Error{result;constructor(e){super(e.message),this.name=`CommandError`,this.result=e}};function Ro(e,t){let n=`${e} ${t}`;return e===502||e===503||e===504?`${n} — the Miravo server may not be running, or a reverse proxy cannot reach it.`:n}async function zo(e){try{let t=await e.json(),n=oo.safeParse(t);if(n.success)return new co({code:n.data.code,status:e.status,message:n.data.message,hint:n.data.hint})}catch{}return Error(Ro(e.status,e.statusText))}async function Bo(e,t){return Uo(`/auth/login`,go.authLogin,{body:{username:e,password:t}})}async function Vo(){await Uo(`/auth/logout`,go.authLogout)}function Ho(e,t){if(e.response.kind!==`json`)throw Error(`requestJSON requires a JSON route definition for ${e.method} ${e.path}`);return e.additionalSuccessResponses?.[t]??e.response.schema}async function Uo(e,t,n={}){let{body:r,init:i}=n,a={method:t.method,credentials:`include`,...i};if(t.body){let e=t.body.safeParse(r);if(!e.success)throw Error(`Invalid request for ${t.method} ${t.path}: ${e.error.message}`);a.headers={"content-type":`application/json`,...i?.headers??{}},a.body=JSON.stringify(e.data)}else if(r!==void 0)throw Error(`Route ${t.method} ${t.path} does not accept a JSON body.`);let o=await fetch(Po(No,e),a);if(o.status===401&&t.auth===`required`)throw Io(),Error(`Session expired`);if(!o.ok)throw await zo(o);let s;try{s=await o.json()}catch{throw Error(`Invalid JSON response for ${t.method} ${t.path}`)}let c=Ho(t,o.status).safeParse(s);if(!c.success)throw Error(`Invalid response for ${t.method} ${t.path}: ${c.error.message}`);return c.data}async function Wo(e,t){return Uo(`/auth/password`,go.authPassword,{body:{oldPassword:e,newPassword:t}})}async function Go(){return Uo(`/bootstrap`,go.bootstrap)}async function Ko(e,t){return Uo(e,t)}async function qo(e){let t=await Uo(`/commands`,go.commands,{body:e});if(!t.success)throw new Lo(t);return t}async function Jo(e,t){if(t.response.kind!==`passthrough`)throw Error(`fetchBlob requires a passthrough route definition for ${t.method} ${t.path}`);let n=await fetch(Po(No,e),{credentials:`include`});if(n.status===401&&t.auth===`required`)throw Io(),Error(`Session expired`);if(!n.ok)throw Error(Ro(n.status,n.statusText));return n.blob()}async function Yo(e,t){if(t.response.kind!==`yaml`)throw Error(`fetchText requires a YAML route definition for ${t.method} ${t.path}`);let n=await fetch(Po(No,e),{credentials:`include`});if(n.status===401&&t.auth===`required`)throw Io(),Error(`Session expired`);if(!n.ok)throw Error(Ro(n.status,n.statusText));return n.text()}export{I as $,Qr as A,wr as B,co as C,ve as Ct,ni as D,r as Dt,Vi as E,i as Et,Tr as F,R as G,Ar as H,Er as I,ir as J,U as K,Or as L,ei as M,Xr as N,X as O,Dr as P,W as Q,q as R,go as S,se as St,Va as T,o as Tt,Cr as U,Fr as V,B as W,L as X,G as Y,V as Z,ko as _,l as _t,Jo as a,mt as at,yo as b,m as bt,Go as c,Ke as ct,qo as d,Be as dt,er as et,Io as f,h as ft,Do as g,pe as gt,jo as h,d as ht,Fo as i,ft as it,$r as j,ti as k,Bo as l,qe as lt,Po as m,be as mt,Lo as n,z as nt,Ko as o,_t as ot,Uo as p,xe as pt,K as q,Wo as r,y as rt,Yo as s,ot as st,No as t,H as tt,Vo as u,Ue as ut,xo as v,fe as vt,oo as w,f as wt,vo as x,p as xt,bo as y,oe as yt,Mr as z};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./api-BG2sUkwk.js";export{e as changePassword};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"./rolldown-runtime-COnpUsM8.js";import{a as t,c as n,i as r,n as i,o as a,r as o,t as s}from"./vendor-charts-95ykyDlI.js";import{ot as c}from"./vendor-ui-D8j69UH4.js";import{S as l,o as u,ot as d,v as f}from"./api-BG2sUkwk.js";import{t as p}from"./useQuery-Cl48zZ73.js";import{t as m}from"./proxy-CWZabK8f.js";import{i as h,r as ee}from"./dist-xY0pK9Wy.js";import{c as te,l as ne}from"./chunk-OE4NN4TA-DBWZidbW.js";import{n as g,o as _,r as re,t as v}from"./dialog-B5PqrKVw.js";import{C as ie,_ as y,a as b,b as x,c as S,f as C,g as w,i as T,n as E,p as ae,r as D,s as O,u as k}from"./format-Bx7DF-TB.js";import{n as A,t as j}from"./utils-XFKvwlFT.js";import{t as M}from"./activity-Cy_niK56.js";import{t as N}from"./copy-button-CSUP1VjU.js";import{n as P,t as oe}from"./sliders-horizontal-BNKmYQgd.js";import{n as F,r as I}from"./use-engine-command-mutation-DrMOfYty.js";import{t as L}from"./radio-BxpVYiyS.js";import{n as se,t as ce}from"./query-fetch-error-CWLZA2L5.js";import{t as R}from"./triangle-alert-DoAwrRgk.js";import{i as z,n as B,t as V}from"./tooltip-B3vOB1Vu.js";import{t as H}from"./badge-Bk1DaL6C.js";import{t as le}from"./transition-types-BKZuWApE.js";import{n as U}from"./auth-screen-backdrop-CEykEbfF.js";import{n as ue}from"./get-error-message-C9VW9IZB.js";import{i as de,n as fe,r as pe,t as me}from"./asset-detail-actions-BrttEn24.js";import{i as W,n as G,r as he,t as ge}from"./tabs-Ch_VG8_S.js";var _e=A(`layers-2`,[[`path`,{d:`M13 13.74a2 2 0 0 1-2 0L2.5 8.87a1 1 0 0 1 0-1.74L11 2.26a2 2 0 0 1 2 0l8.5 4.87a1 1 0 0 1 0 1.74z`,key:`15q6uc`}],[`path`,{d:`m20 14.285 1.5.845a1 1 0 0 1 0 1.74L13 21.74a2 2 0 0 1-2 0l-8.5-4.87a1 1 0 0 1 0-1.74l1.5-.845`,key:`byia6g`}]]),ve=A(`signal`,[[`path`,{d:`M2 20h.01`,key:`4haj6o`}],[`path`,{d:`M7 20v-4`,key:`j294jx`}],[`path`,{d:`M12 20v-8`,key:`i3yub9`}],[`path`,{d:`M17 20V8`,key:`1tkaf5`}],[`path`,{d:`M22 4v16`,key:`sih9yq`}]]),ye=A(`timer`,[[`line`,{x1:`10`,x2:`14`,y1:`2`,y2:`2`,key:`14vaq8`}],[`line`,{x1:`12`,x2:`15`,y1:`14`,y2:`11`,key:`17fdiu`}],[`circle`,{cx:`12`,cy:`14`,r:`8`,key:`1e1u0o`}]]),K=e(n(),1),q=c();function be({detail:e,tick:t,activeFaults:n,memberValues:r,onBack:i}){let a=n.length,o=e.isQuarantined,s=`OK`,c=`ok`;a>0?(s=`FAULT`,c=`bad`):o&&(s=`QRTN`,c=`warn`);let l=0;if(r)for(let e of r.values())e.quality!==`good`&&l++;let u=Object.keys(e.members).length,d=r?.get(`availability_state`)?.value,f=e.members.availability_state?.value,p=typeof d==`string`?d:typeof f==`string`?f:`unknown`,m=p===`running`?{dot:`bg-success`,pulse:`bg-success/60`,animate:!0}:p===`faulted`?{dot:`bg-destructive`,pulse:`bg-destructive/60`,animate:!0}:p===`stopped`?{dot:`bg-warning`,pulse:`bg-warning/60`,animate:!0}:{dot:`bg-muted-foreground/60`,pulse:`bg-muted-foreground/50`,animate:!1},h=p===`running`?`Availability state is running — the asset is available and in service.`:p===`faulted`?`Availability state is faulted — the asset is unavailable because a fault is active.`:p===`stopped`?`Availability state is stopped — the asset is available but not running.`:`Availability state is not available for this asset yet.`;return(0,q.jsxs)(`header`,{className:j(I,`flex w-full min-w-0 flex-col`),children:[(0,q.jsxs)(`div`,{className:`flex flex-col gap-3 px-5 py-4 sm:flex-row sm:items-start sm:justify-between sm:gap-4`,children:[(0,q.jsxs)(`div`,{className:`min-w-0`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1 text-[10px] font-medium uppercase tracking-wider text-muted-foreground`,children:[(0,q.jsx)(`button`,{type:`button`,onClick:i,className:`transition-colors hover:text-foreground`,children:`Assets`}),(0,q.jsx)(`span`,{"aria-hidden":!0,children:`/`}),(0,q.jsx)(`span`,{className:`truncate`,children:k(e.assetType)})]}),(0,q.jsx)(K.ViewTransition,{name:`asset-${e.id}`,default:`none`,children:(0,q.jsx)(`h1`,{className:`font-heading mt-1 text-2xl font-semibold uppercase leading-tight tracking-wide`,children:O(e.id)})}),(0,q.jsxs)(`div`,{className:`mt-1.5 flex min-w-0 items-center gap-1.5`,children:[(0,q.jsx)(`p`,{className:`m-0 min-w-0 flex-1 font-mono text-[10px] leading-tight tracking-tight text-muted-foreground`,children:(0,q.jsx)(`span`,{className:`break-all`,children:e.browsePath.join(` / `)})}),(0,q.jsx)(`span`,{className:`inline-flex shrink-0`,children:(0,q.jsx)(N,{value:b(e.browsePath),label:`Copy Topic / UNS path`})})]})]}),(0,q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 self-end font-mono text-xs sm:self-start`,children:[(0,q.jsx)(L,{className:`size-3.5 animate-pulse text-primary`,"aria-hidden":!0}),(0,q.jsx)(`span`,{className:`font-medium text-primary`,children:`LIVE`}),(0,q.jsxs)(`span`,{className:`tabular-nums text-muted-foreground`,children:[`t=`,t]}),(0,q.jsxs)(V,{children:[(0,q.jsx)(z,{render:(0,q.jsx)(`span`,{className:`inline-flex size-3.5 items-center justify-center outline-none focus-visible:ring-2 focus-visible:ring-ring`}),children:(0,q.jsxs)(`span`,{"aria-hidden":!0,className:`relative flex size-1.5 shrink-0 items-center justify-center`,children:[(0,q.jsx)(`span`,{className:j(`relative inline-flex size-1.5 rounded-full`,m.dot)}),m.animate&&(0,q.jsx)(`span`,{className:j(`absolute inline-flex size-2.5 animate-ping rounded-full opacity-75`,m.pulse)})]})}),(0,q.jsx)(B,{side:`top`,align:`end`,children:(0,q.jsxs)(`span`,{className:`block max-w-[16rem] text-[11px] leading-snug`,children:[(0,q.jsx)(`span`,{className:`font-medium uppercase tracking-[0.08em]`,children:`Availability`}),` `,(0,q.jsxs)(`span`,{className:`text-muted-foreground`,children:[`— `,h]})]})})]})]})]}),(0,q.jsxs)(`fieldset`,{"aria-label":`Asset status`,className:`m-0 flex flex-col border-0 border-t border-border/50 p-0`,children:[(0,q.jsxs)(`div`,{className:`grid grid-cols-2 gap-px bg-transparent`,children:[(0,q.jsx)(J,{variant:`primary`,icon:M,label:`Health`,value:s,tone:c,tooltip:`Rolls up active faults and quarantine into a single status — OK when nothing is asserted, FAULT when any fault is active, QRTN when the asset is excluded from the running factory.`}),(0,q.jsx)(J,{variant:`primary`,icon:R,label:`Active faults`,labelCompact:`Faults`,value:String(a),tone:a>0?`bad`:`neutral`,tooltip:`Fault codes currently asserted on this asset. Clear or inject faults from the Alarms section below.`})]}),(0,q.jsxs)(`div`,{className:`grid grid-cols-2 gap-px border-t border-border/50 bg-transparent sm:grid-cols-4`,children:[(0,q.jsx)(J,{variant:`compact`,icon:_e,label:`Lifecycle`,labelCompact:`Life`,value:S(e.lifecycleStage),tone:x(e.lifecycleStage),tooltip:`Where this asset sits in its operational lifecycle (e.g. commissioning, operating, maintenance, retired).`}),(0,q.jsx)(J,{variant:`compact`,icon:P,label:`Tags`,value:String(u),tone:`neutral`,tooltip:`Total members exposed by this asset — process variables, state flags, counters, commands, and reference fields combined.`}),(0,q.jsx)(J,{variant:`compact`,icon:ve,label:`Bad quality`,value:String(l),tone:l>0?`warn`:`neutral`,tooltip:`Members whose quality stamp is anything other than good (uncertain or bad). A healthy asset reads 0.`}),(0,q.jsx)(J,{variant:`compact`,icon:ye,label:`Operating age`,value:ae(e.operatingHours),tone:`neutral`,tooltip:`Total operating age on this asset, including any factory-seeded starting hours plus simulated runtime elapsed in this session.`})]})]})]})}function J({icon:e,label:t,labelCompact:n,value:r,suffix:i,tone:a,variant:o=`compact`,tooltip:s}){let c=o===`primary`;return(0,q.jsxs)(`div`,{className:j(`relative flex min-w-0 flex-col justify-center`,c?`min-h-20 gap-1.5 px-4 py-4 sm:min-h-24 sm:px-6 sm:py-5 lg:min-h-28 lg:px-8`:`min-h-12 gap-1 px-3 py-2.5 sm:min-h-13 sm:px-4 lg:min-h-14 lg:px-5`),children:[(0,q.jsx)(`div`,{className:`flex min-h-0 min-w-0 items-center gap-2`,children:(0,q.jsxs)(V,{children:[(0,q.jsxs)(z,{className:`flex min-h-0 min-w-0 flex-1 cursor-default items-center gap-2 text-left`,render:(0,q.jsx)(`div`,{}),children:[(0,q.jsx)(e,{className:j(`shrink-0 text-muted-foreground`,c?`size-4`:`size-3.5`),"aria-hidden":!0}),(0,q.jsxs)(`span`,{className:j(`min-w-0 flex-1 font-medium tracking-wide text-muted-foreground uppercase 2xl:tracking-wider`,c?`text-[11px] leading-snug sm:text-[12px]`:`text-[9px] leading-snug sm:text-[10px]`),children:[(0,q.jsx)(`span`,{className:`block wrap-break-word 2xl:hidden`,children:n??t}),(0,q.jsx)(`span`,{className:`hidden wrap-break-word 2xl:block`,children:t})]})]}),(0,q.jsx)(B,{side:`top`,align:`start`,sideOffset:6,className:`max-w-xs`,children:(0,q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,q.jsx)(`span`,{className:`font-medium text-foreground`,children:t}),(0,q.jsx)(`span`,{className:`text-muted-foreground`,children:s??t})]})})]})}),(0,q.jsxs)(`p`,{className:j(`min-w-0 wrap-break-word font-mono font-semibold leading-tight tracking-tight tabular-nums`,c?`text-2xl sm:text-3xl lg:text-4xl`:`text-base lg:text-lg`,a===`ok`&&`text-success`,a===`warn`&&`text-warning`,a===`bad`&&`text-destructive`,a===`neutral`&&`text-foreground`),children:[r,i?(0,q.jsx)(`span`,{className:j(`ml-0.5 font-medium text-muted-foreground`,c?`text-base lg:text-lg`:`text-xs lg:text-sm`),children:i}):null]})]})}function Y({title:e,subtitle:t,children:n,className:r,id:i}){return(0,q.jsxs)(`section`,{id:i,className:j(F,r),children:[(0,q.jsxs)(`div`,{className:`border-b border-border/60 px-4 py-3`,children:[(0,q.jsx)(`h2`,{className:`blueprint-title text-foreground`,children:e}),t?(0,q.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:t}):null]}),(0,q.jsx)(`div`,{className:`overflow-hidden p-0`,children:n})]})}var xe=new Set([`pu`,`h`]),Se=[`_reference`,`_baseline`,`_setpoint`,`_command`],X=`var(--color-primary)`,Ce=`var(--color-background)`,we=60,Te=1e-4;function Z(e,t,n){let r=e?.get(t);return{value:r?.value??n.value,quality:r?.quality??n.quality}}function Ee(e){return Object.entries(e.members).filter(([e,t])=>t.meta.kind===`variable`&&t.meta.access===`read`&&t.meta.dataType===`Double`&&t.meta.euRange!==null&&!xe.has(t.meta.unit??``)&&!Se.some(t=>e.endsWith(t)))}function De(e,t){if(e.length<2)return!1;let n=t-we,r;for(let t of e)if(!(t.tick<n)){if(r===void 0){r=t.value;continue}if(Math.abs(t.value-r)>Te)return!0}return!1}function Oe({data:e,chartHeight:n=34,live:c=!1}){let l=(0,K.useId)(),[u,d]=(0,K.useState)(null),f=1/0,p=-1/0;for(let t of e)t.value<f&&(f=t.value),t.value>p&&(p=t.value);let m=e[e.length-1];return(0,q.jsxs)(`div`,{className:`flex min-h-0 w-full flex-col overflow-hidden`,style:{height:n+14},children:[(0,q.jsx)(`div`,{style:{height:n,width:`100%`},children:(0,q.jsx)(t,{width:`100%`,height:n,children:(0,q.jsxs)(s,{data:e,margin:{top:3,right:4,bottom:2,left:0},onMouseMove:e=>{let t=e?.activePayload?.[0]?.value;typeof t==`number`&&d(t)},onMouseLeave:()=>d(null),children:[(0,q.jsx)(`defs`,{children:(0,q.jsxs)(`linearGradient`,{id:l,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,q.jsx)(`stop`,{offset:`0%`,stopColor:X,stopOpacity:.32}),(0,q.jsx)(`stop`,{offset:`100%`,stopColor:X,stopOpacity:0})]})}),(0,q.jsx)(i,{domain:[`auto`,`auto`],hide:!0}),(0,q.jsx)(a,{content:()=>null,cursor:!1}),(0,q.jsx)(o,{type:`monotone`,dataKey:`value`,stroke:X,strokeWidth:1.5,strokeLinecap:`round`,strokeLinejoin:`round`,fill:`url(#${l})`,isAnimationActive:!1,dot:!1,activeDot:{r:3,fill:X,stroke:Ce,strokeWidth:1}}),m?(0,q.jsx)(r,{x:m.tick,y:m.value,r:2.25,fill:X,stroke:Ce,strokeWidth:1.25,isFront:!0,ifOverflow:`extendDomain`}):null]})})}),(0,q.jsxs)(`span`,{className:`flex items-center gap-1.5 text-[10px] leading-none tabular-nums text-muted-foreground`,children:[c?(0,q.jsxs)(`span`,{"aria-hidden":!0,className:`relative inline-flex size-1.5 shrink-0 items-center justify-center`,children:[(0,q.jsx)(`span`,{className:`absolute inline-flex size-2 animate-ping rounded-full bg-primary/50`}),(0,q.jsx)(`span`,{className:`relative inline-flex size-1.5 rounded-full bg-primary`})]}):null,u===null?(0,q.jsxs)(`span`,{children:[C(f),`–`,C(p)]}):(0,q.jsx)(`span`,{className:`font-medium text-primary`,children:C(u)})]})]})}function ke({detail:e,processVariables:t,memberValues:n,historyRef:r,tick:i,showQuality:a}){let{liveMap:o,orderedVariables:s}=(0,K.useMemo)(()=>{let e=new Map,n=[],a=[];for(let o of t){let t=De(r.current.get(o[0])??[],i);e.set(o[0],t),(t?n:a).push(o)}return{liveMap:e,orderedVariables:[...n,...a]}},[t,n,i,r]);return t.length===0?(0,q.jsx)(Y,{title:`Process`,subtitle:`No continuous analog readings defined for this asset`,className:`opacity-90`,children:(0,q.jsx)(`p`,{className:`px-4 py-6 text-center text-sm text-muted-foreground`,children:`This asset exposes no continuous process variables. Discrete states, flags, and commands are available in the Tags section below.`})}):(0,q.jsx)(Y,{title:`Process`,subtitle:`Live tag readings — trend is ~2 min at 1 Hz`,children:(0,q.jsx)(`ul`,{className:`divide-y divide-border/40`,children:s.map(([t,i])=>{let{value:s,quality:c}=Z(n,t,i),l=r.current.get(t)??[],u=T(e.browsePath,t),d=o.get(t)??!1,f=l.length>=2,p=y(i.meta.unit),h=w(t);return(0,q.jsxs)(m.li,{layout:`position`,transition:{duration:.36,ease:[.22,1,.36,1]},className:`flex flex-col gap-2.5 bg-background px-4 py-3 sm:flex-row sm:items-center sm:gap-5 sm:py-3.5`,children:[(0,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1 sm:w-44 sm:shrink-0`,children:[(0,q.jsxs)(V,{children:[(0,q.jsx)(z,{className:`min-w-0 flex-1 cursor-default truncate text-left text-[11px] font-medium uppercase tracking-[var(--miravo-tracking-eyebrow)] text-muted-foreground`,render:(0,q.jsx)(`span`,{}),children:h}),(0,q.jsx)(B,{side:`top`,align:`start`,className:`max-w-xs`,children:h})]}),(0,q.jsx)(N,{value:u,label:`Copy Topic / UNS path`})]}),(0,q.jsxs)(`div`,{className:`relative h-[56px] min-w-0 flex-1`,children:[(0,q.jsx)(`div`,{"aria-hidden":!0,className:`absolute inset-x-0 top-1/2 h-px -translate-y-1/2 bg-border/30`}),f?(0,q.jsx)(Oe,{data:l,chartHeight:42,live:d}):(0,q.jsx)(`p`,{className:`flex h-full items-center text-[10px] uppercase tracking-widest text-muted-foreground`,children:`Collecting trend…`})]}),(0,q.jsxs)(`div`,{className:`flex items-baseline gap-2 sm:min-w-36 sm:shrink-0 sm:justify-end`,children:[(0,q.jsx)(`span`,{className:`blueprint-stat text-2xl font-semibold leading-none tabular-nums text-foreground`,children:typeof s==`number`?C(s):String(s)}),p&&(0,q.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground`,children:p}),a&&c!==`good`&&(0,q.jsx)(H,{variant:c===`uncertain`?`secondary`:`destructive`,className:`shrink-0 text-[10px]`,children:c})]})]},t)})})})}function Ae({name:e,value:t,dataType:n,unit:r,access:i}){let a=w(e),o=i===`readwrite`;if(n===`Boolean`||typeof t==`boolean`||r===`pu`&&(t===0||t===1)){let n=t===!0||t===`true`||t===1,r=e.includes(`fault`);return(0,q.jsxs)(`div`,{className:`flex min-h-9 min-w-0 items-center justify-between gap-2 rounded-[var(--miravo-radius-tight)] border px-2 py-1 ${r&&n?`border-destructive/30 bg-transparent`:``}`,children:[(0,q.jsxs)(`span`,{className:`min-w-0 flex-1 truncate text-left text-[10px] leading-snug text-muted-foreground`,children:[a,o&&(0,q.jsx)(`span`,{className:`ml-1 text-[8px] text-primary`,children:`CMD`})]}),(0,q.jsx)(`span`,{className:`shrink-0 font-mono text-xs font-medium tabular-nums ${r&&n?`text-destructive`:n?`text-success`:`text-muted-foreground`}`,children:n?`ON`:`OFF`})]})}if(n===`String`){let n=String(t),r=n===`none`||n===``,i=E.has(n)||e.includes(`fault_code`)&&!r,o=!i&&D.has(n);return(0,q.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-col justify-center gap-1 rounded-[var(--miravo-radius-tight)] border px-2 py-2 ${i?`border-destructive/30 bg-transparent`:o?`border-warning/30 bg-warning/5`:``}`,children:[(0,q.jsx)(`span`,{className:`wrap-break-word text-[10px] leading-tight text-muted-foreground`,children:a}),r?(0,q.jsx)(`span`,{className:`wrap-break-word font-mono text-sm font-medium leading-snug text-muted-foreground`,children:`—`}):(0,q.jsx)(`span`,{title:n,className:`wrap-break-word font-mono text-sm font-medium leading-snug ${i?`text-destructive`:o?`text-warning`:`text-foreground`}`,children:S(n)})]})}return(0,q.jsxs)(`div`,{className:`flex min-h-9 min-w-0 items-center justify-between gap-2 rounded-[var(--miravo-radius-tight)] border px-2 py-1`,children:[(0,q.jsxs)(`span`,{className:`min-w-0 flex-1 truncate text-left text-[10px] leading-snug text-muted-foreground`,children:[a,o&&(0,q.jsx)(`span`,{className:`ml-1 text-[8px] text-primary`,children:`CMD`})]}),(0,q.jsxs)(`span`,{className:`shrink-0 text-right font-mono text-xs font-medium tabular-nums`,children:[typeof t==`number`?C(t):String(t),r&&(0,q.jsx)(`span`,{className:`ml-1 text-[10px] text-muted-foreground`,children:y(r)})]})]})}function je(e){return[...e].sort((e,t)=>{let n=e[1].meta.access===`readwrite`;return n===(t[1].meta.access===`readwrite`)?e[0].localeCompare(t[0]):n?-1:1})}function Me({stringEnumMembers:e,nonStringOperationalMembers:t,memberValues:n,className:r}){let i=(0,K.useMemo)(()=>je(e),[e]),a=(0,K.useMemo)(()=>je(t),[t]),o=`grid min-w-0 gap-2 [grid-template-columns:repeat(auto-fill,minmax(min(100%,12.5rem),1fr))]`;return(0,q.jsx)(Y,{title:`Tags`,subtitle:`Mode, status flags, and control tags`,className:r,children:(0,q.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-5 p-4`,children:[i.length>0&&(0,q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[a.length>0&&(0,q.jsx)(`h3`,{className:`blueprint-title text-muted-foreground`,children:`States`}),(0,q.jsx)(`div`,{className:o,children:i.map(([e,t])=>{let{value:r}=Z(n,e,t);return(0,q.jsx)(Ae,{name:e,value:r,dataType:t.meta.dataType,unit:t.meta.unit,access:t.meta.access},e)})})]}),a.length>0&&(0,q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[i.length>0&&(0,q.jsx)(`h3`,{className:`blueprint-title text-muted-foreground`,children:`Flags & commands`}),(0,q.jsx)(`div`,{className:o,children:a.map(([e,t])=>{let{value:r}=Z(n,e,t);return(0,q.jsx)(Ae,{name:e,value:r,dataType:t.meta.dataType,unit:t.meta.unit,access:t.meta.access},e)})})]})]})})}function Q({className:e,counters:t,memberValues:n}){return(0,q.jsx)(Y,{title:`Counters`,subtitle:`Totals, hours, and accumulators`,className:e,children:(0,q.jsx)(`div`,{className:`flex flex-col gap-2 p-4`,children:t.map(([e,t])=>{let{value:r}=Z(n,e,t);return(0,q.jsxs)(`div`,{className:`flex items-center justify-between rounded-[var(--miravo-radius-tight)] border border-border/60 bg-transparent px-3 py-2`,children:[(0,q.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:w(e)}),(0,q.jsxs)(`span`,{className:`blueprint-stat text-sm font-medium`,children:[typeof r==`number`?C(r):String(r),t.meta.unit&&(0,q.jsx)(`span`,{className:`ml-1 text-[10px] text-muted-foreground`,children:y(t.meta.unit)})]})]},e)})})})}function $({className:e,detail:t,referenceMembers:n,memberValues:r}){let i=Object.keys(t.parameters).length>0,a=n.length>0;return!i&&!a?null:(0,q.jsx)(Y,{title:`Nameplate & configuration`,subtitle:`Design parameters, identity, and reference values`,className:e,children:(0,q.jsxs)(`div`,{className:`flex flex-col gap-4 p-4`,children:[i&&(0,q.jsx)(`div`,{className:`grid grid-cols-2 gap-2 sm:grid-cols-3`,children:Object.entries(t.parameters).map(([e,t])=>(0,q.jsxs)(`div`,{className:`flex flex-col gap-0.5 py-1.5`,children:[(0,q.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:w(e)}),(0,q.jsxs)(`span`,{className:`font-mono text-sm font-medium`,children:[typeof t.value==`number`?C(t.value):String(t.value),t.unit&&(0,q.jsx)(`span`,{className:`ml-1 text-[10px] text-muted-foreground`,children:y(t.unit)})]})]},e))}),a&&(0,q.jsx)(`div`,{className:`grid grid-cols-2 gap-2 sm:grid-cols-3`,children:n.map(([e,t])=>{let{value:n}=Z(r,e,t);return(0,q.jsxs)(`div`,{className:`flex flex-col gap-0.5 rounded-[var(--miravo-radius-tight)] border border-border/60 bg-transparent p-2`,children:[(0,q.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:w(e)}),(0,q.jsxs)(`span`,{className:`font-mono text-sm font-medium`,children:[typeof n==`number`?C(n):String(n),t.meta.unit&&(0,q.jsx)(`span`,{className:`ml-1 text-[10px] text-muted-foreground`,children:y(t.meta.unit)})]})]},e)})})]})})}function Ne({detail:e,memberValues:t}){if(!e.members.state_label)return null;let n=n=>t?.get(n)?.value??e.members[n]?.value;return(0,q.jsxs)(`section`,{className:`flex flex-wrap items-center gap-3 text-sm`,"aria-label":`Station production`,children:[(0,q.jsx)(H,{variant:`secondary`,children:String(n(`state_label`)??`idle`)}),(0,q.jsxs)(`span`,{children:[`Good: `,C(Number(n(`good_count`)??0))]}),(0,q.jsxs)(`span`,{children:[`Scrap: `,C(Number(n(`scrap_count`)??0))]}),n(`stop_reason`)&&(0,q.jsx)(`span`,{className:`text-muted-foreground`,children:String(n(`stop_reason`))})]})}var Pe=120,Fe=`gap-4 sm:gap-5 lg:gap-x-6 lg:gap-y-5 xl:gap-x-8`,Ie=`asset-detail-page relative isolate mx-auto flex min-h-full w-full max-w-screen-2xl flex-col gap-6 p-4 sm:gap-8 sm:p-6`;function Le(e){return e instanceof Error&&`code`in e&&e.code===`NOT_FOUND`?!0:e instanceof Error&&/^404\b/.test(e.message.trim())}function Re(){let{id:e}=ne(),t=te(),n=(0,K.useCallback)(()=>{(0,K.startTransition)(()=>{(0,K.addTransitionType)(le),t(`/?tab=assets`)})},[t]),[r,i]=(0,K.useState)(!1),[a,o]=h(`tab`,ee([`hmi`,`operate`,`data`,`operations`]).withDefault(`hmi`)),s=a===`data`||a===`operations`?`operate`:a;(0,K.useEffect)(()=>{(a===`data`||a===`operations`)&&o(`operate`)},[a,o]);let c=(0,K.useCallback)(e=>{o(`operate`),requestAnimationFrame(()=>{requestAnimationFrame(()=>{document.getElementById(e)?.scrollIntoView({behavior:`smooth`,block:`start`})})})},[o]);(0,K.useEffect)(()=>{let e=null,t=!1,r=()=>{t=!1,e&&=(clearTimeout(e),null)},a=a=>{if(a.metaKey||a.ctrlKey||a.altKey)return;let o=a.target;if(o){let e=o.tagName;if(e===`INPUT`||e===`TEXTAREA`||e===`SELECT`||o.isContentEditable)return}if(t){a.key===`f`?(c(`faults`),a.preventDefault()):a.key===`c`&&(c(`commands`),a.preventDefault()),r();return}if(a.key===`g`){t=!0,e=setTimeout(r,1200);return}a.key===`b`&&!a.shiftKey?(n(),a.preventDefault()):a.key===`?`&&(i(!0),a.preventDefault())};return window.addEventListener(`keydown`,a),()=>{window.removeEventListener(`keydown`,a),r()}},[n,c]);let g=p({queryKey:f.assets.detail(e??``),queryFn:()=>u(`/assets/${e}`,l.assetDetail),enabled:e!==void 0}),_=(0,K.useDeferredValue)(g.data??null),re=g.isError,v=d(t=>e?t.memberValues.get(e):void 0),y=d(e=>e.models),b=d(e=>e.assets),x=(0,K.useMemo)(()=>b.find(t=>t.id===e),[b,e]),S=x?.activeFaults,C=(0,K.useRef)(new Map),w=d(e=>e.tick);(0,K.useEffect)(()=>{if(!v||!e)return;let t=C.current;for(let[e,n]of v){if(typeof n.value!=`number`)continue;let r=t.get(e)??[];if(r[r.length-1]?.tick===w)continue;let i=r.length>=Pe?r.slice(r.length-Pe+1):r;t.set(e,[...i,{value:n.value,tick:w}])}},[v,w,e]);let T=(0,K.useMemo)(()=>_?Ee(_):[],[_]),E=(0,K.useMemo)(()=>{if(!_)return{operational:[],counters:[],reference:[]};let e=new Set(T.map(([e])=>e)),t=Object.entries(_.members).filter(([t])=>!e.has(t)),n=[],r=[],i=[];for(let e of t){let[,t]=e,a=t.meta.dataType,o=t.meta.kind,s=t.meta.unit,c=s===`pu`&&t.meta.euRange?.[0]===0&&t.meta.euRange?.[1]===1;o===`property`?i.push(e):a===`Boolean`||a===`String`||c?n.push(e):s===`count`||a===`UInt16`||a===`UInt32`?r.push(e):t.meta.access===`readwrite`||Se.some(t=>e[0].endsWith(t))?n.push(e):s===`pu`||s===`h`?r.push(e):i.push(e)}return{operational:n,counters:r,reference:i}},[_,T]),ae=(0,K.useMemo)(()=>_?y.find(e=>e.name===_.assetType)?.faultNames??[]:[],[_,y]),D=S??_?.activeFaults??[],O=(0,K.useMemo)(()=>{if(!v)return D.length>0;for(let[,e]of v)if(e.quality!==`good`)return!0;return!1},[v,D.length]),k=(0,K.useMemo)(()=>E.operational.filter(([,e])=>e.meta.dataType===`String`),[E.operational]),A=(0,K.useMemo)(()=>E.operational.filter(([,e])=>e.meta.dataType!==`String`),[E.operational]),M=de(e,_,()=>g.refetch());if(!_)return re?Le(g.error)?(0,q.jsx)(U,{className:`min-h-full`,children:(0,q.jsx)(`div`,{className:`flex min-h-[40vh] items-center justify-center p-6 sm:p-12`,children:(0,q.jsx)(`div`,{className:`w-full max-w-md`,children:(0,q.jsxs)(se,{eyebrow:`Asset lookup`,stamp:`404`,title:`Asset not found`,detail:e??`Unknown asset id`,detailLabel:`Requested asset`,primaryLabel:`Back to Assets`,onPrimary:n,children:[(0,q.jsx)(`p`,{children:`The requested asset is no longer in the running factory or the URL is wrong.`}),(0,q.jsx)(`p`,{children:`Return to Assets and pick a live asset from the current factory.`})]})})})}):(0,q.jsx)(U,{className:`min-h-full`,children:(0,q.jsxs)(`div`,{className:`flex min-h-[40vh] flex-col items-center justify-center gap-4 p-6 sm:p-12`,children:[(0,q.jsx)(`div`,{className:`w-full max-w-md`,children:(0,q.jsx)(ce,{message:ue(g.error,`Could not load asset.`),onRetry:()=>void g.refetch(),isRetrying:g.isFetching})}),(0,q.jsx)(ie,{variant:`outline`,size:`sm`,onClick:n,children:`Back to Assets`})]})}):x?(0,q.jsx)(`div`,{className:Ie,children:(0,q.jsx)(be,{detail:{id:x.id,assetType:x.model,browsePath:x.browsePath,lifecycleStage:x.lifecycleStage,operatingHours:x.operatingHours,activeFaults:x.activeFaults,isQuarantined:x.isQuarantined,parameters:{},inputs:{},members:{},methods:{}},tick:w,activeFaults:D,memberValues:v,onBack:n})}):null;let N=E.operational.length>0,I=E.counters.length>0,L=E.reference.length>0||Object.keys(_.parameters).length>0,R=N||I||L,z=Object.keys(_.methods).length>0,B=N&&!I&&!L,V=N&&I&&L;return(0,q.jsxs)(`div`,{className:Ie,children:[(0,q.jsx)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-0 -z-10 hidden select-none overflow-hidden md:block`,children:(0,q.jsx)(`span`,{className:`absolute -top-2 left-0 whitespace-nowrap uppercase leading-none opacity-35 blur-[2px]`,style:{fontFamily:`var(--miravo-font-heading)`,fontSize:`clamp(5rem, 14vw, 12rem)`,fontWeight:`var(--miravo-weight-medium)`,letterSpacing:`var(--miravo-tracking-heading)`,color:`var(--miravo-ghost)`},children:_.assetType.replace(/_/g,` `)})}),(0,q.jsx)(be,{detail:_,tick:w,activeFaults:D,memberValues:v,onBack:n}),(0,q.jsx)(Ne,{detail:_,memberValues:v}),(0,q.jsx)(K.ViewTransition,{enter:`fade-in`,default:`none`,children:(0,q.jsxs)(ge,{value:s,onValueChange:e=>{o(e)},className:`min-h-0 flex-1`,children:[(0,q.jsx)(`div`,{className:`shrink-0 overflow-x-auto`,children:(0,q.jsxs)(he,{variant:`line`,className:`h-10! min-w-max gap-0.5`,children:[(0,q.jsxs)(W,{value:`hmi`,className:`gap-1.5 px-3 text-sm`,children:[(0,q.jsx)(P,{className:`size-3.5 shrink-0`}),`HMI`]}),(0,q.jsxs)(W,{value:`operate`,className:`gap-1.5 px-3 text-sm`,children:[(0,q.jsx)(oe,{className:`size-3.5 shrink-0`}),`Operate`]})]})}),(0,q.jsx)(G,{value:`hmi`,className:`flex-1 py-2`,children:(0,q.jsx)(m.div,{initial:{opacity:0,y:6},animate:{opacity:1,y:0},transition:{duration:.15,ease:`easeOut`},children:(0,q.jsx)(ke,{detail:_,processVariables:T,memberValues:v,historyRef:C,tick:w,showQuality:O})},`hmi`)}),(0,q.jsx)(G,{value:`operate`,className:`flex-1 py-2`,children:(0,q.jsxs)(m.div,{initial:{opacity:0,y:6},animate:{opacity:1,y:0},transition:{duration:.15,ease:`easeOut`},className:`flex min-w-0 flex-col gap-4`,children:[R&&(0,q.jsxs)(`section`,{"aria-label":`Data`,className:j(`grid min-w-0 grid-cols-1`,Fe,V&&`lg:grid-cols-2 lg:grid-rows-[auto_auto] lg:items-start`,!V&&N&&(I||L)&&`lg:grid-cols-2 lg:items-start`),children:[N&&(0,q.jsx)(Me,{stringEnumMembers:k,nonStringOperationalMembers:A,memberValues:v,className:j(`min-h-0 min-w-0 self-stretch`,B&&`lg:col-span-2`,V&&`lg:row-span-2`)}),!N&&I&&L&&(0,q.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-col gap-6 lg:col-span-2`,children:[(0,q.jsx)(Q,{counters:E.counters,memberValues:v}),(0,q.jsx)($,{detail:_,referenceMembers:E.reference,memberValues:v})]}),!N&&I&&!L&&(0,q.jsx)(Q,{className:`lg:col-span-2`,counters:E.counters,memberValues:v}),!N&&!I&&L&&(0,q.jsx)($,{className:`lg:col-span-2`,detail:_,referenceMembers:E.reference,memberValues:v}),N&&I&&(0,q.jsx)(Q,{className:`min-h-0 min-w-0 self-stretch lg:col-start-2 lg:row-start-1`,counters:E.counters,memberValues:v}),N&&L&&(0,q.jsx)($,{className:j(`min-h-0 min-w-0 self-stretch lg:col-start-2`,V?`lg:row-start-2`:`lg:row-start-1`),detail:_,referenceMembers:E.reference,memberValues:v})]}),(0,q.jsxs)(`section`,{"aria-label":`Operations`,className:j(F,`grid grid-cols-1`,z&&`lg:grid-cols-2`),children:[(0,q.jsx)(fe,{activeFaults:D,availableFaults:ae,onTriggerFault:M.triggerFault,onClearFault:M.clearFault}),z&&(0,q.jsx)(`div`,{className:`border-t border-border/50 lg:border-l lg:border-t-0`,children:(0,q.jsx)(me,{detail:_,methodArgs:M.methodArgs,setMethodArgs:M.setMethodArgs,onInvoke:M.invoke,isPending:M.isPending,pendingMethod:M.pendingMethod})})]}),(0,q.jsx)(pe,{assetId:_.id,onRemoved:n})]},`operate`)})]})}),(0,q.jsx)(ze,{open:r,onOpenChange:i})]})}function ze({open:e,onOpenChange:t}){return(0,q.jsx)(v,{open:e,onOpenChange:t,children:(0,q.jsxs)(g,{children:[(0,q.jsx)(_,{className:`font-heading text-lg font-semibold tracking-tight`,children:`Keyboard shortcuts`}),(0,q.jsx)(re,{className:`text-sm text-muted-foreground`,children:`Navigate this asset without leaving the keyboard.`}),(0,q.jsx)(`ul`,{className:`flex flex-col gap-2 pt-1`,children:[{keys:[`g`,`f`],label:`Jump to Alarms`},{keys:[`g`,`c`],label:`Jump to Commands`},{keys:[`b`],label:`Back to Assets`},{keys:[`?`],label:`Show this sheet`}].map(e=>(0,q.jsxs)(`li`,{className:`flex items-center justify-between gap-4`,children:[(0,q.jsx)(`span`,{className:`text-sm text-foreground`,children:e.label}),(0,q.jsx)(`span`,{className:`flex items-center gap-1`,children:e.keys.map((t,n)=>(0,q.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,q.jsx)(`kbd`,{className:`rounded-[var(--miravo-radius-tight)] border border-border bg-muted/40 px-1.5 py-0.5 font-mono text-[11px] font-medium text-foreground`,children:t}),n<e.keys.length-1&&(0,q.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:`then`})]},`${e.label}-${t}`))})]},e.label))})]})})}export{Re as AssetDetailPage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"./rolldown-runtime-COnpUsM8.js";import{c as t}from"./vendor-charts-95ykyDlI.js";import{ot as n}from"./vendor-ui-D8j69UH4.js";import{ot as r}from"./api-BG2sUkwk.js";import{i,n as a,o,r as s,t as c}from"./dialog-B5PqrKVw.js";import{C as l,S as u,c as d}from"./format-Bx7DF-TB.js";import{t as f}from"./utils-XFKvwlFT.js";import{n as p,t as m}from"./circle-x-6JtFdy1_.js";import{t as h}from"./loader-circle-DjgHgHHl.js";import{l as g,t as _}from"./use-engine-command-mutation-DrMOfYty.js";import{t as v}from"./trash-2-BH9HDsZv.js";import{t as y}from"./triangle-alert-DoAwrRgk.js";import{a as b,i as x}from"./validation-Cxhiswz2.js";import{i as S,n as C,t as w}from"./tooltip-B3vOB1Vu.js";import{t as T}from"./badge-Bk1DaL6C.js";var E=e(t(),1);function D(e,t,n){let[r,i]=(0,E.useState)({}),[a,o]=(0,E.useState)(null),s=_();(0,E.useEffect)(()=>{s.isPending||o(null)},[s.isPending]);let c=e=>{s.mutateAsync(e).then(n).catch(()=>{})};return{methodArgs:r,setMethodArgs:i,pendingMethod:a,isPending:s.isPending,invoke:n=>{if(!e)return;let i={},a=t?.methods[n];if(a)for(let e of a.inputArguments){let t=r[n]?.[e.name]??``,a=x(e.name,t,e.dataType);if(!a)return;i[e.name]=a.value}o(n),c({type:`invokeMethod`,assetId:e,method:n,arguments:i})},triggerFault:t=>{e&&c({type:`triggerFault`,assetId:e,fault:t})},clearFault:t=>{e&&c({type:`clearFault`,assetId:e,fault:t})}}}var O=n(),k=`bg-transparent bg-transparent`,A=`blueprint-title text-foreground`;function j(e,t){return t.includes(`rpm`)||t.includes(`speed`)?`e.g. 2500`:t.includes(`temp`)?`e.g. 70.0`:t.includes(`pressure`)?`e.g. 4.5`:e===`Boolean`?`true / false`:e===`String`?`value`:`e.g. 100`}function M({detail:e,methodArgs:t,setMethodArgs:n,onInvoke:r,isPending:i=!1,pendingMethod:a=null}){let o=Object.entries(e.methods);if(o.length===0)return null;let s=o.filter(([,e])=>e.inputArguments.length===0),c=o.filter(([,e])=>e.inputArguments.length>0);return(0,O.jsxs)(`div`,{id:`commands`,className:`flex min-w-0 flex-col gap-3 p-4`,children:[(0,O.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,O.jsx)(`h2`,{className:A,children:`Commands`}),(0,O.jsx)(`p`,{className:`text-[10px] text-muted-foreground/75`,children:`Executable methods on this asset`})]}),s.length>0&&(0,O.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:s.map(([e,t])=>{let n=a===e&&i,o=n?h:g;return t.description?(0,O.jsxs)(w,{children:[(0,O.jsx)(S,{render:(0,O.jsxs)(l,{size:`sm`,variant:`outline`,disabled:i,title:e,className:f(`h-8 gap-1.5 font-mono text-xs`,k),onClick:()=>r(e),children:[(0,O.jsx)(o,{className:f(`size-3`,n&&`animate-spin`),"aria-hidden":!0}),d(e)]})}),(0,O.jsx)(C,{side:`bottom`,className:`max-w-xs`,children:t.description})]},e):(0,O.jsxs)(l,{size:`sm`,variant:`outline`,disabled:i,title:e,className:f(`h-8 gap-1.5 font-mono text-xs`,k),onClick:()=>r(e),children:[(0,O.jsx)(o,{className:f(`size-3`,n&&`animate-spin`),"aria-hidden":!0}),d(e)]},e)})}),c.length>0&&s.length>0&&(0,O.jsx)(b,{className:`bg-border/60`}),c.map(([e,o])=>{let s=a===e&&i;return(0,O.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,O.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between`,children:[(0,O.jsxs)(`div`,{className:`min-w-0`,children:[(0,O.jsx)(`p`,{title:e,className:`font-mono text-sm font-medium`,children:d(e)}),o.description&&(0,O.jsx)(`p`,{className:`mt-0.5 text-[10px] text-muted-foreground`,children:o.description})]}),(0,O.jsxs)(l,{size:`sm`,variant:`default`,disabled:i,className:`shrink-0`,onClick:()=>r(e),children:[s?(0,O.jsx)(h,{className:`mr-1 size-3 animate-spin`,"aria-hidden":!0}):(0,O.jsx)(g,{className:`mr-1 size-3`,"aria-hidden":!0}),`Execute`]})]}),(0,O.jsx)(`div`,{className:`mt-3 flex flex-col gap-1.5 border-t border-border/50 pt-3`,children:o.inputArguments.map(r=>(0,O.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,O.jsx)(`span`,{title:r.name,className:`w-28 shrink-0 truncate pt-1.5 font-mono text-[10px] leading-tight text-muted-foreground`,children:d(r.name)}),(0,O.jsx)(u,{className:`h-7 flex-1 font-mono text-xs`,placeholder:j(r.dataType,r.name),value:t[e]?.[r.name]??``,onChange:t=>n(n=>({...n,[e]:{...n[e],[r.name]:t.target.value}}))})]},r.name))})]},e)})]})}function N({activeFaults:e,availableFaults:t,onTriggerFault:n,onClearFault:r}){let u=e.length>0,[h,g]=(0,E.useState)(null);return(0,O.jsxs)(`div`,{id:`faults`,className:`flex min-w-0 flex-col gap-3 p-4`,children:[(0,O.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,O.jsx)(`h2`,{className:A,children:`Alarms`}),(0,O.jsx)(`p`,{className:`text-[10px] text-muted-foreground/75`,children:`Active faults and injectable failure modes (factory)`})]}),u?(0,O.jsx)(`div`,{className:`flex flex-col gap-2`,children:e.map(e=>(0,O.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-[var(--miravo-radius-tight)] border border-destructive/30 bg-transparent py-2.5 pl-3 pr-2 sm:flex-row sm:items-center sm:justify-between`,children:[(0,O.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,O.jsx)(y,{className:`size-4 shrink-0 text-destructive`}),(0,O.jsx)(`span`,{title:e,className:`font-mono text-sm font-medium text-destructive`,children:d(e)})]}),(0,O.jsxs)(l,{size:`sm`,variant:`outline`,className:f(`h-8 shrink-0 gap-1 border-destructive/30 px-2.5 font-mono text-[0.75rem] text-destructive shadow-none`,`hover:border-destructive/45 hover:bg-destructive/5 hover:text-destructive`,`focus-visible:border-destructive/40 focus-visible:ring-destructive/20`,k),onClick:()=>r(e),children:[(0,O.jsx)(m,{className:`size-3.5`,"aria-hidden":!0}),`Clear`]})]},e))}):(0,O.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,O.jsx)(p,{className:`size-4 text-success`}),`All clear — no active faults`]}),t.length>0&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(b,{className:`bg-border/60`}),(0,O.jsxs)(`div`,{children:[(0,O.jsxs)(`p`,{className:f(A,`mb-2`),children:[`Inject fault`,(0,O.jsxs)(T,{variant:`secondary`,className:`ml-2 text-[10px]`,children:[t.filter(t=>!e.includes(t)).length,` available`]})]}),(0,O.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:t.filter(t=>!e.includes(t)).map(e=>(0,O.jsx)(l,{size:`sm`,variant:`outline`,title:e,className:f(`h-7 font-mono text-[10px]`,k),onClick:()=>g(e),children:d(e)},e))})]})]}),(0,O.jsx)(c,{open:h!==null,onOpenChange:e=>{e||g(null)},children:(0,O.jsxs)(a,{children:[(0,O.jsx)(o,{className:`font-heading text-lg font-semibold tracking-tight`,children:`Inject fault?`}),(0,O.jsxs)(s,{className:`text-sm text-muted-foreground`,children:[`This asserts`,` `,(0,O.jsx)(`span`,{title:h??void 0,className:`font-mono text-foreground`,children:h?d(h):``}),` `,`on the running factory. Downstream consumers will see the fault immediately. Clear it from the active list when you're done.`]}),(0,O.jsxs)(i,{children:[(0,O.jsx)(l,{variant:`outline`,onClick:()=>g(null),children:`Cancel`}),(0,O.jsxs)(l,{variant:`destructive`,onClick:()=>{h&&n(h),g(null)},children:[(0,O.jsx)(y,{className:`mr-1 size-3.5`,"aria-hidden":!0}),`Inject fault`]})]})]})})]})}function P({assetId:e,onRemoved:t}){let[n,u]=(0,E.useState)(!1),[d,f]=(0,E.useState)(!1),p=_(),m=r(t=>t.templates.find(t=>t.assetIds.includes(e))),h=r(t=>t.lines.find(t=>t.stations.some(t=>t.id===e))?.line);return h?(0,O.jsxs)(`div`,{className:`rounded-[var(--miravo-radius-stadium-sm)] border border-dashed border-border p-4`,children:[(0,O.jsx)(`h2`,{className:A,children:`Remove asset`}),(0,O.jsxs)(`p`,{className:`text-[10px] text-muted-foreground/75`,children:[`This asset is a station on line `,h,`. Unload`,` `,m?.templateName??`its template`,` to remove the line.`]})]}):(0,O.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-[var(--miravo-radius-stadium-sm)] border border-dashed border-border p-4 sm:flex-row sm:items-center sm:justify-between`,children:[(0,O.jsxs)(`div`,{className:`min-w-0`,children:[(0,O.jsx)(`h2`,{className:A,children:`Remove asset`}),(0,O.jsx)(`p`,{className:`text-[10px] text-muted-foreground/75`,children:m?`Removes this asset from the running factory. ${m.templateName} stays loaded without it.`:`Removes this standalone asset from the running factory.`})]}),(0,O.jsxs)(l,{size:`sm`,variant:`destructive`,className:`shrink-0`,onClick:()=>u(!0),children:[(0,O.jsx)(v,{className:`mr-1 size-3.5`,"aria-hidden":!0}),`Remove`]}),(0,O.jsx)(c,{open:n,onOpenChange:u,children:(0,O.jsxs)(a,{children:[(0,O.jsxs)(o,{className:`font-heading text-lg font-semibold tracking-tight`,children:[`Remove `,e,`?`]}),(0,O.jsx)(s,{className:`text-sm text-muted-foreground`,children:`The asset and its live values are removed from the factory. With persistence on, the change is saved.`}),(0,O.jsxs)(i,{children:[(0,O.jsx)(l,{variant:`outline`,onClick:()=>u(!1),disabled:d,children:`Cancel`}),(0,O.jsx)(l,{variant:`destructive`,onClick:async()=>{f(!0);try{await p.mutateAsync({type:`removeAsset`,assetId:e}),u(!1),t()}catch{}finally{f(!1)}},disabled:d,children:`Remove asset`})]})]})})]})}export{D as i,N as n,P as r,M as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-COnpUsM8.js";import{c as t}from"./vendor-charts-95ykyDlI.js";import{ot as n}from"./vendor-ui-D8j69UH4.js";import{b as r,d as i,f as a,l as o,m as s}from"./dom-Cm_OH5jc.js";import{n as c,t as l}from"./by-path-VBqTBdlG.js";import{A as u,D as d,E as f,F as p,H as m,L as h,O as g,P as ee,V as _,X as te,a as v,b as ne,g as re,i as ie,j as ae,k as y,n as oe,o as se,r as ce,t as le}from"./status-CZFZLqVk.js";import{r as ue,t as de}from"./chiller-BSx8eUMN.js";import{n as fe,t as pe}from"./compressor-D63w6Ir2.js";import{a as me,i as b,n as he,o as ge,r as _e,s as ve,t as ye}from"./genset-BRgqR1AT.js";import{i as be,n as xe,r as Se,t as Ce}from"./tank-THHXGdzg.js";import{t as we}from"./stages-hidkaJPI.js";var Te=[[`genA`,`diesel-generator`,`power`,`gensets`,0],[`genB`,`diesel-generator`,`power`,`gensets`,1],[`genC`,`diesel-generator`,`power`,`gensets`,2],[`bulk`,`storage-tank`,`fuel`,`storage`,0],[`day`,`storage-tank`,`fuel`,`storage`,1],[`chillerA`,`industrial-chiller`,`cooling`,`chiller-plant`,0],[`chillerB`,`industrial-chiller`,`cooling`,`chiller-plant`,1],[`pumpA`,`centrifugal-pump`,`cooling`,`chilled-water`,0],[`pumpB`,`centrifugal-pump`,`cooling`,`chilled-water`,1],[`compressor`,`air-compressor`,`support`,`start-air`,0],[`fan`,`ac-induction-motor`,`support`,`ventilation`,0]],Ee=e=>l(Te,e);function De(e){let t=(e,t,n)=>({key:e,assetId:e,name:t,kind:`utility`,area:n});return[t(e.genA,`Genset A (primary)`,`Power`),t(e.genB,`Genset B`,`Power`),t(e.genC,`Genset C (reserve)`,`Power`),t(e.bulk,`Bulk fuel tank`,`Fuel`),t(e.day,`Day tank`,`Fuel`),t(e.chillerA,`Chiller A`,`Cooling`),t(e.chillerB,`Chiller B`,`Cooling`),t(e.pumpA,`Chilled-water pump 1`,`Cooling`),t(e.pumpB,`Chilled-water pump 2`,`Cooling`),t(e.compressor,`Start-air compressor`,`Support`),t(e.fan,`Hall ventilation fan`,`Support`)]}var Oe=e(t(),1),x=64,ke=2.2;function Ae(e,t,n){let{k:r,G:i,P:a,S:o,L:s,D:c,slab:l,cyl:u}=e,d=[],f=t.y+t.d,p=t.x+t.w,m=e=>s(e,{tone:`faint`}),h=[];for(let e=t.x+11;e<p-4;e+=11)h.push(r.segment([e,f,3],[e,f,x-9],a));for(let e=t.y+11;e<f-4;e+=11)h.push(r.segment([p,e,3],[p,e,x-9],a));let g=[];for(let e of[x-7,x-5,x-3])g.push(r.segment([t.x+4,f,e],[p-4,f,e],a)),g.push(r.segment([p,t.y+4,e],[p,f-4,e],a));d.push(l({x:t.x-1.6,y:t.y-1.6,w:t.w+3.2,d:t.d+3.2,r:2},0,3,{tone:`lo`},2,.3)),d.push(o(r.slabOf(t,0,x,a,2,.6),{tone:`lo`,inner:m(h.join(``))+s(g.join(``),{tone:`lo`})+m(r.sideSeam(t,3,a,2))})),d.push(s(r.planOutline(r.insetPlan(t,2),x,a,2),{tone:`lo`}));let ee=(e,t,n,i,o)=>{d.push(l({x:e-1,y:t-1,w:n+2,d:i+2,r:1},x,3,{tone:`lo`},2,.3)),d.push(l({x:e,y:t,w:n,d:i,r:1},x+3,o,{tone:`mid`},2,.3));let c=[];for(let s=x+5;s<x+3+o-1;s+=2.4)c.push(r.segment([e+2,t+i,s],[e+n-2,t+i,s],a));d.push(s(c.join(``),{tone:`faint`}));let u=x+3+o;for(let o of[e+n*.3,e+n*.7]){let e=t+i/2,n=[r.ring(o,e,i*.36,u,a,24),r.ring(o,e,i*.16,u,a,16)];for(let t=0;t<4;t++){let s=t/4*Math.PI*2+.4;n.push(r.segment([o+Math.cos(s)*i*.16,e+Math.sin(s)*i*.16,u],[o+Math.cos(s)*i*.36,e+Math.sin(s)*i*.36,u],a))}d.push(s(n.join(``),{tone:`mid`}))}};ee(t.x+12,t.y+t.d-52,34,18,10),ee(t.x+60,t.y+t.d-44,34,18,10),d.push(u(t.x+t.w-16,t.y+22,4,x,11,{tone:`mid`},20),u(t.x+t.w-16,t.y+22,5,x+10.4,1.6,{tone:`mid`},20),l({x:t.x+14,y:t.y+14,w:14,d:10,r:.8},x,5,{tone:`mid`},2,.3));let _=t.x+6;d.push(l({x:_-1.4,y:f,w:24.8,d:.8,r:.2},0,31.8,{tone:`lo`},2,0),`<g transform="${e.front(f+.9)}"><path class="sf-plate" d="M${_} -30H${_+22}V0H${_}Z"/>${Array.from({length:9},(e,t)=>`<path class="iso-line" data-tone="faint" d="M${_} ${-(3+t*3)}H${_+22}"/>`).join(``)}<path class="iso-line" data-tone="mid" d="M${_} -30H${_+22}V0H${_}Z"/></g>`,l({x:_,y:f+.8,w:22,d:1,r:.2},0,2.4,{tone:`mid`},2,0)),d.push(l({x:_-1,y:f,w:24,d:.9,r:.2},38,16,{tone:`lo`},2,0));let te=[];for(let e=40;e<53.5;e+=1.8)te.push(r.segment([_+.6,f+.9,e],[_+22-.6,f+.9,e],a));d.push(s(te.join(``),{tone:`mid`})),d.push(u(_+22+3.6,f+1.2,1.2,28,2.2,{tone:`mid`},10));let v=t.y+36;d.push(l({x:p,y:v-1.2,w:.9,d:12.4,r:.2},0,25,{tone:`lo`},2,0),l({x:p+.9,y:v,w:.5,d:10,r:.2},0,22.4,{tone:`mid`},2,0),l({x:p,y:v-3,w:4.4,d:16,r:.4},26,1.4,{tone:`mid`},2,.2),u(p+1.4,v+12.4,1.1,14,2,{tone:`mid`},10)),d.push(s(r.segment([p+1.4,v+1.2,13],[p+1.4,v+1.2,19],a)+r.segment([p+1.4,v+2,3],[p+1.4,v+9,3],a),{tone:`hi`}));let ne=t.y+72;d.push(l({x:p,y:ne,w:.9,d:30,r:.2},22,26,{tone:`lo`},2,0));let re=[];for(let e=24;e<47.5;e+=1.8)re.push(r.segment([p+.9,ne+1.4,e],[p+.9,ne+28.6,e],a));d.push(s(re.join(``),{tone:`mid`}));for(let{x:t,z:r,r:s}of n){let n=i.frameAlong([t,f,r],[0,1,0]);d.push(o(i.disc(0,1.2,s+2.8,n,a),{tone:`mid`}),o(i.disc(1.2,ke,s+1.4,n,a),{tone:`mid`}),c([0,1,2,3,4,5].map(n=>e.at([t+Math.cos(n*1.047)*(s+2),f+1.2,r+Math.sin(n*1.047)*(s+2)])),{size:.4}))}return d.join(``)}function je(e,t){let{k:n,P:r,L:i,slab:a}=e,o=[];for(let e of t){o.push(a(e,0,1.4,{tone:`lo`},2,.2));let t=[];if(e.w>=e.d)for(let i=e.x+9;i<e.x+e.w-2;i+=9)t.push(n.lineOnTop([i,e.y+.8],[i,e.y+e.d-.8],1.5,r));else for(let i=e.y+9;i<e.y+e.d-2;i+=9)t.push(n.lineOnTop([e.x+.8,i],[e.x+e.w-.8,i],1.5,r));o.push(i(t.join(``)+n.planOutline(n.insetPlan(e,.8),1.5,r,2),{tone:`faint`}))}return o.join(``)}function Me(e,t,n,r){let{k:i,P:a,S:o,L:s,slab:c}=e,l=[],u=t.y+t.d;for(let e=t.x+14;e<t.x+t.w-4;e+=14)l.push(i.segment([e,u,3],[e,u,n-5],a));let d=[o(i.slabOf(t,0,n,a,2,.4),{tone:`lo`,inner:s(l.join(``)+i.sideSeam(t,4,a,2),{tone:`faint`})}),c({x:t.x-1.5,y:t.y-1.5,w:t.w+3,d:t.d+3,r:.4},n,2.2,{tone:`mid`},2,.2)];for(let t of r){let r=[];for(let e=22;e<=n-12;e+=3)r.push(`<path class="iso-line" data-tone="lo" d="M${t-20} ${-e}H${t+20}"/>`);d.push(`<g transform="${e.front(u+.1)}"><path class="sf-plate" d="M${t-21} ${-(n-9)}H${t+21}V-18H${t-21}Z"/>${r.join(``)}</g>`)}return d.join(``)}function Ne(e,t,n){let{k:r,P:i,slab:a,L:o}=e,s=(n===`back`?[{x:t.x,y:t.y,w:t.w,d:3,r:.4},{x:t.x,y:t.y+3,w:3,d:t.d-6,r:.4}]:[{x:t.x,y:t.y+t.d-3,w:t.w,d:3,r:.4},{x:t.x+t.w-3,y:t.y+3,w:3,d:t.d-6,r:.4}]).map(e=>a(e,0,9,{tone:`mid`},2,.3));return n===`front`&&s.push(o(r.segment([t.x+3,t.y+t.d,4.4],[t.x+t.w,t.y+t.d,4.4],i)+r.segment([t.x+t.w,t.y+3,4.4],[t.x+t.w,t.y+t.d,4.4],i),{tone:`faint`})),s.join(``)}function Pe(e,[t,n,r]){let{G:i,P:a,S:o,cyl:s,slab:c,screws:l}=e,u=i.frameAlong([t,n,r],[0,1,0]);return[o(i.solidOf([[0,3.8],[1.6,5.2],[2.6,5.2],[3.6,4.2],[10.4,4.2],[11.4,5.2],[12.4,5.2],[14,3.8]],u,a),{tone:`mid`}),s(t,n+14/2,2.4,r+3.6,6,{tone:`mid`,crease:`none`},14),c({x:t-4.6,y:n+14/2-3.6,w:9.2,d:7.2,r:1},r+9.6,9,{tone:`mid`},2,.4),s(t,n+14/2,2.6,r+18.6,1.8,{tone:`lo`},14),l([[t-3.4,n+14/2+3.7],[t+3.4,n+14/2+3.7]],r+15)].join(``)}var S=16,C=56,Fe=3;function Ie(e,t,n,r){let{faceRule:i}=e,a=S-3,o=C-12,s=n+1.5,c=`<g transform="${e.front(t)}"><path class="iso-line" data-tone="lo" d="M${s} ${-o}H${s+a}V-5H${s}Z"/>`,l=``;if(r===0)l+=`<path class="sf-plate" d="M${s+2} ${-(o-3)}H${s+a-2}V${-(o-19)}H${s+2}Z"/>`,l+=`<path class="iso-line" data-tone="mid" d="M${s+4} ${-(o-6)}H${s+a/2}M${s+a-4} ${-(o-6)}H${s+a/2}M${s+a/2} ${-(o-6)}V${-(o-16)}"/>`;else if(r===1)for(let e=0;e<3;e++)l+=`<path class="sf-plate" d="M${s+2} ${-(o-4-e*9)}H${s+a-2}V${-(o-10-e*9)}H${s+2}Z"/><path class="iso-line" data-tone="mid" d="M${s+a/2-2} ${-(o-7-e*9)}H${s+a/2+2}"/>`;else for(let e=0;e<8;e++)l+=`<path class="iso-line" data-tone="faint" d="M${s+2} ${-(o-3-e*2.4)}H${s+a-2}"/>`;let u=`<path class="iso-line" data-tone="hi" d="M${s+a-2.6} -19V-27"/>`;return`${c}${l}${u}</g>${i(t,s+2,7,a-4,4)}`}function Le(e,t,n){let{k:r,P:i,L:a,slab:o,cyl:s,screws:c}=e,l=[],u=t.y+t.d;l.push(o({x:t.x-2,y:t.y-2,w:t.w+4,d:t.d+4,r:1},0,2,{tone:`lo`},2,.2));for(let n=0;n<Fe;n++){let d=t.x+n*S,f={x:d,y:t.y,w:S,d:t.d,r:.6};l.push(o(f,2,C-2,{tone:`mid`},2,.4)),l.push(o({x:d+1,y:t.y+1,w:S-2,d:t.d-2,r:.6},C,3,{tone:`mid`},2,.3)),l.push(a(r.segment([d+4,u-4,C+3.2],[d+S-4,u-4,C+3.2],i),{tone:`faint`}),s(d+3,t.y+4,1,C+3,2,{tone:`mid`},10),s(d+S-3,t.y+4,1,C+3,2,{tone:`mid`},10)),l.push(Ie(e,u,d,n)),l.push(c([[d+1.4,u-.2],[d+S-1.4,u-.2]],C-2))}let d=t.x+t.w-8,f=t.y+t.d/2-4,p=C+3.4,m=[];for(let e=d+2;e<n-1;e+=3)m.push(r.segment([e,f+.6,p+.6],[e,f+7.4,p+.6],i));return l.push(o({x:d,y:f,w:n-d,d:.9,r:.2},p,2,{tone:`mid`},2,.1),o({x:d,y:f+7.1,w:n-d,d:.9,r:.2},p,2,{tone:`mid`},2,.1),a(m.join(``),{tone:`mid`}),s(n-6,f+4,.9,0,p,{tone:`mid`,crease:`none`},10),o({x:n-8.6,y:f+1.4,w:5.2,d:5.2,r:.5},0,1.2,{tone:`lo`},2,.1),o({x:n-1.6,y:f-.6,w:1.6,d:9.2,r:.3},p-1,4,{tone:`mid`},2,.1)),l.join(``)}var Re={x:-15,y:0,w:30,d:14,r:1.5},w=30,T=12.5,ze=2.2,E=11;function Be(e,t){let{k:n,G:r,P:i,L:a,D:o,S:s,slab:c,cyl:l,screws:u,faceRule:d}=e,f=[],p=r.frameAlong([0,0,w],[0,1,0]);f.push(c({x:-15,y:0,w:30,d:9,r:1},0,1.4,{tone:`lo`},2,.3)),f.push(u(n.corners({x:-15,y:0,w:30,d:9},1.6),1.4));for(let e of[-11,8])f.push(c({x:e,y:0,w:3,d:7,r:.5},1.4,w-15-1.4+.4,{tone:`mid`},2,.2));f.push(c({x:-14.5,y:0,w:29,d:ze,r:1},w-15,30,{tone:`mid`},2,.3)),f.push(o([[-12.4,13.2],[12.4,13.2],[-12.4,-13.2],[12.4,-13.2]].map(([e=0,t=0])=>n.iso([e,ze+.1,w+t],i)),{size:.45})),f.push(s(r.disc(ze,E,T,p,i),{tone:`mid`}));for(let e of[5.4,8.2])f.push(a(n.sideRing([0,e,w],T,`y`,i,32),{tone:`faint`}));f.push(s(r.disc(E-1.8,E,T+1.2,p,i),{tone:`mid`})),f.push(s(r.disc(E-.4,E,T-1.6,p,i),{tone:`lo`})),f.push(`<path class="gs-blade" data-vfan="0,${E+.3},${w},${T-2.6}" data-top="0,${E},${w+T+4}" data-bearing="0,${E-3},${w+T}" d=""/>`),f.push(s(r.disc(E,E+2.4,3,p,i),{tone:`mid`}),s(r.disc(E+2.2,E+3,1.6,p,i),{tone:`lo`}));let m=[],h=E+1.6;for(let e of[5.5,T-2])m.push(n.sideRing([0,h,w],e,`y`,i,28));for(let e=0;e<8;e++){let t=e/8*Math.PI*2;m.push(n.segment([Math.cos(t)*3,h,w+Math.sin(t)*3],[Math.cos(t)*(T-2),h,w+Math.sin(t)*(T-2)],i))}return f.push(a(m.join(``),{tone:`mid`})),f.push(c({x:-4.5,y:3,w:9,d:6,r:.8},w+T-.6,6,{tone:`mid`},2,.3),l(0,6,1.1,w+T+5.4,2.2,{tone:`mid`},10),d(9.1,-3,w+T+1,6,2.4)),f.join(``)}var Ve=1e3,He={x:-500,y:-395,w:810,d:189,r:8},Ue={x:-380,y:-120,w:680,d:180,r:8},We={x:-520,y:-415,w:850,d:495,r:16},Ge=r([...s(We,-21,-14),...s(He,-14,140),...s(Ue,-14,100)],Ve,620,{pad:22,azimuth:60}),Ke=-300,D=[[-268,Ke],[-108,Ke],[52,Ke]],qe=(e,t)=>[e[0]+t[0],e[1]+t[1],t[2]],Je=e=>qe(D[e]??[0,0],me),Ye=e=>qe(D[e]??[0,0],_e),Xe={x:-340,y:-338,w:470,d:4,r:0},O=[-434,-340],Ze={r:32,h:104,nozzles:[{angle:90,z:14,r:2,role:`outlet`}]},k={x:-486,y:-392,w:104,d:104,r:0},A=[-434,-232],j={r:17,h:62,windowX:8,panelX:-26,nozzles:[{angle:270,z:14,r:2,role:`inlet`},{angle:0,z:7,r:2,role:`outlet`}]},M=A[0],Qe=-284,$e={x:132,y:-330,w:48,d:25,r:1},N={x:204,y:-395,w:104,d:145,r:2},et=[293,N.y+N.d],tt=[-202,-135,0],nt=[[-65,-62],[-169,-62]],rt=[-34,36.6,40],it=[-20,36.6,40],at=[94,-130,0],ot=.8,st=[[47,36],[157,36]],ct=e=>[(e[0]-at[0])*ot,(e[1]-at[1])*ot,e[2]*ot],lt=ct(ee),ut=ct(u),dt=[{x:-318,y:-262,w:462,d:8,r:0},...D.map(([e])=>({x:e-48,y:-290,w:6,d:32,r:0})),{x:137,y:-308,w:6,d:54,r:0}],ft=[-67,-132,0],pt=[-292,-62],mt=[-110,-114,24],ht=we([...D.map((e,t)=>({key:`gen${t}`,at:e,h:126})),{key:`bund-back`,at:[O[0],k.y+2],h:12},{key:`bulk`,at:O,h:Ze.h+12},{key:`bund-front`,at:[O[0],k.y+k.d-2],h:12},{key:`valve`,at:[M,Qe+7],h:30},{key:`day`,at:A,h:j.h+12},{key:`vent`,at:[et[0],et[1]+6],h:50},{key:`lineup`,at:[$e.x+$e.w/2,$e.y+$e.d/2],h:62},{key:`hall`,at:[N.x+N.w/2,N.y+N.d/2],h:76},...nt.map((e,t)=>({key:`chiller${t}`,at:e,h:56})),...st.map((e,t)=>({key:`pump${t}`,at:e,h:45*ot})),{key:`compressor`,at:pt,h:46}],Ge),gt=ht.order,_t=ht.slotDepths,vt=ht.depth,yt=(e,t)=>[e[0]+t[0],e[1]+t[1],t[2]],P=(e,t,n,r)=>[t??e[0],n??e[1],r??e[2]],bt=(e,t,n)=>{let r=e.nozzles[n];return r?yt(t,Se(e,r)):[0,0,0]},F=6,xt=bt(Ze,O,0),St=bt(j,A,0),Ct=bt(j,A,1),I=Ct[1],[wt,Tt,Et]=[0,1,2].map(Je),[L,Dt,Ot]=[0,1,2].map(Ye),kt=Qe+14,At=-366,R=-250,z=L[2],jt=16,Mt=[pt[0]+mt[0]-ft[0],pt[1]+mt[1]-ft[1],mt[2]],Nt=Mt[1]+jt,[B=[0,0],Pt=[0,0]]=nt,[V=[0,0],H=[0,0]]=st,U=e=>yt(e,ut),W=e=>yt(e,lt),G=e=>yt(e,rt),K=e=>yt(e,it),q=W(V)[2],J=B[1]+61,Y=72,X=B[1]+48,Ft=84,It=V[1]-34,Lt=W(H)[0]+13,Rt=W(V)[0]+8,zt=6,Bt=K(B)[0]+40,Vt=N.y+N.d+ke,Ht=[{id:`xfer:a`,medium:`fuel`,r:2,pts:[xt,[M,Qe,14]]},{id:`xfer:b`,medium:`fuel`,r:2,pts:[[M,kt,14],St]},{id:`fuel:all`,medium:`fuel`,r:2,pts:[Ct,[wt[0],I,F]]},{id:`fuel:bc`,medium:`fuel`,r:2,pts:[[wt[0],I,F],[Tt[0],I,F]]},{id:`fuel:c`,medium:`fuel`,r:2,pts:[[Tt[0],I,F],[Et[0],I,F],Et]},{id:`fuel:a`,medium:`fuel`,r:2,pts:[[wt[0],I,F],wt]},{id:`fuel:b`,medium:`fuel`,r:2,pts:[[Tt[0],I,F],Tt]},{id:`air:main`,medium:`air`,r:b,bend:8,pts:[Mt,P(Mt,null,Nt,null),[At,Nt,Mt[2]],[At,Nt,z],[At,R,z],[L[0],R,z]]},{id:`air:ab`,medium:`air`,r:b,pts:[[L[0],R,z],[Dt[0],R,z]]},{id:`air:c`,medium:`air`,r:b,pts:[[Dt[0],R,z],[Ot[0],R,z],Ot]},{id:`air:a`,medium:`air`,r:b,pts:[[L[0],R,z],L]},{id:`air:b`,medium:`air`,r:b,pts:[[Dt[0],R,z],Dt]},{id:`suction`,medium:`coolantret`,r:2.6,pts:[[265,Vt,q],[265,It,q],[Lt,It,q]]},{id:`suction:standby`,medium:`coolantret`,r:2.6,pts:[[Lt,It,q],P(W(H),Lt,null,null),W(H)]},{id:`suction:duty`,medium:`coolantret`,r:2.6,pts:[[Lt,It,q],[Rt,It,q],P(W(V),Rt,null,null),W(V)]},...[[`a`,B],[`b`,Pt]].map(([e,t])=>({id:`out:${e}`,medium:`coolant`,r:2.2,pts:[K(t),P(K(t),null,X,null),P(K(t),null,X,Ft)]})),{id:`chws:b`,medium:`coolant`,r:2.6,blind:[!0,!1],pts:[[K(Pt)[0]-zt,X,Ft],[K(B)[0],X,Ft]]},{id:`chws`,medium:`coolant`,r:2.6,pts:[[K(B)[0],X,Ft],[Bt,X,Ft],[Bt,X,40],[240,X,40],[240,Vt,40]]},...[[`duty`,V],[`standby`,H]].map(([e,t])=>({id:`discharge:${e}`,medium:`coolantret`,r:2.6,fromStub:!0,pts:[U(t),P(U(t),null,null,Y),P(U(t),null,J,Y)]})),{id:`header:standby`,medium:`coolantret`,r:2.6,blind:[!0,!1],pts:[[U(H)[0]+zt,J,Y],[U(V)[0],J,Y]]},{id:`header`,medium:`coolantret`,r:2.6,pts:[[U(V)[0],J,Y],[G(B)[0],J,Y]]},{id:`header:b`,medium:`coolantret`,r:2.6,blind:[!1,!0],pts:[[G(B)[0],J,Y],[G(Pt)[0]-zt,J,Y]]},...[[`a`,B],[`b`,Pt]].map(([e,t])=>({id:`in:${e}`,medium:`coolantret`,r:2.2,pts:[P(G(t),null,J,Y),P(G(t),null,J,null),G(t)]}))],Ut=(e,t)=>[He,Ue].some(n=>e>=n.x&&e<=n.x+n.w&&t>=n.y&&t<=n.y+n.d),Z=(e,t,n,r)=>[e,t,n,r,Ut(e,t)?0:-14],Wt={z:10,flanged:!0,routes:Ht,posts:[...[-395,-330,-215,-60].map(e=>Z(e,I,2,F)),Z(M,-294,2,14),...[-70,-140,-190,R].map(e=>Z(At,e,b,z)),...[-300,-155,10].map(e=>Z(e,R,b,z)),...[-225,-150,-90,-35].map(e=>Z(240,e,2.6,40)),...[-225,-150,-90,-35,20].map(e=>Z(265,e,2.6,q)),...[-20,100,215].map(e=>Z(e,X,2.6,40)),...[-150,-20,130].map(e=>Z(e,J,2.6,Y))]},Q=n(),Gt={x:-248,y:-164,w:92,d:58,r:3},Kt={x:-136,y:-152,w:138,d:40,r:3},qt=xe(Ze),Jt=xe(j),Yt=(e,t)=>p(e,t,`coolantret`,!0),Xt=(e,t)=>be(e,t,Ze),Zt=(e,t)=>be(e,t,j),Qt=(e,t)=>fe(e,t,{barFull:10,dialFull:12}),$t=e=>Ae(e,N,[{x:240,z:40,r:2.6},{x:265,z:lt[2],r:2.6}]),en=e=>Le(e,$e,N.x),tn=e=>Pe(e,[M,Qe,14]),nn=e=>Ne(e,k,`back`),rn=e=>Ne(e,k,`front`);function an({ids:e}){let t=a(),n=f(Wt,vt),r=(0,Oe.useMemo)(()=>h(t,We)+t.plinth(He)+t.plinth(Ue)+je(t,dt)+Me(t,Xe,62,D.map(([e])=>e)),[t]),s=e=>(0,Q.jsx)(i,{html:`${n.layers[e]??``}<g data-flows="${e}" data-depth="${e===0?-1e9:_t[e-1]??0}"></g>`,data:{pipes:``}},`pipes-${e}`),c=[e.genA,e.genB,e.genC],l={"bund-back":(0,Q.jsx)(g,{build:nn,intro:1}),bulk:(0,Q.jsx)(`g`,{className:`fuel-tank`,children:(0,Q.jsx)(d,{to:y(O),children:(0,Q.jsx)(o,{id:e.bulk,plan:qt,intro:2,draw:Xt})})}),"bund-front":(0,Q.jsx)(g,{build:rn,intro:2}),valve:(0,Q.jsx)(g,{build:tn,intro:3}),day:(0,Q.jsx)(`g`,{className:`fuel-tank`,children:(0,Q.jsx)(d,{to:y(A),children:(0,Q.jsx)(o,{id:e.day,plan:Jt,intro:3,draw:Zt})})}),vent:(0,Q.jsx)(d,{to:y(et),children:(0,Q.jsx)(o,{id:e.fan,plan:Re,intro:9,draw:Be})}),lineup:(0,Q.jsx)(g,{build:en,intro:8}),hall:(0,Q.jsx)(g,{build:$t,intro:8}),compressor:(0,Q.jsx)(d,{from:ft,to:y(pt),children:(0,Q.jsx)(o,{id:e.compressor,plan:Kt,intro:13,draw:Qt})})};for(let[e,t]of D.entries())l[`gen${e}`]=(0,Q.jsx)(`g`,{className:`gen-set`,children:(0,Q.jsx)(d,{to:y(t),children:(0,Q.jsx)(o,{id:c[e]??``,plan:ge,intro:4+e,draw:ve})})});for(let[t,n]of nt.entries())l[`chiller${t}`]=(0,Q.jsx)(d,{from:tt,to:y(n),children:(0,Q.jsx)(o,{id:t?e.chillerB:e.chillerA,plan:Gt,intro:10+t,draw:ue})});for(let[t,n]of st.entries())l[`pump${t}`]=(0,Q.jsx)(d,{from:at,to:y(n),scale:ot,children:(0,Q.jsx)(o,{id:t?e.pumpB:e.pumpA,plan:ae,intro:12+t,draw:Yt})});return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(i,{html:r,data:{plinth:``}}),s(0),gt.flatMap((e,t)=>[(0,Q.jsx)(`g`,{children:l[e.key]},e.key),s(t+1)])]})}var $=e=>e>.002?6+26*re(e*2):0,on=e=>{let{svg:t,feed:n,ids:r}=e,i=ne(t),a=ye(e,i),o=Ce(e),s=de(e,i),c=ce(e,i),l=pe(e,i),u=[a,o,s,c,l,he(e,i)],d=ie(e,e=>oe(n,e,`availability`)),f=se(e,{needle:e=>l.needle(e)??s.needle(e)??0,bar:e=>u.reduce((t,n)=>t??n.bar(e),void 0)??0,alertsHigh:()=>!0,ready:()=>!0}),p=()=>{let e=n.param(r.day,`max_inflow_lps`,0);return e>0?re(n.num(r.day,`inflow_rate`)/e):0},m=(...e)=>re(e.reduce((e,t)=>e+a.fuelPu(t),0)),h=()=>c.flowPu(r.pumpA)+c.flowPu(r.pumpB),g=e=>{let t=[r.chillerA,r.chillerB].filter(e=>n.num(e,`coolant_flow_rate`)>0);return t.includes(e)?h()/t.length:0},ee=v(e,({id:e})=>{switch(e){case`xfer:a`:case`xfer:b`:return $(p());case`fuel:all`:return $(m(r.genA,r.genB,r.genC));case`fuel:bc`:return $(m(r.genB,r.genC));case`fuel:c`:return $(m(r.genC));case`fuel:a`:return $(m(r.genA));case`fuel:b`:return $(m(r.genB));case`air:main`:case`air:ab`:case`air:c`:case`air:a`:case`air:b`:return $(l.deliveredPu(r.compressor));case`suction`:case`chws`:case`header`:return $(h());case`suction:duty`:case`discharge:duty`:return $(c.flowPu(r.pumpA));case`suction:standby`:case`discharge:standby`:case`header:standby`:return $(c.flowPu(r.pumpB));case`in:a`:case`out:a`:return $(g(r.chillerA));case`in:b`:case`out:b`:case`header:b`:case`chws:b`:return $(g(r.chillerB));default:return 0}});return{data(e){d.draw(e)},draw({sdt:e,t,introDone:n}){ee.draw(e),f.draw(e,t);for(let r of u)r.draw(e,t,n)},resync(){},status:e=>le(n,e,`availability`)}},sn=_(Ge),cn=m(sn,Wt,vt),ln=te({layout:{width:Ve,height:620,label:`Isometric model of the Backup Power facility: along the back, the fuel yard with its bulk tank in a bund and the day tank, three diesel gen sets side by side with their exhaust stacks and radiators, the electrical lineup and the data hall they back up; along the front, the start-air compressor, two chillers and two chilled-water pumps whose loop runs to the hall. Pipes carry fuel, start air and chilled water between them. Every moving part follows live values from the running engine.`,kit:sn,flows:cn.flows,joints:cn.joints,Scene:an,compose:on},resolve:Ee,things:De,caption:`generation · fuel · cooling`,mismatch:`This floor expects the Backup Power facility: three diesel gensets, the bulk and day fuel tanks, two chillers with two chilled-water pumps, the start-air compressor and the hall ventilation motor, by area and line.`,statusBasis:`availability`,Overview:c,tab:`Plant`});export{ln as backupFloor};
|
|
1
|
+
import{a as e}from"./rolldown-runtime-COnpUsM8.js";import{c as t}from"./vendor-charts-95ykyDlI.js";import{ot as n}from"./vendor-ui-D8j69UH4.js";import{b as r,d as i,f as a,l as o,m as s}from"./dom-CQuChC3G.js";import{n as c,t as l}from"./by-path-e6y8DTMV.js";import{A as u,D as d,E as f,F as p,H as m,L as h,O as g,P as ee,V as _,X as te,a as v,b as ne,g as re,i as ie,j as ae,k as y,n as oe,o as se,r as ce,t as le}from"./status-DNfdEhTs.js";import{r as ue,t as de}from"./chiller-Jug0vRg-.js";import{n as fe,t as pe}from"./compressor-BkWNdwvy.js";import{a as me,i as b,n as he,o as ge,r as _e,s as ve,t as ye}from"./genset-DBpkUT9p.js";import{i as be,n as xe,r as Se,t as Ce}from"./tank-xgQfMS2d.js";import{t as we}from"./stages-C0cErwSQ.js";var Te=[[`genA`,`diesel-generator`,`power`,`gensets`,0],[`genB`,`diesel-generator`,`power`,`gensets`,1],[`genC`,`diesel-generator`,`power`,`gensets`,2],[`bulk`,`storage-tank`,`fuel`,`storage`,0],[`day`,`storage-tank`,`fuel`,`storage`,1],[`chillerA`,`industrial-chiller`,`cooling`,`chiller-plant`,0],[`chillerB`,`industrial-chiller`,`cooling`,`chiller-plant`,1],[`pumpA`,`centrifugal-pump`,`cooling`,`chilled-water`,0],[`pumpB`,`centrifugal-pump`,`cooling`,`chilled-water`,1],[`compressor`,`air-compressor`,`support`,`start-air`,0],[`fan`,`ac-induction-motor`,`support`,`ventilation`,0]],Ee=e=>l(Te,e);function De(e){let t=(e,t,n)=>({key:e,assetId:e,name:t,kind:`utility`,area:n});return[t(e.genA,`Genset A (primary)`,`Power`),t(e.genB,`Genset B`,`Power`),t(e.genC,`Genset C (reserve)`,`Power`),t(e.bulk,`Bulk fuel tank`,`Fuel`),t(e.day,`Day tank`,`Fuel`),t(e.chillerA,`Chiller A`,`Cooling`),t(e.chillerB,`Chiller B`,`Cooling`),t(e.pumpA,`Chilled-water pump 1`,`Cooling`),t(e.pumpB,`Chilled-water pump 2`,`Cooling`),t(e.compressor,`Start-air compressor`,`Support`),t(e.fan,`Hall ventilation fan`,`Support`)]}var Oe=e(t(),1),x=64,ke=2.2;function Ae(e,t,n){let{k:r,G:i,P:a,S:o,L:s,D:c,slab:l,cyl:u}=e,d=[],f=t.y+t.d,p=t.x+t.w,m=e=>s(e,{tone:`faint`}),h=[];for(let e=t.x+11;e<p-4;e+=11)h.push(r.segment([e,f,3],[e,f,x-9],a));for(let e=t.y+11;e<f-4;e+=11)h.push(r.segment([p,e,3],[p,e,x-9],a));let g=[];for(let e of[x-7,x-5,x-3])g.push(r.segment([t.x+4,f,e],[p-4,f,e],a)),g.push(r.segment([p,t.y+4,e],[p,f-4,e],a));d.push(l({x:t.x-1.6,y:t.y-1.6,w:t.w+3.2,d:t.d+3.2,r:2},0,3,{tone:`lo`},2,.3)),d.push(o(r.slabOf(t,0,x,a,2,.6),{tone:`lo`,inner:m(h.join(``))+s(g.join(``),{tone:`lo`})+m(r.sideSeam(t,3,a,2))})),d.push(s(r.planOutline(r.insetPlan(t,2),x,a,2),{tone:`lo`}));let ee=(e,t,n,i,o)=>{d.push(l({x:e-1,y:t-1,w:n+2,d:i+2,r:1},x,3,{tone:`lo`},2,.3)),d.push(l({x:e,y:t,w:n,d:i,r:1},x+3,o,{tone:`mid`},2,.3));let c=[];for(let s=x+5;s<x+3+o-1;s+=2.4)c.push(r.segment([e+2,t+i,s],[e+n-2,t+i,s],a));d.push(s(c.join(``),{tone:`faint`}));let u=x+3+o;for(let o of[e+n*.3,e+n*.7]){let e=t+i/2,n=[r.ring(o,e,i*.36,u,a,24),r.ring(o,e,i*.16,u,a,16)];for(let t=0;t<4;t++){let s=t/4*Math.PI*2+.4;n.push(r.segment([o+Math.cos(s)*i*.16,e+Math.sin(s)*i*.16,u],[o+Math.cos(s)*i*.36,e+Math.sin(s)*i*.36,u],a))}d.push(s(n.join(``),{tone:`mid`}))}};ee(t.x+12,t.y+t.d-52,34,18,10),ee(t.x+60,t.y+t.d-44,34,18,10),d.push(u(t.x+t.w-16,t.y+22,4,x,11,{tone:`mid`},20),u(t.x+t.w-16,t.y+22,5,x+10.4,1.6,{tone:`mid`},20),l({x:t.x+14,y:t.y+14,w:14,d:10,r:.8},x,5,{tone:`mid`},2,.3));let _=t.x+6;d.push(l({x:_-1.4,y:f,w:24.8,d:.8,r:.2},0,31.8,{tone:`lo`},2,0),`<g transform="${e.front(f+.9)}"><path class="sf-plate" d="M${_} -30H${_+22}V0H${_}Z"/>${Array.from({length:9},(e,t)=>`<path class="iso-line" data-tone="faint" d="M${_} ${-(3+t*3)}H${_+22}"/>`).join(``)}<path class="iso-line" data-tone="mid" d="M${_} -30H${_+22}V0H${_}Z"/></g>`,l({x:_,y:f+.8,w:22,d:1,r:.2},0,2.4,{tone:`mid`},2,0)),d.push(l({x:_-1,y:f,w:24,d:.9,r:.2},38,16,{tone:`lo`},2,0));let te=[];for(let e=40;e<53.5;e+=1.8)te.push(r.segment([_+.6,f+.9,e],[_+22-.6,f+.9,e],a));d.push(s(te.join(``),{tone:`mid`})),d.push(u(_+22+3.6,f+1.2,1.2,28,2.2,{tone:`mid`},10));let v=t.y+36;d.push(l({x:p,y:v-1.2,w:.9,d:12.4,r:.2},0,25,{tone:`lo`},2,0),l({x:p+.9,y:v,w:.5,d:10,r:.2},0,22.4,{tone:`mid`},2,0),l({x:p,y:v-3,w:4.4,d:16,r:.4},26,1.4,{tone:`mid`},2,.2),u(p+1.4,v+12.4,1.1,14,2,{tone:`mid`},10)),d.push(s(r.segment([p+1.4,v+1.2,13],[p+1.4,v+1.2,19],a)+r.segment([p+1.4,v+2,3],[p+1.4,v+9,3],a),{tone:`hi`}));let ne=t.y+72;d.push(l({x:p,y:ne,w:.9,d:30,r:.2},22,26,{tone:`lo`},2,0));let re=[];for(let e=24;e<47.5;e+=1.8)re.push(r.segment([p+.9,ne+1.4,e],[p+.9,ne+28.6,e],a));d.push(s(re.join(``),{tone:`mid`}));for(let{x:t,z:r,r:s}of n){let n=i.frameAlong([t,f,r],[0,1,0]);d.push(o(i.disc(0,1.2,s+2.8,n,a),{tone:`mid`}),o(i.disc(1.2,ke,s+1.4,n,a),{tone:`mid`}),c([0,1,2,3,4,5].map(n=>e.at([t+Math.cos(n*1.047)*(s+2),f+1.2,r+Math.sin(n*1.047)*(s+2)])),{size:.4}))}return d.join(``)}function je(e,t){let{k:n,P:r,L:i,slab:a}=e,o=[];for(let e of t){o.push(a(e,0,1.4,{tone:`lo`},2,.2));let t=[];if(e.w>=e.d)for(let i=e.x+9;i<e.x+e.w-2;i+=9)t.push(n.lineOnTop([i,e.y+.8],[i,e.y+e.d-.8],1.5,r));else for(let i=e.y+9;i<e.y+e.d-2;i+=9)t.push(n.lineOnTop([e.x+.8,i],[e.x+e.w-.8,i],1.5,r));o.push(i(t.join(``)+n.planOutline(n.insetPlan(e,.8),1.5,r,2),{tone:`faint`}))}return o.join(``)}function Me(e,t,n,r){let{k:i,P:a,S:o,L:s,slab:c}=e,l=[],u=t.y+t.d;for(let e=t.x+14;e<t.x+t.w-4;e+=14)l.push(i.segment([e,u,3],[e,u,n-5],a));let d=[o(i.slabOf(t,0,n,a,2,.4),{tone:`lo`,inner:s(l.join(``)+i.sideSeam(t,4,a,2),{tone:`faint`})}),c({x:t.x-1.5,y:t.y-1.5,w:t.w+3,d:t.d+3,r:.4},n,2.2,{tone:`mid`},2,.2)];for(let t of r){let r=[];for(let e=22;e<=n-12;e+=3)r.push(`<path class="iso-line" data-tone="lo" d="M${t-20} ${-e}H${t+20}"/>`);d.push(`<g transform="${e.front(u+.1)}"><path class="sf-plate" d="M${t-21} ${-(n-9)}H${t+21}V-18H${t-21}Z"/>${r.join(``)}</g>`)}return d.join(``)}function Ne(e,t,n){let{k:r,P:i,slab:a,L:o}=e,s=(n===`back`?[{x:t.x,y:t.y,w:t.w,d:3,r:.4},{x:t.x,y:t.y+3,w:3,d:t.d-6,r:.4}]:[{x:t.x,y:t.y+t.d-3,w:t.w,d:3,r:.4},{x:t.x+t.w-3,y:t.y+3,w:3,d:t.d-6,r:.4}]).map(e=>a(e,0,9,{tone:`mid`},2,.3));return n===`front`&&s.push(o(r.segment([t.x+3,t.y+t.d,4.4],[t.x+t.w,t.y+t.d,4.4],i)+r.segment([t.x+t.w,t.y+3,4.4],[t.x+t.w,t.y+t.d,4.4],i),{tone:`faint`})),s.join(``)}function Pe(e,[t,n,r]){let{G:i,P:a,S:o,cyl:s,slab:c,screws:l}=e,u=i.frameAlong([t,n,r],[0,1,0]);return[o(i.solidOf([[0,3.8],[1.6,5.2],[2.6,5.2],[3.6,4.2],[10.4,4.2],[11.4,5.2],[12.4,5.2],[14,3.8]],u,a),{tone:`mid`}),s(t,n+14/2,2.4,r+3.6,6,{tone:`mid`,crease:`none`},14),c({x:t-4.6,y:n+14/2-3.6,w:9.2,d:7.2,r:1},r+9.6,9,{tone:`mid`},2,.4),s(t,n+14/2,2.6,r+18.6,1.8,{tone:`lo`},14),l([[t-3.4,n+14/2+3.7],[t+3.4,n+14/2+3.7]],r+15)].join(``)}var S=16,C=56,Fe=3;function Ie(e,t,n,r){let{faceRule:i}=e,a=S-3,o=C-12,s=n+1.5,c=`<g transform="${e.front(t)}"><path class="iso-line" data-tone="lo" d="M${s} ${-o}H${s+a}V-5H${s}Z"/>`,l=``;if(r===0)l+=`<path class="sf-plate" d="M${s+2} ${-(o-3)}H${s+a-2}V${-(o-19)}H${s+2}Z"/>`,l+=`<path class="iso-line" data-tone="mid" d="M${s+4} ${-(o-6)}H${s+a/2}M${s+a-4} ${-(o-6)}H${s+a/2}M${s+a/2} ${-(o-6)}V${-(o-16)}"/>`;else if(r===1)for(let e=0;e<3;e++)l+=`<path class="sf-plate" d="M${s+2} ${-(o-4-e*9)}H${s+a-2}V${-(o-10-e*9)}H${s+2}Z"/><path class="iso-line" data-tone="mid" d="M${s+a/2-2} ${-(o-7-e*9)}H${s+a/2+2}"/>`;else for(let e=0;e<8;e++)l+=`<path class="iso-line" data-tone="faint" d="M${s+2} ${-(o-3-e*2.4)}H${s+a-2}"/>`;let u=`<path class="iso-line" data-tone="hi" d="M${s+a-2.6} -19V-27"/>`;return`${c}${l}${u}</g>${i(t,s+2,7,a-4,4)}`}function Le(e,t,n){let{k:r,P:i,L:a,slab:o,cyl:s,screws:c}=e,l=[],u=t.y+t.d;l.push(o({x:t.x-2,y:t.y-2,w:t.w+4,d:t.d+4,r:1},0,2,{tone:`lo`},2,.2));for(let n=0;n<Fe;n++){let d=t.x+n*S,f={x:d,y:t.y,w:S,d:t.d,r:.6};l.push(o(f,2,C-2,{tone:`mid`},2,.4)),l.push(o({x:d+1,y:t.y+1,w:S-2,d:t.d-2,r:.6},C,3,{tone:`mid`},2,.3)),l.push(a(r.segment([d+4,u-4,C+3.2],[d+S-4,u-4,C+3.2],i),{tone:`faint`}),s(d+3,t.y+4,1,C+3,2,{tone:`mid`},10),s(d+S-3,t.y+4,1,C+3,2,{tone:`mid`},10)),l.push(Ie(e,u,d,n)),l.push(c([[d+1.4,u-.2],[d+S-1.4,u-.2]],C-2))}let d=t.x+t.w-8,f=t.y+t.d/2-4,p=C+3.4,m=[];for(let e=d+2;e<n-1;e+=3)m.push(r.segment([e,f+.6,p+.6],[e,f+7.4,p+.6],i));return l.push(o({x:d,y:f,w:n-d,d:.9,r:.2},p,2,{tone:`mid`},2,.1),o({x:d,y:f+7.1,w:n-d,d:.9,r:.2},p,2,{tone:`mid`},2,.1),a(m.join(``),{tone:`mid`}),s(n-6,f+4,.9,0,p,{tone:`mid`,crease:`none`},10),o({x:n-8.6,y:f+1.4,w:5.2,d:5.2,r:.5},0,1.2,{tone:`lo`},2,.1),o({x:n-1.6,y:f-.6,w:1.6,d:9.2,r:.3},p-1,4,{tone:`mid`},2,.1)),l.join(``)}var Re={x:-15,y:0,w:30,d:14,r:1.5},w=30,T=12.5,ze=2.2,E=11;function Be(e,t){let{k:n,G:r,P:i,L:a,D:o,S:s,slab:c,cyl:l,screws:u,faceRule:d}=e,f=[],p=r.frameAlong([0,0,w],[0,1,0]);f.push(c({x:-15,y:0,w:30,d:9,r:1},0,1.4,{tone:`lo`},2,.3)),f.push(u(n.corners({x:-15,y:0,w:30,d:9},1.6),1.4));for(let e of[-11,8])f.push(c({x:e,y:0,w:3,d:7,r:.5},1.4,w-15-1.4+.4,{tone:`mid`},2,.2));f.push(c({x:-14.5,y:0,w:29,d:ze,r:1},w-15,30,{tone:`mid`},2,.3)),f.push(o([[-12.4,13.2],[12.4,13.2],[-12.4,-13.2],[12.4,-13.2]].map(([e=0,t=0])=>n.iso([e,ze+.1,w+t],i)),{size:.45})),f.push(s(r.disc(ze,E,T,p,i),{tone:`mid`}));for(let e of[5.4,8.2])f.push(a(n.sideRing([0,e,w],T,`y`,i,32),{tone:`faint`}));f.push(s(r.disc(E-1.8,E,T+1.2,p,i),{tone:`mid`})),f.push(s(r.disc(E-.4,E,T-1.6,p,i),{tone:`lo`})),f.push(`<path class="gs-blade" data-vfan="0,${E+.3},${w},${T-2.6}" data-top="0,${E},${w+T+4}" data-bearing="0,${E-3},${w+T}" d=""/>`),f.push(s(r.disc(E,E+2.4,3,p,i),{tone:`mid`}),s(r.disc(E+2.2,E+3,1.6,p,i),{tone:`lo`}));let m=[],h=E+1.6;for(let e of[5.5,T-2])m.push(n.sideRing([0,h,w],e,`y`,i,28));for(let e=0;e<8;e++){let t=e/8*Math.PI*2;m.push(n.segment([Math.cos(t)*3,h,w+Math.sin(t)*3],[Math.cos(t)*(T-2),h,w+Math.sin(t)*(T-2)],i))}return f.push(a(m.join(``),{tone:`mid`})),f.push(c({x:-4.5,y:3,w:9,d:6,r:.8},w+T-.6,6,{tone:`mid`},2,.3),l(0,6,1.1,w+T+5.4,2.2,{tone:`mid`},10),d(9.1,-3,w+T+1,6,2.4)),f.join(``)}var Ve=1e3,He={x:-500,y:-395,w:810,d:189,r:8},Ue={x:-380,y:-120,w:680,d:180,r:8},We={x:-520,y:-415,w:850,d:495,r:16},Ge=r([...s(We,-21,-14),...s(He,-14,140),...s(Ue,-14,100)],Ve,620,{pad:22,azimuth:60}),Ke=-300,D=[[-268,Ke],[-108,Ke],[52,Ke]],qe=(e,t)=>[e[0]+t[0],e[1]+t[1],t[2]],Je=e=>qe(D[e]??[0,0],me),Ye=e=>qe(D[e]??[0,0],_e),Xe={x:-340,y:-338,w:470,d:4,r:0},O=[-434,-340],Ze={r:32,h:104,nozzles:[{angle:90,z:14,r:2,role:`outlet`}]},k={x:-486,y:-392,w:104,d:104,r:0},A=[-434,-232],j={r:17,h:62,windowX:8,panelX:-26,nozzles:[{angle:270,z:14,r:2,role:`inlet`},{angle:0,z:7,r:2,role:`outlet`}]},M=A[0],Qe=-284,$e={x:132,y:-330,w:48,d:25,r:1},N={x:204,y:-395,w:104,d:145,r:2},et=[293,N.y+N.d],tt=[-202,-135,0],nt=[[-65,-62],[-169,-62]],rt=[-34,36.6,40],it=[-20,36.6,40],at=[94,-130,0],ot=.8,st=[[47,36],[157,36]],ct=e=>[(e[0]-at[0])*ot,(e[1]-at[1])*ot,e[2]*ot],lt=ct(ee),ut=ct(u),dt=[{x:-318,y:-262,w:462,d:8,r:0},...D.map(([e])=>({x:e-48,y:-290,w:6,d:32,r:0})),{x:137,y:-308,w:6,d:54,r:0}],ft=[-67,-132,0],pt=[-292,-62],mt=[-110,-114,24],ht=we([...D.map((e,t)=>({key:`gen${t}`,at:e,h:126})),{key:`bund-back`,at:[O[0],k.y+2],h:12},{key:`bulk`,at:O,h:Ze.h+12},{key:`bund-front`,at:[O[0],k.y+k.d-2],h:12},{key:`valve`,at:[M,Qe+7],h:30},{key:`day`,at:A,h:j.h+12},{key:`vent`,at:[et[0],et[1]+6],h:50},{key:`lineup`,at:[$e.x+$e.w/2,$e.y+$e.d/2],h:62},{key:`hall`,at:[N.x+N.w/2,N.y+N.d/2],h:76},...nt.map((e,t)=>({key:`chiller${t}`,at:e,h:56})),...st.map((e,t)=>({key:`pump${t}`,at:e,h:45*ot})),{key:`compressor`,at:pt,h:46}],Ge),gt=ht.order,_t=ht.slotDepths,vt=ht.depth,yt=(e,t)=>[e[0]+t[0],e[1]+t[1],t[2]],P=(e,t,n,r)=>[t??e[0],n??e[1],r??e[2]],bt=(e,t,n)=>{let r=e.nozzles[n];return r?yt(t,Se(e,r)):[0,0,0]},F=6,xt=bt(Ze,O,0),St=bt(j,A,0),Ct=bt(j,A,1),I=Ct[1],[wt,Tt,Et]=[0,1,2].map(Je),[L,Dt,Ot]=[0,1,2].map(Ye),kt=Qe+14,At=-366,R=-250,z=L[2],jt=16,Mt=[pt[0]+mt[0]-ft[0],pt[1]+mt[1]-ft[1],mt[2]],Nt=Mt[1]+jt,[B=[0,0],Pt=[0,0]]=nt,[V=[0,0],H=[0,0]]=st,U=e=>yt(e,ut),W=e=>yt(e,lt),G=e=>yt(e,rt),K=e=>yt(e,it),q=W(V)[2],J=B[1]+61,Y=72,X=B[1]+48,Ft=84,It=V[1]-34,Lt=W(H)[0]+13,Rt=W(V)[0]+8,zt=6,Bt=K(B)[0]+40,Vt=N.y+N.d+ke,Ht=[{id:`xfer:a`,medium:`fuel`,r:2,pts:[xt,[M,Qe,14]]},{id:`xfer:b`,medium:`fuel`,r:2,pts:[[M,kt,14],St]},{id:`fuel:all`,medium:`fuel`,r:2,pts:[Ct,[wt[0],I,F]]},{id:`fuel:bc`,medium:`fuel`,r:2,pts:[[wt[0],I,F],[Tt[0],I,F]]},{id:`fuel:c`,medium:`fuel`,r:2,pts:[[Tt[0],I,F],[Et[0],I,F],Et]},{id:`fuel:a`,medium:`fuel`,r:2,pts:[[wt[0],I,F],wt]},{id:`fuel:b`,medium:`fuel`,r:2,pts:[[Tt[0],I,F],Tt]},{id:`air:main`,medium:`air`,r:b,bend:8,pts:[Mt,P(Mt,null,Nt,null),[At,Nt,Mt[2]],[At,Nt,z],[At,R,z],[L[0],R,z]]},{id:`air:ab`,medium:`air`,r:b,pts:[[L[0],R,z],[Dt[0],R,z]]},{id:`air:c`,medium:`air`,r:b,pts:[[Dt[0],R,z],[Ot[0],R,z],Ot]},{id:`air:a`,medium:`air`,r:b,pts:[[L[0],R,z],L]},{id:`air:b`,medium:`air`,r:b,pts:[[Dt[0],R,z],Dt]},{id:`suction`,medium:`coolantret`,r:2.6,pts:[[265,Vt,q],[265,It,q],[Lt,It,q]]},{id:`suction:standby`,medium:`coolantret`,r:2.6,pts:[[Lt,It,q],P(W(H),Lt,null,null),W(H)]},{id:`suction:duty`,medium:`coolantret`,r:2.6,pts:[[Lt,It,q],[Rt,It,q],P(W(V),Rt,null,null),W(V)]},...[[`a`,B],[`b`,Pt]].map(([e,t])=>({id:`out:${e}`,medium:`coolant`,r:2.2,pts:[K(t),P(K(t),null,X,null),P(K(t),null,X,Ft)]})),{id:`chws:b`,medium:`coolant`,r:2.6,blind:[!0,!1],pts:[[K(Pt)[0]-zt,X,Ft],[K(B)[0],X,Ft]]},{id:`chws`,medium:`coolant`,r:2.6,pts:[[K(B)[0],X,Ft],[Bt,X,Ft],[Bt,X,40],[240,X,40],[240,Vt,40]]},...[[`duty`,V],[`standby`,H]].map(([e,t])=>({id:`discharge:${e}`,medium:`coolantret`,r:2.6,fromStub:!0,pts:[U(t),P(U(t),null,null,Y),P(U(t),null,J,Y)]})),{id:`header:standby`,medium:`coolantret`,r:2.6,blind:[!0,!1],pts:[[U(H)[0]+zt,J,Y],[U(V)[0],J,Y]]},{id:`header`,medium:`coolantret`,r:2.6,pts:[[U(V)[0],J,Y],[G(B)[0],J,Y]]},{id:`header:b`,medium:`coolantret`,r:2.6,blind:[!1,!0],pts:[[G(B)[0],J,Y],[G(Pt)[0]-zt,J,Y]]},...[[`a`,B],[`b`,Pt]].map(([e,t])=>({id:`in:${e}`,medium:`coolantret`,r:2.2,pts:[P(G(t),null,J,Y),P(G(t),null,J,null),G(t)]}))],Ut=(e,t)=>[He,Ue].some(n=>e>=n.x&&e<=n.x+n.w&&t>=n.y&&t<=n.y+n.d),Z=(e,t,n,r)=>[e,t,n,r,Ut(e,t)?0:-14],Wt={z:10,flanged:!0,routes:Ht,posts:[...[-395,-330,-215,-60].map(e=>Z(e,I,2,F)),Z(M,-294,2,14),...[-70,-140,-190,R].map(e=>Z(At,e,b,z)),...[-300,-155,10].map(e=>Z(e,R,b,z)),...[-225,-150,-90,-35].map(e=>Z(240,e,2.6,40)),...[-225,-150,-90,-35,20].map(e=>Z(265,e,2.6,q)),...[-20,100,215].map(e=>Z(e,X,2.6,40)),...[-150,-20,130].map(e=>Z(e,J,2.6,Y))]},Q=n(),Gt={x:-248,y:-164,w:92,d:58,r:3},Kt={x:-136,y:-152,w:138,d:40,r:3},qt=xe(Ze),Jt=xe(j),Yt=(e,t)=>p(e,t,`coolantret`,!0),Xt=(e,t)=>be(e,t,Ze),Zt=(e,t)=>be(e,t,j),Qt=(e,t)=>fe(e,t,{barFull:10,dialFull:12}),$t=e=>Ae(e,N,[{x:240,z:40,r:2.6},{x:265,z:lt[2],r:2.6}]),en=e=>Le(e,$e,N.x),tn=e=>Pe(e,[M,Qe,14]),nn=e=>Ne(e,k,`back`),rn=e=>Ne(e,k,`front`);function an({ids:e}){let t=a(),n=f(Wt,vt),r=(0,Oe.useMemo)(()=>h(t,We)+t.plinth(He)+t.plinth(Ue)+je(t,dt)+Me(t,Xe,62,D.map(([e])=>e)),[t]),s=e=>(0,Q.jsx)(i,{html:`${n.layers[e]??``}<g data-flows="${e}" data-depth="${e===0?-1e9:_t[e-1]??0}"></g>`,data:{pipes:``}},`pipes-${e}`),c=[e.genA,e.genB,e.genC],l={"bund-back":(0,Q.jsx)(g,{build:nn,intro:1}),bulk:(0,Q.jsx)(`g`,{className:`fuel-tank`,children:(0,Q.jsx)(d,{to:y(O),children:(0,Q.jsx)(o,{id:e.bulk,plan:qt,intro:2,draw:Xt})})}),"bund-front":(0,Q.jsx)(g,{build:rn,intro:2}),valve:(0,Q.jsx)(g,{build:tn,intro:3}),day:(0,Q.jsx)(`g`,{className:`fuel-tank`,children:(0,Q.jsx)(d,{to:y(A),children:(0,Q.jsx)(o,{id:e.day,plan:Jt,intro:3,draw:Zt})})}),vent:(0,Q.jsx)(d,{to:y(et),children:(0,Q.jsx)(o,{id:e.fan,plan:Re,intro:9,draw:Be})}),lineup:(0,Q.jsx)(g,{build:en,intro:8}),hall:(0,Q.jsx)(g,{build:$t,intro:8}),compressor:(0,Q.jsx)(d,{from:ft,to:y(pt),children:(0,Q.jsx)(o,{id:e.compressor,plan:Kt,intro:13,draw:Qt})})};for(let[e,t]of D.entries())l[`gen${e}`]=(0,Q.jsx)(`g`,{className:`gen-set`,children:(0,Q.jsx)(d,{to:y(t),children:(0,Q.jsx)(o,{id:c[e]??``,plan:ge,intro:4+e,draw:ve})})});for(let[t,n]of nt.entries())l[`chiller${t}`]=(0,Q.jsx)(d,{from:tt,to:y(n),children:(0,Q.jsx)(o,{id:t?e.chillerB:e.chillerA,plan:Gt,intro:10+t,draw:ue})});for(let[t,n]of st.entries())l[`pump${t}`]=(0,Q.jsx)(d,{from:at,to:y(n),scale:ot,children:(0,Q.jsx)(o,{id:t?e.pumpB:e.pumpA,plan:ae,intro:12+t,draw:Yt})});return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(i,{html:r,data:{plinth:``}}),s(0),gt.flatMap((e,t)=>[(0,Q.jsx)(`g`,{children:l[e.key]},e.key),s(t+1)])]})}var $=e=>e>.002?6+26*re(e*2):0,on=e=>{let{svg:t,feed:n,ids:r}=e,i=ne(t),a=ye(e,i),o=Ce(e),s=de(e,i),c=ce(e,i),l=pe(e,i),u=[a,o,s,c,l,he(e,i)],d=ie(e,e=>oe(n,e,`availability`)),f=se(e,{needle:e=>l.needle(e)??s.needle(e)??0,bar:e=>u.reduce((t,n)=>t??n.bar(e),void 0)??0,alertsHigh:()=>!0,ready:()=>!0}),p=()=>{let e=n.param(r.day,`max_inflow_lps`,0);return e>0?re(n.num(r.day,`inflow_rate`)/e):0},m=(...e)=>re(e.reduce((e,t)=>e+a.fuelPu(t),0)),h=()=>c.flowPu(r.pumpA)+c.flowPu(r.pumpB),g=e=>{let t=[r.chillerA,r.chillerB].filter(e=>n.num(e,`coolant_flow_rate`)>0);return t.includes(e)?h()/t.length:0},ee=v(e,({id:e})=>{switch(e){case`xfer:a`:case`xfer:b`:return $(p());case`fuel:all`:return $(m(r.genA,r.genB,r.genC));case`fuel:bc`:return $(m(r.genB,r.genC));case`fuel:c`:return $(m(r.genC));case`fuel:a`:return $(m(r.genA));case`fuel:b`:return $(m(r.genB));case`air:main`:case`air:ab`:case`air:c`:case`air:a`:case`air:b`:return $(l.deliveredPu(r.compressor));case`suction`:case`chws`:case`header`:return $(h());case`suction:duty`:case`discharge:duty`:return $(c.flowPu(r.pumpA));case`suction:standby`:case`discharge:standby`:case`header:standby`:return $(c.flowPu(r.pumpB));case`in:a`:case`out:a`:return $(g(r.chillerA));case`in:b`:case`out:b`:case`header:b`:case`chws:b`:return $(g(r.chillerB));default:return 0}});return{data(e){d.draw(e)},draw({sdt:e,t,introDone:n}){ee.draw(e),f.draw(e,t);for(let r of u)r.draw(e,t,n)},resync(){},status:e=>le(n,e,`availability`)}},sn=_(Ge),cn=m(sn,Wt,vt),ln=te({layout:{width:Ve,height:620,label:`Isometric model of the Backup Power facility: along the back, the fuel yard with its bulk tank in a bund and the day tank, three diesel gen sets side by side with their exhaust stacks and radiators, the electrical lineup and the data hall they back up; along the front, the start-air compressor, two chillers and two chilled-water pumps whose loop runs to the hall. Pipes carry fuel, start air and chilled water between them. Every moving part follows live values from the running engine.`,kit:sn,flows:cn.flows,joints:cn.joints,Scene:an,compose:on},resolve:Ee,things:De,caption:`generation · fuel · cooling`,mismatch:`This floor expects the Backup Power facility: three diesel gensets, the bulk and day fuel tanks, two chillers with two chilled-water pumps, the start-air compressor and the hall ventilation motor, by area and line.`,statusBasis:`availability`,Overview:c,tab:`Plant`});export{ln as backupFloor};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as e,a as t,c as n,n as r,s as i}from"./dom-
|
|
1
|
+
import{C as e,a as t,c as n,n as r,s as i}from"./dom-CQuChC3G.js";import{C as a,S as o,T as s,_ as c,c as l,g as u,p as d,s as f,w as p,x as m}from"./status-DNfdEhTs.js";var h=26,g=20,_=-58,v=98,y=[-48,0,112],b=6,x=[22,0,h+g+8],S=[-26,0,h+g+8],C={x:-64,y:-24,w:140,d:52,r:3},w=y;function T(e,t,n,r){let{k:i,G:a,P:o,at:s,S:c,L:l,D:u,slab:d,cyl:f,hmi:p,screws:m,dial:C,faceRule:w}=e,T=[];T.push(d({x:-62,y:-22,w:136,d:44,r:2},0,4,{tone:`lo`},3,.4)),T.push(m(i.corners({x:-62,y:-22,w:136,d:44},2.6),4));for(let e of[-40,22])T.push(d({x:e-5,y:-16,w:10,d:32,r:1},4,10,{tone:`mid`},2,.4));let[E,D,O]=y;T.push(f(E,D,b+1.2,h+8,4,{tone:`mid`},28),f(E,D,b,h+12,O-h-14,{tone:`mid`,inner:l([.3,.6].map(e=>i.sideArc(E,D,b,h+12+(O-h)*e,o,24)).join(``),{tone:`faint`})},28),f(E,D,b+1.4,O-2,2,{tone:`mid`},28),r===void 0?`<path class="sf-void" d="${i.pathOf(i.circleRing(E,D,b-.8,28).map(([e,t])=>s([e,t,O])),!0)}"/>`:``);let k=a.frameAlong([_,0,h],[1,0,0]),A=[[0,0],[.8,9,1],[2.4,15,1],[4.4,18.6,1],[7,g],[v-1.4,g],[v-.6,g-.8,1],[v,0]],j=[16,34,52,70,88].map(e=>a.arcOf(k,e,g,o)).join(``);T.push(c(a.solidOf(A,k,o),{tone:`mid`,inner:l(j,{tone:`faint`})})),T.push(d({x:-8,y:g-1.4,w:16,d:1.4,r:.3},h-3,6,{tone:`lo`},2,0));for(let[e,,t]of[S,x])T.push(f(e,0,3.4,h+g-2,t-h-g+.4,{tone:`mid`},20)),T.push(f(e,0,5.4,t-1.6,1.6,{tone:`mid`},24));for(let e of[-4,4])T.push(f(e,-6,2,h+g-1,5,{tone:`mid`},14),f(e,-6,1.2,h+g+4,4,{tone:`mid`},12),f(e,-6,2.2,h+g+8,1.4,{tone:`mid`},14));T.push(f(8,8,1,h+g-2,7,{tone:`mid`,crease:`none`},12)),T.push(C(t,8,8,h+g+5,5));let M=a.frameAlong([_+v,0,h],[1,0,0]);T.push(c(a.disc(0,3,12,M,o),{tone:`mid`}),c(a.disc(3,4.6,14,M,o),{tone:`mid`})),T.push(u(a.dotsOf(M,4.6,12.6,10,o,{all:!0}),{size:.4}));let N=_+v+4.6;T.push(d({x:N,y:-10,w:22,d:20,r:2},h-12,22,{tone:`mid`},3,.5)),T.push(f(N+14,-1,7,h+10,5,{tone:`mid`},28)),T.push(l(i.ring(N+14,-1,4.4,h+15,o,28),{tone:`lo`})),T.push(f(N+6,-13,1.4,4,h-6,{tone:`mid`,crease:`none`},12)),T.push(d({x:N+3,y:-16,w:6,d:6,r:.8},h-14,5,{tone:`mid`},2,.3));let P=N+11,F=h-1,I=a.frameAlong([P,10,F],[0,1,0]);T.push(c(a.disc(0,.8,5.4,I,o),{tone:`mid`})),T.push(u(a.dotsOf(I,.8,4.6,6,o,{all:!0}),{size:.3}));let L=e=>i.pathOf(i.circleRing(P,F,e,24).map(([e,t])=>s([e,10.8,t])),!0);T.push(`<path class="bl-window" d="${L(3.6)}"/>`,`<path class="bl-flame" data-flame="${P},10,${F}" data-plume="${E},${D},${r??O}" data-dial-full="${n}" d="${L(2.5)}"/>`,l(L(3.6),{tone:`lo`}));let R=a.frameAlong([-34,16,9],[1,0,0]);return T.push(c(a.solidOf([[0,4.4],[.6,5],[14,5],[14.6,4.4]],R,o),{tone:`mid`,inner:i.fadedSvg(a.ribsOf(R,1,13,5,12,o,{fade:[.1,.55]}),{tone:`lo`})})),T.push(c(a.disc(15,19,6.4,R,o),{tone:`mid`})),T.push(`<path class="iso-line" data-tone="lo" data-spin="circ" data-shaft="-34,16,9" data-radius="3" data-span="-19.4,-19" d=""/>`),T.push(d({x:30,y:22,w:30,d:6,r:1},0,30,{tone:`mid`},2,.4)),T.push(p(t,28,32,58,12,28)),T.push(w(28,32,4,20,2.4)),T.join(``)}var E=.105,D=7;function O(h,g){let{svg:_,P:v,feed:y}=h,b=(e,t)=>y.num(e,t),x=r(_,`[data-flame]`).map(e=>{let t=f(e),n=a(_,t),o=r(_,`[data-asset="${t}"] [data-spin="circ"]`)[0],[c=0,u=0]=i(o?.dataset.span);return{el:e,id:t,plume:l(e.dataset.plume),dialFull:Number(e.dataset.dialFull)||6,circ:o,circAt:l(o?.dataset.shaft),circR:Number(o?.dataset.radius)||0,c0:c,c1:u,fire:0,rate:0,spin:0,puffs:s(n,9,`circle`,`sf-steam bl-vapour`),heat:m(n,3,3)}}),S=new Map(x.map(e=>[e.id,e])),C=e=>b(e,`running`)>0?u(b(e,`firing_rate`)/100):0;return{draw(r,i,a){let s=h.reducedMotion();for(let l of x){l.fire=c(l.fire,C(l.id),r,1.2,s);let f=a&&p(y,l.id,`flame_instability`),m=s?1:f?Math.max(0,.55+.45*Math.sin(i*23)*Math.sin(i*7.3))*(Math.sin(i*1.7)>.8?.1:1):.92+.08*Math.sin(i*17+l.id.length);l.el.style.opacity=(l.fire>.01?(.35+.65*l.fire)*m:0).toFixed(2);let h=u(b(l.id,`fuel_flow`)/(y.param(l.id,`rated_output_kw`,500)*E)),[_,x,S]=l.plume;for(let n of l.puffs){let r=(i*(.18+.12*h)+n.seed)%1;if(!a||s||h<.02||n.seed>.25+h){t(n.el,`0`);continue}let[c,l]=e([_+r*9+Math.sin(i+n.seed*9)*1.5,x-r*3,S+2+r*26],v);o(n.el,c,l),n.el.setAttribute(`r`,((2+r*7)*v.scale*.5).toFixed(2)),t(n.el,(Math.sin(Math.PI*r)*(.18+.22*h)).toFixed(2))}l.heat.draw(a&&!s&&p(y,l.id,`scale_buildup`)&&l.fire>.05,i,v,[_-3,x,S]),l.rate=c(l.rate,b(l.id,`circulation_pump_running`)>0?D:0,r,.8,s),s||(l.spin+=l.rate*r),l.circ&&n(l.circ,`d`,d(v,`x`,l.circAt,l.circR,l.c0,l.c1,l.spin,6)),g(l.id,a&&!s&&f?.25:0,i)}},bar(e){return S.has(e)?C(e):void 0},needle(e){let t=S.get(e);return t?b(t.id,`system_pressure`)/t.dialFull:void 0},firingPu:C,circulating:e=>b(e,`circulation_pump_running`)>0}}export{x as a,w as i,C as n,T as o,S as r,O as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ot as e}from"./vendor-ui-D8j69UH4.js";import{ot as t}from"./api-BG2sUkwk.js";import{a as n,i as r,n as i,t as a}from"./status-kit-pFRjEjVU.js";var o=e(),s={g:`live`,a:`idle`,r:`fault`,"":`off`};function c({name:e,level:t}){return(0,o.jsxs)(`li`,{className:`flex items-center gap-3`,children:[(0,o.jsx)(`span`,{className:`w-28 shrink-0 truncate text-xs text-muted-foreground`,children:e}),(0,o.jsx)(`span`,{className:`h-1.5 min-w-0 flex-1 overflow-hidden rounded-full bg-muted`,children:(0,o.jsx)(`span`,{className:`block h-full rounded-full bg-info`,style:{width:`${Math.max(0,Math.min(100,t))}%`}})}),(0,o.jsxs)(`span`,{className:`w-10 shrink-0 text-right font-mono text-[11px] tabular-nums`,children:[t.toFixed(0),` %`]})]})}function l({things:e,status:l,onSelect:u}){let d=t(e=>e.memberValues),f=e.map(e=>({thing:e,status:l(e.key)})),p=f.filter(e=>e.status[1]===`r`).length,m=f.filter(e=>e.status[0]===`stopped`).length,h=f.length-p-m,g=e.flatMap(e=>{let t=d.get(e.assetId)?.get(`level_percent`)?.value;return typeof t==`number`?[{name:e.name,level:t}]:[]}),_=[...new Set(e.map(e=>e.area??``))];return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(`div`,{className:`grid grid-cols-3 gap-3 px-4 pt-4 pb-5`,children:[(0,o.jsx)(a,{label:`Online`,value:String(h)}),(0,o.jsx)(a,{label:`Stopped`,value:String(m)}),(0,o.jsx)(a,{label:`Faulted`,value:String(p)})]}),g.length>0?(0,o.jsx)(r,{title:`Levels`,note:`live`,children:(0,o.jsx)(`ul`,{className:`flex flex-col gap-2.5`,children:g.map(e=>(0,o.jsx)(c,{name:e.name,level:e.level},e.name))})}):null,_.map(e=>(0,o.jsx)(r,{title:e,note:`flow order`,children:(0,o.jsx)(`ul`,{className:`-mx-2 flex flex-col`,children:f.filter(t=>(t.thing.area??``)===e).map(({thing:e,status:[t,r]})=>(0,o.jsx)(i,{tone:s[r],name:e.name,note:n(t),onSelect:()=>u(e.key)},e.key))})},e))]})}function u(e,{template:t,assets:n}){let r=new Set(t.assetIds),i=n.filter(e=>r.has(e.id)),a=new Map;for(let[,t,n,r]of e){let e=`${t}|${n}|${r}`;a.set(e,(a.get(e)??0)+1)}let o={};for(let[t,n,r,s,c]of e){let e=i.filter(e=>e.model===n&&e.browsePath?.[2]===r&&e.browsePath?.[3]===s).map(e=>e.id).sort(),l=e[c];if(!l||e.length!==a.get(`${n}|${r}|${s}`))return{status:`mismatch`};o[t]=l}return{status:`ready`,ids:o}}export{l as n,u as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./catalog-DOGCbTe4.js";export{e as CatalogPage};
|