diff --git a/404.html b/404.html index e342567..b19cfc5 100644 --- a/404.html +++ b/404.html @@ -33,11 +33,11 @@ Universal Logging for JavaScript - - + + -

404

Looks like we've got some broken links.
Take me home
- +

404

How did we get here?
Take me home
+ diff --git a/assets/404.html-UVqIIiP2.js b/assets/404.html-D8155HC_.js similarity index 84% rename from assets/404.html-UVqIIiP2.js rename to assets/404.html-D8155HC_.js index 2899367..11f2c7d 100644 --- a/assets/404.html-UVqIIiP2.js +++ b/assets/404.html-D8155HC_.js @@ -1 +1 @@ -import{_ as t,c as e,o,b as n}from"./app-T3-u4krf.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-CHagwFAv.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-D0wovFS_.js b/assets/SearchResult-AN2R5fOI.js similarity index 99% rename from assets/SearchResult-D0wovFS_.js rename to assets/SearchResult-AN2R5fOI.js index b194bf5..47898ca 100644 --- a/assets/SearchResult-D0wovFS_.js +++ b/assets/SearchResult-AN2R5fOI.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-T3-u4krf.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-CHagwFAv.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-IDIZoYj_.js b/assets/annotation.html-D7j8uGeG.js similarity index 99% rename from assets/annotation.html-IDIZoYj_.js rename to assets/annotation.html-D7j8uGeG.js index 696ac11..995c04a 100644 --- a/assets/annotation.html-IDIZoYj_.js +++ b/assets/annotation.html-D7j8uGeG.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-T3-u4krf.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,r as p,c as o,b as s,d as n,e as l,w as i,a,o as c}from"./app-CHagwFAv.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';
 
 /**
diff --git a/assets/app-T3-u4krf.js b/assets/app-CHagwFAv.js
similarity index 98%
rename from assets/app-T3-u4krf.js
rename to assets/app-CHagwFAv.js
index a024e87..19becce 100644
--- a/assets/app-T3-u4krf.js
+++ b/assets/app-CHagwFAv.js
@@ -1,4 +1,4 @@
-const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/concepts.html-BaJU8-uH.js","assets/lifecycle-agZhburq.js","assets/introduction.html-CWYa_ULQ.js","assets/demo-CDG8Pcr1.js","assets/formatters.html-CMprMSiP.js","assets/introduction.html-CqmI59HJ.js"])))=>i.map(i=>d[i]);
+const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/concepts.html-CGPirSpz.js","assets/lifecycle-agZhburq.js","assets/introduction.html-hlf15vqj.js","assets/demo-CDG8Pcr1.js","assets/formatters.html-CuSYMJ34.js","assets/introduction.html-B27NfCqB.js"])))=>i.map(i=>d[i]);
 /**
 * @vue/shared v3.4.38
 * (c) 2018-present Yuxi (Evan) You and Vue contributors
@@ -15,7 +15,7 @@ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/concepts.html-B
 * @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-DXKBvfL5.js"),[]),meta:{title:"Home"}}],["/plugins.html",{loader:()=>ce(()=>import("./plugins.html-tm0L53iF.js"),[]),meta:{title:"Official Plugins"}}],["/getting-started/annotation.html",{loader:()=>ce(()=>import("./annotation.html-IDIZoYj_.js"),[]),meta:{title:"Annotating Logs"}}],["/getting-started/capture-data.html",{loader:()=>ce(()=>import("./capture-data.html-CUwg_ABp.js"),[]),meta:{title:"Capturing Log Data"}}],["/getting-started/concepts.html",{loader:()=>ce(()=>import("./concepts.html-BaJU8-uH.js"),__vite__mapDeps([0,1])),meta:{title:"Concepts"}}],["/getting-started/configuration.html",{loader:()=>ce(()=>import("./configuration.html-D5_g3AaD.js"),[]),meta:{title:"Configuration"}}],["/getting-started/filtering.html",{loader:()=>ce(()=>import("./filtering.html-BqhtsSHl.js"),[]),meta:{title:"Filtering Logs"}}],["/getting-started/global-store.html",{loader:()=>ce(()=>import("./global-store.html-BPw0khz7.js"),[]),meta:{title:"Global Store"}}],["/getting-started/installation.html",{loader:()=>ce(()=>import("./installation.html-VN63OG7Q.js"),[]),meta:{title:"Installing Adze"}}],["/getting-started/introduction.html",{loader:()=>ce(()=>import("./introduction.html-CWYa_ULQ.js"),__vite__mapDeps([2,3])),meta:{title:"Introduction"}}],["/getting-started/migrating.html",{loader:()=>ce(()=>import("./migrating.html-LyIfdZYM.js"),[]),meta:{title:"Migrating from Adze v1"}}],["/getting-started/putting-it-all-together.html",{loader:()=>ce(()=>import("./putting-it-all-together.html-DkbkKewW.js"),[]),meta:{title:"Putting It All Together"}}],["/getting-started/setup.html",{loader:()=>ce(()=>import("./setup.html-C8yyzbfs.js"),[]),meta:{title:"Setting Up Adze"}}],["/getting-started/threading.html",{loader:()=>ce(()=>import("./threading.html-ynXlC1Ec.js"),[]),meta:{title:"Log Threading (MDC)"}}],["/getting-started/tools.html",{loader:()=>ce(()=>import("./tools.html-BaFEV1NI.js"),[]),meta:{title:"Tools"}}],["/home/chainable-api.html",{loader:()=>ce(()=>import("./chainable-api.html-BiZEDCv7.js"),[]),meta:{title:""}}],["/home/configurable.html",{loader:()=>ce(()=>import("./configurable.html-Bb3_rWQz.js"),[]),meta:{title:""}}],["/home/footer.html",{loader:()=>ce(()=>import("./footer.html-D3OfzXL0.js"),[]),meta:{title:""}}],["/home/getting-started-is-easy.html",{loader:()=>ce(()=>import("./getting-started-is-easy.html-QF3Dv8Rf.js"),[]),meta:{title:""}}],["/home/global-store.html",{loader:()=>ce(()=>import("./global-store.html-ClVsx-cO.js"),[]),meta:{title:""}}],["/home/much-more.html",{loader:()=>ce(()=>import("./much-more.html-BPWfJujm.js"),[]),meta:{title:""}}],["/home/typescript-first.html",{loader:()=>ce(()=>import("./typescript-first.html-Dceds5QB.js"),[]),meta:{title:""}}],["/home/universal.html",{loader:()=>ce(()=>import("./universal.html-Ba9LjDOI.js"),[]),meta:{title:""}}],["/reference/configuration.html",{loader:()=>ce(()=>import("./configuration.html-Cz8OsiXn.js"),[]),meta:{title:"Configuration"}}],["/reference/formatters.html",{loader:()=>ce(()=>import("./formatters.html-CMprMSiP.js"),__vite__mapDeps([4,3])),meta:{title:"Formatters"}}],["/reference/getters.html",{loader:()=>ce(()=>import("./getters.html-_SX_-Cmm.js"),[]),meta:{title:"Data Getters"}}],["/reference/global-store.html",{loader:()=>ce(()=>import("./global-store.html-DCjJiQIQ.js"),[]),meta:{title:"Global Store"}}],["/reference/introduction.html",{loader:()=>ce(()=>import("./introduction.html-CqmI59HJ.js"),__vite__mapDeps([5,1])),meta:{title:"Introduction & Lifecycle"}}],["/reference/log-class.html",{loader:()=>ce(()=>import("./log-class.html-nKy1TOHw.js"),[]),meta:{title:"Log Class"}}],["/reference/micro-frontends.html",{loader:()=>ce(()=>import("./micro-frontends.html-B7Dn5a6X.js"),[]),meta:{title:"Micro-Frontends"}}],["/reference/middleware.html",{loader:()=>ce(()=>import("./middleware.html-C4rEc6d9.js"),[]),meta:{title:"Middleware"}}],["/reference/modifiers.html",{loader:()=>ce(()=>import("./modifiers.html-D_RR6hjq.js"),[]),meta:{title:"Modifiers"}}],["/reference/terminators.html",{loader:()=>ce(()=>import("./terminators.html-DF9TCMrI.js"),[]),meta:{title:"Terminators"}}],["/reference/tools.html",{loader:()=>ce(()=>import("./tools.html-DESzWHl4.js"),[]),meta:{title:"Tools"}}],["/reference/unit-testing.html",{loader:()=>ce(()=>import("./unit-testing.html-Dc91tfpb.js"),[]),meta:{title:"Unit Testing"}}],["/404.html",{loader:()=>ce(()=>import("./404.html-UVqIIiP2.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(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-DDE81HJG.js"),[]),meta:{title:"Home"}}],["/plugins.html",{loader:()=>ce(()=>import("./plugins.html-D5knfLN_.js"),[]),meta:{title:"Official Plugins"}}],["/getting-started/annotation.html",{loader:()=>ce(()=>import("./annotation.html-D7j8uGeG.js"),[]),meta:{title:"Annotating Logs"}}],["/getting-started/capture-data.html",{loader:()=>ce(()=>import("./capture-data.html-DqeO8ive.js"),[]),meta:{title:"Capturing Log Data"}}],["/getting-started/concepts.html",{loader:()=>ce(()=>import("./concepts.html-CGPirSpz.js"),__vite__mapDeps([0,1])),meta:{title:"Concepts"}}],["/getting-started/configuration.html",{loader:()=>ce(()=>import("./configuration.html-CJhEGyyO.js"),[]),meta:{title:"Configuration"}}],["/getting-started/filtering.html",{loader:()=>ce(()=>import("./filtering.html-9Se5yaLv.js"),[]),meta:{title:"Filtering Logs"}}],["/getting-started/global-store.html",{loader:()=>ce(()=>import("./global-store.html-CiBsZlLo.js"),[]),meta:{title:"Global Store"}}],["/getting-started/installation.html",{loader:()=>ce(()=>import("./installation.html-C1PUiFxY.js"),[]),meta:{title:"Installing Adze"}}],["/getting-started/introduction.html",{loader:()=>ce(()=>import("./introduction.html-hlf15vqj.js"),__vite__mapDeps([2,3])),meta:{title:"Introduction"}}],["/getting-started/migrating.html",{loader:()=>ce(()=>import("./migrating.html-DaU0dW1c.js"),[]),meta:{title:"Migrating from Adze v1"}}],["/getting-started/putting-it-all-together.html",{loader:()=>ce(()=>import("./putting-it-all-together.html-BaekGvZZ.js"),[]),meta:{title:"Putting It All Together"}}],["/getting-started/setup.html",{loader:()=>ce(()=>import("./setup.html-CvGnRYeK.js"),[]),meta:{title:"Setting Up Adze"}}],["/getting-started/threading.html",{loader:()=>ce(()=>import("./threading.html-DpTlWd2D.js"),[]),meta:{title:"Log Threading (MDC)"}}],["/getting-started/tools.html",{loader:()=>ce(()=>import("./tools.html-BxTD83m8.js"),[]),meta:{title:"Tools"}}],["/home/chainable-api.html",{loader:()=>ce(()=>import("./chainable-api.html-B1g2bHLs.js"),[]),meta:{title:""}}],["/home/configurable.html",{loader:()=>ce(()=>import("./configurable.html-Dn7ZrIWO.js"),[]),meta:{title:""}}],["/home/footer.html",{loader:()=>ce(()=>import("./footer.html-c2W2G-YJ.js"),[]),meta:{title:""}}],["/home/getting-started-is-easy.html",{loader:()=>ce(()=>import("./getting-started-is-easy.html-B3jte_Kv.js"),[]),meta:{title:""}}],["/home/global-store.html",{loader:()=>ce(()=>import("./global-store.html-CQkMp_SV.js"),[]),meta:{title:""}}],["/home/much-more.html",{loader:()=>ce(()=>import("./much-more.html-DWHl6VKs.js"),[]),meta:{title:""}}],["/home/typescript-first.html",{loader:()=>ce(()=>import("./typescript-first.html-C76DY0GP.js"),[]),meta:{title:""}}],["/home/universal.html",{loader:()=>ce(()=>import("./universal.html-CjZPBmbe.js"),[]),meta:{title:""}}],["/reference/configuration.html",{loader:()=>ce(()=>import("./configuration.html-nny76HxN.js"),[]),meta:{title:"Configuration"}}],["/reference/formatters.html",{loader:()=>ce(()=>import("./formatters.html-CuSYMJ34.js"),__vite__mapDeps([4,3])),meta:{title:"Formatters"}}],["/reference/getters.html",{loader:()=>ce(()=>import("./getters.html-BfauaJb_.js"),[]),meta:{title:"Data Getters"}}],["/reference/global-store.html",{loader:()=>ce(()=>import("./global-store.html-C-KDfI06.js"),[]),meta:{title:"Global Store"}}],["/reference/introduction.html",{loader:()=>ce(()=>import("./introduction.html-B27NfCqB.js"),__vite__mapDeps([5,1])),meta:{title:"Introduction & Lifecycle"}}],["/reference/log-class.html",{loader:()=>ce(()=>import("./log-class.html-DRKrcZtQ.js"),[]),meta:{title:"Log Class"}}],["/reference/micro-frontends.html",{loader:()=>ce(()=>import("./micro-frontends.html-DpurTTfb.js"),[]),meta:{title:"Micro-Frontends"}}],["/reference/middleware.html",{loader:()=>ce(()=>import("./middleware.html-CiloyPDk.js"),[]),meta:{title:"Middleware"}}],["/reference/modifiers.html",{loader:()=>ce(()=>import("./modifiers.html-Np1-c78_.js"),[]),meta:{title:"Modifiers"}}],["/reference/terminators.html",{loader:()=>ce(()=>import("./terminators.html-ozjAG7Ty.js"),[]),meta:{title:"Terminators"}}],["/reference/tools.html",{loader:()=>ce(()=>import("./tools.html-tIZ8dkEQ.js"),[]),meta:{title:"Tools"}}],["/reference/unit-testing.html",{loader:()=>ce(()=>import("./unit-testing.html-D4LfW1gU.js"),[]),meta:{title:"Unit Testing"}}],["/404.html",{loader:()=>ce(()=>import("./404.html-D8155HC_.js"),[]),meta:{title:""}}]]);/*!
   * vue-router v4.4.3
   * (c) 2024 Eduardo San Martin Morote
   * @license MIT
@@ -24,4 +24,4 @@ Expects a CSS selector, a Node element, a NodeList or an array.
 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(()=>{ya(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://adzejs.com/v1/"}],"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-D0wovFS_.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 JavaScript","description":"A universal, modern, and extendable logging library for JavaScript and TypeScript.","head":[["meta",{"property":"og:title","content":"Adze - Better JavaScript Logging"}],["meta",{"property":"og:description","content":"A TypeScript enabled library with a beautiful API that simplifies JavaScript logging."}],["meta",{"property":"og:image","content":"https://adzejs.com/assets/img/demo.png"}],["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/img/demo.png"}],["meta",{"property":"twitter:card","content":"summary_large_image"}],["script",{"async":true,"defer":true,"data-domain":"adzejs.com","src":"https://plausible.io/js/plausible.js"}],["script",{"src":"https://cdn.jsdelivr.net/npm/adze/dist/adze.min.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)}}}(),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-AN2R5fOI.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 JavaScript","description":"A universal, modern, and extendable logging library for JavaScript and TypeScript.","head":[["meta",{"property":"og:title","content":"Adze - Better JavaScript Logging"}],["meta",{"property":"og:description","content":"A TypeScript enabled library with a beautiful API that simplifies JavaScript logging."}],["meta",{"property":"og:image","content":"https://adzejs.com/assets/img/demo.png"}],["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/img/demo.png"}],["meta",{"property":"twitter:card","content":"summary_large_image"}],["script",{"async":true,"defer":true,"data-domain":"adzejs.com","src":"https://plausible.io/js/plausible.js"}],["script",{"src":"https://cdn.jsdelivr.net/npm/adze/dist/adze.min.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}; diff --git a/assets/capture-data.html-CUwg_ABp.js b/assets/capture-data.html-DqeO8ive.js similarity index 99% rename from assets/capture-data.html-CUwg_ABp.js rename to assets/capture-data.html-DqeO8ive.js index a88806c..f2d6ca8 100644 --- a/assets/capture-data.html-CUwg_ABp.js +++ b/assets/capture-data.html-DqeO8ive.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-T3-u4krf.js";const r={},d=o('

Capturing Log Data

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.

Transports 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.

The two supported methods are middleware and log listeners.

Middleware

',5),u=s("strong",null,"Middleware class",-1),k=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),m=s("p",null,"The hook can then process the data and transport it to a destination, such as a file, API, or database.",-1),h=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,r as p,c as i,b as s,d as n,e,w as t,a as o,o as c}from"./app-CHagwFAv.js";const r={},d=o('

Capturing Log Data

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.

Transports 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.

The two supported methods are middleware and log listeners.

Middleware

',5),u=s("strong",null,"Middleware class",-1),k=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),m=s("p",null,"The hook can then process the data and transport it to a destination, such as a file, API, or database.",-1),h=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.
diff --git a/assets/chainable-api.html-BiZEDCv7.js b/assets/chainable-api.html-B1g2bHLs.js
similarity index 96%
rename from assets/chainable-api.html-BiZEDCv7.js
rename to assets/chainable-api.html-B1g2bHLs.js
index 44c1de1..c4087de 100644
--- a/assets/chainable-api.html-BiZEDCv7.js
+++ b/assets/chainable-api.html-B1g2bHLs.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-T3-u4krf.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!');
+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-CHagwFAv.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}; diff --git a/assets/concepts.html-BaJU8-uH.js b/assets/concepts.html-CGPirSpz.js similarity index 99% rename from assets/concepts.html-BaJU8-uH.js rename to assets/concepts.html-CGPirSpz.js index 1cea441..2c6eff6 100644 --- a/assets/concepts.html-BaJU8-uH.js +++ b/assets/concepts.html-CGPirSpz.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-T3-u4krf.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,r as l,c,b as t,e as n,w as s,d as e,a as o,o as d}from"./app-CHagwFAv.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}; diff --git a/assets/configurable.html-Bb3_rWQz.js b/assets/configurable.html-Dn7ZrIWO.js similarity index 96% rename from assets/configurable.html-Bb3_rWQz.js rename to assets/configurable.html-Dn7ZrIWO.js index 11988aa..2edd0fb 100644 --- a/assets/configurable.html-Bb3_rWQz.js +++ b/assets/configurable.html-Dn7ZrIWO.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-T3-u4krf.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,r as s,c as m,b as t,d as e,e as o,w as r,o as l}from"./app-CHagwFAv.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}; diff --git a/assets/configuration.html-D5_g3AaD.js b/assets/configuration.html-CJhEGyyO.js similarity index 99% rename from assets/configuration.html-D5_g3AaD.js rename to assets/configuration.html-CJhEGyyO.js index 81bbe3c..aaf3363 100644 --- a/assets/configuration.html-D5_g3AaD.js +++ b/assets/configuration.html-CJhEGyyO.js @@ -1,4 +1,4 @@ -import{_ as n,c as s,o as a,a as e}from"./app-T3-u4krf.js";const t="/assets/custom-log-example-DZpmISRj.png",o={},p=e(`

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.

  1. 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.
  2. Error - Use this for logging fatal errors or errors that impact functionality of your application.
  3. Warn - Use this for logging issues that may impact app performance in a less impactful way than an error.
  4. Info - Use this for logging general insights into your application. This level does not indicate any problems.
  5. Fail - Use this for logging network communication errors or other non-fatal errors that do not break your application.
  6. Success - Use this for logging successful network communications or other successful operations within your app.
  7. Log - Use this for general logging that doesn't apply to any of the lower levels.
  8. Debug - 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.
  9. Verbose - 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.

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 n,c as s,o as a,a as e}from"./app-CHagwFAv.js";const t="/assets/custom-log-example-DZpmISRj.png",o={},p=e(`

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.

  1. 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.
  2. Error - Use this for logging fatal errors or errors that impact functionality of your application.
  3. Warn - Use this for logging issues that may impact app performance in a less impactful way than an error.
  4. Info - Use this for logging general insights into your application. This level does not indicate any problems.
  5. Fail - Use this for logging network communication errors or other non-fatal errors that do not break your application.
  6. Success - Use this for logging successful network communications or other successful operations within your app.
  7. Log - Use this for general logging that doesn't apply to any of the lower levels.
  8. Debug - 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.
  9. Verbose - 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.

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
diff --git a/assets/configuration.html-Cz8OsiXn.js b/assets/configuration.html-nny76HxN.js
similarity index 99%
rename from assets/configuration.html-Cz8OsiXn.js
rename to assets/configuration.html-nny76HxN.js
index c77fb38..a2e177a 100644
--- a/assets/configuration.html-Cz8OsiXn.js
+++ b/assets/configuration.html-nny76HxN.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-T3-u4krf.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,r as p,c as i,b as n,d as s,e,w as t,a as l,o as c}from"./app-CHagwFAv.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;
diff --git a/assets/filtering.html-BqhtsSHl.js b/assets/filtering.html-9Se5yaLv.js
similarity index 99%
rename from assets/filtering.html-BqhtsSHl.js
rename to assets/filtering.html-9Se5yaLv.js
index 88f75d4..15349be 100644
--- a/assets/filtering.html-BqhtsSHl.js
+++ b/assets/filtering.html-9Se5yaLv.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-T3-u4krf.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,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-CHagwFAv.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: {
diff --git a/assets/footer.html-D3OfzXL0.js b/assets/footer.html-c2W2G-YJ.js
similarity index 95%
rename from assets/footer.html-D3OfzXL0.js
rename to assets/footer.html-c2W2G-YJ.js
index 46720ee..87c0445 100644
--- a/assets/footer.html-D3OfzXL0.js
+++ b/assets/footer.html-c2W2G-YJ.js
@@ -1 +1 @@
-import{_ as t,c as n,o as r,b as e}from"./app-T3-u4krf.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-CHagwFAv.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-CMprMSiP.js b/assets/formatters.html-CuSYMJ34.js similarity index 99% rename from assets/formatters.html-CMprMSiP.js rename to assets/formatters.html-CuSYMJ34.js index 09f1f18..019baca 100644 --- a/assets/formatters.html-CMprMSiP.js +++ b/assets/formatters.html-CuSYMJ34.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-T3-u4krf.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,r as i,c as r,b as s,d as n,e,w as t,a as p,o as c}from"./app-CHagwFAv.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',
diff --git a/assets/getters.html-_SX_-Cmm.js b/assets/getters.html-BfauaJb_.js
similarity index 99%
rename from assets/getters.html-_SX_-Cmm.js
rename to assets/getters.html-BfauaJb_.js
index f096c11..96d7278 100644
--- a/assets/getters.html-_SX_-Cmm.js
+++ b/assets/getters.html-BfauaJb_.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-T3-u4krf.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,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-CHagwFAv.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
diff --git a/assets/getting-started-is-easy.html-QF3Dv8Rf.js b/assets/getting-started-is-easy.html-B3jte_Kv.js
similarity index 98%
rename from assets/getting-started-is-easy.html-QF3Dv8Rf.js
rename to assets/getting-started-is-easy.html-B3jte_Kv.js
index 290dc9f..7ef1c16 100644
--- a/assets/getting-started-is-easy.html-QF3Dv8Rf.js
+++ b/assets/getting-started-is-easy.html-B3jte_Kv.js
@@ -1,4 +1,4 @@
-import{_ as n,c as s,o as a,a as e}from"./app-T3-u4krf.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-CHagwFAv.js";const t={},i=e(`

First install Adze from npm.

# npm
 npm install -S adze
 
 # pnpm
diff --git a/assets/global-store.html-DCjJiQIQ.js b/assets/global-store.html-C-KDfI06.js
similarity index 99%
rename from assets/global-store.html-DCjJiQIQ.js
rename to assets/global-store.html-C-KDfI06.js
index 8f0412f..3c001de 100644
--- a/assets/global-store.html-DCjJiQIQ.js
+++ b/assets/global-store.html-C-KDfI06.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-T3-u4krf.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,r as o,c,b as s,d as n,e,w as t,a as p,o as i}from"./app-CHagwFAv.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';
diff --git a/assets/global-store.html-ClVsx-cO.js b/assets/global-store.html-CQkMp_SV.js
similarity index 96%
rename from assets/global-store.html-ClVsx-cO.js
rename to assets/global-store.html-CQkMp_SV.js
index 0386c3b..91037fb 100644
--- a/assets/global-store.html-ClVsx-cO.js
+++ b/assets/global-store.html-CQkMp_SV.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-T3-u4krf.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,r as l,c as r,b as t,d as e,e as n,w as s,o as i}from"./app-CHagwFAv.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}; diff --git a/assets/global-store.html-BPw0khz7.js b/assets/global-store.html-CiBsZlLo.js similarity index 99% rename from assets/global-store.html-BPw0khz7.js rename to assets/global-store.html-CiBsZlLo.js index b2ec4fa..f7c93ff 100644 --- a/assets/global-store.html-BPw0khz7.js +++ b/assets/global-store.html-CiBsZlLo.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-T3-u4krf.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,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-CHagwFAv.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';
 
 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 and 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';
diff --git a/assets/index.html-DXKBvfL5.js b/assets/index.html-DDE81HJG.js
similarity index 95%
rename from assets/index.html-DXKBvfL5.js
rename to assets/index.html-DDE81HJG.js
index 840cf20..f115953 100644
--- a/assets/index.html-DXKBvfL5.js
+++ b/assets/index.html-DDE81HJG.js
@@ -1 +1 @@
-import{_ as e,c as t,o as a}from"./app-T3-u4krf.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-CHagwFAv.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-VN63OG7Q.js b/assets/installation.html-C1PUiFxY.js
similarity index 99%
rename from assets/installation.html-VN63OG7Q.js
rename to assets/installation.html-C1PUiFxY.js
index 3e8d153..e0a1e4d 100644
--- a/assets/installation.html-VN63OG7Q.js
+++ b/assets/installation.html-C1PUiFxY.js
@@ -1,4 +1,4 @@
-import{_ as n,c as e,o as s,a}from"./app-T3-u4krf.js";const t={},i=a(`

Installing Adze

DANGER

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

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-CHagwFAv.js";const t={},i=a(`

Installing Adze

DANGER

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

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-CqmI59HJ.js b/assets/introduction.html-B27NfCqB.js
similarity index 98%
rename from assets/introduction.html-CqmI59HJ.js
rename to assets/introduction.html-B27NfCqB.js
index b10ea03..9558ef4 100644
--- a/assets/introduction.html-CqmI59HJ.js
+++ b/assets/introduction.html-B27NfCqB.js
@@ -1 +1 @@
-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-T3-u4krf.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}; +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-CHagwFAv.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-CWYa_ULQ.js b/assets/introduction.html-hlf15vqj.js similarity index 99% rename from assets/introduction.html-CWYa_ULQ.js rename to assets/introduction.html-hlf15vqj.js index d4982f5..ee48395 100644 --- a/assets/introduction.html-CWYa_ULQ.js +++ b/assets/introduction.html-hlf15vqj.js @@ -1,4 +1,4 @@ -import{_ as e}from"./demo-CDG8Pcr1.js";import{_ as a,c as n,o as s,a as t}from"./app-T3-u4krf.js";const i="/assets/adze-DDZEO4kF.jpg",o="/assets/api_example_output_1-DGiY5HZ4.png",l="/assets/api_example_output_2-D5B9-3bs.png",r={},p=t('

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:

  • First-class TypeScript support (not bolted-on)
  • Wraps and extends the entire standard API
  • A convenient chainable API
  • Log Listeners for capturing log data
  • Middleware support for plugins and transporting logs
  • Log annotations such as namespaces, labels, and other meta data
  • Four formats supported out of the box:
    • Pretty - Human readable logs that are easy on the eyes
    • JSON - Machine readable logs that are compatible with the Bunyan CLI
    • Standard - Human readable stdout logs
    • Common - Logs that adhere to the Common Log Format
  • Everything is customizable and configurable
  • Tools for caching, filtering, and recalling logs
  • Support for creating log thread to track data across multiple scopes
  • Convenient child logger API's
  • and much more...

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 e}from"./demo-CDG8Pcr1.js";import{_ as a,c as n,o as s,a as t}from"./app-CHagwFAv.js";const i="/assets/adze-DDZEO4kF.jpg",o="/assets/api_example_output_1-DGiY5HZ4.png",l="/assets/api_example_output_2-D5B9-3bs.png",r={},p=t('

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:

  • First-class TypeScript support (not bolted-on)
  • Wraps and extends the entire standard API
  • A convenient chainable API
  • Log Listeners for capturing log data
  • Middleware support for plugins and transporting logs
  • Log annotations such as namespaces, labels, and other meta data
  • Four formats supported out of the box:
    • Pretty - Human readable logs that are easy on the eyes
    • JSON - Machine readable logs that are compatible with the Bunyan CLI
    • Standard - Human readable stdout logs
    • Common - Logs that adhere to the Common Log Format
  • Everything is customizable and configurable
  • Tools for caching, filtering, and recalling logs
  • Support for creating log thread to track data across multiple scopes
  • Convenient child logger API's
  • and much more...

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
diff --git a/assets/log-class.html-nKy1TOHw.js b/assets/log-class.html-DRKrcZtQ.js
similarity index 99%
rename from assets/log-class.html-nKy1TOHw.js
rename to assets/log-class.html-DRKrcZtQ.js
index 7c32498..2a0b7d0 100644
--- a/assets/log-class.html-nKy1TOHw.js
+++ b/assets/log-class.html-DRKrcZtQ.js
@@ -1,4 +1,4 @@
-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-T3-u4krf.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,r,c as i,b as e,e as a,w as n,d as t,a as o,o as d}from"./app-CHagwFAv.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';
 

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.
diff --git a/assets/micro-frontends.html-B7Dn5a6X.js b/assets/micro-frontends.html-DpurTTfb.js
similarity index 98%
rename from assets/micro-frontends.html-B7Dn5a6X.js
rename to assets/micro-frontends.html-DpurTTfb.js
index 2dc768e..c44fe15 100644
--- a/assets/micro-frontends.html-B7Dn5a6X.js
+++ b/assets/micro-frontends.html-DpurTTfb.js
@@ -1 +1 @@
-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-T3-u4krf.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}; +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-CHagwFAv.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/middleware.html-C4rEc6d9.js b/assets/middleware.html-CiloyPDk.js similarity index 99% rename from assets/middleware.html-C4rEc6d9.js rename to assets/middleware.html-CiloyPDk.js index 16eb8c8..2a281fe 100644 --- a/assets/middleware.html-C4rEc6d9.js +++ b/assets/middleware.html-CiloyPDk.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-T3-u4krf.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,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-CHagwFAv.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() {
diff --git a/assets/migrating.html-LyIfdZYM.js b/assets/migrating.html-DaU0dW1c.js
similarity index 99%
rename from assets/migrating.html-LyIfdZYM.js
rename to assets/migrating.html-DaU0dW1c.js
index 723fff3..08a50e7 100644
--- a/assets/migrating.html-LyIfdZYM.js
+++ b/assets/migrating.html-DaU0dW1c.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-T3-u4krf.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,r as o,c as i,b as s,d as n,e,w as t,a as p,o as c}from"./app-CHagwFAv.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';
diff --git a/assets/modifiers.html-D_RR6hjq.js b/assets/modifiers.html-Np1-c78_.js
similarity index 99%
rename from assets/modifiers.html-D_RR6hjq.js
rename to assets/modifiers.html-Np1-c78_.js
index aa195f9..aafddc0 100644
--- a/assets/modifiers.html-D_RR6hjq.js
+++ b/assets/modifiers.html-Np1-c78_.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-T3-u4krf.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,r as l,c as i,b as n,d as s,e,w as t,a as p,o as c}from"./app-CHagwFAv.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';
diff --git a/assets/much-more.html-BPWfJujm.js b/assets/much-more.html-DWHl6VKs.js
similarity index 94%
rename from assets/much-more.html-BPWfJujm.js
rename to assets/much-more.html-DWHl6VKs.js
index d7834f8..1b997b3 100644
--- a/assets/much-more.html-BPWfJujm.js
+++ b/assets/much-more.html-DWHl6VKs.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-T3-u4krf.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,r as n,c as i,b as c,d as e,e as o,w as a,o as l}from"./app-CHagwFAv.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}; diff --git a/assets/plugins.html-tm0L53iF.js b/assets/plugins.html-D5knfLN_.js similarity index 96% rename from assets/plugins.html-tm0L53iF.js rename to assets/plugins.html-D5knfLN_.js index 0d76aee..747a25f 100644 --- a/assets/plugins.html-tm0L53iF.js +++ b/assets/plugins.html-D5knfLN_.js @@ -1 +1 @@ -import{_ as t,c as e,o as a,a as o}from"./app-T3-u4krf.js";const r={},i=o('

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
npm???
',6),n=[i];function l(s,d){return a(),e("div",null,n)}const p=t(r,[["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":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.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 t,c as e,o as a,a as o}from"./app-CHagwFAv.js";const r={},i=o('

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
npm???
',6),n=[i];function l(s,d){return a(),e("div",null,n)}const p=t(r,[["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":1726004801000,"contributors":[{"name":"Andrew Stacy","email":"ajstacy@gmail.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-DkbkKewW.js b/assets/putting-it-all-together.html-BaekGvZZ.js similarity index 99% rename from assets/putting-it-all-together.html-DkbkKewW.js rename to assets/putting-it-all-together.html-BaekGvZZ.js index aa8c02c..0c810d6 100644 --- a/assets/putting-it-all-together.html-DkbkKewW.js +++ b/assets/putting-it-all-together.html-BaekGvZZ.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-T3-u4krf.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,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-CHagwFAv.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 AdzeTransportFile from '@adze/transport-file';
 
 // Make the output format pretty when in development. Use JSON formatting in all other environments.
diff --git a/assets/setup.html-C8yyzbfs.js b/assets/setup.html-CvGnRYeK.js
similarity index 98%
rename from assets/setup.html-C8yyzbfs.js
rename to assets/setup.html-CvGnRYeK.js
index 57bdc47..8327449 100644
--- a/assets/setup.html-C8yyzbfs.js
+++ b/assets/setup.html-CvGnRYeK.js
@@ -1,4 +1,4 @@
-import{_ as e,c as s,o as a,a as n}from"./app-T3-u4krf.js";const t="/assets/setup-shared-logger-jLtQgX4T.png",o={},i=n(`

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 e,c as s,o as a,a as n}from"./app-CHagwFAv.js";const t="/assets/setup-shared-logger-jLtQgX4T.png",o={},i=n(`

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
diff --git a/assets/terminators.html-DF9TCMrI.js b/assets/terminators.html-ozjAG7Ty.js
similarity index 99%
rename from assets/terminators.html-DF9TCMrI.js
rename to assets/terminators.html-ozjAG7Ty.js
index f273b5d..343bac9 100644
--- a/assets/terminators.html-DF9TCMrI.js
+++ b/assets/terminators.html-ozjAG7Ty.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-T3-u4krf.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,r as l,c as i,b as n,d as s,e,w as t,a as p,o as r}from"./app-CHagwFAv.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';
diff --git a/assets/threading.html-ynXlC1Ec.js b/assets/threading.html-DpTlWd2D.js
similarity index 99%
rename from assets/threading.html-ynXlC1Ec.js
rename to assets/threading.html-DpTlWd2D.js
index 28fd68b..aeb1d7f 100644
--- a/assets/threading.html-ynXlC1Ec.js
+++ b/assets/threading.html-DpTlWd2D.js
@@ -1,4 +1,4 @@
-import{_ as n,c as a,o as s,a as t}from"./app-T3-u4krf.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-CHagwFAv.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-BaFEV1NI.js b/assets/tools.html-BxTD83m8.js
similarity index 99%
rename from assets/tools.html-BaFEV1NI.js
rename to assets/tools.html-BxTD83m8.js
index 15ded21..2a8a28d 100644
--- a/assets/tools.html-BaFEV1NI.js
+++ b/assets/tools.html-BxTD83m8.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-T3-u4krf.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,r,c as p,b as s,d as e,e as a,w as t,a as o,o as i}from"./app-CHagwFAv.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({
diff --git a/assets/tools.html-DESzWHl4.js b/assets/tools.html-tIZ8dkEQ.js
similarity index 99%
rename from assets/tools.html-DESzWHl4.js
rename to assets/tools.html-tIZ8dkEQ.js
index a4c28cf..4fbe873 100644
--- a/assets/tools.html-DESzWHl4.js
+++ b/assets/tools.html-tIZ8dkEQ.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-T3-u4krf.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,r as l,c as o,b as n,d as s,e,w as t,a as c,o as i}from"./app-CHagwFAv.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 {
   public filterByLabel(label: string): void;
 }
 

Example

import adze, { setup } from 'adze';
diff --git a/assets/typescript-first.html-Dceds5QB.js b/assets/typescript-first.html-C76DY0GP.js
similarity index 94%
rename from assets/typescript-first.html-Dceds5QB.js
rename to assets/typescript-first.html-C76DY0GP.js
index 95211b5..6495398 100644
--- a/assets/typescript-first.html-Dceds5QB.js
+++ b/assets/typescript-first.html-C76DY0GP.js
@@ -1 +1 @@
-import{_ as r,c as i,o,b as t,d as e}from"./app-T3-u4krf.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-CHagwFAv.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-Dc91tfpb.js b/assets/unit-testing.html-D4LfW1gU.js similarity index 97% rename from assets/unit-testing.html-Dc91tfpb.js rename to assets/unit-testing.html-D4LfW1gU.js index 12f67ba..84f79ce 100644 --- a/assets/unit-testing.html-Dc91tfpb.js +++ b/assets/unit-testing.html-D4LfW1gU.js @@ -1,4 +1,4 @@ -import{_ as e,c as t,o as n,a}from"./app-T3-u4krf.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-CHagwFAv.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-Ba9LjDOI.js b/assets/universal.html-CjZPBmbe.js similarity index 96% rename from assets/universal.html-Ba9LjDOI.js rename to assets/universal.html-CjZPBmbe.js index 6e7d989..8eb612d 100644 --- a/assets/universal.html-Ba9LjDOI.js +++ b/assets/universal.html-CjZPBmbe.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-T3-u4krf.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,r as a,c as o,b as t,d as e,e as s,w as i,o as l}from"./app-CHagwFAv.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}; diff --git a/getting-started/annotation.html b/getting-started/annotation.html index b20aec6..c360f2c 100644 --- a/getting-started/annotation.html +++ b/getting-started/annotation.html @@ -33,11 +33,11 @@ Annotating Logs | Universal Logging for JavaScript - - + + -