From f2c15c1a0408ae23cd54ff1910eee1fc337f9356 Mon Sep 17 00:00:00 2001 From: AJStacy Date: Tue, 24 Sep 2024 13:57:18 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20adzejs/a?= =?UTF-8?q?dze@ac8ad7640a64ce960439f93a3336cdda4f77d3fd=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 8 ++++---- ...404.html-Ca0QnY7N.js => 404.html-DtHvz_I5.js} | 2 +- ...sult-D4O8WMST.js => SearchResult-GqvqXcV-.js} | 2 +- ...l-B9VkPNjT.js => annotation.html-CqcVQA35.js} | 4 ++-- assets/{app-Cqk3MxnN.js => app-_2IEvvvI.js} | 16 ++++++++-------- ...Cbg6sLuc.js => capture-data.html-DgfSfL3S.js} | 4 ++-- ...WpVcdvw.js => chainable-api.html-DQ6A1bLV.js} | 4 ++-- ...tml-CIEMVjdE.js => concepts.html-BemSlxQu.js} | 4 ++-- ...BCxonqLM.js => configurable.html-DyZv6ipe.js} | 2 +- ...yxslJu-.js => configuration.html-BSj8CQu9.js} | 4 ++-- ...CPckSeE.js => configuration.html-DpPySues.js} | 4 ++-- ...ml-DJFVCZqT.js => filtering.html-BLTSNKht.js} | 4 ++-- ....html-BmpmvW-4.js => footer.html-Ca7mFpwf.js} | 2 +- ...l-BKk4NljL.js => formatters.html-BSTOgFuG.js} | 4 ++-- ...html-Co3fsBHy.js => getters.html-ce0HfsWw.js} | 4 ++-- ... => getting-started-is-easy.html-DeYolDfw.js} | 2 +- ...BuWZ5jRt.js => global-store.html-BZonpzMK.js} | 4 ++-- ...B4wd7Ief.js => global-store.html-CSjJp1Ur.js} | 4 ++-- ...CYGSUtI2.js => global-store.html-DTY6bE3e.js} | 2 +- ...x.html-B5AXf1gE.js => index.html-Dbd59c1h.js} | 2 +- ...C3I8OXbN.js => installation.html-75Y0CrjR.js} | 2 +- assets/introduction.html-BOMqORSj.js | 1 - ...THVUd1K0.js => introduction.html-Bdn4keSF.js} | 4 ++-- assets/introduction.html-D36B9gU8.js | 1 + ...ml-CzVBugZG.js => log-class.html-DBsD6elV.js} | 4 ++-- assets/micro-frontends.html-Bva5-4P-.js | 1 - assets/micro-frontends.html-lQCoWmkT.js | 1 + ...l-nGVVd46T.js => middleware.html-CrcRp4g6.js} | 4 ++-- ...ml-DwV4K7S-.js => migrating.html-BBp8_78D.js} | 4 ++-- ...ml-DqsEp6sn.js => modifiers.html-4RHpwnhU.js} | 4 ++-- ...ml-BLGNnRZ8.js => much-more.html-CsjN2s8L.js} | 2 +- ...html-Dy0V6pZc.js => plugins.html-CrSMwGT8.js} | 2 +- ... => putting-it-all-together.html-DCWNl5E3.js} | 4 ++-- ...p.html-DWFI0YCA.js => setup.html-D0Vi7yC_.js} | 4 ++-- ...-D1xze_qb.js => terminators.html-BXhnZQtH.js} | 4 ++-- ...ml-CkUvPmyg.js => threading.html-cset5e2V.js} | 2 +- ...s.html-B7TU3Lny.js => tools.html-BbAJLJ6L.js} | 4 ++-- ...s.html-BT4rf4u4.js => tools.html-BkvJzRCr.js} | 4 ++-- ...0Z_m.js => typescript-first.html-Cjedr06T.js} | 2 +- ...Clg3O9-p.js => unit-testing.html-D1dxnWs-.js} | 2 +- ...ml-BnhSKAGR.js => universal.html-XVu01gHJ.js} | 2 +- getting-started/annotation.html | 6 +++--- getting-started/capture-data.html | 6 +++--- getting-started/concepts.html | 6 +++--- getting-started/configuration.html | 6 +++--- getting-started/filtering.html | 6 +++--- getting-started/global-store.html | 6 +++--- getting-started/installation.html | 6 +++--- getting-started/introduction.html | 6 +++--- getting-started/migrating.html | 6 +++--- getting-started/putting-it-all-together.html | 6 +++--- getting-started/setup.html | 6 +++--- getting-started/threading.html | 6 +++--- getting-started/tools.html | 6 +++--- home/chainable-api.html | 6 +++--- home/configurable.html | 6 +++--- home/footer.html | 6 +++--- home/getting-started-is-easy.html | 6 +++--- home/global-store.html | 6 +++--- home/much-more.html | 6 +++--- home/typescript-first.html | 6 +++--- home/universal.html | 6 +++--- index.html | 6 +++--- plugins.html | 6 +++--- reference/configuration.html | 6 +++--- reference/formatters.html | 6 +++--- reference/getters.html | 6 +++--- reference/global-store.html | 6 +++--- reference/introduction.html | 6 +++--- reference/log-class.html | 6 +++--- reference/micro-frontends.html | 6 +++--- reference/middleware.html | 6 +++--- reference/modifiers.html | 6 +++--- reference/terminators.html | 6 +++--- reference/tools.html | 6 +++--- reference/unit-testing.html | 6 +++--- 76 files changed, 175 insertions(+), 175 deletions(-) rename assets/{404.html-Ca0QnY7N.js => 404.html-DtHvz_I5.js} (84%) rename assets/{SearchResult-D4O8WMST.js => SearchResult-GqvqXcV-.js} (99%) rename assets/{annotation.html-B9VkPNjT.js => annotation.html-CqcVQA35.js} (98%) rename assets/{app-Cqk3MxnN.js => app-_2IEvvvI.js} (72%) rename assets/{capture-data.html-Cbg6sLuc.js => capture-data.html-DgfSfL3S.js} (98%) rename assets/{chainable-api.html-CWpVcdvw.js => chainable-api.html-DQ6A1bLV.js} (80%) rename assets/{concepts.html-CIEMVjdE.js => concepts.html-BemSlxQu.js} (68%) rename assets/{configurable.html-BCxonqLM.js => configurable.html-DyZv6ipe.js} (88%) rename assets/{configuration.html-DyxslJu-.js => configuration.html-BSj8CQu9.js} (99%) rename assets/{configuration.html-BCPckSeE.js => configuration.html-DpPySues.js} (99%) rename assets/{filtering.html-DJFVCZqT.js => filtering.html-BLTSNKht.js} (98%) rename assets/{footer.html-BmpmvW-4.js => footer.html-Ca7mFpwf.js} (95%) rename assets/{formatters.html-BKk4NljL.js => formatters.html-BSTOgFuG.js} (96%) rename assets/{getters.html-Co3fsBHy.js => getters.html-ce0HfsWw.js} (98%) rename assets/{getting-started-is-easy.html-FJyZ_Eyr.js => getting-started-is-easy.html-DeYolDfw.js} (98%) rename assets/{global-store.html-BuWZ5jRt.js => global-store.html-BZonpzMK.js} (96%) rename assets/{global-store.html-B4wd7Ief.js => global-store.html-CSjJp1Ur.js} (97%) rename assets/{global-store.html-CYGSUtI2.js => global-store.html-DTY6bE3e.js} (85%) rename assets/{index.html-B5AXf1gE.js => index.html-Dbd59c1h.js} (95%) rename assets/{installation.html-C3I8OXbN.js => installation.html-75Y0CrjR.js} (99%) delete mode 100644 assets/introduction.html-BOMqORSj.js rename assets/{introduction.html-THVUd1K0.js => introduction.html-Bdn4keSF.js} (98%) create mode 100644 assets/introduction.html-D36B9gU8.js rename assets/{log-class.html-CzVBugZG.js => log-class.html-DBsD6elV.js} (87%) delete mode 100644 assets/micro-frontends.html-Bva5-4P-.js create mode 100644 assets/micro-frontends.html-lQCoWmkT.js rename assets/{middleware.html-nGVVd46T.js => middleware.html-CrcRp4g6.js} (99%) rename assets/{migrating.html-DwV4K7S-.js => migrating.html-BBp8_78D.js} (99%) rename assets/{modifiers.html-DqsEp6sn.js => modifiers.html-4RHpwnhU.js} (99%) rename assets/{much-more.html-BLGNnRZ8.js => much-more.html-CsjN2s8L.js} (84%) rename assets/{plugins.html-Dy0V6pZc.js => plugins.html-CrSMwGT8.js} (97%) rename assets/{putting-it-all-together.html-D1LL_Mqh.js => putting-it-all-together.html-DCWNl5E3.js} (97%) rename assets/{setup.html-DWFI0YCA.js => setup.html-D0Vi7yC_.js} (96%) rename assets/{terminators.html-D1xze_qb.js => terminators.html-BXhnZQtH.js} (99%) rename assets/{threading.html-CkUvPmyg.js => threading.html-cset5e2V.js} (99%) rename assets/{tools.html-B7TU3Lny.js => tools.html-BbAJLJ6L.js} (98%) rename assets/{tools.html-BT4rf4u4.js => tools.html-BkvJzRCr.js} (83%) rename assets/{typescript-first.html-CdL-0Z_m.js => typescript-first.html-Cjedr06T.js} (94%) rename assets/{unit-testing.html-Clg3O9-p.js => unit-testing.html-D1dxnWs-.js} (97%) rename assets/{universal.html-BnhSKAGR.js => universal.html-XVu01gHJ.js} (79%) diff --git a/404.html b/404.html index d64908f..ac88543 100644 --- a/404.html +++ b/404.html @@ -33,11 +33,11 @@ Universal Logging for Typescript/JavaScript - - + + -

404

There's nothing here.
Take me home
- +

404

Looks like we've got some broken links.
Take me home
+ diff --git a/assets/404.html-Ca0QnY7N.js b/assets/404.html-DtHvz_I5.js similarity index 84% rename from assets/404.html-Ca0QnY7N.js rename to assets/404.html-DtHvz_I5.js index 9a657bb..bcec480 100644 --- a/assets/404.html-Ca0QnY7N.js +++ b/assets/404.html-DtHvz_I5.js @@ -1 +1 @@ -import{_ as t,c as e,o,b as n}from"./app-Cqk3MxnN.js";const a={},c=n("p",null,"404 Not Found",-1),l=[c];function s(r,_){return o(),e("div",null,l)}const i=t(a,[["render",s],["__file","404.html.vue"]]),p=JSON.parse('{"path":"/404.html","title":"","lang":"en-US","frontmatter":{"layout":"NotFound"},"headers":[],"git":{},"filePathRelative":null,"excerpt":"

404 Not Found

\\n"}');export{i as comp,p as data}; +import{_ as t,c as e,o,b as n}from"./app-_2IEvvvI.js";const a={},c=n("p",null,"404 Not Found",-1),l=[c];function s(r,_){return o(),e("div",null,l)}const i=t(a,[["render",s],["__file","404.html.vue"]]),p=JSON.parse('{"path":"/404.html","title":"","lang":"en-US","frontmatter":{"layout":"NotFound"},"headers":[],"git":{},"filePathRelative":null,"excerpt":"

404 Not Found

\\n"}');export{i as comp,p as data}; diff --git a/assets/SearchResult-D4O8WMST.js b/assets/SearchResult-GqvqXcV-.js similarity index 99% rename from assets/SearchResult-D4O8WMST.js rename to assets/SearchResult-GqvqXcV-.js index c26276d..b2963bc 100644 --- a/assets/SearchResult-D4O8WMST.js +++ b/assets/SearchResult-GqvqXcV-.js @@ -1 +1 @@ -import{u as Y,f as te,g as se,h as B,i as le,P as ae,t as re,j as ie,k as F,l as q,m as ue,n as M,p as s,q as ne,R as j,s as oe,v as ce,x as he,C as ve,y as de,z as me,A as pe,B as ge,D as ye,E as fe,F as He,G as I,H as _,I as Re,J as x,K as ke}from"./app-Cqk3MxnN.js";const we=["/","/plugins.html","/getting-started/annotation.html","/getting-started/capture-data.html","/getting-started/concepts.html","/getting-started/configuration.html","/getting-started/filtering.html","/getting-started/global-store.html","/getting-started/installation.html","/getting-started/introduction.html","/getting-started/migrating.html","/getting-started/putting-it-all-together.html","/getting-started/setup.html","/getting-started/threading.html","/getting-started/tools.html","/home/chainable-api.html","/home/configurable.html","/home/footer.html","/home/getting-started-is-easy.html","/home/global-store.html","/home/much-more.html","/home/typescript-first.html","/home/universal.html","/reference/configuration.html","/reference/formatters.html","/reference/getters.html","/reference/global-store.html","/reference/introduction.html","/reference/log-class.html","/reference/micro-frontends.html","/reference/middleware.html","/reference/modifiers.html","/reference/terminators.html","/reference/tools.html","/reference/unit-testing.html","/404.html"],Qe="SEARCH_PRO_QUERY_HISTORY",y=Y(Qe,[]),qe=()=>{const{queryHistoryCount:l}=x,a=l>0;return{enabled:a,queryHistory:y,addQueryHistory:r=>{a&&(y.value=Array.from(new Set([r,...y.value.slice(0,l-1)])))},removeQueryHistory:r=>{y.value=[...y.value.slice(0,r),...y.value.slice(r+1)]}}},P=l=>we[l.id]+("anchor"in l?`#${l.anchor}`:""),xe="SEARCH_PRO_RESULT_HISTORY",{resultHistoryCount:U}=x,f=Y(xe,[]),be=()=>{const l=U>0;return{enabled:l,resultHistory:f,addResultHistory:a=>{if(l){const r={link:P(a),display:a.display};"header"in a&&(r.header=a.header),f.value=[r,...f.value.slice(0,U-1)]}},removeResultHistory:a=>{f.value=[...f.value.slice(0,a),...f.value.slice(a+1)]}}},Se=l=>{const a=ve(),r=B(),b=de(),u=F(0),k=q(()=>u.value>0),m=me([]);return pe(()=>{const{search:p,terminate:S}=ge(),H=Re(c=>{const R=c.join(" "),{searchFilter:C=d=>d,splitWord:D,suggestionsFilter:O,...g}=a.value;R?(u.value+=1,p(c.join(" "),r.value,g).then(d=>C(d,R,r.value,b.value)).then(d=>{u.value-=1,m.value=d}).catch(d=>{console.warn(d),u.value-=1,u.value||(m.value=[])})):m.value=[]},x.searchDelay-x.suggestDelay);M([l,r],([c])=>H(c),{immediate:!0}),ye(()=>{S()})}),{isSearching:k,results:m}};var De=te({name:"SearchResult",props:{queries:{type:Array,required:!0},isFocusing:Boolean},emits:["close","updateQuery"],setup(l,{emit:a}){const r=se(),b=B(),u=le(ae),{enabled:k,addQueryHistory:m,queryHistory:p,removeQueryHistory:S}=qe(),{enabled:H,resultHistory:c,addResultHistory:R,removeResultHistory:C}=be(),D=k||H,O=re(l,"queries"),{results:g,isSearching:d}=Se(O),i=ie({isQuery:!0,index:0}),h=F(0),v=F(0),T=q(()=>D&&(p.value.length>0||c.value.length>0)),L=q(()=>g.value.length>0),A=q(()=>g.value[h.value]||null),z=()=>{const{isQuery:e,index:t}=i;t===0?(i.isQuery=!e,i.index=e?c.value.length-1:p.value.length-1):i.index=t-1},G=()=>{const{isQuery:e,index:t}=i;t===(e?p.value.length-1:c.value.length-1)?(i.isQuery=!e,i.index=0):i.index=t+1},J=()=>{h.value=h.value>0?h.value-1:g.value.length-1,v.value=A.value.contents.length-1},K=()=>{h.value=h.value{v.value{v.value>0?v.value-=1:J()},E=e=>e.map(t=>ke(t)?t:s(t[0],t[1])),W=e=>{if(e.type==="customField"){const t=fe[e.index]||"$content",[n,Q=""]=He(t)?t[b.value].split("$content"):t.split("$content");return e.display.map(o=>s("div",E([n,...o,Q])))}return e.display.map(t=>s("div",E(t)))},w=()=>{h.value=0,v.value=0,a("updateQuery",""),a("close")},X=()=>k?s("ul",{class:"search-pro-result-list"},s("li",{class:"search-pro-result-list-item"},[s("div",{class:"search-pro-result-title"},u.value.queryHistory),p.value.map((e,t)=>s("div",{class:["search-pro-result-item",{active:i.isQuery&&i.index===t}],onClick:()=>{a("updateQuery",e)}},[s(I,{class:"search-pro-result-type"}),s("div",{class:"search-pro-result-content"},e),s("button",{class:"search-pro-remove-icon",innerHTML:_,onClick:n=>{n.preventDefault(),n.stopPropagation(),S(t)}})]))])):null,Z=()=>H?s("ul",{class:"search-pro-result-list"},s("li",{class:"search-pro-result-list-item"},[s("div",{class:"search-pro-result-title"},u.value.resultHistory),c.value.map((e,t)=>s(j,{to:e.link,class:["search-pro-result-item",{active:!i.isQuery&&i.index===t}],onClick:()=>{w()}},()=>[s(I,{class:"search-pro-result-type"}),s("div",{class:"search-pro-result-content"},[e.header?s("div",{class:"content-header"},e.header):null,s("div",e.display.map(n=>E(n)).flat())]),s("button",{class:"search-pro-remove-icon",innerHTML:_,onClick:n=>{n.preventDefault(),n.stopPropagation(),C(t)}})]))])):null;return ue("keydown",e=>{if(l.isFocusing){if(L.value){if(e.key==="ArrowUp")N();else if(e.key==="ArrowDown")V();else if(e.key==="Enter"){const t=A.value.contents[v.value];m(l.queries.join(" ")),R(t),r.push(P(t)),w()}}else if(H){if(e.key==="ArrowUp")z();else if(e.key==="ArrowDown")G();else if(e.key==="Enter"){const{index:t}=i;i.isQuery?(a("updateQuery",p.value[t]),e.preventDefault()):(r.push(c.value[t].link),w())}}}}),M([h,v],()=>{var e;(e=document.querySelector(".search-pro-result-list-item.active .search-pro-result-item.active"))==null||e.scrollIntoView(!1)},{flush:"post"}),()=>s("div",{class:["search-pro-result-wrapper",{empty:l.queries.length?!L.value:!T.value}],id:"search-pro-results"},l.queries.length?d.value?s(ne,{hint:u.value.searching}):L.value?s("ul",{class:"search-pro-result-list"},g.value.map(({title:e,contents:t},n)=>{const Q=h.value===n;return s("li",{class:["search-pro-result-list-item",{active:Q}]},[s("div",{class:"search-pro-result-title"},e||u.value.defaultTitle),t.map((o,ee)=>{const $=Q&&v.value===ee;return s(j,{to:P(o),class:["search-pro-result-item",{active:$,"aria-selected":$}],onClick:()=>{m(l.queries.join(" ")),R(o),w()}},()=>[o.type==="text"?null:s(o.type==="title"?oe:o.type==="heading"?ce:he,{class:"search-pro-result-type"}),s("div",{class:"search-pro-result-content"},[o.type==="text"&&o.header?s("div",{class:"content-header"},o.header):null,s("div",W(o))])])})])})):u.value.emptyResult:D?T.value?[X(),Z()]:u.value.emptyHistory:u.value.emptyResult)}});export{De as default}; +import{u as Y,f as te,g as se,h as B,i as le,P as ae,t as re,j as ie,k as F,l as q,m as ue,n as M,p as s,q as ne,R as j,s as oe,v as ce,x as he,C as ve,y as de,z as me,A as pe,B as ge,D as ye,E as fe,F as He,G as I,H as _,I as Re,J as x,K as ke}from"./app-_2IEvvvI.js";const we=["/","/plugins.html","/getting-started/annotation.html","/getting-started/capture-data.html","/getting-started/concepts.html","/getting-started/configuration.html","/getting-started/filtering.html","/getting-started/global-store.html","/getting-started/installation.html","/getting-started/introduction.html","/getting-started/migrating.html","/getting-started/putting-it-all-together.html","/getting-started/setup.html","/getting-started/threading.html","/getting-started/tools.html","/home/chainable-api.html","/home/configurable.html","/home/footer.html","/home/getting-started-is-easy.html","/home/global-store.html","/home/much-more.html","/home/typescript-first.html","/home/universal.html","/reference/configuration.html","/reference/formatters.html","/reference/getters.html","/reference/global-store.html","/reference/introduction.html","/reference/log-class.html","/reference/micro-frontends.html","/reference/middleware.html","/reference/modifiers.html","/reference/terminators.html","/reference/tools.html","/reference/unit-testing.html","/404.html"],Qe="SEARCH_PRO_QUERY_HISTORY",y=Y(Qe,[]),qe=()=>{const{queryHistoryCount:l}=x,a=l>0;return{enabled:a,queryHistory:y,addQueryHistory:r=>{a&&(y.value=Array.from(new Set([r,...y.value.slice(0,l-1)])))},removeQueryHistory:r=>{y.value=[...y.value.slice(0,r),...y.value.slice(r+1)]}}},P=l=>we[l.id]+("anchor"in l?`#${l.anchor}`:""),xe="SEARCH_PRO_RESULT_HISTORY",{resultHistoryCount:U}=x,f=Y(xe,[]),be=()=>{const l=U>0;return{enabled:l,resultHistory:f,addResultHistory:a=>{if(l){const r={link:P(a),display:a.display};"header"in a&&(r.header=a.header),f.value=[r,...f.value.slice(0,U-1)]}},removeResultHistory:a=>{f.value=[...f.value.slice(0,a),...f.value.slice(a+1)]}}},Se=l=>{const a=ve(),r=B(),b=de(),u=F(0),k=q(()=>u.value>0),m=me([]);return pe(()=>{const{search:p,terminate:S}=ge(),H=Re(c=>{const R=c.join(" "),{searchFilter:C=d=>d,splitWord:D,suggestionsFilter:O,...g}=a.value;R?(u.value+=1,p(c.join(" "),r.value,g).then(d=>C(d,R,r.value,b.value)).then(d=>{u.value-=1,m.value=d}).catch(d=>{console.warn(d),u.value-=1,u.value||(m.value=[])})):m.value=[]},x.searchDelay-x.suggestDelay);M([l,r],([c])=>H(c),{immediate:!0}),ye(()=>{S()})}),{isSearching:k,results:m}};var De=te({name:"SearchResult",props:{queries:{type:Array,required:!0},isFocusing:Boolean},emits:["close","updateQuery"],setup(l,{emit:a}){const r=se(),b=B(),u=le(ae),{enabled:k,addQueryHistory:m,queryHistory:p,removeQueryHistory:S}=qe(),{enabled:H,resultHistory:c,addResultHistory:R,removeResultHistory:C}=be(),D=k||H,O=re(l,"queries"),{results:g,isSearching:d}=Se(O),i=ie({isQuery:!0,index:0}),h=F(0),v=F(0),T=q(()=>D&&(p.value.length>0||c.value.length>0)),L=q(()=>g.value.length>0),A=q(()=>g.value[h.value]||null),z=()=>{const{isQuery:e,index:t}=i;t===0?(i.isQuery=!e,i.index=e?c.value.length-1:p.value.length-1):i.index=t-1},G=()=>{const{isQuery:e,index:t}=i;t===(e?p.value.length-1:c.value.length-1)?(i.isQuery=!e,i.index=0):i.index=t+1},J=()=>{h.value=h.value>0?h.value-1:g.value.length-1,v.value=A.value.contents.length-1},K=()=>{h.value=h.value{v.value{v.value>0?v.value-=1:J()},E=e=>e.map(t=>ke(t)?t:s(t[0],t[1])),W=e=>{if(e.type==="customField"){const t=fe[e.index]||"$content",[n,Q=""]=He(t)?t[b.value].split("$content"):t.split("$content");return e.display.map(o=>s("div",E([n,...o,Q])))}return e.display.map(t=>s("div",E(t)))},w=()=>{h.value=0,v.value=0,a("updateQuery",""),a("close")},X=()=>k?s("ul",{class:"search-pro-result-list"},s("li",{class:"search-pro-result-list-item"},[s("div",{class:"search-pro-result-title"},u.value.queryHistory),p.value.map((e,t)=>s("div",{class:["search-pro-result-item",{active:i.isQuery&&i.index===t}],onClick:()=>{a("updateQuery",e)}},[s(I,{class:"search-pro-result-type"}),s("div",{class:"search-pro-result-content"},e),s("button",{class:"search-pro-remove-icon",innerHTML:_,onClick:n=>{n.preventDefault(),n.stopPropagation(),S(t)}})]))])):null,Z=()=>H?s("ul",{class:"search-pro-result-list"},s("li",{class:"search-pro-result-list-item"},[s("div",{class:"search-pro-result-title"},u.value.resultHistory),c.value.map((e,t)=>s(j,{to:e.link,class:["search-pro-result-item",{active:!i.isQuery&&i.index===t}],onClick:()=>{w()}},()=>[s(I,{class:"search-pro-result-type"}),s("div",{class:"search-pro-result-content"},[e.header?s("div",{class:"content-header"},e.header):null,s("div",e.display.map(n=>E(n)).flat())]),s("button",{class:"search-pro-remove-icon",innerHTML:_,onClick:n=>{n.preventDefault(),n.stopPropagation(),C(t)}})]))])):null;return ue("keydown",e=>{if(l.isFocusing){if(L.value){if(e.key==="ArrowUp")N();else if(e.key==="ArrowDown")V();else if(e.key==="Enter"){const t=A.value.contents[v.value];m(l.queries.join(" ")),R(t),r.push(P(t)),w()}}else if(H){if(e.key==="ArrowUp")z();else if(e.key==="ArrowDown")G();else if(e.key==="Enter"){const{index:t}=i;i.isQuery?(a("updateQuery",p.value[t]),e.preventDefault()):(r.push(c.value[t].link),w())}}}}),M([h,v],()=>{var e;(e=document.querySelector(".search-pro-result-list-item.active .search-pro-result-item.active"))==null||e.scrollIntoView(!1)},{flush:"post"}),()=>s("div",{class:["search-pro-result-wrapper",{empty:l.queries.length?!L.value:!T.value}],id:"search-pro-results"},l.queries.length?d.value?s(ne,{hint:u.value.searching}):L.value?s("ul",{class:"search-pro-result-list"},g.value.map(({title:e,contents:t},n)=>{const Q=h.value===n;return s("li",{class:["search-pro-result-list-item",{active:Q}]},[s("div",{class:"search-pro-result-title"},e||u.value.defaultTitle),t.map((o,ee)=>{const $=Q&&v.value===ee;return s(j,{to:P(o),class:["search-pro-result-item",{active:$,"aria-selected":$}],onClick:()=>{m(l.queries.join(" ")),R(o),w()}},()=>[o.type==="text"?null:s(o.type==="title"?oe:o.type==="heading"?ce:he,{class:"search-pro-result-type"}),s("div",{class:"search-pro-result-content"},[o.type==="text"&&o.header?s("div",{class:"content-header"},o.header):null,s("div",W(o))])])})])})):u.value.emptyResult:D?T.value?[X(),Z()]:u.value.emptyHistory:u.value.emptyResult)}});export{De as default}; diff --git a/assets/annotation.html-B9VkPNjT.js b/assets/annotation.html-CqcVQA35.js similarity index 98% rename from assets/annotation.html-B9VkPNjT.js rename to assets/annotation.html-CqcVQA35.js index 208eb22..94b8337 100644 --- a/assets/annotation.html-B9VkPNjT.js +++ b/assets/annotation.html-CqcVQA35.js @@ -1,4 +1,4 @@ -import{_ as t,r as p,c as o,b as s,d as n,e as l,w as i,a,o as c}from"./app-Cqk3MxnN.js";const u="/assets/namespaces-example-1-B06UaQvG.png",r="/assets/namespaces-example-2-Bl4em13N.png",d="/assets/annotation-label-example-1-D-mLoW0c.png",k="/assets/annotation-label-example-2-D6k6ONU8.png",m={},v=a(`

Annotating Logs

When logging, often there is extra information we would like to know about the context of the log.

For instance, if I generate a log inside of a utility function, I might want to know that's where it came from when I'm reading through my logs at a later time.

This is where namespaces and labels come in to help.

Let's assume a file structure for our project like this:

  • src/
    • index.ts
    • logger.ts
    • utilities.ts

Using Namespaces

We'll assume we have already set up our logger for our project in logger.ts that just uses emoji's and we would like to write a utility function to fetch a value from a remote source.

// utilities.ts
+import{_ as t,c as p,b as s,d as n,e as o,w as l,a,r as i,o as c}from"./app-_2IEvvvI.js";const u="/assets/namespaces-example-1-B06UaQvG.png",r="/assets/namespaces-example-2-Bl4em13N.png",d="/assets/annotation-label-example-1-D-mLoW0c.png",k="/assets/annotation-label-example-2-D6k6ONU8.png",m={},v=a(`

Annotating Logs

When logging, often there is extra information we would like to know about the context of the log.

For instance, if I generate a log inside of a utility function, I might want to know that's where it came from when I'm reading through my logs at a later time.

This is where namespaces and labels come in to help.

Let's assume a file structure for our project like this:

  • src/
    • index.ts
    • logger.ts
    • utilities.ts

Using Namespaces

We'll assume we have already set up our logger for our project in logger.ts that just uses emoji's and we would like to write a utility function to fetch a value from a remote source.

// utilities.ts
 import logger from './logger';
 
 /**
@@ -93,4 +93,4 @@ import{_ as t,r as p,c as o,b as s,d as n,e as l,w as i,a,o as c}from"./app-Cqk3
     cb();
   }
 }
-

Example Output

Example of log printed 10 times with a counter


Now we see in the output above the name of the label [doTenLoop] as well as the counter showing the number of times this log was called; (Count: n).

',11);function w(y,x){const e=p("RouteLink");return c(),o("div",null,[v,s("ul",null,[g,s("li",null,[n("Labels associate logs together for modifiers like "),h,n(" and "),b,n(" and for other features like "),l(e,{to:"/getting-started/threading.html"},{default:i(()=>[n("threads")]),_:1}),n(".")])]),f])}const L=t(m,[["render",w],["__file","annotation.html.vue"]]),N=JSON.parse(`{"path":"/getting-started/annotation.html","title":"Annotating Logs","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Using Namespaces","slug":"using-namespaces","link":"#using-namespaces","children":[]},{"level":2,"title":"Using Labels","slug":"using-labels","link":"#using-labels","children":[]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"getting-started/annotation.md","excerpt":"\\n

When logging, often there is extra information we would like to know about the context of the log.

\\n

For instance, if I generate a log inside of a utility function, I might want to know that's where\\nit came from when I'm reading through my logs at a later time.

\\n

This is where namespaces and labels come in to help.

"}`);export{L as comp,N as data}; +

Example Output

Example of log printed 10 times with a counter


Now we see in the output above the name of the label [doTenLoop] as well as the counter showing the number of times this log was called; (Count: n).

',11);function w(y,x){const e=i("RouteLink");return c(),p("div",null,[v,s("ul",null,[g,s("li",null,[n("Labels associate logs together for modifiers like "),h,n(" and "),b,n(" and for other features like "),o(e,{to:"/getting-started/threading.html"},{default:l(()=>[n("threads")]),_:1}),n(".")])]),f])}const L=t(m,[["render",w],["__file","annotation.html.vue"]]),N=JSON.parse(`{"path":"/getting-started/annotation.html","title":"Annotating Logs","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Using Namespaces","slug":"using-namespaces","link":"#using-namespaces","children":[]},{"level":2,"title":"Using Labels","slug":"using-labels","link":"#using-labels","children":[]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"getting-started/annotation.md","excerpt":"\\n

When logging, often there is extra information we would like to know about the context of the log.

\\n

For instance, if I generate a log inside of a utility function, I might want to know that's where\\nit came from when I'm reading through my logs at a later time.

\\n

This is where namespaces and labels come in to help.

"}`);export{L as comp,N as data}; diff --git a/assets/app-Cqk3MxnN.js b/assets/app-_2IEvvvI.js similarity index 72% rename from assets/app-Cqk3MxnN.js rename to assets/app-_2IEvvvI.js index c0d4088..92dd872 100644 --- a/assets/app-Cqk3MxnN.js +++ b/assets/app-_2IEvvvI.js @@ -1,27 +1,27 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/concepts.html-CIEMVjdE.js","assets/lifecycle-agZhburq.js","assets/introduction.html-THVUd1K0.js","assets/demo-CDG8Pcr1.js","assets/formatters.html-BKk4NljL.js","assets/introduction.html-BOMqORSj.js"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/concepts.html-BemSlxQu.js","assets/lifecycle-agZhburq.js","assets/introduction.html-Bdn4keSF.js","assets/demo-CDG8Pcr1.js","assets/formatters.html-BSTOgFuG.js","assets/introduction.html-D36B9gU8.js"])))=>i.map(i=>d[i]); /** * @vue/shared v3.4.38 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**//*! #__NO_SIDE_EFFECTS__ */function Ur(e,t){const n=new Set(e.split(","));return o=>n.has(o)}const Le={},mn=[],st=()=>{},za=()=>!1,eo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Wr=e=>e.startsWith("onUpdate:"),Ne=Object.assign,Kr=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Ua=Object.prototype.hasOwnProperty,de=(e,t)=>Ua.call(e,t),oe=Array.isArray,gn=e=>Wo(e)==="[object Map]",Fi=e=>Wo(e)==="[object Set]",se=e=>typeof e=="function",Te=e=>typeof e=="string",zt=e=>typeof e=="symbol",ye=e=>e!==null&&typeof e=="object",zi=e=>(ye(e)||se(e))&&se(e.then)&&se(e.catch),Ui=Object.prototype.toString,Wo=e=>Ui.call(e),Wa=e=>Wo(e).slice(8,-1),Wi=e=>Wo(e)==="[object Object]",Gr=e=>Te(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,vn=Ur(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ko=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Ka=/-(\w)/g,tt=Ko(e=>e.replace(Ka,(t,n)=>n?n.toUpperCase():"")),Ga=/\B([A-Z])/g,Ut=Ko(e=>e.replace(Ga,"-$1").toLowerCase()),to=Ko(e=>e.charAt(0).toUpperCase()+e.slice(1)),ir=Ko(e=>e?`on${to(e)}`:""),Vt=(e,t)=>!Object.is(e,t),lr=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},qa=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Ja=e=>{const t=Te(e)?Number(e):NaN;return isNaN(t)?e:t};let As;const Gi=()=>As||(As=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function no(e){if(oe(e)){const t={};for(let n=0;n{if(n){const o=n.split(Qa);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function Je(e){let t="";if(Te(e))t=e;else if(oe(e))for(let n=0;n!!(e&&e.__v_isRef===!0),xe=e=>Te(e)?e:e==null?"":oe(e)||ye(e)&&(e.toString===Ui||!se(e.toString))?Ji(e)?xe(e.value):JSON.stringify(e,Yi,2):String(e),Yi=(e,t)=>Ji(t)?Yi(e,t.value):gn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,r],s)=>(n[ar(o,s)+" =>"]=r,n),{})}:Fi(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>ar(n))}:zt(t)?ar(t):ye(t)&&!oe(t)&&!Wi(t)?String(t):t,ar=(e,t="")=>{var n;return zt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +**//*! #__NO_SIDE_EFFECTS__ */function Ur(e,t){const n=new Set(e.split(","));return o=>n.has(o)}const Le={},mn=[],st=()=>{},Fa=()=>!1,eo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Wr=e=>e.startsWith("onUpdate:"),Ne=Object.assign,Kr=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},za=Object.prototype.hasOwnProperty,de=(e,t)=>za.call(e,t),oe=Array.isArray,gn=e=>Wo(e)==="[object Map]",Fi=e=>Wo(e)==="[object Set]",se=e=>typeof e=="function",Te=e=>typeof e=="string",zt=e=>typeof e=="symbol",ye=e=>e!==null&&typeof e=="object",zi=e=>(ye(e)||se(e))&&se(e.then)&&se(e.catch),Ui=Object.prototype.toString,Wo=e=>Ui.call(e),Ua=e=>Wo(e).slice(8,-1),Wi=e=>Wo(e)==="[object Object]",Gr=e=>Te(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,vn=Ur(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ko=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Wa=/-(\w)/g,tt=Ko(e=>e.replace(Wa,(t,n)=>n?n.toUpperCase():"")),Ka=/\B([A-Z])/g,Ut=Ko(e=>e.replace(Ka,"-$1").toLowerCase()),to=Ko(e=>e.charAt(0).toUpperCase()+e.slice(1)),ir=Ko(e=>e?`on${to(e)}`:""),Vt=(e,t)=>!Object.is(e,t),lr=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},Ga=e=>{const t=parseFloat(e);return isNaN(t)?e:t},qa=e=>{const t=Te(e)?Number(e):NaN;return isNaN(t)?e:t};let As;const Gi=()=>As||(As=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function no(e){if(oe(e)){const t={};for(let n=0;n{if(n){const o=n.split(Ya);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function Je(e){let t="";if(Te(e))t=e;else if(oe(e))for(let n=0;n!!(e&&e.__v_isRef===!0),xe=e=>Te(e)?e:e==null?"":oe(e)||ye(e)&&(e.toString===Ui||!se(e.toString))?Ji(e)?xe(e.value):JSON.stringify(e,Yi,2):String(e),Yi=(e,t)=>Ji(t)?Yi(e,t.value):gn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,r],s)=>(n[ar(o,s)+" =>"]=r,n),{})}:Fi(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>ar(n))}:zt(t)?ar(t):ye(t)&&!oe(t)&&!Wi(t)?String(t):t,ar=(e,t="")=>{var n;return zt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** * @vue/reactivity v3.4.38 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let Xe;class nc{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Xe,!t&&Xe&&(this.index=(Xe.scopes||(Xe.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=Xe;try{return Xe=this,t()}finally{Xe=n}}}on(){Xe=this}off(){Xe=this.parent}stop(t){if(this._active){let n,o;for(n=0,o=this.effects.length;n=4))break}this._dirtyLevel===1&&(this._dirtyLevel=0),Kt()}return this._dirtyLevel>=4}set dirty(t){this._dirtyLevel=t?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=Ht,n=tn;try{return Ht=!0,tn=this,this._runnings++,Os(this),this.fn()}finally{Rs(this),this._runnings--,tn=n,Ht=t}}stop(){this.active&&(Os(this),Rs(this),this.onStop&&this.onStop(),this.active=!1)}}function sc(e){return e.value}function Os(e){e._trackId++,e._depsLength=0}function Rs(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t{const n=new Map;return n.cleanup=e,n.computed=t,n},Io=new WeakMap,nn=Symbol(""),Ar=Symbol("");function Ye(e,t,n){if(Ht&&tn){let o=Io.get(e);o||Io.set(e,o=new Map);let r=o.get(n);r||o.set(n,r=nl(()=>o.delete(n))),el(tn,r)}}function wt(e,t,n,o,r,s){const i=Io.get(e);if(!i)return;let l=[];if(t==="clear")l=[...i.values()];else if(n==="length"&&oe(e)){const a=Number(o);i.forEach((c,f)=>{(f==="length"||!zt(f)&&f>=a)&&l.push(c)})}else switch(n!==void 0&&l.push(i.get(n)),t){case"add":oe(e)?Gr(n)&&l.push(i.get("length")):(l.push(i.get(nn)),gn(e)&&l.push(i.get(Ar)));break;case"delete":oe(e)||(l.push(i.get(nn)),gn(e)&&l.push(i.get(Ar)));break;case"set":gn(e)&&l.push(i.get(nn));break}Jr();for(const a of l)a&&tl(a,4);Yr()}function ic(e,t){const n=Io.get(e);return n&&n.get(t)}const lc=Ur("__proto__,__v_isRef,__isVue"),ol=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(zt)),Is=ac();function ac(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const o=pe(this);for(let s=0,i=this.length;s{e[t]=function(...n){Wt(),Jr();const o=pe(this)[t].apply(this,n);return Yr(),Kt(),o}}),e}function cc(e){zt(e)||(e=String(e));const t=pe(this);return Ye(t,"has",e),t.hasOwnProperty(e)}class rl{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){const r=this._isReadonly,s=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return s;if(n==="__v_raw")return o===(r?s?Ec:al:s?ll:il).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const i=oe(t);if(!r){if(i&&de(Is,n))return Reflect.get(Is,n,o);if(n==="hasOwnProperty")return cc}const l=Reflect.get(t,n,o);return(zt(n)?ol.has(n):lc(n))||(r||Ye(t,"get",n),s)?l:je(l)?i&&Gr(n)?l:l.value:ye(l)?r?ro(l):oo(l):l}}class sl extends rl{constructor(t=!1){super(!1,t)}set(t,n,o,r){let s=t[n];if(!this._isShallow){const a=ln(s);if(!Ln(o)&&!ln(o)&&(s=pe(s),o=pe(o)),!oe(t)&&je(s)&&!je(o))return a?!1:(s.value=o,!0)}const i=oe(t)&&Gr(n)?Number(n)e,Go=e=>Reflect.getPrototypeOf(e);function mo(e,t,n=!1,o=!1){e=e.__v_raw;const r=pe(e),s=pe(t);n||(Vt(t,s)&&Ye(r,"get",t),Ye(r,"get",s));const{has:i}=Go(r),l=o?Qr:n?es:Un;if(i.call(r,t))return l(e.get(t));if(i.call(r,s))return l(e.get(s));e!==r&&e.get(t)}function go(e,t=!1){const n=this.__v_raw,o=pe(n),r=pe(e);return t||(Vt(e,r)&&Ye(o,"has",e),Ye(o,"has",r)),e===r?n.has(e):n.has(e)||n.has(r)}function vo(e,t=!1){return e=e.__v_raw,!t&&Ye(pe(e),"iterate",nn),Reflect.get(e,"size",e)}function Ms(e,t=!1){!t&&!Ln(e)&&!ln(e)&&(e=pe(e));const n=pe(this);return Go(n).has.call(n,e)||(n.add(e),wt(n,"add",e,e)),this}function $s(e,t,n=!1){!n&&!Ln(t)&&!ln(t)&&(t=pe(t));const o=pe(this),{has:r,get:s}=Go(o);let i=r.call(o,e);i||(e=pe(e),i=r.call(o,e));const l=s.call(o,e);return o.set(e,t),i?Vt(t,l)&&wt(o,"set",e,t):wt(o,"add",e,t),this}function Hs(e){const t=pe(this),{has:n,get:o}=Go(t);let r=n.call(t,e);r||(e=pe(e),r=n.call(t,e)),o&&o.call(t,e);const s=t.delete(e);return r&&wt(t,"delete",e,void 0),s}function Ns(){const e=pe(this),t=e.size!==0,n=e.clear();return t&&wt(e,"clear",void 0,void 0),n}function _o(e,t){return function(o,r){const s=this,i=s.__v_raw,l=pe(i),a=t?Qr:e?es:Un;return!e&&Ye(l,"iterate",nn),i.forEach((c,f)=>o.call(r,a(c),a(f),s))}}function bo(e,t,n){return function(...o){const r=this.__v_raw,s=pe(r),i=gn(s),l=e==="entries"||e===Symbol.iterator&&i,a=e==="keys"&&i,c=r[e](...o),f=n?Qr:t?es:Un;return!t&&Ye(s,"iterate",a?Ar:nn),{next(){const{value:u,done:h}=c.next();return h?{value:u,done:h}:{value:l?[f(u[0]),f(u[1])]:f(u),done:h}},[Symbol.iterator](){return this}}}}function Pt(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function pc(){const e={get(s){return mo(this,s)},get size(){return vo(this)},has:go,add:Ms,set:$s,delete:Hs,clear:Ns,forEach:_o(!1,!1)},t={get(s){return mo(this,s,!1,!0)},get size(){return vo(this)},has:go,add(s){return Ms.call(this,s,!0)},set(s,i){return $s.call(this,s,i,!0)},delete:Hs,clear:Ns,forEach:_o(!1,!0)},n={get(s){return mo(this,s,!0)},get size(){return vo(this,!0)},has(s){return go.call(this,s,!0)},add:Pt("add"),set:Pt("set"),delete:Pt("delete"),clear:Pt("clear"),forEach:_o(!0,!1)},o={get(s){return mo(this,s,!0,!0)},get size(){return vo(this,!0)},has(s){return go.call(this,s,!0)},add:Pt("add"),set:Pt("set"),delete:Pt("delete"),clear:Pt("clear"),forEach:_o(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(s=>{e[s]=bo(s,!1,!1),n[s]=bo(s,!0,!1),t[s]=bo(s,!1,!0),o[s]=bo(s,!0,!0)}),[e,n,t,o]}const[mc,gc,vc,_c]=pc();function Xr(e,t){const n=t?e?_c:vc:e?gc:mc;return(o,r,s)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?o:Reflect.get(de(n,r)&&r in o?n:o,r,s)}const bc={get:Xr(!1,!1)},yc={get:Xr(!1,!0)},wc={get:Xr(!0,!1)};const il=new WeakMap,ll=new WeakMap,al=new WeakMap,Ec=new WeakMap;function Sc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Lc(e){return e.__v_skip||!Object.isExtensible(e)?0:Sc(Wa(e))}function oo(e){return ln(e)?e:Zr(e,!1,fc,bc,il)}function cl(e){return Zr(e,!1,hc,yc,ll)}function ro(e){return Zr(e,!0,dc,wc,al)}function Zr(e,t,n,o,r){if(!ye(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const s=r.get(e);if(s)return s;const i=Lc(e);if(i===0)return e;const l=new Proxy(e,i===2?o:n);return r.set(e,l),l}function _n(e){return ln(e)?_n(e.__v_raw):!!(e&&e.__v_isReactive)}function ln(e){return!!(e&&e.__v_isReadonly)}function Ln(e){return!!(e&&e.__v_isShallow)}function ul(e){return e?!!e.__v_raw:!1}function pe(e){const t=e&&e.__v_raw;return t?pe(t):e}function Cc(e){return Object.isExtensible(e)&&Ki(e,"__v_skip",!0),e}const Un=e=>ye(e)?oo(e):e,es=e=>ye(e)?ro(e):e;class fl{constructor(t,n,o,r){this.getter=t,this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new qr(()=>t(this._value),()=>Dn(this,this.effect._dirtyLevel===2?2:3)),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=o}get value(){const t=pe(this);return(!t._cacheable||t.effect.dirty)&&Vt(t._value,t._value=t.effect.run())&&Dn(t,4),ts(t),t.effect._dirtyLevel>=2&&Dn(t,2),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function kc(e,t,n=!1){let o,r;const s=se(e);return s?(o=e,r=st):(o=e.get,r=e.set),new fl(o,r,s||!r,n)}function ts(e){var t;Ht&&tn&&(e=pe(e),el(tn,(t=e.dep)!=null?t:e.dep=nl(()=>e.dep=void 0,e instanceof fl?e:void 0)))}function Dn(e,t=4,n,o){e=pe(e);const r=e.dep;r&&tl(r,t)}function je(e){return!!(e&&e.__v_isRef===!0)}function ie(e){return dl(e,!1)}function jt(e){return dl(e,!0)}function dl(e,t){return je(e)?e:new xc(e,t)}class xc{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:pe(t),this._value=n?t:Un(t)}get value(){return ts(this),this._value}set value(t){const n=this.__v_isShallow||Ln(t)||ln(t);t=n?t:pe(t),Vt(t,this._rawValue)&&(this._rawValue,this._rawValue=t,this._value=n?t:Un(t),Dn(this,4))}}function on(e){return je(e)?e.value:e}const Pc={get:(e,t,n)=>on(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const r=e[t];return je(r)&&!je(n)?(r.value=n,!0):Reflect.set(e,t,n,o)}};function hl(e){return _n(e)?e:new Proxy(e,Pc)}class Tc{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:o}=t(()=>ts(this),()=>Dn(this));this._get=n,this._set=o}get value(){return this._get()}set value(t){this._set(t)}}function pl(e){return new Tc(e)}function ml(e){const t=oe(e)?new Array(e.length):{};for(const n in e)t[n]=vl(e,n);return t}class Ac{constructor(t,n,o){this._object=t,this._key=n,this._defaultValue=o,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}get dep(){return ic(pe(this._object),this._key)}}class Oc{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function gl(e,t,n){return je(e)?e:se(e)?new Oc(e):ye(e)&&arguments.length>1?vl(e,t,n):ie(e)}function vl(e,t,n){const o=e[t];return je(o)?o:new Ac(e,t,n)}/** +**/let Xe;class tc{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Xe,!t&&Xe&&(this.index=(Xe.scopes||(Xe.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=Xe;try{return Xe=this,t()}finally{Xe=n}}}on(){Xe=this}off(){Xe=this.parent}stop(t){if(this._active){let n,o;for(n=0,o=this.effects.length;n=4))break}this._dirtyLevel===1&&(this._dirtyLevel=0),Kt()}return this._dirtyLevel>=4}set dirty(t){this._dirtyLevel=t?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=Ht,n=tn;try{return Ht=!0,tn=this,this._runnings++,Os(this),this.fn()}finally{Rs(this),this._runnings--,tn=n,Ht=t}}stop(){this.active&&(Os(this),Rs(this),this.onStop&&this.onStop(),this.active=!1)}}function rc(e){return e.value}function Os(e){e._trackId++,e._depsLength=0}function Rs(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t{const n=new Map;return n.cleanup=e,n.computed=t,n},Io=new WeakMap,nn=Symbol(""),Ar=Symbol("");function Ye(e,t,n){if(Ht&&tn){let o=Io.get(e);o||Io.set(e,o=new Map);let r=o.get(n);r||o.set(n,r=nl(()=>o.delete(n))),el(tn,r)}}function wt(e,t,n,o,r,s){const i=Io.get(e);if(!i)return;let l=[];if(t==="clear")l=[...i.values()];else if(n==="length"&&oe(e)){const a=Number(o);i.forEach((c,f)=>{(f==="length"||!zt(f)&&f>=a)&&l.push(c)})}else switch(n!==void 0&&l.push(i.get(n)),t){case"add":oe(e)?Gr(n)&&l.push(i.get("length")):(l.push(i.get(nn)),gn(e)&&l.push(i.get(Ar)));break;case"delete":oe(e)||(l.push(i.get(nn)),gn(e)&&l.push(i.get(Ar)));break;case"set":gn(e)&&l.push(i.get(nn));break}Jr();for(const a of l)a&&tl(a,4);Yr()}function sc(e,t){const n=Io.get(e);return n&&n.get(t)}const ic=Ur("__proto__,__v_isRef,__isVue"),ol=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(zt)),Is=lc();function lc(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const o=pe(this);for(let s=0,i=this.length;s{e[t]=function(...n){Wt(),Jr();const o=pe(this)[t].apply(this,n);return Yr(),Kt(),o}}),e}function ac(e){zt(e)||(e=String(e));const t=pe(this);return Ye(t,"has",e),t.hasOwnProperty(e)}class rl{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){const r=this._isReadonly,s=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return s;if(n==="__v_raw")return o===(r?s?wc:al:s?ll:il).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const i=oe(t);if(!r){if(i&&de(Is,n))return Reflect.get(Is,n,o);if(n==="hasOwnProperty")return ac}const l=Reflect.get(t,n,o);return(zt(n)?ol.has(n):ic(n))||(r||Ye(t,"get",n),s)?l:je(l)?i&&Gr(n)?l:l.value:ye(l)?r?ro(l):oo(l):l}}class sl extends rl{constructor(t=!1){super(!1,t)}set(t,n,o,r){let s=t[n];if(!this._isShallow){const a=ln(s);if(!Ln(o)&&!ln(o)&&(s=pe(s),o=pe(o)),!oe(t)&&je(s)&&!je(o))return a?!1:(s.value=o,!0)}const i=oe(t)&&Gr(n)?Number(n)e,Go=e=>Reflect.getPrototypeOf(e);function mo(e,t,n=!1,o=!1){e=e.__v_raw;const r=pe(e),s=pe(t);n||(Vt(t,s)&&Ye(r,"get",t),Ye(r,"get",s));const{has:i}=Go(r),l=o?Qr:n?es:Un;if(i.call(r,t))return l(e.get(t));if(i.call(r,s))return l(e.get(s));e!==r&&e.get(t)}function go(e,t=!1){const n=this.__v_raw,o=pe(n),r=pe(e);return t||(Vt(e,r)&&Ye(o,"has",e),Ye(o,"has",r)),e===r?n.has(e):n.has(e)||n.has(r)}function vo(e,t=!1){return e=e.__v_raw,!t&&Ye(pe(e),"iterate",nn),Reflect.get(e,"size",e)}function Ms(e,t=!1){!t&&!Ln(e)&&!ln(e)&&(e=pe(e));const n=pe(this);return Go(n).has.call(n,e)||(n.add(e),wt(n,"add",e,e)),this}function $s(e,t,n=!1){!n&&!Ln(t)&&!ln(t)&&(t=pe(t));const o=pe(this),{has:r,get:s}=Go(o);let i=r.call(o,e);i||(e=pe(e),i=r.call(o,e));const l=s.call(o,e);return o.set(e,t),i?Vt(t,l)&&wt(o,"set",e,t):wt(o,"add",e,t),this}function Hs(e){const t=pe(this),{has:n,get:o}=Go(t);let r=n.call(t,e);r||(e=pe(e),r=n.call(t,e)),o&&o.call(t,e);const s=t.delete(e);return r&&wt(t,"delete",e,void 0),s}function Ns(){const e=pe(this),t=e.size!==0,n=e.clear();return t&&wt(e,"clear",void 0,void 0),n}function _o(e,t){return function(o,r){const s=this,i=s.__v_raw,l=pe(i),a=t?Qr:e?es:Un;return!e&&Ye(l,"iterate",nn),i.forEach((c,f)=>o.call(r,a(c),a(f),s))}}function bo(e,t,n){return function(...o){const r=this.__v_raw,s=pe(r),i=gn(s),l=e==="entries"||e===Symbol.iterator&&i,a=e==="keys"&&i,c=r[e](...o),f=n?Qr:t?es:Un;return!t&&Ye(s,"iterate",a?Ar:nn),{next(){const{value:u,done:h}=c.next();return h?{value:u,done:h}:{value:l?[f(u[0]),f(u[1])]:f(u),done:h}},[Symbol.iterator](){return this}}}}function Pt(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function hc(){const e={get(s){return mo(this,s)},get size(){return vo(this)},has:go,add:Ms,set:$s,delete:Hs,clear:Ns,forEach:_o(!1,!1)},t={get(s){return mo(this,s,!1,!0)},get size(){return vo(this)},has:go,add(s){return Ms.call(this,s,!0)},set(s,i){return $s.call(this,s,i,!0)},delete:Hs,clear:Ns,forEach:_o(!1,!0)},n={get(s){return mo(this,s,!0)},get size(){return vo(this,!0)},has(s){return go.call(this,s,!0)},add:Pt("add"),set:Pt("set"),delete:Pt("delete"),clear:Pt("clear"),forEach:_o(!0,!1)},o={get(s){return mo(this,s,!0,!0)},get size(){return vo(this,!0)},has(s){return go.call(this,s,!0)},add:Pt("add"),set:Pt("set"),delete:Pt("delete"),clear:Pt("clear"),forEach:_o(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(s=>{e[s]=bo(s,!1,!1),n[s]=bo(s,!0,!1),t[s]=bo(s,!1,!0),o[s]=bo(s,!0,!0)}),[e,n,t,o]}const[pc,mc,gc,vc]=hc();function Xr(e,t){const n=t?e?vc:gc:e?mc:pc;return(o,r,s)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?o:Reflect.get(de(n,r)&&r in o?n:o,r,s)}const _c={get:Xr(!1,!1)},bc={get:Xr(!1,!0)},yc={get:Xr(!0,!1)};const il=new WeakMap,ll=new WeakMap,al=new WeakMap,wc=new WeakMap;function Ec(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Sc(e){return e.__v_skip||!Object.isExtensible(e)?0:Ec(Ua(e))}function oo(e){return ln(e)?e:Zr(e,!1,uc,_c,il)}function cl(e){return Zr(e,!1,dc,bc,ll)}function ro(e){return Zr(e,!0,fc,yc,al)}function Zr(e,t,n,o,r){if(!ye(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const s=r.get(e);if(s)return s;const i=Sc(e);if(i===0)return e;const l=new Proxy(e,i===2?o:n);return r.set(e,l),l}function _n(e){return ln(e)?_n(e.__v_raw):!!(e&&e.__v_isReactive)}function ln(e){return!!(e&&e.__v_isReadonly)}function Ln(e){return!!(e&&e.__v_isShallow)}function ul(e){return e?!!e.__v_raw:!1}function pe(e){const t=e&&e.__v_raw;return t?pe(t):e}function Lc(e){return Object.isExtensible(e)&&Ki(e,"__v_skip",!0),e}const Un=e=>ye(e)?oo(e):e,es=e=>ye(e)?ro(e):e;class fl{constructor(t,n,o,r){this.getter=t,this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new qr(()=>t(this._value),()=>Dn(this,this.effect._dirtyLevel===2?2:3)),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=o}get value(){const t=pe(this);return(!t._cacheable||t.effect.dirty)&&Vt(t._value,t._value=t.effect.run())&&Dn(t,4),ts(t),t.effect._dirtyLevel>=2&&Dn(t,2),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function Cc(e,t,n=!1){let o,r;const s=se(e);return s?(o=e,r=st):(o=e.get,r=e.set),new fl(o,r,s||!r,n)}function ts(e){var t;Ht&&tn&&(e=pe(e),el(tn,(t=e.dep)!=null?t:e.dep=nl(()=>e.dep=void 0,e instanceof fl?e:void 0)))}function Dn(e,t=4,n,o){e=pe(e);const r=e.dep;r&&tl(r,t)}function je(e){return!!(e&&e.__v_isRef===!0)}function ie(e){return dl(e,!1)}function jt(e){return dl(e,!0)}function dl(e,t){return je(e)?e:new kc(e,t)}class kc{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:pe(t),this._value=n?t:Un(t)}get value(){return ts(this),this._value}set value(t){const n=this.__v_isShallow||Ln(t)||ln(t);t=n?t:pe(t),Vt(t,this._rawValue)&&(this._rawValue,this._rawValue=t,this._value=n?t:Un(t),Dn(this,4))}}function on(e){return je(e)?e.value:e}const xc={get:(e,t,n)=>on(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const r=e[t];return je(r)&&!je(n)?(r.value=n,!0):Reflect.set(e,t,n,o)}};function hl(e){return _n(e)?e:new Proxy(e,xc)}class Pc{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:o}=t(()=>ts(this),()=>Dn(this));this._get=n,this._set=o}get value(){return this._get()}set value(t){this._set(t)}}function pl(e){return new Pc(e)}function ml(e){const t=oe(e)?new Array(e.length):{};for(const n in e)t[n]=vl(e,n);return t}class Tc{constructor(t,n,o){this._object=t,this._key=n,this._defaultValue=o,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}get dep(){return sc(pe(this._object),this._key)}}class Ac{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function gl(e,t,n){return je(e)?e:se(e)?new Ac(e):ye(e)&&arguments.length>1?vl(e,t,n):ie(e)}function vl(e,t,n){const o=e[t];return je(o)?o:new Tc(e,t,n)}/** * @vue/runtime-core v3.4.38 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/function Nt(e,t,n,o){try{return o?e(...o):e()}catch(r){so(r,t,n)}}function it(e,t,n,o){if(se(e)){const r=Nt(e,t,n,o);return r&&zi(r)&&r.catch(s=>{so(s,t,n)}),r}if(oe(e)){const r=[];for(let s=0;s>>1,r=Fe[o],s=Kn(r);smt&&Fe.splice(t,1)}function $c(e){oe(e)?bn.push(...e):(!Ot||!Ot.includes(e,e.allowRecurse?Zt+1:Zt))&&bn.push(e),bl()}function Ds(e,t,n=Wn?mt+1:0){for(;nKn(n)-Kn(o));if(bn.length=0,Ot){Ot.push(...t);return}for(Ot=t,Zt=0;Zte.id==null?1/0:e.id,Hc=(e,t)=>{const n=Kn(e)-Kn(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function yl(e){Or=!1,Wn=!0,Fe.sort(Hc);try{for(mt=0;mt{o._d&&Js(-1);const s=$o(t);let i;try{i=e(...r)}finally{$o(s),o._d&&Js(1)}return i};return o._n=!0,o._c=!0,o._d=!0,o}function Ho(e,t){if($e===null)return e;const n=Xo($e),o=e.dirs||(e.dirs=[]);for(let r=0;r{e.isMounted=!0}),ss(()=>{e.isUnmounting=!0}),e}const nt=[Function,Array],wl={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:nt,onEnter:nt,onAfterEnter:nt,onEnterCancelled:nt,onBeforeLeave:nt,onLeave:nt,onAfterLeave:nt,onLeaveCancelled:nt,onBeforeAppear:nt,onAppear:nt,onAfterAppear:nt,onAppearCancelled:nt},El=e=>{const t=e.subTree;return t.component?El(t.component):t},Dc={name:"BaseTransition",props:wl,setup(e,{slots:t}){const n=lo(),o=Nc();return()=>{const r=t.default&&Ll(t.default(),!0);if(!r||!r.length)return;let s=r[0];if(r.length>1){for(const h of r)if(h.type!==Ue){s=h;break}}const i=pe(e),{mode:l}=i;if(o.isLeaving)return cr(s);const a=Vs(s);if(!a)return cr(s);let c=Rr(a,i,o,n,h=>c=h);No(a,c);const f=n.subTree,u=f&&Vs(f);if(u&&u.type!==Ue&&!en(a,u)&&El(n).type!==Ue){const h=Rr(u,i,o,n);if(No(u,h),l==="out-in"&&a.type!==Ue)return o.isLeaving=!0,h.afterLeave=()=>{o.isLeaving=!1,n.update.active!==!1&&(n.effect.dirty=!0,n.update())},cr(s);l==="in-out"&&a.type!==Ue&&(h.delayLeave=(p,v,S)=>{const b=Sl(o,u);b[String(u.key)]=u,p[Rt]=()=>{v(),p[Rt]=void 0,delete c.delayedLeave},c.delayedLeave=S})}return s}}},Vc=Dc;function Sl(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function Rr(e,t,n,o,r){const{appear:s,mode:i,persisted:l=!1,onBeforeEnter:a,onEnter:c,onAfterEnter:f,onEnterCancelled:u,onBeforeLeave:h,onLeave:p,onAfterLeave:v,onLeaveCancelled:S,onBeforeAppear:b,onAppear:T,onAfterAppear:y,onAppearCancelled:g}=t,C=String(e.key),D=Sl(n,e),N=(U,x)=>{U&&it(U,o,9,x)},$=(U,x)=>{const B=x[1];N(U,x),oe(U)?U.every(E=>E.length<=1)&&B():U.length<=1&&B()},w={mode:i,persisted:l,beforeEnter(U){let x=a;if(!n.isMounted)if(s)x=b||a;else return;U[Rt]&&U[Rt](!0);const B=D[C];B&&en(e,B)&&B.el[Rt]&&B.el[Rt](),N(x,[U])},enter(U){let x=c,B=f,E=u;if(!n.isMounted)if(s)x=T||c,B=y||f,E=g||u;else return;let H=!1;const te=U[yo]=re=>{H||(H=!0,re?N(E,[U]):N(B,[U]),w.delayedLeave&&w.delayedLeave(),U[yo]=void 0)};x?$(x,[U,te]):te()},leave(U,x){const B=String(e.key);if(U[yo]&&U[yo](!0),n.isUnmounting)return x();N(h,[U]);let E=!1;const H=U[Rt]=te=>{E||(E=!0,x(),te?N(S,[U]):N(v,[U]),U[Rt]=void 0,D[B]===e&&delete D[B])};D[B]=e,p?$(p,[U,H]):H()},clone(U){const x=Rr(U,t,n,o,r);return r&&r(x),x}};return w}function cr(e){if(io(e))return e=Ft(e),e.children=null,e}function Vs(e){if(!io(e))return e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&se(n.default))return n.default()}}function No(e,t){e.shapeFlag&6&&e.component?No(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 Ll(e,t=!1,n){let o=[],r=0;for(let s=0;s1)for(let s=0;s!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function Cl(e){se(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:o,delay:r=200,timeout:s,suspensible:i=!0,onError:l}=e;let a=null,c,f=0;const u=()=>(f++,a=null,h()),h=()=>{let p;return a||(p=a=t().catch(v=>{if(v=v instanceof Error?v:new Error(String(v)),l)return new Promise((S,b)=>{l(v,()=>S(u()),()=>b(v),f+1)});throw v}).then(v=>p!==a&&a?a:(v&&(v.__esModule||v[Symbol.toStringTag]==="Module")&&(v=v.default),c=v,v)))};return he({name:"AsyncComponentWrapper",__asyncLoader:h,get __asyncResolved(){return c},setup(){const p=Me;if(c)return()=>ur(c,p);const v=y=>{a=null,so(y,p,13,!o)};if(i&&p.suspense||co)return h().then(y=>()=>ur(y,p)).catch(y=>(v(y),()=>o?Q(o,{error:y}):null));const S=ie(!1),b=ie(),T=ie(!!r);return r&&setTimeout(()=>{T.value=!1},r),s!=null&&setTimeout(()=>{if(!S.value&&!b.value){const y=new Error(`Async component timed out after ${s}ms.`);v(y),b.value=y}},s),h().then(()=>{S.value=!0,p.parent&&io(p.parent.vnode)&&(p.parent.effect.dirty=!0,qo(p.parent.update))}).catch(y=>{v(y),b.value=y}),()=>{if(S.value&&c)return ur(c,p);if(b.value&&o)return Q(o,{error:b.value});if(n&&!T.value)return Q(n)}}})}function ur(e,t){const{ref:n,props:o,children:r,ce:s}=t.vnode,i=Q(e,o,r);return i.ref=n,i.ce=s,delete t.vnode.ce,i}const io=e=>e.type.__isKeepAlive;function jc(e,t){kl(e,"a",t)}function Bc(e,t){kl(e,"da",t)}function kl(e,t,n=Me){const o=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(Yo(t,o,n),n){let r=n.parent;for(;r&&r.parent;)io(r.parent.vnode)&&Fc(o,t,n,r),r=r.parent}}function Fc(e,t,n,o){const r=Yo(t,e,o,!0);Pn(()=>{Kr(o[t],r)},n)}function Yo(e,t,n=Me,o=!1){if(n){const r=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...i)=>{Wt();const l=ao(n),a=it(t,n,e,i);return l(),Kt(),a});return o?r.unshift(s):r.push(s),s}}const Et=e=>(t,n=Me)=>{(!co||e==="sp")&&Yo(e,(...o)=>t(...o),n)},zc=Et("bm"),Re=Et("m"),Uc=Et("bu"),Wc=Et("u"),ss=Et("bum"),Pn=Et("um"),Kc=Et("sp"),Gc=Et("rtg"),qc=Et("rtc");function Jc(e,t=Me){Yo("ec",e,t)}const xl="components";function Gn(e,t){return Qc(xl,e,!0,t)||e}const Yc=Symbol.for("v-ndc");function Qc(e,t,n=!0,o=!1){const r=$e||Me;if(r){const s=r.type;if(e===xl){const l=zu(s,!1);if(l&&(l===t||l===tt(t)||l===to(tt(t))))return s}const i=js(r[e]||s[e],t)||js(r.appContext[e],t);return!i&&o?s:i}}function js(e,t){return e&&(e[t]||e[tt(t)]||e[to(tt(t))])}function Bt(e,t,n,o){let r;const s=n;if(oe(e)||Te(e)){r=new Array(e.length);for(let i=0,l=e.length;it(i,l,void 0,s));else{const i=Object.keys(e);r=new Array(i.length);for(let l=0,a=i.length;ljo(t)?!(t.type===Ue||t.type===be&&!Pl(t.children)):!0)?e:null}const Ir=e=>e?ql(e)?Xo(e):Ir(e.parent):null,Vn=Ne(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=>Ir(e.parent),$root:e=>Ir(e.root),$emit:e=>e.emit,$options:e=>is(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,qo(e.update)}),$nextTick:e=>e.n||(e.n=an.bind(e.proxy)),$watch:e=>Su.bind(e)}),fr=(e,t)=>e!==Le&&!e.__isScriptSetup&&de(e,t),Xc={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:r,props:s,accessCache:i,type:l,appContext:a}=e;let c;if(t[0]!=="$"){const p=i[t];if(p!==void 0)switch(p){case 1:return o[t];case 2:return r[t];case 4:return n[t];case 3:return s[t]}else{if(fr(o,t))return i[t]=1,o[t];if(r!==Le&&de(r,t))return i[t]=2,r[t];if((c=e.propsOptions[0])&&de(c,t))return i[t]=3,s[t];if(n!==Le&&de(n,t))return i[t]=4,n[t];Mr&&(i[t]=0)}}const f=Vn[t];let u,h;if(f)return t==="$attrs"&&Ye(e.attrs,"get",""),f(e);if((u=l.__cssModules)&&(u=u[t]))return u;if(n!==Le&&de(n,t))return i[t]=4,n[t];if(h=a.config.globalProperties,de(h,t))return h[t]},set({_:e},t,n){const{data:o,setupState:r,ctx:s}=e;return fr(r,t)?(r[t]=n,!0):o!==Le&&de(o,t)?(o[t]=n,!0):de(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:r,propsOptions:s}},i){let l;return!!n[i]||e!==Le&&de(e,i)||fr(t,i)||(l=s[0])&&de(l,i)||de(o,i)||de(Vn,i)||de(r.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:de(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Bs(e){return oe(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Mr=!0;function Zc(e){const t=is(e),n=e.proxy,o=e.ctx;Mr=!1,t.beforeCreate&&Fs(t.beforeCreate,e,"bc");const{data:r,computed:s,methods:i,watch:l,provide:a,inject:c,created:f,beforeMount:u,mounted:h,beforeUpdate:p,updated:v,activated:S,deactivated:b,beforeDestroy:T,beforeUnmount:y,destroyed:g,unmounted:C,render:D,renderTracked:N,renderTriggered:$,errorCaptured:w,serverPrefetch:U,expose:x,inheritAttrs:B,components:E,directives:H,filters:te}=t;if(c&&eu(c,o,null),i)for(const X in i){const J=i[X];se(J)&&(o[X]=J.bind(n))}if(r){const X=r.call(n,n);ye(X)&&(e.data=oo(X))}if(Mr=!0,s)for(const X in s){const J=s[X],_e=se(J)?J.bind(n,n):se(J.get)?J.get.bind(n,n):st,De=!se(J)&&se(J.set)?J.set.bind(n):st,We=I({get:_e,set:De});Object.defineProperty(o,X,{enumerable:!0,configurable:!0,get:()=>We.value,set:Be=>We.value=Be})}if(l)for(const X in l)Tl(l[X],o,n,X);if(a){const X=se(a)?a.call(n):a;Reflect.ownKeys(X).forEach(J=>{Dt(J,X[J])})}f&&Fs(f,e,"c");function M(X,J){oe(J)?J.forEach(_e=>X(_e.bind(n))):J&&X(J.bind(n))}if(M(zc,u),M(Re,h),M(Uc,p),M(Wc,v),M(jc,S),M(Bc,b),M(Jc,w),M(qc,N),M(Gc,$),M(ss,y),M(Pn,C),M(Kc,U),oe(x))if(x.length){const X=e.exposed||(e.exposed={});x.forEach(J=>{Object.defineProperty(X,J,{get:()=>n[J],set:_e=>n[J]=_e})})}else e.exposed||(e.exposed={});D&&e.render===st&&(e.render=D),B!=null&&(e.inheritAttrs=B),E&&(e.components=E),H&&(e.directives=H)}function eu(e,t,n=st){oe(e)&&(e=$r(e));for(const o in e){const r=e[o];let s;ye(r)?"default"in r?s=He(r.from||o,r.default,!0):s=He(r.from||o):s=He(r),je(s)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>s.value,set:i=>s.value=i}):t[o]=s}}function Fs(e,t,n){it(oe(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function Tl(e,t,n,o){const r=o.includes(".")?zl(n,o):()=>n[o];if(Te(e)){const s=t[e];se(s)&&Ce(r,s)}else if(se(e))Ce(r,e.bind(n));else if(ye(e))if(oe(e))e.forEach(s=>Tl(s,t,n,o));else{const s=se(e.handler)?e.handler.bind(n):t[e.handler];se(s)&&Ce(r,s,e)}}function is(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:r,optionsCache:s,config:{optionMergeStrategies:i}}=e.appContext,l=s.get(t);let a;return l?a=l:!r.length&&!n&&!o?a=t:(a={},r.length&&r.forEach(c=>Do(a,c,i,!0)),Do(a,t,i)),ye(t)&&s.set(t,a),a}function Do(e,t,n,o=!1){const{mixins:r,extends:s}=t;s&&Do(e,s,n,!0),r&&r.forEach(i=>Do(e,i,n,!0));for(const i in t)if(!(o&&i==="expose")){const l=tu[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const tu={data:zs,props:Us,emits:Us,methods:Hn,computed:Hn,beforeCreate:ze,created:ze,beforeMount:ze,mounted:ze,beforeUpdate:ze,updated:ze,beforeDestroy:ze,beforeUnmount:ze,destroyed:ze,unmounted:ze,activated:ze,deactivated:ze,errorCaptured:ze,serverPrefetch:ze,components:Hn,directives:Hn,watch:ou,provide:zs,inject:nu};function zs(e,t){return t?e?function(){return Ne(se(e)?e.call(this,this):e,se(t)?t.call(this,this):t)}:t:e}function nu(e,t){return Hn($r(e),$r(t))}function $r(e){if(oe(e)){const t={};for(let n=0;n1)return n&&se(t)?t.call(o&&o.proxy):t}}const Ol={},Rl=()=>Object.create(Ol),Il=e=>Object.getPrototypeOf(e)===Ol;function iu(e,t,n,o=!1){const r={},s=Rl();e.propsDefaults=Object.create(null),Ml(e,t,r,s);for(const i in e.propsOptions[0])i in r||(r[i]=void 0);n?e.props=o?r:cl(r):e.type.props?e.props=r:e.props=s,e.attrs=s}function lu(e,t,n,o){const{props:r,attrs:s,vnode:{patchFlag:i}}=e,l=pe(r),[a]=e.propsOptions;let c=!1;if((o||i>0)&&!(i&16)){if(i&8){const f=e.vnode.dynamicProps;for(let u=0;u{a=!0;const[h,p]=$l(u,t,!0);Ne(i,h),p&&l.push(...p)};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!s&&!a)return ye(e)&&o.set(e,mn),mn;if(oe(s))for(let f=0;fe[0]==="_"||e==="$stable",ls=e=>oe(e)?e.map(rt):[rt(e)],cu=(e,t,n)=>{if(t._n)return t;const o=Se((...r)=>ls(t(...r)),n);return o._c=!1,o},Nl=(e,t,n)=>{const o=e._ctx;for(const r in e){if(Hl(r))continue;const s=e[r];if(se(s))t[r]=cu(r,s,o);else if(s!=null){const i=ls(s);t[r]=()=>i}}},Dl=(e,t)=>{const n=ls(t);e.slots.default=()=>n},Vl=(e,t,n)=>{for(const o in t)(n||o!=="_")&&(e[o]=t[o])},uu=(e,t,n)=>{const o=e.slots=Rl();if(e.vnode.shapeFlag&32){const r=t._;r?(Vl(o,t,n),n&&Ki(o,"_",r,!0)):Nl(t,o)}else t&&Dl(e,t)},fu=(e,t,n)=>{const{vnode:o,slots:r}=e;let s=!0,i=Le;if(o.shapeFlag&32){const l=t._;l?n&&l===1?s=!1:Vl(r,t,n):(s=!t.$stable,Nl(t,r)),i=t}else t&&(Dl(e,t),i={default:1});if(s)for(const l in r)!Hl(l)&&i[l]==null&&delete r[l]};function Vo(e,t,n,o,r=!1){if(oe(e)){e.forEach((h,p)=>Vo(h,t&&(oe(t)?t[p]:t),n,o,r));return}if(yn(o)&&!r)return;const s=o.shapeFlag&4?Xo(o.component):o.el,i=r?null:s,{i:l,r:a}=e,c=t&&t.r,f=l.refs===Le?l.refs={}:l.refs,u=l.setupState;if(c!=null&&c!==a&&(Te(c)?(f[c]=null,de(u,c)&&(u[c]=null)):je(c)&&(c.value=null)),se(a))Nt(a,l,12,[i,f]);else{const h=Te(a),p=je(a);if(h||p){const v=()=>{if(e.f){const S=h?de(u,a)?u[a]:f[a]:a.value;r?oe(S)&&Kr(S,s):oe(S)?S.includes(s)||S.push(s):h?(f[a]=[s],de(u,a)&&(u[a]=f[a])):(a.value=[s],e.k&&(f[e.k]=a.value))}else h?(f[a]=i,de(u,a)&&(u[a]=i)):p&&(a.value=i,e.k&&(f[e.k]=i))};i?(v.id=-1,Ge(v,n)):v()}}}const du=Symbol("_vte"),hu=e=>e.__isTeleport;let Ks=!1;const dn=()=>{Ks||(console.error("Hydration completed but contains mismatches."),Ks=!0)},pu=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",mu=e=>e.namespaceURI.includes("MathML"),wo=e=>{if(pu(e))return"svg";if(mu(e))return"mathml"},Eo=e=>e.nodeType===8;function gu(e){const{mt:t,p:n,o:{patchProp:o,createText:r,nextSibling:s,parentNode:i,remove:l,insert:a,createComment:c}}=e,f=(g,C)=>{if(!C.hasChildNodes()){n(null,g,C),Mo(),C._vnode=g;return}u(C.firstChild,g,null,null,null),Mo(),C._vnode=g},u=(g,C,D,N,$,w=!1)=>{w=w||!!C.dynamicChildren;const U=Eo(g)&&g.data==="[",x=()=>S(g,C,D,N,$,U),{type:B,ref:E,shapeFlag:H,patchFlag:te}=C;let re=g.nodeType;C.el=g,te===-2&&(w=!1,C.dynamicChildren=null);let M=null;switch(B){case rn:re!==3?C.children===""?(a(C.el=r(""),i(g),g),M=g):M=x():(g.data!==C.children&&(dn(),g.data=C.children),M=s(g));break;case Ue:y(g)?(M=s(g),T(C.el=g.content.firstChild,g,D)):re!==8||U?M=x():M=s(g);break;case jn:if(U&&(g=s(g),re=g.nodeType),re===1||re===3){M=g;const X=!C.children.length;for(let J=0;J{w=w||!!C.dynamicChildren;const{type:U,props:x,patchFlag:B,shapeFlag:E,dirs:H,transition:te}=C,re=U==="input"||U==="option";if(re||B!==-1){H&&pt(C,null,D,"created");let M=!1;if(y(g)){M=jl(N,te)&&D&&D.vnode.props&&D.vnode.props.appear;const J=g.content.firstChild;M&&te.beforeEnter(J),T(J,g,D),C.el=g=J}if(E&16&&!(x&&(x.innerHTML||x.textContent))){let J=p(g.firstChild,C,g,D,N,$,w);for(;J;){dn();const _e=J;J=J.nextSibling,l(_e)}}else E&8&&g.textContent!==C.children&&(dn(),g.textContent=C.children);if(x){if(re||!w||B&48){const J=g.tagName.includes("-");for(const _e in x)(re&&(_e.endsWith("value")||_e==="indeterminate")||eo(_e)&&!vn(_e)||_e[0]==="."||J)&&o(g,_e,null,x[_e],void 0,D)}else if(x.onClick)o(g,"onClick",null,x.onClick,void 0,D);else if(B&4&&_n(x.style))for(const J in x.style)x.style[J]}let X;(X=x&&x.onVnodeBeforeMount)&&ot(X,D,C),H&&pt(C,null,D,"beforeMount"),((X=x&&x.onVnodeMounted)||H||M)&&Wl(()=>{X&&ot(X,D,C),M&&te.enter(g),H&&pt(C,null,D,"mounted")},N)}return g.nextSibling},p=(g,C,D,N,$,w,U)=>{U=U||!!C.dynamicChildren;const x=C.children,B=x.length;for(let E=0;E{const{slotScopeIds:U}=C;U&&($=$?$.concat(U):U);const x=i(g),B=p(s(g),C,x,D,N,$,w);return B&&Eo(B)&&B.data==="]"?s(C.anchor=B):(dn(),a(C.anchor=c("]"),x,B),B)},S=(g,C,D,N,$,w)=>{if(dn(),C.el=null,w){const B=b(g);for(;;){const E=s(g);if(E&&E!==B)l(E);else break}}const U=s(g),x=i(g);return l(g),n(null,C,x,U,D,N,wo(x),$),U},b=(g,C="[",D="]")=>{let N=0;for(;g;)if(g=s(g),g&&Eo(g)&&(g.data===C&&N++,g.data===D)){if(N===0)return s(g);N--}return g},T=(g,C,D)=>{const N=C.parentNode;N&&N.replaceChild(g,C);let $=D;for(;$;)$.vnode.el===C&&($.vnode.el=$.subTree.el=g),$=$.parent},y=g=>g.nodeType===1&&g.tagName.toLowerCase()==="template";return[f,u]}const Ge=Wl;function vu(e){return _u(e,gu)}function _u(e,t){const n=Gi();n.__VUE__=!0;const{insert:o,remove:r,patchProp:s,createElement:i,createText:l,createComment:a,setText:c,setElementText:f,parentNode:u,nextSibling:h,setScopeId:p=st,insertStaticContent:v}=e,S=(d,m,_,A=null,k=null,R=null,z=void 0,V=null,j=!!m.dynamicChildren)=>{if(d===m)return;d&&!en(d,m)&&(A=P(d),Be(d,k,R,!0),d=null),m.patchFlag===-2&&(j=!1,m.dynamicChildren=null);const{type:O,ref:q,shapeFlag:ee}=m;switch(O){case rn:b(d,m,_,A);break;case Ue:T(d,m,_,A);break;case jn:d==null&&y(m,_,A,z);break;case be:E(d,m,_,A,k,R,z,V,j);break;default:ee&1?D(d,m,_,A,k,R,z,V,j):ee&6?H(d,m,_,A,k,R,z,V,j):(ee&64||ee&128)&&O.process(d,m,_,A,k,R,z,V,j,Y)}q!=null&&k&&Vo(q,d&&d.ref,R,m||d,!m)},b=(d,m,_,A)=>{if(d==null)o(m.el=l(m.children),_,A);else{const k=m.el=d.el;m.children!==d.children&&c(k,m.children)}},T=(d,m,_,A)=>{d==null?o(m.el=a(m.children||""),_,A):m.el=d.el},y=(d,m,_,A)=>{[d.el,d.anchor]=v(d.children,m,_,A,d.el,d.anchor)},g=({el:d,anchor:m},_,A)=>{let k;for(;d&&d!==m;)k=h(d),o(d,_,A),d=k;o(m,_,A)},C=({el:d,anchor:m})=>{let _;for(;d&&d!==m;)_=h(d),r(d),d=_;r(m)},D=(d,m,_,A,k,R,z,V,j)=>{m.type==="svg"?z="svg":m.type==="math"&&(z="mathml"),d==null?N(m,_,A,k,R,z,V,j):U(d,m,k,R,z,V,j)},N=(d,m,_,A,k,R,z,V)=>{let j,O;const{props:q,shapeFlag:ee,transition:Z,dirs:le}=d;if(j=d.el=i(d.type,R,q&&q.is,q),ee&8?f(j,d.children):ee&16&&w(d.children,j,null,A,k,dr(d,R),z,V),le&&pt(d,null,A,"created"),$(j,d,d.scopeId,z,A),q){for(const Ee in q)Ee!=="value"&&!vn(Ee)&&s(j,Ee,null,q[Ee],R,A);"value"in q&&s(j,"value",null,q.value,R),(O=q.onVnodeBeforeMount)&&ot(O,A,d)}le&&pt(d,null,A,"beforeMount");const ae=jl(k,Z);ae&&Z.beforeEnter(j),o(j,m,_),((O=q&&q.onVnodeMounted)||ae||le)&&Ge(()=>{O&&ot(O,A,d),ae&&Z.enter(j),le&&pt(d,null,A,"mounted")},k)},$=(d,m,_,A,k)=>{if(_&&p(d,_),A)for(let R=0;R{for(let O=j;O{const V=m.el=d.el;let{patchFlag:j,dynamicChildren:O,dirs:q}=m;j|=d.patchFlag&16;const ee=d.props||Le,Z=m.props||Le;let le;if(_&&qt(_,!1),(le=Z.onVnodeBeforeUpdate)&&ot(le,_,m,d),q&&pt(m,d,_,"beforeUpdate"),_&&qt(_,!0),(ee.innerHTML&&Z.innerHTML==null||ee.textContent&&Z.textContent==null)&&f(V,""),O?x(d.dynamicChildren,O,V,_,A,dr(m,k),R):z||J(d,m,V,null,_,A,dr(m,k),R,!1),j>0){if(j&16)B(V,ee,Z,_,k);else if(j&2&&ee.class!==Z.class&&s(V,"class",null,Z.class,k),j&4&&s(V,"style",ee.style,Z.style,k),j&8){const ae=m.dynamicProps;for(let Ee=0;Ee{le&&ot(le,_,m,d),q&&pt(m,d,_,"updated")},A)},x=(d,m,_,A,k,R,z)=>{for(let V=0;V{if(m!==_){if(m!==Le)for(const R in m)!vn(R)&&!(R in _)&&s(d,R,m[R],null,k,A);for(const R in _){if(vn(R))continue;const z=_[R],V=m[R];z!==V&&R!=="value"&&s(d,R,V,z,k,A)}"value"in _&&s(d,"value",m.value,_.value,k)}},E=(d,m,_,A,k,R,z,V,j)=>{const O=m.el=d?d.el:l(""),q=m.anchor=d?d.anchor:l("");let{patchFlag:ee,dynamicChildren:Z,slotScopeIds:le}=m;le&&(V=V?V.concat(le):le),d==null?(o(O,_,A),o(q,_,A),w(m.children||[],_,q,k,R,z,V,j)):ee>0&&ee&64&&Z&&d.dynamicChildren?(x(d.dynamicChildren,Z,_,k,R,z,V),(m.key!=null||k&&m===k.subTree)&&Bl(d,m,!0)):J(d,m,_,q,k,R,z,V,j)},H=(d,m,_,A,k,R,z,V,j)=>{m.slotScopeIds=V,d==null?m.shapeFlag&512?k.ctx.activate(m,_,A,z,j):te(m,_,A,k,R,z,j):re(d,m,j)},te=(d,m,_,A,k,R,z)=>{const V=d.component=Du(d,A,k);if(io(d)&&(V.ctx.renderer=Y),Vu(V,!1,z),V.asyncDep){if(k&&k.registerDep(V,M,z),!d.el){const j=V.subTree=Q(Ue);T(null,j,m,_)}}else M(V,d,m,_,k,R,z)},re=(d,m,_)=>{const A=m.component=d.component;if(Pu(d,m,_))if(A.asyncDep&&!A.asyncResolved){X(A,m,_);return}else A.next=m,Mc(A.update),A.effect.dirty=!0,A.update();else m.el=d.el,A.vnode=m},M=(d,m,_,A,k,R,z)=>{const V=()=>{if(d.isMounted){let{next:q,bu:ee,u:Z,parent:le,vnode:ae}=d;{const fn=Fl(d);if(fn){q&&(q.el=ae.el,X(d,q,z)),fn.asyncDep.then(()=>{d.isUnmounted||V()});return}}let Ee=q,me;qt(d,!1),q?(q.el=ae.el,X(d,q,z)):q=ae,ee&&lr(ee),(me=q.props&&q.props.onVnodeBeforeUpdate)&&ot(me,le,q,ae),qt(d,!0);const Ie=hr(d),at=d.subTree;d.subTree=Ie,S(at,Ie,u(at.el),P(at),d,k,R),q.el=Ie.el,Ee===null&&Tu(d,Ie.el),Z&&Ge(Z,k),(me=q.props&&q.props.onVnodeUpdated)&&Ge(()=>ot(me,le,q,ae),k)}else{let q;const{el:ee,props:Z}=m,{bm:le,m:ae,parent:Ee}=d,me=yn(m);if(qt(d,!1),le&&lr(le),!me&&(q=Z&&Z.onVnodeBeforeMount)&&ot(q,Ee,m),qt(d,!0),ee&&ve){const Ie=()=>{d.subTree=hr(d),ve(ee,d.subTree,d,k,null)};me?m.type.__asyncLoader().then(()=>!d.isUnmounted&&Ie()):Ie()}else{const Ie=d.subTree=hr(d);S(null,Ie,_,A,d,k,R),m.el=Ie.el}if(ae&&Ge(ae,k),!me&&(q=Z&&Z.onVnodeMounted)){const Ie=m;Ge(()=>ot(q,Ee,Ie),k)}(m.shapeFlag&256||Ee&&yn(Ee.vnode)&&Ee.vnode.shapeFlag&256)&&d.a&&Ge(d.a,k),d.isMounted=!0,m=_=A=null}},j=d.effect=new qr(V,st,()=>qo(O),d.scope),O=d.update=()=>{j.dirty&&j.run()};O.i=d,O.id=d.uid,qt(d,!0),O()},X=(d,m,_)=>{m.component=d;const A=d.vnode.props;d.vnode=m,d.next=null,lu(d,m.props,A,_),fu(d,m.children,_),Wt(),Ds(d),Kt()},J=(d,m,_,A,k,R,z,V,j=!1)=>{const O=d&&d.children,q=d?d.shapeFlag:0,ee=m.children,{patchFlag:Z,shapeFlag:le}=m;if(Z>0){if(Z&128){De(O,ee,_,A,k,R,z,V,j);return}else if(Z&256){_e(O,ee,_,A,k,R,z,V,j);return}}le&8?(q&16&&Ke(O,k,R),ee!==O&&f(_,ee)):q&16?le&16?De(O,ee,_,A,k,R,z,V,j):Ke(O,k,R,!0):(q&8&&f(_,""),le&16&&w(ee,_,A,k,R,z,V,j))},_e=(d,m,_,A,k,R,z,V,j)=>{d=d||mn,m=m||mn;const O=d.length,q=m.length,ee=Math.min(O,q);let Z;for(Z=0;Zq?Ke(d,k,R,!0,!1,ee):w(m,_,A,k,R,z,V,j,ee)},De=(d,m,_,A,k,R,z,V,j)=>{let O=0;const q=m.length;let ee=d.length-1,Z=q-1;for(;O<=ee&&O<=Z;){const le=d[O],ae=m[O]=j?It(m[O]):rt(m[O]);if(en(le,ae))S(le,ae,_,null,k,R,z,V,j);else break;O++}for(;O<=ee&&O<=Z;){const le=d[ee],ae=m[Z]=j?It(m[Z]):rt(m[Z]);if(en(le,ae))S(le,ae,_,null,k,R,z,V,j);else break;ee--,Z--}if(O>ee){if(O<=Z){const le=Z+1,ae=leZ)for(;O<=ee;)Be(d[O],k,R,!0),O++;else{const le=O,ae=O,Ee=new Map;for(O=ae;O<=Z;O++){const Qe=m[O]=j?It(m[O]):rt(m[O]);Qe.key!=null&&Ee.set(Qe.key,O)}let me,Ie=0;const at=Z-ae+1;let fn=!1,xs=0;const On=new Array(at);for(O=0;O=at){Be(Qe,k,R,!0);continue}let ht;if(Qe.key!=null)ht=Ee.get(Qe.key);else for(me=ae;me<=Z;me++)if(On[me-ae]===0&&en(Qe,m[me])){ht=me;break}ht===void 0?Be(Qe,k,R,!0):(On[ht-ae]=O+1,ht>=xs?xs=ht:fn=!0,S(Qe,m[ht],_,null,k,R,z,V,j),Ie++)}const Ps=fn?bu(On):mn;for(me=Ps.length-1,O=at-1;O>=0;O--){const Qe=ae+O,ht=m[Qe],Ts=Qe+1{const{el:R,type:z,transition:V,children:j,shapeFlag:O}=d;if(O&6){We(d.component.subTree,m,_,A);return}if(O&128){d.suspense.move(m,_,A);return}if(O&64){z.move(d,m,_,Y);return}if(z===be){o(R,m,_);for(let ee=0;eeV.enter(R),k);else{const{leave:ee,delayLeave:Z,afterLeave:le}=V,ae=()=>o(R,m,_),Ee=()=>{ee(R,()=>{ae(),le&&le()})};Z?Z(R,ae,Ee):Ee()}else o(R,m,_)},Be=(d,m,_,A=!1,k=!1)=>{const{type:R,props:z,ref:V,children:j,dynamicChildren:O,shapeFlag:q,patchFlag:ee,dirs:Z,cacheIndex:le}=d;if(ee===-2&&(k=!1),V!=null&&Vo(V,null,_,d,!0),le!=null&&(m.renderCache[le]=void 0),q&256){m.ctx.deactivate(d);return}const ae=q&1&&Z,Ee=!yn(d);let me;if(Ee&&(me=z&&z.onVnodeBeforeUnmount)&&ot(me,m,d),q&6)dt(d.component,_,A);else{if(q&128){d.suspense.unmount(_,A);return}ae&&pt(d,null,m,"beforeUnmount"),q&64?d.type.remove(d,m,_,Y,A):O&&!O.hasOnce&&(R!==be||ee>0&&ee&64)?Ke(O,m,_,!1,!0):(R===be&&ee&384||!k&&q&16)&&Ke(j,m,_),A&&kt(d)}(Ee&&(me=z&&z.onVnodeUnmounted)||ae)&&Ge(()=>{me&&ot(me,m,d),ae&&pt(d,null,m,"unmounted")},_)},kt=d=>{const{type:m,el:_,anchor:A,transition:k}=d;if(m===be){xt(_,A);return}if(m===jn){C(d);return}const R=()=>{r(_),k&&!k.persisted&&k.afterLeave&&k.afterLeave()};if(d.shapeFlag&1&&k&&!k.persisted){const{leave:z,delayLeave:V}=k,j=()=>z(_,R);V?V(d.el,R,j):j()}else R()},xt=(d,m)=>{let _;for(;d!==m;)_=h(d),r(d),d=_;r(m)},dt=(d,m,_)=>{const{bum:A,scope:k,update:R,subTree:z,um:V,m:j,a:O}=d;Gs(j),Gs(O),A&&lr(A),k.stop(),R&&(R.active=!1,Be(z,d,m,_)),V&&Ge(V,m),Ge(()=>{d.isUnmounted=!0},m),m&&m.pendingBranch&&!m.isUnmounted&&d.asyncDep&&!d.asyncResolved&&d.suspenseId===m.pendingId&&(m.deps--,m.deps===0&&m.resolve())},Ke=(d,m,_,A=!1,k=!1,R=0)=>{for(let z=R;z{if(d.shapeFlag&6)return P(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const m=h(d.anchor||d.el),_=m&&m[du];return _?h(_):m};let W=!1;const F=(d,m,_)=>{d==null?m._vnode&&Be(m._vnode,null,null,!0):S(m._vnode||null,d,m,null,null,null,_),m._vnode=d,W||(W=!0,Ds(),Mo(),W=!1)},Y={p:S,um:Be,m:We,r:kt,mt:te,mc:w,pc:J,pbc:x,n:P,o:e};let ue,ve;return t&&([ue,ve]=t(Y)),{render:F,hydrate:ue,createApp:su(F,ue)}}function dr({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function qt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function jl(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Bl(e,t,n=!1){const o=e.children,r=t.children;if(oe(o)&&oe(r))for(let s=0;s>1,e[n[l]]0&&(t[o]=n[s-1]),n[s]=o)}}for(s=n.length,i=n[s-1];s-- >0;)n[s]=i,i=t[i];return n}function Fl(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Fl(t)}function Gs(e){if(e)for(let t=0;tHe(yu);function Eu(e,t){return as(e,null,t)}const So={};function Ce(e,t,n){return as(e,t,n)}function as(e,t,{immediate:n,deep:o,flush:r,once:s,onTrack:i,onTrigger:l}=Le){if(t&&s){const N=t;t=(...$)=>{N(...$),D()}}const a=Me,c=N=>o===!0?N:$t(N,o===!1?1:void 0);let f,u=!1,h=!1;if(je(e)?(f=()=>e.value,u=Ln(e)):_n(e)?(f=()=>c(e),u=!0):oe(e)?(h=!0,u=e.some(N=>_n(N)||Ln(N)),f=()=>e.map(N=>{if(je(N))return N.value;if(_n(N))return c(N);if(se(N))return Nt(N,a,2)})):se(e)?t?f=()=>Nt(e,a,2):f=()=>(p&&p(),it(e,a,3,[v])):f=st,t&&o){const N=f;f=()=>$t(N())}let p,v=N=>{p=g.onStop=()=>{Nt(N,a,4),p=g.onStop=void 0}},S;if(co)if(v=st,t?n&&it(t,a,3,[f(),h?[]:void 0,v]):f(),r==="sync"){const N=wu();S=N.__watcherHandles||(N.__watcherHandles=[])}else return st;let b=h?new Array(e.length).fill(So):So;const T=()=>{if(!(!g.active||!g.dirty))if(t){const N=g.run();(o||u||(h?N.some(($,w)=>Vt($,b[w])):Vt(N,b)))&&(p&&p(),it(t,a,3,[N,b===So?void 0:h&&b[0]===So?[]:b,v]),b=N)}else g.run()};T.allowRecurse=!!t;let y;r==="sync"?y=T:r==="post"?y=()=>Ge(T,a&&a.suspense):(T.pre=!0,a&&(T.id=a.uid),y=()=>qo(T));const g=new qr(f,st,y),C=Qi(),D=()=>{g.stop(),C&&Kr(C.effects,g)};return t?n?T():b=g.run():r==="post"?Ge(g.run.bind(g),a&&a.suspense):g.run(),S&&S.push(D),D}function Su(e,t,n){const o=this.proxy,r=Te(e)?e.includes(".")?zl(o,e):()=>o[e]:e.bind(o,o);let s;se(t)?s=t:(s=t.handler,n=t);const i=ao(this),l=as(r,s.bind(o),n);return i(),l}function zl(e,t){const n=t.split(".");return()=>{let o=e;for(let r=0;r{$t(o,t,n)});else if(Wi(e)){for(const o in e)$t(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&$t(e[o],t,n)}return e}const Lu=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${tt(t)}Modifiers`]||e[`${Ut(t)}Modifiers`];function Cu(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||Le;let r=n;const s=t.startsWith("update:"),i=s&&Lu(o,t.slice(7));i&&(i.trim&&(r=n.map(f=>Te(f)?f.trim():f)),i.number&&(r=n.map(qa)));let l,a=o[l=ir(t)]||o[l=ir(tt(t))];!a&&s&&(a=o[l=ir(Ut(t))]),a&&it(a,e,6,r);const c=o[l+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,it(c,e,6,r)}}function Ul(e,t,n=!1){const o=t.emitsCache,r=o.get(e);if(r!==void 0)return r;const s=e.emits;let i={},l=!1;if(!se(e)){const a=c=>{const f=Ul(c,t,!0);f&&(l=!0,Ne(i,f))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!s&&!l?(ye(e)&&o.set(e,null),null):(oe(s)?s.forEach(a=>i[a]=null):Ne(i,s),ye(e)&&o.set(e,i),i)}function Qo(e,t){return!e||!eo(t)?!1:(t=t.slice(2).replace(/Once$/,""),de(e,t[0].toLowerCase()+t.slice(1))||de(e,Ut(t))||de(e,t))}function hr(e){const{type:t,vnode:n,proxy:o,withProxy:r,propsOptions:[s],slots:i,attrs:l,emit:a,render:c,renderCache:f,props:u,data:h,setupState:p,ctx:v,inheritAttrs:S}=e,b=$o(e);let T,y;try{if(n.shapeFlag&4){const C=r||o,D=C;T=rt(c.call(D,C,f,u,p,h,v)),y=l}else{const C=t;T=rt(C.length>1?C(u,{attrs:l,slots:i,emit:a}):C(u,null)),y=t.props?l:ku(l)}}catch(C){Bn.length=0,so(C,e,1),T=Q(Ue)}let g=T;if(y&&S!==!1){const C=Object.keys(y),{shapeFlag:D}=g;C.length&&D&7&&(s&&C.some(Wr)&&(y=xu(y,s)),g=Ft(g,y,!1,!0))}return n.dirs&&(g=Ft(g,null,!1,!0),g.dirs=g.dirs?g.dirs.concat(n.dirs):n.dirs),n.transition&&(g.transition=n.transition),T=g,$o(b),T}const ku=e=>{let t;for(const n in e)(n==="class"||n==="style"||eo(n))&&((t||(t={}))[n]=e[n]);return t},xu=(e,t)=>{const n={};for(const o in e)(!Wr(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function Pu(e,t,n){const{props:o,children:r,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 o?qs(o,i,c):!!i;if(a&8){const f=t.dynamicProps;for(let u=0;ue.__isSuspense;function Wl(e,t){t&&t.pendingBranch?oe(e)?t.effects.push(...e):t.effects.push(e):$c(e)}const be=Symbol.for("v-fgt"),rn=Symbol.for("v-txt"),Ue=Symbol.for("v-cmt"),jn=Symbol.for("v-stc"),Bn=[];let Ze=null;function G(e=!1){Bn.push(Ze=e?null:[])}function Ou(){Bn.pop(),Ze=Bn[Bn.length-1]||null}let qn=1;function Js(e){qn+=e,e<0&&Ze&&(Ze.hasOnce=!0)}function Kl(e){return e.dynamicChildren=qn>0?Ze||mn:null,Ou(),qn>0&&Ze&&Ze.push(e),e}function ne(e,t,n,o,r,s){return Kl(L(e,t,n,o,r,s,!0))}function Pe(e,t,n,o,r){return Kl(Q(e,t,n,o,r,!0))}function jo(e){return e?e.__v_isVNode===!0:!1}function en(e,t){return e.type===t.type&&e.key===t.key}const Gl=({key:e})=>e??null,To=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Te(e)||je(e)||se(e)?{i:$e,r:e,k:t,f:!!n}:e:null);function L(e,t=null,n=null,o=0,r=null,s=e===be?0:1,i=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Gl(t),ref:t&&To(t),scopeId:Jo,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:o,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:$e};return l?(cs(a,n),s&128&&e.normalize(a)):n&&(a.shapeFlag|=Te(n)?8:16),qn>0&&!i&&Ze&&(a.patchFlag>0||s&6)&&a.patchFlag!==32&&Ze.push(a),a}const Q=Ru;function Ru(e,t=null,n=null,o=0,r=null,s=!1){if((!e||e===Yc)&&(e=Ue),jo(e)){const l=Ft(e,t,!0);return n&&cs(l,n),qn>0&&!s&&Ze&&(l.shapeFlag&6?Ze[Ze.indexOf(e)]=l:Ze.push(l)),l.patchFlag=-2,l}if(Uu(e)&&(e=e.__vccOpts),t){t=Iu(t);let{class:l,style:a}=t;l&&!Te(l)&&(t.class=Je(l)),ye(a)&&(ul(a)&&!oe(a)&&(a=Ne({},a)),t.style=no(a))}const i=Te(e)?1:Au(e)?128:hu(e)?64:ye(e)?4:se(e)?2:0;return L(e,t,n,o,r,i,s,!0)}function Iu(e){return e?ul(e)||Il(e)?Ne({},e):e:null}function Ft(e,t,n=!1,o=!1){const{props:r,ref:s,patchFlag:i,children:l,transition:a}=e,c=t?$u(r||{},t):r,f={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Gl(c),ref:t&&t.ref?n&&s?oe(s)?s.concat(To(t)):[s,To(t)]:To(t):s,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==be?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ft(e.ssContent),ssFallback:e.ssFallback&&Ft(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&o&&No(f,a.clone(f)),f}function qe(e=" ",t=0){return Q(rn,null,e,t)}function Mu(e,t){const n=Q(jn,null,e);return n.staticCount=t,n}function Oe(e="",t=!1){return t?(G(),Pe(Ue,null,e)):Q(Ue,null,e)}function rt(e){return e==null||typeof e=="boolean"?Q(Ue):oe(e)?Q(be,null,e.slice()):typeof e=="object"?It(e):Q(rn,null,String(e))}function It(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ft(e)}function cs(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(oe(t))n=16;else if(typeof t=="object")if(o&65){const r=t.default;r&&(r._c&&(r._d=!1),cs(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!Il(t)?t._ctx=$e:r===3&&$e&&($e.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else se(t)?(t={default:t,_ctx:$e},n=32):(t=String(t),o&64?(n=16,t=[qe(t)]):n=8);e.children=t,e.shapeFlag|=n}function $u(...e){const t={};for(let n=0;nMe||$e;let Bo,Nr;{const e=Gi(),t=(n,o)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(o),s=>{r.length>1?r.forEach(i=>i(s)):r[0](s)}};Bo=t("__VUE_INSTANCE_SETTERS__",n=>Me=n),Nr=t("__VUE_SSR_SETTERS__",n=>co=n)}const ao=e=>{const t=Me;return Bo(e),e.scope.on(),()=>{e.scope.off(),Bo(t)}},Ys=()=>{Me&&Me.scope.off(),Bo(null)};function ql(e){return e.vnode.shapeFlag&4}let co=!1;function Vu(e,t=!1,n=!1){t&&Nr(t);const{props:o,children:r}=e.vnode,s=ql(e);iu(e,o,s,t),uu(e,r,n);const i=s?ju(e,t):void 0;return t&&Nr(!1),i}function ju(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Xc);const{setup:o}=n;if(o){const r=e.setupContext=o.length>1?Fu(e):null,s=ao(e);Wt();const i=Nt(o,e,0,[e.props,r]);if(Kt(),s(),zi(i)){if(i.then(Ys,Ys),t)return i.then(l=>{Qs(e,l,t)}).catch(l=>{so(l,e,0)});e.asyncDep=i}else Qs(e,i,t)}else Jl(e,t)}function Qs(e,t,n){se(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ye(t)&&(e.setupState=hl(t)),Jl(e,n)}let Xs;function Jl(e,t,n){const o=e.type;if(!e.render){if(!t&&Xs&&!o.render){const r=o.template||is(e).template;if(r){const{isCustomElement:s,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:a}=o,c=Ne(Ne({isCustomElement:s,delimiters:l},i),a);o.render=Xs(r,c)}}e.render=o.render||st}{const r=ao(e);Wt();try{Zc(e)}finally{Kt(),r()}}}const Bu={get(e,t){return Ye(e,"get",""),e[t]}};function Fu(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Bu),slots:e.slots,emit:e.emit,expose:t}}function Xo(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(hl(Cc(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Vn)return Vn[n](e)},has(t,n){return n in t||n in Vn}})):e.proxy}function zu(e,t=!0){return se(e)?e.displayName||e.name:e.name||t&&e.__name}function Uu(e){return se(e)&&"__vccOpts"in e}const I=(e,t)=>kc(e,t,co);function K(e,t,n){const o=arguments.length;return o===2?ye(t)&&!oe(t)?jo(t)?Q(e,null,[t]):Q(e,t):Q(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&jo(n)&&(n=[n]),Q(e,t,n))}const Wu="3.4.38";/** +**/function Nt(e,t,n,o){try{return o?e(...o):e()}catch(r){so(r,t,n)}}function it(e,t,n,o){if(se(e)){const r=Nt(e,t,n,o);return r&&zi(r)&&r.catch(s=>{so(s,t,n)}),r}if(oe(e)){const r=[];for(let s=0;s>>1,r=Fe[o],s=Kn(r);smt&&Fe.splice(t,1)}function Mc(e){oe(e)?bn.push(...e):(!Ot||!Ot.includes(e,e.allowRecurse?Zt+1:Zt))&&bn.push(e),bl()}function Ds(e,t,n=Wn?mt+1:0){for(;nKn(n)-Kn(o));if(bn.length=0,Ot){Ot.push(...t);return}for(Ot=t,Zt=0;Zte.id==null?1/0:e.id,$c=(e,t)=>{const n=Kn(e)-Kn(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function yl(e){Or=!1,Wn=!0,Fe.sort($c);try{for(mt=0;mt{o._d&&Js(-1);const s=$o(t);let i;try{i=e(...r)}finally{$o(s),o._d&&Js(1)}return i};return o._n=!0,o._c=!0,o._d=!0,o}function Ho(e,t){if($e===null)return e;const n=Xo($e),o=e.dirs||(e.dirs=[]);for(let r=0;r{e.isMounted=!0}),ss(()=>{e.isUnmounting=!0}),e}const nt=[Function,Array],wl={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:nt,onEnter:nt,onAfterEnter:nt,onEnterCancelled:nt,onBeforeLeave:nt,onLeave:nt,onAfterLeave:nt,onLeaveCancelled:nt,onBeforeAppear:nt,onAppear:nt,onAfterAppear:nt,onAppearCancelled:nt},El=e=>{const t=e.subTree;return t.component?El(t.component):t},Nc={name:"BaseTransition",props:wl,setup(e,{slots:t}){const n=lo(),o=Hc();return()=>{const r=t.default&&Ll(t.default(),!0);if(!r||!r.length)return;let s=r[0];if(r.length>1){for(const h of r)if(h.type!==Ue){s=h;break}}const i=pe(e),{mode:l}=i;if(o.isLeaving)return cr(s);const a=Vs(s);if(!a)return cr(s);let c=Rr(a,i,o,n,h=>c=h);No(a,c);const f=n.subTree,u=f&&Vs(f);if(u&&u.type!==Ue&&!en(a,u)&&El(n).type!==Ue){const h=Rr(u,i,o,n);if(No(u,h),l==="out-in"&&a.type!==Ue)return o.isLeaving=!0,h.afterLeave=()=>{o.isLeaving=!1,n.update.active!==!1&&(n.effect.dirty=!0,n.update())},cr(s);l==="in-out"&&a.type!==Ue&&(h.delayLeave=(p,v,S)=>{const b=Sl(o,u);b[String(u.key)]=u,p[Rt]=()=>{v(),p[Rt]=void 0,delete c.delayedLeave},c.delayedLeave=S})}return s}}},Dc=Nc;function Sl(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function Rr(e,t,n,o,r){const{appear:s,mode:i,persisted:l=!1,onBeforeEnter:a,onEnter:c,onAfterEnter:f,onEnterCancelled:u,onBeforeLeave:h,onLeave:p,onAfterLeave:v,onLeaveCancelled:S,onBeforeAppear:b,onAppear:T,onAfterAppear:y,onAppearCancelled:g}=t,C=String(e.key),D=Sl(n,e),N=(U,x)=>{U&&it(U,o,9,x)},$=(U,x)=>{const B=x[1];N(U,x),oe(U)?U.every(E=>E.length<=1)&&B():U.length<=1&&B()},w={mode:i,persisted:l,beforeEnter(U){let x=a;if(!n.isMounted)if(s)x=b||a;else return;U[Rt]&&U[Rt](!0);const B=D[C];B&&en(e,B)&&B.el[Rt]&&B.el[Rt](),N(x,[U])},enter(U){let x=c,B=f,E=u;if(!n.isMounted)if(s)x=T||c,B=y||f,E=g||u;else return;let H=!1;const te=U[yo]=re=>{H||(H=!0,re?N(E,[U]):N(B,[U]),w.delayedLeave&&w.delayedLeave(),U[yo]=void 0)};x?$(x,[U,te]):te()},leave(U,x){const B=String(e.key);if(U[yo]&&U[yo](!0),n.isUnmounting)return x();N(h,[U]);let E=!1;const H=U[Rt]=te=>{E||(E=!0,x(),te?N(S,[U]):N(v,[U]),U[Rt]=void 0,D[B]===e&&delete D[B])};D[B]=e,p?$(p,[U,H]):H()},clone(U){const x=Rr(U,t,n,o,r);return r&&r(x),x}};return w}function cr(e){if(io(e))return e=Ft(e),e.children=null,e}function Vs(e){if(!io(e))return e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&se(n.default))return n.default()}}function No(e,t){e.shapeFlag&6&&e.component?No(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 Ll(e,t=!1,n){let o=[],r=0;for(let s=0;s1)for(let s=0;s!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function Cl(e){se(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:o,delay:r=200,timeout:s,suspensible:i=!0,onError:l}=e;let a=null,c,f=0;const u=()=>(f++,a=null,h()),h=()=>{let p;return a||(p=a=t().catch(v=>{if(v=v instanceof Error?v:new Error(String(v)),l)return new Promise((S,b)=>{l(v,()=>S(u()),()=>b(v),f+1)});throw v}).then(v=>p!==a&&a?a:(v&&(v.__esModule||v[Symbol.toStringTag]==="Module")&&(v=v.default),c=v,v)))};return he({name:"AsyncComponentWrapper",__asyncLoader:h,get __asyncResolved(){return c},setup(){const p=Me;if(c)return()=>ur(c,p);const v=y=>{a=null,so(y,p,13,!o)};if(i&&p.suspense||co)return h().then(y=>()=>ur(y,p)).catch(y=>(v(y),()=>o?Q(o,{error:y}):null));const S=ie(!1),b=ie(),T=ie(!!r);return r&&setTimeout(()=>{T.value=!1},r),s!=null&&setTimeout(()=>{if(!S.value&&!b.value){const y=new Error(`Async component timed out after ${s}ms.`);v(y),b.value=y}},s),h().then(()=>{S.value=!0,p.parent&&io(p.parent.vnode)&&(p.parent.effect.dirty=!0,qo(p.parent.update))}).catch(y=>{v(y),b.value=y}),()=>{if(S.value&&c)return ur(c,p);if(b.value&&o)return Q(o,{error:b.value});if(n&&!T.value)return Q(n)}}})}function ur(e,t){const{ref:n,props:o,children:r,ce:s}=t.vnode,i=Q(e,o,r);return i.ref=n,i.ce=s,delete t.vnode.ce,i}const io=e=>e.type.__isKeepAlive;function Vc(e,t){kl(e,"a",t)}function jc(e,t){kl(e,"da",t)}function kl(e,t,n=Me){const o=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(Yo(t,o,n),n){let r=n.parent;for(;r&&r.parent;)io(r.parent.vnode)&&Bc(o,t,n,r),r=r.parent}}function Bc(e,t,n,o){const r=Yo(t,e,o,!0);Pn(()=>{Kr(o[t],r)},n)}function Yo(e,t,n=Me,o=!1){if(n){const r=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...i)=>{Wt();const l=ao(n),a=it(t,n,e,i);return l(),Kt(),a});return o?r.unshift(s):r.push(s),s}}const Et=e=>(t,n=Me)=>{(!co||e==="sp")&&Yo(e,(...o)=>t(...o),n)},Fc=Et("bm"),Re=Et("m"),zc=Et("bu"),Uc=Et("u"),ss=Et("bum"),Pn=Et("um"),Wc=Et("sp"),Kc=Et("rtg"),Gc=Et("rtc");function qc(e,t=Me){Yo("ec",e,t)}const Jc="components";function Gn(e,t){return Qc(Jc,e,!0,t)||e}const Yc=Symbol.for("v-ndc");function Qc(e,t,n=!0,o=!1){const r=$e||Me;if(r){const s=r.type;{const l=zu(s,!1);if(l&&(l===t||l===tt(t)||l===to(tt(t))))return s}const i=js(r[e]||s[e],t)||js(r.appContext[e],t);return!i&&o?s:i}}function js(e,t){return e&&(e[t]||e[tt(t)]||e[to(tt(t))])}function Bt(e,t,n,o){let r;const s=n;if(oe(e)||Te(e)){r=new Array(e.length);for(let i=0,l=e.length;it(i,l,void 0,s));else{const i=Object.keys(e);r=new Array(i.length);for(let l=0,a=i.length;ljo(t)?!(t.type===Ue||t.type===be&&!xl(t.children)):!0)?e:null}const Ir=e=>e?Gl(e)?Xo(e):Ir(e.parent):null,Vn=Ne(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=>Ir(e.parent),$root:e=>Ir(e.root),$emit:e=>e.emit,$options:e=>is(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,qo(e.update)}),$nextTick:e=>e.n||(e.n=an.bind(e.proxy)),$watch:e=>Su.bind(e)}),fr=(e,t)=>e!==Le&&!e.__isScriptSetup&&de(e,t),Xc={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:r,props:s,accessCache:i,type:l,appContext:a}=e;let c;if(t[0]!=="$"){const p=i[t];if(p!==void 0)switch(p){case 1:return o[t];case 2:return r[t];case 4:return n[t];case 3:return s[t]}else{if(fr(o,t))return i[t]=1,o[t];if(r!==Le&&de(r,t))return i[t]=2,r[t];if((c=e.propsOptions[0])&&de(c,t))return i[t]=3,s[t];if(n!==Le&&de(n,t))return i[t]=4,n[t];Mr&&(i[t]=0)}}const f=Vn[t];let u,h;if(f)return t==="$attrs"&&Ye(e.attrs,"get",""),f(e);if((u=l.__cssModules)&&(u=u[t]))return u;if(n!==Le&&de(n,t))return i[t]=4,n[t];if(h=a.config.globalProperties,de(h,t))return h[t]},set({_:e},t,n){const{data:o,setupState:r,ctx:s}=e;return fr(r,t)?(r[t]=n,!0):o!==Le&&de(o,t)?(o[t]=n,!0):de(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:r,propsOptions:s}},i){let l;return!!n[i]||e!==Le&&de(e,i)||fr(t,i)||(l=s[0])&&de(l,i)||de(o,i)||de(Vn,i)||de(r.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:de(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Bs(e){return oe(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Mr=!0;function Zc(e){const t=is(e),n=e.proxy,o=e.ctx;Mr=!1,t.beforeCreate&&Fs(t.beforeCreate,e,"bc");const{data:r,computed:s,methods:i,watch:l,provide:a,inject:c,created:f,beforeMount:u,mounted:h,beforeUpdate:p,updated:v,activated:S,deactivated:b,beforeDestroy:T,beforeUnmount:y,destroyed:g,unmounted:C,render:D,renderTracked:N,renderTriggered:$,errorCaptured:w,serverPrefetch:U,expose:x,inheritAttrs:B,components:E,directives:H,filters:te}=t;if(c&&eu(c,o,null),i)for(const X in i){const J=i[X];se(J)&&(o[X]=J.bind(n))}if(r){const X=r.call(n,n);ye(X)&&(e.data=oo(X))}if(Mr=!0,s)for(const X in s){const J=s[X],_e=se(J)?J.bind(n,n):se(J.get)?J.get.bind(n,n):st,De=!se(J)&&se(J.set)?J.set.bind(n):st,We=I({get:_e,set:De});Object.defineProperty(o,X,{enumerable:!0,configurable:!0,get:()=>We.value,set:Be=>We.value=Be})}if(l)for(const X in l)Pl(l[X],o,n,X);if(a){const X=se(a)?a.call(n):a;Reflect.ownKeys(X).forEach(J=>{Dt(J,X[J])})}f&&Fs(f,e,"c");function M(X,J){oe(J)?J.forEach(_e=>X(_e.bind(n))):J&&X(J.bind(n))}if(M(Fc,u),M(Re,h),M(zc,p),M(Uc,v),M(Vc,S),M(jc,b),M(qc,w),M(Gc,N),M(Kc,$),M(ss,y),M(Pn,C),M(Wc,U),oe(x))if(x.length){const X=e.exposed||(e.exposed={});x.forEach(J=>{Object.defineProperty(X,J,{get:()=>n[J],set:_e=>n[J]=_e})})}else e.exposed||(e.exposed={});D&&e.render===st&&(e.render=D),B!=null&&(e.inheritAttrs=B),E&&(e.components=E),H&&(e.directives=H)}function eu(e,t,n=st){oe(e)&&(e=$r(e));for(const o in e){const r=e[o];let s;ye(r)?"default"in r?s=He(r.from||o,r.default,!0):s=He(r.from||o):s=He(r),je(s)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>s.value,set:i=>s.value=i}):t[o]=s}}function Fs(e,t,n){it(oe(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function Pl(e,t,n,o){const r=o.includes(".")?Fl(n,o):()=>n[o];if(Te(e)){const s=t[e];se(s)&&Ce(r,s)}else if(se(e))Ce(r,e.bind(n));else if(ye(e))if(oe(e))e.forEach(s=>Pl(s,t,n,o));else{const s=se(e.handler)?e.handler.bind(n):t[e.handler];se(s)&&Ce(r,s,e)}}function is(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:r,optionsCache:s,config:{optionMergeStrategies:i}}=e.appContext,l=s.get(t);let a;return l?a=l:!r.length&&!n&&!o?a=t:(a={},r.length&&r.forEach(c=>Do(a,c,i,!0)),Do(a,t,i)),ye(t)&&s.set(t,a),a}function Do(e,t,n,o=!1){const{mixins:r,extends:s}=t;s&&Do(e,s,n,!0),r&&r.forEach(i=>Do(e,i,n,!0));for(const i in t)if(!(o&&i==="expose")){const l=tu[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const tu={data:zs,props:Us,emits:Us,methods:Hn,computed:Hn,beforeCreate:ze,created:ze,beforeMount:ze,mounted:ze,beforeUpdate:ze,updated:ze,beforeDestroy:ze,beforeUnmount:ze,destroyed:ze,unmounted:ze,activated:ze,deactivated:ze,errorCaptured:ze,serverPrefetch:ze,components:Hn,directives:Hn,watch:ou,provide:zs,inject:nu};function zs(e,t){return t?e?function(){return Ne(se(e)?e.call(this,this):e,se(t)?t.call(this,this):t)}:t:e}function nu(e,t){return Hn($r(e),$r(t))}function $r(e){if(oe(e)){const t={};for(let n=0;n1)return n&&se(t)?t.call(o&&o.proxy):t}}const Al={},Ol=()=>Object.create(Al),Rl=e=>Object.getPrototypeOf(e)===Al;function iu(e,t,n,o=!1){const r={},s=Ol();e.propsDefaults=Object.create(null),Il(e,t,r,s);for(const i in e.propsOptions[0])i in r||(r[i]=void 0);n?e.props=o?r:cl(r):e.type.props?e.props=r:e.props=s,e.attrs=s}function lu(e,t,n,o){const{props:r,attrs:s,vnode:{patchFlag:i}}=e,l=pe(r),[a]=e.propsOptions;let c=!1;if((o||i>0)&&!(i&16)){if(i&8){const f=e.vnode.dynamicProps;for(let u=0;u{a=!0;const[h,p]=Ml(u,t,!0);Ne(i,h),p&&l.push(...p)};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!s&&!a)return ye(e)&&o.set(e,mn),mn;if(oe(s))for(let f=0;fe[0]==="_"||e==="$stable",ls=e=>oe(e)?e.map(rt):[rt(e)],cu=(e,t,n)=>{if(t._n)return t;const o=Se((...r)=>ls(t(...r)),n);return o._c=!1,o},Hl=(e,t,n)=>{const o=e._ctx;for(const r in e){if($l(r))continue;const s=e[r];if(se(s))t[r]=cu(r,s,o);else if(s!=null){const i=ls(s);t[r]=()=>i}}},Nl=(e,t)=>{const n=ls(t);e.slots.default=()=>n},Dl=(e,t,n)=>{for(const o in t)(n||o!=="_")&&(e[o]=t[o])},uu=(e,t,n)=>{const o=e.slots=Ol();if(e.vnode.shapeFlag&32){const r=t._;r?(Dl(o,t,n),n&&Ki(o,"_",r,!0)):Hl(t,o)}else t&&Nl(e,t)},fu=(e,t,n)=>{const{vnode:o,slots:r}=e;let s=!0,i=Le;if(o.shapeFlag&32){const l=t._;l?n&&l===1?s=!1:Dl(r,t,n):(s=!t.$stable,Hl(t,r)),i=t}else t&&(Nl(e,t),i={default:1});if(s)for(const l in r)!$l(l)&&i[l]==null&&delete r[l]};function Vo(e,t,n,o,r=!1){if(oe(e)){e.forEach((h,p)=>Vo(h,t&&(oe(t)?t[p]:t),n,o,r));return}if(yn(o)&&!r)return;const s=o.shapeFlag&4?Xo(o.component):o.el,i=r?null:s,{i:l,r:a}=e,c=t&&t.r,f=l.refs===Le?l.refs={}:l.refs,u=l.setupState;if(c!=null&&c!==a&&(Te(c)?(f[c]=null,de(u,c)&&(u[c]=null)):je(c)&&(c.value=null)),se(a))Nt(a,l,12,[i,f]);else{const h=Te(a),p=je(a);if(h||p){const v=()=>{if(e.f){const S=h?de(u,a)?u[a]:f[a]:a.value;r?oe(S)&&Kr(S,s):oe(S)?S.includes(s)||S.push(s):h?(f[a]=[s],de(u,a)&&(u[a]=f[a])):(a.value=[s],e.k&&(f[e.k]=a.value))}else h?(f[a]=i,de(u,a)&&(u[a]=i)):p&&(a.value=i,e.k&&(f[e.k]=i))};i?(v.id=-1,Ge(v,n)):v()}}}const du=Symbol("_vte"),hu=e=>e.__isTeleport;let Ks=!1;const dn=()=>{Ks||(console.error("Hydration completed but contains mismatches."),Ks=!0)},pu=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",mu=e=>e.namespaceURI.includes("MathML"),wo=e=>{if(pu(e))return"svg";if(mu(e))return"mathml"},Eo=e=>e.nodeType===8;function gu(e){const{mt:t,p:n,o:{patchProp:o,createText:r,nextSibling:s,parentNode:i,remove:l,insert:a,createComment:c}}=e,f=(g,C)=>{if(!C.hasChildNodes()){n(null,g,C),Mo(),C._vnode=g;return}u(C.firstChild,g,null,null,null),Mo(),C._vnode=g},u=(g,C,D,N,$,w=!1)=>{w=w||!!C.dynamicChildren;const U=Eo(g)&&g.data==="[",x=()=>S(g,C,D,N,$,U),{type:B,ref:E,shapeFlag:H,patchFlag:te}=C;let re=g.nodeType;C.el=g,te===-2&&(w=!1,C.dynamicChildren=null);let M=null;switch(B){case rn:re!==3?C.children===""?(a(C.el=r(""),i(g),g),M=g):M=x():(g.data!==C.children&&(dn(),g.data=C.children),M=s(g));break;case Ue:y(g)?(M=s(g),T(C.el=g.content.firstChild,g,D)):re!==8||U?M=x():M=s(g);break;case jn:if(U&&(g=s(g),re=g.nodeType),re===1||re===3){M=g;const X=!C.children.length;for(let J=0;J{w=w||!!C.dynamicChildren;const{type:U,props:x,patchFlag:B,shapeFlag:E,dirs:H,transition:te}=C,re=U==="input"||U==="option";if(re||B!==-1){H&&pt(C,null,D,"created");let M=!1;if(y(g)){M=Vl(N,te)&&D&&D.vnode.props&&D.vnode.props.appear;const J=g.content.firstChild;M&&te.beforeEnter(J),T(J,g,D),C.el=g=J}if(E&16&&!(x&&(x.innerHTML||x.textContent))){let J=p(g.firstChild,C,g,D,N,$,w);for(;J;){dn();const _e=J;J=J.nextSibling,l(_e)}}else E&8&&g.textContent!==C.children&&(dn(),g.textContent=C.children);if(x){if(re||!w||B&48){const J=g.tagName.includes("-");for(const _e in x)(re&&(_e.endsWith("value")||_e==="indeterminate")||eo(_e)&&!vn(_e)||_e[0]==="."||J)&&o(g,_e,null,x[_e],void 0,D)}else if(x.onClick)o(g,"onClick",null,x.onClick,void 0,D);else if(B&4&&_n(x.style))for(const J in x.style)x.style[J]}let X;(X=x&&x.onVnodeBeforeMount)&&ot(X,D,C),H&&pt(C,null,D,"beforeMount"),((X=x&&x.onVnodeMounted)||H||M)&&Ul(()=>{X&&ot(X,D,C),M&&te.enter(g),H&&pt(C,null,D,"mounted")},N)}return g.nextSibling},p=(g,C,D,N,$,w,U)=>{U=U||!!C.dynamicChildren;const x=C.children,B=x.length;for(let E=0;E{const{slotScopeIds:U}=C;U&&($=$?$.concat(U):U);const x=i(g),B=p(s(g),C,x,D,N,$,w);return B&&Eo(B)&&B.data==="]"?s(C.anchor=B):(dn(),a(C.anchor=c("]"),x,B),B)},S=(g,C,D,N,$,w)=>{if(dn(),C.el=null,w){const B=b(g);for(;;){const E=s(g);if(E&&E!==B)l(E);else break}}const U=s(g),x=i(g);return l(g),n(null,C,x,U,D,N,wo(x),$),U},b=(g,C="[",D="]")=>{let N=0;for(;g;)if(g=s(g),g&&Eo(g)&&(g.data===C&&N++,g.data===D)){if(N===0)return s(g);N--}return g},T=(g,C,D)=>{const N=C.parentNode;N&&N.replaceChild(g,C);let $=D;for(;$;)$.vnode.el===C&&($.vnode.el=$.subTree.el=g),$=$.parent},y=g=>g.nodeType===1&&g.tagName.toLowerCase()==="template";return[f,u]}const Ge=Ul;function vu(e){return _u(e,gu)}function _u(e,t){const n=Gi();n.__VUE__=!0;const{insert:o,remove:r,patchProp:s,createElement:i,createText:l,createComment:a,setText:c,setElementText:f,parentNode:u,nextSibling:h,setScopeId:p=st,insertStaticContent:v}=e,S=(d,m,_,A=null,k=null,R=null,z=void 0,V=null,j=!!m.dynamicChildren)=>{if(d===m)return;d&&!en(d,m)&&(A=P(d),Be(d,k,R,!0),d=null),m.patchFlag===-2&&(j=!1,m.dynamicChildren=null);const{type:O,ref:q,shapeFlag:ee}=m;switch(O){case rn:b(d,m,_,A);break;case Ue:T(d,m,_,A);break;case jn:d==null&&y(m,_,A,z);break;case be:E(d,m,_,A,k,R,z,V,j);break;default:ee&1?D(d,m,_,A,k,R,z,V,j):ee&6?H(d,m,_,A,k,R,z,V,j):(ee&64||ee&128)&&O.process(d,m,_,A,k,R,z,V,j,Y)}q!=null&&k&&Vo(q,d&&d.ref,R,m||d,!m)},b=(d,m,_,A)=>{if(d==null)o(m.el=l(m.children),_,A);else{const k=m.el=d.el;m.children!==d.children&&c(k,m.children)}},T=(d,m,_,A)=>{d==null?o(m.el=a(m.children||""),_,A):m.el=d.el},y=(d,m,_,A)=>{[d.el,d.anchor]=v(d.children,m,_,A,d.el,d.anchor)},g=({el:d,anchor:m},_,A)=>{let k;for(;d&&d!==m;)k=h(d),o(d,_,A),d=k;o(m,_,A)},C=({el:d,anchor:m})=>{let _;for(;d&&d!==m;)_=h(d),r(d),d=_;r(m)},D=(d,m,_,A,k,R,z,V,j)=>{m.type==="svg"?z="svg":m.type==="math"&&(z="mathml"),d==null?N(m,_,A,k,R,z,V,j):U(d,m,k,R,z,V,j)},N=(d,m,_,A,k,R,z,V)=>{let j,O;const{props:q,shapeFlag:ee,transition:Z,dirs:le}=d;if(j=d.el=i(d.type,R,q&&q.is,q),ee&8?f(j,d.children):ee&16&&w(d.children,j,null,A,k,dr(d,R),z,V),le&&pt(d,null,A,"created"),$(j,d,d.scopeId,z,A),q){for(const Ee in q)Ee!=="value"&&!vn(Ee)&&s(j,Ee,null,q[Ee],R,A);"value"in q&&s(j,"value",null,q.value,R),(O=q.onVnodeBeforeMount)&&ot(O,A,d)}le&&pt(d,null,A,"beforeMount");const ae=Vl(k,Z);ae&&Z.beforeEnter(j),o(j,m,_),((O=q&&q.onVnodeMounted)||ae||le)&&Ge(()=>{O&&ot(O,A,d),ae&&Z.enter(j),le&&pt(d,null,A,"mounted")},k)},$=(d,m,_,A,k)=>{if(_&&p(d,_),A)for(let R=0;R{for(let O=j;O{const V=m.el=d.el;let{patchFlag:j,dynamicChildren:O,dirs:q}=m;j|=d.patchFlag&16;const ee=d.props||Le,Z=m.props||Le;let le;if(_&&qt(_,!1),(le=Z.onVnodeBeforeUpdate)&&ot(le,_,m,d),q&&pt(m,d,_,"beforeUpdate"),_&&qt(_,!0),(ee.innerHTML&&Z.innerHTML==null||ee.textContent&&Z.textContent==null)&&f(V,""),O?x(d.dynamicChildren,O,V,_,A,dr(m,k),R):z||J(d,m,V,null,_,A,dr(m,k),R,!1),j>0){if(j&16)B(V,ee,Z,_,k);else if(j&2&&ee.class!==Z.class&&s(V,"class",null,Z.class,k),j&4&&s(V,"style",ee.style,Z.style,k),j&8){const ae=m.dynamicProps;for(let Ee=0;Ee{le&&ot(le,_,m,d),q&&pt(m,d,_,"updated")},A)},x=(d,m,_,A,k,R,z)=>{for(let V=0;V{if(m!==_){if(m!==Le)for(const R in m)!vn(R)&&!(R in _)&&s(d,R,m[R],null,k,A);for(const R in _){if(vn(R))continue;const z=_[R],V=m[R];z!==V&&R!=="value"&&s(d,R,V,z,k,A)}"value"in _&&s(d,"value",m.value,_.value,k)}},E=(d,m,_,A,k,R,z,V,j)=>{const O=m.el=d?d.el:l(""),q=m.anchor=d?d.anchor:l("");let{patchFlag:ee,dynamicChildren:Z,slotScopeIds:le}=m;le&&(V=V?V.concat(le):le),d==null?(o(O,_,A),o(q,_,A),w(m.children||[],_,q,k,R,z,V,j)):ee>0&&ee&64&&Z&&d.dynamicChildren?(x(d.dynamicChildren,Z,_,k,R,z,V),(m.key!=null||k&&m===k.subTree)&&jl(d,m,!0)):J(d,m,_,q,k,R,z,V,j)},H=(d,m,_,A,k,R,z,V,j)=>{m.slotScopeIds=V,d==null?m.shapeFlag&512?k.ctx.activate(m,_,A,z,j):te(m,_,A,k,R,z,j):re(d,m,j)},te=(d,m,_,A,k,R,z)=>{const V=d.component=Du(d,A,k);if(io(d)&&(V.ctx.renderer=Y),Vu(V,!1,z),V.asyncDep){if(k&&k.registerDep(V,M,z),!d.el){const j=V.subTree=Q(Ue);T(null,j,m,_)}}else M(V,d,m,_,k,R,z)},re=(d,m,_)=>{const A=m.component=d.component;if(Pu(d,m,_))if(A.asyncDep&&!A.asyncResolved){X(A,m,_);return}else A.next=m,Ic(A.update),A.effect.dirty=!0,A.update();else m.el=d.el,A.vnode=m},M=(d,m,_,A,k,R,z)=>{const V=()=>{if(d.isMounted){let{next:q,bu:ee,u:Z,parent:le,vnode:ae}=d;{const fn=Bl(d);if(fn){q&&(q.el=ae.el,X(d,q,z)),fn.asyncDep.then(()=>{d.isUnmounted||V()});return}}let Ee=q,me;qt(d,!1),q?(q.el=ae.el,X(d,q,z)):q=ae,ee&&lr(ee),(me=q.props&&q.props.onVnodeBeforeUpdate)&&ot(me,le,q,ae),qt(d,!0);const Ie=hr(d),at=d.subTree;d.subTree=Ie,S(at,Ie,u(at.el),P(at),d,k,R),q.el=Ie.el,Ee===null&&Tu(d,Ie.el),Z&&Ge(Z,k),(me=q.props&&q.props.onVnodeUpdated)&&Ge(()=>ot(me,le,q,ae),k)}else{let q;const{el:ee,props:Z}=m,{bm:le,m:ae,parent:Ee}=d,me=yn(m);if(qt(d,!1),le&&lr(le),!me&&(q=Z&&Z.onVnodeBeforeMount)&&ot(q,Ee,m),qt(d,!0),ee&&ve){const Ie=()=>{d.subTree=hr(d),ve(ee,d.subTree,d,k,null)};me?m.type.__asyncLoader().then(()=>!d.isUnmounted&&Ie()):Ie()}else{const Ie=d.subTree=hr(d);S(null,Ie,_,A,d,k,R),m.el=Ie.el}if(ae&&Ge(ae,k),!me&&(q=Z&&Z.onVnodeMounted)){const Ie=m;Ge(()=>ot(q,Ee,Ie),k)}(m.shapeFlag&256||Ee&&yn(Ee.vnode)&&Ee.vnode.shapeFlag&256)&&d.a&&Ge(d.a,k),d.isMounted=!0,m=_=A=null}},j=d.effect=new qr(V,st,()=>qo(O),d.scope),O=d.update=()=>{j.dirty&&j.run()};O.i=d,O.id=d.uid,qt(d,!0),O()},X=(d,m,_)=>{m.component=d;const A=d.vnode.props;d.vnode=m,d.next=null,lu(d,m.props,A,_),fu(d,m.children,_),Wt(),Ds(d),Kt()},J=(d,m,_,A,k,R,z,V,j=!1)=>{const O=d&&d.children,q=d?d.shapeFlag:0,ee=m.children,{patchFlag:Z,shapeFlag:le}=m;if(Z>0){if(Z&128){De(O,ee,_,A,k,R,z,V,j);return}else if(Z&256){_e(O,ee,_,A,k,R,z,V,j);return}}le&8?(q&16&&Ke(O,k,R),ee!==O&&f(_,ee)):q&16?le&16?De(O,ee,_,A,k,R,z,V,j):Ke(O,k,R,!0):(q&8&&f(_,""),le&16&&w(ee,_,A,k,R,z,V,j))},_e=(d,m,_,A,k,R,z,V,j)=>{d=d||mn,m=m||mn;const O=d.length,q=m.length,ee=Math.min(O,q);let Z;for(Z=0;Zq?Ke(d,k,R,!0,!1,ee):w(m,_,A,k,R,z,V,j,ee)},De=(d,m,_,A,k,R,z,V,j)=>{let O=0;const q=m.length;let ee=d.length-1,Z=q-1;for(;O<=ee&&O<=Z;){const le=d[O],ae=m[O]=j?It(m[O]):rt(m[O]);if(en(le,ae))S(le,ae,_,null,k,R,z,V,j);else break;O++}for(;O<=ee&&O<=Z;){const le=d[ee],ae=m[Z]=j?It(m[Z]):rt(m[Z]);if(en(le,ae))S(le,ae,_,null,k,R,z,V,j);else break;ee--,Z--}if(O>ee){if(O<=Z){const le=Z+1,ae=leZ)for(;O<=ee;)Be(d[O],k,R,!0),O++;else{const le=O,ae=O,Ee=new Map;for(O=ae;O<=Z;O++){const Qe=m[O]=j?It(m[O]):rt(m[O]);Qe.key!=null&&Ee.set(Qe.key,O)}let me,Ie=0;const at=Z-ae+1;let fn=!1,xs=0;const On=new Array(at);for(O=0;O=at){Be(Qe,k,R,!0);continue}let ht;if(Qe.key!=null)ht=Ee.get(Qe.key);else for(me=ae;me<=Z;me++)if(On[me-ae]===0&&en(Qe,m[me])){ht=me;break}ht===void 0?Be(Qe,k,R,!0):(On[ht-ae]=O+1,ht>=xs?xs=ht:fn=!0,S(Qe,m[ht],_,null,k,R,z,V,j),Ie++)}const Ps=fn?bu(On):mn;for(me=Ps.length-1,O=at-1;O>=0;O--){const Qe=ae+O,ht=m[Qe],Ts=Qe+1{const{el:R,type:z,transition:V,children:j,shapeFlag:O}=d;if(O&6){We(d.component.subTree,m,_,A);return}if(O&128){d.suspense.move(m,_,A);return}if(O&64){z.move(d,m,_,Y);return}if(z===be){o(R,m,_);for(let ee=0;eeV.enter(R),k);else{const{leave:ee,delayLeave:Z,afterLeave:le}=V,ae=()=>o(R,m,_),Ee=()=>{ee(R,()=>{ae(),le&&le()})};Z?Z(R,ae,Ee):Ee()}else o(R,m,_)},Be=(d,m,_,A=!1,k=!1)=>{const{type:R,props:z,ref:V,children:j,dynamicChildren:O,shapeFlag:q,patchFlag:ee,dirs:Z,cacheIndex:le}=d;if(ee===-2&&(k=!1),V!=null&&Vo(V,null,_,d,!0),le!=null&&(m.renderCache[le]=void 0),q&256){m.ctx.deactivate(d);return}const ae=q&1&&Z,Ee=!yn(d);let me;if(Ee&&(me=z&&z.onVnodeBeforeUnmount)&&ot(me,m,d),q&6)dt(d.component,_,A);else{if(q&128){d.suspense.unmount(_,A);return}ae&&pt(d,null,m,"beforeUnmount"),q&64?d.type.remove(d,m,_,Y,A):O&&!O.hasOnce&&(R!==be||ee>0&&ee&64)?Ke(O,m,_,!1,!0):(R===be&&ee&384||!k&&q&16)&&Ke(j,m,_),A&&kt(d)}(Ee&&(me=z&&z.onVnodeUnmounted)||ae)&&Ge(()=>{me&&ot(me,m,d),ae&&pt(d,null,m,"unmounted")},_)},kt=d=>{const{type:m,el:_,anchor:A,transition:k}=d;if(m===be){xt(_,A);return}if(m===jn){C(d);return}const R=()=>{r(_),k&&!k.persisted&&k.afterLeave&&k.afterLeave()};if(d.shapeFlag&1&&k&&!k.persisted){const{leave:z,delayLeave:V}=k,j=()=>z(_,R);V?V(d.el,R,j):j()}else R()},xt=(d,m)=>{let _;for(;d!==m;)_=h(d),r(d),d=_;r(m)},dt=(d,m,_)=>{const{bum:A,scope:k,update:R,subTree:z,um:V,m:j,a:O}=d;Gs(j),Gs(O),A&&lr(A),k.stop(),R&&(R.active=!1,Be(z,d,m,_)),V&&Ge(V,m),Ge(()=>{d.isUnmounted=!0},m),m&&m.pendingBranch&&!m.isUnmounted&&d.asyncDep&&!d.asyncResolved&&d.suspenseId===m.pendingId&&(m.deps--,m.deps===0&&m.resolve())},Ke=(d,m,_,A=!1,k=!1,R=0)=>{for(let z=R;z{if(d.shapeFlag&6)return P(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const m=h(d.anchor||d.el),_=m&&m[du];return _?h(_):m};let W=!1;const F=(d,m,_)=>{d==null?m._vnode&&Be(m._vnode,null,null,!0):S(m._vnode||null,d,m,null,null,null,_),m._vnode=d,W||(W=!0,Ds(),Mo(),W=!1)},Y={p:S,um:Be,m:We,r:kt,mt:te,mc:w,pc:J,pbc:x,n:P,o:e};let ue,ve;return t&&([ue,ve]=t(Y)),{render:F,hydrate:ue,createApp:su(F,ue)}}function dr({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function qt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Vl(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function jl(e,t,n=!1){const o=e.children,r=t.children;if(oe(o)&&oe(r))for(let s=0;s>1,e[n[l]]0&&(t[o]=n[s-1]),n[s]=o)}}for(s=n.length,i=n[s-1];s-- >0;)n[s]=i,i=t[i];return n}function Bl(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Bl(t)}function Gs(e){if(e)for(let t=0;tHe(yu);function Eu(e,t){return as(e,null,t)}const So={};function Ce(e,t,n){return as(e,t,n)}function as(e,t,{immediate:n,deep:o,flush:r,once:s,onTrack:i,onTrigger:l}=Le){if(t&&s){const N=t;t=(...$)=>{N(...$),D()}}const a=Me,c=N=>o===!0?N:$t(N,o===!1?1:void 0);let f,u=!1,h=!1;if(je(e)?(f=()=>e.value,u=Ln(e)):_n(e)?(f=()=>c(e),u=!0):oe(e)?(h=!0,u=e.some(N=>_n(N)||Ln(N)),f=()=>e.map(N=>{if(je(N))return N.value;if(_n(N))return c(N);if(se(N))return Nt(N,a,2)})):se(e)?t?f=()=>Nt(e,a,2):f=()=>(p&&p(),it(e,a,3,[v])):f=st,t&&o){const N=f;f=()=>$t(N())}let p,v=N=>{p=g.onStop=()=>{Nt(N,a,4),p=g.onStop=void 0}},S;if(co)if(v=st,t?n&&it(t,a,3,[f(),h?[]:void 0,v]):f(),r==="sync"){const N=wu();S=N.__watcherHandles||(N.__watcherHandles=[])}else return st;let b=h?new Array(e.length).fill(So):So;const T=()=>{if(!(!g.active||!g.dirty))if(t){const N=g.run();(o||u||(h?N.some(($,w)=>Vt($,b[w])):Vt(N,b)))&&(p&&p(),it(t,a,3,[N,b===So?void 0:h&&b[0]===So?[]:b,v]),b=N)}else g.run()};T.allowRecurse=!!t;let y;r==="sync"?y=T:r==="post"?y=()=>Ge(T,a&&a.suspense):(T.pre=!0,a&&(T.id=a.uid),y=()=>qo(T));const g=new qr(f,st,y),C=Qi(),D=()=>{g.stop(),C&&Kr(C.effects,g)};return t?n?T():b=g.run():r==="post"?Ge(g.run.bind(g),a&&a.suspense):g.run(),S&&S.push(D),D}function Su(e,t,n){const o=this.proxy,r=Te(e)?e.includes(".")?Fl(o,e):()=>o[e]:e.bind(o,o);let s;se(t)?s=t:(s=t.handler,n=t);const i=ao(this),l=as(r,s.bind(o),n);return i(),l}function Fl(e,t){const n=t.split(".");return()=>{let o=e;for(let r=0;r{$t(o,t,n)});else if(Wi(e)){for(const o in e)$t(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&$t(e[o],t,n)}return e}const Lu=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${tt(t)}Modifiers`]||e[`${Ut(t)}Modifiers`];function Cu(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||Le;let r=n;const s=t.startsWith("update:"),i=s&&Lu(o,t.slice(7));i&&(i.trim&&(r=n.map(f=>Te(f)?f.trim():f)),i.number&&(r=n.map(Ga)));let l,a=o[l=ir(t)]||o[l=ir(tt(t))];!a&&s&&(a=o[l=ir(Ut(t))]),a&&it(a,e,6,r);const c=o[l+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,it(c,e,6,r)}}function zl(e,t,n=!1){const o=t.emitsCache,r=o.get(e);if(r!==void 0)return r;const s=e.emits;let i={},l=!1;if(!se(e)){const a=c=>{const f=zl(c,t,!0);f&&(l=!0,Ne(i,f))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!s&&!l?(ye(e)&&o.set(e,null),null):(oe(s)?s.forEach(a=>i[a]=null):Ne(i,s),ye(e)&&o.set(e,i),i)}function Qo(e,t){return!e||!eo(t)?!1:(t=t.slice(2).replace(/Once$/,""),de(e,t[0].toLowerCase()+t.slice(1))||de(e,Ut(t))||de(e,t))}function hr(e){const{type:t,vnode:n,proxy:o,withProxy:r,propsOptions:[s],slots:i,attrs:l,emit:a,render:c,renderCache:f,props:u,data:h,setupState:p,ctx:v,inheritAttrs:S}=e,b=$o(e);let T,y;try{if(n.shapeFlag&4){const C=r||o,D=C;T=rt(c.call(D,C,f,u,p,h,v)),y=l}else{const C=t;T=rt(C.length>1?C(u,{attrs:l,slots:i,emit:a}):C(u,null)),y=t.props?l:ku(l)}}catch(C){Bn.length=0,so(C,e,1),T=Q(Ue)}let g=T;if(y&&S!==!1){const C=Object.keys(y),{shapeFlag:D}=g;C.length&&D&7&&(s&&C.some(Wr)&&(y=xu(y,s)),g=Ft(g,y,!1,!0))}return n.dirs&&(g=Ft(g,null,!1,!0),g.dirs=g.dirs?g.dirs.concat(n.dirs):n.dirs),n.transition&&(g.transition=n.transition),T=g,$o(b),T}const ku=e=>{let t;for(const n in e)(n==="class"||n==="style"||eo(n))&&((t||(t={}))[n]=e[n]);return t},xu=(e,t)=>{const n={};for(const o in e)(!Wr(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function Pu(e,t,n){const{props:o,children:r,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 o?qs(o,i,c):!!i;if(a&8){const f=t.dynamicProps;for(let u=0;ue.__isSuspense;function Ul(e,t){t&&t.pendingBranch?oe(e)?t.effects.push(...e):t.effects.push(e):Mc(e)}const be=Symbol.for("v-fgt"),rn=Symbol.for("v-txt"),Ue=Symbol.for("v-cmt"),jn=Symbol.for("v-stc"),Bn=[];let Ze=null;function G(e=!1){Bn.push(Ze=e?null:[])}function Ou(){Bn.pop(),Ze=Bn[Bn.length-1]||null}let qn=1;function Js(e){qn+=e,e<0&&Ze&&(Ze.hasOnce=!0)}function Wl(e){return e.dynamicChildren=qn>0?Ze||mn:null,Ou(),qn>0&&Ze&&Ze.push(e),e}function ne(e,t,n,o,r,s){return Wl(L(e,t,n,o,r,s,!0))}function Pe(e,t,n,o,r){return Wl(Q(e,t,n,o,r,!0))}function jo(e){return e?e.__v_isVNode===!0:!1}function en(e,t){return e.type===t.type&&e.key===t.key}const Kl=({key:e})=>e??null,To=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Te(e)||je(e)||se(e)?{i:$e,r:e,k:t,f:!!n}:e:null);function L(e,t=null,n=null,o=0,r=null,s=e===be?0:1,i=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Kl(t),ref:t&&To(t),scopeId:Jo,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:o,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:$e};return l?(cs(a,n),s&128&&e.normalize(a)):n&&(a.shapeFlag|=Te(n)?8:16),qn>0&&!i&&Ze&&(a.patchFlag>0||s&6)&&a.patchFlag!==32&&Ze.push(a),a}const Q=Ru;function Ru(e,t=null,n=null,o=0,r=null,s=!1){if((!e||e===Yc)&&(e=Ue),jo(e)){const l=Ft(e,t,!0);return n&&cs(l,n),qn>0&&!s&&Ze&&(l.shapeFlag&6?Ze[Ze.indexOf(e)]=l:Ze.push(l)),l.patchFlag=-2,l}if(Uu(e)&&(e=e.__vccOpts),t){t=Iu(t);let{class:l,style:a}=t;l&&!Te(l)&&(t.class=Je(l)),ye(a)&&(ul(a)&&!oe(a)&&(a=Ne({},a)),t.style=no(a))}const i=Te(e)?1:Au(e)?128:hu(e)?64:ye(e)?4:se(e)?2:0;return L(e,t,n,o,r,i,s,!0)}function Iu(e){return e?ul(e)||Rl(e)?Ne({},e):e:null}function Ft(e,t,n=!1,o=!1){const{props:r,ref:s,patchFlag:i,children:l,transition:a}=e,c=t?$u(r||{},t):r,f={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Kl(c),ref:t&&t.ref?n&&s?oe(s)?s.concat(To(t)):[s,To(t)]:To(t):s,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==be?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ft(e.ssContent),ssFallback:e.ssFallback&&Ft(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&o&&No(f,a.clone(f)),f}function qe(e=" ",t=0){return Q(rn,null,e,t)}function Mu(e,t){const n=Q(jn,null,e);return n.staticCount=t,n}function Oe(e="",t=!1){return t?(G(),Pe(Ue,null,e)):Q(Ue,null,e)}function rt(e){return e==null||typeof e=="boolean"?Q(Ue):oe(e)?Q(be,null,e.slice()):typeof e=="object"?It(e):Q(rn,null,String(e))}function It(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ft(e)}function cs(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(oe(t))n=16;else if(typeof t=="object")if(o&65){const r=t.default;r&&(r._c&&(r._d=!1),cs(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!Rl(t)?t._ctx=$e:r===3&&$e&&($e.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else se(t)?(t={default:t,_ctx:$e},n=32):(t=String(t),o&64?(n=16,t=[qe(t)]):n=8);e.children=t,e.shapeFlag|=n}function $u(...e){const t={};for(let n=0;nMe||$e;let Bo,Nr;{const e=Gi(),t=(n,o)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(o),s=>{r.length>1?r.forEach(i=>i(s)):r[0](s)}};Bo=t("__VUE_INSTANCE_SETTERS__",n=>Me=n),Nr=t("__VUE_SSR_SETTERS__",n=>co=n)}const ao=e=>{const t=Me;return Bo(e),e.scope.on(),()=>{e.scope.off(),Bo(t)}},Ys=()=>{Me&&Me.scope.off(),Bo(null)};function Gl(e){return e.vnode.shapeFlag&4}let co=!1;function Vu(e,t=!1,n=!1){t&&Nr(t);const{props:o,children:r}=e.vnode,s=Gl(e);iu(e,o,s,t),uu(e,r,n);const i=s?ju(e,t):void 0;return t&&Nr(!1),i}function ju(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Xc);const{setup:o}=n;if(o){const r=e.setupContext=o.length>1?Fu(e):null,s=ao(e);Wt();const i=Nt(o,e,0,[e.props,r]);if(Kt(),s(),zi(i)){if(i.then(Ys,Ys),t)return i.then(l=>{Qs(e,l,t)}).catch(l=>{so(l,e,0)});e.asyncDep=i}else Qs(e,i,t)}else ql(e,t)}function Qs(e,t,n){se(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ye(t)&&(e.setupState=hl(t)),ql(e,n)}let Xs;function ql(e,t,n){const o=e.type;if(!e.render){if(!t&&Xs&&!o.render){const r=o.template||is(e).template;if(r){const{isCustomElement:s,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:a}=o,c=Ne(Ne({isCustomElement:s,delimiters:l},i),a);o.render=Xs(r,c)}}e.render=o.render||st}{const r=ao(e);Wt();try{Zc(e)}finally{Kt(),r()}}}const Bu={get(e,t){return Ye(e,"get",""),e[t]}};function Fu(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Bu),slots:e.slots,emit:e.emit,expose:t}}function Xo(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(hl(Lc(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Vn)return Vn[n](e)},has(t,n){return n in t||n in Vn}})):e.proxy}function zu(e,t=!0){return se(e)?e.displayName||e.name:e.name||t&&e.__name}function Uu(e){return se(e)&&"__vccOpts"in e}const I=(e,t)=>Cc(e,t,co);function K(e,t,n){const o=arguments.length;return o===2?ye(t)&&!oe(t)?jo(t)?Q(e,null,[t]):Q(e,t):Q(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&jo(n)&&(n=[n]),Q(e,t,n))}const Wu="3.4.38";/** * @vue/runtime-dom v3.4.38 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/const Ku="http://www.w3.org/2000/svg",Gu="http://www.w3.org/1998/Math/MathML",yt=typeof document<"u"?document:null,Zs=yt&&yt.createElement("template"),qu={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const r=t==="svg"?yt.createElementNS(Ku,e):t==="mathml"?yt.createElementNS(Gu,e):n?yt.createElement(e,{is:n}):yt.createElement(e);return e==="select"&&o&&o.multiple!=null&&r.setAttribute("multiple",o.multiple),r},createText:e=>yt.createTextNode(e),createComment:e=>yt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>yt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,r,s){const i=n?n.previousSibling:t.lastChild;if(r&&(r===s||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===s||!(r=r.nextSibling)););else{Zs.innerHTML=o==="svg"?`${e}`:o==="mathml"?`${e}`:e;const l=Zs.content;if(o==="svg"||o==="mathml"){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]}},Tt="transition",Rn="animation",Jn=Symbol("_vtc"),uo=(e,{slots:t})=>K(Vc,Ju(e),t);uo.displayName="Transition";const Yl={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=Ne({},wl,Yl);const Jt=(e,t=[])=>{oe(e)?e.forEach(n=>n(...t)):e&&e(...t)},ei=e=>e?oe(e)?e.some(t=>t.length>1):e.length>1:!1;function Ju(e){const t={};for(const E in e)E in Yl||(t[E]=e[E]);if(e.css===!1)return t;const{name:n="v",type:o,duration:r,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:u=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,v=Yu(r),S=v&&v[0],b=v&&v[1],{onBeforeEnter:T,onEnter:y,onEnterCancelled:g,onLeave:C,onLeaveCancelled:D,onBeforeAppear:N=T,onAppear:$=y,onAppearCancelled:w=g}=t,U=(E,H,te)=>{Yt(E,H?f:l),Yt(E,H?c:i),te&&te()},x=(E,H)=>{E._isLeaving=!1,Yt(E,u),Yt(E,p),Yt(E,h),H&&H()},B=E=>(H,te)=>{const re=E?$:y,M=()=>U(H,E,te);Jt(re,[H,M]),ti(()=>{Yt(H,E?a:s),At(H,E?f:l),ei(re)||ni(H,o,S,M)})};return Ne(t,{onBeforeEnter(E){Jt(T,[E]),At(E,s),At(E,i)},onBeforeAppear(E){Jt(N,[E]),At(E,a),At(E,c)},onEnter:B(!1),onAppear:B(!0),onLeave(E,H){E._isLeaving=!0;const te=()=>x(E,H);At(E,u),At(E,h),Zu(),ti(()=>{E._isLeaving&&(Yt(E,u),At(E,p),ei(C)||ni(E,o,b,te))}),Jt(C,[E,te])},onEnterCancelled(E){U(E,!1),Jt(g,[E])},onAppearCancelled(E){U(E,!0),Jt(w,[E])},onLeaveCancelled(E){x(E),Jt(D,[E])}})}function Yu(e){if(e==null)return null;if(ye(e))return[pr(e.enter),pr(e.leave)];{const t=pr(e);return[t,t]}}function pr(e){return Ja(e)}function At(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Jn]||(e[Jn]=new Set)).add(t)}function Yt(e,t){t.split(/\s+/).forEach(o=>o&&e.classList.remove(o));const n=e[Jn];n&&(n.delete(t),n.size||(e[Jn]=void 0))}function ti(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Qu=0;function ni(e,t,n,o){const r=e._endId=++Qu,s=()=>{r===e._endId&&o()};if(n)return setTimeout(s,n);const{type:i,timeout:l,propCount:a}=Xu(e,t);if(!i)return o();const c=i+"end";let f=0;const u=()=>{e.removeEventListener(c,h),s()},h=p=>{p.target===e&&++f>=a&&u()};setTimeout(()=>{f(n[v]||"").split(", "),r=o(`${Tt}Delay`),s=o(`${Tt}Duration`),i=oi(r,s),l=o(`${Rn}Delay`),a=o(`${Rn}Duration`),c=oi(l,a);let f=null,u=0,h=0;t===Tt?i>0&&(f=Tt,u=i,h=s.length):t===Rn?c>0&&(f=Rn,u=c,h=a.length):(u=Math.max(i,c),f=u>0?i>c?Tt:Rn:null,h=f?f===Tt?s.length:a.length:0);const p=f===Tt&&/\b(transform|all)(,|$)/.test(o(`${Tt}Property`).toString());return{type:f,timeout:u,propCount:h,hasTransform:p}}function oi(e,t){for(;e.lengthri(n)+ri(e[o])))}function ri(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Zu(){return document.body.offsetHeight}function ef(e,t,n){const o=e[Jn];o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Fo=Symbol("_vod"),Ql=Symbol("_vsh"),zo={beforeMount(e,{value:t},{transition:n}){e[Fo]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):In(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),In(e,!0),o.enter(e)):o.leave(e,()=>{In(e,!1)}):In(e,t))},beforeUnmount(e,{value:t}){In(e,t)}};function In(e,t){e.style.display=t?e[Fo]:"none",e[Ql]=!t}const tf=Symbol(""),nf=/(^|;)\s*display\s*:/;function of(e,t,n){const o=e.style,r=Te(n);let s=!1;if(n&&!r){if(t)if(Te(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&Ao(o,l,"")}else for(const i in t)n[i]==null&&Ao(o,i,"");for(const i in n)i==="display"&&(s=!0),Ao(o,i,n[i])}else if(r){if(t!==n){const i=o[tf];i&&(n+=";"+i),o.cssText=n,s=nf.test(n)}}else t&&e.removeAttribute("style");Fo in e&&(e[Fo]=s?o.display:"",e[Ql]&&(o.display="none"))}const si=/\s*!important$/;function Ao(e,t,n){if(oe(n))n.forEach(o=>Ao(e,t,o));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const o=rf(e,t);si.test(n)?e.setProperty(Ut(o),n.replace(si,""),"important"):e[o]=n}}const ii=["Webkit","Moz","ms"],mr={};function rf(e,t){const n=mr[t];if(n)return n;let o=tt(t);if(o!=="filter"&&o in e)return mr[t]=o;o=to(o);for(let r=0;rgr||(ff.then(()=>gr=0),gr=Date.now());function hf(e,t){const n=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=n.attached)return;it(pf(o,n.value),t,5,[o])};return n.value=e,n.attached=df(),n}function pf(e,t){if(oe(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(o=>r=>!r._stopped&&o&&o(r))}else return t}const fi=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,mf=(e,t,n,o,r,s)=>{const i=r==="svg";t==="class"?ef(e,o,i):t==="style"?of(e,n,o):eo(t)?Wr(t)||cf(e,t,n,o,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):gf(e,t,o,i))?(sf(e,t,o),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&ai(e,t,o,i,s,t!=="value")):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),ai(e,t,o,i))};function gf(e,t,n,o){if(o)return!!(t==="innerHTML"||t==="textContent"||t in e&&fi(t)&&se(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return fi(t)&&Te(n)?!1:t in e}const vf={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},_f=(e,t)=>{const n=e._withKeys||(e._withKeys={}),o=t.join(".");return n[o]||(n[o]=r=>{if(!("key"in r))return;const s=Ut(r.key);if(t.some(i=>i===s||vf[i]===s))return e(r)})},bf=Ne({patchProp:mf},qu);let vr,di=!1;function yf(){return vr=di?vr:vu(bf),di=!0,vr}const wf=(...e)=>{const t=yf().createApp(...e),{mount:n}=t;return t.mount=o=>{const r=Sf(o);if(r)return n(r,!0,Ef(r))},t};function Ef(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Sf(e){return Te(e)?document.querySelector(e):e}var fo=e=>/^[a-z][a-z0-9+.-]*:/.test(e)||e.startsWith("//"),Lf=/.md((\?|#).*)?$/,Cf=(e,t="/")=>fo(e)||e.startsWith("/")&&!e.startsWith(t)&&!Lf.test(e),Zo=e=>/^(https?:)?\/\//.test(e),hi=e=>{if(!e||e.endsWith("/"))return e;let t=e.replace(/(^|\/)README.md$/i,"$1index.html");return t.endsWith(".md")?t=t.substring(0,t.length-3)+".html":t.endsWith(".html")||(t=t+".html"),t.endsWith("/index.html")&&(t=t.substring(0,t.length-10)),t},kf="http://.",xf=(e,t)=>{if(!e.startsWith("/")&&t){const n=t.slice(0,t.lastIndexOf("/"));return hi(new URL(`${n}/${e}`,kf).pathname)}return hi(e)},Pf=(e,t)=>{const n=Object.keys(e).sort((o,r)=>{const s=r.split("/").length-o.split("/").length;return s!==0?s:r.length-o.length});for(const o of n)if(t.startsWith(o))return o;return"/"},Tf=/(#|\?)/,Xl=e=>{const[t,...n]=e.split(Tf);return{pathname:t,hashAndQueries:n.join("")}},Af=["link","meta","script","style","noscript","template"],Of=["title","base"],Rf=([e,t,n])=>Of.includes(e)?e:Af.includes(e)?e==="meta"&&t.name?`${e}.${t.name}`:e==="template"&&t.id?`${e}.${t.id}`:JSON.stringify([e,Object.entries(t).map(([o,r])=>typeof r=="boolean"?r?[o,""]:null:[o,r]).filter(o=>o!=null).sort(([o],[r])=>o.localeCompare(r)),n]):null,If=e=>{const t=new Set,n=[];return e.forEach(o=>{const r=Rf(o);r&&!t.has(r)&&(t.add(r),n.push(o))}),n},Mf=e=>e[e.length-1]==="/"||e.endsWith(".html")?e:`${e}/`,Zl=e=>e[e.length-1]==="/"?e.slice(0,-1):e,ea=e=>e[0]==="/"?e.slice(1):e,us=e=>Object.prototype.toString.call(e)==="[object Object]",lt=e=>typeof e=="string";const $f="modulepreload",Hf=function(e){return"/"+e},pi={},ce=function(t,n,o){let r=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const s=document.querySelector("meta[property=csp-nonce]"),i=(s==null?void 0:s.nonce)||(s==null?void 0:s.getAttribute("nonce"));r=Promise.all(n.map(l=>{if(l=Hf(l),l in pi)return;pi[l]=!0;const a=l.endsWith(".css"),c=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${c}`))return;const f=document.createElement("link");if(f.rel=a?"stylesheet":$f,a||(f.as="script",f.crossOrigin=""),f.href=l,i&&f.setAttribute("nonce",i),document.head.appendChild(f),a)return new Promise((u,h)=>{f.addEventListener("load",u),f.addEventListener("error",()=>h(new Error(`Unable to preload CSS for ${l}`)))})}))}return r.then(()=>t()).catch(s=>{const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=s,window.dispatchEvent(i),!i.defaultPrevented)throw s})},Nf=JSON.parse("{}"),Df=Object.fromEntries([["/",{loader:()=>ce(()=>import("./index.html-B5AXf1gE.js"),[]),meta:{title:"Home"}}],["/plugins.html",{loader:()=>ce(()=>import("./plugins.html-Dy0V6pZc.js"),[]),meta:{title:"Official Plugins"}}],["/getting-started/annotation.html",{loader:()=>ce(()=>import("./annotation.html-B9VkPNjT.js"),[]),meta:{title:"Annotating Logs"}}],["/getting-started/capture-data.html",{loader:()=>ce(()=>import("./capture-data.html-Cbg6sLuc.js"),[]),meta:{title:"Capturing Log Data"}}],["/getting-started/concepts.html",{loader:()=>ce(()=>import("./concepts.html-CIEMVjdE.js"),__vite__mapDeps([0,1])),meta:{title:"Concepts"}}],["/getting-started/configuration.html",{loader:()=>ce(()=>import("./configuration.html-BCPckSeE.js"),[]),meta:{title:"Configuration"}}],["/getting-started/filtering.html",{loader:()=>ce(()=>import("./filtering.html-DJFVCZqT.js"),[]),meta:{title:"Filtering Logs"}}],["/getting-started/global-store.html",{loader:()=>ce(()=>import("./global-store.html-B4wd7Ief.js"),[]),meta:{title:"Global Store"}}],["/getting-started/installation.html",{loader:()=>ce(()=>import("./installation.html-C3I8OXbN.js"),[]),meta:{title:"Installing Adze"}}],["/getting-started/introduction.html",{loader:()=>ce(()=>import("./introduction.html-THVUd1K0.js"),__vite__mapDeps([2,3])),meta:{title:"Introduction"}}],["/getting-started/migrating.html",{loader:()=>ce(()=>import("./migrating.html-DwV4K7S-.js"),[]),meta:{title:"Migrating from Adze v1"}}],["/getting-started/putting-it-all-together.html",{loader:()=>ce(()=>import("./putting-it-all-together.html-D1LL_Mqh.js"),[]),meta:{title:"Putting It All Together"}}],["/getting-started/setup.html",{loader:()=>ce(()=>import("./setup.html-DWFI0YCA.js"),[]),meta:{title:"Setting Up Adze"}}],["/getting-started/threading.html",{loader:()=>ce(()=>import("./threading.html-CkUvPmyg.js"),[]),meta:{title:"Log Threading (MDC)"}}],["/getting-started/tools.html",{loader:()=>ce(()=>import("./tools.html-BT4rf4u4.js"),[]),meta:{title:"Tools"}}],["/home/chainable-api.html",{loader:()=>ce(()=>import("./chainable-api.html-CWpVcdvw.js"),[]),meta:{title:""}}],["/home/configurable.html",{loader:()=>ce(()=>import("./configurable.html-BCxonqLM.js"),[]),meta:{title:""}}],["/home/footer.html",{loader:()=>ce(()=>import("./footer.html-BmpmvW-4.js"),[]),meta:{title:""}}],["/home/getting-started-is-easy.html",{loader:()=>ce(()=>import("./getting-started-is-easy.html-FJyZ_Eyr.js"),[]),meta:{title:""}}],["/home/global-store.html",{loader:()=>ce(()=>import("./global-store.html-CYGSUtI2.js"),[]),meta:{title:""}}],["/home/much-more.html",{loader:()=>ce(()=>import("./much-more.html-BLGNnRZ8.js"),[]),meta:{title:""}}],["/home/typescript-first.html",{loader:()=>ce(()=>import("./typescript-first.html-CdL-0Z_m.js"),[]),meta:{title:""}}],["/home/universal.html",{loader:()=>ce(()=>import("./universal.html-BnhSKAGR.js"),[]),meta:{title:""}}],["/reference/configuration.html",{loader:()=>ce(()=>import("./configuration.html-DyxslJu-.js"),[]),meta:{title:"Configuration"}}],["/reference/formatters.html",{loader:()=>ce(()=>import("./formatters.html-BKk4NljL.js"),__vite__mapDeps([4,3])),meta:{title:"Formatters"}}],["/reference/getters.html",{loader:()=>ce(()=>import("./getters.html-Co3fsBHy.js"),[]),meta:{title:"Data Getters"}}],["/reference/global-store.html",{loader:()=>ce(()=>import("./global-store.html-BuWZ5jRt.js"),[]),meta:{title:"Global Store"}}],["/reference/introduction.html",{loader:()=>ce(()=>import("./introduction.html-BOMqORSj.js"),__vite__mapDeps([5,1])),meta:{title:"Introduction & Lifecycle"}}],["/reference/log-class.html",{loader:()=>ce(()=>import("./log-class.html-CzVBugZG.js"),[]),meta:{title:"Log Class"}}],["/reference/micro-frontends.html",{loader:()=>ce(()=>import("./micro-frontends.html-Bva5-4P-.js"),[]),meta:{title:"Micro-Frontends"}}],["/reference/middleware.html",{loader:()=>ce(()=>import("./middleware.html-nGVVd46T.js"),[]),meta:{title:"Middleware"}}],["/reference/modifiers.html",{loader:()=>ce(()=>import("./modifiers.html-DqsEp6sn.js"),[]),meta:{title:"Modifiers"}}],["/reference/terminators.html",{loader:()=>ce(()=>import("./terminators.html-D1xze_qb.js"),[]),meta:{title:"Terminators"}}],["/reference/tools.html",{loader:()=>ce(()=>import("./tools.html-B7TU3Lny.js"),[]),meta:{title:"Tools"}}],["/reference/unit-testing.html",{loader:()=>ce(()=>import("./unit-testing.html-Clg3O9-p.js"),[]),meta:{title:"Unit Testing"}}],["/404.html",{loader:()=>ce(()=>import("./404.html-Ca0QnY7N.js"),[]),meta:{title:""}}]]);/*! +**/const Ku="http://www.w3.org/2000/svg",Gu="http://www.w3.org/1998/Math/MathML",yt=typeof document<"u"?document:null,Zs=yt&&yt.createElement("template"),qu={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const r=t==="svg"?yt.createElementNS(Ku,e):t==="mathml"?yt.createElementNS(Gu,e):n?yt.createElement(e,{is:n}):yt.createElement(e);return e==="select"&&o&&o.multiple!=null&&r.setAttribute("multiple",o.multiple),r},createText:e=>yt.createTextNode(e),createComment:e=>yt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>yt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,r,s){const i=n?n.previousSibling:t.lastChild;if(r&&(r===s||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===s||!(r=r.nextSibling)););else{Zs.innerHTML=o==="svg"?`${e}`:o==="mathml"?`${e}`:e;const l=Zs.content;if(o==="svg"||o==="mathml"){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]}},Tt="transition",Rn="animation",Jn=Symbol("_vtc"),uo=(e,{slots:t})=>K(Dc,Ju(e),t);uo.displayName="Transition";const Jl={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=Ne({},wl,Jl);const Jt=(e,t=[])=>{oe(e)?e.forEach(n=>n(...t)):e&&e(...t)},ei=e=>e?oe(e)?e.some(t=>t.length>1):e.length>1:!1;function Ju(e){const t={};for(const E in e)E in Jl||(t[E]=e[E]);if(e.css===!1)return t;const{name:n="v",type:o,duration:r,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:u=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,v=Yu(r),S=v&&v[0],b=v&&v[1],{onBeforeEnter:T,onEnter:y,onEnterCancelled:g,onLeave:C,onLeaveCancelled:D,onBeforeAppear:N=T,onAppear:$=y,onAppearCancelled:w=g}=t,U=(E,H,te)=>{Yt(E,H?f:l),Yt(E,H?c:i),te&&te()},x=(E,H)=>{E._isLeaving=!1,Yt(E,u),Yt(E,p),Yt(E,h),H&&H()},B=E=>(H,te)=>{const re=E?$:y,M=()=>U(H,E,te);Jt(re,[H,M]),ti(()=>{Yt(H,E?a:s),At(H,E?f:l),ei(re)||ni(H,o,S,M)})};return Ne(t,{onBeforeEnter(E){Jt(T,[E]),At(E,s),At(E,i)},onBeforeAppear(E){Jt(N,[E]),At(E,a),At(E,c)},onEnter:B(!1),onAppear:B(!0),onLeave(E,H){E._isLeaving=!0;const te=()=>x(E,H);At(E,u),At(E,h),Zu(),ti(()=>{E._isLeaving&&(Yt(E,u),At(E,p),ei(C)||ni(E,o,b,te))}),Jt(C,[E,te])},onEnterCancelled(E){U(E,!1),Jt(g,[E])},onAppearCancelled(E){U(E,!0),Jt(w,[E])},onLeaveCancelled(E){x(E),Jt(D,[E])}})}function Yu(e){if(e==null)return null;if(ye(e))return[pr(e.enter),pr(e.leave)];{const t=pr(e);return[t,t]}}function pr(e){return qa(e)}function At(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Jn]||(e[Jn]=new Set)).add(t)}function Yt(e,t){t.split(/\s+/).forEach(o=>o&&e.classList.remove(o));const n=e[Jn];n&&(n.delete(t),n.size||(e[Jn]=void 0))}function ti(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Qu=0;function ni(e,t,n,o){const r=e._endId=++Qu,s=()=>{r===e._endId&&o()};if(n)return setTimeout(s,n);const{type:i,timeout:l,propCount:a}=Xu(e,t);if(!i)return o();const c=i+"end";let f=0;const u=()=>{e.removeEventListener(c,h),s()},h=p=>{p.target===e&&++f>=a&&u()};setTimeout(()=>{f(n[v]||"").split(", "),r=o(`${Tt}Delay`),s=o(`${Tt}Duration`),i=oi(r,s),l=o(`${Rn}Delay`),a=o(`${Rn}Duration`),c=oi(l,a);let f=null,u=0,h=0;t===Tt?i>0&&(f=Tt,u=i,h=s.length):t===Rn?c>0&&(f=Rn,u=c,h=a.length):(u=Math.max(i,c),f=u>0?i>c?Tt:Rn:null,h=f?f===Tt?s.length:a.length:0);const p=f===Tt&&/\b(transform|all)(,|$)/.test(o(`${Tt}Property`).toString());return{type:f,timeout:u,propCount:h,hasTransform:p}}function oi(e,t){for(;e.lengthri(n)+ri(e[o])))}function ri(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Zu(){return document.body.offsetHeight}function ef(e,t,n){const o=e[Jn];o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Fo=Symbol("_vod"),Yl=Symbol("_vsh"),zo={beforeMount(e,{value:t},{transition:n}){e[Fo]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):In(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),In(e,!0),o.enter(e)):o.leave(e,()=>{In(e,!1)}):In(e,t))},beforeUnmount(e,{value:t}){In(e,t)}};function In(e,t){e.style.display=t?e[Fo]:"none",e[Yl]=!t}const tf=Symbol(""),nf=/(^|;)\s*display\s*:/;function of(e,t,n){const o=e.style,r=Te(n);let s=!1;if(n&&!r){if(t)if(Te(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&Ao(o,l,"")}else for(const i in t)n[i]==null&&Ao(o,i,"");for(const i in n)i==="display"&&(s=!0),Ao(o,i,n[i])}else if(r){if(t!==n){const i=o[tf];i&&(n+=";"+i),o.cssText=n,s=nf.test(n)}}else t&&e.removeAttribute("style");Fo in e&&(e[Fo]=s?o.display:"",e[Yl]&&(o.display="none"))}const si=/\s*!important$/;function Ao(e,t,n){if(oe(n))n.forEach(o=>Ao(e,t,o));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const o=rf(e,t);si.test(n)?e.setProperty(Ut(o),n.replace(si,""),"important"):e[o]=n}}const ii=["Webkit","Moz","ms"],mr={};function rf(e,t){const n=mr[t];if(n)return n;let o=tt(t);if(o!=="filter"&&o in e)return mr[t]=o;o=to(o);for(let r=0;rgr||(ff.then(()=>gr=0),gr=Date.now());function hf(e,t){const n=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=n.attached)return;it(pf(o,n.value),t,5,[o])};return n.value=e,n.attached=df(),n}function pf(e,t){if(oe(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(o=>r=>!r._stopped&&o&&o(r))}else return t}const fi=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,mf=(e,t,n,o,r,s)=>{const i=r==="svg";t==="class"?ef(e,o,i):t==="style"?of(e,n,o):eo(t)?Wr(t)||cf(e,t,n,o,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):gf(e,t,o,i))?(sf(e,t,o),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&ai(e,t,o,i,s,t!=="value")):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),ai(e,t,o,i))};function gf(e,t,n,o){if(o)return!!(t==="innerHTML"||t==="textContent"||t in e&&fi(t)&&se(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return fi(t)&&Te(n)?!1:t in e}const vf={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},_f=(e,t)=>{const n=e._withKeys||(e._withKeys={}),o=t.join(".");return n[o]||(n[o]=r=>{if(!("key"in r))return;const s=Ut(r.key);if(t.some(i=>i===s||vf[i]===s))return e(r)})},bf=Ne({patchProp:mf},qu);let vr,di=!1;function yf(){return vr=di?vr:vu(bf),di=!0,vr}const wf=(...e)=>{const t=yf().createApp(...e),{mount:n}=t;return t.mount=o=>{const r=Sf(o);if(r)return n(r,!0,Ef(r))},t};function Ef(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Sf(e){return Te(e)?document.querySelector(e):e}var fo=e=>/^[a-z][a-z0-9+.-]*:/.test(e)||e.startsWith("//"),Lf=/.md((\?|#).*)?$/,Cf=(e,t="/")=>fo(e)||e.startsWith("/")&&!e.startsWith(t)&&!Lf.test(e),Zo=e=>/^(https?:)?\/\//.test(e),hi=e=>{if(!e||e.endsWith("/"))return e;let t=e.replace(/(^|\/)README.md$/i,"$1index.html");return t.endsWith(".md")?t=t.substring(0,t.length-3)+".html":t.endsWith(".html")||(t=t+".html"),t.endsWith("/index.html")&&(t=t.substring(0,t.length-10)),t},kf="http://.",xf=(e,t)=>{if(!e.startsWith("/")&&t){const n=t.slice(0,t.lastIndexOf("/"));return hi(new URL(`${n}/${e}`,kf).pathname)}return hi(e)},Pf=(e,t)=>{const n=Object.keys(e).sort((o,r)=>{const s=r.split("/").length-o.split("/").length;return s!==0?s:r.length-o.length});for(const o of n)if(t.startsWith(o))return o;return"/"},Tf=/(#|\?)/,Ql=e=>{const[t,...n]=e.split(Tf);return{pathname:t,hashAndQueries:n.join("")}},Af=["link","meta","script","style","noscript","template"],Of=["title","base"],Rf=([e,t,n])=>Of.includes(e)?e:Af.includes(e)?e==="meta"&&t.name?`${e}.${t.name}`:e==="template"&&t.id?`${e}.${t.id}`:JSON.stringify([e,Object.entries(t).map(([o,r])=>typeof r=="boolean"?r?[o,""]:null:[o,r]).filter(o=>o!=null).sort(([o],[r])=>o.localeCompare(r)),n]):null,If=e=>{const t=new Set,n=[];return e.forEach(o=>{const r=Rf(o);r&&!t.has(r)&&(t.add(r),n.push(o))}),n},Mf=e=>e[e.length-1]==="/"||e.endsWith(".html")?e:`${e}/`,Xl=e=>e[e.length-1]==="/"?e.slice(0,-1):e,Zl=e=>e[0]==="/"?e.slice(1):e,us=e=>Object.prototype.toString.call(e)==="[object Object]",lt=e=>typeof e=="string";const $f="modulepreload",Hf=function(e){return"/"+e},pi={},ce=function(t,n,o){let r=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const s=document.querySelector("meta[property=csp-nonce]"),i=(s==null?void 0:s.nonce)||(s==null?void 0:s.getAttribute("nonce"));r=Promise.all(n.map(l=>{if(l=Hf(l),l in pi)return;pi[l]=!0;const a=l.endsWith(".css"),c=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${c}`))return;const f=document.createElement("link");if(f.rel=a?"stylesheet":$f,a||(f.as="script",f.crossOrigin=""),f.href=l,i&&f.setAttribute("nonce",i),document.head.appendChild(f),a)return new Promise((u,h)=>{f.addEventListener("load",u),f.addEventListener("error",()=>h(new Error(`Unable to preload CSS for ${l}`)))})}))}return r.then(()=>t()).catch(s=>{const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=s,window.dispatchEvent(i),!i.defaultPrevented)throw s})},Nf=JSON.parse("{}"),Df=Object.fromEntries([["/",{loader:()=>ce(()=>import("./index.html-Dbd59c1h.js"),[]),meta:{title:"Home"}}],["/plugins.html",{loader:()=>ce(()=>import("./plugins.html-CrSMwGT8.js"),[]),meta:{title:"Official Plugins"}}],["/getting-started/annotation.html",{loader:()=>ce(()=>import("./annotation.html-CqcVQA35.js"),[]),meta:{title:"Annotating Logs"}}],["/getting-started/capture-data.html",{loader:()=>ce(()=>import("./capture-data.html-DgfSfL3S.js"),[]),meta:{title:"Capturing Log Data"}}],["/getting-started/concepts.html",{loader:()=>ce(()=>import("./concepts.html-BemSlxQu.js"),__vite__mapDeps([0,1])),meta:{title:"Concepts"}}],["/getting-started/configuration.html",{loader:()=>ce(()=>import("./configuration.html-DpPySues.js"),[]),meta:{title:"Configuration"}}],["/getting-started/filtering.html",{loader:()=>ce(()=>import("./filtering.html-BLTSNKht.js"),[]),meta:{title:"Filtering Logs"}}],["/getting-started/global-store.html",{loader:()=>ce(()=>import("./global-store.html-CSjJp1Ur.js"),[]),meta:{title:"Global Store"}}],["/getting-started/installation.html",{loader:()=>ce(()=>import("./installation.html-75Y0CrjR.js"),[]),meta:{title:"Installing Adze"}}],["/getting-started/introduction.html",{loader:()=>ce(()=>import("./introduction.html-Bdn4keSF.js"),__vite__mapDeps([2,3])),meta:{title:"Introduction"}}],["/getting-started/migrating.html",{loader:()=>ce(()=>import("./migrating.html-BBp8_78D.js"),[]),meta:{title:"Migrating from Adze v1"}}],["/getting-started/putting-it-all-together.html",{loader:()=>ce(()=>import("./putting-it-all-together.html-DCWNl5E3.js"),[]),meta:{title:"Putting It All Together"}}],["/getting-started/setup.html",{loader:()=>ce(()=>import("./setup.html-D0Vi7yC_.js"),[]),meta:{title:"Setting Up Adze"}}],["/getting-started/threading.html",{loader:()=>ce(()=>import("./threading.html-cset5e2V.js"),[]),meta:{title:"Log Threading (MDC)"}}],["/getting-started/tools.html",{loader:()=>ce(()=>import("./tools.html-BkvJzRCr.js"),[]),meta:{title:"Tools"}}],["/home/chainable-api.html",{loader:()=>ce(()=>import("./chainable-api.html-DQ6A1bLV.js"),[]),meta:{title:""}}],["/home/configurable.html",{loader:()=>ce(()=>import("./configurable.html-DyZv6ipe.js"),[]),meta:{title:""}}],["/home/footer.html",{loader:()=>ce(()=>import("./footer.html-Ca7mFpwf.js"),[]),meta:{title:""}}],["/home/getting-started-is-easy.html",{loader:()=>ce(()=>import("./getting-started-is-easy.html-DeYolDfw.js"),[]),meta:{title:""}}],["/home/global-store.html",{loader:()=>ce(()=>import("./global-store.html-DTY6bE3e.js"),[]),meta:{title:""}}],["/home/much-more.html",{loader:()=>ce(()=>import("./much-more.html-CsjN2s8L.js"),[]),meta:{title:""}}],["/home/typescript-first.html",{loader:()=>ce(()=>import("./typescript-first.html-Cjedr06T.js"),[]),meta:{title:""}}],["/home/universal.html",{loader:()=>ce(()=>import("./universal.html-XVu01gHJ.js"),[]),meta:{title:""}}],["/reference/configuration.html",{loader:()=>ce(()=>import("./configuration.html-BSj8CQu9.js"),[]),meta:{title:"Configuration"}}],["/reference/formatters.html",{loader:()=>ce(()=>import("./formatters.html-BSTOgFuG.js"),__vite__mapDeps([4,3])),meta:{title:"Formatters"}}],["/reference/getters.html",{loader:()=>ce(()=>import("./getters.html-ce0HfsWw.js"),[]),meta:{title:"Data Getters"}}],["/reference/global-store.html",{loader:()=>ce(()=>import("./global-store.html-BZonpzMK.js"),[]),meta:{title:"Global Store"}}],["/reference/introduction.html",{loader:()=>ce(()=>import("./introduction.html-D36B9gU8.js"),__vite__mapDeps([5,1])),meta:{title:"Introduction & Lifecycle"}}],["/reference/log-class.html",{loader:()=>ce(()=>import("./log-class.html-DBsD6elV.js"),[]),meta:{title:"Log Class"}}],["/reference/micro-frontends.html",{loader:()=>ce(()=>import("./micro-frontends.html-lQCoWmkT.js"),[]),meta:{title:"Micro-Frontends"}}],["/reference/middleware.html",{loader:()=>ce(()=>import("./middleware.html-CrcRp4g6.js"),[]),meta:{title:"Middleware"}}],["/reference/modifiers.html",{loader:()=>ce(()=>import("./modifiers.html-4RHpwnhU.js"),[]),meta:{title:"Modifiers"}}],["/reference/terminators.html",{loader:()=>ce(()=>import("./terminators.html-BXhnZQtH.js"),[]),meta:{title:"Terminators"}}],["/reference/tools.html",{loader:()=>ce(()=>import("./tools.html-BbAJLJ6L.js"),[]),meta:{title:"Tools"}}],["/reference/unit-testing.html",{loader:()=>ce(()=>import("./unit-testing.html-D1dxnWs-.js"),[]),meta:{title:"Unit Testing"}}],["/404.html",{loader:()=>ce(()=>import("./404.html-DtHvz_I5.js"),[]),meta:{title:""}}]]);/*! * vue-router v4.4.3 * (c) 2024 Eduardo San Martin Morote * @license MIT - */const pn=typeof document<"u";function Vf(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const ge=Object.assign;function _r(e,t){const n={};for(const o in t){const r=t[o];n[o]=ut(r)?r.map(e):e(r)}return n}const Fn=()=>{},ut=Array.isArray,ta=/#/g,jf=/&/g,Bf=/\//g,Ff=/=/g,zf=/\?/g,na=/\+/g,Uf=/%5B/g,Wf=/%5D/g,oa=/%5E/g,Kf=/%60/g,ra=/%7B/g,Gf=/%7C/g,sa=/%7D/g,qf=/%20/g;function fs(e){return encodeURI(""+e).replace(Gf,"|").replace(Uf,"[").replace(Wf,"]")}function Jf(e){return fs(e).replace(ra,"{").replace(sa,"}").replace(oa,"^")}function Dr(e){return fs(e).replace(na,"%2B").replace(qf,"+").replace(ta,"%23").replace(jf,"%26").replace(Kf,"`").replace(ra,"{").replace(sa,"}").replace(oa,"^")}function Yf(e){return Dr(e).replace(Ff,"%3D")}function Qf(e){return fs(e).replace(ta,"%23").replace(zf,"%3F")}function Xf(e){return e==null?"":Qf(e).replace(Bf,"%2F")}function Yn(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const Zf=/\/$/,ed=e=>e.replace(Zf,"");function br(e,t,n="/"){let o,r={},s="",i="";const l=t.indexOf("#");let a=t.indexOf("?");return l=0&&(a=-1),a>-1&&(o=t.slice(0,a),s=t.slice(a+1,l>-1?l:t.length),r=e(s)),l>-1&&(o=o||t.slice(0,l),i=t.slice(l,t.length)),o=rd(o??t,n),{fullPath:o+(s&&"?")+s+i,path:o,query:r,hash:Yn(i)}}function td(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function mi(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function nd(e,t,n){const o=t.matched.length-1,r=n.matched.length-1;return o>-1&&o===r&&Cn(t.matched[o],n.matched[r])&&ia(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Cn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function ia(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!od(e[n],t[n]))return!1;return!0}function od(e,t){return ut(e)?gi(e,t):ut(t)?gi(t,e):e===t}function gi(e,t){return ut(t)?e.length===t.length&&e.every((n,o)=>n===t[o]):e.length===1&&e[0]===t}function rd(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),o=e.split("/"),r=o[o.length-1];(r===".."||r===".")&&o.push("");let s=n.length-1,i,l;for(i=0;i1&&s--;else break;return n.slice(0,s).join("/")+"/"+o.slice(i).join("/")}const bt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var Qn;(function(e){e.pop="pop",e.push="push"})(Qn||(Qn={}));var zn;(function(e){e.back="back",e.forward="forward",e.unknown=""})(zn||(zn={}));function sd(e){if(!e)if(pn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),ed(e)}const id=/^[^#]+#/;function ld(e,t){return e.replace(id,"#")+t}function ad(e,t){const n=document.documentElement.getBoundingClientRect(),o=e.getBoundingClientRect();return{behavior:t.behavior,left:o.left-n.left-(t.left||0),top:o.top-n.top-(t.top||0)}}const er=()=>({left:window.scrollX,top:window.scrollY});function cd(e){let t;if("el"in e){const n=e.el,o=typeof n=="string"&&n.startsWith("#"),r=typeof n=="string"?o?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!r)return;t=ad(r,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function vi(e,t){return(history.state?history.state.position-t:-1)+e}const Vr=new Map;function ud(e,t){Vr.set(e,t)}function fd(e){const t=Vr.get(e);return Vr.delete(e),t}let dd=()=>location.protocol+"//"+location.host;function la(e,t){const{pathname:n,search:o,hash:r}=t,s=e.indexOf("#");if(s>-1){let l=r.includes(e.slice(s))?e.slice(s).length:1,a=r.slice(l);return a[0]!=="/"&&(a="/"+a),mi(a,"")}return mi(n,e)+o+r}function hd(e,t,n,o){let r=[],s=[],i=null;const l=({state:h})=>{const p=la(e,location),v=n.value,S=t.value;let b=0;if(h){if(n.value=p,t.value=h,i&&i===v){i=null;return}b=S?h.position-S.position:0}else o(p);r.forEach(T=>{T(n.value,v,{delta:b,type:Qn.pop,direction:b?b>0?zn.forward:zn.back:zn.unknown})})};function a(){i=n.value}function c(h){r.push(h);const p=()=>{const v=r.indexOf(h);v>-1&&r.splice(v,1)};return s.push(p),p}function f(){const{history:h}=window;h.state&&h.replaceState(ge({},h.state,{scroll:er()}),"")}function u(){for(const h of s)h();s=[],window.removeEventListener("popstate",l),window.removeEventListener("beforeunload",f)}return window.addEventListener("popstate",l),window.addEventListener("beforeunload",f,{passive:!0}),{pauseListeners:a,listen:c,destroy:u}}function _i(e,t,n,o=!1,r=!1){return{back:e,current:t,forward:n,replaced:o,position:window.history.length,scroll:r?er():null}}function pd(e){const{history:t,location:n}=window,o={value:la(e,n)},r={value:t.state};r.value||s(o.value,{back:null,current:o.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function s(a,c,f){const u=e.indexOf("#"),h=u>-1?(n.host&&document.querySelector("base")?e:e.slice(u))+a:dd()+e+a;try{t[f?"replaceState":"pushState"](c,"",h),r.value=c}catch(p){console.error(p),n[f?"replace":"assign"](h)}}function i(a,c){const f=ge({},t.state,_i(r.value.back,a,r.value.forward,!0),c,{position:r.value.position});s(a,f,!0),o.value=a}function l(a,c){const f=ge({},r.value,t.state,{forward:a,scroll:er()});s(f.current,f,!0);const u=ge({},_i(o.value,a,null),{position:f.position+1},c);s(a,u,!1),o.value=a}return{location:o,state:r,push:l,replace:i}}function md(e){e=sd(e);const t=pd(e),n=hd(e,t.state,t.location,t.replace);function o(s,i=!0){i||n.pauseListeners(),history.go(s)}const r=ge({location:"",base:e,go:o,createHref:ld.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}function gd(e){return typeof e=="string"||e&&typeof e=="object"}function aa(e){return typeof e=="string"||typeof e=="symbol"}const ca=Symbol("");var bi;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(bi||(bi={}));function kn(e,t){return ge(new Error,{type:e,[ca]:!0},t)}function _t(e,t){return e instanceof Error&&ca in e&&(t==null||!!(e.type&t))}const yi="[^/]+?",vd={sensitive:!1,strict:!1,start:!0,end:!0},_d=/[.+*?^${}()[\]/\\]/g;function bd(e,t){const n=ge({},vd,t),o=[];let r=n.start?"^":"";const s=[];for(const c of e){const f=c.length?[]:[90];n.strict&&!c.length&&(r+="/");for(let u=0;ut.length?t.length===1&&t[0]===80?1:-1:0}function ua(e,t){let n=0;const o=e.score,r=t.score;for(;n0&&t[t.length-1]<0}const wd={type:0,value:""},Ed=/[a-zA-Z0-9_]/;function Sd(e){if(!e)return[[]];if(e==="/")return[[wd]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(p){throw new Error(`ERR (${n})/"${c}": ${p}`)}let n=0,o=n;const r=[];let s;function i(){s&&r.push(s),s=[]}let l=0,a,c="",f="";function u(){c&&(n===0?s.push({type:0,value:c}):n===1||n===2||n===3?(s.length>1&&(a==="*"||a==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),s.push({type:1,value:c,regexp:f,repeatable:a==="*"||a==="+",optional:a==="*"||a==="?"})):t("Invalid state to consume buffer"),c="")}function h(){c+=a}for(;l{i(g)}:Fn}function i(u){if(aa(u)){const h=o.get(u);h&&(o.delete(u),n.splice(n.indexOf(h),1),h.children.forEach(i),h.alias.forEach(i))}else{const h=n.indexOf(u);h>-1&&(n.splice(h,1),u.record.name&&o.delete(u.record.name),u.children.forEach(i),u.alias.forEach(i))}}function l(){return n}function a(u){const h=Td(u,n);n.splice(h,0,u),u.record.name&&!Si(u)&&o.set(u.record.name,u)}function c(u,h){let p,v={},S,b;if("name"in u&&u.name){if(p=o.get(u.name),!p)throw kn(1,{location:u});b=p.record.name,v=ge(Ei(h.params,p.keys.filter(g=>!g.optional).concat(p.parent?p.parent.keys.filter(g=>g.optional):[]).map(g=>g.name)),u.params&&Ei(u.params,p.keys.map(g=>g.name))),S=p.stringify(v)}else if(u.path!=null)S=u.path,p=n.find(g=>g.re.test(S)),p&&(v=p.parse(S),b=p.record.name);else{if(p=h.name?o.get(h.name):n.find(g=>g.re.test(h.path)),!p)throw kn(1,{location:u,currentLocation:h});b=p.record.name,v=ge({},h.params,u.params),S=p.stringify(v)}const T=[];let y=p;for(;y;)T.unshift(y.record),y=y.parent;return{name:b,path:S,params:v,matched:T,meta:Pd(T)}}e.forEach(u=>s(u));function f(){n.length=0,o.clear()}return{addRoute:s,resolve:c,removeRoute:i,clearRoutes:f,getRoutes:l,getRecordMatcher:r}}function Ei(e,t){const n={};for(const o of t)o in e&&(n[o]=e[o]);return n}function kd(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:xd(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function xd(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const o in e.components)t[o]=typeof n=="object"?n[o]:n;return t}function Si(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Pd(e){return e.reduce((t,n)=>ge(t,n.meta),{})}function Li(e,t){const n={};for(const o in e)n[o]=o in t?t[o]:e[o];return n}function Td(e,t){let n=0,o=t.length;for(;n!==o;){const s=n+o>>1;ua(e,t[s])<0?o=s:n=s+1}const r=Ad(e);return r&&(o=t.lastIndexOf(r,o-1)),o}function Ad(e){let t=e;for(;t=t.parent;)if(fa(t)&&ua(e,t)===0)return t}function fa({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Od(e){const t={};if(e===""||e==="?")return t;const o=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&Dr(s)):[o&&Dr(o)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function Rd(e){const t={};for(const n in e){const o=e[n];o!==void 0&&(t[n]=ut(o)?o.map(r=>r==null?null:""+r):o==null?o:""+o)}return t}const Id=Symbol(""),ki=Symbol(""),tr=Symbol(""),ds=Symbol(""),jr=Symbol("");function Mn(){let e=[];function t(o){return e.push(o),()=>{const r=e.indexOf(o);r>-1&&e.splice(r,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Mt(e,t,n,o,r,s=i=>i()){const i=o&&(o.enterCallbacks[r]=o.enterCallbacks[r]||[]);return()=>new Promise((l,a)=>{const c=h=>{h===!1?a(kn(4,{from:n,to:t})):h instanceof Error?a(h):gd(h)?a(kn(2,{from:t,to:h})):(i&&o.enterCallbacks[r]===i&&typeof h=="function"&&i.push(h),l())},f=s(()=>e.call(o&&o.instances[r],t,n,c));let u=Promise.resolve(f);e.length<3&&(u=u.then(c)),u.catch(h=>a(h))})}function yr(e,t,n,o,r=s=>s()){const s=[];for(const i of e)for(const l in i.components){let a=i.components[l];if(!(t!=="beforeRouteEnter"&&!i.instances[l]))if(Md(a)){const f=(a.__vccOpts||a)[t];f&&s.push(Mt(f,n,o,i,l,r))}else{let c=a();s.push(()=>c.then(f=>{if(!f)return Promise.reject(new Error(`Couldn't resolve component "${l}" at "${i.path}"`));const u=Vf(f)?f.default:f;i.components[l]=u;const p=(u.__vccOpts||u)[t];return p&&Mt(p,n,o,i,l,r)()}))}}return s}function Md(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function xi(e){const t=He(tr),n=He(ds),o=I(()=>{const a=on(e.to);return t.resolve(a)}),r=I(()=>{const{matched:a}=o.value,{length:c}=a,f=a[c-1],u=n.matched;if(!f||!u.length)return-1;const h=u.findIndex(Cn.bind(null,f));if(h>-1)return h;const p=Pi(a[c-2]);return c>1&&Pi(f)===p&&u[u.length-1].path!==p?u.findIndex(Cn.bind(null,a[c-2])):h}),s=I(()=>r.value>-1&&Dd(n.params,o.value.params)),i=I(()=>r.value>-1&&r.value===n.matched.length-1&&ia(n.params,o.value.params));function l(a={}){return Nd(a)?t[on(e.replace)?"replace":"push"](on(e.to)).catch(Fn):Promise.resolve()}return{route:o,href:I(()=>o.value.href),isActive:s,isExactActive:i,navigate:l}}const $d=he({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:xi,setup(e,{slots:t}){const n=oo(xi(e)),{options:o}=He(tr),r=I(()=>({[Ti(e.activeClass,o.linkActiveClass,"router-link-active")]:n.isActive,[Ti(e.exactActiveClass,o.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const s=t.default&&t.default(n);return e.custom?s:K("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},s)}}}),Hd=$d;function Nd(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Dd(e,t){for(const n in t){const o=t[n],r=e[n];if(typeof o=="string"){if(o!==r)return!1}else if(!ut(r)||r.length!==o.length||o.some((s,i)=>s!==r[i]))return!1}return!0}function Pi(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Ti=(e,t,n)=>e??t??n,Vd=he({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const o=He(jr),r=I(()=>e.route||o.value),s=He(ki,0),i=I(()=>{let c=on(s);const{matched:f}=r.value;let u;for(;(u=f[c])&&!u.components;)c++;return c}),l=I(()=>r.value.matched[i.value]);Dt(ki,I(()=>i.value+1)),Dt(Id,l),Dt(jr,r);const a=ie();return Ce(()=>[a.value,l.value,e.name],([c,f,u],[h,p,v])=>{f&&(f.instances[u]=c,p&&p!==f&&c&&c===h&&(f.leaveGuards.size||(f.leaveGuards=p.leaveGuards),f.updateGuards.size||(f.updateGuards=p.updateGuards))),c&&f&&(!p||!Cn(f,p)||!h)&&(f.enterCallbacks[u]||[]).forEach(S=>S(c))},{flush:"post"}),()=>{const c=r.value,f=e.name,u=l.value,h=u&&u.components[f];if(!h)return Ai(n.default,{Component:h,route:c});const p=u.props[f],v=p?p===!0?c.params:typeof p=="function"?p(c):p:null,b=K(h,ge({},v,t,{onVnodeUnmounted:T=>{T.component.isUnmounted&&(u.instances[f]=null)},ref:a}));return Ai(n.default,{Component:b,route:c})||b}}});function Ai(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const jd=Vd;function Bd(e){const t=Cd(e.routes,e),n=e.parseQuery||Od,o=e.stringifyQuery||Ci,r=e.history,s=Mn(),i=Mn(),l=Mn(),a=jt(bt);let c=bt;pn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=_r.bind(null,P=>""+P),u=_r.bind(null,Xf),h=_r.bind(null,Yn);function p(P,W){let F,Y;return aa(P)?(F=t.getRecordMatcher(P),Y=W):Y=P,t.addRoute(Y,F)}function v(P){const W=t.getRecordMatcher(P);W&&t.removeRoute(W)}function S(){return t.getRoutes().map(P=>P.record)}function b(P){return!!t.getRecordMatcher(P)}function T(P,W){if(W=ge({},W||a.value),typeof P=="string"){const m=br(n,P,W.path),_=t.resolve({path:m.path},W),A=r.createHref(m.fullPath);return ge(m,_,{params:h(_.params),hash:Yn(m.hash),redirectedFrom:void 0,href:A})}let F;if(P.path!=null)F=ge({},P,{path:br(n,P.path,W.path).path});else{const m=ge({},P.params);for(const _ in m)m[_]==null&&delete m[_];F=ge({},P,{params:u(m)}),W.params=u(W.params)}const Y=t.resolve(F,W),ue=P.hash||"";Y.params=f(h(Y.params));const ve=td(o,ge({},P,{hash:Jf(ue),path:Y.path})),d=r.createHref(ve);return ge({fullPath:ve,hash:ue,query:o===Ci?Rd(P.query):P.query||{}},Y,{redirectedFrom:void 0,href:d})}function y(P){return typeof P=="string"?br(n,P,a.value.path):ge({},P)}function g(P,W){if(c!==P)return kn(8,{from:W,to:P})}function C(P){return $(P)}function D(P){return C(ge(y(P),{replace:!0}))}function N(P){const W=P.matched[P.matched.length-1];if(W&&W.redirect){const{redirect:F}=W;let Y=typeof F=="function"?F(P):F;return typeof Y=="string"&&(Y=Y.includes("?")||Y.includes("#")?Y=y(Y):{path:Y},Y.params={}),ge({query:P.query,hash:P.hash,params:Y.path!=null?{}:P.params},Y)}}function $(P,W){const F=c=T(P),Y=a.value,ue=P.state,ve=P.force,d=P.replace===!0,m=N(F);if(m)return $(ge(y(m),{state:typeof m=="object"?ge({},ue,m.state):ue,force:ve,replace:d}),W||F);const _=F;_.redirectedFrom=W;let A;return!ve&&nd(o,Y,F)&&(A=kn(16,{to:_,from:Y}),We(Y,Y,!0,!1)),(A?Promise.resolve(A):x(_,Y)).catch(k=>_t(k)?_t(k,2)?k:De(k):J(k,_,Y)).then(k=>{if(k){if(_t(k,2))return $(ge({replace:d},y(k.to),{state:typeof k.to=="object"?ge({},ue,k.to.state):ue,force:ve}),W||_)}else k=E(_,Y,!0,d,ue);return B(_,Y,k),k})}function w(P,W){const F=g(P,W);return F?Promise.reject(F):Promise.resolve()}function U(P){const W=xt.values().next().value;return W&&typeof W.runWithContext=="function"?W.runWithContext(P):P()}function x(P,W){let F;const[Y,ue,ve]=Fd(P,W);F=yr(Y.reverse(),"beforeRouteLeave",P,W);for(const m of Y)m.leaveGuards.forEach(_=>{F.push(Mt(_,P,W))});const d=w.bind(null,P,W);return F.push(d),Ke(F).then(()=>{F=[];for(const m of s.list())F.push(Mt(m,P,W));return F.push(d),Ke(F)}).then(()=>{F=yr(ue,"beforeRouteUpdate",P,W);for(const m of ue)m.updateGuards.forEach(_=>{F.push(Mt(_,P,W))});return F.push(d),Ke(F)}).then(()=>{F=[];for(const m of ve)if(m.beforeEnter)if(ut(m.beforeEnter))for(const _ of m.beforeEnter)F.push(Mt(_,P,W));else F.push(Mt(m.beforeEnter,P,W));return F.push(d),Ke(F)}).then(()=>(P.matched.forEach(m=>m.enterCallbacks={}),F=yr(ve,"beforeRouteEnter",P,W,U),F.push(d),Ke(F))).then(()=>{F=[];for(const m of i.list())F.push(Mt(m,P,W));return F.push(d),Ke(F)}).catch(m=>_t(m,8)?m:Promise.reject(m))}function B(P,W,F){l.list().forEach(Y=>U(()=>Y(P,W,F)))}function E(P,W,F,Y,ue){const ve=g(P,W);if(ve)return ve;const d=W===bt,m=pn?history.state:{};F&&(Y||d?r.replace(P.fullPath,ge({scroll:d&&m&&m.scroll},ue)):r.push(P.fullPath,ue)),a.value=P,We(P,W,F,d),De()}let H;function te(){H||(H=r.listen((P,W,F)=>{if(!dt.listening)return;const Y=T(P),ue=N(Y);if(ue){$(ge(ue,{replace:!0}),Y).catch(Fn);return}c=Y;const ve=a.value;pn&&ud(vi(ve.fullPath,F.delta),er()),x(Y,ve).catch(d=>_t(d,12)?d:_t(d,2)?($(d.to,Y).then(m=>{_t(m,20)&&!F.delta&&F.type===Qn.pop&&r.go(-1,!1)}).catch(Fn),Promise.reject()):(F.delta&&r.go(-F.delta,!1),J(d,Y,ve))).then(d=>{d=d||E(Y,ve,!1),d&&(F.delta&&!_t(d,8)?r.go(-F.delta,!1):F.type===Qn.pop&&_t(d,20)&&r.go(-1,!1)),B(Y,ve,d)}).catch(Fn)}))}let re=Mn(),M=Mn(),X;function J(P,W,F){De(P);const Y=M.list();return Y.length?Y.forEach(ue=>ue(P,W,F)):console.error(P),Promise.reject(P)}function _e(){return X&&a.value!==bt?Promise.resolve():new Promise((P,W)=>{re.add([P,W])})}function De(P){return X||(X=!P,te(),re.list().forEach(([W,F])=>P?F(P):W()),re.reset()),P}function We(P,W,F,Y){const{scrollBehavior:ue}=e;if(!pn||!ue)return Promise.resolve();const ve=!F&&fd(vi(P.fullPath,0))||(Y||!F)&&history.state&&history.state.scroll||null;return an().then(()=>ue(P,W,ve)).then(d=>d&&cd(d)).catch(d=>J(d,P,W))}const Be=P=>r.go(P);let kt;const xt=new Set,dt={currentRoute:a,listening:!0,addRoute:p,removeRoute:v,clearRoutes:t.clearRoutes,hasRoute:b,getRoutes:S,resolve:T,options:e,push:C,replace:D,go:Be,back:()=>Be(-1),forward:()=>Be(1),beforeEach:s.add,beforeResolve:i.add,afterEach:l.add,onError:M.add,isReady:_e,install(P){const W=this;P.component("RouterLink",Hd),P.component("RouterView",jd),P.config.globalProperties.$router=W,Object.defineProperty(P.config.globalProperties,"$route",{enumerable:!0,get:()=>on(a)}),pn&&!kt&&a.value===bt&&(kt=!0,C(r.location).catch(ue=>{}));const F={};for(const ue in bt)Object.defineProperty(F,ue,{get:()=>a.value[ue],enumerable:!0});P.provide(tr,W),P.provide(ds,cl(F)),P.provide(jr,a);const Y=P.unmount;xt.add(P),P.unmount=function(){xt.delete(P),xt.size<1&&(c=bt,H&&H(),H=null,a.value=bt,kt=!1,X=!1),Y()}}};function Ke(P){return P.reduce((W,F)=>W.then(()=>U(F)),Promise.resolve())}return dt}function Fd(e,t){const n=[],o=[],r=[],s=Math.max(t.matched.length,e.matched.length);for(let i=0;iCn(c,l))?o.push(l):n.push(l));const a=e.matched[i];a&&(t.matched.find(c=>Cn(c,a))||r.push(a))}return[n,o,r]}function cn(){return He(tr)}function St(e){return He(ds)}var hs=Symbol(""),vt=()=>{const e=He(hs);if(!e)throw new Error("useClientData() is called without provider.");return e},zd=()=>vt().pageComponent,un=()=>vt().pageData,ft=()=>vt().pageFrontmatter,Ud=()=>vt().pageHead,Wd=()=>vt().pageLang,Kd=()=>vt().pageLayout,Gt=()=>vt().routeLocale,Gd=()=>vt().routes,da=()=>vt().siteData,nr=()=>vt().siteLocaleData,qd=Symbol(""),Br=jt(Nf),En=jt(Df),ha=(e,t)=>{const n=xf(e,t);if(En.value[n])return n;const o=encodeURI(n);if(En.value[o])return o;const r=Br.value[n]||Br.value[o];return r||n},Xn=(e,t)=>{const{pathname:n,hashAndQueries:o}=Xl(e),r=ha(n,t),s=r+o;return En.value[r]?{...En.value[r],path:s,notFound:!1}:{...En.value["/404.html"],path:s,notFound:!0}},Jd=(e,t)=>{const{pathname:n,hashAndQueries:o}=Xl(e);return ha(n,t)+o},Yd=e=>{if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget){const t=e.currentTarget.getAttribute("target");if(t!=null&&t.match(/\b_blank\b/i))return}return e.preventDefault(),!0}},ho=he({name:"RouteLink",props:{to:{type:String,required:!0},active:Boolean,activeClass:{type:String,default:"route-link-active"}},slots:Object,setup(e,{slots:t}){const n=cn(),o=St(),r=I(()=>e.to.startsWith("#")||e.to.startsWith("?")?e.to:`/${Jd(e.to,o.path).substring(1)}`);return()=>{var s;return K("a",{class:["route-link",{[e.activeClass]:e.active}],href:r.value,onClick:(i={})=>{Yd(i)&&n.push(e.to).catch()}},(s=t.default)==null?void 0:s.call(t))}}}),Tn=he({name:"AutoLink",props:{config:{type:Object,required:!0}},slots:Object,setup(e,{slots:t}){const n=gl(e,"config"),o=St(),r=da(),s=I(()=>fo(n.value.link)),i=I(()=>n.value.target||(s.value?"_blank":void 0)),l=I(()=>i.value==="_blank"),a=I(()=>!s.value&&!l.value),c=I(()=>n.value.rel||(l.value?"noopener noreferrer":null)),f=I(()=>n.value.ariaLabel??n.value.text),u=I(()=>{if(n.value.exact)return!1;const p=Object.keys(r.value.locales);return p.length?p.every(v=>v!==n.value.link):n.value.link!=="/"}),h=I(()=>a.value?n.value.activeMatch?(n.value.activeMatch instanceof RegExp?n.value.activeMatch:new RegExp(n.value.activeMatch,"u")).test(o.path):u.value?o.path.startsWith(n.value.link):o.path===n.value.link:!1);return()=>{const{before:p,after:v,default:S}=t,b=(S==null?void 0:S(n.value))||[p==null?void 0:p(n.value),n.value.text,v==null?void 0:v(n.value)];return a.value?K(ho,{class:"auto-link",to:n.value.link,active:h.value,"aria-label":f.value},()=>b):K("a",{class:"auto-link external-link",href:n.value.link,"aria-label":f.value,rel:c.value,target:i.value},b)}}}),ps=he({name:"ClientOnly",setup(e,t){const n=ie(!1);return Re(()=>{n.value=!0}),()=>{var o,r;return n.value?(r=(o=t.slots).default)==null?void 0:r.call(o):null}}}),ms=he({name:"Content",props:{path:{type:String,required:!1,default:""}},setup(e){const t=zd(),n=I(()=>{if(!e.path)return t.value;const o=Xn(e.path);return Cl(()=>o.loader().then(({comp:r})=>r))});return()=>K(n.value)}}),Qd="Layout",Xd="en-US",Qt=oo({resolveLayouts:e=>e.reduce((t,n)=>({...t,...n.layouts}),{}),resolvePageHead:(e,t,n)=>{const o=lt(t.description)?t.description:n.description,r=[...Array.isArray(t.head)?t.head:[],...n.head,["title",{},e],["meta",{name:"description",content:o}]];return If(r)},resolvePageHeadTitle:(e,t)=>[e.title,t.title].filter(n=>!!n).join(" | "),resolvePageLang:(e,t)=>e.lang||t.lang||Xd,resolvePageLayout:(e,t)=>{const n=lt(e.frontmatter.layout)?e.frontmatter.layout:Qd;if(!t[n])throw new Error(`[vuepress] Cannot resolve layout: ${n}`);return t[n]},resolveRouteLocale:(e,t)=>Pf(e,decodeURI(t)),resolveSiteLocaleData:({base:e,locales:t,...n},o)=>{var r;return{...n,...t[o],head:[...((r=t[o])==null?void 0:r.head)??[],...n.head??[]]}}}),Lt=(e={})=>e,gs=e=>Zo(e)?e:`/${ea(e)}`;function po(e){return Qi()?(rc(e),!0):!1}function et(e){return typeof e=="function"?e():on(e)}const or=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Zd=Object.prototype.toString,eh=e=>Zd.call(e)==="[object Object]",sn=()=>{},Fr=th();function th(){var e,t;return or&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function pa(e,t){function n(...o){return new Promise((r,s)=>{Promise.resolve(e(()=>t.apply(this,o),{fn:t,thisArg:this,args:o})).then(r).catch(s)})}return n}const ma=e=>e();function nh(e,t={}){let n,o,r=sn;const s=l=>{clearTimeout(l),r(),r=sn};return l=>{const a=et(e),c=et(t.maxWait);return n&&s(n),a<=0||c!==void 0&&c<=0?(o&&(s(o),o=null),Promise.resolve(l())):new Promise((f,u)=>{r=t.rejectOnCancel?u:f,c&&!o&&(o=setTimeout(()=>{n&&s(n),o=null,f(l())},c)),n=setTimeout(()=>{o&&s(o),o=null,f(l())},a)})}}function oh(e=ma){const t=ie(!0);function n(){t.value=!1}function o(){t.value=!0}const r=(...s)=>{t.value&&e(...s)};return{isActive:ro(t),pause:n,resume:o,eventFilter:r}}function rh(e){let t;function n(){return t||(t=e()),t}return n.reset=async()=>{const o=t;t=void 0,o&&await o},n}function sh(e){return lo()}function ih(...e){if(e.length!==1)return gl(...e);const t=e[0];return typeof t=="function"?ro(pl(()=>({get:t,set:sn}))):ie(t)}function ga(e,t=200,n={}){return pa(nh(t,n),e)}function lh(e,t,n={}){const{eventFilter:o=ma,...r}=n;return Ce(e,pa(o,t),r)}function ah(e,t,n={}){const{eventFilter:o,...r}=n,{eventFilter:s,pause:i,resume:l,isActive:a}=oh(o);return{stop:lh(e,t,{...r,eventFilter:s}),pause:i,resume:l,isActive:a}}function vs(e,t=!0,n){sh()?Re(e,n):t?e():an(e)}function ch(e,t,n={}){const{immediate:o=!0}=n,r=ie(!1);let s=null;function i(){s&&(clearTimeout(s),s=null)}function l(){r.value=!1,i()}function a(...c){i(),r.value=!0,s=setTimeout(()=>{r.value=!1,s=null,e(...c)},et(t))}return o&&(r.value=!0,or&&a()),po(l),{isPending:ro(r),start:a,stop:l}}function uh(e=!1,t={}){const{truthyValue:n=!0,falsyValue:o=!1}=t,r=je(e),s=ie(e);function i(l){if(arguments.length)return s.value=l,s.value;{const a=et(n);return s.value=s.value===a?et(o):a,s.value}}return r?i:[s,i]}function ct(e){var t;const n=et(e);return(t=n==null?void 0:n.$el)!=null?t:n}const gt=or?window:void 0,va=or?window.navigator:void 0;function Ve(...e){let t,n,o,r;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,o,r]=e,t=gt):[t,n,o,r]=e,!t)return sn;Array.isArray(n)||(n=[n]),Array.isArray(o)||(o=[o]);const s=[],i=()=>{s.forEach(f=>f()),s.length=0},l=(f,u,h,p)=>(f.addEventListener(u,h,p),()=>f.removeEventListener(u,h,p)),a=Ce(()=>[ct(t),et(r)],([f,u])=>{if(i(),!f)return;const h=eh(u)?{...u}:u;s.push(...n.flatMap(p=>o.map(v=>l(f,p,v,h))))},{immediate:!0,flush:"post"}),c=()=>{a(),i()};return po(c),c}let Oi=!1;function fh(e,t,n={}){const{window:o=gt,ignore:r=[],capture:s=!0,detectIframe:i=!1}=n;if(!o)return sn;Fr&&!Oi&&(Oi=!0,Array.from(o.document.body.children).forEach(h=>h.addEventListener("click",sn)),o.document.documentElement.addEventListener("click",sn));let l=!0;const a=h=>r.some(p=>{if(typeof p=="string")return Array.from(o.document.querySelectorAll(p)).some(v=>v===h.target||h.composedPath().includes(v));{const v=ct(p);return v&&(h.target===v||h.composedPath().includes(v))}}),f=[Ve(o,"click",h=>{const p=ct(e);if(!(!p||p===h.target||h.composedPath().includes(p))){if(h.detail===0&&(l=!a(h)),!l){l=!0;return}t(h)}},{passive:!0,capture:s}),Ve(o,"pointerdown",h=>{const p=ct(e);l=!a(h)&&!!(p&&!h.composedPath().includes(p))},{passive:!0}),i&&Ve(o,"blur",h=>{setTimeout(()=>{var p;const v=ct(e);((p=o.document.activeElement)==null?void 0:p.tagName)==="IFRAME"&&!(v!=null&&v.contains(o.document.activeElement))&&t(h)},0)})].filter(Boolean);return()=>f.forEach(h=>h())}function dh(){const e=ie(!1),t=lo();return t&&Re(()=>{e.value=!0},t),e}function rr(e){const t=dh();return I(()=>(t.value,!!e()))}function _s(e,t={}){const{window:n=gt}=t,o=rr(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let r;const s=ie(!1),i=c=>{s.value=c.matches},l=()=>{r&&("removeEventListener"in r?r.removeEventListener("change",i):r.removeListener(i))},a=Eu(()=>{o.value&&(l(),r=n.matchMedia(et(e)),"addEventListener"in r?r.addEventListener("change",i):r.addListener(i),s.value=r.matches)});return po(()=>{a(),l(),r=void 0}),s}function Ri(e,t={}){const{controls:n=!1,navigator:o=va}=t,r=rr(()=>o&&"permissions"in o);let s;const i=typeof e=="string"?{name:e}:e,l=ie(),a=()=>{s&&(l.value=s.state)},c=rh(async()=>{if(r.value){if(!s)try{s=await o.permissions.query(i),Ve(s,"change",a),a()}catch{l.value="prompt"}return s}});return c(),n?{state:l,isSupported:r,query:c}:l}function hh(e={}){const{navigator:t=va,read:n=!1,source:o,copiedDuring:r=1500,legacy:s=!1}=e,i=rr(()=>t&&"clipboard"in t),l=Ri("clipboard-read"),a=Ri("clipboard-write"),c=I(()=>i.value||s),f=ie(""),u=ie(!1),h=ch(()=>u.value=!1,r);function p(){i.value&&T(l.value)?t.clipboard.readText().then(y=>{f.value=y}):f.value=b()}c.value&&n&&Ve(["copy","cut"],p);async function v(y=et(o)){c.value&&y!=null&&(i.value&&T(a.value)?await t.clipboard.writeText(y):S(y),f.value=y,u.value=!0,h.start())}function S(y){const g=document.createElement("textarea");g.value=y??"",g.style.position="absolute",g.style.opacity="0",document.body.appendChild(g),g.select(),document.execCommand("copy"),g.remove()}function b(){var y,g,C;return(C=(g=(y=document==null?void 0:document.getSelection)==null?void 0:y.call(document))==null?void 0:g.toString())!=null?C:""}function T(y){return y==="granted"||y==="prompt"}return{isSupported:c,text:f,copied:u,copy:v}}const Lo=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Co="__vueuse_ssr_handlers__",ph=mh();function mh(){return Co in Lo||(Lo[Co]=Lo[Co]||{}),Lo[Co]}function gh(e,t){return ph[e]||t}function vh(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const _h={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Ii="vueuse-storage";function bs(e,t,n,o={}){var r;const{flush:s="pre",deep:i=!0,listenToStorageChanges:l=!0,writeDefaults:a=!0,mergeDefaults:c=!1,shallow:f,window:u=gt,eventFilter:h,onError:p=x=>{console.error(x)},initOnMounted:v}=o,S=(f?jt:ie)(typeof t=="function"?t():t);if(!n)try{n=gh("getDefaultStorage",()=>{var x;return(x=gt)==null?void 0:x.localStorage})()}catch(x){p(x)}if(!n)return S;const b=et(t),T=vh(b),y=(r=o.serializer)!=null?r:_h[T],{pause:g,resume:C}=ah(S,()=>N(S.value),{flush:s,deep:i,eventFilter:h});u&&l&&vs(()=>{Ve(u,"storage",w),Ve(u,Ii,U),v&&w()}),v||w();function D(x,B){u&&u.dispatchEvent(new CustomEvent(Ii,{detail:{key:e,oldValue:x,newValue:B,storageArea:n}}))}function N(x){try{const B=n.getItem(e);if(x==null)D(B,null),n.removeItem(e);else{const E=y.write(x);B!==E&&(n.setItem(e,E),D(B,E))}}catch(B){p(B)}}function $(x){const B=x?x.newValue:n.getItem(e);if(B==null)return a&&b!=null&&n.setItem(e,y.write(b)),b;if(!x&&c){const E=y.read(B);return typeof c=="function"?c(E,b):T==="object"&&!Array.isArray(E)?{...b,...E}:E}else return typeof B!="string"?B:y.read(B)}function w(x){if(!(x&&x.storageArea!==n)){if(x&&x.key==null){S.value=b;return}if(!(x&&x.key!==e)){g();try{(x==null?void 0:x.newValue)!==y.write(S.value)&&(S.value=$(x))}catch(B){p(B)}finally{x?an(C):C()}}}}function U(x){w(x.detail)}return S}function bh(e){return _s("(prefers-color-scheme: dark)",e)}function yh(e,t,n={}){const{window:o=gt,...r}=n;let s;const i=rr(()=>o&&"ResizeObserver"in o),l=()=>{s&&(s.disconnect(),s=void 0)},a=I(()=>Array.isArray(e)?e.map(u=>ct(u)):[ct(e)]),c=Ce(a,u=>{if(l(),i.value&&o){s=new ResizeObserver(t);for(const h of u)h&&s.observe(h,r)}},{immediate:!0,flush:"post"}),f=()=>{l(),c()};return po(f),{isSupported:i,stop:f}}function wh(e,t={width:0,height:0},n={}){const{window:o=gt,box:r="content-box"}=n,s=I(()=>{var u,h;return(h=(u=ct(e))==null?void 0:u.namespaceURI)==null?void 0:h.includes("svg")}),i=ie(t.width),l=ie(t.height),{stop:a}=yh(e,([u])=>{const h=r==="border-box"?u.borderBoxSize:r==="content-box"?u.contentBoxSize:u.devicePixelContentBoxSize;if(o&&s.value){const p=ct(e);if(p){const v=p.getBoundingClientRect();i.value=v.width,l.value=v.height}}else if(h){const p=Array.isArray(h)?h:[h];i.value=p.reduce((v,{inlineSize:S})=>v+S,0),l.value=p.reduce((v,{blockSize:S})=>v+S,0)}else i.value=u.contentRect.width,l.value=u.contentRect.height},n);vs(()=>{const u=ct(e);u&&(i.value="offsetWidth"in u?u.offsetWidth:t.width,l.value="offsetHeight"in u?u.offsetHeight:t.height)});const c=Ce(()=>ct(e),u=>{i.value=u?t.width:0,l.value=u?t.height:0});function f(){a(),c()}return{width:i,height:l,stop:f}}function wr(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function Vb(e,t,n={}){const{window:o=gt}=n;return bs(e,t,o==null?void 0:o.localStorage,n)}function _a(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const Er=new WeakMap;function Sh(e,t=!1){const n=ie(t);let o=null,r="";Ce(ih(e),l=>{const a=wr(et(l));if(a){const c=a;if(Er.get(c)||Er.set(c,c.style.overflow),c.style.overflow!=="hidden"&&(r=c.style.overflow),c.style.overflow==="hidden")return n.value=!0;if(n.value)return c.style.overflow="hidden"}},{immediate:!0});const s=()=>{const l=wr(et(e));!l||n.value||(Fr&&(o=Ve(l,"touchmove",a=>{Eh(a)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},i=()=>{const l=wr(et(e));!l||!n.value||(Fr&&(o==null||o()),l.style.overflow=r,Er.delete(l),n.value=!1)};return po(i),I({get(){return n.value},set(l){l?s():i()}})}function Lh(e={}){const{window:t=gt,behavior:n="auto"}=e;if(!t)return{x:ie(0),y:ie(0)};const o=ie(t.scrollX),r=ie(t.scrollY),s=I({get(){return o.value},set(l){scrollTo({left:l,behavior:n})}}),i=I({get(){return r.value},set(l){scrollTo({top:l,behavior:n})}});return Ve(t,"scroll",()=>{o.value=t.scrollX,r.value=t.scrollY},{capture:!1,passive:!0}),{x:s,y:i}}function Ch(e={}){const{window:t=gt,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:o=Number.POSITIVE_INFINITY,listenOrientation:r=!0,includeScrollbar:s=!0}=e,i=ie(n),l=ie(o),a=()=>{t&&(s?(i.value=t.innerWidth,l.value=t.innerHeight):(i.value=t.document.documentElement.clientWidth,l.value=t.document.documentElement.clientHeight))};if(a(),vs(a),Ve("resize",a,{passive:!0}),r){const c=_s("(orientation: portrait)");Ce(c,()=>a())}return{width:i,height:l}}const Mi=async(e,t)=>{const{path:n,query:o}=e.currentRoute.value,{scrollBehavior:r}=e.options;e.options.scrollBehavior=void 0,await e.replace({path:n,query:o,hash:t}),e.options.scrollBehavior=r},kh=({headerLinkSelector:e,headerAnchorSelector:t,delay:n,offset:o=5})=>{const r=cn();Ve("scroll",ga(()=>{var v,S;const i=Math.max(window.scrollY,document.documentElement.scrollTop,document.body.scrollTop);if(Math.abs(i-0)u.some(T=>T.hash===b.hash));for(let b=0;b=(((v=T.parentElement)==null?void 0:v.offsetTop)??0)-o,C=!y||i<(((S=y.parentElement)==null?void 0:S.offsetTop)??0)-o;if(!(g&&C))continue;const N=decodeURIComponent(r.currentRoute.value.hash),$=decodeURIComponent(T.hash);if(N===$)return;if(f){for(let w=b+1;w{const t=Gt();return I(()=>e[t.value]??{})},Ih=()=>{const e=Gd();return I(()=>Object.keys(e.value))},Sr=(e,t)=>{var o;const n=(o=lo())==null?void 0:o.appContext.components;return n?e in n||tt(e)in n||to(tt(e))in n:!1},ya=e=>new Promise(t=>setTimeout(t,e)),Mh=({selector:e=[...new Array(6)].map((o,r)=>`#vp-content h${r+1}`).join(","),levels:t=2,ignore:n=[]}={})=>{const o=Array.from(document.querySelectorAll(e)).filter(r=>r.id&&r.hasChildNodes()).map(r=>{const s=Number(r.tagName[1]);return{element:r,title:$h(r,n),link:"#"+r.id,slug:r.id,level:s}});return Hh(o,t)},$h=(e,t=[])=>{let n="";if(t.length){const o=e.cloneNode(!0);o.querySelectorAll(t.join(",")).forEach(r=>r.remove()),n=o.textContent||""}else n=e.textContent||"";return n.trim()},Hh=(e,t=2)=>{if(t===!1)return[];const[n,o]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;e=e.filter(s=>s.level>=n&&s.level<=o);const r=[];e:for(let s=0;s=0;l--){const a=e[l];if(a.levellt(e)&&e.startsWith(t),Nh=Object.keys,Ea=e=>wa(e,"/");var Dh={"/":{backToTop:"Back to top"}};const Vh=he({name:"BackToTop",setup(){const e=ft(),t=ba(Dh),n=jt(),{height:o}=wh(n),{height:r}=Ch(),{y:s}=Lh(),i=I(()=>e.value.backToTop!==!1&&s.value>100),l=I(()=>s.value/(o.value-r.value)*100);return Re(()=>{n.value=document.body}),()=>K(uo,{name:"back-to-top"},()=>i.value?K("button",{type:"button",class:"vp-back-to-top-button","aria-label":t.value.backToTop,onClick:()=>{window.scrollTo({top:0,behavior:"smooth"})}},[K("span",{class:"vp-scroll-progress",role:"progressbar","aria-labelledby":"loadinglabel","aria-valuenow":l.value},K("svg",K("circle",{cx:"26",cy:"26",r:"24",fill:"none",stroke:"currentColor","stroke-width":"4","stroke-dasharray":`${Math.PI*l.value*.48} ${Math.PI*(100-l.value)*.48}`}))),K("div",{class:"back-to-top-icon"})]):null)}}),jh=Lt({rootComponents:[Vh]}),Bh=Object.freeze(Object.defineProperty({__proto__:null,default:jh},Symbol.toStringTag,{value:"Module"})),Fh=/language-(shellscript|shell|bash|sh|zsh)/,zh=({delay:e=500,duration:t=2e3,locales:n,selector:o,showInMobile:r,ignoreSelector:s=[],transform:i})=>{const l=_s("(max-width: 419px)"),a=I(()=>!l.value||r),c=ba(n),f=un(),u=b=>{var y;if(b.hasAttribute("copy-code-registered"))return;const T=document.createElement("button");T.type="button",T.classList.add("vp-copy-code-button"),T.setAttribute("aria-label",c.value.copy),T.setAttribute("data-copied",c.value.copied),(y=b.parentElement)==null||y.insertBefore(T,b),b.setAttribute("copy-code-registered","")};Ce(()=>[f.value.path,a.value],async()=>{document.body.classList.toggle("copy-code-disabled",!a.value),a.value&&(await an(),await ya(e),document.querySelectorAll(o.join(",")).forEach(u))},{immediate:!0});const{copy:p}=hh({legacy:!0}),v=new WeakMap,S=(b,T,y)=>{const g=T.cloneNode(!0);s.length&&g.querySelectorAll(s.join(",")).forEach(D=>D.remove()),i&&i(g);let C=g.textContent||"";Fh.test(b.className)&&(C=C.replace(/^ *(\$|>) /gm,"")),p(C).then(()=>{if(t<=0)return;y.classList.add("copied"),clearTimeout(v.get(y));const D=setTimeout(()=>{y.classList.remove("copied"),y.blur(),v.delete(y)},t);v.set(y,D)})};Ve("click",b=>{const T=b.target;if(a.value&&T.matches('div[class*="language-"] > button.vp-copy-code-button')){const y=T.parentElement,g=T.nextElementSibling;if(!y||!g)return;S(y,g,T)}})};var Uh={"/":{copy:"Copy code",copied:"Copied"}},Wh=['.theme-default-content div[class*="language-"] pre'];const Kh=Lt({setup:()=>{zh({selector:Wh,locales:Uh,duration:2e3,delay:500,showInMobile:!1})}}),Gh=Object.freeze(Object.defineProperty({__proto__:null,default:Kh},Symbol.toStringTag,{value:"Module"}));/*! medium-zoom 1.1.0 | MIT License | https://github.com/francoischalifour/medium-zoom */var Xt=Object.assign||function(e){for(var t=1;t{},ut=Array.isArray,ea=/#/g,jf=/&/g,Bf=/\//g,Ff=/=/g,zf=/\?/g,ta=/\+/g,Uf=/%5B/g,Wf=/%5D/g,na=/%5E/g,Kf=/%60/g,oa=/%7B/g,Gf=/%7C/g,ra=/%7D/g,qf=/%20/g;function fs(e){return encodeURI(""+e).replace(Gf,"|").replace(Uf,"[").replace(Wf,"]")}function Jf(e){return fs(e).replace(oa,"{").replace(ra,"}").replace(na,"^")}function Dr(e){return fs(e).replace(ta,"%2B").replace(qf,"+").replace(ea,"%23").replace(jf,"%26").replace(Kf,"`").replace(oa,"{").replace(ra,"}").replace(na,"^")}function Yf(e){return Dr(e).replace(Ff,"%3D")}function Qf(e){return fs(e).replace(ea,"%23").replace(zf,"%3F")}function Xf(e){return e==null?"":Qf(e).replace(Bf,"%2F")}function Yn(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const Zf=/\/$/,ed=e=>e.replace(Zf,"");function br(e,t,n="/"){let o,r={},s="",i="";const l=t.indexOf("#");let a=t.indexOf("?");return l=0&&(a=-1),a>-1&&(o=t.slice(0,a),s=t.slice(a+1,l>-1?l:t.length),r=e(s)),l>-1&&(o=o||t.slice(0,l),i=t.slice(l,t.length)),o=rd(o??t,n),{fullPath:o+(s&&"?")+s+i,path:o,query:r,hash:Yn(i)}}function td(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function mi(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function nd(e,t,n){const o=t.matched.length-1,r=n.matched.length-1;return o>-1&&o===r&&Cn(t.matched[o],n.matched[r])&&sa(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Cn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function sa(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!od(e[n],t[n]))return!1;return!0}function od(e,t){return ut(e)?gi(e,t):ut(t)?gi(t,e):e===t}function gi(e,t){return ut(t)?e.length===t.length&&e.every((n,o)=>n===t[o]):e.length===1&&e[0]===t}function rd(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),o=e.split("/"),r=o[o.length-1];(r===".."||r===".")&&o.push("");let s=n.length-1,i,l;for(i=0;i1&&s--;else break;return n.slice(0,s).join("/")+"/"+o.slice(i).join("/")}const bt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var Qn;(function(e){e.pop="pop",e.push="push"})(Qn||(Qn={}));var zn;(function(e){e.back="back",e.forward="forward",e.unknown=""})(zn||(zn={}));function sd(e){if(!e)if(pn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),ed(e)}const id=/^[^#]+#/;function ld(e,t){return e.replace(id,"#")+t}function ad(e,t){const n=document.documentElement.getBoundingClientRect(),o=e.getBoundingClientRect();return{behavior:t.behavior,left:o.left-n.left-(t.left||0),top:o.top-n.top-(t.top||0)}}const er=()=>({left:window.scrollX,top:window.scrollY});function cd(e){let t;if("el"in e){const n=e.el,o=typeof n=="string"&&n.startsWith("#"),r=typeof n=="string"?o?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!r)return;t=ad(r,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function vi(e,t){return(history.state?history.state.position-t:-1)+e}const Vr=new Map;function ud(e,t){Vr.set(e,t)}function fd(e){const t=Vr.get(e);return Vr.delete(e),t}let dd=()=>location.protocol+"//"+location.host;function ia(e,t){const{pathname:n,search:o,hash:r}=t,s=e.indexOf("#");if(s>-1){let l=r.includes(e.slice(s))?e.slice(s).length:1,a=r.slice(l);return a[0]!=="/"&&(a="/"+a),mi(a,"")}return mi(n,e)+o+r}function hd(e,t,n,o){let r=[],s=[],i=null;const l=({state:h})=>{const p=ia(e,location),v=n.value,S=t.value;let b=0;if(h){if(n.value=p,t.value=h,i&&i===v){i=null;return}b=S?h.position-S.position:0}else o(p);r.forEach(T=>{T(n.value,v,{delta:b,type:Qn.pop,direction:b?b>0?zn.forward:zn.back:zn.unknown})})};function a(){i=n.value}function c(h){r.push(h);const p=()=>{const v=r.indexOf(h);v>-1&&r.splice(v,1)};return s.push(p),p}function f(){const{history:h}=window;h.state&&h.replaceState(ge({},h.state,{scroll:er()}),"")}function u(){for(const h of s)h();s=[],window.removeEventListener("popstate",l),window.removeEventListener("beforeunload",f)}return window.addEventListener("popstate",l),window.addEventListener("beforeunload",f,{passive:!0}),{pauseListeners:a,listen:c,destroy:u}}function _i(e,t,n,o=!1,r=!1){return{back:e,current:t,forward:n,replaced:o,position:window.history.length,scroll:r?er():null}}function pd(e){const{history:t,location:n}=window,o={value:ia(e,n)},r={value:t.state};r.value||s(o.value,{back:null,current:o.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function s(a,c,f){const u=e.indexOf("#"),h=u>-1?(n.host&&document.querySelector("base")?e:e.slice(u))+a:dd()+e+a;try{t[f?"replaceState":"pushState"](c,"",h),r.value=c}catch(p){console.error(p),n[f?"replace":"assign"](h)}}function i(a,c){const f=ge({},t.state,_i(r.value.back,a,r.value.forward,!0),c,{position:r.value.position});s(a,f,!0),o.value=a}function l(a,c){const f=ge({},r.value,t.state,{forward:a,scroll:er()});s(f.current,f,!0);const u=ge({},_i(o.value,a,null),{position:f.position+1},c);s(a,u,!1),o.value=a}return{location:o,state:r,push:l,replace:i}}function md(e){e=sd(e);const t=pd(e),n=hd(e,t.state,t.location,t.replace);function o(s,i=!0){i||n.pauseListeners(),history.go(s)}const r=ge({location:"",base:e,go:o,createHref:ld.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}function gd(e){return typeof e=="string"||e&&typeof e=="object"}function la(e){return typeof e=="string"||typeof e=="symbol"}const aa=Symbol("");var bi;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(bi||(bi={}));function kn(e,t){return ge(new Error,{type:e,[aa]:!0},t)}function _t(e,t){return e instanceof Error&&aa in e&&(t==null||!!(e.type&t))}const yi="[^/]+?",vd={sensitive:!1,strict:!1,start:!0,end:!0},_d=/[.+*?^${}()[\]/\\]/g;function bd(e,t){const n=ge({},vd,t),o=[];let r=n.start?"^":"";const s=[];for(const c of e){const f=c.length?[]:[90];n.strict&&!c.length&&(r+="/");for(let u=0;ut.length?t.length===1&&t[0]===80?1:-1:0}function ca(e,t){let n=0;const o=e.score,r=t.score;for(;n0&&t[t.length-1]<0}const wd={type:0,value:""},Ed=/[a-zA-Z0-9_]/;function Sd(e){if(!e)return[[]];if(e==="/")return[[wd]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(p){throw new Error(`ERR (${n})/"${c}": ${p}`)}let n=0,o=n;const r=[];let s;function i(){s&&r.push(s),s=[]}let l=0,a,c="",f="";function u(){c&&(n===0?s.push({type:0,value:c}):n===1||n===2||n===3?(s.length>1&&(a==="*"||a==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),s.push({type:1,value:c,regexp:f,repeatable:a==="*"||a==="+",optional:a==="*"||a==="?"})):t("Invalid state to consume buffer"),c="")}function h(){c+=a}for(;l{i(g)}:Fn}function i(u){if(la(u)){const h=o.get(u);h&&(o.delete(u),n.splice(n.indexOf(h),1),h.children.forEach(i),h.alias.forEach(i))}else{const h=n.indexOf(u);h>-1&&(n.splice(h,1),u.record.name&&o.delete(u.record.name),u.children.forEach(i),u.alias.forEach(i))}}function l(){return n}function a(u){const h=Td(u,n);n.splice(h,0,u),u.record.name&&!Si(u)&&o.set(u.record.name,u)}function c(u,h){let p,v={},S,b;if("name"in u&&u.name){if(p=o.get(u.name),!p)throw kn(1,{location:u});b=p.record.name,v=ge(Ei(h.params,p.keys.filter(g=>!g.optional).concat(p.parent?p.parent.keys.filter(g=>g.optional):[]).map(g=>g.name)),u.params&&Ei(u.params,p.keys.map(g=>g.name))),S=p.stringify(v)}else if(u.path!=null)S=u.path,p=n.find(g=>g.re.test(S)),p&&(v=p.parse(S),b=p.record.name);else{if(p=h.name?o.get(h.name):n.find(g=>g.re.test(h.path)),!p)throw kn(1,{location:u,currentLocation:h});b=p.record.name,v=ge({},h.params,u.params),S=p.stringify(v)}const T=[];let y=p;for(;y;)T.unshift(y.record),y=y.parent;return{name:b,path:S,params:v,matched:T,meta:Pd(T)}}e.forEach(u=>s(u));function f(){n.length=0,o.clear()}return{addRoute:s,resolve:c,removeRoute:i,clearRoutes:f,getRoutes:l,getRecordMatcher:r}}function Ei(e,t){const n={};for(const o of t)o in e&&(n[o]=e[o]);return n}function kd(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:xd(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function xd(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const o in e.components)t[o]=typeof n=="object"?n[o]:n;return t}function Si(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Pd(e){return e.reduce((t,n)=>ge(t,n.meta),{})}function Li(e,t){const n={};for(const o in e)n[o]=o in t?t[o]:e[o];return n}function Td(e,t){let n=0,o=t.length;for(;n!==o;){const s=n+o>>1;ca(e,t[s])<0?o=s:n=s+1}const r=Ad(e);return r&&(o=t.lastIndexOf(r,o-1)),o}function Ad(e){let t=e;for(;t=t.parent;)if(ua(t)&&ca(e,t)===0)return t}function ua({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Od(e){const t={};if(e===""||e==="?")return t;const o=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&Dr(s)):[o&&Dr(o)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function Rd(e){const t={};for(const n in e){const o=e[n];o!==void 0&&(t[n]=ut(o)?o.map(r=>r==null?null:""+r):o==null?o:""+o)}return t}const Id=Symbol(""),ki=Symbol(""),tr=Symbol(""),ds=Symbol(""),jr=Symbol("");function Mn(){let e=[];function t(o){return e.push(o),()=>{const r=e.indexOf(o);r>-1&&e.splice(r,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Mt(e,t,n,o,r,s=i=>i()){const i=o&&(o.enterCallbacks[r]=o.enterCallbacks[r]||[]);return()=>new Promise((l,a)=>{const c=h=>{h===!1?a(kn(4,{from:n,to:t})):h instanceof Error?a(h):gd(h)?a(kn(2,{from:t,to:h})):(i&&o.enterCallbacks[r]===i&&typeof h=="function"&&i.push(h),l())},f=s(()=>e.call(o&&o.instances[r],t,n,c));let u=Promise.resolve(f);e.length<3&&(u=u.then(c)),u.catch(h=>a(h))})}function yr(e,t,n,o,r=s=>s()){const s=[];for(const i of e)for(const l in i.components){let a=i.components[l];if(!(t!=="beforeRouteEnter"&&!i.instances[l]))if(Md(a)){const f=(a.__vccOpts||a)[t];f&&s.push(Mt(f,n,o,i,l,r))}else{let c=a();s.push(()=>c.then(f=>{if(!f)return Promise.reject(new Error(`Couldn't resolve component "${l}" at "${i.path}"`));const u=Vf(f)?f.default:f;i.components[l]=u;const p=(u.__vccOpts||u)[t];return p&&Mt(p,n,o,i,l,r)()}))}}return s}function Md(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function xi(e){const t=He(tr),n=He(ds),o=I(()=>{const a=on(e.to);return t.resolve(a)}),r=I(()=>{const{matched:a}=o.value,{length:c}=a,f=a[c-1],u=n.matched;if(!f||!u.length)return-1;const h=u.findIndex(Cn.bind(null,f));if(h>-1)return h;const p=Pi(a[c-2]);return c>1&&Pi(f)===p&&u[u.length-1].path!==p?u.findIndex(Cn.bind(null,a[c-2])):h}),s=I(()=>r.value>-1&&Dd(n.params,o.value.params)),i=I(()=>r.value>-1&&r.value===n.matched.length-1&&sa(n.params,o.value.params));function l(a={}){return Nd(a)?t[on(e.replace)?"replace":"push"](on(e.to)).catch(Fn):Promise.resolve()}return{route:o,href:I(()=>o.value.href),isActive:s,isExactActive:i,navigate:l}}const $d=he({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:xi,setup(e,{slots:t}){const n=oo(xi(e)),{options:o}=He(tr),r=I(()=>({[Ti(e.activeClass,o.linkActiveClass,"router-link-active")]:n.isActive,[Ti(e.exactActiveClass,o.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const s=t.default&&t.default(n);return e.custom?s:K("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},s)}}}),Hd=$d;function Nd(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Dd(e,t){for(const n in t){const o=t[n],r=e[n];if(typeof o=="string"){if(o!==r)return!1}else if(!ut(r)||r.length!==o.length||o.some((s,i)=>s!==r[i]))return!1}return!0}function Pi(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Ti=(e,t,n)=>e??t??n,Vd=he({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const o=He(jr),r=I(()=>e.route||o.value),s=He(ki,0),i=I(()=>{let c=on(s);const{matched:f}=r.value;let u;for(;(u=f[c])&&!u.components;)c++;return c}),l=I(()=>r.value.matched[i.value]);Dt(ki,I(()=>i.value+1)),Dt(Id,l),Dt(jr,r);const a=ie();return Ce(()=>[a.value,l.value,e.name],([c,f,u],[h,p,v])=>{f&&(f.instances[u]=c,p&&p!==f&&c&&c===h&&(f.leaveGuards.size||(f.leaveGuards=p.leaveGuards),f.updateGuards.size||(f.updateGuards=p.updateGuards))),c&&f&&(!p||!Cn(f,p)||!h)&&(f.enterCallbacks[u]||[]).forEach(S=>S(c))},{flush:"post"}),()=>{const c=r.value,f=e.name,u=l.value,h=u&&u.components[f];if(!h)return Ai(n.default,{Component:h,route:c});const p=u.props[f],v=p?p===!0?c.params:typeof p=="function"?p(c):p:null,b=K(h,ge({},v,t,{onVnodeUnmounted:T=>{T.component.isUnmounted&&(u.instances[f]=null)},ref:a}));return Ai(n.default,{Component:b,route:c})||b}}});function Ai(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const jd=Vd;function Bd(e){const t=Cd(e.routes,e),n=e.parseQuery||Od,o=e.stringifyQuery||Ci,r=e.history,s=Mn(),i=Mn(),l=Mn(),a=jt(bt);let c=bt;pn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=_r.bind(null,P=>""+P),u=_r.bind(null,Xf),h=_r.bind(null,Yn);function p(P,W){let F,Y;return la(P)?(F=t.getRecordMatcher(P),Y=W):Y=P,t.addRoute(Y,F)}function v(P){const W=t.getRecordMatcher(P);W&&t.removeRoute(W)}function S(){return t.getRoutes().map(P=>P.record)}function b(P){return!!t.getRecordMatcher(P)}function T(P,W){if(W=ge({},W||a.value),typeof P=="string"){const m=br(n,P,W.path),_=t.resolve({path:m.path},W),A=r.createHref(m.fullPath);return ge(m,_,{params:h(_.params),hash:Yn(m.hash),redirectedFrom:void 0,href:A})}let F;if(P.path!=null)F=ge({},P,{path:br(n,P.path,W.path).path});else{const m=ge({},P.params);for(const _ in m)m[_]==null&&delete m[_];F=ge({},P,{params:u(m)}),W.params=u(W.params)}const Y=t.resolve(F,W),ue=P.hash||"";Y.params=f(h(Y.params));const ve=td(o,ge({},P,{hash:Jf(ue),path:Y.path})),d=r.createHref(ve);return ge({fullPath:ve,hash:ue,query:o===Ci?Rd(P.query):P.query||{}},Y,{redirectedFrom:void 0,href:d})}function y(P){return typeof P=="string"?br(n,P,a.value.path):ge({},P)}function g(P,W){if(c!==P)return kn(8,{from:W,to:P})}function C(P){return $(P)}function D(P){return C(ge(y(P),{replace:!0}))}function N(P){const W=P.matched[P.matched.length-1];if(W&&W.redirect){const{redirect:F}=W;let Y=typeof F=="function"?F(P):F;return typeof Y=="string"&&(Y=Y.includes("?")||Y.includes("#")?Y=y(Y):{path:Y},Y.params={}),ge({query:P.query,hash:P.hash,params:Y.path!=null?{}:P.params},Y)}}function $(P,W){const F=c=T(P),Y=a.value,ue=P.state,ve=P.force,d=P.replace===!0,m=N(F);if(m)return $(ge(y(m),{state:typeof m=="object"?ge({},ue,m.state):ue,force:ve,replace:d}),W||F);const _=F;_.redirectedFrom=W;let A;return!ve&&nd(o,Y,F)&&(A=kn(16,{to:_,from:Y}),We(Y,Y,!0,!1)),(A?Promise.resolve(A):x(_,Y)).catch(k=>_t(k)?_t(k,2)?k:De(k):J(k,_,Y)).then(k=>{if(k){if(_t(k,2))return $(ge({replace:d},y(k.to),{state:typeof k.to=="object"?ge({},ue,k.to.state):ue,force:ve}),W||_)}else k=E(_,Y,!0,d,ue);return B(_,Y,k),k})}function w(P,W){const F=g(P,W);return F?Promise.reject(F):Promise.resolve()}function U(P){const W=xt.values().next().value;return W&&typeof W.runWithContext=="function"?W.runWithContext(P):P()}function x(P,W){let F;const[Y,ue,ve]=Fd(P,W);F=yr(Y.reverse(),"beforeRouteLeave",P,W);for(const m of Y)m.leaveGuards.forEach(_=>{F.push(Mt(_,P,W))});const d=w.bind(null,P,W);return F.push(d),Ke(F).then(()=>{F=[];for(const m of s.list())F.push(Mt(m,P,W));return F.push(d),Ke(F)}).then(()=>{F=yr(ue,"beforeRouteUpdate",P,W);for(const m of ue)m.updateGuards.forEach(_=>{F.push(Mt(_,P,W))});return F.push(d),Ke(F)}).then(()=>{F=[];for(const m of ve)if(m.beforeEnter)if(ut(m.beforeEnter))for(const _ of m.beforeEnter)F.push(Mt(_,P,W));else F.push(Mt(m.beforeEnter,P,W));return F.push(d),Ke(F)}).then(()=>(P.matched.forEach(m=>m.enterCallbacks={}),F=yr(ve,"beforeRouteEnter",P,W,U),F.push(d),Ke(F))).then(()=>{F=[];for(const m of i.list())F.push(Mt(m,P,W));return F.push(d),Ke(F)}).catch(m=>_t(m,8)?m:Promise.reject(m))}function B(P,W,F){l.list().forEach(Y=>U(()=>Y(P,W,F)))}function E(P,W,F,Y,ue){const ve=g(P,W);if(ve)return ve;const d=W===bt,m=pn?history.state:{};F&&(Y||d?r.replace(P.fullPath,ge({scroll:d&&m&&m.scroll},ue)):r.push(P.fullPath,ue)),a.value=P,We(P,W,F,d),De()}let H;function te(){H||(H=r.listen((P,W,F)=>{if(!dt.listening)return;const Y=T(P),ue=N(Y);if(ue){$(ge(ue,{replace:!0}),Y).catch(Fn);return}c=Y;const ve=a.value;pn&&ud(vi(ve.fullPath,F.delta),er()),x(Y,ve).catch(d=>_t(d,12)?d:_t(d,2)?($(d.to,Y).then(m=>{_t(m,20)&&!F.delta&&F.type===Qn.pop&&r.go(-1,!1)}).catch(Fn),Promise.reject()):(F.delta&&r.go(-F.delta,!1),J(d,Y,ve))).then(d=>{d=d||E(Y,ve,!1),d&&(F.delta&&!_t(d,8)?r.go(-F.delta,!1):F.type===Qn.pop&&_t(d,20)&&r.go(-1,!1)),B(Y,ve,d)}).catch(Fn)}))}let re=Mn(),M=Mn(),X;function J(P,W,F){De(P);const Y=M.list();return Y.length?Y.forEach(ue=>ue(P,W,F)):console.error(P),Promise.reject(P)}function _e(){return X&&a.value!==bt?Promise.resolve():new Promise((P,W)=>{re.add([P,W])})}function De(P){return X||(X=!P,te(),re.list().forEach(([W,F])=>P?F(P):W()),re.reset()),P}function We(P,W,F,Y){const{scrollBehavior:ue}=e;if(!pn||!ue)return Promise.resolve();const ve=!F&&fd(vi(P.fullPath,0))||(Y||!F)&&history.state&&history.state.scroll||null;return an().then(()=>ue(P,W,ve)).then(d=>d&&cd(d)).catch(d=>J(d,P,W))}const Be=P=>r.go(P);let kt;const xt=new Set,dt={currentRoute:a,listening:!0,addRoute:p,removeRoute:v,clearRoutes:t.clearRoutes,hasRoute:b,getRoutes:S,resolve:T,options:e,push:C,replace:D,go:Be,back:()=>Be(-1),forward:()=>Be(1),beforeEach:s.add,beforeResolve:i.add,afterEach:l.add,onError:M.add,isReady:_e,install(P){const W=this;P.component("RouterLink",Hd),P.component("RouterView",jd),P.config.globalProperties.$router=W,Object.defineProperty(P.config.globalProperties,"$route",{enumerable:!0,get:()=>on(a)}),pn&&!kt&&a.value===bt&&(kt=!0,C(r.location).catch(ue=>{}));const F={};for(const ue in bt)Object.defineProperty(F,ue,{get:()=>a.value[ue],enumerable:!0});P.provide(tr,W),P.provide(ds,cl(F)),P.provide(jr,a);const Y=P.unmount;xt.add(P),P.unmount=function(){xt.delete(P),xt.size<1&&(c=bt,H&&H(),H=null,a.value=bt,kt=!1,X=!1),Y()}}};function Ke(P){return P.reduce((W,F)=>W.then(()=>U(F)),Promise.resolve())}return dt}function Fd(e,t){const n=[],o=[],r=[],s=Math.max(t.matched.length,e.matched.length);for(let i=0;iCn(c,l))?o.push(l):n.push(l));const a=e.matched[i];a&&(t.matched.find(c=>Cn(c,a))||r.push(a))}return[n,o,r]}function cn(){return He(tr)}function St(e){return He(ds)}var hs=Symbol(""),vt=()=>{const e=He(hs);if(!e)throw new Error("useClientData() is called without provider.");return e},zd=()=>vt().pageComponent,un=()=>vt().pageData,ft=()=>vt().pageFrontmatter,Ud=()=>vt().pageHead,Wd=()=>vt().pageLang,Kd=()=>vt().pageLayout,Gt=()=>vt().routeLocale,Gd=()=>vt().routes,fa=()=>vt().siteData,nr=()=>vt().siteLocaleData,qd=Symbol(""),Br=jt(Nf),En=jt(Df),da=(e,t)=>{const n=xf(e,t);if(En.value[n])return n;const o=encodeURI(n);if(En.value[o])return o;const r=Br.value[n]||Br.value[o];return r||n},Xn=(e,t)=>{const{pathname:n,hashAndQueries:o}=Ql(e),r=da(n,t),s=r+o;return En.value[r]?{...En.value[r],path:s,notFound:!1}:{...En.value["/404.html"],path:s,notFound:!0}},Jd=(e,t)=>{const{pathname:n,hashAndQueries:o}=Ql(e);return da(n,t)+o},Yd=e=>{if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget){const t=e.currentTarget.getAttribute("target");if(t!=null&&t.match(/\b_blank\b/i))return}return e.preventDefault(),!0}},ho=he({name:"RouteLink",props:{to:{type:String,required:!0},active:Boolean,activeClass:{type:String,default:"route-link-active"}},slots:Object,setup(e,{slots:t}){const n=cn(),o=St(),r=I(()=>e.to.startsWith("#")||e.to.startsWith("?")?e.to:`/${Jd(e.to,o.path).substring(1)}`);return()=>{var s;return K("a",{class:["route-link",{[e.activeClass]:e.active}],href:r.value,onClick:(i={})=>{Yd(i)&&n.push(e.to).catch()}},(s=t.default)==null?void 0:s.call(t))}}}),Tn=he({name:"AutoLink",props:{config:{type:Object,required:!0}},slots:Object,setup(e,{slots:t}){const n=gl(e,"config"),o=St(),r=fa(),s=I(()=>fo(n.value.link)),i=I(()=>n.value.target||(s.value?"_blank":void 0)),l=I(()=>i.value==="_blank"),a=I(()=>!s.value&&!l.value),c=I(()=>n.value.rel||(l.value?"noopener noreferrer":null)),f=I(()=>n.value.ariaLabel??n.value.text),u=I(()=>{if(n.value.exact)return!1;const p=Object.keys(r.value.locales);return p.length?p.every(v=>v!==n.value.link):n.value.link!=="/"}),h=I(()=>a.value?n.value.activeMatch?(n.value.activeMatch instanceof RegExp?n.value.activeMatch:new RegExp(n.value.activeMatch,"u")).test(o.path):u.value?o.path.startsWith(n.value.link):o.path===n.value.link:!1);return()=>{const{before:p,after:v,default:S}=t,b=(S==null?void 0:S(n.value))||[p==null?void 0:p(n.value),n.value.text,v==null?void 0:v(n.value)];return a.value?K(ho,{class:"auto-link",to:n.value.link,active:h.value,"aria-label":f.value},()=>b):K("a",{class:"auto-link external-link",href:n.value.link,"aria-label":f.value,rel:c.value,target:i.value},b)}}}),ps=he({name:"ClientOnly",setup(e,t){const n=ie(!1);return Re(()=>{n.value=!0}),()=>{var o,r;return n.value?(r=(o=t.slots).default)==null?void 0:r.call(o):null}}}),ms=he({name:"Content",props:{path:{type:String,required:!1,default:""}},setup(e){const t=zd(),n=I(()=>{if(!e.path)return t.value;const o=Xn(e.path);return Cl(()=>o.loader().then(({comp:r})=>r))});return()=>K(n.value)}}),Qd="Layout",Xd="en-US",Qt=oo({resolveLayouts:e=>e.reduce((t,n)=>({...t,...n.layouts}),{}),resolvePageHead:(e,t,n)=>{const o=lt(t.description)?t.description:n.description,r=[...Array.isArray(t.head)?t.head:[],...n.head,["title",{},e],["meta",{name:"description",content:o}]];return If(r)},resolvePageHeadTitle:(e,t)=>[e.title,t.title].filter(n=>!!n).join(" | "),resolvePageLang:(e,t)=>e.lang||t.lang||Xd,resolvePageLayout:(e,t)=>{const n=lt(e.frontmatter.layout)?e.frontmatter.layout:Qd;if(!t[n])throw new Error(`[vuepress] Cannot resolve layout: ${n}`);return t[n]},resolveRouteLocale:(e,t)=>Pf(e,decodeURI(t)),resolveSiteLocaleData:({base:e,locales:t,...n},o)=>{var r;return{...n,...t[o],head:[...((r=t[o])==null?void 0:r.head)??[],...n.head??[]]}}}),Lt=(e={})=>e,gs=e=>Zo(e)?e:`/${Zl(e)}`;function po(e){return Qi()?(oc(e),!0):!1}function et(e){return typeof e=="function"?e():on(e)}const or=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Zd=Object.prototype.toString,eh=e=>Zd.call(e)==="[object Object]",sn=()=>{},Fr=th();function th(){var e,t;return or&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function ha(e,t){function n(...o){return new Promise((r,s)=>{Promise.resolve(e(()=>t.apply(this,o),{fn:t,thisArg:this,args:o})).then(r).catch(s)})}return n}const pa=e=>e();function nh(e,t={}){let n,o,r=sn;const s=l=>{clearTimeout(l),r(),r=sn};return l=>{const a=et(e),c=et(t.maxWait);return n&&s(n),a<=0||c!==void 0&&c<=0?(o&&(s(o),o=null),Promise.resolve(l())):new Promise((f,u)=>{r=t.rejectOnCancel?u:f,c&&!o&&(o=setTimeout(()=>{n&&s(n),o=null,f(l())},c)),n=setTimeout(()=>{o&&s(o),o=null,f(l())},a)})}}function oh(e=pa){const t=ie(!0);function n(){t.value=!1}function o(){t.value=!0}const r=(...s)=>{t.value&&e(...s)};return{isActive:ro(t),pause:n,resume:o,eventFilter:r}}function rh(e){let t;function n(){return t||(t=e()),t}return n.reset=async()=>{const o=t;t=void 0,o&&await o},n}function sh(e){return lo()}function ih(...e){if(e.length!==1)return gl(...e);const t=e[0];return typeof t=="function"?ro(pl(()=>({get:t,set:sn}))):ie(t)}function ma(e,t=200,n={}){return ha(nh(t,n),e)}function lh(e,t,n={}){const{eventFilter:o=pa,...r}=n;return Ce(e,ha(o,t),r)}function ah(e,t,n={}){const{eventFilter:o,...r}=n,{eventFilter:s,pause:i,resume:l,isActive:a}=oh(o);return{stop:lh(e,t,{...r,eventFilter:s}),pause:i,resume:l,isActive:a}}function vs(e,t=!0,n){sh()?Re(e,n):t?e():an(e)}function ch(e,t,n={}){const{immediate:o=!0}=n,r=ie(!1);let s=null;function i(){s&&(clearTimeout(s),s=null)}function l(){r.value=!1,i()}function a(...c){i(),r.value=!0,s=setTimeout(()=>{r.value=!1,s=null,e(...c)},et(t))}return o&&(r.value=!0,or&&a()),po(l),{isPending:ro(r),start:a,stop:l}}function uh(e=!1,t={}){const{truthyValue:n=!0,falsyValue:o=!1}=t,r=je(e),s=ie(e);function i(l){if(arguments.length)return s.value=l,s.value;{const a=et(n);return s.value=s.value===a?et(o):a,s.value}}return r?i:[s,i]}function ct(e){var t;const n=et(e);return(t=n==null?void 0:n.$el)!=null?t:n}const gt=or?window:void 0,ga=or?window.navigator:void 0;function Ve(...e){let t,n,o,r;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,o,r]=e,t=gt):[t,n,o,r]=e,!t)return sn;Array.isArray(n)||(n=[n]),Array.isArray(o)||(o=[o]);const s=[],i=()=>{s.forEach(f=>f()),s.length=0},l=(f,u,h,p)=>(f.addEventListener(u,h,p),()=>f.removeEventListener(u,h,p)),a=Ce(()=>[ct(t),et(r)],([f,u])=>{if(i(),!f)return;const h=eh(u)?{...u}:u;s.push(...n.flatMap(p=>o.map(v=>l(f,p,v,h))))},{immediate:!0,flush:"post"}),c=()=>{a(),i()};return po(c),c}let Oi=!1;function fh(e,t,n={}){const{window:o=gt,ignore:r=[],capture:s=!0,detectIframe:i=!1}=n;if(!o)return sn;Fr&&!Oi&&(Oi=!0,Array.from(o.document.body.children).forEach(h=>h.addEventListener("click",sn)),o.document.documentElement.addEventListener("click",sn));let l=!0;const a=h=>r.some(p=>{if(typeof p=="string")return Array.from(o.document.querySelectorAll(p)).some(v=>v===h.target||h.composedPath().includes(v));{const v=ct(p);return v&&(h.target===v||h.composedPath().includes(v))}}),f=[Ve(o,"click",h=>{const p=ct(e);if(!(!p||p===h.target||h.composedPath().includes(p))){if(h.detail===0&&(l=!a(h)),!l){l=!0;return}t(h)}},{passive:!0,capture:s}),Ve(o,"pointerdown",h=>{const p=ct(e);l=!a(h)&&!!(p&&!h.composedPath().includes(p))},{passive:!0}),i&&Ve(o,"blur",h=>{setTimeout(()=>{var p;const v=ct(e);((p=o.document.activeElement)==null?void 0:p.tagName)==="IFRAME"&&!(v!=null&&v.contains(o.document.activeElement))&&t(h)},0)})].filter(Boolean);return()=>f.forEach(h=>h())}function dh(){const e=ie(!1),t=lo();return t&&Re(()=>{e.value=!0},t),e}function rr(e){const t=dh();return I(()=>(t.value,!!e()))}function _s(e,t={}){const{window:n=gt}=t,o=rr(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let r;const s=ie(!1),i=c=>{s.value=c.matches},l=()=>{r&&("removeEventListener"in r?r.removeEventListener("change",i):r.removeListener(i))},a=Eu(()=>{o.value&&(l(),r=n.matchMedia(et(e)),"addEventListener"in r?r.addEventListener("change",i):r.addListener(i),s.value=r.matches)});return po(()=>{a(),l(),r=void 0}),s}function Ri(e,t={}){const{controls:n=!1,navigator:o=ga}=t,r=rr(()=>o&&"permissions"in o);let s;const i=typeof e=="string"?{name:e}:e,l=ie(),a=()=>{s&&(l.value=s.state)},c=rh(async()=>{if(r.value){if(!s)try{s=await o.permissions.query(i),Ve(s,"change",a),a()}catch{l.value="prompt"}return s}});return c(),n?{state:l,isSupported:r,query:c}:l}function hh(e={}){const{navigator:t=ga,read:n=!1,source:o,copiedDuring:r=1500,legacy:s=!1}=e,i=rr(()=>t&&"clipboard"in t),l=Ri("clipboard-read"),a=Ri("clipboard-write"),c=I(()=>i.value||s),f=ie(""),u=ie(!1),h=ch(()=>u.value=!1,r);function p(){i.value&&T(l.value)?t.clipboard.readText().then(y=>{f.value=y}):f.value=b()}c.value&&n&&Ve(["copy","cut"],p);async function v(y=et(o)){c.value&&y!=null&&(i.value&&T(a.value)?await t.clipboard.writeText(y):S(y),f.value=y,u.value=!0,h.start())}function S(y){const g=document.createElement("textarea");g.value=y??"",g.style.position="absolute",g.style.opacity="0",document.body.appendChild(g),g.select(),document.execCommand("copy"),g.remove()}function b(){var y,g,C;return(C=(g=(y=document==null?void 0:document.getSelection)==null?void 0:y.call(document))==null?void 0:g.toString())!=null?C:""}function T(y){return y==="granted"||y==="prompt"}return{isSupported:c,text:f,copied:u,copy:v}}const Lo=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Co="__vueuse_ssr_handlers__",ph=mh();function mh(){return Co in Lo||(Lo[Co]=Lo[Co]||{}),Lo[Co]}function gh(e,t){return ph[e]||t}function vh(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const _h={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Ii="vueuse-storage";function bs(e,t,n,o={}){var r;const{flush:s="pre",deep:i=!0,listenToStorageChanges:l=!0,writeDefaults:a=!0,mergeDefaults:c=!1,shallow:f,window:u=gt,eventFilter:h,onError:p=x=>{console.error(x)},initOnMounted:v}=o,S=(f?jt:ie)(typeof t=="function"?t():t);if(!n)try{n=gh("getDefaultStorage",()=>{var x;return(x=gt)==null?void 0:x.localStorage})()}catch(x){p(x)}if(!n)return S;const b=et(t),T=vh(b),y=(r=o.serializer)!=null?r:_h[T],{pause:g,resume:C}=ah(S,()=>N(S.value),{flush:s,deep:i,eventFilter:h});u&&l&&vs(()=>{Ve(u,"storage",w),Ve(u,Ii,U),v&&w()}),v||w();function D(x,B){u&&u.dispatchEvent(new CustomEvent(Ii,{detail:{key:e,oldValue:x,newValue:B,storageArea:n}}))}function N(x){try{const B=n.getItem(e);if(x==null)D(B,null),n.removeItem(e);else{const E=y.write(x);B!==E&&(n.setItem(e,E),D(B,E))}}catch(B){p(B)}}function $(x){const B=x?x.newValue:n.getItem(e);if(B==null)return a&&b!=null&&n.setItem(e,y.write(b)),b;if(!x&&c){const E=y.read(B);return typeof c=="function"?c(E,b):T==="object"&&!Array.isArray(E)?{...b,...E}:E}else return typeof B!="string"?B:y.read(B)}function w(x){if(!(x&&x.storageArea!==n)){if(x&&x.key==null){S.value=b;return}if(!(x&&x.key!==e)){g();try{(x==null?void 0:x.newValue)!==y.write(S.value)&&(S.value=$(x))}catch(B){p(B)}finally{x?an(C):C()}}}}function U(x){w(x.detail)}return S}function bh(e){return _s("(prefers-color-scheme: dark)",e)}function yh(e,t,n={}){const{window:o=gt,...r}=n;let s;const i=rr(()=>o&&"ResizeObserver"in o),l=()=>{s&&(s.disconnect(),s=void 0)},a=I(()=>Array.isArray(e)?e.map(u=>ct(u)):[ct(e)]),c=Ce(a,u=>{if(l(),i.value&&o){s=new ResizeObserver(t);for(const h of u)h&&s.observe(h,r)}},{immediate:!0,flush:"post"}),f=()=>{l(),c()};return po(f),{isSupported:i,stop:f}}function wh(e,t={width:0,height:0},n={}){const{window:o=gt,box:r="content-box"}=n,s=I(()=>{var u,h;return(h=(u=ct(e))==null?void 0:u.namespaceURI)==null?void 0:h.includes("svg")}),i=ie(t.width),l=ie(t.height),{stop:a}=yh(e,([u])=>{const h=r==="border-box"?u.borderBoxSize:r==="content-box"?u.contentBoxSize:u.devicePixelContentBoxSize;if(o&&s.value){const p=ct(e);if(p){const v=p.getBoundingClientRect();i.value=v.width,l.value=v.height}}else if(h){const p=Array.isArray(h)?h:[h];i.value=p.reduce((v,{inlineSize:S})=>v+S,0),l.value=p.reduce((v,{blockSize:S})=>v+S,0)}else i.value=u.contentRect.width,l.value=u.contentRect.height},n);vs(()=>{const u=ct(e);u&&(i.value="offsetWidth"in u?u.offsetWidth:t.width,l.value="offsetHeight"in u?u.offsetHeight:t.height)});const c=Ce(()=>ct(e),u=>{i.value=u?t.width:0,l.value=u?t.height:0});function f(){a(),c()}return{width:i,height:l,stop:f}}function wr(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function Vb(e,t,n={}){const{window:o=gt}=n;return bs(e,t,o==null?void 0:o.localStorage,n)}function va(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const Er=new WeakMap;function Sh(e,t=!1){const n=ie(t);let o=null,r="";Ce(ih(e),l=>{const a=wr(et(l));if(a){const c=a;if(Er.get(c)||Er.set(c,c.style.overflow),c.style.overflow!=="hidden"&&(r=c.style.overflow),c.style.overflow==="hidden")return n.value=!0;if(n.value)return c.style.overflow="hidden"}},{immediate:!0});const s=()=>{const l=wr(et(e));!l||n.value||(Fr&&(o=Ve(l,"touchmove",a=>{Eh(a)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},i=()=>{const l=wr(et(e));!l||!n.value||(Fr&&(o==null||o()),l.style.overflow=r,Er.delete(l),n.value=!1)};return po(i),I({get(){return n.value},set(l){l?s():i()}})}function Lh(e={}){const{window:t=gt,behavior:n="auto"}=e;if(!t)return{x:ie(0),y:ie(0)};const o=ie(t.scrollX),r=ie(t.scrollY),s=I({get(){return o.value},set(l){scrollTo({left:l,behavior:n})}}),i=I({get(){return r.value},set(l){scrollTo({top:l,behavior:n})}});return Ve(t,"scroll",()=>{o.value=t.scrollX,r.value=t.scrollY},{capture:!1,passive:!0}),{x:s,y:i}}function Ch(e={}){const{window:t=gt,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:o=Number.POSITIVE_INFINITY,listenOrientation:r=!0,includeScrollbar:s=!0}=e,i=ie(n),l=ie(o),a=()=>{t&&(s?(i.value=t.innerWidth,l.value=t.innerHeight):(i.value=t.document.documentElement.clientWidth,l.value=t.document.documentElement.clientHeight))};if(a(),vs(a),Ve("resize",a,{passive:!0}),r){const c=_s("(orientation: portrait)");Ce(c,()=>a())}return{width:i,height:l}}const Mi=async(e,t)=>{const{path:n,query:o}=e.currentRoute.value,{scrollBehavior:r}=e.options;e.options.scrollBehavior=void 0,await e.replace({path:n,query:o,hash:t}),e.options.scrollBehavior=r},kh=({headerLinkSelector:e,headerAnchorSelector:t,delay:n,offset:o=5})=>{const r=cn();Ve("scroll",ma(()=>{var v,S;const i=Math.max(window.scrollY,document.documentElement.scrollTop,document.body.scrollTop);if(Math.abs(i-0)u.some(T=>T.hash===b.hash));for(let b=0;b=(((v=T.parentElement)==null?void 0:v.offsetTop)??0)-o,C=!y||i<(((S=y.parentElement)==null?void 0:S.offsetTop)??0)-o;if(!(g&&C))continue;const N=decodeURIComponent(r.currentRoute.value.hash),$=decodeURIComponent(T.hash);if(N===$)return;if(f){for(let w=b+1;w{const t=Gt();return I(()=>e[t.value]??{})},Ih=()=>{const e=Gd();return I(()=>Object.keys(e.value))},Sr=(e,t)=>{var o;const n=(o=lo())==null?void 0:o.appContext.components;return n?e in n||tt(e)in n||to(tt(e))in n:!1},ba=e=>new Promise(t=>setTimeout(t,e)),Mh=({selector:e=[...new Array(6)].map((o,r)=>`#vp-content h${r+1}`).join(","),levels:t=2,ignore:n=[]}={})=>{const o=Array.from(document.querySelectorAll(e)).filter(r=>r.id&&r.hasChildNodes()).map(r=>{const s=Number(r.tagName[1]);return{element:r,title:$h(r,n),link:"#"+r.id,slug:r.id,level:s}});return Hh(o,t)},$h=(e,t=[])=>{let n="";if(t.length){const o=e.cloneNode(!0);o.querySelectorAll(t.join(",")).forEach(r=>r.remove()),n=o.textContent||""}else n=e.textContent||"";return n.trim()},Hh=(e,t=2)=>{if(t===!1)return[];const[n,o]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;e=e.filter(s=>s.level>=n&&s.level<=o);const r=[];e:for(let s=0;s=0;l--){const a=e[l];if(a.levellt(e)&&e.startsWith(t),Nh=Object.keys,wa=e=>ya(e,"/");var Dh={"/":{backToTop:"Back to top"}};const Vh=he({name:"BackToTop",setup(){const e=ft(),t=_a(Dh),n=jt(),{height:o}=wh(n),{height:r}=Ch(),{y:s}=Lh(),i=I(()=>e.value.backToTop!==!1&&s.value>100),l=I(()=>s.value/(o.value-r.value)*100);return Re(()=>{n.value=document.body}),()=>K(uo,{name:"back-to-top"},()=>i.value?K("button",{type:"button",class:"vp-back-to-top-button","aria-label":t.value.backToTop,onClick:()=>{window.scrollTo({top:0,behavior:"smooth"})}},[K("span",{class:"vp-scroll-progress",role:"progressbar","aria-labelledby":"loadinglabel","aria-valuenow":l.value},K("svg",K("circle",{cx:"26",cy:"26",r:"24",fill:"none",stroke:"currentColor","stroke-width":"4","stroke-dasharray":`${Math.PI*l.value*.48} ${Math.PI*(100-l.value)*.48}`}))),K("div",{class:"back-to-top-icon"})]):null)}}),jh=Lt({rootComponents:[Vh]}),Bh=Object.freeze(Object.defineProperty({__proto__:null,default:jh},Symbol.toStringTag,{value:"Module"})),Fh=/language-(shellscript|shell|bash|sh|zsh)/,zh=({delay:e=500,duration:t=2e3,locales:n,selector:o,showInMobile:r,ignoreSelector:s=[],transform:i})=>{const l=_s("(max-width: 419px)"),a=I(()=>!l.value||r),c=_a(n),f=un(),u=b=>{var y;if(b.hasAttribute("copy-code-registered"))return;const T=document.createElement("button");T.type="button",T.classList.add("vp-copy-code-button"),T.setAttribute("aria-label",c.value.copy),T.setAttribute("data-copied",c.value.copied),(y=b.parentElement)==null||y.insertBefore(T,b),b.setAttribute("copy-code-registered","")};Ce(()=>[f.value.path,a.value],async()=>{document.body.classList.toggle("copy-code-disabled",!a.value),a.value&&(await an(),await ba(e),document.querySelectorAll(o.join(",")).forEach(u))},{immediate:!0});const{copy:p}=hh({legacy:!0}),v=new WeakMap,S=(b,T,y)=>{const g=T.cloneNode(!0);s.length&&g.querySelectorAll(s.join(",")).forEach(D=>D.remove()),i&&i(g);let C=g.textContent||"";Fh.test(b.className)&&(C=C.replace(/^ *(\$|>) /gm,"")),p(C).then(()=>{if(t<=0)return;y.classList.add("copied"),clearTimeout(v.get(y));const D=setTimeout(()=>{y.classList.remove("copied"),y.blur(),v.delete(y)},t);v.set(y,D)})};Ve("click",b=>{const T=b.target;if(a.value&&T.matches('div[class*="language-"] > button.vp-copy-code-button')){const y=T.parentElement,g=T.nextElementSibling;if(!y||!g)return;S(y,g,T)}})};var Uh={"/":{copy:"Copy code",copied:"Copied"}},Wh=['.theme-default-content div[class*="language-"] pre'];const Kh=Lt({setup:()=>{zh({selector:Wh,locales:Uh,duration:2e3,delay:500,showInMobile:!1})}}),Gh=Object.freeze(Object.defineProperty({__proto__:null,default:Kh},Symbol.toStringTag,{value:"Module"}));/*! medium-zoom 1.1.0 | MIT License | https://github.com/francoischalifour/medium-zoom */var Xt=Object.assign||function(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{},o=window.Promise||function(E){function H(){}E(H,H)},r=function(E){var H=E.target;if(H===U){v();return}g.indexOf(H)!==-1&&S({target:H})},s=function(){if(!(D||!w.original)){var E=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;Math.abs(N-E)>$.scrollOffset&&setTimeout(v,150)}},i=function(E){var H=E.key||E.keyCode;(H==="Escape"||H==="Esc"||H===27)&&v()},l=function(){var E=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},H=E;if(E.background&&(U.style.background=E.background),E.container&&E.container instanceof Object&&(H.container=Xt({},$.container,E.container)),E.template){var te=Oo(E.template)?E.template:document.querySelector(E.template);H.template=te}return $=Xt({},$,H),g.forEach(function(re){re.dispatchEvent(hn("medium-zoom:update",{detail:{zoom:x}}))}),x},a=function(){var E=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return e(Xt({},$,E))},c=function(){for(var E=arguments.length,H=Array(E),te=0;te0?H.reduce(function(M,X){return[].concat(M,Hi(X))},[]):g;return re.forEach(function(M){M.classList.remove("medium-zoom-image"),M.dispatchEvent(hn("medium-zoom:detach",{detail:{zoom:x}}))}),g=g.filter(function(M){return re.indexOf(M)===-1}),x},u=function(E,H){var te=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return g.forEach(function(re){re.addEventListener("medium-zoom:"+E,H,te)}),C.push({type:"medium-zoom:"+E,listener:H,options:te}),x},h=function(E,H){var te=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return g.forEach(function(re){re.removeEventListener("medium-zoom:"+E,H,te)}),C=C.filter(function(re){return!(re.type==="medium-zoom:"+E&&re.listener.toString()===H.toString())}),x},p=function(){var E=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},H=E.target,te=function(){var M={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight,left:0,top:0,right:0,bottom:0},X=void 0,J=void 0;if($.container)if($.container instanceof Object)M=Xt({},M,$.container),X=M.width-M.left-M.right-$.margin*2,J=M.height-M.top-M.bottom-$.margin*2;else{var _e=Oo($.container)?$.container:document.querySelector($.container),De=_e.getBoundingClientRect(),We=De.width,Be=De.height,kt=De.left,xt=De.top;M=Xt({},M,{width:We,height:Be,left:kt,top:xt})}X=X||M.width-$.margin*2,J=J||M.height-$.margin*2;var dt=w.zoomedHd||w.original,Ke=$i(dt)?X:dt.naturalWidth||X,P=$i(dt)?J:dt.naturalHeight||J,W=dt.getBoundingClientRect(),F=W.top,Y=W.left,ue=W.width,ve=W.height,d=Math.min(Math.max(ue,Ke),X)/ue,m=Math.min(Math.max(ve,P),J)/ve,_=Math.min(d,m),A=(-Y+(X-ue)/2+$.margin+M.left)/_,k=(-F+(J-ve)/2+$.margin+M.top)/_,R="scale("+_+") translate3d("+A+"px, "+k+"px, 0)";w.zoomed.style.transform=R,w.zoomedHd&&(w.zoomedHd.style.transform=R)};return new o(function(re){if(H&&g.indexOf(H)===-1){re(x);return}var M=function We(){D=!1,w.zoomed.removeEventListener("transitionend",We),w.original.dispatchEvent(hn("medium-zoom:opened",{detail:{zoom:x}})),re(x)};if(w.zoomed){re(x);return}if(H)w.original=H;else if(g.length>0){var X=g;w.original=X[0]}else{re(x);return}if(w.original.dispatchEvent(hn("medium-zoom:open",{detail:{zoom:x}})),N=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,D=!0,w.zoomed=Yh(w.original),document.body.appendChild(U),$.template){var J=Oo($.template)?$.template:document.querySelector($.template);w.template=document.createElement("div"),w.template.appendChild(J.content.cloneNode(!0)),document.body.appendChild(w.template)}if(w.original.parentElement&&w.original.parentElement.tagName==="PICTURE"&&w.original.currentSrc&&(w.zoomed.src=w.original.currentSrc),document.body.appendChild(w.zoomed),window.requestAnimationFrame(function(){document.body.classList.add("medium-zoom--opened")}),w.original.classList.add("medium-zoom-image--hidden"),w.zoomed.classList.add("medium-zoom-image--opened"),w.zoomed.addEventListener("click",v),w.zoomed.addEventListener("transitionend",M),w.original.getAttribute("data-zoom-src")){w.zoomedHd=w.zoomed.cloneNode(),w.zoomedHd.removeAttribute("srcset"),w.zoomedHd.removeAttribute("sizes"),w.zoomedHd.removeAttribute("loading"),w.zoomedHd.src=w.zoomed.getAttribute("data-zoom-src"),w.zoomedHd.onerror=function(){clearInterval(_e),console.warn("Unable to reach the zoom image target "+w.zoomedHd.src),w.zoomedHd=null,te()};var _e=setInterval(function(){w.zoomedHd.complete&&(clearInterval(_e),w.zoomedHd.classList.add("medium-zoom-image--opened"),w.zoomedHd.addEventListener("click",v),document.body.appendChild(w.zoomedHd),te())},10)}else if(w.original.hasAttribute("srcset")){w.zoomedHd=w.zoomed.cloneNode(),w.zoomedHd.removeAttribute("sizes"),w.zoomedHd.removeAttribute("loading");var De=w.zoomedHd.addEventListener("load",function(){w.zoomedHd.removeEventListener("load",De),w.zoomedHd.classList.add("medium-zoom-image--opened"),w.zoomedHd.addEventListener("click",v),document.body.appendChild(w.zoomedHd),te()})}else te()})},v=function(){return new o(function(E){if(D||!w.original){E(x);return}var H=function te(){w.original.classList.remove("medium-zoom-image--hidden"),document.body.removeChild(w.zoomed),w.zoomedHd&&document.body.removeChild(w.zoomedHd),document.body.removeChild(U),w.zoomed.classList.remove("medium-zoom-image--opened"),w.template&&document.body.removeChild(w.template),D=!1,w.zoomed.removeEventListener("transitionend",te),w.original.dispatchEvent(hn("medium-zoom:closed",{detail:{zoom:x}})),w.original=null,w.zoomed=null,w.zoomedHd=null,w.template=null,E(x)};D=!0,document.body.classList.remove("medium-zoom--opened"),w.zoomed.style.transform="",w.zoomedHd&&(w.zoomedHd.style.transform=""),w.template&&(w.template.style.transition="opacity 150ms",w.template.style.opacity=0),w.original.dispatchEvent(hn("medium-zoom:close",{detail:{zoom:x}})),w.zoomed.addEventListener("transitionend",H)})},S=function(){var E=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},H=E.target;return w.original?v():p({target:H})},b=function(){return $},T=function(){return g},y=function(){return w.original},g=[],C=[],D=!1,N=0,$=n,w={original:null,zoomed:null,zoomedHd:null,template:null};Object.prototype.toString.call(t)==="[object Object]"?$=t:(t||typeof t=="string")&&c(t),$=Xt({margin:0,background:"#fff",scrollOffset:40,container:null,template:null},$);var U=Jh($.background);document.addEventListener("click",r),document.addEventListener("keyup",i),document.addEventListener("scroll",s),window.addEventListener("resize",v);var x={open:p,close:v,toggle:S,update:l,clone:a,attach:c,detach:f,on:u,off:h,getOptions:b,getImages:T,getZoomedImage:y};return x};function Xh(e,t){t===void 0&&(t={});var n=t.insertAt;if(!(typeof document>"u")){var o=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css",n==="top"&&o.firstChild?o.insertBefore(r,o.firstChild):o.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}}var Zh=".medium-zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .3s;will-change:opacity}.medium-zoom--opened .medium-zoom-overlay{cursor:pointer;cursor:zoom-out;opacity:1}.medium-zoom-image{cursor:pointer;cursor:zoom-in;transition:transform .3s cubic-bezier(.2,0,.2,1)!important}.medium-zoom-image--hidden{visibility:hidden}.medium-zoom-image--opened{position:relative;cursor:pointer;cursor:zoom-out;will-change:transform}";Xh(Zh);const ep=Symbol("mediumZoom");var tp={};const np=".theme-default-content > img, .theme-default-content :not(a) > img",op=tp,rp=300,sp=Lt({enhance({app:e,router:t}){const n=Qh(op);n.refresh=(o=np)=>{n.detach(),n.attach(o)},e.provide(ep,n),t.afterEach(()=>{ya(rp).then(()=>n.refresh())})}}),ip=Object.freeze(Object.defineProperty({__proto__:null,default:sp},Symbol.toStringTag,{value:"Module"}));/** +See: https://github.com/francoischalifour/medium-zoom`)}},Jh=function(t){var n=document.createElement("div");return n.classList.add("medium-zoom-overlay"),n.style.background=t,n},Yh=function(t){var n=t.getBoundingClientRect(),o=n.top,r=n.left,s=n.width,i=n.height,l=t.cloneNode(),a=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,c=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;return l.removeAttribute("id"),l.style.position="absolute",l.style.top=o+a+"px",l.style.left=r+c+"px",l.style.width=s+"px",l.style.height=i+"px",l.style.transform="",l},hn=function(t,n){var o=Xt({bubbles:!1,cancelable:!1,detail:void 0},n);if(typeof window.CustomEvent=="function")return new CustomEvent(t,o);var r=document.createEvent("CustomEvent");return r.initCustomEvent(t,o.bubbles,o.cancelable,o.detail),r},Qh=function e(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=window.Promise||function(E){function H(){}E(H,H)},r=function(E){var H=E.target;if(H===U){v();return}g.indexOf(H)!==-1&&S({target:H})},s=function(){if(!(D||!w.original)){var E=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;Math.abs(N-E)>$.scrollOffset&&setTimeout(v,150)}},i=function(E){var H=E.key||E.keyCode;(H==="Escape"||H==="Esc"||H===27)&&v()},l=function(){var E=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},H=E;if(E.background&&(U.style.background=E.background),E.container&&E.container instanceof Object&&(H.container=Xt({},$.container,E.container)),E.template){var te=Oo(E.template)?E.template:document.querySelector(E.template);H.template=te}return $=Xt({},$,H),g.forEach(function(re){re.dispatchEvent(hn("medium-zoom:update",{detail:{zoom:x}}))}),x},a=function(){var E=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return e(Xt({},$,E))},c=function(){for(var E=arguments.length,H=Array(E),te=0;te0?H.reduce(function(M,X){return[].concat(M,Hi(X))},[]):g;return re.forEach(function(M){M.classList.remove("medium-zoom-image"),M.dispatchEvent(hn("medium-zoom:detach",{detail:{zoom:x}}))}),g=g.filter(function(M){return re.indexOf(M)===-1}),x},u=function(E,H){var te=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return g.forEach(function(re){re.addEventListener("medium-zoom:"+E,H,te)}),C.push({type:"medium-zoom:"+E,listener:H,options:te}),x},h=function(E,H){var te=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return g.forEach(function(re){re.removeEventListener("medium-zoom:"+E,H,te)}),C=C.filter(function(re){return!(re.type==="medium-zoom:"+E&&re.listener.toString()===H.toString())}),x},p=function(){var E=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},H=E.target,te=function(){var M={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight,left:0,top:0,right:0,bottom:0},X=void 0,J=void 0;if($.container)if($.container instanceof Object)M=Xt({},M,$.container),X=M.width-M.left-M.right-$.margin*2,J=M.height-M.top-M.bottom-$.margin*2;else{var _e=Oo($.container)?$.container:document.querySelector($.container),De=_e.getBoundingClientRect(),We=De.width,Be=De.height,kt=De.left,xt=De.top;M=Xt({},M,{width:We,height:Be,left:kt,top:xt})}X=X||M.width-$.margin*2,J=J||M.height-$.margin*2;var dt=w.zoomedHd||w.original,Ke=$i(dt)?X:dt.naturalWidth||X,P=$i(dt)?J:dt.naturalHeight||J,W=dt.getBoundingClientRect(),F=W.top,Y=W.left,ue=W.width,ve=W.height,d=Math.min(Math.max(ue,Ke),X)/ue,m=Math.min(Math.max(ve,P),J)/ve,_=Math.min(d,m),A=(-Y+(X-ue)/2+$.margin+M.left)/_,k=(-F+(J-ve)/2+$.margin+M.top)/_,R="scale("+_+") translate3d("+A+"px, "+k+"px, 0)";w.zoomed.style.transform=R,w.zoomedHd&&(w.zoomedHd.style.transform=R)};return new o(function(re){if(H&&g.indexOf(H)===-1){re(x);return}var M=function We(){D=!1,w.zoomed.removeEventListener("transitionend",We),w.original.dispatchEvent(hn("medium-zoom:opened",{detail:{zoom:x}})),re(x)};if(w.zoomed){re(x);return}if(H)w.original=H;else if(g.length>0){var X=g;w.original=X[0]}else{re(x);return}if(w.original.dispatchEvent(hn("medium-zoom:open",{detail:{zoom:x}})),N=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,D=!0,w.zoomed=Yh(w.original),document.body.appendChild(U),$.template){var J=Oo($.template)?$.template:document.querySelector($.template);w.template=document.createElement("div"),w.template.appendChild(J.content.cloneNode(!0)),document.body.appendChild(w.template)}if(w.original.parentElement&&w.original.parentElement.tagName==="PICTURE"&&w.original.currentSrc&&(w.zoomed.src=w.original.currentSrc),document.body.appendChild(w.zoomed),window.requestAnimationFrame(function(){document.body.classList.add("medium-zoom--opened")}),w.original.classList.add("medium-zoom-image--hidden"),w.zoomed.classList.add("medium-zoom-image--opened"),w.zoomed.addEventListener("click",v),w.zoomed.addEventListener("transitionend",M),w.original.getAttribute("data-zoom-src")){w.zoomedHd=w.zoomed.cloneNode(),w.zoomedHd.removeAttribute("srcset"),w.zoomedHd.removeAttribute("sizes"),w.zoomedHd.removeAttribute("loading"),w.zoomedHd.src=w.zoomed.getAttribute("data-zoom-src"),w.zoomedHd.onerror=function(){clearInterval(_e),console.warn("Unable to reach the zoom image target "+w.zoomedHd.src),w.zoomedHd=null,te()};var _e=setInterval(function(){w.zoomedHd.complete&&(clearInterval(_e),w.zoomedHd.classList.add("medium-zoom-image--opened"),w.zoomedHd.addEventListener("click",v),document.body.appendChild(w.zoomedHd),te())},10)}else if(w.original.hasAttribute("srcset")){w.zoomedHd=w.zoomed.cloneNode(),w.zoomedHd.removeAttribute("sizes"),w.zoomedHd.removeAttribute("loading");var De=w.zoomedHd.addEventListener("load",function(){w.zoomedHd.removeEventListener("load",De),w.zoomedHd.classList.add("medium-zoom-image--opened"),w.zoomedHd.addEventListener("click",v),document.body.appendChild(w.zoomedHd),te()})}else te()})},v=function(){return new o(function(E){if(D||!w.original){E(x);return}var H=function te(){w.original.classList.remove("medium-zoom-image--hidden"),document.body.removeChild(w.zoomed),w.zoomedHd&&document.body.removeChild(w.zoomedHd),document.body.removeChild(U),w.zoomed.classList.remove("medium-zoom-image--opened"),w.template&&document.body.removeChild(w.template),D=!1,w.zoomed.removeEventListener("transitionend",te),w.original.dispatchEvent(hn("medium-zoom:closed",{detail:{zoom:x}})),w.original=null,w.zoomed=null,w.zoomedHd=null,w.template=null,E(x)};D=!0,document.body.classList.remove("medium-zoom--opened"),w.zoomed.style.transform="",w.zoomedHd&&(w.zoomedHd.style.transform=""),w.template&&(w.template.style.transition="opacity 150ms",w.template.style.opacity=0),w.original.dispatchEvent(hn("medium-zoom:close",{detail:{zoom:x}})),w.zoomed.addEventListener("transitionend",H)})},S=function(){var E=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},H=E.target;return w.original?v():p({target:H})},b=function(){return $},T=function(){return g},y=function(){return w.original},g=[],C=[],D=!1,N=0,$=n,w={original:null,zoomed:null,zoomedHd:null,template:null};Object.prototype.toString.call(t)==="[object Object]"?$=t:(t||typeof t=="string")&&c(t),$=Xt({margin:0,background:"#fff",scrollOffset:40,container:null,template:null},$);var U=Jh($.background);document.addEventListener("click",r),document.addEventListener("keyup",i),document.addEventListener("scroll",s),window.addEventListener("resize",v);var x={open:p,close:v,toggle:S,update:l,clone:a,attach:c,detach:f,on:u,off:h,getOptions:b,getImages:T,getZoomedImage:y};return x};function Xh(e,t){t===void 0&&(t={});var n=t.insertAt;if(!(typeof document>"u")){var o=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css",n==="top"&&o.firstChild?o.insertBefore(r,o.firstChild):o.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}}var Zh=".medium-zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .3s;will-change:opacity}.medium-zoom--opened .medium-zoom-overlay{cursor:pointer;cursor:zoom-out;opacity:1}.medium-zoom-image{cursor:pointer;cursor:zoom-in;transition:transform .3s cubic-bezier(.2,0,.2,1)!important}.medium-zoom-image--hidden{visibility:hidden}.medium-zoom-image--opened{position:relative;cursor:pointer;cursor:zoom-out;will-change:transform}";Xh(Zh);const ep=Symbol("mediumZoom");var tp={};const np=".theme-default-content > img, .theme-default-content :not(a) > img",op=tp,rp=300,sp=Lt({enhance({app:e,router:t}){const n=Qh(op);n.refresh=(o=np)=>{n.detach(),n.attach(o)},e.provide(ep,n),t.afterEach(()=>{ba(rp).then(()=>n.refresh())})}}),ip=Object.freeze(Object.defineProperty({__proto__:null,default:sp},Symbol.toStringTag,{value:"Module"}));/** * NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress * @license MIT - */const fe={settings:{minimum:.08,easing:"ease",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,barSelector:'[role="bar"]',parent:"body",template:'
'},status:null,set:e=>{const t=fe.isStarted();e=Lr(e,fe.settings.minimum,1),fe.status=e===1?null:e;const n=fe.render(!t),o=n.querySelector(fe.settings.barSelector),r=fe.settings.speed,s=fe.settings.easing;return n.offsetWidth,lp(i=>{xo(o,{transform:"translate3d("+Ni(e)+"%,0,0)",transition:"all "+r+"ms "+s}),e===1?(xo(n,{transition:"none",opacity:"1"}),n.offsetWidth,setTimeout(()=>{xo(n,{transition:"all "+r+"ms linear",opacity:"0"}),setTimeout(()=>{fe.remove(),i()},r)},r)):setTimeout(()=>i(),r)}),fe},isStarted:()=>typeof fe.status=="number",start:()=>{fe.status||fe.set(0);const e=()=>{setTimeout(()=>{fe.status&&(fe.trickle(),e())},fe.settings.trickleSpeed)};return fe.settings.trickle&&e(),fe},done:e=>!e&&!fe.status?fe:fe.inc(.3+.5*Math.random()).set(1),inc:e=>{let t=fe.status;return t?(typeof e!="number"&&(e=(1-t)*Lr(Math.random()*t,.1,.95)),t=Lr(t+e,0,.994),fe.set(t)):fe.start()},trickle:()=>fe.inc(Math.random()*fe.settings.trickleRate),render:e=>{if(fe.isRendered())return document.getElementById("nprogress");Di(document.documentElement,"nprogress-busy");const t=document.createElement("div");t.id="nprogress",t.innerHTML=fe.settings.template;const n=t.querySelector(fe.settings.barSelector),o=e?"-100":Ni(fe.status||0),r=document.querySelector(fe.settings.parent);return xo(n,{transition:"all 0 linear",transform:"translate3d("+o+"%,0,0)"}),r!==document.body&&Di(r,"nprogress-custom-parent"),r==null||r.appendChild(t),t},remove:()=>{Vi(document.documentElement,"nprogress-busy"),Vi(document.querySelector(fe.settings.parent),"nprogress-custom-parent");const e=document.getElementById("nprogress");e&&ap(e)},isRendered:()=>!!document.getElementById("nprogress")},Lr=(e,t,n)=>en?n:e,Ni=e=>(-1+e)*100,lp=function(){const e=[];function t(){const n=e.shift();n&&n(t)}return function(n){e.push(n),e.length===1&&t()}}(),xo=function(){const e=["Webkit","O","Moz","ms"],t={};function n(i){return i.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(l,a){return a.toUpperCase()})}function o(i){const l=document.body.style;if(i in l)return i;let a=e.length;const c=i.charAt(0).toUpperCase()+i.slice(1);let f;for(;a--;)if(f=e[a]+c,f in l)return f;return i}function r(i){return i=n(i),t[i]??(t[i]=o(i))}function s(i,l,a){l=r(l),i.style[l]=a}return function(i,l){for(const a in l){const c=l[a];c!==void 0&&Object.prototype.hasOwnProperty.call(l,a)&&s(i,a,c)}}}(),Sa=(e,t)=>(typeof e=="string"?e:ys(e)).indexOf(" "+t+" ")>=0,Di=(e,t)=>{const n=ys(e),o=n+t;Sa(n,t)||(e.className=o.substring(1))},Vi=(e,t)=>{const n=ys(e);if(!Sa(e,t))return;const o=n.replace(" "+t+" "," ");e.className=o.substring(1,o.length-1)},ys=e=>(" "+(e.className||"")+" ").replace(/\s+/gi," "),ap=e=>{e&&e.parentNode&&e.parentNode.removeChild(e)},cp=()=>{Re(()=>{const e=cn(),t=new Set;t.add(e.currentRoute.value.path),e.beforeEach(n=>{t.has(n.path)||fe.start()}),e.afterEach(n=>{t.add(n.path),fe.done()})})},up=Lt({setup(){cp()}}),fp=Object.freeze(Object.defineProperty({__proto__:null,default:up},Symbol.toStringTag,{value:"Module"})),dp=JSON.parse(`{"logo":"/images/icon.svg","logoDark":"/images/icon-borderless.svg","repo":"https://github.com/adzejs/adze","navbar":[{"text":"Getting Started","link":"/getting-started/introduction"},{"text":"Reference Manual","link":"/reference/introduction"},{"text":"Plugins","link":"/plugins"},{"text":"v1.x","link":"https://v1.adzejs.com/"}],"sidebar":{"/getting-started/":[{"text":"Getting Started","link":"/getting-started/introduction","collapsible":false,"children":[{"text":"Introduction","link":"/getting-started/introduction"},{"text":"Installation","link":"/getting-started/installation"},{"text":"Migrating from v1","link":"/getting-started/migrating"},{"text":"Concepts","link":"/getting-started/concepts"},{"text":"Setup","link":"/getting-started/setup"},{"text":"Configuration","link":"/getting-started/configuration"},{"text":"Log Annotation","link":"/getting-started/annotation"},{"text":"Global Store","link":"/getting-started/global-store"},{"text":"Capturing Log Data","link":"/getting-started/capture-data"},{"text":"Log Threading (MDC)","link":"/getting-started/threading"},{"text":"Filtering Logs","link":"/getting-started/filtering"},{"text":"Tools","link":"/getting-started/tools"},{"text":"Putting It All Together","link":"/getting-started/putting-it-all-together"}]}],"/reference/":[{"text":"Reference Manual","link":"/reference/introduction","collapsible":false,"children":[{"text":"Introduction & Lifecycle","link":"/reference/introduction"},{"text":"Log Class","link":"/reference/log-class"},{"text":"Data Getters","link":"/reference/getters"},{"text":"Modifiers","link":"/reference/modifiers"},{"text":"Terminators","link":"/reference/terminators"},{"text":"Global Store","link":"/reference/global-store"},{"text":"Tools","link":"/reference/tools"},{"text":"Configuration","link":"/reference/configuration"},{"text":"Middleware","link":"/reference/middleware"},{"text":"Formatters","link":"/reference/formatters"},{"text":"Unit Testing","link":"/reference/unit-testing"}]}]},"locales":{"/":{"selectLanguageName":"English"}},"colorMode":"auto","colorModeSwitch":true,"selectLanguageText":"Languages","selectLanguageAriaLabel":"Select language","sidebarDepth":2,"editLink":true,"editLinkText":"Edit this page","lastUpdated":true,"lastUpdatedText":"Last Updated","contributors":true,"contributorsText":"Contributors","notFound":["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."],"backToHome":"Take me home","openInNewWindow":"open in new window","toggleColorMode":"toggle color mode","toggleSidebar":"toggle sidebar"}`),hp=ie(dp),La=()=>hp,Ca=Symbol(""),pp=()=>{const e=He(Ca);if(!e)throw new Error("useThemeLocaleData() is called without provider.");return e},mp=(e,t)=>{const{locales:n,...o}=e;return{...o,...n==null?void 0:n[t]}},gp=Lt({enhance({app:e}){const t=La(),n=e._context.provides[hs],o=I(()=>mp(t.value,n.routeLocale.value));e.provide(Ca,o),Object.defineProperties(e.config.globalProperties,{$theme:{get(){return t.value}},$themeLocale:{get(){return o.value}}})}}),vp=Object.freeze(Object.defineProperty({__proto__:null,default:gp},Symbol.toStringTag,{value:"Module"})),_p=()=>La(),Ae=()=>pp(),ka=Symbol(""),bp=e=>{const t=(n=e.value)=>{const o=window.document.documentElement;o.classList.toggle("dark",n),o.dataset.theme=n?"dark":"light"};Re(()=>{Ce(e,t,{immediate:!0})}),Pn(()=>t())},sr=()=>{const e=He(ka);if(!e)throw new Error("useDarkMode() is called without provider.");return e},yp=()=>{const e=Ae(),t=bh(),n=bs("vuepress-color-scheme",e.value.colorMode),o=I({get(){return e.value.colorModeSwitch?n.value==="auto"?t.value:n.value==="dark":e.value.colorMode==="dark"},set(r){r===t.value?n.value="auto":n.value=r?"dark":"light"}});Dt(ka,o),bp(o)};let Cr=null,$n=null;const wp={wait:()=>Cr,pending:()=>{Cr=new Promise(e=>$n=e)},resolve:()=>{$n==null||$n(),Cr=null,$n=null}},xa=()=>wp,xn=(e,t)=>{const{notFound:n,meta:o,path:r}=Xn(e,t);return n?{text:r,link:r}:{text:o.title||r,link:r}},ji=e=>decodeURI(e).replace(/#.*$/,"").replace(/(index)?\.(md|html)$/,""),Ep=(e,t)=>{if(t.hash===e)return!0;const n=ji(t.path),o=ji(e);return n===o},Pa=(e,t)=>e.link&&Ep(e.link,t)?!0:"children"in e?e.children.some(n=>Pa(n,t)):!1,Ta=e=>!Cf(e)&&!fo(e),Aa=e=>!Zo(e)||/github\.com/.test(e)?"GitHub":/bitbucket\.org/.test(e)?"Bitbucket":/gitlab\.com/.test(e)?"GitLab":/gitee\.com/.test(e)?"Gitee":null,Sp={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"},Lp=({docsRepo:e,editLinkPattern:t})=>{if(t)return t;const n=Aa(e);return n!==null?Sp[n]:null},Cp=({docsRepo:e,docsBranch:t,docsDir:n,filePathRelative:o,editLinkPattern:r})=>{if(!o)return null;const s=Lp({docsRepo:e,editLinkPattern:r});return s?s.replace(/:repo/,Zo(e)?e:`https://github.com/${e}`).replace(/:branch/,t).replace(/:path/,ea(`${Zl(n)}/${o}`)):null},Sn=(e="",t="")=>Ea(t)||fo(t)?t:`${Mf(e)}${t}`,Ro=ie([]),kp=()=>{const e=cn(),t=Ae(),n=ft(),o=I(()=>n.value.sidebarDepth??t.value.sidebarDepth??2);e.beforeEach((s,i)=>{s.path!==i.path&&(Ro.value=[])});const r=()=>{if(o.value<=0){Ro.value=[];return}Ro.value=Mh({selector:[...new Array(6)].map((s,i)=>`.theme-default-content h${i+1}`).join(","),levels:[2,o.value+1],ignore:[".vp-badge"]})};Ce(o,r),Re(r)},xp=()=>Ro,Oa=Symbol("sidebarItems"),ws=()=>{const e=He(Oa);if(!e)throw new Error("useSidebarItems() is called without provider.");return e},Pp=()=>{const e=Ae(),t=ft(),n=un(),o=St(),r=Gt(),s=xp(),i=I(()=>t.value.home?!1:t.value.sidebar??e.value.sidebar??"heading"),l=I(()=>Tp(i.value,n.value,o.path,r.value,s.value));Dt(Oa,l)},Tp=(e,t,n,o,r)=>e===!1?[]:e==="heading"?Ra(t,r):Array.isArray(e)?Ia(e,r,n,o):us(e)?Op(e,t,r,n):[],Ap=e=>({text:e.title,link:e.link,children:Es(e.children)}),Es=e=>e?e.map(t=>Ap(t)):[],Ra=(e,t)=>[{text:e.title,children:Es(t)}],Ia=(e,t,n,o="")=>{const r=(s,i)=>{var a;const l=lt(s)?xn(Sn(i,s)):lt(s.link)?{...s,link:Ta(s.link)?xn(Sn(i,s.link)).link:s.link}:s;if("children"in l)return{...l,children:l.children.map(c=>r(c,Sn(i,l.prefix)))};if(l.link===n){const c=((a=t[0])==null?void 0:a.level)===1?t[0].children:t;return{...l,children:Es(c)}}return l};return e.map(s=>r(s,o))},Op=(e,t,n,o)=>{const r=Nh(e).sort((s,i)=>i.length-s.length);for(const s of r)if(wa(decodeURI(o),s)){const i=e[s];return i?i==="heading"?Ra(t,n):Ia(i,n,o,s):[]}return console.warn(`${decodeURI(o)} is missing sidebar config.`),[]},Rp=he({__name:"Badge",props:{type:{default:"tip"},text:{default:""},vertical:{default:void 0}},setup(e,{expose:t}){t();const n={};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),we=(e,t)=>{const n=e.__vccOpts||e;for(const[o,r]of t)n[o]=r;return n};function Ip(e,t,n,o,r,s){return G(),ne("span",{class:Je(["vp-badge",n.type]),style:no({verticalAlign:n.vertical})},[ke(e.$slots,"default",{},()=>[qe(xe(n.text),1)])],6)}const Mp=we(Rp,[["render",Ip],["__file","Badge.vue"]]),$p=he({name:"CodeGroup",slots:Object,setup(e,{slots:t}){const n=ie([]),o=sr(),r=ie();Re(()=>{if(!r.value)return;const u=r.value.querySelector('div[class*="language-"]');if(u&&u.dataset.highlighter==="shiki"){const h=u.style.getPropertyValue("--shiki-light"),p=u.style.getPropertyValue("--shiki-dark"),v=u.style.getPropertyValue("--shiki-light-bg"),S=u.style.getPropertyValue("--shiki-dark-bg");Ce(o,b=>{r.value.style.setProperty("--c-code-group-tab-bg",b?S:v),r.value.style.setProperty("--c-code-group-tab-title",b?p:h)},{immediate:!0})}});const s=ie(-1),i=bs("vuepress-code-group",{}),l=I(()=>n.value.map(u=>u.innerText).join(","));Re(()=>{Ce(()=>i.value[l.value],(u=-1)=>{s.value!==u&&(s.value=u)},{immediate:!0}),Ce(s,u=>{i.value[l.value]!==u&&(i.value[l.value]=u)})});const a=(u=s.value)=>{u{u>0?s.value=u-1:s.value=n.value.length-1,n.value[s.value].focus()},f=(u,h)=>{u.key===" "||u.key==="Enter"?(u.preventDefault(),s.value=h):u.key==="ArrowRight"?(u.preventDefault(),a(h)):u.key==="ArrowLeft"&&(u.preventDefault(),c(h))};return()=>{var h;const u=(((h=t.default)==null?void 0:h.call(t))||[]).filter(p=>p.type.name==="CodeGroupItem").map(p=>(p.props===null&&(p.props={}),p));return u.length===0?null:(s.value<0||s.value>u.length-1?(s.value=u.findIndex(p=>p.props.active===""||p.props.active===!0),s.value===-1&&(s.value=0)):u.forEach((p,v)=>{p.props.active=v===s.value}),K("div",{class:"code-group",ref:r},[K("div",{class:"code-group-nav",role:"tablist"},u.map((p,v)=>{const S=v===s.value;return K("button",{ref:b=>{b&&(n.value[v]=b)},class:{"code-group-nav-tab":!0,active:S},role:"tab",ariaSelected:S,onClick:()=>s.value=v,onKeydown:b=>f(b,v)},p.props.title)})),u]))}}}),Hp=he({name:"CodeGroupItem",__name:"CodeGroupItem",props:{title:{},active:{type:Boolean}},setup(e,{expose:t}){t();const n={};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}});function Np(e,t,n,o,r,s){return G(),ne("div",{class:Je(["code-group-item",{active:n.active}]),role:"tabpanel"},[ke(e.$slots,"default")],2)}const Dp=we(Hp,[["render",Np],["__file","CodeGroupItem.vue"]]),Vp=he({__name:"VPHomeFeatures",setup(e,{expose:t}){t();const n=ft(),o=I(()=>n.value.features??[]),r={frontmatter:n,features:o};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),jp={key:0,class:"vp-features"};function Bp(e,t,n,o,r,s){return o.features.length?(G(),ne("div",jp,[(G(!0),ne(be,null,Bt(o.features,i=>(G(),ne("div",{key:i.title,class:"vp-feature"},[L("h2",null,xe(i.title),1),L("p",null,xe(i.details),1)]))),128))])):Oe("",!0)}const Fp=we(Vp,[["render",Bp],["__file","VPHomeFeatures.vue"]]),zp=he({__name:"VPHomeFooter",setup(e,{expose:t}){t();const n=ft(),o=I(()=>n.value.footer),r=I(()=>n.value.footerHtml),s={frontmatter:n,footer:o,footerHtml:r};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}}),Up=["innerHTML"],Wp=["textContent"];function Kp(e,t,n,o,r,s){return o.footer?(G(),ne(be,{key:0},[o.footerHtml?(G(),ne("div",{key:0,class:"vp-footer",innerHTML:o.footer},null,8,Up)):(G(),ne("div",{key:1,class:"vp-footer",textContent:xe(o.footer)},null,8,Wp))],64)):Oe("",!0)}const Gp=we(zp,[["render",Kp],["__file","VPHomeFooter.vue"]]),qp=he({__name:"VPHomeHero",setup(e,{expose:t}){t();const n=ft(),o=nr(),r=sr(),s=I(()=>r.value&&n.value.heroImageDark!==void 0?n.value.heroImageDark:n.value.heroImage),i=I(()=>n.value.heroAlt||a.value||"hero"),l=I(()=>n.value.heroHeight||280),a=I(()=>n.value.heroText===null?null:n.value.heroText||o.value.title||"Hello"),c=I(()=>n.value.tagline===null?null:n.value.tagline||o.value.description||"Welcome to your VuePress site"),f=I(()=>Array.isArray(n.value.actions)?n.value.actions.map(({text:p,link:v,type:S="primary"})=>({text:p,link:v,type:S})):[]),h={frontmatter:n,siteLocale:o,isDarkMode:r,heroImage:s,heroAlt:i,heroHeight:l,heroText:a,tagline:c,actions:f,HomeHeroImage:()=>{if(!s.value)return null;const p=K("img",{class:"vp-hero-image",src:gs(s.value),alt:i.value,height:l.value});return n.value.heroImageDark===void 0?p:K(ps,()=>p)},get AutoLink(){return Tn}};return Object.defineProperty(h,"__isScriptSetup",{enumerable:!1,value:!0}),h}}),Jp={class:"vp-hero"},Yp={key:0,id:"main-title"},Qp={key:1,class:"vp-hero-description"},Xp={key:2,class:"vp-hero-actions"};function Zp(e,t,n,o,r,s){return G(),ne("header",Jp,[Q(o.HomeHeroImage),o.heroText?(G(),ne("h1",Yp,xe(o.heroText),1)):Oe("",!0),o.tagline?(G(),ne("p",Qp,xe(o.tagline),1)):Oe("",!0),o.actions.length?(G(),ne("p",Xp,[(G(!0),ne(be,null,Bt(o.actions,i=>(G(),Pe(o.AutoLink,{key:i.text,class:Je(["vp-hero-action-button",[i.type]]),config:i},null,8,["class","config"]))),128))])):Oe("",!0)])}const em=we(qp,[["render",Zp],["__file","VPHomeHero.vue"]]),tm=he({__name:"VPHome",setup(e,{expose:t}){t();const n={VPHomeFeatures:Fp,VPHomeFooter:Gp,VPHomeHero:em,get Content(){return ms}};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),nm={class:"vp-home"},om={class:"theme-default-content"};function rm(e,t,n,o,r,s){return G(),ne("main",nm,[Q(o.VPHomeHero),Q(o.VPHomeFeatures),L("div",om,[Q(o.Content)]),Q(o.VPHomeFooter)])}const sm=we(tm,[["render",rm],["__file","VPHome.vue"]]),im="719px",lm={mobile:im};var Zn;(function(e){e.MOBILE="mobile"})(Zn||(Zn={}));const am={[Zn.MOBILE]:Number.parseInt(lm.mobile.replace("px",""),10)},Ma=(e,t)=>{const n=am[e];Number.isInteger(n)&&(Ve("orientationchange",()=>t(n),!1),Ve("resize",()=>t(n),!1),Re(()=>{t(n)}))},cm=he({__name:"VPNavbarBrand",setup(e,{expose:t}){t();const n=Gt(),o=nr(),r=Ae(),s=sr(),i=I(()=>r.value.home||n.value),l=I(()=>o.value.title),a=I(()=>s.value&&r.value.logoDark!==void 0?r.value.logoDark:r.value.logo),c=I(()=>r.value.logoAlt??l.value),f=I(()=>l.value.toLocaleUpperCase().trim()===c.value.toLocaleUpperCase().trim()),h={routeLocale:n,siteLocale:o,themeLocale:r,isDarkMode:s,navbarBrandLink:i,navbarBrandTitle:l,navbarBrandLogo:a,navbarBrandLogoAlt:c,navBarLogoAltMatchesTitle:f,NavbarBrandLogo:()=>{if(!a.value)return null;const p=K("img",{class:"vp-site-logo",src:gs(a.value),alt:c.value});return r.value.logoDark===void 0?p:K(ps,()=>p)},get RouteLink(){return ho}};return Object.defineProperty(h,"__isScriptSetup",{enumerable:!1,value:!0}),h}}),um=["aria-hidden"];function fm(e,t,n,o,r,s){return G(),Pe(o.RouteLink,{to:o.navbarBrandLink},{default:Se(()=>[Q(o.NavbarBrandLogo),o.navbarBrandTitle?(G(),ne("span",{key:0,class:Je(["vp-site-name",{"vp-hide-mobile":o.navbarBrandLogo}]),"aria-hidden":o.navBarLogoAltMatchesTitle},xe(o.navbarBrandTitle),11,um)):Oe("",!0)]),_:1},8,["to"])}const dm=we(cm,[["render",fm],["__file","VPNavbarBrand.vue"]]),$a=(e,t="")=>lt(e)?xn(Sn(t,e)):"children"in e?{...e,children:e.children.map(n=>$a(n,Sn(t,e.prefix)))}:{...e,link:Ta(e.link)?xn(Sn(t,e.link)).link:e.link},hm=()=>{const e=Ae();return I(()=>(e.value.navbar||[]).map(t=>$a(t)))},pm=()=>{const e=Ae(),t=I(()=>e.value.repo),n=I(()=>t.value?Aa(t.value):null),o=I(()=>t.value&&!Zo(t.value)?`https://github.com/${t.value}`:t.value),r=I(()=>o.value?e.value.repoLabel?e.value.repoLabel:n.value===null?"Source":n.value:null);return I(()=>!o.value||!r.value?[]:[{text:r.value,link:o.value}])},mm=()=>{const e=St(),t=Ih(),n=Gt(),o=da(),r=nr(),s=_p(),i=Ae();return I(()=>{const l=Object.keys(o.value.locales);if(l.length<2)return[];const a=e.path,c=e.fullPath;return[{text:`${i.value.selectLanguageText}`,ariaLabel:`${i.value.selectLanguageAriaLabel??i.value.selectLanguageText}`,children:l.map(u=>{var T,y;const h=((T=o.value.locales)==null?void 0:T[u])??{},p=((y=s.value.locales)==null?void 0:y[u])??{},v=`${h.lang}`,S=p.selectLanguageName??v;if(v===r.value.lang)return{text:S,activeMatch:".",link:e.fullPath};const b=a.replace(n.value,u);return{text:S,link:t.value.some(g=>g===b)?c.replace(a,b):p.home??u}})}]})},gm=he({__name:"VPDropdownTransition",setup(e,{expose:t}){t();const r={setHeight:s=>{s.style.height=s.scrollHeight+"px"},unsetHeight:s=>{s.style.height=""}};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}});function vm(e,t,n,o,r,s){return G(),Pe(uo,{name:"vp-dropdown",onEnter:o.setHeight,onAfterEnter:o.unsetHeight,onBeforeLeave:o.setHeight},{default:Se(()=>[ke(e.$slots,"default")]),_:3})}const Ha=we(gm,[["render",vm],["__file","VPDropdownTransition.vue"]]),_m=he({__name:"VPNavbarDropdown",props:{item:{}},setup(e,{expose:t}){t();const n=e,{item:o}=ml(n),r=St(),s=ie(!1),i=I(()=>o.value.ariaLabel||o.value.text),l=(f,u)=>u[u.length-1]===f,a=f=>{const u=f.detail===0;s.value=u?!s.value:!1};Ce(()=>r.path,()=>{s.value=!1});const c={props:n,item:o,route:r,open:s,dropdownAriaLabel:i,isLastItemOfArray:l,handleDropdown:a,VPDropdownTransition:Ha,get AutoLink(){return Tn}};return Object.defineProperty(c,"__isScriptSetup",{enumerable:!1,value:!0}),c}}),bm=["aria-label"],ym={class:"title"},wm=L("span",{class:"arrow down"},null,-1),Em=["aria-label"],Sm={class:"title"},Lm={class:"vp-navbar-dropdown"},Cm={class:"vp-navbar-dropdown-subtitle"},km={key:1},xm={class:"vp-navbar-dropdown-subitem-wrapper"};function Pm(e,t,n,o,r,s){return G(),ne("div",{class:Je(["vp-navbar-dropdown-wrapper",{open:o.open}])},[L("button",{class:"vp-navbar-dropdown-title",type:"button","aria-label":o.dropdownAriaLabel,onClick:o.handleDropdown},[L("span",ym,xe(o.item.text),1),wm],8,bm),L("button",{class:"vp-navbar-dropdown-title-mobile",type:"button","aria-label":o.dropdownAriaLabel,onClick:t[0]||(t[0]=i=>o.open=!o.open)},[L("span",Sm,xe(o.item.text),1),L("span",{class:Je(["arrow",o.open?"down":"right"])},null,2)],8,Em),Q(o.VPDropdownTransition,null,{default:Se(()=>[Ho(L("ul",Lm,[(G(!0),ne(be,null,Bt(o.item.children,i=>(G(),ne("li",{key:i.text,class:"vp-navbar-dropdown-item"},["children"in i?(G(),ne(be,{key:0},[L("h4",Cm,[i.link?(G(),Pe(o.AutoLink,{key:0,config:i,onFocusout:l=>o.isLastItemOfArray(i,o.item.children)&&i.children.length===0&&(o.open=!1)},null,8,["config","onFocusout"])):(G(),ne("span",km,xe(i.text),1))]),L("ul",xm,[(G(!0),ne(be,null,Bt(i.children,l=>(G(),ne("li",{key:l.link,class:"vp-navbar-dropdown-subitem"},[Q(o.AutoLink,{config:l,onFocusout:a=>o.isLastItemOfArray(l,i.children)&&o.isLastItemOfArray(i,o.item.children)&&(o.open=!1)},null,8,["config","onFocusout"])]))),128))])],64)):(G(),Pe(o.AutoLink,{key:1,config:i,onFocusout:l=>o.isLastItemOfArray(i,o.item.children)&&(o.open=!1)},null,8,["config","onFocusout"]))]))),128))],512),[[zo,o.open]])]),_:1})],2)}const Tm=we(_m,[["render",Pm],["__file","VPNavbarDropdown.vue"]]),Am=he({__name:"VPNavbarItems",setup(e,{expose:t}){t();const n=hm(),o=mm(),r=pm(),s=ie(!1),i=I(()=>Ae().value.navbarLabel??"site navigation"),l=I(()=>[...n.value,...o.value,...r.value]);Ma(Zn.MOBILE,c=>{s.value=window.innerWidth(G(),ne("div",{key:i.text,class:"vp-navbar-item"},["children"in i?(G(),Pe(o.VPNavbarDropdown,{key:0,class:Je({mobile:o.isMobile}),item:i},null,8,["class","item"])):(G(),Pe(o.AutoLink,{key:1,config:i},null,8,["config"]))]))),128))],8,Om)):Oe("",!0)}const Na=we(Am,[["render",Rm],["__file","VPNavbarItems.vue"]]),Im={},Mm={class:"dark-icon",viewBox:"0 0 32 32"},$m=L("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),Hm=[$m];function Nm(e,t){return G(),ne("svg",Mm,Hm)}const Dm=we(Im,[["render",Nm],["__file","VPDarkIcon.vue"]]),Vm={},jm={class:"light-icon",viewBox:"0 0 32 32"},Bm=Mu('',9),Fm=[Bm];function zm(e,t){return G(),ne("svg",jm,Fm)}const Um=we(Vm,[["render",zm],["__file","VPLightIcon.vue"]]),Wm=he({__name:"VPToggleColorModeButton",setup(e,{expose:t}){t();const n=Ae(),o=sr(),s={themeLocale:n,isDarkMode:o,toggleColorMode:()=>{o.value=!o.value},VPDarkIcon:Dm,VPLightIcon:Um};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}}),Km=["title"];function Gm(e,t,n,o,r,s){return G(),ne("button",{class:"vp-toggle-color-mode-button",title:o.themeLocale.toggleColorMode,onClick:o.toggleColorMode},[Ho(Q(o.VPLightIcon,null,null,512),[[zo,!o.isDarkMode]]),Ho(Q(o.VPDarkIcon,null,null,512),[[zo,o.isDarkMode]])],8,Km)}const qm=we(Wm,[["render",Gm],["__file","VPToggleColorModeButton.vue"]]),Jm=he({__name:"VPToggleSidebarButton",emits:["toggle"],setup(e,{expose:t}){t();const o={themeLocale:Ae()};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),Ym=["title"],Qm=L("div",{class:"icon","aria-hidden":"true"},[L("span"),L("span"),L("span")],-1),Xm=[Qm];function Zm(e,t,n,o,r,s){return G(),ne("div",{class:"vp-toggle-sidebar-button",title:o.themeLocale.toggleSidebar,"aria-expanded":"false",role:"button",tabindex:"0",onClick:t[0]||(t[0]=i=>e.$emit("toggle"))},Xm,8,Ym)}const eg=we(Jm,[["render",Zm],["__file","VPToggleSidebarButton.vue"]]),tg=he({__name:"VPNavbar",emits:["toggle-sidebar"],setup(e,{expose:t}){t();const n=Ae(),o=ie(null),r=ie(null),s=ie(0),i=I(()=>s.value?{maxWidth:s.value+"px"}:{}),l=(c,f)=>{var p,v,S;const u=(S=(v=(p=c==null?void 0:c.ownerDocument)==null?void 0:p.defaultView)==null?void 0:v.getComputedStyle(c,null))==null?void 0:S[f],h=Number.parseInt(u,10);return Number.isNaN(h)?0:h};Ma(Zn.MOBILE,c=>{var u;const f=l(o.value,"paddingLeft")+l(o.value,"paddingRight");window.innerWidthe.$emit("toggle-sidebar"))}),L("span",og,[Q(o.VPNavbarBrand)],512),L("div",{class:"vp-navbar-items-wrapper",style:no(o.linksWrapperStyle)},[ke(e.$slots,"before"),Q(o.VPNavbarItems,{class:"vp-hide-mobile"}),ke(e.$slots,"after"),o.themeLocale.colorModeSwitch?(G(),Pe(o.VPToggleColorModeButton,{key:0})):Oe("",!0),Q(i)],4)],512)}const sg=we(tg,[["render",rg],["__file","VPNavbar.vue"]]),ig=()=>{const e=Ae(),t=un(),n=ft();return I(()=>{var r;return n.value.contributors??e.value.contributors??!0?((r=t.value.git)==null?void 0:r.contributors)??null:null})},lg=()=>{const e=Ae(),t=un(),n=ft();return I(()=>{if(!(n.value.editLink??e.value.editLink??!0))return null;const{repo:r,docsRepo:s=r,docsBranch:i="main",docsDir:l="",editLinkText:a}=e.value;if(!s)return null;const c=Cp({docsRepo:s,docsBranch:i,docsDir:l,filePathRelative:t.value.filePathRelative,editLinkPattern:n.value.editLinkPattern??e.value.editLinkPattern});return c?{text:a??"Edit this page",link:c}:null})},ag=()=>{const e=Ae(),t=un(),n=ft();return I(()=>{var s,i;return!(n.value.lastUpdated??e.value.lastUpdated??!0)||!((s=t.value.git)!=null&&s.updatedTime)?null:new Date((i=t.value.git)==null?void 0:i.updatedTime).toLocaleString()})},cg={},ug={class:"edit-icon",viewBox:"0 0 1024 1024"},fg=L("g",{fill:"currentColor"},[L("path",{d:"M430.818 653.65a60.46 60.46 0 0 1-50.96-93.281l71.69-114.012 7.773-10.365L816.038 80.138A60.46 60.46 0 0 1 859.225 62a60.46 60.46 0 0 1 43.186 18.138l43.186 43.186a60.46 60.46 0 0 1 0 86.373L588.879 565.55l-8.637 8.637-117.466 68.234a60.46 60.46 0 0 1-31.958 11.229z"}),L("path",{d:"M728.802 962H252.891A190.883 190.883 0 0 1 62.008 771.98V296.934a190.883 190.883 0 0 1 190.883-192.61h267.754a60.46 60.46 0 0 1 0 120.92H252.891a69.962 69.962 0 0 0-69.098 69.099V771.98a69.962 69.962 0 0 0 69.098 69.098h475.911A69.962 69.962 0 0 0 797.9 771.98V503.363a60.46 60.46 0 1 1 120.922 0V771.98A190.883 190.883 0 0 1 728.802 962z"})],-1),dg=[fg];function hg(e,t){return G(),ne("svg",ug,dg)}const pg=we(cg,[["render",hg],["__file","VPEditIcon.vue"]]),mg=he({__name:"VPPageMeta",setup(e,{expose:t}){t();const n=Ae(),o=lg(),r=ag(),s=ig(),i={themeLocale:n,editLink:o,lastUpdated:r,contributors:s,VPEditIcon:pg,get AutoLink(){return Tn}};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}}),gg={class:"vp-page-meta"},vg={key:0,class:"vp-meta-item edit-link"},_g={class:"vp-meta-item git-info"},bg={key:0,class:"vp-meta-item last-updated"},yg={class:"meta-item-label"},wg={class:"meta-item-info"},Eg={key:1,class:"vp-meta-item contributors"},Sg={class:"meta-item-label"},Lg={class:"meta-item-info"},Cg=["title"];function kg(e,t,n,o,r,s){const i=Gn("ClientOnly");return G(),ne("footer",gg,[o.editLink?(G(),ne("div",vg,[Q(o.AutoLink,{class:"label",config:o.editLink},{before:Se(()=>[Q(o.VPEditIcon)]),_:1},8,["config"])])):Oe("",!0),L("div",_g,[o.lastUpdated?(G(),ne("div",bg,[L("span",yg,xe(o.themeLocale.lastUpdatedText)+": ",1),Q(i,null,{default:Se(()=>[L("span",wg,xe(o.lastUpdated),1)]),_:1})])):Oe("",!0),o.contributors&&o.contributors.length?(G(),ne("div",Eg,[L("span",Sg,xe(o.themeLocale.contributorsText)+": ",1),L("span",Lg,[(G(!0),ne(be,null,Bt(o.contributors,(l,a)=>(G(),ne(be,{key:a},[L("span",{class:"contributor",title:`email: ${l.email}`},xe(l.name),9,Cg),a!==o.contributors.length-1?(G(),ne(be,{key:0},[qe(", ")],64)):Oe("",!0)],64))),128))])])):Oe("",!0)])])}const xg=we(mg,[["render",kg],["__file","VPPageMeta.vue"]]),Pg=()=>{const e=cn(),t=St();return n=>{n&&(Ea(n)?t.path!==n&&e.push(n):fo(n)?window==null||window.open(n):e.push(encodeURI(n)))}},Bi=(e,t)=>e===!1?!1:lt(e)?xn(e,t):us(e)?{...e,link:xn(e.link,t).link}:null,zr=(e,t,n)=>{const o=e.findIndex(s=>s.link===t);if(o!==-1){const s=e[o+n];return s?s.link?s:"prefix"in s&&!Xn(s.prefix).notFound?{...s,link:s.prefix}:null:null}for(const s of e)if("children"in s){const i=zr(s.children,t,n);if(i)return i}const r=e.findIndex(s=>"prefix"in s&&s.prefix===t);if(r!==-1){const s=e[r+n];return s?s.link?s:"prefix"in s&&!Xn(s.prefix).notFound?{...s,link:s.prefix}:null:null}return null},Tg=()=>{const e=ft(),t=Ae(),n=ws(),o=St(),r=I(()=>{const i=Bi(e.value.prev,o.path);return i===!1?null:i??(t.value.prev===!1?null:zr(n.value,o.path,-1))}),s=I(()=>{const i=Bi(e.value.next,o.path);return i===!1?null:i??(t.value.next===!1?null:zr(n.value,o.path,1))});return{prevLink:r,nextLink:s}},Ag=he({__name:"VPPageNav",setup(e,{expose:t}){t();const n=Ae(),o=Pg(),{prevLink:r,nextLink:s}=Tg(),i=I(()=>Ae().value.pageNavbarLabel??"page navigation");Ve("keydown",a=>{a.altKey&&(a.key==="ArrowRight"?s.value&&(o(s.value.link),a.preventDefault()):a.key==="ArrowLeft"&&r.value&&(o(r.value.link),a.preventDefault()))});const l={themeLocale:n,navigate:o,prevLink:r,nextLink:s,navbarLabel:i,get AutoLink(){return Tn}};return Object.defineProperty(l,"__isScriptSetup",{enumerable:!1,value:!0}),l}}),Og=["aria-label"],Rg={class:"hint"},Ig=L("span",{class:"arrow left"},null,-1),Mg={class:"link"},$g={class:"hint"},Hg=L("span",{class:"arrow right"},null,-1),Ng={class:"link"};function Dg(e,t,n,o,r,s){return o.prevLink||o.nextLink?(G(),ne("nav",{key:0,class:"vp-page-nav","aria-label":o.navbarLabel},[o.prevLink?(G(),Pe(o.AutoLink,{key:0,class:"prev",config:o.prevLink},{default:Se(()=>[L("div",Rg,[Ig,qe(" "+xe(o.themeLocale.prev??"Prev"),1)]),L("div",Mg,[L("span",null,xe(o.prevLink.text),1)])]),_:1},8,["config"])):Oe("",!0),o.nextLink?(G(),Pe(o.AutoLink,{key:1,class:"next",config:o.nextLink},{default:Se(()=>[L("div",$g,[qe(xe(o.themeLocale.next??"Next")+" ",1),Hg]),L("div",Ng,[L("span",null,xe(o.nextLink.text),1)])]),_:1},8,["config"])):Oe("",!0)],8,Og)):Oe("",!0)}const Vg=we(Ag,[["render",Dg],["__file","VPPageNav.vue"]]),jg=he({__name:"VPPage",setup(e,{expose:t}){t(),kp();const n={VPPageMeta:xg,VPPageNav:Vg,get Content(){return ms}};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),Bg={class:"vp-page"},Fg={class:"theme-default-content"};function zg(e,t,n,o,r,s){return G(),ne("main",Bg,[ke(e.$slots,"top"),L("div",Fg,[ke(e.$slots,"content-top"),Q(o.Content),ke(e.$slots,"content-bottom")]),Q(o.VPPageMeta),Q(o.VPPageNav),ke(e.$slots,"bottom")])}const Ug=we(jg,[["render",zg],["__file","VPPage.vue"]]),Wg=he({__name:"VPSidebarItem",props:{item:{},depth:{default:0}},setup(e,{expose:t}){t();const n=e,{item:o,depth:r}=ml(n),s=St(),i=cn(),l=I(()=>"collapsible"in o.value&&o.value.collapsible),a=I(()=>Pa(o.value,s)),c=I(()=>({"vp-sidebar-item":!0,"vp-sidebar-heading":r.value===0,active:a.value,collapsible:l.value})),f=I(()=>l.value?a.value:!0),[u,h]=uh(f.value),p=b=>{l.value&&(b.preventDefault(),h())},v=i.afterEach(b=>{an(()=>{u.value=f.value})});ss(()=>{v()});const S={props:n,item:o,depth:r,route:s,router:i,collapsible:l,isActive:a,itemClass:c,isOpenDefault:f,isOpen:u,toggleIsOpen:h,onClick:p,unregisterRouterHook:v,VPDropdownTransition:Ha,get AutoLink(){return Tn}};return Object.defineProperty(S,"__isScriptSetup",{enumerable:!1,value:!0}),S}}),Kg={class:"vp-sidebar-children"};function Gg(e,t,n,o,r,s){const i=Gn("VPSidebarItem",!0);return G(),ne("li",null,[o.item.link?(G(),Pe(o.AutoLink,{key:0,class:Je(o.itemClass),config:o.item},null,8,["class","config"])):(G(),ne("p",{key:1,tabindex:"0",class:Je(o.itemClass),onClick:o.onClick,onKeydown:_f(o.onClick,["enter"])},[qe(xe(o.item.text)+" ",1),o.collapsible?(G(),ne("span",{key:0,class:Je(["arrow",o.isOpen?"down":"right"])},null,2)):Oe("",!0)],34)),"children"in o.item&&o.item.children.length?(G(),Pe(o.VPDropdownTransition,{key:2},{default:Se(()=>[Ho(L("ul",Kg,[(G(!0),ne(be,null,Bt(o.item.children,l=>(G(),Pe(i,{key:`${o.depth}${l.text}${l.link}`,item:l,depth:o.depth+1},null,8,["item","depth"]))),128))],512),[[zo,o.isOpen]])]),_:1})):Oe("",!0)])}const qg=we(Wg,[["render",Gg],["__file","VPSidebarItem.vue"]]),Jg=he({__name:"VPSidebarItems",setup(e,{expose:t}){t();const n=St(),o=ws();Re(()=>{Ce(()=>n.hash,s=>{const i=document.querySelector(".vp-sidebar");if(!i)return;const l=document.querySelector(`.vp-sidebar a.vp-sidebar-item[href="${n.path}${s}"]`);if(!l)return;const{top:a,height:c}=i.getBoundingClientRect(),{top:f,height:u}=l.getBoundingClientRect();fa+c&&l.scrollIntoView(!1)})});const r={route:n,sidebarItems:o,VPSidebarItem:qg};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),Yg={key:0,class:"vp-sidebar-items"};function Qg(e,t,n,o,r,s){return o.sidebarItems.length?(G(),ne("ul",Yg,[(G(!0),ne(be,null,Bt(o.sidebarItems,i=>(G(),Pe(o.VPSidebarItem,{key:`${i.text}${i.link}`,item:i},null,8,["item"]))),128))])):Oe("",!0)}const Xg=we(Jg,[["render",Qg],["__file","VPSidebarItems.vue"]]),Zg=he({__name:"VPSidebar",setup(e,{expose:t}){t();const n={VPNavbarItems:Na,VPSidebarItems:Xg};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),ev={class:"vp-sidebar"};function tv(e,t,n,o,r,s){return G(),ne("aside",ev,[Q(o.VPNavbarItems),ke(e.$slots,"top"),Q(o.VPSidebarItems),ke(e.$slots,"bottom")])}const nv=we(Zg,[["render",tv],["__file","VPSidebar.vue"]]),ov=he({__name:"Layout",setup(e,{expose:t}){t();const n=un(),o=ft(),r=Ae(),s=I(()=>o.value.navbar!==!1&&r.value.navbar!==!1),i=ws(),l=ie(!1),a=g=>{l.value=typeof g=="boolean"?g:!l.value},c={x:0,y:0},f=g=>{c.x=g.changedTouches[0].clientX,c.y=g.changedTouches[0].clientY},u=g=>{const C=g.changedTouches[0].clientX-c.x,D=g.changedTouches[0].clientY-c.y;Math.abs(C)>Math.abs(D)&&Math.abs(C)>40&&(C>0&&c.x<=80?a(!0):a(!1))},h=I(()=>o.value.externalLinkIcon??r.value.externalLinkIcon??!0),p=I(()=>[{"no-navbar":!s.value,"no-sidebar":!i.value.length,"sidebar-open":l.value,"external-link-icon":h.value},o.value.pageClass]);let v;Re(()=>{v=cn().afterEach(()=>{a(!1)})}),Pn(()=>{v()});const S=xa(),b=S.resolve,T=S.pending,y={page:n,frontmatter:o,themeLocale:r,shouldShowNavbar:s,sidebarItems:i,isSidebarOpen:l,toggleSidebar:a,touchStart:c,onTouchStart:f,onTouchEnd:u,enableExternalLinkIcon:h,containerClass:p,get unregisterRouterHook(){return v},set unregisterRouterHook(g){v=g},scrollPromise:S,onBeforeEnter:b,onBeforeLeave:T,VPHome:sm,VPNavbar:sg,VPPage:Ug,VPSidebar:nv};return Object.defineProperty(y,"__isScriptSetup",{enumerable:!1,value:!0}),y}});function rv(e,t,n,o,r,s){return G(),ne("div",{class:Je(["vp-theme-container",o.containerClass]),onTouchstart:o.onTouchStart,onTouchend:o.onTouchEnd},[ke(e.$slots,"navbar",{},()=>[o.shouldShowNavbar?(G(),Pe(o.VPNavbar,{key:0,onToggleSidebar:o.toggleSidebar},{before:Se(()=>[ke(e.$slots,"navbar-before")]),after:Se(()=>[ke(e.$slots,"navbar-after")]),_:3})):Oe("",!0)]),L("div",{class:"vp-sidebar-mask",onClick:t[0]||(t[0]=i=>o.toggleSidebar(!1))}),ke(e.$slots,"sidebar",{},()=>[Q(o.VPSidebar,null,{top:Se(()=>[ke(e.$slots,"sidebar-top")]),bottom:Se(()=>[ke(e.$slots,"sidebar-bottom")]),_:3})]),ke(e.$slots,"page",{},()=>[o.frontmatter.home?(G(),Pe(o.VPHome,{key:0})):(G(),Pe(uo,{key:1,name:"fade-slide-y",mode:"out-in",onBeforeEnter:o.onBeforeEnter,onBeforeLeave:o.onBeforeLeave},{default:Se(()=>[(G(),Pe(o.VPPage,{key:o.page.path},{top:Se(()=>[ke(e.$slots,"page-top")]),"content-top":Se(()=>[ke(e.$slots,"page-content-top")]),"content-bottom":Se(()=>[ke(e.$slots,"page-content-bottom")]),bottom:Se(()=>[ke(e.$slots,"page-bottom")]),_:3}))]),_:3},8,["onBeforeEnter","onBeforeLeave"]))])],34)}const sv=we(ov,[["render",rv],["__file","Layout.vue"]]),iv=he({__name:"NotFound",setup(e,{expose:t}){t();const n=Gt(),o=Ae(),r=o.value.notFound??["Not Found"],s=()=>r[Math.floor(Math.random()*r.length)],i=o.value.home??n.value,l=o.value.backToHome??"Back to home",a={routeLocale:n,themeLocale:o,messages:r,getMsg:s,homeLink:i,homeText:l,get RouteLink(){return ho}};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),lv=e=>(os("data-v-303656ba"),e=e(),rs(),e),av={class:"vp-theme-container"},cv={class:"page"},uv={class:"theme-default-content"},fv=lv(()=>L("h1",null,"404",-1));function dv(e,t,n,o,r,s){return G(),ne("div",av,[L("main",cv,[L("div",uv,[fv,L("blockquote",null,xe(o.getMsg()),1),Q(o.RouteLink,{to:o.homeLink},{default:Se(()=>[qe(xe(o.homeText),1)]),_:1},8,["to"])])])])}const hv=we(iv,[["render",dv],["__scopeId","data-v-303656ba"],["__file","NotFound.vue"]]),pv=Lt({enhance({app:e,router:t}){Sr("Badge")||e.component("Badge",Mp),Sr("CodeGroup")||e.component("CodeGroup",$p),Sr("CodeGroupItem")||e.component("CodeGroupItem",Dp),e.component("VPSearch",()=>{const o=e.component("Docsearch")||e.component("SearchBox");return o?K(o):null});const n=t.options.scrollBehavior;t.options.scrollBehavior=async(...o)=>(await xa().wait(),n(...o))},setup(){yp(),Pp()},layouts:{Layout:sv,NotFound:hv}}),mv=Object.freeze(Object.defineProperty({__proto__:null,default:pv},Symbol.toStringTag,{value:"Module"})),gv=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),Ss=e=>{const t=Gt();return I(()=>e[t.value]??{})},vv=(e,t)=>lt(e)&&e.startsWith(t),_v=Object.values,An=({name:e="",color:t="currentColor",ariaLabel:n},{attrs:o,slots:r})=>{var s;return K("svg",{xmlns:"http://www.w3.org/2000/svg",class:["icon",`${e}-icon`],viewBox:"0 0 1024 1024",fill:t,"aria-label":n??`${e} icon`,...o},(s=r.default)==null?void 0:s.call(r))};An.displayName="IconBase";function bv(){const e=ie(!1),t=lo();return t&&Re(()=>{e.value=!0},t),e}function yv(e){return bv(),I(()=>!!e())}const wv=()=>yv(()=>typeof window<"u"&&window.navigator&&"userAgent"in window.navigator),Ev=()=>{const e=wv();return I(()=>e.value&&/\b(?:Android|iPhone)/i.test(navigator.userAgent))},Sv=e=>[/\((ipad);[-\w),; ]+apple/i,/applecoremedia\/[\w.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i].some(t=>t.test(e)),Lv=e=>[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/cfnetwork\/.+darwin/i].some(t=>t.test(e)),Cv=e=>[/(mac os x) ?([\w. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i].some(t=>t.test(e)),kv=()=>K(An,{name:"heading"},()=>K("path",{d:"M250.4 704.6H64V595.4h202.4l26.2-166.6H94V319.6h214.4L352 64h127.8l-43.6 255.4h211.2L691 64h126.2l-43.6 255.4H960v109.2H756.2l-24.6 166.6H930v109.2H717L672 960H545.8l43.6-255.4H376.6L333 960H206.8l43.6-255.4zm168.4-276L394 595.4h211.2l24.6-166.6h-211z"}));kv.displayName="HeadingIcon";const xv=()=>K(An,{name:"heart"},()=>K("path",{d:"M1024 358.156C1024 195.698 892.3 64 729.844 64c-86.362 0-164.03 37.218-217.844 96.49C458.186 101.218 380.518 64 294.156 64 131.698 64 0 195.698 0 358.156 0 444.518 37.218 522.186 96.49 576H96l320 320c32 32 64 64 96 64s64-32 96-64l320-320h-.49c59.272-53.814 96.49-131.482 96.49-217.844zM841.468 481.232 517.49 805.49a2981.962 2981.962 0 0 1-5.49 5.48c-1.96-1.95-3.814-3.802-5.49-5.48L182.532 481.234C147.366 449.306 128 405.596 128 358.156 128 266.538 202.538 192 294.156 192c47.44 0 91.15 19.366 123.076 54.532L512 350.912l94.768-104.378C638.696 211.366 682.404 192 729.844 192 821.462 192 896 266.538 896 358.156c0 47.44-19.368 91.15-54.532 123.076z"}));xv.displayName="HeartIcon";const Pv=()=>K(An,{name:"history"},()=>K("path",{d:"M512 1024a512 512 0 1 1 512-512 512 512 0 0 1-512 512zm0-896a384 384 0 1 0 384 384 384 384 0 0 0-384-384zm192 448H512a64 64 0 0 1-64-64V320a64 64 0 0 1 128 0v128h128a64 64 0 0 1 0 128z"}));Pv.displayName="HistoryIcon";const Tv=()=>K(An,{name:"title"},()=>K("path",{d:"M512 256c70.656 0 134.656 28.672 180.992 75.008A254.933 254.933 0 0 1 768 512c0 83.968-41.024 157.888-103.488 204.48C688.96 748.736 704 788.48 704 832c0 105.984-86.016 192-192 192-106.048 0-192-86.016-192-192h128a64 64 0 1 0 128 0 64 64 0 0 0-64-64 255.19 255.19 0 0 1-181.056-75.008A255.403 255.403 0 0 1 256 512c0-83.968 41.024-157.824 103.488-204.544C335.04 275.264 320 235.584 320 192A192 192 0 0 1 512 0c105.984 0 192 85.952 192 192H576a64.021 64.021 0 0 0-128 0c0 35.328 28.672 64 64 64zM384 512c0 70.656 57.344 128 128 128s128-57.344 128-128-57.344-128-128-128-128 57.344-128 128z"}));Tv.displayName="TitleIcon";const Ls=()=>K(An,{name:"search"},()=>K("path",{d:"M192 480a256 256 0 1 1 512 0 256 256 0 0 1-512 0m631.776 362.496-143.2-143.168A318.464 318.464 0 0 0 768 480c0-176.736-143.264-320-320-320S128 303.264 128 480s143.264 320 320 320a318.016 318.016 0 0 0 184.16-58.592l146.336 146.368c12.512 12.48 32.768 12.48 45.28 0 12.48-12.512 12.48-32.768 0-45.28"}));Ls.displayName="SearchIcon";const Da=()=>K("svg",{xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",preserveAspectRatio:"xMidYMid",viewBox:"0 0 100 100"},[K("circle",{cx:"28",cy:"75",r:"11",fill:"currentColor"},K("animate",{attributeName:"fill-opacity",begin:"0s",dur:"1s",keyTimes:"0;0.2;1",repeatCount:"indefinite",values:"0;1;1"})),K("path",{fill:"none",stroke:"#88baf0","stroke-width":"10",d:"M28 47a28 28 0 0 1 28 28"},K("animate",{attributeName:"stroke-opacity",begin:"0.1s",dur:"1s",keyTimes:"0;0.2;1",repeatCount:"indefinite",values:"0;1;1"})),K("path",{fill:"none",stroke:"#88baf0","stroke-width":"10",d:"M28 25a50 50 0 0 1 50 50"},K("animate",{attributeName:"stroke-opacity",begin:"0.2s",dur:"1s",keyTimes:"0;0.2;1",repeatCount:"indefinite",values:"0;1;1"}))]);Da.displayName="LoadingIcon";const Va=({hint:e})=>K("div",{class:"search-pro-result-wrapper loading"},[K(Da),e]);Va.displayName="SearchLoading";const Av='';var Ov={},Rv={"/":{cancel:"Cancel",placeholder:"Search",search:"Search",searching:"Searching",defaultTitle:"Documentation",select:"to select",navigate:"to navigate",autocomplete:"to autocomplete",exit:"to exit",queryHistory:"Search History",resultHistory:"Result History",emptyHistory:"Empty Search History",emptyResult:"No results found",loading:"Loading search indexes..."}},Iv={searchDelay:150,suggestDelay:0,queryHistoryCount:5,resultHistoryCount:5,hotKeys:[{key:"k",ctrl:!0},{key:"/",ctrl:!0}],worker:"search-pro.worker.js"};const Uo=Iv,jb=Ov,ja=Uo.hotKeys,Cs=Rv,kr="Canceled because of new search request.",Mv=()=>{const e=new Worker(`/${Uo.worker}`,{}),t={suggest:null,search:null,all:null};return e.addEventListener("message",({data:n})=>{const[o,r,s]=n,i=t[o];(i==null?void 0:i.id)===r&&i.resolve(s)}),e.addEventListener("error",n=>{console.error("Search Worker error:",n)}),{suggest:(n,o,r)=>new Promise((s,i)=>{var a;(a=t.suggest)==null||a.reject(new Error(kr));const l=Date.now();e.postMessage({type:"suggest",id:l,query:n,locale:o,options:r}),t.suggest={id:l,resolve:s,reject:i}}),search:(n,o,r)=>new Promise((s,i)=>{var a;(a=t.search)==null||a.reject(new Error(kr));const l=Date.now();e.postMessage({type:"search",id:l,query:n,locale:o,options:r}),t.search={id:l,resolve:s,reject:i}}),all:(n,o,r)=>new Promise((s,i)=>{var a;(a=t.all)==null||a.reject(new Error(kr));const l=Date.now();e.postMessage({type:"all",id:l,query:n,locale:o,options:r}),t.all={id:l,resolve:s,reject:i}}),terminate:()=>{e.terminate(),_v(t).forEach(n=>{n==null||n.reject(new Error("Worker has been terminated."))})}}};let $v={};const Ba=Symbol(""),Fa=()=>{const e=Gt(),{locales:t={},...n}=He(Ba);return I(()=>({...n,...t[e.value]}))},Hv=e=>{e.provide(Ba,$v)},Nv=(e,t=!1)=>{const n=ie(0),o=I(()=>e.value[n.value]),r=()=>{n.value=n.value>0?n.value-1:e.value.length-1},s=()=>{n.value=n.value{t||(n.value=0)}),{index:n,item:o,prev:r,next:s}},Dv=e=>e instanceof Element?document.activeElement===e&&(["TEXTAREA","SELECT","INPUT"].includes(e.tagName)||e.hasAttribute("contenteditable")):!1,Vv=e=>ja.some(t=>{const{key:n,ctrl:o=!1,shift:r=!1,alt:s=!1,meta:i=!1}=t;return n===e.key&&o===e.ctrlKey&&r===e.shiftKey&&s===e.altKey&&i===e.metaKey}),jv='',Bv='',Fv='',zv='',ks=Symbol(""),Uv=()=>{const e=ie(!1);Dt(ks,e)},Wv=e=>{const t=ie([]);{const n=Fa(),o=un(),r=Gt();Re(()=>{const{suggest:s,terminate:i}=Mv(),l=a=>{const c=a.join(" "),{searchFilter:f,splitWord:u,suggestionsFilter:h=v=>v,...p}=n.value;c?s(c,r.value,p).then(v=>h(v,c,r.value,o.value)).then(v=>{t.value=v.length?vv(v[0],c)&&!v[0].slice(c.length).includes(" ")?v:[c,...v]:[]}).catch(v=>{console.warn(v)}):t.value=[]};Ce([e,r],([a])=>l(a),{immediate:!0}),Pn(()=>{i()})})}return{suggestions:t}},xr=ja[0];var Kv=he({name:"SearchBox",setup(){const e=Ss(Cs),t=He(ks),n=ie(!1),o=I(()=>xr?[(n.value?["⌃","⇧","⌥","⌘"]:["Ctrl","Shift","Alt","Win"]).filter((r,s)=>xr[["ctrl","shift","alt","meta"][s]]),xr.key.toUpperCase()]:null);return Ve("keydown",r=>{!t.value&&Vv(r)&&!Dv(r.target)&&(r.preventDefault(),t.value=!0)}),Re(()=>{const{userAgent:r}=navigator;n.value=Cv(r)||Lv(r)||Sv(r)}),()=>[K("button",{type:"button",class:"search-pro-button","aria-label":e.value.search,onClick:()=>{t.value=!0}},[K(Ls),K("div",{class:"search-pro-placeholder"},e.value.search),o.value?K("div",{class:"search-pro-key-hints"},o.value.map(r=>K("kbd",{class:"search-pro-key"},r))):null])]}});const Gv=Cl({loader:()=>ce(()=>import("./SearchResult-D4O8WMST.js"),[]),loadingComponent:()=>{const e=Ss(Cs);return K(Va,{hint:e.value.loading})}});var qv=he({name:"SearchModal",setup(){const e=He(ks),t=nr(),n=Ev(),o=Ss(Cs),r=Fa(),s=ie(""),i=ie([]),{suggestions:l}=Wv(i),a=ie(!1),{index:c,prev:f,next:u}=Nv(l),h=jt(),p=jt(),v=(b=c.value)=>{s.value=l.value[b],a.value=!1};Ve("keydown",b=>{a.value?b.key==="ArrowUp"?f():b.key==="ArrowDown"?u():b.key==="Enter"?v():b.key==="Escape"&&(a.value=!1):b.key==="Escape"&&(e.value=!1)});const S=ga(()=>{var b,T;(((T=(b=r.value).splitWord)==null?void 0:T.call(b,s.value))??Promise.resolve(s.value.split(" "))).then(y=>{i.value=y})},Math.min(Uo.searchDelay,Uo.suggestDelay));return Ce(s,S,{immediate:!0}),Re(()=>{const b=Sh(document.body);Ce(e,async T=>{var y;b.value=T,T&&(await an(),(y=h.value)==null||y.focus())}),fh(p,()=>{a.value=!1}),Pn(()=>{b.value=!1})}),()=>e.value?K("div",{class:"search-pro-modal-wrapper"},[K("div",{class:"search-pro-mask",onClick:()=>{e.value=!1,s.value=""}}),K("div",{class:"search-pro-modal"},[K("div",{class:"search-pro-box"},[K("form",[K("label",{for:"search-pro","aria-label":o.value.search},K(Ls)),K("input",{ref:h,type:"search",class:"search-pro-input",id:"search-pro",placeholder:o.value.placeholder,spellcheck:"false",autocapitalize:"off",autocomplete:"off",autocorrect:"off",name:`${t.value.title}-search`,value:s.value,"aria-controls":"search-pro-results",onKeydown:b=>{const{key:T}=b;l.value.length&&(T==="Tab"?(v(),b.preventDefault()):(T==="ArrowDown"||T==="ArrowUp"||T==="Escape")&&b.preventDefault())},onInput:({target:b})=>{s.value=b.value,a.value=!0,c.value=0}}),s.value?K("button",{type:"reset",class:"search-pro-clear-button",innerHTML:Av,onClick:()=>{s.value=""}}):null,a.value&&l.value.length?K("ul",{class:"search-pro-suggestions",ref:p},l.value.map((b,T)=>K("li",{class:["search-pro-suggestion",{active:T===c.value}],onClick:()=>{v(T)}},[K("kbd",{class:"search-pro-auto-complete",title:`Tab ${o.value.autocomplete}`},"Tab"),b]))):null]),K("button",{type:"button",class:"search-pro-close-button",onClick:()=>{e.value=!1,s.value=""}},o.value.cancel)]),K(Gv,{queries:i.value,isFocusing:!a.value,onClose:()=>{e.value=!1},onUpdateQuery:b=>{s.value=b}}),n.value?null:K("div",{class:"search-pro-hints"},[K("span",{class:"search-pro-hint"},[K("kbd",{innerHTML:jv}),o.value.select]),K("span",{class:"search-pro-hint"},[K("kbd",{innerHTML:Fv}),K("kbd",{innerHTML:Bv}),o.value.navigate]),K("span",{class:"search-pro-hint"},[K("kbd",{innerHTML:zv}),o.value.exit])])])]):null}}),Jv=Lt({enhance({app:e}){Hv(e),e.component("SearchBox",Kv)},setup(){Uv()},rootComponents:[qv]});const Yv=Object.freeze(Object.defineProperty({__proto__:null,default:Jv},Symbol.toStringTag,{value:"Module"})),Qv=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),Xv=he({__name:"Hero",setup(e,{expose:t}){t();const n={get RouteLink(){return ho}};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),Zv=e=>(os("data-v-00a77588"),e=e(),rs(),e),e_={class:"hero"},t_={class:"intro"},n_=["src"],o_=Zv(()=>L("h1",null,"Universal Logging for Modern JavaScript",-1)),r_={class:"button-container"},s_={class:"illustration"},i_={class:"image-container"},l_=["src"],a_={class:"button-container"};function c_(e,t,n,o,r,s){return G(),ne("div",e_,[L("div",t_,[L("img",{src:e.$withBase("images/logo.svg"),alt:"Adze JS "},null,8,n_),o_,L("div",r_,[Q(o.RouteLink,{class:"action-button",to:"/getting-started/introduction.md"},{default:Se(()=>[qe(" Getting Started ")]),_:1}),Q(o.RouteLink,{class:"action-button alt",to:"/reference/introduction.md"},{default:Se(()=>[qe("Reference Guide")]),_:1})])]),L("div",s_,[L("div",i_,[L("img",{src:e.$withBase("images/hero.svg"),alt:"An isometric illustration of a node server and a web browser among trees"},null,8,l_)]),L("div",a_,[Q(o.RouteLink,{class:"action-button",to:"/getting-started/introduction.md"},{default:Se(()=>[qe(" Getting Started ")]),_:1}),Q(o.RouteLink,{class:"action-button alt",to:"/reference/introduction.md"},{default:Se(()=>[qe("Reference Guide")]),_:1})])])])}const u_=we(Xv,[["render",c_],["__scopeId","data-v-00a77588"],["__file","Hero.vue"]]),f_={__name:"Home",setup(e,{expose:t}){t();const n={Hero:u_};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}},Ct=e=>(os("data-v-47650c64"),e=e(),rs(),e),d_={class:"theme-container"},h_={class:"full-width-container alt-bg-fade half-height"},p_={class:"content-container box"},m_={class:"content-block no-border centered no-padding"},g_={class:"content"},v_=Ct(()=>L("h2",null,"Getting Started is Easy",-1)),__=["src"],b_={class:"content-container"},y_={class:"content-block no-border"},w_={class:"image"},E_=["src"],S_={class:"content"},L_=Ct(()=>L("h2",null,"Universal By Nature",-1)),C_={class:"great-with"},k_=Ct(()=>L("h3",null,"Works great with",-1)),x_={style:{display:"flex",gap:"1rem"}},P_={href:"https://nextjs.org/",target:"_blank"},T_=["src"],A_={href:"https://nuxt.com/",target:"_blank"},O_=["src"],R_={href:"https://kit.svelte.dev/"},I_=["src"],M_={href:"https://nodejs.org/en"},$_=["src"],H_={href:"https://bun.sh/"},N_=["src"],D_={href:"https://deno.com/"},V_=["src"],j_={class:"content-block left"},B_={class:"image"},F_=["src"],z_={class:"content"},U_=Ct(()=>L("h2",null,"Simple, Chainable API",-1)),W_=["src"],K_={class:"full-width-container alt-bg"},G_={class:"content-container"},q_={class:"content-block no-border centered"},J_={class:"image"},Y_=["src"],Q_={class:"content"},X_=Ct(()=>L("h2",null,"Choose Your Format",-1)),Z_=Ct(()=>L("strong",{class:"hidden-small"}," This is an example of the same log printed two different ways by changing the format. ",-1)),eb=["src"],tb={class:"content-container"},nb={class:"content-block no-border"},ob={class:"image"},rb=["src"],sb={class:"content"},ib={style:{display:"flex","align-items":"center",gap:"15px"}},lb=["src"],ab={class:"content-container"},cb={class:"content-block left"},ub={class:"image"},fb=["src"],db={class:"content"},hb=Ct(()=>L("h2",null,"Easy Microfrontend Logging",-1)),pb={class:"full-width-container alt-bg"},mb={class:"content-container"},gb={class:"content-block no-border"},vb={class:"image"},_b=["src"],bb={class:"content"},yb=Ct(()=>L("h2",null,"And Much More...",-1)),wb=Ct(()=>L("br",null,null,-1)),Eb={class:"action"},Sb={clas:"content-container"},Lb={class:"footer"};function Cb(e,t,n,o,r,s){const i=Gn("Content"),l=Gn("RouteLink");return G(),ne("main",d_,[Q(o.Hero),L("div",h_,[L("div",p_,[L("section",m_,[L("div",g_,[v_,Q(i,{path:"/home/getting-started-is-easy.md"}),L("img",{src:e.$withBase("/images/info-example-browser.svg"),alt:"Example of an info log generated from the example code",style:{"max-width":"500px",height:"100%"}},null,8,__)])])])]),L("div",b_,[L("section",y_,[L("div",w_,[L("img",{src:e.$withBase("/images/hero.svg"),alt:"An isometric illustration of a node server and a web browser among trees",style:{"max-width":"100%",height:"100%"}},null,8,E_)]),L("div",S_,[L_,Q(i,{path:"/home/universal.md"}),L("div",C_,[k_,L("div",x_,[L("div",null,[L("a",P_,[L("img",{style:{height:"40px"},src:e.$withBase("images/next-logo.png"),alt:"NextJS"},null,8,T_)])]),L("div",null,[L("a",A_,[L("img",{style:{height:"40px"},src:e.$withBase("images/nuxt-logo.png"),alt:"NuxtJS"},null,8,O_)])]),L("div",null,[L("a",R_,[L("img",{style:{height:"40px"},src:e.$withBase("images/sveltekit-logo.png"),alt:"SvelteKit"},null,8,I_)])]),L("div",null,[L("a",M_,[L("img",{style:{height:"40px","max-width":"100%"},src:e.$withBase("images/node-logo.svg"),alt:"NodeJS"},null,8,$_)])]),L("div",null,[L("a",H_,[L("img",{style:{height:"40px","max-width":"100%"},src:e.$withBase("images/bun-logo.svg"),alt:"BunJS"},null,8,N_)])]),L("div",null,[L("a",D_,[L("img",{style:{height:"40px","max-width":"100%"},src:e.$withBase("images/deno-logo.svg"),alt:"DenoJS"},null,8,V_)])])])])])]),L("section",j_,[L("div",B_,[L("img",{src:e.$withBase("images/chainsaw.svg"),style:{width:"100%","max-height":"200px"}},null,8,F_)]),L("div",z_,[U_,Q(i,{path:"/home/chainable-api.md"}),L("img",{src:e.$withBase("/images/alert-example-browser.svg"),alt:"Example of an alert log generated from the example code",style:{"max-width":"800px",height:"100%"},class:"hidden-small"},null,8,W_)])])]),L("div",K_,[L("div",G_,[L("section",q_,[L("div",J_,[L("img",{src:e.$withBase("images/lumber-scene-1.svg"),style:{"max-width":"100%",height:"auto"}},null,8,Y_)]),L("div",Q_,[X_,Q(i,{path:"/home/configurable.md"}),Z_,L("img",{class:"hidden-small",src:e.$withBase("images/humanAndMachineFormat-example-browser.png"),style:{"max-width":"100%",height:"auto"}},null,8,eb)])])])]),L("div",tb,[L("section",nb,[L("div",ob,[L("img",{src:e.$withBase("images/truck-loaded.svg"),style:{"max-height":"260px"}},null,8,rb)]),L("div",sb,[L("h2",ib,[qe(" First Class TypeScript Support "),L("img",{src:e.$withBase("images/ts-icon.svg"),style:{"max-height":"40px"}},null,8,lb)]),Q(i,{path:"/home/typescript-first.md"})])])]),L("div",ab,[L("section",cb,[L("div",ub,[L("img",{src:e.$withBase("images/woodmill.svg"),style:{"max-height":"260px"}},null,8,fb)]),L("div",db,[hb,Q(i,{path:"/home/global-store.md"})])])]),L("div",pb,[L("div",mb,[L("section",gb,[L("div",vb,[L("img",{src:e.$withBase("images/shaped-wood.svg"),style:{"max-height":"150px"}},null,8,_b)]),L("div",bb,[yb,Q(i,{path:"/home/much-more.md"}),wb,L("p",Eb,[Q(l,{class:"action-button",to:"/getting-started/introduction.md"},{default:Se(()=>[qe(" Get Started ")]),_:1})])])])])]),L("div",Sb,[L("footer",Lb,[Q(i,{path:"/home/footer.md"})])])])}const kb=we(f_,[["render",Cb],["__scopeId","data-v-47650c64"],["__file","Home.vue"]]),xb=Lt({layouts:{Home:kb}}),Pb=Object.freeze(Object.defineProperty({__proto__:null,default:xb},Symbol.toStringTag,{value:"Module"})),Po=[Rh,Bh,Gh,ip,fp,vp,mv,gv,Yv,Qv,Pb].map(e=>e.default).filter(Boolean),Tb=JSON.parse('{"base":"/","lang":"en-US","title":"Universal Logging for Typescript/JavaScript","description":"A universal, modern, and extendable logging library for JavaScript and TypeScript.","head":[["meta",{"property":"og:title","content":"Adze - Universal JavaScript Logging"}],["meta",{"property":"og:description","content":"A universal logging library that makes logging simple for SSR or new runtimes like Bun and Deno."}],["meta",{"property":"og:image","content":"https://adzejs.com/assets/demo-DkYm-IJC.jpg"}],["meta",{"property":"og:url","content":"https://www.adzejs.com/"}],["meta",{"property":"twitter:title","content":"Adze - Better JavaScript Logging"}],["meta",{"property":"twitter:description","content":"A TypeScript enabled library with a beautiful API that simplifies JavaScript logging."}],["meta",{"property":"twitter:image","content":"https://adzejs.com/assets/demo-DkYm-IJC.jpg"}],["meta",{"property":"twitter:card","content":"summary_large_image"}],["script",{"async":true,"defer":true,"data-domain":"adzejs.com","src":"https://plausible.io/js/script.js"}],["link",{"rel":"preconnect","href":"https://fonts.gstatic.com"}],["link",{"href":"https://fonts.googleapis.com/css2?family=Share&display=swap","rel":"stylesheet"}],["meta",{"name":"theme-color","content":"#3eaf7c"}],["meta",{"name":"apple-mobile-web-app-capable","content":"yes"}],["link",{"rel":"icon","href":"/images/icon.svg"}],["meta",{"name":"apple-mobile-web-app-status-bar-style","content":"black"}]],"locales":{}}');var Nn=jt(Tb),Ab=md,Ob=()=>{const e=Bd({history:Ab(Zl("/")),routes:[{name:"vuepress-route",path:"/:catchAll(.*)",components:{}}],scrollBehavior:(t,n,o)=>o||(t.hash?{el:t.hash}:{top:0})});return e.beforeResolve(async(t,n)=>{if(t.path!==n.path||n===bt){const o=Xn(t.fullPath);if(o.path!==t.fullPath)return o.path;const r=await o.loader();t.meta={...o.meta,_pageChunk:r}}else t.path===n.path&&(t.meta=n.meta)}),e},Rb=e=>{e.component("ClientOnly",ps),e.component("Content",ms),e.component("RouteLink",ho)},Ib=(e,t,n)=>{const o=I(()=>t.currentRoute.value.path),r=pl((b,T)=>({get(){return b(),t.currentRoute.value.meta._pageChunk},set(y){t.currentRoute.value.meta._pageChunk=y,T()}})),s=I(()=>Qt.resolveLayouts(n)),i=I(()=>Qt.resolveRouteLocale(Nn.value.locales,o.value)),l=I(()=>Qt.resolveSiteLocaleData(Nn.value,i.value)),a=I(()=>r.value.comp),c=I(()=>r.value.data),f=I(()=>c.value.frontmatter),u=I(()=>Qt.resolvePageHeadTitle(c.value,l.value)),h=I(()=>Qt.resolvePageHead(u.value,f.value,l.value)),p=I(()=>Qt.resolvePageLang(c.value,l.value)),v=I(()=>Qt.resolvePageLayout(c.value,s.value)),S={layouts:s,pageData:c,pageComponent:a,pageFrontmatter:f,pageHead:h,pageHeadTitle:u,pageLang:p,pageLayout:v,redirects:Br,routeLocale:i,routePath:o,routes:En,siteData:Nn,siteLocaleData:l};return e.provide(hs,S),Object.defineProperties(e.config.globalProperties,{$frontmatter:{get:()=>f.value},$head:{get:()=>h.value},$headTitle:{get:()=>u.value},$lang:{get:()=>p.value},$page:{get:()=>c.value},$routeLocale:{get:()=>i.value},$site:{get:()=>Nn.value},$siteLocale:{get:()=>l.value},$withBase:{get:()=>gs}}),S},Mb=()=>{const e=Ud(),t=Wd();let n=[];const o=()=>{e.value.forEach(i=>{const l=$b(i);l&&n.push(l)})},r=()=>{const i=[];return e.value.forEach(l=>{const a=Hb(l);a&&i.push(a)}),i},s=()=>{document.documentElement.lang=t.value;const i=r();n.forEach((l,a)=>{const c=i.findIndex(f=>l.isEqualNode(f));c===-1?(l.remove(),delete n[a]):i.splice(c,1)}),i.forEach(l=>document.head.appendChild(l)),n=[...n.filter(l=>!!l),...i]};Dt(qd,s),Re(()=>{o(),Ce(e,s,{immediate:!1})})},$b=([e,t,n=""])=>{const o=Object.entries(t).map(([l,a])=>lt(a)?`[${l}=${JSON.stringify(a)}]`:a===!0?`[${l}]`:"").join(""),r=`head > ${e}${o}`;return Array.from(document.querySelectorAll(r)).find(l=>l.innerText===n)||null},Hb=([e,t,n])=>{if(!lt(e))return null;const o=document.createElement(e);return us(t)&&Object.entries(t).forEach(([r,s])=>{lt(s)?o.setAttribute(r,s):s===!0&&o.setAttribute(r,"")}),lt(n)&&o.appendChild(document.createTextNode(n)),o},Nb=wf,Db=async()=>{var n;const e=Nb({name:"Vuepress",setup(){var s;Mb();for(const i of Po)(s=i.setup)==null||s.call(i);const o=Po.flatMap(({rootComponents:i=[]})=>i.map(l=>K(l))),r=Kd();return()=>[K(r.value),o]}}),t=Ob();Rb(e),Ib(e,t,Po);for(const o of Po)await((n=o.enhance)==null?void 0:n.call(o,{app:e,router:t,siteData:Nn}));return e.use(t),{app:e,router:t}};Db().then(({app:e,router:t})=>{t.isReady().then(()=>{e.mount("#app")})});export{Re as A,Mv as B,Fa as C,Pn as D,jb as E,us as F,Pv as G,Av as H,ga as I,Uo as J,lt as K,Cs as P,ho as R,we as _,Mu as a,L as b,ne as c,Db as createVueApp,qe as d,Q as e,he as f,cn as g,Gt as h,Ss as i,oo as j,ie as k,I as l,Ve as m,Ce as n,G as o,K as p,Va as q,Gn as r,Tv as s,gl as t,Vb as u,kv as v,Se as w,xv as x,un as y,jt as z}; + */const fe={settings:{minimum:.08,easing:"ease",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,barSelector:'[role="bar"]',parent:"body",template:'
'},status:null,set:e=>{const t=fe.isStarted();e=Lr(e,fe.settings.minimum,1),fe.status=e===1?null:e;const n=fe.render(!t),o=n.querySelector(fe.settings.barSelector),r=fe.settings.speed,s=fe.settings.easing;return n.offsetWidth,lp(i=>{xo(o,{transform:"translate3d("+Ni(e)+"%,0,0)",transition:"all "+r+"ms "+s}),e===1?(xo(n,{transition:"none",opacity:"1"}),n.offsetWidth,setTimeout(()=>{xo(n,{transition:"all "+r+"ms linear",opacity:"0"}),setTimeout(()=>{fe.remove(),i()},r)},r)):setTimeout(()=>i(),r)}),fe},isStarted:()=>typeof fe.status=="number",start:()=>{fe.status||fe.set(0);const e=()=>{setTimeout(()=>{fe.status&&(fe.trickle(),e())},fe.settings.trickleSpeed)};return fe.settings.trickle&&e(),fe},done:e=>!e&&!fe.status?fe:fe.inc(.3+.5*Math.random()).set(1),inc:e=>{let t=fe.status;return t?(typeof e!="number"&&(e=(1-t)*Lr(Math.random()*t,.1,.95)),t=Lr(t+e,0,.994),fe.set(t)):fe.start()},trickle:()=>fe.inc(Math.random()*fe.settings.trickleRate),render:e=>{if(fe.isRendered())return document.getElementById("nprogress");Di(document.documentElement,"nprogress-busy");const t=document.createElement("div");t.id="nprogress",t.innerHTML=fe.settings.template;const n=t.querySelector(fe.settings.barSelector),o=e?"-100":Ni(fe.status||0),r=document.querySelector(fe.settings.parent);return xo(n,{transition:"all 0 linear",transform:"translate3d("+o+"%,0,0)"}),r!==document.body&&Di(r,"nprogress-custom-parent"),r==null||r.appendChild(t),t},remove:()=>{Vi(document.documentElement,"nprogress-busy"),Vi(document.querySelector(fe.settings.parent),"nprogress-custom-parent");const e=document.getElementById("nprogress");e&&ap(e)},isRendered:()=>!!document.getElementById("nprogress")},Lr=(e,t,n)=>en?n:e,Ni=e=>(-1+e)*100,lp=function(){const e=[];function t(){const n=e.shift();n&&n(t)}return function(n){e.push(n),e.length===1&&t()}}(),xo=function(){const e=["Webkit","O","Moz","ms"],t={};function n(i){return i.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(l,a){return a.toUpperCase()})}function o(i){const l=document.body.style;if(i in l)return i;let a=e.length;const c=i.charAt(0).toUpperCase()+i.slice(1);let f;for(;a--;)if(f=e[a]+c,f in l)return f;return i}function r(i){return i=n(i),t[i]??(t[i]=o(i))}function s(i,l,a){l=r(l),i.style[l]=a}return function(i,l){for(const a in l){const c=l[a];c!==void 0&&Object.prototype.hasOwnProperty.call(l,a)&&s(i,a,c)}}}(),Ea=(e,t)=>(typeof e=="string"?e:ys(e)).indexOf(" "+t+" ")>=0,Di=(e,t)=>{const n=ys(e),o=n+t;Ea(n,t)||(e.className=o.substring(1))},Vi=(e,t)=>{const n=ys(e);if(!Ea(e,t))return;const o=n.replace(" "+t+" "," ");e.className=o.substring(1,o.length-1)},ys=e=>(" "+(e.className||"")+" ").replace(/\s+/gi," "),ap=e=>{e&&e.parentNode&&e.parentNode.removeChild(e)},cp=()=>{Re(()=>{const e=cn(),t=new Set;t.add(e.currentRoute.value.path),e.beforeEach(n=>{t.has(n.path)||fe.start()}),e.afterEach(n=>{t.add(n.path),fe.done()})})},up=Lt({setup(){cp()}}),fp=Object.freeze(Object.defineProperty({__proto__:null,default:up},Symbol.toStringTag,{value:"Module"})),dp=JSON.parse(`{"logo":"/images/icon.svg","logoDark":"/images/icon-borderless.svg","repo":"https://github.com/adzejs/adze","navbar":[{"text":"Getting Started","link":"/getting-started/introduction"},{"text":"Reference Manual","link":"/reference/introduction"},{"text":"Plugins","link":"/plugins"},{"text":"v1.x","link":"https://v1.adzejs.com/"}],"sidebar":{"/getting-started/":[{"text":"Getting Started","link":"/getting-started/introduction","collapsible":false,"children":[{"text":"Introduction","link":"/getting-started/introduction"},{"text":"Installation","link":"/getting-started/installation"},{"text":"Migrating from v1","link":"/getting-started/migrating"},{"text":"Concepts","link":"/getting-started/concepts"},{"text":"Setup","link":"/getting-started/setup"},{"text":"Configuration","link":"/getting-started/configuration"},{"text":"Log Annotation","link":"/getting-started/annotation"},{"text":"Global Store","link":"/getting-started/global-store"},{"text":"Capturing Log Data","link":"/getting-started/capture-data"},{"text":"Log Threading (MDC)","link":"/getting-started/threading"},{"text":"Filtering Logs","link":"/getting-started/filtering"},{"text":"Tools","link":"/getting-started/tools"},{"text":"Putting It All Together","link":"/getting-started/putting-it-all-together"}]}],"/reference/":[{"text":"Reference Manual","link":"/reference/introduction","collapsible":false,"children":[{"text":"Introduction & Lifecycle","link":"/reference/introduction"},{"text":"Log Class","link":"/reference/log-class"},{"text":"Data Getters","link":"/reference/getters"},{"text":"Modifiers","link":"/reference/modifiers"},{"text":"Terminators","link":"/reference/terminators"},{"text":"Global Store","link":"/reference/global-store"},{"text":"Tools","link":"/reference/tools"},{"text":"Configuration","link":"/reference/configuration"},{"text":"Middleware","link":"/reference/middleware"},{"text":"Formatters","link":"/reference/formatters"},{"text":"Unit Testing","link":"/reference/unit-testing"}]}]},"locales":{"/":{"selectLanguageName":"English"}},"colorMode":"auto","colorModeSwitch":true,"selectLanguageText":"Languages","selectLanguageAriaLabel":"Select language","sidebarDepth":2,"editLink":true,"editLinkText":"Edit this page","lastUpdated":true,"lastUpdatedText":"Last Updated","contributors":true,"contributorsText":"Contributors","notFound":["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."],"backToHome":"Take me home","openInNewWindow":"open in new window","toggleColorMode":"toggle color mode","toggleSidebar":"toggle sidebar"}`),hp=ie(dp),Sa=()=>hp,La=Symbol(""),pp=()=>{const e=He(La);if(!e)throw new Error("useThemeLocaleData() is called without provider.");return e},mp=(e,t)=>{const{locales:n,...o}=e;return{...o,...n==null?void 0:n[t]}},gp=Lt({enhance({app:e}){const t=Sa(),n=e._context.provides[hs],o=I(()=>mp(t.value,n.routeLocale.value));e.provide(La,o),Object.defineProperties(e.config.globalProperties,{$theme:{get(){return t.value}},$themeLocale:{get(){return o.value}}})}}),vp=Object.freeze(Object.defineProperty({__proto__:null,default:gp},Symbol.toStringTag,{value:"Module"})),_p=()=>Sa(),Ae=()=>pp(),Ca=Symbol(""),bp=e=>{const t=(n=e.value)=>{const o=window.document.documentElement;o.classList.toggle("dark",n),o.dataset.theme=n?"dark":"light"};Re(()=>{Ce(e,t,{immediate:!0})}),Pn(()=>t())},sr=()=>{const e=He(Ca);if(!e)throw new Error("useDarkMode() is called without provider.");return e},yp=()=>{const e=Ae(),t=bh(),n=bs("vuepress-color-scheme",e.value.colorMode),o=I({get(){return e.value.colorModeSwitch?n.value==="auto"?t.value:n.value==="dark":e.value.colorMode==="dark"},set(r){r===t.value?n.value="auto":n.value=r?"dark":"light"}});Dt(Ca,o),bp(o)};let Cr=null,$n=null;const wp={wait:()=>Cr,pending:()=>{Cr=new Promise(e=>$n=e)},resolve:()=>{$n==null||$n(),Cr=null,$n=null}},ka=()=>wp,xn=(e,t)=>{const{notFound:n,meta:o,path:r}=Xn(e,t);return n?{text:r,link:r}:{text:o.title||r,link:r}},ji=e=>decodeURI(e).replace(/#.*$/,"").replace(/(index)?\.(md|html)$/,""),Ep=(e,t)=>{if(t.hash===e)return!0;const n=ji(t.path),o=ji(e);return n===o},xa=(e,t)=>e.link&&Ep(e.link,t)?!0:"children"in e?e.children.some(n=>xa(n,t)):!1,Pa=e=>!Cf(e)&&!fo(e),Ta=e=>!Zo(e)||/github\.com/.test(e)?"GitHub":/bitbucket\.org/.test(e)?"Bitbucket":/gitlab\.com/.test(e)?"GitLab":/gitee\.com/.test(e)?"Gitee":null,Sp={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"},Lp=({docsRepo:e,editLinkPattern:t})=>{if(t)return t;const n=Ta(e);return n!==null?Sp[n]:null},Cp=({docsRepo:e,docsBranch:t,docsDir:n,filePathRelative:o,editLinkPattern:r})=>{if(!o)return null;const s=Lp({docsRepo:e,editLinkPattern:r});return s?s.replace(/:repo/,Zo(e)?e:`https://github.com/${e}`).replace(/:branch/,t).replace(/:path/,Zl(`${Xl(n)}/${o}`)):null},Sn=(e="",t="")=>wa(t)||fo(t)?t:`${Mf(e)}${t}`,Ro=ie([]),kp=()=>{const e=cn(),t=Ae(),n=ft(),o=I(()=>n.value.sidebarDepth??t.value.sidebarDepth??2);e.beforeEach((s,i)=>{s.path!==i.path&&(Ro.value=[])});const r=()=>{if(o.value<=0){Ro.value=[];return}Ro.value=Mh({selector:[...new Array(6)].map((s,i)=>`.theme-default-content h${i+1}`).join(","),levels:[2,o.value+1],ignore:[".vp-badge"]})};Ce(o,r),Re(r)},xp=()=>Ro,Aa=Symbol("sidebarItems"),ws=()=>{const e=He(Aa);if(!e)throw new Error("useSidebarItems() is called without provider.");return e},Pp=()=>{const e=Ae(),t=ft(),n=un(),o=St(),r=Gt(),s=xp(),i=I(()=>t.value.home?!1:t.value.sidebar??e.value.sidebar??"heading"),l=I(()=>Tp(i.value,n.value,o.path,r.value,s.value));Dt(Aa,l)},Tp=(e,t,n,o,r)=>e===!1?[]:e==="heading"?Oa(t,r):Array.isArray(e)?Ra(e,r,n,o):us(e)?Op(e,t,r,n):[],Ap=e=>({text:e.title,link:e.link,children:Es(e.children)}),Es=e=>e?e.map(t=>Ap(t)):[],Oa=(e,t)=>[{text:e.title,children:Es(t)}],Ra=(e,t,n,o="")=>{const r=(s,i)=>{var a;const l=lt(s)?xn(Sn(i,s)):lt(s.link)?{...s,link:Pa(s.link)?xn(Sn(i,s.link)).link:s.link}:s;if("children"in l)return{...l,children:l.children.map(c=>r(c,Sn(i,l.prefix)))};if(l.link===n){const c=((a=t[0])==null?void 0:a.level)===1?t[0].children:t;return{...l,children:Es(c)}}return l};return e.map(s=>r(s,o))},Op=(e,t,n,o)=>{const r=Nh(e).sort((s,i)=>i.length-s.length);for(const s of r)if(ya(decodeURI(o),s)){const i=e[s];return i?i==="heading"?Oa(t,n):Ra(i,n,o,s):[]}return console.warn(`${decodeURI(o)} is missing sidebar config.`),[]},Rp=he({__name:"Badge",props:{type:{default:"tip"},text:{default:""},vertical:{default:void 0}},setup(e,{expose:t}){t();const n={};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),we=(e,t)=>{const n=e.__vccOpts||e;for(const[o,r]of t)n[o]=r;return n};function Ip(e,t,n,o,r,s){return G(),ne("span",{class:Je(["vp-badge",n.type]),style:no({verticalAlign:n.vertical})},[ke(e.$slots,"default",{},()=>[qe(xe(n.text),1)])],6)}const Mp=we(Rp,[["render",Ip],["__file","Badge.vue"]]),$p=he({name:"CodeGroup",slots:Object,setup(e,{slots:t}){const n=ie([]),o=sr(),r=ie();Re(()=>{if(!r.value)return;const u=r.value.querySelector('div[class*="language-"]');if(u&&u.dataset.highlighter==="shiki"){const h=u.style.getPropertyValue("--shiki-light"),p=u.style.getPropertyValue("--shiki-dark"),v=u.style.getPropertyValue("--shiki-light-bg"),S=u.style.getPropertyValue("--shiki-dark-bg");Ce(o,b=>{r.value.style.setProperty("--c-code-group-tab-bg",b?S:v),r.value.style.setProperty("--c-code-group-tab-title",b?p:h)},{immediate:!0})}});const s=ie(-1),i=bs("vuepress-code-group",{}),l=I(()=>n.value.map(u=>u.innerText).join(","));Re(()=>{Ce(()=>i.value[l.value],(u=-1)=>{s.value!==u&&(s.value=u)},{immediate:!0}),Ce(s,u=>{i.value[l.value]!==u&&(i.value[l.value]=u)})});const a=(u=s.value)=>{u{u>0?s.value=u-1:s.value=n.value.length-1,n.value[s.value].focus()},f=(u,h)=>{u.key===" "||u.key==="Enter"?(u.preventDefault(),s.value=h):u.key==="ArrowRight"?(u.preventDefault(),a(h)):u.key==="ArrowLeft"&&(u.preventDefault(),c(h))};return()=>{var h;const u=(((h=t.default)==null?void 0:h.call(t))||[]).filter(p=>p.type.name==="CodeGroupItem").map(p=>(p.props===null&&(p.props={}),p));return u.length===0?null:(s.value<0||s.value>u.length-1?(s.value=u.findIndex(p=>p.props.active===""||p.props.active===!0),s.value===-1&&(s.value=0)):u.forEach((p,v)=>{p.props.active=v===s.value}),K("div",{class:"code-group",ref:r},[K("div",{class:"code-group-nav",role:"tablist"},u.map((p,v)=>{const S=v===s.value;return K("button",{ref:b=>{b&&(n.value[v]=b)},class:{"code-group-nav-tab":!0,active:S},role:"tab",ariaSelected:S,onClick:()=>s.value=v,onKeydown:b=>f(b,v)},p.props.title)})),u]))}}}),Hp=he({name:"CodeGroupItem",__name:"CodeGroupItem",props:{title:{},active:{type:Boolean}},setup(e,{expose:t}){t();const n={};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}});function Np(e,t,n,o,r,s){return G(),ne("div",{class:Je(["code-group-item",{active:n.active}]),role:"tabpanel"},[ke(e.$slots,"default")],2)}const Dp=we(Hp,[["render",Np],["__file","CodeGroupItem.vue"]]),Vp=he({__name:"VPHomeFeatures",setup(e,{expose:t}){t();const n=ft(),o=I(()=>n.value.features??[]),r={frontmatter:n,features:o};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),jp={key:0,class:"vp-features"};function Bp(e,t,n,o,r,s){return o.features.length?(G(),ne("div",jp,[(G(!0),ne(be,null,Bt(o.features,i=>(G(),ne("div",{key:i.title,class:"vp-feature"},[L("h2",null,xe(i.title),1),L("p",null,xe(i.details),1)]))),128))])):Oe("",!0)}const Fp=we(Vp,[["render",Bp],["__file","VPHomeFeatures.vue"]]),zp=he({__name:"VPHomeFooter",setup(e,{expose:t}){t();const n=ft(),o=I(()=>n.value.footer),r=I(()=>n.value.footerHtml),s={frontmatter:n,footer:o,footerHtml:r};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}}),Up=["innerHTML"],Wp=["textContent"];function Kp(e,t,n,o,r,s){return o.footer?(G(),ne(be,{key:0},[o.footerHtml?(G(),ne("div",{key:0,class:"vp-footer",innerHTML:o.footer},null,8,Up)):(G(),ne("div",{key:1,class:"vp-footer",textContent:xe(o.footer)},null,8,Wp))],64)):Oe("",!0)}const Gp=we(zp,[["render",Kp],["__file","VPHomeFooter.vue"]]),qp=he({__name:"VPHomeHero",setup(e,{expose:t}){t();const n=ft(),o=nr(),r=sr(),s=I(()=>r.value&&n.value.heroImageDark!==void 0?n.value.heroImageDark:n.value.heroImage),i=I(()=>n.value.heroAlt||a.value||"hero"),l=I(()=>n.value.heroHeight||280),a=I(()=>n.value.heroText===null?null:n.value.heroText||o.value.title||"Hello"),c=I(()=>n.value.tagline===null?null:n.value.tagline||o.value.description||"Welcome to your VuePress site"),f=I(()=>Array.isArray(n.value.actions)?n.value.actions.map(({text:p,link:v,type:S="primary"})=>({text:p,link:v,type:S})):[]),h={frontmatter:n,siteLocale:o,isDarkMode:r,heroImage:s,heroAlt:i,heroHeight:l,heroText:a,tagline:c,actions:f,HomeHeroImage:()=>{if(!s.value)return null;const p=K("img",{class:"vp-hero-image",src:gs(s.value),alt:i.value,height:l.value});return n.value.heroImageDark===void 0?p:K(ps,()=>p)},get AutoLink(){return Tn}};return Object.defineProperty(h,"__isScriptSetup",{enumerable:!1,value:!0}),h}}),Jp={class:"vp-hero"},Yp={key:0,id:"main-title"},Qp={key:1,class:"vp-hero-description"},Xp={key:2,class:"vp-hero-actions"};function Zp(e,t,n,o,r,s){return G(),ne("header",Jp,[Q(o.HomeHeroImage),o.heroText?(G(),ne("h1",Yp,xe(o.heroText),1)):Oe("",!0),o.tagline?(G(),ne("p",Qp,xe(o.tagline),1)):Oe("",!0),o.actions.length?(G(),ne("p",Xp,[(G(!0),ne(be,null,Bt(o.actions,i=>(G(),Pe(o.AutoLink,{key:i.text,class:Je(["vp-hero-action-button",[i.type]]),config:i},null,8,["class","config"]))),128))])):Oe("",!0)])}const em=we(qp,[["render",Zp],["__file","VPHomeHero.vue"]]),tm=he({__name:"VPHome",setup(e,{expose:t}){t();const n={VPHomeFeatures:Fp,VPHomeFooter:Gp,VPHomeHero:em,get Content(){return ms}};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),nm={class:"vp-home"},om={class:"theme-default-content"};function rm(e,t,n,o,r,s){return G(),ne("main",nm,[Q(o.VPHomeHero),Q(o.VPHomeFeatures),L("div",om,[Q(o.Content)]),Q(o.VPHomeFooter)])}const sm=we(tm,[["render",rm],["__file","VPHome.vue"]]),im="719px",lm={mobile:im};var Zn;(function(e){e.MOBILE="mobile"})(Zn||(Zn={}));const am={[Zn.MOBILE]:Number.parseInt(lm.mobile.replace("px",""),10)},Ia=(e,t)=>{const n=am[e];Number.isInteger(n)&&(Ve("orientationchange",()=>t(n),!1),Ve("resize",()=>t(n),!1),Re(()=>{t(n)}))},cm=he({__name:"VPNavbarBrand",setup(e,{expose:t}){t();const n=Gt(),o=nr(),r=Ae(),s=sr(),i=I(()=>r.value.home||n.value),l=I(()=>o.value.title),a=I(()=>s.value&&r.value.logoDark!==void 0?r.value.logoDark:r.value.logo),c=I(()=>r.value.logoAlt??l.value),f=I(()=>l.value.toLocaleUpperCase().trim()===c.value.toLocaleUpperCase().trim()),h={routeLocale:n,siteLocale:o,themeLocale:r,isDarkMode:s,navbarBrandLink:i,navbarBrandTitle:l,navbarBrandLogo:a,navbarBrandLogoAlt:c,navBarLogoAltMatchesTitle:f,NavbarBrandLogo:()=>{if(!a.value)return null;const p=K("img",{class:"vp-site-logo",src:gs(a.value),alt:c.value});return r.value.logoDark===void 0?p:K(ps,()=>p)},get RouteLink(){return ho}};return Object.defineProperty(h,"__isScriptSetup",{enumerable:!1,value:!0}),h}}),um=["aria-hidden"];function fm(e,t,n,o,r,s){return G(),Pe(o.RouteLink,{to:o.navbarBrandLink},{default:Se(()=>[Q(o.NavbarBrandLogo),o.navbarBrandTitle?(G(),ne("span",{key:0,class:Je(["vp-site-name",{"vp-hide-mobile":o.navbarBrandLogo}]),"aria-hidden":o.navBarLogoAltMatchesTitle},xe(o.navbarBrandTitle),11,um)):Oe("",!0)]),_:1},8,["to"])}const dm=we(cm,[["render",fm],["__file","VPNavbarBrand.vue"]]),Ma=(e,t="")=>lt(e)?xn(Sn(t,e)):"children"in e?{...e,children:e.children.map(n=>Ma(n,Sn(t,e.prefix)))}:{...e,link:Pa(e.link)?xn(Sn(t,e.link)).link:e.link},hm=()=>{const e=Ae();return I(()=>(e.value.navbar||[]).map(t=>Ma(t)))},pm=()=>{const e=Ae(),t=I(()=>e.value.repo),n=I(()=>t.value?Ta(t.value):null),o=I(()=>t.value&&!Zo(t.value)?`https://github.com/${t.value}`:t.value),r=I(()=>o.value?e.value.repoLabel?e.value.repoLabel:n.value===null?"Source":n.value:null);return I(()=>!o.value||!r.value?[]:[{text:r.value,link:o.value}])},mm=()=>{const e=St(),t=Ih(),n=Gt(),o=fa(),r=nr(),s=_p(),i=Ae();return I(()=>{const l=Object.keys(o.value.locales);if(l.length<2)return[];const a=e.path,c=e.fullPath;return[{text:`${i.value.selectLanguageText}`,ariaLabel:`${i.value.selectLanguageAriaLabel??i.value.selectLanguageText}`,children:l.map(u=>{var T,y;const h=((T=o.value.locales)==null?void 0:T[u])??{},p=((y=s.value.locales)==null?void 0:y[u])??{},v=`${h.lang}`,S=p.selectLanguageName??v;if(v===r.value.lang)return{text:S,activeMatch:".",link:e.fullPath};const b=a.replace(n.value,u);return{text:S,link:t.value.some(g=>g===b)?c.replace(a,b):p.home??u}})}]})},gm=he({__name:"VPDropdownTransition",setup(e,{expose:t}){t();const r={setHeight:s=>{s.style.height=s.scrollHeight+"px"},unsetHeight:s=>{s.style.height=""}};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}});function vm(e,t,n,o,r,s){return G(),Pe(uo,{name:"vp-dropdown",onEnter:o.setHeight,onAfterEnter:o.unsetHeight,onBeforeLeave:o.setHeight},{default:Se(()=>[ke(e.$slots,"default")]),_:3})}const $a=we(gm,[["render",vm],["__file","VPDropdownTransition.vue"]]),_m=he({__name:"VPNavbarDropdown",props:{item:{}},setup(e,{expose:t}){t();const n=e,{item:o}=ml(n),r=St(),s=ie(!1),i=I(()=>o.value.ariaLabel||o.value.text),l=(f,u)=>u[u.length-1]===f,a=f=>{const u=f.detail===0;s.value=u?!s.value:!1};Ce(()=>r.path,()=>{s.value=!1});const c={props:n,item:o,route:r,open:s,dropdownAriaLabel:i,isLastItemOfArray:l,handleDropdown:a,VPDropdownTransition:$a,get AutoLink(){return Tn}};return Object.defineProperty(c,"__isScriptSetup",{enumerable:!1,value:!0}),c}}),bm=["aria-label"],ym={class:"title"},wm=L("span",{class:"arrow down"},null,-1),Em=["aria-label"],Sm={class:"title"},Lm={class:"vp-navbar-dropdown"},Cm={class:"vp-navbar-dropdown-subtitle"},km={key:1},xm={class:"vp-navbar-dropdown-subitem-wrapper"};function Pm(e,t,n,o,r,s){return G(),ne("div",{class:Je(["vp-navbar-dropdown-wrapper",{open:o.open}])},[L("button",{class:"vp-navbar-dropdown-title",type:"button","aria-label":o.dropdownAriaLabel,onClick:o.handleDropdown},[L("span",ym,xe(o.item.text),1),wm],8,bm),L("button",{class:"vp-navbar-dropdown-title-mobile",type:"button","aria-label":o.dropdownAriaLabel,onClick:t[0]||(t[0]=i=>o.open=!o.open)},[L("span",Sm,xe(o.item.text),1),L("span",{class:Je(["arrow",o.open?"down":"right"])},null,2)],8,Em),Q(o.VPDropdownTransition,null,{default:Se(()=>[Ho(L("ul",Lm,[(G(!0),ne(be,null,Bt(o.item.children,i=>(G(),ne("li",{key:i.text,class:"vp-navbar-dropdown-item"},["children"in i?(G(),ne(be,{key:0},[L("h4",Cm,[i.link?(G(),Pe(o.AutoLink,{key:0,config:i,onFocusout:l=>o.isLastItemOfArray(i,o.item.children)&&i.children.length===0&&(o.open=!1)},null,8,["config","onFocusout"])):(G(),ne("span",km,xe(i.text),1))]),L("ul",xm,[(G(!0),ne(be,null,Bt(i.children,l=>(G(),ne("li",{key:l.link,class:"vp-navbar-dropdown-subitem"},[Q(o.AutoLink,{config:l,onFocusout:a=>o.isLastItemOfArray(l,i.children)&&o.isLastItemOfArray(i,o.item.children)&&(o.open=!1)},null,8,["config","onFocusout"])]))),128))])],64)):(G(),Pe(o.AutoLink,{key:1,config:i,onFocusout:l=>o.isLastItemOfArray(i,o.item.children)&&(o.open=!1)},null,8,["config","onFocusout"]))]))),128))],512),[[zo,o.open]])]),_:1})],2)}const Tm=we(_m,[["render",Pm],["__file","VPNavbarDropdown.vue"]]),Am=he({__name:"VPNavbarItems",setup(e,{expose:t}){t();const n=hm(),o=mm(),r=pm(),s=ie(!1),i=I(()=>Ae().value.navbarLabel??"site navigation"),l=I(()=>[...n.value,...o.value,...r.value]);Ia(Zn.MOBILE,c=>{s.value=window.innerWidth(G(),ne("div",{key:i.text,class:"vp-navbar-item"},["children"in i?(G(),Pe(o.VPNavbarDropdown,{key:0,class:Je({mobile:o.isMobile}),item:i},null,8,["class","item"])):(G(),Pe(o.AutoLink,{key:1,config:i},null,8,["config"]))]))),128))],8,Om)):Oe("",!0)}const Ha=we(Am,[["render",Rm],["__file","VPNavbarItems.vue"]]),Im={},Mm={class:"dark-icon",viewBox:"0 0 32 32"},$m=L("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),Hm=[$m];function Nm(e,t){return G(),ne("svg",Mm,Hm)}const Dm=we(Im,[["render",Nm],["__file","VPDarkIcon.vue"]]),Vm={},jm={class:"light-icon",viewBox:"0 0 32 32"},Bm=Mu('',9),Fm=[Bm];function zm(e,t){return G(),ne("svg",jm,Fm)}const Um=we(Vm,[["render",zm],["__file","VPLightIcon.vue"]]),Wm=he({__name:"VPToggleColorModeButton",setup(e,{expose:t}){t();const n=Ae(),o=sr(),s={themeLocale:n,isDarkMode:o,toggleColorMode:()=>{o.value=!o.value},VPDarkIcon:Dm,VPLightIcon:Um};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}}),Km=["title"];function Gm(e,t,n,o,r,s){return G(),ne("button",{class:"vp-toggle-color-mode-button",title:o.themeLocale.toggleColorMode,onClick:o.toggleColorMode},[Ho(Q(o.VPLightIcon,null,null,512),[[zo,!o.isDarkMode]]),Ho(Q(o.VPDarkIcon,null,null,512),[[zo,o.isDarkMode]])],8,Km)}const qm=we(Wm,[["render",Gm],["__file","VPToggleColorModeButton.vue"]]),Jm=he({__name:"VPToggleSidebarButton",emits:["toggle"],setup(e,{expose:t}){t();const o={themeLocale:Ae()};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),Ym=["title"],Qm=L("div",{class:"icon","aria-hidden":"true"},[L("span"),L("span"),L("span")],-1),Xm=[Qm];function Zm(e,t,n,o,r,s){return G(),ne("div",{class:"vp-toggle-sidebar-button",title:o.themeLocale.toggleSidebar,"aria-expanded":"false",role:"button",tabindex:"0",onClick:t[0]||(t[0]=i=>e.$emit("toggle"))},Xm,8,Ym)}const eg=we(Jm,[["render",Zm],["__file","VPToggleSidebarButton.vue"]]),tg=he({__name:"VPNavbar",emits:["toggle-sidebar"],setup(e,{expose:t}){t();const n=Ae(),o=ie(null),r=ie(null),s=ie(0),i=I(()=>s.value?{maxWidth:s.value+"px"}:{}),l=(c,f)=>{var p,v,S;const u=(S=(v=(p=c==null?void 0:c.ownerDocument)==null?void 0:p.defaultView)==null?void 0:v.getComputedStyle(c,null))==null?void 0:S[f],h=Number.parseInt(u,10);return Number.isNaN(h)?0:h};Ia(Zn.MOBILE,c=>{var u;const f=l(o.value,"paddingLeft")+l(o.value,"paddingRight");window.innerWidthe.$emit("toggle-sidebar"))}),L("span",og,[Q(o.VPNavbarBrand)],512),L("div",{class:"vp-navbar-items-wrapper",style:no(o.linksWrapperStyle)},[ke(e.$slots,"before"),Q(o.VPNavbarItems,{class:"vp-hide-mobile"}),ke(e.$slots,"after"),o.themeLocale.colorModeSwitch?(G(),Pe(o.VPToggleColorModeButton,{key:0})):Oe("",!0),Q(i)],4)],512)}const sg=we(tg,[["render",rg],["__file","VPNavbar.vue"]]),ig=()=>{const e=Ae(),t=un(),n=ft();return I(()=>{var r;return n.value.contributors??e.value.contributors??!0?((r=t.value.git)==null?void 0:r.contributors)??null:null})},lg=()=>{const e=Ae(),t=un(),n=ft();return I(()=>{if(!(n.value.editLink??e.value.editLink??!0))return null;const{repo:r,docsRepo:s=r,docsBranch:i="main",docsDir:l="",editLinkText:a}=e.value;if(!s)return null;const c=Cp({docsRepo:s,docsBranch:i,docsDir:l,filePathRelative:t.value.filePathRelative,editLinkPattern:n.value.editLinkPattern??e.value.editLinkPattern});return c?{text:a??"Edit this page",link:c}:null})},ag=()=>{const e=Ae(),t=un(),n=ft();return I(()=>{var s,i;return!(n.value.lastUpdated??e.value.lastUpdated??!0)||!((s=t.value.git)!=null&&s.updatedTime)?null:new Date((i=t.value.git)==null?void 0:i.updatedTime).toLocaleString()})},cg={},ug={class:"edit-icon",viewBox:"0 0 1024 1024"},fg=L("g",{fill:"currentColor"},[L("path",{d:"M430.818 653.65a60.46 60.46 0 0 1-50.96-93.281l71.69-114.012 7.773-10.365L816.038 80.138A60.46 60.46 0 0 1 859.225 62a60.46 60.46 0 0 1 43.186 18.138l43.186 43.186a60.46 60.46 0 0 1 0 86.373L588.879 565.55l-8.637 8.637-117.466 68.234a60.46 60.46 0 0 1-31.958 11.229z"}),L("path",{d:"M728.802 962H252.891A190.883 190.883 0 0 1 62.008 771.98V296.934a190.883 190.883 0 0 1 190.883-192.61h267.754a60.46 60.46 0 0 1 0 120.92H252.891a69.962 69.962 0 0 0-69.098 69.099V771.98a69.962 69.962 0 0 0 69.098 69.098h475.911A69.962 69.962 0 0 0 797.9 771.98V503.363a60.46 60.46 0 1 1 120.922 0V771.98A190.883 190.883 0 0 1 728.802 962z"})],-1),dg=[fg];function hg(e,t){return G(),ne("svg",ug,dg)}const pg=we(cg,[["render",hg],["__file","VPEditIcon.vue"]]),mg=he({__name:"VPPageMeta",setup(e,{expose:t}){t();const n=Ae(),o=lg(),r=ag(),s=ig(),i={themeLocale:n,editLink:o,lastUpdated:r,contributors:s,VPEditIcon:pg,get AutoLink(){return Tn}};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}}),gg={class:"vp-page-meta"},vg={key:0,class:"vp-meta-item edit-link"},_g={class:"vp-meta-item git-info"},bg={key:0,class:"vp-meta-item last-updated"},yg={class:"meta-item-label"},wg={class:"meta-item-info"},Eg={key:1,class:"vp-meta-item contributors"},Sg={class:"meta-item-label"},Lg={class:"meta-item-info"},Cg=["title"];function kg(e,t,n,o,r,s){const i=Gn("ClientOnly");return G(),ne("footer",gg,[o.editLink?(G(),ne("div",vg,[Q(o.AutoLink,{class:"label",config:o.editLink},{before:Se(()=>[Q(o.VPEditIcon)]),_:1},8,["config"])])):Oe("",!0),L("div",_g,[o.lastUpdated?(G(),ne("div",bg,[L("span",yg,xe(o.themeLocale.lastUpdatedText)+": ",1),Q(i,null,{default:Se(()=>[L("span",wg,xe(o.lastUpdated),1)]),_:1})])):Oe("",!0),o.contributors&&o.contributors.length?(G(),ne("div",Eg,[L("span",Sg,xe(o.themeLocale.contributorsText)+": ",1),L("span",Lg,[(G(!0),ne(be,null,Bt(o.contributors,(l,a)=>(G(),ne(be,{key:a},[L("span",{class:"contributor",title:`email: ${l.email}`},xe(l.name),9,Cg),a!==o.contributors.length-1?(G(),ne(be,{key:0},[qe(", ")],64)):Oe("",!0)],64))),128))])])):Oe("",!0)])])}const xg=we(mg,[["render",kg],["__file","VPPageMeta.vue"]]),Pg=()=>{const e=cn(),t=St();return n=>{n&&(wa(n)?t.path!==n&&e.push(n):fo(n)?window==null||window.open(n):e.push(encodeURI(n)))}},Bi=(e,t)=>e===!1?!1:lt(e)?xn(e,t):us(e)?{...e,link:xn(e.link,t).link}:null,zr=(e,t,n)=>{const o=e.findIndex(s=>s.link===t);if(o!==-1){const s=e[o+n];return s?s.link?s:"prefix"in s&&!Xn(s.prefix).notFound?{...s,link:s.prefix}:null:null}for(const s of e)if("children"in s){const i=zr(s.children,t,n);if(i)return i}const r=e.findIndex(s=>"prefix"in s&&s.prefix===t);if(r!==-1){const s=e[r+n];return s?s.link?s:"prefix"in s&&!Xn(s.prefix).notFound?{...s,link:s.prefix}:null:null}return null},Tg=()=>{const e=ft(),t=Ae(),n=ws(),o=St(),r=I(()=>{const i=Bi(e.value.prev,o.path);return i===!1?null:i??(t.value.prev===!1?null:zr(n.value,o.path,-1))}),s=I(()=>{const i=Bi(e.value.next,o.path);return i===!1?null:i??(t.value.next===!1?null:zr(n.value,o.path,1))});return{prevLink:r,nextLink:s}},Ag=he({__name:"VPPageNav",setup(e,{expose:t}){t();const n=Ae(),o=Pg(),{prevLink:r,nextLink:s}=Tg(),i=I(()=>Ae().value.pageNavbarLabel??"page navigation");Ve("keydown",a=>{a.altKey&&(a.key==="ArrowRight"?s.value&&(o(s.value.link),a.preventDefault()):a.key==="ArrowLeft"&&r.value&&(o(r.value.link),a.preventDefault()))});const l={themeLocale:n,navigate:o,prevLink:r,nextLink:s,navbarLabel:i,get AutoLink(){return Tn}};return Object.defineProperty(l,"__isScriptSetup",{enumerable:!1,value:!0}),l}}),Og=["aria-label"],Rg={class:"hint"},Ig=L("span",{class:"arrow left"},null,-1),Mg={class:"link"},$g={class:"hint"},Hg=L("span",{class:"arrow right"},null,-1),Ng={class:"link"};function Dg(e,t,n,o,r,s){return o.prevLink||o.nextLink?(G(),ne("nav",{key:0,class:"vp-page-nav","aria-label":o.navbarLabel},[o.prevLink?(G(),Pe(o.AutoLink,{key:0,class:"prev",config:o.prevLink},{default:Se(()=>[L("div",Rg,[Ig,qe(" "+xe(o.themeLocale.prev??"Prev"),1)]),L("div",Mg,[L("span",null,xe(o.prevLink.text),1)])]),_:1},8,["config"])):Oe("",!0),o.nextLink?(G(),Pe(o.AutoLink,{key:1,class:"next",config:o.nextLink},{default:Se(()=>[L("div",$g,[qe(xe(o.themeLocale.next??"Next")+" ",1),Hg]),L("div",Ng,[L("span",null,xe(o.nextLink.text),1)])]),_:1},8,["config"])):Oe("",!0)],8,Og)):Oe("",!0)}const Vg=we(Ag,[["render",Dg],["__file","VPPageNav.vue"]]),jg=he({__name:"VPPage",setup(e,{expose:t}){t(),kp();const n={VPPageMeta:xg,VPPageNav:Vg,get Content(){return ms}};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),Bg={class:"vp-page"},Fg={class:"theme-default-content"};function zg(e,t,n,o,r,s){return G(),ne("main",Bg,[ke(e.$slots,"top"),L("div",Fg,[ke(e.$slots,"content-top"),Q(o.Content),ke(e.$slots,"content-bottom")]),Q(o.VPPageMeta),Q(o.VPPageNav),ke(e.$slots,"bottom")])}const Ug=we(jg,[["render",zg],["__file","VPPage.vue"]]),Wg=he({__name:"VPSidebarItem",props:{item:{},depth:{default:0}},setup(e,{expose:t}){t();const n=e,{item:o,depth:r}=ml(n),s=St(),i=cn(),l=I(()=>"collapsible"in o.value&&o.value.collapsible),a=I(()=>xa(o.value,s)),c=I(()=>({"vp-sidebar-item":!0,"vp-sidebar-heading":r.value===0,active:a.value,collapsible:l.value})),f=I(()=>l.value?a.value:!0),[u,h]=uh(f.value),p=b=>{l.value&&(b.preventDefault(),h())},v=i.afterEach(b=>{an(()=>{u.value=f.value})});ss(()=>{v()});const S={props:n,item:o,depth:r,route:s,router:i,collapsible:l,isActive:a,itemClass:c,isOpenDefault:f,isOpen:u,toggleIsOpen:h,onClick:p,unregisterRouterHook:v,VPDropdownTransition:$a,get AutoLink(){return Tn}};return Object.defineProperty(S,"__isScriptSetup",{enumerable:!1,value:!0}),S}}),Kg={class:"vp-sidebar-children"};function Gg(e,t,n,o,r,s){const i=Gn("VPSidebarItem",!0);return G(),ne("li",null,[o.item.link?(G(),Pe(o.AutoLink,{key:0,class:Je(o.itemClass),config:o.item},null,8,["class","config"])):(G(),ne("p",{key:1,tabindex:"0",class:Je(o.itemClass),onClick:o.onClick,onKeydown:_f(o.onClick,["enter"])},[qe(xe(o.item.text)+" ",1),o.collapsible?(G(),ne("span",{key:0,class:Je(["arrow",o.isOpen?"down":"right"])},null,2)):Oe("",!0)],34)),"children"in o.item&&o.item.children.length?(G(),Pe(o.VPDropdownTransition,{key:2},{default:Se(()=>[Ho(L("ul",Kg,[(G(!0),ne(be,null,Bt(o.item.children,l=>(G(),Pe(i,{key:`${o.depth}${l.text}${l.link}`,item:l,depth:o.depth+1},null,8,["item","depth"]))),128))],512),[[zo,o.isOpen]])]),_:1})):Oe("",!0)])}const qg=we(Wg,[["render",Gg],["__file","VPSidebarItem.vue"]]),Jg=he({__name:"VPSidebarItems",setup(e,{expose:t}){t();const n=St(),o=ws();Re(()=>{Ce(()=>n.hash,s=>{const i=document.querySelector(".vp-sidebar");if(!i)return;const l=document.querySelector(`.vp-sidebar a.vp-sidebar-item[href="${n.path}${s}"]`);if(!l)return;const{top:a,height:c}=i.getBoundingClientRect(),{top:f,height:u}=l.getBoundingClientRect();fa+c&&l.scrollIntoView(!1)})});const r={route:n,sidebarItems:o,VPSidebarItem:qg};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),Yg={key:0,class:"vp-sidebar-items"};function Qg(e,t,n,o,r,s){return o.sidebarItems.length?(G(),ne("ul",Yg,[(G(!0),ne(be,null,Bt(o.sidebarItems,i=>(G(),Pe(o.VPSidebarItem,{key:`${i.text}${i.link}`,item:i},null,8,["item"]))),128))])):Oe("",!0)}const Xg=we(Jg,[["render",Qg],["__file","VPSidebarItems.vue"]]),Zg=he({__name:"VPSidebar",setup(e,{expose:t}){t();const n={VPNavbarItems:Ha,VPSidebarItems:Xg};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),ev={class:"vp-sidebar"};function tv(e,t,n,o,r,s){return G(),ne("aside",ev,[Q(o.VPNavbarItems),ke(e.$slots,"top"),Q(o.VPSidebarItems),ke(e.$slots,"bottom")])}const nv=we(Zg,[["render",tv],["__file","VPSidebar.vue"]]),ov=he({__name:"Layout",setup(e,{expose:t}){t();const n=un(),o=ft(),r=Ae(),s=I(()=>o.value.navbar!==!1&&r.value.navbar!==!1),i=ws(),l=ie(!1),a=g=>{l.value=typeof g=="boolean"?g:!l.value},c={x:0,y:0},f=g=>{c.x=g.changedTouches[0].clientX,c.y=g.changedTouches[0].clientY},u=g=>{const C=g.changedTouches[0].clientX-c.x,D=g.changedTouches[0].clientY-c.y;Math.abs(C)>Math.abs(D)&&Math.abs(C)>40&&(C>0&&c.x<=80?a(!0):a(!1))},h=I(()=>o.value.externalLinkIcon??r.value.externalLinkIcon??!0),p=I(()=>[{"no-navbar":!s.value,"no-sidebar":!i.value.length,"sidebar-open":l.value,"external-link-icon":h.value},o.value.pageClass]);let v;Re(()=>{v=cn().afterEach(()=>{a(!1)})}),Pn(()=>{v()});const S=ka(),b=S.resolve,T=S.pending,y={page:n,frontmatter:o,themeLocale:r,shouldShowNavbar:s,sidebarItems:i,isSidebarOpen:l,toggleSidebar:a,touchStart:c,onTouchStart:f,onTouchEnd:u,enableExternalLinkIcon:h,containerClass:p,get unregisterRouterHook(){return v},set unregisterRouterHook(g){v=g},scrollPromise:S,onBeforeEnter:b,onBeforeLeave:T,VPHome:sm,VPNavbar:sg,VPPage:Ug,VPSidebar:nv};return Object.defineProperty(y,"__isScriptSetup",{enumerable:!1,value:!0}),y}});function rv(e,t,n,o,r,s){return G(),ne("div",{class:Je(["vp-theme-container",o.containerClass]),onTouchstart:o.onTouchStart,onTouchend:o.onTouchEnd},[ke(e.$slots,"navbar",{},()=>[o.shouldShowNavbar?(G(),Pe(o.VPNavbar,{key:0,onToggleSidebar:o.toggleSidebar},{before:Se(()=>[ke(e.$slots,"navbar-before")]),after:Se(()=>[ke(e.$slots,"navbar-after")]),_:3})):Oe("",!0)]),L("div",{class:"vp-sidebar-mask",onClick:t[0]||(t[0]=i=>o.toggleSidebar(!1))}),ke(e.$slots,"sidebar",{},()=>[Q(o.VPSidebar,null,{top:Se(()=>[ke(e.$slots,"sidebar-top")]),bottom:Se(()=>[ke(e.$slots,"sidebar-bottom")]),_:3})]),ke(e.$slots,"page",{},()=>[o.frontmatter.home?(G(),Pe(o.VPHome,{key:0})):(G(),Pe(uo,{key:1,name:"fade-slide-y",mode:"out-in",onBeforeEnter:o.onBeforeEnter,onBeforeLeave:o.onBeforeLeave},{default:Se(()=>[(G(),Pe(o.VPPage,{key:o.page.path},{top:Se(()=>[ke(e.$slots,"page-top")]),"content-top":Se(()=>[ke(e.$slots,"page-content-top")]),"content-bottom":Se(()=>[ke(e.$slots,"page-content-bottom")]),bottom:Se(()=>[ke(e.$slots,"page-bottom")]),_:3}))]),_:3},8,["onBeforeEnter","onBeforeLeave"]))])],34)}const sv=we(ov,[["render",rv],["__file","Layout.vue"]]),iv=he({__name:"NotFound",setup(e,{expose:t}){t();const n=Gt(),o=Ae(),r=o.value.notFound??["Not Found"],s=()=>r[Math.floor(Math.random()*r.length)],i=o.value.home??n.value,l=o.value.backToHome??"Back to home",a={routeLocale:n,themeLocale:o,messages:r,getMsg:s,homeLink:i,homeText:l,get RouteLink(){return ho}};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),lv=e=>(os("data-v-303656ba"),e=e(),rs(),e),av={class:"vp-theme-container"},cv={class:"page"},uv={class:"theme-default-content"},fv=lv(()=>L("h1",null,"404",-1));function dv(e,t,n,o,r,s){return G(),ne("div",av,[L("main",cv,[L("div",uv,[fv,L("blockquote",null,xe(o.getMsg()),1),Q(o.RouteLink,{to:o.homeLink},{default:Se(()=>[qe(xe(o.homeText),1)]),_:1},8,["to"])])])])}const hv=we(iv,[["render",dv],["__scopeId","data-v-303656ba"],["__file","NotFound.vue"]]),pv=Lt({enhance({app:e,router:t}){Sr("Badge")||e.component("Badge",Mp),Sr("CodeGroup")||e.component("CodeGroup",$p),Sr("CodeGroupItem")||e.component("CodeGroupItem",Dp),e.component("VPSearch",()=>{const o=e.component("Docsearch")||e.component("SearchBox");return o?K(o):null});const n=t.options.scrollBehavior;t.options.scrollBehavior=async(...o)=>(await ka().wait(),n(...o))},setup(){yp(),Pp()},layouts:{Layout:sv,NotFound:hv}}),mv=Object.freeze(Object.defineProperty({__proto__:null,default:pv},Symbol.toStringTag,{value:"Module"})),gv=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),Ss=e=>{const t=Gt();return I(()=>e[t.value]??{})},vv=(e,t)=>lt(e)&&e.startsWith(t),_v=Object.values,An=({name:e="",color:t="currentColor",ariaLabel:n},{attrs:o,slots:r})=>{var s;return K("svg",{xmlns:"http://www.w3.org/2000/svg",class:["icon",`${e}-icon`],viewBox:"0 0 1024 1024",fill:t,"aria-label":n??`${e} icon`,...o},(s=r.default)==null?void 0:s.call(r))};An.displayName="IconBase";function bv(){const e=ie(!1),t=lo();return t&&Re(()=>{e.value=!0},t),e}function yv(e){return bv(),I(()=>!!e())}const wv=()=>yv(()=>typeof window<"u"&&window.navigator&&"userAgent"in window.navigator),Ev=()=>{const e=wv();return I(()=>e.value&&/\b(?:Android|iPhone)/i.test(navigator.userAgent))},Sv=e=>[/\((ipad);[-\w),; ]+apple/i,/applecoremedia\/[\w.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i].some(t=>t.test(e)),Lv=e=>[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/cfnetwork\/.+darwin/i].some(t=>t.test(e)),Cv=e=>[/(mac os x) ?([\w. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i].some(t=>t.test(e)),kv=()=>K(An,{name:"heading"},()=>K("path",{d:"M250.4 704.6H64V595.4h202.4l26.2-166.6H94V319.6h214.4L352 64h127.8l-43.6 255.4h211.2L691 64h126.2l-43.6 255.4H960v109.2H756.2l-24.6 166.6H930v109.2H717L672 960H545.8l43.6-255.4H376.6L333 960H206.8l43.6-255.4zm168.4-276L394 595.4h211.2l24.6-166.6h-211z"}));kv.displayName="HeadingIcon";const xv=()=>K(An,{name:"heart"},()=>K("path",{d:"M1024 358.156C1024 195.698 892.3 64 729.844 64c-86.362 0-164.03 37.218-217.844 96.49C458.186 101.218 380.518 64 294.156 64 131.698 64 0 195.698 0 358.156 0 444.518 37.218 522.186 96.49 576H96l320 320c32 32 64 64 96 64s64-32 96-64l320-320h-.49c59.272-53.814 96.49-131.482 96.49-217.844zM841.468 481.232 517.49 805.49a2981.962 2981.962 0 0 1-5.49 5.48c-1.96-1.95-3.814-3.802-5.49-5.48L182.532 481.234C147.366 449.306 128 405.596 128 358.156 128 266.538 202.538 192 294.156 192c47.44 0 91.15 19.366 123.076 54.532L512 350.912l94.768-104.378C638.696 211.366 682.404 192 729.844 192 821.462 192 896 266.538 896 358.156c0 47.44-19.368 91.15-54.532 123.076z"}));xv.displayName="HeartIcon";const Pv=()=>K(An,{name:"history"},()=>K("path",{d:"M512 1024a512 512 0 1 1 512-512 512 512 0 0 1-512 512zm0-896a384 384 0 1 0 384 384 384 384 0 0 0-384-384zm192 448H512a64 64 0 0 1-64-64V320a64 64 0 0 1 128 0v128h128a64 64 0 0 1 0 128z"}));Pv.displayName="HistoryIcon";const Tv=()=>K(An,{name:"title"},()=>K("path",{d:"M512 256c70.656 0 134.656 28.672 180.992 75.008A254.933 254.933 0 0 1 768 512c0 83.968-41.024 157.888-103.488 204.48C688.96 748.736 704 788.48 704 832c0 105.984-86.016 192-192 192-106.048 0-192-86.016-192-192h128a64 64 0 1 0 128 0 64 64 0 0 0-64-64 255.19 255.19 0 0 1-181.056-75.008A255.403 255.403 0 0 1 256 512c0-83.968 41.024-157.824 103.488-204.544C335.04 275.264 320 235.584 320 192A192 192 0 0 1 512 0c105.984 0 192 85.952 192 192H576a64.021 64.021 0 0 0-128 0c0 35.328 28.672 64 64 64zM384 512c0 70.656 57.344 128 128 128s128-57.344 128-128-57.344-128-128-128-128 57.344-128 128z"}));Tv.displayName="TitleIcon";const Ls=()=>K(An,{name:"search"},()=>K("path",{d:"M192 480a256 256 0 1 1 512 0 256 256 0 0 1-512 0m631.776 362.496-143.2-143.168A318.464 318.464 0 0 0 768 480c0-176.736-143.264-320-320-320S128 303.264 128 480s143.264 320 320 320a318.016 318.016 0 0 0 184.16-58.592l146.336 146.368c12.512 12.48 32.768 12.48 45.28 0 12.48-12.512 12.48-32.768 0-45.28"}));Ls.displayName="SearchIcon";const Na=()=>K("svg",{xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",preserveAspectRatio:"xMidYMid",viewBox:"0 0 100 100"},[K("circle",{cx:"28",cy:"75",r:"11",fill:"currentColor"},K("animate",{attributeName:"fill-opacity",begin:"0s",dur:"1s",keyTimes:"0;0.2;1",repeatCount:"indefinite",values:"0;1;1"})),K("path",{fill:"none",stroke:"#88baf0","stroke-width":"10",d:"M28 47a28 28 0 0 1 28 28"},K("animate",{attributeName:"stroke-opacity",begin:"0.1s",dur:"1s",keyTimes:"0;0.2;1",repeatCount:"indefinite",values:"0;1;1"})),K("path",{fill:"none",stroke:"#88baf0","stroke-width":"10",d:"M28 25a50 50 0 0 1 50 50"},K("animate",{attributeName:"stroke-opacity",begin:"0.2s",dur:"1s",keyTimes:"0;0.2;1",repeatCount:"indefinite",values:"0;1;1"}))]);Na.displayName="LoadingIcon";const Da=({hint:e})=>K("div",{class:"search-pro-result-wrapper loading"},[K(Na),e]);Da.displayName="SearchLoading";const Av='';var Ov={},Rv={"/":{cancel:"Cancel",placeholder:"Search",search:"Search",searching:"Searching",defaultTitle:"Documentation",select:"to select",navigate:"to navigate",autocomplete:"to autocomplete",exit:"to exit",queryHistory:"Search History",resultHistory:"Result History",emptyHistory:"Empty Search History",emptyResult:"No results found",loading:"Loading search indexes..."}},Iv={searchDelay:150,suggestDelay:0,queryHistoryCount:5,resultHistoryCount:5,hotKeys:[{key:"k",ctrl:!0},{key:"/",ctrl:!0}],worker:"search-pro.worker.js"};const Uo=Iv,jb=Ov,Va=Uo.hotKeys,Cs=Rv,kr="Canceled because of new search request.",Mv=()=>{const e=new Worker(`/${Uo.worker}`,{}),t={suggest:null,search:null,all:null};return e.addEventListener("message",({data:n})=>{const[o,r,s]=n,i=t[o];(i==null?void 0:i.id)===r&&i.resolve(s)}),e.addEventListener("error",n=>{console.error("Search Worker error:",n)}),{suggest:(n,o,r)=>new Promise((s,i)=>{var a;(a=t.suggest)==null||a.reject(new Error(kr));const l=Date.now();e.postMessage({type:"suggest",id:l,query:n,locale:o,options:r}),t.suggest={id:l,resolve:s,reject:i}}),search:(n,o,r)=>new Promise((s,i)=>{var a;(a=t.search)==null||a.reject(new Error(kr));const l=Date.now();e.postMessage({type:"search",id:l,query:n,locale:o,options:r}),t.search={id:l,resolve:s,reject:i}}),all:(n,o,r)=>new Promise((s,i)=>{var a;(a=t.all)==null||a.reject(new Error(kr));const l=Date.now();e.postMessage({type:"all",id:l,query:n,locale:o,options:r}),t.all={id:l,resolve:s,reject:i}}),terminate:()=>{e.terminate(),_v(t).forEach(n=>{n==null||n.reject(new Error("Worker has been terminated."))})}}};let $v={};const ja=Symbol(""),Ba=()=>{const e=Gt(),{locales:t={},...n}=He(ja);return I(()=>({...n,...t[e.value]}))},Hv=e=>{e.provide(ja,$v)},Nv=(e,t=!1)=>{const n=ie(0),o=I(()=>e.value[n.value]),r=()=>{n.value=n.value>0?n.value-1:e.value.length-1},s=()=>{n.value=n.value{t||(n.value=0)}),{index:n,item:o,prev:r,next:s}},Dv=e=>e instanceof Element?document.activeElement===e&&(["TEXTAREA","SELECT","INPUT"].includes(e.tagName)||e.hasAttribute("contenteditable")):!1,Vv=e=>Va.some(t=>{const{key:n,ctrl:o=!1,shift:r=!1,alt:s=!1,meta:i=!1}=t;return n===e.key&&o===e.ctrlKey&&r===e.shiftKey&&s===e.altKey&&i===e.metaKey}),jv='',Bv='',Fv='',zv='',ks=Symbol(""),Uv=()=>{const e=ie(!1);Dt(ks,e)},Wv=e=>{const t=ie([]);{const n=Ba(),o=un(),r=Gt();Re(()=>{const{suggest:s,terminate:i}=Mv(),l=a=>{const c=a.join(" "),{searchFilter:f,splitWord:u,suggestionsFilter:h=v=>v,...p}=n.value;c?s(c,r.value,p).then(v=>h(v,c,r.value,o.value)).then(v=>{t.value=v.length?vv(v[0],c)&&!v[0].slice(c.length).includes(" ")?v:[c,...v]:[]}).catch(v=>{console.warn(v)}):t.value=[]};Ce([e,r],([a])=>l(a),{immediate:!0}),Pn(()=>{i()})})}return{suggestions:t}},xr=Va[0];var Kv=he({name:"SearchBox",setup(){const e=Ss(Cs),t=He(ks),n=ie(!1),o=I(()=>xr?[(n.value?["⌃","⇧","⌥","⌘"]:["Ctrl","Shift","Alt","Win"]).filter((r,s)=>xr[["ctrl","shift","alt","meta"][s]]),xr.key.toUpperCase()]:null);return Ve("keydown",r=>{!t.value&&Vv(r)&&!Dv(r.target)&&(r.preventDefault(),t.value=!0)}),Re(()=>{const{userAgent:r}=navigator;n.value=Cv(r)||Lv(r)||Sv(r)}),()=>[K("button",{type:"button",class:"search-pro-button","aria-label":e.value.search,onClick:()=>{t.value=!0}},[K(Ls),K("div",{class:"search-pro-placeholder"},e.value.search),o.value?K("div",{class:"search-pro-key-hints"},o.value.map(r=>K("kbd",{class:"search-pro-key"},r))):null])]}});const Gv=Cl({loader:()=>ce(()=>import("./SearchResult-GqvqXcV-.js"),[]),loadingComponent:()=>{const e=Ss(Cs);return K(Da,{hint:e.value.loading})}});var qv=he({name:"SearchModal",setup(){const e=He(ks),t=nr(),n=Ev(),o=Ss(Cs),r=Ba(),s=ie(""),i=ie([]),{suggestions:l}=Wv(i),a=ie(!1),{index:c,prev:f,next:u}=Nv(l),h=jt(),p=jt(),v=(b=c.value)=>{s.value=l.value[b],a.value=!1};Ve("keydown",b=>{a.value?b.key==="ArrowUp"?f():b.key==="ArrowDown"?u():b.key==="Enter"?v():b.key==="Escape"&&(a.value=!1):b.key==="Escape"&&(e.value=!1)});const S=ma(()=>{var b,T;(((T=(b=r.value).splitWord)==null?void 0:T.call(b,s.value))??Promise.resolve(s.value.split(" "))).then(y=>{i.value=y})},Math.min(Uo.searchDelay,Uo.suggestDelay));return Ce(s,S,{immediate:!0}),Re(()=>{const b=Sh(document.body);Ce(e,async T=>{var y;b.value=T,T&&(await an(),(y=h.value)==null||y.focus())}),fh(p,()=>{a.value=!1}),Pn(()=>{b.value=!1})}),()=>e.value?K("div",{class:"search-pro-modal-wrapper"},[K("div",{class:"search-pro-mask",onClick:()=>{e.value=!1,s.value=""}}),K("div",{class:"search-pro-modal"},[K("div",{class:"search-pro-box"},[K("form",[K("label",{for:"search-pro","aria-label":o.value.search},K(Ls)),K("input",{ref:h,type:"search",class:"search-pro-input",id:"search-pro",placeholder:o.value.placeholder,spellcheck:"false",autocapitalize:"off",autocomplete:"off",autocorrect:"off",name:`${t.value.title}-search`,value:s.value,"aria-controls":"search-pro-results",onKeydown:b=>{const{key:T}=b;l.value.length&&(T==="Tab"?(v(),b.preventDefault()):(T==="ArrowDown"||T==="ArrowUp"||T==="Escape")&&b.preventDefault())},onInput:({target:b})=>{s.value=b.value,a.value=!0,c.value=0}}),s.value?K("button",{type:"reset",class:"search-pro-clear-button",innerHTML:Av,onClick:()=>{s.value=""}}):null,a.value&&l.value.length?K("ul",{class:"search-pro-suggestions",ref:p},l.value.map((b,T)=>K("li",{class:["search-pro-suggestion",{active:T===c.value}],onClick:()=>{v(T)}},[K("kbd",{class:"search-pro-auto-complete",title:`Tab ${o.value.autocomplete}`},"Tab"),b]))):null]),K("button",{type:"button",class:"search-pro-close-button",onClick:()=>{e.value=!1,s.value=""}},o.value.cancel)]),K(Gv,{queries:i.value,isFocusing:!a.value,onClose:()=>{e.value=!1},onUpdateQuery:b=>{s.value=b}}),n.value?null:K("div",{class:"search-pro-hints"},[K("span",{class:"search-pro-hint"},[K("kbd",{innerHTML:jv}),o.value.select]),K("span",{class:"search-pro-hint"},[K("kbd",{innerHTML:Fv}),K("kbd",{innerHTML:Bv}),o.value.navigate]),K("span",{class:"search-pro-hint"},[K("kbd",{innerHTML:zv}),o.value.exit])])])]):null}}),Jv=Lt({enhance({app:e}){Hv(e),e.component("SearchBox",Kv)},setup(){Uv()},rootComponents:[qv]});const Yv=Object.freeze(Object.defineProperty({__proto__:null,default:Jv},Symbol.toStringTag,{value:"Module"})),Qv=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),Xv=he({__name:"Hero",setup(e,{expose:t}){t();const n={get RouteLink(){return ho}};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),Zv=e=>(os("data-v-00a77588"),e=e(),rs(),e),e_={class:"hero"},t_={class:"intro"},n_=["src"],o_=Zv(()=>L("h1",null,"Universal Logging for Modern JavaScript",-1)),r_={class:"button-container"},s_={class:"illustration"},i_={class:"image-container"},l_=["src"],a_={class:"button-container"};function c_(e,t,n,o,r,s){return G(),ne("div",e_,[L("div",t_,[L("img",{src:e.$withBase("images/logo.svg"),alt:"Adze JS "},null,8,n_),o_,L("div",r_,[Q(o.RouteLink,{class:"action-button",to:"/getting-started/introduction.md"},{default:Se(()=>[qe(" Getting Started ")]),_:1}),Q(o.RouteLink,{class:"action-button alt",to:"/reference/introduction.md"},{default:Se(()=>[qe("Reference Guide")]),_:1})])]),L("div",s_,[L("div",i_,[L("img",{src:e.$withBase("images/hero.svg"),alt:"An isometric illustration of a node server and a web browser among trees"},null,8,l_)]),L("div",a_,[Q(o.RouteLink,{class:"action-button",to:"/getting-started/introduction.md"},{default:Se(()=>[qe(" Getting Started ")]),_:1}),Q(o.RouteLink,{class:"action-button alt",to:"/reference/introduction.md"},{default:Se(()=>[qe("Reference Guide")]),_:1})])])])}const u_=we(Xv,[["render",c_],["__scopeId","data-v-00a77588"],["__file","Hero.vue"]]),f_={__name:"Home",setup(e,{expose:t}){t();const n={Hero:u_};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}},Ct=e=>(os("data-v-47650c64"),e=e(),rs(),e),d_={class:"theme-container"},h_={class:"full-width-container alt-bg-fade half-height"},p_={class:"content-container box"},m_={class:"content-block no-border centered no-padding"},g_={class:"content"},v_=Ct(()=>L("h2",null,"Getting Started is Easy",-1)),__=["src"],b_={class:"content-container"},y_={class:"content-block no-border"},w_={class:"image"},E_=["src"],S_={class:"content"},L_=Ct(()=>L("h2",null,"Universal By Nature",-1)),C_={class:"great-with"},k_=Ct(()=>L("h3",null,"Works great with",-1)),x_={style:{display:"flex",gap:"1rem"}},P_={href:"https://nextjs.org/",target:"_blank"},T_=["src"],A_={href:"https://nuxt.com/",target:"_blank"},O_=["src"],R_={href:"https://kit.svelte.dev/"},I_=["src"],M_={href:"https://nodejs.org/en"},$_=["src"],H_={href:"https://bun.sh/"},N_=["src"],D_={href:"https://deno.com/"},V_=["src"],j_={class:"content-block left"},B_={class:"image"},F_=["src"],z_={class:"content"},U_=Ct(()=>L("h2",null,"Simple, Chainable API",-1)),W_=["src"],K_={class:"full-width-container alt-bg"},G_={class:"content-container"},q_={class:"content-block no-border centered"},J_={class:"image"},Y_=["src"],Q_={class:"content"},X_=Ct(()=>L("h2",null,"Choose Your Format",-1)),Z_=Ct(()=>L("strong",{class:"hidden-small"}," This is an example of the same log printed two different ways by changing the format. ",-1)),eb=["src"],tb={class:"content-container"},nb={class:"content-block no-border"},ob={class:"image"},rb=["src"],sb={class:"content"},ib={style:{display:"flex","align-items":"center",gap:"15px"}},lb=["src"],ab={class:"content-container"},cb={class:"content-block left"},ub={class:"image"},fb=["src"],db={class:"content"},hb=Ct(()=>L("h2",null,"Easy Microfrontend Logging",-1)),pb={class:"full-width-container alt-bg"},mb={class:"content-container"},gb={class:"content-block no-border"},vb={class:"image"},_b=["src"],bb={class:"content"},yb=Ct(()=>L("h2",null,"And Much More...",-1)),wb=Ct(()=>L("br",null,null,-1)),Eb={class:"action"},Sb={clas:"content-container"},Lb={class:"footer"};function Cb(e,t,n,o,r,s){const i=Gn("Content"),l=Gn("RouteLink");return G(),ne("main",d_,[Q(o.Hero),L("div",h_,[L("div",p_,[L("section",m_,[L("div",g_,[v_,Q(i,{path:"/home/getting-started-is-easy.md"}),L("img",{src:e.$withBase("/images/info-example-browser.svg"),alt:"Example of an info log generated from the example code",style:{"max-width":"500px",height:"100%"}},null,8,__)])])])]),L("div",b_,[L("section",y_,[L("div",w_,[L("img",{src:e.$withBase("/images/hero.svg"),alt:"An isometric illustration of a node server and a web browser among trees",style:{"max-width":"100%",height:"100%"}},null,8,E_)]),L("div",S_,[L_,Q(i,{path:"/home/universal.md"}),L("div",C_,[k_,L("div",x_,[L("div",null,[L("a",P_,[L("img",{style:{height:"40px"},src:e.$withBase("images/next-logo.png"),alt:"NextJS"},null,8,T_)])]),L("div",null,[L("a",A_,[L("img",{style:{height:"40px"},src:e.$withBase("images/nuxt-logo.png"),alt:"NuxtJS"},null,8,O_)])]),L("div",null,[L("a",R_,[L("img",{style:{height:"40px"},src:e.$withBase("images/sveltekit-logo.png"),alt:"SvelteKit"},null,8,I_)])]),L("div",null,[L("a",M_,[L("img",{style:{height:"40px","max-width":"100%"},src:e.$withBase("images/node-logo.svg"),alt:"NodeJS"},null,8,$_)])]),L("div",null,[L("a",H_,[L("img",{style:{height:"40px","max-width":"100%"},src:e.$withBase("images/bun-logo.svg"),alt:"BunJS"},null,8,N_)])]),L("div",null,[L("a",D_,[L("img",{style:{height:"40px","max-width":"100%"},src:e.$withBase("images/deno-logo.svg"),alt:"DenoJS"},null,8,V_)])])])])])]),L("section",j_,[L("div",B_,[L("img",{src:e.$withBase("images/chainsaw.svg"),style:{width:"100%","max-height":"200px"}},null,8,F_)]),L("div",z_,[U_,Q(i,{path:"/home/chainable-api.md"}),L("img",{src:e.$withBase("/images/alert-example-browser.svg"),alt:"Example of an alert log generated from the example code",style:{"max-width":"800px",height:"100%"},class:"hidden-small"},null,8,W_)])])]),L("div",K_,[L("div",G_,[L("section",q_,[L("div",J_,[L("img",{src:e.$withBase("images/lumber-scene-1.svg"),style:{"max-width":"100%",height:"auto"}},null,8,Y_)]),L("div",Q_,[X_,Q(i,{path:"/home/configurable.md"}),Z_,L("img",{class:"hidden-small",src:e.$withBase("images/humanAndMachineFormat-example-browser.png"),style:{"max-width":"100%",height:"auto"}},null,8,eb)])])])]),L("div",tb,[L("section",nb,[L("div",ob,[L("img",{src:e.$withBase("images/truck-loaded.svg"),style:{"max-height":"260px"}},null,8,rb)]),L("div",sb,[L("h2",ib,[qe(" First Class TypeScript Support "),L("img",{src:e.$withBase("images/ts-icon.svg"),style:{"max-height":"40px"}},null,8,lb)]),Q(i,{path:"/home/typescript-first.md"})])])]),L("div",ab,[L("section",cb,[L("div",ub,[L("img",{src:e.$withBase("images/woodmill.svg"),style:{"max-height":"260px"}},null,8,fb)]),L("div",db,[hb,Q(i,{path:"/home/global-store.md"})])])]),L("div",pb,[L("div",mb,[L("section",gb,[L("div",vb,[L("img",{src:e.$withBase("images/shaped-wood.svg"),style:{"max-height":"150px"}},null,8,_b)]),L("div",bb,[yb,Q(i,{path:"/home/much-more.md"}),wb,L("p",Eb,[Q(l,{class:"action-button",to:"/getting-started/introduction.md"},{default:Se(()=>[qe(" Get Started ")]),_:1})])])])])]),L("div",Sb,[L("footer",Lb,[Q(i,{path:"/home/footer.md"})])])])}const kb=we(f_,[["render",Cb],["__scopeId","data-v-47650c64"],["__file","Home.vue"]]),xb=Lt({layouts:{Home:kb}}),Pb=Object.freeze(Object.defineProperty({__proto__:null,default:xb},Symbol.toStringTag,{value:"Module"})),Po=[Rh,Bh,Gh,ip,fp,vp,mv,gv,Yv,Qv,Pb].map(e=>e.default).filter(Boolean),Tb=JSON.parse('{"base":"/","lang":"en-US","title":"Universal Logging for Typescript/JavaScript","description":"A universal, modern, and extendable logging library for JavaScript and TypeScript.","head":[["meta",{"property":"og:title","content":"Adze - Universal JavaScript Logging"}],["meta",{"property":"og:description","content":"A universal logging library that makes logging simple for SSR or new runtimes like Bun and Deno."}],["meta",{"property":"og:image","content":"https://adzejs.com/assets/demo-DkYm-IJC.jpg"}],["meta",{"property":"og:url","content":"https://www.adzejs.com/"}],["meta",{"property":"twitter:title","content":"Adze - Better JavaScript Logging"}],["meta",{"property":"twitter:description","content":"A TypeScript enabled library with a beautiful API that simplifies JavaScript logging."}],["meta",{"property":"twitter:image","content":"https://adzejs.com/assets/demo-DkYm-IJC.jpg"}],["meta",{"property":"twitter:card","content":"summary_large_image"}],["script",{"async":true,"defer":true,"data-domain":"adzejs.com","src":"https://plausible.io/js/script.js"}],["link",{"rel":"preconnect","href":"https://fonts.gstatic.com"}],["link",{"href":"https://fonts.googleapis.com/css2?family=Share&display=swap","rel":"stylesheet"}],["meta",{"name":"theme-color","content":"#3eaf7c"}],["meta",{"name":"apple-mobile-web-app-capable","content":"yes"}],["link",{"rel":"icon","href":"/images/icon.svg"}],["meta",{"name":"apple-mobile-web-app-status-bar-style","content":"black"}]],"locales":{}}');var Nn=jt(Tb),Ab=md,Ob=()=>{const e=Bd({history:Ab(Xl("/")),routes:[{name:"vuepress-route",path:"/:catchAll(.*)",components:{}}],scrollBehavior:(t,n,o)=>o||(t.hash?{el:t.hash}:{top:0})});return e.beforeResolve(async(t,n)=>{if(t.path!==n.path||n===bt){const o=Xn(t.fullPath);if(o.path!==t.fullPath)return o.path;const r=await o.loader();t.meta={...o.meta,_pageChunk:r}}else t.path===n.path&&(t.meta=n.meta)}),e},Rb=e=>{e.component("ClientOnly",ps),e.component("Content",ms),e.component("RouteLink",ho)},Ib=(e,t,n)=>{const o=I(()=>t.currentRoute.value.path),r=pl((b,T)=>({get(){return b(),t.currentRoute.value.meta._pageChunk},set(y){t.currentRoute.value.meta._pageChunk=y,T()}})),s=I(()=>Qt.resolveLayouts(n)),i=I(()=>Qt.resolveRouteLocale(Nn.value.locales,o.value)),l=I(()=>Qt.resolveSiteLocaleData(Nn.value,i.value)),a=I(()=>r.value.comp),c=I(()=>r.value.data),f=I(()=>c.value.frontmatter),u=I(()=>Qt.resolvePageHeadTitle(c.value,l.value)),h=I(()=>Qt.resolvePageHead(u.value,f.value,l.value)),p=I(()=>Qt.resolvePageLang(c.value,l.value)),v=I(()=>Qt.resolvePageLayout(c.value,s.value)),S={layouts:s,pageData:c,pageComponent:a,pageFrontmatter:f,pageHead:h,pageHeadTitle:u,pageLang:p,pageLayout:v,redirects:Br,routeLocale:i,routePath:o,routes:En,siteData:Nn,siteLocaleData:l};return e.provide(hs,S),Object.defineProperties(e.config.globalProperties,{$frontmatter:{get:()=>f.value},$head:{get:()=>h.value},$headTitle:{get:()=>u.value},$lang:{get:()=>p.value},$page:{get:()=>c.value},$routeLocale:{get:()=>i.value},$site:{get:()=>Nn.value},$siteLocale:{get:()=>l.value},$withBase:{get:()=>gs}}),S},Mb=()=>{const e=Ud(),t=Wd();let n=[];const o=()=>{e.value.forEach(i=>{const l=$b(i);l&&n.push(l)})},r=()=>{const i=[];return e.value.forEach(l=>{const a=Hb(l);a&&i.push(a)}),i},s=()=>{document.documentElement.lang=t.value;const i=r();n.forEach((l,a)=>{const c=i.findIndex(f=>l.isEqualNode(f));c===-1?(l.remove(),delete n[a]):i.splice(c,1)}),i.forEach(l=>document.head.appendChild(l)),n=[...n.filter(l=>!!l),...i]};Dt(qd,s),Re(()=>{o(),Ce(e,s,{immediate:!1})})},$b=([e,t,n=""])=>{const o=Object.entries(t).map(([l,a])=>lt(a)?`[${l}=${JSON.stringify(a)}]`:a===!0?`[${l}]`:"").join(""),r=`head > ${e}${o}`;return Array.from(document.querySelectorAll(r)).find(l=>l.innerText===n)||null},Hb=([e,t,n])=>{if(!lt(e))return null;const o=document.createElement(e);return us(t)&&Object.entries(t).forEach(([r,s])=>{lt(s)?o.setAttribute(r,s):s===!0&&o.setAttribute(r,"")}),lt(n)&&o.appendChild(document.createTextNode(n)),o},Nb=wf,Db=async()=>{var n;const e=Nb({name:"Vuepress",setup(){var s;Mb();for(const i of Po)(s=i.setup)==null||s.call(i);const o=Po.flatMap(({rootComponents:i=[]})=>i.map(l=>K(l))),r=Kd();return()=>[K(r.value),o]}}),t=Ob();Rb(e),Ib(e,t,Po);for(const o of Po)await((n=o.enhance)==null?void 0:n.call(o,{app:e,router:t,siteData:Nn}));return e.use(t),{app:e,router:t}};Db().then(({app:e,router:t})=>{t.isReady().then(()=>{e.mount("#app")})});export{Re as A,Mv as B,Ba as C,Pn as D,jb as E,us as F,Pv as G,Av as H,ma as I,Uo as J,lt as K,Cs as P,ho as R,we as _,Mu as a,L as b,ne as c,Db as createVueApp,qe as d,Q as e,he as f,cn as g,Gt as h,Ss as i,oo as j,ie as k,I as l,Ve as m,Ce as n,G as o,K as p,Da as q,Gn as r,Tv as s,gl as t,Vb as u,kv as v,Se as w,xv as x,un as y,jt as z}; diff --git a/assets/capture-data.html-Cbg6sLuc.js b/assets/capture-data.html-DgfSfL3S.js similarity index 98% rename from assets/capture-data.html-Cbg6sLuc.js rename to assets/capture-data.html-DgfSfL3S.js index bb8cff2..01f04df 100644 --- a/assets/capture-data.html-Cbg6sLuc.js +++ b/assets/capture-data.html-DgfSfL3S.js @@ -1,4 +1,4 @@ -import{_ as l,r as p,c as i,b as s,d as n,e,w as t,a as o,o as c}from"./app-Cqk3MxnN.js";const r={},d=s("h1",{id:"capturing-log-data",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#capturing-log-data"},[s("span",null,"Capturing Log Data")])],-1),u=s("p",null,"Now that we have setup our logger and configured it to our liking, we may also want to capture our log data and transport it to another source for tracking and monitoring our application.",-1),m=s("p",null,[s("strong",null,"Transports"),n(" are a term for moving our log data from our application to anothe source. Adze provides two ways for capturing the log data and then acting upon it to either send over the network, write to a file, or insert into a database.")],-1),k=s("strong",null,"middleware",-1),h=s("strong",null,"log listeners",-1),g=s("h2",{id:"middleware",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#middleware"},[s("span",null,"Middleware")])],-1),v=s("strong",null,"Middleware class",-1),f=s("p",null,"When the lifecycle hooks are called, they always provide the log instance which can be accessed to get its data, configuration, and formatted message, as well as any other relevant information to that hook.",-1),w=s("p",null,"The hook can then process the data and transport it to a destination, such as a file, API, or database.",-1),b=o(`

As an example, let's take a look at adding middleware to a logger that transports data to a local file and rotates the file on a specified interval. We'll use the @adze/transport-file middleware package to handle this.

import adze, { setup } from 'adze';
+import{_ as l,c as p,b as s,d as n,e,w as t,a as o,r as i,o as c}from"./app-_2IEvvvI.js";const r={},d=s("h1",{id:"capturing-log-data",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#capturing-log-data"},[s("span",null,"Capturing Log Data")])],-1),u=s("p",null,"Now that we have setup our logger and configured it to our liking, we may also want to capture our log data and transport it to another source for tracking and monitoring our application.",-1),m=s("p",null,[s("strong",null,"Transports"),n(" are a term for moving our log data from our application to anothe source. Adze provides two ways for capturing the log data and then acting upon it to either send over the network, write to a file, or insert into a database.")],-1),k=s("strong",null,"middleware",-1),h=s("strong",null,"log listeners",-1),g=s("h2",{id:"middleware",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#middleware"},[s("span",null,"Middleware")])],-1),v=s("strong",null,"Middleware class",-1),f=s("p",null,"When the lifecycle hooks are called, they always provide the log instance which can be accessed to get its data, configuration, and formatted message, as well as any other relevant information to that hook.",-1),w=s("p",null,"The hook can then process the data and transport it to a destination, such as a file, API, or database.",-1),b=o(`

As an example, let's take a look at adding middleware to a logger that transports data to a local file and rotates the file on a specified interval. We'll use the @adze/transport-file middleware package to handle this.

import adze, { setup } from 'adze';
 import AdzeFileTransport from '@adze/transport-file';
 
 // First, we will create an instance of our file transport. We'll rotate our log file every 12 hours.
@@ -40,4 +40,4 @@ import{_ as l,r as p,c as i,b as s,d as n,e,w as t,a as o,o as c}from"./app-Cqk3
 
 // elsewhere in your application...
 store.removeListener(allListenerId);
-
`,2);function _(L,z){const a=p("RouteLink");return c(),i("div",null,[d,u,m,s("p",null,[n("The two supported methods are "),e(a,{to:"/reference/middleware.html"},{default:t(()=>[k]),_:1}),n(" and "),e(a,{to:"/reference/global-store.html#addlistener"},{default:t(()=>[h]),_:1}),n(".")]),g,s("p",null,[n("Middleware can be created by extending the base "),v,n(" that is provided by Adze. The Middleware class allows you to hook into various points in the "),e(a,{to:"/reference/introduction.html#lifecycle"},{default:t(()=>[n("Adze log lifecycle")]),_:1}),n(".")]),f,w,s("p",null,[n("For more information about creating middleware, please visit the "),e(a,{to:"/reference/middleware.html"},{default:t(()=>[n("middleware")]),_:1}),n(" page in the "),e(a,{to:"/reference/introduction.html"},{default:t(()=>[n("Reference Manual")]),_:1}),n(".")]),b,s("p",null,[n("In the above example we have created two log listeners. One targets all logs and the other targets only alert logs. You can also target logs with a number array that represents specific log levels or a string array of log level names. For more information on targeting levels, refer to the "),e(a,{to:"/reference/introduction.html"},{default:t(()=>[n("Reference Manual")]),_:1}),n(" on "),e(a,{to:"/reference/configuration.html#levelselector-type"},{default:t(()=>[n("LevelSelector's")]),_:1}),n(".")]),y])}const T=l(r,[["render",_],["__file","capture-data.html.vue"]]),A=JSON.parse('{"path":"/getting-started/capture-data.html","title":"Capturing Log Data","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Middleware","slug":"middleware","link":"#middleware","children":[]},{"level":2,"title":"Log Listeners","slug":"log-listeners","link":"#log-listeners","children":[]}],"git":{"updatedTime":1726150288000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1},{"name":"Andrew Stacy","email":"astacy@stratacache.com","commits":1}]},"filePathRelative":"getting-started/capture-data.md","excerpt":"\\n

Now that we have setup our logger and configured it to our liking, we may also want to capture our\\nlog data and transport it to another source for tracking and monitoring our application.

\\n

Transports are a term for moving our log data from our application to anothe source. Adze\\nprovides two ways for capturing the log data and then acting upon it to either send over the\\nnetwork, write to a file, or insert into a database.

"}');export{T as comp,A as data}; +
`,2);function _(L,z){const a=i("RouteLink");return c(),p("div",null,[d,u,m,s("p",null,[n("The two supported methods are "),e(a,{to:"/reference/middleware.html"},{default:t(()=>[k]),_:1}),n(" and "),e(a,{to:"/reference/global-store.html#addlistener"},{default:t(()=>[h]),_:1}),n(".")]),g,s("p",null,[n("Middleware can be created by extending the base "),v,n(" that is provided by Adze. The Middleware class allows you to hook into various points in the "),e(a,{to:"/reference/introduction.html#lifecycle"},{default:t(()=>[n("Adze log lifecycle")]),_:1}),n(".")]),f,w,s("p",null,[n("For more information about creating middleware, please visit the "),e(a,{to:"/reference/middleware.html"},{default:t(()=>[n("middleware")]),_:1}),n(" page in the "),e(a,{to:"/reference/introduction.html"},{default:t(()=>[n("Reference Manual")]),_:1}),n(".")]),b,s("p",null,[n("In the above example we have created two log listeners. One targets all logs and the other targets only alert logs. You can also target logs with a number array that represents specific log levels or a string array of log level names. For more information on targeting levels, refer to the "),e(a,{to:"/reference/introduction.html"},{default:t(()=>[n("Reference Manual")]),_:1}),n(" on "),e(a,{to:"/reference/configuration.html#levelselector-type"},{default:t(()=>[n("LevelSelector's")]),_:1}),n(".")]),y])}const T=l(r,[["render",_],["__file","capture-data.html.vue"]]),A=JSON.parse('{"path":"/getting-started/capture-data.html","title":"Capturing Log Data","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Middleware","slug":"middleware","link":"#middleware","children":[]},{"level":2,"title":"Log Listeners","slug":"log-listeners","link":"#log-listeners","children":[]}],"git":{"updatedTime":1726150288000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1},{"name":"Andrew Stacy","email":"astacy@stratacache.com","commits":1}]},"filePathRelative":"getting-started/capture-data.md","excerpt":"\\n

Now that we have setup our logger and configured it to our liking, we may also want to capture our\\nlog data and transport it to another source for tracking and monitoring our application.

\\n

Transports are a term for moving our log data from our application to anothe source. Adze\\nprovides two ways for capturing the log data and then acting upon it to either send over the\\nnetwork, write to a file, or insert into a database.

"}');export{T as comp,A as data}; diff --git a/assets/chainable-api.html-CWpVcdvw.js b/assets/chainable-api.html-DQ6A1bLV.js similarity index 80% rename from assets/chainable-api.html-CWpVcdvw.js rename to assets/chainable-api.html-DQ6A1bLV.js index 899a94e..7e73d13 100644 --- a/assets/chainable-api.html-CWpVcdvw.js +++ b/assets/chainable-api.html-DQ6A1bLV.js @@ -1,2 +1,2 @@ -import{_ as n,r as s,c as i,b as a,d as e,e as o,w as c,a as l,o as r}from"./app-Cqk3MxnN.js";const d={},p=a("code",null,"timestamp",-1),m=a("code",null,"withEmoji",-1),h=l(`
adze.withEmoji.timestamp.alert('Oh no! Something terrible happened!');
-
`,1);function u(f,g){const t=s("RouteLink");return r(),i("div",null,[a("p",null,[e("Adze provides you with a means of writing logs that feels very natural. Writing highly-configured logs in place is a breeze with the chainable API. Want to add timestamps and emoji's? Just add the "),p,e(" and "),m,o(t,{to:"/reference/modifiers.html#timestamp"},{default:c(()=>[e("modifiers")]),_:1}),e(".")]),h])}const b=n(d,[["render",u],["__file","chainable-api.html.vue"]]),v=JSON.parse(`{"path":"/home/chainable-api.html","title":"","lang":"en-US","frontmatter":{},"headers":[],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"home/chainable-api.md","excerpt":"

Adze provides you with a means of writing logs that feels very natural. Writing highly-configured\\nlogs in place is a breeze with the chainable API. Want to add timestamps and emoji's? Just add the timestamp and withEmoji\\nmodifiers.

"}`);export{b as comp,v as data}; +import{_ as n,c as s,b as a,d as e,e as i,w as o,a as c,r as l,o as r}from"./app-_2IEvvvI.js";const d={},p=a("code",null,"timestamp",-1),m=a("code",null,"withEmoji",-1),h=c(`
adze.withEmoji.timestamp.alert('Oh no! Something terrible happened!');
+
`,1);function u(f,g){const t=l("RouteLink");return r(),s("div",null,[a("p",null,[e("Adze provides you with a means of writing logs that feels very natural. Writing highly-configured logs in place is a breeze with the chainable API. Want to add timestamps and emoji's? Just add the "),p,e(" and "),m,i(t,{to:"/reference/modifiers.html#timestamp"},{default:o(()=>[e("modifiers")]),_:1}),e(".")]),h])}const b=n(d,[["render",u],["__file","chainable-api.html.vue"]]),v=JSON.parse(`{"path":"/home/chainable-api.html","title":"","lang":"en-US","frontmatter":{},"headers":[],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"home/chainable-api.md","excerpt":"

Adze provides you with a means of writing logs that feels very natural. Writing highly-configured\\nlogs in place is a breeze with the chainable API. Want to add timestamps and emoji's? Just add the timestamp and withEmoji\\nmodifiers.

"}`);export{b as comp,v as data}; diff --git a/assets/concepts.html-CIEMVjdE.js b/assets/concepts.html-BemSlxQu.js similarity index 68% rename from assets/concepts.html-CIEMVjdE.js rename to assets/concepts.html-BemSlxQu.js index a5921a1..c9d67e2 100644 --- a/assets/concepts.html-CIEMVjdE.js +++ b/assets/concepts.html-BemSlxQu.js @@ -1,4 +1,4 @@ -import{_ as i}from"./lifecycle-agZhburq.js";import{_ as r,r as l,c,b as t,e as n,w as s,d as e,a as o,o as d}from"./app-Cqk3MxnN.js";const h="/assets/modifier-example-CS90LMvz.png",p={},m=o('

Concepts

Adze as a library has a few core goals it attempts to meet.

The first goal is to provide a logging library that just works in both the server and browser environments.

The second goal is to provide a simple Typescript compatible API that wraps, extends, or replicates all of the functionality of the standard Console API. The API is nearly identical to the standard console API, but is more feature rich and includes chaining methods for configuring your logs as you go.

Lastly, most other libraries do too much. Adze seeks to separate concerns when it comes to generating logs and transporting them to another source. Other libraries tend to try to solve both problems which leads to library bloat. Adze provides a middleware API and log listeners for handling log data transport separately.

Lifecycle

Let's take a look under the hood to see how the Adze architecture enables its API and see when the various middleware hooks are called.

Lifecycle Diagram of Adze Logs

The Log Chain

As you can see in the diagram, a log chain is made up of three parts:

',10),u=t("ul",null,[t("li",null,"This is where all logs begin, often by calling its static methods to start a chain.")],-1),g=t("ul",null,[t("li",null,"These log methods modify the instance and then return it.")],-1),f=t("ul",null,[t("li",null,"These methods end the chain and generate the log.")],-1),_=o(`

Example

//[Log Class].[Modifier].[Modifier].[Terminator](...arguments)
+import{_ as i}from"./lifecycle-agZhburq.js";import{_ as r,c as l,b as t,e as n,w as s,d as e,a as o,r as c,o as d}from"./app-_2IEvvvI.js";const h="/assets/modifier-example-CS90LMvz.png",p={},m=o('

Concepts

Adze as a library has a few core goals it attempts to meet.

The first goal is to provide a logging library that just works in both the server and browser environments.

The second goal is to provide a simple Typescript compatible API that wraps, extends, or replicates all of the functionality of the standard Console API. The API is nearly identical to the standard console API, but is more feature rich and includes chaining methods for configuring your logs as you go.

Lastly, most other libraries do too much. Adze seeks to separate concerns when it comes to generating logs and transporting them to another source. Other libraries tend to try to solve both problems which leads to library bloat. Adze provides a middleware API and log listeners for handling log data transport separately.

Lifecycle

Let's take a look under the hood to see how the Adze architecture enables its API and see when the various middleware hooks are called.

Lifecycle Diagram of Adze Logs

The Log Chain

As you can see in the diagram, a log chain is made up of three parts:

',10),u=t("ul",null,[t("li",null,"This is where all logs begin, often by calling its static methods to start a chain.")],-1),g=t("ul",null,[t("li",null,"These log methods modify the instance and then return it.")],-1),f=t("ul",null,[t("li",null,"These methods end the chain and generate the log.")],-1),_=o(`

Example

//[Log Class].[Modifier].[Modifier].[Terminator](...arguments)
 adze.timestamp.timeNow.log('Logging the current time since pageload.');
 

Log Class

Every modifier and terminator method that can be called has a static implementation.

By calling any of the methods statically, it will also generate a log instance. If a modifier was called, the log instance will be returned and you can continue your chain. To finalize and print a log, simply call a terminator method.

Modifiers

`,6),y=t("strong",null,"modifiers",-1),b=t("code",null,"timeNow",-1),v=o(`
adze.timeNow.log('This is the time from pageload.');
-

And it would output like this:

Adze log with time now modifier preview


',4),k=t("h3",{id:"terminator",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#terminator"},[t("span",null,"Terminator")])],-1),w=t("code",null,"log()",-1);function T(x,A){const a=l("RouteLink");return d(),c("div",null,[m,t("ul",null,[t("li",null,[n(a,{to:"/reference/log-class.html"},{default:s(()=>[e("Log Class")]),_:1}),u]),t("li",null,[n(a,{to:"/reference/modifiers.html"},{default:s(()=>[e("Modifiers")]),_:1}),g]),t("li",null,[n(a,{to:"/reference/terminators.html"},{default:s(()=>[e("Terminator")]),_:1}),f])]),_,t("p",null,[e("Once you have a Log instance you can immediately "),n(a,{to:"/reference/terminators.html"},{default:s(()=>[e("terminate")]),_:1}),e(" it, or you can call certain methods that this library calls "),y,e(". Modifiers are methods on a Log instance that changes its behavior. For example, if you wanted to add a performance timestamp to your log you could use the "),b,e(" modifier.")]),v,t("p",null,[e("For documentation of all of the supported modifiers, please read the "),n(a,{to:"/reference/modifiers.html"},{default:s(()=>[e("Modifiers")]),_:1}),e(" page of the "),n(a,{to:"/reference/introduction.html"},{default:s(()=>[e("Reference Manual")]),_:1}),e(".")]),k,t("p",null,[e("In our "),n(a,{to:"/reference/modifiers.html"},{default:s(()=>[e("Modifiers")]),_:1}),e(" example code above, you can see we ended our chain with "),n(a,{to:"/reference/terminators.html#log"},{default:s(()=>[w]),_:1}),e(". The log method is one of the nine "),n(a,{to:"/reference/terminators.html"},{default:s(()=>[e("default log terminators")]),_:1}),e(". The library also comes with other special terminators like "),n(a,{to:"/reference/terminators.html#custom"},{default:s(()=>[e("custom")]),_:1}),e(". A log method is considered a terminator when it ends your log chain.")]),t("p",null,[e("For more information about all of the supported terminators, please read the "),n(a,{to:"/reference/terminators.html"},{default:s(()=>[e("Terminators")]),_:1}),e(" page of the "),n(a,{to:"/reference/introduction.html"},{default:s(()=>[e("Reference Manual")]),_:1}),e(".")])])}const z=r(p,[["render",T],["__file","concepts.html.vue"]]),C=JSON.parse('{"path":"/getting-started/concepts.html","title":"Concepts","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Lifecycle","slug":"lifecycle","link":"#lifecycle","children":[]},{"level":2,"title":"The Log Chain","slug":"the-log-chain","link":"#the-log-chain","children":[{"level":3,"title":"Log Class","slug":"log-class","link":"#log-class","children":[]},{"level":3,"title":"Modifiers","slug":"modifiers","link":"#modifiers","children":[]},{"level":3,"title":"Terminator","slug":"terminator","link":"#terminator","children":[]}]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"getting-started/concepts.md","excerpt":"\\n

Adze as a library has a few core goals it attempts to meet.

\\n

The first goal is to provide a logging library that just works in both the server and browser\\nenvironments.

\\n

The second goal is to provide a simple Typescript compatible API that wraps, extends, or replicates\\nall of the functionality of the standard Console API.\\nThe API is nearly identical to the standard console API, but is more feature rich and includes\\nchaining methods for configuring your logs as you go.

"}');export{z as comp,C as data}; +

And it would output like this:

Adze log with time now modifier preview


',4),k=t("h3",{id:"terminator",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#terminator"},[t("span",null,"Terminator")])],-1),w=t("code",null,"log()",-1);function T(x,A){const a=c("RouteLink");return d(),l("div",null,[m,t("ul",null,[t("li",null,[n(a,{to:"/reference/log-class.html"},{default:s(()=>[e("Log Class")]),_:1}),u]),t("li",null,[n(a,{to:"/reference/modifiers.html"},{default:s(()=>[e("Modifiers")]),_:1}),g]),t("li",null,[n(a,{to:"/reference/terminators.html"},{default:s(()=>[e("Terminator")]),_:1}),f])]),_,t("p",null,[e("Once you have a Log instance you can immediately "),n(a,{to:"/reference/terminators.html"},{default:s(()=>[e("terminate")]),_:1}),e(" it, or you can call certain methods that this library calls "),y,e(". Modifiers are methods on a Log instance that changes its behavior. For example, if you wanted to add a performance timestamp to your log you could use the "),b,e(" modifier.")]),v,t("p",null,[e("For documentation of all of the supported modifiers, please read the "),n(a,{to:"/reference/modifiers.html"},{default:s(()=>[e("Modifiers")]),_:1}),e(" page of the "),n(a,{to:"/reference/introduction.html"},{default:s(()=>[e("Reference Manual")]),_:1}),e(".")]),k,t("p",null,[e("In our "),n(a,{to:"/reference/modifiers.html"},{default:s(()=>[e("Modifiers")]),_:1}),e(" example code above, you can see we ended our chain with "),n(a,{to:"/reference/terminators.html#log"},{default:s(()=>[w]),_:1}),e(". The log method is one of the nine "),n(a,{to:"/reference/terminators.html"},{default:s(()=>[e("default log terminators")]),_:1}),e(". The library also comes with other special terminators like "),n(a,{to:"/reference/terminators.html#custom"},{default:s(()=>[e("custom")]),_:1}),e(". A log method is considered a terminator when it ends your log chain.")]),t("p",null,[e("For more information about all of the supported terminators, please read the "),n(a,{to:"/reference/terminators.html"},{default:s(()=>[e("Terminators")]),_:1}),e(" page of the "),n(a,{to:"/reference/introduction.html"},{default:s(()=>[e("Reference Manual")]),_:1}),e(".")])])}const z=r(p,[["render",T],["__file","concepts.html.vue"]]),C=JSON.parse('{"path":"/getting-started/concepts.html","title":"Concepts","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Lifecycle","slug":"lifecycle","link":"#lifecycle","children":[]},{"level":2,"title":"The Log Chain","slug":"the-log-chain","link":"#the-log-chain","children":[{"level":3,"title":"Log Class","slug":"log-class","link":"#log-class","children":[]},{"level":3,"title":"Modifiers","slug":"modifiers","link":"#modifiers","children":[]},{"level":3,"title":"Terminator","slug":"terminator","link":"#terminator","children":[]}]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"getting-started/concepts.md","excerpt":"\\n

Adze as a library has a few core goals it attempts to meet.

\\n

The first goal is to provide a logging library that just works in both the server and browser\\nenvironments.

\\n

The second goal is to provide a simple Typescript compatible API that wraps, extends, or replicates\\nall of the functionality of the standard Console API.\\nThe API is nearly identical to the standard console API, but is more feature rich and includes\\nchaining methods for configuring your logs as you go.

"}');export{z as comp,C as data}; diff --git a/assets/configurable.html-BCxonqLM.js b/assets/configurable.html-DyZv6ipe.js similarity index 88% rename from assets/configurable.html-BCxonqLM.js rename to assets/configurable.html-DyZv6ipe.js index 9442511..e7d4267 100644 --- a/assets/configurable.html-BCxonqLM.js +++ b/assets/configurable.html-DyZv6ipe.js @@ -1 +1 @@ -import{_ as n,r as s,c as m,b as t,d as e,e as o,w as r,o as l}from"./app-Cqk3MxnN.js";const c={},i=t("strong",null,"Adze supports multiple formatting options",-1),f=t("p",null,[e("Adze JSON logs are also compatible with the "),t("a",{href:"https://github.com/trentm/node-bunyan?tab=readme-ov-file#cli-usage",target:"_blank",rel:"noopener noreferrer"},"Bunyan CLI"),e(" so you can take advantage of its formatting and filtering features!")],-1);function u(h,d){const a=s("RouteLink");return l(),m("div",null,[t("p",null,[i,e(" out-of-the-box. Use the "),o(a,{to:"/reference/formatters.html#pretty-formatter"},{default:r(()=>[e("pretty")]),_:1}),e(", human-readable default format, or generate machine-readable logs using the "),o(a,{to:"/reference/formatters.html#json-formatter"},{default:r(()=>[e("JSON format")]),_:1}),e("; or even mix and match both! How you use Adze is up to you.")]),f])}const g=n(c,[["render",u],["__file","configurable.html.vue"]]),_=JSON.parse('{"path":"/home/configurable.html","title":"","lang":"en-US","frontmatter":{},"headers":[],"git":{"updatedTime":1726015139000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1},{"name":"Andrew Stacy","email":"astacy@stratacache.com","commits":1}]},"filePathRelative":"home/configurable.md","excerpt":"

Adze supports multiple formatting options out-of-the-box. Use the pretty,\\nhuman-readable default format, or generate machine-readable logs using the JSON format;\\nor even mix and match both! How you use Adze is up to you.

"}');export{g as comp,_ as data}; +import{_ as n,c as s,b as t,d as e,e as o,w as r,r as m,o as l}from"./app-_2IEvvvI.js";const c={},i=t("strong",null,"Adze supports multiple formatting options",-1),f=t("p",null,[e("Adze JSON logs are also compatible with the "),t("a",{href:"https://github.com/trentm/node-bunyan?tab=readme-ov-file#cli-usage",target:"_blank",rel:"noopener noreferrer"},"Bunyan CLI"),e(" so you can take advantage of its formatting and filtering features!")],-1);function u(h,d){const a=m("RouteLink");return l(),s("div",null,[t("p",null,[i,e(" out-of-the-box. Use the "),o(a,{to:"/reference/formatters.html#pretty-formatter"},{default:r(()=>[e("pretty")]),_:1}),e(", human-readable default format, or generate machine-readable logs using the "),o(a,{to:"/reference/formatters.html#json-formatter"},{default:r(()=>[e("JSON format")]),_:1}),e("; or even mix and match both! How you use Adze is up to you.")]),f])}const g=n(c,[["render",u],["__file","configurable.html.vue"]]),_=JSON.parse('{"path":"/home/configurable.html","title":"","lang":"en-US","frontmatter":{},"headers":[],"git":{"updatedTime":1726015139000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1},{"name":"Andrew Stacy","email":"astacy@stratacache.com","commits":1}]},"filePathRelative":"home/configurable.md","excerpt":"

Adze supports multiple formatting options out-of-the-box. Use the pretty,\\nhuman-readable default format, or generate machine-readable logs using the JSON format;\\nor even mix and match both! How you use Adze is up to you.

"}');export{g as comp,_ as data}; diff --git a/assets/configuration.html-DyxslJu-.js b/assets/configuration.html-BSj8CQu9.js similarity index 99% rename from assets/configuration.html-DyxslJu-.js rename to assets/configuration.html-BSj8CQu9.js index 9cda398..ea28d06 100644 --- a/assets/configuration.html-DyxslJu-.js +++ b/assets/configuration.html-BSj8CQu9.js @@ -1,4 +1,4 @@ -import{_ as o,r as p,c as i,b as n,d as s,e,w as t,a as l,o as c}from"./app-Cqk3MxnN.js";const r="/assets/customLevel-example-browser-Bov36Xwv.png",u="/assets/customLevel-example-node-BQeAmjT8.png",d="/assets/defaultOverride-example-browser-DwUvbbS-.png",k="/assets/defaultOverride-example-node-BkrrUYww.png",m="/assets/customizedAlert-example-browser-MSDcnHw7.png",h="/assets/customizedAlert-example-node-CYWnj0ad.png",v="/assets/filter-example-browser-DITyr0W4.png",g="/assets/filter-example-node-COmTqicu.png",f="/assets/timestampFormatter-example-browser-kFKow3xL.png",b="/assets/timestampFormatter-example-node-qcLDUOFJ.png",y={},w=n("h1",{id:"configuration",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#configuration"},[n("span",null,"Configuration")])],-1),x=n("h2",{id:"user-configuration",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#user-configuration"},[n("span",null,"User Configuration")])],-1),_=l(`

UserConfiguration Interface

interface UserConfiguration {
+import{_ as o,c as p,b as n,d as s,e,w as t,a as l,r as i,o as c}from"./app-_2IEvvvI.js";const r="/assets/customLevel-example-browser-Bov36Xwv.png",u="/assets/customLevel-example-node-BQeAmjT8.png",d="/assets/defaultOverride-example-browser-DwUvbbS-.png",k="/assets/defaultOverride-example-node-BkrrUYww.png",m="/assets/customizedAlert-example-browser-MSDcnHw7.png",h="/assets/customizedAlert-example-node-CYWnj0ad.png",v="/assets/filter-example-browser-DITyr0W4.png",g="/assets/filter-example-node-COmTqicu.png",f="/assets/timestampFormatter-example-browser-kFKow3xL.png",b="/assets/timestampFormatter-example-node-qcLDUOFJ.png",y={},w=n("h1",{id:"configuration",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#configuration"},[n("span",null,"Configuration")])],-1),x=n("h2",{id:"user-configuration",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#user-configuration"},[n("span",null,"User Configuration")])],-1),_=l(`

UserConfiguration Interface

interface UserConfiguration {
   activeLevel?: Level | number;
   cache?: boolean;
   cacheSize?: number;
@@ -154,4 +154,4 @@ import{_ as o,r as p,c as i,b as n,d as s,e,w as t,a as l,o as c}from"./app-Cqk3
 store.addListener([0, '-', 3], (log: Log) => {
   /* Do something with the alert, error, warn, and info logs */
 });
-
`,5);function tn(ln,on){const a=p("RouteLink");return c(),i("div",null,[w,n("p",null,[s("Adze is a completely configurable library by design that comes with sensible defaults. There are two primary configurations to understand; the log configuration and the "),e(a,{to:"/reference/global-store.html"},{default:t(()=>[s("Global Store")]),_:1}),s(" configuration. In this section we'll take a look at each configuration and explain each property in detail.")]),x,n("p",null,[s("This configuration is generated when you use "),e(a,{to:"/reference/modifiers.html"},{default:t(()=>[s("modifiers")]),_:1}),s(" or when you pass in a configuration object with the "),e(a,{to:"/reference/terminators.html#seal"},{default:t(()=>[s("seal")]),_:1}),s(" or "),e(a,{to:"/reference/terminators.html#sealtag"},{default:t(()=>[s("sealTag")]),_:1}),s(" terminators.")]),_,n("table",null,[C,n("tbody",null,[L,n("tr",null,[S,z,n("td",null,[s("Allows the "),e(a,{to:"/reference/global-store.html"},{default:t(()=>[s("Global Store")]),_:1}),s(" to "),e(a,{to:"/reference/global-store.html#cache"},{default:t(()=>[s("cache logs")]),_:1}),s(" for later recall.")])]),T,n("tr",null,[j,D,n("td",null,[s("Tells logs to add any associated "),e(a,{to:"/getting-started/threading.html"},{default:t(()=>[s("thread")]),_:1}),s(" data to the log output.")])]),n("tr",null,[A,F,n("td",null,[s("Controls "),e(a,{to:"/getting-started/filtering.html"},{default:t(()=>[s("filtering")]),_:1}),s(" of logs by level, label, or namespace.")])]),n("tr",null,[E,I,n("td",null,[s("Sets the "),e(a,{to:"/reference/formatters.html"},{default:t(()=>[s("format")]),_:1}),s(" of how logs will be generated.")])]),n("tr",null,[O,B,n("td",null,[s("Key / value pairs of formatter names to "),e(a,{to:"/reference/formatters.html"},{default:t(()=>[s("Formatter")]),_:1}),s(" classes. Comes with four built in. Pretty, JSON, Common, and Standard.")])]),n("tr",null,[N,U,n("td",null,[R,s(" for each "),e(a,{to:"/reference/terminators.html"},{default:t(()=>[s("log level")]),_:1}),s(", including "),e(a,{to:"/reference/terminators.html#custom"},{default:t(()=>[s("custom")]),_:1}),s(" log levels.")])]),n("tr",null,[W,G,n("td",null,[s("Series of user defined key/value pairs of "),e(a,{to:"/reference/modifiers.html#meta"},{default:t(()=>[s("meta data")]),_:1}),s(" to attach to logs.")])]),n("tr",null,[q,n("td",null,[e(a,{to:"/reference/middleware.html"},{default:t(()=>[s("Middleware")]),_:1}),s("[]")]),n("td",null,[s("Array of "),e(a,{to:"/reference/middleware.html"},{default:t(()=>[s("middleware")]),_:1}),s(" instances that will be used during the each log's lifecycle.")])]),n("tr",null,[M,P,n("td",null,[e(a,{to:"/reference/modifiers.html#silent"},{default:t(()=>[s("Silent")]),_:1}),s(" logs will not print but will still be evaluated and trigger listeners and middleware hooks.")])]),n("tr",null,[V,Y,n("td",null,[s("Instructs logs to record and print the "),e(a,{to:"/reference/modifiers.html#timestamp"},{default:t(()=>[s("timestamp")]),_:1}),s(" of when they were generated.")])]),J,$])]),K,n("p",null,[s("When a log is created, if a "),e(a,{to:"/reference/global-store.html"},{default:t(()=>[s("Global Store")]),_:1}),s(" does not already exist, it will be automatically created. You can also set one up and configure it manually by using the "),H,s(" function.")]),n("p",null,[s("The setup function accepts a "),Q,s(" object that acts as a global configuration override for all logs. When setup is called, it also returns a reference to the Global Store which you can use for adding "),e(a,{to:"/reference/global-store.html#addlistener"},{default:t(()=>[s("log listeners")]),_:1}),s(" or "),e(a,{to:"/reference/global-store.html#removelistener"},{default:t(()=>[s("removing")]),_:1}),s(" them.")]),X,n("p",null,[s("Filters determine whether logs are allowed to print to the developer console/server based on their log level, "),e(a,{to:"/reference/modifiers.html#label"},{default:t(()=>[s("label")]),_:1}),s(", or "),e(a,{to:"/reference/modifiers.html#namespace--ns"},{default:t(()=>[s("namespace")]),_:1}),s(". When filtering levels, you can provide a "),Z,s(" data type.")]),nn,n("ul",null,[sn,an,n("li",null,[e(a,{to:"/reference/global-store.html#addlistener"},{default:t(()=>[s("GlobalStore.addListener")]),_:1})]),n("li",null,[e(a,{to:"/reference/tools.html#filterbylevel"},{default:t(()=>[s("GlobalStore.tools.filterByLevel")]),_:1})])]),en])}const cn=o(y,[["render",tn],["__file","configuration.html.vue"]]),rn=JSON.parse(`{"path":"/reference/configuration.html","title":"Configuration","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"User Configuration","slug":"user-configuration","link":"#user-configuration","children":[{"level":3,"title":"UserConfiguration Interface","slug":"userconfiguration-interface","link":"#userconfiguration-interface","children":[]},{"level":3,"title":"UserConfiguration Property Descriptions","slug":"userconfiguration-property-descriptions","link":"#userconfiguration-property-descriptions","children":[]}]},{"level":2,"title":"Setup Function","slug":"setup-function","link":"#setup-function","children":[{"level":3,"title":"Setup Example","slug":"setup-example","link":"#setup-example","children":[]}]},{"level":2,"title":"LevelConfiguration","slug":"levelconfiguration","link":"#levelconfiguration","children":[{"level":3,"title":"LevelConfiguration Interface","slug":"levelconfiguration-interface","link":"#levelconfiguration-interface","children":[]},{"level":3,"title":"Custom Level Example","slug":"custom-level-example","link":"#custom-level-example","children":[]},{"level":3,"title":"Default Level Override Example","slug":"default-level-override-example","link":"#default-level-override-example","children":[]}]},{"level":2,"title":"Styling","slug":"styling","link":"#styling","children":[{"level":3,"title":"Default Browser Styles","slug":"default-browser-styles","link":"#default-browser-styles","children":[]},{"level":3,"title":"Default Server Styles","slug":"default-server-styles","link":"#default-server-styles","children":[]},{"level":3,"title":"Default Level Style Functions","slug":"default-level-style-functions","link":"#default-level-style-functions","children":[]}]},{"level":2,"title":"Filters","slug":"filters","link":"#filters","children":[]},{"level":2,"title":"Customized Timestamps","slug":"customized-timestamps","link":"#customized-timestamps","children":[]},{"level":2,"title":"LevelSelector Type","slug":"levelselector-type","link":"#levelselector-type","children":[]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"reference/configuration.md","excerpt":"\\n

Adze is a completely configurable library by design that comes with sensible defaults. There are two\\nprimary configurations to understand; the log configuration and the Global Store\\nconfiguration. In this section we'll take a look at each configuration and explain each property in\\ndetail.

"}`);export{cn as comp,rn as data}; +
`,5);function tn(ln,on){const a=i("RouteLink");return c(),p("div",null,[w,n("p",null,[s("Adze is a completely configurable library by design that comes with sensible defaults. There are two primary configurations to understand; the log configuration and the "),e(a,{to:"/reference/global-store.html"},{default:t(()=>[s("Global Store")]),_:1}),s(" configuration. In this section we'll take a look at each configuration and explain each property in detail.")]),x,n("p",null,[s("This configuration is generated when you use "),e(a,{to:"/reference/modifiers.html"},{default:t(()=>[s("modifiers")]),_:1}),s(" or when you pass in a configuration object with the "),e(a,{to:"/reference/terminators.html#seal"},{default:t(()=>[s("seal")]),_:1}),s(" or "),e(a,{to:"/reference/terminators.html#sealtag"},{default:t(()=>[s("sealTag")]),_:1}),s(" terminators.")]),_,n("table",null,[C,n("tbody",null,[L,n("tr",null,[S,z,n("td",null,[s("Allows the "),e(a,{to:"/reference/global-store.html"},{default:t(()=>[s("Global Store")]),_:1}),s(" to "),e(a,{to:"/reference/global-store.html#cache"},{default:t(()=>[s("cache logs")]),_:1}),s(" for later recall.")])]),T,n("tr",null,[j,D,n("td",null,[s("Tells logs to add any associated "),e(a,{to:"/getting-started/threading.html"},{default:t(()=>[s("thread")]),_:1}),s(" data to the log output.")])]),n("tr",null,[A,F,n("td",null,[s("Controls "),e(a,{to:"/getting-started/filtering.html"},{default:t(()=>[s("filtering")]),_:1}),s(" of logs by level, label, or namespace.")])]),n("tr",null,[E,I,n("td",null,[s("Sets the "),e(a,{to:"/reference/formatters.html"},{default:t(()=>[s("format")]),_:1}),s(" of how logs will be generated.")])]),n("tr",null,[O,B,n("td",null,[s("Key / value pairs of formatter names to "),e(a,{to:"/reference/formatters.html"},{default:t(()=>[s("Formatter")]),_:1}),s(" classes. Comes with four built in. Pretty, JSON, Common, and Standard.")])]),n("tr",null,[N,U,n("td",null,[R,s(" for each "),e(a,{to:"/reference/terminators.html"},{default:t(()=>[s("log level")]),_:1}),s(", including "),e(a,{to:"/reference/terminators.html#custom"},{default:t(()=>[s("custom")]),_:1}),s(" log levels.")])]),n("tr",null,[W,G,n("td",null,[s("Series of user defined key/value pairs of "),e(a,{to:"/reference/modifiers.html#meta"},{default:t(()=>[s("meta data")]),_:1}),s(" to attach to logs.")])]),n("tr",null,[q,n("td",null,[e(a,{to:"/reference/middleware.html"},{default:t(()=>[s("Middleware")]),_:1}),s("[]")]),n("td",null,[s("Array of "),e(a,{to:"/reference/middleware.html"},{default:t(()=>[s("middleware")]),_:1}),s(" instances that will be used during the each log's lifecycle.")])]),n("tr",null,[M,P,n("td",null,[e(a,{to:"/reference/modifiers.html#silent"},{default:t(()=>[s("Silent")]),_:1}),s(" logs will not print but will still be evaluated and trigger listeners and middleware hooks.")])]),n("tr",null,[V,Y,n("td",null,[s("Instructs logs to record and print the "),e(a,{to:"/reference/modifiers.html#timestamp"},{default:t(()=>[s("timestamp")]),_:1}),s(" of when they were generated.")])]),J,$])]),K,n("p",null,[s("When a log is created, if a "),e(a,{to:"/reference/global-store.html"},{default:t(()=>[s("Global Store")]),_:1}),s(" does not already exist, it will be automatically created. You can also set one up and configure it manually by using the "),H,s(" function.")]),n("p",null,[s("The setup function accepts a "),Q,s(" object that acts as a global configuration override for all logs. When setup is called, it also returns a reference to the Global Store which you can use for adding "),e(a,{to:"/reference/global-store.html#addlistener"},{default:t(()=>[s("log listeners")]),_:1}),s(" or "),e(a,{to:"/reference/global-store.html#removelistener"},{default:t(()=>[s("removing")]),_:1}),s(" them.")]),X,n("p",null,[s("Filters determine whether logs are allowed to print to the developer console/server based on their log level, "),e(a,{to:"/reference/modifiers.html#label"},{default:t(()=>[s("label")]),_:1}),s(", or "),e(a,{to:"/reference/modifiers.html#namespace--ns"},{default:t(()=>[s("namespace")]),_:1}),s(". When filtering levels, you can provide a "),Z,s(" data type.")]),nn,n("ul",null,[sn,an,n("li",null,[e(a,{to:"/reference/global-store.html#addlistener"},{default:t(()=>[s("GlobalStore.addListener")]),_:1})]),n("li",null,[e(a,{to:"/reference/tools.html#filterbylevel"},{default:t(()=>[s("GlobalStore.tools.filterByLevel")]),_:1})])]),en])}const cn=o(y,[["render",tn],["__file","configuration.html.vue"]]),rn=JSON.parse(`{"path":"/reference/configuration.html","title":"Configuration","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"User Configuration","slug":"user-configuration","link":"#user-configuration","children":[{"level":3,"title":"UserConfiguration Interface","slug":"userconfiguration-interface","link":"#userconfiguration-interface","children":[]},{"level":3,"title":"UserConfiguration Property Descriptions","slug":"userconfiguration-property-descriptions","link":"#userconfiguration-property-descriptions","children":[]}]},{"level":2,"title":"Setup Function","slug":"setup-function","link":"#setup-function","children":[{"level":3,"title":"Setup Example","slug":"setup-example","link":"#setup-example","children":[]}]},{"level":2,"title":"LevelConfiguration","slug":"levelconfiguration","link":"#levelconfiguration","children":[{"level":3,"title":"LevelConfiguration Interface","slug":"levelconfiguration-interface","link":"#levelconfiguration-interface","children":[]},{"level":3,"title":"Custom Level Example","slug":"custom-level-example","link":"#custom-level-example","children":[]},{"level":3,"title":"Default Level Override Example","slug":"default-level-override-example","link":"#default-level-override-example","children":[]}]},{"level":2,"title":"Styling","slug":"styling","link":"#styling","children":[{"level":3,"title":"Default Browser Styles","slug":"default-browser-styles","link":"#default-browser-styles","children":[]},{"level":3,"title":"Default Server Styles","slug":"default-server-styles","link":"#default-server-styles","children":[]},{"level":3,"title":"Default Level Style Functions","slug":"default-level-style-functions","link":"#default-level-style-functions","children":[]}]},{"level":2,"title":"Filters","slug":"filters","link":"#filters","children":[]},{"level":2,"title":"Customized Timestamps","slug":"customized-timestamps","link":"#customized-timestamps","children":[]},{"level":2,"title":"LevelSelector Type","slug":"levelselector-type","link":"#levelselector-type","children":[]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"reference/configuration.md","excerpt":"\\n

Adze is a completely configurable library by design that comes with sensible defaults. There are two\\nprimary configurations to understand; the log configuration and the Global Store\\nconfiguration. In this section we'll take a look at each configuration and explain each property in\\ndetail.

"}`);export{cn as comp,rn as data}; diff --git a/assets/configuration.html-BCPckSeE.js b/assets/configuration.html-DpPySues.js similarity index 99% rename from assets/configuration.html-BCPckSeE.js rename to assets/configuration.html-DpPySues.js index d5983d8..8d78a0e 100644 --- a/assets/configuration.html-BCPckSeE.js +++ b/assets/configuration.html-DpPySues.js @@ -1,4 +1,4 @@ -import{_ as l,r as p,c as i,b as n,e,w as t,d as s,a as o,o as c}from"./app-Cqk3MxnN.js";const r="/assets/custom-log-example-DZpmISRj.png",u={},d=o('

Configuration

Now that we have a shared logger from the setup section we may want to apply some more advanced configuration. In the following steps we'll take a look at how to change the active log level, change the output format of our logs, and even add a completely custom log level.

Set the Active Log Level

When we are writing logs for our applications, there are many different levels of information that we want to capture. However, we do not always want to see every level of detail at all times. This is where log levels come into play.

Log levels are categorized by the most severe being the lowest to the most innocuous being the highest.

By ordering our logs by severity in this way, when problems arise, we can simply raise our active log level and all logs that are less than or equal to the active level will be rendered. This allows us to capture only the most important logs the majority of the time, but in cases where we need to debug something, we can increase the visibility into our application.

Adze comes with 9 log levels by default, ranging from levels 0 through 8.

',7),m={start:"0"},g=n("strong",null,"Alert",-1),k=n("strong",null,"Error",-1),v=n("strong",null,"Warn",-1),h=n("strong",null,"Info",-1),f=n("strong",null,"Fail",-1),b=n("strong",null,"Success",-1),w=n("strong",null,"Log",-1),y=n("strong",null,"Debug",-1),_=n("strong",null,"Verbose",-1),x=o(`

TIP

By default the active level is set to 6.

Let's lower our active level so that we only see alert, error, warn, and info logs.

// ./src/logger.ts
+import{_ as l,c as p,b as n,e,w as t,d as s,a as o,r as i,o as c}from"./app-_2IEvvvI.js";const r="/assets/custom-log-example-DZpmISRj.png",u={},d=o('

Configuration

Now that we have a shared logger from the setup section we may want to apply some more advanced configuration. In the following steps we'll take a look at how to change the active log level, change the output format of our logs, and even add a completely custom log level.

Set the Active Log Level

When we are writing logs for our applications, there are many different levels of information that we want to capture. However, we do not always want to see every level of detail at all times. This is where log levels come into play.

Log levels are categorized by the most severe being the lowest to the most innocuous being the highest.

By ordering our logs by severity in this way, when problems arise, we can simply raise our active log level and all logs that are less than or equal to the active level will be rendered. This allows us to capture only the most important logs the majority of the time, but in cases where we need to debug something, we can increase the visibility into our application.

Adze comes with 9 log levels by default, ranging from levels 0 through 8.

',7),m={start:"0"},g=n("strong",null,"Alert",-1),k=n("strong",null,"Error",-1),v=n("strong",null,"Warn",-1),h=n("strong",null,"Info",-1),f=n("strong",null,"Fail",-1),b=n("strong",null,"Success",-1),w=n("strong",null,"Log",-1),y=n("strong",null,"Debug",-1),_=n("strong",null,"Verbose",-1),x=o(`

TIP

By default the active level is set to 6.

Let's lower our active level so that we only see alert, error, warn, and info logs.

// ./src/logger.ts
 import adze, { setup } from 'adze';
 
 // Set our active level to 3
@@ -105,4 +105,4 @@ import{_ as l,r as p,c as i,b as n,e,w as t,d as s,a as o,o as c}from"./app-Cqk3
 
 logger.info('Logging from the index.');
 logger.custom('issue', 'An issue has occurred that needs attention.');
-

Example Output

Example of custom log level output


Adze will always apply namespaces in an additive manner. Inherited namespaces will never be overwritten by subsequent calls to the namespace modifier.

',22);function E(J,A){const a=p("RouteLink");return c(),i("div",null,[d,n("ol",m,[n("li",null,[e(a,{to:"/reference/terminators.html#alert"},{default:t(()=>[g]),_:1}),s(" - This level should only be used for logs that require immediate attention. This should be used sparingly and only for the most critical of errors.")]),n("li",null,[e(a,{to:"/reference/terminators.html#error"},{default:t(()=>[k]),_:1}),s(" - Use this for logging fatal errors or errors that impact functionality of your application.")]),n("li",null,[e(a,{to:"/reference/terminators.html#warn"},{default:t(()=>[v]),_:1}),s(" - Use this for logging issues that may impact app performance in a less impactful way than an error.")]),n("li",null,[e(a,{to:"/reference/terminators.html#info"},{default:t(()=>[h]),_:1}),s(" - Use this for logging general insights into your application. This level does not indicate any problems.")]),n("li",null,[e(a,{to:"/reference/terminators.html#fail"},{default:t(()=>[f]),_:1}),s(" - Use this for logging network communication errors or other non-fatal errors that do not break your application.")]),n("li",null,[e(a,{to:"/reference/terminators.html#success"},{default:t(()=>[b]),_:1}),s(" - Use this for logging successful network communications or other successful operations within your app.")]),n("li",null,[e(a,{to:"/reference/terminators.html#log"},{default:t(()=>[w]),_:1}),s(" - Use this for general logging that doesn't apply to any of the lower levels.")]),n("li",null,[e(a,{to:"/reference/terminators.html#debug"},{default:t(()=>[y]),_:1}),s(" - Use this for logging information that you typically do not want to see unless you are debugging a problem with your application. This is typically hidden by default.")]),n("li",null,[e(a,{to:"/reference/terminators.html#verbose"},{default:t(()=>[_]),_:1}),s(" - Use this for logging extremely detailed debugging information. Use this level when the values you are logging are granular enough that they are no longer easily human readable.")])]),x,n("ul",null,[n("li",null,[e(a,{to:"/reference/formatters.html#pretty-formatter"},{default:t(()=>[q]),_:1}),s(" - Human readable, pretty printed logs.")]),n("li",null,[e(a,{to:"/reference/formatters.html#json-formatter"},{default:t(()=>[L]),_:1}),s(" - Machine readable, structured JSON logs.")]),n("li",null,[e(a,{to:"/reference/formatters.html#common-formatter"},{default:t(()=>[j]),_:1}),s(" - Logs that conform to the "),S]),n("li",null,[e(a,{to:"/reference/formatters.html#standard-formatter"},{default:t(()=>[z]),_:1}),s(" - Logs that are human-readable but formatted for stdout in backend/terminal environments.")])]),N,n("p",null,[s("Adze also provides a convenient type ("),e(a,{to:"/reference/formatters.html#jsonlogformatmeta-interface"},{default:t(()=>[T]),_:1}),s(") that can be used for type safety when adding the meta data.")]),C])}const U=l(u,[["render",E],["__file","configuration.html.vue"]]),F=JSON.parse(`{"path":"/getting-started/configuration.html","title":"Configuration","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Set the Active Log Level","slug":"set-the-active-log-level","link":"#set-the-active-log-level","children":[]},{"level":2,"title":"Structured Logging (JSON)","slug":"structured-logging-json","link":"#structured-logging-json","children":[]},{"level":2,"title":"Create a Custom Log Level","slug":"create-a-custom-log-level","link":"#create-a-custom-log-level","children":[]}],"git":{"updatedTime":1726149158000,"contributors":[{"name":"Andrew Stacy","email":"astacy@stratacache.com","commits":4},{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"getting-started/configuration.md","excerpt":"\\n

Now that we have a shared logger from the setup section we may want to apply some more\\nadvanced configuration. In the following steps we'll take a look at how to change the active log\\nlevel, change the output format of our logs, and even add a completely custom log level.

"}`);export{U as comp,F as data}; +

Example Output

Example of custom log level output


Adze will always apply namespaces in an additive manner. Inherited namespaces will never be overwritten by subsequent calls to the namespace modifier.

',22);function E(J,A){const a=i("RouteLink");return c(),p("div",null,[d,n("ol",m,[n("li",null,[e(a,{to:"/reference/terminators.html#alert"},{default:t(()=>[g]),_:1}),s(" - This level should only be used for logs that require immediate attention. This should be used sparingly and only for the most critical of errors.")]),n("li",null,[e(a,{to:"/reference/terminators.html#error"},{default:t(()=>[k]),_:1}),s(" - Use this for logging fatal errors or errors that impact functionality of your application.")]),n("li",null,[e(a,{to:"/reference/terminators.html#warn"},{default:t(()=>[v]),_:1}),s(" - Use this for logging issues that may impact app performance in a less impactful way than an error.")]),n("li",null,[e(a,{to:"/reference/terminators.html#info"},{default:t(()=>[h]),_:1}),s(" - Use this for logging general insights into your application. This level does not indicate any problems.")]),n("li",null,[e(a,{to:"/reference/terminators.html#fail"},{default:t(()=>[f]),_:1}),s(" - Use this for logging network communication errors or other non-fatal errors that do not break your application.")]),n("li",null,[e(a,{to:"/reference/terminators.html#success"},{default:t(()=>[b]),_:1}),s(" - Use this for logging successful network communications or other successful operations within your app.")]),n("li",null,[e(a,{to:"/reference/terminators.html#log"},{default:t(()=>[w]),_:1}),s(" - Use this for general logging that doesn't apply to any of the lower levels.")]),n("li",null,[e(a,{to:"/reference/terminators.html#debug"},{default:t(()=>[y]),_:1}),s(" - Use this for logging information that you typically do not want to see unless you are debugging a problem with your application. This is typically hidden by default.")]),n("li",null,[e(a,{to:"/reference/terminators.html#verbose"},{default:t(()=>[_]),_:1}),s(" - Use this for logging extremely detailed debugging information. Use this level when the values you are logging are granular enough that they are no longer easily human readable.")])]),x,n("ul",null,[n("li",null,[e(a,{to:"/reference/formatters.html#pretty-formatter"},{default:t(()=>[q]),_:1}),s(" - Human readable, pretty printed logs.")]),n("li",null,[e(a,{to:"/reference/formatters.html#json-formatter"},{default:t(()=>[L]),_:1}),s(" - Machine readable, structured JSON logs.")]),n("li",null,[e(a,{to:"/reference/formatters.html#common-formatter"},{default:t(()=>[j]),_:1}),s(" - Logs that conform to the "),S]),n("li",null,[e(a,{to:"/reference/formatters.html#standard-formatter"},{default:t(()=>[z]),_:1}),s(" - Logs that are human-readable but formatted for stdout in backend/terminal environments.")])]),N,n("p",null,[s("Adze also provides a convenient type ("),e(a,{to:"/reference/formatters.html#jsonlogformatmeta-interface"},{default:t(()=>[T]),_:1}),s(") that can be used for type safety when adding the meta data.")]),C])}const U=l(u,[["render",E],["__file","configuration.html.vue"]]),F=JSON.parse(`{"path":"/getting-started/configuration.html","title":"Configuration","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Set the Active Log Level","slug":"set-the-active-log-level","link":"#set-the-active-log-level","children":[]},{"level":2,"title":"Structured Logging (JSON)","slug":"structured-logging-json","link":"#structured-logging-json","children":[]},{"level":2,"title":"Create a Custom Log Level","slug":"create-a-custom-log-level","link":"#create-a-custom-log-level","children":[]}],"git":{"updatedTime":1726149158000,"contributors":[{"name":"Andrew Stacy","email":"astacy@stratacache.com","commits":4},{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"getting-started/configuration.md","excerpt":"\\n

Now that we have a shared logger from the setup section we may want to apply some more\\nadvanced configuration. In the following steps we'll take a look at how to change the active log\\nlevel, change the output format of our logs, and even add a completely custom log level.

"}`);export{U as comp,F as data}; diff --git a/assets/filtering.html-DJFVCZqT.js b/assets/filtering.html-BLTSNKht.js similarity index 98% rename from assets/filtering.html-DJFVCZqT.js rename to assets/filtering.html-BLTSNKht.js index a8d782e..c5f7c9d 100644 --- a/assets/filtering.html-DJFVCZqT.js +++ b/assets/filtering.html-BLTSNKht.js @@ -1,4 +1,4 @@ -import{_ as e,r as t,c as p,b as l,d as n,e as i,w as o,a as s,o as c}from"./app-Cqk3MxnN.js";const u="/assets/filtering-example-namespaces-1-DYy5H5DJ.png",r="/assets/filter-example-labels-1-COcv_Atg.png",d="/assets/filter-example-levels-1-B40u61Ek.png",k={},m=s(`

Filtering Logs

When working in large applications, often you will have a large number of logs that are generated. With a large number of logs it can be difficult to sift through them to find the logs that you care about.

Adze offers a few ways to help deal with filtering your logs so that you can focus on the ones that are currently relevant to you.

When setting up Adze, in the configuration you can provide criteria for what logs will be rendered based on either their label, namespace, or level. This filter can either "include" or "exclude" logs.

  • If the include filter type is used, only logs that match the values will be printed.
  • If the exclude filter type is used, any logs that match the values will not be printed.

Filtering Namespaces

Let's take a look at an example of how to apply an "include" filter against some logs with namespaces.

import adze, { setup } from 'adze';
+import{_ as e,c as t,b as p,d as n,e as l,w as i,a as s,r as o,o as c}from"./app-_2IEvvvI.js";const u="/assets/filtering-example-namespaces-1-DYy5H5DJ.png",r="/assets/filter-example-labels-1-COcv_Atg.png",d="/assets/filter-example-levels-1-B40u61Ek.png",k={},m=s(`

Filtering Logs

When working in large applications, often you will have a large number of logs that are generated. With a large number of logs it can be difficult to sift through them to find the logs that you care about.

Adze offers a few ways to help deal with filtering your logs so that you can focus on the ones that are currently relevant to you.

When setting up Adze, in the configuration you can provide criteria for what logs will be rendered based on either their label, namespace, or level. This filter can either "include" or "exclude" logs.

  • If the include filter type is used, only logs that match the values will be printed.
  • If the exclude filter type is used, any logs that match the values will not be printed.

Filtering Namespaces

Let's take a look at an example of how to apply an "include" filter against some logs with namespaces.

import adze, { setup } from 'adze';
 
 setup({
   filters: {
@@ -58,4 +58,4 @@ import{_ as e,r as t,c as p,b as l,d as n,e as i,w as o,a as s,o as c}from"./app
 adze.log('I will print because I am included.');
 adze.debug('I will not print because I am not included.');
 adze.verbose('I will not print because I am not included.');
-

Example Output

Example output after filtering levels that include the levels warn and log


',4);function v(b,h){const a=t("RouteLink");return c(),p("div",null,[m,l("p",null,[n("Lastly, we can filter logs by log levels using a "),i(a,{to:"/reference/configuration.html#levelselector-type"},{default:o(()=>[n("LevelSelector")]),_:1}),n(" value.")]),g])}const y=e(k,[["render",v],["__file","filtering.html.vue"]]),w=JSON.parse('{"path":"/getting-started/filtering.html","title":"Filtering Logs","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Filtering Namespaces","slug":"filtering-namespaces","link":"#filtering-namespaces","children":[{"level":3,"title":"Restricting Namespaces (TS Only)","slug":"restricting-namespaces-ts-only","link":"#restricting-namespaces-ts-only","children":[]}]},{"level":2,"title":"Filtering Labels","slug":"filtering-labels","link":"#filtering-labels","children":[]},{"level":2,"title":"Filtering by Levels","slug":"filtering-by-levels","link":"#filtering-by-levels","children":[]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"getting-started/filtering.md","excerpt":"\\n

When working in large applications, often you will have a large number of logs that are generated.\\nWith a large number of logs it can be difficult to sift through them to find the logs that you care\\nabout.

\\n

Adze offers a few ways to help deal with filtering your logs so that you can focus on the ones that\\nare currently relevant to you.

"}');export{y as comp,w as data}; +

Example Output

Example output after filtering levels that include the levels warn and log


',4);function v(b,h){const a=o("RouteLink");return c(),t("div",null,[m,p("p",null,[n("Lastly, we can filter logs by log levels using a "),l(a,{to:"/reference/configuration.html#levelselector-type"},{default:i(()=>[n("LevelSelector")]),_:1}),n(" value.")]),g])}const y=e(k,[["render",v],["__file","filtering.html.vue"]]),w=JSON.parse('{"path":"/getting-started/filtering.html","title":"Filtering Logs","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Filtering Namespaces","slug":"filtering-namespaces","link":"#filtering-namespaces","children":[{"level":3,"title":"Restricting Namespaces (TS Only)","slug":"restricting-namespaces-ts-only","link":"#restricting-namespaces-ts-only","children":[]}]},{"level":2,"title":"Filtering Labels","slug":"filtering-labels","link":"#filtering-labels","children":[]},{"level":2,"title":"Filtering by Levels","slug":"filtering-by-levels","link":"#filtering-by-levels","children":[]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"getting-started/filtering.md","excerpt":"\\n

When working in large applications, often you will have a large number of logs that are generated.\\nWith a large number of logs it can be difficult to sift through them to find the logs that you care\\nabout.

\\n

Adze offers a few ways to help deal with filtering your logs so that you can focus on the ones that\\nare currently relevant to you.

"}');export{y as comp,w as data}; diff --git a/assets/footer.html-BmpmvW-4.js b/assets/footer.html-Ca7mFpwf.js similarity index 95% rename from assets/footer.html-BmpmvW-4.js rename to assets/footer.html-Ca7mFpwf.js index 4ef5abf..27f63a9 100644 --- a/assets/footer.html-BmpmvW-4.js +++ b/assets/footer.html-Ca7mFpwf.js @@ -1 +1 @@ -import{_ as t,c as n,o as r,b as e}from"./app-Cqk3MxnN.js";const o="/images/github-icon.svg",a="/images/linkedin-icon.svg",i={},c=e("p",null,"©Copyright 2024 - Andrew Stacy - Apache 2.0 License",-1),s=e("p",null,[e("a",{href:"https://github.com/AJStacy/adze",target:"_blank",rel:"noopener noreferrer"},[e("img",{src:o,alt:"github icon"})]),e("a",{href:"https://www.linkedin.com/in/ajstacy/",target:"_blank",rel:"noopener noreferrer"},[e("img",{src:a,alt:"linkedin icon"})])],-1),l=[c,s];function m(h,p){return r(),n("div",null,l)}const _=t(i,[["render",m],["__file","footer.html.vue"]]),d=JSON.parse('{"path":"/home/footer.html","title":"","lang":"en-US","frontmatter":{},"headers":[],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"home/footer.md","excerpt":"

©Copyright 2024 - Andrew Stacy - Apache 2.0 License

\\n

\\"github\\n\\"linkedin

"}');export{_ as comp,d as data}; +import{_ as t,c as n,o as r,b as e}from"./app-_2IEvvvI.js";const o="/images/github-icon.svg",a="/images/linkedin-icon.svg",i={},c=e("p",null,"©Copyright 2024 - Andrew Stacy - Apache 2.0 License",-1),s=e("p",null,[e("a",{href:"https://github.com/AJStacy/adze",target:"_blank",rel:"noopener noreferrer"},[e("img",{src:o,alt:"github icon"})]),e("a",{href:"https://www.linkedin.com/in/ajstacy/",target:"_blank",rel:"noopener noreferrer"},[e("img",{src:a,alt:"linkedin icon"})])],-1),l=[c,s];function m(h,p){return r(),n("div",null,l)}const _=t(i,[["render",m],["__file","footer.html.vue"]]),d=JSON.parse('{"path":"/home/footer.html","title":"","lang":"en-US","frontmatter":{},"headers":[],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"home/footer.md","excerpt":"

©Copyright 2024 - Andrew Stacy - Apache 2.0 License

\\n

\\"github\\n\\"linkedin

"}');export{_ as comp,d as data}; diff --git a/assets/formatters.html-BKk4NljL.js b/assets/formatters.html-BSTOgFuG.js similarity index 96% rename from assets/formatters.html-BKk4NljL.js rename to assets/formatters.html-BSTOgFuG.js index dfdfe06..ace1a2b 100644 --- a/assets/formatters.html-BKk4NljL.js +++ b/assets/formatters.html-BSTOgFuG.js @@ -1,4 +1,4 @@ -import{_ as o}from"./demo-CDG8Pcr1.js";import{_ as l,r as i,c as r,b as s,d as n,e,w as t,a as p,o as c}from"./app-Cqk3MxnN.js";const u="/assets/jsonFormatErrorSerializer-example-node-qQi-ELX5.png",d="/assets/jsonFormatRequestSerializer-example-node-Dm35zPjC.png",m="/assets/jsonFormatResponseSerializer-example-node-DYep3-kZ.png",k="/assets/standardFormat-example-node-8PEiePsc.png",h="/assets/commonFormat-example-node-BC4r3s9q.png",v={},f=p('

Formatters

The primary purpose of Adze is to give the user simple ways of shaping their logs to fit their needs. Adze comes with four formatters out of the box.

FormatterValueDescription
Pretty"pretty"The default formatter. This prints logs in a pretty, human-readable format.
JSON"json"This formatter prints logs as machine-readable JSON objects that are compatible with the Bunyan CLI.
Standard"standard"This formatter prints human-readable logs for a simple stdout format for terminals or files.
Common"common"This formatter prints logs according to the Common Log Format.

Pretty Formatter

The Pretty formatter is the default formatter used by Adze. It formats logs in a pretty, human-readable manner.

',5),g=s("code",null,"format",-1),b=s("code",null,'"pretty"',-1),y=p(`
import adze, { setup } from 'adze';
+import{_ as o}from"./demo-CDG8Pcr1.js";import{_ as l,c as i,b as s,d as n,e,w as t,a as p,r,o as c}from"./app-_2IEvvvI.js";const u="/assets/jsonFormatErrorSerializer-example-node-qQi-ELX5.png",d="/assets/jsonFormatRequestSerializer-example-node-Dm35zPjC.png",m="/assets/jsonFormatResponseSerializer-example-node-DYep3-kZ.png",k="/assets/standardFormat-example-node-8PEiePsc.png",h="/assets/commonFormat-example-node-BC4r3s9q.png",v={},f=p('

Formatters

The primary purpose of Adze is to give the user simple ways of shaping their logs to fit their needs. Adze comes with four formatters out of the box.

FormatterValueDescription
Pretty"pretty"The default formatter. This prints logs in a pretty, human-readable format.
JSON"json"This formatter prints logs as machine-readable JSON objects that are compatible with the Bunyan CLI.
Standard"standard"This formatter prints human-readable logs for a simple stdout format for terminals or files.
Common"common"This formatter prints logs according to the Common Log Format.

Pretty Formatter

The Pretty formatter is the default formatter used by Adze. It formats logs in a pretty, human-readable manner.

',5),g=s("code",null,"format",-1),b=s("code",null,'"pretty"',-1),y=p(`
import adze, { setup } from 'adze';
 
 setup({
   format: 'pretty',
@@ -243,4 +243,4 @@ import{_ as o}from"./demo-CDG8Pcr1.js";import{_ as l,r as i,c as r,b as s,d as n
     hello: HelloFormatter,
   },
 });
-
`,2);function B(U,D){const a=i("RouteLink");return c(),r("div",null,[f,s("p",null,[n("To use it, set the "),e(a,{to:"/reference/configuration.html#user-configuration"},{default:t(()=>[n("User Configuration")]),_:1}),n(),g,n(" value to be "),b,n(".")]),y,s("p",null,[n("To use it, set the "),e(a,{to:"/reference/configuration.html#user-configuration"},{default:t(()=>[n("User Configuration")]),_:1}),n(),w,n(" value to be "),x,n(".")]),_,s("p",null,[n("JSON formatted logs require some meta data to be compatible with the "),z,n(". To apply these values you must include them when calling the "),e(a,{to:"/reference/modifiers.html#meta"},{default:t(()=>[n("meta modifier")]),_:1}),n(" or apply them in the "),e(a,{to:"/reference/configuration.html#setup-function"},{default:t(()=>[n("setup function")]),_:1}),n(".")]),F,s("p",null,[n("The "),T,n(" formatter is for generating human-readable logs in a "),j,n(" environment. This is useful for writing human-readable logs to a file or for transporting them to other platforms. The Standard formatter does not require you to specify that you want "),e(a,{to:"/reference/modifiers.html#timestamp"},{default:t(()=>[n("timestamps")]),_:1}),n(" as it is a requirement for all logs of this type.")]),s("p",null,[n("To use it, set the "),e(a,{to:"/reference/configuration.html#user-configuration"},{default:t(()=>[n("User Configuration")]),_:1}),n(),L,n(" value to be "),q,n(".")]),S,s("p",null,[n("To use it, set the "),e(a,{to:"/reference/configuration.html#user-configuration"},{default:t(()=>[n("User Configuration")]),_:1}),n(),C,n(" value to be "),J,n(".")]),O,s("p",null,[n("The Common formatter requires some extra meta data to fill in various properties within a log formatted to the Common Log standard. Adze exports the "),R,n(" interface to assist you with filling in the necessary data. The Common formatter does not require you to specify that you want "),e(a,{to:"/reference/modifiers.html#timestamp"},{default:t(()=>[n("timestamps")]),_:1}),n(" as it is a requirement for all logs of this type.")]),A,s("p",null,[n("This method is provided the "),e(a,{to:"/reference/modifiers.html"},{default:t(()=>[n("modifier data")]),_:1}),n(" for all modifiers applied to the log, the timestamp according to the "),E,n(", and the raw arguments for the log provided by the user.")]),M,s("p",null,[n("This method is provided the "),e(a,{to:"/reference/modifiers.html"},{default:t(()=>[n("modifier data")]),_:1}),n(" for all modifiers applied to the log, the timestamp according to the "),N,n(", and the raw arguments for the log provided by the user.")]),P,s("p",null,[n("To include a third-party formatter for use with Adze you must add it to the "),H,n(" object property of the "),e(a,{to:"/reference/configuration.html#user-configuration"},{default:t(()=>[n("User Configuration")]),_:1}),n(" as a key/value pair.")]),I])}const Y=l(v,[["render",B],["__file","formatters.html.vue"]]),G=JSON.parse('{"path":"/reference/formatters.html","title":"Formatters","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Pretty Formatter","slug":"pretty-formatter","link":"#pretty-formatter","children":[]},{"level":2,"title":"JSON Formatter","slug":"json-formatter","link":"#json-formatter","children":[{"level":3,"title":"JsonLogFormatMeta Interface","slug":"jsonlogformatmeta-interface","link":"#jsonlogformatmeta-interface","children":[]},{"level":3,"title":"JsonLogFormatMeta Serializer Functions","slug":"jsonlogformatmeta-serializer-functions","link":"#jsonlogformatmeta-serializer-functions","children":[]}]},{"level":2,"title":"Standard Formatter","slug":"standard-formatter","link":"#standard-formatter","children":[]},{"level":2,"title":"Common Formatter","slug":"common-formatter","link":"#common-formatter","children":[{"level":3,"title":"CommonLogFormatMeta","slug":"commonlogformatmeta","link":"#commonlogformatmeta","children":[]}]},{"level":2,"title":"Creating Third-party Formatters","slug":"creating-third-party-formatters","link":"#creating-third-party-formatters","children":[{"level":3,"title":"Formatter Class","slug":"formatter-class","link":"#formatter-class","children":[]},{"level":3,"title":"timestampFormatter getter","slug":"timestampformatter-getter","link":"#timestampformatter-getter","children":[]},{"level":3,"title":"formatBrowser","slug":"formatbrowser","link":"#formatbrowser","children":[]},{"level":3,"title":"formatServer","slug":"formatserver","link":"#formatserver","children":[]},{"level":3,"title":"Using a Third-party Formatter","slug":"using-a-third-party-formatter","link":"#using-a-third-party-formatter","children":[]}]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"reference/formatters.md","excerpt":"\\n

The primary purpose of Adze is to give the user simple ways of shaping their logs to fit their\\nneeds. Adze comes with four formatters out of the box.

\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
FormatterValueDescription
Pretty\\"pretty\\"The default formatter. This prints logs in a pretty, human-readable format.
JSON\\"json\\"This formatter prints logs as machine-readable JSON objects that are compatible with the Bunyan CLI.
Standard\\"standard\\"This formatter prints human-readable logs for a simple stdout format for terminals or files.
Common\\"common\\"This formatter prints logs according to the Common Log Format.
"}');export{Y as comp,G as data}; +
`,2);function B(U,D){const a=r("RouteLink");return c(),i("div",null,[f,s("p",null,[n("To use it, set the "),e(a,{to:"/reference/configuration.html#user-configuration"},{default:t(()=>[n("User Configuration")]),_:1}),n(),g,n(" value to be "),b,n(".")]),y,s("p",null,[n("To use it, set the "),e(a,{to:"/reference/configuration.html#user-configuration"},{default:t(()=>[n("User Configuration")]),_:1}),n(),w,n(" value to be "),x,n(".")]),_,s("p",null,[n("JSON formatted logs require some meta data to be compatible with the "),z,n(". To apply these values you must include them when calling the "),e(a,{to:"/reference/modifiers.html#meta"},{default:t(()=>[n("meta modifier")]),_:1}),n(" or apply them in the "),e(a,{to:"/reference/configuration.html#setup-function"},{default:t(()=>[n("setup function")]),_:1}),n(".")]),F,s("p",null,[n("The "),T,n(" formatter is for generating human-readable logs in a "),j,n(" environment. This is useful for writing human-readable logs to a file or for transporting them to other platforms. The Standard formatter does not require you to specify that you want "),e(a,{to:"/reference/modifiers.html#timestamp"},{default:t(()=>[n("timestamps")]),_:1}),n(" as it is a requirement for all logs of this type.")]),s("p",null,[n("To use it, set the "),e(a,{to:"/reference/configuration.html#user-configuration"},{default:t(()=>[n("User Configuration")]),_:1}),n(),L,n(" value to be "),q,n(".")]),S,s("p",null,[n("To use it, set the "),e(a,{to:"/reference/configuration.html#user-configuration"},{default:t(()=>[n("User Configuration")]),_:1}),n(),C,n(" value to be "),J,n(".")]),O,s("p",null,[n("The Common formatter requires some extra meta data to fill in various properties within a log formatted to the Common Log standard. Adze exports the "),R,n(" interface to assist you with filling in the necessary data. The Common formatter does not require you to specify that you want "),e(a,{to:"/reference/modifiers.html#timestamp"},{default:t(()=>[n("timestamps")]),_:1}),n(" as it is a requirement for all logs of this type.")]),A,s("p",null,[n("This method is provided the "),e(a,{to:"/reference/modifiers.html"},{default:t(()=>[n("modifier data")]),_:1}),n(" for all modifiers applied to the log, the timestamp according to the "),E,n(", and the raw arguments for the log provided by the user.")]),M,s("p",null,[n("This method is provided the "),e(a,{to:"/reference/modifiers.html"},{default:t(()=>[n("modifier data")]),_:1}),n(" for all modifiers applied to the log, the timestamp according to the "),N,n(", and the raw arguments for the log provided by the user.")]),P,s("p",null,[n("To include a third-party formatter for use with Adze you must add it to the "),H,n(" object property of the "),e(a,{to:"/reference/configuration.html#user-configuration"},{default:t(()=>[n("User Configuration")]),_:1}),n(" as a key/value pair.")]),I])}const Y=l(v,[["render",B],["__file","formatters.html.vue"]]),G=JSON.parse('{"path":"/reference/formatters.html","title":"Formatters","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Pretty Formatter","slug":"pretty-formatter","link":"#pretty-formatter","children":[]},{"level":2,"title":"JSON Formatter","slug":"json-formatter","link":"#json-formatter","children":[{"level":3,"title":"JsonLogFormatMeta Interface","slug":"jsonlogformatmeta-interface","link":"#jsonlogformatmeta-interface","children":[]},{"level":3,"title":"JsonLogFormatMeta Serializer Functions","slug":"jsonlogformatmeta-serializer-functions","link":"#jsonlogformatmeta-serializer-functions","children":[]}]},{"level":2,"title":"Standard Formatter","slug":"standard-formatter","link":"#standard-formatter","children":[]},{"level":2,"title":"Common Formatter","slug":"common-formatter","link":"#common-formatter","children":[{"level":3,"title":"CommonLogFormatMeta","slug":"commonlogformatmeta","link":"#commonlogformatmeta","children":[]}]},{"level":2,"title":"Creating Third-party Formatters","slug":"creating-third-party-formatters","link":"#creating-third-party-formatters","children":[{"level":3,"title":"Formatter Class","slug":"formatter-class","link":"#formatter-class","children":[]},{"level":3,"title":"timestampFormatter getter","slug":"timestampformatter-getter","link":"#timestampformatter-getter","children":[]},{"level":3,"title":"formatBrowser","slug":"formatbrowser","link":"#formatbrowser","children":[]},{"level":3,"title":"formatServer","slug":"formatserver","link":"#formatserver","children":[]},{"level":3,"title":"Using a Third-party Formatter","slug":"using-a-third-party-formatter","link":"#using-a-third-party-formatter","children":[]}]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"reference/formatters.md","excerpt":"\\n

The primary purpose of Adze is to give the user simple ways of shaping their logs to fit their\\nneeds. Adze comes with four formatters out of the box.

\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
FormatterValueDescription
Pretty\\"pretty\\"The default formatter. This prints logs in a pretty, human-readable format.
JSON\\"json\\"This formatter prints logs as machine-readable JSON objects that are compatible with the Bunyan CLI.
Standard\\"standard\\"This formatter prints human-readable logs for a simple stdout format for terminals or files.
Common\\"common\\"This formatter prints logs according to the Common Log Format.
"}');export{Y as comp,G as data}; diff --git a/assets/getters.html-Co3fsBHy.js b/assets/getters.html-ce0HfsWw.js similarity index 98% rename from assets/getters.html-Co3fsBHy.js rename to assets/getters.html-ce0HfsWw.js index 869cdd7..dc99916 100644 --- a/assets/getters.html-Co3fsBHy.js +++ b/assets/getters.html-ce0HfsWw.js @@ -1,4 +1,4 @@ -import{_ as i,r as l,c as p,b as a,d as n,e as t,w as e,a as o,o as c}from"./app-Cqk3MxnN.js";const d="/assets/modifierData-example-browser-SoWAmAJM.png",r="/assets/modifierData-example-node-V0hM7orG.png",u={},h=a("h1",{id:"data-getters",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#data-getters"},[a("span",null,"Data Getters")])],-1),m=o('
  • data - Returns the log data.
  • modifierData - Returns object containing key/values from called modifiers.
  • configuration - Returns the configuration that this log instance is using.

data

The data getter contains all of the finalized log data after the log has been terminated.

',3),g=a("code",null,"middleware",-1),k=a("code",null,"formatters",-1),f=o(`
PropertyTypeDescription
levelnumberThe level value of this log.
emojistringThe emoji associated to this log.
levelNamestringThe level name that this log was terminated with.
methodstringThe standard console method used to print this log.
stylestringThe styles used for pretty printing this log.
argsunknown[]The arguments provided to be logged.
messageunknown[]The formatted log arguments to be printed.

Example

import adze, { setup } from 'adze';
+import{_ as i,c as l,b as a,d as n,e as t,w as e,a as o,r as p,o as c}from"./app-_2IEvvvI.js";const d="/assets/modifierData-example-browser-SoWAmAJM.png",r="/assets/modifierData-example-node-V0hM7orG.png",u={},h=a("h1",{id:"data-getters",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#data-getters"},[a("span",null,"Data Getters")])],-1),m=o('
  • data - Returns the log data.
  • modifierData - Returns object containing key/values from called modifiers.
  • configuration - Returns the configuration that this log instance is using.

data

The data getter contains all of the finalized log data after the log has been terminated.

',3),g=a("code",null,"middleware",-1),k=a("code",null,"formatters",-1),f=o(`
PropertyTypeDescription
levelnumberThe level value of this log.
emojistringThe emoji associated to this log.
levelNamestringThe level name that this log was terminated with.
methodstringThe standard console method used to print this log.
stylestringThe styles used for pretty printing this log.
argsunknown[]The arguments provided to be logged.
messageunknown[]The formatted log arguments to be printed.

Example

import adze, { setup } from 'adze';
 
 const store = setup();
 // Let's create a log listener and then access the log data
@@ -24,4 +24,4 @@ import{_ as i,r as l,c as p,b as a,d as n,e as t,w as e,a as o,o as c}from"./app
 });
 // adze.withEmoji.log('This is a log');
 adze.ns('hello').log('This is a namespaced log.');
-
`,2);function b(w,y){const s=l("RouteLink");return c(),p("div",null,[h,a("p",null,[n("Every Adze log instance exposes three getters for getting log data. Usually you will want to "),t(s,{to:"/getting-started/capture-data.html"},{default:e(()=>[n("capture log data")]),_:1}),n(" when inside of a "),t(s,{to:"/reference/global-store.html#addlistener"},{default:e(()=>[n("listener")]),_:1}),n(" or a "),t(s,{to:"/reference/middleware.html"},{default:e(()=>[n("middleware")]),_:1}),n(" hook.")]),m,a("p",null,[n("In addition to all of the properties defined in the "),t(s,{to:"/reference/configuration.html#user-configuration"},{default:e(()=>[n("User Configuration")]),_:1}),n(" (with the exception of the "),g,n(" and "),k,n(" properties), the log data also includes the properties in the table below.")]),f,a("p",null,[n("The configuration getter returns the configuration object for this log instance. It will contain default values to fill in any omitted values from the provided "),t(s,{to:"/reference/configuration.html#user-configuration"},{default:e(()=>[n("User Configuration")]),_:1}),n(".")]),a("p",null,[n("If global configuration values are present from the "),t(s,{to:"/reference/global-store.html"},{default:e(()=>[n("Global Store")]),_:1}),n(", then those values will take precendence and override the default or user configured values.")]),a("p",null,[n("For more information on the values, refer to the "),t(s,{to:"/reference/configuration.html"},{default:e(()=>[n("Configuration page")]),_:1}),n(".")]),v])}const x=i(u,[["render",b],["__file","getters.html.vue"]]),T=JSON.parse('{"path":"/reference/getters.html","title":"Data Getters","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"data","slug":"data","link":"#data","children":[]},{"level":2,"title":"modifierData","slug":"modifierdata","link":"#modifierdata","children":[]},{"level":2,"title":"configuration","slug":"configuration","link":"#configuration","children":[]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"reference/getters.md","excerpt":"\\n

Every Adze log instance exposes three getters for getting log data. Usually you will want to\\ncapture log data when inside of a\\nlistener or a middleware hook.

"}');export{x as comp,T as data}; +
`,2);function b(w,y){const s=p("RouteLink");return c(),l("div",null,[h,a("p",null,[n("Every Adze log instance exposes three getters for getting log data. Usually you will want to "),t(s,{to:"/getting-started/capture-data.html"},{default:e(()=>[n("capture log data")]),_:1}),n(" when inside of a "),t(s,{to:"/reference/global-store.html#addlistener"},{default:e(()=>[n("listener")]),_:1}),n(" or a "),t(s,{to:"/reference/middleware.html"},{default:e(()=>[n("middleware")]),_:1}),n(" hook.")]),m,a("p",null,[n("In addition to all of the properties defined in the "),t(s,{to:"/reference/configuration.html#user-configuration"},{default:e(()=>[n("User Configuration")]),_:1}),n(" (with the exception of the "),g,n(" and "),k,n(" properties), the log data also includes the properties in the table below.")]),f,a("p",null,[n("The configuration getter returns the configuration object for this log instance. It will contain default values to fill in any omitted values from the provided "),t(s,{to:"/reference/configuration.html#user-configuration"},{default:e(()=>[n("User Configuration")]),_:1}),n(".")]),a("p",null,[n("If global configuration values are present from the "),t(s,{to:"/reference/global-store.html"},{default:e(()=>[n("Global Store")]),_:1}),n(", then those values will take precendence and override the default or user configured values.")]),a("p",null,[n("For more information on the values, refer to the "),t(s,{to:"/reference/configuration.html"},{default:e(()=>[n("Configuration page")]),_:1}),n(".")]),v])}const x=i(u,[["render",b],["__file","getters.html.vue"]]),T=JSON.parse('{"path":"/reference/getters.html","title":"Data Getters","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"data","slug":"data","link":"#data","children":[]},{"level":2,"title":"modifierData","slug":"modifierdata","link":"#modifierdata","children":[]},{"level":2,"title":"configuration","slug":"configuration","link":"#configuration","children":[]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"reference/getters.md","excerpt":"\\n

Every Adze log instance exposes three getters for getting log data. Usually you will want to\\ncapture log data when inside of a\\nlistener or a middleware hook.

"}');export{x as comp,T as data}; diff --git a/assets/getting-started-is-easy.html-FJyZ_Eyr.js b/assets/getting-started-is-easy.html-DeYolDfw.js similarity index 98% rename from assets/getting-started-is-easy.html-FJyZ_Eyr.js rename to assets/getting-started-is-easy.html-DeYolDfw.js index d4d81d0..44ba00c 100644 --- a/assets/getting-started-is-easy.html-FJyZ_Eyr.js +++ b/assets/getting-started-is-easy.html-DeYolDfw.js @@ -1,4 +1,4 @@ -import{_ as n,c as s,o as a,a as e}from"./app-Cqk3MxnN.js";const t={},i=e(`

First install Adze from npm.

# npm
+import{_ as n,c as s,o as a,a as e}from"./app-_2IEvvvI.js";const t={},i=e(`

First install Adze from npm.

# npm
 npm install -S adze
 
 # pnpm
diff --git a/assets/global-store.html-BuWZ5jRt.js b/assets/global-store.html-BZonpzMK.js
similarity index 96%
rename from assets/global-store.html-BuWZ5jRt.js
rename to assets/global-store.html-BZonpzMK.js
index 2e520e0..71e2714 100644
--- a/assets/global-store.html-BuWZ5jRt.js
+++ b/assets/global-store.html-BZonpzMK.js
@@ -1,4 +1,4 @@
-import{_ as l,r as o,c,b as s,d as n,e,w as t,a as p,o as i}from"./app-Cqk3MxnN.js";const r="/assets/teardown-example-browser-B0IcTQ34.png",u="/assets/teardown-example-node-DX_dhcAY.png",d={},k=s("h1",{id:"global-store",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#global-store"},[s("span",null,"Global Store")])],-1),h=s("strong",null,"Global Store",-1),m=s("h2",{id:"setup-function",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#setup-function"},[s("span",null,"Setup Function")])],-1),v=s("code",null,"setup()",-1),b=s("p",null,[n("The setup function also returns a reference to the "),s("strong",null,"Global Store"),n(" instance. You can use this reference to apply "),s("a",{href:"#addlistener"},"listeners"),n(" among other things.")],-1),g=p(`

Interface

function setup<Meta extends Record<string, any> = Record<string, any>>(
+import{_ as l,c as o,b as s,d as n,e,w as t,a as p,r as c,o as i}from"./app-_2IEvvvI.js";const r="/assets/teardown-example-browser-B0IcTQ34.png",u="/assets/teardown-example-node-DX_dhcAY.png",d={},k=s("h1",{id:"global-store",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#global-store"},[s("span",null,"Global Store")])],-1),h=s("strong",null,"Global Store",-1),m=s("h2",{id:"setup-function",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#setup-function"},[s("span",null,"Setup Function")])],-1),v=s("code",null,"setup()",-1),b=s("p",null,[n("The setup function also returns a reference to the "),s("strong",null,"Global Store"),n(" instance. You can use this reference to apply "),s("a",{href:"#addlistener"},"listeners"),n(" among other things.")],-1),g=p(`

Interface

function setup<Meta extends Record<string, any> = Record<string, any>>(
   cfg?: UserConfiguration<Meta>
 ): AdzeGlobal;
 

Example

import adze, { setup } from 'adze';
@@ -157,4 +157,4 @@ import{_ as l,r as o,c,b as s,d as n,e,w as t,a as p,o as i}from"./app-Cqk3MxnN.
 adze.label('foo').log('This is a test log.');
 
 const logListeners = store.getListeners(6);
-
`,52);function L(T,j){const a=o("RouteLink");return i(),c("div",null,[k,s("p",null,[n("The "),h,n(" is a global cache and control hub for your Adze logs. For a more in depth review of how it works, refer to the "),e(a,{to:"/getting-started/global-store.html"},{default:t(()=>[n("Global Store")]),_:1}),n(" section of the "),e(a,{to:"/getting-started/introduction.html"},{default:t(()=>[n("Getting Started")]),_:1}),n(" guide.")]),m,s("p",null,[n("The primary way of configuring the global store is through the "),v,n(" function. This function accepts a "),e(a,{to:"/reference/configuration.html#user-configuration"},{default:t(()=>[n("UserConfiguration")]),_:1}),n(" value and uses it as a global configuration override.")]),b,s("p",null,[n("For a more in depth tutorial on using the setup function, refer to the "),e(a,{to:"/getting-started/global-store.html#using-the-setup-function"},{default:t(()=>[n("using the setup function")]),_:1}),n(" section of the "),e(a,{to:"/getting-started/global-store.html"},{default:t(()=>[n("Global Store")]),_:1}),n(" page of the "),e(a,{to:"/getting-started/introduction.html"},{default:t(()=>[n("Getting Started")]),_:1}),n(" guide.")]),g,s("p",null,[n("These are used for retrieving data and accessing the browser console "),e(a,{to:"/reference/tools.html"},{default:t(()=>[n("tools")]),_:1}),n(".")]),f,s("p",null,[n("Returns a reference to the browser console "),e(a,{to:"/reference/tools.html"},{default:t(()=>[n("tools")]),_:1}),n(" for filtering and recalling logs.")]),y,s("p",null,[n("These are used for caching logs, setting up log listeners, and creating and modifying "),e(a,{to:"/reference/modifiers.html#label"},{default:t(()=>[n("labels")]),_:1}),n(".")]),w,x,z,s("p",null,[s("strong",null,[n("This is done automatically when "),e(a,{to:"/reference/configuration.html"},{default:t(()=>[n("log caching")]),_:1}),n(" is enabled.")])]),_])}const I=l(d,[["render",L],["__file","global-store.html.vue"]]),A=JSON.parse('{"path":"/reference/global-store.html","title":"Global Store","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Setup Function","slug":"setup-function","link":"#setup-function","children":[]},{"level":2,"title":"Teardown Function","slug":"teardown-function","link":"#teardown-function","children":[]},{"level":2,"title":"Public Getters","slug":"public-getters","link":"#public-getters","children":[{"level":3,"title":"cache","slug":"cache","link":"#cache","children":[]},{"level":3,"title":"configuration","slug":"configuration","link":"#configuration","children":[]},{"level":3,"title":"pid","slug":"pid","link":"#pid","children":[]},{"level":3,"title":"tools","slug":"tools","link":"#tools","children":[]}]},{"level":2,"title":"Public Methods","slug":"public-methods","link":"#public-methods","children":[{"level":3,"title":"addLogToCache","slug":"addlogtocache","link":"#addlogtocache","children":[]},{"level":3,"title":"clearCache","slug":"clearcache","link":"#clearcache","children":[]},{"level":3,"title":"getLabel","slug":"getlabel","link":"#getlabel","children":[]},{"level":3,"title":"setLabel","slug":"setlabel","link":"#setlabel","children":[]},{"level":3,"title":"addListener","slug":"addlistener","link":"#addlistener","children":[]},{"level":3,"title":"removeListener","slug":"removelistener","link":"#removelistener","children":[]},{"level":3,"title":"getListeners","slug":"getlisteners","link":"#getlisteners","children":[]}]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"reference/global-store.md","excerpt":"\\n

The Global Store is a global cache and control hub for your Adze logs. For a more in depth\\nreview of how it works, refer to the Global Store section of\\nthe Getting Started guide.

"}');export{I as comp,A as data}; +
`,52);function L(T,j){const a=c("RouteLink");return i(),o("div",null,[k,s("p",null,[n("The "),h,n(" is a global cache and control hub for your Adze logs. For a more in depth review of how it works, refer to the "),e(a,{to:"/getting-started/global-store.html"},{default:t(()=>[n("Global Store")]),_:1}),n(" section of the "),e(a,{to:"/getting-started/introduction.html"},{default:t(()=>[n("Getting Started")]),_:1}),n(" guide.")]),m,s("p",null,[n("The primary way of configuring the global store is through the "),v,n(" function. This function accepts a "),e(a,{to:"/reference/configuration.html#user-configuration"},{default:t(()=>[n("UserConfiguration")]),_:1}),n(" value and uses it as a global configuration override.")]),b,s("p",null,[n("For a more in depth tutorial on using the setup function, refer to the "),e(a,{to:"/getting-started/global-store.html#using-the-setup-function"},{default:t(()=>[n("using the setup function")]),_:1}),n(" section of the "),e(a,{to:"/getting-started/global-store.html"},{default:t(()=>[n("Global Store")]),_:1}),n(" page of the "),e(a,{to:"/getting-started/introduction.html"},{default:t(()=>[n("Getting Started")]),_:1}),n(" guide.")]),g,s("p",null,[n("These are used for retrieving data and accessing the browser console "),e(a,{to:"/reference/tools.html"},{default:t(()=>[n("tools")]),_:1}),n(".")]),f,s("p",null,[n("Returns a reference to the browser console "),e(a,{to:"/reference/tools.html"},{default:t(()=>[n("tools")]),_:1}),n(" for filtering and recalling logs.")]),y,s("p",null,[n("These are used for caching logs, setting up log listeners, and creating and modifying "),e(a,{to:"/reference/modifiers.html#label"},{default:t(()=>[n("labels")]),_:1}),n(".")]),w,x,z,s("p",null,[s("strong",null,[n("This is done automatically when "),e(a,{to:"/reference/configuration.html"},{default:t(()=>[n("log caching")]),_:1}),n(" is enabled.")])]),_])}const I=l(d,[["render",L],["__file","global-store.html.vue"]]),A=JSON.parse('{"path":"/reference/global-store.html","title":"Global Store","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Setup Function","slug":"setup-function","link":"#setup-function","children":[]},{"level":2,"title":"Teardown Function","slug":"teardown-function","link":"#teardown-function","children":[]},{"level":2,"title":"Public Getters","slug":"public-getters","link":"#public-getters","children":[{"level":3,"title":"cache","slug":"cache","link":"#cache","children":[]},{"level":3,"title":"configuration","slug":"configuration","link":"#configuration","children":[]},{"level":3,"title":"pid","slug":"pid","link":"#pid","children":[]},{"level":3,"title":"tools","slug":"tools","link":"#tools","children":[]}]},{"level":2,"title":"Public Methods","slug":"public-methods","link":"#public-methods","children":[{"level":3,"title":"addLogToCache","slug":"addlogtocache","link":"#addlogtocache","children":[]},{"level":3,"title":"clearCache","slug":"clearcache","link":"#clearcache","children":[]},{"level":3,"title":"getLabel","slug":"getlabel","link":"#getlabel","children":[]},{"level":3,"title":"setLabel","slug":"setlabel","link":"#setlabel","children":[]},{"level":3,"title":"addListener","slug":"addlistener","link":"#addlistener","children":[]},{"level":3,"title":"removeListener","slug":"removelistener","link":"#removelistener","children":[]},{"level":3,"title":"getListeners","slug":"getlisteners","link":"#getlisteners","children":[]}]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"reference/global-store.md","excerpt":"\\n

The Global Store is a global cache and control hub for your Adze logs. For a more in depth\\nreview of how it works, refer to the Global Store section of\\nthe Getting Started guide.

"}');export{I as comp,A as data}; diff --git a/assets/global-store.html-B4wd7Ief.js b/assets/global-store.html-CSjJp1Ur.js similarity index 97% rename from assets/global-store.html-B4wd7Ief.js rename to assets/global-store.html-CSjJp1Ur.js index 5b52252..411b51d 100644 --- a/assets/global-store.html-B4wd7Ief.js +++ b/assets/global-store.html-CSjJp1Ur.js @@ -1,4 +1,4 @@ -import{_ as o,r as l,c as i,b as t,d as n,e as a,w as e,a as p,o as r}from"./app-Cqk3MxnN.js";const c="/assets/microfrontend-example-5znqJunK.png",u="/assets/overrides-example-browser-Bvx--2G9.png",d="/assets/overrides-example-node-D18ZIMDr.png",g={},h=t("h1",{id:"global-store",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#global-store"},[t("span",null,"Global Store")])],-1),m=t("strong",null,"Global Store",-1),k=p('

How Does It Work?

One of the primary purposes of the Global Store is to enable large project to centrally control how their logs render. Let's imagine we have a micro-frontend architecture where we have multiple front-end applications running in the same browser context.

Microfrontend example

One of the major challenges with logging with microfrontends is that all of the applications share the same runtime environment. This means that any logs that an application generates are mixed in with logs generated by any of the other applications.

Debugging one of these apps would mean we would have to sort through a lot of logs that are not applicable. In addition, there would normally be no easy way to configure the logging of these applications centrally.

With the Adze Global Store you can easily configure all instances running in the same browser context. Let's take a look at some code:

import adze from 'adze';
+import{_ as o,c as l,b as t,d as n,e as a,w as e,a as i,r as p,o as r}from"./app-_2IEvvvI.js";const c="/assets/microfrontend-example-5znqJunK.png",u="/assets/overrides-example-browser-Bvx--2G9.png",d="/assets/overrides-example-node-D18ZIMDr.png",g={},h=t("h1",{id:"global-store",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#global-store"},[t("span",null,"Global Store")])],-1),m=t("strong",null,"Global Store",-1),k=i('

How Does It Work?

One of the primary purposes of the Global Store is to enable large project to centrally control how their logs render. Let's imagine we have a micro-frontend architecture where we have multiple front-end applications running in the same browser context.

Microfrontend example

One of the major challenges with logging with microfrontends is that all of the applications share the same runtime environment. This means that any logs that an application generates are mixed in with logs generated by any of the other applications.

Debugging one of these apps would mean we would have to sort through a lot of logs that are not applicable. In addition, there would normally be no easy way to configure the logging of these applications centrally.

With the Adze Global Store you can easily configure all instances running in the same browser context. Let's take a look at some code:

import adze from 'adze';
 
 adze.log('This is a log!');
 

This code looks pretty simple. We're just importing Adze and generating a single log. However, behind the scenes, Adze will check if a Global Store exists, and if it doesn't exist it will automatically instantiate an instance of it in the global context of your environment.

Here's where it will be created:

  • window.$adzeGlobal - If your environment is a web browser / deno, the Global Store will be attached to the window.
  • global.$adzeGlobal - If your environment is node / bun, the Global Store will be attached to the global value.

The logs that are generated within your runtime context will take any configuration that is set on the Global Store and merge it on top of its current configuration as an override.

What this means is that even if multiple applications generate logs, you can control all of the logs by providing configuration to the Global Store.

Using the Setup Function

Let's look at an example of overriding log configuration centrally using the Global Store with the setup() function.

import adze, { setup } from 'adze';
@@ -25,4 +25,4 @@ import{_ as o,r as l,c as i,b as t,d as n,e as a,w as e,a as p,o as r}from"./app
 logger.info('Welcome to Application #2!');
 logger.error('Oh no! An error occurred in application #2!');
 logger.debug('Logging some more details for debugging purposes.', { foo: 'bar' });
-

Browser Output

Example browser output of the active level overrides

Server Output

Example server output of the active level overrides


',24);function f(b,v){const s=l("RouteLink");return r(),i("div",null,[h,t("p",null,[n("The "),m,n(" is a global cache and control hub for your Adze logs. The primary purposes of a GlobalStore are to enable global "),a(s,{to:"/reference/configuration.html"},{default:e(()=>[n("configuration")]),_:1}),n(" overrides, log listeners, and "),a(s,{to:"/reference/global-store.html#tools"},{default:e(()=>[n("tools")]),_:1}),n(" for filtering and recalling your "),a(s,{to:"/reference/configuration.html#user-configuration"},{default:e(()=>[n("cached")]),_:1}),n(" logs. To see how a GlobalStore fits into the architecture, refer to the "),a(s,{to:"/getting-started/introduction.html#lifecycle"},{default:e(()=>[n("Lifecycle Diagram")]),_:1}),n(".")]),k,t("p",null,[n("Notice that in our example output that the "),a(s,{to:"/reference/terminators.html#log"},{default:e(()=>[n("log")]),_:1}),n(" and "),a(s,{to:"/reference/terminators.html#debug"},{default:e(()=>[n("debug")]),_:1}),n(" logs are not rendering. This is because our store is forcing their log level to only show up to "),a(s,{to:"/reference/terminators.html#info"},{default:e(()=>[n("info")]),_:1}),n(" level. Also, even though each application is defining the log format to use the "),a(s,{to:"/reference/formatters.html#json-formatter"},{default:e(()=>[n("json format")]),_:1}),n(", the logs are printing with the "),a(s,{to:"/reference/formatters.html#pretty-formatter"},{default:e(()=>[n("pretty format")]),_:1}),n(" because the log configuration is overwritten by the global configuration.")])])}const y=o(g,[["render",f],["__file","global-store.html.vue"]]),_=JSON.parse('{"path":"/getting-started/global-store.html","title":"Global Store","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"How Does It Work?","slug":"how-does-it-work","link":"#how-does-it-work","children":[]},{"level":2,"title":"Using the Setup Function","slug":"using-the-setup-function","link":"#using-the-setup-function","children":[]}],"git":{"updatedTime":1726150288000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1},{"name":"Andrew Stacy","email":"astacy@stratacache.com","commits":1}]},"filePathRelative":"getting-started/global-store.md","excerpt":"\\n

The Global Store is a global cache and control hub for your Adze logs. The primary purposes of a\\nGlobalStore are to enable global configuration overrides, log listeners,\\nand tools for filtering and recalling your cached logs. To\\nsee how a GlobalStore fits into the architecture, refer to the Lifecycle Diagram.

"}');export{y as comp,_ as data}; +

Browser Output

Example browser output of the active level overrides

Server Output

Example server output of the active level overrides


',24);function f(b,v){const s=p("RouteLink");return r(),l("div",null,[h,t("p",null,[n("The "),m,n(" is a global cache and control hub for your Adze logs. The primary purposes of a GlobalStore are to enable global "),a(s,{to:"/reference/configuration.html"},{default:e(()=>[n("configuration")]),_:1}),n(" overrides, log listeners, and "),a(s,{to:"/reference/global-store.html#tools"},{default:e(()=>[n("tools")]),_:1}),n(" for filtering and recalling your "),a(s,{to:"/reference/configuration.html#user-configuration"},{default:e(()=>[n("cached")]),_:1}),n(" logs. To see how a GlobalStore fits into the architecture, refer to the "),a(s,{to:"/getting-started/introduction.html#lifecycle"},{default:e(()=>[n("Lifecycle Diagram")]),_:1}),n(".")]),k,t("p",null,[n("Notice that in our example output that the "),a(s,{to:"/reference/terminators.html#log"},{default:e(()=>[n("log")]),_:1}),n(" and "),a(s,{to:"/reference/terminators.html#debug"},{default:e(()=>[n("debug")]),_:1}),n(" logs are not rendering. This is because our store is forcing their log level to only show up to "),a(s,{to:"/reference/terminators.html#info"},{default:e(()=>[n("info")]),_:1}),n(" level. Also, even though each application is defining the log format to use the "),a(s,{to:"/reference/formatters.html#json-formatter"},{default:e(()=>[n("json format")]),_:1}),n(", the logs are printing with the "),a(s,{to:"/reference/formatters.html#pretty-formatter"},{default:e(()=>[n("pretty format")]),_:1}),n(" because the log configuration is overwritten by the global configuration.")])])}const y=o(g,[["render",f],["__file","global-store.html.vue"]]),_=JSON.parse('{"path":"/getting-started/global-store.html","title":"Global Store","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"How Does It Work?","slug":"how-does-it-work","link":"#how-does-it-work","children":[]},{"level":2,"title":"Using the Setup Function","slug":"using-the-setup-function","link":"#using-the-setup-function","children":[]}],"git":{"updatedTime":1726150288000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1},{"name":"Andrew Stacy","email":"astacy@stratacache.com","commits":1}]},"filePathRelative":"getting-started/global-store.md","excerpt":"\\n

The Global Store is a global cache and control hub for your Adze logs. The primary purposes of a\\nGlobalStore are to enable global configuration overrides, log listeners,\\nand tools for filtering and recalling your cached logs. To\\nsee how a GlobalStore fits into the architecture, refer to the Lifecycle Diagram.

"}');export{y as comp,_ as data}; diff --git a/assets/global-store.html-CYGSUtI2.js b/assets/global-store.html-DTY6bE3e.js similarity index 85% rename from assets/global-store.html-CYGSUtI2.js rename to assets/global-store.html-DTY6bE3e.js index 4944514..8a2a54c 100644 --- a/assets/global-store.html-CYGSUtI2.js +++ b/assets/global-store.html-DTY6bE3e.js @@ -1 +1 @@ -import{_ as o,r as l,c as r,b as t,d as e,e as n,w as s,o as i}from"./app-Cqk3MxnN.js";const c={},h=t("p",null,"What this means for microfrontend's is that if you have multiple frontend applications generating Adze logs, you can easily control them centrally. Change the log level, filter out logs that aren't relevant, or even change the format for all logs regardless of the source.",-1),m=t("p",null,[e("For an in-depth tutorial, visit this "),t("a",{href:"https://andrewstacy.com/blog/logging-with-micro-frontends/",target:"_blank",rel:"noopener noreferrer"},"article"),e(".")],-1);function g(f,d){const a=l("RouteLink");return i(),r("div",null,[t("p",null,[e("Because Adze automatically comes with a "),n(a,{to:"/reference/global-store.html"},{default:s(()=>[e("global store")]),_:1}),e(" that can have configuration applied that all logs will inherit from.")]),h,m])}const u=o(c,[["render",g],["__file","global-store.html.vue"]]),_=JSON.parse(`{"path":"/home/global-store.html","title":"","lang":"en-US","frontmatter":{},"headers":[],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"home/global-store.md","excerpt":"

Because Adze automatically comes with a global store that can have\\nconfiguration applied that all logs will inherit from.

\\n

What this means for microfrontend's is that\\nif you have multiple frontend applications generating Adze logs, you can easily control them\\ncentrally. Change the log level, filter out logs that aren't relevant, or even change the format\\nfor all logs regardless of the source.

"}`);export{u as comp,_ as data}; +import{_ as o,c as l,b as t,d as e,e as r,w as n,r as s,o as i}from"./app-_2IEvvvI.js";const c={},h=t("p",null,"What this means for microfrontend's is that if you have multiple frontend applications generating Adze logs, you can easily control them centrally. Change the log level, filter out logs that aren't relevant, or even change the format for all logs regardless of the source.",-1),m=t("p",null,[e("For an in-depth tutorial, visit this "),t("a",{href:"https://andrewstacy.com/blog/logging-with-micro-frontends/",target:"_blank",rel:"noopener noreferrer"},"article"),e(".")],-1);function g(f,d){const a=s("RouteLink");return i(),l("div",null,[t("p",null,[e("Because Adze automatically comes with a "),r(a,{to:"/reference/global-store.html"},{default:n(()=>[e("global store")]),_:1}),e(" that can have configuration applied that all logs will inherit from.")]),h,m])}const u=o(c,[["render",g],["__file","global-store.html.vue"]]),_=JSON.parse(`{"path":"/home/global-store.html","title":"","lang":"en-US","frontmatter":{},"headers":[],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"home/global-store.md","excerpt":"

Because Adze automatically comes with a global store that can have\\nconfiguration applied that all logs will inherit from.

\\n

What this means for microfrontend's is that\\nif you have multiple frontend applications generating Adze logs, you can easily control them\\ncentrally. Change the log level, filter out logs that aren't relevant, or even change the format\\nfor all logs regardless of the source.

"}`);export{u as comp,_ as data}; diff --git a/assets/index.html-B5AXf1gE.js b/assets/index.html-Dbd59c1h.js similarity index 95% rename from assets/index.html-B5AXf1gE.js rename to assets/index.html-Dbd59c1h.js index ff83a92..c1eda06 100644 --- a/assets/index.html-B5AXf1gE.js +++ b/assets/index.html-Dbd59c1h.js @@ -1 +1 @@ -import{_ as e,c as t,o as a}from"./app-Cqk3MxnN.js";const s={};function i(r,o){return a(),t("div")}const m=e(s,[["render",i],["__file","index.html.vue"]]),l=JSON.parse('{"path":"/","title":"Home","lang":"en-US","frontmatter":{"home":true,"title":"Home","heroImage":"/images/logo.svg","heroImageDark":"/images/logo-light.svg","layout":"Home","actions":[{"text":"Get Started","link":"/getting-started.html","type":"primary"},{"text":"Introduction","link":"https://vuejs.press/guide/introduction.html","type":"secondary"}],"features":[{"title":"Universal Javascript","image":"images/lumberjack-bust.svg","imageId":"lumberjack-bust","details":"This library \\"just works\\" with Bun, Deno, Node, or in the Browser."},{"title":"Chainable API","image":"images/chainsaw.svg","imageId":"chainsaw","details":"Write your logs as a chain of methods."},{"title":"Performant","image":"images/logs-small.svg","imageId":"logs-small","details":"VuePress generates pre-rendered static HTML for each page, and runs as an SPA once a page is loaded."}],"footer":"MIT Licensed | Copyright © 2018-present VuePress Community"},"headers":[],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"README.md","excerpt":""}');export{m as comp,l as data}; +import{_ as e,c as t,o as a}from"./app-_2IEvvvI.js";const s={};function i(r,o){return a(),t("div")}const m=e(s,[["render",i],["__file","index.html.vue"]]),l=JSON.parse('{"path":"/","title":"Home","lang":"en-US","frontmatter":{"home":true,"title":"Home","heroImage":"/images/logo.svg","heroImageDark":"/images/logo-light.svg","layout":"Home","actions":[{"text":"Get Started","link":"/getting-started.html","type":"primary"},{"text":"Introduction","link":"https://vuejs.press/guide/introduction.html","type":"secondary"}],"features":[{"title":"Universal Javascript","image":"images/lumberjack-bust.svg","imageId":"lumberjack-bust","details":"This library \\"just works\\" with Bun, Deno, Node, or in the Browser."},{"title":"Chainable API","image":"images/chainsaw.svg","imageId":"chainsaw","details":"Write your logs as a chain of methods."},{"title":"Performant","image":"images/logs-small.svg","imageId":"logs-small","details":"VuePress generates pre-rendered static HTML for each page, and runs as an SPA once a page is loaded."}],"footer":"MIT Licensed | Copyright © 2018-present VuePress Community"},"headers":[],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"README.md","excerpt":""}');export{m as comp,l as data}; diff --git a/assets/installation.html-C3I8OXbN.js b/assets/installation.html-75Y0CrjR.js similarity index 99% rename from assets/installation.html-C3I8OXbN.js rename to assets/installation.html-75Y0CrjR.js index 24864c2..53b1877 100644 --- a/assets/installation.html-C3I8OXbN.js +++ b/assets/installation.html-75Y0CrjR.js @@ -1,4 +1,4 @@ -import{_ as n,c as e,o as s,a}from"./app-Cqk3MxnN.js";const t={},i=a(`

Installing Adze

Install the Package

You can install Adze from NPM using the following command:

# npm
+import{_ as n,c as e,o as s,a}from"./app-_2IEvvvI.js";const t={},i=a(`

Installing Adze

Install the Package

You can install Adze from NPM using the following command:

# npm
 npm i -S adze
 
 #pnpm
diff --git a/assets/introduction.html-BOMqORSj.js b/assets/introduction.html-BOMqORSj.js
deleted file mode 100644
index 571dfb3..0000000
--- a/assets/introduction.html-BOMqORSj.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as i}from"./lifecycle-agZhburq.js";import{_ as o,r,c,b as t,d as e,e as n,w as l,o as s}from"./app-Cqk3MxnN.js";const d={},h=t("h1",{id:"introduction-lifecycle",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#introduction-lifecycle"},[t("span",null,"Introduction & Lifecycle")])],-1),u=t("p",null,"This section of the documentation will be focused on details about individual functions, log methods, data, types, etc. The reference manual is not intended to provide you with a walkthrough style tutorial.",-1),f=t("h2",{id:"lifecycle",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#lifecycle"},[t("span",null,"Lifecycle")])],-1),m=t("h3",{id:"lifecycle-diagram",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#lifecycle-diagram"},[t("span",null,"Lifecycle Diagram")])],-1),g=t("p",null,[t("img",{src:i,alt:"Lifecycle diagram of an Adze log"})],-1),p=t("h3",{id:"explanation",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#explanation"},[t("span",null,"Explanation")])],-1),_=t("p",null,"Modifier methods can be chained indefinitely whereas a terminator method which finalizes a log will not return the log instance and the chain is ended. At this point is when the properties of the log instance are evaluated and then the log message is generated and printed.",-1);function y(b,w){const a=r("RouteLink");return s(),c("div",null,[h,u,t("p",null,[e("For a step-by-step tutorial, please read through the "),n(a,{to:"/getting-started/introduction.html"},{default:l(()=>[e("Getting Started")]),_:1}),e(" user guide.")]),f,t("p",null,[e("Before diving into the rest of the reference manual, it can be beneficial to have an understanding of the workflow / lifecycle of an Adze log. Understanding the lifecycle is vital to understanding how "),n(a,{to:"/reference/middleware.html"},{default:l(()=>[e("middleware")]),_:1}),e(", "),n(a,{to:"/reference/global-store.html#addlistener"},{default:l(()=>[e("log listeners")]),_:1}),e(", and the "),n(a,{to:"/reference/global-store.html"},{default:l(()=>[e("global store")]),_:1}),e(" work.")]),m,g,t("p",null,[e("The Adze class is a class that contains static method equivalents for every "),n(a,{to:"/reference/modifiers.html"},{default:l(()=>[e("modifier")]),_:1}),e(" and "),n(a,{to:"/reference/terminators.html"},{default:l(()=>[e("terminator")]),_:1}),e(" method. If a modifier method has been called statically, a new instance of Adze will be created and returned, thus allowing you to chain more modifier method calls or call a terminator method.")]),p,_,t("p",null,[e("Throughout the termination process, various lifecycle hooks will be called on any "),n(a,{to:"/reference/middleware.html"},{default:l(()=>[e("middleware")]),_:1}),e(" instances that have been registered. This is useful for plugins to capture log data or manipulate logs in various ways.")]),t("p",null,[e("After a log has been terminated, its instance is stored in the "),n(a,{to:"/reference/global-store.html"},{default:l(()=>[e("Global Store")]),_:1}),e(" if "),n(a,{to:"/reference/configuration.html"},{default:l(()=>[e("caching is enabled")]),_:1}),e(". From the global store you can filter and recall logs that have already been generated using the "),n(a,{to:"/reference/tools.html"},{default:l(()=>[e("global store tools")]),_:1}),e(".")])])}const k=o(d,[["render",y],["__file","introduction.html.vue"]]),L=JSON.parse('{"path":"/reference/introduction.html","title":"Introduction & Lifecycle","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Lifecycle","slug":"lifecycle","link":"#lifecycle","children":[{"level":3,"title":"Lifecycle Diagram","slug":"lifecycle-diagram","link":"#lifecycle-diagram","children":[]},{"level":3,"title":"Explanation","slug":"explanation","link":"#explanation","children":[]}]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"reference/introduction.md","excerpt":"\\n

This section of the documentation will be focused on details about individual functions, log\\nmethods, data, types, etc. The reference manual is not intended to provide you with a walkthrough\\nstyle tutorial.

\\n

For a step-by-step tutorial, please read through the Getting Started\\nuser guide.

"}');export{k as comp,L as data}; diff --git a/assets/introduction.html-THVUd1K0.js b/assets/introduction.html-Bdn4keSF.js similarity index 98% rename from assets/introduction.html-THVUd1K0.js rename to assets/introduction.html-Bdn4keSF.js index 9aeafdd..d3cd201 100644 --- a/assets/introduction.html-THVUd1K0.js +++ b/assets/introduction.html-Bdn4keSF.js @@ -1,4 +1,4 @@ -import{_ as i}from"./demo-CDG8Pcr1.js";import{_ as r,r as l,c as p,b as a,d as e,e as s,w as t,a as o,o as c}from"./app-Cqk3MxnN.js";const d="/assets/adze-DDZEO4kF.jpg",u="/assets/api_example_output_1-DGiY5HZ4.png",h="/assets/api_example_output_2-D5B9-3bs.png",m={},g=o('

Introduction

Why is this named Adze?

A drawing of a man using an adze to shape a log

Illustration from Wikipedia

Adze - a cutting tool that ... is used chiefly for shaping wood.

Pronounced as "adz"

Adze was chosen as a name for this library to maintain solidarity with the logging puns and to emphasize that this library is a tool for shaping the logs of your application.

Why should I use Adze?

TIP

Adze is UNIVERSAL, meaning it can run in any JS runtime (node, bun, deno, browser) without any special considerations.

Compared to existing Javascript logging libraries, Adze sets itself apart because it is universal, meaning it can run in both server and browser environments with zero config. Other libraries, such as Winston or Bunyan only support server environments. Libraries like Pino and Log4JS support both environments, but it either requires some configuration or it only provides you with a very limited feature set. None of them directly support Deno or Bun.

Javascript frameworks have been shifting to server-side rendering (SSR) and to micro-frontend style architectures. Both of these architecture approaches present unique challenges with logging in a production-ready environment. Because Adze is universal by nature, you can write your logs the same way throughout your application and it will just work.

Aside from universalism, Adze also offers many other compelling features:

',11),f=a("li",null,[e("First-class "),a("a",{href:"https://typescriptlang.org/",target:"_blank",rel:"noopener noreferrer"},"TypeScript"),e(" support (not bolted-on)")],-1),k=a("li",null,[e("Wraps and extends the entire "),a("a",{href:"https://developer.mozilla.org/en-US/docs/Web/API/console",target:"_blank",rel:"noopener noreferrer"},"standard API")],-1),b=a("a",{href:"https://github.com/trentm/node-bunyan?tab=readme-ov-file#cli-usage",target:"_blank",rel:"noopener noreferrer"},"Bunyan CLI",-1),w=a("a",{href:"https://en.wikipedia.org/wiki/Common_Log_Format",target:"_blank",rel:"noopener noreferrer"},"Common Log Format",-1),v=a("li",null,"Everything is customizable and configurable",-1),_=a("li",null,"and much more...",-1),y=o('

Here is a simple preview

Preview of Adze logs

This preview was generated from the same code executed in both the browser (left) and the server (right) environments.

What does the API look like?

As stated above, Adze offers an easy to use, chainable API. To create a log you simply chain together an Adze log instance with a series of modifiers and then end with a terminator. Here's an example of creating a log with a namespace:

import adze from 'adze';
+import{_ as i}from"./demo-CDG8Pcr1.js";import{_ as r,c as l,b as a,d as e,e as s,w as t,a as o,r as p,o as c}from"./app-_2IEvvvI.js";const d="/assets/adze-DDZEO4kF.jpg",u="/assets/api_example_output_1-DGiY5HZ4.png",h="/assets/api_example_output_2-D5B9-3bs.png",m={},g=o('

Introduction

Why is this named Adze?

A drawing of a man using an adze to shape a log

Illustration from Wikipedia

Adze - a cutting tool that ... is used chiefly for shaping wood.

Pronounced as "adz"

Adze was chosen as a name for this library to maintain solidarity with the logging puns and to emphasize that this library is a tool for shaping the logs of your application.

Why should I use Adze?

TIP

Adze is UNIVERSAL, meaning it can run in any JS runtime (node, bun, deno, browser) without any special considerations.

Compared to existing Javascript logging libraries, Adze sets itself apart because it is universal, meaning it can run in both server and browser environments with zero config. Other libraries, such as Winston or Bunyan only support server environments. Libraries like Pino and Log4JS support both environments, but it either requires some configuration or it only provides you with a very limited feature set. None of them directly support Deno or Bun.

Javascript frameworks have been shifting to server-side rendering (SSR) and to micro-frontend style architectures. Both of these architecture approaches present unique challenges with logging in a production-ready environment. Because Adze is universal by nature, you can write your logs the same way throughout your application and it will just work.

Aside from universalism, Adze also offers many other compelling features:

',11),f=a("li",null,[e("First-class "),a("a",{href:"https://typescriptlang.org/",target:"_blank",rel:"noopener noreferrer"},"TypeScript"),e(" support (not bolted-on)")],-1),k=a("li",null,[e("Wraps and extends the entire "),a("a",{href:"https://developer.mozilla.org/en-US/docs/Web/API/console",target:"_blank",rel:"noopener noreferrer"},"standard API")],-1),b=a("a",{href:"https://github.com/trentm/node-bunyan?tab=readme-ov-file#cli-usage",target:"_blank",rel:"noopener noreferrer"},"Bunyan CLI",-1),w=a("a",{href:"https://en.wikipedia.org/wiki/Common_Log_Format",target:"_blank",rel:"noopener noreferrer"},"Common Log Format",-1),v=a("li",null,"Everything is customizable and configurable",-1),_=a("li",null,"and much more...",-1),y=o('

Here is a simple preview

Preview of Adze logs

This preview was generated from the same code executed in both the browser (left) and the server (right) environments.

What does the API look like?

As stated above, Adze offers an easy to use, chainable API. To create a log you simply chain together an Adze log instance with a series of modifiers and then end with a terminator. Here's an example of creating a log with a namespace:

import adze from 'adze';
 
 adze.namespace('example').log('Example log');
 

The output of this would look like the following:

Adze log example

What about child loggers?

You might be asking yourself, "the chainable API looks nice, but how about creating reusable loggers throughout my application?"

// logger.ts
@@ -10,4 +10,4 @@ import{_ as i}from"./demo-CDG8Pcr1.js";import{_ as r,r as l,c as p,b as a,d as e
 import { logger } from './logger.ts';
 
 logger.log('This was generated by the child logger.');
-

The output of this would look like the following:

Example of Adze child logger

',14);function z(A,x){const n=l("RouteLink");return c(),p("div",null,[g,a("ul",null,[f,k,a("li",null,[e("A convenient "),s(n,{to:"/getting-started/concepts.html"},{default:t(()=>[e("chainable API")]),_:1})]),a("li",null,[s(n,{to:"/getting-started/capture-data.html#log-listeners"},{default:t(()=>[e("Log Listeners")]),_:1}),e(" for capturing log data")]),a("li",null,[s(n,{to:"/reference/middleware.html"},{default:t(()=>[e("Middleware")]),_:1}),e(" support for "),s(n,{to:"/plugins.html"},{default:t(()=>[e("plugins")]),_:1}),e(" and transporting logs")]),a("li",null,[s(n,{to:"/getting-started/annotation.html"},{default:t(()=>[e("Log annotations")]),_:1}),e(" such as "),s(n,{to:"/reference/modifiers.html#namespace--ns"},{default:t(()=>[e("namespaces")]),_:1}),e(", "),s(n,{to:"/reference/modifiers.html#label"},{default:t(()=>[e("labels")]),_:1}),e(", and other "),s(n,{to:"/reference/modifiers.html#meta"},{default:t(()=>[e("meta data")]),_:1})]),a("li",null,[e("Four formats supported out of the box: "),a("ul",null,[a("li",null,[s(n,{to:"/reference/formatters.html#pretty-formatter"},{default:t(()=>[e("Pretty")]),_:1}),e(" - Human readable logs that are easy on the eyes")]),a("li",null,[s(n,{to:"/reference/formatters.html#json-formatter"},{default:t(()=>[e("JSON")]),_:1}),e(" - Machine readable logs that are compatible with the "),b]),a("li",null,[s(n,{to:"/reference/formatters.html#standard-formatter"},{default:t(()=>[e("Standard")]),_:1}),e(" - Human readable stdout logs")]),a("li",null,[s(n,{to:"/reference/formatters.html#common-formatter"},{default:t(()=>[e("Common")]),_:1}),e(" - Logs that adhere to the "),w])])]),v,a("li",null,[s(n,{to:"/reference/tools.html"},{default:t(()=>[e("Tools")]),_:1}),e(" for caching, filtering, and recalling logs")]),a("li",null,[e("Support for creating "),s(n,{to:"/getting-started/threading.html"},{default:t(()=>[e("log threads")]),_:1}),e(" to track data across multiple scopes")]),a("li",null,[e("Convenient "),s(n,{to:"/reference/terminators.html#seal"},{default:t(()=>[e("child logger")]),_:1}),e(" API's")]),_]),y])}const P=r(m,[["render",z],["__file","introduction.html.vue"]]),W=JSON.parse('{"path":"/getting-started/introduction.html","title":"Introduction","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Why is this named Adze?","slug":"why-is-this-named-adze","link":"#why-is-this-named-adze","children":[]},{"level":2,"title":"Why should I use Adze?","slug":"why-should-i-use-adze","link":"#why-should-i-use-adze","children":[{"level":3,"title":"Here is a simple preview","slug":"here-is-a-simple-preview","link":"#here-is-a-simple-preview","children":[]}]},{"level":2,"title":"What does the API look like?","slug":"what-does-the-api-look-like","link":"#what-does-the-api-look-like","children":[{"level":3,"title":"What about child loggers?","slug":"what-about-child-loggers","link":"#what-about-child-loggers","children":[]}]}],"git":{"updatedTime":1726150288000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1},{"name":"Andrew Stacy","email":"astacy@stratacache.com","commits":1}]},"filePathRelative":"getting-started/introduction.md","excerpt":"\\n

Why is this named Adze?

\\n

\\n

Illustration from Wikipedia

\\n
\\n

Adze - a cutting tool that ... is used chiefly for shaping wood.

\\n

Pronounced as \\"adz\\"

\\n
"}');export{P as comp,W as data}; +

The output of this would look like the following:

Example of Adze child logger

',14);function z(A,x){const n=p("RouteLink");return c(),l("div",null,[g,a("ul",null,[f,k,a("li",null,[e("A convenient "),s(n,{to:"/getting-started/concepts.html"},{default:t(()=>[e("chainable API")]),_:1})]),a("li",null,[s(n,{to:"/getting-started/capture-data.html#log-listeners"},{default:t(()=>[e("Log Listeners")]),_:1}),e(" for capturing log data")]),a("li",null,[s(n,{to:"/reference/middleware.html"},{default:t(()=>[e("Middleware")]),_:1}),e(" support for "),s(n,{to:"/plugins.html"},{default:t(()=>[e("plugins")]),_:1}),e(" and transporting logs")]),a("li",null,[s(n,{to:"/getting-started/annotation.html"},{default:t(()=>[e("Log annotations")]),_:1}),e(" such as "),s(n,{to:"/reference/modifiers.html#namespace--ns"},{default:t(()=>[e("namespaces")]),_:1}),e(", "),s(n,{to:"/reference/modifiers.html#label"},{default:t(()=>[e("labels")]),_:1}),e(", and other "),s(n,{to:"/reference/modifiers.html#meta"},{default:t(()=>[e("meta data")]),_:1})]),a("li",null,[e("Four formats supported out of the box: "),a("ul",null,[a("li",null,[s(n,{to:"/reference/formatters.html#pretty-formatter"},{default:t(()=>[e("Pretty")]),_:1}),e(" - Human readable logs that are easy on the eyes")]),a("li",null,[s(n,{to:"/reference/formatters.html#json-formatter"},{default:t(()=>[e("JSON")]),_:1}),e(" - Machine readable logs that are compatible with the "),b]),a("li",null,[s(n,{to:"/reference/formatters.html#standard-formatter"},{default:t(()=>[e("Standard")]),_:1}),e(" - Human readable stdout logs")]),a("li",null,[s(n,{to:"/reference/formatters.html#common-formatter"},{default:t(()=>[e("Common")]),_:1}),e(" - Logs that adhere to the "),w])])]),v,a("li",null,[s(n,{to:"/reference/tools.html"},{default:t(()=>[e("Tools")]),_:1}),e(" for caching, filtering, and recalling logs")]),a("li",null,[e("Support for creating "),s(n,{to:"/getting-started/threading.html"},{default:t(()=>[e("log threads")]),_:1}),e(" to track data across multiple scopes")]),a("li",null,[e("Convenient "),s(n,{to:"/reference/terminators.html#seal"},{default:t(()=>[e("child logger")]),_:1}),e(" API's")]),_]),y])}const P=r(m,[["render",z],["__file","introduction.html.vue"]]),W=JSON.parse('{"path":"/getting-started/introduction.html","title":"Introduction","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Why is this named Adze?","slug":"why-is-this-named-adze","link":"#why-is-this-named-adze","children":[]},{"level":2,"title":"Why should I use Adze?","slug":"why-should-i-use-adze","link":"#why-should-i-use-adze","children":[{"level":3,"title":"Here is a simple preview","slug":"here-is-a-simple-preview","link":"#here-is-a-simple-preview","children":[]}]},{"level":2,"title":"What does the API look like?","slug":"what-does-the-api-look-like","link":"#what-does-the-api-look-like","children":[{"level":3,"title":"What about child loggers?","slug":"what-about-child-loggers","link":"#what-about-child-loggers","children":[]}]}],"git":{"updatedTime":1726150288000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1},{"name":"Andrew Stacy","email":"astacy@stratacache.com","commits":1}]},"filePathRelative":"getting-started/introduction.md","excerpt":"\\n

Why is this named Adze?

\\n

\\n

Illustration from Wikipedia

\\n
\\n

Adze - a cutting tool that ... is used chiefly for shaping wood.

\\n

Pronounced as \\"adz\\"

\\n
"}');export{P as comp,W as data}; diff --git a/assets/introduction.html-D36B9gU8.js b/assets/introduction.html-D36B9gU8.js new file mode 100644 index 0000000..c09871e --- /dev/null +++ b/assets/introduction.html-D36B9gU8.js @@ -0,0 +1 @@ +import{_ as i}from"./lifecycle-agZhburq.js";import{_ as o,c as r,b as t,d as e,e as n,w as l,r as c,o as s}from"./app-_2IEvvvI.js";const d={},h=t("h1",{id:"introduction-lifecycle",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#introduction-lifecycle"},[t("span",null,"Introduction & Lifecycle")])],-1),u=t("p",null,"This section of the documentation will be focused on details about individual functions, log methods, data, types, etc. The reference manual is not intended to provide you with a walkthrough style tutorial.",-1),f=t("h2",{id:"lifecycle",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#lifecycle"},[t("span",null,"Lifecycle")])],-1),m=t("h3",{id:"lifecycle-diagram",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#lifecycle-diagram"},[t("span",null,"Lifecycle Diagram")])],-1),g=t("p",null,[t("img",{src:i,alt:"Lifecycle diagram of an Adze log"})],-1),p=t("h3",{id:"explanation",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#explanation"},[t("span",null,"Explanation")])],-1),_=t("p",null,"Modifier methods can be chained indefinitely whereas a terminator method which finalizes a log will not return the log instance and the chain is ended. At this point is when the properties of the log instance are evaluated and then the log message is generated and printed.",-1);function y(b,w){const a=c("RouteLink");return s(),r("div",null,[h,u,t("p",null,[e("For a step-by-step tutorial, please read through the "),n(a,{to:"/getting-started/introduction.html"},{default:l(()=>[e("Getting Started")]),_:1}),e(" user guide.")]),f,t("p",null,[e("Before diving into the rest of the reference manual, it can be beneficial to have an understanding of the workflow / lifecycle of an Adze log. Understanding the lifecycle is vital to understanding how "),n(a,{to:"/reference/middleware.html"},{default:l(()=>[e("middleware")]),_:1}),e(", "),n(a,{to:"/reference/global-store.html#addlistener"},{default:l(()=>[e("log listeners")]),_:1}),e(", and the "),n(a,{to:"/reference/global-store.html"},{default:l(()=>[e("global store")]),_:1}),e(" work.")]),m,g,t("p",null,[e("The Adze class is a class that contains static method equivalents for every "),n(a,{to:"/reference/modifiers.html"},{default:l(()=>[e("modifier")]),_:1}),e(" and "),n(a,{to:"/reference/terminators.html"},{default:l(()=>[e("terminator")]),_:1}),e(" method. If a modifier method has been called statically, a new instance of Adze will be created and returned, thus allowing you to chain more modifier method calls or call a terminator method.")]),p,_,t("p",null,[e("Throughout the termination process, various lifecycle hooks will be called on any "),n(a,{to:"/reference/middleware.html"},{default:l(()=>[e("middleware")]),_:1}),e(" instances that have been registered. This is useful for plugins to capture log data or manipulate logs in various ways.")]),t("p",null,[e("After a log has been terminated, its instance is stored in the "),n(a,{to:"/reference/global-store.html"},{default:l(()=>[e("Global Store")]),_:1}),e(" if "),n(a,{to:"/reference/configuration.html"},{default:l(()=>[e("caching is enabled")]),_:1}),e(". From the global store you can filter and recall logs that have already been generated using the "),n(a,{to:"/reference/tools.html"},{default:l(()=>[e("global store tools")]),_:1}),e(".")])])}const k=o(d,[["render",y],["__file","introduction.html.vue"]]),L=JSON.parse('{"path":"/reference/introduction.html","title":"Introduction & Lifecycle","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Lifecycle","slug":"lifecycle","link":"#lifecycle","children":[{"level":3,"title":"Lifecycle Diagram","slug":"lifecycle-diagram","link":"#lifecycle-diagram","children":[]},{"level":3,"title":"Explanation","slug":"explanation","link":"#explanation","children":[]}]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"reference/introduction.md","excerpt":"\\n

This section of the documentation will be focused on details about individual functions, log\\nmethods, data, types, etc. The reference manual is not intended to provide you with a walkthrough\\nstyle tutorial.

\\n

For a step-by-step tutorial, please read through the Getting Started\\nuser guide.

"}');export{k as comp,L as data}; diff --git a/assets/log-class.html-CzVBugZG.js b/assets/log-class.html-DBsD6elV.js similarity index 87% rename from assets/log-class.html-CzVBugZG.js rename to assets/log-class.html-DBsD6elV.js index 85ea404..c2080c8 100644 --- a/assets/log-class.html-CzVBugZG.js +++ b/assets/log-class.html-DBsD6elV.js @@ -1,8 +1,8 @@ -import{_ as s,r,c as i,b as e,e as a,w as n,d as t,a as o,o as d}from"./app-Cqk3MxnN.js";const c={},m=o(`

Log Class

The Log Class is the core of the Adze library and contains most of the features. All Adze logs begin with the Log Class.

When generating a new log, you'll start by importing the Log Class which is the default export of the library. In all examples you will see it imported with the name adze.

Example

import adze from 'adze';
+import{_ as s,c as r,b as e,e as a,w as n,d as t,a as i,r as o,o as d}from"./app-_2IEvvvI.js";const c={},m=i(`

Log Class

The Log Class is the core of the Adze library and contains most of the features. All Adze logs begin with the Log Class.

When generating a new log, you'll start by importing the Log Class which is the default export of the library. In all examples you will see it imported with the name adze.

Example

import adze from 'adze';
 

Class Methods

Every modifier and terminator method within the Log Class has a corresponding static implementation. This allows the user to call and instantiate an instance of the Log Class without the need of explicitly calling new Log().

Example

import adze from 'adze';
 
 // Example value to be logged.
 const x = 123;
 
 adze.log('This is a log.', x);
-

Getters

The public getters are used for getting data from a log instance.

`,13),u=e("h3",{id:"modifiers",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#modifiers"},[e("span",null,"Modifiers")])],-1),f=e("p",null,"Modifiers are used to alter log behavior or add context.",-1),h=e("h3",{id:"terminators",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#terminators"},[e("span",null,"Terminators")])],-1),p=e("p",null,"Terminators end a log and generate it at the specified level.",-1);function g(_,b){const l=r("RouteLink");return d(),i("div",null,[m,e("ul",null,[e("li",null,[a(l,{to:"/reference/getters.html#data"},{default:n(()=>[t("data")]),_:1}),t(" - Returns the log data.")]),e("li",null,[a(l,{to:"/reference/getters.html#modifierdata"},{default:n(()=>[t("modifierData")]),_:1}),t(" - Returns object containing key/values from called modifiers.")]),e("li",null,[a(l,{to:"/reference/getters.html#configuration"},{default:n(()=>[t("configuration")]),_:1}),t(" - Returns the configuration that this log instance is using.")])]),u,f,e("ul",null,[e("li",null,[a(l,{to:"/reference/modifiers.html#assert"},{default:n(()=>[t("assert")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#closethread"},{default:n(()=>[t("closeThread")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#count"},{default:n(()=>[t("count")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#countclear"},{default:n(()=>[t("countClear")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#countreset"},{default:n(()=>[t("countReset")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#dir"},{default:n(()=>[t("dir")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#dirxml"},{default:n(()=>[t("dirxml")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#dump"},{default:n(()=>[t("dump")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#format"},{default:n(()=>[t("format")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#group"},{default:n(()=>[t("group")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#groupcollapsed"},{default:n(()=>[t("groupCollapsed")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#groupend"},{default:n(()=>[t("groupEnd")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#if"},{default:n(()=>[t("if")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#label"},{default:n(()=>[t("label")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#meta"},{default:n(()=>[t("meta")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#namespace--ns"},{default:n(()=>[t("namespace/ns")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#silent"},{default:n(()=>[t("silent")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#table"},{default:n(()=>[t("table")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#time"},{default:n(()=>[t("time")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#timeend"},{default:n(()=>[t("timeEnd")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#timenow"},{default:n(()=>[t("timeNow")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#timestamp"},{default:n(()=>[t("timestamp")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#trace"},{default:n(()=>[t("trace")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#withemoji"},{default:n(()=>[t("withEmoji")]),_:1})])]),h,p,e("ul",null,[e("li",null,[a(l,{to:"/reference/terminators.html#alert"},{default:n(()=>[t("alert")]),_:1})]),e("li",null,[a(l,{to:"/reference/terminators.html#error"},{default:n(()=>[t("error")]),_:1})]),e("li",null,[a(l,{to:"/reference/terminators.html#warn"},{default:n(()=>[t("warn")]),_:1})]),e("li",null,[a(l,{to:"/reference/terminators.html#info"},{default:n(()=>[t("info")]),_:1})]),e("li",null,[a(l,{to:"/reference/terminators.html#fail"},{default:n(()=>[t("fail")]),_:1})]),e("li",null,[a(l,{to:"/reference/terminators.html#success"},{default:n(()=>[t("success")]),_:1})]),e("li",null,[a(l,{to:"/reference/terminators.html#log"},{default:n(()=>[t("log")]),_:1})]),e("li",null,[a(l,{to:"/reference/terminators.html#debug"},{default:n(()=>[t("debug")]),_:1})]),e("li",null,[a(l,{to:"/reference/terminators.html#verbose"},{default:n(()=>[t("verbose")]),_:1})]),e("li",null,[a(l,{to:"/reference/terminators.html#custom"},{default:n(()=>[t("custom")]),_:1})]),e("li",null,[a(l,{to:"/reference/terminators.html#thread"},{default:n(()=>[t("thread")]),_:1})]),e("li",null,[a(l,{to:"/reference/terminators.html#seal"},{default:n(()=>[t("seal")]),_:1})]),e("li",null,[a(l,{to:"/reference/terminators.html#sealtag"},{default:n(()=>[t("sealTag")]),_:1})])])])}const k=s(c,[["render",g],["__file","log-class.html.vue"]]),x=JSON.parse(`{"path":"/reference/log-class.html","title":"Log Class","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Class Methods","slug":"class-methods","link":"#class-methods","children":[{"level":3,"title":"Getters","slug":"getters","link":"#getters","children":[]},{"level":3,"title":"Modifiers","slug":"modifiers","link":"#modifiers","children":[]},{"level":3,"title":"Terminators","slug":"terminators","link":"#terminators","children":[]}]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"reference/log-class.md","excerpt":"\\n

The Log Class is the core of the Adze library and contains most of the features. All Adze logs\\nbegin with the Log Class.

\\n

When generating a new log, you'll start by importing the Log Class which is the default export\\nof the library. In all examples you will see it imported with the name adze.

"}`);export{k as comp,x as data}; +

Getters

The public getters are used for getting data from a log instance.

`,13),u=e("h3",{id:"modifiers",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#modifiers"},[e("span",null,"Modifiers")])],-1),f=e("p",null,"Modifiers are used to alter log behavior or add context.",-1),h=e("h3",{id:"terminators",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#terminators"},[e("span",null,"Terminators")])],-1),p=e("p",null,"Terminators end a log and generate it at the specified level.",-1);function g(_,b){const l=o("RouteLink");return d(),r("div",null,[m,e("ul",null,[e("li",null,[a(l,{to:"/reference/getters.html#data"},{default:n(()=>[t("data")]),_:1}),t(" - Returns the log data.")]),e("li",null,[a(l,{to:"/reference/getters.html#modifierdata"},{default:n(()=>[t("modifierData")]),_:1}),t(" - Returns object containing key/values from called modifiers.")]),e("li",null,[a(l,{to:"/reference/getters.html#configuration"},{default:n(()=>[t("configuration")]),_:1}),t(" - Returns the configuration that this log instance is using.")])]),u,f,e("ul",null,[e("li",null,[a(l,{to:"/reference/modifiers.html#assert"},{default:n(()=>[t("assert")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#closethread"},{default:n(()=>[t("closeThread")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#count"},{default:n(()=>[t("count")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#countclear"},{default:n(()=>[t("countClear")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#countreset"},{default:n(()=>[t("countReset")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#dir"},{default:n(()=>[t("dir")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#dirxml"},{default:n(()=>[t("dirxml")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#dump"},{default:n(()=>[t("dump")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#format"},{default:n(()=>[t("format")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#group"},{default:n(()=>[t("group")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#groupcollapsed"},{default:n(()=>[t("groupCollapsed")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#groupend"},{default:n(()=>[t("groupEnd")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#if"},{default:n(()=>[t("if")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#label"},{default:n(()=>[t("label")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#meta"},{default:n(()=>[t("meta")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#namespace--ns"},{default:n(()=>[t("namespace/ns")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#silent"},{default:n(()=>[t("silent")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#table"},{default:n(()=>[t("table")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#time"},{default:n(()=>[t("time")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#timeend"},{default:n(()=>[t("timeEnd")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#timenow"},{default:n(()=>[t("timeNow")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#timestamp"},{default:n(()=>[t("timestamp")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#trace"},{default:n(()=>[t("trace")]),_:1})]),e("li",null,[a(l,{to:"/reference/modifiers.html#withemoji"},{default:n(()=>[t("withEmoji")]),_:1})])]),h,p,e("ul",null,[e("li",null,[a(l,{to:"/reference/terminators.html#alert"},{default:n(()=>[t("alert")]),_:1})]),e("li",null,[a(l,{to:"/reference/terminators.html#error"},{default:n(()=>[t("error")]),_:1})]),e("li",null,[a(l,{to:"/reference/terminators.html#warn"},{default:n(()=>[t("warn")]),_:1})]),e("li",null,[a(l,{to:"/reference/terminators.html#info"},{default:n(()=>[t("info")]),_:1})]),e("li",null,[a(l,{to:"/reference/terminators.html#fail"},{default:n(()=>[t("fail")]),_:1})]),e("li",null,[a(l,{to:"/reference/terminators.html#success"},{default:n(()=>[t("success")]),_:1})]),e("li",null,[a(l,{to:"/reference/terminators.html#log"},{default:n(()=>[t("log")]),_:1})]),e("li",null,[a(l,{to:"/reference/terminators.html#debug"},{default:n(()=>[t("debug")]),_:1})]),e("li",null,[a(l,{to:"/reference/terminators.html#verbose"},{default:n(()=>[t("verbose")]),_:1})]),e("li",null,[a(l,{to:"/reference/terminators.html#custom"},{default:n(()=>[t("custom")]),_:1})]),e("li",null,[a(l,{to:"/reference/terminators.html#thread"},{default:n(()=>[t("thread")]),_:1})]),e("li",null,[a(l,{to:"/reference/terminators.html#seal"},{default:n(()=>[t("seal")]),_:1})]),e("li",null,[a(l,{to:"/reference/terminators.html#sealtag"},{default:n(()=>[t("sealTag")]),_:1})])])])}const k=s(c,[["render",g],["__file","log-class.html.vue"]]),x=JSON.parse(`{"path":"/reference/log-class.html","title":"Log Class","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Class Methods","slug":"class-methods","link":"#class-methods","children":[{"level":3,"title":"Getters","slug":"getters","link":"#getters","children":[]},{"level":3,"title":"Modifiers","slug":"modifiers","link":"#modifiers","children":[]},{"level":3,"title":"Terminators","slug":"terminators","link":"#terminators","children":[]}]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"reference/log-class.md","excerpt":"\\n

The Log Class is the core of the Adze library and contains most of the features. All Adze logs\\nbegin with the Log Class.

\\n

When generating a new log, you'll start by importing the Log Class which is the default export\\nof the library. In all examples you will see it imported with the name adze.

"}`);export{k as comp,x as data}; diff --git a/assets/micro-frontends.html-Bva5-4P-.js b/assets/micro-frontends.html-Bva5-4P-.js deleted file mode 100644 index c04b05e..0000000 --- a/assets/micro-frontends.html-Bva5-4P-.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as i,r as c,c as s,b as n,d as e,e as a,w as o,a as r,o as l}from"./app-Cqk3MxnN.js";const h={},p=r('

Micro-Frontends

DANGER

This version is now deprecated! Please upgrade to version 2!

You may be asking yourself, "What are micro-frontends?" To be brief, micro-frontends are an extension of the micro-services architecture pattern all the way through to the frontend of an application.

For a more detailed explanation, please visit these excellent resources:

Micro-Frontend Logging

A challenge that comes with micro-frontend architectures is enabling the parent application to be able to coordinate behaviors from the child applications. One of these challenges is logging. Within a micro-frontend architecture you will have multiple apps that are able to injected into the parent application without the parent application needing to know much about how the child application implements their features. In order to prevent chaos within the parent app, child apps typically remove all of their logs before packaging for the parent application. This keeps the browser console clean. The downside to this however is that you may need to capture some logs in production and react to them. Removing them leaves you helpless in this regard.

',7),d=r('

Example Architecture

Explanation

Within the dev environment of each of your child applications you can interact with a GlobalStore. When packaging your application for production you will leave out your GlobalStore instance and only deploy it with Adze logs. Then, in the parent application, your child applications logging behavior can be controlled by the parent app's GlobalStore instance.

Best Practices

',4);function m(u,g){const t=c("RouteLink");return l(),s("div",null,[p,n("p",null,[e("This is where "),a(t,{to:"/getting-started/concepts.html"},{default:o(()=>[e("Adze")]),_:1}),e(" and "),a(t,{to:"/getting-started/global-store.html"},{default:o(()=>[e("GlobalStore")]),_:1}),e(" come in to help. Because a GlobalStore is a global cache and configuration store, it takes precedence over the configuration of any Adze logs. What this means for a micro-frontend architecture is that you can keep your logs for production and the parent application can control their behavior without knowing anything about the child application.")]),d,n("p",null,[e("When writing logs in your child applications you should apply a common "),a(t,{to:"/reference/modifiers.html#namespace--ns"},{default:o(()=>[e("namespace")]),_:1}),e(" across all of them. This enables the parent application to target those logs and control them as needed.")])])}const b=i(h,[["render",m],["__file","micro-frontends.html.vue"]]),v=JSON.parse('{"path":"/reference/micro-frontends.html","title":"Micro-Frontends","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Micro-Frontend Logging","slug":"micro-frontend-logging","link":"#micro-frontend-logging","children":[{"level":3,"title":"Example Architecture","slug":"example-architecture","link":"#example-architecture","children":[]},{"level":3,"title":"Explanation","slug":"explanation","link":"#explanation","children":[]}]},{"level":2,"title":"Best Practices","slug":"best-practices","link":"#best-practices","children":[]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"reference/micro-frontends.md","excerpt":"\\n

DANGER

\\n

This version is now deprecated! Please upgrade to version 2!

\\n
\\n

You may be asking yourself, \\"What are micro-frontends?\\" To be brief, micro-frontends are an extension of the micro-services architecture pattern all the way through to the frontend of an application.

"}');export{b as comp,v as data}; diff --git a/assets/micro-frontends.html-lQCoWmkT.js b/assets/micro-frontends.html-lQCoWmkT.js new file mode 100644 index 0000000..363032c --- /dev/null +++ b/assets/micro-frontends.html-lQCoWmkT.js @@ -0,0 +1 @@ +import{_ as i,c,b as n,d as e,e as a,w as o,a as r,r as s,o as l}from"./app-_2IEvvvI.js";const h={},p=r('

Micro-Frontends

DANGER

This version is now deprecated! Please upgrade to version 2!

You may be asking yourself, "What are micro-frontends?" To be brief, micro-frontends are an extension of the micro-services architecture pattern all the way through to the frontend of an application.

For a more detailed explanation, please visit these excellent resources:

Micro-Frontend Logging

A challenge that comes with micro-frontend architectures is enabling the parent application to be able to coordinate behaviors from the child applications. One of these challenges is logging. Within a micro-frontend architecture you will have multiple apps that are able to injected into the parent application without the parent application needing to know much about how the child application implements their features. In order to prevent chaos within the parent app, child apps typically remove all of their logs before packaging for the parent application. This keeps the browser console clean. The downside to this however is that you may need to capture some logs in production and react to them. Removing them leaves you helpless in this regard.

',7),d=r('

Example Architecture

Explanation

Within the dev environment of each of your child applications you can interact with a GlobalStore. When packaging your application for production you will leave out your GlobalStore instance and only deploy it with Adze logs. Then, in the parent application, your child applications logging behavior can be controlled by the parent app's GlobalStore instance.

Best Practices

',4);function m(u,g){const t=s("RouteLink");return l(),c("div",null,[p,n("p",null,[e("This is where "),a(t,{to:"/getting-started/concepts.html"},{default:o(()=>[e("Adze")]),_:1}),e(" and "),a(t,{to:"/getting-started/global-store.html"},{default:o(()=>[e("GlobalStore")]),_:1}),e(" come in to help. Because a GlobalStore is a global cache and configuration store, it takes precedence over the configuration of any Adze logs. What this means for a micro-frontend architecture is that you can keep your logs for production and the parent application can control their behavior without knowing anything about the child application.")]),d,n("p",null,[e("When writing logs in your child applications you should apply a common "),a(t,{to:"/reference/modifiers.html#namespace--ns"},{default:o(()=>[e("namespace")]),_:1}),e(" across all of them. This enables the parent application to target those logs and control them as needed.")])])}const b=i(h,[["render",m],["__file","micro-frontends.html.vue"]]),v=JSON.parse('{"path":"/reference/micro-frontends.html","title":"Micro-Frontends","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Micro-Frontend Logging","slug":"micro-frontend-logging","link":"#micro-frontend-logging","children":[{"level":3,"title":"Example Architecture","slug":"example-architecture","link":"#example-architecture","children":[]},{"level":3,"title":"Explanation","slug":"explanation","link":"#explanation","children":[]}]},{"level":2,"title":"Best Practices","slug":"best-practices","link":"#best-practices","children":[]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"reference/micro-frontends.md","excerpt":"\\n

DANGER

\\n

This version is now deprecated! Please upgrade to version 2!

\\n
\\n

You may be asking yourself, \\"What are micro-frontends?\\" To be brief, micro-frontends are an extension of the micro-services architecture pattern all the way through to the frontend of an application.

"}');export{b as comp,v as data}; diff --git a/assets/middleware.html-nGVVd46T.js b/assets/middleware.html-CrcRp4g6.js similarity index 99% rename from assets/middleware.html-nGVVd46T.js rename to assets/middleware.html-CrcRp4g6.js index 0e1a0cc..13cc24b 100644 --- a/assets/middleware.html-nGVVd46T.js +++ b/assets/middleware.html-CrcRp4g6.js @@ -1,4 +1,4 @@ -import{_ as o,r as i,c as p,b as n,d as s,e as a,w as t,a as l,o as r}from"./app-Cqk3MxnN.js";const c={},d=n("h1",{id:"middleware",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#middleware"},[n("span",null,"Middleware")])],-1),u=n("strong",null,"Middleware Class",-1),h=l(`

Look for Adze middleware libraries for extending the functionality of your logs or for transporting your log data to various targets.

The Middleware Class is meant to be used as a base class that is extended for creating middleware components for Adze to use.

Because Adze is isomorphic, all middleware MUST also be isomorphic.

Environment Targeting

When creating middleware, sometimes you care about browser and backend environments, and sometimes you only care about one of them.

The Middleware Class requires that you specify your target if you only care about a single environment. If you don't specify your target environment, it will default to assuming your middleware cares about 'both'. You can specify your target by providing your value as the first parameter to the super() call in your middleware constructor.

The options are:

  • "both" - (Default) This middleware will operate in both server and browser environments.
  • "browser" - This middleware only operates in the browser.
  • "server" - This middleware only operates in backend environments.

Example

import { Middleware } from 'adze';
+import{_ as o,c as i,b as n,d as s,e as a,w as t,a as l,r as p,o as r}from"./app-_2IEvvvI.js";const c={},d=n("h1",{id:"middleware",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#middleware"},[n("span",null,"Middleware")])],-1),u=n("strong",null,"Middleware Class",-1),h=l(`

Look for Adze middleware libraries for extending the functionality of your logs or for transporting your log data to various targets.

The Middleware Class is meant to be used as a base class that is extended for creating middleware components for Adze to use.

Because Adze is isomorphic, all middleware MUST also be isomorphic.

Environment Targeting

When creating middleware, sometimes you care about browser and backend environments, and sometimes you only care about one of them.

The Middleware Class requires that you specify your target if you only care about a single environment. If you don't specify your target environment, it will default to assuming your middleware cares about 'both'. You can specify your target by providing your value as the first parameter to the super() call in your middleware constructor.

The options are:

  • "both" - (Default) This middleware will operate in both server and browser environments.
  • "browser" - This middleware only operates in the browser.
  • "server" - This middleware only operates in backend environments.

Example

import { Middleware } from 'adze';
 
 export class HelloMiddleware extends Middleware {
   constructor() {
@@ -66,4 +66,4 @@ import{_ as o,r as i,c as p,b as n,d as s,e as a,w as t,a as l,o as r}from"./app
 
`,4),an=n("thead",null,[n("tr",null,[n("th",null,"Order"),n("th",null,"Parameter"),n("th",null,"Description")])],-1),tn=n("td",null,"1",-1),ln=n("td",null,"log",-1),on=n("td",null,"2",-1),pn=n("td",null,"terminator",-1),rn=n("tr",null,[n("td",null,"3"),n("td",null,"args"),n("td",null,"The log arguments prior to formatting.")],-1),cn=l(`

afterTerminated

This hook is called just when a log instance has completed termination.

interface Middleware {
   afterTerminated?(log: Log, terminator: string, args: unknown[]): void;
 }
-
`,4),dn=n("thead",null,[n("tr",null,[n("th",null,"Order"),n("th",null,"Parameter"),n("th",null,"Description")])],-1),un=n("td",null,"1",-1),hn=n("td",null,"log",-1),mn=n("td",null,"2",-1),kn=n("td",null,"terminator",-1),fn=n("td",null,"3",-1),vn=n("td",null,"args",-1);function bn(gn,wn){const e=i("RouteLink");return r(),p("div",null,[d,n("p",null,[s("Adze is able to be extended through middleware classes. Adze exports a "),u,s(" that can be extended to hook into various points in a log's "),a(e,{to:"/reference/introduction.html#lifecycle"},{default:t(()=>[s("lifecycle")]),_:1}),s(".")]),h,n("p",null,[s("To use our middleware, we'll need to make sure we instantiate it and await a call to the load method before passing it in to the "),a(e,{to:"/reference/configuration.html#setup-function"},{default:t(()=>[s("setup")]),_:1}),s(" function.")]),m,n("p",null,[s("To hook into various points in the Adze log "),a(e,{to:"/reference/introduction.html#lifecycle"},{default:t(()=>[s("lifecycle")]),_:1}),s(", we can define hooks in our middleware. The hooks listed below are in order of when they are called in the lifecycle.")]),k,n("table",null,[f,n("tbody",null,[n("tr",null,[v,b,n("td",null,[s("The instance of the log. This can be used to access its "),a(e,{to:"/reference/log-class.html#getters"},{default:t(()=>[s("data")]),_:1}),s(".")])])])]),g,n("table",null,[w,n("tbody",null,[n("tr",null,[_,y,n("td",null,[s("The instance of the log. This can be used to access its "),a(e,{to:"/reference/log-class.html#getters"},{default:t(()=>[s("data")]),_:1}),s(".")])]),n("tr",null,[T,x,n("td",null,[s("The name of the "),a(e,{to:"/reference/modifiers.html"},{default:t(()=>[s("modifier")]),_:1}),s(" that was called (ie. "),M,s(")")])]),n("tr",null,[A,j,n("td",null,[s("The cumulative "),a(e,{to:"/reference/modifiers.html"},{default:t(()=>[s("modifier")]),_:1}),s(" data object from all modifier calls.")])])])]),L,n("table",null,[D,n("tbody",null,[n("tr",null,[z,F,n("td",null,[s("The instance of the log. This can be used to access its "),a(e,{to:"/reference/log-class.html#getters"},{default:t(()=>[s("data")]),_:1}),s(".")])]),n("tr",null,[P,q,n("td",null,[s("The name of the "),a(e,{to:"/reference/modifiers.html"},{default:t(()=>[s("modifier")]),_:1}),s(" that was called (ie. "),O,s(")")])]),n("tr",null,[S,H,n("td",null,[s("The cumulative "),a(e,{to:"/reference/modifiers.html"},{default:t(()=>[s("modifier")]),_:1}),s(" data object from all modifier calls.")])])])]),C,n("table",null,[E,n("tbody",null,[n("tr",null,[N,B,n("td",null,[s("The instance of the log. This can be used to access its "),a(e,{to:"/reference/log-class.html#getters"},{default:t(()=>[s("data")]),_:1}),s(".")])]),n("tr",null,[U,V,n("td",null,[s("The name of the log "),a(e,{to:"/reference/formatters.html"},{default:t(()=>[s("formatter")]),_:1}),s(" that will be used.")])]),R])]),W,n("table",null,[I,n("tbody",null,[n("tr",null,[J,Y,n("td",null,[s("The instance of the log. This can be used to access its "),a(e,{to:"/reference/log-class.html#getters"},{default:t(()=>[s("data")]),_:1}),s(".")])]),n("tr",null,[G,K,n("td",null,[s("The name of the log "),a(e,{to:"/reference/formatters.html"},{default:t(()=>[s("formatter")]),_:1}),s(" that was used.")])]),n("tr",null,[Q,X,n("td",null,[s("Array of "),a(e,{to:"/reference/formatters.html"},{default:t(()=>[s("formatted")]),_:1}),s(" arguments to be printed to the console.")])])])]),Z,n("table",null,[$,n("tbody",null,[n("tr",null,[nn,sn,n("td",null,[s("The instance of the log. This can be used to access its "),a(e,{to:"/reference/log-class.html#getters"},{default:t(()=>[s("data")]),_:1}),s(".")])])])]),en,n("table",null,[an,n("tbody",null,[n("tr",null,[tn,ln,n("td",null,[s("The instance of the log. This can be used to access its "),a(e,{to:"/reference/log-class.html#getters"},{default:t(()=>[s("data")]),_:1}),s(".")])]),n("tr",null,[on,pn,n("td",null,[s("The name of the "),a(e,{to:"/reference/terminators.html"},{default:t(()=>[s("terminator")]),_:1}),s(" that is being called to print the log.")])]),rn])]),cn,n("table",null,[dn,n("tbody",null,[n("tr",null,[un,hn,n("td",null,[s("The instance of the log. This can be used to access its "),a(e,{to:"/reference/log-class.html#getters"},{default:t(()=>[s("data")]),_:1}),s(".")])]),n("tr",null,[mn,kn,n("td",null,[s("The name of the "),a(e,{to:"/reference/terminators.html"},{default:t(()=>[s("terminator")]),_:1}),s(" that is being called to print the log.")])]),n("tr",null,[fn,vn,n("td",null,[s("The "),a(e,{to:"/reference/formatters.html"},{default:t(()=>[s("formatted")]),_:1}),s(" arguments that will be printed.")])])])])])}const yn=o(c,[["render",bn],["__file","middleware.html.vue"]]),Tn=JSON.parse(`{"path":"/reference/middleware.html","title":"Middleware","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Environment Targeting","slug":"environment-targeting","link":"#environment-targeting","children":[]},{"level":2,"title":"Loading Dependencies","slug":"loading-dependencies","link":"#loading-dependencies","children":[{"level":3,"title":"Using the Middleware","slug":"using-the-middleware","link":"#using-the-middleware","children":[]}]},{"level":2,"title":"Using Lifecycle Hooks","slug":"using-lifecycle-hooks","link":"#using-lifecycle-hooks","children":[{"level":3,"title":"constructed","slug":"constructed","link":"#constructed","children":[]},{"level":3,"title":"beforeModifierApplied","slug":"beforemodifierapplied","link":"#beforemodifierapplied","children":[]},{"level":3,"title":"afterModifierApplied","slug":"aftermodifierapplied","link":"#aftermodifierapplied","children":[]},{"level":3,"title":"beforeFormatApplied","slug":"beforeformatapplied","link":"#beforeformatapplied","children":[]},{"level":3,"title":"afterFormatApplied","slug":"afterformatapplied","link":"#afterformatapplied","children":[]},{"level":3,"title":"beforePrint","slug":"beforeprint","link":"#beforeprint","children":[]},{"level":3,"title":"beforeTerminated","slug":"beforeterminated","link":"#beforeterminated","children":[]},{"level":3,"title":"afterTerminated","slug":"afterterminated","link":"#afterterminated","children":[]}]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"reference/middleware.md","excerpt":"\\n

Adze is able to be extended through middleware classes. Adze exports a Middleware Class that can\\nbe extended to hook into various points in a log's lifecycle.

\\n

Look for Adze middleware libraries for extending the functionality of your logs or for transporting\\nyour log data to various targets.

"}`);export{yn as comp,Tn as data}; +
`,4),dn=n("thead",null,[n("tr",null,[n("th",null,"Order"),n("th",null,"Parameter"),n("th",null,"Description")])],-1),un=n("td",null,"1",-1),hn=n("td",null,"log",-1),mn=n("td",null,"2",-1),kn=n("td",null,"terminator",-1),fn=n("td",null,"3",-1),vn=n("td",null,"args",-1);function bn(gn,wn){const e=p("RouteLink");return r(),i("div",null,[d,n("p",null,[s("Adze is able to be extended through middleware classes. Adze exports a "),u,s(" that can be extended to hook into various points in a log's "),a(e,{to:"/reference/introduction.html#lifecycle"},{default:t(()=>[s("lifecycle")]),_:1}),s(".")]),h,n("p",null,[s("To use our middleware, we'll need to make sure we instantiate it and await a call to the load method before passing it in to the "),a(e,{to:"/reference/configuration.html#setup-function"},{default:t(()=>[s("setup")]),_:1}),s(" function.")]),m,n("p",null,[s("To hook into various points in the Adze log "),a(e,{to:"/reference/introduction.html#lifecycle"},{default:t(()=>[s("lifecycle")]),_:1}),s(", we can define hooks in our middleware. The hooks listed below are in order of when they are called in the lifecycle.")]),k,n("table",null,[f,n("tbody",null,[n("tr",null,[v,b,n("td",null,[s("The instance of the log. This can be used to access its "),a(e,{to:"/reference/log-class.html#getters"},{default:t(()=>[s("data")]),_:1}),s(".")])])])]),g,n("table",null,[w,n("tbody",null,[n("tr",null,[_,y,n("td",null,[s("The instance of the log. This can be used to access its "),a(e,{to:"/reference/log-class.html#getters"},{default:t(()=>[s("data")]),_:1}),s(".")])]),n("tr",null,[T,x,n("td",null,[s("The name of the "),a(e,{to:"/reference/modifiers.html"},{default:t(()=>[s("modifier")]),_:1}),s(" that was called (ie. "),M,s(")")])]),n("tr",null,[A,j,n("td",null,[s("The cumulative "),a(e,{to:"/reference/modifiers.html"},{default:t(()=>[s("modifier")]),_:1}),s(" data object from all modifier calls.")])])])]),L,n("table",null,[D,n("tbody",null,[n("tr",null,[z,F,n("td",null,[s("The instance of the log. This can be used to access its "),a(e,{to:"/reference/log-class.html#getters"},{default:t(()=>[s("data")]),_:1}),s(".")])]),n("tr",null,[P,q,n("td",null,[s("The name of the "),a(e,{to:"/reference/modifiers.html"},{default:t(()=>[s("modifier")]),_:1}),s(" that was called (ie. "),O,s(")")])]),n("tr",null,[S,H,n("td",null,[s("The cumulative "),a(e,{to:"/reference/modifiers.html"},{default:t(()=>[s("modifier")]),_:1}),s(" data object from all modifier calls.")])])])]),C,n("table",null,[E,n("tbody",null,[n("tr",null,[N,B,n("td",null,[s("The instance of the log. This can be used to access its "),a(e,{to:"/reference/log-class.html#getters"},{default:t(()=>[s("data")]),_:1}),s(".")])]),n("tr",null,[U,V,n("td",null,[s("The name of the log "),a(e,{to:"/reference/formatters.html"},{default:t(()=>[s("formatter")]),_:1}),s(" that will be used.")])]),R])]),W,n("table",null,[I,n("tbody",null,[n("tr",null,[J,Y,n("td",null,[s("The instance of the log. This can be used to access its "),a(e,{to:"/reference/log-class.html#getters"},{default:t(()=>[s("data")]),_:1}),s(".")])]),n("tr",null,[G,K,n("td",null,[s("The name of the log "),a(e,{to:"/reference/formatters.html"},{default:t(()=>[s("formatter")]),_:1}),s(" that was used.")])]),n("tr",null,[Q,X,n("td",null,[s("Array of "),a(e,{to:"/reference/formatters.html"},{default:t(()=>[s("formatted")]),_:1}),s(" arguments to be printed to the console.")])])])]),Z,n("table",null,[$,n("tbody",null,[n("tr",null,[nn,sn,n("td",null,[s("The instance of the log. This can be used to access its "),a(e,{to:"/reference/log-class.html#getters"},{default:t(()=>[s("data")]),_:1}),s(".")])])])]),en,n("table",null,[an,n("tbody",null,[n("tr",null,[tn,ln,n("td",null,[s("The instance of the log. This can be used to access its "),a(e,{to:"/reference/log-class.html#getters"},{default:t(()=>[s("data")]),_:1}),s(".")])]),n("tr",null,[on,pn,n("td",null,[s("The name of the "),a(e,{to:"/reference/terminators.html"},{default:t(()=>[s("terminator")]),_:1}),s(" that is being called to print the log.")])]),rn])]),cn,n("table",null,[dn,n("tbody",null,[n("tr",null,[un,hn,n("td",null,[s("The instance of the log. This can be used to access its "),a(e,{to:"/reference/log-class.html#getters"},{default:t(()=>[s("data")]),_:1}),s(".")])]),n("tr",null,[mn,kn,n("td",null,[s("The name of the "),a(e,{to:"/reference/terminators.html"},{default:t(()=>[s("terminator")]),_:1}),s(" that is being called to print the log.")])]),n("tr",null,[fn,vn,n("td",null,[s("The "),a(e,{to:"/reference/formatters.html"},{default:t(()=>[s("formatted")]),_:1}),s(" arguments that will be printed.")])])])])])}const yn=o(c,[["render",bn],["__file","middleware.html.vue"]]),Tn=JSON.parse(`{"path":"/reference/middleware.html","title":"Middleware","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Environment Targeting","slug":"environment-targeting","link":"#environment-targeting","children":[]},{"level":2,"title":"Loading Dependencies","slug":"loading-dependencies","link":"#loading-dependencies","children":[{"level":3,"title":"Using the Middleware","slug":"using-the-middleware","link":"#using-the-middleware","children":[]}]},{"level":2,"title":"Using Lifecycle Hooks","slug":"using-lifecycle-hooks","link":"#using-lifecycle-hooks","children":[{"level":3,"title":"constructed","slug":"constructed","link":"#constructed","children":[]},{"level":3,"title":"beforeModifierApplied","slug":"beforemodifierapplied","link":"#beforemodifierapplied","children":[]},{"level":3,"title":"afterModifierApplied","slug":"aftermodifierapplied","link":"#aftermodifierapplied","children":[]},{"level":3,"title":"beforeFormatApplied","slug":"beforeformatapplied","link":"#beforeformatapplied","children":[]},{"level":3,"title":"afterFormatApplied","slug":"afterformatapplied","link":"#afterformatapplied","children":[]},{"level":3,"title":"beforePrint","slug":"beforeprint","link":"#beforeprint","children":[]},{"level":3,"title":"beforeTerminated","slug":"beforeterminated","link":"#beforeterminated","children":[]},{"level":3,"title":"afterTerminated","slug":"afterterminated","link":"#afterterminated","children":[]}]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"reference/middleware.md","excerpt":"\\n

Adze is able to be extended through middleware classes. Adze exports a Middleware Class that can\\nbe extended to hook into various points in a log's lifecycle.

\\n

Look for Adze middleware libraries for extending the functionality of your logs or for transporting\\nyour log data to various targets.

"}`);export{yn as comp,Tn as data}; diff --git a/assets/migrating.html-DwV4K7S-.js b/assets/migrating.html-BBp8_78D.js similarity index 99% rename from assets/migrating.html-DwV4K7S-.js rename to assets/migrating.html-BBp8_78D.js index 703fbaf..a7ca9d9 100644 --- a/assets/migrating.html-DwV4K7S-.js +++ b/assets/migrating.html-BBp8_78D.js @@ -1,4 +1,4 @@ -import{_ as l,r as o,c as i,b as s,d as n,e,w as t,a as p,o as c}from"./app-Cqk3MxnN.js";const r={},u=s("h1",{id:"migrating-from-adze-v1",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#migrating-from-adze-v1"},[s("span",null,"Migrating from Adze v1")])],-1),d=s("p",null,[n("If you were previously using "),s("a",{href:"https://adzejs.com/v1/",target:"_blank",rel:"noopener noreferrer"},"v1.x"),n(" of Adze, migration should be fairly straightforward. Only a few of the original API's changed and you should be able to resolve them for the most part with a find and replace in your project.")],-1),k=s("p",null,"Here's what has changed:",-1),m=s("code",null,"adze().",-1),h=s("code",null,"adze.",-1),v=s("code",null,"createShed",-1),g=s("code",null,"createShed",-1),b=s("code",null,"setup",-1),f=s("code",null,"$adzeGlobal",-1),y=s("li",null,[n("The "),s("a",{href:"https://adzejs.com/v1/guide/filtering-and-utility-functions.html#filtercollection",target:"_blank",rel:"noopener noreferrer"},"Filtering and Utility"),n(" functions have been removed.")],-1),w=s("li",null,[s("a",{href:"https://adzejs.com/v1/guide/factories.html#bundle",target:"_blank",rel:"noopener noreferrer"},"Bundling"),n(" has been removed.")],-1),x=p(`

WARNING

Some items may have been missed. Please open an issue if any other differences are discovered and we will get them documented.

Adze Factory Changes

adze(). is now just adze.

v1 Example

import adze from 'adze';
+import{_ as l,c as o,b as s,d as n,e,w as t,a as p,r as i,o as c}from"./app-_2IEvvvI.js";const r={},u=s("h1",{id:"migrating-from-adze-v1",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#migrating-from-adze-v1"},[s("span",null,"Migrating from Adze v1")])],-1),d=s("p",null,[n("If you were previously using "),s("a",{href:"https://adzejs.com/v1/",target:"_blank",rel:"noopener noreferrer"},"v1.x"),n(" of Adze, migration should be fairly straightforward. Only a few of the original API's changed and you should be able to resolve them for the most part with a find and replace in your project.")],-1),k=s("p",null,"Here's what has changed:",-1),m=s("code",null,"adze().",-1),h=s("code",null,"adze.",-1),v=s("code",null,"createShed",-1),g=s("code",null,"createShed",-1),b=s("code",null,"setup",-1),f=s("code",null,"$adzeGlobal",-1),y=s("li",null,[n("The "),s("a",{href:"https://adzejs.com/v1/guide/filtering-and-utility-functions.html#filtercollection",target:"_blank",rel:"noopener noreferrer"},"Filtering and Utility"),n(" functions have been removed.")],-1),w=s("li",null,[s("a",{href:"https://adzejs.com/v1/guide/factories.html#bundle",target:"_blank",rel:"noopener noreferrer"},"Bundling"),n(" has been removed.")],-1),x=p(`

WARNING

Some items may have been missed. Please open an issue if any other differences are discovered and we will get them documented.

Adze Factory Changes

adze(). is now just adze.

v1 Example

import adze from 'adze';
 
 adze().log('This is a log.');
 

v2 Example

import adze from 'adze';
@@ -83,4 +83,4 @@ import{_ as l,r as o,c as i,b as s,d as n,e,w as t,a as p,o as c}from"./app-Cqk3
 }
 
 type Level = 'alert' | 'error' | 'warn' | 'info' | 'fail' | 'success' | 'log' | 'debug' | 'verbose';
-
`,4);function T(A,R){const a=o("RouteLink");return c(),i("div",null,[u,d,k,s("ul",null,[s("li",null,[m,n(" is now just "),h,s("ul",null,[s("li",null,[n("Calling "),e(a,{to:"/reference/terminators.html#seal"},{default:t(()=>[n("seal")]),_:1}),n(" returns a class with static methods as well.")])])]),s("li",null,[n("Calling "),v,n(" is no longer required for any functionality. "),s("ul",null,[s("li",null,[g,n(" has been replaced with the "),e(a,{to:"/reference/configuration.html#setup-function"},{default:t(()=>[b,n(" function")]),_:1}),n(".")]),s("li",null,[n("The "),e(a,{to:"/getting-started/global-store.html"},{default:t(()=>[n("global context")]),_:1}),n(" is now named "),f])])]),s("li",null,[e(a,{to:"/reference/global-store.html#addlistener"},{default:t(()=>[n("Log listeners")]),_:1}),n(" now only receive the log instance.")]),s("li",null,[n("The configuration object now has a "),e(a,{to:"/reference/configuration.html"},{default:t(()=>[n("new configuration schema")]),_:1}),n(".")]),y,w]),x,s("p",null,[n("Calling "),e(a,{to:"/reference/terminators.html#seal"},{default:t(()=>[n("seal")]),_:1}),n(" returns a class with static methods as well.")]),_,s("p",null,[z,n(" has been replaced with the "),e(a,{to:"/reference/configuration.html#setup-function"},{default:t(()=>[C,n(" function")]),_:1}),n(".")]),s("p",null,[e(a,{to:"/reference/global-store.html#addlistener"},{default:t(()=>[n("Log listeners")]),_:1}),n(" now only receive the log instance.")]),j,s("p",null,[n("The "),e(a,{to:"/getting-started/global-store.html"},{default:t(()=>[n("global context")]),_:1}),n(" is now named "),S,n(" instead of "),L,n(".")]),E,s("p",null,[n("The configuration object now has a "),e(a,{to:"/reference/configuration.html"},{default:t(()=>[n("new configuration schema")]),_:1}),n(".")]),N])}const $=l(r,[["render",T],["__file","migrating.html.vue"]]),q=JSON.parse(`{"path":"/getting-started/migrating.html","title":"Migrating from Adze v1","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Adze Factory Changes","slug":"adze-factory-changes","link":"#adze-factory-changes","children":[]},{"level":2,"title":"Sealing Changes","slug":"sealing-changes","link":"#sealing-changes","children":[]},{"level":2,"title":"Calling createShed Not Required","slug":"calling-createshed-not-required","link":"#calling-createshed-not-required","children":[]},{"level":2,"title":"createShed replaced with setup","slug":"createshed-replaced-with-setup","link":"#createshed-replaced-with-setup","children":[]},{"level":2,"title":"Global Context is Now $adzeGlobal","slug":"global-context-is-now-adzeglobal","link":"#global-context-is-now-adzeglobal","children":[]},{"level":2,"title":"Configuration Has New Schema","slug":"configuration-has-new-schema","link":"#configuration-has-new-schema","children":[]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"getting-started/migrating.md","excerpt":"\\n

If you were previously using v1.x of Adze, migration should be fairly\\nstraightforward. Only a few of the original API's changed and you should be able to resolve them for\\nthe most part with a find and replace in your project.

"}`);export{$ as comp,q as data}; +
`,4);function T(A,R){const a=i("RouteLink");return c(),o("div",null,[u,d,k,s("ul",null,[s("li",null,[m,n(" is now just "),h,s("ul",null,[s("li",null,[n("Calling "),e(a,{to:"/reference/terminators.html#seal"},{default:t(()=>[n("seal")]),_:1}),n(" returns a class with static methods as well.")])])]),s("li",null,[n("Calling "),v,n(" is no longer required for any functionality. "),s("ul",null,[s("li",null,[g,n(" has been replaced with the "),e(a,{to:"/reference/configuration.html#setup-function"},{default:t(()=>[b,n(" function")]),_:1}),n(".")]),s("li",null,[n("The "),e(a,{to:"/getting-started/global-store.html"},{default:t(()=>[n("global context")]),_:1}),n(" is now named "),f])])]),s("li",null,[e(a,{to:"/reference/global-store.html#addlistener"},{default:t(()=>[n("Log listeners")]),_:1}),n(" now only receive the log instance.")]),s("li",null,[n("The configuration object now has a "),e(a,{to:"/reference/configuration.html"},{default:t(()=>[n("new configuration schema")]),_:1}),n(".")]),y,w]),x,s("p",null,[n("Calling "),e(a,{to:"/reference/terminators.html#seal"},{default:t(()=>[n("seal")]),_:1}),n(" returns a class with static methods as well.")]),_,s("p",null,[z,n(" has been replaced with the "),e(a,{to:"/reference/configuration.html#setup-function"},{default:t(()=>[C,n(" function")]),_:1}),n(".")]),s("p",null,[e(a,{to:"/reference/global-store.html#addlistener"},{default:t(()=>[n("Log listeners")]),_:1}),n(" now only receive the log instance.")]),j,s("p",null,[n("The "),e(a,{to:"/getting-started/global-store.html"},{default:t(()=>[n("global context")]),_:1}),n(" is now named "),S,n(" instead of "),L,n(".")]),E,s("p",null,[n("The configuration object now has a "),e(a,{to:"/reference/configuration.html"},{default:t(()=>[n("new configuration schema")]),_:1}),n(".")]),N])}const $=l(r,[["render",T],["__file","migrating.html.vue"]]),q=JSON.parse(`{"path":"/getting-started/migrating.html","title":"Migrating from Adze v1","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Adze Factory Changes","slug":"adze-factory-changes","link":"#adze-factory-changes","children":[]},{"level":2,"title":"Sealing Changes","slug":"sealing-changes","link":"#sealing-changes","children":[]},{"level":2,"title":"Calling createShed Not Required","slug":"calling-createshed-not-required","link":"#calling-createshed-not-required","children":[]},{"level":2,"title":"createShed replaced with setup","slug":"createshed-replaced-with-setup","link":"#createshed-replaced-with-setup","children":[]},{"level":2,"title":"Global Context is Now $adzeGlobal","slug":"global-context-is-now-adzeglobal","link":"#global-context-is-now-adzeglobal","children":[]},{"level":2,"title":"Configuration Has New Schema","slug":"configuration-has-new-schema","link":"#configuration-has-new-schema","children":[]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"getting-started/migrating.md","excerpt":"\\n

If you were previously using v1.x of Adze, migration should be fairly\\nstraightforward. Only a few of the original API's changed and you should be able to resolve them for\\nthe most part with a find and replace in your project.

"}`);export{$ as comp,q as data}; diff --git a/assets/modifiers.html-DqsEp6sn.js b/assets/modifiers.html-4RHpwnhU.js similarity index 99% rename from assets/modifiers.html-DqsEp6sn.js rename to assets/modifiers.html-4RHpwnhU.js index 0b58bde..2a2c312 100644 --- a/assets/modifiers.html-DqsEp6sn.js +++ b/assets/modifiers.html-4RHpwnhU.js @@ -1,4 +1,4 @@ -import{_ as o,r as l,c as i,b as n,d as s,e,w as t,a as p,o as c}from"./app-Cqk3MxnN.js";const r="/assets/assert-example-browser-tae9lyor.png",u="/assets/assert-example-node-DSc51SNE.png",d="/assets/closeThread-example-browser-DwARQceQ.png",k="/assets/closeThread-example-node-cg9zwu2T.png",m="/assets/count-example-browser-Dvqu7lrr.png",h="/assets/count-example-node-zLbu0Awh.png",v="/assets/countClear-example-D4bFesM-.png",b="/assets/countReset-example-browser-CfxUJ0fo.png",g="/assets/countReset-example-node-Dgb3afb9.png",f="/assets/dir-example-browser-QoeyCqES.png",w="/assets/dir-example-node-BnKiaAxv.png",y="/assets/dump-example-browser-CHg4_66K.png",x="/assets/dump-example-node-D0fp32VZ.png",_="/assets/format-example-browser-DrBxnFXc.png",z="/assets/format-example-node-DUI3PyrR.png",T="/assets/group-example-browser-TyRVJxgz.png",j="/assets/group-example-node-Dkbki2ro.png",L="/assets/groupCollapsed-example-browser-DiQVpIU1.png",E="/assets/group-example-node-Dkbki2ro.png",I="/assets/groupEnd-example-browser-SwCTag1y.png",S="/assets/groupEnd-example-node-Bw4uqA06.png",O="/assets/if-example-browser-BpyQNRE0.png",C="/assets/if-example-node-DYJEG1tL.png",A="/assets/label-example-browser-YTUnmnIj.png",N="/assets/label-example-node-GyzPCLr2.png",D="/assets/meta-example-browser-B2HziK4d.png",B="/assets/meta-example-node-CiIiK7pb.png",P="/assets/namespace-example-browser-1-BiWwa7jW.png",q="/assets/namespace-example-node-1-OoX98_fR.png",R="/assets/silent-example-browser-C8PaEthq.png",M="/assets/silent-example-node-BqsI_AUf.png",W="/assets/table-example-browser-kzgOmgz3.png",U="/assets/table-example-node-D2c7--7F.png",G="/assets/time-example-browser-C-wou2TJ.png",J="/assets/time-example-node-Bom8pJzb.png",V="/assets/time-example-browser-C-wou2TJ.png",K="/assets/time-example-node-Bom8pJzb.png",F="/assets/timeNow-example-browser-D93OV8p4.png",X="/assets/timeNow-example-node-IDAKQuys.png",Y="/assets/timestamp-example-browser-C4aUSfvF.png",H="/assets/timestamp-example-node-DlPo2Pbm.png",Q="/assets/trace-example-browser-FjTWOhu1.png",$="/assets/trace-example-node-BlUGFM0a.png",Z="/assets/withEmoji-example-browser-BD6zKzWK.png",ss="/assets/withEmoji-example-node-CpGOqgVn.png",ns={},as=p(`

Modifiers

Once you have an Adze log instance you can now start applying modifiers. Modifiers are methods that alter the log in some way and then return the log instance so that you may chain more modifiers or terminate the instance. Keep in mind, some modifiers have a dependency on the presence of a label and labels rely on GlobalStore.

assert

This modifier accepts an assertion boolean expression and will only print if the boolean expression fails (is a falsy value).

MDN Docs

Interface

class Log {
+import{_ as o,c as l,b as n,d as s,e,w as t,a as p,r as i,o as c}from"./app-_2IEvvvI.js";const r="/assets/assert-example-browser-tae9lyor.png",u="/assets/assert-example-node-DSc51SNE.png",d="/assets/closeThread-example-browser-DwARQceQ.png",k="/assets/closeThread-example-node-cg9zwu2T.png",m="/assets/count-example-browser-Dvqu7lrr.png",h="/assets/count-example-node-zLbu0Awh.png",v="/assets/countClear-example-D4bFesM-.png",b="/assets/countReset-example-browser-CfxUJ0fo.png",g="/assets/countReset-example-node-Dgb3afb9.png",f="/assets/dir-example-browser-QoeyCqES.png",w="/assets/dir-example-node-BnKiaAxv.png",y="/assets/dump-example-browser-CHg4_66K.png",x="/assets/dump-example-node-D0fp32VZ.png",_="/assets/format-example-browser-DrBxnFXc.png",z="/assets/format-example-node-DUI3PyrR.png",T="/assets/group-example-browser-TyRVJxgz.png",j="/assets/group-example-node-Dkbki2ro.png",L="/assets/groupCollapsed-example-browser-DiQVpIU1.png",E="/assets/group-example-node-Dkbki2ro.png",I="/assets/groupEnd-example-browser-SwCTag1y.png",S="/assets/groupEnd-example-node-Bw4uqA06.png",O="/assets/if-example-browser-BpyQNRE0.png",C="/assets/if-example-node-DYJEG1tL.png",A="/assets/label-example-browser-YTUnmnIj.png",N="/assets/label-example-node-GyzPCLr2.png",D="/assets/meta-example-browser-B2HziK4d.png",B="/assets/meta-example-node-CiIiK7pb.png",P="/assets/namespace-example-browser-1-BiWwa7jW.png",q="/assets/namespace-example-node-1-OoX98_fR.png",R="/assets/silent-example-browser-C8PaEthq.png",M="/assets/silent-example-node-BqsI_AUf.png",W="/assets/table-example-browser-kzgOmgz3.png",U="/assets/table-example-node-D2c7--7F.png",G="/assets/time-example-browser-C-wou2TJ.png",J="/assets/time-example-node-Bom8pJzb.png",V="/assets/time-example-browser-C-wou2TJ.png",K="/assets/time-example-node-Bom8pJzb.png",F="/assets/timeNow-example-browser-D93OV8p4.png",X="/assets/timeNow-example-node-IDAKQuys.png",Y="/assets/timestamp-example-browser-C4aUSfvF.png",H="/assets/timestamp-example-node-DlPo2Pbm.png",Q="/assets/trace-example-browser-FjTWOhu1.png",$="/assets/trace-example-node-BlUGFM0a.png",Z="/assets/withEmoji-example-browser-BD6zKzWK.png",ss="/assets/withEmoji-example-node-CpGOqgVn.png",ns={},as=p(`

Modifiers

Once you have an Adze log instance you can now start applying modifiers. Modifiers are methods that alter the log in some way and then return the log instance so that you may chain more modifiers or terminate the instance. Keep in mind, some modifiers have a dependency on the presence of a label and labels rely on GlobalStore.

assert

This modifier accepts an assertion boolean expression and will only print if the boolean expression fails (is a falsy value).

MDN Docs

Interface

class Log {
   public assert(expression: boolean): Log;
 }
 

Example

import adze from 'adze';
@@ -342,4 +342,4 @@ import{_ as o,r as l,c as i,b as n,d as s,e,w as t,a as p,o as c}from"./app-Cqk3
 

Example

import adze from 'adze';
 
 adze.withEmoji.log('Logging with an emoji!');
-

Browser Output

with emoji modifier example browser output

Server Output

with emoji modifier example server output

',9);function zs(Ts,js){const a=l("RouteLink");return c(),i("div",null,[as,n("p",null,[s("This is used primarily in conjunction with a "),es,s(" and the "),e(a,{to:"/reference/terminators.html#thread"},{default:t(()=>[s("thread")]),_:1}),s(" terminator for implementing "),e(a,{to:"/getting-started/threading.html"},{default:t(()=>[s("Threading")]),_:1}),s(".")]),ts,n("div",ps,[os,n("p",null,[s("This method is deliberately a modifier rather than a terminator because it forces you to write a log that gives you insight into when a counter was cleared. It also makes the countClear log recallable from the "),e(a,{to:"/reference/global-store.html"},{default:t(()=>[s("global store")]),_:1}),s(" in the order it was created.")])]),ls,n("p",null,[s("This modifier instructs the "),is,s(" log to print the context values from a "),e(a,{to:"/reference/terminators.html#thread"},{default:t(()=>[s("thread")]),_:1}),s(".")]),n("p",null,[s("Refer to the "),e(a,{to:"/getting-started/threading.html"},{default:t(()=>[s("threading")]),_:1}),s(" section of the "),e(a,{to:"/getting-started/"},{default:t(()=>[s("Getting Started")]),_:1}),s(" guide for more information.")]),cs,n("p",null,[s("The format modifier sets the formatter that will be used for the log. This can also be used in conjunction with the "),e(a,{to:"/reference/terminators.html#seal"},{default:t(()=>[s("seal")]),_:1}),s(" or "),e(a,{to:"/reference/terminators.html#sealTag"},{default:t(()=>[s("sealTag")]),_:1}),s(" terminators to create specifically formatted child loggers.")]),rs,n("p",null,[s("Applies an identifying label to a log. All logs that share the same label will be linked together in the "),e(a,{to:"/reference/global-store.html"},{default:t(()=>[s("Global Store")]),_:1}),s(". This enables global tracking for modifiers that require a label as a prerequisite.")]),us,n("ul",null,[ds,ks,ms,hs,n("li",null,[e(a,{to:"/reference/terminators.html#thread"},{default:t(()=>[s("thread")]),_:1})]),vs,bs,gs]),fs,n("p",null,[s("Multiple calls to the namespace modifier are additive by nature and will not overwrite previously applied namespaces. This is especially useful when working with "),e(a,{to:"/reference/terminators.html#seal"},{default:t(()=>[s("sealed")]),_:1}),s(" child loggers.")]),ws,n("p",null,[s("Adze also supports passing a constraints type when "),e(a,{to:"/reference/terminators.html#seal"},{default:t(()=>[s("sealing")]),_:1}),s(" a new logger or when calling the "),e(a,{to:"/reference/configuration.html#setup-function"},{default:t(()=>[s("setup function")]),_:1}),s(". This is beneficial because it will force users to add any new namespace to the central constraints type. This will make it easier to filter namespaces throughout your application because you will only have a single place to reference to understand what namespaces are being used.")]),ys,n("p",null,[s("The silent modifier allows a log to be terminated and cached but prevents it from printing to the console. Because the log is still processed, it will still trigger "),e(a,{to:"/reference/middleware.html#using-lifecycle-hooks"},{default:t(()=>[s("middleware hooks")]),_:1}),s(" and "),e(a,{to:"/reference/global-store.html#addlistener"},{default:t(()=>[s("listeners")]),_:1}),s(".")]),xs,n("p",null,[s("The only formatter that supports this out of the box is the "),e(a,{to:"/reference/formatters.html#pretty-formatter"},{default:t(()=>[s("pretty")]),_:1}),s(" formatter.")]),_s])}const Es=o(ns,[["render",zs],["__file","modifiers.html.vue"]]),Is=JSON.parse('{"path":"/reference/modifiers.html","title":"Modifiers","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"assert","slug":"assert","link":"#assert","children":[]},{"level":2,"title":"closeThread","slug":"closethread","link":"#closethread","children":[]},{"level":2,"title":"count","slug":"count","link":"#count","children":[]},{"level":2,"title":"countClear","slug":"countclear","link":"#countclear","children":[]},{"level":2,"title":"countReset","slug":"countreset","link":"#countreset","children":[]},{"level":2,"title":"dir","slug":"dir","link":"#dir","children":[]},{"level":2,"title":"dirxml","slug":"dirxml","link":"#dirxml","children":[]},{"level":2,"title":"dump","slug":"dump","link":"#dump","children":[]},{"level":2,"title":"format","slug":"format","link":"#format","children":[]},{"level":2,"title":"group","slug":"group","link":"#group","children":[]},{"level":2,"title":"groupCollapsed","slug":"groupcollapsed","link":"#groupcollapsed","children":[]},{"level":2,"title":"groupEnd","slug":"groupend","link":"#groupend","children":[]},{"level":2,"title":"if","slug":"if","link":"#if","children":[]},{"level":2,"title":"label","slug":"label","link":"#label","children":[]},{"level":2,"title":"meta","slug":"meta","link":"#meta","children":[]},{"level":2,"title":"namespace / ns","slug":"namespace-ns","link":"#namespace-ns","children":[{"level":3,"title":"Namespaces with Constraints","slug":"namespaces-with-constraints","link":"#namespaces-with-constraints","children":[]}]},{"level":2,"title":"silent","slug":"silent","link":"#silent","children":[]},{"level":2,"title":"table","slug":"table","link":"#table","children":[]},{"level":2,"title":"time","slug":"time","link":"#time","children":[]},{"level":2,"title":"timeEnd","slug":"timeend","link":"#timeend","children":[]},{"level":2,"title":"timeNow","slug":"timenow","link":"#timenow","children":[]},{"level":2,"title":"timestamp","slug":"timestamp","link":"#timestamp","children":[]},{"level":2,"title":"trace","slug":"trace","link":"#trace","children":[]},{"level":2,"title":"withEmoji","slug":"withemoji","link":"#withemoji","children":[]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"reference/modifiers.md","excerpt":"\\n

Once you have an Adze log instance you can now start applying modifiers. Modifiers are methods that alter the log in some way and then return\\nthe log instance so that you may chain more modifiers or terminate the instance. Keep in mind, some modifiers have a dependency on the presence of a label and labels rely on GlobalStore.

"}');export{Es as comp,Is as data}; +

Browser Output

with emoji modifier example browser output

Server Output

with emoji modifier example server output

',9);function zs(Ts,js){const a=i("RouteLink");return c(),l("div",null,[as,n("p",null,[s("This is used primarily in conjunction with a "),es,s(" and the "),e(a,{to:"/reference/terminators.html#thread"},{default:t(()=>[s("thread")]),_:1}),s(" terminator for implementing "),e(a,{to:"/getting-started/threading.html"},{default:t(()=>[s("Threading")]),_:1}),s(".")]),ts,n("div",ps,[os,n("p",null,[s("This method is deliberately a modifier rather than a terminator because it forces you to write a log that gives you insight into when a counter was cleared. It also makes the countClear log recallable from the "),e(a,{to:"/reference/global-store.html"},{default:t(()=>[s("global store")]),_:1}),s(" in the order it was created.")])]),ls,n("p",null,[s("This modifier instructs the "),is,s(" log to print the context values from a "),e(a,{to:"/reference/terminators.html#thread"},{default:t(()=>[s("thread")]),_:1}),s(".")]),n("p",null,[s("Refer to the "),e(a,{to:"/getting-started/threading.html"},{default:t(()=>[s("threading")]),_:1}),s(" section of the "),e(a,{to:"/getting-started/"},{default:t(()=>[s("Getting Started")]),_:1}),s(" guide for more information.")]),cs,n("p",null,[s("The format modifier sets the formatter that will be used for the log. This can also be used in conjunction with the "),e(a,{to:"/reference/terminators.html#seal"},{default:t(()=>[s("seal")]),_:1}),s(" or "),e(a,{to:"/reference/terminators.html#sealTag"},{default:t(()=>[s("sealTag")]),_:1}),s(" terminators to create specifically formatted child loggers.")]),rs,n("p",null,[s("Applies an identifying label to a log. All logs that share the same label will be linked together in the "),e(a,{to:"/reference/global-store.html"},{default:t(()=>[s("Global Store")]),_:1}),s(". This enables global tracking for modifiers that require a label as a prerequisite.")]),us,n("ul",null,[ds,ks,ms,hs,n("li",null,[e(a,{to:"/reference/terminators.html#thread"},{default:t(()=>[s("thread")]),_:1})]),vs,bs,gs]),fs,n("p",null,[s("Multiple calls to the namespace modifier are additive by nature and will not overwrite previously applied namespaces. This is especially useful when working with "),e(a,{to:"/reference/terminators.html#seal"},{default:t(()=>[s("sealed")]),_:1}),s(" child loggers.")]),ws,n("p",null,[s("Adze also supports passing a constraints type when "),e(a,{to:"/reference/terminators.html#seal"},{default:t(()=>[s("sealing")]),_:1}),s(" a new logger or when calling the "),e(a,{to:"/reference/configuration.html#setup-function"},{default:t(()=>[s("setup function")]),_:1}),s(". This is beneficial because it will force users to add any new namespace to the central constraints type. This will make it easier to filter namespaces throughout your application because you will only have a single place to reference to understand what namespaces are being used.")]),ys,n("p",null,[s("The silent modifier allows a log to be terminated and cached but prevents it from printing to the console. Because the log is still processed, it will still trigger "),e(a,{to:"/reference/middleware.html#using-lifecycle-hooks"},{default:t(()=>[s("middleware hooks")]),_:1}),s(" and "),e(a,{to:"/reference/global-store.html#addlistener"},{default:t(()=>[s("listeners")]),_:1}),s(".")]),xs,n("p",null,[s("The only formatter that supports this out of the box is the "),e(a,{to:"/reference/formatters.html#pretty-formatter"},{default:t(()=>[s("pretty")]),_:1}),s(" formatter.")]),_s])}const Es=o(ns,[["render",zs],["__file","modifiers.html.vue"]]),Is=JSON.parse('{"path":"/reference/modifiers.html","title":"Modifiers","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"assert","slug":"assert","link":"#assert","children":[]},{"level":2,"title":"closeThread","slug":"closethread","link":"#closethread","children":[]},{"level":2,"title":"count","slug":"count","link":"#count","children":[]},{"level":2,"title":"countClear","slug":"countclear","link":"#countclear","children":[]},{"level":2,"title":"countReset","slug":"countreset","link":"#countreset","children":[]},{"level":2,"title":"dir","slug":"dir","link":"#dir","children":[]},{"level":2,"title":"dirxml","slug":"dirxml","link":"#dirxml","children":[]},{"level":2,"title":"dump","slug":"dump","link":"#dump","children":[]},{"level":2,"title":"format","slug":"format","link":"#format","children":[]},{"level":2,"title":"group","slug":"group","link":"#group","children":[]},{"level":2,"title":"groupCollapsed","slug":"groupcollapsed","link":"#groupcollapsed","children":[]},{"level":2,"title":"groupEnd","slug":"groupend","link":"#groupend","children":[]},{"level":2,"title":"if","slug":"if","link":"#if","children":[]},{"level":2,"title":"label","slug":"label","link":"#label","children":[]},{"level":2,"title":"meta","slug":"meta","link":"#meta","children":[]},{"level":2,"title":"namespace / ns","slug":"namespace-ns","link":"#namespace-ns","children":[{"level":3,"title":"Namespaces with Constraints","slug":"namespaces-with-constraints","link":"#namespaces-with-constraints","children":[]}]},{"level":2,"title":"silent","slug":"silent","link":"#silent","children":[]},{"level":2,"title":"table","slug":"table","link":"#table","children":[]},{"level":2,"title":"time","slug":"time","link":"#time","children":[]},{"level":2,"title":"timeEnd","slug":"timeend","link":"#timeend","children":[]},{"level":2,"title":"timeNow","slug":"timenow","link":"#timenow","children":[]},{"level":2,"title":"timestamp","slug":"timestamp","link":"#timestamp","children":[]},{"level":2,"title":"trace","slug":"trace","link":"#trace","children":[]},{"level":2,"title":"withEmoji","slug":"withemoji","link":"#withemoji","children":[]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"reference/modifiers.md","excerpt":"\\n

Once you have an Adze log instance you can now start applying modifiers. Modifiers are methods that alter the log in some way and then return\\nthe log instance so that you may chain more modifiers or terminate the instance. Keep in mind, some modifiers have a dependency on the presence of a label and labels rely on GlobalStore.

"}');export{Es as comp,Is as data}; diff --git a/assets/much-more.html-BLGNnRZ8.js b/assets/much-more.html-CsjN2s8L.js similarity index 84% rename from assets/much-more.html-BLGNnRZ8.js rename to assets/much-more.html-CsjN2s8L.js index 3450c0d..9f93efd 100644 --- a/assets/much-more.html-BLGNnRZ8.js +++ b/assets/much-more.html-CsjN2s8L.js @@ -1 +1 @@ -import{_ as r,r as n,c as i,b as c,d as e,e as o,w as a,o as l}from"./app-Cqk3MxnN.js";const m={};function d(u,s){const t=n("RouteLink");return l(),i("div",null,[c("p",null,[e("To learn more about Adze and how to use it in your project, take a look at the "),o(t,{to:"/getting-started/introduction.html"},{default:a(()=>[e("Getting Started")]),_:1}),e(" guide for a guided tutorial, or visit the "),o(t,{to:"/reference/introduction.html"},{default:a(()=>[e("Reference Manual")]),_:1}),e(" for more details about the API's.")])])}const f=r(m,[["render",d],["__file","much-more.html.vue"]]),_=JSON.parse(`{"path":"/home/much-more.html","title":"","lang":"en-US","frontmatter":{},"headers":[],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"home/much-more.md","excerpt":"

To learn more about Adze and how to use it in your project, take a look at the Getting Started\\nguide for a guided tutorial, or visit the Reference Manual for more details about the API's.

"}`);export{f as comp,_ as data}; +import{_ as r,c as n,b as i,d as e,e as o,w as a,r as c,o as l}from"./app-_2IEvvvI.js";const m={};function d(u,s){const t=c("RouteLink");return l(),n("div",null,[i("p",null,[e("To learn more about Adze and how to use it in your project, take a look at the "),o(t,{to:"/getting-started/introduction.html"},{default:a(()=>[e("Getting Started")]),_:1}),e(" guide for a guided tutorial, or visit the "),o(t,{to:"/reference/introduction.html"},{default:a(()=>[e("Reference Manual")]),_:1}),e(" for more details about the API's.")])])}const f=r(m,[["render",d],["__file","much-more.html.vue"]]),_=JSON.parse(`{"path":"/home/much-more.html","title":"","lang":"en-US","frontmatter":{},"headers":[],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"home/much-more.md","excerpt":"

To learn more about Adze and how to use it in your project, take a look at the Getting Started\\nguide for a guided tutorial, or visit the Reference Manual for more details about the API's.

"}`);export{f as comp,_ as data}; diff --git a/assets/plugins.html-Dy0V6pZc.js b/assets/plugins.html-CrSMwGT8.js similarity index 97% rename from assets/plugins.html-Dy0V6pZc.js rename to assets/plugins.html-CrSMwGT8.js index 187dd2f..1504cf9 100644 --- a/assets/plugins.html-Dy0V6pZc.js +++ b/assets/plugins.html-CrSMwGT8.js @@ -1 +1 @@ -import{_ as e,c as t,o as a,a as r}from"./app-Cqk3MxnN.js";const o={},n=r('

Official Plugins

The following list contains plugins that are officially supported by core Adze contributors and are maintained under the @adze npm organization namespace. We hope that over time this list will grow and hopefully community created add-on's can be adopted by the official organization.


@adze/transport-file

This plugin is middleware for automatically transporting logs to rotating log files. It is based on the file-stream-rotator library and accepts all of the same configuration.

Location
Source Codehttps://github.com/adzejs/transport-file
npmhttps://www.npmjs.com/package/@adze/transport-file
',6),i=[n];function l(s,c){return a(),t("div",null,i)}const p=e(o,[["render",l],["__file","plugins.html.vue"]]),h=JSON.parse(`{"path":"/plugins.html","title":"Official Plugins","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"@adze/transport-file","slug":"adze-transport-file","link":"#adze-transport-file","children":[]}],"git":{"updatedTime":1726233790000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1},{"name":"Andrew Stacy","email":"astacy@stratacache.com","commits":1}]},"filePathRelative":"plugins.md","excerpt":"\\n

The following list contains plugins that are officially supported by core Adze contributors and are\\nmaintained under the @adze npm organization namespace. We hope that over time this list will\\ngrow and hopefully community created add-on's can be adopted by the official organization.

"}`);export{p as comp,h as data}; +import{_ as e,c as t,o as a,a as r}from"./app-_2IEvvvI.js";const o={},n=r('

Official Plugins

The following list contains plugins that are officially supported by core Adze contributors and are maintained under the @adze npm organization namespace. We hope that over time this list will grow and hopefully community created add-on's can be adopted by the official organization.


@adze/transport-file

This plugin is middleware for automatically transporting logs to rotating log files. It is based on the file-stream-rotator library and accepts all of the same configuration.

Location
Source Codehttps://github.com/adzejs/transport-file
npmhttps://www.npmjs.com/package/@adze/transport-file
',6),i=[n];function l(s,c){return a(),t("div",null,i)}const p=e(o,[["render",l],["__file","plugins.html.vue"]]),h=JSON.parse(`{"path":"/plugins.html","title":"Official Plugins","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"@adze/transport-file","slug":"adze-transport-file","link":"#adze-transport-file","children":[]}],"git":{"updatedTime":1726233790000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1},{"name":"Andrew Stacy","email":"astacy@stratacache.com","commits":1}]},"filePathRelative":"plugins.md","excerpt":"\\n

The following list contains plugins that are officially supported by core Adze contributors and are\\nmaintained under the @adze npm organization namespace. We hope that over time this list will\\ngrow and hopefully community created add-on's can be adopted by the official organization.

"}`);export{p as comp,h as data}; diff --git a/assets/putting-it-all-together.html-D1LL_Mqh.js b/assets/putting-it-all-together.html-DCWNl5E3.js similarity index 97% rename from assets/putting-it-all-together.html-D1LL_Mqh.js rename to assets/putting-it-all-together.html-DCWNl5E3.js index 44fe6a6..6f10403 100644 --- a/assets/putting-it-all-together.html-D1LL_Mqh.js +++ b/assets/putting-it-all-together.html-DCWNl5E3.js @@ -1,4 +1,4 @@ -import{_ as o,r as l,c as p,b as s,e as t,w as e,d as n,a as i,o as c}from"./app-Cqk3MxnN.js";const r={},u=s("h1",{id:"putting-it-all-together",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#putting-it-all-together"},[s("span",null,"Putting It All Together")])],-1),d=s("p",null,"In summary, we have learned how to do the following:",-1),m=i(`

Production Example

Here is an overview of a basic implementation of Adze for use in a production environment.

import adze, { setup } from 'adze';
+import{_ as o,c as l,b as s,e as t,w as e,d as n,a as p,r as i,o as c}from"./app-_2IEvvvI.js";const r={},u=s("h1",{id:"putting-it-all-together",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#putting-it-all-together"},[s("span",null,"Putting It All Together")])],-1),d=s("p",null,"In summary, we have learned how to do the following:",-1),m=p(`

Production Example

Here is an overview of a basic implementation of Adze for use in a production environment.

import adze, { setup } from 'adze';
 import AdzeTransportFile from '@adze/transport-file';
 
 // Make the output format pretty when in development. Use JSON formatting in all other environments.
@@ -32,4 +32,4 @@ import{_ as o,r as l,c as p,b as s,e as t,w as e,d as n,a as i,o as c}from"./app
 const logger = _logger.ns('my-module').seal();
 
 logger.info('This is some information about my application.');
-
`,5),g={class:"custom-container tip"},k=s("p",{class:"custom-container-title"},"TIP",-1);function v(f,h){const a=l("RouteLink");return c(),p("div",null,[u,d,s("ul",null,[s("li",null,[t(a,{to:"/getting-started/installation.html"},{default:e(()=>[n("Installing Adze")]),_:1})]),s("li",null,[t(a,{to:"/getting-started/setup.html"},{default:e(()=>[n("Setting up Adze for use throughout our applications")]),_:1})]),s("li",null,[t(a,{to:"/getting-started/setup.html#configure-the-shared-logger"},{default:e(()=>[n("Configuring and customizing Adze")]),_:1})]),s("li",null,[t(a,{to:"/getting-started/annotation.html"},{default:e(()=>[n("Annotating our logs with meta data")]),_:1})]),s("li",null,[t(a,{to:"/getting-started/capture-data.html"},{default:e(()=>[n("Capturing our log data for transport")]),_:1})]),s("li",null,[t(a,{to:"/getting-started/filtering.html"},{default:e(()=>[n("Filtering our logs for readability")]),_:1})]),s("li",null,[t(a,{to:"/getting-started/tools.html"},{default:e(()=>[n("and using tools to filter our logs in our runtime environments")]),_:1})])]),s("p",null,[n("If you would like to dive even deeper into the functionality that Adze provides, please read through the "),t(a,{to:"/reference/introduction.html"},{default:e(()=>[n("Reference Manual")]),_:1}),n(". Here you will be introduced to all of the available "),t(a,{to:"/reference/modifiers.html"},{default:e(()=>[n("modifiers")]),_:1}),n(" and "),t(a,{to:"/reference/terminators.html"},{default:e(()=>[n("terminators")]),_:1}),n(", as well as greater detail about "),t(a,{to:"/reference/formatters.html"},{default:e(()=>[n("log formatting")]),_:1}),n(" and "),t(a,{to:"/reference/configuration.html"},{default:e(()=>[n("customizability")]),_:1}),n(".")]),m,s("div",g,[k,s("p",null,[n("Now go read the "),t(a,{to:"/reference/introduction.html"},{default:e(()=>[n("reference manual")]),_:1}),n(" and have fun!")])])])}const _=o(r,[["render",v],["__file","putting-it-all-together.html.vue"]]),y=JSON.parse('{"path":"/getting-started/putting-it-all-together.html","title":"Putting It All Together","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Production Example","slug":"production-example","link":"#production-example","children":[]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"getting-started/putting-it-all-together.md","excerpt":"\\n

In summary, we have learned how to do the following:

\\n"}');export{_ as comp,y as data}; +
`,5),g={class:"custom-container tip"},k=s("p",{class:"custom-container-title"},"TIP",-1);function v(f,h){const a=i("RouteLink");return c(),l("div",null,[u,d,s("ul",null,[s("li",null,[t(a,{to:"/getting-started/installation.html"},{default:e(()=>[n("Installing Adze")]),_:1})]),s("li",null,[t(a,{to:"/getting-started/setup.html"},{default:e(()=>[n("Setting up Adze for use throughout our applications")]),_:1})]),s("li",null,[t(a,{to:"/getting-started/setup.html#configure-the-shared-logger"},{default:e(()=>[n("Configuring and customizing Adze")]),_:1})]),s("li",null,[t(a,{to:"/getting-started/annotation.html"},{default:e(()=>[n("Annotating our logs with meta data")]),_:1})]),s("li",null,[t(a,{to:"/getting-started/capture-data.html"},{default:e(()=>[n("Capturing our log data for transport")]),_:1})]),s("li",null,[t(a,{to:"/getting-started/filtering.html"},{default:e(()=>[n("Filtering our logs for readability")]),_:1})]),s("li",null,[t(a,{to:"/getting-started/tools.html"},{default:e(()=>[n("and using tools to filter our logs in our runtime environments")]),_:1})])]),s("p",null,[n("If you would like to dive even deeper into the functionality that Adze provides, please read through the "),t(a,{to:"/reference/introduction.html"},{default:e(()=>[n("Reference Manual")]),_:1}),n(". Here you will be introduced to all of the available "),t(a,{to:"/reference/modifiers.html"},{default:e(()=>[n("modifiers")]),_:1}),n(" and "),t(a,{to:"/reference/terminators.html"},{default:e(()=>[n("terminators")]),_:1}),n(", as well as greater detail about "),t(a,{to:"/reference/formatters.html"},{default:e(()=>[n("log formatting")]),_:1}),n(" and "),t(a,{to:"/reference/configuration.html"},{default:e(()=>[n("customizability")]),_:1}),n(".")]),m,s("div",g,[k,s("p",null,[n("Now go read the "),t(a,{to:"/reference/introduction.html"},{default:e(()=>[n("reference manual")]),_:1}),n(" and have fun!")])])])}const _=o(r,[["render",v],["__file","putting-it-all-together.html.vue"]]),y=JSON.parse('{"path":"/getting-started/putting-it-all-together.html","title":"Putting It All Together","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Production Example","slug":"production-example","link":"#production-example","children":[]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"getting-started/putting-it-all-together.md","excerpt":"\\n

In summary, we have learned how to do the following:

\\n"}');export{_ as comp,y as data}; diff --git a/assets/setup.html-DWFI0YCA.js b/assets/setup.html-D0Vi7yC_.js similarity index 96% rename from assets/setup.html-DWFI0YCA.js rename to assets/setup.html-D0Vi7yC_.js index 3b5692a..46e39bc 100644 --- a/assets/setup.html-DWFI0YCA.js +++ b/assets/setup.html-D0Vi7yC_.js @@ -1,4 +1,4 @@ -import{_ as o,r as i,c as p,b as l,d as e,e as n,w as a,a as t,o as c}from"./app-Cqk3MxnN.js";const r="/assets/setup-shared-logger-jLtQgX4T.png",d={},u=t(`

Setting Up Adze

Although Adze can be used in a very simple, no-config manner by just importing it and using it, most often we want to centrally create shared loggers that can be imported and used throughout our application.

Create a Shared Logger

To create a shared logger, first create a new file somewhere that makes sense in your application (like ./src/logger.[ts|js]).

After you have created your file, let's import our dependencies.

// ./src/logger.ts
+import{_ as o,c as i,b as p,d as e,e as n,w as a,a as t,r as l,o as c}from"./app-_2IEvvvI.js";const r="/assets/setup-shared-logger-jLtQgX4T.png",d={},u=t(`

Setting Up Adze

Although Adze can be used in a very simple, no-config manner by just importing it and using it, most often we want to centrally create shared loggers that can be imported and used throughout our application.

Create a Shared Logger

To create a shared logger, first create a new file somewhere that makes sense in your application (like ./src/logger.[ts|js]).

After you have created your file, let's import our dependencies.

// ./src/logger.ts
 import adze, { setup } from 'adze';
 
 // ...more setup code will go here
@@ -17,4 +17,4 @@ import{_ as o,r as i,c as p,b as l,d as e,e as n,w as a,a as t,o as c}from"./app
 import logger from './logger';
 
 logger.log('Logging from the index.');
-

Example output from index.ts

Shared logger output

',7);function g(h,k){const s=i("RouteLink");return c(),p("div",null,[u,l("p",null,[e("Now that we have imported our dependencies, let's create and export a shared logger that has emoji's enabled and outputs timestamps with every log. We'll also attach some meta data globally to all loggers using the "),n(s,{to:"/reference/global-store.html#setup-function"},{default:a(()=>[e("setup function")]),_:1}),e(". We'll go more in-depth on why we we're doing this "),n(s,{to:"/getting-started/capture-data.html"},{default:a(()=>[e("later")]),_:1}),e(".")]),m])}const f=o(d,[["render",g],["__file","setup.html.vue"]]),b=JSON.parse('{"path":"/getting-started/setup.html","title":"Setting Up Adze","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Create a Shared Logger","slug":"create-a-shared-logger","link":"#create-a-shared-logger","children":[]}],"git":{"updatedTime":1726147975000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1},{"name":"Andrew Stacy","email":"astacy@stratacache.com","commits":1}]},"filePathRelative":"getting-started/setup.md","excerpt":"\\n

Although Adze can be used in a very simple, no-config manner by just importing it and using it,\\nmost often we want to centrally create shared loggers that can be imported and used throughout our\\napplication.

\\n

Create a Shared Logger

\\n

To create a shared logger, first create a new file somewhere that makes sense in your application\\n(like ./src/logger.[ts|js]).

"}');export{f as comp,b as data}; +

Example output from index.ts

Shared logger output

',7);function g(h,k){const s=l("RouteLink");return c(),i("div",null,[u,p("p",null,[e("Now that we have imported our dependencies, let's create and export a shared logger that has emoji's enabled and outputs timestamps with every log. We'll also attach some meta data globally to all loggers using the "),n(s,{to:"/reference/global-store.html#setup-function"},{default:a(()=>[e("setup function")]),_:1}),e(". We'll go more in-depth on why we we're doing this "),n(s,{to:"/getting-started/capture-data.html"},{default:a(()=>[e("later")]),_:1}),e(".")]),m])}const f=o(d,[["render",g],["__file","setup.html.vue"]]),b=JSON.parse('{"path":"/getting-started/setup.html","title":"Setting Up Adze","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Create a Shared Logger","slug":"create-a-shared-logger","link":"#create-a-shared-logger","children":[]}],"git":{"updatedTime":1726147975000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1},{"name":"Andrew Stacy","email":"astacy@stratacache.com","commits":1}]},"filePathRelative":"getting-started/setup.md","excerpt":"\\n

Although Adze can be used in a very simple, no-config manner by just importing it and using it,\\nmost often we want to centrally create shared loggers that can be imported and used throughout our\\napplication.

\\n

Create a Shared Logger

\\n

To create a shared logger, first create a new file somewhere that makes sense in your application\\n(like ./src/logger.[ts|js]).

"}');export{f as comp,b as data}; diff --git a/assets/terminators.html-D1xze_qb.js b/assets/terminators.html-BXhnZQtH.js similarity index 99% rename from assets/terminators.html-D1xze_qb.js rename to assets/terminators.html-BXhnZQtH.js index 8b42300..2e17cdc 100644 --- a/assets/terminators.html-D1xze_qb.js +++ b/assets/terminators.html-BXhnZQtH.js @@ -1,4 +1,4 @@ -import{_ as o,r as l,c as i,b as n,d as s,e,w as t,a as p,o as r}from"./app-Cqk3MxnN.js";const c="/assets/alert-example-browser-DYcP4Yt8.png",u="/assets/alert-example-node-BM5hqOoS.png",d="/assets/error-example-browser-CvufJijv.png",k="/assets/error-example-node-BArODg4E.png",h="/assets/warn-example-browser-DLlwvjcr.png",m="/assets/warn-example-node-DB3N_atQ.png",v="/assets/info-example-browser-BJDHTM0G.png",g="/assets/info-example-node-D3X5ov3V.png",b="/assets/fail-example-browser-CW-2UeU_.png",f="/assets/fail-example-node-CstV6bkw.png",w="/assets/success-example-browser-GDnMHS_7.png",y="/assets/success-example-node-BZci53J4.png",x="/assets/log-example-browser-Cusw0EMT.png",_="/assets/log-example-node-CXbDWTQl.png",j="/assets/debug-example-browser-C9kGCOxL.png",z="/assets/debug-example-node-Dc26Kq4y.png",T="/assets/verbose-example-browser-BBrohTQL.png",S="/assets/verbose-example-node-BinIo_po.png",L="/assets/custom-example-browser-UwGpEOzu.png",B="/assets/custom-example-node-B1tuGTb8.png",A="/assets/seal-example-browser-BLmJb5Ta.png",D="/assets/seal-example-node-B8wRqr41.png",E="/assets/sealTag-example-browser-Cth1abEn.png",I="/assets/sealTag-example-node-qSJ51fjF.png",O="/assets/dump-example-browser-CHg4_66K.png",U="/assets/dump-example-node-D0fp32VZ.png",C={},M=n("h1",{id:"terminators",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#terminators"},[n("span",null,"Terminators")])],-1),W=n("strong",null,"terminators",-1),N=p(`

Adze comes with 9 default log level terminators, all of which can be configured.

LevelNameStandard Method Used
0alerterror
1errorerror
2warnwarn
3infoinfo
4failinfo
5successinfo
6loglog
7debugdebug
8verbosedebug

In addition to the default log levels, Adze provides a handful of other special terminators.

NameDescription
clear / clrAn alias for console.clear().
customAllows you to generate a log for a custom log level.
sealAllows you to create a child logger by sealing your log chain into a new logger class.
sealTagAllows you to create a child logger by sealing your log chain into a template string literal tag function.
threadCreates a context thread that can capture data points throughout multiple scopes of your application.

Level Terminators

These are the basic level terminators that come with Adze by default.

alert

This level should only be used for logs that require immediate attention. This should be used sparingly and only for the most critical of errors.

Default log level = 0

Standard Log Method: console.error()

This is not a standard API.

Interface

class BaseLog {
+import{_ as o,c as l,b as n,d as s,e,w as t,a as p,r as i,o as r}from"./app-_2IEvvvI.js";const c="/assets/alert-example-browser-DYcP4Yt8.png",u="/assets/alert-example-node-BM5hqOoS.png",d="/assets/error-example-browser-CvufJijv.png",k="/assets/error-example-node-BArODg4E.png",h="/assets/warn-example-browser-DLlwvjcr.png",m="/assets/warn-example-node-DB3N_atQ.png",v="/assets/info-example-browser-BJDHTM0G.png",g="/assets/info-example-node-D3X5ov3V.png",b="/assets/fail-example-browser-CW-2UeU_.png",f="/assets/fail-example-node-CstV6bkw.png",w="/assets/success-example-browser-GDnMHS_7.png",y="/assets/success-example-node-BZci53J4.png",x="/assets/log-example-browser-Cusw0EMT.png",_="/assets/log-example-node-CXbDWTQl.png",j="/assets/debug-example-browser-C9kGCOxL.png",z="/assets/debug-example-node-Dc26Kq4y.png",T="/assets/verbose-example-browser-BBrohTQL.png",S="/assets/verbose-example-node-BinIo_po.png",L="/assets/custom-example-browser-UwGpEOzu.png",B="/assets/custom-example-node-B1tuGTb8.png",A="/assets/seal-example-browser-BLmJb5Ta.png",D="/assets/seal-example-node-B8wRqr41.png",E="/assets/sealTag-example-browser-Cth1abEn.png",I="/assets/sealTag-example-node-qSJ51fjF.png",O="/assets/dump-example-browser-CHg4_66K.png",U="/assets/dump-example-node-D0fp32VZ.png",C={},M=n("h1",{id:"terminators",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#terminators"},[n("span",null,"Terminators")])],-1),W=n("strong",null,"terminators",-1),N=p(`

Adze comes with 9 default log level terminators, all of which can be configured.

LevelNameStandard Method Used
0alerterror
1errorerror
2warnwarn
3infoinfo
4failinfo
5successinfo
6loglog
7debugdebug
8verbosedebug

In addition to the default log levels, Adze provides a handful of other special terminators.

NameDescription
clear / clrAn alias for console.clear().
customAllows you to generate a log for a custom log level.
sealAllows you to create a child logger by sealing your log chain into a new logger class.
sealTagAllows you to create a child logger by sealing your log chain into a template string literal tag function.
threadCreates a context thread that can capture data points throughout multiple scopes of your application.

Level Terminators

These are the basic level terminators that come with Adze by default.

alert

This level should only be used for logs that require immediate attention. This should be used sparingly and only for the most critical of errors.

Default log level = 0

Standard Log Method: console.error()

This is not a standard API.

Interface

class BaseLog {
   public alert(...args: unknown[]): void;
 }
 

Example

import adze from 'adze';
@@ -151,4 +151,4 @@ import{_ as o,r as l,c as i,b as n,d as s,e,w as t,a as p,o as r}from"./app-Cqk3
 subtract(4, 3);
 
 adze.label('maths').dump.info('Results from our thread');
-

Browser Output

thread example browser output

Server Output

thread example server output

',9);function H(Q,K){const a=l("RouteLink");return r(),i("div",null,[M,n("p",null,[s("When you have an Adze "),e(a,{to:"/reference/log-class.html"},{default:t(()=>[s("log")]),_:1}),s(" instance, and have applied your desired "),e(a,{to:"/reference/modifiers.html"},{default:t(()=>[s("modifiers")]),_:1}),s(", you must terminate the method chain. The methods used to terminate the chain are called "),W,s(".")]),N,n("p",null,[s("Terminates the log at the provided custom log level. Custom log levels are defined within the Adze configuration object under the "),e(a,{to:"/reference/configuration.html#user-configuration"},{default:t(()=>[P]),_:1}),s(" property. Adze can be configured by the "),e(a,{to:"/reference/configuration.html#setup-function"},{default:t(()=>[s("setup")]),_:1}),s(" function or by passing configuration to the "),R,s(" or "),q,s(" terminator.")]),n("p",null,[e(a,{to:"/reference/configuration.html#custom-level-example"},{default:t(()=>[s("Configuration Details")]),_:1})]),J,n("p",null,[s("It allows you to setup your child logger by writing a log chain as you normally would, except that instead of terminating it with a log level, you seal the configuration into a new "),e(a,{to:"/reference/log-class.html"},{default:t(()=>[s("log class")]),_:1}),s(".")]),n("p",null,[s("The new "),e(a,{to:"/reference/log-class.html"},{default:t(()=>[s("log class")]),_:1}),s(" inherits all of the configuration of your log chain.")]),V,n("p",null,[s("The thread terminator is used to create a "),G,s(" where context values are recorded from multiple scopes but are output together in a single log. This is used in conjunction with the "),e(a,{to:"/reference/modifiers.html#dump"},{default:t(()=>[s("dump modifier")]),_:1}),s(" for outputting the thread's values.")]),n("p",null,[s("Refer to "),e(a,{to:"/getting-started/threading.html"},{default:t(()=>[s("threading")]),_:1}),s(" in the Getting Started guide for more information.")]),F])}const Y=o(C,[["render",H],["__file","terminators.html.vue"]]),Z=JSON.parse('{"path":"/reference/terminators.html","title":"Terminators","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Level Terminators","slug":"level-terminators","link":"#level-terminators","children":[{"level":3,"title":"alert","slug":"alert","link":"#alert","children":[]},{"level":3,"title":"error","slug":"error","link":"#error","children":[]},{"level":3,"title":"warn","slug":"warn","link":"#warn","children":[]},{"level":3,"title":"info","slug":"info","link":"#info","children":[]},{"level":3,"title":"fail","slug":"fail","link":"#fail","children":[]},{"level":3,"title":"success","slug":"success","link":"#success","children":[]},{"level":3,"title":"log","slug":"log","link":"#log","children":[]},{"level":3,"title":"debug","slug":"debug","link":"#debug","children":[]},{"level":3,"title":"verbose","slug":"verbose","link":"#verbose","children":[]}]},{"level":2,"title":"Other Terminators","slug":"other-terminators","link":"#other-terminators","children":[{"level":3,"title":"clear / clr","slug":"clear-clr","link":"#clear-clr","children":[]}]},{"level":2,"title":"","slug":"","link":"#","children":[{"level":3,"title":"custom","slug":"custom","link":"#custom","children":[]},{"level":3,"title":"seal","slug":"seal","link":"#seal","children":[]},{"level":3,"title":"sealTag","slug":"sealtag","link":"#sealtag","children":[]},{"level":3,"title":"thread","slug":"thread","link":"#thread","children":[]}]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"reference/terminators.md","excerpt":"\\n

When you have an Adze log instance, and have applied your desired\\nmodifiers, you must terminate the method chain. The methods used to terminate the\\nchain are called terminators.

"}');export{Y as comp,Z as data}; +

Browser Output

thread example browser output

Server Output

thread example server output

',9);function H(Q,K){const a=i("RouteLink");return r(),l("div",null,[M,n("p",null,[s("When you have an Adze "),e(a,{to:"/reference/log-class.html"},{default:t(()=>[s("log")]),_:1}),s(" instance, and have applied your desired "),e(a,{to:"/reference/modifiers.html"},{default:t(()=>[s("modifiers")]),_:1}),s(", you must terminate the method chain. The methods used to terminate the chain are called "),W,s(".")]),N,n("p",null,[s("Terminates the log at the provided custom log level. Custom log levels are defined within the Adze configuration object under the "),e(a,{to:"/reference/configuration.html#user-configuration"},{default:t(()=>[P]),_:1}),s(" property. Adze can be configured by the "),e(a,{to:"/reference/configuration.html#setup-function"},{default:t(()=>[s("setup")]),_:1}),s(" function or by passing configuration to the "),R,s(" or "),q,s(" terminator.")]),n("p",null,[e(a,{to:"/reference/configuration.html#custom-level-example"},{default:t(()=>[s("Configuration Details")]),_:1})]),J,n("p",null,[s("It allows you to setup your child logger by writing a log chain as you normally would, except that instead of terminating it with a log level, you seal the configuration into a new "),e(a,{to:"/reference/log-class.html"},{default:t(()=>[s("log class")]),_:1}),s(".")]),n("p",null,[s("The new "),e(a,{to:"/reference/log-class.html"},{default:t(()=>[s("log class")]),_:1}),s(" inherits all of the configuration of your log chain.")]),V,n("p",null,[s("The thread terminator is used to create a "),G,s(" where context values are recorded from multiple scopes but are output together in a single log. This is used in conjunction with the "),e(a,{to:"/reference/modifiers.html#dump"},{default:t(()=>[s("dump modifier")]),_:1}),s(" for outputting the thread's values.")]),n("p",null,[s("Refer to "),e(a,{to:"/getting-started/threading.html"},{default:t(()=>[s("threading")]),_:1}),s(" in the Getting Started guide for more information.")]),F])}const Y=o(C,[["render",H],["__file","terminators.html.vue"]]),Z=JSON.parse('{"path":"/reference/terminators.html","title":"Terminators","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Level Terminators","slug":"level-terminators","link":"#level-terminators","children":[{"level":3,"title":"alert","slug":"alert","link":"#alert","children":[]},{"level":3,"title":"error","slug":"error","link":"#error","children":[]},{"level":3,"title":"warn","slug":"warn","link":"#warn","children":[]},{"level":3,"title":"info","slug":"info","link":"#info","children":[]},{"level":3,"title":"fail","slug":"fail","link":"#fail","children":[]},{"level":3,"title":"success","slug":"success","link":"#success","children":[]},{"level":3,"title":"log","slug":"log","link":"#log","children":[]},{"level":3,"title":"debug","slug":"debug","link":"#debug","children":[]},{"level":3,"title":"verbose","slug":"verbose","link":"#verbose","children":[]}]},{"level":2,"title":"Other Terminators","slug":"other-terminators","link":"#other-terminators","children":[{"level":3,"title":"clear / clr","slug":"clear-clr","link":"#clear-clr","children":[]}]},{"level":2,"title":"","slug":"","link":"#","children":[{"level":3,"title":"custom","slug":"custom","link":"#custom","children":[]},{"level":3,"title":"seal","slug":"seal","link":"#seal","children":[]},{"level":3,"title":"sealTag","slug":"sealtag","link":"#sealtag","children":[]},{"level":3,"title":"thread","slug":"thread","link":"#thread","children":[]}]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"reference/terminators.md","excerpt":"\\n

When you have an Adze log instance, and have applied your desired\\nmodifiers, you must terminate the method chain. The methods used to terminate the\\nchain are called terminators.

"}');export{Y as comp,Z as data}; diff --git a/assets/threading.html-CkUvPmyg.js b/assets/threading.html-cset5e2V.js similarity index 99% rename from assets/threading.html-CkUvPmyg.js rename to assets/threading.html-cset5e2V.js index 09b0ff2..ac89a7c 100644 --- a/assets/threading.html-CkUvPmyg.js +++ b/assets/threading.html-cset5e2V.js @@ -1,4 +1,4 @@ -import{_ as n,c as a,o as s,a as t}from"./app-Cqk3MxnN.js";const e="/assets/thread-example-1-DsvaeKnP.png",p={},o=t(`

Log Threading (MDC)

In large applications there are often times when we need to log data that comes from multiple different scopes but we want to collect all of the data and print it in a single log.

This practice of collating data from many scopes is called Mapped Diagnostic Context. This is a common feature in Java's Log4J library.

Adze also supports Mapped Diagnostic Context, or as Adze calls it, Log Threading. Think of a log thread like a thread on a message board or reddit where multiple individuals make a comment on a common topic.

Here is an example of how threads can be used with Adze:

import adze from 'adze';
+import{_ as n,c as a,o as s,a as t}from"./app-_2IEvvvI.js";const e="/assets/thread-example-1-DsvaeKnP.png",p={},o=t(`

Log Threading (MDC)

In large applications there are often times when we need to log data that comes from multiple different scopes but we want to collect all of the data and print it in a single log.

This practice of collating data from many scopes is called Mapped Diagnostic Context. This is a common feature in Java's Log4J library.

Adze also supports Mapped Diagnostic Context, or as Adze calls it, Log Threading. Think of a log thread like a thread on a message board or reddit where multiple individuals make a comment on a common topic.

Here is an example of how threads can be used with Adze:

import adze from 'adze';
 
 function add(a: number, b: number) {
   const answer = a + b;
diff --git a/assets/tools.html-B7TU3Lny.js b/assets/tools.html-BbAJLJ6L.js
similarity index 98%
rename from assets/tools.html-B7TU3Lny.js
rename to assets/tools.html-BbAJLJ6L.js
index d381660..d35adb0 100644
--- a/assets/tools.html-B7TU3Lny.js
+++ b/assets/tools.html-BbAJLJ6L.js
@@ -1,4 +1,4 @@
-import{_ as p,r as l,c as o,b as n,d as s,e,w as t,a as c,o as i}from"./app-Cqk3MxnN.js";const r="/assets/filterByLabel-example-browser-D3bqiGZ8.png",u="/assets/filterByLabel-example-node-BeERiXvq.png",d="/assets/filterByNamespace-example-browser-B79BqPOX.png",k="/assets/filterByNamespace-example-node-BzBLUEpX.png",h="/assets/filterByLevel-example-browser-D3ag7Jqk.png",m="/assets/filterByLevel-example-node-BjdFrMZT.png",v="/assets/renderAll-example-browser-BPlerSDz.png",b="/assets/renderAll-example-node-Dywe7jLW.png",f={},g=n("h1",{id:"tools",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#tools"},[n("span",null,"Tools")])],-1),y=n("p",null,"The tools are a collection of methods that allow you to recall cached logs from a console, such as the browser dev tools console. This can be useful if you want to clear the logs and then reprint specific logs to narrow them down.",-1),w=c(`

Public Methods

These are used for retrieving data and accessing the browser console tools.

filterByLabel


Rerenders all logs that match the provided label name.

Interface

class Tools {
+import{_ as p,c as l,b as n,d as s,e,w as t,a as o,r as c,o as i}from"./app-_2IEvvvI.js";const r="/assets/filterByLabel-example-browser-D3bqiGZ8.png",u="/assets/filterByLabel-example-node-BeERiXvq.png",d="/assets/filterByNamespace-example-browser-B79BqPOX.png",k="/assets/filterByNamespace-example-node-BzBLUEpX.png",h="/assets/filterByLevel-example-browser-D3ag7Jqk.png",m="/assets/filterByLevel-example-node-BjdFrMZT.png",v="/assets/renderAll-example-browser-BPlerSDz.png",b="/assets/renderAll-example-node-Dywe7jLW.png",f={},g=n("h1",{id:"tools",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#tools"},[n("span",null,"Tools")])],-1),y=n("p",null,"The tools are a collection of methods that allow you to recall cached logs from a console, such as the browser dev tools console. This can be useful if you want to clear the logs and then reprint specific logs to narrow them down.",-1),w=o(`

Public Methods

These are used for retrieving data and accessing the browser console tools.

filterByLabel


Rerenders all logs that match the provided label name.

Interface

class Tools {
   public filterByLabel(label: string): void;
 }
 

Example

import adze, { setup } from 'adze';
@@ -54,4 +54,4 @@ import{_ as p,r as l,c as o,b as n,d as s,e,w as t,a as c,o as i}from"./app-Cqk3
 
 // Get the log cache.
 store.tools.renderAll();
-

Browser Output

renderAll tool method example browser output

Server Output

renderAll tool method example server output

',46);function x(_,B){const a=l("RouteLink");return i(),o("div",null,[g,y,n("p",null,[s("For a detailed tutorial on how to use them, refer to the "),e(a,{to:"/getting-started/tools.html"},{default:t(()=>[s("Tools")]),_:1}),s(" page of the "),e(a,{to:"/getting-started/introduction.html"},{default:t(()=>[s("Getting Started")]),_:1}),s(" guide.")]),w])}const L=p(f,[["render",x],["__file","tools.html.vue"]]),z=JSON.parse('{"path":"/reference/tools.html","title":"Tools","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Public Methods","slug":"public-methods","link":"#public-methods","children":[{"level":3,"title":"filterByLabel","slug":"filterbylabel","link":"#filterbylabel","children":[]},{"level":3,"title":"filterByNamespace","slug":"filterbynamespace","link":"#filterbynamespace","children":[]},{"level":3,"title":"filterByLevel","slug":"filterbylevel","link":"#filterbylevel","children":[]},{"level":3,"title":"renderAll","slug":"renderall","link":"#renderall","children":[]}]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"reference/tools.md","excerpt":"\\n

The tools are a collection of methods that allow you to recall cached logs from a console, such as\\nthe browser dev tools console. This can be useful if you want to clear the logs and then reprint\\nspecific logs to narrow them down.

\\n

For a detailed tutorial on how to use them, refer to the Tools page\\nof the Getting Started guide.

"}');export{L as comp,z as data}; +

Browser Output

renderAll tool method example browser output

Server Output

renderAll tool method example server output

',46);function x(_,B){const a=c("RouteLink");return i(),l("div",null,[g,y,n("p",null,[s("For a detailed tutorial on how to use them, refer to the "),e(a,{to:"/getting-started/tools.html"},{default:t(()=>[s("Tools")]),_:1}),s(" page of the "),e(a,{to:"/getting-started/introduction.html"},{default:t(()=>[s("Getting Started")]),_:1}),s(" guide.")]),w])}const L=p(f,[["render",x],["__file","tools.html.vue"]]),z=JSON.parse('{"path":"/reference/tools.html","title":"Tools","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Public Methods","slug":"public-methods","link":"#public-methods","children":[{"level":3,"title":"filterByLabel","slug":"filterbylabel","link":"#filterbylabel","children":[]},{"level":3,"title":"filterByNamespace","slug":"filterbynamespace","link":"#filterbynamespace","children":[]},{"level":3,"title":"filterByLevel","slug":"filterbylevel","link":"#filterbylevel","children":[]},{"level":3,"title":"renderAll","slug":"renderall","link":"#renderall","children":[]}]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"reference/tools.md","excerpt":"\\n

The tools are a collection of methods that allow you to recall cached logs from a console, such as\\nthe browser dev tools console. This can be useful if you want to clear the logs and then reprint\\nspecific logs to narrow them down.

\\n

For a detailed tutorial on how to use them, refer to the Tools page\\nof the Getting Started guide.

"}');export{L as comp,z as data}; diff --git a/assets/tools.html-BT4rf4u4.js b/assets/tools.html-BkvJzRCr.js similarity index 83% rename from assets/tools.html-BT4rf4u4.js rename to assets/tools.html-BkvJzRCr.js index 0c6bb20..3efda77 100644 --- a/assets/tools.html-BT4rf4u4.js +++ b/assets/tools.html-BkvJzRCr.js @@ -1,4 +1,4 @@ -import{_ as l,r,c as p,b as s,d as e,e as a,w as t,a as o,o as i}from"./app-Cqk3MxnN.js";const c="/assets/tools-example-levels-1-CVPPkCh_.png",u="/assets/tools-example-levels-2-BNyWPyq7.png",d="/assets/tools-example-levels-3-BIjKnDd5.png",h={},g=o(`

Tools

Adze supports some tools for helping developers sift through logs that have been generated.

Browser Tools

In browser environments, Adze will always generate a global store named $adzeGlobal on the window object. From the adze global object you can access tools for filtering logs that have been generated and cached.

Log caching is disabled by default and the number of logs that can be cached is capped at 300 by default. You must enable log caching to take advantage of the browser tools. You can also raise or lower the cache size as well.

import adze, { setup } from 'adze';
+import{_ as l,c as r,b as s,d as e,e as a,w as t,a as o,r as p,o as i}from"./app-_2IEvvvI.js";const c="/assets/tools-example-levels-1-CVPPkCh_.png",u="/assets/tools-example-levels-2-BNyWPyq7.png",d="/assets/tools-example-levels-3-BIjKnDd5.png",h={},g=o(`

Tools

Adze supports some tools for helping developers sift through logs that have been generated.

Browser Tools

In browser environments, Adze will always generate a global store named $adzeGlobal on the window object. From the adze global object you can access tools for filtering logs that have been generated and cached.

Log caching is disabled by default and the number of logs that can be cached is capped at 300 by default. You must enable log caching to take advantage of the browser tools. You can also raise or lower the cache size as well.

import adze, { setup } from 'adze';
 
 // Enable log caching and raise the maximum cache size from the default of 300 to 500.
 setup({
@@ -13,4 +13,4 @@ import{_ as l,r,c as p,b as s,d as e,e as a,w as t,a as o,o as i}from"./app-Cqk3
 logger.ns('foo').info('A log with a namespace!');
 logger.label('bar').success('A success log with a label!');
 logger.log("I'm just a log... Yes I'm only a log...");
-

If we open up the developer console in a browser, we can see all of our Adze logs that were generated when our web application executed.

Example of the generated logs in the browser

Now, let's clear the logs. Type console.clear() in the developer tools console.

Example of clearing the developer tools console

Now that the console has been cleared, let's use our tools to rerender all logs with a level of "log".

Example of using browser tools to rerender logs

Our log that we generated earlier has now been rerendered from the log cache.

We can repeat this process for logs with namespaces and labels as well.

Server Tools

',11),v=s("a",{href:"https://github.com/trentm/node-bunyan",target:"_blank",rel:"noopener noreferrer"},"Bunyan",-1),w=s("p",null,[e("Because of how well "),s("a",{href:"https://github.com/trentm/node-bunyan",target:"_blank",rel:"noopener noreferrer"},"Bunyan"),e(" handles JSON logging, Adze JSON logs are modeled to match the "),s("strong",null,"Bunyan JSON format"),e(". Because Adze does not reinvent the wheel here, developers can take advantage of "),s("a",{href:"https://github.com/trentm/node-bunyan?tab=readme-ov-file#cli-usage",target:"_blank",rel:"noopener noreferrer"},"Bunyan's handy CLI tool"),e(".")],-1),_=s("p",null,[e("This tool can be used for parsing and filtering machine-readable JSON logs into human readable formats. For more information on using the Bunyan CLI, please refer to the "),s("a",{href:"https://github.com/trentm/node-bunyan?tab=readme-ov-file#cli-usage",target:"_blank",rel:"noopener noreferrer"},"Bunyan docs"),e(" for setup and usage instructions.")],-1);function y(x,B){const n=r("RouteLink");return i(),p("div",null,[g,s("p",null,[e("The filtering tools that are available are similar to the "),a(n,{to:"/getting-started/filtering.html"},{default:t(()=>[e("configuration based filtering")]),_:1}),e(" in the previous section of this guide. The tools are as follows:")]),s("ul",null,[s("li",null,[m,e(" - Reprints logs that match the "),a(n,{to:"/reference/modifiers.html#namespace--ns"},{default:t(()=>[e("namespace")]),_:1}),e(" values provided.")]),s("li",null,[f,e(" - Reprints logs that match the "),a(n,{to:"/reference/modifiers.html#label"},{default:t(()=>[e("label")]),_:1}),e(" value provided.")]),s("li",null,[b,e(" - Reprints logs that match the "),a(n,{to:"/reference/configuration.html#levelselector-type"},{default:t(()=>[e("LevelSelector")]),_:1}),e(" value provided.")])]),k,s("p",null,[e("When working with logs in a server environment, often times we write our logs to a file, much like our example in the "),a(n,{to:"/getting-started/capture-data.html#middleware"},{default:t(()=>[e("Capturing Log Data - Middleware")]),_:1}),e(" section of the guide.")]),s("p",null,[e("It's very useful to use a "),a(n,{to:"/getting-started/setup.html#set-the-output-format"},{default:t(()=>[e("JSON log format")]),_:1}),e(" for machine readable logs that are easy for programs to parse and consume. Other libraries, such as "),v,e(" are completely focused on JSON logging and do a great job with generating them.")]),w,_])}const N=l(h,[["render",y],["__file","tools.html.vue"]]),S=JSON.parse('{"path":"/getting-started/tools.html","title":"Tools","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Browser Tools","slug":"browser-tools","link":"#browser-tools","children":[]},{"level":2,"title":"Server Tools","slug":"server-tools","link":"#server-tools","children":[]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"getting-started/tools.md","excerpt":"\\n

Adze supports some tools for helping developers sift through logs that have been generated.

\\n

Browser Tools

\\n

In browser environments, Adze will always generate a global store named $adzeGlobal on the\\nwindow object. From the adze global object you can access tools for filtering logs that have\\nbeen generated and cached.

"}');export{N as comp,S as data}; +

If we open up the developer console in a browser, we can see all of our Adze logs that were generated when our web application executed.

Example of the generated logs in the browser

Now, let's clear the logs. Type console.clear() in the developer tools console.

Example of clearing the developer tools console

Now that the console has been cleared, let's use our tools to rerender all logs with a level of "log".

Example of using browser tools to rerender logs

Our log that we generated earlier has now been rerendered from the log cache.

We can repeat this process for logs with namespaces and labels as well.

Server Tools

',11),v=s("a",{href:"https://github.com/trentm/node-bunyan",target:"_blank",rel:"noopener noreferrer"},"Bunyan",-1),w=s("p",null,[e("Because of how well "),s("a",{href:"https://github.com/trentm/node-bunyan",target:"_blank",rel:"noopener noreferrer"},"Bunyan"),e(" handles JSON logging, Adze JSON logs are modeled to match the "),s("strong",null,"Bunyan JSON format"),e(". Because Adze does not reinvent the wheel here, developers can take advantage of "),s("a",{href:"https://github.com/trentm/node-bunyan?tab=readme-ov-file#cli-usage",target:"_blank",rel:"noopener noreferrer"},"Bunyan's handy CLI tool"),e(".")],-1),_=s("p",null,[e("This tool can be used for parsing and filtering machine-readable JSON logs into human readable formats. For more information on using the Bunyan CLI, please refer to the "),s("a",{href:"https://github.com/trentm/node-bunyan?tab=readme-ov-file#cli-usage",target:"_blank",rel:"noopener noreferrer"},"Bunyan docs"),e(" for setup and usage instructions.")],-1);function y(x,B){const n=p("RouteLink");return i(),r("div",null,[g,s("p",null,[e("The filtering tools that are available are similar to the "),a(n,{to:"/getting-started/filtering.html"},{default:t(()=>[e("configuration based filtering")]),_:1}),e(" in the previous section of this guide. The tools are as follows:")]),s("ul",null,[s("li",null,[m,e(" - Reprints logs that match the "),a(n,{to:"/reference/modifiers.html#namespace--ns"},{default:t(()=>[e("namespace")]),_:1}),e(" values provided.")]),s("li",null,[f,e(" - Reprints logs that match the "),a(n,{to:"/reference/modifiers.html#label"},{default:t(()=>[e("label")]),_:1}),e(" value provided.")]),s("li",null,[b,e(" - Reprints logs that match the "),a(n,{to:"/reference/configuration.html#levelselector-type"},{default:t(()=>[e("LevelSelector")]),_:1}),e(" value provided.")])]),k,s("p",null,[e("When working with logs in a server environment, often times we write our logs to a file, much like our example in the "),a(n,{to:"/getting-started/capture-data.html#middleware"},{default:t(()=>[e("Capturing Log Data - Middleware")]),_:1}),e(" section of the guide.")]),s("p",null,[e("It's very useful to use a "),a(n,{to:"/getting-started/setup.html#set-the-output-format"},{default:t(()=>[e("JSON log format")]),_:1}),e(" for machine readable logs that are easy for programs to parse and consume. Other libraries, such as "),v,e(" are completely focused on JSON logging and do a great job with generating them.")]),w,_])}const N=l(h,[["render",y],["__file","tools.html.vue"]]),S=JSON.parse('{"path":"/getting-started/tools.html","title":"Tools","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Browser Tools","slug":"browser-tools","link":"#browser-tools","children":[]},{"level":2,"title":"Server Tools","slug":"server-tools","link":"#server-tools","children":[]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"getting-started/tools.md","excerpt":"\\n

Adze supports some tools for helping developers sift through logs that have been generated.

\\n

Browser Tools

\\n

In browser environments, Adze will always generate a global store named $adzeGlobal on the\\nwindow object. From the adze global object you can access tools for filtering logs that have\\nbeen generated and cached.

"}');export{N as comp,S as data}; diff --git a/assets/typescript-first.html-CdL-0Z_m.js b/assets/typescript-first.html-Cjedr06T.js similarity index 94% rename from assets/typescript-first.html-CdL-0Z_m.js rename to assets/typescript-first.html-Cjedr06T.js index e474cbe..ac9829c 100644 --- a/assets/typescript-first.html-CdL-0Z_m.js +++ b/assets/typescript-first.html-Cjedr06T.js @@ -1 +1 @@ -import{_ as r,c as i,o,b as t,d as e}from"./app-Cqk3MxnN.js";const s={},p=t("p",null,[e("Other logging libraries have bolted-on TypeScript support which feels unintuitive, whereas "),t("strong",null,[e("Adze is built with "),t("a",{href:"https://www.typescriptlang.org/",target:"_blank",rel:"noopener noreferrer"},"TypeScript"),e(" from the ground up.")]),e(" Because of this, Adze provides a great TypeScript developer experience.")],-1),a=[p];function n(c,l){return o(),i("div",null,a)}const d=r(s,[["render",n],["__file","typescript-first.html.vue"]]),g=JSON.parse('{"path":"/home/typescript-first.html","title":"","lang":"en-US","frontmatter":{},"headers":[],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"home/typescript-first.md","excerpt":"

Other logging libraries have bolted-on TypeScript support which feels unintuitive, whereas Adze is\\nbuilt with TypeScript from the ground up. Because of this, Adze\\nprovides a great TypeScript developer experience.

"}');export{d as comp,g as data}; +import{_ as r,c as i,o,b as t,d as e}from"./app-_2IEvvvI.js";const s={},p=t("p",null,[e("Other logging libraries have bolted-on TypeScript support which feels unintuitive, whereas "),t("strong",null,[e("Adze is built with "),t("a",{href:"https://www.typescriptlang.org/",target:"_blank",rel:"noopener noreferrer"},"TypeScript"),e(" from the ground up.")]),e(" Because of this, Adze provides a great TypeScript developer experience.")],-1),a=[p];function n(c,l){return o(),i("div",null,a)}const d=r(s,[["render",n],["__file","typescript-first.html.vue"]]),g=JSON.parse('{"path":"/home/typescript-first.html","title":"","lang":"en-US","frontmatter":{},"headers":[],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"home/typescript-first.md","excerpt":"

Other logging libraries have bolted-on TypeScript support which feels unintuitive, whereas Adze is\\nbuilt with TypeScript from the ground up. Because of this, Adze\\nprovides a great TypeScript developer experience.

"}');export{d as comp,g as data}; diff --git a/assets/unit-testing.html-Clg3O9-p.js b/assets/unit-testing.html-D1dxnWs-.js similarity index 97% rename from assets/unit-testing.html-Clg3O9-p.js rename to assets/unit-testing.html-D1dxnWs-.js index 4017f5a..3f64522 100644 --- a/assets/unit-testing.html-Clg3O9-p.js +++ b/assets/unit-testing.html-D1dxnWs-.js @@ -1,4 +1,4 @@ -import{_ as e,c as t,o as n,a}from"./app-Cqk3MxnN.js";const s={},i=a(`

Unit Testing

When executing your unit tests you generally do not want to see the internal logging of the code you are testing; rather you only care about the inputs and outputs. To disable logs while executing your unit tests, within your unit test environment you should set the global value $ADZE_ENV = 'test'. This tells adze logs to prevent rendering for the sake of unit tests.

Example

// For all environments
+import{_ as e,c as t,o as n,a}from"./app-_2IEvvvI.js";const s={},i=a(`

Unit Testing

When executing your unit tests you generally do not want to see the internal logging of the code you are testing; rather you only care about the inputs and outputs. To disable logs while executing your unit tests, within your unit test environment you should set the global value $ADZE_ENV = 'test'. This tells adze logs to prevent rendering for the sake of unit tests.

Example

// For all environments
 globalThis.$ADZE_ENV = 'test';
 

URL Parameter Override

There may be a time when you are debugging in the browser and would like to set the Adze ENV without changing any code. In this case you can use the reserved ADZE_ENV URL parameter to set it.

http://my-site.com/?ADZE_ENV=test
 
`,7),r=[i];function o(l,d){return n(),t("div",null,r)}const u=e(s,[["render",o],["__file","unit-testing.html.vue"]]),h=JSON.parse(`{"path":"/reference/unit-testing.html","title":"Unit Testing","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"URL Parameter Override","slug":"url-parameter-override","link":"#url-parameter-override","children":[]}],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"reference/unit-testing.md","excerpt":"\\n

When executing your unit tests you generally do not want to see the internal logging of the code you\\nare testing; rather you only care about the inputs and outputs. To disable logs while executing your\\nunit tests, within your unit test environment you should set the global value $ADZE_ENV = 'test'.\\nThis tells adze logs to prevent rendering for the sake of unit tests.

"}`);export{u as comp,h as data}; diff --git a/assets/universal.html-BnhSKAGR.js b/assets/universal.html-XVu01gHJ.js similarity index 79% rename from assets/universal.html-BnhSKAGR.js rename to assets/universal.html-XVu01gHJ.js index 579601e..0ce17e5 100644 --- a/assets/universal.html-BnhSKAGR.js +++ b/assets/universal.html-XVu01gHJ.js @@ -1 +1 @@ -import{_ as n,r as a,c as o,b as t,d as e,e as s,w as i,o as l}from"./app-Cqk3MxnN.js";const c={},d=t("a",{href:"https://nextjs.org/",target:"_blank",rel:"noopener noreferrer"},"NextJS",-1),h=t("a",{href:"https://nuxt.com/",target:"_blank",rel:"noopener noreferrer"},"NuxtJS",-1),m=t("a",{href:"https://kit.svelte.dev/",target:"_blank",rel:"noopener noreferrer"},"SvelteKit",-1),_=t("strong",null,"Adze is universal",-1);function p(u,f){const r=a("RouteLink");return l(),o("div",null,[t("p",null,[e("Modern JavaScript frameworks like "),d,e(", "),h,e(", and "),m,e(' combine your "back-end" and "front-end" code in the same location. '),_,e(" which means it can be executed on the "),s(r,{to:"/getting-started/installation.html"},{default:i(()=>[e("server side or the browser side")]),_:1}),e(" without any extra considerations. Use it anywhere!")])])}const g=n(c,[["render",p],["__file","universal.html.vue"]]),k=JSON.parse('{"path":"/home/universal.html","title":"","lang":"en-US","frontmatter":{},"headers":[],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"home/universal.md","excerpt":"

Modern JavaScript frameworks like NextJS, NuxtJS, and\\nSvelteKit combine your \\"back-end\\" and \\"front-end\\" code in the same\\nlocation. Adze is universal which means it can be executed on the\\nserver side or the browser side without any extra\\nconsiderations. Use it anywhere!

"}');export{g as comp,k as data}; +import{_ as n,c as a,b as t,d as e,e as o,w as s,r as i,o as l}from"./app-_2IEvvvI.js";const c={},d=t("a",{href:"https://nextjs.org/",target:"_blank",rel:"noopener noreferrer"},"NextJS",-1),h=t("a",{href:"https://nuxt.com/",target:"_blank",rel:"noopener noreferrer"},"NuxtJS",-1),m=t("a",{href:"https://kit.svelte.dev/",target:"_blank",rel:"noopener noreferrer"},"SvelteKit",-1),_=t("strong",null,"Adze is universal",-1);function p(u,f){const r=i("RouteLink");return l(),a("div",null,[t("p",null,[e("Modern JavaScript frameworks like "),d,e(", "),h,e(", and "),m,e(' combine your "back-end" and "front-end" code in the same location. '),_,e(" which means it can be executed on the "),o(r,{to:"/getting-started/installation.html"},{default:s(()=>[e("server side or the browser side")]),_:1}),e(" without any extra considerations. Use it anywhere!")])])}const g=n(c,[["render",p],["__file","universal.html.vue"]]),k=JSON.parse('{"path":"/home/universal.html","title":"","lang":"en-US","frontmatter":{},"headers":[],"git":{"updatedTime":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.com","commits":1}]},"filePathRelative":"home/universal.md","excerpt":"

Modern JavaScript frameworks like NextJS, NuxtJS, and\\nSvelteKit combine your \\"back-end\\" and \\"front-end\\" code in the same\\nlocation. Adze is universal which means it can be executed on the\\nserver side or the browser side without any extra\\nconsiderations. Use it anywhere!

"}');export{g as comp,k as data}; diff --git a/getting-started/annotation.html b/getting-started/annotation.html index e0b796e..4ebd2ff 100644 --- a/getting-started/annotation.html +++ b/getting-started/annotation.html @@ -33,8 +33,8 @@ Annotating Logs | Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/getting-started/capture-data.html b/getting-started/capture-data.html index 5a4fc1a..7f92f06 100644 --- a/getting-started/capture-data.html +++ b/getting-started/capture-data.html @@ -33,8 +33,8 @@ Capturing Log Data | Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/getting-started/concepts.html b/getting-started/concepts.html index ab2baef..f00c91c 100644 --- a/getting-started/concepts.html +++ b/getting-started/concepts.html @@ -33,14 +33,14 @@ Concepts | Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/getting-started/configuration.html b/getting-started/configuration.html index 803ae8a..b029d6d 100644 --- a/getting-started/configuration.html +++ b/getting-started/configuration.html @@ -33,8 +33,8 @@ Configuration | Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/getting-started/filtering.html b/getting-started/filtering.html index 323d55f..850be4c 100644 --- a/getting-started/filtering.html +++ b/getting-started/filtering.html @@ -33,8 +33,8 @@ Filtering Logs | Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/getting-started/global-store.html b/getting-started/global-store.html index ef07170..70b2b73 100644 --- a/getting-started/global-store.html +++ b/getting-started/global-store.html @@ -33,8 +33,8 @@ Global Store | Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/getting-started/installation.html b/getting-started/installation.html index 85289d1..abf7683 100644 --- a/getting-started/installation.html +++ b/getting-started/installation.html @@ -33,8 +33,8 @@ Installing Adze | Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/getting-started/introduction.html b/getting-started/introduction.html index 5f6ec37..cb45f2d 100644 --- a/getting-started/introduction.html +++ b/getting-started/introduction.html @@ -33,8 +33,8 @@ Introduction | Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/getting-started/migrating.html b/getting-started/migrating.html index be5a061..629d711 100644 --- a/getting-started/migrating.html +++ b/getting-started/migrating.html @@ -33,8 +33,8 @@ Migrating from Adze v1 | Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/getting-started/putting-it-all-together.html b/getting-started/putting-it-all-together.html index c60045b..eb12ebf 100644 --- a/getting-started/putting-it-all-together.html +++ b/getting-started/putting-it-all-together.html @@ -33,8 +33,8 @@ Putting It All Together | Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/getting-started/setup.html b/getting-started/setup.html index ed9869f..f4b4a3d 100644 --- a/getting-started/setup.html +++ b/getting-started/setup.html @@ -33,8 +33,8 @@ Setting Up Adze | Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/getting-started/threading.html b/getting-started/threading.html index ead575c..dfba18c 100644 --- a/getting-started/threading.html +++ b/getting-started/threading.html @@ -33,8 +33,8 @@ Log Threading (MDC) | Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/getting-started/tools.html b/getting-started/tools.html index 4ad4ee9..8966659 100644 --- a/getting-started/tools.html +++ b/getting-started/tools.html @@ -33,8 +33,8 @@ Tools | Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/home/chainable-api.html b/home/chainable-api.html index f1bf3e4..746b8fc 100644 --- a/home/chainable-api.html +++ b/home/chainable-api.html @@ -33,12 +33,12 @@ Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/home/configurable.html b/home/configurable.html index afb9ba3..dc2eea3 100644 --- a/home/configurable.html +++ b/home/configurable.html @@ -33,11 +33,11 @@ Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/home/footer.html b/home/footer.html index de705a4..08144fd 100644 --- a/home/footer.html +++ b/home/footer.html @@ -33,11 +33,11 @@ Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/home/getting-started-is-easy.html b/home/getting-started-is-easy.html index f582ea3..7b6aae3 100644 --- a/home/getting-started-is-easy.html +++ b/home/getting-started-is-easy.html @@ -33,8 +33,8 @@ Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/home/global-store.html b/home/global-store.html index 321a470..f7e2ca7 100644 --- a/home/global-store.html +++ b/home/global-store.html @@ -33,11 +33,11 @@ Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/home/much-more.html b/home/much-more.html index 24c29cb..9fbc7f3 100644 --- a/home/much-more.html +++ b/home/much-more.html @@ -33,11 +33,11 @@ Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/home/typescript-first.html b/home/typescript-first.html index 6bbe46f..9498a2c 100644 --- a/home/typescript-first.html +++ b/home/typescript-first.html @@ -33,11 +33,11 @@ Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/home/universal.html b/home/universal.html index 052eab8..749c164 100644 --- a/home/universal.html +++ b/home/universal.html @@ -33,11 +33,11 @@ Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/index.html b/index.html index 2b6f14a..449e4d3 100644 --- a/index.html +++ b/index.html @@ -33,8 +33,8 @@ Home | Universal Logging for Typescript/JavaScript - - + +

Getting Started is Easy

First install Adze from npm.

# npm
@@ -47,6 +47,6 @@
 adze.info('This is an info level log from AdzeJS!');
 
Example of an info log generated from the example code
An isometric illustration of a node server and a web browser among trees

Universal By Nature

Modern JavaScript frameworks like NextJS, NuxtJS, and SvelteKit combine your "back-end" and "front-end" code in the same location. Adze is universal which means it can be executed on the server side or the browser side without any extra considerations. Use it anywhere!

Works great with

NextJS
NuxtJS
SvelteKit
NodeJS
BunJS
DenoJS

Simple, Chainable API

Adze provides you with a means of writing logs that feels very natural. Writing highly-configured logs in place is a breeze with the chainable API. Want to add timestamps and emoji's? Just add the timestamp and withEmojimodifiers.

adze.withEmoji.timestamp.alert('Oh no! Something terrible happened!');
 
Example of an alert log generated from the example code

Choose Your Format

Adze supports multiple formatting options out-of-the-box. Use the pretty, human-readable default format, or generate machine-readable logs using the JSON format; or even mix and match both! How you use Adze is up to you.

Adze JSON logs are also compatible with the Bunyan CLI so you can take advantage of its formatting and filtering features!

This is an example of the same log printed two different ways by changing the format.

First Class TypeScript Support

Other logging libraries have bolted-on TypeScript support which feels unintuitive, whereas Adze is built with TypeScript from the ground up. Because of this, Adze provides a great TypeScript developer experience.

Easy Microfrontend Logging

Because Adze automatically comes with a global store that can have configuration applied that all logs will inherit from.

What this means for microfrontend's is that if you have multiple frontend applications generating Adze logs, you can easily control them centrally. Change the log level, filter out logs that aren't relevant, or even change the format for all logs regardless of the source.

For an in-depth tutorial, visit this article.

And Much More...

To learn more about Adze and how to use it in your project, take a look at the Getting Started guide for a guided tutorial, or visit the Reference Manual for more details about the API's.


Get Started

©Copyright 2024 - Andrew Stacy - Apache 2.0 License

github iconlinkedin icon

- + diff --git a/plugins.html b/plugins.html index 581c9dc..178c752 100644 --- a/plugins.html +++ b/plugins.html @@ -33,11 +33,11 @@ Official Plugins | Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/reference/configuration.html b/reference/configuration.html index 5d83b5a..f9a1214 100644 --- a/reference/configuration.html +++ b/reference/configuration.html @@ -33,8 +33,8 @@ Configuration | Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/reference/formatters.html b/reference/formatters.html index 85cf545..f652fb1 100644 --- a/reference/formatters.html +++ b/reference/formatters.html @@ -33,8 +33,8 @@ Formatters | Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/reference/getters.html b/reference/getters.html index a4cacd3..0a5d254 100644 --- a/reference/getters.html +++ b/reference/getters.html @@ -33,8 +33,8 @@ Data Getters | Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/reference/global-store.html b/reference/global-store.html index bbaf539..535abf2 100644 --- a/reference/global-store.html +++ b/reference/global-store.html @@ -33,8 +33,8 @@ Global Store | Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/reference/introduction.html b/reference/introduction.html index 0234821..a7c0353 100644 --- a/reference/introduction.html +++ b/reference/introduction.html @@ -33,11 +33,11 @@ Introduction & Lifecycle | Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/reference/log-class.html b/reference/log-class.html index c16bcd7..f83e970 100644 --- a/reference/log-class.html +++ b/reference/log-class.html @@ -33,8 +33,8 @@ Log Class | Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/reference/micro-frontends.html b/reference/micro-frontends.html index db1d015..9eb0870 100644 --- a/reference/micro-frontends.html +++ b/reference/micro-frontends.html @@ -33,11 +33,11 @@ Micro-Frontends | Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/reference/middleware.html b/reference/middleware.html index 1ab2b89..07f6db0 100644 --- a/reference/middleware.html +++ b/reference/middleware.html @@ -33,8 +33,8 @@ Middleware | Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/reference/modifiers.html b/reference/modifiers.html index 6cd0904..99e7744 100644 --- a/reference/modifiers.html +++ b/reference/modifiers.html @@ -33,8 +33,8 @@ Modifiers | Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/reference/terminators.html b/reference/terminators.html index 2d6396c..f348880 100644 --- a/reference/terminators.html +++ b/reference/terminators.html @@ -33,8 +33,8 @@ Terminators | Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/reference/tools.html b/reference/tools.html index d55f7d8..34934c6 100644 --- a/reference/tools.html +++ b/reference/tools.html @@ -33,8 +33,8 @@ Tools | Universal Logging for Typescript/JavaScript - - + +
- + diff --git a/reference/unit-testing.html b/reference/unit-testing.html index 7c7e272..fdbdc0b 100644 --- a/reference/unit-testing.html +++ b/reference/unit-testing.html @@ -33,14 +33,14 @@ Unit Testing | Universal Logging for Typescript/JavaScript - - + +
- +