From 9d1f3eee5183f61dd91dc75bc4f51d39eb463807 Mon Sep 17 00:00:00 2001 From: krystiankedra Date: Thu, 1 Aug 2024 14:05:11 +0000 Subject: [PATCH] deploy: b330dc7d3c3a6f519c982eb94023d4333c1064fb --- 404.html | 6 +++--- api/graphql.html | 6 +++--- api/introduction.html | 6 +++--- api/rest.html | 6 +++--- apm.html | 6 +++--- architecture/index.html | 6 +++--- assets/{404.a441ceb8.js => 404.edbaa59a.js} | 2 +- assets/{404.html.f5d27665.js => 404.html.86aa76f3.js} | 2 +- assets/{Layout.92207b5c.js => Layout.624b2761.js} | 2 +- assets/apm.html.2eef6d7a.js | 1 - assets/{apm.html.be2caf0e.js => apm.html.84887a9a.js} | 2 +- assets/apm.html.cbe29844.js | 1 + assets/{app.1d3198a4.js => app.5de46851.js} | 2 +- assets/building.html.1eb71e68.js | 1 + assets/building.html.3269aa6c.js | 1 - ...{building.html.c226f665.js => building.html.be3dbee1.js} | 2 +- ...ommunity.html.e52d2a47.js => community.html.1c48580e.js} | 2 +- assets/community.html.23456f06.js | 1 + assets/community.html.4945305e.js | 1 - .../{credits.html.310b543b.js => credits.html.7b51bfe4.js} | 2 +- assets/credits.html.7bd73170.js | 1 + assets/credits.html.8ada532c.js | 1 - ...eupload.html.a5c7e08c.js => fileupload.html.710fa315.js} | 2 +- ...eupload.html.3f4dd5c3.js => fileupload.html.fd3cc39f.js} | 2 +- .../{graphql.html.c99106e6.js => graphql.html.364a2761.js} | 2 +- .../{graphql.html.6f0178ae.js => graphql.html.7049b805.js} | 2 +- ...delines.html.890468b4.js => guidelines.html.918d3a63.js} | 2 +- assets/guidelines.html.92305138.js | 1 + assets/guidelines.html.cb229bf5.js | 1 - assets/{index.html.099cc382.js => index.html.0c232e3b.js} | 2 +- assets/index.html.1a357d98.js | 1 - assets/{index.html.2719668e.js => index.html.1c6b8f95.js} | 2 +- assets/{index.html.4074b837.js => index.html.1f20c737.js} | 2 +- assets/{index.html.9e4e58cf.js => index.html.242f6df0.js} | 2 +- assets/{index.html.e5da4859.js => index.html.25ce8110.js} | 2 +- assets/{index.html.1ba0dfab.js => index.html.2eeab0b9.js} | 2 +- assets/{index.html.80b6b18d.js => index.html.3028e654.js} | 2 +- assets/{index.html.6bf3698e.js => index.html.32cb87d2.js} | 2 +- assets/index.html.969a4d2f.js | 1 + assets/{index.html.15f8c790.js => index.html.b9b3290a.js} | 2 +- assets/{index.html.fb0e849f.js => index.html.bc7b1a19.js} | 2 +- assets/{index.html.abb03c8b.js => index.html.ccc96c22.js} | 2 +- assets/{index.html.4dc04dfe.js => index.html.d8a437ad.js} | 2 +- assets/{index.html.dbdbd9ec.js => index.html.dd30fc77.js} | 2 +- assets/{index.html.e6e38a5b.js => index.html.e5b75019.js} | 2 +- assets/{index.html.3db4c5a2.js => index.html.e9a03bae.js} | 2 +- ...{indexing.html.a9b0376d.js => indexing.html.00a046f2.js} | 2 +- ...{indexing.html.9bdda701.js => indexing.html.8f59c70b.js} | 2 +- ...ation.html.47806010.js => installation.html.f2e2be04.js} | 2 +- ...ation.html.c6e16be3.js => installation.html.fddbdcc8.js} | 2 +- ...ction.html.373f81e5.js => introduction.html.26553478.js} | 2 +- ...ction.html.ff659329.js => introduction.html.fee7c2bc.js} | 2 +- assets/{rest.html.bd20cdea.js => rest.html.4eb180f7.js} | 2 +- assets/{rest.html.6079ba63.js => rest.html.e60ba5a4.js} | 2 +- ...{security.html.6742a30a.js => security.html.7342b264.js} | 2 +- ...{security.html.5b126e9e.js => security.html.9082224a.js} | 2 +- ...{tagGroup.html.0f9dd242.js => tagGroup.html.08d997c3.js} | 2 +- ...{tagGroup.html.ba59c0e5.js => tagGroup.html.12c1db89.js} | 2 +- .../{testing.html.49e1c9b2.js => testing.html.b7d12b6e.js} | 2 +- .../{testing.html.a9b491bb.js => testing.html.f2d7f97f.js} | 2 +- .../{webhook.html.1fa10a8f.js => webhook.html.022a5369.js} | 2 +- .../{webhook.html.f063da9a.js => webhook.html.bba82376.js} | 2 +- assets/{whisp.html.7028f2f8.js => whisp.html.66f7b1c9.js} | 2 +- assets/{whisp.html.227742b3.js => whisp.html.aba4bbd8.js} | 2 +- contributing/building.html | 6 +++--- contributing/community.html | 6 +++--- contributing/credits.html | 6 +++--- contributing/guidelines.html | 6 +++--- events/index.html | 6 +++--- fileupload.html | 6 +++--- filters/index.html | 6 +++--- index.html | 4 ++-- indexing.html | 6 +++--- installation.html | 6 +++--- introduction/index.html | 6 +++--- models/tagGroup.html | 6 +++--- models/webhook.html | 6 +++--- models/whisp.html | 6 +++--- plugins/index.html | 6 +++--- security.html | 6 +++--- testing.html | 6 +++--- troubleshoot/index.html | 6 +++--- webhooks/index.html | 6 +++--- 83 files changed, 126 insertions(+), 126 deletions(-) rename assets/{404.a441ceb8.js => 404.edbaa59a.js} (90%) rename assets/{404.html.f5d27665.js => 404.html.86aa76f3.js} (56%) rename assets/{Layout.92207b5c.js => Layout.624b2761.js} (99%) delete mode 100644 assets/apm.html.2eef6d7a.js rename assets/{apm.html.be2caf0e.js => apm.html.84887a9a.js} (93%) create mode 100644 assets/apm.html.cbe29844.js rename assets/{app.1d3198a4.js => app.5de46851.js} (97%) create mode 100644 assets/building.html.1eb71e68.js delete mode 100644 assets/building.html.3269aa6c.js rename assets/{building.html.c226f665.js => building.html.be3dbee1.js} (80%) rename assets/{community.html.e52d2a47.js => community.html.1c48580e.js} (80%) create mode 100644 assets/community.html.23456f06.js delete mode 100644 assets/community.html.4945305e.js rename assets/{credits.html.310b543b.js => credits.html.7b51bfe4.js} (80%) create mode 100644 assets/credits.html.7bd73170.js delete mode 100644 assets/credits.html.8ada532c.js rename assets/{fileupload.html.a5c7e08c.js => fileupload.html.710fa315.js} (99%) rename assets/{fileupload.html.3f4dd5c3.js => fileupload.html.fd3cc39f.js} (61%) rename assets/{graphql.html.c99106e6.js => graphql.html.364a2761.js} (99%) rename assets/{graphql.html.6f0178ae.js => graphql.html.7049b805.js} (90%) rename assets/{guidelines.html.890468b4.js => guidelines.html.918d3a63.js} (81%) create mode 100644 assets/guidelines.html.92305138.js delete mode 100644 assets/guidelines.html.cb229bf5.js rename assets/{index.html.099cc382.js => index.html.0c232e3b.js} (91%) delete mode 100644 assets/index.html.1a357d98.js rename assets/{index.html.2719668e.js => index.html.1c6b8f95.js} (98%) rename assets/{index.html.4074b837.js => index.html.1f20c737.js} (58%) rename assets/{index.html.9e4e58cf.js => index.html.242f6df0.js} (55%) rename assets/{index.html.e5da4859.js => index.html.25ce8110.js} (90%) rename assets/{index.html.1ba0dfab.js => index.html.2eeab0b9.js} (68%) rename assets/{index.html.80b6b18d.js => index.html.3028e654.js} (51%) rename assets/{index.html.6bf3698e.js => index.html.32cb87d2.js} (98%) create mode 100644 assets/index.html.969a4d2f.js rename assets/{index.html.15f8c790.js => index.html.b9b3290a.js} (68%) rename assets/{index.html.fb0e849f.js => index.html.bc7b1a19.js} (62%) rename assets/{index.html.abb03c8b.js => index.html.ccc96c22.js} (99%) rename assets/{index.html.4dc04dfe.js => index.html.d8a437ad.js} (98%) rename assets/{index.html.dbdbd9ec.js => index.html.dd30fc77.js} (60%) rename assets/{index.html.e6e38a5b.js => index.html.e5b75019.js} (79%) rename assets/{index.html.3db4c5a2.js => index.html.e9a03bae.js} (96%) rename assets/{indexing.html.a9b0376d.js => indexing.html.00a046f2.js} (97%) rename assets/{indexing.html.9bdda701.js => indexing.html.8f59c70b.js} (60%) rename assets/{installation.html.47806010.js => installation.html.f2e2be04.js} (99%) rename assets/{installation.html.c6e16be3.js => installation.html.fddbdcc8.js} (86%) rename assets/{introduction.html.373f81e5.js => introduction.html.26553478.js} (98%) rename assets/{introduction.html.ff659329.js => introduction.html.fee7c2bc.js} (51%) rename assets/{rest.html.bd20cdea.js => rest.html.4eb180f7.js} (86%) rename assets/{rest.html.6079ba63.js => rest.html.e60ba5a4.js} (99%) rename assets/{security.html.6742a30a.js => security.html.7342b264.js} (99%) rename assets/{security.html.5b126e9e.js => security.html.9082224a.js} (74%) rename assets/{tagGroup.html.0f9dd242.js => tagGroup.html.08d997c3.js} (94%) rename assets/{tagGroup.html.ba59c0e5.js => tagGroup.html.12c1db89.js} (67%) rename assets/{testing.html.49e1c9b2.js => testing.html.b7d12b6e.js} (98%) rename assets/{testing.html.a9b491bb.js => testing.html.f2d7f97f.js} (73%) rename assets/{webhook.html.1fa10a8f.js => webhook.html.022a5369.js} (92%) rename assets/{webhook.html.f063da9a.js => webhook.html.bba82376.js} (64%) rename assets/{whisp.html.7028f2f8.js => whisp.html.66f7b1c9.js} (98%) rename assets/{whisp.html.227742b3.js => whisp.html.aba4bbd8.js} (88%) diff --git a/404.html b/404.html index ed00ed168..08f24d734 100644 --- a/404.html +++ b/404.html @@ -23,11 +23,11 @@ } whispr - + -

