From cec7f5c800a0350e01d72ccba28205255f4d13a6 Mon Sep 17 00:00:00 2001 From: Frank Karlitschek Date: Sat, 1 Aug 2026 17:28:32 +0200 Subject: [PATCH 1/2] fix(sidebar): stop loading the activity list twice and applying stale responses The activity panel had two independent triggers for the initial load: a `node` watcher declared `immediate` and a `mounted()` hook doing the same thing. Every time the sidebar opened, both fired, so the panel issued two identical requests for the same file. Removing the hook is enough; the immediate watcher already covers the first load as well as later changes. The requests were also unabortable, and `getActivities()` assigned to `this.activities` unconditionally. Moving between files faster than the server answered therefore applied responses in arrival order rather than request order, and the panel could end up showing one file's activity while another was selected. Worse, once a request failed or was superseded the panel surfaced "Unable to load the activity list" even though the newer request was still on its way. Each load now supersedes the one before it through an AbortController, passes the signal to axios, and checks the signal before touching any component state, so a superseded request can neither overwrite the activities nor raise an error banner. Unmounting aborts the last request too. The abort is detected via the signal rather than the error type, which keeps it independent of how axios reports cancellation. The same fix already exists in the stream view; only the sidebar was missing it. Signed-off-by: Frank Karlitschek Co-Authored-By: Claude Opus 5 (1M context) --- js/ActivityTab-D3JnlP-d.chunk.mjs | 3 + ...=> ActivityTab-D3JnlP-d.chunk.mjs.license} | 0 js/ActivityTab-D3JnlP-d.chunk.mjs.map | 1 + js/ActivityTab-EzBumh36.chunk.mjs | 3 - js/ActivityTab-EzBumh36.chunk.mjs.map | 1 - js/activity-sidebar.mjs | 4 +- src/__tests__/ActivityTab.test.ts | 153 +++++++++++++++++- src/views/ActivityTab.vue | 46 +++++- 8 files changed, 196 insertions(+), 15 deletions(-) create mode 100644 js/ActivityTab-D3JnlP-d.chunk.mjs rename js/{ActivityTab-EzBumh36.chunk.mjs.license => ActivityTab-D3JnlP-d.chunk.mjs.license} (100%) create mode 100644 js/ActivityTab-D3JnlP-d.chunk.mjs.map delete mode 100644 js/ActivityTab-EzBumh36.chunk.mjs delete mode 100644 js/ActivityTab-EzBumh36.chunk.mjs.map diff --git a/js/ActivityTab-D3JnlP-d.chunk.mjs b/js/ActivityTab-D3JnlP-d.chunk.mjs new file mode 100644 index 000000000..d907a2536 --- /dev/null +++ b/js/ActivityTab-D3JnlP-d.chunk.mjs @@ -0,0 +1,3 @@ +(function(){"use strict";try{if(typeof document<"u"){var t=document.createElement("style");t.appendChild(document.createTextNode(".download-summary[data-v-81e4514f]{display:flex;align-items:flex-start;padding:8px 0;margin-bottom:calc(var(--default-grid-baseline) * 2);color:var(--color-text-maxcontrast)}.download-summary__icon[data-v-81e4514f]{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:20px;height:20px;margin-top:2px;opacity:.5}.download-summary__text[data-v-81e4514f]{padding:0 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity[data-v-9ba43306]{display:flex;flex-direction:column;overflow:hidden;height:100%}.activity__actions[data-v-9ba43306]{display:flex;flex-direction:column;width:100%}.activity__list[data-v-9ba43306]{flex-grow:1;overflow:scroll}.activity__empty-content[data-v-9ba43306]{height:100%}[data-v-9ba43306] .empty-content__icon span{background-size:64px;width:64px;height:64px}")),document.head.appendChild(t)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})(); +import{l as R}from"./activity-sidebar.mjs";import{b as k,j as I,h as G,m as D}from"./_plugin-vue_export-helper-YgYGpvaA.chunk.mjs";import{d as C,x as V,B as q,y as E,a as i,c as o,j as M,a1 as v,M as g,m as n,e as S,f as m,t as T,E as f,l as B,b as l,g as y,F as h,L as A,n as H}from"./translation-DoG5ZELJ-ns3A9vL-.chunk.mjs";import{a as j}from"./index-BrNGPgve.chunk.mjs";import{N as F,_ as O,A as U}from"./ActivityComponent.vue_vue_type_script_setup_true_lang-Ce6NNuXP.chunk.mjs";import{l as w}from"./logger-CXg3FpL2.chunk.mjs";import{g as W,a as z,b as Z}from"./api-fwrRGLr6.chunk.mjs";import"./preload-helper-DxYC2qmj.chunk.mjs";var b;(function(t){t[t.User=0]="User",t[t.Group=1]="Group",t[t.Link=3]="Link",t[t.Email=4]="Email",t[t.Remote=6]="Remote",t[t.Team=7]="Team",t[t.Guest=8]="Guest",t[t.RemoteGroup=9]="RemoteGroup",t[t.Room=10]="Room",t[t.Deck=12]="Deck",t[t.FederatedGroup=14]="FederatedGroup",t[t.ScienceMesh=15]="ScienceMesh"})(b||(b={}));const $=C({__name:"ActivitySidebarPlugin",props:{plugin:{},node:{}},emits:["reloadActivities"],setup(t,{emit:e}){const a=t,s=e,r=M();return V(()=>a.plugin.mount(r.value,{node:a.node,context:q()?.proxy??void 0,reload:()=>s("reloadActivities")})),E(()=>a.plugin.unmount()),(d,c)=>(i(),o("div",{ref_key:"attachTarget",ref:r},null,512))}}),J='',K=C({name:"DownloadSummary",components:{NcIconSvgWrapper:k},props:{fileId:{type:Number,required:!0}},data(){return{totalCount:0,monthlyCount:0,downloadSVG:J}},computed:{summaryText(){return this.monthlyCount>0&&this.monthlyCount0?(i(),o("div",Q,[S("span",X,[m(c,{svg:t.downloadSVG,size:20},null,8,["svg"])]),S("span",Y,T(t.summaryText),1)])):f("",!0)}const et=G(K,[["render",tt],["__scopeId","data-v-81e4514f"]]),it=C({name:"ActivityTab",components:{ActivityComponent:O,DownloadSummary:et,NcEmptyContent:F,NcIconSvgWrapper:k,NcLoadingIcon:D,ActivitySidebarPlugin:$},props:{node:{type:Object,required:!0},folder:{type:Object,required:!1,default:void 0},view:{type:Object,required:!1,default:void 0}},expose:["update"],data(){return{error:"",loading:!0,activities:[],lightningBoltSVG:R,sidebarPlugins:[],requestController:null}},computed:{hasPublicLink(){return Object.values(this.node?.attributes?.["share-types"]??{}).flat().includes(b.Link)}},watch:{node:{immediate:!0,async handler(){await this.update()}}},beforeUnmount(){this.requestController?.abort()},methods:{async update(){this.sidebarPlugins=[];const t=Z();t.length>0&&B(()=>{this.sidebarPlugins=t}),this.resetState(),await this.getActivities()},async getActivities(){this.requestController?.abort();const t=new AbortController;this.requestController=t;const{signal:e}=t;try{this.loading=!0;const a=await this.processActivities(await this.loadRealActivities(e)),s=await z({node:this.node});if(e.aborted)return;this.activities=[...a,...s].sort((r,d)=>d.timestamp-r.timestamp)}catch(a){if(e.aborted)return;this.error=g("activity","Unable to load the activity list"),w.error("Error loading the activity list",{error:a})}finally{e.aborted||(this.loading=!1)}},resetState(){this.loading=!0,this.error="",this.activities=[]},async loadRealActivities(t){try{const{data:e}=await I.get(j("apps/activity/api/v2/activity/filter"),{signal:t,params:{format:"json",object_type:"files",object_id:this.node.fileid}});return e.ocs.data}catch(e){if(e.response!==void 0&&e.response.status===304)return[];throw e}},processActivities(t){t=t.map(a=>new U(a)),w.debug(`Processed ${t.length} activity(ies)`,{activities:t,node:this.node});const e=W();return t.filter(a=>!e||e.every(s=>s(a)))},t:g}}),at={key:0,class:"activity__actions"},ot={key:4,class:"activity__list"};function st(t,e,a,s,r,d){const c=n("NcIconSvgWrapper"),p=n("NcEmptyContent"),P=n("ActivitySidebarPlugin"),L=n("DownloadSummary"),N=n("NcLoadingIcon"),x=n("ActivityComponent");return i(),o("div",{class:H([{"icon-loading":t.loading},"activity"])},[t.error||!t.node?(i(),l(p,{key:0,name:t.error},{icon:y(()=>[m(c,{svg:t.lightningBoltSVG},null,8,["svg"])]),_:1},8,["name"])):(i(),o(h,{key:1},[t.sidebarPlugins.length>0?(i(),o("div",at,[(i(!0),o(h,null,A(t.sidebarPlugins,(u,_)=>(i(),l(P,{key:_,plugin:u,node:t.node,onReloadActivities:e[0]||(e[0]=nt=>t.getActivities())},null,8,["plugin","node"]))),128))])):f("",!0),t.hasPublicLink&&t.node.fileid?(i(),l(L,{key:1,fileId:t.node.fileid},null,8,["fileId"])):f("",!0),t.loading?(i(),l(p,{key:2,class:"activity__empty-content",name:t.t("activity","Loading activities")},{icon:y(()=>[m(N)]),_:1},8,["name"])):t.activities.length===0?(i(),l(p,{key:3,class:"activity__empty-content",name:t.t("activity","No activity yet")},{icon:y(()=>[m(c,{svg:t.lightningBoltSVG},null,8,["svg"])]),_:1},8,["name"])):(i(),o("ul",ot,[(i(!0),o(h,null,A(t.activities,u=>(i(),l(x,{key:u.id,activity:u,showPreviews:!1,onReload:e[1]||(e[1]=_=>t.getActivities())},null,8,["activity"]))),128))]))],64))],2)}const yt=G(it,[["render",st],["__scopeId","data-v-9ba43306"]]);export{yt as default}; +//# sourceMappingURL=ActivityTab-D3JnlP-d.chunk.mjs.map diff --git a/js/ActivityTab-EzBumh36.chunk.mjs.license b/js/ActivityTab-D3JnlP-d.chunk.mjs.license similarity index 100% rename from js/ActivityTab-EzBumh36.chunk.mjs.license rename to js/ActivityTab-D3JnlP-d.chunk.mjs.license diff --git a/js/ActivityTab-D3JnlP-d.chunk.mjs.map b/js/ActivityTab-D3JnlP-d.chunk.mjs.map new file mode 100644 index 000000000..3fc7dd39c --- /dev/null +++ b/js/ActivityTab-D3JnlP-d.chunk.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"ActivityTab-D3JnlP-d.chunk.mjs","sources":["../node_modules/@nextcloud/sharing/dist/share/ShareType.js","../src/components/ActivitySidebarPlugin.vue","../node_modules/@mdi/svg/svg/download-circle.svg?raw","../src/components/DownloadSummary.vue","../src/views/ActivityTab.vue"],"sourcesContent":["/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nexport var ShareType;\n(function (ShareType) {\n ShareType[ShareType[\"User\"] = 0] = \"User\";\n ShareType[ShareType[\"Group\"] = 1] = \"Group\";\n ShareType[ShareType[\"Link\"] = 3] = \"Link\";\n ShareType[ShareType[\"Email\"] = 4] = \"Email\";\n ShareType[ShareType[\"Remote\"] = 6] = \"Remote\";\n /**\n * Was called `Circle` before Nextcloud 29\n */\n ShareType[ShareType[\"Team\"] = 7] = \"Team\";\n ShareType[ShareType[\"Guest\"] = 8] = \"Guest\";\n ShareType[ShareType[\"RemoteGroup\"] = 9] = \"RemoteGroup\";\n ShareType[ShareType[\"Room\"] = 10] = \"Room\";\n ShareType[ShareType[\"Deck\"] = 12] = \"Deck\";\n /**\n * @since 26.0.0\n */\n ShareType[ShareType[\"FederatedGroup\"] = 14] = \"FederatedGroup\";\n /**\n * Third party share types\n *\n * @since 25.0.0\n */\n ShareType[ShareType[\"ScienceMesh\"] = 15] = \"ScienceMesh\";\n})(ShareType || (ShareType = {}));\n","\n\n\n\n\n","export default \"\"","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n"],"names":["ShareType","props","__props","emit","__emit","attachTarget","ref","onMounted","getCurrentInstance","onBeforeUnmount","_createElementBlock","downloadSVG","_sfc_main","defineComponent","NcIconSvgWrapper","n","response","axios","generateOcsUrl","error","logger","t","_hoisted_2","_hoisted_3","_ctx","_openBlock","_hoisted_1","_createElementVNode","_createVNode","_component_NcIconSvgWrapper","_toDisplayString","_createCommentVNode","ActivityTab","ActivityComponent","DownloadSummary","NcEmptyContent","NcLoadingIcon","ActivitySidebarPlugin","lightningBoltSVG","sidebarPlugins","getSidebarActions","nextTick","controller","signal","activities","otherEntries","getAdditionalEntries","a","b","data","activity","ActivityModel","filters","getActivityFilters","filter","_normalizeClass","_createBlock","_component_NcEmptyContent","_withCtx","_Fragment","_renderList","plugin","index","_component_ActivitySidebarPlugin","_cache","_component_DownloadSummary","_component_NcLoadingIcon","_component_ActivityComponent"],"mappings":"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","x_google_ignoreList":[0,2]} \ No newline at end of file diff --git a/js/ActivityTab-EzBumh36.chunk.mjs b/js/ActivityTab-EzBumh36.chunk.mjs deleted file mode 100644 index cd3da39d9..000000000 --- a/js/ActivityTab-EzBumh36.chunk.mjs +++ /dev/null @@ -1,3 +0,0 @@ -(function(){"use strict";try{if(typeof document<"u"){var t=document.createElement("style");t.appendChild(document.createTextNode(".download-summary[data-v-81e4514f]{display:flex;align-items:flex-start;padding:8px 0;margin-bottom:calc(var(--default-grid-baseline) * 2);color:var(--color-text-maxcontrast)}.download-summary__icon[data-v-81e4514f]{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:20px;height:20px;margin-top:2px;opacity:.5}.download-summary__text[data-v-81e4514f]{padding:0 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity[data-v-50818749]{display:flex;flex-direction:column;overflow:hidden;height:100%}.activity__actions[data-v-50818749]{display:flex;flex-direction:column;width:100%}.activity__list[data-v-50818749]{flex-grow:1;overflow:scroll}.activity__empty-content[data-v-50818749]{height:100%}[data-v-50818749] .empty-content__icon span{background-size:64px;width:64px;height:64px}")),document.head.appendChild(t)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})(); -import{l as R}from"./activity-sidebar.mjs";import{b as A,j as I,h as G,m as D}from"./_plugin-vue_export-helper-YgYGpvaA.chunk.mjs";import{d as b,x as V,B as E,y as M,a as i,c as o,j as T,a1 as p,M as h,m as n,e as S,f as u,t as B,E as g,l as H,b as r,g as y,F as v,L as k,n as q}from"./translation-DoG5ZELJ-ns3A9vL-.chunk.mjs";import{a as j}from"./index-BrNGPgve.chunk.mjs";import{N as F,_ as O,A as W}from"./ActivityComponent.vue_vue_type_script_setup_true_lang-Ce6NNuXP.chunk.mjs";import{l as f}from"./logger-CXg3FpL2.chunk.mjs";import{g as U,a as z,b as Z}from"./api-fwrRGLr6.chunk.mjs";import"./preload-helper-DxYC2qmj.chunk.mjs";var w;(function(t){t[t.User=0]="User",t[t.Group=1]="Group",t[t.Link=3]="Link",t[t.Email=4]="Email",t[t.Remote=6]="Remote",t[t.Team=7]="Team",t[t.Guest=8]="Guest",t[t.RemoteGroup=9]="RemoteGroup",t[t.Room=10]="Room",t[t.Deck=12]="Deck",t[t.FederatedGroup=14]="FederatedGroup",t[t.ScienceMesh=15]="ScienceMesh"})(w||(w={}));const $=b({__name:"ActivitySidebarPlugin",props:{plugin:{},node:{}},emits:["reloadActivities"],setup(t,{emit:e}){const a=t,s=e,d=T();return V(()=>a.plugin.mount(d.value,{node:a.node,context:E()?.proxy??void 0,reload:()=>s("reloadActivities")})),M(()=>a.plugin.unmount()),(_,c)=>(i(),o("div",{ref_key:"attachTarget",ref:d},null,512))}}),J='',K=b({name:"DownloadSummary",components:{NcIconSvgWrapper:A},props:{fileId:{type:Number,required:!0}},data(){return{totalCount:0,monthlyCount:0,downloadSVG:J}},computed:{summaryText(){return this.monthlyCount>0&&this.monthlyCount0?(i(),o("div",Q,[S("span",X,[u(c,{svg:t.downloadSVG,size:20},null,8,["svg"])]),S("span",Y,B(t.summaryText),1)])):g("",!0)}const it=G(K,[["render",tt],["__scopeId","data-v-81e4514f"]]),et=b({name:"ActivityTab",components:{ActivityComponent:O,DownloadSummary:it,NcEmptyContent:F,NcIconSvgWrapper:A,NcLoadingIcon:D,ActivitySidebarPlugin:$},props:{node:{type:Object,required:!0},folder:{type:Object,required:!1,default:void 0},view:{type:Object,required:!1,default:void 0}},expose:["update"],data(){return{error:"",loading:!0,activities:[],lightningBoltSVG:R,sidebarPlugins:[]}},computed:{hasPublicLink(){return Object.values(this.node?.attributes?.["share-types"]??{}).flat().includes(w.Link)}},watch:{node:{immediate:!0,async handler(){await this.update()}}},async mounted(){this.node&&await this.update()},methods:{async update(){this.sidebarPlugins=[];const t=Z();t.length>0&&H(()=>{this.sidebarPlugins=t}),this.resetState(),await this.getActivities()},async getActivities(){try{this.loading=!0;const t=await this.processActivities(await this.loadRealActivities()),e=await z({node:this.node});this.activities=[...t,...e].sort((a,s)=>s.timestamp-a.timestamp)}catch(t){this.error=h("activity","Unable to load the activity list"),f.error("Error loading the activity list",{error:t})}finally{this.loading=!1}},resetState(){this.loading=!0,this.error="",this.activities=[]},async loadRealActivities(){try{const{data:t}=await I.get(j("apps/activity/api/v2/activity/filter"),{params:{format:"json",object_type:"files",object_id:this.node.fileid}});return t.ocs.data}catch(t){if(t.response!==void 0&&t.response.status===304)return[];throw t}},processActivities(t){t=t.map(a=>new W(a)),f.debug(`Processed ${t.length} activity(ies)`,{activities:t,node:this.node});const e=U();return t.filter(a=>!e||e.every(s=>s(a)))},t:h}}),at={key:0,class:"activity__actions"},ot={key:4,class:"activity__list"};function st(t,e,a,s,d,_){const c=n("NcIconSvgWrapper"),m=n("NcEmptyContent"),P=n("ActivitySidebarPlugin"),L=n("DownloadSummary"),N=n("NcLoadingIcon"),x=n("ActivityComponent");return i(),o("div",{class:q([{"icon-loading":t.loading},"activity"])},[t.error||!t.node?(i(),r(m,{key:0,name:t.error},{icon:y(()=>[u(c,{svg:t.lightningBoltSVG},null,8,["svg"])]),_:1},8,["name"])):(i(),o(v,{key:1},[t.sidebarPlugins.length>0?(i(),o("div",at,[(i(!0),o(v,null,k(t.sidebarPlugins,(l,C)=>(i(),r(P,{key:C,plugin:l,node:t.node,onReloadActivities:e[0]||(e[0]=nt=>t.getActivities())},null,8,["plugin","node"]))),128))])):g("",!0),t.hasPublicLink&&t.node.fileid?(i(),r(L,{key:1,fileId:t.node.fileid},null,8,["fileId"])):g("",!0),t.loading?(i(),r(m,{key:2,class:"activity__empty-content",name:t.t("activity","Loading activities")},{icon:y(()=>[u(N)]),_:1},8,["name"])):t.activities.length===0?(i(),r(m,{key:3,class:"activity__empty-content",name:t.t("activity","No activity yet")},{icon:y(()=>[u(c,{svg:t.lightningBoltSVG},null,8,["svg"])]),_:1},8,["name"])):(i(),o("ul",ot,[(i(!0),o(v,null,k(t.activities,l=>(i(),r(x,{key:l.id,activity:l,showPreviews:!1,onReload:e[1]||(e[1]=C=>t.getActivities())},null,8,["activity"]))),128))]))],64))],2)}const vt=G(et,[["render",st],["__scopeId","data-v-50818749"]]);export{vt as default}; -//# sourceMappingURL=ActivityTab-EzBumh36.chunk.mjs.map diff --git a/js/ActivityTab-EzBumh36.chunk.mjs.map b/js/ActivityTab-EzBumh36.chunk.mjs.map deleted file mode 100644 index 723d1cbc7..000000000 --- a/js/ActivityTab-EzBumh36.chunk.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ActivityTab-EzBumh36.chunk.mjs","sources":["../node_modules/@nextcloud/sharing/dist/share/ShareType.js","../src/components/ActivitySidebarPlugin.vue","../node_modules/@mdi/svg/svg/download-circle.svg?raw","../src/components/DownloadSummary.vue","../src/views/ActivityTab.vue"],"sourcesContent":["/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nexport var ShareType;\n(function (ShareType) {\n ShareType[ShareType[\"User\"] = 0] = \"User\";\n ShareType[ShareType[\"Group\"] = 1] = \"Group\";\n ShareType[ShareType[\"Link\"] = 3] = \"Link\";\n ShareType[ShareType[\"Email\"] = 4] = \"Email\";\n ShareType[ShareType[\"Remote\"] = 6] = \"Remote\";\n /**\n * Was called `Circle` before Nextcloud 29\n */\n ShareType[ShareType[\"Team\"] = 7] = \"Team\";\n ShareType[ShareType[\"Guest\"] = 8] = \"Guest\";\n ShareType[ShareType[\"RemoteGroup\"] = 9] = \"RemoteGroup\";\n ShareType[ShareType[\"Room\"] = 10] = \"Room\";\n ShareType[ShareType[\"Deck\"] = 12] = \"Deck\";\n /**\n * @since 26.0.0\n */\n ShareType[ShareType[\"FederatedGroup\"] = 14] = \"FederatedGroup\";\n /**\n * Third party share types\n *\n * @since 25.0.0\n */\n ShareType[ShareType[\"ScienceMesh\"] = 15] = \"ScienceMesh\";\n})(ShareType || (ShareType = {}));\n","\n\n\n\n\n","export default \"\"","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n"],"names":["ShareType","props","__props","emit","__emit","attachTarget","ref","onMounted","getCurrentInstance","onBeforeUnmount","_createElementBlock","downloadSVG","_sfc_main","defineComponent","NcIconSvgWrapper","n","response","axios","generateOcsUrl","error","logger","t","_hoisted_2","_hoisted_3","_ctx","_openBlock","_hoisted_1","_createElementVNode","_createVNode","_component_NcIconSvgWrapper","_toDisplayString","_createCommentVNode","ActivityTab","ActivityComponent","DownloadSummary","NcEmptyContent","NcLoadingIcon","ActivitySidebarPlugin","lightningBoltSVG","sidebarPlugins","getSidebarActions","nextTick","activities","otherEntries","getAdditionalEntries","a","b","data","activity","ActivityModel","filters","getActivityFilters","filter","_normalizeClass","_createBlock","_component_NcEmptyContent","_withCtx","_Fragment","_renderList","plugin","index","_component_ActivitySidebarPlugin","_cache","_component_DownloadSummary","_component_NcLoadingIcon","_component_ActivityComponent"],"mappings":"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","x_google_ignoreList":[0,2]} \ No newline at end of file diff --git a/js/activity-sidebar.mjs b/js/activity-sidebar.mjs index 2ac1b6b5a..f4f9f7453 100644 --- a/js/activity-sidebar.mjs +++ b/js/activity-sidebar.mjs @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('activity', '', 'js/ActivityTab-EzBumh36.chunk.mjs'),window.OC.filePath('activity', '', 'js/_plugin-vue_export-helper-YgYGpvaA.chunk.mjs'),window.OC.filePath('activity', '', 'js/index-BrNGPgve.chunk.mjs'),window.OC.filePath('activity', '', 'js/translation-DoG5ZELJ-ns3A9vL-.chunk.mjs'),window.OC.filePath('activity', '', 'js/ActivityComponent.vue_vue_type_script_setup_true_lang-Ce6NNuXP.chunk.mjs'),window.OC.filePath('activity', '', 'js/preload-helper-DxYC2qmj.chunk.mjs'),window.OC.filePath('activity', '', 'js/logger-CXg3FpL2.chunk.mjs'),window.OC.filePath('activity', '', 'js/api-fwrRGLr6.chunk.mjs')])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('activity', '', 'js/ActivityTab-D3JnlP-d.chunk.mjs'),window.OC.filePath('activity', '', 'js/_plugin-vue_export-helper-YgYGpvaA.chunk.mjs'),window.OC.filePath('activity', '', 'js/index-BrNGPgve.chunk.mjs'),window.OC.filePath('activity', '', 'js/translation-DoG5ZELJ-ns3A9vL-.chunk.mjs'),window.OC.filePath('activity', '', 'js/ActivityComponent.vue_vue_type_script_setup_true_lang-Ce6NNuXP.chunk.mjs'),window.OC.filePath('activity', '', 'js/preload-helper-DxYC2qmj.chunk.mjs'),window.OC.filePath('activity', '', 'js/logger-CXg3FpL2.chunk.mjs'),window.OC.filePath('activity', '', 'js/api-fwrRGLr6.chunk.mjs')])))=>i.map(i=>d[i]); import{_ as Eo}from"./preload-helper-DxYC2qmj.chunk.mjs";import{c as So,d as Tt,p as tt,f as _o}from"./index-BrNGPgve.chunk.mjs";import{Y as Ht,Z as To,M as Ao,_ as Oo}from"./translation-DoG5ZELJ-ns3A9vL-.chunk.mjs";const Io='';window._nc_files_scope??={},window._nc_files_scope.v4_0??={};const $t=window._nc_files_scope.v4_0,Qe=So().setApp("@nextcloud/files").detectUser().build();var Ke={},kt={exports:{}},Ze;function Ge(){if(Ze)return kt.exports;Ze=1;var a=typeof Reflect=="object"?Reflect:null,v=a&&typeof a.apply=="function"?a.apply:function(c,S,R){return Function.prototype.apply.call(c,S,R)},A;a&&typeof a.ownKeys=="function"?A=a.ownKeys:Object.getOwnPropertySymbols?A=function(c){return Object.getOwnPropertyNames(c).concat(Object.getOwnPropertySymbols(c))}:A=function(c){return Object.getOwnPropertyNames(c)};function _(c){console&&console.warn&&console.warn(c)}var D=Number.isNaN||function(c){return c!==c};function d(){d.init.call(this)}kt.exports=d,kt.exports.once=y,d.EventEmitter=d,d.prototype._events=void 0,d.prototype._eventsCount=0,d.prototype._maxListeners=void 0;var T=10;function l(c){if(typeof c!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof c)}Object.defineProperty(d,"defaultMaxListeners",{enumerable:!0,get:function(){return T},set:function(c){if(typeof c!="number"||c<0||D(c))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+c+".");T=c}}),d.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},d.prototype.setMaxListeners=function(c){if(typeof c!="number"||c<0||D(c))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+c+".");return this._maxListeners=c,this};function m(c){return c._maxListeners===void 0?d.defaultMaxListeners:c._maxListeners}d.prototype.getMaxListeners=function(){return m(this)},d.prototype.emit=function(c){for(var S=[],R=1;R0&&(s=S[0]),s instanceof Error)throw s;var q=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw q.context=s,q}var Q=x[c];if(Q===void 0)return!1;if(typeof Q=="function")v(Q,this,S);else for(var w=Q.length,J=W(Q,w),R=0;R0&&q.length>x&&!q.warned){q.warned=!0;var Q=new Error("Possible EventEmitter memory leak detected. "+q.length+" "+String(S)+" listeners added. Use emitter.setMaxListeners() to increase limit");Q.name="MaxListenersExceededWarning",Q.emitter=c,Q.type=S,Q.count=q.length,_(Q)}return c}d.prototype.addListener=function(c,S){return N(this,c,S,!1)},d.prototype.on=d.prototype.addListener,d.prototype.prependListener=function(c,S){return N(this,c,S,!0)};function P(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function C(c,S,R){var B={fired:!1,wrapFn:void 0,target:c,type:S,listener:R},x=P.bind(B);return x.listener=R,B.wrapFn=x,x}d.prototype.once=function(c,S){return l(S),this.on(c,C(this,c,S)),this},d.prototype.prependOnceListener=function(c,S){return l(S),this.prependListener(c,C(this,c,S)),this},d.prototype.removeListener=function(c,S){var R,B,x,s,q;if(l(S),B=this._events,B===void 0)return this;if(R=B[c],R===void 0)return this;if(R===S||R.listener===S)--this._eventsCount===0?this._events=Object.create(null):(delete B[c],B.removeListener&&this.emit("removeListener",c,R.listener||S));else if(typeof R!="function"){for(x=-1,s=R.length-1;s>=0;s--)if(R[s]===S||R[s].listener===S){q=R[s].listener,x=s;break}if(x<0)return this;x===0?R.shift():G(R,x),R.length===1&&(B[c]=R[0]),B.removeListener!==void 0&&this.emit("removeListener",c,q||S)}return this},d.prototype.off=d.prototype.removeListener,d.prototype.removeAllListeners=function(c){var S,R,B;if(R=this._events,R===void 0)return this;if(R.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):R[c]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete R[c]),this;if(arguments.length===0){var x=Object.keys(R),s;for(B=0;B=0;B--)this.removeListener(c,S[B]);return this};function U(c,S,R){var B=c._events;if(B===void 0)return[];var x=B[S];return x===void 0?[]:typeof x=="function"?R?[x.listener||x]:[x]:R?M(x):W(x,x.length)}d.prototype.listeners=function(c){return U(this,c,!0)},d.prototype.rawListeners=function(c){return U(this,c,!1)},d.listenerCount=function(c,S){return typeof c.listenerCount=="function"?c.listenerCount(S):$.call(c,S)},d.prototype.listenerCount=$;function $(c){var S=this._events;if(S!==void 0){var R=S[c];if(typeof R=="function")return 1;if(R!==void 0)return R.length}return 0}d.prototype.eventNames=function(){return this._eventsCount>0?A(this._events):[]};function W(c,S){for(var R=new Array(S),B=0;B0)throw new Error("Invalid string. Length must be a multiple of 4");var c=g.indexOf("=");c===-1&&(c=E);var S=c===E?0:4-c%4;return[c,S]}function P(g){var E=N(g),c=E[0],S=E[1];return(c+S)*3/4-S}function C(g,E,c){return(E+c)*3/4-c}function U(g){var E,c=N(g),S=c[0],R=c[1],B=new d(C(g,S,R)),x=0,s=R>0?S-4:S,q;for(q=0;q>16&255,B[x++]=E>>8&255,B[x++]=E&255;return R===2&&(E=D[g.charCodeAt(q)]<<2|D[g.charCodeAt(q+1)]>>4,B[x++]=E&255),R===1&&(E=D[g.charCodeAt(q)]<<10|D[g.charCodeAt(q+1)]<<4|D[g.charCodeAt(q+2)]>>2,B[x++]=E>>8&255,B[x++]=E&255),B}function $(g){return _[g>>18&63]+_[g>>12&63]+_[g>>6&63]+_[g&63]}function W(g,E,c){for(var S,R=[],B=E;Bs?s:x+B));return S===1?(E=g[c-1],R.push(_[E>>2]+_[E<<4&63]+"==")):S===2&&(E=(g[c-2]<<8)+g[c-1],R.push(_[E>>10]+_[E>>4&63]+_[E<<2&63]+"=")),R.join("")}var M={};M.read=function(g,E,c,S,R){var B,x,s=R*8-S-1,q=(1<>1,w=-7,J=c?R-1:0,et=c?-1:1,rt=g[E+J];for(J+=et,B=rt&(1<<-w)-1,rt>>=-w,w+=s;w>0;B=B*256+g[E+J],J+=et,w-=8);for(x=B&(1<<-w)-1,B>>=-w,w+=S;w>0;x=x*256+g[E+J],J+=et,w-=8);if(B===0)B=1-Q;else{if(B===q)return x?NaN:(rt?-1:1)*(1/0);x=x+Math.pow(2,S),B=B-Q}return(rt?-1:1)*x*Math.pow(2,B-S)},M.write=function(g,E,c,S,R,B){var x,s,q,Q=B*8-R-1,w=(1<>1,et=R===23?Math.pow(2,-24)-Math.pow(2,-77):0,rt=S?0:B-1,at=S?1:-1,Z=E<0||E===0&&1/E<0?1:0;for(E=Math.abs(E),isNaN(E)||E===1/0?(s=isNaN(E)?1:0,x=w):(x=Math.floor(Math.log(E)/Math.LN2),E*(q=Math.pow(2,-x))<1&&(x--,q*=2),x+J>=1?E+=et/q:E+=et*Math.pow(2,1-J),E*q>=2&&(x++,q/=2),x+J>=w?(s=0,x=w):x+J>=1?(s=(E*q-1)*Math.pow(2,R),x=x+J):(s=E*Math.pow(2,J-1)*Math.pow(2,R),x=0));R>=8;g[c+rt]=s&255,rt+=at,s/=256,R-=8);for(x=x<0;g[c+rt]=x&255,rt+=at,x/=256,Q-=8);g[c+rt-at]|=Z*128},(function(g){const E=A,c=M,S=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;g.Buffer=w,g.SlowBuffer=I,g.INSPECT_MAX_BYTES=50;const R=2147483647;g.kMaxLength=R;const{Uint8Array:B,ArrayBuffer:x,SharedArrayBuffer:s}=globalThis;w.TYPED_ARRAY_SUPPORT=q(),!w.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function q(){try{const t=new B(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,B.prototype),Object.setPrototypeOf(t,e),t.foo()===42}catch{return!1}}Object.defineProperty(w.prototype,"parent",{enumerable:!0,get:function(){if(w.isBuffer(this))return this.buffer}}),Object.defineProperty(w.prototype,"offset",{enumerable:!0,get:function(){if(w.isBuffer(this))return this.byteOffset}});function Q(t){if(t>R)throw new RangeError('The value "'+t+'" is invalid for option "size"');const e=new B(t);return Object.setPrototypeOf(e,w.prototype),e}function w(t,e,o){if(typeof t=="number"){if(typeof e=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return at(t)}return J(t,e,o)}w.poolSize=8192;function J(t,e,o){if(typeof t=="string")return Z(t,e);if(x.isView(t))return pt(t);if(t==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(vt(t,x)||t&&vt(t.buffer,x)||typeof s<"u"&&(vt(t,s)||t&&vt(t.buffer,s)))return ot(t,e,o);if(typeof t=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const h=t.valueOf&&t.valueOf();if(h!=null&&h!==t)return w.from(h,e,o);const O=yt(t);if(O)return O;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof t[Symbol.toPrimitive]=="function")return w.from(t[Symbol.toPrimitive]("string"),e,o);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}w.from=function(t,e,o){return J(t,e,o)},Object.setPrototypeOf(w.prototype,B.prototype),Object.setPrototypeOf(w,B);function et(t){if(typeof t!="number")throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function rt(t,e,o){return et(t),t<=0?Q(t):e!==void 0?typeof o=="string"?Q(t).fill(e,o):Q(t).fill(e):Q(t)}w.alloc=function(t,e,o){return rt(t,e,o)};function at(t){return et(t),Q(t<0?0:ht(t)|0)}w.allocUnsafe=function(t){return at(t)},w.allocUnsafeSlow=function(t){return at(t)};function Z(t,e){if((typeof e!="string"||e==="")&&(e="utf8"),!w.isEncoding(e))throw new TypeError("Unknown encoding: "+e);const o=j(t,e)|0;let h=Q(o);const O=h.write(t,e);return O!==o&&(h=h.slice(0,O)),h}function lt(t){const e=t.length<0?0:ht(t.length)|0,o=Q(e);for(let h=0;h=R)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+R.toString(16)+" bytes");return t|0}function I(t){return+t!=t&&(t=0),w.alloc(+t)}w.isBuffer=function(t){return t!=null&&t._isBuffer===!0&&t!==w.prototype},w.compare=function(t,e){if(vt(t,B)&&(t=w.from(t,t.offset,t.byteLength)),vt(e,B)&&(e=w.from(e,e.offset,e.byteLength)),!w.isBuffer(t)||!w.isBuffer(e))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;let o=t.length,h=e.length;for(let O=0,k=Math.min(o,h);Oh.length?(w.isBuffer(k)||(k=w.from(k)),k.copy(h,O)):B.prototype.set.call(h,k,O);else if(w.isBuffer(k))k.copy(h,O);else throw new TypeError('"list" argument must be an Array of Buffers');O+=k.length}return h};function j(t,e){if(w.isBuffer(t))return t.length;if(x.isView(t)||vt(t,x))return t.byteLength;if(typeof t!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);const o=t.length,h=arguments.length>2&&arguments[2]===!0;if(!h&&o===0)return 0;let O=!1;for(;;)switch(e){case"ascii":case"latin1":case"binary":return o;case"utf8":case"utf-8":return Vt(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return o*2;case"hex":return o>>>1;case"base64":return ze(t).length;default:if(O)return h?-1:Vt(t).length;e=(""+e).toLowerCase(),O=!0}}w.byteLength=j;function Y(t,e,o){let h=!1;if((e===void 0||e<0)&&(e=0),e>this.length||((o===void 0||o>this.length)&&(o=this.length),o<=0)||(o>>>=0,e>>>=0,o<=e))return"";for(t||(t="utf8");;)switch(t){case"hex":return gt(this,e,o);case"utf8":case"utf-8":return X(this,e,o);case"ascii":return ft(this,e,o);case"latin1":case"binary":return F(this,e,o);case"base64":return V(this,e,o);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return mt(this,e,o);default:if(h)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),h=!0}}w.prototype._isBuffer=!0;function b(t,e,o){const h=t[e];t[e]=t[o],t[o]=h}w.prototype.swap16=function(){const t=this.length;if(t%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let e=0;ee&&(t+=" ... "),""},S&&(w.prototype[S]=w.prototype.inspect),w.prototype.compare=function(t,e,o,h,O){if(vt(t,B)&&(t=w.from(t,t.offset,t.byteLength)),!w.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(e===void 0&&(e=0),o===void 0&&(o=t?t.length:0),h===void 0&&(h=0),O===void 0&&(O=this.length),e<0||o>t.length||h<0||O>this.length)throw new RangeError("out of range index");if(h>=O&&e>=o)return 0;if(h>=O)return-1;if(e>=o)return 1;if(e>>>=0,o>>>=0,h>>>=0,O>>>=0,this===t)return 0;let k=O-h,H=o-e;const ut=Math.min(k,H),bt=this.slice(h,O),st=t.slice(e,o);for(let it=0;it2147483647?o=2147483647:o<-2147483648&&(o=-2147483648),o=+o,Yt(o)&&(o=O?0:t.length-1),o<0&&(o=t.length+o),o>=t.length){if(O)return-1;o=t.length-1}else if(o<0)if(O)o=0;else return-1;if(typeof e=="string"&&(e=w.from(e,h)),w.isBuffer(e))return e.length===0?-1:r(t,e,o,h,O);if(typeof e=="number")return e=e&255,typeof B.prototype.indexOf=="function"?O?B.prototype.indexOf.call(t,e,o):B.prototype.lastIndexOf.call(t,e,o):r(t,[e],o,h,O);throw new TypeError("val must be string, number or Buffer")}function r(t,e,o,h,O){let k=1,H=t.length,ut=e.length;if(h!==void 0&&(h=String(h).toLowerCase(),h==="ucs2"||h==="ucs-2"||h==="utf16le"||h==="utf-16le")){if(t.length<2||e.length<2)return-1;k=2,H/=2,ut/=2,o/=2}function bt(it,dt){return k===1?it[dt]:it.readUInt16BE(dt*k)}let st;if(O){let it=-1;for(st=o;stH&&(o=H-ut),st=o;st>=0;st--){let it=!0;for(let dt=0;dtO&&(h=O)):h=O;const k=e.length;h>k/2&&(h=k/2);let H;for(H=0;H>>0,isFinite(o)?(o=o>>>0,h===void 0&&(h="utf8")):(h=o,o=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const O=this.length-e;if((o===void 0||o>O)&&(o=O),t.length>0&&(o<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");h||(h="utf8");let k=!1;for(;;)switch(h){case"hex":return p(this,t,e,o);case"utf8":case"utf-8":return f(this,t,e,o);case"ascii":case"latin1":case"binary":return i(this,t,e,o);case"base64":return u(this,t,e,o);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return L(this,t,e,o);default:if(k)throw new TypeError("Unknown encoding: "+h);h=(""+h).toLowerCase(),k=!0}},w.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function V(t,e,o){return e===0&&o===t.length?E.fromByteArray(t):E.fromByteArray(t.slice(e,o))}function X(t,e,o){o=Math.min(t.length,o);const h=[];let O=e;for(;O239?4:k>223?3:k>191?2:1;if(O+ut<=o){let bt,st,it,dt;switch(ut){case 1:k<128&&(H=k);break;case 2:bt=t[O+1],(bt&192)===128&&(dt=(k&31)<<6|bt&63,dt>127&&(H=dt));break;case 3:bt=t[O+1],st=t[O+2],(bt&192)===128&&(st&192)===128&&(dt=(k&15)<<12|(bt&63)<<6|st&63,dt>2047&&(dt<55296||dt>57343)&&(H=dt));break;case 4:bt=t[O+1],st=t[O+2],it=t[O+3],(bt&192)===128&&(st&192)===128&&(it&192)===128&&(dt=(k&15)<<18|(bt&63)<<12|(st&63)<<6|it&63,dt>65535&&dt<1114112&&(H=dt))}}H===null?(H=65533,ut=1):H>65535&&(H-=65536,h.push(H>>>10&1023|55296),H=56320|H&1023),h.push(H),O+=ut}return K(h)}const z=4096;function K(t){const e=t.length;if(e<=z)return String.fromCharCode.apply(String,t);let o="",h=0;for(;hh)&&(o=h);let O="";for(let k=e;ko&&(t=o),e<0?(e+=o,e<0&&(e=0)):e>o&&(e=o),eo)throw new RangeError("Trying to access beyond buffer length")}w.prototype.readUintLE=w.prototype.readUIntLE=function(t,e,o){t=t>>>0,e=e>>>0,o||nt(t,e,this.length);let h=this[t],O=1,k=0;for(;++k>>0,e=e>>>0,o||nt(t,e,this.length);let h=this[t+--e],O=1;for(;e>0&&(O*=256);)h+=this[t+--e]*O;return h},w.prototype.readUint8=w.prototype.readUInt8=function(t,e){return t=t>>>0,e||nt(t,1,this.length),this[t]},w.prototype.readUint16LE=w.prototype.readUInt16LE=function(t,e){return t=t>>>0,e||nt(t,2,this.length),this[t]|this[t+1]<<8},w.prototype.readUint16BE=w.prototype.readUInt16BE=function(t,e){return t=t>>>0,e||nt(t,2,this.length),this[t]<<8|this[t+1]},w.prototype.readUint32LE=w.prototype.readUInt32LE=function(t,e){return t=t>>>0,e||nt(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+this[t+3]*16777216},w.prototype.readUint32BE=w.prototype.readUInt32BE=function(t,e){return t=t>>>0,e||nt(t,4,this.length),this[t]*16777216+(this[t+1]<<16|this[t+2]<<8|this[t+3])},w.prototype.readBigUInt64LE=_t(function(t){t=t>>>0,Pt(t,"offset");const e=this[t],o=this[t+7];(e===void 0||o===void 0)&&Ct(t,this.length-8);const h=e+this[++t]*2**8+this[++t]*2**16+this[++t]*2**24,O=this[++t]+this[++t]*2**8+this[++t]*2**16+o*2**24;return BigInt(h)+(BigInt(O)<>>0,Pt(t,"offset");const e=this[t],o=this[t+7];(e===void 0||o===void 0)&&Ct(t,this.length-8);const h=e*2**24+this[++t]*2**16+this[++t]*2**8+this[++t],O=this[++t]*2**24+this[++t]*2**16+this[++t]*2**8+o;return(BigInt(h)<>>0,e=e>>>0,o||nt(t,e,this.length);let h=this[t],O=1,k=0;for(;++k=O&&(h-=Math.pow(2,8*e)),h},w.prototype.readIntBE=function(t,e,o){t=t>>>0,e=e>>>0,o||nt(t,e,this.length);let h=e,O=1,k=this[t+--h];for(;h>0&&(O*=256);)k+=this[t+--h]*O;return O*=128,k>=O&&(k-=Math.pow(2,8*e)),k},w.prototype.readInt8=function(t,e){return t=t>>>0,e||nt(t,1,this.length),this[t]&128?(255-this[t]+1)*-1:this[t]},w.prototype.readInt16LE=function(t,e){t=t>>>0,e||nt(t,2,this.length);const o=this[t]|this[t+1]<<8;return o&32768?o|4294901760:o},w.prototype.readInt16BE=function(t,e){t=t>>>0,e||nt(t,2,this.length);const o=this[t+1]|this[t]<<8;return o&32768?o|4294901760:o},w.prototype.readInt32LE=function(t,e){return t=t>>>0,e||nt(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},w.prototype.readInt32BE=function(t,e){return t=t>>>0,e||nt(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},w.prototype.readBigInt64LE=_t(function(t){t=t>>>0,Pt(t,"offset");const e=this[t],o=this[t+7];(e===void 0||o===void 0)&&Ct(t,this.length-8);const h=this[t+4]+this[t+5]*2**8+this[t+6]*2**16+(o<<24);return(BigInt(h)<>>0,Pt(t,"offset");const e=this[t],o=this[t+7];(e===void 0||o===void 0)&&Ct(t,this.length-8);const h=(e<<24)+this[++t]*2**16+this[++t]*2**8+this[++t];return(BigInt(h)<>>0,e||nt(t,4,this.length),c.read(this,t,!0,23,4)},w.prototype.readFloatBE=function(t,e){return t=t>>>0,e||nt(t,4,this.length),c.read(this,t,!1,23,4)},w.prototype.readDoubleLE=function(t,e){return t=t>>>0,e||nt(t,8,this.length),c.read(this,t,!0,52,8)},w.prototype.readDoubleBE=function(t,e){return t=t>>>0,e||nt(t,8,this.length),c.read(this,t,!1,52,8)};function ct(t,e,o,h,O,k){if(!w.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>O||et.length)throw new RangeError("Index out of range")}w.prototype.writeUintLE=w.prototype.writeUIntLE=function(t,e,o,h){if(t=+t,e=e>>>0,o=o>>>0,!h){const H=Math.pow(2,8*o)-1;ct(this,t,e,o,H,0)}let O=1,k=0;for(this[e]=t&255;++k>>0,o=o>>>0,!h){const H=Math.pow(2,8*o)-1;ct(this,t,e,o,H,0)}let O=o-1,k=1;for(this[e+O]=t&255;--O>=0&&(k*=256);)this[e+O]=t/k&255;return e+o},w.prototype.writeUint8=w.prototype.writeUInt8=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,1,255,0),this[e]=t&255,e+1},w.prototype.writeUint16LE=w.prototype.writeUInt16LE=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,2,65535,0),this[e]=t&255,this[e+1]=t>>>8,e+2},w.prototype.writeUint16BE=w.prototype.writeUInt16BE=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=t&255,e+2},w.prototype.writeUint32LE=w.prototype.writeUInt32LE=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=t&255,e+4},w.prototype.writeUint32BE=w.prototype.writeUInt32BE=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=t&255,e+4};function Ot(t,e,o,h,O){Xe(e,h,O,t,o,7);let k=Number(e&BigInt(4294967295));t[o++]=k,k=k>>8,t[o++]=k,k=k>>8,t[o++]=k,k=k>>8,t[o++]=k;let H=Number(e>>BigInt(32)&BigInt(4294967295));return t[o++]=H,H=H>>8,t[o++]=H,H=H>>8,t[o++]=H,H=H>>8,t[o++]=H,o}function It(t,e,o,h,O){Xe(e,h,O,t,o,7);let k=Number(e&BigInt(4294967295));t[o+7]=k,k=k>>8,t[o+6]=k,k=k>>8,t[o+5]=k,k=k>>8,t[o+4]=k;let H=Number(e>>BigInt(32)&BigInt(4294967295));return t[o+3]=H,H=H>>8,t[o+2]=H,H=H>>8,t[o+1]=H,H=H>>8,t[o]=H,o+8}w.prototype.writeBigUInt64LE=_t(function(t,e=0){return Ot(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))}),w.prototype.writeBigUInt64BE=_t(function(t,e=0){return It(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))}),w.prototype.writeIntLE=function(t,e,o,h){if(t=+t,e=e>>>0,!h){const ut=Math.pow(2,8*o-1);ct(this,t,e,o,ut-1,-ut)}let O=0,k=1,H=0;for(this[e]=t&255;++O>0)-H&255;return e+o},w.prototype.writeIntBE=function(t,e,o,h){if(t=+t,e=e>>>0,!h){const ut=Math.pow(2,8*o-1);ct(this,t,e,o,ut-1,-ut)}let O=o-1,k=1,H=0;for(this[e+O]=t&255;--O>=0&&(k*=256);)t<0&&H===0&&this[e+O+1]!==0&&(H=1),this[e+O]=(t/k>>0)-H&255;return e+o},w.prototype.writeInt8=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=t&255,e+1},w.prototype.writeInt16LE=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,2,32767,-32768),this[e]=t&255,this[e+1]=t>>>8,e+2},w.prototype.writeInt16BE=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=t&255,e+2},w.prototype.writeInt32LE=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,4,2147483647,-2147483648),this[e]=t&255,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},w.prototype.writeInt32BE=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=t&255,e+4},w.prototype.writeBigInt64LE=_t(function(t,e=0){return Ot(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),w.prototype.writeBigInt64BE=_t(function(t,e=0){return It(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function St(t,e,o,h,O,k){if(o+h>t.length)throw new RangeError("Index out of range");if(o<0)throw new RangeError("Index out of range")}function wt(t,e,o,h,O){return e=+e,o=o>>>0,O||St(t,e,o,4),c.write(t,e,o,h,23,4),o+4}w.prototype.writeFloatLE=function(t,e,o){return wt(this,t,e,!0,o)},w.prototype.writeFloatBE=function(t,e,o){return wt(this,t,e,!1,o)};function Et(t,e,o,h,O){return e=+e,o=o>>>0,O||St(t,e,o,8),c.write(t,e,o,h,52,8),o+8}w.prototype.writeDoubleLE=function(t,e,o){return Et(this,t,e,!0,o)},w.prototype.writeDoubleBE=function(t,e,o){return Et(this,t,e,!1,o)},w.prototype.copy=function(t,e,o,h){if(!w.isBuffer(t))throw new TypeError("argument should be a Buffer");if(o||(o=0),!h&&h!==0&&(h=this.length),e>=t.length&&(e=t.length),e||(e=0),h>0&&h=this.length)throw new RangeError("Index out of range");if(h<0)throw new RangeError("sourceEnd out of bounds");h>this.length&&(h=this.length),t.length-e>>0,o=o===void 0?this.length:o>>>0,t||(t=0);let O;if(typeof t=="number")for(O=e;O2**32?O=qe(String(o)):typeof o=="bigint"&&(O=String(o),(o>BigInt(2)**BigInt(32)||o<-(BigInt(2)**BigInt(32)))&&(O=qe(O)),O+="n"),h+=` It must be ${e}. Received ${O}`,h},RangeError);function qe(t){let e="",o=t.length;const h=t[0]==="-"?1:0;for(;o>=h+4;o-=3)e=`_${t.slice(o-3,o)}${e}`;return`${t.slice(0,o)}${e}`}function ho(t,e,o){Pt(e,"offset"),(t[e]===void 0||t[e+o]===void 0)&&Ct(e,t.length-(o+1))}function Xe(t,e,o,h,O,k){if(t>o||t= 0${H} and < 2${H} ** ${(k+1)*8}${H}`:ut=`>= -(2${H} ** ${(k+1)*8-1}${H}) and < 2 ** ${(k+1)*8-1}${H}`,new Rt.ERR_OUT_OF_RANGE("value",ut,t)}ho(h,O,k)}function Pt(t,e){if(typeof t!="number")throw new Rt.ERR_INVALID_ARG_TYPE(e,"number",t)}function Ct(t,e,o){throw Math.floor(t)!==t?(Pt(t,o),new Rt.ERR_OUT_OF_RANGE("offset","an integer",t)):e<0?new Rt.ERR_BUFFER_OUT_OF_BOUNDS:new Rt.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${e}`,t)}const yo=/[^+/0-9A-Za-z-_]/g;function go(t){if(t=t.split("=")[0],t=t.trim().replace(yo,""),t.length<2)return"";for(;t.length%4!==0;)t=t+"=";return t}function Vt(t,e){e=e||1/0;let o;const h=t.length;let O=null;const k=[];for(let H=0;H55295&&o<57344){if(!O){if(o>56319){(e-=3)>-1&&k.push(239,191,189);continue}else if(H+1===h){(e-=3)>-1&&k.push(239,191,189);continue}O=o;continue}if(o<56320){(e-=3)>-1&&k.push(239,191,189),O=o;continue}o=(O-55296<<10|o-56320)+65536}else O&&(e-=3)>-1&&k.push(239,191,189);if(O=null,o<128){if((e-=1)<0)break;k.push(o)}else if(o<2048){if((e-=2)<0)break;k.push(o>>6|192,o&63|128)}else if(o<65536){if((e-=3)<0)break;k.push(o>>12|224,o>>6&63|128,o&63|128)}else if(o<1114112){if((e-=4)<0)break;k.push(o>>18|240,o>>12&63|128,o>>6&63|128,o&63|128)}else throw new Error("Invalid code point")}return k}function bo(t){const e=[];for(let o=0;o>8,O=o%256,k.push(O),k.push(h);return k}function ze(t){return E.toByteArray(go(t))}function jt(t,e,o,h){let O;for(O=0;O=e.length||O>=t.length);++O)e[O+o]=t[O];return O}function vt(t,e){return t instanceof e||t!=null&&t.constructor!=null&&t.constructor.name!=null&&t.constructor.name===e.name}function Yt(t){return t!==t}const vo=(function(){const t="0123456789abcdef",e=new Array(256);for(let o=0;o<16;++o){const h=o*16;for(let O=0;O<16;++O)e[h+O]=t[o]+t[O]}return e})();function _t(t){return typeof BigInt>"u"?wo:t}function wo(){throw new Error("BigInt not supported")}})(v);const y=v.Buffer;a.Blob=v.Blob,a.BlobOptions=v.BlobOptions,a.Buffer=v.Buffer,a.File=v.File,a.FileOptions=v.FileOptions,a.INSPECT_MAX_BYTES=v.INSPECT_MAX_BYTES,a.SlowBuffer=v.SlowBuffer,a.TranscodeEncoding=v.TranscodeEncoding,a.atob=v.atob,a.btoa=v.btoa,a.constants=v.constants,a.default=y,a.isAscii=v.isAscii,a.isUtf8=v.isUtf8,a.kMaxLength=v.kMaxLength,a.kStringMaxLength=v.kStringMaxLength,a.resolveObjectURL=v.resolveObjectURL,a.transcode=v.transcode})(rr)),rr}var or={},ir={},ar,ur;function Zn(){return ur||(ur=1,ar=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var a={},v=Symbol("test"),A=Object(v);if(typeof v=="string"||Object.prototype.toString.call(v)!=="[object Symbol]"||Object.prototype.toString.call(A)!=="[object Symbol]")return!1;var _=42;a[v]=_;for(var D in a)return!1;if(typeof Object.keys=="function"&&Object.keys(a).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(a).length!==0)return!1;var d=Object.getOwnPropertySymbols(a);if(d.length!==1||d[0]!==v||!Object.prototype.propertyIsEnumerable.call(a,v))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var T=Object.getOwnPropertyDescriptor(a,v);if(T.value!==_||T.enumerable!==!0)return!1}return!0}),ar}var Xt,sr;function Ut(){if(sr)return Xt;sr=1;var a=Zn();return Xt=function(){return a()&&!!Symbol.toStringTag},Xt}var fr,cr;function Jn(){return cr||(cr=1,fr=Object),fr}var lr,pr;function Ro(){return pr||(pr=1,lr=Error),lr}var hr,yr;function Po(){return yr||(yr=1,hr=EvalError),hr}var dr,gr;function No(){return gr||(gr=1,dr=RangeError),dr}var br,mr;function Bo(){return mr||(mr=1,br=ReferenceError),br}var vr,wr;function to(){return wr||(wr=1,vr=SyntaxError),vr}var Er,Sr;function Mt(){return Sr||(Sr=1,Er=TypeError),Er}var _r,Tr;function Lo(){return Tr||(Tr=1,_r=URIError),_r}var Ar,Or;function Co(){return Or||(Or=1,Ar=Math.abs),Ar}var Ir,Rr;function Mo(){return Rr||(Rr=1,Ir=Math.floor),Ir}var Pr,Nr;function xo(){return Nr||(Nr=1,Pr=Math.max),Pr}var Br,Lr;function Do(){return Lr||(Lr=1,Br=Math.min),Br}var Cr,Mr;function jo(){return Mr||(Mr=1,Cr=Math.pow),Cr}var xr,Dr;function ko(){return Dr||(Dr=1,xr=Math.round),xr}var jr,kr;function Fo(){return kr||(kr=1,jr=Number.isNaN||function(a){return a!==a}),jr}var zt,Fr;function Uo(){if(Fr)return zt;Fr=1;var a=Fo();return zt=function(v){return a(v)||v===0?v:v<0?-1:1},zt}var Ur,Gr;function Go(){return Gr||(Gr=1,Ur=Object.getOwnPropertyDescriptor),Ur}var Qt,Wr;function Bt(){if(Wr)return Qt;Wr=1;var a=Go();if(a)try{a([],"length")}catch{a=null}return Qt=a,Qt}var Kt,Vr;function Gt(){if(Vr)return Kt;Vr=1;var a=Object.defineProperty||!1;if(a)try{a({},"a",{value:1})}catch{a=!1}return Kt=a,Kt}var Zt,Yr;function Wo(){if(Yr)return Zt;Yr=1;var a=typeof Symbol<"u"&&Symbol,v=Zn();return Zt=function(){return typeof a!="function"||typeof Symbol!="function"||typeof a("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:v()},Zt}var Hr,$r;function eo(){return $r||($r=1,Hr=typeof Reflect<"u"&&Reflect.getPrototypeOf||null),Hr}var Jt,qr;function ro(){if(qr)return Jt;qr=1;var a=Jn();return Jt=a.getPrototypeOf||null,Jt}var te,Xr;function Vo(){if(Xr)return te;Xr=1;var a="Function.prototype.bind called on incompatible ",v=Object.prototype.toString,A=Math.max,_="[object Function]",D=function(l,m){for(var N=[],P=0;P"u"||!B?a:B(Uint8Array),et={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?a:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?a:ArrayBuffer,"%ArrayIteratorPrototype%":R&&B?B([][Symbol.iterator]()):a,"%AsyncFromSyncIteratorPrototype%":a,"%AsyncFunction%":w,"%AsyncGenerator%":w,"%AsyncGeneratorFunction%":w,"%AsyncIteratorPrototype%":w,"%Atomics%":typeof Atomics>"u"?a:Atomics,"%BigInt%":typeof BigInt>"u"?a:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?a:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?a:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?a:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":A,"%eval%":eval,"%EvalError%":_,"%Float16Array%":typeof Float16Array>"u"?a:Float16Array,"%Float32Array%":typeof Float32Array>"u"?a:Float32Array,"%Float64Array%":typeof Float64Array>"u"?a:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?a:FinalizationRegistry,"%Function%":M,"%GeneratorFunction%":w,"%Int8Array%":typeof Int8Array>"u"?a:Int8Array,"%Int16Array%":typeof Int16Array>"u"?a:Int16Array,"%Int32Array%":typeof Int32Array>"u"?a:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":R&&B?B(B([][Symbol.iterator]())):a,"%JSON%":typeof JSON=="object"?JSON:a,"%Map%":typeof Map>"u"?a:Map,"%MapIteratorPrototype%":typeof Map>"u"||!R||!B?a:B(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":v,"%Object.getOwnPropertyDescriptor%":g,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?a:Promise,"%Proxy%":typeof Proxy>"u"?a:Proxy,"%RangeError%":D,"%ReferenceError%":d,"%Reflect%":typeof Reflect>"u"?a:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?a:Set,"%SetIteratorPrototype%":typeof Set>"u"||!R||!B?a:B(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?a:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":R&&B?B(""[Symbol.iterator]()):a,"%Symbol%":R?Symbol:a,"%SyntaxError%":T,"%ThrowTypeError%":S,"%TypedArray%":J,"%TypeError%":l,"%Uint8Array%":typeof Uint8Array>"u"?a:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?a:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?a:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?a:Uint32Array,"%URIError%":m,"%WeakMap%":typeof WeakMap>"u"?a:WeakMap,"%WeakRef%":typeof WeakRef>"u"?a:WeakRef,"%WeakSet%":typeof WeakSet>"u"?a:WeakSet,"%Function.prototype.call%":Q,"%Function.prototype.apply%":q,"%Object.defineProperty%":E,"%Object.getPrototypeOf%":x,"%Math.abs%":N,"%Math.floor%":P,"%Math.max%":C,"%Math.min%":U,"%Math.pow%":$,"%Math.round%":W,"%Math.sign%":G,"%Reflect.getPrototypeOf%":s};if(B)try{null.error}catch(p){var rt=B(B(p));et["%Error.prototype%"]=rt}var at=function p(f){var i;if(f==="%AsyncFunction%")i=y("async function () {}");else if(f==="%GeneratorFunction%")i=y("function* () {}");else if(f==="%AsyncGeneratorFunction%")i=y("async function* () {}");else if(f==="%AsyncGenerator%"){var u=p("%AsyncGeneratorFunction%");u&&(i=u.prototype)}else if(f==="%AsyncIteratorPrototype%"){var L=p("%AsyncGenerator%");L&&B&&(i=B(L.prototype))}return et[f]=i,i},Z={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},lt=xt(),pt=oo(),ot=lt.call(Q,Array.prototype.concat),yt=lt.call(q,Array.prototype.splice),ht=lt.call(Q,String.prototype.replace),I=lt.call(Q,String.prototype.slice),j=lt.call(Q,RegExp.prototype.exec),Y=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,b=/\\(\\)?/g,n=function(p){var f=I(p,0,1),i=I(p,-1);if(f==="%"&&i!=="%")throw new T("invalid intrinsic syntax, expected closing `%`");if(i==="%"&&f!=="%")throw new T("invalid intrinsic syntax, expected opening `%`");var u=[];return ht(p,Y,function(L,V,X,z){u[u.length]=X?ht(z,b,"$1"):V||L}),u},r=function(p,f){var i=p,u;if(pt(Z,i)&&(u=Z[i],i="%"+u[0]+"%"),pt(et,i)){var L=et[i];if(L===w&&(L=at(i)),typeof L>"u"&&!f)throw new l("intrinsic "+p+" exists, but is not available. Please file an issue!");return{alias:u,name:i,value:L}}throw new T("intrinsic "+p+" does not exist!")};return ue=function(p,f){if(typeof p!="string"||p.length===0)throw new l("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof f!="boolean")throw new l('"allowMissing" argument must be a boolean');if(j(/^%?[^%]*%?$/,p)===null)throw new T("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var i=n(p),u=i.length>0?i[0]:"",L=r("%"+u+"%",f),V=L.name,X=L.value,z=!1,K=L.alias;K&&(u=K[0],yt(i,ot([0,1],K)));for(var ft=1,F=!0;ft=i.length){var ct=g(X,gt);F=!!ct,F&&"get"in ct&&!("originalValue"in ct.get)?X=ct.get:X=X[gt]}else F=pt(X,gt),X=X[gt];F&&!z&&(et[V]=X)}}return X},ue}var se,fn;function Dt(){if(fn)return se;fn=1;var a=io(),v=Ye(),A=v([a("%String.prototype.indexOf%")]);return se=function(_,D){var d=a(_,!!D);return typeof d=="function"&&A(_,".prototype.")>-1?v([d]):d},se}var fe,cn;function $o(){if(cn)return fe;cn=1;var a=Ut()(),v=Dt(),A=v("Object.prototype.toString"),_=function(T){return a&&T&&typeof T=="object"&&Symbol.toStringTag in T?!1:A(T)==="[object Arguments]"},D=function(T){return _(T)?!0:T!==null&&typeof T=="object"&&"length"in T&&typeof T.length=="number"&&T.length>=0&&A(T)!=="[object Array]"&&"callee"in T&&A(T.callee)==="[object Function]"},d=(function(){return _(arguments)})();return _.isLegacyArguments=D,fe=d?_:D,fe}var ce,ln;function qo(){if(ln)return ce;ln=1;var a=Dt(),v=Ut()(),A=oo(),_=Bt(),D;if(v){var d=a("RegExp.prototype.exec"),T={},l=function(){throw T},m={toString:l,valueOf:l};typeof Symbol.toPrimitive=="symbol"&&(m[Symbol.toPrimitive]=l),D=function(C){if(!C||typeof C!="object")return!1;var U=_(C,"lastIndex"),$=U&&A(U,"value");if(!$)return!1;try{d(C,m)}catch(W){return W===T}}}else{var N=a("Object.prototype.toString"),P="[object RegExp]";D=function(C){return!C||typeof C!="object"&&typeof C!="function"?!1:N(C)===P}}return ce=D,ce}var le,pn;function Xo(){if(pn)return le;pn=1;var a=Dt(),v=qo(),A=a("RegExp.prototype.exec"),_=Mt();return le=function(D){if(!v(D))throw new _("`regex` must be a RegExp");return function(d){return A(D,d)!==null}},le}var pe,hn;function zo(){if(hn)return pe;hn=1;const a=function*(){}.constructor;return pe=()=>a,pe}var he,yn;function Qo(){if(yn)return he;yn=1;var a=Dt(),v=Xo(),A=v(/^\s*(?:function)?\*/),_=Ut()(),D=He(),d=a("Object.prototype.toString"),T=a("Function.prototype.toString"),l=zo();return he=function(m){if(typeof m!="function")return!1;if(A(T(m)))return!0;if(!_){var N=d(m);return N==="[object GeneratorFunction]"}if(!D)return!1;var P=l();return P&&D(m)===P.prototype},he}var ye,dn;function Ko(){if(dn)return ye;dn=1;var a=Function.prototype.toString,v=typeof Reflect=="object"&&Reflect!==null&&Reflect.apply,A,_;if(typeof v=="function"&&typeof Object.defineProperty=="function")try{A=Object.defineProperty({},"length",{get:function(){throw _}}),_={},v(function(){throw 42},null,A)}catch(g){g!==_&&(v=null)}else v=null;var D=/^\s*class\b/,d=function(g){try{var E=a.call(g);return D.test(E)}catch{return!1}},T=function(g){try{return d(g)?!1:(a.call(g),!0)}catch{return!1}},l=Object.prototype.toString,m="[object Object]",N="[object Function]",P="[object GeneratorFunction]",C="[object HTMLAllCollection]",U="[object HTML document.all class]",$="[object HTMLCollection]",W=typeof Symbol=="function"&&!!Symbol.toStringTag,G=!(0 in[,]),M=function(){return!1};if(typeof document=="object"){var y=document.all;l.call(y)===l.call(document.all)&&(M=function(g){if((G||!g)&&(typeof g>"u"||typeof g=="object"))try{var E=l.call(g);return(E===C||E===U||E===$||E===m)&&g("")==null}catch{}return!1})}return ye=v?function(g){if(M(g))return!0;if(!g||typeof g!="function"&&typeof g!="object")return!1;try{v(g,null,A)}catch(E){if(E!==_)return!1}return!d(g)&&T(g)}:function(g){if(M(g))return!0;if(!g||typeof g!="function"&&typeof g!="object")return!1;if(W)return T(g);if(d(g))return!1;var E=l.call(g);return E!==N&&E!==P&&!/^\[object HTML/.test(E)?!1:T(g)},ye}var de,gn;function Zo(){if(gn)return de;gn=1;var a=Ko(),v=Object.prototype.toString,A=Object.prototype.hasOwnProperty,_=function(l,m,N){for(var P=0,C=l.length;P=3&&(P=N),T(l)?_(l,m,P):typeof l=="string"?D(l,m,P):d(l,m,P)},de}var bn,mn;function Jo(){return mn||(mn=1,bn=["Float16Array","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"]),bn}var ge,vn;function ti(){if(vn)return ge;vn=1;var a=Jo(),v=typeof globalThis>"u"?Tt:globalThis;return ge=function(){for(var A=[],_=0;_3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new A("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new A("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new A("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new A("`loose`, if provided, must be a boolean");var l=arguments.length>3?arguments[3]:null,m=arguments.length>4?arguments[4]:null,N=arguments.length>5?arguments[5]:null,P=arguments.length>6?arguments[6]:!1,C=!!_&&_(D,d);if(a)a(D,d,{configurable:N===null&&C?C.configurable:!N,enumerable:l===null&&C?C.enumerable:!l,value:T,writable:m===null&&C?C.writable:!m});else if(P||!l&&!m&&!N)D[d]=T;else throw new v("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},be}var me,Sn;function ri(){if(Sn)return me;Sn=1;var a=Gt(),v=function(){return!!a};return v.hasArrayLengthDefineBug=function(){if(!a)return null;try{return a([],"length",{value:1}).length!==1}catch{return!0}},me=v,me}var ve,_n;function ni(){if(_n)return ve;_n=1;var a=io(),v=ei(),A=ri()(),_=Bt(),D=Mt(),d=a("%Math.floor%");return ve=function(T,l){if(typeof T!="function")throw new D("`fn` is not a function");if(typeof l!="number"||l<0||l>4294967295||d(l)!==l)throw new D("`length` must be a positive 32-bit integer");var m=arguments.length>2&&!!arguments[2],N=!0,P=!0;if("length"in T&&_){var C=_(T,"length");C&&!C.configurable&&(N=!1),C&&!C.writable&&(P=!1)}return(N||P||!m)&&(A?v(T,"length",l,!0,!0):v(T,"length",l)),T},ve}var we,Tn;function oi(){if(Tn)return we;Tn=1;var a=xt(),v=Ve(),A=no();return we=function(){return A(a,v,arguments)},we}var An;function ii(){return An||(An=1,(function(a){var v=ni(),A=Gt(),_=Ye(),D=oi();a.exports=function(d){var T=_(arguments),l=1+d.length-(arguments.length-1);return v(T,l>0?l:0,!0)},A?A(a.exports,"apply",{value:D}):a.exports.apply=D})(wn)),wn.exports}var Ee,On;function ao(){if(On)return Ee;On=1;var a=Zo(),v=ti(),A=ii(),_=Dt(),D=Bt(),d=He(),T=_("Object.prototype.toString"),l=Ut()(),m=typeof globalThis>"u"?Tt:globalThis,N=v(),P=_("String.prototype.slice"),C=_("Array.prototype.indexOf",!0)||function(M,y){for(var g=0;g-1}return Ee=function(M){if(!M||typeof M!="object")return!1;if(!l){var y=P(T(M),8,-1);return G(y)?y:y!=="Object"?!1:W(M)}return D?$(M):null},Ee}var Se,In;function ai(){if(In)return Se;In=1;var a=ao();return Se=function(v){return!!a(v)},Se}var Rn;function ui(){return Rn||(Rn=1,(function(a){var v=$o(),A=Qo(),_=ao(),D=ai();function d(F){return F.call.bind(F)}var T=typeof BigInt<"u",l=typeof Symbol<"u",m=d(Object.prototype.toString),N=d(Number.prototype.valueOf),P=d(String.prototype.valueOf),C=d(Boolean.prototype.valueOf);if(T)var U=d(BigInt.prototype.valueOf);if(l)var $=d(Symbol.prototype.valueOf);function W(F,gt){if(typeof F!="object")return!1;try{return gt(F),!0}catch{return!1}}a.isArgumentsObject=v,a.isGeneratorFunction=A,a.isTypedArray=D;function G(F){return typeof Promise<"u"&&F instanceof Promise||F!==null&&typeof F=="object"&&typeof F.then=="function"&&typeof F.catch=="function"}a.isPromise=G;function M(F){return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?ArrayBuffer.isView(F):D(F)||I(F)}a.isArrayBufferView=M;function y(F){return _(F)==="Uint8Array"}a.isUint8Array=y;function g(F){return _(F)==="Uint8ClampedArray"}a.isUint8ClampedArray=g;function E(F){return _(F)==="Uint16Array"}a.isUint16Array=E;function c(F){return _(F)==="Uint32Array"}a.isUint32Array=c;function S(F){return _(F)==="Int8Array"}a.isInt8Array=S;function R(F){return _(F)==="Int16Array"}a.isInt16Array=R;function B(F){return _(F)==="Int32Array"}a.isInt32Array=B;function x(F){return _(F)==="Float32Array"}a.isFloat32Array=x;function s(F){return _(F)==="Float64Array"}a.isFloat64Array=s;function q(F){return _(F)==="BigInt64Array"}a.isBigInt64Array=q;function Q(F){return _(F)==="BigUint64Array"}a.isBigUint64Array=Q;function w(F){return m(F)==="[object Map]"}w.working=typeof Map<"u"&&w(new Map);function J(F){return typeof Map>"u"?!1:w.working?w(F):F instanceof Map}a.isMap=J;function et(F){return m(F)==="[object Set]"}et.working=typeof Set<"u"&&et(new Set);function rt(F){return typeof Set>"u"?!1:et.working?et(F):F instanceof Set}a.isSet=rt;function at(F){return m(F)==="[object WeakMap]"}at.working=typeof WeakMap<"u"&&at(new WeakMap);function Z(F){return typeof WeakMap>"u"?!1:at.working?at(F):F instanceof WeakMap}a.isWeakMap=Z;function lt(F){return m(F)==="[object WeakSet]"}lt.working=typeof WeakSet<"u"&<(new WeakSet);function pt(F){return lt(F)}a.isWeakSet=pt;function ot(F){return m(F)==="[object ArrayBuffer]"}ot.working=typeof ArrayBuffer<"u"&&ot(new ArrayBuffer);function yt(F){return typeof ArrayBuffer>"u"?!1:ot.working?ot(F):F instanceof ArrayBuffer}a.isArrayBuffer=yt;function ht(F){return m(F)==="[object DataView]"}ht.working=typeof ArrayBuffer<"u"&&typeof DataView<"u"&&ht(new DataView(new ArrayBuffer(1),0,1));function I(F){return typeof DataView>"u"?!1:ht.working?ht(F):F instanceof DataView}a.isDataView=I;var j=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:void 0;function Y(F){return m(F)==="[object SharedArrayBuffer]"}function b(F){return typeof j>"u"?!1:(typeof Y.working>"u"&&(Y.working=Y(new j)),Y.working?Y(F):F instanceof j)}a.isSharedArrayBuffer=b;function n(F){return m(F)==="[object AsyncFunction]"}a.isAsyncFunction=n;function r(F){return m(F)==="[object Map Iterator]"}a.isMapIterator=r;function p(F){return m(F)==="[object Set Iterator]"}a.isSetIterator=p;function f(F){return m(F)==="[object Generator]"}a.isGeneratorObject=f;function i(F){return m(F)==="[object WebAssembly.Module]"}a.isWebAssemblyCompiledModule=i;function u(F){return W(F,N)}a.isNumberObject=u;function L(F){return W(F,P)}a.isStringObject=L;function V(F){return W(F,C)}a.isBooleanObject=V;function X(F){return T&&W(F,U)}a.isBigIntObject=X;function z(F){return l&&W(F,$)}a.isSymbolObject=z;function K(F){return u(F)||L(F)||V(F)||X(F)||z(F)}a.isBoxedPrimitive=K;function ft(F){return typeof Uint8Array<"u"&&(yt(F)||b(F))}a.isAnyArrayBuffer=ft,["isProxy","isExternal","isModuleNamespaceObject"].forEach(function(F){Object.defineProperty(a,F,{enumerable:!1,value:function(){throw new Error(F+" is not supported in userland")}})})})(ir)),ir}var Pn,Nn;function si(){return Nn||(Nn=1,Pn=function(a){return a&&typeof a=="object"&&typeof a.copy=="function"&&typeof a.fill=="function"&&typeof a.readUInt8=="function"}),Pn}var Bn;function uo(){return Bn||(Bn=1,(function(a){var v={},A=Object.getOwnPropertyDescriptors||function(I){for(var j=Object.keys(I),Y={},b=0;b=n)return i;switch(i){case"%s":return String(b[Y++]);case"%d":return Number(b[Y++]);case"%j":try{return JSON.stringify(b[Y++])}catch{return"[Circular]"}default:return i}}),p=b[Y];Y"u")return function(){return a.deprecate(I,j).apply(this,arguments)};var Y=!1;function b(){if(!Y){if(tt.throwDeprecation)throw new Error(j);tt.traceDeprecation?console.trace(j):console.error(j),Y=!0}return I.apply(this,arguments)}return b};var D={},d=/^$/;if(v.NODE_DEBUG){var T=v.NODE_DEBUG;T=T.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),d=new RegExp("^"+T+"$","i")}a.debuglog=function(I){if(I=I.toUpperCase(),!D[I])if(d.test(I)){var j=tt.pid;D[I]=function(){var Y=a.format.apply(a,arguments);console.error("%s %d: %s",I,j,Y)}}else D[I]=function(){};return D[I]};function l(I,j){var Y={seen:[],stylize:N};return arguments.length>=3&&(Y.depth=arguments[2]),arguments.length>=4&&(Y.colors=arguments[3]),g(j)?Y.showHidden=j:j&&a._extend(Y,j),x(Y.showHidden)&&(Y.showHidden=!1),x(Y.depth)&&(Y.depth=2),x(Y.colors)&&(Y.colors=!1),x(Y.customInspect)&&(Y.customInspect=!0),Y.colors&&(Y.stylize=m),C(Y,I,Y.depth)}a.inspect=l,l.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},l.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function m(I,j){var Y=l.styles[j];return Y?"\x1B["+l.colors[Y][0]+"m"+I+"\x1B["+l.colors[Y][1]+"m":I}function N(I,j){return I}function P(I){var j={};return I.forEach(function(Y,b){j[Y]=!0}),j}function C(I,j,Y){if(I.customInspect&&j&&J(j.inspect)&&j.inspect!==a.inspect&&!(j.constructor&&j.constructor.prototype===j)){var b=j.inspect(Y,I);return R(b)||(b=C(I,b,Y)),b}var n=U(I,j);if(n)return n;var r=Object.keys(j),p=P(r);if(I.showHidden&&(r=Object.getOwnPropertyNames(j)),w(j)&&(r.indexOf("message")>=0||r.indexOf("description")>=0))return $(j);if(r.length===0){if(J(j)){var f=j.name?": "+j.name:"";return I.stylize("[Function"+f+"]","special")}if(s(j))return I.stylize(RegExp.prototype.toString.call(j),"regexp");if(Q(j))return I.stylize(Date.prototype.toString.call(j),"date");if(w(j))return $(j)}var i="",u=!1,L=["{","}"];if(y(j)&&(u=!0,L=["[","]"]),J(j)){var V=j.name?": "+j.name:"";i=" [Function"+V+"]"}if(s(j)&&(i=" "+RegExp.prototype.toString.call(j)),Q(j)&&(i=" "+Date.prototype.toUTCString.call(j)),w(j)&&(i=" "+$(j)),r.length===0&&(!u||j.length==0))return L[0]+i+L[1];if(Y<0)return s(j)?I.stylize(RegExp.prototype.toString.call(j),"regexp"):I.stylize("[Object]","special");I.seen.push(j);var X;return u?X=W(I,j,Y,p,r):X=r.map(function(z){return G(I,j,Y,p,z,u)}),I.seen.pop(),M(X,i,L)}function U(I,j){if(x(j))return I.stylize("undefined","undefined");if(R(j)){var Y="'"+JSON.stringify(j).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return I.stylize(Y,"string")}if(S(j))return I.stylize(""+j,"number");if(g(j))return I.stylize(""+j,"boolean");if(E(j))return I.stylize("null","null")}function $(I){return"["+Error.prototype.toString.call(I)+"]"}function W(I,j,Y,b,n){for(var r=[],p=0,f=j.length;p-1&&(r?f=f.split(` `).map(function(u){return" "+u}).join(` @@ -16,5 +16,5 @@ Char: `+n.c),r=new Error(r),n.error=r,Q(n,"onerror",r),n}function at(n){return n Actual: `+n.attribValue);else if(f==="xmlns"&&n.attribValue!==W)Z(n,"xmlns: prefix must be bound to "+W+` Actual: `+n.attribValue);else{var i=n.tag,u=n.tags[n.tags.length-1]||n;i.ns===u.ns&&(i.ns=Object.create(u.ns)),i.ns[f]=n.attribValue}n.attribList.push([n.attribName,n.attribValue])}else n.tag.attributes[n.attribName]=n.attribValue,w(n,"onattribute",{name:n.attribName,value:n.attribValue});n.attribName=n.attribValue=""}function yt(n,r){if(n.opt.xmlns){var p=n.tag,f=pt(n.tagName);p.prefix=f.prefix,p.local=f.local,p.uri=p.ns[f.prefix]||"",p.prefix&&!p.uri&&(Z(n,"Unbound namespace prefix: "+JSON.stringify(n.tagName)),p.uri=f.prefix);var i=n.tags[n.tags.length-1]||n;p.ns&&i.ns!==p.ns&&Object.keys(p.ns).forEach(function(nt){w(n,"onopennamespace",{prefix:nt,uri:p.ns[nt]})});for(var u=0,L=n.attribList.length;u",n.tagName="",n.state=s.SCRIPT;return}w(n,"onscript",n.script),n.script=""}var r=n.tags.length,p=n.tagName;n.strict||(p=p[n.looseCase]());for(var f=p;r--;){var i=n.tags[r];if(i.name!==f)Z(n,"Unexpected close tag");else break}if(r<0){Z(n,"Unmatched closing tag: "+n.tagName),n.textNode+="",n.state=s.TEXT;return}n.tagName=p;for(var u=n.tags.length;u-- >r;){var L=n.tag=n.tags.pop();n.tagName=n.tag.name,w(n,"onclosetag",n.tagName);var V={};for(var X in L.ns)V[X]=L.ns[X];var z=n.tags[n.tags.length-1]||n;n.opt.xmlns&&L.ns!==z.ns&&Object.keys(L.ns).forEach(function(K){var ft=L.ns[K];w(n,"onclosenamespace",{prefix:K,uri:ft})})}r===0&&(n.closedRoot=!0),n.tagName=n.attribValue=n.attribName="",n.attribList.length=0,n.state=s.TEXT}function I(n){var r=n.entity,p=r.toLowerCase(),f,i="";return n.ENTITIES[r]?n.ENTITIES[r]:n.ENTITIES[p]?n.ENTITIES[p]:(r=p,r.charAt(0)==="#"&&(r.charAt(1)==="x"?(r=r.slice(2),f=parseInt(r,16),i=f.toString(16)):(r=r.slice(1),f=parseInt(r,10),i=f.toString(10))),r=r.replace(/^0+/,""),isNaN(f)||i.toLowerCase()!==r?(Z(n,"Invalid character entity"),"&"+n.entity+";"):String.fromCodePoint(f))}function j(n,r){r==="<"?(n.state=s.OPEN_WAKA,n.startTagPosition=n.position):c(r)||(Z(n,"Non-whitespace before first tag."),n.textNode=r,n.state=s.TEXT)}function Y(n,r){var p="";return r"?(w(r,"onsgmldeclaration",r.sgmlDecl),r.sgmlDecl="",r.state=s.TEXT):(S(f)&&(r.state=s.SGML_DECL_QUOTED),r.sgmlDecl+=f);continue;case s.SGML_DECL_QUOTED:f===r.q&&(r.state=s.SGML_DECL,r.q=""),r.sgmlDecl+=f;continue;case s.DOCTYPE:f===">"?(r.state=s.TEXT,w(r,"ondoctype",r.doctype),r.doctype=!0):(r.doctype+=f,f==="["?r.state=s.DOCTYPE_DTD:S(f)&&(r.state=s.DOCTYPE_QUOTED,r.q=f));continue;case s.DOCTYPE_QUOTED:r.doctype+=f,f===r.q&&(r.q="",r.state=s.DOCTYPE);continue;case s.DOCTYPE_DTD:f==="]"?(r.doctype+=f,r.state=s.DOCTYPE):f==="<"?(r.state=s.OPEN_WAKA,r.startTagPosition=r.position):S(f)?(r.doctype+=f,r.state=s.DOCTYPE_DTD_QUOTED,r.q=f):r.doctype+=f;continue;case s.DOCTYPE_DTD_QUOTED:r.doctype+=f,f===r.q&&(r.state=s.DOCTYPE_DTD,r.q="");continue;case s.COMMENT:f==="-"?r.state=s.COMMENT_ENDING:r.comment+=f;continue;case s.COMMENT_ENDING:f==="-"?(r.state=s.COMMENT_ENDED,r.comment=et(r.opt,r.comment),r.comment&&w(r,"oncomment",r.comment),r.comment=""):(r.comment+="-"+f,r.state=s.COMMENT);continue;case s.COMMENT_ENDED:f!==">"?(Z(r,"Malformed comment"),r.comment+="--"+f,r.state=s.COMMENT):r.doctype&&r.doctype!==!0?r.state=s.DOCTYPE_DTD:r.state=s.TEXT;continue;case s.CDATA:f==="]"?r.state=s.CDATA_ENDING:r.cdata+=f;continue;case s.CDATA_ENDING:f==="]"?r.state=s.CDATA_ENDING_2:(r.cdata+="]"+f,r.state=s.CDATA);continue;case s.CDATA_ENDING_2:f===">"?(r.cdata&&w(r,"oncdata",r.cdata),w(r,"onclosecdata"),r.cdata="",r.state=s.TEXT):f==="]"?r.cdata+="]":(r.cdata+="]]"+f,r.state=s.CDATA);continue;case s.PROC_INST:f==="?"?r.state=s.PROC_INST_ENDING:c(f)?r.state=s.PROC_INST_BODY:r.procInstName+=f;continue;case s.PROC_INST_BODY:if(!r.procInstBody&&c(f))continue;f==="?"?r.state=s.PROC_INST_ENDING:r.procInstBody+=f;continue;case s.PROC_INST_ENDING:f===">"?(w(r,"onprocessinginstruction",{name:r.procInstName,body:r.procInstBody}),r.procInstName=r.procInstBody="",r.state=s.TEXT):(r.procInstBody+="?"+f,r.state=s.PROC_INST_BODY);continue;case s.OPEN_TAG:B(y,f)?r.tagName+=f:(lt(r),f===">"?yt(r):f==="/"?r.state=s.OPEN_TAG_SLASH:(c(f)||Z(r,"Invalid character in tag name"),r.state=s.ATTRIB));continue;case s.OPEN_TAG_SLASH:f===">"?(yt(r,!0),ht(r)):(Z(r,"Forward-slash in opening tag not followed by >"),r.state=s.ATTRIB);continue;case s.ATTRIB:if(c(f))continue;f===">"?yt(r):f==="/"?r.state=s.OPEN_TAG_SLASH:B(M,f)?(r.attribName=f,r.attribValue="",r.state=s.ATTRIB_NAME):Z(r,"Invalid attribute name");continue;case s.ATTRIB_NAME:f==="="?r.state=s.ATTRIB_VALUE:f===">"?(Z(r,"Attribute without value"),r.attribValue=r.attribName,ot(r),yt(r)):c(f)?r.state=s.ATTRIB_NAME_SAW_WHITE:B(y,f)?r.attribName+=f:Z(r,"Invalid attribute name");continue;case s.ATTRIB_NAME_SAW_WHITE:if(f==="=")r.state=s.ATTRIB_VALUE;else{if(c(f))continue;Z(r,"Attribute without value"),r.tag.attributes[r.attribName]="",r.attribValue="",w(r,"onattribute",{name:r.attribName,value:""}),r.attribName="",f===">"?yt(r):B(M,f)?(r.attribName=f,r.state=s.ATTRIB_NAME):(Z(r,"Invalid attribute name"),r.state=s.ATTRIB)}continue;case s.ATTRIB_VALUE:if(c(f))continue;S(f)?(r.q=f,r.state=s.ATTRIB_VALUE_QUOTED):(r.opt.unquotedAttributeValues||rt(r,"Unquoted attribute value"),r.state=s.ATTRIB_VALUE_UNQUOTED,r.attribValue=f);continue;case s.ATTRIB_VALUE_QUOTED:if(f!==r.q){f==="&"?r.state=s.ATTRIB_VALUE_ENTITY_Q:r.attribValue+=f;continue}ot(r),r.q="",r.state=s.ATTRIB_VALUE_CLOSED;continue;case s.ATTRIB_VALUE_CLOSED:c(f)?r.state=s.ATTRIB:f===">"?yt(r):f==="/"?r.state=s.OPEN_TAG_SLASH:B(M,f)?(Z(r,"No whitespace between attributes"),r.attribName=f,r.attribValue="",r.state=s.ATTRIB_NAME):Z(r,"Invalid attribute name");continue;case s.ATTRIB_VALUE_UNQUOTED:if(!R(f)){f==="&"?r.state=s.ATTRIB_VALUE_ENTITY_U:r.attribValue+=f;continue}ot(r),f===">"?yt(r):r.state=s.ATTRIB;continue;case s.CLOSE_TAG:if(r.tagName)f===">"?ht(r):B(y,f)?r.tagName+=f:r.script?(r.script+=""?ht(r):Z(r,"Invalid characters in closing tag");continue;case s.TEXT_ENTITY:case s.ATTRIB_VALUE_ENTITY_Q:case s.ATTRIB_VALUE_ENTITY_U:var L,V;switch(r.state){case s.TEXT_ENTITY:L=s.TEXT,V="textNode";break;case s.ATTRIB_VALUE_ENTITY_Q:L=s.ATTRIB_VALUE_QUOTED,V="attribValue";break;case s.ATTRIB_VALUE_ENTITY_U:L=s.ATTRIB_VALUE_UNQUOTED,V="attribValue";break}if(f===";"){var X=I(r);r.opt.unparsedEntities&&!Object.values(v.XML_ENTITIES).includes(X)?(r.entity="",r.state=L,r.write(X)):(r[V]+=X,r.entity="",r.state=L)}else B(r.entity.length?E:g,f)?r.entity+=f:(Z(r,"Invalid character in entity name"),r[V]+="&"+r.entity+f,r.entity="",r.state=L);continue;default:throw new Error(r,"Unknown state: "+r.state)}return r.position>=r.bufferCheckPosition&&D(r),r}String.fromCodePoint||(function(){var n=String.fromCharCode,r=Math.floor,p=function(){var f=16384,i=[],u,L,V=-1,X=arguments.length;if(!X)return"";for(var z="";++V1114111||r(K)!==K)throw RangeError("Invalid code point: "+K);K<=65535?i.push(K):(K-=65536,u=(K>>10)+55296,L=K%1024+56320,i.push(u,L)),(V+1===X||i.length>f)&&(z+=n.apply(null,i),i.length=0)}return z};Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:p,configurable:!0,writable:!0}):String.fromCodePoint=p})()})(a)})(Ke)),Ke}var mi=bi();const vi=_o(mi),wi={"http://www.w3.org/2000/svg":{ext:"svg",mime:"image/svg+xml"},"http://www.w3.org/1999/xhtml":{ext:"xhtml",mime:"application/xhtml+xml"},"http://www.opengis.net/kml/2.2":{ext:"kml",mime:"application/vnd.google-earth.kml+xml"},"http://www.opengis.net/gml":{ext:"gml",mime:"application/gml+xml"}},Ei={rss:{ext:"rss",mime:"application/rss+xml"},"score-partwise":{ext:"musicxml",mime:"application/vnd.recordare.musicxml+xml"},svg:{ext:"svg",mime:"image/svg+xml"}};class Si{constructor(v){this.options=v??{},this.firstTag=!0,this.onEnd=!1,this.parser=vi.parser(!0,{xmlns:!0}),this.nesting=0,this.parser.onerror=A=>{A.message.startsWith("Invalid character entity")||(this.fileType=void 0,this.onEnd=!0)},this.parser.onopentag=A=>{++this.nesting,!(!this.firstTag||this.onEnd)&&(this.firstTag=!1,A.uri?this.fileType=wi[A.uri]:A.name&&(this.fileType=Ei[A.name.toLowerCase()]),this.fileType&&!this.options.fullScan&&(this.onEnd=!0))},this.parser.onclosetag=()=>{--this.nesting}}write(v){this.parser.write(v)}close(){this.parser.close(),this.onEnd=!0}isValid(){return this.nesting===0}}function _i(a,{validate:v=!0}={}){if(typeof a!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof a}\``);if(a=a.trim(),a.length===0)return!1;const A=new Si({fullScan:v});if(v){if(A.write(a),!A.isValid())return!1}else{let _=0;for(;a.length>_&&!A.onEnd;)A.write(a.slice(_,Math.min(_+128,a.length))),_+=128}return A.fileType?.ext==="svg"}function Ti(a){if(Ai(a),$t.filesSidebarTabs??=new Map,$t.filesSidebarTabs.has(a.id)){Qe.warn(`Sidebar tab with id "${a.id}" already registered. Skipping.`);return}$t.filesSidebarTabs.set(a.id,a),Qe.debug(`New sidebar tab with id "${a.id}" registered.`)}function Ai(a){if(typeof a!="object")throw new Error("Sidebar tab is not an object");if(!a.id||typeof a.id!="string"||a.id!==CSS.escape(a.id))throw new Error("Sidebar tabs need to have an id conforming to the HTML id attribute specifications");if(!a.tagName||typeof a.tagName!="string")throw new Error("Sidebar tabs need to have the tagName name set");if(!a.tagName.match(/^[a-z][a-z0-9-_]+$/))throw new Error('Sidebar tab "tagName" is invalid');if(!a.displayName||typeof a.displayName!="string")throw new Error("Sidebar tabs need to have a name set");if(typeof a.iconSvgInline!="string"||!_i(a.iconSvgInline))throw new Error("Sidebar tabs need to have an valid SVG icon");if(typeof a.order!="number")throw new Error("Sidebar tabs need to have a numeric order set");if(a.enabled&&typeof a.enabled!="function")throw new Error('Sidebar tab "enabled" is not a function');if(a.onInit&&typeof a.onInit!="function")throw new Error('Sidebar tab "onInit" is not a function')}const Fe="activity-files-sidebar-tab";window.customElements.get(Fe)===void 0&&(window.customElements.define(Fe,To(Oo(()=>Eo(()=>import("./ActivityTab-EzBumh36.chunk.mjs"),__vite__mapDeps([0,1,2,3,4,5,6,7]),import.meta.url)),{shadowRoot:!1})),Ti({id:"activity",order:50,displayName:Ao("activity","Activity"),iconSvgInline:Io,tagName:Fe,enabled(){return!0}}));export{Io as l}; +`?(r.line++,r.column=0):r.column++);r.textNode+=n.substring(i,p-1)}f==="<"&&!(r.sawRoot&&r.closedRoot&&!r.strict)?(r.state=s.OPEN_WAKA,r.startTagPosition=r.position):(!c(f)&&(!r.sawRoot||r.closedRoot)&&Z(r,"Text data outside of root node."),f==="&"?r.state=s.TEXT_ENTITY:r.textNode+=f);continue;case s.SCRIPT:f==="<"?r.state=s.SCRIPT_ENDING:r.script+=f;continue;case s.SCRIPT_ENDING:f==="/"?r.state=s.CLOSE_TAG:(r.script+="<"+f,r.state=s.SCRIPT);continue;case s.OPEN_WAKA:if(f==="!")r.state=s.SGML_DECL,r.sgmlDecl="";else if(!c(f))if(B(M,f))r.state=s.OPEN_TAG,r.tagName=f;else if(f==="/")r.state=s.CLOSE_TAG,r.tagName="";else if(f==="?")r.state=s.PROC_INST,r.procInstName=r.procInstBody="";else{if(Z(r,"Unencoded <"),r.startTagPosition+1"?(w(r,"onsgmldeclaration",r.sgmlDecl),r.sgmlDecl="",r.state=s.TEXT):(S(f)&&(r.state=s.SGML_DECL_QUOTED),r.sgmlDecl+=f);continue;case s.SGML_DECL_QUOTED:f===r.q&&(r.state=s.SGML_DECL,r.q=""),r.sgmlDecl+=f;continue;case s.DOCTYPE:f===">"?(r.state=s.TEXT,w(r,"ondoctype",r.doctype),r.doctype=!0):(r.doctype+=f,f==="["?r.state=s.DOCTYPE_DTD:S(f)&&(r.state=s.DOCTYPE_QUOTED,r.q=f));continue;case s.DOCTYPE_QUOTED:r.doctype+=f,f===r.q&&(r.q="",r.state=s.DOCTYPE);continue;case s.DOCTYPE_DTD:f==="]"?(r.doctype+=f,r.state=s.DOCTYPE):f==="<"?(r.state=s.OPEN_WAKA,r.startTagPosition=r.position):S(f)?(r.doctype+=f,r.state=s.DOCTYPE_DTD_QUOTED,r.q=f):r.doctype+=f;continue;case s.DOCTYPE_DTD_QUOTED:r.doctype+=f,f===r.q&&(r.state=s.DOCTYPE_DTD,r.q="");continue;case s.COMMENT:f==="-"?r.state=s.COMMENT_ENDING:r.comment+=f;continue;case s.COMMENT_ENDING:f==="-"?(r.state=s.COMMENT_ENDED,r.comment=et(r.opt,r.comment),r.comment&&w(r,"oncomment",r.comment),r.comment=""):(r.comment+="-"+f,r.state=s.COMMENT);continue;case s.COMMENT_ENDED:f!==">"?(Z(r,"Malformed comment"),r.comment+="--"+f,r.state=s.COMMENT):r.doctype&&r.doctype!==!0?r.state=s.DOCTYPE_DTD:r.state=s.TEXT;continue;case s.CDATA:f==="]"?r.state=s.CDATA_ENDING:r.cdata+=f;continue;case s.CDATA_ENDING:f==="]"?r.state=s.CDATA_ENDING_2:(r.cdata+="]"+f,r.state=s.CDATA);continue;case s.CDATA_ENDING_2:f===">"?(r.cdata&&w(r,"oncdata",r.cdata),w(r,"onclosecdata"),r.cdata="",r.state=s.TEXT):f==="]"?r.cdata+="]":(r.cdata+="]]"+f,r.state=s.CDATA);continue;case s.PROC_INST:f==="?"?r.state=s.PROC_INST_ENDING:c(f)?r.state=s.PROC_INST_BODY:r.procInstName+=f;continue;case s.PROC_INST_BODY:if(!r.procInstBody&&c(f))continue;f==="?"?r.state=s.PROC_INST_ENDING:r.procInstBody+=f;continue;case s.PROC_INST_ENDING:f===">"?(w(r,"onprocessinginstruction",{name:r.procInstName,body:r.procInstBody}),r.procInstName=r.procInstBody="",r.state=s.TEXT):(r.procInstBody+="?"+f,r.state=s.PROC_INST_BODY);continue;case s.OPEN_TAG:B(y,f)?r.tagName+=f:(lt(r),f===">"?yt(r):f==="/"?r.state=s.OPEN_TAG_SLASH:(c(f)||Z(r,"Invalid character in tag name"),r.state=s.ATTRIB));continue;case s.OPEN_TAG_SLASH:f===">"?(yt(r,!0),ht(r)):(Z(r,"Forward-slash in opening tag not followed by >"),r.state=s.ATTRIB);continue;case s.ATTRIB:if(c(f))continue;f===">"?yt(r):f==="/"?r.state=s.OPEN_TAG_SLASH:B(M,f)?(r.attribName=f,r.attribValue="",r.state=s.ATTRIB_NAME):Z(r,"Invalid attribute name");continue;case s.ATTRIB_NAME:f==="="?r.state=s.ATTRIB_VALUE:f===">"?(Z(r,"Attribute without value"),r.attribValue=r.attribName,ot(r),yt(r)):c(f)?r.state=s.ATTRIB_NAME_SAW_WHITE:B(y,f)?r.attribName+=f:Z(r,"Invalid attribute name");continue;case s.ATTRIB_NAME_SAW_WHITE:if(f==="=")r.state=s.ATTRIB_VALUE;else{if(c(f))continue;Z(r,"Attribute without value"),r.tag.attributes[r.attribName]="",r.attribValue="",w(r,"onattribute",{name:r.attribName,value:""}),r.attribName="",f===">"?yt(r):B(M,f)?(r.attribName=f,r.state=s.ATTRIB_NAME):(Z(r,"Invalid attribute name"),r.state=s.ATTRIB)}continue;case s.ATTRIB_VALUE:if(c(f))continue;S(f)?(r.q=f,r.state=s.ATTRIB_VALUE_QUOTED):(r.opt.unquotedAttributeValues||rt(r,"Unquoted attribute value"),r.state=s.ATTRIB_VALUE_UNQUOTED,r.attribValue=f);continue;case s.ATTRIB_VALUE_QUOTED:if(f!==r.q){f==="&"?r.state=s.ATTRIB_VALUE_ENTITY_Q:r.attribValue+=f;continue}ot(r),r.q="",r.state=s.ATTRIB_VALUE_CLOSED;continue;case s.ATTRIB_VALUE_CLOSED:c(f)?r.state=s.ATTRIB:f===">"?yt(r):f==="/"?r.state=s.OPEN_TAG_SLASH:B(M,f)?(Z(r,"No whitespace between attributes"),r.attribName=f,r.attribValue="",r.state=s.ATTRIB_NAME):Z(r,"Invalid attribute name");continue;case s.ATTRIB_VALUE_UNQUOTED:if(!R(f)){f==="&"?r.state=s.ATTRIB_VALUE_ENTITY_U:r.attribValue+=f;continue}ot(r),f===">"?yt(r):r.state=s.ATTRIB;continue;case s.CLOSE_TAG:if(r.tagName)f===">"?ht(r):B(y,f)?r.tagName+=f:r.script?(r.script+=""?ht(r):Z(r,"Invalid characters in closing tag");continue;case s.TEXT_ENTITY:case s.ATTRIB_VALUE_ENTITY_Q:case s.ATTRIB_VALUE_ENTITY_U:var L,V;switch(r.state){case s.TEXT_ENTITY:L=s.TEXT,V="textNode";break;case s.ATTRIB_VALUE_ENTITY_Q:L=s.ATTRIB_VALUE_QUOTED,V="attribValue";break;case s.ATTRIB_VALUE_ENTITY_U:L=s.ATTRIB_VALUE_UNQUOTED,V="attribValue";break}if(f===";"){var X=I(r);r.opt.unparsedEntities&&!Object.values(v.XML_ENTITIES).includes(X)?(r.entity="",r.state=L,r.write(X)):(r[V]+=X,r.entity="",r.state=L)}else B(r.entity.length?E:g,f)?r.entity+=f:(Z(r,"Invalid character in entity name"),r[V]+="&"+r.entity+f,r.entity="",r.state=L);continue;default:throw new Error(r,"Unknown state: "+r.state)}return r.position>=r.bufferCheckPosition&&D(r),r}String.fromCodePoint||(function(){var n=String.fromCharCode,r=Math.floor,p=function(){var f=16384,i=[],u,L,V=-1,X=arguments.length;if(!X)return"";for(var z="";++V1114111||r(K)!==K)throw RangeError("Invalid code point: "+K);K<=65535?i.push(K):(K-=65536,u=(K>>10)+55296,L=K%1024+56320,i.push(u,L)),(V+1===X||i.length>f)&&(z+=n.apply(null,i),i.length=0)}return z};Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:p,configurable:!0,writable:!0}):String.fromCodePoint=p})()})(a)})(Ke)),Ke}var mi=bi();const vi=_o(mi),wi={"http://www.w3.org/2000/svg":{ext:"svg",mime:"image/svg+xml"},"http://www.w3.org/1999/xhtml":{ext:"xhtml",mime:"application/xhtml+xml"},"http://www.opengis.net/kml/2.2":{ext:"kml",mime:"application/vnd.google-earth.kml+xml"},"http://www.opengis.net/gml":{ext:"gml",mime:"application/gml+xml"}},Ei={rss:{ext:"rss",mime:"application/rss+xml"},"score-partwise":{ext:"musicxml",mime:"application/vnd.recordare.musicxml+xml"},svg:{ext:"svg",mime:"image/svg+xml"}};class Si{constructor(v){this.options=v??{},this.firstTag=!0,this.onEnd=!1,this.parser=vi.parser(!0,{xmlns:!0}),this.nesting=0,this.parser.onerror=A=>{A.message.startsWith("Invalid character entity")||(this.fileType=void 0,this.onEnd=!0)},this.parser.onopentag=A=>{++this.nesting,!(!this.firstTag||this.onEnd)&&(this.firstTag=!1,A.uri?this.fileType=wi[A.uri]:A.name&&(this.fileType=Ei[A.name.toLowerCase()]),this.fileType&&!this.options.fullScan&&(this.onEnd=!0))},this.parser.onclosetag=()=>{--this.nesting}}write(v){this.parser.write(v)}close(){this.parser.close(),this.onEnd=!0}isValid(){return this.nesting===0}}function _i(a,{validate:v=!0}={}){if(typeof a!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof a}\``);if(a=a.trim(),a.length===0)return!1;const A=new Si({fullScan:v});if(v){if(A.write(a),!A.isValid())return!1}else{let _=0;for(;a.length>_&&!A.onEnd;)A.write(a.slice(_,Math.min(_+128,a.length))),_+=128}return A.fileType?.ext==="svg"}function Ti(a){if(Ai(a),$t.filesSidebarTabs??=new Map,$t.filesSidebarTabs.has(a.id)){Qe.warn(`Sidebar tab with id "${a.id}" already registered. Skipping.`);return}$t.filesSidebarTabs.set(a.id,a),Qe.debug(`New sidebar tab with id "${a.id}" registered.`)}function Ai(a){if(typeof a!="object")throw new Error("Sidebar tab is not an object");if(!a.id||typeof a.id!="string"||a.id!==CSS.escape(a.id))throw new Error("Sidebar tabs need to have an id conforming to the HTML id attribute specifications");if(!a.tagName||typeof a.tagName!="string")throw new Error("Sidebar tabs need to have the tagName name set");if(!a.tagName.match(/^[a-z][a-z0-9-_]+$/))throw new Error('Sidebar tab "tagName" is invalid');if(!a.displayName||typeof a.displayName!="string")throw new Error("Sidebar tabs need to have a name set");if(typeof a.iconSvgInline!="string"||!_i(a.iconSvgInline))throw new Error("Sidebar tabs need to have an valid SVG icon");if(typeof a.order!="number")throw new Error("Sidebar tabs need to have a numeric order set");if(a.enabled&&typeof a.enabled!="function")throw new Error('Sidebar tab "enabled" is not a function');if(a.onInit&&typeof a.onInit!="function")throw new Error('Sidebar tab "onInit" is not a function')}const Fe="activity-files-sidebar-tab";window.customElements.get(Fe)===void 0&&(window.customElements.define(Fe,To(Oo(()=>Eo(()=>import("./ActivityTab-D3JnlP-d.chunk.mjs"),__vite__mapDeps([0,1,2,3,4,5,6,7]),import.meta.url)),{shadowRoot:!1})),Ti({id:"activity",order:50,displayName:Ao("activity","Activity"),iconSvgInline:Io,tagName:Fe,enabled(){return!0}}));export{Io as l}; //# sourceMappingURL=activity-sidebar.mjs.map diff --git a/src/__tests__/ActivityTab.test.ts b/src/__tests__/ActivityTab.test.ts index 39fe00eea..795ac49b2 100644 --- a/src/__tests__/ActivityTab.test.ts +++ b/src/__tests__/ActivityTab.test.ts @@ -5,13 +5,53 @@ import type { VueWrapper } from '@vue/test-utils' -import { mount } from '@vue/test-utils' -import { expect, test, vi } from 'vitest' +import axios from '@nextcloud/axios' +import { flushPromises, mount } from '@vue/test-utils' +import { afterEach, describe, expect, test, vi } from 'vitest' import { nextTick } from 'vue' import ActivityTab from '../views/ActivityTab.vue' vi.mock('@nextcloud/axios') +const ACTIVITY_PATH = '/ocs/v2.php/apps/activity/api/v2/activity/filter' + +/** + * Build an OCS response holding one activity per given id. + * + * @param ids - Activity ids to include, used to tell responses apart + */ +function responseWithIds(ids: number[]) { + return { + data: { + ocs: { + meta: { status: 'ok', statuscode: 200, message: 'OK' }, + data: ids.map((id) => ({ + activity_id: id, + app: 'files', + type: 'file_changed', + user: 'admin', + subject: `Activity ${id}`, + subject_rich: [`Activity ${id}`, []], + message: '', + message_rich: ['', []], + icon: 'icon.svg', + datetime: '2021-04-29T13:57:11+00:00', + object_type: 'files', + object_id: id, + object_name: '', + objects: {}, + link: '', + })), + }, + }, + } +} + +/** Requests the component made for the activity list, newest last. */ +function activityCalls(spy: ReturnType) { + return spy.mock.calls.filter(([url]) => String(url).endsWith(ACTIVITY_PATH)) +} + test('Create ActivityTab', async () => { const wrapper = mount(ActivityTab, { props: { @@ -51,3 +91,112 @@ function waitFor(query: string, wrapper: VueWrapper, callback: () => void) { } nextTick(() => waitFor(query, wrapper, callback)) } + +describe('request handling', () => { + afterEach(() => { + vi.restoreAllMocks() + }) + + test('loads the activity list once per opened file, not twice', async () => { + const get = vi.spyOn(axios, 'get') + + const wrapper = mount(ActivityTab, { + props: { node: { id: 'test', fileid: 42 } as any }, + }) + await flushPromises() + + // The node watcher is immediate, so a mounted() hook loading as well + // would double every request the panel makes + expect(activityCalls(get)).toHaveLength(1) + wrapper.unmount() + }) + + test('asks only for the newly selected file when the selection changes', async () => { + const get = vi.spyOn(axios, 'get') + + const wrapper = mount(ActivityTab, { + props: { node: { id: 'a', fileid: 1 } as any }, + }) + await flushPromises() + await wrapper.setProps({ node: { id: 'b', fileid: 2 } as any }) + await flushPromises() + + expect(activityCalls(get)).toHaveLength(2) + expect(activityCalls(get).map(([, config]) => (config as any).params.object_id)).toEqual([1, 2]) + wrapper.unmount() + }) + + test('keeps the current file’s activity when an earlier response arrives late', async () => { + const pending: { resolve: (value: unknown) => void, objectId: number }[] = [] + vi.spyOn(axios, 'get').mockImplementation((url: string, config?: any) => { + return new Promise((resolve) => { + pending.push({ resolve, objectId: config?.params?.object_id }) + }) + }) + + const wrapper = mount(ActivityTab, { + props: { node: { id: 'a', fileid: 1 } as any }, + }) + await flushPromises() + await wrapper.setProps({ node: { id: 'b', fileid: 2 } as any }) + await flushPromises() + + expect(pending.map((request) => request.objectId)).toEqual([1, 2]) + + // Answer the current file first, then let the superseded request land + pending[1]!.resolve(responseWithIds([200])) + await flushPromises() + pending[0]!.resolve(responseWithIds([100, 101])) + await flushPromises() + + const shown = (wrapper.vm.$data.activities as { id: number }[]).map((activity) => activity.id) + expect(shown).toEqual([200]) + wrapper.unmount() + }) + + test('aborts the superseded request instead of leaving it running', async () => { + const signals: (AbortSignal | undefined)[] = [] + vi.spyOn(axios, 'get').mockImplementation((url: string, config?: any) => { + signals.push(config?.signal) + return new Promise(() => {}) + }) + + const wrapper = mount(ActivityTab, { + props: { node: { id: 'a', fileid: 1 } as any }, + }) + await flushPromises() + await wrapper.setProps({ node: { id: 'b', fileid: 2 } as any }) + await flushPromises() + + expect(signals[0]?.aborted).toBe(true) + expect(signals[1]?.aborted).toBe(false) + + // Unmounting has to release the last one too + wrapper.unmount() + expect(signals[1]?.aborted).toBe(true) + }) + + test('does not surface an error when a request is superseded', async () => { + const rejections: ((reason: unknown) => void)[] = [] + vi.spyOn(axios, 'get').mockImplementation(() => { + return new Promise((resolve, reject) => { + rejections.push(reject) + }) + }) + + const wrapper = mount(ActivityTab, { + props: { node: { id: 'a', fileid: 1 } as any }, + }) + await flushPromises() + await wrapper.setProps({ node: { id: 'b', fileid: 2 } as any }) + await flushPromises() + + // axios rejects a cancelled request; that is not a failure to report + rejections[0]!(new Error('canceled')) + await flushPromises() + + expect(wrapper.vm.$data.error).toBe('') + expect(wrapper.vm.$data.loading).toBe(true) + wrapper.unmount() + }) +}) diff --git a/src/views/ActivityTab.vue b/src/views/ActivityTab.vue index b2ab3834c..39de8b4ae 100644 --- a/src/views/ActivityTab.vue +++ b/src/views/ActivityTab.vue @@ -130,6 +130,10 @@ const ActivityTab = defineComponent({ activities: [] as (IActivitySidebarEntry | ActivityModel)[], lightningBoltSVG, sidebarPlugins: [] as IActivitySidebarAction[], + // Only ever read inside methods, never from the template. Vue 3 + // leaves class instances it does not recognise unproxied, so the + // controller keeps working: abort() needs its original receiver. + requestController: null as AbortController | null, } }, @@ -141,6 +145,9 @@ const ActivityTab = defineComponent({ }, watch: { + // `immediate` covers the initial load as well, so there is deliberately + // no mounted() hook doing the same thing: having both meant every + // sidebar open fired two identical requests node: { immediate: true, async handler() { @@ -149,10 +156,8 @@ const ActivityTab = defineComponent({ }, }, - async mounted() { - if (this.node) { - await this.update() - } + beforeUnmount() { + this.requestController?.abort() }, methods: { @@ -174,19 +179,43 @@ const ActivityTab = defineComponent({ /** * Get the existing activities + * + * Any request still in flight is superseded first. Without that, moving + * between files faster than the server answers would let an earlier + * response arrive last and leave the panel showing another file's + * activity, since the responses are applied in arrival order rather + * than request order. */ async getActivities() { + this.requestController?.abort() + const controller = new AbortController() + this.requestController = controller + const { signal } = controller + try { this.loading = true - const activities = await this.processActivities(await this.loadRealActivities()) + const activities = await this.processActivities(await this.loadRealActivities(signal)) + // Plugin supplied entries cannot be aborted, so their result is + // discarded below instead const otherEntries = await getAdditionalEntries({ node: this.node }) + if (signal.aborted) { + return + } this.activities = [...activities, ...otherEntries].sort((a, b) => b.timestamp - a.timestamp) } catch (error) { + if (signal.aborted) { + // Cancelled in favour of a newer request, which owns the + // state from here on + return + } this.error = t('activity', 'Unable to load the activity list') logger.error('Error loading the activity list', { error }) } finally { - this.loading = false + // A newer request has already set this back to true + if (!signal.aborted) { + this.loading = false + } } }, @@ -201,12 +230,15 @@ const ActivityTab = defineComponent({ /** * Load activites from API + * + * @param signal - Aborted when a newer request supersedes this one */ - async loadRealActivities() { + async loadRealActivities(signal?: AbortSignal) { try { const { data } = await axios.get( generateOcsUrl('apps/activity/api/v2/activity/filter'), { + signal, params: { format: 'json', object_type: 'files', From 27cb628395669c3e8fc5041d65fa0c87a0f329b1 Mon Sep 17 00:00:00 2001 From: Frank Karlitschek Date: Sat, 1 Aug 2026 17:45:24 +0200 Subject: [PATCH 2/2] feat(sidebar): page through older activities instead of stopping at 50 The panel sent no `limit` and no `since`, so it received the API default of 50 activities and had no way to ask for the rest. For any file with a longer history the list simply ended, with nothing indicating that it had been cut short. The page size is now requested explicitly rather than inherited from the API default, and a "Load older activities" action at the end of the list fetches the next page and appends it. Whether more activities remain is taken from the `Link: rel="next"` header rather than guessed from the size of the page. The server builds that header only when its `has_more` probe found an extra row, so it is exact, whereas a full page is not evidence that another one exists. The cursor comes from `X-Activity-Last-Given`, as in the stream view. A 304 on a later page is treated as the end of the list, not as a failure. Activities contributed by other apps through `registerSidebarEntries()` describe the node rather than a page, so they are collected once per file and re-merged into each page instead of being requested again per page. Selecting another file drops the cursor along with the rest of the state, since carrying it over would skip the newest activities of the new file. The axios test mock now returns response headers alongside the body, which is what the real client does and what pagination reads. Signed-off-by: Frank Karlitschek Co-Authored-By: Claude Opus 5 (1M context) --- js/ActivityTab-Bb6AyMro.chunk.mjs | 3 + ...=> ActivityTab-Bb6AyMro.chunk.mjs.license} | 0 js/ActivityTab-Bb6AyMro.chunk.mjs.map | 1 + js/ActivityTab-D3JnlP-d.chunk.mjs | 3 - js/ActivityTab-D3JnlP-d.chunk.mjs.map | 1 - js/activity-sidebar.mjs | 4 +- src/__mocks__/@nextcloud/axios.js | 11 +- src/__tests__/ActivityTab.test.ts | 112 ++++++++++++++++- src/views/ActivityTab.vue | 118 +++++++++++++++--- 9 files changed, 230 insertions(+), 23 deletions(-) create mode 100644 js/ActivityTab-Bb6AyMro.chunk.mjs rename js/{ActivityTab-D3JnlP-d.chunk.mjs.license => ActivityTab-Bb6AyMro.chunk.mjs.license} (100%) create mode 100644 js/ActivityTab-Bb6AyMro.chunk.mjs.map delete mode 100644 js/ActivityTab-D3JnlP-d.chunk.mjs delete mode 100644 js/ActivityTab-D3JnlP-d.chunk.mjs.map diff --git a/js/ActivityTab-Bb6AyMro.chunk.mjs b/js/ActivityTab-Bb6AyMro.chunk.mjs new file mode 100644 index 000000000..313d873e0 --- /dev/null +++ b/js/ActivityTab-Bb6AyMro.chunk.mjs @@ -0,0 +1,3 @@ +(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".download-summary[data-v-81e4514f]{display:flex;align-items:flex-start;padding:8px 0;margin-bottom:calc(var(--default-grid-baseline) * 2);color:var(--color-text-maxcontrast)}.download-summary__icon[data-v-81e4514f]{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:20px;height:20px;margin-top:2px;opacity:.5}.download-summary__text[data-v-81e4514f]{padding:0 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity[data-v-242e244d]{display:flex;flex-direction:column;overflow:hidden;height:100%}.activity__actions[data-v-242e244d]{display:flex;flex-direction:column;width:100%}.activity__list[data-v-242e244d]{flex-grow:1;overflow:scroll}.activity__load-more[data-v-242e244d]{display:flex;justify-content:center;padding-block:calc(var(--default-grid-baseline) * 2)}.activity__empty-content[data-v-242e244d]{height:100%}[data-v-242e244d] .empty-content__icon span{background-size:64px;width:64px;height:64px}")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})(); +import{l as R}from"./activity-sidebar.mjs";import{b as G,j as S,h as P,m as D,N as V}from"./_plugin-vue_export-helper-YgYGpvaA.chunk.mjs";import{d as _,x as q,B,y as T,a,c as o,j as H,a1 as p,M as f,m as n,e as k,f as c,t as I,E as y,l as W,b as d,g as u,F as g,L as M,W as F,h as O,n as U}from"./translation-DoG5ZELJ-ns3A9vL-.chunk.mjs";import{a as N}from"./index-BrNGPgve.chunk.mjs";import{N as z,_ as Z,A as $}from"./ActivityComponent.vue_vue_type_script_setup_true_lang-Ce6NNuXP.chunk.mjs";import{l as w}from"./logger-CXg3FpL2.chunk.mjs";import{g as J,a as K,b as Q}from"./api-fwrRGLr6.chunk.mjs";import"./preload-helper-DxYC2qmj.chunk.mjs";var b;(function(t){t[t.User=0]="User",t[t.Group=1]="Group",t[t.Link=3]="Link",t[t.Email=4]="Email",t[t.Remote=6]="Remote",t[t.Team=7]="Team",t[t.Guest=8]="Guest",t[t.RemoteGroup=9]="RemoteGroup",t[t.Room=10]="Room",t[t.Deck=12]="Deck",t[t.FederatedGroup=14]="FederatedGroup",t[t.ScienceMesh=15]="ScienceMesh"})(b||(b={}));const X=_({__name:"ActivitySidebarPlugin",props:{plugin:{},node:{}},emits:["reloadActivities"],setup(t,{emit:e}){const i=t,s=e,r=H();return q(()=>i.plugin.mount(r.value,{node:i.node,context:B()?.proxy??void 0,reload:()=>s("reloadActivities")})),T(()=>i.plugin.unmount()),(m,l)=>(a(),o("div",{ref_key:"attachTarget",ref:r},null,512))}}),Y='',tt=_({name:"DownloadSummary",components:{NcIconSvgWrapper:G},props:{fileId:{type:Number,required:!0}},data(){return{totalCount:0,monthlyCount:0,downloadSVG:Y}},computed:{summaryText(){return this.monthlyCount>0&&this.monthlyCount0?(a(),o("div",it,[k("span",et,[c(l,{svg:t.downloadSVG,size:20},null,8,["svg"])]),k("span",at,I(t.summaryText),1)])):y("",!0)}const ot=P(tt,[["render",st],["__scopeId","data-v-81e4514f"]]),nt=50,rt=_({name:"ActivityTab",components:{ActivityComponent:Z,DownloadSummary:ot,NcButton:V,NcEmptyContent:z,NcIconSvgWrapper:G,NcLoadingIcon:D,ActivitySidebarPlugin:X},props:{node:{type:Object,required:!0},folder:{type:Object,required:!1,default:void 0},view:{type:Object,required:!1,default:void 0}},expose:["update"],data(){return{error:"",loading:!0,loadingMore:!1,activities:[],lightningBoltSVG:R,sidebarPlugins:[],requestController:null,realActivities:[],otherEntries:[],lastGiven:void 0,hasMore:!1}},computed:{hasPublicLink(){return Object.values(this.node?.attributes?.["share-types"]??{}).flat().includes(b.Link)}},watch:{node:{immediate:!0,async handler(){await this.update()}}},beforeUnmount(){this.requestController?.abort()},methods:{async update(){this.sidebarPlugins=[];const t=Q();t.length>0&&W(()=>{this.sidebarPlugins=t}),this.resetState(),await this.getActivities()},async getActivities(){await this.fetchPage(!0)},async loadMoreActivities(){await this.fetchPage(!1)},async fetchPage(t){this.requestController?.abort();const e=new AbortController;this.requestController=e;const{signal:i}=e;try{t?this.loading=!0:this.loadingMore=!0;const s=await this.loadRealActivities(i,t?void 0:this.lastGiven),r=this.processActivities(s.activities),m=t?await K({node:this.node}):this.otherEntries;if(i.aborted)return;this.realActivities=t?r:[...this.realActivities,...r],this.otherEntries=m,(t||s.lastGiven!==void 0)&&(this.lastGiven=s.lastGiven),this.hasMore=s.hasMore,this.activities=[...this.realActivities,...this.otherEntries].sort((l,h)=>h.timestamp-l.timestamp)}catch(s){if(i.aborted)return;this.error=f("activity","Unable to load the activity list"),w.error("Error loading the activity list",{error:s})}finally{i.aborted||(this.loading=!1,this.loadingMore=!1)}},resetState(){this.loading=!0,this.loadingMore=!1,this.error="",this.activities=[],this.realActivities=[],this.otherEntries=[],this.lastGiven=void 0,this.hasMore=!1},async loadRealActivities(t,e){try{const i=await S.get(N("apps/activity/api/v2/activity/filter"),{signal:t,params:{format:"json",object_type:"files",object_id:this.node.fileid,limit:nt,...e===void 0?{}:{since:e}}});return{activities:i.data.ocs.data,lastGiven:i.headers["x-activity-last-given"],hasMore:String(i.headers.link??"").includes('rel="next"')}}catch(i){if(i.response!==void 0&&i.response.status===304)return{activities:[],lastGiven:void 0,hasMore:!1};throw i}},processActivities(t){t=t.map(i=>new $(i)),w.debug(`Processed ${t.length} activity(ies)`,{activities:t,node:this.node});const e=J();return t.filter(i=>!e||e.every(s=>s(i)))},t:f}}),lt={key:0,class:"activity__actions"},dt={key:4,class:"activity__list"},ct={key:0,class:"activity__load-more"};function ht(t,e,i,s,r,m){const l=n("NcIconSvgWrapper"),h=n("NcEmptyContent"),L=n("ActivitySidebarPlugin"),j=n("DownloadSummary"),C=n("NcLoadingIcon"),x=n("ActivityComponent"),E=n("NcButton");return a(),o("div",{class:U([{"icon-loading":t.loading},"activity"])},[t.error||!t.node?(a(),d(h,{key:0,name:t.error},{icon:u(()=>[c(l,{svg:t.lightningBoltSVG},null,8,["svg"])]),_:1},8,["name"])):(a(),o(g,{key:1},[t.sidebarPlugins.length>0?(a(),o("div",lt,[(a(!0),o(g,null,M(t.sidebarPlugins,(v,A)=>(a(),d(L,{key:A,plugin:v,node:t.node,onReloadActivities:e[0]||(e[0]=vt=>t.getActivities())},null,8,["plugin","node"]))),128))])):y("",!0),t.hasPublicLink&&t.node.fileid?(a(),d(j,{key:1,fileId:t.node.fileid},null,8,["fileId"])):y("",!0),t.loading?(a(),d(h,{key:2,class:"activity__empty-content",name:t.t("activity","Loading activities")},{icon:u(()=>[c(C)]),_:1},8,["name"])):t.activities.length===0?(a(),d(h,{key:3,class:"activity__empty-content",name:t.t("activity","No activity yet")},{icon:u(()=>[c(l,{svg:t.lightningBoltSVG},null,8,["svg"])]),_:1},8,["name"])):(a(),o("ul",dt,[(a(!0),o(g,null,M(t.activities,v=>(a(),d(x,{key:v.id,activity:v,showPreviews:!1,onReload:e[1]||(e[1]=A=>t.getActivities())},null,8,["activity"]))),128)),t.hasMore?(a(),o("li",ct,[c(E,{variant:"tertiary",wide:"",disabled:t.loadingMore,onClick:e[2]||(e[2]=v=>t.loadMoreActivities())},F({default:u(()=>[O(" "+I(t.loadingMore?t.t("activity","Loading older activities…"):t.t("activity","Load older activities")),1)]),_:2},[t.loadingMore?{name:"icon",fn:u(()=>[c(C,{size:20})]),key:"0"}:void 0]),1032,["disabled"])])):y("",!0)]))],64))],2)}const _t=P(rt,[["render",ht],["__scopeId","data-v-242e244d"]]);export{_t as default}; +//# sourceMappingURL=ActivityTab-Bb6AyMro.chunk.mjs.map diff --git a/js/ActivityTab-D3JnlP-d.chunk.mjs.license b/js/ActivityTab-Bb6AyMro.chunk.mjs.license similarity index 100% rename from js/ActivityTab-D3JnlP-d.chunk.mjs.license rename to js/ActivityTab-Bb6AyMro.chunk.mjs.license diff --git a/js/ActivityTab-Bb6AyMro.chunk.mjs.map b/js/ActivityTab-Bb6AyMro.chunk.mjs.map new file mode 100644 index 000000000..75216c867 --- /dev/null +++ b/js/ActivityTab-Bb6AyMro.chunk.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"ActivityTab-Bb6AyMro.chunk.mjs","sources":["../node_modules/@nextcloud/sharing/dist/share/ShareType.js","../src/components/ActivitySidebarPlugin.vue","../node_modules/@mdi/svg/svg/download-circle.svg?raw","../src/components/DownloadSummary.vue","../src/views/ActivityTab.vue"],"sourcesContent":["/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nexport var ShareType;\n(function (ShareType) {\n ShareType[ShareType[\"User\"] = 0] = \"User\";\n ShareType[ShareType[\"Group\"] = 1] = \"Group\";\n ShareType[ShareType[\"Link\"] = 3] = \"Link\";\n ShareType[ShareType[\"Email\"] = 4] = \"Email\";\n ShareType[ShareType[\"Remote\"] = 6] = \"Remote\";\n /**\n * Was called `Circle` before Nextcloud 29\n */\n ShareType[ShareType[\"Team\"] = 7] = \"Team\";\n ShareType[ShareType[\"Guest\"] = 8] = \"Guest\";\n ShareType[ShareType[\"RemoteGroup\"] = 9] = \"RemoteGroup\";\n ShareType[ShareType[\"Room\"] = 10] = \"Room\";\n ShareType[ShareType[\"Deck\"] = 12] = \"Deck\";\n /**\n * @since 26.0.0\n */\n ShareType[ShareType[\"FederatedGroup\"] = 14] = \"FederatedGroup\";\n /**\n * Third party share types\n *\n * @since 25.0.0\n */\n ShareType[ShareType[\"ScienceMesh\"] = 15] = \"ScienceMesh\";\n})(ShareType || (ShareType = {}));\n","\n\n\n\n\n","export default \"\"","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n"],"names":["ShareType","props","__props","emit","__emit","attachTarget","ref","onMounted","getCurrentInstance","onBeforeUnmount","_createElementBlock","downloadSVG","_sfc_main","defineComponent","NcIconSvgWrapper","n","response","axios","generateOcsUrl","error","logger","t","_hoisted_2","_hoisted_3","_ctx","_openBlock","_hoisted_1","_createElementVNode","_createVNode","_component_NcIconSvgWrapper","_toDisplayString","_createCommentVNode","ACTIVITY_PAGE_SIZE","ActivityTab","ActivityComponent","DownloadSummary","NcButton","NcEmptyContent","NcLoadingIcon","ActivitySidebarPlugin","lightningBoltSVG","sidebarPlugins","getSidebarActions","nextTick","reset","controller","signal","page","activities","otherEntries","getAdditionalEntries","a","b","since","activity","ActivityModel","filters","getActivityFilters","filter","_normalizeClass","_createBlock","_component_NcEmptyContent","_withCtx","_Fragment","_renderList","plugin","index","_component_ActivitySidebarPlugin","_cache","_component_DownloadSummary","_component_NcLoadingIcon","_component_ActivityComponent","_component_NcButton","_createSlots","_createTextVNode"],"mappings":"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","x_google_ignoreList":[0,2]} \ No newline at end of file diff --git a/js/ActivityTab-D3JnlP-d.chunk.mjs b/js/ActivityTab-D3JnlP-d.chunk.mjs deleted file mode 100644 index d907a2536..000000000 --- a/js/ActivityTab-D3JnlP-d.chunk.mjs +++ /dev/null @@ -1,3 +0,0 @@ -(function(){"use strict";try{if(typeof document<"u"){var t=document.createElement("style");t.appendChild(document.createTextNode(".download-summary[data-v-81e4514f]{display:flex;align-items:flex-start;padding:8px 0;margin-bottom:calc(var(--default-grid-baseline) * 2);color:var(--color-text-maxcontrast)}.download-summary__icon[data-v-81e4514f]{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:20px;height:20px;margin-top:2px;opacity:.5}.download-summary__text[data-v-81e4514f]{padding:0 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity[data-v-9ba43306]{display:flex;flex-direction:column;overflow:hidden;height:100%}.activity__actions[data-v-9ba43306]{display:flex;flex-direction:column;width:100%}.activity__list[data-v-9ba43306]{flex-grow:1;overflow:scroll}.activity__empty-content[data-v-9ba43306]{height:100%}[data-v-9ba43306] .empty-content__icon span{background-size:64px;width:64px;height:64px}")),document.head.appendChild(t)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})(); -import{l as R}from"./activity-sidebar.mjs";import{b as k,j as I,h as G,m as D}from"./_plugin-vue_export-helper-YgYGpvaA.chunk.mjs";import{d as C,x as V,B as q,y as E,a as i,c as o,j as M,a1 as v,M as g,m as n,e as S,f as m,t as T,E as f,l as B,b as l,g as y,F as h,L as A,n as H}from"./translation-DoG5ZELJ-ns3A9vL-.chunk.mjs";import{a as j}from"./index-BrNGPgve.chunk.mjs";import{N as F,_ as O,A as U}from"./ActivityComponent.vue_vue_type_script_setup_true_lang-Ce6NNuXP.chunk.mjs";import{l as w}from"./logger-CXg3FpL2.chunk.mjs";import{g as W,a as z,b as Z}from"./api-fwrRGLr6.chunk.mjs";import"./preload-helper-DxYC2qmj.chunk.mjs";var b;(function(t){t[t.User=0]="User",t[t.Group=1]="Group",t[t.Link=3]="Link",t[t.Email=4]="Email",t[t.Remote=6]="Remote",t[t.Team=7]="Team",t[t.Guest=8]="Guest",t[t.RemoteGroup=9]="RemoteGroup",t[t.Room=10]="Room",t[t.Deck=12]="Deck",t[t.FederatedGroup=14]="FederatedGroup",t[t.ScienceMesh=15]="ScienceMesh"})(b||(b={}));const $=C({__name:"ActivitySidebarPlugin",props:{plugin:{},node:{}},emits:["reloadActivities"],setup(t,{emit:e}){const a=t,s=e,r=M();return V(()=>a.plugin.mount(r.value,{node:a.node,context:q()?.proxy??void 0,reload:()=>s("reloadActivities")})),E(()=>a.plugin.unmount()),(d,c)=>(i(),o("div",{ref_key:"attachTarget",ref:r},null,512))}}),J='',K=C({name:"DownloadSummary",components:{NcIconSvgWrapper:k},props:{fileId:{type:Number,required:!0}},data(){return{totalCount:0,monthlyCount:0,downloadSVG:J}},computed:{summaryText(){return this.monthlyCount>0&&this.monthlyCount0?(i(),o("div",Q,[S("span",X,[m(c,{svg:t.downloadSVG,size:20},null,8,["svg"])]),S("span",Y,T(t.summaryText),1)])):f("",!0)}const et=G(K,[["render",tt],["__scopeId","data-v-81e4514f"]]),it=C({name:"ActivityTab",components:{ActivityComponent:O,DownloadSummary:et,NcEmptyContent:F,NcIconSvgWrapper:k,NcLoadingIcon:D,ActivitySidebarPlugin:$},props:{node:{type:Object,required:!0},folder:{type:Object,required:!1,default:void 0},view:{type:Object,required:!1,default:void 0}},expose:["update"],data(){return{error:"",loading:!0,activities:[],lightningBoltSVG:R,sidebarPlugins:[],requestController:null}},computed:{hasPublicLink(){return Object.values(this.node?.attributes?.["share-types"]??{}).flat().includes(b.Link)}},watch:{node:{immediate:!0,async handler(){await this.update()}}},beforeUnmount(){this.requestController?.abort()},methods:{async update(){this.sidebarPlugins=[];const t=Z();t.length>0&&B(()=>{this.sidebarPlugins=t}),this.resetState(),await this.getActivities()},async getActivities(){this.requestController?.abort();const t=new AbortController;this.requestController=t;const{signal:e}=t;try{this.loading=!0;const a=await this.processActivities(await this.loadRealActivities(e)),s=await z({node:this.node});if(e.aborted)return;this.activities=[...a,...s].sort((r,d)=>d.timestamp-r.timestamp)}catch(a){if(e.aborted)return;this.error=g("activity","Unable to load the activity list"),w.error("Error loading the activity list",{error:a})}finally{e.aborted||(this.loading=!1)}},resetState(){this.loading=!0,this.error="",this.activities=[]},async loadRealActivities(t){try{const{data:e}=await I.get(j("apps/activity/api/v2/activity/filter"),{signal:t,params:{format:"json",object_type:"files",object_id:this.node.fileid}});return e.ocs.data}catch(e){if(e.response!==void 0&&e.response.status===304)return[];throw e}},processActivities(t){t=t.map(a=>new U(a)),w.debug(`Processed ${t.length} activity(ies)`,{activities:t,node:this.node});const e=W();return t.filter(a=>!e||e.every(s=>s(a)))},t:g}}),at={key:0,class:"activity__actions"},ot={key:4,class:"activity__list"};function st(t,e,a,s,r,d){const c=n("NcIconSvgWrapper"),p=n("NcEmptyContent"),P=n("ActivitySidebarPlugin"),L=n("DownloadSummary"),N=n("NcLoadingIcon"),x=n("ActivityComponent");return i(),o("div",{class:H([{"icon-loading":t.loading},"activity"])},[t.error||!t.node?(i(),l(p,{key:0,name:t.error},{icon:y(()=>[m(c,{svg:t.lightningBoltSVG},null,8,["svg"])]),_:1},8,["name"])):(i(),o(h,{key:1},[t.sidebarPlugins.length>0?(i(),o("div",at,[(i(!0),o(h,null,A(t.sidebarPlugins,(u,_)=>(i(),l(P,{key:_,plugin:u,node:t.node,onReloadActivities:e[0]||(e[0]=nt=>t.getActivities())},null,8,["plugin","node"]))),128))])):f("",!0),t.hasPublicLink&&t.node.fileid?(i(),l(L,{key:1,fileId:t.node.fileid},null,8,["fileId"])):f("",!0),t.loading?(i(),l(p,{key:2,class:"activity__empty-content",name:t.t("activity","Loading activities")},{icon:y(()=>[m(N)]),_:1},8,["name"])):t.activities.length===0?(i(),l(p,{key:3,class:"activity__empty-content",name:t.t("activity","No activity yet")},{icon:y(()=>[m(c,{svg:t.lightningBoltSVG},null,8,["svg"])]),_:1},8,["name"])):(i(),o("ul",ot,[(i(!0),o(h,null,A(t.activities,u=>(i(),l(x,{key:u.id,activity:u,showPreviews:!1,onReload:e[1]||(e[1]=_=>t.getActivities())},null,8,["activity"]))),128))]))],64))],2)}const yt=G(it,[["render",st],["__scopeId","data-v-9ba43306"]]);export{yt as default}; -//# sourceMappingURL=ActivityTab-D3JnlP-d.chunk.mjs.map diff --git a/js/ActivityTab-D3JnlP-d.chunk.mjs.map b/js/ActivityTab-D3JnlP-d.chunk.mjs.map deleted file mode 100644 index 3fc7dd39c..000000000 --- a/js/ActivityTab-D3JnlP-d.chunk.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ActivityTab-D3JnlP-d.chunk.mjs","sources":["../node_modules/@nextcloud/sharing/dist/share/ShareType.js","../src/components/ActivitySidebarPlugin.vue","../node_modules/@mdi/svg/svg/download-circle.svg?raw","../src/components/DownloadSummary.vue","../src/views/ActivityTab.vue"],"sourcesContent":["/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nexport var ShareType;\n(function (ShareType) {\n ShareType[ShareType[\"User\"] = 0] = \"User\";\n ShareType[ShareType[\"Group\"] = 1] = \"Group\";\n ShareType[ShareType[\"Link\"] = 3] = \"Link\";\n ShareType[ShareType[\"Email\"] = 4] = \"Email\";\n ShareType[ShareType[\"Remote\"] = 6] = \"Remote\";\n /**\n * Was called `Circle` before Nextcloud 29\n */\n ShareType[ShareType[\"Team\"] = 7] = \"Team\";\n ShareType[ShareType[\"Guest\"] = 8] = \"Guest\";\n ShareType[ShareType[\"RemoteGroup\"] = 9] = \"RemoteGroup\";\n ShareType[ShareType[\"Room\"] = 10] = \"Room\";\n ShareType[ShareType[\"Deck\"] = 12] = \"Deck\";\n /**\n * @since 26.0.0\n */\n ShareType[ShareType[\"FederatedGroup\"] = 14] = \"FederatedGroup\";\n /**\n * Third party share types\n *\n * @since 25.0.0\n */\n ShareType[ShareType[\"ScienceMesh\"] = 15] = \"ScienceMesh\";\n})(ShareType || (ShareType = {}));\n","\n\n\n\n\n","export default \"\"","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n"],"names":["ShareType","props","__props","emit","__emit","attachTarget","ref","onMounted","getCurrentInstance","onBeforeUnmount","_createElementBlock","downloadSVG","_sfc_main","defineComponent","NcIconSvgWrapper","n","response","axios","generateOcsUrl","error","logger","t","_hoisted_2","_hoisted_3","_ctx","_openBlock","_hoisted_1","_createElementVNode","_createVNode","_component_NcIconSvgWrapper","_toDisplayString","_createCommentVNode","ActivityTab","ActivityComponent","DownloadSummary","NcEmptyContent","NcLoadingIcon","ActivitySidebarPlugin","lightningBoltSVG","sidebarPlugins","getSidebarActions","nextTick","controller","signal","activities","otherEntries","getAdditionalEntries","a","b","data","activity","ActivityModel","filters","getActivityFilters","filter","_normalizeClass","_createBlock","_component_NcEmptyContent","_withCtx","_Fragment","_renderList","plugin","index","_component_ActivitySidebarPlugin","_cache","_component_DownloadSummary","_component_NcLoadingIcon","_component_ActivityComponent"],"mappings":"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","x_google_ignoreList":[0,2]} \ No newline at end of file diff --git a/js/activity-sidebar.mjs b/js/activity-sidebar.mjs index f4f9f7453..5f22245e6 100644 --- a/js/activity-sidebar.mjs +++ b/js/activity-sidebar.mjs @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('activity', '', 'js/ActivityTab-D3JnlP-d.chunk.mjs'),window.OC.filePath('activity', '', 'js/_plugin-vue_export-helper-YgYGpvaA.chunk.mjs'),window.OC.filePath('activity', '', 'js/index-BrNGPgve.chunk.mjs'),window.OC.filePath('activity', '', 'js/translation-DoG5ZELJ-ns3A9vL-.chunk.mjs'),window.OC.filePath('activity', '', 'js/ActivityComponent.vue_vue_type_script_setup_true_lang-Ce6NNuXP.chunk.mjs'),window.OC.filePath('activity', '', 'js/preload-helper-DxYC2qmj.chunk.mjs'),window.OC.filePath('activity', '', 'js/logger-CXg3FpL2.chunk.mjs'),window.OC.filePath('activity', '', 'js/api-fwrRGLr6.chunk.mjs')])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=[window.OC.filePath('activity', '', 'js/ActivityTab-Bb6AyMro.chunk.mjs'),window.OC.filePath('activity', '', 'js/_plugin-vue_export-helper-YgYGpvaA.chunk.mjs'),window.OC.filePath('activity', '', 'js/index-BrNGPgve.chunk.mjs'),window.OC.filePath('activity', '', 'js/translation-DoG5ZELJ-ns3A9vL-.chunk.mjs'),window.OC.filePath('activity', '', 'js/ActivityComponent.vue_vue_type_script_setup_true_lang-Ce6NNuXP.chunk.mjs'),window.OC.filePath('activity', '', 'js/preload-helper-DxYC2qmj.chunk.mjs'),window.OC.filePath('activity', '', 'js/logger-CXg3FpL2.chunk.mjs'),window.OC.filePath('activity', '', 'js/api-fwrRGLr6.chunk.mjs')])))=>i.map(i=>d[i]); import{_ as Eo}from"./preload-helper-DxYC2qmj.chunk.mjs";import{c as So,d as Tt,p as tt,f as _o}from"./index-BrNGPgve.chunk.mjs";import{Y as Ht,Z as To,M as Ao,_ as Oo}from"./translation-DoG5ZELJ-ns3A9vL-.chunk.mjs";const Io='';window._nc_files_scope??={},window._nc_files_scope.v4_0??={};const $t=window._nc_files_scope.v4_0,Qe=So().setApp("@nextcloud/files").detectUser().build();var Ke={},kt={exports:{}},Ze;function Ge(){if(Ze)return kt.exports;Ze=1;var a=typeof Reflect=="object"?Reflect:null,v=a&&typeof a.apply=="function"?a.apply:function(c,S,R){return Function.prototype.apply.call(c,S,R)},A;a&&typeof a.ownKeys=="function"?A=a.ownKeys:Object.getOwnPropertySymbols?A=function(c){return Object.getOwnPropertyNames(c).concat(Object.getOwnPropertySymbols(c))}:A=function(c){return Object.getOwnPropertyNames(c)};function _(c){console&&console.warn&&console.warn(c)}var D=Number.isNaN||function(c){return c!==c};function d(){d.init.call(this)}kt.exports=d,kt.exports.once=y,d.EventEmitter=d,d.prototype._events=void 0,d.prototype._eventsCount=0,d.prototype._maxListeners=void 0;var T=10;function l(c){if(typeof c!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof c)}Object.defineProperty(d,"defaultMaxListeners",{enumerable:!0,get:function(){return T},set:function(c){if(typeof c!="number"||c<0||D(c))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+c+".");T=c}}),d.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},d.prototype.setMaxListeners=function(c){if(typeof c!="number"||c<0||D(c))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+c+".");return this._maxListeners=c,this};function m(c){return c._maxListeners===void 0?d.defaultMaxListeners:c._maxListeners}d.prototype.getMaxListeners=function(){return m(this)},d.prototype.emit=function(c){for(var S=[],R=1;R0&&(s=S[0]),s instanceof Error)throw s;var q=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw q.context=s,q}var Q=x[c];if(Q===void 0)return!1;if(typeof Q=="function")v(Q,this,S);else for(var w=Q.length,J=W(Q,w),R=0;R0&&q.length>x&&!q.warned){q.warned=!0;var Q=new Error("Possible EventEmitter memory leak detected. "+q.length+" "+String(S)+" listeners added. Use emitter.setMaxListeners() to increase limit");Q.name="MaxListenersExceededWarning",Q.emitter=c,Q.type=S,Q.count=q.length,_(Q)}return c}d.prototype.addListener=function(c,S){return N(this,c,S,!1)},d.prototype.on=d.prototype.addListener,d.prototype.prependListener=function(c,S){return N(this,c,S,!0)};function P(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function C(c,S,R){var B={fired:!1,wrapFn:void 0,target:c,type:S,listener:R},x=P.bind(B);return x.listener=R,B.wrapFn=x,x}d.prototype.once=function(c,S){return l(S),this.on(c,C(this,c,S)),this},d.prototype.prependOnceListener=function(c,S){return l(S),this.prependListener(c,C(this,c,S)),this},d.prototype.removeListener=function(c,S){var R,B,x,s,q;if(l(S),B=this._events,B===void 0)return this;if(R=B[c],R===void 0)return this;if(R===S||R.listener===S)--this._eventsCount===0?this._events=Object.create(null):(delete B[c],B.removeListener&&this.emit("removeListener",c,R.listener||S));else if(typeof R!="function"){for(x=-1,s=R.length-1;s>=0;s--)if(R[s]===S||R[s].listener===S){q=R[s].listener,x=s;break}if(x<0)return this;x===0?R.shift():G(R,x),R.length===1&&(B[c]=R[0]),B.removeListener!==void 0&&this.emit("removeListener",c,q||S)}return this},d.prototype.off=d.prototype.removeListener,d.prototype.removeAllListeners=function(c){var S,R,B;if(R=this._events,R===void 0)return this;if(R.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):R[c]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete R[c]),this;if(arguments.length===0){var x=Object.keys(R),s;for(B=0;B=0;B--)this.removeListener(c,S[B]);return this};function U(c,S,R){var B=c._events;if(B===void 0)return[];var x=B[S];return x===void 0?[]:typeof x=="function"?R?[x.listener||x]:[x]:R?M(x):W(x,x.length)}d.prototype.listeners=function(c){return U(this,c,!0)},d.prototype.rawListeners=function(c){return U(this,c,!1)},d.listenerCount=function(c,S){return typeof c.listenerCount=="function"?c.listenerCount(S):$.call(c,S)},d.prototype.listenerCount=$;function $(c){var S=this._events;if(S!==void 0){var R=S[c];if(typeof R=="function")return 1;if(R!==void 0)return R.length}return 0}d.prototype.eventNames=function(){return this._eventsCount>0?A(this._events):[]};function W(c,S){for(var R=new Array(S),B=0;B0)throw new Error("Invalid string. Length must be a multiple of 4");var c=g.indexOf("=");c===-1&&(c=E);var S=c===E?0:4-c%4;return[c,S]}function P(g){var E=N(g),c=E[0],S=E[1];return(c+S)*3/4-S}function C(g,E,c){return(E+c)*3/4-c}function U(g){var E,c=N(g),S=c[0],R=c[1],B=new d(C(g,S,R)),x=0,s=R>0?S-4:S,q;for(q=0;q>16&255,B[x++]=E>>8&255,B[x++]=E&255;return R===2&&(E=D[g.charCodeAt(q)]<<2|D[g.charCodeAt(q+1)]>>4,B[x++]=E&255),R===1&&(E=D[g.charCodeAt(q)]<<10|D[g.charCodeAt(q+1)]<<4|D[g.charCodeAt(q+2)]>>2,B[x++]=E>>8&255,B[x++]=E&255),B}function $(g){return _[g>>18&63]+_[g>>12&63]+_[g>>6&63]+_[g&63]}function W(g,E,c){for(var S,R=[],B=E;Bs?s:x+B));return S===1?(E=g[c-1],R.push(_[E>>2]+_[E<<4&63]+"==")):S===2&&(E=(g[c-2]<<8)+g[c-1],R.push(_[E>>10]+_[E>>4&63]+_[E<<2&63]+"=")),R.join("")}var M={};M.read=function(g,E,c,S,R){var B,x,s=R*8-S-1,q=(1<>1,w=-7,J=c?R-1:0,et=c?-1:1,rt=g[E+J];for(J+=et,B=rt&(1<<-w)-1,rt>>=-w,w+=s;w>0;B=B*256+g[E+J],J+=et,w-=8);for(x=B&(1<<-w)-1,B>>=-w,w+=S;w>0;x=x*256+g[E+J],J+=et,w-=8);if(B===0)B=1-Q;else{if(B===q)return x?NaN:(rt?-1:1)*(1/0);x=x+Math.pow(2,S),B=B-Q}return(rt?-1:1)*x*Math.pow(2,B-S)},M.write=function(g,E,c,S,R,B){var x,s,q,Q=B*8-R-1,w=(1<>1,et=R===23?Math.pow(2,-24)-Math.pow(2,-77):0,rt=S?0:B-1,at=S?1:-1,Z=E<0||E===0&&1/E<0?1:0;for(E=Math.abs(E),isNaN(E)||E===1/0?(s=isNaN(E)?1:0,x=w):(x=Math.floor(Math.log(E)/Math.LN2),E*(q=Math.pow(2,-x))<1&&(x--,q*=2),x+J>=1?E+=et/q:E+=et*Math.pow(2,1-J),E*q>=2&&(x++,q/=2),x+J>=w?(s=0,x=w):x+J>=1?(s=(E*q-1)*Math.pow(2,R),x=x+J):(s=E*Math.pow(2,J-1)*Math.pow(2,R),x=0));R>=8;g[c+rt]=s&255,rt+=at,s/=256,R-=8);for(x=x<0;g[c+rt]=x&255,rt+=at,x/=256,Q-=8);g[c+rt-at]|=Z*128},(function(g){const E=A,c=M,S=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;g.Buffer=w,g.SlowBuffer=I,g.INSPECT_MAX_BYTES=50;const R=2147483647;g.kMaxLength=R;const{Uint8Array:B,ArrayBuffer:x,SharedArrayBuffer:s}=globalThis;w.TYPED_ARRAY_SUPPORT=q(),!w.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function q(){try{const t=new B(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,B.prototype),Object.setPrototypeOf(t,e),t.foo()===42}catch{return!1}}Object.defineProperty(w.prototype,"parent",{enumerable:!0,get:function(){if(w.isBuffer(this))return this.buffer}}),Object.defineProperty(w.prototype,"offset",{enumerable:!0,get:function(){if(w.isBuffer(this))return this.byteOffset}});function Q(t){if(t>R)throw new RangeError('The value "'+t+'" is invalid for option "size"');const e=new B(t);return Object.setPrototypeOf(e,w.prototype),e}function w(t,e,o){if(typeof t=="number"){if(typeof e=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return at(t)}return J(t,e,o)}w.poolSize=8192;function J(t,e,o){if(typeof t=="string")return Z(t,e);if(x.isView(t))return pt(t);if(t==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(vt(t,x)||t&&vt(t.buffer,x)||typeof s<"u"&&(vt(t,s)||t&&vt(t.buffer,s)))return ot(t,e,o);if(typeof t=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const h=t.valueOf&&t.valueOf();if(h!=null&&h!==t)return w.from(h,e,o);const O=yt(t);if(O)return O;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof t[Symbol.toPrimitive]=="function")return w.from(t[Symbol.toPrimitive]("string"),e,o);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}w.from=function(t,e,o){return J(t,e,o)},Object.setPrototypeOf(w.prototype,B.prototype),Object.setPrototypeOf(w,B);function et(t){if(typeof t!="number")throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function rt(t,e,o){return et(t),t<=0?Q(t):e!==void 0?typeof o=="string"?Q(t).fill(e,o):Q(t).fill(e):Q(t)}w.alloc=function(t,e,o){return rt(t,e,o)};function at(t){return et(t),Q(t<0?0:ht(t)|0)}w.allocUnsafe=function(t){return at(t)},w.allocUnsafeSlow=function(t){return at(t)};function Z(t,e){if((typeof e!="string"||e==="")&&(e="utf8"),!w.isEncoding(e))throw new TypeError("Unknown encoding: "+e);const o=j(t,e)|0;let h=Q(o);const O=h.write(t,e);return O!==o&&(h=h.slice(0,O)),h}function lt(t){const e=t.length<0?0:ht(t.length)|0,o=Q(e);for(let h=0;h=R)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+R.toString(16)+" bytes");return t|0}function I(t){return+t!=t&&(t=0),w.alloc(+t)}w.isBuffer=function(t){return t!=null&&t._isBuffer===!0&&t!==w.prototype},w.compare=function(t,e){if(vt(t,B)&&(t=w.from(t,t.offset,t.byteLength)),vt(e,B)&&(e=w.from(e,e.offset,e.byteLength)),!w.isBuffer(t)||!w.isBuffer(e))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;let o=t.length,h=e.length;for(let O=0,k=Math.min(o,h);Oh.length?(w.isBuffer(k)||(k=w.from(k)),k.copy(h,O)):B.prototype.set.call(h,k,O);else if(w.isBuffer(k))k.copy(h,O);else throw new TypeError('"list" argument must be an Array of Buffers');O+=k.length}return h};function j(t,e){if(w.isBuffer(t))return t.length;if(x.isView(t)||vt(t,x))return t.byteLength;if(typeof t!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);const o=t.length,h=arguments.length>2&&arguments[2]===!0;if(!h&&o===0)return 0;let O=!1;for(;;)switch(e){case"ascii":case"latin1":case"binary":return o;case"utf8":case"utf-8":return Vt(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return o*2;case"hex":return o>>>1;case"base64":return ze(t).length;default:if(O)return h?-1:Vt(t).length;e=(""+e).toLowerCase(),O=!0}}w.byteLength=j;function Y(t,e,o){let h=!1;if((e===void 0||e<0)&&(e=0),e>this.length||((o===void 0||o>this.length)&&(o=this.length),o<=0)||(o>>>=0,e>>>=0,o<=e))return"";for(t||(t="utf8");;)switch(t){case"hex":return gt(this,e,o);case"utf8":case"utf-8":return X(this,e,o);case"ascii":return ft(this,e,o);case"latin1":case"binary":return F(this,e,o);case"base64":return V(this,e,o);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return mt(this,e,o);default:if(h)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),h=!0}}w.prototype._isBuffer=!0;function b(t,e,o){const h=t[e];t[e]=t[o],t[o]=h}w.prototype.swap16=function(){const t=this.length;if(t%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let e=0;ee&&(t+=" ... "),""},S&&(w.prototype[S]=w.prototype.inspect),w.prototype.compare=function(t,e,o,h,O){if(vt(t,B)&&(t=w.from(t,t.offset,t.byteLength)),!w.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(e===void 0&&(e=0),o===void 0&&(o=t?t.length:0),h===void 0&&(h=0),O===void 0&&(O=this.length),e<0||o>t.length||h<0||O>this.length)throw new RangeError("out of range index");if(h>=O&&e>=o)return 0;if(h>=O)return-1;if(e>=o)return 1;if(e>>>=0,o>>>=0,h>>>=0,O>>>=0,this===t)return 0;let k=O-h,H=o-e;const ut=Math.min(k,H),bt=this.slice(h,O),st=t.slice(e,o);for(let it=0;it2147483647?o=2147483647:o<-2147483648&&(o=-2147483648),o=+o,Yt(o)&&(o=O?0:t.length-1),o<0&&(o=t.length+o),o>=t.length){if(O)return-1;o=t.length-1}else if(o<0)if(O)o=0;else return-1;if(typeof e=="string"&&(e=w.from(e,h)),w.isBuffer(e))return e.length===0?-1:r(t,e,o,h,O);if(typeof e=="number")return e=e&255,typeof B.prototype.indexOf=="function"?O?B.prototype.indexOf.call(t,e,o):B.prototype.lastIndexOf.call(t,e,o):r(t,[e],o,h,O);throw new TypeError("val must be string, number or Buffer")}function r(t,e,o,h,O){let k=1,H=t.length,ut=e.length;if(h!==void 0&&(h=String(h).toLowerCase(),h==="ucs2"||h==="ucs-2"||h==="utf16le"||h==="utf-16le")){if(t.length<2||e.length<2)return-1;k=2,H/=2,ut/=2,o/=2}function bt(it,dt){return k===1?it[dt]:it.readUInt16BE(dt*k)}let st;if(O){let it=-1;for(st=o;stH&&(o=H-ut),st=o;st>=0;st--){let it=!0;for(let dt=0;dtO&&(h=O)):h=O;const k=e.length;h>k/2&&(h=k/2);let H;for(H=0;H>>0,isFinite(o)?(o=o>>>0,h===void 0&&(h="utf8")):(h=o,o=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const O=this.length-e;if((o===void 0||o>O)&&(o=O),t.length>0&&(o<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");h||(h="utf8");let k=!1;for(;;)switch(h){case"hex":return p(this,t,e,o);case"utf8":case"utf-8":return f(this,t,e,o);case"ascii":case"latin1":case"binary":return i(this,t,e,o);case"base64":return u(this,t,e,o);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return L(this,t,e,o);default:if(k)throw new TypeError("Unknown encoding: "+h);h=(""+h).toLowerCase(),k=!0}},w.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function V(t,e,o){return e===0&&o===t.length?E.fromByteArray(t):E.fromByteArray(t.slice(e,o))}function X(t,e,o){o=Math.min(t.length,o);const h=[];let O=e;for(;O239?4:k>223?3:k>191?2:1;if(O+ut<=o){let bt,st,it,dt;switch(ut){case 1:k<128&&(H=k);break;case 2:bt=t[O+1],(bt&192)===128&&(dt=(k&31)<<6|bt&63,dt>127&&(H=dt));break;case 3:bt=t[O+1],st=t[O+2],(bt&192)===128&&(st&192)===128&&(dt=(k&15)<<12|(bt&63)<<6|st&63,dt>2047&&(dt<55296||dt>57343)&&(H=dt));break;case 4:bt=t[O+1],st=t[O+2],it=t[O+3],(bt&192)===128&&(st&192)===128&&(it&192)===128&&(dt=(k&15)<<18|(bt&63)<<12|(st&63)<<6|it&63,dt>65535&&dt<1114112&&(H=dt))}}H===null?(H=65533,ut=1):H>65535&&(H-=65536,h.push(H>>>10&1023|55296),H=56320|H&1023),h.push(H),O+=ut}return K(h)}const z=4096;function K(t){const e=t.length;if(e<=z)return String.fromCharCode.apply(String,t);let o="",h=0;for(;hh)&&(o=h);let O="";for(let k=e;ko&&(t=o),e<0?(e+=o,e<0&&(e=0)):e>o&&(e=o),eo)throw new RangeError("Trying to access beyond buffer length")}w.prototype.readUintLE=w.prototype.readUIntLE=function(t,e,o){t=t>>>0,e=e>>>0,o||nt(t,e,this.length);let h=this[t],O=1,k=0;for(;++k>>0,e=e>>>0,o||nt(t,e,this.length);let h=this[t+--e],O=1;for(;e>0&&(O*=256);)h+=this[t+--e]*O;return h},w.prototype.readUint8=w.prototype.readUInt8=function(t,e){return t=t>>>0,e||nt(t,1,this.length),this[t]},w.prototype.readUint16LE=w.prototype.readUInt16LE=function(t,e){return t=t>>>0,e||nt(t,2,this.length),this[t]|this[t+1]<<8},w.prototype.readUint16BE=w.prototype.readUInt16BE=function(t,e){return t=t>>>0,e||nt(t,2,this.length),this[t]<<8|this[t+1]},w.prototype.readUint32LE=w.prototype.readUInt32LE=function(t,e){return t=t>>>0,e||nt(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+this[t+3]*16777216},w.prototype.readUint32BE=w.prototype.readUInt32BE=function(t,e){return t=t>>>0,e||nt(t,4,this.length),this[t]*16777216+(this[t+1]<<16|this[t+2]<<8|this[t+3])},w.prototype.readBigUInt64LE=_t(function(t){t=t>>>0,Pt(t,"offset");const e=this[t],o=this[t+7];(e===void 0||o===void 0)&&Ct(t,this.length-8);const h=e+this[++t]*2**8+this[++t]*2**16+this[++t]*2**24,O=this[++t]+this[++t]*2**8+this[++t]*2**16+o*2**24;return BigInt(h)+(BigInt(O)<>>0,Pt(t,"offset");const e=this[t],o=this[t+7];(e===void 0||o===void 0)&&Ct(t,this.length-8);const h=e*2**24+this[++t]*2**16+this[++t]*2**8+this[++t],O=this[++t]*2**24+this[++t]*2**16+this[++t]*2**8+o;return(BigInt(h)<>>0,e=e>>>0,o||nt(t,e,this.length);let h=this[t],O=1,k=0;for(;++k=O&&(h-=Math.pow(2,8*e)),h},w.prototype.readIntBE=function(t,e,o){t=t>>>0,e=e>>>0,o||nt(t,e,this.length);let h=e,O=1,k=this[t+--h];for(;h>0&&(O*=256);)k+=this[t+--h]*O;return O*=128,k>=O&&(k-=Math.pow(2,8*e)),k},w.prototype.readInt8=function(t,e){return t=t>>>0,e||nt(t,1,this.length),this[t]&128?(255-this[t]+1)*-1:this[t]},w.prototype.readInt16LE=function(t,e){t=t>>>0,e||nt(t,2,this.length);const o=this[t]|this[t+1]<<8;return o&32768?o|4294901760:o},w.prototype.readInt16BE=function(t,e){t=t>>>0,e||nt(t,2,this.length);const o=this[t+1]|this[t]<<8;return o&32768?o|4294901760:o},w.prototype.readInt32LE=function(t,e){return t=t>>>0,e||nt(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},w.prototype.readInt32BE=function(t,e){return t=t>>>0,e||nt(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},w.prototype.readBigInt64LE=_t(function(t){t=t>>>0,Pt(t,"offset");const e=this[t],o=this[t+7];(e===void 0||o===void 0)&&Ct(t,this.length-8);const h=this[t+4]+this[t+5]*2**8+this[t+6]*2**16+(o<<24);return(BigInt(h)<>>0,Pt(t,"offset");const e=this[t],o=this[t+7];(e===void 0||o===void 0)&&Ct(t,this.length-8);const h=(e<<24)+this[++t]*2**16+this[++t]*2**8+this[++t];return(BigInt(h)<>>0,e||nt(t,4,this.length),c.read(this,t,!0,23,4)},w.prototype.readFloatBE=function(t,e){return t=t>>>0,e||nt(t,4,this.length),c.read(this,t,!1,23,4)},w.prototype.readDoubleLE=function(t,e){return t=t>>>0,e||nt(t,8,this.length),c.read(this,t,!0,52,8)},w.prototype.readDoubleBE=function(t,e){return t=t>>>0,e||nt(t,8,this.length),c.read(this,t,!1,52,8)};function ct(t,e,o,h,O,k){if(!w.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>O||et.length)throw new RangeError("Index out of range")}w.prototype.writeUintLE=w.prototype.writeUIntLE=function(t,e,o,h){if(t=+t,e=e>>>0,o=o>>>0,!h){const H=Math.pow(2,8*o)-1;ct(this,t,e,o,H,0)}let O=1,k=0;for(this[e]=t&255;++k>>0,o=o>>>0,!h){const H=Math.pow(2,8*o)-1;ct(this,t,e,o,H,0)}let O=o-1,k=1;for(this[e+O]=t&255;--O>=0&&(k*=256);)this[e+O]=t/k&255;return e+o},w.prototype.writeUint8=w.prototype.writeUInt8=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,1,255,0),this[e]=t&255,e+1},w.prototype.writeUint16LE=w.prototype.writeUInt16LE=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,2,65535,0),this[e]=t&255,this[e+1]=t>>>8,e+2},w.prototype.writeUint16BE=w.prototype.writeUInt16BE=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=t&255,e+2},w.prototype.writeUint32LE=w.prototype.writeUInt32LE=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=t&255,e+4},w.prototype.writeUint32BE=w.prototype.writeUInt32BE=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=t&255,e+4};function Ot(t,e,o,h,O){Xe(e,h,O,t,o,7);let k=Number(e&BigInt(4294967295));t[o++]=k,k=k>>8,t[o++]=k,k=k>>8,t[o++]=k,k=k>>8,t[o++]=k;let H=Number(e>>BigInt(32)&BigInt(4294967295));return t[o++]=H,H=H>>8,t[o++]=H,H=H>>8,t[o++]=H,H=H>>8,t[o++]=H,o}function It(t,e,o,h,O){Xe(e,h,O,t,o,7);let k=Number(e&BigInt(4294967295));t[o+7]=k,k=k>>8,t[o+6]=k,k=k>>8,t[o+5]=k,k=k>>8,t[o+4]=k;let H=Number(e>>BigInt(32)&BigInt(4294967295));return t[o+3]=H,H=H>>8,t[o+2]=H,H=H>>8,t[o+1]=H,H=H>>8,t[o]=H,o+8}w.prototype.writeBigUInt64LE=_t(function(t,e=0){return Ot(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))}),w.prototype.writeBigUInt64BE=_t(function(t,e=0){return It(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))}),w.prototype.writeIntLE=function(t,e,o,h){if(t=+t,e=e>>>0,!h){const ut=Math.pow(2,8*o-1);ct(this,t,e,o,ut-1,-ut)}let O=0,k=1,H=0;for(this[e]=t&255;++O>0)-H&255;return e+o},w.prototype.writeIntBE=function(t,e,o,h){if(t=+t,e=e>>>0,!h){const ut=Math.pow(2,8*o-1);ct(this,t,e,o,ut-1,-ut)}let O=o-1,k=1,H=0;for(this[e+O]=t&255;--O>=0&&(k*=256);)t<0&&H===0&&this[e+O+1]!==0&&(H=1),this[e+O]=(t/k>>0)-H&255;return e+o},w.prototype.writeInt8=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=t&255,e+1},w.prototype.writeInt16LE=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,2,32767,-32768),this[e]=t&255,this[e+1]=t>>>8,e+2},w.prototype.writeInt16BE=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=t&255,e+2},w.prototype.writeInt32LE=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,4,2147483647,-2147483648),this[e]=t&255,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},w.prototype.writeInt32BE=function(t,e,o){return t=+t,e=e>>>0,o||ct(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=t&255,e+4},w.prototype.writeBigInt64LE=_t(function(t,e=0){return Ot(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),w.prototype.writeBigInt64BE=_t(function(t,e=0){return It(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function St(t,e,o,h,O,k){if(o+h>t.length)throw new RangeError("Index out of range");if(o<0)throw new RangeError("Index out of range")}function wt(t,e,o,h,O){return e=+e,o=o>>>0,O||St(t,e,o,4),c.write(t,e,o,h,23,4),o+4}w.prototype.writeFloatLE=function(t,e,o){return wt(this,t,e,!0,o)},w.prototype.writeFloatBE=function(t,e,o){return wt(this,t,e,!1,o)};function Et(t,e,o,h,O){return e=+e,o=o>>>0,O||St(t,e,o,8),c.write(t,e,o,h,52,8),o+8}w.prototype.writeDoubleLE=function(t,e,o){return Et(this,t,e,!0,o)},w.prototype.writeDoubleBE=function(t,e,o){return Et(this,t,e,!1,o)},w.prototype.copy=function(t,e,o,h){if(!w.isBuffer(t))throw new TypeError("argument should be a Buffer");if(o||(o=0),!h&&h!==0&&(h=this.length),e>=t.length&&(e=t.length),e||(e=0),h>0&&h=this.length)throw new RangeError("Index out of range");if(h<0)throw new RangeError("sourceEnd out of bounds");h>this.length&&(h=this.length),t.length-e>>0,o=o===void 0?this.length:o>>>0,t||(t=0);let O;if(typeof t=="number")for(O=e;O2**32?O=qe(String(o)):typeof o=="bigint"&&(O=String(o),(o>BigInt(2)**BigInt(32)||o<-(BigInt(2)**BigInt(32)))&&(O=qe(O)),O+="n"),h+=` It must be ${e}. Received ${O}`,h},RangeError);function qe(t){let e="",o=t.length;const h=t[0]==="-"?1:0;for(;o>=h+4;o-=3)e=`_${t.slice(o-3,o)}${e}`;return`${t.slice(0,o)}${e}`}function ho(t,e,o){Pt(e,"offset"),(t[e]===void 0||t[e+o]===void 0)&&Ct(e,t.length-(o+1))}function Xe(t,e,o,h,O,k){if(t>o||t= 0${H} and < 2${H} ** ${(k+1)*8}${H}`:ut=`>= -(2${H} ** ${(k+1)*8-1}${H}) and < 2 ** ${(k+1)*8-1}${H}`,new Rt.ERR_OUT_OF_RANGE("value",ut,t)}ho(h,O,k)}function Pt(t,e){if(typeof t!="number")throw new Rt.ERR_INVALID_ARG_TYPE(e,"number",t)}function Ct(t,e,o){throw Math.floor(t)!==t?(Pt(t,o),new Rt.ERR_OUT_OF_RANGE("offset","an integer",t)):e<0?new Rt.ERR_BUFFER_OUT_OF_BOUNDS:new Rt.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${e}`,t)}const yo=/[^+/0-9A-Za-z-_]/g;function go(t){if(t=t.split("=")[0],t=t.trim().replace(yo,""),t.length<2)return"";for(;t.length%4!==0;)t=t+"=";return t}function Vt(t,e){e=e||1/0;let o;const h=t.length;let O=null;const k=[];for(let H=0;H55295&&o<57344){if(!O){if(o>56319){(e-=3)>-1&&k.push(239,191,189);continue}else if(H+1===h){(e-=3)>-1&&k.push(239,191,189);continue}O=o;continue}if(o<56320){(e-=3)>-1&&k.push(239,191,189),O=o;continue}o=(O-55296<<10|o-56320)+65536}else O&&(e-=3)>-1&&k.push(239,191,189);if(O=null,o<128){if((e-=1)<0)break;k.push(o)}else if(o<2048){if((e-=2)<0)break;k.push(o>>6|192,o&63|128)}else if(o<65536){if((e-=3)<0)break;k.push(o>>12|224,o>>6&63|128,o&63|128)}else if(o<1114112){if((e-=4)<0)break;k.push(o>>18|240,o>>12&63|128,o>>6&63|128,o&63|128)}else throw new Error("Invalid code point")}return k}function bo(t){const e=[];for(let o=0;o>8,O=o%256,k.push(O),k.push(h);return k}function ze(t){return E.toByteArray(go(t))}function jt(t,e,o,h){let O;for(O=0;O=e.length||O>=t.length);++O)e[O+o]=t[O];return O}function vt(t,e){return t instanceof e||t!=null&&t.constructor!=null&&t.constructor.name!=null&&t.constructor.name===e.name}function Yt(t){return t!==t}const vo=(function(){const t="0123456789abcdef",e=new Array(256);for(let o=0;o<16;++o){const h=o*16;for(let O=0;O<16;++O)e[h+O]=t[o]+t[O]}return e})();function _t(t){return typeof BigInt>"u"?wo:t}function wo(){throw new Error("BigInt not supported")}})(v);const y=v.Buffer;a.Blob=v.Blob,a.BlobOptions=v.BlobOptions,a.Buffer=v.Buffer,a.File=v.File,a.FileOptions=v.FileOptions,a.INSPECT_MAX_BYTES=v.INSPECT_MAX_BYTES,a.SlowBuffer=v.SlowBuffer,a.TranscodeEncoding=v.TranscodeEncoding,a.atob=v.atob,a.btoa=v.btoa,a.constants=v.constants,a.default=y,a.isAscii=v.isAscii,a.isUtf8=v.isUtf8,a.kMaxLength=v.kMaxLength,a.kStringMaxLength=v.kStringMaxLength,a.resolveObjectURL=v.resolveObjectURL,a.transcode=v.transcode})(rr)),rr}var or={},ir={},ar,ur;function Zn(){return ur||(ur=1,ar=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var a={},v=Symbol("test"),A=Object(v);if(typeof v=="string"||Object.prototype.toString.call(v)!=="[object Symbol]"||Object.prototype.toString.call(A)!=="[object Symbol]")return!1;var _=42;a[v]=_;for(var D in a)return!1;if(typeof Object.keys=="function"&&Object.keys(a).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(a).length!==0)return!1;var d=Object.getOwnPropertySymbols(a);if(d.length!==1||d[0]!==v||!Object.prototype.propertyIsEnumerable.call(a,v))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var T=Object.getOwnPropertyDescriptor(a,v);if(T.value!==_||T.enumerable!==!0)return!1}return!0}),ar}var Xt,sr;function Ut(){if(sr)return Xt;sr=1;var a=Zn();return Xt=function(){return a()&&!!Symbol.toStringTag},Xt}var fr,cr;function Jn(){return cr||(cr=1,fr=Object),fr}var lr,pr;function Ro(){return pr||(pr=1,lr=Error),lr}var hr,yr;function Po(){return yr||(yr=1,hr=EvalError),hr}var dr,gr;function No(){return gr||(gr=1,dr=RangeError),dr}var br,mr;function Bo(){return mr||(mr=1,br=ReferenceError),br}var vr,wr;function to(){return wr||(wr=1,vr=SyntaxError),vr}var Er,Sr;function Mt(){return Sr||(Sr=1,Er=TypeError),Er}var _r,Tr;function Lo(){return Tr||(Tr=1,_r=URIError),_r}var Ar,Or;function Co(){return Or||(Or=1,Ar=Math.abs),Ar}var Ir,Rr;function Mo(){return Rr||(Rr=1,Ir=Math.floor),Ir}var Pr,Nr;function xo(){return Nr||(Nr=1,Pr=Math.max),Pr}var Br,Lr;function Do(){return Lr||(Lr=1,Br=Math.min),Br}var Cr,Mr;function jo(){return Mr||(Mr=1,Cr=Math.pow),Cr}var xr,Dr;function ko(){return Dr||(Dr=1,xr=Math.round),xr}var jr,kr;function Fo(){return kr||(kr=1,jr=Number.isNaN||function(a){return a!==a}),jr}var zt,Fr;function Uo(){if(Fr)return zt;Fr=1;var a=Fo();return zt=function(v){return a(v)||v===0?v:v<0?-1:1},zt}var Ur,Gr;function Go(){return Gr||(Gr=1,Ur=Object.getOwnPropertyDescriptor),Ur}var Qt,Wr;function Bt(){if(Wr)return Qt;Wr=1;var a=Go();if(a)try{a([],"length")}catch{a=null}return Qt=a,Qt}var Kt,Vr;function Gt(){if(Vr)return Kt;Vr=1;var a=Object.defineProperty||!1;if(a)try{a({},"a",{value:1})}catch{a=!1}return Kt=a,Kt}var Zt,Yr;function Wo(){if(Yr)return Zt;Yr=1;var a=typeof Symbol<"u"&&Symbol,v=Zn();return Zt=function(){return typeof a!="function"||typeof Symbol!="function"||typeof a("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:v()},Zt}var Hr,$r;function eo(){return $r||($r=1,Hr=typeof Reflect<"u"&&Reflect.getPrototypeOf||null),Hr}var Jt,qr;function ro(){if(qr)return Jt;qr=1;var a=Jn();return Jt=a.getPrototypeOf||null,Jt}var te,Xr;function Vo(){if(Xr)return te;Xr=1;var a="Function.prototype.bind called on incompatible ",v=Object.prototype.toString,A=Math.max,_="[object Function]",D=function(l,m){for(var N=[],P=0;P"u"||!B?a:B(Uint8Array),et={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?a:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?a:ArrayBuffer,"%ArrayIteratorPrototype%":R&&B?B([][Symbol.iterator]()):a,"%AsyncFromSyncIteratorPrototype%":a,"%AsyncFunction%":w,"%AsyncGenerator%":w,"%AsyncGeneratorFunction%":w,"%AsyncIteratorPrototype%":w,"%Atomics%":typeof Atomics>"u"?a:Atomics,"%BigInt%":typeof BigInt>"u"?a:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?a:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?a:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?a:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":A,"%eval%":eval,"%EvalError%":_,"%Float16Array%":typeof Float16Array>"u"?a:Float16Array,"%Float32Array%":typeof Float32Array>"u"?a:Float32Array,"%Float64Array%":typeof Float64Array>"u"?a:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?a:FinalizationRegistry,"%Function%":M,"%GeneratorFunction%":w,"%Int8Array%":typeof Int8Array>"u"?a:Int8Array,"%Int16Array%":typeof Int16Array>"u"?a:Int16Array,"%Int32Array%":typeof Int32Array>"u"?a:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":R&&B?B(B([][Symbol.iterator]())):a,"%JSON%":typeof JSON=="object"?JSON:a,"%Map%":typeof Map>"u"?a:Map,"%MapIteratorPrototype%":typeof Map>"u"||!R||!B?a:B(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":v,"%Object.getOwnPropertyDescriptor%":g,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?a:Promise,"%Proxy%":typeof Proxy>"u"?a:Proxy,"%RangeError%":D,"%ReferenceError%":d,"%Reflect%":typeof Reflect>"u"?a:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?a:Set,"%SetIteratorPrototype%":typeof Set>"u"||!R||!B?a:B(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?a:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":R&&B?B(""[Symbol.iterator]()):a,"%Symbol%":R?Symbol:a,"%SyntaxError%":T,"%ThrowTypeError%":S,"%TypedArray%":J,"%TypeError%":l,"%Uint8Array%":typeof Uint8Array>"u"?a:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?a:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?a:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?a:Uint32Array,"%URIError%":m,"%WeakMap%":typeof WeakMap>"u"?a:WeakMap,"%WeakRef%":typeof WeakRef>"u"?a:WeakRef,"%WeakSet%":typeof WeakSet>"u"?a:WeakSet,"%Function.prototype.call%":Q,"%Function.prototype.apply%":q,"%Object.defineProperty%":E,"%Object.getPrototypeOf%":x,"%Math.abs%":N,"%Math.floor%":P,"%Math.max%":C,"%Math.min%":U,"%Math.pow%":$,"%Math.round%":W,"%Math.sign%":G,"%Reflect.getPrototypeOf%":s};if(B)try{null.error}catch(p){var rt=B(B(p));et["%Error.prototype%"]=rt}var at=function p(f){var i;if(f==="%AsyncFunction%")i=y("async function () {}");else if(f==="%GeneratorFunction%")i=y("function* () {}");else if(f==="%AsyncGeneratorFunction%")i=y("async function* () {}");else if(f==="%AsyncGenerator%"){var u=p("%AsyncGeneratorFunction%");u&&(i=u.prototype)}else if(f==="%AsyncIteratorPrototype%"){var L=p("%AsyncGenerator%");L&&B&&(i=B(L.prototype))}return et[f]=i,i},Z={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},lt=xt(),pt=oo(),ot=lt.call(Q,Array.prototype.concat),yt=lt.call(q,Array.prototype.splice),ht=lt.call(Q,String.prototype.replace),I=lt.call(Q,String.prototype.slice),j=lt.call(Q,RegExp.prototype.exec),Y=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,b=/\\(\\)?/g,n=function(p){var f=I(p,0,1),i=I(p,-1);if(f==="%"&&i!=="%")throw new T("invalid intrinsic syntax, expected closing `%`");if(i==="%"&&f!=="%")throw new T("invalid intrinsic syntax, expected opening `%`");var u=[];return ht(p,Y,function(L,V,X,z){u[u.length]=X?ht(z,b,"$1"):V||L}),u},r=function(p,f){var i=p,u;if(pt(Z,i)&&(u=Z[i],i="%"+u[0]+"%"),pt(et,i)){var L=et[i];if(L===w&&(L=at(i)),typeof L>"u"&&!f)throw new l("intrinsic "+p+" exists, but is not available. Please file an issue!");return{alias:u,name:i,value:L}}throw new T("intrinsic "+p+" does not exist!")};return ue=function(p,f){if(typeof p!="string"||p.length===0)throw new l("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof f!="boolean")throw new l('"allowMissing" argument must be a boolean');if(j(/^%?[^%]*%?$/,p)===null)throw new T("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var i=n(p),u=i.length>0?i[0]:"",L=r("%"+u+"%",f),V=L.name,X=L.value,z=!1,K=L.alias;K&&(u=K[0],yt(i,ot([0,1],K)));for(var ft=1,F=!0;ft=i.length){var ct=g(X,gt);F=!!ct,F&&"get"in ct&&!("originalValue"in ct.get)?X=ct.get:X=X[gt]}else F=pt(X,gt),X=X[gt];F&&!z&&(et[V]=X)}}return X},ue}var se,fn;function Dt(){if(fn)return se;fn=1;var a=io(),v=Ye(),A=v([a("%String.prototype.indexOf%")]);return se=function(_,D){var d=a(_,!!D);return typeof d=="function"&&A(_,".prototype.")>-1?v([d]):d},se}var fe,cn;function $o(){if(cn)return fe;cn=1;var a=Ut()(),v=Dt(),A=v("Object.prototype.toString"),_=function(T){return a&&T&&typeof T=="object"&&Symbol.toStringTag in T?!1:A(T)==="[object Arguments]"},D=function(T){return _(T)?!0:T!==null&&typeof T=="object"&&"length"in T&&typeof T.length=="number"&&T.length>=0&&A(T)!=="[object Array]"&&"callee"in T&&A(T.callee)==="[object Function]"},d=(function(){return _(arguments)})();return _.isLegacyArguments=D,fe=d?_:D,fe}var ce,ln;function qo(){if(ln)return ce;ln=1;var a=Dt(),v=Ut()(),A=oo(),_=Bt(),D;if(v){var d=a("RegExp.prototype.exec"),T={},l=function(){throw T},m={toString:l,valueOf:l};typeof Symbol.toPrimitive=="symbol"&&(m[Symbol.toPrimitive]=l),D=function(C){if(!C||typeof C!="object")return!1;var U=_(C,"lastIndex"),$=U&&A(U,"value");if(!$)return!1;try{d(C,m)}catch(W){return W===T}}}else{var N=a("Object.prototype.toString"),P="[object RegExp]";D=function(C){return!C||typeof C!="object"&&typeof C!="function"?!1:N(C)===P}}return ce=D,ce}var le,pn;function Xo(){if(pn)return le;pn=1;var a=Dt(),v=qo(),A=a("RegExp.prototype.exec"),_=Mt();return le=function(D){if(!v(D))throw new _("`regex` must be a RegExp");return function(d){return A(D,d)!==null}},le}var pe,hn;function zo(){if(hn)return pe;hn=1;const a=function*(){}.constructor;return pe=()=>a,pe}var he,yn;function Qo(){if(yn)return he;yn=1;var a=Dt(),v=Xo(),A=v(/^\s*(?:function)?\*/),_=Ut()(),D=He(),d=a("Object.prototype.toString"),T=a("Function.prototype.toString"),l=zo();return he=function(m){if(typeof m!="function")return!1;if(A(T(m)))return!0;if(!_){var N=d(m);return N==="[object GeneratorFunction]"}if(!D)return!1;var P=l();return P&&D(m)===P.prototype},he}var ye,dn;function Ko(){if(dn)return ye;dn=1;var a=Function.prototype.toString,v=typeof Reflect=="object"&&Reflect!==null&&Reflect.apply,A,_;if(typeof v=="function"&&typeof Object.defineProperty=="function")try{A=Object.defineProperty({},"length",{get:function(){throw _}}),_={},v(function(){throw 42},null,A)}catch(g){g!==_&&(v=null)}else v=null;var D=/^\s*class\b/,d=function(g){try{var E=a.call(g);return D.test(E)}catch{return!1}},T=function(g){try{return d(g)?!1:(a.call(g),!0)}catch{return!1}},l=Object.prototype.toString,m="[object Object]",N="[object Function]",P="[object GeneratorFunction]",C="[object HTMLAllCollection]",U="[object HTML document.all class]",$="[object HTMLCollection]",W=typeof Symbol=="function"&&!!Symbol.toStringTag,G=!(0 in[,]),M=function(){return!1};if(typeof document=="object"){var y=document.all;l.call(y)===l.call(document.all)&&(M=function(g){if((G||!g)&&(typeof g>"u"||typeof g=="object"))try{var E=l.call(g);return(E===C||E===U||E===$||E===m)&&g("")==null}catch{}return!1})}return ye=v?function(g){if(M(g))return!0;if(!g||typeof g!="function"&&typeof g!="object")return!1;try{v(g,null,A)}catch(E){if(E!==_)return!1}return!d(g)&&T(g)}:function(g){if(M(g))return!0;if(!g||typeof g!="function"&&typeof g!="object")return!1;if(W)return T(g);if(d(g))return!1;var E=l.call(g);return E!==N&&E!==P&&!/^\[object HTML/.test(E)?!1:T(g)},ye}var de,gn;function Zo(){if(gn)return de;gn=1;var a=Ko(),v=Object.prototype.toString,A=Object.prototype.hasOwnProperty,_=function(l,m,N){for(var P=0,C=l.length;P=3&&(P=N),T(l)?_(l,m,P):typeof l=="string"?D(l,m,P):d(l,m,P)},de}var bn,mn;function Jo(){return mn||(mn=1,bn=["Float16Array","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"]),bn}var ge,vn;function ti(){if(vn)return ge;vn=1;var a=Jo(),v=typeof globalThis>"u"?Tt:globalThis;return ge=function(){for(var A=[],_=0;_3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new A("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new A("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new A("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new A("`loose`, if provided, must be a boolean");var l=arguments.length>3?arguments[3]:null,m=arguments.length>4?arguments[4]:null,N=arguments.length>5?arguments[5]:null,P=arguments.length>6?arguments[6]:!1,C=!!_&&_(D,d);if(a)a(D,d,{configurable:N===null&&C?C.configurable:!N,enumerable:l===null&&C?C.enumerable:!l,value:T,writable:m===null&&C?C.writable:!m});else if(P||!l&&!m&&!N)D[d]=T;else throw new v("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},be}var me,Sn;function ri(){if(Sn)return me;Sn=1;var a=Gt(),v=function(){return!!a};return v.hasArrayLengthDefineBug=function(){if(!a)return null;try{return a([],"length",{value:1}).length!==1}catch{return!0}},me=v,me}var ve,_n;function ni(){if(_n)return ve;_n=1;var a=io(),v=ei(),A=ri()(),_=Bt(),D=Mt(),d=a("%Math.floor%");return ve=function(T,l){if(typeof T!="function")throw new D("`fn` is not a function");if(typeof l!="number"||l<0||l>4294967295||d(l)!==l)throw new D("`length` must be a positive 32-bit integer");var m=arguments.length>2&&!!arguments[2],N=!0,P=!0;if("length"in T&&_){var C=_(T,"length");C&&!C.configurable&&(N=!1),C&&!C.writable&&(P=!1)}return(N||P||!m)&&(A?v(T,"length",l,!0,!0):v(T,"length",l)),T},ve}var we,Tn;function oi(){if(Tn)return we;Tn=1;var a=xt(),v=Ve(),A=no();return we=function(){return A(a,v,arguments)},we}var An;function ii(){return An||(An=1,(function(a){var v=ni(),A=Gt(),_=Ye(),D=oi();a.exports=function(d){var T=_(arguments),l=1+d.length-(arguments.length-1);return v(T,l>0?l:0,!0)},A?A(a.exports,"apply",{value:D}):a.exports.apply=D})(wn)),wn.exports}var Ee,On;function ao(){if(On)return Ee;On=1;var a=Zo(),v=ti(),A=ii(),_=Dt(),D=Bt(),d=He(),T=_("Object.prototype.toString"),l=Ut()(),m=typeof globalThis>"u"?Tt:globalThis,N=v(),P=_("String.prototype.slice"),C=_("Array.prototype.indexOf",!0)||function(M,y){for(var g=0;g-1}return Ee=function(M){if(!M||typeof M!="object")return!1;if(!l){var y=P(T(M),8,-1);return G(y)?y:y!=="Object"?!1:W(M)}return D?$(M):null},Ee}var Se,In;function ai(){if(In)return Se;In=1;var a=ao();return Se=function(v){return!!a(v)},Se}var Rn;function ui(){return Rn||(Rn=1,(function(a){var v=$o(),A=Qo(),_=ao(),D=ai();function d(F){return F.call.bind(F)}var T=typeof BigInt<"u",l=typeof Symbol<"u",m=d(Object.prototype.toString),N=d(Number.prototype.valueOf),P=d(String.prototype.valueOf),C=d(Boolean.prototype.valueOf);if(T)var U=d(BigInt.prototype.valueOf);if(l)var $=d(Symbol.prototype.valueOf);function W(F,gt){if(typeof F!="object")return!1;try{return gt(F),!0}catch{return!1}}a.isArgumentsObject=v,a.isGeneratorFunction=A,a.isTypedArray=D;function G(F){return typeof Promise<"u"&&F instanceof Promise||F!==null&&typeof F=="object"&&typeof F.then=="function"&&typeof F.catch=="function"}a.isPromise=G;function M(F){return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?ArrayBuffer.isView(F):D(F)||I(F)}a.isArrayBufferView=M;function y(F){return _(F)==="Uint8Array"}a.isUint8Array=y;function g(F){return _(F)==="Uint8ClampedArray"}a.isUint8ClampedArray=g;function E(F){return _(F)==="Uint16Array"}a.isUint16Array=E;function c(F){return _(F)==="Uint32Array"}a.isUint32Array=c;function S(F){return _(F)==="Int8Array"}a.isInt8Array=S;function R(F){return _(F)==="Int16Array"}a.isInt16Array=R;function B(F){return _(F)==="Int32Array"}a.isInt32Array=B;function x(F){return _(F)==="Float32Array"}a.isFloat32Array=x;function s(F){return _(F)==="Float64Array"}a.isFloat64Array=s;function q(F){return _(F)==="BigInt64Array"}a.isBigInt64Array=q;function Q(F){return _(F)==="BigUint64Array"}a.isBigUint64Array=Q;function w(F){return m(F)==="[object Map]"}w.working=typeof Map<"u"&&w(new Map);function J(F){return typeof Map>"u"?!1:w.working?w(F):F instanceof Map}a.isMap=J;function et(F){return m(F)==="[object Set]"}et.working=typeof Set<"u"&&et(new Set);function rt(F){return typeof Set>"u"?!1:et.working?et(F):F instanceof Set}a.isSet=rt;function at(F){return m(F)==="[object WeakMap]"}at.working=typeof WeakMap<"u"&&at(new WeakMap);function Z(F){return typeof WeakMap>"u"?!1:at.working?at(F):F instanceof WeakMap}a.isWeakMap=Z;function lt(F){return m(F)==="[object WeakSet]"}lt.working=typeof WeakSet<"u"&<(new WeakSet);function pt(F){return lt(F)}a.isWeakSet=pt;function ot(F){return m(F)==="[object ArrayBuffer]"}ot.working=typeof ArrayBuffer<"u"&&ot(new ArrayBuffer);function yt(F){return typeof ArrayBuffer>"u"?!1:ot.working?ot(F):F instanceof ArrayBuffer}a.isArrayBuffer=yt;function ht(F){return m(F)==="[object DataView]"}ht.working=typeof ArrayBuffer<"u"&&typeof DataView<"u"&&ht(new DataView(new ArrayBuffer(1),0,1));function I(F){return typeof DataView>"u"?!1:ht.working?ht(F):F instanceof DataView}a.isDataView=I;var j=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:void 0;function Y(F){return m(F)==="[object SharedArrayBuffer]"}function b(F){return typeof j>"u"?!1:(typeof Y.working>"u"&&(Y.working=Y(new j)),Y.working?Y(F):F instanceof j)}a.isSharedArrayBuffer=b;function n(F){return m(F)==="[object AsyncFunction]"}a.isAsyncFunction=n;function r(F){return m(F)==="[object Map Iterator]"}a.isMapIterator=r;function p(F){return m(F)==="[object Set Iterator]"}a.isSetIterator=p;function f(F){return m(F)==="[object Generator]"}a.isGeneratorObject=f;function i(F){return m(F)==="[object WebAssembly.Module]"}a.isWebAssemblyCompiledModule=i;function u(F){return W(F,N)}a.isNumberObject=u;function L(F){return W(F,P)}a.isStringObject=L;function V(F){return W(F,C)}a.isBooleanObject=V;function X(F){return T&&W(F,U)}a.isBigIntObject=X;function z(F){return l&&W(F,$)}a.isSymbolObject=z;function K(F){return u(F)||L(F)||V(F)||X(F)||z(F)}a.isBoxedPrimitive=K;function ft(F){return typeof Uint8Array<"u"&&(yt(F)||b(F))}a.isAnyArrayBuffer=ft,["isProxy","isExternal","isModuleNamespaceObject"].forEach(function(F){Object.defineProperty(a,F,{enumerable:!1,value:function(){throw new Error(F+" is not supported in userland")}})})})(ir)),ir}var Pn,Nn;function si(){return Nn||(Nn=1,Pn=function(a){return a&&typeof a=="object"&&typeof a.copy=="function"&&typeof a.fill=="function"&&typeof a.readUInt8=="function"}),Pn}var Bn;function uo(){return Bn||(Bn=1,(function(a){var v={},A=Object.getOwnPropertyDescriptors||function(I){for(var j=Object.keys(I),Y={},b=0;b=n)return i;switch(i){case"%s":return String(b[Y++]);case"%d":return Number(b[Y++]);case"%j":try{return JSON.stringify(b[Y++])}catch{return"[Circular]"}default:return i}}),p=b[Y];Y"u")return function(){return a.deprecate(I,j).apply(this,arguments)};var Y=!1;function b(){if(!Y){if(tt.throwDeprecation)throw new Error(j);tt.traceDeprecation?console.trace(j):console.error(j),Y=!0}return I.apply(this,arguments)}return b};var D={},d=/^$/;if(v.NODE_DEBUG){var T=v.NODE_DEBUG;T=T.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),d=new RegExp("^"+T+"$","i")}a.debuglog=function(I){if(I=I.toUpperCase(),!D[I])if(d.test(I)){var j=tt.pid;D[I]=function(){var Y=a.format.apply(a,arguments);console.error("%s %d: %s",I,j,Y)}}else D[I]=function(){};return D[I]};function l(I,j){var Y={seen:[],stylize:N};return arguments.length>=3&&(Y.depth=arguments[2]),arguments.length>=4&&(Y.colors=arguments[3]),g(j)?Y.showHidden=j:j&&a._extend(Y,j),x(Y.showHidden)&&(Y.showHidden=!1),x(Y.depth)&&(Y.depth=2),x(Y.colors)&&(Y.colors=!1),x(Y.customInspect)&&(Y.customInspect=!0),Y.colors&&(Y.stylize=m),C(Y,I,Y.depth)}a.inspect=l,l.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},l.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function m(I,j){var Y=l.styles[j];return Y?"\x1B["+l.colors[Y][0]+"m"+I+"\x1B["+l.colors[Y][1]+"m":I}function N(I,j){return I}function P(I){var j={};return I.forEach(function(Y,b){j[Y]=!0}),j}function C(I,j,Y){if(I.customInspect&&j&&J(j.inspect)&&j.inspect!==a.inspect&&!(j.constructor&&j.constructor.prototype===j)){var b=j.inspect(Y,I);return R(b)||(b=C(I,b,Y)),b}var n=U(I,j);if(n)return n;var r=Object.keys(j),p=P(r);if(I.showHidden&&(r=Object.getOwnPropertyNames(j)),w(j)&&(r.indexOf("message")>=0||r.indexOf("description")>=0))return $(j);if(r.length===0){if(J(j)){var f=j.name?": "+j.name:"";return I.stylize("[Function"+f+"]","special")}if(s(j))return I.stylize(RegExp.prototype.toString.call(j),"regexp");if(Q(j))return I.stylize(Date.prototype.toString.call(j),"date");if(w(j))return $(j)}var i="",u=!1,L=["{","}"];if(y(j)&&(u=!0,L=["[","]"]),J(j)){var V=j.name?": "+j.name:"";i=" [Function"+V+"]"}if(s(j)&&(i=" "+RegExp.prototype.toString.call(j)),Q(j)&&(i=" "+Date.prototype.toUTCString.call(j)),w(j)&&(i=" "+$(j)),r.length===0&&(!u||j.length==0))return L[0]+i+L[1];if(Y<0)return s(j)?I.stylize(RegExp.prototype.toString.call(j),"regexp"):I.stylize("[Object]","special");I.seen.push(j);var X;return u?X=W(I,j,Y,p,r):X=r.map(function(z){return G(I,j,Y,p,z,u)}),I.seen.pop(),M(X,i,L)}function U(I,j){if(x(j))return I.stylize("undefined","undefined");if(R(j)){var Y="'"+JSON.stringify(j).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return I.stylize(Y,"string")}if(S(j))return I.stylize(""+j,"number");if(g(j))return I.stylize(""+j,"boolean");if(E(j))return I.stylize("null","null")}function $(I){return"["+Error.prototype.toString.call(I)+"]"}function W(I,j,Y,b,n){for(var r=[],p=0,f=j.length;p-1&&(r?f=f.split(` `).map(function(u){return" "+u}).join(` @@ -16,5 +16,5 @@ Char: `+n.c),r=new Error(r),n.error=r,Q(n,"onerror",r),n}function at(n){return n Actual: `+n.attribValue);else if(f==="xmlns"&&n.attribValue!==W)Z(n,"xmlns: prefix must be bound to "+W+` Actual: `+n.attribValue);else{var i=n.tag,u=n.tags[n.tags.length-1]||n;i.ns===u.ns&&(i.ns=Object.create(u.ns)),i.ns[f]=n.attribValue}n.attribList.push([n.attribName,n.attribValue])}else n.tag.attributes[n.attribName]=n.attribValue,w(n,"onattribute",{name:n.attribName,value:n.attribValue});n.attribName=n.attribValue=""}function yt(n,r){if(n.opt.xmlns){var p=n.tag,f=pt(n.tagName);p.prefix=f.prefix,p.local=f.local,p.uri=p.ns[f.prefix]||"",p.prefix&&!p.uri&&(Z(n,"Unbound namespace prefix: "+JSON.stringify(n.tagName)),p.uri=f.prefix);var i=n.tags[n.tags.length-1]||n;p.ns&&i.ns!==p.ns&&Object.keys(p.ns).forEach(function(nt){w(n,"onopennamespace",{prefix:nt,uri:p.ns[nt]})});for(var u=0,L=n.attribList.length;u",n.tagName="",n.state=s.SCRIPT;return}w(n,"onscript",n.script),n.script=""}var r=n.tags.length,p=n.tagName;n.strict||(p=p[n.looseCase]());for(var f=p;r--;){var i=n.tags[r];if(i.name!==f)Z(n,"Unexpected close tag");else break}if(r<0){Z(n,"Unmatched closing tag: "+n.tagName),n.textNode+="",n.state=s.TEXT;return}n.tagName=p;for(var u=n.tags.length;u-- >r;){var L=n.tag=n.tags.pop();n.tagName=n.tag.name,w(n,"onclosetag",n.tagName);var V={};for(var X in L.ns)V[X]=L.ns[X];var z=n.tags[n.tags.length-1]||n;n.opt.xmlns&&L.ns!==z.ns&&Object.keys(L.ns).forEach(function(K){var ft=L.ns[K];w(n,"onclosenamespace",{prefix:K,uri:ft})})}r===0&&(n.closedRoot=!0),n.tagName=n.attribValue=n.attribName="",n.attribList.length=0,n.state=s.TEXT}function I(n){var r=n.entity,p=r.toLowerCase(),f,i="";return n.ENTITIES[r]?n.ENTITIES[r]:n.ENTITIES[p]?n.ENTITIES[p]:(r=p,r.charAt(0)==="#"&&(r.charAt(1)==="x"?(r=r.slice(2),f=parseInt(r,16),i=f.toString(16)):(r=r.slice(1),f=parseInt(r,10),i=f.toString(10))),r=r.replace(/^0+/,""),isNaN(f)||i.toLowerCase()!==r?(Z(n,"Invalid character entity"),"&"+n.entity+";"):String.fromCodePoint(f))}function j(n,r){r==="<"?(n.state=s.OPEN_WAKA,n.startTagPosition=n.position):c(r)||(Z(n,"Non-whitespace before first tag."),n.textNode=r,n.state=s.TEXT)}function Y(n,r){var p="";return r"?(w(r,"onsgmldeclaration",r.sgmlDecl),r.sgmlDecl="",r.state=s.TEXT):(S(f)&&(r.state=s.SGML_DECL_QUOTED),r.sgmlDecl+=f);continue;case s.SGML_DECL_QUOTED:f===r.q&&(r.state=s.SGML_DECL,r.q=""),r.sgmlDecl+=f;continue;case s.DOCTYPE:f===">"?(r.state=s.TEXT,w(r,"ondoctype",r.doctype),r.doctype=!0):(r.doctype+=f,f==="["?r.state=s.DOCTYPE_DTD:S(f)&&(r.state=s.DOCTYPE_QUOTED,r.q=f));continue;case s.DOCTYPE_QUOTED:r.doctype+=f,f===r.q&&(r.q="",r.state=s.DOCTYPE);continue;case s.DOCTYPE_DTD:f==="]"?(r.doctype+=f,r.state=s.DOCTYPE):f==="<"?(r.state=s.OPEN_WAKA,r.startTagPosition=r.position):S(f)?(r.doctype+=f,r.state=s.DOCTYPE_DTD_QUOTED,r.q=f):r.doctype+=f;continue;case s.DOCTYPE_DTD_QUOTED:r.doctype+=f,f===r.q&&(r.state=s.DOCTYPE_DTD,r.q="");continue;case s.COMMENT:f==="-"?r.state=s.COMMENT_ENDING:r.comment+=f;continue;case s.COMMENT_ENDING:f==="-"?(r.state=s.COMMENT_ENDED,r.comment=et(r.opt,r.comment),r.comment&&w(r,"oncomment",r.comment),r.comment=""):(r.comment+="-"+f,r.state=s.COMMENT);continue;case s.COMMENT_ENDED:f!==">"?(Z(r,"Malformed comment"),r.comment+="--"+f,r.state=s.COMMENT):r.doctype&&r.doctype!==!0?r.state=s.DOCTYPE_DTD:r.state=s.TEXT;continue;case s.CDATA:f==="]"?r.state=s.CDATA_ENDING:r.cdata+=f;continue;case s.CDATA_ENDING:f==="]"?r.state=s.CDATA_ENDING_2:(r.cdata+="]"+f,r.state=s.CDATA);continue;case s.CDATA_ENDING_2:f===">"?(r.cdata&&w(r,"oncdata",r.cdata),w(r,"onclosecdata"),r.cdata="",r.state=s.TEXT):f==="]"?r.cdata+="]":(r.cdata+="]]"+f,r.state=s.CDATA);continue;case s.PROC_INST:f==="?"?r.state=s.PROC_INST_ENDING:c(f)?r.state=s.PROC_INST_BODY:r.procInstName+=f;continue;case s.PROC_INST_BODY:if(!r.procInstBody&&c(f))continue;f==="?"?r.state=s.PROC_INST_ENDING:r.procInstBody+=f;continue;case s.PROC_INST_ENDING:f===">"?(w(r,"onprocessinginstruction",{name:r.procInstName,body:r.procInstBody}),r.procInstName=r.procInstBody="",r.state=s.TEXT):(r.procInstBody+="?"+f,r.state=s.PROC_INST_BODY);continue;case s.OPEN_TAG:B(y,f)?r.tagName+=f:(lt(r),f===">"?yt(r):f==="/"?r.state=s.OPEN_TAG_SLASH:(c(f)||Z(r,"Invalid character in tag name"),r.state=s.ATTRIB));continue;case s.OPEN_TAG_SLASH:f===">"?(yt(r,!0),ht(r)):(Z(r,"Forward-slash in opening tag not followed by >"),r.state=s.ATTRIB);continue;case s.ATTRIB:if(c(f))continue;f===">"?yt(r):f==="/"?r.state=s.OPEN_TAG_SLASH:B(M,f)?(r.attribName=f,r.attribValue="",r.state=s.ATTRIB_NAME):Z(r,"Invalid attribute name");continue;case s.ATTRIB_NAME:f==="="?r.state=s.ATTRIB_VALUE:f===">"?(Z(r,"Attribute without value"),r.attribValue=r.attribName,ot(r),yt(r)):c(f)?r.state=s.ATTRIB_NAME_SAW_WHITE:B(y,f)?r.attribName+=f:Z(r,"Invalid attribute name");continue;case s.ATTRIB_NAME_SAW_WHITE:if(f==="=")r.state=s.ATTRIB_VALUE;else{if(c(f))continue;Z(r,"Attribute without value"),r.tag.attributes[r.attribName]="",r.attribValue="",w(r,"onattribute",{name:r.attribName,value:""}),r.attribName="",f===">"?yt(r):B(M,f)?(r.attribName=f,r.state=s.ATTRIB_NAME):(Z(r,"Invalid attribute name"),r.state=s.ATTRIB)}continue;case s.ATTRIB_VALUE:if(c(f))continue;S(f)?(r.q=f,r.state=s.ATTRIB_VALUE_QUOTED):(r.opt.unquotedAttributeValues||rt(r,"Unquoted attribute value"),r.state=s.ATTRIB_VALUE_UNQUOTED,r.attribValue=f);continue;case s.ATTRIB_VALUE_QUOTED:if(f!==r.q){f==="&"?r.state=s.ATTRIB_VALUE_ENTITY_Q:r.attribValue+=f;continue}ot(r),r.q="",r.state=s.ATTRIB_VALUE_CLOSED;continue;case s.ATTRIB_VALUE_CLOSED:c(f)?r.state=s.ATTRIB:f===">"?yt(r):f==="/"?r.state=s.OPEN_TAG_SLASH:B(M,f)?(Z(r,"No whitespace between attributes"),r.attribName=f,r.attribValue="",r.state=s.ATTRIB_NAME):Z(r,"Invalid attribute name");continue;case s.ATTRIB_VALUE_UNQUOTED:if(!R(f)){f==="&"?r.state=s.ATTRIB_VALUE_ENTITY_U:r.attribValue+=f;continue}ot(r),f===">"?yt(r):r.state=s.ATTRIB;continue;case s.CLOSE_TAG:if(r.tagName)f===">"?ht(r):B(y,f)?r.tagName+=f:r.script?(r.script+=""?ht(r):Z(r,"Invalid characters in closing tag");continue;case s.TEXT_ENTITY:case s.ATTRIB_VALUE_ENTITY_Q:case s.ATTRIB_VALUE_ENTITY_U:var L,V;switch(r.state){case s.TEXT_ENTITY:L=s.TEXT,V="textNode";break;case s.ATTRIB_VALUE_ENTITY_Q:L=s.ATTRIB_VALUE_QUOTED,V="attribValue";break;case s.ATTRIB_VALUE_ENTITY_U:L=s.ATTRIB_VALUE_UNQUOTED,V="attribValue";break}if(f===";"){var X=I(r);r.opt.unparsedEntities&&!Object.values(v.XML_ENTITIES).includes(X)?(r.entity="",r.state=L,r.write(X)):(r[V]+=X,r.entity="",r.state=L)}else B(r.entity.length?E:g,f)?r.entity+=f:(Z(r,"Invalid character in entity name"),r[V]+="&"+r.entity+f,r.entity="",r.state=L);continue;default:throw new Error(r,"Unknown state: "+r.state)}return r.position>=r.bufferCheckPosition&&D(r),r}String.fromCodePoint||(function(){var n=String.fromCharCode,r=Math.floor,p=function(){var f=16384,i=[],u,L,V=-1,X=arguments.length;if(!X)return"";for(var z="";++V1114111||r(K)!==K)throw RangeError("Invalid code point: "+K);K<=65535?i.push(K):(K-=65536,u=(K>>10)+55296,L=K%1024+56320,i.push(u,L)),(V+1===X||i.length>f)&&(z+=n.apply(null,i),i.length=0)}return z};Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:p,configurable:!0,writable:!0}):String.fromCodePoint=p})()})(a)})(Ke)),Ke}var mi=bi();const vi=_o(mi),wi={"http://www.w3.org/2000/svg":{ext:"svg",mime:"image/svg+xml"},"http://www.w3.org/1999/xhtml":{ext:"xhtml",mime:"application/xhtml+xml"},"http://www.opengis.net/kml/2.2":{ext:"kml",mime:"application/vnd.google-earth.kml+xml"},"http://www.opengis.net/gml":{ext:"gml",mime:"application/gml+xml"}},Ei={rss:{ext:"rss",mime:"application/rss+xml"},"score-partwise":{ext:"musicxml",mime:"application/vnd.recordare.musicxml+xml"},svg:{ext:"svg",mime:"image/svg+xml"}};class Si{constructor(v){this.options=v??{},this.firstTag=!0,this.onEnd=!1,this.parser=vi.parser(!0,{xmlns:!0}),this.nesting=0,this.parser.onerror=A=>{A.message.startsWith("Invalid character entity")||(this.fileType=void 0,this.onEnd=!0)},this.parser.onopentag=A=>{++this.nesting,!(!this.firstTag||this.onEnd)&&(this.firstTag=!1,A.uri?this.fileType=wi[A.uri]:A.name&&(this.fileType=Ei[A.name.toLowerCase()]),this.fileType&&!this.options.fullScan&&(this.onEnd=!0))},this.parser.onclosetag=()=>{--this.nesting}}write(v){this.parser.write(v)}close(){this.parser.close(),this.onEnd=!0}isValid(){return this.nesting===0}}function _i(a,{validate:v=!0}={}){if(typeof a!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof a}\``);if(a=a.trim(),a.length===0)return!1;const A=new Si({fullScan:v});if(v){if(A.write(a),!A.isValid())return!1}else{let _=0;for(;a.length>_&&!A.onEnd;)A.write(a.slice(_,Math.min(_+128,a.length))),_+=128}return A.fileType?.ext==="svg"}function Ti(a){if(Ai(a),$t.filesSidebarTabs??=new Map,$t.filesSidebarTabs.has(a.id)){Qe.warn(`Sidebar tab with id "${a.id}" already registered. Skipping.`);return}$t.filesSidebarTabs.set(a.id,a),Qe.debug(`New sidebar tab with id "${a.id}" registered.`)}function Ai(a){if(typeof a!="object")throw new Error("Sidebar tab is not an object");if(!a.id||typeof a.id!="string"||a.id!==CSS.escape(a.id))throw new Error("Sidebar tabs need to have an id conforming to the HTML id attribute specifications");if(!a.tagName||typeof a.tagName!="string")throw new Error("Sidebar tabs need to have the tagName name set");if(!a.tagName.match(/^[a-z][a-z0-9-_]+$/))throw new Error('Sidebar tab "tagName" is invalid');if(!a.displayName||typeof a.displayName!="string")throw new Error("Sidebar tabs need to have a name set");if(typeof a.iconSvgInline!="string"||!_i(a.iconSvgInline))throw new Error("Sidebar tabs need to have an valid SVG icon");if(typeof a.order!="number")throw new Error("Sidebar tabs need to have a numeric order set");if(a.enabled&&typeof a.enabled!="function")throw new Error('Sidebar tab "enabled" is not a function');if(a.onInit&&typeof a.onInit!="function")throw new Error('Sidebar tab "onInit" is not a function')}const Fe="activity-files-sidebar-tab";window.customElements.get(Fe)===void 0&&(window.customElements.define(Fe,To(Oo(()=>Eo(()=>import("./ActivityTab-D3JnlP-d.chunk.mjs"),__vite__mapDeps([0,1,2,3,4,5,6,7]),import.meta.url)),{shadowRoot:!1})),Ti({id:"activity",order:50,displayName:Ao("activity","Activity"),iconSvgInline:Io,tagName:Fe,enabled(){return!0}}));export{Io as l}; +`?(r.line++,r.column=0):r.column++);r.textNode+=n.substring(i,p-1)}f==="<"&&!(r.sawRoot&&r.closedRoot&&!r.strict)?(r.state=s.OPEN_WAKA,r.startTagPosition=r.position):(!c(f)&&(!r.sawRoot||r.closedRoot)&&Z(r,"Text data outside of root node."),f==="&"?r.state=s.TEXT_ENTITY:r.textNode+=f);continue;case s.SCRIPT:f==="<"?r.state=s.SCRIPT_ENDING:r.script+=f;continue;case s.SCRIPT_ENDING:f==="/"?r.state=s.CLOSE_TAG:(r.script+="<"+f,r.state=s.SCRIPT);continue;case s.OPEN_WAKA:if(f==="!")r.state=s.SGML_DECL,r.sgmlDecl="";else if(!c(f))if(B(M,f))r.state=s.OPEN_TAG,r.tagName=f;else if(f==="/")r.state=s.CLOSE_TAG,r.tagName="";else if(f==="?")r.state=s.PROC_INST,r.procInstName=r.procInstBody="";else{if(Z(r,"Unencoded <"),r.startTagPosition+1"?(w(r,"onsgmldeclaration",r.sgmlDecl),r.sgmlDecl="",r.state=s.TEXT):(S(f)&&(r.state=s.SGML_DECL_QUOTED),r.sgmlDecl+=f);continue;case s.SGML_DECL_QUOTED:f===r.q&&(r.state=s.SGML_DECL,r.q=""),r.sgmlDecl+=f;continue;case s.DOCTYPE:f===">"?(r.state=s.TEXT,w(r,"ondoctype",r.doctype),r.doctype=!0):(r.doctype+=f,f==="["?r.state=s.DOCTYPE_DTD:S(f)&&(r.state=s.DOCTYPE_QUOTED,r.q=f));continue;case s.DOCTYPE_QUOTED:r.doctype+=f,f===r.q&&(r.q="",r.state=s.DOCTYPE);continue;case s.DOCTYPE_DTD:f==="]"?(r.doctype+=f,r.state=s.DOCTYPE):f==="<"?(r.state=s.OPEN_WAKA,r.startTagPosition=r.position):S(f)?(r.doctype+=f,r.state=s.DOCTYPE_DTD_QUOTED,r.q=f):r.doctype+=f;continue;case s.DOCTYPE_DTD_QUOTED:r.doctype+=f,f===r.q&&(r.state=s.DOCTYPE_DTD,r.q="");continue;case s.COMMENT:f==="-"?r.state=s.COMMENT_ENDING:r.comment+=f;continue;case s.COMMENT_ENDING:f==="-"?(r.state=s.COMMENT_ENDED,r.comment=et(r.opt,r.comment),r.comment&&w(r,"oncomment",r.comment),r.comment=""):(r.comment+="-"+f,r.state=s.COMMENT);continue;case s.COMMENT_ENDED:f!==">"?(Z(r,"Malformed comment"),r.comment+="--"+f,r.state=s.COMMENT):r.doctype&&r.doctype!==!0?r.state=s.DOCTYPE_DTD:r.state=s.TEXT;continue;case s.CDATA:f==="]"?r.state=s.CDATA_ENDING:r.cdata+=f;continue;case s.CDATA_ENDING:f==="]"?r.state=s.CDATA_ENDING_2:(r.cdata+="]"+f,r.state=s.CDATA);continue;case s.CDATA_ENDING_2:f===">"?(r.cdata&&w(r,"oncdata",r.cdata),w(r,"onclosecdata"),r.cdata="",r.state=s.TEXT):f==="]"?r.cdata+="]":(r.cdata+="]]"+f,r.state=s.CDATA);continue;case s.PROC_INST:f==="?"?r.state=s.PROC_INST_ENDING:c(f)?r.state=s.PROC_INST_BODY:r.procInstName+=f;continue;case s.PROC_INST_BODY:if(!r.procInstBody&&c(f))continue;f==="?"?r.state=s.PROC_INST_ENDING:r.procInstBody+=f;continue;case s.PROC_INST_ENDING:f===">"?(w(r,"onprocessinginstruction",{name:r.procInstName,body:r.procInstBody}),r.procInstName=r.procInstBody="",r.state=s.TEXT):(r.procInstBody+="?"+f,r.state=s.PROC_INST_BODY);continue;case s.OPEN_TAG:B(y,f)?r.tagName+=f:(lt(r),f===">"?yt(r):f==="/"?r.state=s.OPEN_TAG_SLASH:(c(f)||Z(r,"Invalid character in tag name"),r.state=s.ATTRIB));continue;case s.OPEN_TAG_SLASH:f===">"?(yt(r,!0),ht(r)):(Z(r,"Forward-slash in opening tag not followed by >"),r.state=s.ATTRIB);continue;case s.ATTRIB:if(c(f))continue;f===">"?yt(r):f==="/"?r.state=s.OPEN_TAG_SLASH:B(M,f)?(r.attribName=f,r.attribValue="",r.state=s.ATTRIB_NAME):Z(r,"Invalid attribute name");continue;case s.ATTRIB_NAME:f==="="?r.state=s.ATTRIB_VALUE:f===">"?(Z(r,"Attribute without value"),r.attribValue=r.attribName,ot(r),yt(r)):c(f)?r.state=s.ATTRIB_NAME_SAW_WHITE:B(y,f)?r.attribName+=f:Z(r,"Invalid attribute name");continue;case s.ATTRIB_NAME_SAW_WHITE:if(f==="=")r.state=s.ATTRIB_VALUE;else{if(c(f))continue;Z(r,"Attribute without value"),r.tag.attributes[r.attribName]="",r.attribValue="",w(r,"onattribute",{name:r.attribName,value:""}),r.attribName="",f===">"?yt(r):B(M,f)?(r.attribName=f,r.state=s.ATTRIB_NAME):(Z(r,"Invalid attribute name"),r.state=s.ATTRIB)}continue;case s.ATTRIB_VALUE:if(c(f))continue;S(f)?(r.q=f,r.state=s.ATTRIB_VALUE_QUOTED):(r.opt.unquotedAttributeValues||rt(r,"Unquoted attribute value"),r.state=s.ATTRIB_VALUE_UNQUOTED,r.attribValue=f);continue;case s.ATTRIB_VALUE_QUOTED:if(f!==r.q){f==="&"?r.state=s.ATTRIB_VALUE_ENTITY_Q:r.attribValue+=f;continue}ot(r),r.q="",r.state=s.ATTRIB_VALUE_CLOSED;continue;case s.ATTRIB_VALUE_CLOSED:c(f)?r.state=s.ATTRIB:f===">"?yt(r):f==="/"?r.state=s.OPEN_TAG_SLASH:B(M,f)?(Z(r,"No whitespace between attributes"),r.attribName=f,r.attribValue="",r.state=s.ATTRIB_NAME):Z(r,"Invalid attribute name");continue;case s.ATTRIB_VALUE_UNQUOTED:if(!R(f)){f==="&"?r.state=s.ATTRIB_VALUE_ENTITY_U:r.attribValue+=f;continue}ot(r),f===">"?yt(r):r.state=s.ATTRIB;continue;case s.CLOSE_TAG:if(r.tagName)f===">"?ht(r):B(y,f)?r.tagName+=f:r.script?(r.script+=""?ht(r):Z(r,"Invalid characters in closing tag");continue;case s.TEXT_ENTITY:case s.ATTRIB_VALUE_ENTITY_Q:case s.ATTRIB_VALUE_ENTITY_U:var L,V;switch(r.state){case s.TEXT_ENTITY:L=s.TEXT,V="textNode";break;case s.ATTRIB_VALUE_ENTITY_Q:L=s.ATTRIB_VALUE_QUOTED,V="attribValue";break;case s.ATTRIB_VALUE_ENTITY_U:L=s.ATTRIB_VALUE_UNQUOTED,V="attribValue";break}if(f===";"){var X=I(r);r.opt.unparsedEntities&&!Object.values(v.XML_ENTITIES).includes(X)?(r.entity="",r.state=L,r.write(X)):(r[V]+=X,r.entity="",r.state=L)}else B(r.entity.length?E:g,f)?r.entity+=f:(Z(r,"Invalid character in entity name"),r[V]+="&"+r.entity+f,r.entity="",r.state=L);continue;default:throw new Error(r,"Unknown state: "+r.state)}return r.position>=r.bufferCheckPosition&&D(r),r}String.fromCodePoint||(function(){var n=String.fromCharCode,r=Math.floor,p=function(){var f=16384,i=[],u,L,V=-1,X=arguments.length;if(!X)return"";for(var z="";++V1114111||r(K)!==K)throw RangeError("Invalid code point: "+K);K<=65535?i.push(K):(K-=65536,u=(K>>10)+55296,L=K%1024+56320,i.push(u,L)),(V+1===X||i.length>f)&&(z+=n.apply(null,i),i.length=0)}return z};Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:p,configurable:!0,writable:!0}):String.fromCodePoint=p})()})(a)})(Ke)),Ke}var mi=bi();const vi=_o(mi),wi={"http://www.w3.org/2000/svg":{ext:"svg",mime:"image/svg+xml"},"http://www.w3.org/1999/xhtml":{ext:"xhtml",mime:"application/xhtml+xml"},"http://www.opengis.net/kml/2.2":{ext:"kml",mime:"application/vnd.google-earth.kml+xml"},"http://www.opengis.net/gml":{ext:"gml",mime:"application/gml+xml"}},Ei={rss:{ext:"rss",mime:"application/rss+xml"},"score-partwise":{ext:"musicxml",mime:"application/vnd.recordare.musicxml+xml"},svg:{ext:"svg",mime:"image/svg+xml"}};class Si{constructor(v){this.options=v??{},this.firstTag=!0,this.onEnd=!1,this.parser=vi.parser(!0,{xmlns:!0}),this.nesting=0,this.parser.onerror=A=>{A.message.startsWith("Invalid character entity")||(this.fileType=void 0,this.onEnd=!0)},this.parser.onopentag=A=>{++this.nesting,!(!this.firstTag||this.onEnd)&&(this.firstTag=!1,A.uri?this.fileType=wi[A.uri]:A.name&&(this.fileType=Ei[A.name.toLowerCase()]),this.fileType&&!this.options.fullScan&&(this.onEnd=!0))},this.parser.onclosetag=()=>{--this.nesting}}write(v){this.parser.write(v)}close(){this.parser.close(),this.onEnd=!0}isValid(){return this.nesting===0}}function _i(a,{validate:v=!0}={}){if(typeof a!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof a}\``);if(a=a.trim(),a.length===0)return!1;const A=new Si({fullScan:v});if(v){if(A.write(a),!A.isValid())return!1}else{let _=0;for(;a.length>_&&!A.onEnd;)A.write(a.slice(_,Math.min(_+128,a.length))),_+=128}return A.fileType?.ext==="svg"}function Ti(a){if(Ai(a),$t.filesSidebarTabs??=new Map,$t.filesSidebarTabs.has(a.id)){Qe.warn(`Sidebar tab with id "${a.id}" already registered. Skipping.`);return}$t.filesSidebarTabs.set(a.id,a),Qe.debug(`New sidebar tab with id "${a.id}" registered.`)}function Ai(a){if(typeof a!="object")throw new Error("Sidebar tab is not an object");if(!a.id||typeof a.id!="string"||a.id!==CSS.escape(a.id))throw new Error("Sidebar tabs need to have an id conforming to the HTML id attribute specifications");if(!a.tagName||typeof a.tagName!="string")throw new Error("Sidebar tabs need to have the tagName name set");if(!a.tagName.match(/^[a-z][a-z0-9-_]+$/))throw new Error('Sidebar tab "tagName" is invalid');if(!a.displayName||typeof a.displayName!="string")throw new Error("Sidebar tabs need to have a name set");if(typeof a.iconSvgInline!="string"||!_i(a.iconSvgInline))throw new Error("Sidebar tabs need to have an valid SVG icon");if(typeof a.order!="number")throw new Error("Sidebar tabs need to have a numeric order set");if(a.enabled&&typeof a.enabled!="function")throw new Error('Sidebar tab "enabled" is not a function');if(a.onInit&&typeof a.onInit!="function")throw new Error('Sidebar tab "onInit" is not a function')}const Fe="activity-files-sidebar-tab";window.customElements.get(Fe)===void 0&&(window.customElements.define(Fe,To(Oo(()=>Eo(()=>import("./ActivityTab-Bb6AyMro.chunk.mjs"),__vite__mapDeps([0,1,2,3,4,5,6,7]),import.meta.url)),{shadowRoot:!1})),Ti({id:"activity",order:50,displayName:Ao("activity","Activity"),iconSvgInline:Io,tagName:Fe,enabled(){return!0}}));export{Io as l}; //# sourceMappingURL=activity-sidebar.mjs.map diff --git a/src/__mocks__/@nextcloud/axios.js b/src/__mocks__/@nextcloud/axios.js index 38f43e6d8..4a78e8ef1 100644 --- a/src/__mocks__/@nextcloud/axios.js +++ b/src/__mocks__/@nextcloud/axios.js @@ -12,9 +12,16 @@ const axios = { get(url) { return new Promise((resolve, reject) => { if (url.endsWith('/ocs/v2.php/apps/activity/api/v2/activity/filter')) { - resolve({ data: wsData }) + // Real responses carry the pagination headers; no `link` here + // because this fixture is the whole list + resolve({ + data: wsData, + headers: { + 'x-activity-last-given': String(wsData.ocs.data.at(-1).activity_id), + }, + }) } else if (url.endsWith('/ocs/v2.php/apps/activity/api/v2/activity/downloads/count')) { - resolve({ data: { ocs: { meta: { status: 'ok', statuscode: 200 }, data: { total: 10, last30d: 3 } } } }) + resolve({ data: { ocs: { meta: { status: 'ok', statuscode: 200 }, data: { total: 10, last30d: 3 } } }, headers: {} }) } else { reject(new Error(`URL not defined ${url}`)) } diff --git a/src/__tests__/ActivityTab.test.ts b/src/__tests__/ActivityTab.test.ts index 795ac49b2..d0a1039da 100644 --- a/src/__tests__/ActivityTab.test.ts +++ b/src/__tests__/ActivityTab.test.ts @@ -19,9 +19,15 @@ const ACTIVITY_PATH = '/ocs/v2.php/apps/activity/api/v2/activity/filter' * Build an OCS response holding one activity per given id. * * @param ids - Activity ids to include, used to tell responses apart + * @param options - Pagination headers the server would send alongside */ -function responseWithIds(ids: number[]) { +function responseWithIds(ids: number[], options: { hasMore?: boolean } = {}) { return { + headers: { + 'x-activity-last-given': String(ids.at(-1) ?? ''), + // The API only sets a next page link while more activities remain + ...(options.hasMore ? { link: '; rel="next"' } : {}), + }, data: { ocs: { meta: { status: 'ok', statuscode: 200, message: 'OK' }, @@ -176,6 +182,21 @@ describe('request handling', () => { expect(signals[1]?.aborted).toBe(true) }) + test('asks for an explicit page size instead of relying on the API default', async () => { + const get = vi.spyOn(axios, 'get') + + const wrapper = mount(ActivityTab, { + props: { node: { id: 'test', fileid: 42 } as any }, + }) + await flushPromises() + + const [, config] = activityCalls(get)[0]! + expect((config as any).params.limit).toBe(50) + // The first page has no cursor + expect((config as any).params.since).toBeUndefined() + wrapper.unmount() + }) + test('does not surface an error when a request is superseded', async () => { const rejections: ((reason: unknown) => void)[] = [] vi.spyOn(axios, 'get').mockImplementation(() => { @@ -200,3 +221,92 @@ describe('request handling', () => { wrapper.unmount() }) }) + +describe('pagination', () => { + const LOAD_MORE = '.activity__load-more button' + + afterEach(() => { + vi.restoreAllMocks() + }) + + /** Mount with the first page already applied. */ + async function mountWithFirstPage(response: unknown) { + const get = vi.spyOn(axios, 'get').mockResolvedValueOnce(response as never) + const wrapper = mount(ActivityTab, { + props: { node: { id: 'test', fileid: 42 } as any }, + }) + await flushPromises() + return { wrapper, get } + } + + test('offers to load older activities while the server has more', async () => { + const { wrapper } = await mountWithFirstPage(responseWithIds([30, 29], { hasMore: true })) + + expect(wrapper.find(LOAD_MORE).exists()).toBe(true) + wrapper.unmount() + }) + + test('offers nothing more once the list is complete', async () => { + const { wrapper } = await mountWithFirstPage(responseWithIds([30, 29], { hasMore: false })) + + expect(wrapper.find(LOAD_MORE).exists()).toBe(false) + wrapper.unmount() + }) + + test('requests the next page from the cursor the server gave', async () => { + const { wrapper, get } = await mountWithFirstPage(responseWithIds([30, 29], { hasMore: true })) + get.mockResolvedValueOnce(responseWithIds([28, 27], { hasMore: false }) as never) + + await wrapper.find(LOAD_MORE).trigger('click') + await flushPromises() + + const [, config] = activityCalls(get)[1]! + // 29 is the last activity of the first page + expect((config as any).params.since).toBe('29') + expect((config as any).params.limit).toBe(50) + wrapper.unmount() + }) + + test('appends the next page instead of replacing what is shown', async () => { + const { wrapper, get } = await mountWithFirstPage(responseWithIds([30, 29], { hasMore: true })) + get.mockResolvedValueOnce(responseWithIds([28, 27], { hasMore: false }) as never) + + await wrapper.find(LOAD_MORE).trigger('click') + await flushPromises() + + const shown = (wrapper.vm.$data.activities as { id: number }[]).map((activity) => activity.id) + expect(shown).toEqual([30, 29, 28, 27]) + // Nothing left to offer, so the button is gone + expect(wrapper.find(LOAD_MORE).exists()).toBe(false) + wrapper.unmount() + }) + + test('treats a 304 on the next page as the end of the list', async () => { + const { wrapper, get } = await mountWithFirstPage(responseWithIds([30, 29], { hasMore: true })) + get.mockRejectedValueOnce({ response: { status: 304 } } as never) + + await wrapper.find(LOAD_MORE).trigger('click') + await flushPromises() + + const shown = (wrapper.vm.$data.activities as { id: number }[]).map((activity) => activity.id) + expect(shown).toEqual([30, 29]) + expect(wrapper.find(LOAD_MORE).exists()).toBe(false) + expect(wrapper.vm.$data.error).toBe('') + wrapper.unmount() + }) + + test('starts over without a stale cursor when another file is selected', async () => { + const { wrapper, get } = await mountWithFirstPage(responseWithIds([30, 29], { hasMore: true })) + get.mockResolvedValueOnce(responseWithIds([9], { hasMore: false }) as never) + + await wrapper.setProps({ node: { id: 'other', fileid: 99 } as any }) + await flushPromises() + + const [, config] = activityCalls(get)[1]! + expect((config as any).params.object_id).toBe(99) + // Carrying 29 over would silently skip the newest activities of the new file + expect((config as any).params.since).toBeUndefined() + expect((wrapper.vm.$data.activities as { id: number }[]).map((a) => a.id)).toEqual([9]) + wrapper.unmount() + }) +}) diff --git a/src/views/ActivityTab.vue b/src/views/ActivityTab.vue index 39de8b4ae..12adb6475 100644 --- a/src/views/ActivityTab.vue +++ b/src/views/ActivityTab.vue @@ -53,6 +53,18 @@ :activity="activity" :showPreviews="false" @reload="getActivities()" /> +
  • + + + {{ loadingMore ? t('activity', 'Loading older activities…') : t('activity', 'Load older activities') }} + +
  • @@ -69,6 +81,7 @@ import { translate as t } from '@nextcloud/l10n' import { generateOcsUrl } from '@nextcloud/router' import { ShareType } from '@nextcloud/sharing' import { defineComponent, nextTick } from 'vue' +import NcButton from '@nextcloud/vue/components/NcButton' import NcEmptyContent from '@nextcloud/vue/components/NcEmptyContent' import NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper' import NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon' @@ -79,12 +92,21 @@ import ActivityModel from '../models/ActivityModel.ts' import { getActivityFilters, getAdditionalEntries, getSidebarActions } from '../utils/api.ts' import logger from '../utils/logger.ts' +/** + * How many activities to ask for per page. + * + * Sent explicitly rather than relying on the API default, so the page size the + * panel gets is the one it asks for. + */ +const ACTIVITY_PAGE_SIZE = 50 + const ActivityTab = defineComponent({ name: 'ActivityTab', components: { ActivityComponent, DownloadSummary, + NcButton, NcEmptyContent, NcIconSvgWrapper, NcLoadingIcon, @@ -127,6 +149,7 @@ const ActivityTab = defineComponent({ return { error: '', loading: true, + loadingMore: false, activities: [] as (IActivitySidebarEntry | ActivityModel)[], lightningBoltSVG, sidebarPlugins: [] as IActivitySidebarAction[], @@ -134,6 +157,17 @@ const ActivityTab = defineComponent({ // leaves class instances it does not recognise unproxied, so the // controller keeps working: abort() needs its original receiver. requestController: null as AbortController | null, + // The pages loaded so far, kept apart from `activities` because the + // rendered list is those merged with the plugin entries below + realActivities: [] as ActivityModel[], + // Belong to the node rather than to a page, so they are fetched once + // per file and re-merged into every page + otherEntries: [] as IActivitySidebarEntry[], + // Id of the last activity the server returned, the cursor for the + // next page + lastGiven: undefined as string | undefined, + // Whether the server offered a next page + hasMore: false, } }, @@ -178,31 +212,63 @@ const ActivityTab = defineComponent({ }, /** - * Get the existing activities + * Load the newest activities, replacing whatever is shown + */ + async getActivities() { + await this.fetchPage(true) + }, + + /** + * Append the next, older page of activities + */ + async loadMoreActivities() { + await this.fetchPage(false) + }, + + /** + * Load one page of activities and merge it into the list * * Any request still in flight is superseded first. Without that, moving * between files faster than the server answers would let an earlier * response arrive last and leave the panel showing another file's * activity, since the responses are applied in arrival order rather * than request order. + * + * @param reset - Start from the newest activity instead of appending */ - async getActivities() { + async fetchPage(reset: boolean) { this.requestController?.abort() const controller = new AbortController() this.requestController = controller const { signal } = controller try { - this.loading = true + if (reset) { + this.loading = true + } else { + this.loadingMore = true + } - const activities = await this.processActivities(await this.loadRealActivities(signal)) + const page = await this.loadRealActivities(signal, reset ? undefined : this.lastGiven) + const activities = this.processActivities(page.activities) // Plugin supplied entries cannot be aborted, so their result is - // discarded below instead - const otherEntries = await getAdditionalEntries({ node: this.node }) + // discarded below instead. They describe the node rather than a + // page, so they are only re-collected when starting over. + const otherEntries = reset + ? await getAdditionalEntries({ node: this.node }) + : this.otherEntries if (signal.aborted) { return } - this.activities = [...activities, ...otherEntries].sort((a, b) => b.timestamp - a.timestamp) + + this.realActivities = reset ? activities : [...this.realActivities, ...activities] + this.otherEntries = otherEntries + if (reset || page.lastGiven !== undefined) { + this.lastGiven = page.lastGiven + } + this.hasMore = page.hasMore + this.activities = [...this.realActivities, ...this.otherEntries] + .sort((a, b) => b.timestamp - a.timestamp) } catch (error) { if (signal.aborted) { // Cancelled in favour of a newer request, which owns the @@ -212,9 +278,10 @@ const ActivityTab = defineComponent({ this.error = t('activity', 'Unable to load the activity list') logger.error('Error loading the activity list', { error }) } finally { - // A newer request has already set this back to true + // A newer request has already set these if (!signal.aborted) { this.loading = false + this.loadingMore = false } } }, @@ -224,18 +291,24 @@ const ActivityTab = defineComponent({ */ resetState() { this.loading = true + this.loadingMore = false this.error = '' this.activities = [] + this.realActivities = [] + this.otherEntries = [] + this.lastGiven = undefined + this.hasMore = false }, /** - * Load activites from API + * Load one page of activites from the API * * @param signal - Aborted when a newer request supersedes this one + * @param since - Cursor from the previous page, omitted for the first one */ - async loadRealActivities(signal?: AbortSignal) { + async loadRealActivities(signal?: AbortSignal, since?: string) { try { - const { data } = await axios.get( + const response = await axios.get( generateOcsUrl('apps/activity/api/v2/activity/filter'), { signal, @@ -243,14 +316,23 @@ const ActivityTab = defineComponent({ format: 'json', object_type: 'files', object_id: this.node.fileid, + limit: ACTIVITY_PAGE_SIZE, + ...(since === undefined ? {} : { since }), }, }, ) - return data.ocs.data + return { + activities: response.data.ocs.data, + lastGiven: response.headers['x-activity-last-given'], + // The server only sends a next page link while activities + // remain, so its presence is what decides whether there is + // more to offer rather than the size of this page + hasMore: String(response.headers.link ?? '').includes('rel="next"'), + } } catch (error) { - // Status 304 is not an error. + // Status 304 is not an error, it means there is nothing (more) to show. if (error.response !== undefined && error.response.status === 304) { - return [] + return { activities: [], lastGiven: undefined, hasMore: false } } throw error } @@ -299,6 +381,14 @@ export type ActivityTabType = typeof ActivityTab overflow: scroll; } + &__load-more { + // Sits at the end of the scrolled list rather than pinned below it, so + // it reads as the continuation of the list it extends + display: flex; + justify-content: center; + padding-block: calc(var(--default-grid-baseline) * 2); + } + &__empty-content { height: 100%; }