diff --git a/404.html b/404.html index 4f25df9e8..a25f9392c 100644 --- a/404.html +++ b/404.html @@ -23,11 +23,11 @@ } whispr - + -

404

How did we get here?
Take me home
- +

404

That's a Four-Oh-Four.
Take me home
+ diff --git a/api/graphql.html b/api/graphql.html index aee6f4d42..3a49a72e2 100644 --- a/api/graphql.html +++ b/api/graphql.html @@ -23,7 +23,7 @@ } GraphQL API | whispr - + @@ -219,7 +219,7 @@ ) }

Query variables

{ "webhookId": "5ef5f304a07efa0041904d52" }
-
- + + diff --git a/api/introduction.html b/api/introduction.html index 538ed9f19..61ac08c6e 100644 --- a/api/introduction.html +++ b/api/introduction.html @@ -23,7 +23,7 @@ } Introduction | whispr - + @@ -35,7 +35,7 @@ @IsString() @IsOptional() // class-validator annotations, used by Nest Validation Pipe _id: string; } -

Note: class-validator will also validate GraphQL payloads, but since the GraphQL validation happens before class-validator validation, and the rules should be the same, class-validator validation should always pass.

Warning: we use Nest validation pipe with whitelist option enabled. Therefore you must provide a class-validator annotation on fields you want to add, or they will be automatically removed by the validation pipe.

- +

Note: class-validator will also validate GraphQL payloads, but since the GraphQL validation happens before class-validator validation, and the rules should be the same, class-validator validation should always pass.

Warning: we use Nest validation pipe with whitelist option enabled. Therefore you must provide a class-validator annotation on fields you want to add, or they will be automatically removed by the validation pipe.

+ diff --git a/api/rest.html b/api/rest.html index 11872f783..17f8ee450 100644 --- a/api/rest.html +++ b/api/rest.html @@ -23,11 +23,11 @@ } REST API | whispr - + -

REST API

TIP

The whispr REST API is very limited compared to the GrahQL API. We will gradually make some improvements but we strongly recommend trying out GraphQL first. It's very simple, and more powerful than REST. You'll love it, we promise!

Get all Whisps

  • Method: GET
  • Path: '/whisp'
  • Success: 200

Returns all the whisps.

Get a Whisp

  • Method: GET
  • Path: '/whisp/:whispId'
  • Success: 200

Returns a whisp identified by its _id

Create a Whisp

  • Method: POST
  • Path: '/whisp'
  • Success: 201

Creates a new whisp from the body. The available fields of the whisp entity are listed here

Update a Whisp

  • Method: PATCH
  • Path: '/whisp/:whispId'
  • Success: 204

Updates the fields given in the body of a whisp identified by its _id. The available fields of the whisp entity are listed here

Replace a Whisp

  • Method: PUT
  • Path: '/whisp/:whispId'
  • Success: 204

Replaces a whisp given identified by its _id by a new whisp given in the body . The available fields of the whisp entity are listed here

Delete a Whisp

  • Method: DELETE
  • Path: '/whisp/:whispId'
  • Success: 204

Deletes a whisp identified by its _id

Get all TagGroups

  • Method: GET
  • Path: '/TagGroup'
  • Success: 200

Returns all the tagGroups.

Get a TagGroup

  • Method: GET
  • Path: '/TagGroup/:tagGroupId'
  • Success: 200

Returns a tagGroup identified by its _id

Create a TagGroup

  • Method: POST
  • Path: '/TagGroup'
  • Success: 201

Creates a new tagGroup from the body. The available fields of the tagGroup entity are listed here

Update a TagGroup

  • Method: PATCH
  • Path: '/TagGroup/:tagGroupId'
  • Success: 204

Updates the fields given in the body of a tagGroup identified by its _id. The available fields of the tagGroup entity are listed here

Replace a TagGroup

  • Method: PUT
  • Path: '/TagGroup/:tagGroupId'
  • Success: 204

Replaces a tagGroup given identified by its _id by a new tagGroup given in the body . The available fields of the tagGroup entity are listed here

Delete a TagGroup

  • Method: DELETE
  • Path: '/TagGroup/:tagGroupId'
  • Success: 204

Deletes a tagGroup identified by its _id

Get all Webhooks

  • Method: GET
  • Path: '/webhook'
  • Success: 200

Returns all the webhooks.

Create a Webhook

  • Method: POST
  • Path: '/webhook'
  • Success: 201

Creates a new webhook from the body. The available fields of the webhook entity are listed here

Delete a Webhook

  • Method: DELETE
  • Path: '/webhook/:id'
  • Success: 204

Deletes a webhook identified by its _id

Last Updated:
Contributors: sairam charan
- +

REST API

TIP

The whispr REST API is very limited compared to the GrahQL API. We will gradually make some improvements but we strongly recommend trying out GraphQL first. It's very simple, and more powerful than REST. You'll love it, we promise!

Get all Whisps

  • Method: GET
  • Path: '/whisp'
  • Success: 200

Returns all the whisps.

Get a Whisp

  • Method: GET
  • Path: '/whisp/:whispId'
  • Success: 200

Returns a whisp identified by its _id

Create a Whisp

  • Method: POST
  • Path: '/whisp'
  • Success: 201

Creates a new whisp from the body. The available fields of the whisp entity are listed here

Update a Whisp

  • Method: PATCH
  • Path: '/whisp/:whispId'
  • Success: 204

Updates the fields given in the body of a whisp identified by its _id. The available fields of the whisp entity are listed here

Replace a Whisp

  • Method: PUT
  • Path: '/whisp/:whispId'
  • Success: 204

Replaces a whisp given identified by its _id by a new whisp given in the body . The available fields of the whisp entity are listed here

Delete a Whisp

  • Method: DELETE
  • Path: '/whisp/:whispId'
  • Success: 204

Deletes a whisp identified by its _id

Get all TagGroups

  • Method: GET
  • Path: '/TagGroup'
  • Success: 200

Returns all the tagGroups.

Get a TagGroup

  • Method: GET
  • Path: '/TagGroup/:tagGroupId'
  • Success: 200

Returns a tagGroup identified by its _id

Create a TagGroup

  • Method: POST
  • Path: '/TagGroup'
  • Success: 201

Creates a new tagGroup from the body. The available fields of the tagGroup entity are listed here

Update a TagGroup

  • Method: PATCH
  • Path: '/TagGroup/:tagGroupId'
  • Success: 204

Updates the fields given in the body of a tagGroup identified by its _id. The available fields of the tagGroup entity are listed here

Replace a TagGroup

  • Method: PUT
  • Path: '/TagGroup/:tagGroupId'
  • Success: 204

Replaces a tagGroup given identified by its _id by a new tagGroup given in the body . The available fields of the tagGroup entity are listed here

Delete a TagGroup

  • Method: DELETE
  • Path: '/TagGroup/:tagGroupId'
  • Success: 204

Deletes a tagGroup identified by its _id

Get all Webhooks

  • Method: GET
  • Path: '/webhook'
  • Success: 200

Returns all the webhooks.

Create a Webhook

  • Method: POST
  • Path: '/webhook'
  • Success: 201

Creates a new webhook from the body. The available fields of the webhook entity are listed here

Delete a Webhook

  • Method: DELETE
  • Path: '/webhook/:id'
  • Success: 204

Deletes a webhook identified by its _id

Last Updated:
Contributors: semantic-release-bot
+ diff --git a/apm.html b/apm.html index 96b21ccea..3859fb6ad 100644 --- a/apm.html +++ b/apm.html @@ -23,7 +23,7 @@ } APM | whispr - + @@ -32,7 +32,7 @@ # Optional - if you're behind a proxy, set this env var to your proxy URL INSTANA_ENDPOINT_PROXY - - + + diff --git a/architecture/index.html b/architecture/index.html index 05cdb978a..4bb229271 100644 --- a/architecture/index.html +++ b/architecture/index.html @@ -23,11 +23,11 @@ } Architecture | whispr - + -

Architecture

Whispr core

  • Nest.js
  • GraphQL (out of the box with Nest.js)
  • Simple REST API

Whispr UI

  • Vue.js
  • Vuetify
Last Updated:
Contributors: sairam charan
- +

Architecture

Whispr core

  • Nest.js
  • GraphQL (out of the box with Nest.js)
  • Simple REST API

Whispr UI

  • Vue.js
  • Vuetify
Last Updated:
Contributors: semantic-release-bot
+ diff --git a/assets/404.4a56b200.js b/assets/404.73dacac9.js similarity index 90% rename from assets/404.4a56b200.js rename to assets/404.73dacac9.js index c4d05134c..904271d69 100644 --- a/assets/404.4a56b200.js +++ b/assets/404.73dacac9.js @@ -1 +1 @@ -import{_ as d,f as i,u as f,g as p,r as v,o as k,a as L,b as o,t as c,d as g,w as x,h as l,e as B}from"./app.073399da.js";const N={class:"theme-container"},T={class:"theme-default-content"},b=o("h1",null,"404",-1),C=i({setup(M){var a,s,n;const r=f(),e=p(),t=(a=e.value.notFound)!=null?a:["Not Found"],u=()=>t[Math.floor(Math.random()*t.length)],_=(s=e.value.home)!=null?s:r.value,h=(n=e.value.backToHome)!=null?n:"Back to home";return(R,V)=>{const m=v("RouterLink");return k(),L("div",N,[o("div",T,[b,o("blockquote",null,c(u()),1),g(m,{to:l(_)},{default:x(()=>[B(c(l(h)),1)]),_:1},8,["to"])])])}}});var D=d(C,[["__file","404.vue"]]);export{D as default}; +import{_ as d,f as i,u as f,g as p,r as v,o as k,a as L,b as o,t as c,d as g,w as x,h as l,e as B}from"./app.2353e9b9.js";const N={class:"theme-container"},T={class:"theme-default-content"},b=o("h1",null,"404",-1),C=i({setup(M){var a,s,n;const r=f(),e=p(),t=(a=e.value.notFound)!=null?a:["Not Found"],u=()=>t[Math.floor(Math.random()*t.length)],_=(s=e.value.home)!=null?s:r.value,h=(n=e.value.backToHome)!=null?n:"Back to home";return(R,V)=>{const m=v("RouterLink");return k(),L("div",N,[o("div",T,[b,o("blockquote",null,c(u()),1),g(m,{to:l(_)},{default:x(()=>[B(c(l(h)),1)]),_:1},8,["to"])])])}}});var D=d(C,[["__file","404.vue"]]);export{D as default}; diff --git a/assets/404.html.14c6f7ad.js b/assets/404.html.37abe700.js similarity index 56% rename from assets/404.html.14c6f7ad.js rename to assets/404.html.37abe700.js index a2c240314..7380d7d25 100644 --- a/assets/404.html.14c6f7ad.js +++ b/assets/404.html.37abe700.js @@ -1 +1 @@ -import{_}from"./app.073399da.js";const e={};function r(t,c){return null}var f=_(e,[["render",r],["__file","404.html.vue"]]);export{f as default}; +import{_}from"./app.2353e9b9.js";const e={};function r(t,c){return null}var f=_(e,[["render",r],["__file","404.html.vue"]]);export{f as default}; diff --git a/assets/Layout.73f41bcc.js b/assets/Layout.e9dc85c7.js similarity index 99% rename from assets/Layout.73f41bcc.js rename to assets/Layout.e9dc85c7.js index b6a27ebae..e2baa67a1 100644 --- a/assets/Layout.73f41bcc.js +++ b/assets/Layout.e9dc85c7.js @@ -1 +1 @@ -var De=Object.defineProperty,Ie=Object.defineProperties;var Me=Object.getOwnPropertyDescriptors;var de=Object.getOwnPropertySymbols;var He=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable;var pe=(l,t,e)=>t in l?De(l,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):l[t]=e,Y=(l,t)=>{for(var e in t||(t={}))He.call(t,e)&&pe(l,e,t[e]);if(de)for(var e of de(t))Pe.call(t,e)&&pe(l,e,t[e]);return l},J=(l,t)=>Ie(l,Me(t));import{_ as C,r as R,o as r,a as c,d as $,f as S,i as P,j as h,k as fe,h as a,F as I,l as A,m as w,b as g,t as T,n as z,p as Q,q as x,w as N,s as he,v as y,e as j,x as X,y as Ee,z as Re,A as Ae,B as Z,C as ee,D as K,E as me,G as be,H as E,u as ge,g as D,T as ke,I as F,J as $e,K as q,L as G,M as Oe,N as Fe,O as te,P as Le,Q as ye,c as ze,R as we,S as We,U,V as ae,W as Ve,X as Ue,Y as je,Z as Ke}from"./app.073399da.js";const qe={},Ge={class:"theme-default-content custom"};function Xe(l,t){const e=R("Content");return r(),c("div",Ge,[$(e)])}var Ye=C(qe,[["render",Xe],["__file","HomeContent.vue"]]);const Je={key:0,class:"features"},Qe=S({setup(l){const t=P(),e=h(()=>fe(t.value.features)?t.value.features:[]);return(i,o)=>a(e).length?(r(),c("div",Je,[(r(!0),c(I,null,A(a(e),d=>(r(),c("div",{key:d.title,class:"feature"},[g("h2",null,T(d.title),1),g("p",null,T(d.details),1)]))),128))])):w("",!0)}});var Ze=C(Qe,[["__file","HomeFeatures.vue"]]);const et=["innerHTML"],tt=["textContent"],at=S({setup(l){const t=P(),e=h(()=>t.value.footer),i=h(()=>t.value.footerHtml);return(o,d)=>a(e)?(r(),c(I,{key:0},[a(i)?(r(),c("div",{key:0,class:"footer",innerHTML:a(e)},null,8,et)):(r(),c("div",{key:1,class:"footer",textContent:T(a(e))},null,8,tt))],64)):w("",!0)}});var nt=C(at,[["__file","HomeFooter.vue"]]);const rt=["href","rel","target","aria-label"],ot=S({inheritAttrs:!1}),st=S(J(Y({},ot),{props:{item:{type:Object,required:!0}},setup(l){const t=l,e=z(),i=Ae(),{item:o}=Q(t),d=h(()=>X(o.value.link)),f=h(()=>Ee(o.value.link)||Re(o.value.link)),_=h(()=>{if(!f.value){if(o.value.target)return o.value.target;if(d.value)return"_blank"}}),n=h(()=>_.value==="_blank"),s=h(()=>!d.value&&!f.value&&!n.value),u=h(()=>{if(!f.value){if(o.value.rel)return o.value.rel;if(n.value)return"noopener noreferrer"}}),v=h(()=>o.value.ariaLabel||o.value.text),p=h(()=>{const L=Object.keys(i.value.locales);return L.length?!L.some(m=>m===o.value.link):o.value.link!=="/"}),b=h(()=>p.value?e.path.startsWith(o.value.link):!1),k=h(()=>s.value?o.value.activeMatch?new RegExp(o.value.activeMatch).test(e.path):b.value:!1);return(L,m)=>{const B=R("RouterLink"),M=R("AutoLinkExternalIcon");return a(s)?(r(),x(B,he({key:0,class:{"router-link-active":a(k)},to:a(o).link,"aria-label":a(v)},L.$attrs),{default:N(()=>[y(L.$slots,"before"),j(" "+T(a(o).text)+" ",1),y(L.$slots,"after")]),_:3},16,["class","to","aria-label"])):(r(),c("a",he({key:1,class:"external-link",href:a(o).link,rel:a(u),target:a(_),"aria-label":a(v)},L.$attrs),[y(L.$slots,"before"),j(" "+T(a(o).text)+" ",1),a(n)?(r(),x(M,{key:0})):w("",!0),y(L.$slots,"after")],16,rt))}}}));var H=C(st,[["__file","AutoLink.vue"]]);const lt={class:"hero"},ut={key:0,id:"main-title"},it={key:1,class:"description"},ct={key:2,class:"actions"},vt=S({setup(l){const t=P(),e=Z(),i=ee(),o=h(()=>i.value&&t.value.heroImageDark!==void 0?t.value.heroImageDark:t.value.heroImage),d=h(()=>t.value.heroText===null?null:t.value.heroText||e.value.title||"Hello"),f=h(()=>t.value.heroAlt||d.value||"hero"),_=h(()=>t.value.tagline===null?null:t.value.tagline||e.value.description||"Welcome to your VuePress site"),n=h(()=>fe(t.value.actions)?t.value.actions.map(({text:u,link:v,type:p="primary"})=>({text:u,link:v,type:p})):[]),s=()=>{if(!o.value)return null;const u=K("img",{src:me(o.value),alt:f.value});return t.value.heroImageDark===void 0?u:K(be,()=>u)};return(u,v)=>(r(),c("header",lt,[$(s),a(d)?(r(),c("h1",ut,T(a(d)),1)):w("",!0),a(_)?(r(),c("p",it,T(a(_)),1)):w("",!0),a(n).length?(r(),c("p",ct,[(r(!0),c(I,null,A(a(n),p=>(r(),x(H,{key:p.text,class:E(["action-button",[p.type]]),item:p},null,8,["class","item"]))),128))])):w("",!0)]))}});var dt=C(vt,[["__file","HomeHero.vue"]]);const pt={class:"home"},ht=S({setup(l){return(t,e)=>(r(),c("main",pt,[$(dt),$(Ze),$(Ye),$(nt)]))}});var _t=C(ht,[["__file","Home.vue"]]);const ft=S({setup(l){const t=ge(),e=Z(),i=D(),o=ee(),d=h(()=>i.value.home||t.value),f=h(()=>e.value.title),_=h(()=>o.value&&i.value.logoDark!==void 0?i.value.logoDark:i.value.logo),n=()=>{if(!_.value)return null;const s=K("img",{class:"logo",src:me(_.value),alt:f.value});return i.value.logoDark===void 0?s:K(be,()=>s)};return(s,u)=>{const v=R("RouterLink");return r(),x(v,{to:a(d)},{default:N(()=>[$(n),a(f)?(r(),c("span",{key:0,class:E(["site-name",{"can-hide":a(_)}])},T(a(f)),3)):w("",!0)]),_:1},8,["to"])}}});var mt=C(ft,[["__file","NavbarBrand.vue"]]);const bt=S({setup(l){const t=i=>{i.style.height=i.scrollHeight+"px"},e=i=>{i.style.height=""};return(i,o)=>(r(),x(ke,{name:"dropdown",onEnter:t,onAfterEnter:e,onBeforeLeave:t},{default:N(()=>[y(i.$slots,"default")]),_:3}))}});var Ce=C(bt,[["__file","DropdownTransition.vue"]]);const gt=["aria-label"],kt={class:"title"},$t=g("span",{class:"arrow down"},null,-1),Lt=["aria-label"],yt={class:"title"},wt={class:"navbar-dropdown"},Ct={class:"navbar-dropdown-subtitle"},St={key:1},xt={class:"navbar-dropdown-subitem-wrapper"},Tt=S({props:{item:{type:Object,required:!0}},setup(l){const t=l,{item:e}=Q(t),i=h(()=>e.value.ariaLabel||e.value.text),o=F(!1),d=z();$e(()=>d.path,()=>{o.value=!1});const f=n=>{n.detail===0?o.value=!o.value:o.value=!1},_=(n,s)=>s[s.length-1]===n;return(n,s)=>(r(),c("div",{class:E(["navbar-dropdown-wrapper",{open:o.value}])},[g("button",{class:"navbar-dropdown-title",type:"button","aria-label":a(i),onClick:f},[g("span",kt,T(a(e).text),1),$t],8,gt),g("button",{class:"navbar-dropdown-title-mobile",type:"button","aria-label":a(i),onClick:s[0]||(s[0]=u=>o.value=!o.value)},[g("span",yt,T(a(e).text),1),g("span",{class:E(["arrow",o.value?"down":"right"])},null,2)],8,Lt),$(Ce,null,{default:N(()=>[q(g("ul",wt,[(r(!0),c(I,null,A(a(e).children,u=>(r(),c("li",{key:u.text,class:"navbar-dropdown-item"},[u.children?(r(),c(I,{key:0},[g("h4",Ct,[u.link?(r(),x(H,{key:0,item:u,onFocusout:v=>_(u,a(e).children)&&u.children.length===0&&(o.value=!1)},null,8,["item","onFocusout"])):(r(),c("span",St,T(u.text),1))]),g("ul",xt,[(r(!0),c(I,null,A(u.children,v=>(r(),c("li",{key:v.link,class:"navbar-dropdown-subitem"},[$(H,{item:v,onFocusout:p=>_(v,u.children)&&_(u,a(e).children)&&(o.value=!1)},null,8,["item","onFocusout"])]))),128))])],64)):(r(),x(H,{key:1,item:u,onFocusout:v=>_(u,a(e).children)&&(o.value=!1)},null,8,["item","onFocusout"]))]))),128))],512),[[G,o.value]])]),_:1})],2))}});var Bt=C(Tt,[["__file","NavbarDropdown.vue"]]);const _e=l=>decodeURI(l).replace(/#.*$/,"").replace(/(index)?\.(md|html)$/,""),Nt=(l,t)=>{if(t.hash===l)return!0;const e=_e(t.path),i=_e(l);return e===i},Se=(l,t)=>l.link&&Nt(l.link,t)?!0:l.children?l.children.some(e=>Se(e,t)):!1,xe=l=>!X(l)||/github\.com/.test(l)?"GitHub":/bitbucket\.org/.test(l)?"Bitbucket":/gitlab\.com/.test(l)?"GitLab":/gitee\.com/.test(l)?"Gitee":null,Dt={GitHub:":repo/edit/:branch/:path",GitLab:":repo/-/edit/:branch/:path",Gitee:":repo/edit/:branch/:path",Bitbucket:":repo/src/:branch/:path?mode=edit&spa=0&at=:branch&fileviewer=file-view-default"},It=({docsRepo:l,editLinkPattern:t})=>{if(t)return t;const e=xe(l);return e!==null?Dt[e]:null},Mt=({docsRepo:l,docsBranch:t,docsDir:e,filePathRelative:i,editLinkPattern:o})=>{if(!i)return null;const d=It({docsRepo:l,editLinkPattern:o});return d?d.replace(/:repo/,X(l)?l:`https://github.com/${l}`).replace(/:branch/,t).replace(/:path/,Oe(`${Fe(e)}/${i}`)):null},Ht={key:0,class:"navbar-items"},Pt=S({setup(l){const t=()=>{const s=te(),u=ge(),v=Z(),p=D();return h(()=>{var B,M;const b=Object.keys(v.value.locales);if(b.length<2)return[];const k=s.currentRoute.value.path,L=s.currentRoute.value.fullPath;return[{text:(B=p.value.selectLanguageText)!=null?B:"unknown language",ariaLabel:(M=p.value.selectLanguageAriaLabel)!=null?M:"unkown language",children:b.map(O=>{var oe,se,le,ue,ie,ce;const W=(se=(oe=v.value.locales)==null?void 0:oe[O])!=null?se:{},ne=(ue=(le=p.value.locales)==null?void 0:le[O])!=null?ue:{},re=`${W.lang}`,Be=(ie=ne.selectLanguageName)!=null?ie:re;let V;if(re===v.value.lang)V=L;else{const ve=k.replace(u.value,O);s.getRoutes().some(Ne=>Ne.path===ve)?V=ve:V=(ce=ne.home)!=null?ce:O}return{text:Be,link:V}})}]})},e=()=>{const s=D(),u=h(()=>s.value.repo),v=h(()=>u.value?xe(u.value):null),p=h(()=>u.value&&!X(u.value)?`https://github.com/${u.value}`:u.value),b=h(()=>p.value?s.value.repoLabel?s.value.repoLabel:v.value===null?"Source":v.value:null);return h(()=>!p.value||!b.value?[]:[{text:b.value,link:p.value}])},i=s=>Le(s)?ye(s):s.children?J(Y({},s),{children:s.children.map(i)}):s,d=(()=>{const s=D();return h(()=>(s.value.navbar||[]).map(i))})(),f=t(),_=e(),n=h(()=>[...d.value,...f.value,..._.value]);return(s,u)=>a(n).length?(r(),c("nav",Ht,[(r(!0),c(I,null,A(a(n),v=>(r(),c("div",{key:v.text,class:"navbar-item"},[v.children?(r(),x(Bt,{key:0,item:v},null,8,["item"])):(r(),x(H,{key:1,item:v},null,8,["item"]))]))),128))])):w("",!0)}});var Te=C(Pt,[["__file","NavbarItems.vue"]]);const Et=["title"],Rt={class:"icon",focusable:"false",viewBox:"0 0 32 32"},At=ze('',9),Ot=[At],Ft={class:"icon",focusable:"false",viewBox:"0 0 32 32"},zt=g("path",{d:"M13.502 5.414a15.075 15.075 0 0 0 11.594 18.194a11.113 11.113 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1.002 1.002 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.072 13.072 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3z",fill:"currentColor"},null,-1),Wt=[zt],Vt=S({setup(l){const t=D(),e=ee(),i=()=>{e.value=!e.value};return(o,d)=>(r(),c("button",{class:"toggle-dark-button",title:a(t).toggleDarkMode,onClick:i},[q((r(),c("svg",Rt,Ot,512)),[[G,!a(e)]]),q((r(),c("svg",Ft,Wt,512)),[[G,a(e)]])],8,Et))}});var Ut=C(Vt,[["__file","ToggleDarkModeButton.vue"]]);const jt=["title"],Kt=g("div",{class:"icon","aria-hidden":"true"},[g("span"),g("span"),g("span")],-1),qt=[Kt],Gt=S({emits:["toggle"],setup(l){const t=D();return(e,i)=>(r(),c("div",{class:"toggle-sidebar-button",title:a(t).toggleSidebar,"aria-expanded":"false",role:"button",tabindex:"0",onClick:i[0]||(i[0]=o=>e.$emit("toggle"))},qt,8,jt))}});var Xt=C(Gt,[["__file","ToggleSidebarButton.vue"]]);const Yt=S({emits:["toggle-sidebar"],setup(l){const t=D(),e=F(null),i=F(null),o=F(0),d=h(()=>o.value?{maxWidth:o.value+"px"}:{}),f=h(()=>t.value.darkMode);we(()=>{const s=_(e.value,"paddingLeft")+_(e.value,"paddingRight"),u=()=>{var v;window.innerWidth<=719?o.value=0:o.value=e.value.offsetWidth-s-(((v=i.value)==null?void 0:v.offsetWidth)||0)};u(),window.addEventListener("resize",u,!1),window.addEventListener("orientationchange",u,!1)});function _(n,s){var p,b,k;const u=(k=(b=(p=n==null?void 0:n.ownerDocument)==null?void 0:p.defaultView)==null?void 0:b.getComputedStyle(n,null))==null?void 0:k[s],v=Number.parseInt(u,10);return Number.isNaN(v)?0:v}return(n,s)=>{const u=R("NavbarSearch");return r(),c("header",{ref_key:"navbar",ref:e,class:"navbar"},[$(Xt,{onToggle:s[0]||(s[0]=v=>n.$emit("toggle-sidebar"))}),g("span",{ref_key:"navbarBrand",ref:i},[$(mt)],512),g("div",{class:"navbar-items-wrapper",style:We(a(d))},[y(n.$slots,"before"),$(Te,{class:"can-hide"}),y(n.$slots,"after"),a(f)?(r(),x(Ut,{key:0})):w("",!0),$(u)],4)],512)}}});var Jt=C(Yt,[["__file","Navbar.vue"]]);const Qt={class:"page-meta"},Zt={key:0,class:"meta-item edit-link"},ea={key:1,class:"meta-item last-updated"},ta={class:"meta-item-label"},aa={class:"meta-item-info"},na={key:2,class:"meta-item contributors"},ra={class:"meta-item-label"},oa={class:"meta-item-info"},sa=["title"],la=j(", "),ua=S({setup(l){const t=()=>{const n=D(),s=U(),u=P();return h(()=>{var M,O,W;if(!((O=(M=u.value.editLink)!=null?M:n.value.editLink)!=null?O:!0))return null;const{repo:p,docsRepo:b=p,docsBranch:k="main",docsDir:L="",editLinkText:m}=n.value;if(!b)return null;const B=Mt({docsRepo:b,docsBranch:k,docsDir:L,filePathRelative:s.value.filePathRelative,editLinkPattern:(W=u.value.editLinkPattern)!=null?W:n.value.editLinkPattern});return B?{text:m!=null?m:"Edit this page",link:B}:null})},e=()=>{const n=D(),s=U(),u=P();return h(()=>{var b,k,L,m;return!((k=(b=u.value.lastUpdated)!=null?b:n.value.lastUpdated)!=null?k:!0)||!((L=s.value.git)!=null&&L.updatedTime)?null:new Date((m=s.value.git)==null?void 0:m.updatedTime).toLocaleString()})},i=()=>{const n=D(),s=U(),u=P();return h(()=>{var p,b,k,L;return((b=(p=u.value.contributors)!=null?p:n.value.contributors)!=null?b:!0)&&(L=(k=s.value.git)==null?void 0:k.contributors)!=null?L:null})},o=D(),d=t(),f=e(),_=i();return(n,s)=>{const u=R("ClientOnly");return r(),c("footer",Qt,[a(d)?(r(),c("div",Zt,[$(H,{class:"meta-item-label",item:a(d)},null,8,["item"])])):w("",!0),a(f)?(r(),c("div",ea,[g("span",ta,T(a(o).lastUpdatedText)+": ",1),$(u,null,{default:N(()=>[g("span",aa,T(a(f)),1)]),_:1})])):w("",!0),a(_)&&a(_).length?(r(),c("div",na,[g("span",ra,T(a(o).contributorsText)+": ",1),g("span",oa,[(r(!0),c(I,null,A(a(_),(v,p)=>(r(),c(I,{key:p},[g("span",{class:"contributor",title:`email: ${v.email}`},T(v.name),9,sa),p!==a(_).length-1?(r(),c(I,{key:0},[la],64)):w("",!0)],64))),128))])])):w("",!0)])}}});var ia=C(ua,[["__file","PageMeta.vue"]]);const ca={key:0,class:"page-nav"},va={class:"inner"},da={key:0,class:"prev"},pa={key:1,class:"next"},ha=S({setup(l){const t=n=>n===!1?null:Le(n)?ye(n):Ve(n)?n:!1,e=(n,s,u)=>{const v=n.findIndex(p=>p.link===s);if(v!==-1){const p=n[v+u];return p!=null&&p.link?p:null}for(const p of n)if(p.children){const b=e(p.children,s,u);if(b)return b}return null},i=P(),o=ae(),d=z(),f=h(()=>{const n=t(i.value.prev);return n!==!1?n:e(o.value,d.path,-1)}),_=h(()=>{const n=t(i.value.next);return n!==!1?n:e(o.value,d.path,1)});return(n,s)=>a(f)||a(_)?(r(),c("nav",ca,[g("p",va,[a(f)?(r(),c("span",da,[$(H,{item:a(f)},null,8,["item"])])):w("",!0),a(_)?(r(),c("span",pa,[$(H,{item:a(_)},null,8,["item"])])):w("",!0)])])):w("",!0)}});var _a=C(ha,[["__file","PageNav.vue"]]);const fa={class:"page"},ma={class:"theme-default-content"},ba=S({setup(l){return(t,e)=>{const i=R("Content");return r(),c("main",fa,[y(t.$slots,"top"),g("div",ma,[$(i)]),$(ia),$(_a),y(t.$slots,"bottom")])}}});var ga=C(ba,[["__file","Page.vue"]]);const ka={class:"sidebar-item-children"},$a=S({props:{item:{type:Object,required:!0},depth:{type:Number,required:!1,default:0}},setup(l){const t=l,{item:e,depth:i}=Q(t),o=z(),d=te(),f=h(()=>Se(e.value,o)),_=h(()=>({"sidebar-item":!0,"sidebar-heading":i.value===0,active:f.value,collapsible:e.value.collapsible})),n=F(!0),s=F(void 0);return e.value.collapsible&&(n.value=f.value,s.value=()=>{n.value=!n.value},d.afterEach(()=>{n.value=f.value})),(u,v)=>{var b;const p=R("SidebarItem",!0);return r(),c("li",null,[a(e).link?(r(),x(H,{key:0,class:E(a(_)),item:a(e)},null,8,["class","item"])):(r(),c("p",{key:1,tabindex:"0",class:E(a(_)),onClick:v[0]||(v[0]=(...k)=>s.value&&s.value(...k)),onKeydown:v[1]||(v[1]=Ue((...k)=>s.value&&s.value(...k),["enter"]))},[j(T(a(e).text)+" ",1),a(e).collapsible?(r(),c("span",{key:0,class:E(["arrow",n.value?"down":"right"])},null,2)):w("",!0)],34)),(b=a(e).children)!=null&&b.length?(r(),x(Ce,{key:2},{default:N(()=>[q(g("ul",ka,[(r(!0),c(I,null,A(a(e).children,k=>(r(),x(p,{key:`${a(i)}${k.text}${k.link}`,item:k,depth:a(i)+1},null,8,["item","depth"]))),128))],512),[[G,n.value]])]),_:1})):w("",!0)])}}});var La=C($a,[["__file","SidebarItem.vue"]]);const ya={key:0,class:"sidebar-items"},wa=S({setup(l){const t=z(),e=ae();return $e(()=>t.hash,i=>{const o=document.querySelector(".sidebar");if(!o)return;const d=document.querySelector(`.sidebar a.sidebar-item[href="${t.path}${i}"]`);if(!d)return;const f=o.getBoundingClientRect().top,_=o.getBoundingClientRect().height,n=d.getBoundingClientRect().top,s=d.getBoundingClientRect().height;nf+_&&d.scrollIntoView(!1)}),(i,o)=>a(e).length?(r(),c("ul",ya,[(r(!0),c(I,null,A(a(e),d=>(r(),x(La,{key:d.link||d.text,item:d},null,8,["item"]))),128))])):w("",!0)}});var Ca=C(wa,[["__file","SidebarItems.vue"]]);const Sa={class:"sidebar"},xa=S({setup(l){return(t,e)=>(r(),c("aside",Sa,[$(Te),y(t.$slots,"top"),$(Ca),y(t.$slots,"bottom")]))}});var Ta=C(xa,[["__file","Sidebar.vue"]]);const Ba=S({setup(l){const t=U(),e=P(),i=D(),o=h(()=>e.value.navbar!==!1&&i.value.navbar!==!1),d=ae(),f=F(!1),_=m=>{f.value=typeof m=="boolean"?m:!f.value},n={x:0,y:0},s=m=>{n.x=m.changedTouches[0].clientX,n.y=m.changedTouches[0].clientY},u=m=>{const B=m.changedTouches[0].clientX-n.x,M=m.changedTouches[0].clientY-n.y;Math.abs(B)>Math.abs(M)&&Math.abs(B)>40&&(B>0&&n.x<=80?_(!0):_(!1))},v=h(()=>[{"no-navbar":!o.value,"no-sidebar":!d.value.length,"sidebar-open":f.value},e.value.pageClass]);let p;we(()=>{p=te().afterEach(()=>{_(!1)})}),je(()=>{p()});const b=Ke(),k=b.resolve,L=b.pending;return(m,B)=>(r(),c("div",{class:E(["theme-container",a(v)]),onTouchstart:s,onTouchend:u},[y(m.$slots,"navbar",{},()=>[a(o)?(r(),x(Jt,{key:0,onToggleSidebar:_},{before:N(()=>[y(m.$slots,"navbar-before")]),after:N(()=>[y(m.$slots,"navbar-after")]),_:3})):w("",!0)]),g("div",{class:"sidebar-mask",onClick:B[0]||(B[0]=M=>_(!1))}),y(m.$slots,"sidebar",{},()=>[$(Ta,null,{top:N(()=>[y(m.$slots,"sidebar-top")]),bottom:N(()=>[y(m.$slots,"sidebar-bottom")]),_:3})]),y(m.$slots,"page",{},()=>[a(e).home?(r(),x(_t,{key:0})):(r(),x(ke,{key:1,name:"fade-slide-y",mode:"out-in",onBeforeEnter:a(k),onBeforeLeave:a(L)},{default:N(()=>[(r(),x(ga,{key:a(t).path},{top:N(()=>[y(m.$slots,"page-top")]),bottom:N(()=>[y(m.$slots,"page-bottom")]),_:3}))]),_:3},8,["onBeforeEnter","onBeforeLeave"]))])],34))}});var Ia=C(Ba,[["__file","Layout.vue"]]);export{Ia as default}; +var De=Object.defineProperty,Ie=Object.defineProperties;var Me=Object.getOwnPropertyDescriptors;var de=Object.getOwnPropertySymbols;var He=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable;var pe=(l,t,e)=>t in l?De(l,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):l[t]=e,Y=(l,t)=>{for(var e in t||(t={}))He.call(t,e)&&pe(l,e,t[e]);if(de)for(var e of de(t))Pe.call(t,e)&&pe(l,e,t[e]);return l},J=(l,t)=>Ie(l,Me(t));import{_ as C,r as R,o as r,a as c,d as $,f as S,i as P,j as h,k as fe,h as a,F as I,l as A,m as w,b as g,t as T,n as z,p as Q,q as x,w as N,s as he,v as y,e as j,x as X,y as Ee,z as Re,A as Ae,B as Z,C as ee,D as K,E as me,G as be,H as E,u as ge,g as D,T as ke,I as F,J as $e,K as q,L as G,M as Oe,N as Fe,O as te,P as Le,Q as ye,c as ze,R as we,S as We,U,V as ae,W as Ve,X as Ue,Y as je,Z as Ke}from"./app.2353e9b9.js";const qe={},Ge={class:"theme-default-content custom"};function Xe(l,t){const e=R("Content");return r(),c("div",Ge,[$(e)])}var Ye=C(qe,[["render",Xe],["__file","HomeContent.vue"]]);const Je={key:0,class:"features"},Qe=S({setup(l){const t=P(),e=h(()=>fe(t.value.features)?t.value.features:[]);return(i,o)=>a(e).length?(r(),c("div",Je,[(r(!0),c(I,null,A(a(e),d=>(r(),c("div",{key:d.title,class:"feature"},[g("h2",null,T(d.title),1),g("p",null,T(d.details),1)]))),128))])):w("",!0)}});var Ze=C(Qe,[["__file","HomeFeatures.vue"]]);const et=["innerHTML"],tt=["textContent"],at=S({setup(l){const t=P(),e=h(()=>t.value.footer),i=h(()=>t.value.footerHtml);return(o,d)=>a(e)?(r(),c(I,{key:0},[a(i)?(r(),c("div",{key:0,class:"footer",innerHTML:a(e)},null,8,et)):(r(),c("div",{key:1,class:"footer",textContent:T(a(e))},null,8,tt))],64)):w("",!0)}});var nt=C(at,[["__file","HomeFooter.vue"]]);const rt=["href","rel","target","aria-label"],ot=S({inheritAttrs:!1}),st=S(J(Y({},ot),{props:{item:{type:Object,required:!0}},setup(l){const t=l,e=z(),i=Ae(),{item:o}=Q(t),d=h(()=>X(o.value.link)),f=h(()=>Ee(o.value.link)||Re(o.value.link)),_=h(()=>{if(!f.value){if(o.value.target)return o.value.target;if(d.value)return"_blank"}}),n=h(()=>_.value==="_blank"),s=h(()=>!d.value&&!f.value&&!n.value),u=h(()=>{if(!f.value){if(o.value.rel)return o.value.rel;if(n.value)return"noopener noreferrer"}}),v=h(()=>o.value.ariaLabel||o.value.text),p=h(()=>{const L=Object.keys(i.value.locales);return L.length?!L.some(m=>m===o.value.link):o.value.link!=="/"}),b=h(()=>p.value?e.path.startsWith(o.value.link):!1),k=h(()=>s.value?o.value.activeMatch?new RegExp(o.value.activeMatch).test(e.path):b.value:!1);return(L,m)=>{const B=R("RouterLink"),M=R("AutoLinkExternalIcon");return a(s)?(r(),x(B,he({key:0,class:{"router-link-active":a(k)},to:a(o).link,"aria-label":a(v)},L.$attrs),{default:N(()=>[y(L.$slots,"before"),j(" "+T(a(o).text)+" ",1),y(L.$slots,"after")]),_:3},16,["class","to","aria-label"])):(r(),c("a",he({key:1,class:"external-link",href:a(o).link,rel:a(u),target:a(_),"aria-label":a(v)},L.$attrs),[y(L.$slots,"before"),j(" "+T(a(o).text)+" ",1),a(n)?(r(),x(M,{key:0})):w("",!0),y(L.$slots,"after")],16,rt))}}}));var H=C(st,[["__file","AutoLink.vue"]]);const lt={class:"hero"},ut={key:0,id:"main-title"},it={key:1,class:"description"},ct={key:2,class:"actions"},vt=S({setup(l){const t=P(),e=Z(),i=ee(),o=h(()=>i.value&&t.value.heroImageDark!==void 0?t.value.heroImageDark:t.value.heroImage),d=h(()=>t.value.heroText===null?null:t.value.heroText||e.value.title||"Hello"),f=h(()=>t.value.heroAlt||d.value||"hero"),_=h(()=>t.value.tagline===null?null:t.value.tagline||e.value.description||"Welcome to your VuePress site"),n=h(()=>fe(t.value.actions)?t.value.actions.map(({text:u,link:v,type:p="primary"})=>({text:u,link:v,type:p})):[]),s=()=>{if(!o.value)return null;const u=K("img",{src:me(o.value),alt:f.value});return t.value.heroImageDark===void 0?u:K(be,()=>u)};return(u,v)=>(r(),c("header",lt,[$(s),a(d)?(r(),c("h1",ut,T(a(d)),1)):w("",!0),a(_)?(r(),c("p",it,T(a(_)),1)):w("",!0),a(n).length?(r(),c("p",ct,[(r(!0),c(I,null,A(a(n),p=>(r(),x(H,{key:p.text,class:E(["action-button",[p.type]]),item:p},null,8,["class","item"]))),128))])):w("",!0)]))}});var dt=C(vt,[["__file","HomeHero.vue"]]);const pt={class:"home"},ht=S({setup(l){return(t,e)=>(r(),c("main",pt,[$(dt),$(Ze),$(Ye),$(nt)]))}});var _t=C(ht,[["__file","Home.vue"]]);const ft=S({setup(l){const t=ge(),e=Z(),i=D(),o=ee(),d=h(()=>i.value.home||t.value),f=h(()=>e.value.title),_=h(()=>o.value&&i.value.logoDark!==void 0?i.value.logoDark:i.value.logo),n=()=>{if(!_.value)return null;const s=K("img",{class:"logo",src:me(_.value),alt:f.value});return i.value.logoDark===void 0?s:K(be,()=>s)};return(s,u)=>{const v=R("RouterLink");return r(),x(v,{to:a(d)},{default:N(()=>[$(n),a(f)?(r(),c("span",{key:0,class:E(["site-name",{"can-hide":a(_)}])},T(a(f)),3)):w("",!0)]),_:1},8,["to"])}}});var mt=C(ft,[["__file","NavbarBrand.vue"]]);const bt=S({setup(l){const t=i=>{i.style.height=i.scrollHeight+"px"},e=i=>{i.style.height=""};return(i,o)=>(r(),x(ke,{name:"dropdown",onEnter:t,onAfterEnter:e,onBeforeLeave:t},{default:N(()=>[y(i.$slots,"default")]),_:3}))}});var Ce=C(bt,[["__file","DropdownTransition.vue"]]);const gt=["aria-label"],kt={class:"title"},$t=g("span",{class:"arrow down"},null,-1),Lt=["aria-label"],yt={class:"title"},wt={class:"navbar-dropdown"},Ct={class:"navbar-dropdown-subtitle"},St={key:1},xt={class:"navbar-dropdown-subitem-wrapper"},Tt=S({props:{item:{type:Object,required:!0}},setup(l){const t=l,{item:e}=Q(t),i=h(()=>e.value.ariaLabel||e.value.text),o=F(!1),d=z();$e(()=>d.path,()=>{o.value=!1});const f=n=>{n.detail===0?o.value=!o.value:o.value=!1},_=(n,s)=>s[s.length-1]===n;return(n,s)=>(r(),c("div",{class:E(["navbar-dropdown-wrapper",{open:o.value}])},[g("button",{class:"navbar-dropdown-title",type:"button","aria-label":a(i),onClick:f},[g("span",kt,T(a(e).text),1),$t],8,gt),g("button",{class:"navbar-dropdown-title-mobile",type:"button","aria-label":a(i),onClick:s[0]||(s[0]=u=>o.value=!o.value)},[g("span",yt,T(a(e).text),1),g("span",{class:E(["arrow",o.value?"down":"right"])},null,2)],8,Lt),$(Ce,null,{default:N(()=>[q(g("ul",wt,[(r(!0),c(I,null,A(a(e).children,u=>(r(),c("li",{key:u.text,class:"navbar-dropdown-item"},[u.children?(r(),c(I,{key:0},[g("h4",Ct,[u.link?(r(),x(H,{key:0,item:u,onFocusout:v=>_(u,a(e).children)&&u.children.length===0&&(o.value=!1)},null,8,["item","onFocusout"])):(r(),c("span",St,T(u.text),1))]),g("ul",xt,[(r(!0),c(I,null,A(u.children,v=>(r(),c("li",{key:v.link,class:"navbar-dropdown-subitem"},[$(H,{item:v,onFocusout:p=>_(v,u.children)&&_(u,a(e).children)&&(o.value=!1)},null,8,["item","onFocusout"])]))),128))])],64)):(r(),x(H,{key:1,item:u,onFocusout:v=>_(u,a(e).children)&&(o.value=!1)},null,8,["item","onFocusout"]))]))),128))],512),[[G,o.value]])]),_:1})],2))}});var Bt=C(Tt,[["__file","NavbarDropdown.vue"]]);const _e=l=>decodeURI(l).replace(/#.*$/,"").replace(/(index)?\.(md|html)$/,""),Nt=(l,t)=>{if(t.hash===l)return!0;const e=_e(t.path),i=_e(l);return e===i},Se=(l,t)=>l.link&&Nt(l.link,t)?!0:l.children?l.children.some(e=>Se(e,t)):!1,xe=l=>!X(l)||/github\.com/.test(l)?"GitHub":/bitbucket\.org/.test(l)?"Bitbucket":/gitlab\.com/.test(l)?"GitLab":/gitee\.com/.test(l)?"Gitee":null,Dt={GitHub:":repo/edit/:branch/:path",GitLab:":repo/-/edit/:branch/:path",Gitee:":repo/edit/:branch/:path",Bitbucket:":repo/src/:branch/:path?mode=edit&spa=0&at=:branch&fileviewer=file-view-default"},It=({docsRepo:l,editLinkPattern:t})=>{if(t)return t;const e=xe(l);return e!==null?Dt[e]:null},Mt=({docsRepo:l,docsBranch:t,docsDir:e,filePathRelative:i,editLinkPattern:o})=>{if(!i)return null;const d=It({docsRepo:l,editLinkPattern:o});return d?d.replace(/:repo/,X(l)?l:`https://github.com/${l}`).replace(/:branch/,t).replace(/:path/,Oe(`${Fe(e)}/${i}`)):null},Ht={key:0,class:"navbar-items"},Pt=S({setup(l){const t=()=>{const s=te(),u=ge(),v=Z(),p=D();return h(()=>{var B,M;const b=Object.keys(v.value.locales);if(b.length<2)return[];const k=s.currentRoute.value.path,L=s.currentRoute.value.fullPath;return[{text:(B=p.value.selectLanguageText)!=null?B:"unknown language",ariaLabel:(M=p.value.selectLanguageAriaLabel)!=null?M:"unkown language",children:b.map(O=>{var oe,se,le,ue,ie,ce;const W=(se=(oe=v.value.locales)==null?void 0:oe[O])!=null?se:{},ne=(ue=(le=p.value.locales)==null?void 0:le[O])!=null?ue:{},re=`${W.lang}`,Be=(ie=ne.selectLanguageName)!=null?ie:re;let V;if(re===v.value.lang)V=L;else{const ve=k.replace(u.value,O);s.getRoutes().some(Ne=>Ne.path===ve)?V=ve:V=(ce=ne.home)!=null?ce:O}return{text:Be,link:V}})}]})},e=()=>{const s=D(),u=h(()=>s.value.repo),v=h(()=>u.value?xe(u.value):null),p=h(()=>u.value&&!X(u.value)?`https://github.com/${u.value}`:u.value),b=h(()=>p.value?s.value.repoLabel?s.value.repoLabel:v.value===null?"Source":v.value:null);return h(()=>!p.value||!b.value?[]:[{text:b.value,link:p.value}])},i=s=>Le(s)?ye(s):s.children?J(Y({},s),{children:s.children.map(i)}):s,d=(()=>{const s=D();return h(()=>(s.value.navbar||[]).map(i))})(),f=t(),_=e(),n=h(()=>[...d.value,...f.value,..._.value]);return(s,u)=>a(n).length?(r(),c("nav",Ht,[(r(!0),c(I,null,A(a(n),v=>(r(),c("div",{key:v.text,class:"navbar-item"},[v.children?(r(),x(Bt,{key:0,item:v},null,8,["item"])):(r(),x(H,{key:1,item:v},null,8,["item"]))]))),128))])):w("",!0)}});var Te=C(Pt,[["__file","NavbarItems.vue"]]);const Et=["title"],Rt={class:"icon",focusable:"false",viewBox:"0 0 32 32"},At=ze('',9),Ot=[At],Ft={class:"icon",focusable:"false",viewBox:"0 0 32 32"},zt=g("path",{d:"M13.502 5.414a15.075 15.075 0 0 0 11.594 18.194a11.113 11.113 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1.002 1.002 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.072 13.072 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3z",fill:"currentColor"},null,-1),Wt=[zt],Vt=S({setup(l){const t=D(),e=ee(),i=()=>{e.value=!e.value};return(o,d)=>(r(),c("button",{class:"toggle-dark-button",title:a(t).toggleDarkMode,onClick:i},[q((r(),c("svg",Rt,Ot,512)),[[G,!a(e)]]),q((r(),c("svg",Ft,Wt,512)),[[G,a(e)]])],8,Et))}});var Ut=C(Vt,[["__file","ToggleDarkModeButton.vue"]]);const jt=["title"],Kt=g("div",{class:"icon","aria-hidden":"true"},[g("span"),g("span"),g("span")],-1),qt=[Kt],Gt=S({emits:["toggle"],setup(l){const t=D();return(e,i)=>(r(),c("div",{class:"toggle-sidebar-button",title:a(t).toggleSidebar,"aria-expanded":"false",role:"button",tabindex:"0",onClick:i[0]||(i[0]=o=>e.$emit("toggle"))},qt,8,jt))}});var Xt=C(Gt,[["__file","ToggleSidebarButton.vue"]]);const Yt=S({emits:["toggle-sidebar"],setup(l){const t=D(),e=F(null),i=F(null),o=F(0),d=h(()=>o.value?{maxWidth:o.value+"px"}:{}),f=h(()=>t.value.darkMode);we(()=>{const s=_(e.value,"paddingLeft")+_(e.value,"paddingRight"),u=()=>{var v;window.innerWidth<=719?o.value=0:o.value=e.value.offsetWidth-s-(((v=i.value)==null?void 0:v.offsetWidth)||0)};u(),window.addEventListener("resize",u,!1),window.addEventListener("orientationchange",u,!1)});function _(n,s){var p,b,k;const u=(k=(b=(p=n==null?void 0:n.ownerDocument)==null?void 0:p.defaultView)==null?void 0:b.getComputedStyle(n,null))==null?void 0:k[s],v=Number.parseInt(u,10);return Number.isNaN(v)?0:v}return(n,s)=>{const u=R("NavbarSearch");return r(),c("header",{ref_key:"navbar",ref:e,class:"navbar"},[$(Xt,{onToggle:s[0]||(s[0]=v=>n.$emit("toggle-sidebar"))}),g("span",{ref_key:"navbarBrand",ref:i},[$(mt)],512),g("div",{class:"navbar-items-wrapper",style:We(a(d))},[y(n.$slots,"before"),$(Te,{class:"can-hide"}),y(n.$slots,"after"),a(f)?(r(),x(Ut,{key:0})):w("",!0),$(u)],4)],512)}}});var Jt=C(Yt,[["__file","Navbar.vue"]]);const Qt={class:"page-meta"},Zt={key:0,class:"meta-item edit-link"},ea={key:1,class:"meta-item last-updated"},ta={class:"meta-item-label"},aa={class:"meta-item-info"},na={key:2,class:"meta-item contributors"},ra={class:"meta-item-label"},oa={class:"meta-item-info"},sa=["title"],la=j(", "),ua=S({setup(l){const t=()=>{const n=D(),s=U(),u=P();return h(()=>{var M,O,W;if(!((O=(M=u.value.editLink)!=null?M:n.value.editLink)!=null?O:!0))return null;const{repo:p,docsRepo:b=p,docsBranch:k="main",docsDir:L="",editLinkText:m}=n.value;if(!b)return null;const B=Mt({docsRepo:b,docsBranch:k,docsDir:L,filePathRelative:s.value.filePathRelative,editLinkPattern:(W=u.value.editLinkPattern)!=null?W:n.value.editLinkPattern});return B?{text:m!=null?m:"Edit this page",link:B}:null})},e=()=>{const n=D(),s=U(),u=P();return h(()=>{var b,k,L,m;return!((k=(b=u.value.lastUpdated)!=null?b:n.value.lastUpdated)!=null?k:!0)||!((L=s.value.git)!=null&&L.updatedTime)?null:new Date((m=s.value.git)==null?void 0:m.updatedTime).toLocaleString()})},i=()=>{const n=D(),s=U(),u=P();return h(()=>{var p,b,k,L;return((b=(p=u.value.contributors)!=null?p:n.value.contributors)!=null?b:!0)&&(L=(k=s.value.git)==null?void 0:k.contributors)!=null?L:null})},o=D(),d=t(),f=e(),_=i();return(n,s)=>{const u=R("ClientOnly");return r(),c("footer",Qt,[a(d)?(r(),c("div",Zt,[$(H,{class:"meta-item-label",item:a(d)},null,8,["item"])])):w("",!0),a(f)?(r(),c("div",ea,[g("span",ta,T(a(o).lastUpdatedText)+": ",1),$(u,null,{default:N(()=>[g("span",aa,T(a(f)),1)]),_:1})])):w("",!0),a(_)&&a(_).length?(r(),c("div",na,[g("span",ra,T(a(o).contributorsText)+": ",1),g("span",oa,[(r(!0),c(I,null,A(a(_),(v,p)=>(r(),c(I,{key:p},[g("span",{class:"contributor",title:`email: ${v.email}`},T(v.name),9,sa),p!==a(_).length-1?(r(),c(I,{key:0},[la],64)):w("",!0)],64))),128))])])):w("",!0)])}}});var ia=C(ua,[["__file","PageMeta.vue"]]);const ca={key:0,class:"page-nav"},va={class:"inner"},da={key:0,class:"prev"},pa={key:1,class:"next"},ha=S({setup(l){const t=n=>n===!1?null:Le(n)?ye(n):Ve(n)?n:!1,e=(n,s,u)=>{const v=n.findIndex(p=>p.link===s);if(v!==-1){const p=n[v+u];return p!=null&&p.link?p:null}for(const p of n)if(p.children){const b=e(p.children,s,u);if(b)return b}return null},i=P(),o=ae(),d=z(),f=h(()=>{const n=t(i.value.prev);return n!==!1?n:e(o.value,d.path,-1)}),_=h(()=>{const n=t(i.value.next);return n!==!1?n:e(o.value,d.path,1)});return(n,s)=>a(f)||a(_)?(r(),c("nav",ca,[g("p",va,[a(f)?(r(),c("span",da,[$(H,{item:a(f)},null,8,["item"])])):w("",!0),a(_)?(r(),c("span",pa,[$(H,{item:a(_)},null,8,["item"])])):w("",!0)])])):w("",!0)}});var _a=C(ha,[["__file","PageNav.vue"]]);const fa={class:"page"},ma={class:"theme-default-content"},ba=S({setup(l){return(t,e)=>{const i=R("Content");return r(),c("main",fa,[y(t.$slots,"top"),g("div",ma,[$(i)]),$(ia),$(_a),y(t.$slots,"bottom")])}}});var ga=C(ba,[["__file","Page.vue"]]);const ka={class:"sidebar-item-children"},$a=S({props:{item:{type:Object,required:!0},depth:{type:Number,required:!1,default:0}},setup(l){const t=l,{item:e,depth:i}=Q(t),o=z(),d=te(),f=h(()=>Se(e.value,o)),_=h(()=>({"sidebar-item":!0,"sidebar-heading":i.value===0,active:f.value,collapsible:e.value.collapsible})),n=F(!0),s=F(void 0);return e.value.collapsible&&(n.value=f.value,s.value=()=>{n.value=!n.value},d.afterEach(()=>{n.value=f.value})),(u,v)=>{var b;const p=R("SidebarItem",!0);return r(),c("li",null,[a(e).link?(r(),x(H,{key:0,class:E(a(_)),item:a(e)},null,8,["class","item"])):(r(),c("p",{key:1,tabindex:"0",class:E(a(_)),onClick:v[0]||(v[0]=(...k)=>s.value&&s.value(...k)),onKeydown:v[1]||(v[1]=Ue((...k)=>s.value&&s.value(...k),["enter"]))},[j(T(a(e).text)+" ",1),a(e).collapsible?(r(),c("span",{key:0,class:E(["arrow",n.value?"down":"right"])},null,2)):w("",!0)],34)),(b=a(e).children)!=null&&b.length?(r(),x(Ce,{key:2},{default:N(()=>[q(g("ul",ka,[(r(!0),c(I,null,A(a(e).children,k=>(r(),x(p,{key:`${a(i)}${k.text}${k.link}`,item:k,depth:a(i)+1},null,8,["item","depth"]))),128))],512),[[G,n.value]])]),_:1})):w("",!0)])}}});var La=C($a,[["__file","SidebarItem.vue"]]);const ya={key:0,class:"sidebar-items"},wa=S({setup(l){const t=z(),e=ae();return $e(()=>t.hash,i=>{const o=document.querySelector(".sidebar");if(!o)return;const d=document.querySelector(`.sidebar a.sidebar-item[href="${t.path}${i}"]`);if(!d)return;const f=o.getBoundingClientRect().top,_=o.getBoundingClientRect().height,n=d.getBoundingClientRect().top,s=d.getBoundingClientRect().height;nf+_&&d.scrollIntoView(!1)}),(i,o)=>a(e).length?(r(),c("ul",ya,[(r(!0),c(I,null,A(a(e),d=>(r(),x(La,{key:d.link||d.text,item:d},null,8,["item"]))),128))])):w("",!0)}});var Ca=C(wa,[["__file","SidebarItems.vue"]]);const Sa={class:"sidebar"},xa=S({setup(l){return(t,e)=>(r(),c("aside",Sa,[$(Te),y(t.$slots,"top"),$(Ca),y(t.$slots,"bottom")]))}});var Ta=C(xa,[["__file","Sidebar.vue"]]);const Ba=S({setup(l){const t=U(),e=P(),i=D(),o=h(()=>e.value.navbar!==!1&&i.value.navbar!==!1),d=ae(),f=F(!1),_=m=>{f.value=typeof m=="boolean"?m:!f.value},n={x:0,y:0},s=m=>{n.x=m.changedTouches[0].clientX,n.y=m.changedTouches[0].clientY},u=m=>{const B=m.changedTouches[0].clientX-n.x,M=m.changedTouches[0].clientY-n.y;Math.abs(B)>Math.abs(M)&&Math.abs(B)>40&&(B>0&&n.x<=80?_(!0):_(!1))},v=h(()=>[{"no-navbar":!o.value,"no-sidebar":!d.value.length,"sidebar-open":f.value},e.value.pageClass]);let p;we(()=>{p=te().afterEach(()=>{_(!1)})}),je(()=>{p()});const b=Ke(),k=b.resolve,L=b.pending;return(m,B)=>(r(),c("div",{class:E(["theme-container",a(v)]),onTouchstart:s,onTouchend:u},[y(m.$slots,"navbar",{},()=>[a(o)?(r(),x(Jt,{key:0,onToggleSidebar:_},{before:N(()=>[y(m.$slots,"navbar-before")]),after:N(()=>[y(m.$slots,"navbar-after")]),_:3})):w("",!0)]),g("div",{class:"sidebar-mask",onClick:B[0]||(B[0]=M=>_(!1))}),y(m.$slots,"sidebar",{},()=>[$(Ta,null,{top:N(()=>[y(m.$slots,"sidebar-top")]),bottom:N(()=>[y(m.$slots,"sidebar-bottom")]),_:3})]),y(m.$slots,"page",{},()=>[a(e).home?(r(),x(_t,{key:0})):(r(),x(ke,{key:1,name:"fade-slide-y",mode:"out-in",onBeforeEnter:a(k),onBeforeLeave:a(L)},{default:N(()=>[(r(),x(ga,{key:a(t).path},{top:N(()=>[y(m.$slots,"page-top")]),bottom:N(()=>[y(m.$slots,"page-bottom")]),_:3}))]),_:3},8,["onBeforeEnter","onBeforeLeave"]))])],34))}});var Ia=C(Ba,[["__file","Layout.vue"]]);export{Ia as default}; diff --git a/assets/apm.html.019f53c1.js b/assets/apm.html.02964634.js similarity index 93% rename from assets/apm.html.019f53c1.js rename to assets/apm.html.02964634.js index d5ff760e7..f6dbbceac 100644 --- a/assets/apm.html.019f53c1.js +++ b/assets/apm.html.02964634.js @@ -1,4 +1,4 @@ -import{_ as e,c as a}from"./app.073399da.js";const n={},i=a(`

APM

Instana

Whispr is pre-configured to work with Instana APM tool. To enable Instana, set the following environment variables:

INSTANA_ENDPOINT_URL
+import{_ as e,c as a}from"./app.2353e9b9.js";const n={},i=a(`

APM

Instana

Whispr is pre-configured to work with Instana APM tool. To enable Instana, set the following environment variables:

INSTANA_ENDPOINT_URL
 INSTANA_AGENT_KEY
 
 # Optional - if you're behind a proxy, set this env var to your proxy URL
diff --git a/assets/apm.html.5aa5f906.js b/assets/apm.html.5aa5f906.js
new file mode 100644
index 000000000..c461cc6a6
--- /dev/null
+++ b/assets/apm.html.5aa5f906.js
@@ -0,0 +1 @@
+const e={key:"v-146e5374",path:"/apm.html",title:"APM",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Instana",slug:"instana",children:[]}],git:{updatedTime:1719405734e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",commits:1}]},filePathRelative:"apm.md"};export{e as data};
diff --git a/assets/apm.html.ec87fbae.js b/assets/apm.html.ec87fbae.js
deleted file mode 100644
index 1f08a4709..000000000
--- a/assets/apm.html.ec87fbae.js
+++ /dev/null
@@ -1 +0,0 @@
-const a={key:"v-146e5374",path:"/apm.html",title:"APM",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Instana",slug:"instana",children:[]}],git:{updatedTime:1719405314e3,contributors:[{name:"sairam charan",email:"mohanvenkat459@gmail.com",commits:1}]},filePathRelative:"apm.md"};export{a as data};
diff --git a/assets/app.073399da.js b/assets/app.2353e9b9.js
similarity index 97%
rename from assets/app.073399da.js
rename to assets/app.2353e9b9.js
index 4d4b77c5b..06666df41 100644
--- a/assets/app.073399da.js
+++ b/assets/app.2353e9b9.js
@@ -1,4 +1,4 @@
-var vl=Object.defineProperty,_l=Object.defineProperties;var yl=Object.getOwnPropertyDescriptors;var Ao=Object.getOwnPropertySymbols;var bl=Object.prototype.hasOwnProperty,El=Object.prototype.propertyIsEnumerable;var To=(e,t,n)=>t in e?vl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qe=(e,t)=>{for(var n in t||(t={}))bl.call(t,n)&&To(e,n,t[n]);if(Ao)for(var n of Ao(t))El.call(t,n)&&To(e,n,t[n]);return e},Pn=(e,t)=>_l(e,yl(t));const bo={},wl="modulepreload",Po={},Cl="/whispr/",K=function(t,n){return!n||n.length===0?t():Promise.all(n.map(r=>{if(r=`${Cl}${r}`,r in Po)return;Po[r]=!0;const o=r.endsWith(".css"),s=o?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${r}"]${s}`))return;const i=document.createElement("link");if(i.rel=o?"stylesheet":wl,o||(i.as="script",i.crossOrigin=""),i.href=r,document.head.appendChild(i),o)return new Promise((l,a)=>{i.addEventListener("load",l),i.addEventListener("error",()=>a(new Error(`Unable to preload CSS for ${r}`)))})})).then(()=>t())},Al={"v-8daa1a0e":()=>K(()=>import("./index.html.a14bc6c7.js"),[]).then(({data:e})=>e),"v-146e5374":()=>K(()=>import("./apm.html.ec87fbae.js"),[]).then(({data:e})=>e),"v-2eb76c63":()=>K(()=>import("./fileupload.html.d1244622.js"),[]).then(({data:e})=>e),"v-ecba32a0":()=>K(()=>import("./indexing.html.fdf89eb0.js"),[]).then(({data:e})=>e),"v-6ca815f4":()=>K(()=>import("./installation.html.56e6e6c9.js"),[]).then(({data:e})=>e),"v-27b6bb40":()=>K(()=>import("./security.html.769d5ec2.js"),[]).then(({data:e})=>e),"v-53401e42":()=>K(()=>import("./testing.html.29eb6ea0.js"),[]).then(({data:e})=>e),"v-fe842d44":()=>K(()=>import("./graphql.html.a934322d.js"),[]).then(({data:e})=>e),"v-0e4a26f1":()=>K(()=>import("./introduction.html.fd17ecf2.js"),[]).then(({data:e})=>e),"v-e9130d12":()=>K(()=>import("./rest.html.6eeb454b.js"),[]).then(({data:e})=>e),"v-63e82ae3":()=>K(()=>import("./index.html.7ba25318.js"),[]).then(({data:e})=>e),"v-3ea3fa0e":()=>K(()=>import("./building.html.28298084.js"),[]).then(({data:e})=>e),"v-76cfe0bc":()=>K(()=>import("./community.html.c07386d6.js"),[]).then(({data:e})=>e),"v-141584aa":()=>K(()=>import("./credits.html.e0bb079f.js"),[]).then(({data:e})=>e),"v-7e30aeec":()=>K(()=>import("./guidelines.html.e660a45e.js"),[]).then(({data:e})=>e),"v-17f9b51d":()=>K(()=>import("./index.html.3a835175.js"),[]).then(({data:e})=>e),"v-a8a674e6":()=>K(()=>import("./index.html.3bd403c9.js"),[]).then(({data:e})=>e),"v-712e14fc":()=>K(()=>import("./index.html.883a12ba.js"),[]).then(({data:e})=>e),"v-66de8e88":()=>K(()=>import("./tagGroup.html.68e3bf12.js"),[]).then(({data:e})=>e),"v-581890ae":()=>K(()=>import("./webhook.html.403050b8.js"),[]).then(({data:e})=>e),"v-4b2698d0":()=>K(()=>import("./whisp.html.48d188ba.js"),[]).then(({data:e})=>e),"v-67d16688":()=>K(()=>import("./index.html.f24ebcd5.js"),[]).then(({data:e})=>e),"v-47ce024e":()=>K(()=>import("./index.html.8efa2e15.js"),[]).then(({data:e})=>e),"v-43f4d00c":()=>K(()=>import("./index.html.22fb67e3.js"),[]).then(({data:e})=>e),"v-3706649a":()=>K(()=>import("./404.html.0f07aaf0.js"),[]).then(({data:e})=>e)};function jr(e,t){const n=Object.create(null),r=e.split(",");for(let o=0;o!!n[o.toLowerCase()]:o=>!!n[o]}const Tl="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",Pl=jr(Tl);function Rs(e){return!!e||e===""}function Yn(e){if(J(e)){const t={};for(let n=0;n{if(n){const r=n.split(Ol);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function bn(e){let t="";if(pe(e))t=e;else if(J(e))for(let n=0;npe(e)?e:e==null?"":J(e)||Ee(e)&&(e.toString===ks||!ee(e.toString))?JSON.stringify(e,Ss,2):String(e),Ss=(e,t)=>t&&t.__v_isRef?Ss(e,t.value):Bt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,o])=>(n[`${r} =>`]=o,n),{})}:Ls(t)?{[`Set(${t.size})`]:[...t.values()]}:Ee(t)&&!J(t)&&!Ds(t)?String(t):t,he={},zt=[],Ke=()=>{},Ll=()=>!1,Il=/^on[^a-z]/,En=e=>Il.test(e),Vr=e=>e.startsWith("onUpdate:"),Te=Object.assign,Ur=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},kl=Object.prototype.hasOwnProperty,re=(e,t)=>kl.call(e,t),J=Array.isArray,Bt=e=>Jn(e)==="[object Map]",Ls=e=>Jn(e)==="[object Set]",ee=e=>typeof e=="function",pe=e=>typeof e=="string",qr=e=>typeof e=="symbol",Ee=e=>e!==null&&typeof e=="object",Is=e=>Ee(e)&&ee(e.then)&&ee(e.catch),ks=Object.prototype.toString,Jn=e=>ks.call(e),Dl=e=>Jn(e).slice(8,-1),Ds=e=>Jn(e)==="[object Object]",Kr=e=>pe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,sn=jr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Qn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Ml=/-(\w)/g,Je=Qn(e=>e.replace(Ml,(t,n)=>n?n.toUpperCase():"")),Nl=/\B([A-Z])/g,Lt=Qn(e=>e.replace(Nl,"-$1").toLowerCase()),Zn=Qn(e=>e.charAt(0).toUpperCase()+e.slice(1)),lr=Qn(e=>e?`on${Zn(e)}`:""),hn=(e,t)=>!Object.is(e,t),ar=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},Ms=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let xo;const Hl=()=>xo||(xo=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:typeof global!="undefined"?global:{});let Me;class Fl{constructor(t=!1){this.active=!0,this.effects=[],this.cleanups=[],!t&&Me&&(this.parent=Me,this.index=(Me.scopes||(Me.scopes=[])).push(this)-1)}run(t){if(this.active){const n=Me;try{return Me=this,t()}finally{Me=n}}}on(){Me=this}off(){Me=this.parent}stop(t){if(this.active){let n,r;for(n=0,r=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},Ns=e=>(e.w&mt)>0,Hs=e=>(e.n&mt)>0,jl=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let r=0;r{(c==="length"||c>=r)&&l.push(a)});else switch(n!==void 0&&l.push(i.get(n)),t){case"add":J(e)?Kr(n)&&l.push(i.get("length")):(l.push(i.get(Tt)),Bt(e)&&l.push(i.get(Tr)));break;case"delete":J(e)||(l.push(i.get(Tt)),Bt(e)&&l.push(i.get(Tr)));break;case"set":Bt(e)&&l.push(i.get(Tt));break}if(l.length===1)l[0]&&Pr(l[0]);else{const a=[];for(const c of l)c&&a.push(...c);Pr(Wr(a))}}function Pr(e,t){for(const n of J(e)?e:[...e])(n!==qe||n.allowRecurse)&&(n.scheduler?n.scheduler():n.run())}const Ul=jr("__proto__,__v_isRef,__isVue"),zs=new Set(Object.getOwnPropertyNames(Symbol).map(e=>Symbol[e]).filter(qr)),ql=Yr(),Kl=Yr(!1,!0),Wl=Yr(!0),Ro=Gl();function Gl(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=ie(this);for(let s=0,i=this.length;s{e[t]=function(...n){Wt();const r=ie(this)[t].apply(this,n);return Gt(),r}}),e}function Yr(e=!1,t=!1){return function(r,o,s){if(o==="__v_isReactive")return!e;if(o==="__v_isReadonly")return e;if(o==="__v_isShallow")return t;if(o==="__v_raw"&&s===(e?t?ua:qs:t?Us:Vs).get(r))return r;const i=J(r);if(!e&&i&&re(Ro,o))return Reflect.get(Ro,o,s);const l=Reflect.get(r,o,s);return(qr(o)?zs.has(o):Ul(o))||(e||Fe(r,"get",o),t)?l:Ce(l)?!i||!Kr(o)?l.value:l:Ee(l)?e?Zr(l):Yt(l):l}}const Yl=Bs(),Jl=Bs(!0);function Bs(e=!1){return function(n,r,o,s){let i=n[r];if(pn(i)&&Ce(i)&&!Ce(o))return!1;if(!e&&!pn(o)&&(Ks(o)||(o=ie(o),i=ie(i)),!J(n)&&Ce(i)&&!Ce(o)))return i.value=o,!0;const l=J(n)&&Kr(r)?Number(r)e,Xn=e=>Reflect.getPrototypeOf(e);function xn(e,t,n=!1,r=!1){e=e.__v_raw;const o=ie(e),s=ie(t);t!==s&&!n&&Fe(o,"get",t),!n&&Fe(o,"get",s);const{has:i}=Xn(o),l=r?Jr:n?eo:mn;if(i.call(o,t))return l(e.get(t));if(i.call(o,s))return l(e.get(s));e!==o&&e.get(t)}function On(e,t=!1){const n=this.__v_raw,r=ie(n),o=ie(e);return e!==o&&!t&&Fe(r,"has",e),!t&&Fe(r,"has",o),e===o?n.has(e):n.has(e)||n.has(o)}function Rn(e,t=!1){return e=e.__v_raw,!t&&Fe(ie(e),"iterate",Tt),Reflect.get(e,"size",e)}function So(e){e=ie(e);const t=ie(this);return Xn(t).has.call(t,e)||(t.add(e),nt(t,"add",e,e)),this}function Lo(e,t){t=ie(t);const n=ie(this),{has:r,get:o}=Xn(n);let s=r.call(n,e);s||(e=ie(e),s=r.call(n,e));const i=o.call(n,e);return n.set(e,t),s?hn(t,i)&&nt(n,"set",e,t):nt(n,"add",e,t),this}function Io(e){const t=ie(this),{has:n,get:r}=Xn(t);let o=n.call(t,e);o||(e=ie(e),o=n.call(t,e)),r&&r.call(t,e);const s=t.delete(e);return o&&nt(t,"delete",e,void 0),s}function ko(){const e=ie(this),t=e.size!==0,n=e.clear();return t&&nt(e,"clear",void 0,void 0),n}function Sn(e,t){return function(r,o){const s=this,i=s.__v_raw,l=ie(i),a=t?Jr:e?eo:mn;return!e&&Fe(l,"iterate",Tt),i.forEach((c,f)=>r.call(o,a(c),a(f),s))}}function Ln(e,t,n){return function(...r){const o=this.__v_raw,s=ie(o),i=Bt(s),l=e==="entries"||e===Symbol.iterator&&i,a=e==="keys"&&i,c=o[e](...r),f=n?Jr:t?eo:mn;return!t&&Fe(s,"iterate",a?Tr:Tt),{next(){const{value:p,done:d}=c.next();return d?{value:p,done:d}:{value:l?[f(p[0]),f(p[1])]:f(p),done:d}},[Symbol.iterator](){return this}}}}function ot(e){return function(...t){return e==="delete"?!1:this}}function na(){const e={get(s){return xn(this,s)},get size(){return Rn(this)},has:On,add:So,set:Lo,delete:Io,clear:ko,forEach:Sn(!1,!1)},t={get(s){return xn(this,s,!1,!0)},get size(){return Rn(this)},has:On,add:So,set:Lo,delete:Io,clear:ko,forEach:Sn(!1,!0)},n={get(s){return xn(this,s,!0)},get size(){return Rn(this,!0)},has(s){return On.call(this,s,!0)},add:ot("add"),set:ot("set"),delete:ot("delete"),clear:ot("clear"),forEach:Sn(!0,!1)},r={get(s){return xn(this,s,!0,!0)},get size(){return Rn(this,!0)},has(s){return On.call(this,s,!0)},add:ot("add"),set:ot("set"),delete:ot("delete"),clear:ot("clear"),forEach:Sn(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(s=>{e[s]=Ln(s,!1,!1),n[s]=Ln(s,!0,!1),t[s]=Ln(s,!1,!0),r[s]=Ln(s,!0,!0)}),[e,n,t,r]}const[ra,oa,sa,ia]=na();function Qr(e,t){const n=t?e?ia:sa:e?oa:ra;return(r,o,s)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?r:Reflect.get(re(n,o)&&o in r?n:r,o,s)}const la={get:Qr(!1,!1)},aa={get:Qr(!1,!0)},ca={get:Qr(!0,!1)},Vs=new WeakMap,Us=new WeakMap,qs=new WeakMap,ua=new WeakMap;function fa(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function da(e){return e.__v_skip||!Object.isExtensible(e)?0:fa(Dl(e))}function Yt(e){return pn(e)?e:Xr(e,!1,js,la,Vs)}function ha(e){return Xr(e,!1,ta,aa,Us)}function Zr(e){return Xr(e,!0,ea,ca,qs)}function Xr(e,t,n,r,o){if(!Ee(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const s=o.get(e);if(s)return s;const i=da(e);if(i===0)return e;const l=new Proxy(e,i===2?r:n);return o.set(e,l),l}function jt(e){return pn(e)?jt(e.__v_raw):!!(e&&e.__v_isReactive)}function pn(e){return!!(e&&e.__v_isReadonly)}function Ks(e){return!!(e&&e.__v_isShallow)}function Ws(e){return jt(e)||pn(e)}function ie(e){const t=e&&e.__v_raw;return t?ie(t):e}function Gs(e){return Hn(e,"__v_skip",!0),e}const mn=e=>Ee(e)?Yt(e):e,eo=e=>Ee(e)?Zr(e):e;function Ys(e){ht&&qe&&(e=ie(e),$s(e.dep||(e.dep=Wr())))}function Js(e,t){e=ie(e),e.dep&&Pr(e.dep)}function Ce(e){return!!(e&&e.__v_isRef===!0)}function xe(e){return Zs(e,!1)}function Qs(e){return Zs(e,!0)}function Zs(e,t){return Ce(e)?e:new pa(e,t)}class pa{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:ie(t),this._value=n?t:mn(t)}get value(){return Ys(this),this._value}set value(t){t=this.__v_isShallow?t:ie(t),hn(t,this._rawValue)&&(this._rawValue=t,this._value=this.__v_isShallow?t:mn(t),Js(this))}}function Pt(e){return Ce(e)?e.value:e}const ma={get:(e,t,n)=>Pt(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const o=e[t];return Ce(o)&&!Ce(n)?(o.value=n,!0):Reflect.set(e,t,n,r)}};function Xs(e){return jt(e)?e:new Proxy(e,ma)}function th(e){const t=J(e)?new Array(e.length):{};for(const n in e)t[n]=va(e,n);return t}class ga{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}}function va(e,t,n){const r=e[t];return Ce(r)?r:new ga(e,t,n)}class _a{constructor(t,n,r,o){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this._dirty=!0,this.effect=new Gr(t,()=>{this._dirty||(this._dirty=!0,Js(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!o,this.__v_isReadonly=r}get value(){const t=ie(this);return Ys(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function ya(e,t,n=!1){let r,o;const s=ee(e);return s?(r=e,o=Ke):(r=e.get,o=e.set),new _a(r,o,s||!o,n)}function pt(e,t,n,r){let o;try{o=r?e(...r):e()}catch(s){wn(s,t,n)}return o}function je(e,t,n,r){if(ee(e)){const s=pt(e,t,n,r);return s&&Is(s)&&s.catch(i=>{wn(i,t,n)}),s}const o=[];for(let s=0;s>>1;gn(Ne[r])Xe&&Ne.splice(t,1)}function ni(e,t,n,r){J(e)?n.push(...e):(!t||!t.includes(e,e.allowRecurse?r+1:r))&&n.push(e),ti()}function Ca(e){ni(e,on,ln,Ht)}function Aa(e){ni(e,ct,an,Ft)}function oo(e,t=null){if(ln.length){for(Or=t,on=[...new Set(ln)],ln.length=0,Ht=0;Htgn(n)-gn(r)),Ft=0;Fte.id==null?1/0:e.id;function ri(e){xr=!1,Fn=!0,oo(e),Ne.sort((n,r)=>gn(n)-gn(r));const t=Ke;try{for(Xe=0;Xe_.trim()):p&&(o=n.map(Ms))}let l,a=r[l=lr(t)]||r[l=lr(Je(t))];!a&&s&&(a=r[l=lr(Lt(t))]),a&&je(a,e,6,o);const c=r[l+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,je(c,e,6,o)}}function oi(e,t,n=!1){const r=t.emitsCache,o=r.get(e);if(o!==void 0)return o;const s=e.emits;let i={},l=!1;if(!ee(e)){const a=c=>{const f=oi(c,t,!0);f&&(l=!0,Te(i,f))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!s&&!l?(r.set(e,null),null):(J(s)?s.forEach(a=>i[a]=null):Te(i,s),r.set(e,i),i)}function er(e,t){return!e||!En(t)?!1:(t=t.slice(2).replace(/Once$/,""),re(e,t[0].toLowerCase()+t.slice(1))||re(e,Lt(t))||re(e,t))}let Pe=null,si=null;function zn(e){const t=Pe;return Pe=e,si=e&&e.type.__scopeId||null,t}function Pa(e,t=Pe,n){if(!t||e._n)return e;const r=(...o)=>{r._d&&Uo(-1);const s=zn(t),i=e(...o);return zn(s),r._d&&Uo(1),i};return r._n=!0,r._c=!0,r._d=!0,r}function cr(e){const{type:t,vnode:n,proxy:r,withProxy:o,props:s,propsOptions:[i],slots:l,attrs:a,emit:c,render:f,renderCache:p,data:d,setupState:_,ctx:b,inheritAttrs:D}=e;let g,v;const P=zn(e);try{if(n.shapeFlag&4){const N=o||r;g=Ue(f.call(N,N,p,s,_,d,b)),v=a}else{const N=t;g=Ue(N.length>1?N(s,{attrs:a,slots:l,emit:c}):N(s,null)),v=t.props?a:xa(a)}}catch(N){un.length=0,wn(N,e,1),g=ye(He)}let S=g;if(v&&D!==!1){const N=Object.keys(v),{shapeFlag:V}=S;N.length&&V&7&&(i&&N.some(Vr)&&(v=Oa(v,i)),S=St(S,v))}return n.dirs&&(S.dirs=S.dirs?S.dirs.concat(n.dirs):n.dirs),n.transition&&(S.transition=n.transition),g=S,zn(P),g}const xa=e=>{let t;for(const n in e)(n==="class"||n==="style"||En(n))&&((t||(t={}))[n]=e[n]);return t},Oa=(e,t)=>{const n={};for(const r in e)(!Vr(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Ra(e,t,n){const{props:r,children:o,component:s}=e,{props:i,children:l,patchFlag:a}=t,c=s.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&a>=0){if(a&1024)return!0;if(a&16)return r?Do(r,i,c):!!i;if(a&8){const f=t.dynamicProps;for(let p=0;pe.__isSuspense;function ii(e,t){t&&t.pendingBranch?J(e)?t.effects.push(...e):t.effects.push(e):Aa(e)}function xt(e,t){if(we){let n=we.provides;const r=we.parent&&we.parent.provides;r===n&&(n=we.provides=Object.create(r)),n[e]=t}}function Ae(e,t,n=!1){const r=we||Pe;if(r){const o=r.parent==null?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides;if(o&&e in o)return o[e];if(arguments.length>1)return n&&ee(t)?t.call(r.proxy):t}}const Mo={};function tt(e,t,n){return li(e,t,n)}function li(e,t,{immediate:n,deep:r,flush:o,onTrack:s,onTrigger:i}=he){const l=we;let a,c=!1,f=!1;if(Ce(e)?(a=()=>e.value,c=Ks(e)):jt(e)?(a=()=>e,r=!0):J(e)?(f=!0,c=e.some(jt),a=()=>e.map(v=>{if(Ce(v))return v.value;if(jt(v))return At(v);if(ee(v))return pt(v,l,2)})):ee(e)?t?a=()=>pt(e,l,2):a=()=>{if(!(l&&l.isUnmounted))return p&&p(),je(e,l,3,[d])}:a=Ke,t&&r){const v=a;a=()=>At(v())}let p,d=v=>{p=g.onStop=()=>{pt(v,l,4)}};if(Ut)return d=Ke,t?n&&je(t,l,3,[a(),f?[]:void 0,d]):a(),Ke;let _=f?[]:Mo;const b=()=>{if(!!g.active)if(t){const v=g.run();(r||c||(f?v.some((P,S)=>hn(P,_[S])):hn(v,_)))&&(p&&p(),je(t,l,3,[v,_===Mo?void 0:_,d]),_=v)}else g.run()};b.allowRecurse=!!t;let D;o==="sync"?D=b:o==="post"?D=()=>Le(b,l&&l.suspense):D=()=>{!l||l.isMounted?Ca(b):b()};const g=new Gr(a,D);return t?n?b():_=g.run():o==="post"?Le(g.run.bind(g),l&&l.suspense):g.run(),()=>{g.stop(),l&&l.scope&&Ur(l.scope.effects,g)}}function Ia(e,t,n){const r=this.proxy,o=pe(e)?e.includes(".")?ai(r,e):()=>r[e]:e.bind(r,r);let s;ee(t)?s=t:(s=t.handler,n=t);const i=we;Vt(this);const l=li(o,s.bind(r),n);return i?Vt(i):Rt(),l}function ai(e,t){const n=t.split(".");return()=>{let r=e;for(let o=0;o{At(n,t)});else if(Ds(e))for(const n in e)At(e[n],t);return e}function ka(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return gt(()=>{e.isMounted=!0}),so(()=>{e.isUnmounting=!0}),e}const ze=[Function,Array],Da={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ze,onEnter:ze,onAfterEnter:ze,onEnterCancelled:ze,onBeforeLeave:ze,onLeave:ze,onAfterLeave:ze,onLeaveCancelled:ze,onBeforeAppear:ze,onAppear:ze,onAfterAppear:ze,onAppearCancelled:ze},setup(e,{slots:t}){const n=Li(),r=ka();let o;return()=>{const s=t.default&&fi(t.default(),!0);if(!s||!s.length)return;let i=s[0];if(s.length>1){for(const D of s)if(D.type!==He){i=D;break}}const l=ie(e),{mode:a}=l;if(r.isLeaving)return ur(i);const c=No(i);if(!c)return ur(i);const f=Rr(c,l,r,n);Sr(c,f);const p=n.subTree,d=p&&No(p);let _=!1;const{getTransitionKey:b}=c.type;if(b){const D=b();o===void 0?o=D:D!==o&&(o=D,_=!0)}if(d&&d.type!==He&&(!wt(c,d)||_)){const D=Rr(d,l,r,n);if(Sr(d,D),a==="out-in")return r.isLeaving=!0,D.afterLeave=()=>{r.isLeaving=!1,n.update()},ur(i);a==="in-out"&&c.type!==He&&(D.delayLeave=(g,v,P)=>{const S=ui(r,d);S[String(d.key)]=d,g._leaveCb=()=>{v(),g._leaveCb=void 0,delete f.delayedLeave},f.delayedLeave=P})}return i}}},ci=Da;function ui(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Rr(e,t,n,r){const{appear:o,mode:s,persisted:i=!1,onBeforeEnter:l,onEnter:a,onAfterEnter:c,onEnterCancelled:f,onBeforeLeave:p,onLeave:d,onAfterLeave:_,onLeaveCancelled:b,onBeforeAppear:D,onAppear:g,onAfterAppear:v,onAppearCancelled:P}=t,S=String(e.key),N=ui(n,e),V=(C,w)=>{C&&je(C,r,9,w)},H={mode:s,persisted:i,beforeEnter(C){let w=l;if(!n.isMounted)if(o)w=D||l;else return;C._leaveCb&&C._leaveCb(!0);const W=N[S];W&&wt(e,W)&&W.el._leaveCb&&W.el._leaveCb(),V(w,[C])},enter(C){let w=a,W=c,j=f;if(!n.isMounted)if(o)w=g||a,W=v||c,j=P||f;else return;let Y=!1;const y=C._enterCb=k=>{Y||(Y=!0,k?V(j,[C]):V(W,[C]),H.delayedLeave&&H.delayedLeave(),C._enterCb=void 0)};w?(w(C,y),w.length<=1&&y()):y()},leave(C,w){const W=String(e.key);if(C._enterCb&&C._enterCb(!0),n.isUnmounting)return w();V(p,[C]);let j=!1;const Y=C._leaveCb=y=>{j||(j=!0,w(),y?V(b,[C]):V(_,[C]),C._leaveCb=void 0,N[W]===e&&delete N[W])};N[W]=e,d?(d(C,Y),d.length<=1&&Y()):Y()},clone(C){return Rr(C,t,n,r)}};return H}function ur(e){if(Cn(e))return e=St(e),e.children=null,e}function No(e){return Cn(e)?e.children?e.children[0]:void 0:e}function Sr(e,t){e.shapeFlag&6&&e.component?Sr(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function fi(e,t=!1,n){let r=[],o=0;for(let s=0;s1)for(let s=0;s!!e.type.__asyncLoader;function fe(e){ee(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:o=200,timeout:s,suspensible:i=!0,onError:l}=e;let a=null,c,f=0;const p=()=>(f++,a=null,d()),d=()=>{let _;return a||(_=a=t().catch(b=>{if(b=b instanceof Error?b:new Error(String(b)),l)return new Promise((D,g)=>{l(b,()=>D(p()),()=>g(b),f+1)});throw b}).then(b=>_!==a&&a?a:(b&&(b.__esModule||b[Symbol.toStringTag]==="Module")&&(b=b.default),c=b,b)))};return We({name:"AsyncComponentWrapper",__asyncLoader:d,get __asyncResolved(){return c},setup(){const _=we;if(c)return()=>fr(c,_);const b=P=>{a=null,wn(P,_,13,!r)};if(i&&_.suspense||Ut)return d().then(P=>()=>fr(P,_)).catch(P=>(b(P),()=>r?ye(r,{error:P}):null));const D=xe(!1),g=xe(),v=xe(!!o);return o&&setTimeout(()=>{v.value=!1},o),s!=null&&setTimeout(()=>{if(!D.value&&!g.value){const P=new Error(`Async component timed out after ${s}ms.`);b(P),g.value=P}},s),d().then(()=>{D.value=!0,_.parent&&Cn(_.parent.vnode)&&ro(_.parent.update)}).catch(P=>{b(P),g.value=P}),()=>{if(D.value&&c)return fr(c,_);if(g.value&&r)return ye(r,{error:g.value});if(n&&!v.value)return ye(n)}}})}function fr(e,{vnode:{ref:t,props:n,children:r}}){const o=ye(e,n,r);return o.ref=t,o}const Cn=e=>e.type.__isKeepAlive;function Ma(e,t){di(e,"a",t)}function Na(e,t){di(e,"da",t)}function di(e,t,n=we){const r=e.__wdc||(e.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(tr(t,r,n),n){let o=n.parent;for(;o&&o.parent;)Cn(o.parent.vnode)&&Ha(r,t,n,o),o=o.parent}}function Ha(e,t,n,r){const o=tr(t,e,r,!0);io(()=>{Ur(r[t],o)},n)}function tr(e,t,n=we,r=!1){if(n){const o=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...i)=>{if(n.isUnmounted)return;Wt(),Vt(n);const l=je(t,n,e,i);return Rt(),Gt(),l});return r?o.unshift(s):o.push(s),s}}const rt=e=>(t,n=we)=>(!Ut||e==="sp")&&tr(e,t,n),hi=rt("bm"),gt=rt("m"),Fa=rt("bu"),$a=rt("u"),so=rt("bum"),io=rt("um"),za=rt("sp"),Ba=rt("rtg"),ja=rt("rtc");function Va(e,t=we){tr("ec",e,t)}let Lr=!0;function Ua(e){const t=mi(e),n=e.proxy,r=e.ctx;Lr=!1,t.beforeCreate&&Ho(t.beforeCreate,e,"bc");const{data:o,computed:s,methods:i,watch:l,provide:a,inject:c,created:f,beforeMount:p,mounted:d,beforeUpdate:_,updated:b,activated:D,deactivated:g,beforeDestroy:v,beforeUnmount:P,destroyed:S,unmounted:N,render:V,renderTracked:H,renderTriggered:C,errorCaptured:w,serverPrefetch:W,expose:j,inheritAttrs:Y,components:y,directives:k,filters:G}=t;if(c&&qa(c,r,null,e.appContext.config.unwrapInjectedRef),i)for(const X in i){const ne=i[X];ee(ne)&&(r[X]=ne.bind(n))}if(o){const X=o.call(n,n);Ee(X)&&(e.data=Yt(X))}if(Lr=!0,s)for(const X in s){const ne=s[X],be=ee(ne)?ne.bind(n,n):ee(ne.get)?ne.get.bind(n,n):Ke,Oe=!ee(ne)&&ee(ne.set)?ne.set.bind(n):Ke,ke=_e({get:be,set:Oe});Object.defineProperty(r,X,{enumerable:!0,configurable:!0,get:()=>ke.value,set:$e=>ke.value=$e})}if(l)for(const X in l)pi(l[X],r,n,X);if(a){const X=ee(a)?a.call(n):a;Reflect.ownKeys(X).forEach(ne=>{xt(ne,X[ne])})}f&&Ho(f,e,"c");function B(X,ne){J(ne)?ne.forEach(be=>X(be.bind(n))):ne&&X(ne.bind(n))}if(B(hi,p),B(gt,d),B(Fa,_),B($a,b),B(Ma,D),B(Na,g),B(Va,w),B(ja,H),B(Ba,C),B(so,P),B(io,N),B(za,W),J(j))if(j.length){const X=e.exposed||(e.exposed={});j.forEach(ne=>{Object.defineProperty(X,ne,{get:()=>n[ne],set:be=>n[ne]=be})})}else e.exposed||(e.exposed={});V&&e.render===Ke&&(e.render=V),Y!=null&&(e.inheritAttrs=Y),y&&(e.components=y),k&&(e.directives=k)}function qa(e,t,n=Ke,r=!1){J(e)&&(e=Ir(e));for(const o in e){const s=e[o];let i;Ee(s)?"default"in s?i=Ae(s.from||o,s.default,!0):i=Ae(s.from||o):i=Ae(s),Ce(i)&&r?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>i.value,set:l=>i.value=l}):t[o]=i}}function Ho(e,t,n){je(J(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function pi(e,t,n,r){const o=r.includes(".")?ai(n,r):()=>n[r];if(pe(e)){const s=t[e];ee(s)&&tt(o,s)}else if(ee(e))tt(o,e.bind(n));else if(Ee(e))if(J(e))e.forEach(s=>pi(s,t,n,r));else{const s=ee(e.handler)?e.handler.bind(n):t[e.handler];ee(s)&&tt(o,s,e)}}function mi(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:o,optionsCache:s,config:{optionMergeStrategies:i}}=e.appContext,l=s.get(t);let a;return l?a=l:!o.length&&!n&&!r?a=t:(a={},o.length&&o.forEach(c=>Bn(a,c,i,!0)),Bn(a,t,i)),s.set(t,a),a}function Bn(e,t,n,r=!1){const{mixins:o,extends:s}=t;s&&Bn(e,s,n,!0),o&&o.forEach(i=>Bn(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Ka[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Ka={data:Fo,props:yt,emits:yt,methods:yt,computed:yt,beforeCreate:Re,created:Re,beforeMount:Re,mounted:Re,beforeUpdate:Re,updated:Re,beforeDestroy:Re,beforeUnmount:Re,destroyed:Re,unmounted:Re,activated:Re,deactivated:Re,errorCaptured:Re,serverPrefetch:Re,components:yt,directives:yt,watch:Ga,provide:Fo,inject:Wa};function Fo(e,t){return t?e?function(){return Te(ee(e)?e.call(this,this):e,ee(t)?t.call(this,this):t)}:t:e}function Wa(e,t){return yt(Ir(e),Ir(t))}function Ir(e){if(J(e)){const t={};for(let n=0;n0)&&!(i&16)){if(i&8){const f=e.vnode.dynamicProps;for(let p=0;p{a=!0;const[d,_]=vi(p,t,!0);Te(i,d),_&&l.push(..._)};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!s&&!a)return r.set(e,zt),zt;if(J(s))for(let f=0;f-1,_[1]=D<0||b-1||re(_,"default"))&&l.push(p)}}}const c=[i,l];return r.set(e,c),c}function $o(e){return e[0]!=="$"}function zo(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:e===null?"null":""}function Bo(e,t){return zo(e)===zo(t)}function jo(e,t){return J(t)?t.findIndex(n=>Bo(n,e)):ee(t)&&Bo(t,e)?0:-1}const _i=e=>e[0]==="_"||e==="$stable",lo=e=>J(e)?e.map(Ue):[Ue(e)],Qa=(e,t,n)=>{const r=Pa((...o)=>lo(t(...o)),n);return r._c=!1,r},yi=(e,t,n)=>{const r=e._ctx;for(const o in e){if(_i(o))continue;const s=e[o];if(ee(s))t[o]=Qa(o,s,r);else if(s!=null){const i=lo(s);t[o]=()=>i}}},bi=(e,t)=>{const n=lo(t);e.slots.default=()=>n},Za=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=ie(t),Hn(t,"_",n)):yi(t,e.slots={})}else e.slots={},t&&bi(e,t);Hn(e.slots,rr,1)},Xa=(e,t,n)=>{const{vnode:r,slots:o}=e;let s=!0,i=he;if(r.shapeFlag&32){const l=t._;l?n&&l===1?s=!1:(Te(o,t),!n&&l===1&&delete o._):(s=!t.$stable,yi(t,o)),i=t}else t&&(bi(e,t),i={default:1});if(s)for(const l in o)!_i(l)&&!(l in i)&&delete o[l]};function nh(e,t){const n=Pe;if(n===null)return e;const r=or(n)||n.proxy,o=e.dirs||(e.dirs=[]);for(let s=0;sjn(d,t&&(J(t)?t[_]:t),n,r,o));return}if(vn(r)&&!o)return;const s=r.shapeFlag&4?or(r.component)||r.component.proxy:r.el,i=o?null:s,{i:l,r:a}=e,c=t&&t.r,f=l.refs===he?l.refs={}:l.refs,p=l.setupState;if(c!=null&&c!==a&&(pe(c)?(f[c]=null,re(p,c)&&(p[c]=null)):Ce(c)&&(c.value=null)),ee(a))pt(a,l,12,[i,f]);else{const d=pe(a),_=Ce(a);if(d||_){const b=()=>{if(e.f){const D=d?f[a]:a.value;o?J(D)&&Ur(D,s):J(D)?D.includes(s)||D.push(s):d?(f[a]=[s],re(p,a)&&(p[a]=f[a])):(a.value=[s],e.k&&(f[e.k]=a.value))}else d?(f[a]=i,re(p,a)&&(p[a]=i)):Ce(a)&&(a.value=i,e.k&&(f[e.k]=i))};i?(b.id=-1,Le(b,n)):b()}}}let st=!1;const In=e=>/svg/.test(e.namespaceURI)&&e.tagName!=="foreignObject",dr=e=>e.nodeType===8;function nc(e){const{mt:t,p:n,o:{patchProp:r,nextSibling:o,parentNode:s,remove:i,insert:l,createComment:a}}=e,c=(g,v)=>{if(!v.hasChildNodes()){n(null,g,v),$n();return}st=!1,f(v.firstChild,g,null,null,null),$n(),st&&console.error("Hydration completed but contains mismatches.")},f=(g,v,P,S,N,V=!1)=>{const H=dr(g)&&g.data==="[",C=()=>b(g,v,P,S,N,H),{type:w,ref:W,shapeFlag:j}=v,Y=g.nodeType;v.el=g;let y=null;switch(w){case _n:Y!==3?y=C():(g.data!==v.children&&(st=!0,g.data=v.children),y=o(g));break;case He:Y!==8||H?y=C():y=o(g);break;case cn:if(Y!==1)y=C();else{y=g;const k=!v.children.length;for(let G=0;G{V=V||!!v.dynamicChildren;const{type:H,props:C,patchFlag:w,shapeFlag:W,dirs:j}=v,Y=H==="input"&&j||H==="option";if(Y||w!==-1){if(j&&Ye(v,null,P,"created"),C)if(Y||!V||w&48)for(const k in C)(Y&&k.endsWith("value")||En(k)&&!sn(k))&&r(g,k,null,C[k],!1,void 0,P);else C.onClick&&r(g,"onClick",null,C.onClick,!1,void 0,P);let y;if((y=C&&C.onVnodeBeforeMount)&&Be(y,P,v),j&&Ye(v,null,P,"beforeMount"),((y=C&&C.onVnodeMounted)||j)&&ii(()=>{y&&Be(y,P,v),j&&Ye(v,null,P,"mounted")},S),W&16&&!(C&&(C.innerHTML||C.textContent))){let k=d(g.firstChild,v,g,P,S,N,V);for(;k;){st=!0;const G=k;k=k.nextSibling,i(G)}}else W&8&&g.textContent!==v.children&&(st=!0,g.textContent=v.children)}return g.nextSibling},d=(g,v,P,S,N,V,H)=>{H=H||!!v.dynamicChildren;const C=v.children,w=C.length;for(let W=0;W{const{slotScopeIds:H}=v;H&&(N=N?N.concat(H):H);const C=s(g),w=d(o(g),v,C,P,S,N,V);return w&&dr(w)&&w.data==="]"?o(v.anchor=w):(st=!0,l(v.anchor=a("]"),C,w),w)},b=(g,v,P,S,N,V)=>{if(st=!0,v.el=null,V){const w=D(g);for(;;){const W=o(g);if(W&&W!==w)i(W);else break}}const H=o(g),C=s(g);return i(g),n(null,v,C,H,P,S,In(C),N),H},D=g=>{let v=0;for(;g;)if(g=o(g),g&&dr(g)&&(g.data==="["&&v++,g.data==="]")){if(v===0)return o(g);v--}return g};return[c,f]}const Le=ii;function rc(e){return oc(e,nc)}function oc(e,t){const n=Hl();n.__VUE__=!0;const{insert:r,remove:o,patchProp:s,createElement:i,createText:l,createComment:a,setText:c,setElementText:f,parentNode:p,nextSibling:d,setScopeId:_=Ke,cloneNode:b,insertStaticContent:D}=e,g=(u,h,m,T=null,A=null,O=null,M=!1,R=null,I=!!h.dynamicChildren)=>{if(u===h)return;u&&!wt(u,h)&&(T=$(u),Se(u,A,O,!0),u=null),h.patchFlag===-2&&(I=!1,h.dynamicChildren=null);const{type:x,ref:U,shapeFlag:z}=h;switch(x){case _n:v(u,h,m,T);break;case He:P(u,h,m,T);break;case cn:u==null&&S(h,m,T,M);break;case Ie:k(u,h,m,T,A,O,M,R,I);break;default:z&1?H(u,h,m,T,A,O,M,R,I):z&6?G(u,h,m,T,A,O,M,R,I):(z&64||z&128)&&x.process(u,h,m,T,A,O,M,R,I,ce)}U!=null&&A&&jn(U,u&&u.ref,O,h||u,!h)},v=(u,h,m,T)=>{if(u==null)r(h.el=l(h.children),m,T);else{const A=h.el=u.el;h.children!==u.children&&c(A,h.children)}},P=(u,h,m,T)=>{u==null?r(h.el=a(h.children||""),m,T):h.el=u.el},S=(u,h,m,T)=>{[u.el,u.anchor]=D(u.children,h,m,T,u.el,u.anchor)},N=({el:u,anchor:h},m,T)=>{let A;for(;u&&u!==h;)A=d(u),r(u,m,T),u=A;r(h,m,T)},V=({el:u,anchor:h})=>{let m;for(;u&&u!==h;)m=d(u),o(u),u=m;o(h)},H=(u,h,m,T,A,O,M,R,I)=>{M=M||h.type==="svg",u==null?C(h,m,T,A,O,M,R,I):j(u,h,A,O,M,R,I)},C=(u,h,m,T,A,O,M,R)=>{let I,x;const{type:U,props:z,shapeFlag:q,transition:Q,patchFlag:oe,dirs:ge}=u;if(u.el&&b!==void 0&&oe===-1)I=u.el=b(u.el);else{if(I=u.el=i(u.type,O,z&&z.is,z),q&8?f(I,u.children):q&16&&W(u.children,I,null,T,A,O&&U!=="foreignObject",M,R),ge&&Ye(u,null,T,"created"),z){for(const me in z)me!=="value"&&!sn(me)&&s(I,me,null,z[me],O,u.children,T,A,L);"value"in z&&s(I,"value",null,z.value),(x=z.onVnodeBeforeMount)&&Be(x,T,u)}w(I,u,u.scopeId,M,T)}ge&&Ye(u,null,T,"beforeMount");const ue=(!A||A&&!A.pendingBranch)&&Q&&!Q.persisted;ue&&Q.beforeEnter(I),r(I,h,m),((x=z&&z.onVnodeMounted)||ue||ge)&&Le(()=>{x&&Be(x,T,u),ue&&Q.enter(I),ge&&Ye(u,null,T,"mounted")},A)},w=(u,h,m,T,A)=>{if(m&&_(u,m),T)for(let O=0;O{for(let x=I;x{const R=h.el=u.el;let{patchFlag:I,dynamicChildren:x,dirs:U}=h;I|=u.patchFlag&16;const z=u.props||he,q=h.props||he;let Q;m&&vt(m,!1),(Q=q.onVnodeBeforeUpdate)&&Be(Q,m,h,u),U&&Ye(h,u,m,"beforeUpdate"),m&&vt(m,!0);const oe=A&&h.type!=="foreignObject";if(x?Y(u.dynamicChildren,x,R,m,T,oe,O):M||be(u,h,R,null,m,T,oe,O,!1),I>0){if(I&16)y(R,h,z,q,m,T,A);else if(I&2&&z.class!==q.class&&s(R,"class",null,q.class,A),I&4&&s(R,"style",z.style,q.style,A),I&8){const ge=h.dynamicProps;for(let ue=0;ue{Q&&Be(Q,m,h,u),U&&Ye(h,u,m,"updated")},T)},Y=(u,h,m,T,A,O,M)=>{for(let R=0;R{if(m!==T){for(const R in T){if(sn(R))continue;const I=T[R],x=m[R];I!==x&&R!=="value"&&s(u,R,x,I,M,h.children,A,O,L)}if(m!==he)for(const R in m)!sn(R)&&!(R in T)&&s(u,R,m[R],null,M,h.children,A,O,L);"value"in T&&s(u,"value",m.value,T.value)}},k=(u,h,m,T,A,O,M,R,I)=>{const x=h.el=u?u.el:l(""),U=h.anchor=u?u.anchor:l("");let{patchFlag:z,dynamicChildren:q,slotScopeIds:Q}=h;Q&&(R=R?R.concat(Q):Q),u==null?(r(x,m,T),r(U,m,T),W(h.children,m,U,A,O,M,R,I)):z>0&&z&64&&q&&u.dynamicChildren?(Y(u.dynamicChildren,q,m,A,O,M,R),(h.key!=null||A&&h===A.subTree)&&wi(u,h,!0)):be(u,h,m,U,A,O,M,R,I)},G=(u,h,m,T,A,O,M,R,I)=>{h.slotScopeIds=R,u==null?h.shapeFlag&512?A.ctx.activate(h,m,T,M,I):le(h,m,T,A,O,M,I):B(u,h,I)},le=(u,h,m,T,A,O,M)=>{const R=u.component=vc(u,T,A);if(Cn(u)&&(R.ctx.renderer=ce),_c(R),R.asyncDep){if(A&&A.registerDep(R,X),!u.el){const I=R.subTree=ye(He);P(null,I,h,m)}return}X(R,u,h,m,A,O,M)},B=(u,h,m)=>{const T=h.component=u.component;if(Ra(u,h,m))if(T.asyncDep&&!T.asyncResolved){ne(T,h,m);return}else T.next=h,wa(T.update),T.update();else h.component=u.component,h.el=u.el,T.vnode=h},X=(u,h,m,T,A,O,M)=>{const R=()=>{if(u.isMounted){let{next:U,bu:z,u:q,parent:Q,vnode:oe}=u,ge=U,ue;vt(u,!1),U?(U.el=oe.el,ne(u,U,M)):U=oe,z&&ar(z),(ue=U.props&&U.props.onVnodeBeforeUpdate)&&Be(ue,Q,U,oe),vt(u,!0);const me=cr(u),Ve=u.subTree;u.subTree=me,g(Ve,me,p(Ve.el),$(Ve),u,A,O),U.el=me.el,ge===null&&Sa(u,me.el),q&&Le(q,A),(ue=U.props&&U.props.onVnodeUpdated)&&Le(()=>Be(ue,Q,U,oe),A)}else{let U;const{el:z,props:q}=h,{bm:Q,m:oe,parent:ge}=u,ue=vn(h);if(vt(u,!1),Q&&ar(Q),!ue&&(U=q&&q.onVnodeBeforeMount)&&Be(U,ge,h),vt(u,!0),z&&Z){const me=()=>{u.subTree=cr(u),Z(z,u.subTree,u,A,null)};ue?h.type.__asyncLoader().then(()=>!u.isUnmounted&&me()):me()}else{const me=u.subTree=cr(u);g(null,me,m,T,u,A,O),h.el=me.el}if(oe&&Le(oe,A),!ue&&(U=q&&q.onVnodeMounted)){const me=h;Le(()=>Be(U,ge,me),A)}h.shapeFlag&256&&u.a&&Le(u.a,A),u.isMounted=!0,h=m=T=null}},I=u.effect=new Gr(R,()=>ro(u.update),u.scope),x=u.update=I.run.bind(I);x.id=u.uid,vt(u,!0),x()},ne=(u,h,m)=>{h.component=u;const T=u.vnode.props;u.vnode=h,u.next=null,Ja(u,h.props,T,m),Xa(u,h.children,m),Wt(),oo(void 0,u.update),Gt()},be=(u,h,m,T,A,O,M,R,I=!1)=>{const x=u&&u.children,U=u?u.shapeFlag:0,z=h.children,{patchFlag:q,shapeFlag:Q}=h;if(q>0){if(q&128){ke(x,z,m,T,A,O,M,R,I);return}else if(q&256){Oe(x,z,m,T,A,O,M,R,I);return}}Q&8?(U&16&&L(x,A,O),z!==x&&f(m,z)):U&16?Q&16?ke(x,z,m,T,A,O,M,R,I):L(x,A,O,!0):(U&8&&f(m,""),Q&16&&W(z,m,T,A,O,M,R,I))},Oe=(u,h,m,T,A,O,M,R,I)=>{u=u||zt,h=h||zt;const x=u.length,U=h.length,z=Math.min(x,U);let q;for(q=0;qU?L(u,A,O,!0,!1,z):W(h,m,T,A,O,M,R,I,z)},ke=(u,h,m,T,A,O,M,R,I)=>{let x=0;const U=h.length;let z=u.length-1,q=U-1;for(;x<=z&&x<=q;){const Q=u[x],oe=h[x]=I?ut(h[x]):Ue(h[x]);if(wt(Q,oe))g(Q,oe,m,null,A,O,M,R,I);else break;x++}for(;x<=z&&x<=q;){const Q=u[z],oe=h[q]=I?ut(h[q]):Ue(h[q]);if(wt(Q,oe))g(Q,oe,m,null,A,O,M,R,I);else break;z--,q--}if(x>z){if(x<=q){const Q=q+1,oe=Qq)for(;x<=z;)Se(u[x],A,O,!0),x++;else{const Q=x,oe=x,ge=new Map;for(x=oe;x<=q;x++){const De=h[x]=I?ut(h[x]):Ue(h[x]);De.key!=null&&ge.set(De.key,x)}let ue,me=0;const Ve=q-oe+1;let kt=!1,Eo=0;const Zt=new Array(Ve);for(x=0;x=Ve){Se(De,A,O,!0);continue}let Ge;if(De.key!=null)Ge=ge.get(De.key);else for(ue=oe;ue<=q;ue++)if(Zt[ue-oe]===0&&wt(De,h[ue])){Ge=ue;break}Ge===void 0?Se(De,A,O,!0):(Zt[Ge-oe]=x+1,Ge>=Eo?Eo=Ge:kt=!0,g(De,h[Ge],m,null,A,O,M,R,I),me++)}const wo=kt?sc(Zt):zt;for(ue=wo.length-1,x=Ve-1;x>=0;x--){const De=oe+x,Ge=h[De],Co=De+1{const{el:O,type:M,transition:R,children:I,shapeFlag:x}=u;if(x&6){$e(u.component.subTree,h,m,T);return}if(x&128){u.suspense.move(h,m,T);return}if(x&64){M.move(u,h,m,ce);return}if(M===Ie){r(O,h,m);for(let z=0;zR.enter(O),A);else{const{leave:z,delayLeave:q,afterLeave:Q}=R,oe=()=>r(O,h,m),ge=()=>{z(O,()=>{oe(),Q&&Q()})};q?q(O,oe,ge):ge()}else r(O,h,m)},Se=(u,h,m,T=!1,A=!1)=>{const{type:O,props:M,ref:R,children:I,dynamicChildren:x,shapeFlag:U,patchFlag:z,dirs:q}=u;if(R!=null&&jn(R,null,m,u,!0),U&256){h.ctx.deactivate(u);return}const Q=U&1&&q,oe=!vn(u);let ge;if(oe&&(ge=M&&M.onVnodeBeforeUnmount)&&Be(ge,h,u),U&6)F(u.component,m,T);else{if(U&128){u.suspense.unmount(m,T);return}Q&&Ye(u,null,h,"beforeUnmount"),U&64?u.type.remove(u,h,m,A,ce,T):x&&(O!==Ie||z>0&&z&64)?L(x,h,m,!1,!0):(O===Ie&&z&384||!A&&U&16)&&L(I,h,m),T&&Qt(u)}(oe&&(ge=M&&M.onVnodeUnmounted)||Q)&&Le(()=>{ge&&Be(ge,h,u),Q&&Ye(u,null,h,"unmounted")},m)},Qt=u=>{const{type:h,el:m,anchor:T,transition:A}=u;if(h===Ie){E(m,T);return}if(h===cn){V(u);return}const O=()=>{o(m),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(u.shapeFlag&1&&A&&!A.persisted){const{leave:M,delayLeave:R}=A,I=()=>M(m,O);R?R(u.el,O,I):I()}else O()},E=(u,h)=>{let m;for(;u!==h;)m=d(u),o(u),u=m;o(h)},F=(u,h,m)=>{const{bum:T,scope:A,update:O,subTree:M,um:R}=u;T&&ar(T),A.stop(),O&&(O.active=!1,Se(M,u,h,m)),R&&Le(R,h),Le(()=>{u.isUnmounted=!0},h),h&&h.pendingBranch&&!h.isUnmounted&&u.asyncDep&&!u.asyncResolved&&u.suspenseId===h.pendingId&&(h.deps--,h.deps===0&&h.resolve())},L=(u,h,m,T=!1,A=!1,O=0)=>{for(let M=O;Mu.shapeFlag&6?$(u.component.subTree):u.shapeFlag&128?u.suspense.next():d(u.anchor||u.el),ae=(u,h,m)=>{u==null?h._vnode&&Se(h._vnode,null,null,!0):g(h._vnode||null,u,h,null,null,null,m),$n(),h._vnode=u},ce={p:g,um:Se,m:$e,r:Qt,mt:le,mc:W,pc:be,pbc:Y,n:$,o:e};let te,Z;return t&&([te,Z]=t(ce)),{render:ae,hydrate:te,createApp:tc(ae,te)}}function vt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function wi(e,t,n=!1){const r=e.children,o=t.children;if(J(r)&&J(o))for(let s=0;s>1,e[n[l]]0&&(t[r]=n[s-1]),n[s]=r)}}for(s=n.length,i=n[s-1];s-- >0;)n[s]=i,i=t[i];return n}const ic=e=>e.__isTeleport,Ci="components";function lc(e,t){return cc(Ci,e,!0,t)||e}const ac=Symbol();function cc(e,t,n=!0,r=!1){const o=Pe||we;if(o){const s=o.type;if(e===Ci){const l=wc(s);if(l&&(l===t||l===Je(t)||l===Zn(Je(t))))return s}const i=Vo(o[e]||s[e],t)||Vo(o.appContext[e],t);return!i&&r?s:i}}function Vo(e,t){return e&&(e[t]||e[Je(t)]||e[Zn(Je(t))])}const Ie=Symbol(void 0),_n=Symbol(void 0),He=Symbol(void 0),cn=Symbol(void 0),un=[];let Ot=null;function nr(e=!1){un.push(Ot=e?null:[])}function uc(){un.pop(),Ot=un[un.length-1]||null}let Vn=1;function Uo(e){Vn+=e}function Ai(e){return e.dynamicChildren=Vn>0?Ot||zt:null,uc(),Vn>0&&Ot&&Ot.push(e),e}function Ti(e,t,n,r,o,s){return Ai(Oi(e,t,n,r,o,s,!0))}function Pi(e,t,n,r,o){return Ai(ye(e,t,n,r,o,!0))}function Un(e){return e?e.__v_isVNode===!0:!1}function wt(e,t){return e.type===t.type&&e.key===t.key}const rr="__vInternal",xi=({key:e})=>e!=null?e:null,Mn=({ref:e,ref_key:t,ref_for:n})=>e!=null?pe(e)||Ce(e)||ee(e)?{i:Pe,r:e,k:t,f:!!n}:e:null;function Oi(e,t=null,n=null,r=0,o=null,s=e===Ie?0:1,i=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&xi(t),ref:t&&Mn(t),scopeId:si,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:r,dynamicProps:o,dynamicChildren:null,appContext:null};return l?(co(a,n),s&128&&e.normalize(a)):n&&(a.shapeFlag|=pe(n)?8:16),Vn>0&&!i&&Ot&&(a.patchFlag>0||s&6)&&a.patchFlag!==32&&Ot.push(a),a}const ye=fc;function fc(e,t=null,n=null,r=0,o=null,s=!1){if((!e||e===ac)&&(e=He),Un(e)){const l=St(e,t,!0);return n&&co(l,n),l}if(Cc(e)&&(e=e.__vccOpts),t){t=dc(t);let{class:l,style:a}=t;l&&!pe(l)&&(t.class=bn(l)),Ee(a)&&(Ws(a)&&!J(a)&&(a=Te({},a)),t.style=Yn(a))}const i=pe(e)?1:La(e)?128:ic(e)?64:Ee(e)?4:ee(e)?2:0;return Oi(e,t,n,r,o,i,s,!0)}function dc(e){return e?Ws(e)||rr in e?Te({},e):e:null}function St(e,t,n=!1){const{props:r,ref:o,patchFlag:s,children:i}=e,l=t?hc(r||{},t):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&xi(l),ref:t&&t.ref?n&&o?J(o)?o.concat(Mn(t)):[o,Mn(t)]:Mn(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ie?s===-1?16:s|16:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&St(e.ssContent),ssFallback:e.ssFallback&&St(e.ssFallback),el:e.el,anchor:e.anchor}}function ao(e=" ",t=0){return ye(_n,null,e,t)}function rh(e,t){const n=ye(cn,null,e);return n.staticCount=t,n}function oh(e="",t=!1){return t?(nr(),Pi(He,null,e)):ye(He,null,e)}function Ue(e){return e==null||typeof e=="boolean"?ye(He):J(e)?ye(Ie,null,e.slice()):typeof e=="object"?ut(e):ye(_n,null,String(e))}function ut(e){return e.el===null||e.memo?e:St(e)}function co(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(J(t))n=16;else if(typeof t=="object")if(r&65){const o=t.default;o&&(o._c&&(o._d=!1),co(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!(rr in t)?t._ctx=Pe:o===3&&Pe&&(Pe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else ee(t)?(t={default:t,_ctx:Pe},n=32):(t=String(t),r&64?(n=16,t=[ao(t)]):n=8);e.children=t,e.shapeFlag|=n}function hc(...e){const t={};for(let n=0;nt(i,l,void 0,s&&s[l]));else{const i=Object.keys(e);o=new Array(i.length);for(let l=0,a=i.length;lUn(t)?!(t.type===He||t.type===Ie&&!Si(t.children)):!0)?e:null}const Dr=e=>e?Ii(e)?or(e)||e.proxy:Dr(e.parent):null,qn=Te(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Dr(e.parent),$root:e=>Dr(e.root),$emit:e=>e.emit,$options:e=>mi(e),$forceUpdate:e=>()=>ro(e.update),$nextTick:e=>no.bind(e.proxy),$watch:e=>Ia.bind(e)}),pc={get({_:e},t){const{ctx:n,setupState:r,data:o,props:s,accessCache:i,type:l,appContext:a}=e;let c;if(t[0]!=="$"){const _=i[t];if(_!==void 0)switch(_){case 1:return r[t];case 2:return o[t];case 4:return n[t];case 3:return s[t]}else{if(r!==he&&re(r,t))return i[t]=1,r[t];if(o!==he&&re(o,t))return i[t]=2,o[t];if((c=e.propsOptions[0])&&re(c,t))return i[t]=3,s[t];if(n!==he&&re(n,t))return i[t]=4,n[t];Lr&&(i[t]=0)}}const f=qn[t];let p,d;if(f)return t==="$attrs"&&Fe(e,"get",t),f(e);if((p=l.__cssModules)&&(p=p[t]))return p;if(n!==he&&re(n,t))return i[t]=4,n[t];if(d=a.config.globalProperties,re(d,t))return d[t]},set({_:e},t,n){const{data:r,setupState:o,ctx:s}=e;return o!==he&&re(o,t)?(o[t]=n,!0):r!==he&&re(r,t)?(r[t]=n,!0):re(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:o,propsOptions:s}},i){let l;return!!n[i]||e!==he&&re(e,i)||t!==he&&re(t,i)||(l=s[0])&&re(l,i)||re(r,i)||re(qn,i)||re(o.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:re(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},mc=Ei();let gc=0;function vc(e,t,n){const r=e.type,o=(t?t.appContext:e.appContext)||mc,s={uid:gc++,vnode:e,type:r,parent:t,appContext:o,root:null,next:null,subTree:null,effect:null,update:null,scope:new Fl(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(o.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:vi(r,o),emitsOptions:oi(r,o),emit:null,emitted:null,propsDefaults:he,inheritAttrs:r.inheritAttrs,ctx:he,data:he,props:he,attrs:he,slots:he,refs:he,setupState:he,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return s.ctx={_:s},s.root=t?t.root:s,s.emit=Ta.bind(null,s),e.ce&&e.ce(s),s}let we=null;const Li=()=>we||Pe,Vt=e=>{we=e,e.scope.on()},Rt=()=>{we&&we.scope.off(),we=null};function Ii(e){return e.vnode.shapeFlag&4}let Ut=!1;function _c(e,t=!1){Ut=t;const{props:n,children:r}=e.vnode,o=Ii(e);Ya(e,n,o,t),Za(e,r);const s=o?yc(e,t):void 0;return Ut=!1,s}function yc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Gs(new Proxy(e.ctx,pc));const{setup:r}=n;if(r){const o=e.setupContext=r.length>1?Ec(e):null;Vt(e),Wt();const s=pt(r,e,0,[e.props,o]);if(Gt(),Rt(),Is(s)){if(s.then(Rt,Rt),t)return s.then(i=>{qo(e,i,t)}).catch(i=>{wn(i,e,0)});e.asyncDep=s}else qo(e,s,t)}else ki(e,t)}function qo(e,t,n){ee(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ee(t)&&(e.setupState=Xs(t)),ki(e,n)}let Ko;function ki(e,t,n){const r=e.type;if(!e.render){if(!t&&Ko&&!r.render){const o=r.template;if(o){const{isCustomElement:s,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:a}=r,c=Te(Te({isCustomElement:s,delimiters:l},i),a);r.render=Ko(o,c)}}e.render=r.render||Ke}Vt(e),Wt(),Ua(e),Gt(),Rt()}function bc(e){return new Proxy(e.attrs,{get(t,n){return Fe(e,"get","$attrs"),t[n]}})}function Ec(e){const t=r=>{e.exposed=r||{}};let n;return{get attrs(){return n||(n=bc(e))},slots:e.slots,emit:e.emit,expose:t}}function or(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Xs(Gs(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in qn)return qn[n](e)}}))}function wc(e){return ee(e)&&e.displayName||e.name}function Cc(e){return ee(e)&&"__vccOpts"in e}const _e=(e,t)=>ya(e,t,Ut);function ve(e,t,n){const r=arguments.length;return r===2?Ee(t)&&!J(t)?Un(t)?ye(e,null,[t]):ye(e,t):ye(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Un(n)&&(n=[n]),ye(e,t,n))}const Ac="3.2.33",Tc="http://www.w3.org/2000/svg",Ct=typeof document!="undefined"?document:null,Wo=Ct&&Ct.createElement("template"),Pc={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t?Ct.createElementNS(Tc,e):Ct.createElement(e,n?{is:n}:void 0);return e==="select"&&r&&r.multiple!=null&&o.setAttribute("multiple",r.multiple),o},createText:e=>Ct.createTextNode(e),createComment:e=>Ct.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ct.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},cloneNode(e){const t=e.cloneNode(!0);return"_value"in e&&(t._value=e._value),t},insertStaticContent(e,t,n,r,o,s){const i=n?n.previousSibling:t.lastChild;if(o&&(o===s||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===s||!(o=o.nextSibling)););else{Wo.innerHTML=r?`${e}`:e;const l=Wo.content;if(r){const a=l.firstChild;for(;a.firstChild;)l.appendChild(a.firstChild);l.removeChild(a)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function xc(e,t,n){const r=e._vtc;r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function Oc(e,t,n){const r=e.style,o=pe(n);if(n&&!o){for(const s in n)Mr(r,s,n[s]);if(t&&!pe(t))for(const s in t)n[s]==null&&Mr(r,s,"")}else{const s=r.display;o?t!==n&&(r.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(r.display=s)}}const Go=/\s*!important$/;function Mr(e,t,n){if(J(n))n.forEach(r=>Mr(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Rc(e,t);Go.test(n)?e.setProperty(Lt(r),n.replace(Go,""),"important"):e[r]=n}}const Yo=["Webkit","Moz","ms"],hr={};function Rc(e,t){const n=hr[t];if(n)return n;let r=Je(t);if(r!=="filter"&&r in e)return hr[t]=r;r=Zn(r);for(let o=0;o{let e=Date.now,t=!1;if(typeof window!="undefined"){Date.now()>document.createEvent("Event").timeStamp&&(e=()=>performance.now());const n=navigator.userAgent.match(/firefox\/(\d+)/i);t=!!(n&&Number(n[1])<=53)}return[e,t]})();let Nr=0;const kc=Promise.resolve(),Dc=()=>{Nr=0},Mc=()=>Nr||(kc.then(Dc),Nr=Di());function Nc(e,t,n,r){e.addEventListener(t,n,r)}function Hc(e,t,n,r){e.removeEventListener(t,n,r)}function Fc(e,t,n,r,o=null){const s=e._vei||(e._vei={}),i=s[t];if(r&&i)i.value=r;else{const[l,a]=$c(t);if(r){const c=s[t]=zc(r,o);Nc(e,l,c,a)}else i&&(Hc(e,l,i,a),s[t]=void 0)}}const Qo=/(?:Once|Passive|Capture)$/;function $c(e){let t;if(Qo.test(e)){t={};let n;for(;n=e.match(Qo);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[Lt(e.slice(2)),t]}function zc(e,t){const n=r=>{const o=r.timeStamp||Di();(Ic||o>=n.attached-1)&&je(Bc(r,n.value),t,5,[r])};return n.value=e,n.attached=Mc(),n}function Bc(e,t){if(J(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>o=>!o._stopped&&r&&r(o))}else return t}const Zo=/^on[a-z]/,jc=(e,t,n,r,o=!1,s,i,l,a)=>{t==="class"?xc(e,r,o):t==="style"?Oc(e,n,r):En(t)?Vr(t)||Fc(e,t,n,r,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Vc(e,t,r,o))?Lc(e,t,r,s,i,l,a):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Sc(e,t,r,o))};function Vc(e,t,n,r){return r?!!(t==="innerHTML"||t==="textContent"||t in e&&Zo.test(t)&&ee(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||Zo.test(t)&&pe(n)?!1:t in e}const it="transition",Xt="animation",uo=(e,{slots:t})=>ve(ci,Uc(e),t);uo.displayName="Transition";const Mi={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};uo.props=Te({},ci.props,Mi);const _t=(e,t=[])=>{J(e)?e.forEach(n=>n(...t)):e&&e(...t)},Xo=e=>e?J(e)?e.some(t=>t.length>1):e.length>1:!1;function Uc(e){const t={};for(const y in e)y in Mi||(t[y]=e[y]);if(e.css===!1)return t;const{name:n="v",type:r,duration:o,enterFromClass:s=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:a=s,appearActiveClass:c=i,appearToClass:f=l,leaveFromClass:p=`${n}-leave-from`,leaveActiveClass:d=`${n}-leave-active`,leaveToClass:_=`${n}-leave-to`}=e,b=qc(o),D=b&&b[0],g=b&&b[1],{onBeforeEnter:v,onEnter:P,onEnterCancelled:S,onLeave:N,onLeaveCancelled:V,onBeforeAppear:H=v,onAppear:C=P,onAppearCancelled:w=S}=t,W=(y,k,G)=>{Dt(y,k?f:l),Dt(y,k?c:i),G&&G()},j=(y,k)=>{Dt(y,_),Dt(y,d),k&&k()},Y=y=>(k,G)=>{const le=y?C:P,B=()=>W(k,y,G);_t(le,[k,B]),es(()=>{Dt(k,y?a:s),lt(k,y?f:l),Xo(le)||ts(k,r,D,B)})};return Te(t,{onBeforeEnter(y){_t(v,[y]),lt(y,s),lt(y,i)},onBeforeAppear(y){_t(H,[y]),lt(y,a),lt(y,c)},onEnter:Y(!1),onAppear:Y(!0),onLeave(y,k){const G=()=>j(y,k);lt(y,p),Gc(),lt(y,d),es(()=>{Dt(y,p),lt(y,_),Xo(N)||ts(y,r,g,G)}),_t(N,[y,G])},onEnterCancelled(y){W(y,!1),_t(S,[y])},onAppearCancelled(y){W(y,!0),_t(w,[y])},onLeaveCancelled(y){j(y),_t(V,[y])}})}function qc(e){if(e==null)return null;if(Ee(e))return[pr(e.enter),pr(e.leave)];{const t=pr(e);return[t,t]}}function pr(e){return Ms(e)}function lt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e._vtc||(e._vtc=new Set)).add(t)}function Dt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function es(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Kc=0;function ts(e,t,n,r){const o=e._endId=++Kc,s=()=>{o===e._endId&&r()};if(n)return setTimeout(s,n);const{type:i,timeout:l,propCount:a}=Wc(e,t);if(!i)return r();const c=i+"end";let f=0;const p=()=>{e.removeEventListener(c,d),s()},d=_=>{_.target===e&&++f>=a&&p()};setTimeout(()=>{f(n[b]||"").split(", "),o=r(it+"Delay"),s=r(it+"Duration"),i=ns(o,s),l=r(Xt+"Delay"),a=r(Xt+"Duration"),c=ns(l,a);let f=null,p=0,d=0;t===it?i>0&&(f=it,p=i,d=s.length):t===Xt?c>0&&(f=Xt,p=c,d=a.length):(p=Math.max(i,c),f=p>0?i>c?it:Xt:null,d=f?f===it?s.length:a.length:0);const _=f===it&&/\b(transform|all)(,|$)/.test(n[it+"Property"]);return{type:f,timeout:p,propCount:d,hasTransform:_}}function ns(e,t){for(;e.lengthrs(n)+rs(e[r])))}function rs(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function Gc(){return document.body.offsetHeight}const Yc={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},ih=(e,t)=>n=>{if(!("key"in n))return;const r=Lt(n.key);if(t.some(o=>o===r||Yc[o]===r))return e(n)},lh={beforeMount(e,{value:t},{transition:n}){e._vod=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):en(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),en(e,!0),r.enter(e)):r.leave(e,()=>{en(e,!1)}):en(e,t))},beforeUnmount(e,{value:t}){en(e,t)}};function en(e,t){e.style.display=t?e._vod:"none"}const Jc=Te({patchProp:jc},Pc);let mr,os=!1;function Qc(){return mr=os?mr:rc(Jc),os=!0,mr}const Zc=(...e)=>{const t=Qc().createApp(...e),{mount:n}=t;return t.mount=r=>{const o=Xc(r);if(o)return n(o,!0,o instanceof SVGElement)},t};function Xc(e){return pe(e)?document.querySelector(e):e}const eu={base:"/whispr/",lang:"en-US",title:"whispr",description:"whispr docs",head:[],locales:{}};var tu=([e,t,n])=>e==="meta"&&t.name?`${e}.${t.name}`:["title","base"].includes(e)?e:e==="template"&&t.id?`${e}.${t.id}`:JSON.stringify([e,t,n]),nu=e=>{const t=new Set,n=[];return e.forEach(r=>{const o=tu(r);t.has(o)||(t.add(o),n.push(r))}),n},ru=e=>/^(https?:)?\/\//.test(e),ah=e=>/^mailto:/.test(e),ch=e=>/^tel:/.test(e),Ni=e=>Object.prototype.toString.call(e)==="[object Object]",ou=e=>e.replace(/\/$/,""),su=e=>e.replace(/^\//,""),Hi=(e,t)=>{const n=Object.keys(e).sort((r,o)=>{const s=o.split("/").length-r.split("/").length;return s!==0?s:o.length-r.length});for(const r of n)if(t.startsWith(r))return r;return"/"};const Fi={"v-8daa1a0e":fe(()=>K(()=>import("./index.html.c2eae47d.js"),[])),"v-146e5374":fe(()=>K(()=>import("./apm.html.019f53c1.js"),[])),"v-2eb76c63":fe(()=>K(()=>import("./fileupload.html.fde70eab.js"),[])),"v-ecba32a0":fe(()=>K(()=>import("./indexing.html.785ad40a.js"),[])),"v-6ca815f4":fe(()=>K(()=>import("./installation.html.edc6b036.js"),[])),"v-27b6bb40":fe(()=>K(()=>import("./security.html.65d38756.js"),[])),"v-53401e42":fe(()=>K(()=>import("./testing.html.c209f58a.js"),[])),"v-fe842d44":fe(()=>K(()=>import("./graphql.html.11d3cf34.js"),[])),"v-0e4a26f1":fe(()=>K(()=>import("./introduction.html.b85c1a82.js"),[])),"v-e9130d12":fe(()=>K(()=>import("./rest.html.170212e2.js"),[])),"v-63e82ae3":fe(()=>K(()=>import("./index.html.7618830d.js"),[])),"v-3ea3fa0e":fe(()=>K(()=>import("./building.html.efff41e5.js"),[])),"v-76cfe0bc":fe(()=>K(()=>import("./community.html.71a6578a.js"),[])),"v-141584aa":fe(()=>K(()=>import("./credits.html.9d3378ef.js"),[])),"v-7e30aeec":fe(()=>K(()=>import("./guidelines.html.cdc1e64e.js"),[])),"v-17f9b51d":fe(()=>K(()=>import("./index.html.913bb68e.js"),[])),"v-a8a674e6":fe(()=>K(()=>import("./index.html.dacf66bd.js"),[])),"v-712e14fc":fe(()=>K(()=>import("./index.html.3c20aa17.js"),[])),"v-66de8e88":fe(()=>K(()=>import("./tagGroup.html.423d402d.js"),[])),"v-581890ae":fe(()=>K(()=>import("./webhook.html.ad64bfa8.js"),[])),"v-4b2698d0":fe(()=>K(()=>import("./whisp.html.282c41a6.js"),[])),"v-67d16688":fe(()=>K(()=>import("./index.html.112ce0e9.js"),[])),"v-47ce024e":fe(()=>K(()=>import("./index.html.af31a2dc.js"),[])),"v-43f4d00c":fe(()=>K(()=>import("./index.html.8df3b31d.js"),[])),"v-3706649a":fe(()=>K(()=>import("./404.html.14c6f7ad.js"),[]))},iu={"404":fe(()=>K(()=>import("./404.4a56b200.js"),[])),Layout:fe(()=>K(()=>import("./Layout.73f41bcc.js"),[]))};var $i=xe(Al),zi=Zr({key:"",path:"",title:"",lang:"",frontmatter:{},excerpt:"",headers:[]}),et=xe(zi),An=()=>et;bo.webpackHot&&(__VUE_HMR_RUNTIME__.updatePageData=e=>{$i.value[e.key]=()=>Promise.resolve(e),e.key===et.value.key&&(et.value=e)});var Bi=Symbol(""),lu=()=>{const e=Ae(Bi);if(!e)throw new Error("usePageFrontmatter() is called without provider.");return e},ji=Symbol(""),au=()=>{const e=Ae(ji);if(!e)throw new Error("usePageHead() is called without provider.");return e},cu=Symbol(""),Vi=Symbol(""),uu=()=>{const e=Ae(Vi);if(!e)throw new Error("usePageLang() is called without provider.");return e},fo=Symbol(""),fu=()=>{const e=Ae(fo);if(!e)throw new Error("useRouteLocale() is called without provider.");return e},dt=xe(eu),du=()=>dt;bo.webpackHot&&(__VUE_HMR_RUNTIME__.updateSiteData=e=>{dt.value=e});var Ui=Symbol(""),uh=()=>{const e=Ae(Ui);if(!e)throw new Error("useSiteLocaleData() is called without provider.");return e},hu=Symbol(""),bt=Yt({resolvePageData:async e=>{const t=$i.value[e],n=await(t==null?void 0:t());return n!=null?n:zi},resolvePageFrontmatter:e=>e.frontmatter,resolvePageHead:(e,t,n)=>{const r=pe(t.description)?t.description:n.description,o=[...J(t.head)?t.head:[],...n.head,["title",{},e],["meta",{name:"description",content:r}]];return nu(o)},resolvePageHeadTitle:(e,t)=>`${e.title?`${e.title} | `:""}${t.title}`,resolvePageLang:e=>e.lang||"en",resolveRouteLocale:(e,t)=>Hi(e,t),resolveSiteLocaleData:(e,t)=>Qe(Qe({},e),e.locales[t])}),pu=We({setup(e,t){const n=xe(!1);return gt(()=>{n.value=!0}),()=>{var r,o;return n.value?(o=(r=t.slots).default)==null?void 0:o.call(r):null}}}),ho=e=>{let t;e.pageKey?t=e.pageKey:t=An().value.key;const n=Fi[t];return n?ve(n):ve("div","404 Not Found")};ho.displayName="Content";ho.props={pageKey:{type:String,required:!1}};var ss=We({name:"Vuepress",setup(){const e=An(),t=_e(()=>{let n;if(e.value.path){const r=e.value.frontmatter.layout;pe(r)?n=r:n="Layout"}else n="404";return iu[n]||lc(n,!1)});return()=>ve(t.value)}}),mu=e=>ru(e)?e:`${du().value.base}${su(e)}`,It=e=>e;function qi(e,t,n){var r,o,s;t===void 0&&(t=50),n===void 0&&(n={});var i=(r=n.isImmediate)!=null&&r,l=(o=n.callback)!=null&&o,a=n.maxWait,c=Date.now(),f=[];function p(){if(a!==void 0){var _=Date.now()-c;if(_+t>=a)return a-_}return t}var d=function(){var _=[].slice.call(arguments),b=this;return new Promise(function(D,g){var v=i&&s===void 0;if(s!==void 0&&clearTimeout(s),s=setTimeout(function(){if(s=void 0,c=Date.now(),!i){var S=e.apply(b,_);l&&l(S),f.forEach(function(N){return(0,N.resolve)(S)}),f=[]}},p()),v){var P=e.apply(b,_);return l&&l(P),D(P)}f.push({resolve:D,reject:g})})};return d.cancel=function(_){s!==void 0&&clearTimeout(s),f.forEach(function(b){return(0,b.reject)(_)}),f=[]},d}/*!
+var vl=Object.defineProperty,_l=Object.defineProperties;var yl=Object.getOwnPropertyDescriptors;var Ao=Object.getOwnPropertySymbols;var bl=Object.prototype.hasOwnProperty,El=Object.prototype.propertyIsEnumerable;var To=(e,t,n)=>t in e?vl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Qe=(e,t)=>{for(var n in t||(t={}))bl.call(t,n)&&To(e,n,t[n]);if(Ao)for(var n of Ao(t))El.call(t,n)&&To(e,n,t[n]);return e},Pn=(e,t)=>_l(e,yl(t));const bo={},wl="modulepreload",Po={},Cl="/whispr/",K=function(t,n){return!n||n.length===0?t():Promise.all(n.map(r=>{if(r=`${Cl}${r}`,r in Po)return;Po[r]=!0;const o=r.endsWith(".css"),s=o?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${r}"]${s}`))return;const i=document.createElement("link");if(i.rel=o?"stylesheet":wl,o||(i.as="script",i.crossOrigin=""),i.href=r,document.head.appendChild(i),o)return new Promise((l,a)=>{i.addEventListener("load",l),i.addEventListener("error",()=>a(new Error(`Unable to preload CSS for ${r}`)))})})).then(()=>t())},Al={"v-8daa1a0e":()=>K(()=>import("./index.html.538b9166.js"),[]).then(({data:e})=>e),"v-146e5374":()=>K(()=>import("./apm.html.5aa5f906.js"),[]).then(({data:e})=>e),"v-2eb76c63":()=>K(()=>import("./fileupload.html.52907f0b.js"),[]).then(({data:e})=>e),"v-ecba32a0":()=>K(()=>import("./indexing.html.6932ecd7.js"),[]).then(({data:e})=>e),"v-6ca815f4":()=>K(()=>import("./installation.html.9fa7f73d.js"),[]).then(({data:e})=>e),"v-27b6bb40":()=>K(()=>import("./security.html.ec7526b3.js"),[]).then(({data:e})=>e),"v-53401e42":()=>K(()=>import("./testing.html.089eeb61.js"),[]).then(({data:e})=>e),"v-fe842d44":()=>K(()=>import("./graphql.html.dcb64a54.js"),[]).then(({data:e})=>e),"v-0e4a26f1":()=>K(()=>import("./introduction.html.8af74383.js"),[]).then(({data:e})=>e),"v-e9130d12":()=>K(()=>import("./rest.html.a5fab122.js"),[]).then(({data:e})=>e),"v-63e82ae3":()=>K(()=>import("./index.html.1612eb7c.js"),[]).then(({data:e})=>e),"v-3ea3fa0e":()=>K(()=>import("./building.html.61193374.js"),[]).then(({data:e})=>e),"v-76cfe0bc":()=>K(()=>import("./community.html.0a51836b.js"),[]).then(({data:e})=>e),"v-141584aa":()=>K(()=>import("./credits.html.e2e0e4df.js"),[]).then(({data:e})=>e),"v-7e30aeec":()=>K(()=>import("./guidelines.html.76df967c.js"),[]).then(({data:e})=>e),"v-17f9b51d":()=>K(()=>import("./index.html.6786a325.js"),[]).then(({data:e})=>e),"v-a8a674e6":()=>K(()=>import("./index.html.31a6853d.js"),[]).then(({data:e})=>e),"v-712e14fc":()=>K(()=>import("./index.html.61c05645.js"),[]).then(({data:e})=>e),"v-66de8e88":()=>K(()=>import("./tagGroup.html.f975e67c.js"),[]).then(({data:e})=>e),"v-581890ae":()=>K(()=>import("./webhook.html.27d607a3.js"),[]).then(({data:e})=>e),"v-4b2698d0":()=>K(()=>import("./whisp.html.a6fa571b.js"),[]).then(({data:e})=>e),"v-67d16688":()=>K(()=>import("./index.html.dcb9df61.js"),[]).then(({data:e})=>e),"v-47ce024e":()=>K(()=>import("./index.html.7bbd4566.js"),[]).then(({data:e})=>e),"v-43f4d00c":()=>K(()=>import("./index.html.d7cdee61.js"),[]).then(({data:e})=>e),"v-3706649a":()=>K(()=>import("./404.html.0f07aaf0.js"),[]).then(({data:e})=>e)};function jr(e,t){const n=Object.create(null),r=e.split(",");for(let o=0;o!!n[o.toLowerCase()]:o=>!!n[o]}const Tl="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",Pl=jr(Tl);function Rs(e){return!!e||e===""}function Yn(e){if(J(e)){const t={};for(let n=0;n{if(n){const r=n.split(Ol);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function bn(e){let t="";if(pe(e))t=e;else if(J(e))for(let n=0;npe(e)?e:e==null?"":J(e)||Ee(e)&&(e.toString===ks||!ee(e.toString))?JSON.stringify(e,Ss,2):String(e),Ss=(e,t)=>t&&t.__v_isRef?Ss(e,t.value):Bt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,o])=>(n[`${r} =>`]=o,n),{})}:Ls(t)?{[`Set(${t.size})`]:[...t.values()]}:Ee(t)&&!J(t)&&!Ds(t)?String(t):t,he={},zt=[],Ke=()=>{},Ll=()=>!1,Il=/^on[^a-z]/,En=e=>Il.test(e),Vr=e=>e.startsWith("onUpdate:"),Te=Object.assign,Ur=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},kl=Object.prototype.hasOwnProperty,re=(e,t)=>kl.call(e,t),J=Array.isArray,Bt=e=>Jn(e)==="[object Map]",Ls=e=>Jn(e)==="[object Set]",ee=e=>typeof e=="function",pe=e=>typeof e=="string",qr=e=>typeof e=="symbol",Ee=e=>e!==null&&typeof e=="object",Is=e=>Ee(e)&&ee(e.then)&&ee(e.catch),ks=Object.prototype.toString,Jn=e=>ks.call(e),Dl=e=>Jn(e).slice(8,-1),Ds=e=>Jn(e)==="[object Object]",Kr=e=>pe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,sn=jr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Qn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Ml=/-(\w)/g,Je=Qn(e=>e.replace(Ml,(t,n)=>n?n.toUpperCase():"")),Nl=/\B([A-Z])/g,Lt=Qn(e=>e.replace(Nl,"-$1").toLowerCase()),Zn=Qn(e=>e.charAt(0).toUpperCase()+e.slice(1)),lr=Qn(e=>e?`on${Zn(e)}`:""),hn=(e,t)=>!Object.is(e,t),ar=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},Ms=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let xo;const Hl=()=>xo||(xo=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:typeof global!="undefined"?global:{});let Me;class Fl{constructor(t=!1){this.active=!0,this.effects=[],this.cleanups=[],!t&&Me&&(this.parent=Me,this.index=(Me.scopes||(Me.scopes=[])).push(this)-1)}run(t){if(this.active){const n=Me;try{return Me=this,t()}finally{Me=n}}}on(){Me=this}off(){Me=this.parent}stop(t){if(this.active){let n,r;for(n=0,r=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},Ns=e=>(e.w&mt)>0,Hs=e=>(e.n&mt)>0,jl=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let r=0;r{(c==="length"||c>=r)&&l.push(a)});else switch(n!==void 0&&l.push(i.get(n)),t){case"add":J(e)?Kr(n)&&l.push(i.get("length")):(l.push(i.get(Tt)),Bt(e)&&l.push(i.get(Tr)));break;case"delete":J(e)||(l.push(i.get(Tt)),Bt(e)&&l.push(i.get(Tr)));break;case"set":Bt(e)&&l.push(i.get(Tt));break}if(l.length===1)l[0]&&Pr(l[0]);else{const a=[];for(const c of l)c&&a.push(...c);Pr(Wr(a))}}function Pr(e,t){for(const n of J(e)?e:[...e])(n!==qe||n.allowRecurse)&&(n.scheduler?n.scheduler():n.run())}const Ul=jr("__proto__,__v_isRef,__isVue"),zs=new Set(Object.getOwnPropertyNames(Symbol).map(e=>Symbol[e]).filter(qr)),ql=Yr(),Kl=Yr(!1,!0),Wl=Yr(!0),Ro=Gl();function Gl(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=ie(this);for(let s=0,i=this.length;s{e[t]=function(...n){Wt();const r=ie(this)[t].apply(this,n);return Gt(),r}}),e}function Yr(e=!1,t=!1){return function(r,o,s){if(o==="__v_isReactive")return!e;if(o==="__v_isReadonly")return e;if(o==="__v_isShallow")return t;if(o==="__v_raw"&&s===(e?t?ua:qs:t?Us:Vs).get(r))return r;const i=J(r);if(!e&&i&&re(Ro,o))return Reflect.get(Ro,o,s);const l=Reflect.get(r,o,s);return(qr(o)?zs.has(o):Ul(o))||(e||Fe(r,"get",o),t)?l:Ce(l)?!i||!Kr(o)?l.value:l:Ee(l)?e?Zr(l):Yt(l):l}}const Yl=Bs(),Jl=Bs(!0);function Bs(e=!1){return function(n,r,o,s){let i=n[r];if(pn(i)&&Ce(i)&&!Ce(o))return!1;if(!e&&!pn(o)&&(Ks(o)||(o=ie(o),i=ie(i)),!J(n)&&Ce(i)&&!Ce(o)))return i.value=o,!0;const l=J(n)&&Kr(r)?Number(r)e,Xn=e=>Reflect.getPrototypeOf(e);function xn(e,t,n=!1,r=!1){e=e.__v_raw;const o=ie(e),s=ie(t);t!==s&&!n&&Fe(o,"get",t),!n&&Fe(o,"get",s);const{has:i}=Xn(o),l=r?Jr:n?eo:mn;if(i.call(o,t))return l(e.get(t));if(i.call(o,s))return l(e.get(s));e!==o&&e.get(t)}function On(e,t=!1){const n=this.__v_raw,r=ie(n),o=ie(e);return e!==o&&!t&&Fe(r,"has",e),!t&&Fe(r,"has",o),e===o?n.has(e):n.has(e)||n.has(o)}function Rn(e,t=!1){return e=e.__v_raw,!t&&Fe(ie(e),"iterate",Tt),Reflect.get(e,"size",e)}function So(e){e=ie(e);const t=ie(this);return Xn(t).has.call(t,e)||(t.add(e),nt(t,"add",e,e)),this}function Lo(e,t){t=ie(t);const n=ie(this),{has:r,get:o}=Xn(n);let s=r.call(n,e);s||(e=ie(e),s=r.call(n,e));const i=o.call(n,e);return n.set(e,t),s?hn(t,i)&&nt(n,"set",e,t):nt(n,"add",e,t),this}function Io(e){const t=ie(this),{has:n,get:r}=Xn(t);let o=n.call(t,e);o||(e=ie(e),o=n.call(t,e)),r&&r.call(t,e);const s=t.delete(e);return o&&nt(t,"delete",e,void 0),s}function ko(){const e=ie(this),t=e.size!==0,n=e.clear();return t&&nt(e,"clear",void 0,void 0),n}function Sn(e,t){return function(r,o){const s=this,i=s.__v_raw,l=ie(i),a=t?Jr:e?eo:mn;return!e&&Fe(l,"iterate",Tt),i.forEach((c,f)=>r.call(o,a(c),a(f),s))}}function Ln(e,t,n){return function(...r){const o=this.__v_raw,s=ie(o),i=Bt(s),l=e==="entries"||e===Symbol.iterator&&i,a=e==="keys"&&i,c=o[e](...r),f=n?Jr:t?eo:mn;return!t&&Fe(s,"iterate",a?Tr:Tt),{next(){const{value:p,done:d}=c.next();return d?{value:p,done:d}:{value:l?[f(p[0]),f(p[1])]:f(p),done:d}},[Symbol.iterator](){return this}}}}function ot(e){return function(...t){return e==="delete"?!1:this}}function na(){const e={get(s){return xn(this,s)},get size(){return Rn(this)},has:On,add:So,set:Lo,delete:Io,clear:ko,forEach:Sn(!1,!1)},t={get(s){return xn(this,s,!1,!0)},get size(){return Rn(this)},has:On,add:So,set:Lo,delete:Io,clear:ko,forEach:Sn(!1,!0)},n={get(s){return xn(this,s,!0)},get size(){return Rn(this,!0)},has(s){return On.call(this,s,!0)},add:ot("add"),set:ot("set"),delete:ot("delete"),clear:ot("clear"),forEach:Sn(!0,!1)},r={get(s){return xn(this,s,!0,!0)},get size(){return Rn(this,!0)},has(s){return On.call(this,s,!0)},add:ot("add"),set:ot("set"),delete:ot("delete"),clear:ot("clear"),forEach:Sn(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(s=>{e[s]=Ln(s,!1,!1),n[s]=Ln(s,!0,!1),t[s]=Ln(s,!1,!0),r[s]=Ln(s,!0,!0)}),[e,n,t,r]}const[ra,oa,sa,ia]=na();function Qr(e,t){const n=t?e?ia:sa:e?oa:ra;return(r,o,s)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?r:Reflect.get(re(n,o)&&o in r?n:r,o,s)}const la={get:Qr(!1,!1)},aa={get:Qr(!1,!0)},ca={get:Qr(!0,!1)},Vs=new WeakMap,Us=new WeakMap,qs=new WeakMap,ua=new WeakMap;function fa(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function da(e){return e.__v_skip||!Object.isExtensible(e)?0:fa(Dl(e))}function Yt(e){return pn(e)?e:Xr(e,!1,js,la,Vs)}function ha(e){return Xr(e,!1,ta,aa,Us)}function Zr(e){return Xr(e,!0,ea,ca,qs)}function Xr(e,t,n,r,o){if(!Ee(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const s=o.get(e);if(s)return s;const i=da(e);if(i===0)return e;const l=new Proxy(e,i===2?r:n);return o.set(e,l),l}function jt(e){return pn(e)?jt(e.__v_raw):!!(e&&e.__v_isReactive)}function pn(e){return!!(e&&e.__v_isReadonly)}function Ks(e){return!!(e&&e.__v_isShallow)}function Ws(e){return jt(e)||pn(e)}function ie(e){const t=e&&e.__v_raw;return t?ie(t):e}function Gs(e){return Hn(e,"__v_skip",!0),e}const mn=e=>Ee(e)?Yt(e):e,eo=e=>Ee(e)?Zr(e):e;function Ys(e){ht&&qe&&(e=ie(e),$s(e.dep||(e.dep=Wr())))}function Js(e,t){e=ie(e),e.dep&&Pr(e.dep)}function Ce(e){return!!(e&&e.__v_isRef===!0)}function xe(e){return Zs(e,!1)}function Qs(e){return Zs(e,!0)}function Zs(e,t){return Ce(e)?e:new pa(e,t)}class pa{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:ie(t),this._value=n?t:mn(t)}get value(){return Ys(this),this._value}set value(t){t=this.__v_isShallow?t:ie(t),hn(t,this._rawValue)&&(this._rawValue=t,this._value=this.__v_isShallow?t:mn(t),Js(this))}}function Pt(e){return Ce(e)?e.value:e}const ma={get:(e,t,n)=>Pt(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const o=e[t];return Ce(o)&&!Ce(n)?(o.value=n,!0):Reflect.set(e,t,n,r)}};function Xs(e){return jt(e)?e:new Proxy(e,ma)}function th(e){const t=J(e)?new Array(e.length):{};for(const n in e)t[n]=va(e,n);return t}class ga{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}}function va(e,t,n){const r=e[t];return Ce(r)?r:new ga(e,t,n)}class _a{constructor(t,n,r,o){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this._dirty=!0,this.effect=new Gr(t,()=>{this._dirty||(this._dirty=!0,Js(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!o,this.__v_isReadonly=r}get value(){const t=ie(this);return Ys(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function ya(e,t,n=!1){let r,o;const s=ee(e);return s?(r=e,o=Ke):(r=e.get,o=e.set),new _a(r,o,s||!o,n)}function pt(e,t,n,r){let o;try{o=r?e(...r):e()}catch(s){wn(s,t,n)}return o}function je(e,t,n,r){if(ee(e)){const s=pt(e,t,n,r);return s&&Is(s)&&s.catch(i=>{wn(i,t,n)}),s}const o=[];for(let s=0;s>>1;gn(Ne[r])Xe&&Ne.splice(t,1)}function ni(e,t,n,r){J(e)?n.push(...e):(!t||!t.includes(e,e.allowRecurse?r+1:r))&&n.push(e),ti()}function Ca(e){ni(e,on,ln,Ht)}function Aa(e){ni(e,ct,an,Ft)}function oo(e,t=null){if(ln.length){for(Or=t,on=[...new Set(ln)],ln.length=0,Ht=0;Htgn(n)-gn(r)),Ft=0;Fte.id==null?1/0:e.id;function ri(e){xr=!1,Fn=!0,oo(e),Ne.sort((n,r)=>gn(n)-gn(r));const t=Ke;try{for(Xe=0;Xe_.trim()):p&&(o=n.map(Ms))}let l,a=r[l=lr(t)]||r[l=lr(Je(t))];!a&&s&&(a=r[l=lr(Lt(t))]),a&&je(a,e,6,o);const c=r[l+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,je(c,e,6,o)}}function oi(e,t,n=!1){const r=t.emitsCache,o=r.get(e);if(o!==void 0)return o;const s=e.emits;let i={},l=!1;if(!ee(e)){const a=c=>{const f=oi(c,t,!0);f&&(l=!0,Te(i,f))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!s&&!l?(r.set(e,null),null):(J(s)?s.forEach(a=>i[a]=null):Te(i,s),r.set(e,i),i)}function er(e,t){return!e||!En(t)?!1:(t=t.slice(2).replace(/Once$/,""),re(e,t[0].toLowerCase()+t.slice(1))||re(e,Lt(t))||re(e,t))}let Pe=null,si=null;function zn(e){const t=Pe;return Pe=e,si=e&&e.type.__scopeId||null,t}function Pa(e,t=Pe,n){if(!t||e._n)return e;const r=(...o)=>{r._d&&Uo(-1);const s=zn(t),i=e(...o);return zn(s),r._d&&Uo(1),i};return r._n=!0,r._c=!0,r._d=!0,r}function cr(e){const{type:t,vnode:n,proxy:r,withProxy:o,props:s,propsOptions:[i],slots:l,attrs:a,emit:c,render:f,renderCache:p,data:d,setupState:_,ctx:b,inheritAttrs:D}=e;let g,v;const P=zn(e);try{if(n.shapeFlag&4){const N=o||r;g=Ue(f.call(N,N,p,s,_,d,b)),v=a}else{const N=t;g=Ue(N.length>1?N(s,{attrs:a,slots:l,emit:c}):N(s,null)),v=t.props?a:xa(a)}}catch(N){un.length=0,wn(N,e,1),g=ye(He)}let S=g;if(v&&D!==!1){const N=Object.keys(v),{shapeFlag:V}=S;N.length&&V&7&&(i&&N.some(Vr)&&(v=Oa(v,i)),S=St(S,v))}return n.dirs&&(S.dirs=S.dirs?S.dirs.concat(n.dirs):n.dirs),n.transition&&(S.transition=n.transition),g=S,zn(P),g}const xa=e=>{let t;for(const n in e)(n==="class"||n==="style"||En(n))&&((t||(t={}))[n]=e[n]);return t},Oa=(e,t)=>{const n={};for(const r in e)(!Vr(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Ra(e,t,n){const{props:r,children:o,component:s}=e,{props:i,children:l,patchFlag:a}=t,c=s.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&a>=0){if(a&1024)return!0;if(a&16)return r?Do(r,i,c):!!i;if(a&8){const f=t.dynamicProps;for(let p=0;pe.__isSuspense;function ii(e,t){t&&t.pendingBranch?J(e)?t.effects.push(...e):t.effects.push(e):Aa(e)}function xt(e,t){if(we){let n=we.provides;const r=we.parent&&we.parent.provides;r===n&&(n=we.provides=Object.create(r)),n[e]=t}}function Ae(e,t,n=!1){const r=we||Pe;if(r){const o=r.parent==null?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides;if(o&&e in o)return o[e];if(arguments.length>1)return n&&ee(t)?t.call(r.proxy):t}}const Mo={};function tt(e,t,n){return li(e,t,n)}function li(e,t,{immediate:n,deep:r,flush:o,onTrack:s,onTrigger:i}=he){const l=we;let a,c=!1,f=!1;if(Ce(e)?(a=()=>e.value,c=Ks(e)):jt(e)?(a=()=>e,r=!0):J(e)?(f=!0,c=e.some(jt),a=()=>e.map(v=>{if(Ce(v))return v.value;if(jt(v))return At(v);if(ee(v))return pt(v,l,2)})):ee(e)?t?a=()=>pt(e,l,2):a=()=>{if(!(l&&l.isUnmounted))return p&&p(),je(e,l,3,[d])}:a=Ke,t&&r){const v=a;a=()=>At(v())}let p,d=v=>{p=g.onStop=()=>{pt(v,l,4)}};if(Ut)return d=Ke,t?n&&je(t,l,3,[a(),f?[]:void 0,d]):a(),Ke;let _=f?[]:Mo;const b=()=>{if(!!g.active)if(t){const v=g.run();(r||c||(f?v.some((P,S)=>hn(P,_[S])):hn(v,_)))&&(p&&p(),je(t,l,3,[v,_===Mo?void 0:_,d]),_=v)}else g.run()};b.allowRecurse=!!t;let D;o==="sync"?D=b:o==="post"?D=()=>Le(b,l&&l.suspense):D=()=>{!l||l.isMounted?Ca(b):b()};const g=new Gr(a,D);return t?n?b():_=g.run():o==="post"?Le(g.run.bind(g),l&&l.suspense):g.run(),()=>{g.stop(),l&&l.scope&&Ur(l.scope.effects,g)}}function Ia(e,t,n){const r=this.proxy,o=pe(e)?e.includes(".")?ai(r,e):()=>r[e]:e.bind(r,r);let s;ee(t)?s=t:(s=t.handler,n=t);const i=we;Vt(this);const l=li(o,s.bind(r),n);return i?Vt(i):Rt(),l}function ai(e,t){const n=t.split(".");return()=>{let r=e;for(let o=0;o{At(n,t)});else if(Ds(e))for(const n in e)At(e[n],t);return e}function ka(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return gt(()=>{e.isMounted=!0}),so(()=>{e.isUnmounting=!0}),e}const ze=[Function,Array],Da={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ze,onEnter:ze,onAfterEnter:ze,onEnterCancelled:ze,onBeforeLeave:ze,onLeave:ze,onAfterLeave:ze,onLeaveCancelled:ze,onBeforeAppear:ze,onAppear:ze,onAfterAppear:ze,onAppearCancelled:ze},setup(e,{slots:t}){const n=Li(),r=ka();let o;return()=>{const s=t.default&&fi(t.default(),!0);if(!s||!s.length)return;let i=s[0];if(s.length>1){for(const D of s)if(D.type!==He){i=D;break}}const l=ie(e),{mode:a}=l;if(r.isLeaving)return ur(i);const c=No(i);if(!c)return ur(i);const f=Rr(c,l,r,n);Sr(c,f);const p=n.subTree,d=p&&No(p);let _=!1;const{getTransitionKey:b}=c.type;if(b){const D=b();o===void 0?o=D:D!==o&&(o=D,_=!0)}if(d&&d.type!==He&&(!wt(c,d)||_)){const D=Rr(d,l,r,n);if(Sr(d,D),a==="out-in")return r.isLeaving=!0,D.afterLeave=()=>{r.isLeaving=!1,n.update()},ur(i);a==="in-out"&&c.type!==He&&(D.delayLeave=(g,v,P)=>{const S=ui(r,d);S[String(d.key)]=d,g._leaveCb=()=>{v(),g._leaveCb=void 0,delete f.delayedLeave},f.delayedLeave=P})}return i}}},ci=Da;function ui(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Rr(e,t,n,r){const{appear:o,mode:s,persisted:i=!1,onBeforeEnter:l,onEnter:a,onAfterEnter:c,onEnterCancelled:f,onBeforeLeave:p,onLeave:d,onAfterLeave:_,onLeaveCancelled:b,onBeforeAppear:D,onAppear:g,onAfterAppear:v,onAppearCancelled:P}=t,S=String(e.key),N=ui(n,e),V=(C,w)=>{C&&je(C,r,9,w)},H={mode:s,persisted:i,beforeEnter(C){let w=l;if(!n.isMounted)if(o)w=D||l;else return;C._leaveCb&&C._leaveCb(!0);const W=N[S];W&&wt(e,W)&&W.el._leaveCb&&W.el._leaveCb(),V(w,[C])},enter(C){let w=a,W=c,j=f;if(!n.isMounted)if(o)w=g||a,W=v||c,j=P||f;else return;let Y=!1;const y=C._enterCb=k=>{Y||(Y=!0,k?V(j,[C]):V(W,[C]),H.delayedLeave&&H.delayedLeave(),C._enterCb=void 0)};w?(w(C,y),w.length<=1&&y()):y()},leave(C,w){const W=String(e.key);if(C._enterCb&&C._enterCb(!0),n.isUnmounting)return w();V(p,[C]);let j=!1;const Y=C._leaveCb=y=>{j||(j=!0,w(),y?V(b,[C]):V(_,[C]),C._leaveCb=void 0,N[W]===e&&delete N[W])};N[W]=e,d?(d(C,Y),d.length<=1&&Y()):Y()},clone(C){return Rr(C,t,n,r)}};return H}function ur(e){if(Cn(e))return e=St(e),e.children=null,e}function No(e){return Cn(e)?e.children?e.children[0]:void 0:e}function Sr(e,t){e.shapeFlag&6&&e.component?Sr(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function fi(e,t=!1,n){let r=[],o=0;for(let s=0;s1)for(let s=0;s!!e.type.__asyncLoader;function fe(e){ee(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:o=200,timeout:s,suspensible:i=!0,onError:l}=e;let a=null,c,f=0;const p=()=>(f++,a=null,d()),d=()=>{let _;return a||(_=a=t().catch(b=>{if(b=b instanceof Error?b:new Error(String(b)),l)return new Promise((D,g)=>{l(b,()=>D(p()),()=>g(b),f+1)});throw b}).then(b=>_!==a&&a?a:(b&&(b.__esModule||b[Symbol.toStringTag]==="Module")&&(b=b.default),c=b,b)))};return We({name:"AsyncComponentWrapper",__asyncLoader:d,get __asyncResolved(){return c},setup(){const _=we;if(c)return()=>fr(c,_);const b=P=>{a=null,wn(P,_,13,!r)};if(i&&_.suspense||Ut)return d().then(P=>()=>fr(P,_)).catch(P=>(b(P),()=>r?ye(r,{error:P}):null));const D=xe(!1),g=xe(),v=xe(!!o);return o&&setTimeout(()=>{v.value=!1},o),s!=null&&setTimeout(()=>{if(!D.value&&!g.value){const P=new Error(`Async component timed out after ${s}ms.`);b(P),g.value=P}},s),d().then(()=>{D.value=!0,_.parent&&Cn(_.parent.vnode)&&ro(_.parent.update)}).catch(P=>{b(P),g.value=P}),()=>{if(D.value&&c)return fr(c,_);if(g.value&&r)return ye(r,{error:g.value});if(n&&!v.value)return ye(n)}}})}function fr(e,{vnode:{ref:t,props:n,children:r}}){const o=ye(e,n,r);return o.ref=t,o}const Cn=e=>e.type.__isKeepAlive;function Ma(e,t){di(e,"a",t)}function Na(e,t){di(e,"da",t)}function di(e,t,n=we){const r=e.__wdc||(e.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(tr(t,r,n),n){let o=n.parent;for(;o&&o.parent;)Cn(o.parent.vnode)&&Ha(r,t,n,o),o=o.parent}}function Ha(e,t,n,r){const o=tr(t,e,r,!0);io(()=>{Ur(r[t],o)},n)}function tr(e,t,n=we,r=!1){if(n){const o=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...i)=>{if(n.isUnmounted)return;Wt(),Vt(n);const l=je(t,n,e,i);return Rt(),Gt(),l});return r?o.unshift(s):o.push(s),s}}const rt=e=>(t,n=we)=>(!Ut||e==="sp")&&tr(e,t,n),hi=rt("bm"),gt=rt("m"),Fa=rt("bu"),$a=rt("u"),so=rt("bum"),io=rt("um"),za=rt("sp"),Ba=rt("rtg"),ja=rt("rtc");function Va(e,t=we){tr("ec",e,t)}let Lr=!0;function Ua(e){const t=mi(e),n=e.proxy,r=e.ctx;Lr=!1,t.beforeCreate&&Ho(t.beforeCreate,e,"bc");const{data:o,computed:s,methods:i,watch:l,provide:a,inject:c,created:f,beforeMount:p,mounted:d,beforeUpdate:_,updated:b,activated:D,deactivated:g,beforeDestroy:v,beforeUnmount:P,destroyed:S,unmounted:N,render:V,renderTracked:H,renderTriggered:C,errorCaptured:w,serverPrefetch:W,expose:j,inheritAttrs:Y,components:y,directives:k,filters:G}=t;if(c&&qa(c,r,null,e.appContext.config.unwrapInjectedRef),i)for(const X in i){const ne=i[X];ee(ne)&&(r[X]=ne.bind(n))}if(o){const X=o.call(n,n);Ee(X)&&(e.data=Yt(X))}if(Lr=!0,s)for(const X in s){const ne=s[X],be=ee(ne)?ne.bind(n,n):ee(ne.get)?ne.get.bind(n,n):Ke,Oe=!ee(ne)&&ee(ne.set)?ne.set.bind(n):Ke,ke=_e({get:be,set:Oe});Object.defineProperty(r,X,{enumerable:!0,configurable:!0,get:()=>ke.value,set:$e=>ke.value=$e})}if(l)for(const X in l)pi(l[X],r,n,X);if(a){const X=ee(a)?a.call(n):a;Reflect.ownKeys(X).forEach(ne=>{xt(ne,X[ne])})}f&&Ho(f,e,"c");function B(X,ne){J(ne)?ne.forEach(be=>X(be.bind(n))):ne&&X(ne.bind(n))}if(B(hi,p),B(gt,d),B(Fa,_),B($a,b),B(Ma,D),B(Na,g),B(Va,w),B(ja,H),B(Ba,C),B(so,P),B(io,N),B(za,W),J(j))if(j.length){const X=e.exposed||(e.exposed={});j.forEach(ne=>{Object.defineProperty(X,ne,{get:()=>n[ne],set:be=>n[ne]=be})})}else e.exposed||(e.exposed={});V&&e.render===Ke&&(e.render=V),Y!=null&&(e.inheritAttrs=Y),y&&(e.components=y),k&&(e.directives=k)}function qa(e,t,n=Ke,r=!1){J(e)&&(e=Ir(e));for(const o in e){const s=e[o];let i;Ee(s)?"default"in s?i=Ae(s.from||o,s.default,!0):i=Ae(s.from||o):i=Ae(s),Ce(i)&&r?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>i.value,set:l=>i.value=l}):t[o]=i}}function Ho(e,t,n){je(J(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function pi(e,t,n,r){const o=r.includes(".")?ai(n,r):()=>n[r];if(pe(e)){const s=t[e];ee(s)&&tt(o,s)}else if(ee(e))tt(o,e.bind(n));else if(Ee(e))if(J(e))e.forEach(s=>pi(s,t,n,r));else{const s=ee(e.handler)?e.handler.bind(n):t[e.handler];ee(s)&&tt(o,s,e)}}function mi(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:o,optionsCache:s,config:{optionMergeStrategies:i}}=e.appContext,l=s.get(t);let a;return l?a=l:!o.length&&!n&&!r?a=t:(a={},o.length&&o.forEach(c=>Bn(a,c,i,!0)),Bn(a,t,i)),s.set(t,a),a}function Bn(e,t,n,r=!1){const{mixins:o,extends:s}=t;s&&Bn(e,s,n,!0),o&&o.forEach(i=>Bn(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Ka[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Ka={data:Fo,props:yt,emits:yt,methods:yt,computed:yt,beforeCreate:Re,created:Re,beforeMount:Re,mounted:Re,beforeUpdate:Re,updated:Re,beforeDestroy:Re,beforeUnmount:Re,destroyed:Re,unmounted:Re,activated:Re,deactivated:Re,errorCaptured:Re,serverPrefetch:Re,components:yt,directives:yt,watch:Ga,provide:Fo,inject:Wa};function Fo(e,t){return t?e?function(){return Te(ee(e)?e.call(this,this):e,ee(t)?t.call(this,this):t)}:t:e}function Wa(e,t){return yt(Ir(e),Ir(t))}function Ir(e){if(J(e)){const t={};for(let n=0;n0)&&!(i&16)){if(i&8){const f=e.vnode.dynamicProps;for(let p=0;p{a=!0;const[d,_]=vi(p,t,!0);Te(i,d),_&&l.push(..._)};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!s&&!a)return r.set(e,zt),zt;if(J(s))for(let f=0;f-1,_[1]=D<0||b-1||re(_,"default"))&&l.push(p)}}}const c=[i,l];return r.set(e,c),c}function $o(e){return e[0]!=="$"}function zo(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:e===null?"null":""}function Bo(e,t){return zo(e)===zo(t)}function jo(e,t){return J(t)?t.findIndex(n=>Bo(n,e)):ee(t)&&Bo(t,e)?0:-1}const _i=e=>e[0]==="_"||e==="$stable",lo=e=>J(e)?e.map(Ue):[Ue(e)],Qa=(e,t,n)=>{const r=Pa((...o)=>lo(t(...o)),n);return r._c=!1,r},yi=(e,t,n)=>{const r=e._ctx;for(const o in e){if(_i(o))continue;const s=e[o];if(ee(s))t[o]=Qa(o,s,r);else if(s!=null){const i=lo(s);t[o]=()=>i}}},bi=(e,t)=>{const n=lo(t);e.slots.default=()=>n},Za=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=ie(t),Hn(t,"_",n)):yi(t,e.slots={})}else e.slots={},t&&bi(e,t);Hn(e.slots,rr,1)},Xa=(e,t,n)=>{const{vnode:r,slots:o}=e;let s=!0,i=he;if(r.shapeFlag&32){const l=t._;l?n&&l===1?s=!1:(Te(o,t),!n&&l===1&&delete o._):(s=!t.$stable,yi(t,o)),i=t}else t&&(bi(e,t),i={default:1});if(s)for(const l in o)!_i(l)&&!(l in i)&&delete o[l]};function nh(e,t){const n=Pe;if(n===null)return e;const r=or(n)||n.proxy,o=e.dirs||(e.dirs=[]);for(let s=0;sjn(d,t&&(J(t)?t[_]:t),n,r,o));return}if(vn(r)&&!o)return;const s=r.shapeFlag&4?or(r.component)||r.component.proxy:r.el,i=o?null:s,{i:l,r:a}=e,c=t&&t.r,f=l.refs===he?l.refs={}:l.refs,p=l.setupState;if(c!=null&&c!==a&&(pe(c)?(f[c]=null,re(p,c)&&(p[c]=null)):Ce(c)&&(c.value=null)),ee(a))pt(a,l,12,[i,f]);else{const d=pe(a),_=Ce(a);if(d||_){const b=()=>{if(e.f){const D=d?f[a]:a.value;o?J(D)&&Ur(D,s):J(D)?D.includes(s)||D.push(s):d?(f[a]=[s],re(p,a)&&(p[a]=f[a])):(a.value=[s],e.k&&(f[e.k]=a.value))}else d?(f[a]=i,re(p,a)&&(p[a]=i)):Ce(a)&&(a.value=i,e.k&&(f[e.k]=i))};i?(b.id=-1,Le(b,n)):b()}}}let st=!1;const In=e=>/svg/.test(e.namespaceURI)&&e.tagName!=="foreignObject",dr=e=>e.nodeType===8;function nc(e){const{mt:t,p:n,o:{patchProp:r,nextSibling:o,parentNode:s,remove:i,insert:l,createComment:a}}=e,c=(g,v)=>{if(!v.hasChildNodes()){n(null,g,v),$n();return}st=!1,f(v.firstChild,g,null,null,null),$n(),st&&console.error("Hydration completed but contains mismatches.")},f=(g,v,P,S,N,V=!1)=>{const H=dr(g)&&g.data==="[",C=()=>b(g,v,P,S,N,H),{type:w,ref:W,shapeFlag:j}=v,Y=g.nodeType;v.el=g;let y=null;switch(w){case _n:Y!==3?y=C():(g.data!==v.children&&(st=!0,g.data=v.children),y=o(g));break;case He:Y!==8||H?y=C():y=o(g);break;case cn:if(Y!==1)y=C();else{y=g;const k=!v.children.length;for(let G=0;G{V=V||!!v.dynamicChildren;const{type:H,props:C,patchFlag:w,shapeFlag:W,dirs:j}=v,Y=H==="input"&&j||H==="option";if(Y||w!==-1){if(j&&Ye(v,null,P,"created"),C)if(Y||!V||w&48)for(const k in C)(Y&&k.endsWith("value")||En(k)&&!sn(k))&&r(g,k,null,C[k],!1,void 0,P);else C.onClick&&r(g,"onClick",null,C.onClick,!1,void 0,P);let y;if((y=C&&C.onVnodeBeforeMount)&&Be(y,P,v),j&&Ye(v,null,P,"beforeMount"),((y=C&&C.onVnodeMounted)||j)&&ii(()=>{y&&Be(y,P,v),j&&Ye(v,null,P,"mounted")},S),W&16&&!(C&&(C.innerHTML||C.textContent))){let k=d(g.firstChild,v,g,P,S,N,V);for(;k;){st=!0;const G=k;k=k.nextSibling,i(G)}}else W&8&&g.textContent!==v.children&&(st=!0,g.textContent=v.children)}return g.nextSibling},d=(g,v,P,S,N,V,H)=>{H=H||!!v.dynamicChildren;const C=v.children,w=C.length;for(let W=0;W{const{slotScopeIds:H}=v;H&&(N=N?N.concat(H):H);const C=s(g),w=d(o(g),v,C,P,S,N,V);return w&&dr(w)&&w.data==="]"?o(v.anchor=w):(st=!0,l(v.anchor=a("]"),C,w),w)},b=(g,v,P,S,N,V)=>{if(st=!0,v.el=null,V){const w=D(g);for(;;){const W=o(g);if(W&&W!==w)i(W);else break}}const H=o(g),C=s(g);return i(g),n(null,v,C,H,P,S,In(C),N),H},D=g=>{let v=0;for(;g;)if(g=o(g),g&&dr(g)&&(g.data==="["&&v++,g.data==="]")){if(v===0)return o(g);v--}return g};return[c,f]}const Le=ii;function rc(e){return oc(e,nc)}function oc(e,t){const n=Hl();n.__VUE__=!0;const{insert:r,remove:o,patchProp:s,createElement:i,createText:l,createComment:a,setText:c,setElementText:f,parentNode:p,nextSibling:d,setScopeId:_=Ke,cloneNode:b,insertStaticContent:D}=e,g=(u,h,m,T=null,A=null,O=null,M=!1,R=null,I=!!h.dynamicChildren)=>{if(u===h)return;u&&!wt(u,h)&&(T=$(u),Se(u,A,O,!0),u=null),h.patchFlag===-2&&(I=!1,h.dynamicChildren=null);const{type:x,ref:U,shapeFlag:z}=h;switch(x){case _n:v(u,h,m,T);break;case He:P(u,h,m,T);break;case cn:u==null&&S(h,m,T,M);break;case Ie:k(u,h,m,T,A,O,M,R,I);break;default:z&1?H(u,h,m,T,A,O,M,R,I):z&6?G(u,h,m,T,A,O,M,R,I):(z&64||z&128)&&x.process(u,h,m,T,A,O,M,R,I,ce)}U!=null&&A&&jn(U,u&&u.ref,O,h||u,!h)},v=(u,h,m,T)=>{if(u==null)r(h.el=l(h.children),m,T);else{const A=h.el=u.el;h.children!==u.children&&c(A,h.children)}},P=(u,h,m,T)=>{u==null?r(h.el=a(h.children||""),m,T):h.el=u.el},S=(u,h,m,T)=>{[u.el,u.anchor]=D(u.children,h,m,T,u.el,u.anchor)},N=({el:u,anchor:h},m,T)=>{let A;for(;u&&u!==h;)A=d(u),r(u,m,T),u=A;r(h,m,T)},V=({el:u,anchor:h})=>{let m;for(;u&&u!==h;)m=d(u),o(u),u=m;o(h)},H=(u,h,m,T,A,O,M,R,I)=>{M=M||h.type==="svg",u==null?C(h,m,T,A,O,M,R,I):j(u,h,A,O,M,R,I)},C=(u,h,m,T,A,O,M,R)=>{let I,x;const{type:U,props:z,shapeFlag:q,transition:Q,patchFlag:oe,dirs:ge}=u;if(u.el&&b!==void 0&&oe===-1)I=u.el=b(u.el);else{if(I=u.el=i(u.type,O,z&&z.is,z),q&8?f(I,u.children):q&16&&W(u.children,I,null,T,A,O&&U!=="foreignObject",M,R),ge&&Ye(u,null,T,"created"),z){for(const me in z)me!=="value"&&!sn(me)&&s(I,me,null,z[me],O,u.children,T,A,L);"value"in z&&s(I,"value",null,z.value),(x=z.onVnodeBeforeMount)&&Be(x,T,u)}w(I,u,u.scopeId,M,T)}ge&&Ye(u,null,T,"beforeMount");const ue=(!A||A&&!A.pendingBranch)&&Q&&!Q.persisted;ue&&Q.beforeEnter(I),r(I,h,m),((x=z&&z.onVnodeMounted)||ue||ge)&&Le(()=>{x&&Be(x,T,u),ue&&Q.enter(I),ge&&Ye(u,null,T,"mounted")},A)},w=(u,h,m,T,A)=>{if(m&&_(u,m),T)for(let O=0;O{for(let x=I;x{const R=h.el=u.el;let{patchFlag:I,dynamicChildren:x,dirs:U}=h;I|=u.patchFlag&16;const z=u.props||he,q=h.props||he;let Q;m&&vt(m,!1),(Q=q.onVnodeBeforeUpdate)&&Be(Q,m,h,u),U&&Ye(h,u,m,"beforeUpdate"),m&&vt(m,!0);const oe=A&&h.type!=="foreignObject";if(x?Y(u.dynamicChildren,x,R,m,T,oe,O):M||be(u,h,R,null,m,T,oe,O,!1),I>0){if(I&16)y(R,h,z,q,m,T,A);else if(I&2&&z.class!==q.class&&s(R,"class",null,q.class,A),I&4&&s(R,"style",z.style,q.style,A),I&8){const ge=h.dynamicProps;for(let ue=0;ue{Q&&Be(Q,m,h,u),U&&Ye(h,u,m,"updated")},T)},Y=(u,h,m,T,A,O,M)=>{for(let R=0;R{if(m!==T){for(const R in T){if(sn(R))continue;const I=T[R],x=m[R];I!==x&&R!=="value"&&s(u,R,x,I,M,h.children,A,O,L)}if(m!==he)for(const R in m)!sn(R)&&!(R in T)&&s(u,R,m[R],null,M,h.children,A,O,L);"value"in T&&s(u,"value",m.value,T.value)}},k=(u,h,m,T,A,O,M,R,I)=>{const x=h.el=u?u.el:l(""),U=h.anchor=u?u.anchor:l("");let{patchFlag:z,dynamicChildren:q,slotScopeIds:Q}=h;Q&&(R=R?R.concat(Q):Q),u==null?(r(x,m,T),r(U,m,T),W(h.children,m,U,A,O,M,R,I)):z>0&&z&64&&q&&u.dynamicChildren?(Y(u.dynamicChildren,q,m,A,O,M,R),(h.key!=null||A&&h===A.subTree)&&wi(u,h,!0)):be(u,h,m,U,A,O,M,R,I)},G=(u,h,m,T,A,O,M,R,I)=>{h.slotScopeIds=R,u==null?h.shapeFlag&512?A.ctx.activate(h,m,T,M,I):le(h,m,T,A,O,M,I):B(u,h,I)},le=(u,h,m,T,A,O,M)=>{const R=u.component=vc(u,T,A);if(Cn(u)&&(R.ctx.renderer=ce),_c(R),R.asyncDep){if(A&&A.registerDep(R,X),!u.el){const I=R.subTree=ye(He);P(null,I,h,m)}return}X(R,u,h,m,A,O,M)},B=(u,h,m)=>{const T=h.component=u.component;if(Ra(u,h,m))if(T.asyncDep&&!T.asyncResolved){ne(T,h,m);return}else T.next=h,wa(T.update),T.update();else h.component=u.component,h.el=u.el,T.vnode=h},X=(u,h,m,T,A,O,M)=>{const R=()=>{if(u.isMounted){let{next:U,bu:z,u:q,parent:Q,vnode:oe}=u,ge=U,ue;vt(u,!1),U?(U.el=oe.el,ne(u,U,M)):U=oe,z&&ar(z),(ue=U.props&&U.props.onVnodeBeforeUpdate)&&Be(ue,Q,U,oe),vt(u,!0);const me=cr(u),Ve=u.subTree;u.subTree=me,g(Ve,me,p(Ve.el),$(Ve),u,A,O),U.el=me.el,ge===null&&Sa(u,me.el),q&&Le(q,A),(ue=U.props&&U.props.onVnodeUpdated)&&Le(()=>Be(ue,Q,U,oe),A)}else{let U;const{el:z,props:q}=h,{bm:Q,m:oe,parent:ge}=u,ue=vn(h);if(vt(u,!1),Q&&ar(Q),!ue&&(U=q&&q.onVnodeBeforeMount)&&Be(U,ge,h),vt(u,!0),z&&Z){const me=()=>{u.subTree=cr(u),Z(z,u.subTree,u,A,null)};ue?h.type.__asyncLoader().then(()=>!u.isUnmounted&&me()):me()}else{const me=u.subTree=cr(u);g(null,me,m,T,u,A,O),h.el=me.el}if(oe&&Le(oe,A),!ue&&(U=q&&q.onVnodeMounted)){const me=h;Le(()=>Be(U,ge,me),A)}h.shapeFlag&256&&u.a&&Le(u.a,A),u.isMounted=!0,h=m=T=null}},I=u.effect=new Gr(R,()=>ro(u.update),u.scope),x=u.update=I.run.bind(I);x.id=u.uid,vt(u,!0),x()},ne=(u,h,m)=>{h.component=u;const T=u.vnode.props;u.vnode=h,u.next=null,Ja(u,h.props,T,m),Xa(u,h.children,m),Wt(),oo(void 0,u.update),Gt()},be=(u,h,m,T,A,O,M,R,I=!1)=>{const x=u&&u.children,U=u?u.shapeFlag:0,z=h.children,{patchFlag:q,shapeFlag:Q}=h;if(q>0){if(q&128){ke(x,z,m,T,A,O,M,R,I);return}else if(q&256){Oe(x,z,m,T,A,O,M,R,I);return}}Q&8?(U&16&&L(x,A,O),z!==x&&f(m,z)):U&16?Q&16?ke(x,z,m,T,A,O,M,R,I):L(x,A,O,!0):(U&8&&f(m,""),Q&16&&W(z,m,T,A,O,M,R,I))},Oe=(u,h,m,T,A,O,M,R,I)=>{u=u||zt,h=h||zt;const x=u.length,U=h.length,z=Math.min(x,U);let q;for(q=0;qU?L(u,A,O,!0,!1,z):W(h,m,T,A,O,M,R,I,z)},ke=(u,h,m,T,A,O,M,R,I)=>{let x=0;const U=h.length;let z=u.length-1,q=U-1;for(;x<=z&&x<=q;){const Q=u[x],oe=h[x]=I?ut(h[x]):Ue(h[x]);if(wt(Q,oe))g(Q,oe,m,null,A,O,M,R,I);else break;x++}for(;x<=z&&x<=q;){const Q=u[z],oe=h[q]=I?ut(h[q]):Ue(h[q]);if(wt(Q,oe))g(Q,oe,m,null,A,O,M,R,I);else break;z--,q--}if(x>z){if(x<=q){const Q=q+1,oe=Qq)for(;x<=z;)Se(u[x],A,O,!0),x++;else{const Q=x,oe=x,ge=new Map;for(x=oe;x<=q;x++){const De=h[x]=I?ut(h[x]):Ue(h[x]);De.key!=null&&ge.set(De.key,x)}let ue,me=0;const Ve=q-oe+1;let kt=!1,Eo=0;const Zt=new Array(Ve);for(x=0;x=Ve){Se(De,A,O,!0);continue}let Ge;if(De.key!=null)Ge=ge.get(De.key);else for(ue=oe;ue<=q;ue++)if(Zt[ue-oe]===0&&wt(De,h[ue])){Ge=ue;break}Ge===void 0?Se(De,A,O,!0):(Zt[Ge-oe]=x+1,Ge>=Eo?Eo=Ge:kt=!0,g(De,h[Ge],m,null,A,O,M,R,I),me++)}const wo=kt?sc(Zt):zt;for(ue=wo.length-1,x=Ve-1;x>=0;x--){const De=oe+x,Ge=h[De],Co=De+1{const{el:O,type:M,transition:R,children:I,shapeFlag:x}=u;if(x&6){$e(u.component.subTree,h,m,T);return}if(x&128){u.suspense.move(h,m,T);return}if(x&64){M.move(u,h,m,ce);return}if(M===Ie){r(O,h,m);for(let z=0;zR.enter(O),A);else{const{leave:z,delayLeave:q,afterLeave:Q}=R,oe=()=>r(O,h,m),ge=()=>{z(O,()=>{oe(),Q&&Q()})};q?q(O,oe,ge):ge()}else r(O,h,m)},Se=(u,h,m,T=!1,A=!1)=>{const{type:O,props:M,ref:R,children:I,dynamicChildren:x,shapeFlag:U,patchFlag:z,dirs:q}=u;if(R!=null&&jn(R,null,m,u,!0),U&256){h.ctx.deactivate(u);return}const Q=U&1&&q,oe=!vn(u);let ge;if(oe&&(ge=M&&M.onVnodeBeforeUnmount)&&Be(ge,h,u),U&6)F(u.component,m,T);else{if(U&128){u.suspense.unmount(m,T);return}Q&&Ye(u,null,h,"beforeUnmount"),U&64?u.type.remove(u,h,m,A,ce,T):x&&(O!==Ie||z>0&&z&64)?L(x,h,m,!1,!0):(O===Ie&&z&384||!A&&U&16)&&L(I,h,m),T&&Qt(u)}(oe&&(ge=M&&M.onVnodeUnmounted)||Q)&&Le(()=>{ge&&Be(ge,h,u),Q&&Ye(u,null,h,"unmounted")},m)},Qt=u=>{const{type:h,el:m,anchor:T,transition:A}=u;if(h===Ie){E(m,T);return}if(h===cn){V(u);return}const O=()=>{o(m),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(u.shapeFlag&1&&A&&!A.persisted){const{leave:M,delayLeave:R}=A,I=()=>M(m,O);R?R(u.el,O,I):I()}else O()},E=(u,h)=>{let m;for(;u!==h;)m=d(u),o(u),u=m;o(h)},F=(u,h,m)=>{const{bum:T,scope:A,update:O,subTree:M,um:R}=u;T&&ar(T),A.stop(),O&&(O.active=!1,Se(M,u,h,m)),R&&Le(R,h),Le(()=>{u.isUnmounted=!0},h),h&&h.pendingBranch&&!h.isUnmounted&&u.asyncDep&&!u.asyncResolved&&u.suspenseId===h.pendingId&&(h.deps--,h.deps===0&&h.resolve())},L=(u,h,m,T=!1,A=!1,O=0)=>{for(let M=O;Mu.shapeFlag&6?$(u.component.subTree):u.shapeFlag&128?u.suspense.next():d(u.anchor||u.el),ae=(u,h,m)=>{u==null?h._vnode&&Se(h._vnode,null,null,!0):g(h._vnode||null,u,h,null,null,null,m),$n(),h._vnode=u},ce={p:g,um:Se,m:$e,r:Qt,mt:le,mc:W,pc:be,pbc:Y,n:$,o:e};let te,Z;return t&&([te,Z]=t(ce)),{render:ae,hydrate:te,createApp:tc(ae,te)}}function vt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function wi(e,t,n=!1){const r=e.children,o=t.children;if(J(r)&&J(o))for(let s=0;s>1,e[n[l]]0&&(t[r]=n[s-1]),n[s]=r)}}for(s=n.length,i=n[s-1];s-- >0;)n[s]=i,i=t[i];return n}const ic=e=>e.__isTeleport,Ci="components";function lc(e,t){return cc(Ci,e,!0,t)||e}const ac=Symbol();function cc(e,t,n=!0,r=!1){const o=Pe||we;if(o){const s=o.type;if(e===Ci){const l=wc(s);if(l&&(l===t||l===Je(t)||l===Zn(Je(t))))return s}const i=Vo(o[e]||s[e],t)||Vo(o.appContext[e],t);return!i&&r?s:i}}function Vo(e,t){return e&&(e[t]||e[Je(t)]||e[Zn(Je(t))])}const Ie=Symbol(void 0),_n=Symbol(void 0),He=Symbol(void 0),cn=Symbol(void 0),un=[];let Ot=null;function nr(e=!1){un.push(Ot=e?null:[])}function uc(){un.pop(),Ot=un[un.length-1]||null}let Vn=1;function Uo(e){Vn+=e}function Ai(e){return e.dynamicChildren=Vn>0?Ot||zt:null,uc(),Vn>0&&Ot&&Ot.push(e),e}function Ti(e,t,n,r,o,s){return Ai(Oi(e,t,n,r,o,s,!0))}function Pi(e,t,n,r,o){return Ai(ye(e,t,n,r,o,!0))}function Un(e){return e?e.__v_isVNode===!0:!1}function wt(e,t){return e.type===t.type&&e.key===t.key}const rr="__vInternal",xi=({key:e})=>e!=null?e:null,Mn=({ref:e,ref_key:t,ref_for:n})=>e!=null?pe(e)||Ce(e)||ee(e)?{i:Pe,r:e,k:t,f:!!n}:e:null;function Oi(e,t=null,n=null,r=0,o=null,s=e===Ie?0:1,i=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&xi(t),ref:t&&Mn(t),scopeId:si,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:r,dynamicProps:o,dynamicChildren:null,appContext:null};return l?(co(a,n),s&128&&e.normalize(a)):n&&(a.shapeFlag|=pe(n)?8:16),Vn>0&&!i&&Ot&&(a.patchFlag>0||s&6)&&a.patchFlag!==32&&Ot.push(a),a}const ye=fc;function fc(e,t=null,n=null,r=0,o=null,s=!1){if((!e||e===ac)&&(e=He),Un(e)){const l=St(e,t,!0);return n&&co(l,n),l}if(Cc(e)&&(e=e.__vccOpts),t){t=dc(t);let{class:l,style:a}=t;l&&!pe(l)&&(t.class=bn(l)),Ee(a)&&(Ws(a)&&!J(a)&&(a=Te({},a)),t.style=Yn(a))}const i=pe(e)?1:La(e)?128:ic(e)?64:Ee(e)?4:ee(e)?2:0;return Oi(e,t,n,r,o,i,s,!0)}function dc(e){return e?Ws(e)||rr in e?Te({},e):e:null}function St(e,t,n=!1){const{props:r,ref:o,patchFlag:s,children:i}=e,l=t?hc(r||{},t):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&xi(l),ref:t&&t.ref?n&&o?J(o)?o.concat(Mn(t)):[o,Mn(t)]:Mn(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ie?s===-1?16:s|16:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&St(e.ssContent),ssFallback:e.ssFallback&&St(e.ssFallback),el:e.el,anchor:e.anchor}}function ao(e=" ",t=0){return ye(_n,null,e,t)}function rh(e,t){const n=ye(cn,null,e);return n.staticCount=t,n}function oh(e="",t=!1){return t?(nr(),Pi(He,null,e)):ye(He,null,e)}function Ue(e){return e==null||typeof e=="boolean"?ye(He):J(e)?ye(Ie,null,e.slice()):typeof e=="object"?ut(e):ye(_n,null,String(e))}function ut(e){return e.el===null||e.memo?e:St(e)}function co(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(J(t))n=16;else if(typeof t=="object")if(r&65){const o=t.default;o&&(o._c&&(o._d=!1),co(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!(rr in t)?t._ctx=Pe:o===3&&Pe&&(Pe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else ee(t)?(t={default:t,_ctx:Pe},n=32):(t=String(t),r&64?(n=16,t=[ao(t)]):n=8);e.children=t,e.shapeFlag|=n}function hc(...e){const t={};for(let n=0;nt(i,l,void 0,s&&s[l]));else{const i=Object.keys(e);o=new Array(i.length);for(let l=0,a=i.length;lUn(t)?!(t.type===He||t.type===Ie&&!Si(t.children)):!0)?e:null}const Dr=e=>e?Ii(e)?or(e)||e.proxy:Dr(e.parent):null,qn=Te(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Dr(e.parent),$root:e=>Dr(e.root),$emit:e=>e.emit,$options:e=>mi(e),$forceUpdate:e=>()=>ro(e.update),$nextTick:e=>no.bind(e.proxy),$watch:e=>Ia.bind(e)}),pc={get({_:e},t){const{ctx:n,setupState:r,data:o,props:s,accessCache:i,type:l,appContext:a}=e;let c;if(t[0]!=="$"){const _=i[t];if(_!==void 0)switch(_){case 1:return r[t];case 2:return o[t];case 4:return n[t];case 3:return s[t]}else{if(r!==he&&re(r,t))return i[t]=1,r[t];if(o!==he&&re(o,t))return i[t]=2,o[t];if((c=e.propsOptions[0])&&re(c,t))return i[t]=3,s[t];if(n!==he&&re(n,t))return i[t]=4,n[t];Lr&&(i[t]=0)}}const f=qn[t];let p,d;if(f)return t==="$attrs"&&Fe(e,"get",t),f(e);if((p=l.__cssModules)&&(p=p[t]))return p;if(n!==he&&re(n,t))return i[t]=4,n[t];if(d=a.config.globalProperties,re(d,t))return d[t]},set({_:e},t,n){const{data:r,setupState:o,ctx:s}=e;return o!==he&&re(o,t)?(o[t]=n,!0):r!==he&&re(r,t)?(r[t]=n,!0):re(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:o,propsOptions:s}},i){let l;return!!n[i]||e!==he&&re(e,i)||t!==he&&re(t,i)||(l=s[0])&&re(l,i)||re(r,i)||re(qn,i)||re(o.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:re(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},mc=Ei();let gc=0;function vc(e,t,n){const r=e.type,o=(t?t.appContext:e.appContext)||mc,s={uid:gc++,vnode:e,type:r,parent:t,appContext:o,root:null,next:null,subTree:null,effect:null,update:null,scope:new Fl(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(o.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:vi(r,o),emitsOptions:oi(r,o),emit:null,emitted:null,propsDefaults:he,inheritAttrs:r.inheritAttrs,ctx:he,data:he,props:he,attrs:he,slots:he,refs:he,setupState:he,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return s.ctx={_:s},s.root=t?t.root:s,s.emit=Ta.bind(null,s),e.ce&&e.ce(s),s}let we=null;const Li=()=>we||Pe,Vt=e=>{we=e,e.scope.on()},Rt=()=>{we&&we.scope.off(),we=null};function Ii(e){return e.vnode.shapeFlag&4}let Ut=!1;function _c(e,t=!1){Ut=t;const{props:n,children:r}=e.vnode,o=Ii(e);Ya(e,n,o,t),Za(e,r);const s=o?yc(e,t):void 0;return Ut=!1,s}function yc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Gs(new Proxy(e.ctx,pc));const{setup:r}=n;if(r){const o=e.setupContext=r.length>1?Ec(e):null;Vt(e),Wt();const s=pt(r,e,0,[e.props,o]);if(Gt(),Rt(),Is(s)){if(s.then(Rt,Rt),t)return s.then(i=>{qo(e,i,t)}).catch(i=>{wn(i,e,0)});e.asyncDep=s}else qo(e,s,t)}else ki(e,t)}function qo(e,t,n){ee(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ee(t)&&(e.setupState=Xs(t)),ki(e,n)}let Ko;function ki(e,t,n){const r=e.type;if(!e.render){if(!t&&Ko&&!r.render){const o=r.template;if(o){const{isCustomElement:s,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:a}=r,c=Te(Te({isCustomElement:s,delimiters:l},i),a);r.render=Ko(o,c)}}e.render=r.render||Ke}Vt(e),Wt(),Ua(e),Gt(),Rt()}function bc(e){return new Proxy(e.attrs,{get(t,n){return Fe(e,"get","$attrs"),t[n]}})}function Ec(e){const t=r=>{e.exposed=r||{}};let n;return{get attrs(){return n||(n=bc(e))},slots:e.slots,emit:e.emit,expose:t}}function or(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Xs(Gs(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in qn)return qn[n](e)}}))}function wc(e){return ee(e)&&e.displayName||e.name}function Cc(e){return ee(e)&&"__vccOpts"in e}const _e=(e,t)=>ya(e,t,Ut);function ve(e,t,n){const r=arguments.length;return r===2?Ee(t)&&!J(t)?Un(t)?ye(e,null,[t]):ye(e,t):ye(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Un(n)&&(n=[n]),ye(e,t,n))}const Ac="3.2.33",Tc="http://www.w3.org/2000/svg",Ct=typeof document!="undefined"?document:null,Wo=Ct&&Ct.createElement("template"),Pc={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t?Ct.createElementNS(Tc,e):Ct.createElement(e,n?{is:n}:void 0);return e==="select"&&r&&r.multiple!=null&&o.setAttribute("multiple",r.multiple),o},createText:e=>Ct.createTextNode(e),createComment:e=>Ct.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ct.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},cloneNode(e){const t=e.cloneNode(!0);return"_value"in e&&(t._value=e._value),t},insertStaticContent(e,t,n,r,o,s){const i=n?n.previousSibling:t.lastChild;if(o&&(o===s||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===s||!(o=o.nextSibling)););else{Wo.innerHTML=r?`${e}`:e;const l=Wo.content;if(r){const a=l.firstChild;for(;a.firstChild;)l.appendChild(a.firstChild);l.removeChild(a)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function xc(e,t,n){const r=e._vtc;r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function Oc(e,t,n){const r=e.style,o=pe(n);if(n&&!o){for(const s in n)Mr(r,s,n[s]);if(t&&!pe(t))for(const s in t)n[s]==null&&Mr(r,s,"")}else{const s=r.display;o?t!==n&&(r.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(r.display=s)}}const Go=/\s*!important$/;function Mr(e,t,n){if(J(n))n.forEach(r=>Mr(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Rc(e,t);Go.test(n)?e.setProperty(Lt(r),n.replace(Go,""),"important"):e[r]=n}}const Yo=["Webkit","Moz","ms"],hr={};function Rc(e,t){const n=hr[t];if(n)return n;let r=Je(t);if(r!=="filter"&&r in e)return hr[t]=r;r=Zn(r);for(let o=0;o{let e=Date.now,t=!1;if(typeof window!="undefined"){Date.now()>document.createEvent("Event").timeStamp&&(e=()=>performance.now());const n=navigator.userAgent.match(/firefox\/(\d+)/i);t=!!(n&&Number(n[1])<=53)}return[e,t]})();let Nr=0;const kc=Promise.resolve(),Dc=()=>{Nr=0},Mc=()=>Nr||(kc.then(Dc),Nr=Di());function Nc(e,t,n,r){e.addEventListener(t,n,r)}function Hc(e,t,n,r){e.removeEventListener(t,n,r)}function Fc(e,t,n,r,o=null){const s=e._vei||(e._vei={}),i=s[t];if(r&&i)i.value=r;else{const[l,a]=$c(t);if(r){const c=s[t]=zc(r,o);Nc(e,l,c,a)}else i&&(Hc(e,l,i,a),s[t]=void 0)}}const Qo=/(?:Once|Passive|Capture)$/;function $c(e){let t;if(Qo.test(e)){t={};let n;for(;n=e.match(Qo);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[Lt(e.slice(2)),t]}function zc(e,t){const n=r=>{const o=r.timeStamp||Di();(Ic||o>=n.attached-1)&&je(Bc(r,n.value),t,5,[r])};return n.value=e,n.attached=Mc(),n}function Bc(e,t){if(J(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>o=>!o._stopped&&r&&r(o))}else return t}const Zo=/^on[a-z]/,jc=(e,t,n,r,o=!1,s,i,l,a)=>{t==="class"?xc(e,r,o):t==="style"?Oc(e,n,r):En(t)?Vr(t)||Fc(e,t,n,r,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Vc(e,t,r,o))?Lc(e,t,r,s,i,l,a):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Sc(e,t,r,o))};function Vc(e,t,n,r){return r?!!(t==="innerHTML"||t==="textContent"||t in e&&Zo.test(t)&&ee(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||Zo.test(t)&&pe(n)?!1:t in e}const it="transition",Xt="animation",uo=(e,{slots:t})=>ve(ci,Uc(e),t);uo.displayName="Transition";const Mi={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};uo.props=Te({},ci.props,Mi);const _t=(e,t=[])=>{J(e)?e.forEach(n=>n(...t)):e&&e(...t)},Xo=e=>e?J(e)?e.some(t=>t.length>1):e.length>1:!1;function Uc(e){const t={};for(const y in e)y in Mi||(t[y]=e[y]);if(e.css===!1)return t;const{name:n="v",type:r,duration:o,enterFromClass:s=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:a=s,appearActiveClass:c=i,appearToClass:f=l,leaveFromClass:p=`${n}-leave-from`,leaveActiveClass:d=`${n}-leave-active`,leaveToClass:_=`${n}-leave-to`}=e,b=qc(o),D=b&&b[0],g=b&&b[1],{onBeforeEnter:v,onEnter:P,onEnterCancelled:S,onLeave:N,onLeaveCancelled:V,onBeforeAppear:H=v,onAppear:C=P,onAppearCancelled:w=S}=t,W=(y,k,G)=>{Dt(y,k?f:l),Dt(y,k?c:i),G&&G()},j=(y,k)=>{Dt(y,_),Dt(y,d),k&&k()},Y=y=>(k,G)=>{const le=y?C:P,B=()=>W(k,y,G);_t(le,[k,B]),es(()=>{Dt(k,y?a:s),lt(k,y?f:l),Xo(le)||ts(k,r,D,B)})};return Te(t,{onBeforeEnter(y){_t(v,[y]),lt(y,s),lt(y,i)},onBeforeAppear(y){_t(H,[y]),lt(y,a),lt(y,c)},onEnter:Y(!1),onAppear:Y(!0),onLeave(y,k){const G=()=>j(y,k);lt(y,p),Gc(),lt(y,d),es(()=>{Dt(y,p),lt(y,_),Xo(N)||ts(y,r,g,G)}),_t(N,[y,G])},onEnterCancelled(y){W(y,!1),_t(S,[y])},onAppearCancelled(y){W(y,!0),_t(w,[y])},onLeaveCancelled(y){j(y),_t(V,[y])}})}function qc(e){if(e==null)return null;if(Ee(e))return[pr(e.enter),pr(e.leave)];{const t=pr(e);return[t,t]}}function pr(e){return Ms(e)}function lt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e._vtc||(e._vtc=new Set)).add(t)}function Dt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function es(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Kc=0;function ts(e,t,n,r){const o=e._endId=++Kc,s=()=>{o===e._endId&&r()};if(n)return setTimeout(s,n);const{type:i,timeout:l,propCount:a}=Wc(e,t);if(!i)return r();const c=i+"end";let f=0;const p=()=>{e.removeEventListener(c,d),s()},d=_=>{_.target===e&&++f>=a&&p()};setTimeout(()=>{f(n[b]||"").split(", "),o=r(it+"Delay"),s=r(it+"Duration"),i=ns(o,s),l=r(Xt+"Delay"),a=r(Xt+"Duration"),c=ns(l,a);let f=null,p=0,d=0;t===it?i>0&&(f=it,p=i,d=s.length):t===Xt?c>0&&(f=Xt,p=c,d=a.length):(p=Math.max(i,c),f=p>0?i>c?it:Xt:null,d=f?f===it?s.length:a.length:0);const _=f===it&&/\b(transform|all)(,|$)/.test(n[it+"Property"]);return{type:f,timeout:p,propCount:d,hasTransform:_}}function ns(e,t){for(;e.lengthrs(n)+rs(e[r])))}function rs(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function Gc(){return document.body.offsetHeight}const Yc={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},ih=(e,t)=>n=>{if(!("key"in n))return;const r=Lt(n.key);if(t.some(o=>o===r||Yc[o]===r))return e(n)},lh={beforeMount(e,{value:t},{transition:n}){e._vod=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):en(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),en(e,!0),r.enter(e)):r.leave(e,()=>{en(e,!1)}):en(e,t))},beforeUnmount(e,{value:t}){en(e,t)}};function en(e,t){e.style.display=t?e._vod:"none"}const Jc=Te({patchProp:jc},Pc);let mr,os=!1;function Qc(){return mr=os?mr:rc(Jc),os=!0,mr}const Zc=(...e)=>{const t=Qc().createApp(...e),{mount:n}=t;return t.mount=r=>{const o=Xc(r);if(o)return n(o,!0,o instanceof SVGElement)},t};function Xc(e){return pe(e)?document.querySelector(e):e}const eu={base:"/whispr/",lang:"en-US",title:"whispr",description:"whispr docs",head:[],locales:{}};var tu=([e,t,n])=>e==="meta"&&t.name?`${e}.${t.name}`:["title","base"].includes(e)?e:e==="template"&&t.id?`${e}.${t.id}`:JSON.stringify([e,t,n]),nu=e=>{const t=new Set,n=[];return e.forEach(r=>{const o=tu(r);t.has(o)||(t.add(o),n.push(r))}),n},ru=e=>/^(https?:)?\/\//.test(e),ah=e=>/^mailto:/.test(e),ch=e=>/^tel:/.test(e),Ni=e=>Object.prototype.toString.call(e)==="[object Object]",ou=e=>e.replace(/\/$/,""),su=e=>e.replace(/^\//,""),Hi=(e,t)=>{const n=Object.keys(e).sort((r,o)=>{const s=o.split("/").length-r.split("/").length;return s!==0?s:o.length-r.length});for(const r of n)if(t.startsWith(r))return r;return"/"};const Fi={"v-8daa1a0e":fe(()=>K(()=>import("./index.html.de48bec8.js"),[])),"v-146e5374":fe(()=>K(()=>import("./apm.html.02964634.js"),[])),"v-2eb76c63":fe(()=>K(()=>import("./fileupload.html.44792f0e.js"),[])),"v-ecba32a0":fe(()=>K(()=>import("./indexing.html.11e685eb.js"),[])),"v-6ca815f4":fe(()=>K(()=>import("./installation.html.e121ad8e.js"),[])),"v-27b6bb40":fe(()=>K(()=>import("./security.html.52c75e1d.js"),[])),"v-53401e42":fe(()=>K(()=>import("./testing.html.835416e6.js"),[])),"v-fe842d44":fe(()=>K(()=>import("./graphql.html.03b13ad6.js"),[])),"v-0e4a26f1":fe(()=>K(()=>import("./introduction.html.bc8e760c.js"),[])),"v-e9130d12":fe(()=>K(()=>import("./rest.html.0c842940.js"),[])),"v-63e82ae3":fe(()=>K(()=>import("./index.html.2dc9feff.js"),[])),"v-3ea3fa0e":fe(()=>K(()=>import("./building.html.8cacc95a.js"),[])),"v-76cfe0bc":fe(()=>K(()=>import("./community.html.46dd88f7.js"),[])),"v-141584aa":fe(()=>K(()=>import("./credits.html.4ce3f6ef.js"),[])),"v-7e30aeec":fe(()=>K(()=>import("./guidelines.html.0e0b48bd.js"),[])),"v-17f9b51d":fe(()=>K(()=>import("./index.html.68dbe7c0.js"),[])),"v-a8a674e6":fe(()=>K(()=>import("./index.html.c82bb0a5.js"),[])),"v-712e14fc":fe(()=>K(()=>import("./index.html.b0ef13ea.js"),[])),"v-66de8e88":fe(()=>K(()=>import("./tagGroup.html.6dda7a7d.js"),[])),"v-581890ae":fe(()=>K(()=>import("./webhook.html.266805ac.js"),[])),"v-4b2698d0":fe(()=>K(()=>import("./whisp.html.effd2250.js"),[])),"v-67d16688":fe(()=>K(()=>import("./index.html.7b3c1128.js"),[])),"v-47ce024e":fe(()=>K(()=>import("./index.html.a10427ff.js"),[])),"v-43f4d00c":fe(()=>K(()=>import("./index.html.859439a5.js"),[])),"v-3706649a":fe(()=>K(()=>import("./404.html.37abe700.js"),[]))},iu={"404":fe(()=>K(()=>import("./404.73dacac9.js"),[])),Layout:fe(()=>K(()=>import("./Layout.e9dc85c7.js"),[]))};var $i=xe(Al),zi=Zr({key:"",path:"",title:"",lang:"",frontmatter:{},excerpt:"",headers:[]}),et=xe(zi),An=()=>et;bo.webpackHot&&(__VUE_HMR_RUNTIME__.updatePageData=e=>{$i.value[e.key]=()=>Promise.resolve(e),e.key===et.value.key&&(et.value=e)});var Bi=Symbol(""),lu=()=>{const e=Ae(Bi);if(!e)throw new Error("usePageFrontmatter() is called without provider.");return e},ji=Symbol(""),au=()=>{const e=Ae(ji);if(!e)throw new Error("usePageHead() is called without provider.");return e},cu=Symbol(""),Vi=Symbol(""),uu=()=>{const e=Ae(Vi);if(!e)throw new Error("usePageLang() is called without provider.");return e},fo=Symbol(""),fu=()=>{const e=Ae(fo);if(!e)throw new Error("useRouteLocale() is called without provider.");return e},dt=xe(eu),du=()=>dt;bo.webpackHot&&(__VUE_HMR_RUNTIME__.updateSiteData=e=>{dt.value=e});var Ui=Symbol(""),uh=()=>{const e=Ae(Ui);if(!e)throw new Error("useSiteLocaleData() is called without provider.");return e},hu=Symbol(""),bt=Yt({resolvePageData:async e=>{const t=$i.value[e],n=await(t==null?void 0:t());return n!=null?n:zi},resolvePageFrontmatter:e=>e.frontmatter,resolvePageHead:(e,t,n)=>{const r=pe(t.description)?t.description:n.description,o=[...J(t.head)?t.head:[],...n.head,["title",{},e],["meta",{name:"description",content:r}]];return nu(o)},resolvePageHeadTitle:(e,t)=>`${e.title?`${e.title} | `:""}${t.title}`,resolvePageLang:e=>e.lang||"en",resolveRouteLocale:(e,t)=>Hi(e,t),resolveSiteLocaleData:(e,t)=>Qe(Qe({},e),e.locales[t])}),pu=We({setup(e,t){const n=xe(!1);return gt(()=>{n.value=!0}),()=>{var r,o;return n.value?(o=(r=t.slots).default)==null?void 0:o.call(r):null}}}),ho=e=>{let t;e.pageKey?t=e.pageKey:t=An().value.key;const n=Fi[t];return n?ve(n):ve("div","404 Not Found")};ho.displayName="Content";ho.props={pageKey:{type:String,required:!1}};var ss=We({name:"Vuepress",setup(){const e=An(),t=_e(()=>{let n;if(e.value.path){const r=e.value.frontmatter.layout;pe(r)?n=r:n="Layout"}else n="404";return iu[n]||lc(n,!1)});return()=>ve(t.value)}}),mu=e=>ru(e)?e:`${du().value.base}${su(e)}`,It=e=>e;function qi(e,t,n){var r,o,s;t===void 0&&(t=50),n===void 0&&(n={});var i=(r=n.isImmediate)!=null&&r,l=(o=n.callback)!=null&&o,a=n.maxWait,c=Date.now(),f=[];function p(){if(a!==void 0){var _=Date.now()-c;if(_+t>=a)return a-_}return t}var d=function(){var _=[].slice.call(arguments),b=this;return new Promise(function(D,g){var v=i&&s===void 0;if(s!==void 0&&clearTimeout(s),s=setTimeout(function(){if(s=void 0,c=Date.now(),!i){var S=e.apply(b,_);l&&l(S),f.forEach(function(N){return(0,N.resolve)(S)}),f=[]}},p()),v){var P=e.apply(b,_);return l&&l(P),D(P)}f.push({resolve:D,reject:g})})};return d.cancel=function(_){s!==void 0&&clearTimeout(s),f.forEach(function(b){return(0,b.reject)(_)}),f=[]},d}/*!
   * vue-router v4.0.15
   * (c) 2022 Eduardo San Martin Morote
   * @license MIT
diff --git a/assets/building.html.28298084.js b/assets/building.html.28298084.js
deleted file mode 100644
index 71a1bd012..000000000
--- a/assets/building.html.28298084.js
+++ /dev/null
@@ -1 +0,0 @@
-const t={key:"v-3ea3fa0e",path:"/contributing/building.html",title:"Building",lang:"en-US",frontmatter:{},excerpt:"",headers:[],git:{updatedTime:1719405314e3,contributors:[{name:"sairam charan",email:"mohanvenkat459@gmail.com",commits:1}]},filePathRelative:"contributing/building.md"};export{t as data};
diff --git a/assets/building.html.61193374.js b/assets/building.html.61193374.js
new file mode 100644
index 000000000..d3af4eb81
--- /dev/null
+++ b/assets/building.html.61193374.js
@@ -0,0 +1 @@
+const t={key:"v-3ea3fa0e",path:"/contributing/building.html",title:"Building",lang:"en-US",frontmatter:{},excerpt:"",headers:[],git:{updatedTime:1719405734e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",commits:1}]},filePathRelative:"contributing/building.md"};export{t as data};
diff --git a/assets/building.html.efff41e5.js b/assets/building.html.8cacc95a.js
similarity index 80%
rename from assets/building.html.efff41e5.js
rename to assets/building.html.8cacc95a.js
index 4228a2317..8eaa21604 100644
--- a/assets/building.html.efff41e5.js
+++ b/assets/building.html.8cacc95a.js
@@ -1 +1 @@
-import{_ as e,o as t,a,b as i,e as n}from"./app.073399da.js";const o={},s={id:"building",tabindex:"-1"},_=i("a",{class:"header-anchor",href:"#building","aria-hidden":"true"},"#",-1),c=n(" Building"),d=[_,c];function r(l,h){return t(),a("h1",s,d)}var f=e(o,[["render",r],["__file","building.html.vue"]]);export{f as default};
+import{_ as e,o as t,a,b as i,e as n}from"./app.2353e9b9.js";const o={},s={id:"building",tabindex:"-1"},_=i("a",{class:"header-anchor",href:"#building","aria-hidden":"true"},"#",-1),c=n(" Building"),d=[_,c];function r(l,h){return t(),a("h1",s,d)}var f=e(o,[["render",r],["__file","building.html.vue"]]);export{f as default};
diff --git a/assets/community.html.0a51836b.js b/assets/community.html.0a51836b.js
new file mode 100644
index 000000000..5bc2ccbc1
--- /dev/null
+++ b/assets/community.html.0a51836b.js
@@ -0,0 +1 @@
+const t={key:"v-76cfe0bc",path:"/contributing/community.html",title:"Community",lang:"en-US",frontmatter:{},excerpt:"",headers:[],git:{updatedTime:1719405734e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",commits:1}]},filePathRelative:"contributing/community.md"};export{t as data};
diff --git a/assets/community.html.71a6578a.js b/assets/community.html.46dd88f7.js
similarity index 80%
rename from assets/community.html.71a6578a.js
rename to assets/community.html.46dd88f7.js
index bbd602414..5317ad866 100644
--- a/assets/community.html.71a6578a.js
+++ b/assets/community.html.46dd88f7.js
@@ -1 +1 @@
-import{_ as e,o as t,a as o,b as c,e as a}from"./app.073399da.js";const n={},s={id:"community",tabindex:"-1"},_=c("a",{class:"header-anchor",href:"#community","aria-hidden":"true"},"#",-1),r=a(" Community"),i=[_,r];function m(d,h){return t(),o("h1",s,i)}var f=e(n,[["render",m],["__file","community.html.vue"]]);export{f as default};
+import{_ as e,o as t,a as o,b as c,e as a}from"./app.2353e9b9.js";const n={},s={id:"community",tabindex:"-1"},_=c("a",{class:"header-anchor",href:"#community","aria-hidden":"true"},"#",-1),r=a(" Community"),i=[_,r];function m(d,h){return t(),o("h1",s,i)}var f=e(n,[["render",m],["__file","community.html.vue"]]);export{f as default};
diff --git a/assets/community.html.c07386d6.js b/assets/community.html.c07386d6.js
deleted file mode 100644
index b97d084ec..000000000
--- a/assets/community.html.c07386d6.js
+++ /dev/null
@@ -1 +0,0 @@
-const t={key:"v-76cfe0bc",path:"/contributing/community.html",title:"Community",lang:"en-US",frontmatter:{},excerpt:"",headers:[],git:{updatedTime:1719405314e3,contributors:[{name:"sairam charan",email:"mohanvenkat459@gmail.com",commits:1}]},filePathRelative:"contributing/community.md"};export{t as data};
diff --git a/assets/credits.html.9d3378ef.js b/assets/credits.html.4ce3f6ef.js
similarity index 80%
rename from assets/credits.html.9d3378ef.js
rename to assets/credits.html.4ce3f6ef.js
index 14aa29b26..113ebce46 100644
--- a/assets/credits.html.9d3378ef.js
+++ b/assets/credits.html.4ce3f6ef.js
@@ -1 +1 @@
-import{_ as e,o as t,a as s,b as r,e as c}from"./app.073399da.js";const a={},o={id:"credits",tabindex:"-1"},_=r("a",{class:"header-anchor",href:"#credits","aria-hidden":"true"},"#",-1),d=c(" Credits"),i=[_,d];function n(h,f){return t(),s("h1",o,i)}var m=e(a,[["render",n],["__file","credits.html.vue"]]);export{m as default};
+import{_ as e,o as t,a as s,b as r,e as c}from"./app.2353e9b9.js";const a={},o={id:"credits",tabindex:"-1"},_=r("a",{class:"header-anchor",href:"#credits","aria-hidden":"true"},"#",-1),d=c(" Credits"),i=[_,d];function n(h,f){return t(),s("h1",o,i)}var m=e(a,[["render",n],["__file","credits.html.vue"]]);export{m as default};
diff --git a/assets/credits.html.e0bb079f.js b/assets/credits.html.e0bb079f.js
deleted file mode 100644
index 798049490..000000000
--- a/assets/credits.html.e0bb079f.js
+++ /dev/null
@@ -1 +0,0 @@
-const t={key:"v-141584aa",path:"/contributing/credits.html",title:"Credits",lang:"en-US",frontmatter:{},excerpt:"",headers:[],git:{updatedTime:1719405314e3,contributors:[{name:"sairam charan",email:"mohanvenkat459@gmail.com",commits:1}]},filePathRelative:"contributing/credits.md"};export{t as data};
diff --git a/assets/credits.html.e2e0e4df.js b/assets/credits.html.e2e0e4df.js
new file mode 100644
index 000000000..0379b8588
--- /dev/null
+++ b/assets/credits.html.e2e0e4df.js
@@ -0,0 +1 @@
+const t={key:"v-141584aa",path:"/contributing/credits.html",title:"Credits",lang:"en-US",frontmatter:{},excerpt:"",headers:[],git:{updatedTime:1719405734e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",commits:1}]},filePathRelative:"contributing/credits.md"};export{t as data};
diff --git a/assets/fileupload.html.fde70eab.js b/assets/fileupload.html.44792f0e.js
similarity index 99%
rename from assets/fileupload.html.fde70eab.js
rename to assets/fileupload.html.44792f0e.js
index 0b7294fcf..a9bd21fb4 100644
--- a/assets/fileupload.html.fde70eab.js
+++ b/assets/fileupload.html.44792f0e.js
@@ -1,4 +1,4 @@
-import{_ as n,c as s}from"./app.073399da.js";const a={},e=s(`

File Upload

AWS Dependency

WARNING

This feature is currently only available with AWS.

WARNING

This feature is only supported by the GraphQL-API, not the REST-API.

You need to provide the following environment variable.

# Optional
+import{_ as n,c as s}from"./app.2353e9b9.js";const a={},e=s(`

File Upload

AWS Dependency

WARNING

This feature is currently only available with AWS.

WARNING

This feature is only supported by the GraphQL-API, not the REST-API.

You need to provide the following environment variable.

# Optional
 AWS_S3_ENDPOINT # To set the S3 endpoint to something else then the default
 
 # Required
diff --git a/assets/fileupload.html.d1244622.js b/assets/fileupload.html.52907f0b.js
similarity index 61%
rename from assets/fileupload.html.d1244622.js
rename to assets/fileupload.html.52907f0b.js
index 5966696a0..b4a321f4e 100644
--- a/assets/fileupload.html.d1244622.js
+++ b/assets/fileupload.html.52907f0b.js
@@ -1 +1 @@
-const e={key:"v-2eb76c63",path:"/fileupload.html",title:"File Upload",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"AWS Dependency",slug:"aws-dependency",children:[]},{level:2,title:"Usage",slug:"usage",children:[{level:3,title:"Upload",slug:"upload",children:[]},{level:3,title:"Download",slug:"download",children:[]}]}],git:{updatedTime:1719405314e3,contributors:[{name:"sairam charan",email:"mohanvenkat459@gmail.com",commits:1}]},filePathRelative:"fileupload.md"};export{e as data};
+const e={key:"v-2eb76c63",path:"/fileupload.html",title:"File Upload",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"AWS Dependency",slug:"aws-dependency",children:[]},{level:2,title:"Usage",slug:"usage",children:[{level:3,title:"Upload",slug:"upload",children:[]},{level:3,title:"Download",slug:"download",children:[]}]}],git:{updatedTime:1719405734e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",commits:1}]},filePathRelative:"fileupload.md"};export{e as data};
diff --git a/assets/graphql.html.11d3cf34.js b/assets/graphql.html.03b13ad6.js
similarity index 99%
rename from assets/graphql.html.11d3cf34.js
rename to assets/graphql.html.03b13ad6.js
index 3e73ebf35..e55a7f5c9 100644
--- a/assets/graphql.html.11d3cf34.js
+++ b/assets/graphql.html.03b13ad6.js
@@ -1,4 +1,4 @@
-import{_ as l,r as p,o as r,a as d,b as n,d as e,w as t,F as u,e as s,c as i}from"./app.073399da.js";const c={},h=n("h1",{id:"graphql-api",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#graphql-api","aria-hidden":"true"},"#"),s(" GraphQL API")],-1),v=s("In this section we will be providing examples that you can use inside your very own playground available here "),m={href:"http://localhost:3000/graphql",target:"_blank",rel:"noopener noreferrer"},b=s("http://localhost:3000/graphql"),g=s(" (if you activated it)."),k=n("h2",{id:"whisps-query",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#whisps-query","aria-hidden":"true"},"#"),s(" Whisps: Query")],-1),_=n("h3",{id:"whispbyid",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#whispbyid","aria-hidden":"true"},"#"),s(" whispById")],-1),f=s("Retrieves the matching whisp by its "),q=n("code",null,"_id",-1),y=s("."),w=i(`
query getWhispById($whispId: String!) {
+import{_ as l,r as p,o as r,a as d,b as n,d as e,w as t,F as u,e as s,c as i}from"./app.2353e9b9.js";const c={},h=n("h1",{id:"graphql-api",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#graphql-api","aria-hidden":"true"},"#"),s(" GraphQL API")],-1),v=s("In this section we will be providing examples that you can use inside your very own playground available here "),m={href:"http://localhost:3000/graphql",target:"_blank",rel:"noopener noreferrer"},b=s("http://localhost:3000/graphql"),g=s(" (if you activated it)."),k=n("h2",{id:"whisps-query",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#whisps-query","aria-hidden":"true"},"#"),s(" Whisps: Query")],-1),_=n("h3",{id:"whispbyid",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#whispbyid","aria-hidden":"true"},"#"),s(" whispById")],-1),f=s("Retrieves the matching whisp by its "),q=n("code",null,"_id",-1),y=s("."),w=i(`
query getWhispById($whispId: String!) {
   whispById(
     id: $whispId
   ) {
diff --git a/assets/graphql.html.a934322d.js b/assets/graphql.html.dcb64a54.js
similarity index 90%
rename from assets/graphql.html.a934322d.js
rename to assets/graphql.html.dcb64a54.js
index 71ee3e899..51ff2a4c7 100644
--- a/assets/graphql.html.a934322d.js
+++ b/assets/graphql.html.dcb64a54.js
@@ -1 +1 @@
-const e={key:"v-fe842d44",path:"/api/graphql.html",title:"GraphQL API",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Whisps: Query",slug:"whisps-query",children:[{level:3,title:"whispById",slug:"whispbyid",children:[]},{level:3,title:"whisps",slug:"whisps",children:[]},{level:3,title:"countWhisps",slug:"countwhisps",children:[]}]},{level:2,title:"Whisps: Mutation",slug:"whisps-mutation",children:[{level:3,title:"createWhisp",slug:"createwhisp",children:[]},{level:3,title:"updateWhisp",slug:"updatewhisp",children:[]},{level:3,title:"replaceWhisp",slug:"replacewhisp",children:[]},{level:3,title:"deleteWhisp",slug:"deletewhisp",children:[]}]},{level:2,title:"Whisps: Subscription",slug:"whisps-subscription",children:[{level:3,title:"whispAdded",slug:"whispadded",children:[]}]},{level:2,title:"TagGroups: Query",slug:"taggroups-query",children:[{level:3,title:"tagGroupById",slug:"taggroupbyid",children:[]},{level:3,title:"tagGroups",slug:"taggroups",children:[]}]},{level:2,title:"TagGroups: Mutation",slug:"taggroups-mutation",children:[{level:3,title:"createTagGroup",slug:"createtaggroup",children:[]},{level:3,title:"updateTagGroup",slug:"updatetaggroup",children:[]},{level:3,title:"replaceTagGroup",slug:"replacetaggroup",children:[]},{level:3,title:"deleteTagGroup",slug:"deletetaggroup",children:[]}]},{level:2,title:"Webhooks: Query",slug:"webhooks-query",children:[{level:3,title:"webhooks",slug:"webhooks",children:[]}]},{level:2,title:"Webhooks: Mutation",slug:"webhooks-mutation",children:[{level:3,title:"createWebhook",slug:"createwebhook",children:[]},{level:3,title:"deleteWebhook",slug:"deletewebhook",children:[]}]}],git:{updatedTime:1719405314e3,contributors:[{name:"sairam charan",email:"mohanvenkat459@gmail.com",commits:1}]},filePathRelative:"api/graphql.md"};export{e as data};
+const e={key:"v-fe842d44",path:"/api/graphql.html",title:"GraphQL API",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Whisps: Query",slug:"whisps-query",children:[{level:3,title:"whispById",slug:"whispbyid",children:[]},{level:3,title:"whisps",slug:"whisps",children:[]},{level:3,title:"countWhisps",slug:"countwhisps",children:[]}]},{level:2,title:"Whisps: Mutation",slug:"whisps-mutation",children:[{level:3,title:"createWhisp",slug:"createwhisp",children:[]},{level:3,title:"updateWhisp",slug:"updatewhisp",children:[]},{level:3,title:"replaceWhisp",slug:"replacewhisp",children:[]},{level:3,title:"deleteWhisp",slug:"deletewhisp",children:[]}]},{level:2,title:"Whisps: Subscription",slug:"whisps-subscription",children:[{level:3,title:"whispAdded",slug:"whispadded",children:[]}]},{level:2,title:"TagGroups: Query",slug:"taggroups-query",children:[{level:3,title:"tagGroupById",slug:"taggroupbyid",children:[]},{level:3,title:"tagGroups",slug:"taggroups",children:[]}]},{level:2,title:"TagGroups: Mutation",slug:"taggroups-mutation",children:[{level:3,title:"createTagGroup",slug:"createtaggroup",children:[]},{level:3,title:"updateTagGroup",slug:"updatetaggroup",children:[]},{level:3,title:"replaceTagGroup",slug:"replacetaggroup",children:[]},{level:3,title:"deleteTagGroup",slug:"deletetaggroup",children:[]}]},{level:2,title:"Webhooks: Query",slug:"webhooks-query",children:[{level:3,title:"webhooks",slug:"webhooks",children:[]}]},{level:2,title:"Webhooks: Mutation",slug:"webhooks-mutation",children:[{level:3,title:"createWebhook",slug:"createwebhook",children:[]},{level:3,title:"deleteWebhook",slug:"deletewebhook",children:[]}]}],git:{updatedTime:1719405734e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",commits:1}]},filePathRelative:"api/graphql.md"};export{e as data};
diff --git a/assets/guidelines.html.cdc1e64e.js b/assets/guidelines.html.0e0b48bd.js
similarity index 81%
rename from assets/guidelines.html.cdc1e64e.js
rename to assets/guidelines.html.0e0b48bd.js
index 54168e611..93b8e04d7 100644
--- a/assets/guidelines.html.cdc1e64e.js
+++ b/assets/guidelines.html.0e0b48bd.js
@@ -1 +1 @@
-import{_ as e,o as s,a as t,b as a,e as i}from"./app.073399da.js";const n={},o={id:"guidelines",tabindex:"-1"},_=a("a",{class:"header-anchor",href:"#guidelines","aria-hidden":"true"},"#",-1),c=i(" Guidelines"),d=[_,c];function r(l,h){return s(),t("h1",o,d)}var f=e(n,[["render",r],["__file","guidelines.html.vue"]]);export{f as default};
+import{_ as e,o as s,a as t,b as a,e as i}from"./app.2353e9b9.js";const n={},o={id:"guidelines",tabindex:"-1"},_=a("a",{class:"header-anchor",href:"#guidelines","aria-hidden":"true"},"#",-1),c=i(" Guidelines"),d=[_,c];function r(l,h){return s(),t("h1",o,d)}var f=e(n,[["render",r],["__file","guidelines.html.vue"]]);export{f as default};
diff --git a/assets/guidelines.html.76df967c.js b/assets/guidelines.html.76df967c.js
new file mode 100644
index 000000000..83a1b68b7
--- /dev/null
+++ b/assets/guidelines.html.76df967c.js
@@ -0,0 +1 @@
+const e={key:"v-7e30aeec",path:"/contributing/guidelines.html",title:"Guidelines",lang:"en-US",frontmatter:{},excerpt:"",headers:[],git:{updatedTime:1719405734e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",commits:1}]},filePathRelative:"contributing/guidelines.md"};export{e as data};
diff --git a/assets/guidelines.html.e660a45e.js b/assets/guidelines.html.e660a45e.js
deleted file mode 100644
index df61f6d4b..000000000
--- a/assets/guidelines.html.e660a45e.js
+++ /dev/null
@@ -1 +0,0 @@
-const e={key:"v-7e30aeec",path:"/contributing/guidelines.html",title:"Guidelines",lang:"en-US",frontmatter:{},excerpt:"",headers:[],git:{updatedTime:1719405314e3,contributors:[{name:"sairam charan",email:"mohanvenkat459@gmail.com",commits:1}]},filePathRelative:"contributing/guidelines.md"};export{e as data};
diff --git a/assets/index.html.7ba25318.js b/assets/index.html.1612eb7c.js
similarity index 60%
rename from assets/index.html.7ba25318.js
rename to assets/index.html.1612eb7c.js
index ef1df4726..1606093fc 100644
--- a/assets/index.html.7ba25318.js
+++ b/assets/index.html.1612eb7c.js
@@ -1 +1 @@
-const e={key:"v-63e82ae3",path:"/architecture/",title:"Architecture",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:3,title:"Whispr core",slug:"whispr-core",children:[]},{level:3,title:"Whispr UI",slug:"whispr-ui",children:[]}],git:{updatedTime:1719405314e3,contributors:[{name:"sairam charan",email:"mohanvenkat459@gmail.com",commits:1}]},filePathRelative:"architecture/readme.md"};export{e as data};
+const e={key:"v-63e82ae3",path:"/architecture/",title:"Architecture",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:3,title:"Whispr core",slug:"whispr-core",children:[]},{level:3,title:"Whispr UI",slug:"whispr-ui",children:[]}],git:{updatedTime:1719405734e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",commits:1}]},filePathRelative:"architecture/readme.md"};export{e as data};
diff --git a/assets/index.html.7618830d.js b/assets/index.html.2dc9feff.js
similarity index 90%
rename from assets/index.html.7618830d.js
rename to assets/index.html.2dc9feff.js
index d69565a3e..4f7b78c3c 100644
--- a/assets/index.html.7618830d.js
+++ b/assets/index.html.2dc9feff.js
@@ -1 +1 @@
-import{_ as e,c as i}from"./app.073399da.js";const r={},a=i('

Architecture

Whispr core

  • Nest.js
  • GraphQL (out of the box with Nest.js)
  • Simple REST API

Whispr UI

  • Vue.js
  • Vuetify
',5);function h(t,c){return a}var d=e(r,[["render",h],["__file","index.html.vue"]]);export{d as default}; +import{_ as e,c as i}from"./app.2353e9b9.js";const r={},a=i('

Architecture

Whispr core

  • Nest.js
  • GraphQL (out of the box with Nest.js)
  • Simple REST API

Whispr UI

  • Vue.js
  • Vuetify
',5);function h(t,c){return a}var d=e(r,[["render",h],["__file","index.html.vue"]]);export{d as default}; diff --git a/assets/index.html.31a6853d.js b/assets/index.html.31a6853d.js new file mode 100644 index 000000000..f43067d69 --- /dev/null +++ b/assets/index.html.31a6853d.js @@ -0,0 +1 @@ +const e={key:"v-a8a674e6",path:"/filters/",title:"Filters",lang:"en-US",frontmatter:{},excerpt:"",headers:[],git:{updatedTime:1719405734e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",commits:1}]},filePathRelative:"filters/readme.md"};export{e as data}; diff --git a/assets/index.html.3bd403c9.js b/assets/index.html.3bd403c9.js deleted file mode 100644 index 7c4384b5a..000000000 --- a/assets/index.html.3bd403c9.js +++ /dev/null @@ -1 +0,0 @@ -const e={key:"v-a8a674e6",path:"/filters/",title:"Filters",lang:"en-US",frontmatter:{},excerpt:"",headers:[],git:{updatedTime:1719405314e3,contributors:[{name:"sairam charan",email:"mohanvenkat459@gmail.com",commits:1}]},filePathRelative:"filters/readme.md"};export{e as data}; diff --git a/assets/index.html.a14bc6c7.js b/assets/index.html.538b9166.js similarity index 79% rename from assets/index.html.a14bc6c7.js rename to assets/index.html.538b9166.js index 9d4a15da6..b819a6fbb 100644 --- a/assets/index.html.a14bc6c7.js +++ b/assets/index.html.538b9166.js @@ -1 +1 @@ -const e={key:"v-8daa1a0e",path:"/",title:"",lang:"en-US",frontmatter:{home:!0,heroImage:"whispr_logo_charcoal_back.svg",heroText:null,tagline:"Simple, pluggable, open source event, comment and alert pub sub microservice",actions:[{text:"Get Started \u2192",link:"/introduction/",type:"primary"}],features:[{title:"Easy pub sub",details:"Easily implement whispr and integrate into your projects as a pub sub solution for event type data."},{title:"UI library",details:"Get started quickly with some simple UI components to add cool whispr integrations to your app, or build from them as samples."},{title:"Progressive",details:"An open, extendable platform built using a modern, progressive tech stack using Nest.js, GraphQL."}],footer:"MIT licensed, made by Sanofi IADC"},excerpt:"",headers:[],git:{updatedTime:1719405314e3,contributors:[{name:"sairam charan",email:"mohanvenkat459@gmail.com",commits:1}]},filePathRelative:"README.md"};export{e as data}; +const e={key:"v-8daa1a0e",path:"/",title:"",lang:"en-US",frontmatter:{home:!0,heroImage:"whispr_logo_charcoal_back.svg",heroText:null,tagline:"Simple, pluggable, open source event, comment and alert pub sub microservice",actions:[{text:"Get Started \u2192",link:"/introduction/",type:"primary"}],features:[{title:"Easy pub sub",details:"Easily implement whispr and integrate into your projects as a pub sub solution for event type data."},{title:"UI library",details:"Get started quickly with some simple UI components to add cool whispr integrations to your app, or build from them as samples."},{title:"Progressive",details:"An open, extendable platform built using a modern, progressive tech stack using Nest.js, GraphQL."}],footer:"MIT licensed, made by Sanofi IADC"},excerpt:"",headers:[],git:{updatedTime:1719405734e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",commits:1}]},filePathRelative:"README.md"};export{e as data}; diff --git a/assets/index.html.883a12ba.js b/assets/index.html.61c05645.js similarity index 68% rename from assets/index.html.883a12ba.js rename to assets/index.html.61c05645.js index 5b52ea73f..7a113e951 100644 --- a/assets/index.html.883a12ba.js +++ b/assets/index.html.61c05645.js @@ -1 +1 @@ -const e={key:"v-712e14fc",path:"/introduction/",title:"Introduction",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Main features",slug:"main-features",children:[]},{level:2,title:"Example use cases for Whispr",slug:"example-use-cases-for-whispr",children:[{level:3,title:"Whispr in action",slug:"whispr-in-action",children:[]}]},{level:2,title:"Key components",slug:"key-components",children:[]},{level:2,title:"Roadmap",slug:"roadmap",children:[]}],git:{updatedTime:1719405314e3,contributors:[{name:"sairam charan",email:"mohanvenkat459@gmail.com",commits:1}]},filePathRelative:"introduction/readme.md"};export{e as data}; +const e={key:"v-712e14fc",path:"/introduction/",title:"Introduction",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Main features",slug:"main-features",children:[]},{level:2,title:"Example use cases for Whispr",slug:"example-use-cases-for-whispr",children:[{level:3,title:"Whispr in action",slug:"whispr-in-action",children:[]}]},{level:2,title:"Key components",slug:"key-components",children:[]},{level:2,title:"Roadmap",slug:"roadmap",children:[]}],git:{updatedTime:1719405734e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",commits:1}]},filePathRelative:"introduction/readme.md"};export{e as data}; diff --git a/assets/index.html.3a835175.js b/assets/index.html.6786a325.js similarity index 55% rename from assets/index.html.3a835175.js rename to assets/index.html.6786a325.js index 59c06d7e9..c3e75e664 100644 --- a/assets/index.html.3a835175.js +++ b/assets/index.html.6786a325.js @@ -1 +1 @@ -const e={key:"v-17f9b51d",path:"/events/",title:"Event system",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Event",slug:"event",children:[]},{level:2,title:"Event Listeners",slug:"event-listeners",children:[]},{level:2,title:"Schema",slug:"schema",children:[]}],git:{updatedTime:1719405314e3,contributors:[{name:"sairam charan",email:"mohanvenkat459@gmail.com",commits:1}]},filePathRelative:"events/readme.md"};export{e as data}; +const e={key:"v-17f9b51d",path:"/events/",title:"Event system",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Event",slug:"event",children:[]},{level:2,title:"Event Listeners",slug:"event-listeners",children:[]},{level:2,title:"Schema",slug:"schema",children:[]}],git:{updatedTime:1719405734e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",commits:1}]},filePathRelative:"events/readme.md"};export{e as data}; diff --git a/assets/index.html.913bb68e.js b/assets/index.html.68dbe7c0.js similarity index 96% rename from assets/index.html.913bb68e.js rename to assets/index.html.68dbe7c0.js index 80518e416..1936b3b25 100644 --- a/assets/index.html.913bb68e.js +++ b/assets/index.html.68dbe7c0.js @@ -1,4 +1,4 @@ -import{_ as e,c as a}from"./app.073399da.js";var n="/whispr/assets/event_system.3f338995.jpg";const s={},t=a(`

Event system

Whispr provides an internal event system that allows event listeners to execute various actions when an event is triggered.

Event

An event contains two fields: a name and a payload.

Example:

{
+import{_ as e,c as a}from"./app.2353e9b9.js";var n="/whispr/assets/event_system.3f338995.jpg";const s={},t=a(`

Event system

Whispr provides an internal event system that allows event listeners to execute various actions when an event is triggered.

Event

An event contains two fields: a name and a payload.

Example:

{
   name: "WHISP_CREATED",
   payload: WhispEntity
 }
diff --git a/assets/index.html.112ce0e9.js b/assets/index.html.7b3c1128.js
similarity index 98%
rename from assets/index.html.112ce0e9.js
rename to assets/index.html.7b3c1128.js
index 16ef06135..79bdd8a40 100644
--- a/assets/index.html.112ce0e9.js
+++ b/assets/index.html.7b3c1128.js
@@ -1,4 +1,4 @@
-import{_ as a,r as t,o,a as i,b as n,d as l,F as c,e,c as r}from"./app.073399da.js";const p={},d=n("h1",{id:"plugins",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#plugins","aria-hidden":"true"},"#"),e(" Plugins")],-1),u=n("h2",{id:"create-a-plugin",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#create-a-plugin","aria-hidden":"true"},"#"),e(" Create a plugin")],-1),h=n("p",null,"Create a new repository and clone it to you computer.",-1),m=e("Publish this repository to npm by following npm's documentation: "),v={href:"https://docs.npmjs.com/creating-node-js-modules",target:"_blank",rel:"noopener noreferrer"},k=e("https://docs.npmjs.com/creating-node-js-modules"),g=r(`

Add your plugin to whispr

  • Add the package of your plugin:
npm install your-plugin --save
+import{_ as a,r as t,o,a as i,b as n,d as l,F as c,e,c as r}from"./app.2353e9b9.js";const p={},d=n("h1",{id:"plugins",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#plugins","aria-hidden":"true"},"#"),e(" Plugins")],-1),u=n("h2",{id:"create-a-plugin",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#create-a-plugin","aria-hidden":"true"},"#"),e(" Create a plugin")],-1),h=n("p",null,"Create a new repository and clone it to you computer.",-1),m=e("Publish this repository to npm by following npm's documentation: "),v={href:"https://docs.npmjs.com/creating-node-js-modules",target:"_blank",rel:"noopener noreferrer"},k=e("https://docs.npmjs.com/creating-node-js-modules"),g=r(`

Add your plugin to whispr

  • Add the package of your plugin:
npm install your-plugin --save
 
  • Add the name of your plugin in the plugins enum of the src/event/event.service.ts file:
export const pluginNames = [
   'your-plugin',
 ];
diff --git a/assets/index.html.8efa2e15.js b/assets/index.html.7bbd4566.js
similarity index 51%
rename from assets/index.html.8efa2e15.js
rename to assets/index.html.7bbd4566.js
index bf48e4196..2469152bb 100644
--- a/assets/index.html.8efa2e15.js
+++ b/assets/index.html.7bbd4566.js
@@ -1 +1 @@
-const e={key:"v-47ce024e",path:"/troubleshoot/",title:"Troubleshoot",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Header logging",slug:"header-logging",children:[]}],git:{updatedTime:1719405314e3,contributors:[{name:"sairam charan",email:"mohanvenkat459@gmail.com",commits:1}]},filePathRelative:"troubleshoot/readme.md"};export{e as data};
+const e={key:"v-47ce024e",path:"/troubleshoot/",title:"Troubleshoot",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Header logging",slug:"header-logging",children:[]}],git:{updatedTime:1719405734e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",commits:1}]},filePathRelative:"troubleshoot/readme.md"};export{e as data};
diff --git a/assets/index.html.8df3b31d.js b/assets/index.html.859439a5.js
similarity index 98%
rename from assets/index.html.8df3b31d.js
rename to assets/index.html.859439a5.js
index f0a643c86..00604250b 100644
--- a/assets/index.html.8df3b31d.js
+++ b/assets/index.html.859439a5.js
@@ -1,4 +1,4 @@
-import{_ as t,r as i,o as p,a as l,b as a,d as n,w as s,F as r,e,c}from"./app.073399da.js";const d={},u=a("h1",{id:"webhooks",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#webhooks","aria-hidden":"true"},"#"),e(" Webhooks")],-1),h=a("p",null,[e("Whispr also provides a webhook system. Webhooks are event listeners that will make a "),a("code",null,"POST"),e(" call to a url you provided, when an event is triggered.")],-1),k=a("h2",{id:"webhook-registration",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#webhook-registration","aria-hidden":"true"},"#"),e(" Webhook registration")],-1),b=e("You can use "),v=e("GraphQL"),_=e(" or "),m=e("REST"),w=e(" to create or delete a webhook."),y=c(`

To create a webhook, you should provide:

  • the url that will be called when the event is triggered
  • the event names the webhook will be listening to
  • (optional) the filter on the event if you want to be notified only for events of a specific payload

For example, here is the payload you should provide to create a webhook that will call https://webhook.url when a whisp is created and that whisp applicationId is "application1".

{
+import{_ as t,r as i,o as p,a as l,b as a,d as n,w as s,F as r,e,c}from"./app.2353e9b9.js";const d={},u=a("h1",{id:"webhooks",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#webhooks","aria-hidden":"true"},"#"),e(" Webhooks")],-1),h=a("p",null,[e("Whispr also provides a webhook system. Webhooks are event listeners that will make a "),a("code",null,"POST"),e(" call to a url you provided, when an event is triggered.")],-1),k=a("h2",{id:"webhook-registration",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#webhook-registration","aria-hidden":"true"},"#"),e(" Webhook registration")],-1),b=e("You can use "),v=e("GraphQL"),_=e(" or "),m=e("REST"),w=e(" to create or delete a webhook."),y=c(`

To create a webhook, you should provide:

  • the url that will be called when the event is triggered
  • the event names the webhook will be listening to
  • (optional) the filter on the event if you want to be notified only for events of a specific payload

For example, here is the payload you should provide to create a webhook that will call https://webhook.url when a whisp is created and that whisp applicationId is "application1".

{
     "url": "https://webhook.url",
     "events": ["WHISP_CREATED"],
     "filter":  { "applicationId": "application1" }
diff --git a/assets/index.html.af31a2dc.js b/assets/index.html.a10427ff.js
similarity index 91%
rename from assets/index.html.af31a2dc.js
rename to assets/index.html.a10427ff.js
index 9b6cc490c..ba44a9033 100644
--- a/assets/index.html.af31a2dc.js
+++ b/assets/index.html.a10427ff.js
@@ -1 +1 @@
-import{_ as t,o,a as r,F as n,b as e,e as a}from"./app.073399da.js";const s={},i=e("h1",{id:"troubleshoot",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#troubleshoot","aria-hidden":"true"},"#"),a(" Troubleshoot")],-1),d=e("h2",{id:"header-logging",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#header-logging","aria-hidden":"true"},"#"),a(" Header logging")],-1),h=e("p",null,"Request http headers can be displayed in application logs. to Enable it pass DEBUG_HTTP_HEADERS=true as an environment variable to the application process",-1),l=e("p",null,'Not that "authorization" header will be hidden for security purpose.',-1);function c(_,u){return o(),r(n,null,[i,d,h,l],64)}var g=t(s,[["render",c],["__file","index.html.vue"]]);export{g as default};
+import{_ as t,o,a as r,F as n,b as e,e as a}from"./app.2353e9b9.js";const s={},i=e("h1",{id:"troubleshoot",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#troubleshoot","aria-hidden":"true"},"#"),a(" Troubleshoot")],-1),d=e("h2",{id:"header-logging",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#header-logging","aria-hidden":"true"},"#"),a(" Header logging")],-1),h=e("p",null,"Request http headers can be displayed in application logs. to Enable it pass DEBUG_HTTP_HEADERS=true as an environment variable to the application process",-1),l=e("p",null,'Not that "authorization" header will be hidden for security purpose.',-1);function c(_,u){return o(),r(n,null,[i,d,h,l],64)}var g=t(s,[["render",c],["__file","index.html.vue"]]);export{g as default};
diff --git a/assets/index.html.3c20aa17.js b/assets/index.html.b0ef13ea.js
similarity index 98%
rename from assets/index.html.3c20aa17.js
rename to assets/index.html.b0ef13ea.js
index f96252c1e..70a48fab1 100644
--- a/assets/index.html.3c20aa17.js
+++ b/assets/index.html.b0ef13ea.js
@@ -1 +1 @@
-import{_ as e,c as i}from"./app.073399da.js";var a="/whispr/assets/whisprcommentfast.ace023f9.gif";const s={},t=i('

Introduction

Whispr is an open source event, comment and alert processing hub created by Sanofi IADC. We created it to meet our need for a centralised comment and alerting service which could be easily integrated into our tech stack.

In Whispr each event object is called a whisp. A whisp is classified with a severity level from info to critical, can have tags to further classify it, and has a generic data object which stores the detail of the whisp. As an example, a comment within an application could be a whisp of severity level info, with the comment text in the data object.

Using Whispr we\u2019ve implemented a messaging service for users to communicate between our apps, and a business process status pub/sub alerting solution - any system can send an alert to Whispr, and susbscribing applications and users are automatically notified to display the alert and take action.

Main features

  • GraphQL and REST API for whisp creation
  • Whisp classification through severity types
  • Filtering using any of the base elements of a whisp
  • Tag management system for whisp classification
  • Subscriptions through GraphQL with Websockets (more subscription types coming up very soon in our roadmap)

Example use cases for Whispr

  • Equipment status sharing (alerting) from IoT equipment
  • Lightweight comment feed (messaging) solutions
  • Machine learning on a central hub of data to identify data trends (common root causes for alerts, alert patterns)

Whispr in action

Chat application with whispr animated gif

Demonstration of using whispr as a comment system. Each comment is a whisp with severity info, and tags are also defined as a separate object type in whispr. All user interface components you see are available for use in the whispr UI library.

Key components

Whispr consists of the following main elements:

  • Whispr core: providing an whisp pub/sub system - publishing systems can register whisps in Whispr core when they need to share the status with. Whispr core can be used by any application capable of communicating with GraphQL or REST APIs
  • Whispr UI: A front end component library for fast implementation of some common use cases within your Vue.js or React based web application.

Roadmap

  • We have big plans for Whispr, here are a few of the key items Plugin system
  • Advanced filtering
  • Whisp schema registration and validation
',16);function n(r,o){return t}var c=e(s,[["render",n],["__file","index.html.vue"]]);export{c as default}; +import{_ as e,c as i}from"./app.2353e9b9.js";var a="/whispr/assets/whisprcommentfast.ace023f9.gif";const s={},t=i('

Introduction

Whispr is an open source event, comment and alert processing hub created by Sanofi IADC. We created it to meet our need for a centralised comment and alerting service which could be easily integrated into our tech stack.

In Whispr each event object is called a whisp. A whisp is classified with a severity level from info to critical, can have tags to further classify it, and has a generic data object which stores the detail of the whisp. As an example, a comment within an application could be a whisp of severity level info, with the comment text in the data object.

Using Whispr we\u2019ve implemented a messaging service for users to communicate between our apps, and a business process status pub/sub alerting solution - any system can send an alert to Whispr, and susbscribing applications and users are automatically notified to display the alert and take action.

Main features

  • GraphQL and REST API for whisp creation
  • Whisp classification through severity types
  • Filtering using any of the base elements of a whisp
  • Tag management system for whisp classification
  • Subscriptions through GraphQL with Websockets (more subscription types coming up very soon in our roadmap)

Example use cases for Whispr

  • Equipment status sharing (alerting) from IoT equipment
  • Lightweight comment feed (messaging) solutions
  • Machine learning on a central hub of data to identify data trends (common root causes for alerts, alert patterns)

Whispr in action

Chat application with whispr animated gif

Demonstration of using whispr as a comment system. Each comment is a whisp with severity info, and tags are also defined as a separate object type in whispr. All user interface components you see are available for use in the whispr UI library.

Key components

Whispr consists of the following main elements:

  • Whispr core: providing an whisp pub/sub system - publishing systems can register whisps in Whispr core when they need to share the status with. Whispr core can be used by any application capable of communicating with GraphQL or REST APIs
  • Whispr UI: A front end component library for fast implementation of some common use cases within your Vue.js or React based web application.

Roadmap

  • We have big plans for Whispr, here are a few of the key items Plugin system
  • Advanced filtering
  • Whisp schema registration and validation
',16);function n(r,o){return t}var c=e(s,[["render",n],["__file","index.html.vue"]]);export{c as default}; diff --git a/assets/index.html.dacf66bd.js b/assets/index.html.c82bb0a5.js similarity index 99% rename from assets/index.html.dacf66bd.js rename to assets/index.html.c82bb0a5.js index 654cad716..54d82ed04 100644 --- a/assets/index.html.dacf66bd.js +++ b/assets/index.html.c82bb0a5.js @@ -1,4 +1,4 @@ -import{_ as n,c as s}from"./app.073399da.js";const a={},e=s(`

Filters

Our GraphQL and REST endpoints sometimes offer you the possibility to filter, here is how this variable works:

No filter

{
+import{_ as n,c as s}from"./app.2353e9b9.js";const a={},e=s(`

Filters

Our GraphQL and REST endpoints sometimes offer you the possibility to filter, here is how this variable works:

No filter

{
   "filter": {}
 }
 

Simple filter

{
diff --git a/assets/index.html.22fb67e3.js b/assets/index.html.d7cdee61.js
similarity index 62%
rename from assets/index.html.22fb67e3.js
rename to assets/index.html.d7cdee61.js
index 17e6ec1aa..605c1dca2 100644
--- a/assets/index.html.22fb67e3.js
+++ b/assets/index.html.d7cdee61.js
@@ -1 +1 @@
-const e={key:"v-43f4d00c",path:"/webhooks/",title:"Webhooks",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Webhook registration",slug:"webhook-registration",children:[]},{level:2,title:"Webhook call",slug:"webhook-call",children:[{level:3,title:"Webhook proxy / CA",slug:"webhook-proxy-ca",children:[]}]}],git:{updatedTime:1719405314e3,contributors:[{name:"sairam charan",email:"mohanvenkat459@gmail.com",commits:1}]},filePathRelative:"webhooks/readme.md"};export{e as data};
+const e={key:"v-43f4d00c",path:"/webhooks/",title:"Webhooks",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Webhook registration",slug:"webhook-registration",children:[]},{level:2,title:"Webhook call",slug:"webhook-call",children:[{level:3,title:"Webhook proxy / CA",slug:"webhook-proxy-ca",children:[]}]}],git:{updatedTime:1719405734e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",commits:1}]},filePathRelative:"webhooks/readme.md"};export{e as data};
diff --git a/assets/index.html.f24ebcd5.js b/assets/index.html.dcb9df61.js
similarity index 68%
rename from assets/index.html.f24ebcd5.js
rename to assets/index.html.dcb9df61.js
index 6563f0760..584ea46d5 100644
--- a/assets/index.html.f24ebcd5.js
+++ b/assets/index.html.dcb9df61.js
@@ -1 +1 @@
-const e={key:"v-67d16688",path:"/plugins/",title:"Plugins",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Create a plugin",slug:"create-a-plugin",children:[]},{level:2,title:"Add your plugin to whispr",slug:"add-your-plugin-to-whispr",children:[]},{level:2,title:"Make your plugin register listeners",slug:"make-your-plugin-register-listeners",children:[]}],git:{updatedTime:1719405314e3,contributors:[{name:"sairam charan",email:"mohanvenkat459@gmail.com",commits:1}]},filePathRelative:"plugins/readme.md"};export{e as data};
+const e={key:"v-67d16688",path:"/plugins/",title:"Plugins",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Create a plugin",slug:"create-a-plugin",children:[]},{level:2,title:"Add your plugin to whispr",slug:"add-your-plugin-to-whispr",children:[]},{level:2,title:"Make your plugin register listeners",slug:"make-your-plugin-register-listeners",children:[]}],git:{updatedTime:1719405734e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",commits:1}]},filePathRelative:"plugins/readme.md"};export{e as data};
diff --git a/assets/index.html.c2eae47d.js b/assets/index.html.de48bec8.js
similarity index 58%
rename from assets/index.html.c2eae47d.js
rename to assets/index.html.de48bec8.js
index 8b81f2147..b2ce204ef 100644
--- a/assets/index.html.c2eae47d.js
+++ b/assets/index.html.de48bec8.js
@@ -1 +1 @@
-import{_ as e}from"./app.073399da.js";const _={};function r(n,t){return null}var f=e(_,[["render",r],["__file","index.html.vue"]]);export{f as default};
+import{_ as e}from"./app.2353e9b9.js";const _={};function r(n,t){return null}var f=e(_,[["render",r],["__file","index.html.vue"]]);export{f as default};
diff --git a/assets/indexing.html.785ad40a.js b/assets/indexing.html.11e685eb.js
similarity index 97%
rename from assets/indexing.html.785ad40a.js
rename to assets/indexing.html.11e685eb.js
index 138802d14..aabcf7226 100644
--- a/assets/indexing.html.785ad40a.js
+++ b/assets/indexing.html.11e685eb.js
@@ -1,4 +1,4 @@
-import{_ as n,c as e}from"./app.073399da.js";const a={},s=e(`

Indexing

Default Index

By default whispr creates a compound index on the fields applicationID and closed fields to provide a general improved performance by filtering on those field.

Custom Index

In case of that you have special filtering requirements, which costs a lot of performance it's recommended to create additional indexes. You have to do the following to create a new index

# Go to the whisps db with your mongo client
+import{_ as n,c as e}from"./app.2353e9b9.js";const a={},s=e(`

Indexing

Default Index

By default whispr creates a compound index on the fields applicationID and closed fields to provide a general improved performance by filtering on those field.

Custom Index

In case of that you have special filtering requirements, which costs a lot of performance it's recommended to create additional indexes. You have to do the following to create a new index

# Go to the whisps db with your mongo client
 use whisps
 
 # for creating a new index to a specific collection use db.collection.createIndex( <key and index type specification>, <options> )
diff --git a/assets/indexing.html.fdf89eb0.js b/assets/indexing.html.6932ecd7.js
similarity index 60%
rename from assets/indexing.html.fdf89eb0.js
rename to assets/indexing.html.6932ecd7.js
index 8e4e6113f..f665bbe6d 100644
--- a/assets/indexing.html.fdf89eb0.js
+++ b/assets/indexing.html.6932ecd7.js
@@ -1 +1 @@
-const e={key:"v-ecba32a0",path:"/indexing.html",title:"Indexing",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Default Index",slug:"default-index",children:[]},{level:2,title:"Custom Index",slug:"custom-index",children:[]}],git:{updatedTime:1719405314e3,contributors:[{name:"sairam charan",email:"mohanvenkat459@gmail.com",commits:1}]},filePathRelative:"indexing.md"};export{e as data};
+const e={key:"v-ecba32a0",path:"/indexing.html",title:"Indexing",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Default Index",slug:"default-index",children:[]},{level:2,title:"Custom Index",slug:"custom-index",children:[]}],git:{updatedTime:1719405734e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",commits:1}]},filePathRelative:"indexing.md"};export{e as data};
diff --git a/assets/installation.html.56e6e6c9.js b/assets/installation.html.9fa7f73d.js
similarity index 86%
rename from assets/installation.html.56e6e6c9.js
rename to assets/installation.html.9fa7f73d.js
index 75b713427..777acd0e6 100644
--- a/assets/installation.html.56e6e6c9.js
+++ b/assets/installation.html.9fa7f73d.js
@@ -1 +1 @@
-const e={key:"v-6ca815f4",path:"/installation.html",title:"Installation",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Setup with Docker",slug:"setup-with-docker",children:[{level:3,title:"Configuration",slug:"configuration",children:[]},{level:3,title:"Initialize the containers",slug:"initialize-the-containers",children:[]},{level:3,title:"Running the app",slug:"running-the-app",children:[]}]},{level:2,title:"Installation without Docker",slug:"installation-without-docker",children:[{level:3,title:"Install the whispr node application",slug:"install-the-whispr-node-application",children:[]},{level:3,title:"Install Redis:",slug:"install-redis",children:[]},{level:3,title:"Initialize MongoDB as a cluster:",slug:"initialize-mongodb-as-a-cluster",children:[]},{level:3,title:"Create a file named 'local.env' in the project root folder:",slug:"create-a-file-named-local-env-in-the-project-root-folder",children:[]},{level:3,title:"Setup a local AWS instance with localstack (optional)",slug:"setup-a-local-aws-instance-with-localstack-optional",children:[]},{level:3,title:"Running the app",slug:"running-the-app-1",children:[]}]}],git:{updatedTime:1719405314e3,contributors:[{name:"sairam charan",email:"mohanvenkat459@gmail.com",commits:1}]},filePathRelative:"installation.md"};export{e as data};
+const e={key:"v-6ca815f4",path:"/installation.html",title:"Installation",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Setup with Docker",slug:"setup-with-docker",children:[{level:3,title:"Configuration",slug:"configuration",children:[]},{level:3,title:"Initialize the containers",slug:"initialize-the-containers",children:[]},{level:3,title:"Running the app",slug:"running-the-app",children:[]}]},{level:2,title:"Installation without Docker",slug:"installation-without-docker",children:[{level:3,title:"Install the whispr node application",slug:"install-the-whispr-node-application",children:[]},{level:3,title:"Install Redis:",slug:"install-redis",children:[]},{level:3,title:"Initialize MongoDB as a cluster:",slug:"initialize-mongodb-as-a-cluster",children:[]},{level:3,title:"Create a file named 'local.env' in the project root folder:",slug:"create-a-file-named-local-env-in-the-project-root-folder",children:[]},{level:3,title:"Setup a local AWS instance with localstack (optional)",slug:"setup-a-local-aws-instance-with-localstack-optional",children:[]},{level:3,title:"Running the app",slug:"running-the-app-1",children:[]}]}],git:{updatedTime:1719405734e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",commits:1}]},filePathRelative:"installation.md"};export{e as data};
diff --git a/assets/installation.html.edc6b036.js b/assets/installation.html.e121ad8e.js
similarity index 99%
rename from assets/installation.html.edc6b036.js
rename to assets/installation.html.e121ad8e.js
index 78d5d37f1..365b016a7 100644
--- a/assets/installation.html.edc6b036.js
+++ b/assets/installation.html.e121ad8e.js
@@ -1,4 +1,4 @@
-import{_ as n,c as s}from"./app.073399da.js";const a={},e=s(`

Installation

Setup with Docker

Requirements:

  • Have Docker installed

Configuration

Whispr is configured thanks to environment variables in docker-compose.yml. You can leave the default values for development.

Initialize the containers

Quickstart

$ docker-compose up
+import{_ as n,c as s}from"./app.2353e9b9.js";const a={},e=s(`

Installation

Setup with Docker

Requirements:

  • Have Docker installed

Configuration

Whispr is configured thanks to environment variables in docker-compose.yml. You can leave the default values for development.

Initialize the containers

Quickstart

$ docker-compose up
 

This spins up whispr, a mongoDB, redis and a localstack environment with an s3 instance.

Nothing to configure, easy to use

Quickstart for developers

Start mongoDB, redis and localstack environment dockers with an s3 instance and ports exposed to your development machine

$ docker-compose -f docker-compose.dev.yml up
 

Install node packages then run the project in watch mode

$ npm install
 $ npm run start:dev
diff --git a/assets/introduction.html.fd17ecf2.js b/assets/introduction.html.8af74383.js
similarity index 51%
rename from assets/introduction.html.fd17ecf2.js
rename to assets/introduction.html.8af74383.js
index b2bb98d0a..c0cf0e3e1 100644
--- a/assets/introduction.html.fd17ecf2.js
+++ b/assets/introduction.html.8af74383.js
@@ -1 +1 @@
-const t={key:"v-0e4a26f1",path:"/api/introduction.html",title:"Introduction",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Input file",slug:"input-file",children:[]}],git:{updatedTime:1719405314e3,contributors:[{name:"sairam charan",email:"mohanvenkat459@gmail.com",commits:1}]},filePathRelative:"api/introduction.md"};export{t as data};
+const t={key:"v-0e4a26f1",path:"/api/introduction.html",title:"Introduction",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Input file",slug:"input-file",children:[]}],git:{updatedTime:1719405734e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",commits:1}]},filePathRelative:"api/introduction.md"};export{t as data};
diff --git a/assets/introduction.html.b85c1a82.js b/assets/introduction.html.bc8e760c.js
similarity index 98%
rename from assets/introduction.html.b85c1a82.js
rename to assets/introduction.html.bc8e760c.js
index c74522411..e978e1e8c 100644
--- a/assets/introduction.html.b85c1a82.js
+++ b/assets/introduction.html.bc8e760c.js
@@ -1,4 +1,4 @@
-import{_ as a,c as n}from"./app.073399da.js";const s={},t=n(`

Introduction

Whispr offers two APIs: GraphQL and REST. You are highly encouraged to use GraphQL API but in case you can't you still have the REST API available.

Input file

The payload you have to provide for both GraphQL and REST endpoints is described in the entityName.input.ts file.

Example:

import { Field } from '@nestjs/graphql';
+import{_ as a,c as n}from"./app.2353e9b9.js";const s={},t=n(`

Introduction

Whispr offers two APIs: GraphQL and REST. You are highly encouraged to use GraphQL API but in case you can't you still have the REST API available.

Input file

The payload you have to provide for both GraphQL and REST endpoints is described in the entityName.input.ts file.

Example:

import { Field } from '@nestjs/graphql';
 import { IsOptional, IsString } from 'class-validator';
 
 export class WhispInputType  {
diff --git a/assets/rest.html.170212e2.js b/assets/rest.html.0c842940.js
similarity index 99%
rename from assets/rest.html.170212e2.js
rename to assets/rest.html.0c842940.js
index 295beda9c..e39b8d12d 100644
--- a/assets/rest.html.170212e2.js
+++ b/assets/rest.html.0c842940.js
@@ -1 +1 @@
-import{_ as a,r as d,o as h,a as n,b as e,d as o,w as i,F as c,c as s,e as t}from"./app.073399da.js";const u={},r=s('

REST API

TIP

The whispr REST API is very limited compared to the GrahQL API. We will gradually make some improvements but we strongly recommend trying out GraphQL first. It's very simple, and more powerful than REST. You'll love it, we promise!

Get all Whisps

  • Method: GET
  • Path: '/whisp'
  • Success: 200

Returns all the whisps.

Get a Whisp

  • Method: GET
  • Path: '/whisp/:whispId'
  • Success: 200
',7),_=t("Returns a whisp identified by its "),p=e("code",null,"_id",-1),g=e("h2",{id:"create-a-whisp",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#create-a-whisp","aria-hidden":"true"},"#"),t(" Create a Whisp")],-1),f=e("ul",null,[e("li",null,[t("Method: "),e("code",null,"POST")]),e("li",null,"Path: '/whisp'"),e("li",null,[t("Success: "),e("code",null,"201")])],-1),w=t("Creates a new whisp from the "),b=e("code",null,"body",-1),m=t(". The available fields of the whisp entity are listed "),G=t("here"),T=e("h2",{id:"update-a-whisp",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#update-a-whisp","aria-hidden":"true"},"#"),t(" Update a Whisp")],-1),y=e("ul",null,[e("li",null,[t("Method: "),e("code",null,"PATCH")]),e("li",null,[t("Path: '/whisp/"),e("strong",null,":whispId"),t("'")]),e("li",null,[t("Success: "),e("code",null,"204")])],-1),P=t("Updates the fields given in the "),k=e("code",null,"body",-1),v=t(" of a whisp identified by its "),S=e("code",null,"_id",-1),x=t(". The available fields of the whisp entity are listed "),E=t("here"),M=e("h2",{id:"replace-a-whisp",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#replace-a-whisp","aria-hidden":"true"},"#"),t(" Replace a Whisp")],-1),R=e("ul",null,[e("li",null,[t("Method: "),e("code",null,"PUT")]),e("li",null,[t("Path: '/whisp/"),e("strong",null,":whispId"),t("'")]),e("li",null,[t("Success: "),e("code",null,"204")])],-1),I=t("Replaces a whisp given identified by its "),C=e("code",null,"_id",-1),W=t(" by a new whisp given in the "),D=e("code",null,"body",-1),L=t(" . The available fields of the whisp entity are listed "),U=t("here"),A=e("h2",{id:"delete-a-whisp",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#delete-a-whisp","aria-hidden":"true"},"#"),t(" Delete a Whisp")],-1),N=e("ul",null,[e("li",null,[t("Method: "),e("code",null,"DELETE")]),e("li",null,[t("Path: '/whisp/"),e("strong",null,":whispId"),t("'")]),e("li",null,[t("Success: "),e("code",null,"204")])],-1),V=t("Deletes a whisp identified by its "),B=e("code",null,"_id",-1),O=s('

Get all TagGroups

  • Method: GET
  • Path: '/TagGroup'
  • Success: 200

Returns all the tagGroups.

Get a TagGroup

  • Method: GET
  • Path: '/TagGroup/:tagGroupId'
  • Success: 200
',5),F=t("Returns a tagGroup identified by its "),H=e("code",null,"_id",-1),Q=e("h2",{id:"create-a-taggroup",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#create-a-taggroup","aria-hidden":"true"},"#"),t(" Create a TagGroup")],-1),Y=e("ul",null,[e("li",null,[t("Method: "),e("code",null,"POST")]),e("li",null,"Path: '/TagGroup'"),e("li",null,[t("Success: "),e("code",null,"201")])],-1),j=t("Creates a new tagGroup from the "),q=e("code",null,"body",-1),z=t(". The available fields of the tagGroup entity are listed "),J=t("here"),K=e("h2",{id:"update-a-taggroup",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#update-a-taggroup","aria-hidden":"true"},"#"),t(" Update a TagGroup")],-1),X=e("ul",null,[e("li",null,[t("Method: "),e("code",null,"PATCH")]),e("li",null,[t("Path: '/TagGroup/"),e("strong",null,":tagGroupId"),t("'")]),e("li",null,[t("Success: "),e("code",null,"204")])],-1),Z=t("Updates the fields given in the "),$=e("code",null,"body",-1),ee=t(" of a tagGroup identified by its "),te=e("code",null,"_id",-1),le=t(". The available fields of the tagGroup entity are listed "),oe=t("here"),ie=e("h2",{id:"replace-a-taggroup",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#replace-a-taggroup","aria-hidden":"true"},"#"),t(" Replace a TagGroup")],-1),se=e("ul",null,[e("li",null,[t("Method: "),e("code",null,"PUT")]),e("li",null,[t("Path: '/TagGroup/"),e("strong",null,":tagGroupId"),t("'")]),e("li",null,[t("Success: "),e("code",null,"204")])],-1),ae=t("Replaces a tagGroup given identified by its "),de=e("code",null,"_id",-1),he=t(" by a new tagGroup given in the "),ne=e("code",null,"body",-1),ce=t(" . The available fields of the tagGroup entity are listed "),ue=t("here"),re=e("h2",{id:"delete-a-taggroup",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#delete-a-taggroup","aria-hidden":"true"},"#"),t(" Delete a TagGroup")],-1),_e=e("ul",null,[e("li",null,[t("Method: "),e("code",null,"DELETE")]),e("li",null,[t("Path: '/TagGroup/"),e("strong",null,":tagGroupId"),t("'")]),e("li",null,[t("Success: "),e("code",null,"204")])],-1),pe=t("Deletes a tagGroup identified by its "),ge=e("code",null,"_id",-1),fe=s('

Get all Webhooks

  • Method: GET
  • Path: '/webhook'
  • Success: 200

Returns all the webhooks.

Create a Webhook

  • Method: POST
  • Path: '/webhook'
  • Success: 201
',5),we=t("Creates a new webhook from the "),be=e("code",null,"body",-1),me=t(". The available fields of the webhook entity are listed "),Ge=t("here"),Te=e("h2",{id:"delete-a-webhook",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#delete-a-webhook","aria-hidden":"true"},"#"),t(" Delete a Webhook")],-1),ye=e("ul",null,[e("li",null,[t("Method: "),e("code",null,"DELETE")]),e("li",null,[t("Path: '/webhook/"),e("strong",null,":id"),t("'")]),e("li",null,[t("Success: "),e("code",null,"204")])],-1),Pe=t("Deletes a webhook identified by its "),ke=e("code",null,"_id",-1);function ve(Se,xe){const l=d("RouterLink");return h(),n(c,null,[r,e("p",null,[_,o(l,{to:"/models/whisp.html#_id"},{default:i(()=>[p]),_:1})]),g,f,e("p",null,[w,b,m,o(l,{to:"/models/whisp.html"},{default:i(()=>[G]),_:1})]),T,y,e("p",null,[P,k,v,o(l,{to:"/models/whisp.html#_id"},{default:i(()=>[S]),_:1}),x,o(l,{to:"/models/whisp.html"},{default:i(()=>[E]),_:1})]),M,R,e("p",null,[I,o(l,{to:"/models/whisp.html#_id"},{default:i(()=>[C]),_:1}),W,D,L,o(l,{to:"/models/whisp.html"},{default:i(()=>[U]),_:1})]),A,N,e("p",null,[V,o(l,{to:"/models/whisp.html#_id"},{default:i(()=>[B]),_:1})]),O,e("p",null,[F,o(l,{to:"/models/tagGroup.html#_id"},{default:i(()=>[H]),_:1})]),Q,Y,e("p",null,[j,q,z,o(l,{to:"/models/tagGroup.html"},{default:i(()=>[J]),_:1})]),K,X,e("p",null,[Z,$,ee,o(l,{to:"/models/tagGroup.html#_id"},{default:i(()=>[te]),_:1}),le,o(l,{to:"/models/tagGroup.html"},{default:i(()=>[oe]),_:1})]),ie,se,e("p",null,[ae,o(l,{to:"/models/tagGroup.html#_id"},{default:i(()=>[de]),_:1}),he,ne,ce,o(l,{to:"/models/tagGroup.html"},{default:i(()=>[ue]),_:1})]),re,_e,e("p",null,[pe,o(l,{to:"/models/tagGroup.html#_id"},{default:i(()=>[ge]),_:1})]),fe,e("p",null,[we,be,me,o(l,{to:"/models/webhook.html"},{default:i(()=>[Ge]),_:1})]),Te,ye,e("p",null,[Pe,o(l,{to:"/models/webhook.html#_id"},{default:i(()=>[ke]),_:1})])],64)}var Me=a(u,[["render",ve],["__file","rest.html.vue"]]);export{Me as default}; +import{_ as a,r as d,o as h,a as n,b as e,d as o,w as i,F as c,c as s,e as t}from"./app.2353e9b9.js";const u={},r=s('

REST API

TIP

The whispr REST API is very limited compared to the GrahQL API. We will gradually make some improvements but we strongly recommend trying out GraphQL first. It's very simple, and more powerful than REST. You'll love it, we promise!

Get all Whisps

  • Method: GET
  • Path: '/whisp'
  • Success: 200

Returns all the whisps.

Get a Whisp

  • Method: GET
  • Path: '/whisp/:whispId'
  • Success: 200
',7),_=t("Returns a whisp identified by its "),p=e("code",null,"_id",-1),g=e("h2",{id:"create-a-whisp",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#create-a-whisp","aria-hidden":"true"},"#"),t(" Create a Whisp")],-1),f=e("ul",null,[e("li",null,[t("Method: "),e("code",null,"POST")]),e("li",null,"Path: '/whisp'"),e("li",null,[t("Success: "),e("code",null,"201")])],-1),w=t("Creates a new whisp from the "),b=e("code",null,"body",-1),m=t(". The available fields of the whisp entity are listed "),G=t("here"),T=e("h2",{id:"update-a-whisp",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#update-a-whisp","aria-hidden":"true"},"#"),t(" Update a Whisp")],-1),y=e("ul",null,[e("li",null,[t("Method: "),e("code",null,"PATCH")]),e("li",null,[t("Path: '/whisp/"),e("strong",null,":whispId"),t("'")]),e("li",null,[t("Success: "),e("code",null,"204")])],-1),P=t("Updates the fields given in the "),k=e("code",null,"body",-1),v=t(" of a whisp identified by its "),S=e("code",null,"_id",-1),x=t(". The available fields of the whisp entity are listed "),E=t("here"),M=e("h2",{id:"replace-a-whisp",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#replace-a-whisp","aria-hidden":"true"},"#"),t(" Replace a Whisp")],-1),R=e("ul",null,[e("li",null,[t("Method: "),e("code",null,"PUT")]),e("li",null,[t("Path: '/whisp/"),e("strong",null,":whispId"),t("'")]),e("li",null,[t("Success: "),e("code",null,"204")])],-1),I=t("Replaces a whisp given identified by its "),C=e("code",null,"_id",-1),W=t(" by a new whisp given in the "),D=e("code",null,"body",-1),L=t(" . The available fields of the whisp entity are listed "),U=t("here"),A=e("h2",{id:"delete-a-whisp",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#delete-a-whisp","aria-hidden":"true"},"#"),t(" Delete a Whisp")],-1),N=e("ul",null,[e("li",null,[t("Method: "),e("code",null,"DELETE")]),e("li",null,[t("Path: '/whisp/"),e("strong",null,":whispId"),t("'")]),e("li",null,[t("Success: "),e("code",null,"204")])],-1),V=t("Deletes a whisp identified by its "),B=e("code",null,"_id",-1),O=s('

Get all TagGroups

  • Method: GET
  • Path: '/TagGroup'
  • Success: 200

Returns all the tagGroups.

Get a TagGroup

  • Method: GET
  • Path: '/TagGroup/:tagGroupId'
  • Success: 200
',5),F=t("Returns a tagGroup identified by its "),H=e("code",null,"_id",-1),Q=e("h2",{id:"create-a-taggroup",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#create-a-taggroup","aria-hidden":"true"},"#"),t(" Create a TagGroup")],-1),Y=e("ul",null,[e("li",null,[t("Method: "),e("code",null,"POST")]),e("li",null,"Path: '/TagGroup'"),e("li",null,[t("Success: "),e("code",null,"201")])],-1),j=t("Creates a new tagGroup from the "),q=e("code",null,"body",-1),z=t(". The available fields of the tagGroup entity are listed "),J=t("here"),K=e("h2",{id:"update-a-taggroup",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#update-a-taggroup","aria-hidden":"true"},"#"),t(" Update a TagGroup")],-1),X=e("ul",null,[e("li",null,[t("Method: "),e("code",null,"PATCH")]),e("li",null,[t("Path: '/TagGroup/"),e("strong",null,":tagGroupId"),t("'")]),e("li",null,[t("Success: "),e("code",null,"204")])],-1),Z=t("Updates the fields given in the "),$=e("code",null,"body",-1),ee=t(" of a tagGroup identified by its "),te=e("code",null,"_id",-1),le=t(". The available fields of the tagGroup entity are listed "),oe=t("here"),ie=e("h2",{id:"replace-a-taggroup",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#replace-a-taggroup","aria-hidden":"true"},"#"),t(" Replace a TagGroup")],-1),se=e("ul",null,[e("li",null,[t("Method: "),e("code",null,"PUT")]),e("li",null,[t("Path: '/TagGroup/"),e("strong",null,":tagGroupId"),t("'")]),e("li",null,[t("Success: "),e("code",null,"204")])],-1),ae=t("Replaces a tagGroup given identified by its "),de=e("code",null,"_id",-1),he=t(" by a new tagGroup given in the "),ne=e("code",null,"body",-1),ce=t(" . The available fields of the tagGroup entity are listed "),ue=t("here"),re=e("h2",{id:"delete-a-taggroup",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#delete-a-taggroup","aria-hidden":"true"},"#"),t(" Delete a TagGroup")],-1),_e=e("ul",null,[e("li",null,[t("Method: "),e("code",null,"DELETE")]),e("li",null,[t("Path: '/TagGroup/"),e("strong",null,":tagGroupId"),t("'")]),e("li",null,[t("Success: "),e("code",null,"204")])],-1),pe=t("Deletes a tagGroup identified by its "),ge=e("code",null,"_id",-1),fe=s('

Get all Webhooks

  • Method: GET
  • Path: '/webhook'
  • Success: 200

Returns all the webhooks.

Create a Webhook

  • Method: POST
  • Path: '/webhook'
  • Success: 201
',5),we=t("Creates a new webhook from the "),be=e("code",null,"body",-1),me=t(". The available fields of the webhook entity are listed "),Ge=t("here"),Te=e("h2",{id:"delete-a-webhook",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#delete-a-webhook","aria-hidden":"true"},"#"),t(" Delete a Webhook")],-1),ye=e("ul",null,[e("li",null,[t("Method: "),e("code",null,"DELETE")]),e("li",null,[t("Path: '/webhook/"),e("strong",null,":id"),t("'")]),e("li",null,[t("Success: "),e("code",null,"204")])],-1),Pe=t("Deletes a webhook identified by its "),ke=e("code",null,"_id",-1);function ve(Se,xe){const l=d("RouterLink");return h(),n(c,null,[r,e("p",null,[_,o(l,{to:"/models/whisp.html#_id"},{default:i(()=>[p]),_:1})]),g,f,e("p",null,[w,b,m,o(l,{to:"/models/whisp.html"},{default:i(()=>[G]),_:1})]),T,y,e("p",null,[P,k,v,o(l,{to:"/models/whisp.html#_id"},{default:i(()=>[S]),_:1}),x,o(l,{to:"/models/whisp.html"},{default:i(()=>[E]),_:1})]),M,R,e("p",null,[I,o(l,{to:"/models/whisp.html#_id"},{default:i(()=>[C]),_:1}),W,D,L,o(l,{to:"/models/whisp.html"},{default:i(()=>[U]),_:1})]),A,N,e("p",null,[V,o(l,{to:"/models/whisp.html#_id"},{default:i(()=>[B]),_:1})]),O,e("p",null,[F,o(l,{to:"/models/tagGroup.html#_id"},{default:i(()=>[H]),_:1})]),Q,Y,e("p",null,[j,q,z,o(l,{to:"/models/tagGroup.html"},{default:i(()=>[J]),_:1})]),K,X,e("p",null,[Z,$,ee,o(l,{to:"/models/tagGroup.html#_id"},{default:i(()=>[te]),_:1}),le,o(l,{to:"/models/tagGroup.html"},{default:i(()=>[oe]),_:1})]),ie,se,e("p",null,[ae,o(l,{to:"/models/tagGroup.html#_id"},{default:i(()=>[de]),_:1}),he,ne,ce,o(l,{to:"/models/tagGroup.html"},{default:i(()=>[ue]),_:1})]),re,_e,e("p",null,[pe,o(l,{to:"/models/tagGroup.html#_id"},{default:i(()=>[ge]),_:1})]),fe,e("p",null,[we,be,me,o(l,{to:"/models/webhook.html"},{default:i(()=>[Ge]),_:1})]),Te,ye,e("p",null,[Pe,o(l,{to:"/models/webhook.html#_id"},{default:i(()=>[ke]),_:1})])],64)}var Me=a(u,[["render",ve],["__file","rest.html.vue"]]);export{Me as default}; diff --git a/assets/rest.html.6eeb454b.js b/assets/rest.html.a5fab122.js similarity index 86% rename from assets/rest.html.6eeb454b.js rename to assets/rest.html.a5fab122.js index 58b2ccea0..1f11b8f8f 100644 --- a/assets/rest.html.6eeb454b.js +++ b/assets/rest.html.a5fab122.js @@ -1 +1 @@ -const e={key:"v-e9130d12",path:"/api/rest.html",title:"REST API",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Get all Whisps",slug:"get-all-whisps",children:[]},{level:2,title:"Get a Whisp",slug:"get-a-whisp",children:[]},{level:2,title:"Create a Whisp",slug:"create-a-whisp",children:[]},{level:2,title:"Update a Whisp",slug:"update-a-whisp",children:[]},{level:2,title:"Replace a Whisp",slug:"replace-a-whisp",children:[]},{level:2,title:"Delete a Whisp",slug:"delete-a-whisp",children:[]},{level:2,title:"Get all TagGroups",slug:"get-all-taggroups",children:[]},{level:2,title:"Get a TagGroup",slug:"get-a-taggroup",children:[]},{level:2,title:"Create a TagGroup",slug:"create-a-taggroup",children:[]},{level:2,title:"Update a TagGroup",slug:"update-a-taggroup",children:[]},{level:2,title:"Replace a TagGroup",slug:"replace-a-taggroup",children:[]},{level:2,title:"Delete a TagGroup",slug:"delete-a-taggroup",children:[]},{level:2,title:"Get all Webhooks",slug:"get-all-webhooks",children:[]},{level:2,title:"Create a Webhook",slug:"create-a-webhook",children:[]},{level:2,title:"Delete a Webhook",slug:"delete-a-webhook",children:[]}],git:{updatedTime:1719405314e3,contributors:[{name:"sairam charan",email:"mohanvenkat459@gmail.com",commits:1}]},filePathRelative:"api/rest.md"};export{e as data}; +const e={key:"v-e9130d12",path:"/api/rest.html",title:"REST API",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Get all Whisps",slug:"get-all-whisps",children:[]},{level:2,title:"Get a Whisp",slug:"get-a-whisp",children:[]},{level:2,title:"Create a Whisp",slug:"create-a-whisp",children:[]},{level:2,title:"Update a Whisp",slug:"update-a-whisp",children:[]},{level:2,title:"Replace a Whisp",slug:"replace-a-whisp",children:[]},{level:2,title:"Delete a Whisp",slug:"delete-a-whisp",children:[]},{level:2,title:"Get all TagGroups",slug:"get-all-taggroups",children:[]},{level:2,title:"Get a TagGroup",slug:"get-a-taggroup",children:[]},{level:2,title:"Create a TagGroup",slug:"create-a-taggroup",children:[]},{level:2,title:"Update a TagGroup",slug:"update-a-taggroup",children:[]},{level:2,title:"Replace a TagGroup",slug:"replace-a-taggroup",children:[]},{level:2,title:"Delete a TagGroup",slug:"delete-a-taggroup",children:[]},{level:2,title:"Get all Webhooks",slug:"get-all-webhooks",children:[]},{level:2,title:"Create a Webhook",slug:"create-a-webhook",children:[]},{level:2,title:"Delete a Webhook",slug:"delete-a-webhook",children:[]}],git:{updatedTime:1719405734e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",commits:1}]},filePathRelative:"api/rest.md"};export{e as data}; diff --git a/assets/security.html.65d38756.js b/assets/security.html.52c75e1d.js similarity index 99% rename from assets/security.html.65d38756.js rename to assets/security.html.52c75e1d.js index 73e227cf2..1af7064f9 100644 --- a/assets/security.html.65d38756.js +++ b/assets/security.html.52c75e1d.js @@ -1,4 +1,4 @@ -import{_ as n,c as s}from"./app.073399da.js";const a={},t=s(`

Security

Authentication

Whispr supports authentication via JWT, and can be configured to authenticate against mutliple configurations (mutliple issuers, multiple secrets).

Configuration

Security is implemented via an extended version of passport-jwt which allows an array of configurations to be passed on startup.

To configure, set the AUTH_CONFIG_SECRET

_ Note that even though the AUTH_CONFIG_SECRET is not necessarily a secret (in the case of config with JWKS providers), this environment variable is named _SECRET to ensure that it is hidden by APM tools in case it contains secret keys. _

The provided configuration is very similar to the NestJS passport-jwt example with a few modifications:

  • it must be provided as a JSON string containing a config property which is an array of valid passport-jwt configurations
  • the jwtFromRequest function which tells passport-jwt where to find the JWT in the request (usually the Authorization header) function must be deconstructed into an object containing funcName and args properties
  • passportJwtSecret function should not be written in the configuration file, only the arguments are required in the passportJwtSecret object

passthrough (disable authentication)

For debug purpose or deployability (feature flag). Authentication can be disable by providing to passport-multi-jwt a "passthrough":true to a given configuration

Examples

This is an example for multiple passport JWT configurations as they would be configured in Javascript.

[{
+import{_ as n,c as s}from"./app.2353e9b9.js";const a={},t=s(`

Security

Authentication

Whispr supports authentication via JWT, and can be configured to authenticate against mutliple configurations (mutliple issuers, multiple secrets).

Configuration

Security is implemented via an extended version of passport-jwt which allows an array of configurations to be passed on startup.

To configure, set the AUTH_CONFIG_SECRET

_ Note that even though the AUTH_CONFIG_SECRET is not necessarily a secret (in the case of config with JWKS providers), this environment variable is named _SECRET to ensure that it is hidden by APM tools in case it contains secret keys. _

The provided configuration is very similar to the NestJS passport-jwt example with a few modifications:

  • it must be provided as a JSON string containing a config property which is an array of valid passport-jwt configurations
  • the jwtFromRequest function which tells passport-jwt where to find the JWT in the request (usually the Authorization header) function must be deconstructed into an object containing funcName and args properties
  • passportJwtSecret function should not be written in the configuration file, only the arguments are required in the passportJwtSecret object

passthrough (disable authentication)

For debug purpose or deployability (feature flag). Authentication can be disable by providing to passport-multi-jwt a "passthrough":true to a given configuration

Examples

This is an example for multiple passport JWT configurations as they would be configured in Javascript.

[{
     secretOrKeyProvider: passportJwtSecret({
         cache: true,
         rateLimit: true,
diff --git a/assets/security.html.769d5ec2.js b/assets/security.html.ec7526b3.js
similarity index 74%
rename from assets/security.html.769d5ec2.js
rename to assets/security.html.ec7526b3.js
index 2e397b262..88e4f066a 100644
--- a/assets/security.html.769d5ec2.js
+++ b/assets/security.html.ec7526b3.js
@@ -1 +1 @@
-const e={key:"v-27b6bb40",path:"/security.html",title:"Security",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Authentication",slug:"authentication",children:[{level:3,title:"Configuration",slug:"configuration",children:[]},{level:3,title:"passthrough (disable authentication)",slug:"passthrough-disable-authentication",children:[]},{level:3,title:"Examples",slug:"examples",children:[]},{level:3,title:"Secret passed through environment variable",slug:"secret-passed-through-environment-variable",children:[]}]},{level:2,title:"Authorisation",slug:"authorisation",children:[]}],git:{updatedTime:1719405314e3,contributors:[{name:"sairam charan",email:"mohanvenkat459@gmail.com",commits:1}]},filePathRelative:"security.md"};export{e as data};
+const e={key:"v-27b6bb40",path:"/security.html",title:"Security",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Authentication",slug:"authentication",children:[{level:3,title:"Configuration",slug:"configuration",children:[]},{level:3,title:"passthrough (disable authentication)",slug:"passthrough-disable-authentication",children:[]},{level:3,title:"Examples",slug:"examples",children:[]},{level:3,title:"Secret passed through environment variable",slug:"secret-passed-through-environment-variable",children:[]}]},{level:2,title:"Authorisation",slug:"authorisation",children:[]}],git:{updatedTime:1719405734e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",commits:1}]},filePathRelative:"security.md"};export{e as data};
diff --git a/assets/tagGroup.html.423d402d.js b/assets/tagGroup.html.6dda7a7d.js
similarity index 94%
rename from assets/tagGroup.html.423d402d.js
rename to assets/tagGroup.html.6dda7a7d.js
index 7268d6faa..3b8c9a6aa 100644
--- a/assets/tagGroup.html.423d402d.js
+++ b/assets/tagGroup.html.6dda7a7d.js
@@ -1 +1 @@
-import{_ as e,c as a}from"./app.073399da.js";const i={},r=a('

TagGroup

These are the available fields for the TagGroup entity.

_id

Type: ID!

Description: Autogenerated scalar identifier

title

Type: String

Description:

metalevel

Type: String

Description:

applicationID

Type: String

Description:

tags

Type: [String]

Description:

',17);function t(p,d){return r}var n=e(i,[["render",t],["__file","tagGroup.html.vue"]]);export{n as default}; +import{_ as e,c as a}from"./app.2353e9b9.js";const i={},r=a('

TagGroup

These are the available fields for the TagGroup entity.

_id

Type: ID!

Description: Autogenerated scalar identifier

title

Type: String

Description:

metalevel

Type: String

Description:

applicationID

Type: String

Description:

tags

Type: [String]

Description:

',17);function t(p,d){return r}var n=e(i,[["render",t],["__file","tagGroup.html.vue"]]);export{n as default}; diff --git a/assets/tagGroup.html.68e3bf12.js b/assets/tagGroup.html.f975e67c.js similarity index 67% rename from assets/tagGroup.html.68e3bf12.js rename to assets/tagGroup.html.f975e67c.js index b4ddded80..22f3cc2a5 100644 --- a/assets/tagGroup.html.68e3bf12.js +++ b/assets/tagGroup.html.f975e67c.js @@ -1 +1 @@ -const e={key:"v-66de8e88",path:"/models/tagGroup.html",title:"TagGroup",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"_id",slug:"id",children:[]},{level:2,title:"title",slug:"title",children:[]},{level:2,title:"metalevel",slug:"metalevel",children:[]},{level:2,title:"applicationID",slug:"applicationid",children:[]},{level:2,title:"tags",slug:"tags",children:[]}],git:{updatedTime:1719405314e3,contributors:[{name:"sairam charan",email:"mohanvenkat459@gmail.com",commits:1}]},filePathRelative:"models/tagGroup.md"};export{e as data}; +const e={key:"v-66de8e88",path:"/models/tagGroup.html",title:"TagGroup",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"_id",slug:"id",children:[]},{level:2,title:"title",slug:"title",children:[]},{level:2,title:"metalevel",slug:"metalevel",children:[]},{level:2,title:"applicationID",slug:"applicationid",children:[]},{level:2,title:"tags",slug:"tags",children:[]}],git:{updatedTime:1719405734e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",commits:1}]},filePathRelative:"models/tagGroup.md"};export{e as data}; diff --git a/assets/testing.html.29eb6ea0.js b/assets/testing.html.089eeb61.js similarity index 73% rename from assets/testing.html.29eb6ea0.js rename to assets/testing.html.089eeb61.js index 078f8104f..cbd16e6ff 100644 --- a/assets/testing.html.29eb6ea0.js +++ b/assets/testing.html.089eeb61.js @@ -1 +1 @@ -const e={key:"v-53401e42",path:"/testing.html",title:"Testing",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Unit Tests",slug:"unit-tests",children:[]},{level:2,title:"Integration Tests",slug:"integration-tests",children:[]},{level:2,title:"End to End Tests",slug:"end-to-end-tests",children:[]},{level:2,title:"Debugging tests",slug:"debugging-tests",children:[]},{level:2,title:"Load testing",slug:"load-testing",children:[{level:3,title:"Execution in CI",slug:"execution-in-ci",children:[]}]}],git:{updatedTime:1719405314e3,contributors:[{name:"sairam charan",email:"mohanvenkat459@gmail.com",commits:1}]},filePathRelative:"testing.md"};export{e as data}; +const e={key:"v-53401e42",path:"/testing.html",title:"Testing",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Unit Tests",slug:"unit-tests",children:[]},{level:2,title:"Integration Tests",slug:"integration-tests",children:[]},{level:2,title:"End to End Tests",slug:"end-to-end-tests",children:[]},{level:2,title:"Debugging tests",slug:"debugging-tests",children:[]},{level:2,title:"Load testing",slug:"load-testing",children:[{level:3,title:"Execution in CI",slug:"execution-in-ci",children:[]}]}],git:{updatedTime:1719405734e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",commits:1}]},filePathRelative:"testing.md"};export{e as data}; diff --git a/assets/testing.html.c209f58a.js b/assets/testing.html.835416e6.js similarity index 98% rename from assets/testing.html.c209f58a.js rename to assets/testing.html.835416e6.js index 21d798471..4ca2b1c4e 100644 --- a/assets/testing.html.c209f58a.js +++ b/assets/testing.html.835416e6.js @@ -1,4 +1,4 @@ -import{_ as e,c as t}from"./app.073399da.js";const n={},s=t(`

Testing

# unit tests
+import{_ as e,c as t}from"./app.2353e9b9.js";const n={},s=t(`

Testing

# unit tests
 $ npm run test
 
 # e2e tests
diff --git a/assets/webhook.html.ad64bfa8.js b/assets/webhook.html.266805ac.js
similarity index 92%
rename from assets/webhook.html.ad64bfa8.js
rename to assets/webhook.html.266805ac.js
index 45eed7360..86c25e276 100644
--- a/assets/webhook.html.ad64bfa8.js
+++ b/assets/webhook.html.266805ac.js
@@ -1 +1 @@
-import{_ as e,c as a}from"./app.073399da.js";const r={},t=a('

Webhook

These are the available fields for the Webhook entity.

_id

Type: ID!

Description: Autogenerated scalar identifier

url

Type: String

events

Type: [String]

filter

Type: JSONObject

',11);function h(i,d){return t}var o=e(r,[["render",h],["__file","webhook.html.vue"]]);export{o as default}; +import{_ as e,c as a}from"./app.2353e9b9.js";const r={},t=a('

Webhook

These are the available fields for the Webhook entity.

_id

Type: ID!

Description: Autogenerated scalar identifier

url

Type: String

events

Type: [String]

filter

Type: JSONObject

',11);function h(i,d){return t}var o=e(r,[["render",h],["__file","webhook.html.vue"]]);export{o as default}; diff --git a/assets/webhook.html.403050b8.js b/assets/webhook.html.27d607a3.js similarity index 64% rename from assets/webhook.html.403050b8.js rename to assets/webhook.html.27d607a3.js index 640680b1e..8a376fdb1 100644 --- a/assets/webhook.html.403050b8.js +++ b/assets/webhook.html.27d607a3.js @@ -1 +1 @@ -const e={key:"v-581890ae",path:"/models/webhook.html",title:"Webhook",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"_id",slug:"id",children:[]},{level:2,title:"url",slug:"url",children:[]},{level:2,title:"events",slug:"events",children:[]},{level:2,title:"filter",slug:"filter",children:[]}],git:{updatedTime:1719405314e3,contributors:[{name:"sairam charan",email:"mohanvenkat459@gmail.com",commits:1}]},filePathRelative:"models/webhook.md"};export{e as data}; +const e={key:"v-581890ae",path:"/models/webhook.html",title:"Webhook",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"_id",slug:"id",children:[]},{level:2,title:"url",slug:"url",children:[]},{level:2,title:"events",slug:"events",children:[]},{level:2,title:"filter",slug:"filter",children:[]}],git:{updatedTime:1719405734e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",commits:1}]},filePathRelative:"models/webhook.md"};export{e as data}; diff --git a/assets/whisp.html.48d188ba.js b/assets/whisp.html.a6fa571b.js similarity index 87% rename from assets/whisp.html.48d188ba.js rename to assets/whisp.html.a6fa571b.js index 65016c7c7..75cd24131 100644 --- a/assets/whisp.html.48d188ba.js +++ b/assets/whisp.html.a6fa571b.js @@ -1 +1 @@ -const e={key:"v-4b2698d0",path:"/models/whisp.html",title:"Whisp",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"_id",slug:"id",children:[]},{level:2,title:"readableID",slug:"readableid",children:[]},{level:2,title:"type",slug:"type",children:[]},{level:2,title:"severity",slug:"severity",children:[]},{level:2,title:"description",slug:"description",children:[]},{level:2,title:"closed",slug:"closed",children:[]},{level:2,title:"applicationID",slug:"applicationid",children:[]},{level:2,title:"plantID",slug:"plantid",children:[]},{level:2,title:"locationID",slug:"locationid",children:[]},{level:2,title:"manual",slug:"manual",children:[]},{level:2,title:"openedBy",slug:"openedby",children:[]},{level:2,title:"openedById",slug:"openedbyid",children:[]},{level:2,title:"closedBy",slug:"closedby",children:[]},{level:2,title:"closedById",slug:"closedbyid",children:[]},{level:2,title:"timestamp",slug:"timestamp",children:[]},{level:2,title:"updated",slug:"updated",children:[]},{level:2,title:"timeToLive / timeToLiveSec",slug:"timetolive-timetolivesec",children:[]},{level:2,title:"expirationDate",slug:"expirationdate",children:[]},{level:2,title:"data",slug:"data",children:[]}],git:{updatedTime:1719405314e3,contributors:[{name:"sairam charan",email:"mohanvenkat459@gmail.com",commits:1}]},filePathRelative:"models/whisp.md"};export{e as data}; +const e={key:"v-4b2698d0",path:"/models/whisp.html",title:"Whisp",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"_id",slug:"id",children:[]},{level:2,title:"readableID",slug:"readableid",children:[]},{level:2,title:"type",slug:"type",children:[]},{level:2,title:"severity",slug:"severity",children:[]},{level:2,title:"description",slug:"description",children:[]},{level:2,title:"closed",slug:"closed",children:[]},{level:2,title:"applicationID",slug:"applicationid",children:[]},{level:2,title:"plantID",slug:"plantid",children:[]},{level:2,title:"locationID",slug:"locationid",children:[]},{level:2,title:"manual",slug:"manual",children:[]},{level:2,title:"openedBy",slug:"openedby",children:[]},{level:2,title:"openedById",slug:"openedbyid",children:[]},{level:2,title:"closedBy",slug:"closedby",children:[]},{level:2,title:"closedById",slug:"closedbyid",children:[]},{level:2,title:"timestamp",slug:"timestamp",children:[]},{level:2,title:"updated",slug:"updated",children:[]},{level:2,title:"timeToLive / timeToLiveSec",slug:"timetolive-timetolivesec",children:[]},{level:2,title:"expirationDate",slug:"expirationdate",children:[]},{level:2,title:"data",slug:"data",children:[]}],git:{updatedTime:1719405734e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",commits:1}]},filePathRelative:"models/whisp.md"};export{e as data}; diff --git a/assets/whisp.html.282c41a6.js b/assets/whisp.html.effd2250.js similarity index 98% rename from assets/whisp.html.282c41a6.js rename to assets/whisp.html.effd2250.js index 617352429..aaeed7568 100644 --- a/assets/whisp.html.282c41a6.js +++ b/assets/whisp.html.effd2250.js @@ -1 +1 @@ -import{_ as e,c as i}from"./app.073399da.js";const a={},t=i('

Whisp

These are the available fields for the Whisp entity.

_id

Type: ID!

Description: Autogenerated scalar identifier

readableID

Type: String

Description: Auto generated (counter based) id you can use for filtering

type

Type: String

Description: To distinguiss between your whisp

severity

Type: Int

Description: Priority level lower number is higher priority

description

Type: String

Description: General decription

closed

Type: Boolean

Description: Does the action required by this whisp is done and closed

applicationID

Type: String

Description: Id of the client application that sent this whisp

plantID

Type: String

Description: Id of the Plan or factory of the subject this whisp has been created for

locationID

Type: String

Description: Locate the spacial position of the subject this whisp has been created for

manual

Type: Boolean

Description: Does this whisp has been created manually by human and not by an automated process

openedBy

Type: String

Description: Friendly name of the creator of this whisp

openedById

Type: String

Description: Id of the creator of this whisp

closedBy

Type: String

Description: Friendly name of the person who close or resolve this whisp

closedById

Type: String

Description: Id of the person who close or resolve this whisp

timestamp

Type: String

Description: Time and date when this whisp has been created in the source system. If not provided, a value is created once the whisp created in whispr server.

updated

Type: String

Description: Data and time of the last time the whisp as been changed or been created.

timeToLive / timeToLiveSec

Type: String / Number

Description: TimeToLive is the input string that is used to define the TTL. Smart format (using parse-duration library) can be used : e.g 1m, 1hour, 1h10sec, 10hour -1min . timeToLiveSec is the stored number of second after which this whisp will be delete automatically since its creation. Defining timeToLive automatically set the expirationDate field accordingly

expirationDate

Type: Date

Description: The date after which the whisp will be deleted automatically. defining expirationDate direclty clear the timeToLiveSec field

data

Type: JSONObject

Description: An object containing the details of the whisp specific to the application

',59);function r(h,d){return t}var p=e(a,[["render",r],["__file","whisp.html.vue"]]);export{p as default}; +import{_ as e,c as i}from"./app.2353e9b9.js";const a={},t=i('

Whisp

These are the available fields for the Whisp entity.

_id

Type: ID!

Description: Autogenerated scalar identifier

readableID

Type: String

Description: Auto generated (counter based) id you can use for filtering

type

Type: String

Description: To distinguiss between your whisp

severity

Type: Int

Description: Priority level lower number is higher priority

description

Type: String

Description: General decription

closed

Type: Boolean

Description: Does the action required by this whisp is done and closed

applicationID

Type: String

Description: Id of the client application that sent this whisp

plantID

Type: String

Description: Id of the Plan or factory of the subject this whisp has been created for

locationID

Type: String

Description: Locate the spacial position of the subject this whisp has been created for

manual

Type: Boolean

Description: Does this whisp has been created manually by human and not by an automated process

openedBy

Type: String

Description: Friendly name of the creator of this whisp

openedById

Type: String

Description: Id of the creator of this whisp

closedBy

Type: String

Description: Friendly name of the person who close or resolve this whisp

closedById

Type: String

Description: Id of the person who close or resolve this whisp

timestamp

Type: String

Description: Time and date when this whisp has been created in the source system. If not provided, a value is created once the whisp created in whispr server.

updated

Type: String

Description: Data and time of the last time the whisp as been changed or been created.

timeToLive / timeToLiveSec

Type: String / Number

Description: TimeToLive is the input string that is used to define the TTL. Smart format (using parse-duration library) can be used : e.g 1m, 1hour, 1h10sec, 10hour -1min . timeToLiveSec is the stored number of second after which this whisp will be delete automatically since its creation. Defining timeToLive automatically set the expirationDate field accordingly

expirationDate

Type: Date

Description: The date after which the whisp will be deleted automatically. defining expirationDate direclty clear the timeToLiveSec field

data

Type: JSONObject

Description: An object containing the details of the whisp specific to the application

',59);function r(h,d){return t}var p=e(a,[["render",r],["__file","whisp.html.vue"]]);export{p as default}; diff --git a/contributing/building.html b/contributing/building.html index 7f5378032..400c3967c 100644 --- a/contributing/building.html +++ b/contributing/building.html @@ -23,11 +23,11 @@ } Building | whispr - + - - + + diff --git a/contributing/community.html b/contributing/community.html index a224ea9b7..bf422097f 100644 --- a/contributing/community.html +++ b/contributing/community.html @@ -23,11 +23,11 @@ } Community | whispr - + - - + + diff --git a/contributing/credits.html b/contributing/credits.html index c95abe829..6e52b4c9e 100644 --- a/contributing/credits.html +++ b/contributing/credits.html @@ -23,11 +23,11 @@ } Credits | whispr - + - - + + diff --git a/contributing/guidelines.html b/contributing/guidelines.html index de1c6ea65..40e815fb4 100644 --- a/contributing/guidelines.html +++ b/contributing/guidelines.html @@ -23,11 +23,11 @@ } Guidelines | whispr - + - - + + diff --git a/events/index.html b/events/index.html index 60dc945ac..f94233df9 100644 --- a/events/index.html +++ b/events/index.html @@ -23,7 +23,7 @@ } Event system | whispr - + @@ -31,7 +31,7 @@ name: "WHISP_CREATED", payload: WhispEntity } -

Event list: All the events are registered in the EventNames enum in the event.entity.ts file.

Event Listeners

Webhooks and plugins can register event listeners.

Schema

Event system

Last Updated:
Contributors: sairam charan
- +

Event list: All the events are registered in the EventNames enum in the event.entity.ts file.

Event Listeners

Webhooks and plugins can register event listeners.

Schema

Event system

Last Updated:
Contributors: semantic-release-bot
+ diff --git a/fileupload.html b/fileupload.html index 07771a02d..445e2371e 100644 --- a/fileupload.html +++ b/fileupload.html @@ -23,7 +23,7 @@ } File Upload | whispr - + @@ -71,7 +71,7 @@ "file": "<S3-Key>" }] } -

To get the Binary of your file, send a GET-Request to <whispr-url>/file/<S3-Key>.

Last Updated:
Contributors: sairam charan
- +

To get the Binary of your file, send a GET-Request to <whispr-url>/file/<S3-Key>.

Last Updated:
Contributors: semantic-release-bot
+ diff --git a/filters/index.html b/filters/index.html index d88a36a47..7e8ebd0c7 100644 --- a/filters/index.html +++ b/filters/index.html @@ -23,7 +23,7 @@ } Filters | whispr - + @@ -56,7 +56,7 @@

Additional filtering functionality

Additionally some endpoints offer you the possibility to use all mongo filtering options. This is specified in the endpoint documentation.

For example, to match all values that are not equal to a specified value, you can do:

{
   "filter": { "att1": { "$ne": "value1" } }
 }
-
Last Updated:
Contributors: sairam charan
- +
Last Updated:
Contributors: semantic-release-bot
+ diff --git a/index.html b/index.html index 2ee8efdf8..b74d5e6fd 100644 --- a/index.html +++ b/index.html @@ -23,11 +23,11 @@ } whispr - +
hero

Simple, pluggable, open source event, comment and alert pub sub microservice

Get Started →

Easy pub sub

Easily implement whispr and integrate into your projects as a pub sub solution for event type data.

UI library

Get started quickly with some simple UI components to add cool whispr integrations to your app, or build from them as samples.

Progressive

An open, extendable platform built using a modern, progressive tech stack using Nest.js, GraphQL.

- + diff --git a/indexing.html b/indexing.html index 5b87bd049..35684f7a9 100644 --- a/indexing.html +++ b/indexing.html @@ -23,7 +23,7 @@ } Indexing | whispr - + @@ -36,7 +36,7 @@ # compound index db.whisps.createIndex({"applicationID": 1, "closed": -1}) -
Last Updated:
Contributors: sairam charan
- +
Last Updated:
Contributors: semantic-release-bot
+ diff --git a/installation.html b/installation.html index 4e7231998..0847418a4 100644 --- a/installation.html +++ b/installation.html @@ -23,7 +23,7 @@ } Installation | whispr - + @@ -114,7 +114,7 @@ # production mode $ npm run start:prod -
Last Updated:
Contributors: sairam charan
- +
Last Updated:
Contributors: semantic-release-bot
+ diff --git a/introduction/index.html b/introduction/index.html index ffe44226f..035d7e028 100644 --- a/introduction/index.html +++ b/introduction/index.html @@ -23,11 +23,11 @@ } Introduction | whispr - + -

Introduction

Whispr is an open source event, comment and alert processing hub created by Sanofi IADC. We created it to meet our need for a centralised comment and alerting service which could be easily integrated into our tech stack.

In Whispr each event object is called a whisp. A whisp is classified with a severity level from info to critical, can have tags to further classify it, and has a generic data object which stores the detail of the whisp. As an example, a comment within an application could be a whisp of severity level info, with the comment text in the data object.

Using Whispr we’ve implemented a messaging service for users to communicate between our apps, and a business process status pub/sub alerting solution - any system can send an alert to Whispr, and susbscribing applications and users are automatically notified to display the alert and take action.

Main features

  • GraphQL and REST API for whisp creation
  • Whisp classification through severity types
  • Filtering using any of the base elements of a whisp
  • Tag management system for whisp classification
  • Subscriptions through GraphQL with Websockets (more subscription types coming up very soon in our roadmap)

Example use cases for Whispr

  • Equipment status sharing (alerting) from IoT equipment
  • Lightweight comment feed (messaging) solutions
  • Machine learning on a central hub of data to identify data trends (common root causes for alerts, alert patterns)

Whispr in action

Chat application with whispr animated gif

Demonstration of using whispr as a comment system. Each comment is a whisp with severity info, and tags are also defined as a separate object type in whispr. All user interface components you see are available for use in the whispr UI library.

Key components

Whispr consists of the following main elements:

  • Whispr core: providing an whisp pub/sub system - publishing systems can register whisps in Whispr core when they need to share the status with. Whispr core can be used by any application capable of communicating with GraphQL or REST APIs
  • Whispr UI: A front end component library for fast implementation of some common use cases within your Vue.js or React based web application.

Roadmap

  • We have big plans for Whispr, here are a few of the key items Plugin system
  • Advanced filtering
  • Whisp schema registration and validation
Last Updated:
Contributors: sairam charan
- +

Introduction

Whispr is an open source event, comment and alert processing hub created by Sanofi IADC. We created it to meet our need for a centralised comment and alerting service which could be easily integrated into our tech stack.

In Whispr each event object is called a whisp. A whisp is classified with a severity level from info to critical, can have tags to further classify it, and has a generic data object which stores the detail of the whisp. As an example, a comment within an application could be a whisp of severity level info, with the comment text in the data object.

Using Whispr we’ve implemented a messaging service for users to communicate between our apps, and a business process status pub/sub alerting solution - any system can send an alert to Whispr, and susbscribing applications and users are automatically notified to display the alert and take action.

Main features

  • GraphQL and REST API for whisp creation
  • Whisp classification through severity types
  • Filtering using any of the base elements of a whisp
  • Tag management system for whisp classification
  • Subscriptions through GraphQL with Websockets (more subscription types coming up very soon in our roadmap)

Example use cases for Whispr

  • Equipment status sharing (alerting) from IoT equipment
  • Lightweight comment feed (messaging) solutions
  • Machine learning on a central hub of data to identify data trends (common root causes for alerts, alert patterns)

Whispr in action

Chat application with whispr animated gif

Demonstration of using whispr as a comment system. Each comment is a whisp with severity info, and tags are also defined as a separate object type in whispr. All user interface components you see are available for use in the whispr UI library.

Key components

Whispr consists of the following main elements:

  • Whispr core: providing an whisp pub/sub system - publishing systems can register whisps in Whispr core when they need to share the status with. Whispr core can be used by any application capable of communicating with GraphQL or REST APIs
  • Whispr UI: A front end component library for fast implementation of some common use cases within your Vue.js or React based web application.

Roadmap

  • We have big plans for Whispr, here are a few of the key items Plugin system
  • Advanced filtering
  • Whisp schema registration and validation
Last Updated:
Contributors: semantic-release-bot
+ diff --git a/models/tagGroup.html b/models/tagGroup.html index c47ada15d..8511452c9 100644 --- a/models/tagGroup.html +++ b/models/tagGroup.html @@ -23,11 +23,11 @@ } TagGroup | whispr - + -

TagGroup

These are the available fields for the TagGroup entity.

_id

Type: ID!

Description: Autogenerated scalar identifier

title

Type: String

Description:

metalevel

Type: String

Description:

applicationID

Type: String

Description:

tags

Type: [String]

Description:

Last Updated:
Contributors: sairam charan
- +

TagGroup

These are the available fields for the TagGroup entity.

_id

Type: ID!

Description: Autogenerated scalar identifier

title

Type: String

Description:

metalevel

Type: String

Description:

applicationID

Type: String

Description:

tags

Type: [String]

Description:

Last Updated:
Contributors: semantic-release-bot
+ diff --git a/models/webhook.html b/models/webhook.html index 5c8764700..c6788354d 100644 --- a/models/webhook.html +++ b/models/webhook.html @@ -23,11 +23,11 @@ } Webhook | whispr - + -

Webhook

These are the available fields for the Webhook entity.

_id

Type: ID!

Description: Autogenerated scalar identifier

url

Type: String

events

Type: [String]

filter

Type: JSONObject

Last Updated:
Contributors: sairam charan
- +

Webhook

These are the available fields for the Webhook entity.

_id

Type: ID!

Description: Autogenerated scalar identifier

url

Type: String

events

Type: [String]

filter

Type: JSONObject

Last Updated:
Contributors: semantic-release-bot
+ diff --git a/models/whisp.html b/models/whisp.html index 2cc1bc22f..eacf119b3 100644 --- a/models/whisp.html +++ b/models/whisp.html @@ -23,11 +23,11 @@ } Whisp | whispr - + -

Whisp

These are the available fields for the Whisp entity.

_id

Type: ID!

Description: Autogenerated scalar identifier

readableID

Type: String

Description: Auto generated (counter based) id you can use for filtering

type

Type: String

Description: To distinguiss between your whisp

severity

Type: Int

Description: Priority level lower number is higher priority

description

Type: String

Description: General decription

closed

Type: Boolean

Description: Does the action required by this whisp is done and closed

applicationID

Type: String

Description: Id of the client application that sent this whisp

plantID

Type: String

Description: Id of the Plan or factory of the subject this whisp has been created for

locationID

Type: String

Description: Locate the spacial position of the subject this whisp has been created for

manual

Type: Boolean

Description: Does this whisp has been created manually by human and not by an automated process

openedBy

Type: String

Description: Friendly name of the creator of this whisp

openedById

Type: String

Description: Id of the creator of this whisp

closedBy

Type: String

Description: Friendly name of the person who close or resolve this whisp

closedById

Type: String

Description: Id of the person who close or resolve this whisp

timestamp

Type: String

Description: Time and date when this whisp has been created in the source system. If not provided, a value is created once the whisp created in whispr server.

updated

Type: String

Description: Data and time of the last time the whisp as been changed or been created.

timeToLive / timeToLiveSec

Type: String / Number

Description: TimeToLive is the input string that is used to define the TTL. Smart format (using parse-duration library) can be used : e.g 1m, 1hour, 1h10sec, 10hour -1min . timeToLiveSec is the stored number of second after which this whisp will be delete automatically since its creation. Defining timeToLive automatically set the expirationDate field accordingly

expirationDate

Type: Date

Description: The date after which the whisp will be deleted automatically. defining expirationDate direclty clear the timeToLiveSec field

data

Type: JSONObject

Description: An object containing the details of the whisp specific to the application

Last Updated:
Contributors: sairam charan
- +

Whisp

These are the available fields for the Whisp entity.

_id

Type: ID!

Description: Autogenerated scalar identifier

readableID

Type: String

Description: Auto generated (counter based) id you can use for filtering

type

Type: String

Description: To distinguiss between your whisp

severity

Type: Int

Description: Priority level lower number is higher priority

description

Type: String

Description: General decription

closed

Type: Boolean

Description: Does the action required by this whisp is done and closed

applicationID

Type: String

Description: Id of the client application that sent this whisp

plantID

Type: String

Description: Id of the Plan or factory of the subject this whisp has been created for

locationID

Type: String

Description: Locate the spacial position of the subject this whisp has been created for

manual

Type: Boolean

Description: Does this whisp has been created manually by human and not by an automated process

openedBy

Type: String

Description: Friendly name of the creator of this whisp

openedById

Type: String

Description: Id of the creator of this whisp

closedBy

Type: String

Description: Friendly name of the person who close or resolve this whisp

closedById

Type: String

Description: Id of the person who close or resolve this whisp

timestamp

Type: String

Description: Time and date when this whisp has been created in the source system. If not provided, a value is created once the whisp created in whispr server.

updated

Type: String

Description: Data and time of the last time the whisp as been changed or been created.

timeToLive / timeToLiveSec

Type: String / Number

Description: TimeToLive is the input string that is used to define the TTL. Smart format (using parse-duration library) can be used : e.g 1m, 1hour, 1h10sec, 10hour -1min . timeToLiveSec is the stored number of second after which this whisp will be delete automatically since its creation. Defining timeToLive automatically set the expirationDate field accordingly

expirationDate

Type: Date

Description: The date after which the whisp will be deleted automatically. defining expirationDate direclty clear the timeToLiveSec field

data

Type: JSONObject

Description: An object containing the details of the whisp specific to the application

Last Updated:
Contributors: semantic-release-bot
+ diff --git a/plugins/index.html b/plugins/index.html index 6bb2e2f98..77247fe60 100644 --- a/plugins/index.html +++ b/plugins/index.html @@ -23,7 +23,7 @@ } Plugins | whispr - + @@ -41,7 +41,7 @@ }, ... // other listeners ]; -
Last Updated:
Contributors: sairam charan
- +
Last Updated:
Contributors: semantic-release-bot
+ diff --git a/security.html b/security.html index bc3256245..fa74b64d5 100644 --- a/security.html +++ b/security.html @@ -23,7 +23,7 @@ } Security | whispr - + @@ -75,7 +75,7 @@ "secretOrKey":"APPY_SECRET_KEY"} ] } -

Secret passed through environment variable

Good practice imposed to not store secret in version control managment system and retrieve it from an environment variable instead. Do so and setup the secretOrKeyFromEnv config property with the name of an environment variable of your choice and leave secretOrKey empty. secretOrKey will then be automatically filled with your environment variable's value.

Authorisation

No specific authorisation is currently implemented in Whispr - if you are authenticated it is assumed that you should have access to all data in Whispr.

Last Updated:
Contributors: sairam charan
- +

Secret passed through environment variable

Good practice imposed to not store secret in version control managment system and retrieve it from an environment variable instead. Do so and setup the secretOrKeyFromEnv config property with the name of an environment variable of your choice and leave secretOrKey empty. secretOrKey will then be automatically filled with your environment variable's value.

Authorisation

No specific authorisation is currently implemented in Whispr - if you are authenticated it is assumed that you should have access to all data in Whispr.

Last Updated:
Contributors: semantic-release-bot
+ diff --git a/testing.html b/testing.html index 8c26b8f86..616be770f 100644 --- a/testing.html +++ b/testing.html @@ -23,7 +23,7 @@ } Testing | whispr - + @@ -37,7 +37,7 @@ $ npm run test:cov

Unit Tests

The unit test is a way of testing a unit , the smallest possible unit of code that can be logically isolated in a system. These units are tested to determine if there are any issues when the developer make the change in the code base. It should count for the majority of the tests we can have. Normally, only test one method each. Example : Whisp, Subscription To run the unit test locally :npm run test:unit:cov

Integration Tests

Integration tests which are tests designed to verify the integration of different parts of separate components of a software system together. To test some integration functionality with the database, we will use mongo in-memory database.

Example :Whisp service & MongoDb To run the integration test locally : npm run test:integration

End to End Tests

End-to-end tests which are tests that verify an application’s workflow of code base from beginning to end.This method basically aims to replicate real user scenarios so that the system can be validated for integration and data integrity. Example : Webhook, TagGroup, WhispSubscription To run the end to end test locally : npm run test:e2e

In order to run end to end tests you need mongo, redis and localstack to be up and running. In order to do that you up the dockers in docker-compose.dev.yml

docker-compose -f docker-compose.dev.yml up -d
 

Note : Be aware that it will create entities in the DB and in the S3 bucket. This could interfere with your local data.

Debugging tests

You can debug the tests in your IDE by running npm run test:debug or npm run test:e2e:debug and the launching Attach to Node process in the debugging tab in VSCode

Load testing

Load testing is implemented using https://k6.io/, and can be executed locally, on a remote server or directly within the CI pipeline. The current load tests are simple and can be considered experimental. PRs for more comprehensive load tests are welcome!

To run the tests, install K6: https://k6.io/docs/getting-started/installation/.

Then run the script:

k6 run tests/load/whisp-create.load.js
-

Execution in CI

Last Updated:
Contributors: sairam charan
- +

Execution in CI

Last Updated:
Contributors: semantic-release-bot
+ diff --git a/troubleshoot/index.html b/troubleshoot/index.html index 3ab9686e3..11532cc7d 100644 --- a/troubleshoot/index.html +++ b/troubleshoot/index.html @@ -23,11 +23,11 @@ } Troubleshoot | whispr - + -

Troubleshoot

Header logging

Request http headers can be displayed in application logs. to Enable it pass DEBUG_HTTP_HEADERS=true as an environment variable to the application process

Not that "authorization" header will be hidden for security purpose.

Last Updated:
Contributors: sairam charan
- +

Troubleshoot

Header logging

Request http headers can be displayed in application logs. to Enable it pass DEBUG_HTTP_HEADERS=true as an environment variable to the application process

Not that "authorization" header will be hidden for security purpose.

Last Updated:
Contributors: semantic-release-bot
+ diff --git a/webhooks/index.html b/webhooks/index.html index 8f05252b5..3b769324d 100644 --- a/webhooks/index.html +++ b/webhooks/index.html @@ -23,7 +23,7 @@ } Webhooks | whispr - + @@ -36,7 +36,7 @@ "eventName": "WHISP_CREATED", "content": whispEntity } -

Webhook proxy / CA

In order to use a proxy set the HTTP_PROXY or HTTPS_PROXY environment variables.

You can pass a custom CA_CERTIFICATE by setting the variable. It can contains the path to one or multiple certificates in the Docker File, separated by comma.

Last Updated:
Contributors: sairam charan
- +

Webhook proxy / CA

In order to use a proxy set the HTTP_PROXY or HTTPS_PROXY environment variables.

You can pass a custom CA_CERTIFICATE by setting the variable. It can contains the path to one or multiple certificates in the Docker File, separated by comma.

Last Updated:
Contributors: semantic-release-bot
+