404

There's nothing here.
Take me home
- +

404

Looks like we've got some broken links.
Take me home
+ diff --git a/api/graphql.html b/api/graphql.html index 1bdc7d571..eb565df74 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 6fab64a2f..cddeed1e2 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 226eacb4a..8b5268ae5 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: semantic-release-bot
- +

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: Krystian Kędra
+ diff --git a/apm.html b/apm.html index 12c322a12..221c3651e 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 497dd8c84..8615a6a7f 100644 --- a/architecture/index.html +++ b/architecture/index.html @@ -23,11 +23,11 @@ } Architecture | whispr - + -
- +
+ diff --git a/assets/404.a441ceb8.js b/assets/404.edbaa59a.js similarity index 90% rename from assets/404.a441ceb8.js rename to assets/404.edbaa59a.js index 3ede825fc..bb9b2006f 100644 --- a/assets/404.a441ceb8.js +++ b/assets/404.edbaa59a.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.1d3198a4.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.5de46851.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.f5d27665.js b/assets/404.html.86aa76f3.js similarity index 56% rename from assets/404.html.f5d27665.js rename to assets/404.html.86aa76f3.js index f78babbb0..824bd36ca 100644 --- a/assets/404.html.f5d27665.js +++ b/assets/404.html.86aa76f3.js @@ -1 +1 @@ -import{_}from"./app.1d3198a4.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.5de46851.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.92207b5c.js b/assets/Layout.624b2761.js similarity index 99% rename from assets/Layout.92207b5c.js rename to assets/Layout.624b2761.js index 5ca6abb62..30af5993e 100644 --- a/assets/Layout.92207b5c.js +++ b/assets/Layout.624b2761.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.1d3198a4.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.5de46851.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.2eef6d7a.js b/assets/apm.html.2eef6d7a.js deleted file mode 100644 index cb0956855..000000000 --- a/assets/apm.html.2eef6d7a.js +++ /dev/null @@ -1 +0,0 @@ -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:1722503743e3,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.be2caf0e.js b/assets/apm.html.84887a9a.js similarity index 93% rename from assets/apm.html.be2caf0e.js rename to assets/apm.html.84887a9a.js index 38465f9bd..1a8c56305 100644 --- a/assets/apm.html.be2caf0e.js +++ b/assets/apm.html.84887a9a.js @@ -1,4 +1,4 @@ -import{_ as e,c as a}from"./app.1d3198a4.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.5de46851.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.cbe29844.js b/assets/apm.html.cbe29844.js
new file mode 100644
index 000000000..c275224e1
--- /dev/null
+++ b/assets/apm.html.cbe29844.js
@@ -0,0 +1 @@
+const t={key:"v-146e5374",path:"/apm.html",title:"APM",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Instana",slug:"instana",children:[]}],git:{updatedTime:1722521086e3,contributors:[{name:"Krystian K\u0119dra",email:"kedrakrystian@gmail.com",commits:1}]},filePathRelative:"apm.md"};export{t as data};
diff --git a/assets/app.1d3198a4.js b/assets/app.5de46851.js
similarity index 97%
rename from assets/app.1d3198a4.js
rename to assets/app.5de46851.js
index 819d20292..fdf4091a1 100644
--- a/assets/app.1d3198a4.js
+++ b/assets/app.5de46851.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.e6e38a5b.js"),[]).then(({data:e})=>e),"v-146e5374":()=>K(()=>import("./apm.html.2eef6d7a.js"),[]).then(({data:e})=>e),"v-2eb76c63":()=>K(()=>import("./fileupload.html.3f4dd5c3.js"),[]).then(({data:e})=>e),"v-ecba32a0":()=>K(()=>import("./indexing.html.9bdda701.js"),[]).then(({data:e})=>e),"v-6ca815f4":()=>K(()=>import("./installation.html.c6e16be3.js"),[]).then(({data:e})=>e),"v-27b6bb40":()=>K(()=>import("./security.html.5b126e9e.js"),[]).then(({data:e})=>e),"v-53401e42":()=>K(()=>import("./testing.html.a9b491bb.js"),[]).then(({data:e})=>e),"v-fe842d44":()=>K(()=>import("./graphql.html.6f0178ae.js"),[]).then(({data:e})=>e),"v-0e4a26f1":()=>K(()=>import("./introduction.html.ff659329.js"),[]).then(({data:e})=>e),"v-e9130d12":()=>K(()=>import("./rest.html.bd20cdea.js"),[]).then(({data:e})=>e),"v-63e82ae3":()=>K(()=>import("./index.html.dbdbd9ec.js"),[]).then(({data:e})=>e),"v-3ea3fa0e":()=>K(()=>import("./building.html.3269aa6c.js"),[]).then(({data:e})=>e),"v-76cfe0bc":()=>K(()=>import("./community.html.4945305e.js"),[]).then(({data:e})=>e),"v-141584aa":()=>K(()=>import("./credits.html.8ada532c.js"),[]).then(({data:e})=>e),"v-7e30aeec":()=>K(()=>import("./guidelines.html.cb229bf5.js"),[]).then(({data:e})=>e),"v-17f9b51d":()=>K(()=>import("./index.html.9e4e58cf.js"),[]).then(({data:e})=>e),"v-a8a674e6":()=>K(()=>import("./index.html.1a357d98.js"),[]).then(({data:e})=>e),"v-712e14fc":()=>K(()=>import("./index.html.15f8c790.js"),[]).then(({data:e})=>e),"v-66de8e88":()=>K(()=>import("./tagGroup.html.ba59c0e5.js"),[]).then(({data:e})=>e),"v-581890ae":()=>K(()=>import("./webhook.html.f063da9a.js"),[]).then(({data:e})=>e),"v-4b2698d0":()=>K(()=>import("./whisp.html.227742b3.js"),[]).then(({data:e})=>e),"v-67d16688":()=>K(()=>import("./index.html.1ba0dfab.js"),[]).then(({data:e})=>e),"v-47ce024e":()=>K(()=>import("./index.html.80b6b18d.js"),[]).then(({data:e})=>e),"v-43f4d00c":()=>K(()=>import("./index.html.fb0e849f.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.4074b837.js"),[])),"v-146e5374":fe(()=>K(()=>import("./apm.html.be2caf0e.js"),[])),"v-2eb76c63":fe(()=>K(()=>import("./fileupload.html.a5c7e08c.js"),[])),"v-ecba32a0":fe(()=>K(()=>import("./indexing.html.a9b0376d.js"),[])),"v-6ca815f4":fe(()=>K(()=>import("./installation.html.47806010.js"),[])),"v-27b6bb40":fe(()=>K(()=>import("./security.html.6742a30a.js"),[])),"v-53401e42":fe(()=>K(()=>import("./testing.html.49e1c9b2.js"),[])),"v-fe842d44":fe(()=>K(()=>import("./graphql.html.c99106e6.js"),[])),"v-0e4a26f1":fe(()=>K(()=>import("./introduction.html.373f81e5.js"),[])),"v-e9130d12":fe(()=>K(()=>import("./rest.html.6079ba63.js"),[])),"v-63e82ae3":fe(()=>K(()=>import("./index.html.e5da4859.js"),[])),"v-3ea3fa0e":fe(()=>K(()=>import("./building.html.c226f665.js"),[])),"v-76cfe0bc":fe(()=>K(()=>import("./community.html.e52d2a47.js"),[])),"v-141584aa":fe(()=>K(()=>import("./credits.html.310b543b.js"),[])),"v-7e30aeec":fe(()=>K(()=>import("./guidelines.html.890468b4.js"),[])),"v-17f9b51d":fe(()=>K(()=>import("./index.html.3db4c5a2.js"),[])),"v-a8a674e6":fe(()=>K(()=>import("./index.html.abb03c8b.js"),[])),"v-712e14fc":fe(()=>K(()=>import("./index.html.6bf3698e.js"),[])),"v-66de8e88":fe(()=>K(()=>import("./tagGroup.html.0f9dd242.js"),[])),"v-581890ae":fe(()=>K(()=>import("./webhook.html.1fa10a8f.js"),[])),"v-4b2698d0":fe(()=>K(()=>import("./whisp.html.7028f2f8.js"),[])),"v-67d16688":fe(()=>K(()=>import("./index.html.4dc04dfe.js"),[])),"v-47ce024e":fe(()=>K(()=>import("./index.html.099cc382.js"),[])),"v-43f4d00c":fe(()=>K(()=>import("./index.html.2719668e.js"),[])),"v-3706649a":fe(()=>K(()=>import("./404.html.f5d27665.js"),[]))},iu={"404":fe(()=>K(()=>import("./404.a441ceb8.js"),[])),Layout:fe(()=>K(()=>import("./Layout.92207b5c.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.e5b75019.js"),[]).then(({data:e})=>e),"v-146e5374":()=>K(()=>import("./apm.html.cbe29844.js"),[]).then(({data:e})=>e),"v-2eb76c63":()=>K(()=>import("./fileupload.html.fd3cc39f.js"),[]).then(({data:e})=>e),"v-ecba32a0":()=>K(()=>import("./indexing.html.8f59c70b.js"),[]).then(({data:e})=>e),"v-6ca815f4":()=>K(()=>import("./installation.html.fddbdcc8.js"),[]).then(({data:e})=>e),"v-27b6bb40":()=>K(()=>import("./security.html.9082224a.js"),[]).then(({data:e})=>e),"v-53401e42":()=>K(()=>import("./testing.html.f2d7f97f.js"),[]).then(({data:e})=>e),"v-fe842d44":()=>K(()=>import("./graphql.html.7049b805.js"),[]).then(({data:e})=>e),"v-0e4a26f1":()=>K(()=>import("./introduction.html.fee7c2bc.js"),[]).then(({data:e})=>e),"v-e9130d12":()=>K(()=>import("./rest.html.4eb180f7.js"),[]).then(({data:e})=>e),"v-63e82ae3":()=>K(()=>import("./index.html.dd30fc77.js"),[]).then(({data:e})=>e),"v-3ea3fa0e":()=>K(()=>import("./building.html.1eb71e68.js"),[]).then(({data:e})=>e),"v-76cfe0bc":()=>K(()=>import("./community.html.23456f06.js"),[]).then(({data:e})=>e),"v-141584aa":()=>K(()=>import("./credits.html.7bd73170.js"),[]).then(({data:e})=>e),"v-7e30aeec":()=>K(()=>import("./guidelines.html.92305138.js"),[]).then(({data:e})=>e),"v-17f9b51d":()=>K(()=>import("./index.html.242f6df0.js"),[]).then(({data:e})=>e),"v-a8a674e6":()=>K(()=>import("./index.html.969a4d2f.js"),[]).then(({data:e})=>e),"v-712e14fc":()=>K(()=>import("./index.html.b9b3290a.js"),[]).then(({data:e})=>e),"v-66de8e88":()=>K(()=>import("./tagGroup.html.12c1db89.js"),[]).then(({data:e})=>e),"v-581890ae":()=>K(()=>import("./webhook.html.bba82376.js"),[]).then(({data:e})=>e),"v-4b2698d0":()=>K(()=>import("./whisp.html.aba4bbd8.js"),[]).then(({data:e})=>e),"v-67d16688":()=>K(()=>import("./index.html.2eeab0b9.js"),[]).then(({data:e})=>e),"v-47ce024e":()=>K(()=>import("./index.html.3028e654.js"),[]).then(({data:e})=>e),"v-43f4d00c":()=>K(()=>import("./index.html.bc7b1a19.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.1f20c737.js"),[])),"v-146e5374":fe(()=>K(()=>import("./apm.html.84887a9a.js"),[])),"v-2eb76c63":fe(()=>K(()=>import("./fileupload.html.710fa315.js"),[])),"v-ecba32a0":fe(()=>K(()=>import("./indexing.html.00a046f2.js"),[])),"v-6ca815f4":fe(()=>K(()=>import("./installation.html.f2e2be04.js"),[])),"v-27b6bb40":fe(()=>K(()=>import("./security.html.7342b264.js"),[])),"v-53401e42":fe(()=>K(()=>import("./testing.html.b7d12b6e.js"),[])),"v-fe842d44":fe(()=>K(()=>import("./graphql.html.364a2761.js"),[])),"v-0e4a26f1":fe(()=>K(()=>import("./introduction.html.26553478.js"),[])),"v-e9130d12":fe(()=>K(()=>import("./rest.html.e60ba5a4.js"),[])),"v-63e82ae3":fe(()=>K(()=>import("./index.html.25ce8110.js"),[])),"v-3ea3fa0e":fe(()=>K(()=>import("./building.html.be3dbee1.js"),[])),"v-76cfe0bc":fe(()=>K(()=>import("./community.html.1c48580e.js"),[])),"v-141584aa":fe(()=>K(()=>import("./credits.html.7b51bfe4.js"),[])),"v-7e30aeec":fe(()=>K(()=>import("./guidelines.html.918d3a63.js"),[])),"v-17f9b51d":fe(()=>K(()=>import("./index.html.e9a03bae.js"),[])),"v-a8a674e6":fe(()=>K(()=>import("./index.html.ccc96c22.js"),[])),"v-712e14fc":fe(()=>K(()=>import("./index.html.32cb87d2.js"),[])),"v-66de8e88":fe(()=>K(()=>import("./tagGroup.html.08d997c3.js"),[])),"v-581890ae":fe(()=>K(()=>import("./webhook.html.022a5369.js"),[])),"v-4b2698d0":fe(()=>K(()=>import("./whisp.html.66f7b1c9.js"),[])),"v-67d16688":fe(()=>K(()=>import("./index.html.d8a437ad.js"),[])),"v-47ce024e":fe(()=>K(()=>import("./index.html.0c232e3b.js"),[])),"v-43f4d00c":fe(()=>K(()=>import("./index.html.1c6b8f95.js"),[])),"v-3706649a":fe(()=>K(()=>import("./404.html.86aa76f3.js"),[]))},iu={"404":fe(()=>K(()=>import("./404.edbaa59a.js"),[])),Layout:fe(()=>K(()=>import("./Layout.624b2761.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.1eb71e68.js b/assets/building.html.1eb71e68.js
new file mode 100644
index 000000000..ceaed39f4
--- /dev/null
+++ b/assets/building.html.1eb71e68.js
@@ -0,0 +1 @@
+const t={key:"v-3ea3fa0e",path:"/contributing/building.html",title:"Building",lang:"en-US",frontmatter:{},excerpt:"",headers:[],git:{updatedTime:1722521086e3,contributors:[{name:"Krystian K\u0119dra",email:"kedrakrystian@gmail.com",commits:1}]},filePathRelative:"contributing/building.md"};export{t as data};
diff --git a/assets/building.html.3269aa6c.js b/assets/building.html.3269aa6c.js
deleted file mode 100644
index 5612f8085..000000000
--- a/assets/building.html.3269aa6c.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:1722503743e3,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.c226f665.js b/assets/building.html.be3dbee1.js
similarity index 80%
rename from assets/building.html.c226f665.js
rename to assets/building.html.be3dbee1.js
index 08d665041..9f022fca0 100644
--- a/assets/building.html.c226f665.js
+++ b/assets/building.html.be3dbee1.js
@@ -1 +1 @@
-import{_ as e,o as t,a,b as i,e as n}from"./app.1d3198a4.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.5de46851.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.e52d2a47.js b/assets/community.html.1c48580e.js
similarity index 80%
rename from assets/community.html.e52d2a47.js
rename to assets/community.html.1c48580e.js
index a55689e25..8e48cf9f1 100644
--- a/assets/community.html.e52d2a47.js
+++ b/assets/community.html.1c48580e.js
@@ -1 +1 @@
-import{_ as e,o as t,a as o,b as c,e as a}from"./app.1d3198a4.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.5de46851.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.23456f06.js b/assets/community.html.23456f06.js
new file mode 100644
index 000000000..a04c308ef
--- /dev/null
+++ b/assets/community.html.23456f06.js
@@ -0,0 +1 @@
+const t={key:"v-76cfe0bc",path:"/contributing/community.html",title:"Community",lang:"en-US",frontmatter:{},excerpt:"",headers:[],git:{updatedTime:1722521086e3,contributors:[{name:"Krystian K\u0119dra",email:"kedrakrystian@gmail.com",commits:1}]},filePathRelative:"contributing/community.md"};export{t as data};
diff --git a/assets/community.html.4945305e.js b/assets/community.html.4945305e.js
deleted file mode 100644
index 40dfb43c4..000000000
--- a/assets/community.html.4945305e.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:1722503743e3,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/credits.html.310b543b.js b/assets/credits.html.7b51bfe4.js
similarity index 80%
rename from assets/credits.html.310b543b.js
rename to assets/credits.html.7b51bfe4.js
index 060916bbf..4d1a25646 100644
--- a/assets/credits.html.310b543b.js
+++ b/assets/credits.html.7b51bfe4.js
@@ -1 +1 @@
-import{_ as e,o as t,a as s,b as r,e as c}from"./app.1d3198a4.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.5de46851.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.7bd73170.js b/assets/credits.html.7bd73170.js
new file mode 100644
index 000000000..8cb97ba09
--- /dev/null
+++ b/assets/credits.html.7bd73170.js
@@ -0,0 +1 @@
+const t={key:"v-141584aa",path:"/contributing/credits.html",title:"Credits",lang:"en-US",frontmatter:{},excerpt:"",headers:[],git:{updatedTime:1722521086e3,contributors:[{name:"Krystian K\u0119dra",email:"kedrakrystian@gmail.com",commits:1}]},filePathRelative:"contributing/credits.md"};export{t as data};
diff --git a/assets/credits.html.8ada532c.js b/assets/credits.html.8ada532c.js
deleted file mode 100644
index c2eda973e..000000000
--- a/assets/credits.html.8ada532c.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:1722503743e3,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.a5c7e08c.js b/assets/fileupload.html.710fa315.js
similarity index 99%
rename from assets/fileupload.html.a5c7e08c.js
rename to assets/fileupload.html.710fa315.js
index 2c73c62e5..53e461100 100644
--- a/assets/fileupload.html.a5c7e08c.js
+++ b/assets/fileupload.html.710fa315.js
@@ -1,4 +1,4 @@
-import{_ as n,c as s}from"./app.1d3198a4.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.5de46851.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.3f4dd5c3.js b/assets/fileupload.html.fd3cc39f.js
similarity index 61%
rename from assets/fileupload.html.3f4dd5c3.js
rename to assets/fileupload.html.fd3cc39f.js
index a3b328969..6c98457a4 100644
--- a/assets/fileupload.html.3f4dd5c3.js
+++ b/assets/fileupload.html.fd3cc39f.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:1722503743e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",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:1722521086e3,contributors:[{name:"Krystian K\u0119dra",email:"kedrakrystian@gmail.com",commits:1}]},filePathRelative:"fileupload.md"};export{e as data};
diff --git a/assets/graphql.html.c99106e6.js b/assets/graphql.html.364a2761.js
similarity index 99%
rename from assets/graphql.html.c99106e6.js
rename to assets/graphql.html.364a2761.js
index 8930fee06..df290a164 100644
--- a/assets/graphql.html.c99106e6.js
+++ b/assets/graphql.html.364a2761.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.1d3198a4.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.5de46851.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.6f0178ae.js b/assets/graphql.html.7049b805.js
similarity index 90%
rename from assets/graphql.html.6f0178ae.js
rename to assets/graphql.html.7049b805.js
index cd85f58a5..de20a1de4 100644
--- a/assets/graphql.html.6f0178ae.js
+++ b/assets/graphql.html.7049b805.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:1722503743e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",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:1722521086e3,contributors:[{name:"Krystian K\u0119dra",email:"kedrakrystian@gmail.com",commits:1}]},filePathRelative:"api/graphql.md"};export{e as data};
diff --git a/assets/guidelines.html.890468b4.js b/assets/guidelines.html.918d3a63.js
similarity index 81%
rename from assets/guidelines.html.890468b4.js
rename to assets/guidelines.html.918d3a63.js
index fd8fecd30..5419fc108 100644
--- a/assets/guidelines.html.890468b4.js
+++ b/assets/guidelines.html.918d3a63.js
@@ -1 +1 @@
-import{_ as e,o as s,a as t,b as a,e as i}from"./app.1d3198a4.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.5de46851.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.92305138.js b/assets/guidelines.html.92305138.js
new file mode 100644
index 000000000..cdb12a7a7
--- /dev/null
+++ b/assets/guidelines.html.92305138.js
@@ -0,0 +1 @@
+const e={key:"v-7e30aeec",path:"/contributing/guidelines.html",title:"Guidelines",lang:"en-US",frontmatter:{},excerpt:"",headers:[],git:{updatedTime:1722521086e3,contributors:[{name:"Krystian K\u0119dra",email:"kedrakrystian@gmail.com",commits:1}]},filePathRelative:"contributing/guidelines.md"};export{e as data};
diff --git a/assets/guidelines.html.cb229bf5.js b/assets/guidelines.html.cb229bf5.js
deleted file mode 100644
index 20ff1759b..000000000
--- a/assets/guidelines.html.cb229bf5.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:1722503743e3,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/index.html.099cc382.js b/assets/index.html.0c232e3b.js
similarity index 91%
rename from assets/index.html.099cc382.js
rename to assets/index.html.0c232e3b.js
index 20d0ea7b5..6d6e45dd6 100644
--- a/assets/index.html.099cc382.js
+++ b/assets/index.html.0c232e3b.js
@@ -1 +1 @@
-import{_ as t,o,a as r,F as n,b as e,e as a}from"./app.1d3198a4.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.5de46851.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.1a357d98.js b/assets/index.html.1a357d98.js
deleted file mode 100644
index 46030a590..000000000
--- a/assets/index.html.1a357d98.js
+++ /dev/null
@@ -1 +0,0 @@
-const e={key:"v-a8a674e6",path:"/filters/",title:"Filters",lang:"en-US",frontmatter:{},excerpt:"",headers:[],git:{updatedTime:1722503743e3,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.2719668e.js b/assets/index.html.1c6b8f95.js
similarity index 98%
rename from assets/index.html.2719668e.js
rename to assets/index.html.1c6b8f95.js
index dd1e35654..6aa6b6a40 100644
--- a/assets/index.html.2719668e.js
+++ b/assets/index.html.1c6b8f95.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.1d3198a4.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.5de46851.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.4074b837.js b/assets/index.html.1f20c737.js
similarity index 58%
rename from assets/index.html.4074b837.js
rename to assets/index.html.1f20c737.js
index d16eae0c3..5456f2af5 100644
--- a/assets/index.html.4074b837.js
+++ b/assets/index.html.1f20c737.js
@@ -1 +1 @@
-import{_ as e}from"./app.1d3198a4.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.5de46851.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/index.html.9e4e58cf.js b/assets/index.html.242f6df0.js
similarity index 55%
rename from assets/index.html.9e4e58cf.js
rename to assets/index.html.242f6df0.js
index 48fb201f3..479a65c97 100644
--- a/assets/index.html.9e4e58cf.js
+++ b/assets/index.html.242f6df0.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:1722503743e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",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:1722521086e3,contributors:[{name:"Krystian K\u0119dra",email:"kedrakrystian@gmail.com",commits:1}]},filePathRelative:"events/readme.md"};export{e as data};
diff --git a/assets/index.html.e5da4859.js b/assets/index.html.25ce8110.js
similarity index 90%
rename from assets/index.html.e5da4859.js
rename to assets/index.html.25ce8110.js
index 17382ddd1..1248dc151 100644
--- a/assets/index.html.e5da4859.js
+++ b/assets/index.html.25ce8110.js
@@ -1 +1 @@
-import{_ as e,c as i}from"./app.1d3198a4.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.5de46851.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.1ba0dfab.js b/assets/index.html.2eeab0b9.js similarity index 68% rename from assets/index.html.1ba0dfab.js rename to assets/index.html.2eeab0b9.js index 32700df75..5c11038e8 100644 --- a/assets/index.html.1ba0dfab.js +++ b/assets/index.html.2eeab0b9.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:1722503743e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",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:1722521086e3,contributors:[{name:"Krystian K\u0119dra",email:"kedrakrystian@gmail.com",commits:1}]},filePathRelative:"plugins/readme.md"};export{e as data}; diff --git a/assets/index.html.80b6b18d.js b/assets/index.html.3028e654.js similarity index 51% rename from assets/index.html.80b6b18d.js rename to assets/index.html.3028e654.js index bf0e3b51e..31ab1a806 100644 --- a/assets/index.html.80b6b18d.js +++ b/assets/index.html.3028e654.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:1722503743e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",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:1722521086e3,contributors:[{name:"Krystian K\u0119dra",email:"kedrakrystian@gmail.com",commits:1}]},filePathRelative:"troubleshoot/readme.md"};export{e as data}; diff --git a/assets/index.html.6bf3698e.js b/assets/index.html.32cb87d2.js similarity index 98% rename from assets/index.html.6bf3698e.js rename to assets/index.html.32cb87d2.js index f133a7e5b..0a6dc93a4 100644 --- a/assets/index.html.6bf3698e.js +++ b/assets/index.html.32cb87d2.js @@ -1 +1 @@ -import{_ as e,c as i}from"./app.1d3198a4.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.5de46851.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.969a4d2f.js b/assets/index.html.969a4d2f.js new file mode 100644 index 000000000..206fab987 --- /dev/null +++ b/assets/index.html.969a4d2f.js @@ -0,0 +1 @@ +const e={key:"v-a8a674e6",path:"/filters/",title:"Filters",lang:"en-US",frontmatter:{},excerpt:"",headers:[],git:{updatedTime:1722521086e3,contributors:[{name:"Krystian K\u0119dra",email:"kedrakrystian@gmail.com",commits:1}]},filePathRelative:"filters/readme.md"};export{e as data}; diff --git a/assets/index.html.15f8c790.js b/assets/index.html.b9b3290a.js similarity index 68% rename from assets/index.html.15f8c790.js rename to assets/index.html.b9b3290a.js index 52a5c4cd4..2b385f1eb 100644 --- a/assets/index.html.15f8c790.js +++ b/assets/index.html.b9b3290a.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:1722503743e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",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:1722521086e3,contributors:[{name:"Krystian K\u0119dra",email:"kedrakrystian@gmail.com",commits:1}]},filePathRelative:"introduction/readme.md"};export{e as data}; diff --git a/assets/index.html.fb0e849f.js b/assets/index.html.bc7b1a19.js similarity index 62% rename from assets/index.html.fb0e849f.js rename to assets/index.html.bc7b1a19.js index 5319d6516..d51e805d0 100644 --- a/assets/index.html.fb0e849f.js +++ b/assets/index.html.bc7b1a19.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:1722503743e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",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:1722521086e3,contributors:[{name:"Krystian K\u0119dra",email:"kedrakrystian@gmail.com",commits:1}]},filePathRelative:"webhooks/readme.md"};export{e as data}; diff --git a/assets/index.html.abb03c8b.js b/assets/index.html.ccc96c22.js similarity index 99% rename from assets/index.html.abb03c8b.js rename to assets/index.html.ccc96c22.js index 4882ad279..932120c75 100644 --- a/assets/index.html.abb03c8b.js +++ b/assets/index.html.ccc96c22.js @@ -1,4 +1,4 @@ -import{_ as n,c as s}from"./app.1d3198a4.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.5de46851.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.4dc04dfe.js b/assets/index.html.d8a437ad.js
similarity index 98%
rename from assets/index.html.4dc04dfe.js
rename to assets/index.html.d8a437ad.js
index fb0802608..8065913b3 100644
--- a/assets/index.html.4dc04dfe.js
+++ b/assets/index.html.d8a437ad.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.1d3198a4.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.5de46851.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.dbdbd9ec.js b/assets/index.html.dd30fc77.js
similarity index 60%
rename from assets/index.html.dbdbd9ec.js
rename to assets/index.html.dd30fc77.js
index e5e926a65..07430c980 100644
--- a/assets/index.html.dbdbd9ec.js
+++ b/assets/index.html.dd30fc77.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:1722503743e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",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:1722521086e3,contributors:[{name:"Krystian K\u0119dra",email:"kedrakrystian@gmail.com",commits:1}]},filePathRelative:"architecture/readme.md"};export{e as data};
diff --git a/assets/index.html.e6e38a5b.js b/assets/index.html.e5b75019.js
similarity index 79%
rename from assets/index.html.e6e38a5b.js
rename to assets/index.html.e5b75019.js
index 64b9ec545..830365414 100644
--- a/assets/index.html.e6e38a5b.js
+++ b/assets/index.html.e5b75019.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:1722503743e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",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:1722521086e3,contributors:[{name:"Krystian K\u0119dra",email:"kedrakrystian@gmail.com",commits:1}]},filePathRelative:"README.md"};export{e as data};
diff --git a/assets/index.html.3db4c5a2.js b/assets/index.html.e9a03bae.js
similarity index 96%
rename from assets/index.html.3db4c5a2.js
rename to assets/index.html.e9a03bae.js
index 9f5e2fae6..ce1fd5754 100644
--- a/assets/index.html.3db4c5a2.js
+++ b/assets/index.html.e9a03bae.js
@@ -1,4 +1,4 @@
-import{_ as e,c as a}from"./app.1d3198a4.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.5de46851.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/indexing.html.a9b0376d.js b/assets/indexing.html.00a046f2.js
similarity index 97%
rename from assets/indexing.html.a9b0376d.js
rename to assets/indexing.html.00a046f2.js
index 1ef09f09e..c68d78f4c 100644
--- a/assets/indexing.html.a9b0376d.js
+++ b/assets/indexing.html.00a046f2.js
@@ -1,4 +1,4 @@
-import{_ as n,c as e}from"./app.1d3198a4.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.5de46851.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.9bdda701.js b/assets/indexing.html.8f59c70b.js
similarity index 60%
rename from assets/indexing.html.9bdda701.js
rename to assets/indexing.html.8f59c70b.js
index 2fe3ef7db..d927a4086 100644
--- a/assets/indexing.html.9bdda701.js
+++ b/assets/indexing.html.8f59c70b.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:1722503743e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",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:1722521086e3,contributors:[{name:"Krystian K\u0119dra",email:"kedrakrystian@gmail.com",commits:1}]},filePathRelative:"indexing.md"};export{e as data};
diff --git a/assets/installation.html.47806010.js b/assets/installation.html.f2e2be04.js
similarity index 99%
rename from assets/installation.html.47806010.js
rename to assets/installation.html.f2e2be04.js
index cdcb71395..f16e9b927 100644
--- a/assets/installation.html.47806010.js
+++ b/assets/installation.html.f2e2be04.js
@@ -1,4 +1,4 @@
-import{_ as n,c as s}from"./app.1d3198a4.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.5de46851.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/installation.html.c6e16be3.js b/assets/installation.html.fddbdcc8.js
similarity index 86%
rename from assets/installation.html.c6e16be3.js
rename to assets/installation.html.fddbdcc8.js
index 9751f7fc4..7cd069a84 100644
--- a/assets/installation.html.c6e16be3.js
+++ b/assets/installation.html.fddbdcc8.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:1722503743e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",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:1722521086e3,contributors:[{name:"Krystian K\u0119dra",email:"kedrakrystian@gmail.com",commits:1}]},filePathRelative:"installation.md"};export{e as data};
diff --git a/assets/introduction.html.373f81e5.js b/assets/introduction.html.26553478.js
similarity index 98%
rename from assets/introduction.html.373f81e5.js
rename to assets/introduction.html.26553478.js
index 58c92be60..48afada7f 100644
--- a/assets/introduction.html.373f81e5.js
+++ b/assets/introduction.html.26553478.js
@@ -1,4 +1,4 @@
-import{_ as a,c as n}from"./app.1d3198a4.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.5de46851.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/introduction.html.ff659329.js b/assets/introduction.html.fee7c2bc.js
similarity index 51%
rename from assets/introduction.html.ff659329.js
rename to assets/introduction.html.fee7c2bc.js
index f0011e229..271c195f7 100644
--- a/assets/introduction.html.ff659329.js
+++ b/assets/introduction.html.fee7c2bc.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:1722503743e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",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:1722521086e3,contributors:[{name:"Krystian K\u0119dra",email:"kedrakrystian@gmail.com",commits:1}]},filePathRelative:"api/introduction.md"};export{t as data};
diff --git a/assets/rest.html.bd20cdea.js b/assets/rest.html.4eb180f7.js
similarity index 86%
rename from assets/rest.html.bd20cdea.js
rename to assets/rest.html.4eb180f7.js
index 9fb26c318..10a62debd 100644
--- a/assets/rest.html.bd20cdea.js
+++ b/assets/rest.html.4eb180f7.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:1722503743e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",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:1722521086e3,contributors:[{name:"Krystian K\u0119dra",email:"kedrakrystian@gmail.com",commits:1}]},filePathRelative:"api/rest.md"};export{e as data};
diff --git a/assets/rest.html.6079ba63.js b/assets/rest.html.e60ba5a4.js
similarity index 99%
rename from assets/rest.html.6079ba63.js
rename to assets/rest.html.e60ba5a4.js
index bb72637bb..ce3df030a 100644
--- a/assets/rest.html.6079ba63.js
+++ b/assets/rest.html.e60ba5a4.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.1d3198a4.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.5de46851.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/security.html.6742a30a.js b/assets/security.html.7342b264.js similarity index 99% rename from assets/security.html.6742a30a.js rename to assets/security.html.7342b264.js index 80c421fb5..81a9c7f46 100644 --- a/assets/security.html.6742a30a.js +++ b/assets/security.html.7342b264.js @@ -1,4 +1,4 @@ -import{_ as n,c as s}from"./app.1d3198a4.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.5de46851.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.5b126e9e.js b/assets/security.html.9082224a.js
similarity index 74%
rename from assets/security.html.5b126e9e.js
rename to assets/security.html.9082224a.js
index 04f2a8adb..24c54ec9f 100644
--- a/assets/security.html.5b126e9e.js
+++ b/assets/security.html.9082224a.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:1722503743e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",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:1722521086e3,contributors:[{name:"Krystian K\u0119dra",email:"kedrakrystian@gmail.com",commits:1}]},filePathRelative:"security.md"};export{e as data};
diff --git a/assets/tagGroup.html.0f9dd242.js b/assets/tagGroup.html.08d997c3.js
similarity index 94%
rename from assets/tagGroup.html.0f9dd242.js
rename to assets/tagGroup.html.08d997c3.js
index f036d833c..3dc8a0682 100644
--- a/assets/tagGroup.html.0f9dd242.js
+++ b/assets/tagGroup.html.08d997c3.js
@@ -1 +1 @@
-import{_ as e,c as a}from"./app.1d3198a4.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.5de46851.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.ba59c0e5.js b/assets/tagGroup.html.12c1db89.js similarity index 67% rename from assets/tagGroup.html.ba59c0e5.js rename to assets/tagGroup.html.12c1db89.js index 45c9774f3..7f7c95d2e 100644 --- a/assets/tagGroup.html.ba59c0e5.js +++ b/assets/tagGroup.html.12c1db89.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:1722503743e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",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:1722521086e3,contributors:[{name:"Krystian K\u0119dra",email:"kedrakrystian@gmail.com",commits:1}]},filePathRelative:"models/tagGroup.md"};export{e as data}; diff --git a/assets/testing.html.49e1c9b2.js b/assets/testing.html.b7d12b6e.js similarity index 98% rename from assets/testing.html.49e1c9b2.js rename to assets/testing.html.b7d12b6e.js index f5835d485..dce78adae 100644 --- a/assets/testing.html.49e1c9b2.js +++ b/assets/testing.html.b7d12b6e.js @@ -1,4 +1,4 @@ -import{_ as e,c as t}from"./app.1d3198a4.js";const n={},s=t(`

Testing

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

Testing

# unit tests
 $ npm run test
 
 # e2e tests
diff --git a/assets/testing.html.a9b491bb.js b/assets/testing.html.f2d7f97f.js
similarity index 73%
rename from assets/testing.html.a9b491bb.js
rename to assets/testing.html.f2d7f97f.js
index 6f5e37ffd..02222c44e 100644
--- a/assets/testing.html.a9b491bb.js
+++ b/assets/testing.html.f2d7f97f.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:1722503743e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",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:1722521086e3,contributors:[{name:"Krystian K\u0119dra",email:"kedrakrystian@gmail.com",commits:1}]},filePathRelative:"testing.md"};export{e as data};
diff --git a/assets/webhook.html.1fa10a8f.js b/assets/webhook.html.022a5369.js
similarity index 92%
rename from assets/webhook.html.1fa10a8f.js
rename to assets/webhook.html.022a5369.js
index 248048741..8f13b004e 100644
--- a/assets/webhook.html.1fa10a8f.js
+++ b/assets/webhook.html.022a5369.js
@@ -1 +1 @@
-import{_ as e,c as a}from"./app.1d3198a4.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.5de46851.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.f063da9a.js b/assets/webhook.html.bba82376.js similarity index 64% rename from assets/webhook.html.f063da9a.js rename to assets/webhook.html.bba82376.js index 548373cf6..c8d4ef09a 100644 --- a/assets/webhook.html.f063da9a.js +++ b/assets/webhook.html.bba82376.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:1722503743e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",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:1722521086e3,contributors:[{name:"Krystian K\u0119dra",email:"kedrakrystian@gmail.com",commits:1}]},filePathRelative:"models/webhook.md"};export{e as data}; diff --git a/assets/whisp.html.7028f2f8.js b/assets/whisp.html.66f7b1c9.js similarity index 98% rename from assets/whisp.html.7028f2f8.js rename to assets/whisp.html.66f7b1c9.js index faf145949..522c5b858 100644 --- a/assets/whisp.html.7028f2f8.js +++ b/assets/whisp.html.66f7b1c9.js @@ -1 +1 @@ -import{_ as e,c as i}from"./app.1d3198a4.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

dataIndexKey

Type: String

Description: A string which represent your data. You can store strings which are most used inside and represents your data. You can use this key in filter to query whisps instead of running complex queries on top of data object. This is an indexed field.

',62);function r(d,n){return t}var p=e(a,[["render",r],["__file","whisp.html.vue"]]);export{p as default}; +import{_ as e,c as i}from"./app.5de46851.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

dataIndexKey

Type: String

Description: A string which represent your data. You can store strings which are most used inside and represents your data. You can use this key in filter to query whisps instead of running complex queries on top of data object. This is an indexed field.

',62);function r(d,n){return t}var p=e(a,[["render",r],["__file","whisp.html.vue"]]);export{p as default}; diff --git a/assets/whisp.html.227742b3.js b/assets/whisp.html.aba4bbd8.js similarity index 88% rename from assets/whisp.html.227742b3.js rename to assets/whisp.html.aba4bbd8.js index ff5edf0f1..e24f8a760 100644 --- a/assets/whisp.html.227742b3.js +++ b/assets/whisp.html.aba4bbd8.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:[]},{level:2,title:"dataIndexKey",slug:"dataindexkey",children:[]}],git:{updatedTime:1722503743e3,contributors:[{name:"semantic-release-bot",email:"semantic-release-bot@martynus.net",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:[]},{level:2,title:"dataIndexKey",slug:"dataindexkey",children:[]}],git:{updatedTime:1722521086e3,contributors:[{name:"Krystian K\u0119dra",email:"kedrakrystian@gmail.com",commits:1}]},filePathRelative:"models/whisp.md"};export{e as data}; diff --git a/contributing/building.html b/contributing/building.html index d5a7f40db..01318b473 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 b3cb317dc..cbd378360 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 f488c0cae..acc2a1b82 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 6e6d295f6..58a5943cf 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 dc3dfb3e4..4762c3d0d 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: semantic-release-bot
- +

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: Krystian Kędra
+ diff --git a/fileupload.html b/fileupload.html index 6373d002d..ab7899b7c 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: semantic-release-bot
- +

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

Last Updated:
Contributors: Krystian Kędra
+ diff --git a/filters/index.html b/filters/index.html index 1844ab441..55566d451 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: semantic-release-bot
- +
Last Updated:
Contributors: Krystian Kędra
+ diff --git a/index.html b/index.html index 26b622763..a226a0c48 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 acfec1c70..a6508fe61 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: semantic-release-bot
- +
Last Updated:
Contributors: Krystian Kędra
+ diff --git a/installation.html b/installation.html index 97f3ed731..b53dd68a6 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: semantic-release-bot
- +
Last Updated:
Contributors: Krystian Kędra
+ diff --git a/introduction/index.html b/introduction/index.html index 8a6f7a8e4..4c6eed67d 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: semantic-release-bot
- +

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: Krystian Kędra
+ diff --git a/models/tagGroup.html b/models/tagGroup.html index fbc6109bc..d93e062fd 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: semantic-release-bot
- +

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: Krystian Kędra
+ diff --git a/models/webhook.html b/models/webhook.html index b8487232c..af7c7af95 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: semantic-release-bot
- +

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: Krystian Kędra
+ diff --git a/models/whisp.html b/models/whisp.html index 36c2fa2c5..00d3f796c 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

dataIndexKey

Type: String

Description: A string which represent your data. You can store strings which are most used inside and represents your data. You can use this key in filter to query whisps instead of running complex queries on top of data object. This is an indexed field.

Last Updated:
Contributors: semantic-release-bot
- +

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

dataIndexKey

Type: String

Description: A string which represent your data. You can store strings which are most used inside and represents your data. You can use this key in filter to query whisps instead of running complex queries on top of data object. This is an indexed field.

Last Updated:
Contributors: Krystian Kędra
+ diff --git a/plugins/index.html b/plugins/index.html index 219184f55..04fa4db5d 100644 --- a/plugins/index.html +++ b/plugins/index.html @@ -23,7 +23,7 @@ } Plugins | whispr - + @@ -41,7 +41,7 @@ }, ... // other listeners ]; -
Last Updated:
Contributors: semantic-release-bot
- +
Last Updated:
Contributors: Krystian Kędra
+ diff --git a/security.html b/security.html index aca190afa..2fa093139 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: semantic-release-bot
- +

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: Krystian Kędra
+ diff --git a/testing.html b/testing.html index 795e377c6..3979cf37d 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

  • Load tests are executed within the CI pipeline in the K6 load tests workflow
  • This is only a beta implementation and is not currently defined as a required passing action for a PR to be merged, but if it fails this is a good indication that the PR introduces performance issues which should be investigated before the PR is approved
  • Due to an issue in GitHub Actions, only a simple test with a set number of VUs and duration is defined
Last Updated:
Contributors: semantic-release-bot
- +

Execution in CI

  • Load tests are executed within the CI pipeline in the K6 load tests workflow
  • This is only a beta implementation and is not currently defined as a required passing action for a PR to be merged, but if it fails this is a good indication that the PR introduces performance issues which should be investigated before the PR is approved
  • Due to an issue in GitHub Actions, only a simple test with a set number of VUs and duration is defined
Last Updated:
Contributors: Krystian Kędra
+ diff --git a/troubleshoot/index.html b/troubleshoot/index.html index ec66a2936..73d6e3cb6 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: semantic-release-bot
- +

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: Krystian Kędra
+ diff --git a/webhooks/index.html b/webhooks/index.html index db62e846c..edbb5212f 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: semantic-release-bot
- +

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: Krystian Kędra
+