From 9e66f7b3e44339c4dd43e88db304f14d5cfb9ec5 Mon Sep 17 00:00:00 2001 From: mfe-deploy Date: Tue, 14 Jul 2026 18:20:20 +0000 Subject: [PATCH] =?UTF-8?q?ABC=20audit=20MFE=20drop=20=E2=80=94=20app/inde?= =?UTF-8?q?x.json=20+=20abc-audit=20iife/staging=20(C14=20deploy)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 63 ++++++++++++++++++++++++++++- app/abc-audit/abc-audit.iife.js | 28 +++++++++++++ app/abc-audit/audit-tree/index.html | 47 +++++++++++++++++++++ app/index.json | 34 ++++++++++++++++ 4 files changed, 171 insertions(+), 1 deletion(-) create mode 100644 app/abc-audit/abc-audit.iife.js create mode 100644 app/abc-audit/audit-tree/index.html create mode 100644 app/index.json diff --git a/README.md b/README.md index e1222cf..4ab40bf 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,63 @@ -# mfe-index +# ABC Audit — app-shell MFE Plugin drop +This folder makes the **ABC Audit** service appear in the app-shell **Plugin +Library** (`/library`) and open **in-shell**, authed by the user's app-shell +session — the Class-2 MFE-plugin path (the app-shell has no Class-3 "Services" +registry; it embeds MFE bundles). + +## What the app-shell expects (contract) + +The app-shell `/library` page reads a multi-MFE **`index.json`** manifest +(schema `doxa-1040-maps-mfe-index@1`) via `GET /api/_library`, which scans the +source configured by the server env var: + +``` +NUXT_MFE_INDEX_SOURCE= # a local path to this folder / its index.json, OR an http(s) URL +NUXT_PUBLIC_MFE_LIBRARY_ENABLED=true # already set on the DT app-shell (turns /library on) +``` + +Each **bundle** in the manifest is an **IIFE** that registers a **custom +element**; the shell embeds it as ``. The +`/library` "View" action opens the profile's `embed` staging page. + +## Layout + +``` +mfe-index/ + index.json manifest (static, checked in) + build.sh assembles the drop (builds the IIFE, copies it in) + abc-audit/ + abc-audit.iife.js BUILT — self-mounting (see build.sh) + audit-tree/index.html staging "View" page — loader-injects-token +``` + +`abc-audit.iife.js` is **built, not committed** (the builder sandbox has no npm). +Run `./build.sh` on any host with npm (the deploy host / BUILD-GATE) to produce it. + +## The auth wire (C1 — no second login) + +The token is **never baked** into the bundle. The staging page injects it at +runtime (priority: `?tk=` → `window.__MFE_TOKEN__` → baked `profile-config.tk`) +and the API base the same way (`?api=` → `window.__ABC_API_URL__` → `apiUrl`). +The custom element writes the token to `localStorage['abc_dev_token']` and sets +the API host before the Vue app's first `getTree()` — so the tree loads live +under the user's tenant with no re-login. The token is the **app-shell-signed +HS256 JWT**; the running ABC API verifies it with the same +`APP_SHELL_JWT_SECRET` (C1 wire, already live). + +The app-shell's library "View" href must therefore be given `?tk=` +and `?api=` for a specific deployment — or a host wrapper sets +`window.__MFE_TOKEN__` / `window.__ABC_API_URL__` before loading the bundle. + +## Deploy steps (coordinator / deploy-side) + +1. `cd abc-audit-service/mfe-index && ./build.sh` → produces `abc-audit/abc-audit.iife.js` +2. Serve this `mfe-index/` folder (static) OR push it to Forgejo raw. +3. Set on the app-shell container: + `NUXT_MFE_INDEX_SOURCE=/index.json` and recreate the app-shell. +4. Log into `:3000` → `/library` shows **ABC Audit** → View → the audit tree opens + in-shell (44 audits render), no second login. + +No app-shell **code** change is needed — `NUXT_MFE_INDEX_SOURCE` is deploy +config. (If in-shell mounting ever needs shell code, STOP and coordinate the +authoritative app-shell tree with qa-coord/pm-1040-maps.) diff --git a/app/abc-audit/abc-audit.iife.js b/app/abc-audit/abc-audit.iife.js new file mode 100644 index 0000000..4033812 --- /dev/null +++ b/app/abc-audit/abc-audit.iife.js @@ -0,0 +1,28 @@ +var AbcAuditMfe=function(){"use strict";var Ct=typeof document<"u"?document.currentScript:null;/** +* @vue/shared v3.5.39 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function it(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ee=process.env.NODE_ENV!=="production"?Object.freeze({}):{},Dt=process.env.NODE_ENV!=="production"?Object.freeze([]):[],pe=()=>{},is=()=>!1,Ht=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Bt=e=>e.startsWith("onUpdate:"),se=Object.assign,no=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},yr=Object.prototype.hasOwnProperty,G=(e,t)=>yr.call(e,t),j=Array.isArray,bt=e=>Ut(e)==="[object Map]",rs=e=>Ut(e)==="[object Set]",as=e=>Ut(e)==="[object Date]",H=e=>typeof e=="function",oe=e=>typeof e=="string",He=e=>typeof e=="symbol",z=e=>e!==null&&typeof e=="object",oo=e=>(z(e)||H(e))&&H(e.then)&&H(e.catch),ls=Object.prototype.toString,Ut=e=>ls.call(e),so=e=>Ut(e).slice(8,-1),_n=e=>Ut(e)==="[object Object]",io=e=>oe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Wt=it(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),wr=it("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),yn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},xr=/-\w/g,ve=yn(e=>e.replace(xr,t=>t.slice(1).toUpperCase())),Er=/\B([A-Z])/g,De=yn(e=>e.replace(Er,"-$1").toLowerCase()),wn=yn(e=>e.charAt(0).toUpperCase()+e.slice(1)),_t=yn(e=>e?`on${wn(e)}`:""),Ye=(e,t)=>!Object.is(e,t),Kt=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},Nr=e=>{const t=parseFloat(e);return isNaN(t)?e:t},cs=e=>{const t=oe(e)?Number(e):NaN;return isNaN(t)?e:t};let ds;const qt=()=>ds||(ds=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Vt(e){if(j(e)){const t={};for(let n=0;n{if(n){const o=n.split(Or);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function Be(e){let t="";if(oe(e))t=e;else if(j(e))for(let n=0;n!!(e&&e.__v_isRef===!0),ie=e=>oe(e)?e:e==null?"":j(e)||z(e)&&(e.toString===ls||!H(e.toString))?fs(e)?ie(e.value):JSON.stringify(e,ps,2):String(e),ps=(e,t)=>fs(t)?ps(e,t.value):bt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,s],i)=>(n[ao(o,i)+" =>"]=s,n),{})}:rs(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>ao(n))}:He(t)?ao(t):z(t)&&!j(t)&&!_n(t)?String(t):t,ao=(e,t="")=>{var n;return He(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.5.39 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Ue(e,...t){console.warn(`[Vue warn] ${e}`,...t)}let be;class Mr{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&be&&(be.active?(this.parent=be,this.index=(be.scopes||(be.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0){if(be===this)be=this.prevScope;else{let t=be;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,o;for(n=0,o=this.effects.length;n0)return;if(zt){let t=zt;for(zt=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Gt;){let t=Gt;for(Gt=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=n}}if(e)throw e}function vs(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function bs(e){let t,n=e.depsTail,o=n;for(;o;){const s=o.prevDep;o.version===-1?(o===n&&(n=s),po(o),Fr(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=s}e.deps=t,e.depsTail=n}function fo(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(_s(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function _s(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Jt)||(e.globalVersion=Jt,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!fo(e))))return;e.flags|=2;const t=e.dep,n=X,o=We;X=e,We=!0;try{vs(e);const s=e.fn(e._value);(t.version===0||Ye(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{X=n,We=o,bs(e),e.flags&=-3}}function po(e,t=!1){const{dep:n,prevSub:o,nextSub:s}=e;if(o&&(o.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=o,e.nextSub=void 0),process.env.NODE_ENV!=="production"&&n.subsHead===e&&(n.subsHead=s),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let i=n.computed.deps;i;i=i.nextDep)po(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Fr(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let We=!0;const ys=[];function Ie(){ys.push(We),We=!1}function Me(){const e=ys.pop();We=e===void 0?!0:e}function ws(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=X;X=void 0;try{t()}finally{X=n}}}let Jt=0;class Lr{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class ho{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0,process.env.NODE_ENV!=="production"&&(this.subsHead=void 0)}track(t){if(!X||!We||X===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==X)n=this.activeLink=new Lr(X,this),X.deps?(n.prevDep=X.depsTail,X.depsTail.nextDep=n,X.depsTail=n):X.deps=X.depsTail=n,xs(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const o=n.nextDep;o.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=o),n.prevDep=X.depsTail,n.nextDep=void 0,X.depsTail.nextDep=n,X.depsTail=n,X.deps===n&&(X.deps=o)}return process.env.NODE_ENV!=="production"&&X.onTrack&&X.onTrack(se({effect:X},t)),n}trigger(t){this.version++,Jt++,this.notify(t)}notify(t){co();try{if(process.env.NODE_ENV!=="production")for(let n=this.subsHead;n;n=n.nextSub)n.sub.onTrigger&&!(n.sub.flags&8)&&n.sub.onTrigger(se({effect:n.sub},t));for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{uo()}}}function xs(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)xs(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),process.env.NODE_ENV!=="production"&&e.dep.subsHead===void 0&&(e.dep.subsHead=e),e.dep.subs=e}}const mo=new WeakMap,yt=Symbol(process.env.NODE_ENV!=="production"?"Object iterate":""),go=Symbol(process.env.NODE_ENV!=="production"?"Map keys iterate":""),Yt=Symbol(process.env.NODE_ENV!=="production"?"Array iterate":"");function he(e,t,n){if(We&&X){let o=mo.get(e);o||mo.set(e,o=new Map);let s=o.get(n);s||(o.set(n,s=new ho),s.map=o,s.key=n),process.env.NODE_ENV!=="production"?s.track({target:e,type:t,key:n}):s.track()}}function Xe(e,t,n,o,s,i){const r=mo.get(e);if(!r){Jt++;return}const a=c=>{c&&(process.env.NODE_ENV!=="production"?c.trigger({target:e,type:t,key:n,newValue:o,oldValue:s,oldTarget:i}):c.trigger())};if(co(),t==="clear")r.forEach(a);else{const c=j(e),p=c&&io(n);if(c&&n==="length"){const f=Number(o);r.forEach((d,m)=>{(m==="length"||m===Yt||!He(m)&&m>=f)&&a(d)})}else switch((n!==void 0||r.has(void 0))&&a(r.get(n)),p&&a(r.get(Yt)),t){case"add":c?p&&a(r.get("length")):(a(r.get(yt)),bt(e)&&a(r.get(go)));break;case"delete":c||(a(r.get(yt)),bt(e)&&a(r.get(go)));break;case"set":bt(e)&&a(r.get(yt));break}}uo()}function At(e){const t=W(e);return t===e?t:(he(t,"iterate",Yt),ye(e)?t:t.map(qe))}function En(e){return he(e=W(e),"iterate",Yt),e}function Ze(e,t){return Ke(e)?Tt(ft(e)?qe(t):t):qe(t)}const Hr={__proto__:null,[Symbol.iterator](){return vo(this,Symbol.iterator,e=>Ze(this,e))},concat(...e){return At(this).concat(...e.map(t=>j(t)?At(t):t))},entries(){return vo(this,"entries",e=>(e[1]=Ze(this,e[1]),e))},every(e,t){return rt(this,"every",e,t,void 0,arguments)},filter(e,t){return rt(this,"filter",e,t,n=>n.map(o=>Ze(this,o)),arguments)},find(e,t){return rt(this,"find",e,t,n=>Ze(this,n),arguments)},findIndex(e,t){return rt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return rt(this,"findLast",e,t,n=>Ze(this,n),arguments)},findLastIndex(e,t){return rt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return rt(this,"forEach",e,t,void 0,arguments)},includes(...e){return bo(this,"includes",e)},indexOf(...e){return bo(this,"indexOf",e)},join(e){return At(this).join(e)},lastIndexOf(...e){return bo(this,"lastIndexOf",e)},map(e,t){return rt(this,"map",e,t,void 0,arguments)},pop(){return Xt(this,"pop")},push(...e){return Xt(this,"push",e)},reduce(e,...t){return Es(this,"reduce",e,t)},reduceRight(e,...t){return Es(this,"reduceRight",e,t)},shift(){return Xt(this,"shift")},some(e,t){return rt(this,"some",e,t,void 0,arguments)},splice(...e){return Xt(this,"splice",e)},toReversed(){return At(this).toReversed()},toSorted(e){return At(this).toSorted(e)},toSpliced(...e){return At(this).toSpliced(...e)},unshift(...e){return Xt(this,"unshift",e)},values(){return vo(this,"values",e=>Ze(this,e))}};function vo(e,t,n){const o=En(e),s=o[t]();return o!==e&&!ye(e)&&(s._next=s.next,s.next=()=>{const i=s._next();return i.done||(i.value=n(i.value)),i}),s}const Br=Array.prototype;function rt(e,t,n,o,s,i){const r=En(e),a=r!==e&&!ye(e),c=r[t];if(c!==Br[t]){const d=c.apply(e,i);return a?qe(d):d}let p=n;r!==e&&(a?p=function(d,m){return n.call(this,Ze(e,d),m,e)}:n.length>2&&(p=function(d,m){return n.call(this,d,m,e)}));const f=c.call(r,p,o);return a&&s?s(f):f}function Es(e,t,n,o){const s=En(e),i=s!==e&&!ye(e);let r=n,a=!1;s!==e&&(i?(a=o.length===0,r=function(p,f,d){return a&&(a=!1,p=Ze(e,p)),n.call(this,p,Ze(e,f),d,e)}):n.length>3&&(r=function(p,f,d){return n.call(this,p,f,d,e)}));const c=s[t](r,...o);return a?Ze(e,c):c}function bo(e,t,n){const o=W(e);he(o,"iterate",Yt);const s=o[t](...n);return(s===-1||s===!1)&&Cn(n[0])?(n[0]=W(n[0]),o[t](...n)):s}function Xt(e,t,n=[]){Ie(),co();const o=W(e)[t].apply(e,n);return uo(),Me(),o}const Ur=it("__proto__,__v_isRef,__isVue"),Ns=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(He));function Wr(e){He(e)||(e=String(e));const t=W(this);return he(t,"has",e),t.hasOwnProperty(e)}class ks{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return i;if(n==="__v_raw")return o===(s?i?Ts:As:i?Vs:Ds).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const r=j(t);if(!s){let c;if(r&&(c=Hr[n]))return c;if(n==="hasOwnProperty")return Wr}const a=Reflect.get(t,n,ce(t)?t:o);if((He(n)?Ns.has(n):Ur(n))||(s||he(t,"get",n),i))return a;if(ce(a)){const c=r&&io(n)?a:a.value;return s&&z(c)?wo(c):c}return z(a)?s?wo(a):yo(a):a}}class Os extends ks{constructor(t=!1){super(!1,t)}set(t,n,o,s){let i=t[n];const r=j(t)&&io(n);if(!this._isShallow){const p=Ke(i);if(!ye(o)&&!Ke(o)&&(i=W(i),o=W(o)),!r&&ce(i)&&!ce(o))return p?(process.env.NODE_ENV!=="production"&&Ue(`Set operation on key "${String(n)}" failed: target is readonly.`,t[n]),!0):(i.value=o,!0)}const a=r?Number(n)e,Nn=e=>Reflect.getPrototypeOf(e);function Jr(e,t,n){return function(...o){const s=this.__v_raw,i=W(s),r=bt(i),a=e==="entries"||e===Symbol.iterator&&r,c=e==="keys"&&r,p=s[e](...o),f=n?_o:t?Tt:qe;return!t&&he(i,"iterate",c?go:yt),se(Object.create(p),{next(){const{value:d,done:m}=p.next();return m?{value:d,done:m}:{value:a?[f(d[0]),f(d[1])]:f(d),done:m}}})}}function kn(e){return function(...t){if(process.env.NODE_ENV!=="production"){const n=t[0]?`on key "${t[0]}" `:"";Ue(`${wn(e)} operation ${n}failed: target is readonly.`,W(this))}return e==="delete"?!1:e==="clear"?void 0:this}}function Yr(e,t){const n={get(s){const i=this.__v_raw,r=W(i),a=W(s);e||(Ye(s,a)&&he(r,"get",s),he(r,"get",a));const{has:c}=Nn(r),p=t?_o:e?Tt:qe;if(c.call(r,s))return p(i.get(s));if(c.call(r,a))return p(i.get(a));i!==r&&i.get(s)},get size(){const s=this.__v_raw;return!e&&he(W(s),"iterate",yt),s.size},has(s){const i=this.__v_raw,r=W(i),a=W(s);return e||(Ye(s,a)&&he(r,"has",s),he(r,"has",a)),s===a?i.has(s):i.has(s)||i.has(a)},forEach(s,i){const r=this,a=r.__v_raw,c=W(a),p=t?_o:e?Tt:qe;return!e&&he(c,"iterate",yt),a.forEach((f,d)=>s.call(i,p(f),p(d),r))}};return se(n,e?{add:kn("add"),set:kn("set"),delete:kn("delete"),clear:kn("clear")}:{add(s){const i=W(this),r=Nn(i),a=W(s),c=!t&&!ye(s)&&!Ke(s)?a:s;return r.has.call(i,c)||Ye(s,c)&&r.has.call(i,s)||Ye(a,c)&&r.has.call(i,a)||(i.add(c),Xe(i,"add",c,c)),this},set(s,i){!t&&!ye(i)&&!Ke(i)&&(i=W(i));const r=W(this),{has:a,get:c}=Nn(r);let p=a.call(r,s);p?process.env.NODE_ENV!=="production"&&Cs(r,a,s):(s=W(s),p=a.call(r,s));const f=c.call(r,s);return r.set(s,i),p?Ye(i,f)&&Xe(r,"set",s,i,f):Xe(r,"add",s,i),this},delete(s){const i=W(this),{has:r,get:a}=Nn(i);let c=r.call(i,s);c?process.env.NODE_ENV!=="production"&&Cs(i,r,s):(s=W(s),c=r.call(i,s));const p=a?a.call(i,s):void 0,f=i.delete(s);return c&&Xe(i,"delete",s,void 0,p),f},clear(){const s=W(this),i=s.size!==0,r=process.env.NODE_ENV!=="production"?bt(s)?new Map(s):new Set(s):void 0,a=s.clear();return i&&Xe(s,"clear",void 0,void 0,r),a}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=Jr(s,e,t)}),n}function On(e,t){const n=Yr(e,t);return(o,s,i)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?o:Reflect.get(G(n,s)&&s in o?n:o,s,i)}const Xr={get:On(!1,!1)},Zr={get:On(!1,!0)},Qr={get:On(!0,!1)},ea={get:On(!0,!0)};function Cs(e,t,n){const o=W(n);if(o!==n&&t.call(e,o)){const s=so(e);Ue(`Reactive ${s} contains both the raw and reactive versions of the same object${s==="Map"?" as keys":""}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}}const Ds=new WeakMap,Vs=new WeakMap,As=new WeakMap,Ts=new WeakMap;function ta(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function yo(e){return Ke(e)?e:Sn(e,!1,Kr,Xr,Ds)}function na(e){return Sn(e,!1,Gr,Zr,Vs)}function wo(e){return Sn(e,!0,qr,Qr,As)}function Qe(e){return Sn(e,!0,zr,ea,Ts)}function Sn(e,t,n,o,s){if(!z(e))return process.env.NODE_ENV!=="production"&&Ue(`value cannot be made ${t?"readonly":"reactive"}: ${String(e)}`),e;if(e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const i=s.get(e);if(i)return i;const r=ta(so(e));if(r===0)return e;const a=new Proxy(e,r===2?o:n);return s.set(e,a),a}function ft(e){return Ke(e)?ft(e.__v_raw):!!(e&&e.__v_isReactive)}function Ke(e){return!!(e&&e.__v_isReadonly)}function ye(e){return!!(e&&e.__v_isShallow)}function Cn(e){return e?!!e.__v_raw:!1}function W(e){const t=e&&e.__v_raw;return t?W(t):e}function oa(e){return!G(e,"__v_skip")&&Object.isExtensible(e)&&xn(e,"__v_skip",!0),e}const qe=e=>z(e)?yo(e):e,Tt=e=>z(e)?wo(e):e;function ce(e){return e?e.__v_isRef===!0:!1}function wt(e){return sa(e,!1)}function sa(e,t){return ce(e)?e:new ia(e,t)}class ia{constructor(t,n){this.dep=new ho,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:W(t),this._value=n?t:qe(t),this.__v_isShallow=n}get value(){return process.env.NODE_ENV!=="production"?this.dep.track({target:this,type:"get",key:"value"}):this.dep.track(),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||ye(t)||Ke(t);t=o?t:W(t),Ye(t,n)&&(this._rawValue=t,this._value=o?t:qe(t),process.env.NODE_ENV!=="production"?this.dep.trigger({target:this,type:"set",key:"value",newValue:t,oldValue:n}):this.dep.trigger())}}function $s(e){return ce(e)?e.value:e}const ra={get:(e,t,n)=>t==="__v_raw"?e:$s(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const s=e[t];return ce(s)&&!ce(n)?(s.value=n,!0):Reflect.set(e,t,n,o)}};function Rs(e){return ft(e)?e:new Proxy(e,ra)}class aa{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new ho(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Jt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&X!==this)return gs(this,!0),!0;process.env.NODE_ENV}get value(){const t=process.env.NODE_ENV!=="production"?this.dep.track({target:this,type:"get",key:"value"}):this.dep.track();return _s(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter?this.setter(t):process.env.NODE_ENV!=="production"&&Ue("Write operation failed: computed value is readonly")}}function la(e,t,n=!1){let o,s;H(e)?o=e:(o=e.get,s=e.set);const i=new aa(o,s,n);return process.env.NODE_ENV,i}const Dn={},Vn=new WeakMap;let xt;function ca(e,t=!1,n=xt){if(n){let o=Vn.get(n);o||Vn.set(n,o=[]),o.push(e)}else process.env.NODE_ENV!=="production"&&!t&&Ue("onWatcherCleanup() was called when there was no active watcher to associate with.")}function da(e,t,n=ee){const{immediate:o,deep:s,once:i,scheduler:r,augmentJob:a,call:c}=n,p=P=>{(n.onWarn||Ue)("Invalid watch source: ",P,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},f=P=>s?P:ye(P)||s===!1||s===0?pt(P,1):pt(P);let d,m,k,A,w=!1,te=!1;if(ce(e)?(m=()=>e.value,w=ye(e)):ft(e)?(m=()=>f(e),w=!0):j(e)?(te=!0,w=e.some(P=>ft(P)||ye(P)),m=()=>e.map(P=>{if(ce(P))return P.value;if(ft(P))return f(P);if(H(P))return c?c(P,2):P();process.env.NODE_ENV!=="production"&&p(P)})):H(e)?t?m=c?()=>c(e,2):e:m=()=>{if(k){Ie();try{k()}finally{Me()}}const P=xt;xt=d;try{return c?c(e,3,[A]):e(A)}finally{xt=P}}:(m=pe,process.env.NODE_ENV!=="production"&&p(e)),t&&s){const P=m,ue=s===!0?1/0:s;m=()=>pt(P(),ue)}const R=jr(),T=()=>{d.stop(),R&&R.active&&no(R.effects,d)};if(i&&t){const P=t;t=(...ue)=>{const O=P(...ue);return T(),O}}let D=te?new Array(e.length).fill(Dn):Dn;const ne=P=>{if(!(!(d.flags&1)||!d.dirty&&!P))if(t){const ue=d.run();if(P||s||w||(te?ue.some((O,$)=>Ye(O,D[$])):Ye(ue,D))){k&&k();const O=xt;xt=d;try{const $=[ue,D===Dn?void 0:te&&D[0]===Dn?[]:D,A];D=ue,c?c(t,3,$):t(...$)}finally{xt=O}}}else d.run()};return a&&a(ne),d=new hs(m),d.scheduler=r?()=>r(ne,!1):ne,A=P=>ca(P,!1,d),k=d.onStop=()=>{const P=Vn.get(d);if(P){if(c)c(P,4);else for(const ue of P)ue();Vn.delete(d)}},process.env.NODE_ENV!=="production"&&(d.onTrack=n.onTrack,d.onTrigger=n.onTrigger),t?o?ne(!0):D=d.run():r?r(ne.bind(null,!0),!0):d.run(),T.pause=d.pause.bind(d),T.resume=d.resume.bind(d),T.stop=T,T}function pt(e,t=1/0,n){if(t<=0||!z(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ce(e))pt(e.value,t,n);else if(j(e))for(let o=0;o{pt(o,t,n)});else if(_n(e)){for(const o in e)pt(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&pt(e[o],t,n)}return e}/** +* @vue/runtime-core v3.5.39 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const Et=[];function An(e){Et.push(e)}function Tn(){Et.pop()}let xo=!1;function N(e,...t){if(xo)return;xo=!0,Ie();const n=Et.length?Et[Et.length-1].component:null,o=n&&n.appContext.config.warnHandler,s=ua();if(o)$t(o,n,11,[e+t.map(i=>{var r,a;return(a=(r=i.toString)==null?void 0:r.call(i))!=null?a:JSON.stringify(i)}).join(""),n&&n.proxy,s.map(({vnode:i})=>`at <${pn(n,i.type)}>`).join(` +`),s]);else{const i=[`[Vue warn]: ${e}`,...t];s.length&&i.push(` +`,...fa(s)),console.warn(...i)}Me(),xo=!1}function ua(){let e=Et[Et.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const o=e.component&&e.component.parent;e=o&&o.vnode}return t}function fa(e){const t=[];return e.forEach((n,o)=>{t.push(...o===0?[]:[` +`],...pa(n))}),t}function pa({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",o=e.component?e.component.parent==null:!1,s=` at <${pn(e.component,e.type,o)}`,i=">"+n;return e.props?[s,...ha(e.props),i]:[s+i]}function ha(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(o=>{t.push(...Ps(o,e[o]))}),n.length>3&&t.push(" ..."),t}function Ps(e,t,n){return oe(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:ce(t)?(t=Ps(e,W(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):H(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=W(t),n?t:[`${e}=`,t])}const Eo={sp:"serverPrefetch hook",bc:"beforeCreate hook",c:"created hook",bm:"beforeMount hook",m:"mounted hook",bu:"beforeUpdate hook",u:"updated",bum:"beforeUnmount hook",um:"unmounted hook",a:"activated hook",da:"deactivated hook",ec:"errorCaptured hook",rtc:"renderTracked hook",rtg:"renderTriggered hook",0:"setup function",1:"render function",2:"watcher getter",3:"watcher callback",4:"watcher cleanup function",5:"native event handler",6:"component event handler",7:"vnode hook",8:"directive hook",9:"transition hook",10:"app errorHandler",11:"app warnHandler",12:"ref function",13:"async component loader",14:"scheduler flush",15:"component update",16:"app unmount cleanup function"};function $t(e,t,n,o){try{return o?e(...o):e()}catch(s){Zt(s,t,n)}}function Ge(e,t,n,o){if(H(e)){const s=$t(e,t,n,o);return s&&oo(s)&&s.catch(i=>{Zt(i,t,n)}),s}if(j(e)){const s=[];for(let i=0;i>>1,s=we[o],i=Qt(s);i=Qt(n)?we.push(e):we.splice(va(t),0,e),e.flags|=1,js()}}function js(){$n||($n=Is.then(Bs))}function Fs(e){j(e)?Rt.push(...e):ht&&e.id===-1?ht.splice(Pt+1,0,e):e.flags&1||(Rt.push(e),e.flags|=1),js()}function Ls(e,t,n=et+1){for(process.env.NODE_ENV!=="production"&&(t=t||new Map);nQt(n)-Qt(o));if(Rt.length=0,ht){ht.push(...t);return}for(ht=t,process.env.NODE_ENV!=="production"&&(e=e||new Map),Pt=0;Pte.id==null?e.flags&2?-1:1/0:e.id;function Bs(e){process.env.NODE_ENV!=="production"&&(e=e||new Map);const t=process.env.NODE_ENV!=="production"?n=>No(e,n):pe;try{for(et=0;etga){const o=t.i,s=o&&Wi(o.type);return Zt(`Maximum recursive updates exceeded${s?` in component <${s}>`:""}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,null,10),!0}return e.set(t,n+1),!1}let Ve=!1;const Us=e=>{try{return Ve}finally{Ve=e}},Pn=new Map;process.env.NODE_ENV!=="production"&&(qt().__VUE_HMR_RUNTIME__={createRecord:ko(Ws),rerender:ko(ya),reload:ko(wa)});const Nt=new Map;function ba(e){const t=e.type.__hmrId;let n=Nt.get(t);n||(Ws(t,e.type),n=Nt.get(t)),n.instances.add(e)}function _a(e){Nt.get(e.type.__hmrId).instances.delete(e)}function Ws(e,t){return Nt.has(e)?!1:(Nt.set(e,{initialDef:In(t),instances:new Set}),!0)}function In(e){return Ki(e)?e.__vccOpts:e}function ya(e,t){const n=Nt.get(e);n&&(n.initialDef.render=t,[...n.instances].forEach(o=>{t&&(o.render=t,In(o.type).render=t),o.renderCache=[],Ve=!0,o.job.flags&8||o.update(),Ve=!1}))}function wa(e,t){const n=Nt.get(e);if(!n)return;t=In(t),Ks(n.initialDef,t);const o=[...n.instances];for(let s=0;s{i.job.flags&8||(Ve=!0,i.parent.update(),Ve=!1,a.delete(i))}):i.appContext.reload?i.appContext.reload():typeof window<"u"?window.location.reload():console.warn("[HMR] Root or manually mounted instance modified. Full reload required."),i.root.ce&&i!==i.root&&i.root.ce._removeChildStyle(r)}Fs(()=>{Pn.clear()})}function Ks(e,t){se(e,t);for(const n in e)n!=="__file"&&!(n in t)&&delete e[n]}function ko(e){return(t,n)=>{try{return e(t,n)}catch(o){console.error(o),console.warn("[HMR] Something went wrong during Vue component hot-reload. Full reload required.")}}}let ze,en=[],Oo=!1;function tn(e,...t){ze?ze.emit(e,...t):Oo||en.push({event:e,args:t})}function So(e,t){var n,o;ze=e,ze?(ze.enabled=!0,en.forEach(({event:s,args:i})=>ze.emit(s,...i)),en=[]):typeof window<"u"&&window.HTMLElement&&!((o=(n=window.navigator)==null?void 0:n.userAgent)!=null&&o.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(i=>{So(i,t)}),setTimeout(()=>{ze||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,Oo=!0,en=[])},3e3)):(Oo=!0,en=[])}function xa(e,t){tn("app:init",e,t,{Fragment:de,Text:an,Comment:Te,Static:qn})}function Ea(e){tn("app:unmount",e)}const Na=Co("component:added"),qs=Co("component:updated"),ka=Co("component:removed"),Oa=e=>{ze&&typeof ze.cleanupBuffer=="function"&&!ze.cleanupBuffer(e)&&ka(e)};function Co(e){return t=>{tn(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}const Sa=Gs("perf:start"),Ca=Gs("perf:end");function Gs(e){return(t,n,o)=>{tn(e,t.appContext.app,t.uid,t,n,o)}}function Da(e,t,n){tn("component:emit",e.appContext.app,e,t,n)}let Ae=null,zs=null;function Mn(e){const t=Ae;return Ae=e,zs=e&&e.type.__scopeId||null,t}function Va(e,t=Ae,n){if(!t||e._n)return e;const o=(...s)=>{o._d&&Ti(-1);const i=Mn(t);let r;try{r=e(...s)}finally{Mn(i),o._d&&Ti(1)}return process.env.NODE_ENV!=="production"&&qs(t),r};return o._n=!0,o._c=!0,o._d=!0,o}function Js(e){wr(e)&&N("Do not use built-in directive ids as custom directive id: "+e)}function kt(e,t,n,o){const s=e.dirs,i=t&&t.dirs;for(let r=0;r1)return n&&H(t)?t.call(o&&o.proxy):t;process.env.NODE_ENV!=="production"&&N(`injection "${String(e)}" not found.`)}else process.env.NODE_ENV!=="production"&&N("inject() can only be used inside setup() or functional components.")}const Ta=Symbol.for("v-scx"),$a=()=>{{const e=jn(Ta);return e||process.env.NODE_ENV!=="production"&&N("Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build."),e}};function Do(e,t,n){return process.env.NODE_ENV!=="production"&&!H(t)&&N("`watch(fn, options?)` signature has been moved to a separate API. Use `watchEffect(fn, options?)` instead. `watch` now only supports `watch(source, cb, options?) signature."),Ys(e,t,n)}function Ys(e,t,n=ee){const{immediate:o,deep:s,flush:i,once:r}=n;process.env.NODE_ENV!=="production"&&!t&&(o!==void 0&&N('watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.'),s!==void 0&&N('watch() "deep" option is only respected when using the watch(source, callback, options?) signature.'),r!==void 0&&N('watch() "once" option is only respected when using the watch(source, callback, options?) signature.'));const a=se({},n);process.env.NODE_ENV!=="production"&&(a.onWarn=N);const c=t&&o||!t&&i!=="post";let p;if(fn){if(i==="sync"){const k=$a();p=k.__watcherHandles||(k.__watcherHandles=[])}else if(!c){const k=()=>{};return k.stop=pe,k.resume=pe,k.pause=pe,k}}const f=me;a.call=(k,A,w)=>Ge(k,f,A,w);let d=!1;i==="post"?a.scheduler=k=>{Oe(k,f&&f.suspense)}:i!=="sync"&&(d=!0,a.scheduler=(k,A)=>{A?k():Rn(k)}),a.augmentJob=k=>{t&&(k.flags|=4),d&&(k.flags|=2,f&&(k.id=f.uid,k.i=f))};const m=da(e,t,a);return fn&&(p?p.push(m):c&&m()),m}function Ra(e,t,n){const o=this.proxy,s=oe(e)?e.includes(".")?Xs(o,e):()=>o[e]:e.bind(o,o);let i;H(t)?i=t:(i=t.handler,n=t);const r=un(this),a=Ys(s,i.bind(o),n);return r(),a}function Xs(e,t){const n=t.split(".");return()=>{let o=e;for(let s=0;se.__isTeleport,Vo=Symbol("_leaveCb");function Ao(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Ao(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Ma(e,t){return H(e)?se({name:e.name},t,{setup:e}):e}function Zs(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const Qs=new WeakSet;function ei(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const Fn=new WeakMap;function nn(e,t,n,o,s=!1){if(j(e)){e.forEach((w,te)=>nn(w,t&&(j(t)?t[te]:t),n,o,s));return}if(on(o)&&!s){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&nn(e,t,n,o.component.subTree);return}const i=o.shapeFlag&4?Jo(o.component):o.el,r=s?null:i,{i:a,r:c}=e;if(process.env.NODE_ENV!=="production"&&!a){N("Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.");return}const p=t&&t.r,f=a.refs===ee?a.refs={}:a.refs,d=a.setupState,m=W(d),k=d===ee?is:w=>process.env.NODE_ENV!=="production"&&(G(m,w)&&!ce(m[w])&&N(`Template ref "${w}" used on a non-ref value. It will not work in the production build.`),Qs.has(m[w]))||ei(f,w)?!1:G(m,w),A=(w,te)=>!(process.env.NODE_ENV!=="production"&&Qs.has(w)||te&&ei(f,te));if(p!=null&&p!==c){if(ti(t),oe(p))f[p]=null,k(p)&&(d[p]=null);else if(ce(p)){const w=t;A(p,w.k)&&(p.value=null),w.k&&(f[w.k]=null)}}if(H(c)){Ie();try{$t(c,a,12,[r,f])}finally{Me()}}else{const w=oe(c),te=ce(c);if(w||te){const R=()=>{if(e.f){const T=w?k(c)?d[c]:f[c]:A(c)||!e.k?c.value:f[e.k];if(s)j(T)&&no(T,i);else if(j(T))T.includes(i)||T.push(i);else if(w)f[c]=[i],k(c)&&(d[c]=f[c]);else{const D=[i];A(c,e.k)&&(c.value=D),e.k&&(f[e.k]=D)}}else w?(f[c]=r,k(c)&&(d[c]=r)):te?(A(c,e.k)&&(c.value=r),e.k&&(f[e.k]=r)):process.env.NODE_ENV!=="production"&&N("Invalid template ref type:",c,`(${typeof c})`)};if(r){const T=()=>{R(),Fn.delete(e)};T.id=-1,Fn.set(e,T),Oe(T,n)}else ti(e),R()}else process.env.NODE_ENV!=="production"&&N("Invalid template ref type:",c,`(${typeof c})`)}}function ti(e){const t=Fn.get(e);t&&(t.flags|=8,Fn.delete(e))}qt().requestIdleCallback,qt().cancelIdleCallback;const on=e=>!!e.type.__asyncLoader,To=e=>e.type.__isKeepAlive;function ja(e,t){ni(e,"a",t)}function Fa(e,t){ni(e,"da",t)}function ni(e,t,n=me){const o=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Ln(t,o,n),n){let s=n.parent;for(;s&&s.parent;)To(s.parent.vnode)&&La(o,t,n,s),s=s.parent}}function La(e,t,n,o){const s=Ln(t,e,o,!0);Ro(()=>{no(o[t],s)},n)}function Ln(e,t,n=me,o=!1){if(n){const s=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...r)=>{Ie();const a=un(n),c=Ge(t,n,e,r);return a(),Me(),c});return o?s.unshift(i):s.push(i),i}else if(process.env.NODE_ENV!=="production"){const s=_t(Eo[e].replace(/ hook$/,""));N(`${s} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.`)}}const at=e=>(t,n=me)=>{(!fn||e==="sp")&&Ln(e,(...o)=>t(...o),n)},Ha=at("bm"),$o=at("m"),Ba=at("bu"),Ua=at("u"),Wa=at("bum"),Ro=at("um"),Ka=at("sp"),qa=at("rtg"),Ga=at("rtc");function za(e,t=me){Ln("ec",e,t)}const Ja=Symbol.for("v-ndc");function It(e,t,n,o){let s;const i=n,r=j(e);if(r||oe(e)){const a=r&&ft(e);let c=!1,p=!1;a&&(c=!ye(e),p=Ke(e),e=En(e)),s=new Array(e.length);for(let f=0,d=e.length;ft(a,c,void 0,i));else{const a=Object.keys(e);s=new Array(a.length);for(let c=0,p=a.length;ce?Li(e)?Jo(e):Po(e.parent):null,Ot=se(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>process.env.NODE_ENV!=="production"?Qe(e.props):e.props,$attrs:e=>process.env.NODE_ENV!=="production"?Qe(e.attrs):e.attrs,$slots:e=>process.env.NODE_ENV!=="production"?Qe(e.slots):e.slots,$refs:e=>process.env.NODE_ENV!=="production"?Qe(e.refs):e.refs,$parent:e=>Po(e.parent),$root:e=>Po(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ai(e),$forceUpdate:e=>e.f||(e.f=()=>{Rn(e.update)}),$nextTick:e=>e.n||(e.n=Ms.bind(e.proxy)),$watch:e=>Ra.bind(e)}),Io=e=>e==="_"||e==="$",Mo=(e,t)=>e!==ee&&!e.__isScriptSetup&&G(e,t),oi={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:s,props:i,accessCache:r,type:a,appContext:c}=e;if(process.env.NODE_ENV!=="production"&&t==="__isVue")return!0;if(t[0]!=="$"){const m=r[t];if(m!==void 0)switch(m){case 1:return o[t];case 2:return s[t];case 4:return n[t];case 3:return i[t]}else{if(Mo(o,t))return r[t]=1,o[t];if(s!==ee&&G(s,t))return r[t]=2,s[t];if(G(i,t))return r[t]=3,i[t];if(n!==ee&&G(n,t))return r[t]=4,n[t];jo&&(r[t]=0)}}const p=Ot[t];let f,d;if(p)return t==="$attrs"?(he(e.attrs,"get",""),process.env.NODE_ENV!=="production"&&Un()):process.env.NODE_ENV!=="production"&&t==="$slots"&&he(e,"get",t),p(e);if((f=a.__cssModules)&&(f=f[t]))return f;if(n!==ee&&G(n,t))return r[t]=4,n[t];if(d=c.config.globalProperties,G(d,t))return d[t];process.env.NODE_ENV!=="production"&&Ae&&(!oe(t)||t.indexOf("__v")!==0)&&(s!==ee&&Io(t[0])&&G(s,t)?N(`Property ${JSON.stringify(t)} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`):e===Ae&&N(`Property ${JSON.stringify(t)} was accessed during render but is not defined on instance.`))},set({_:e},t,n){const{data:o,setupState:s,ctx:i}=e;return Mo(s,t)?(s[t]=n,!0):process.env.NODE_ENV!=="production"&&s.__isScriptSetup&&G(s,t)?(N(`Cannot mutate + + + diff --git a/app/index.json b/app/index.json new file mode 100644 index 0000000..924e8b1 --- /dev/null +++ b/app/index.json @@ -0,0 +1,34 @@ +{ + "schema": "doxa-1040-maps-mfe-index@1", + "kit": "abc-audit", + "generatedFrom": "abc-audit-service/web (Vite IIFE embeddable)", + "bundleCount": 1, + "profileCount": 1, + "instanceCount": 1, + "bundles": [ + { + "bundle": "abc-audit", + "category": "Security", + "icon": "🛡️", + "description": "ABC Audit — the sovereign Architecture / Build / Cybersecurity audit tree. A 4-level semantic drill-down (plugin → audit → branch → findings) over the RLS-isolated ABC EDGE database, authed by your app-shell session.", + "output": "abc-audit/abc-audit.iife.js", + "staging": "abc-audit/audit-tree/index.html", + "elements": [ + "abc-audit-tree" + ], + "element": "abc-audit-tree", + "profileCount": 1, + "profiles": [ + { + "profile": "audit-tree", + "file": "mfe.js", + "element": "abc-audit-tree", + "description": "The full ABC audit tree: every plugin's Architecture / Build / Cybersecurity findings, drill-down + row detail, live from the sovereign ABC API under your tenant.", + "parameterized": false, + "embed": "abc-audit/audit-tree/index.html", + "embedScript": "\n" + } + ] + } + ] +}