From 753116020a0fcedfd9b1f7823b313b61fab28b61 Mon Sep 17 00:00:00 2001 From: Dmitriy Pleshevskiy Date: Wed, 24 Jul 2024 17:15:05 +0300 Subject: [PATCH] refac: use vuepress --- .gitignore | 21 +- Makefile | 25 +- dist/404.html | 43 + dist/assets/404.html-C-XD0uTd.js | 1 + dist/assets/app-Dw1tezwH.js | 32 + dist/assets/index.html-Bgp5oohT.js | 1 + dist/assets/index.html-Bmcvetlf.js | 1 + dist/assets/style-BnNdFOI8.css | 1 + dist/assets/works.html-DIDCwbnz.js | 1 + dist/assets/works.html-sG2zmfnZ.js | 1 + dist/eng/index.html | 43 + dist/eng/works.html | 43 + dist/index.html | 43 + dist/robots.txt | 5 + dist/rus/index.html | 17 + dist/rus/works.html | 17 + dist/sitemap.xml | 3 + dist/sitemap.xsl | 207 + dist/works.html | 43 + docs/.vuepress/client.ts | 6 + docs/.vuepress/config.ts | 84 + docs/.vuepress/global.ts | 9 + .../ChronologicalWorksTable.vue | 44 + .../ChronologicalWorksTable/TechnologyList.ts | 0 .../work/ChronologicalWorksTable/index.ts | 1 + docs/.vuepress/modules/work/data.ts | 361 ++ .../.vuepress/modules}/work/domain/Role.ts | 0 .../.vuepress/modules}/work/domain/Status.ts | 0 .../modules}/work/domain/Technology.ts | 0 docs/.vuepress/modules/work/domain/Work.ts | 20 + .../.vuepress/modules/work/domain/index.ts | 0 docs/.vuepress/modules/work/index.ts | 1 + docs/.vuepress/pages/WorksPage.vue | 42 + docs/.vuepress/theme.ts | 10 + docs/eng/index.md | 109 + docs/eng/works.md | 71 + docs/index.md | 111 + docs/works.md | 75 + flake.lock | 44 +- flake.nix | 48 +- .dockerignore => old/.dockerignore | 0 .woodpecker.yml => old/.woodpecker.yml | 0 Dockerfile => old/Dockerfile | 0 context.ts => old/context.ts | 0 {data => old/data}/about/eng.md | 0 {data => old/data}/about/rus.md | 0 {data => old/data}/works/eng.md | 0 {data => old/data}/works/rus.md | 0 deno.json => old/deno.json | 0 deno.lock => old/deno.lock | 0 docker-compose.yml => old/docker-compose.yml | 0 global.ts => old/global.ts | 0 import_map.json => old/import_map.json | 0 log.ts => old/log.ts | 0 .../ChronologicalWorksTable.ts | 0 .../work/ChronologicalWorksTable/RoleList.ts | 0 .../ChronologicalWorksTable/TechnologyList.ts | 7 + .../work/ChronologicalWorksTable/mod.ts | 0 {modules => old/modules}/work/WorkLink.ts | 0 {modules => old/modules}/work/data.ts | 0 old/modules/work/domain/Role.ts | 7 + old/modules/work/domain/Status.ts | 25 + old/modules/work/domain/Technology.ts | 25 + {modules => old/modules}/work/domain/Work.ts | 0 old/modules/work/domain/mod.ts | 5 + {modules => old/modules}/work/mod.ts | 0 {public => old/public}/styles/main.css | 0 {public => old/public}/styles/main.css.map | 0 render.ts => old/render.ts | 0 server.ts => old/server.ts | 0 {styles => old/styles}/atoms/flex.scss | 0 {styles => old/styles}/atoms/misc.scss | 0 {styles => old/styles}/atoms/mod.scss | 0 {styles => old/styles}/atoms/sizes.scss | 0 {styles => old/styles}/atoms/typography.scss | 0 .../styles}/atoms/white-spaces.scss | 0 {styles => old/styles}/base/layout.scss | 0 {styles => old/styles}/base/reset.scss | 0 {styles => old/styles}/main.scss | 0 {styles => old/styles}/mixins/flex.scss | 0 {styles => old/styles}/mixins/mod.scss | 0 .../styles}/mixins/white-spaces.scss | 0 {styles => old/styles}/uikit/dropdown.scss | 0 {styles => old/styles}/uikit/main-menu.scss | 0 {styles => old/styles}/uikit/mod.scss | 0 {styles => old/styles}/variables.scss | 0 {translates => old/translates}/eng.ts | 0 {translates => old/translates}/rus.ts | 0 {uikit => old/uikit}/link.ts | 0 {uikit => old/uikit}/typo.ts | 0 {views => old/views}/comp/layout.ts | 0 {views => old/views}/comp/page_layout.ts | 0 {views => old/views}/pages/content.ts | 0 {views => old/views}/pages/e404.ts | 0 {views => old/views}/pages/e500.ts | 0 {views => old/views}/pages/works.ts | 0 package.json | 36 + pnpm-lock.yaml | 4554 +++++++++++++++++ tsconfig.json | 11 + 99 files changed, 6213 insertions(+), 41 deletions(-) create mode 100644 dist/404.html create mode 100644 dist/assets/404.html-C-XD0uTd.js create mode 100644 dist/assets/app-Dw1tezwH.js create mode 100644 dist/assets/index.html-Bgp5oohT.js create mode 100644 dist/assets/index.html-Bmcvetlf.js create mode 100644 dist/assets/style-BnNdFOI8.css create mode 100644 dist/assets/works.html-DIDCwbnz.js create mode 100644 dist/assets/works.html-sG2zmfnZ.js create mode 100644 dist/eng/index.html create mode 100644 dist/eng/works.html create mode 100644 dist/index.html create mode 100644 dist/robots.txt create mode 100644 dist/rus/index.html create mode 100644 dist/rus/works.html create mode 100644 dist/sitemap.xml create mode 100644 dist/sitemap.xsl create mode 100644 dist/works.html create mode 100644 docs/.vuepress/client.ts create mode 100644 docs/.vuepress/config.ts create mode 100644 docs/.vuepress/global.ts create mode 100644 docs/.vuepress/modules/work/ChronologicalWorksTable/ChronologicalWorksTable.vue rename {modules => docs/.vuepress/modules}/work/ChronologicalWorksTable/TechnologyList.ts (100%) create mode 100644 docs/.vuepress/modules/work/ChronologicalWorksTable/index.ts create mode 100644 docs/.vuepress/modules/work/data.ts rename {modules => docs/.vuepress/modules}/work/domain/Role.ts (100%) rename {modules => docs/.vuepress/modules}/work/domain/Status.ts (100%) rename {modules => docs/.vuepress/modules}/work/domain/Technology.ts (100%) create mode 100644 docs/.vuepress/modules/work/domain/Work.ts rename modules/work/domain/mod.ts => docs/.vuepress/modules/work/domain/index.ts (100%) create mode 100644 docs/.vuepress/modules/work/index.ts create mode 100644 docs/.vuepress/pages/WorksPage.vue create mode 100644 docs/.vuepress/theme.ts create mode 100644 docs/eng/index.md create mode 100644 docs/eng/works.md create mode 100644 docs/index.md create mode 100644 docs/works.md rename .dockerignore => old/.dockerignore (100%) rename .woodpecker.yml => old/.woodpecker.yml (100%) rename Dockerfile => old/Dockerfile (100%) rename context.ts => old/context.ts (100%) rename {data => old/data}/about/eng.md (100%) rename {data => old/data}/about/rus.md (100%) rename {data => old/data}/works/eng.md (100%) rename {data => old/data}/works/rus.md (100%) rename deno.json => old/deno.json (100%) rename deno.lock => old/deno.lock (100%) rename docker-compose.yml => old/docker-compose.yml (100%) rename global.ts => old/global.ts (100%) rename import_map.json => old/import_map.json (100%) rename log.ts => old/log.ts (100%) rename {modules => old/modules}/work/ChronologicalWorksTable/ChronologicalWorksTable.ts (100%) rename {modules => old/modules}/work/ChronologicalWorksTable/RoleList.ts (100%) create mode 100644 old/modules/work/ChronologicalWorksTable/TechnologyList.ts rename {modules => old/modules}/work/ChronologicalWorksTable/mod.ts (100%) rename {modules => old/modules}/work/WorkLink.ts (100%) rename {modules => old/modules}/work/data.ts (100%) create mode 100644 old/modules/work/domain/Role.ts create mode 100644 old/modules/work/domain/Status.ts create mode 100644 old/modules/work/domain/Technology.ts rename {modules => old/modules}/work/domain/Work.ts (100%) create mode 100644 old/modules/work/domain/mod.ts rename {modules => old/modules}/work/mod.ts (100%) rename {public => old/public}/styles/main.css (100%) rename {public => old/public}/styles/main.css.map (100%) rename render.ts => old/render.ts (100%) rename server.ts => old/server.ts (100%) rename {styles => old/styles}/atoms/flex.scss (100%) rename {styles => old/styles}/atoms/misc.scss (100%) rename {styles => old/styles}/atoms/mod.scss (100%) rename {styles => old/styles}/atoms/sizes.scss (100%) rename {styles => old/styles}/atoms/typography.scss (100%) rename {styles => old/styles}/atoms/white-spaces.scss (100%) rename {styles => old/styles}/base/layout.scss (100%) rename {styles => old/styles}/base/reset.scss (100%) rename {styles => old/styles}/main.scss (100%) rename {styles => old/styles}/mixins/flex.scss (100%) rename {styles => old/styles}/mixins/mod.scss (100%) rename {styles => old/styles}/mixins/white-spaces.scss (100%) rename {styles => old/styles}/uikit/dropdown.scss (100%) rename {styles => old/styles}/uikit/main-menu.scss (100%) rename {styles => old/styles}/uikit/mod.scss (100%) rename {styles => old/styles}/variables.scss (100%) rename {translates => old/translates}/eng.ts (100%) rename {translates => old/translates}/rus.ts (100%) rename {uikit => old/uikit}/link.ts (100%) rename {uikit => old/uikit}/typo.ts (100%) rename {views => old/views}/comp/layout.ts (100%) rename {views => old/views}/comp/page_layout.ts (100%) rename {views => old/views}/pages/content.ts (100%) rename {views => old/views}/pages/e404.ts (100%) rename {views => old/views}/pages/e500.ts (100%) rename {views => old/views}/pages/works.ts (100%) create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore index 3e96df4..9b1f245 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,17 @@ -# misc -.DS_Store - +# editors +.idea/ +.vscode/ +*.swp # direnv -/.envrc -/.direnv/ +.direnv +.envrc +# nodejs +node_modules/ +# nix +/result +# custom +.DS_Store +# vuepress +/docs/.vuepress/.cache +/docs/.vuepress/.temp +/docs/.vuepress/dist diff --git a/Makefile b/Makefile index 1b29e7a..a9f7a4b 100644 --- a/Makefile +++ b/Makefile @@ -1,13 +1,16 @@ -PAR := $(MAKE) -j 128 - -watch: - ${PAR} deno-w sass-w - -deno-w: - deno run -A --watch server.ts - -sass-w: - sass -w styles/main.scss public/styles/main.css +PREFIX ?= dist help: - cat makefile + cat Makefile + +build: + pnpm run docs:build --dest $(PREFIX) + +install: build + +dev: + pnpm run docs:dev + +deps: + pnpm install + diff --git a/dist/404.html b/dist/404.html new file mode 100644 index 0000000..15b8948 --- /dev/null +++ b/dist/404.html @@ -0,0 +1,43 @@ + + + + + + + + + Дмитрий Плешевский + + + + + +

404

Мы потеряли страницу...
Вернуться на главную
+ + + diff --git a/dist/assets/404.html-C-XD0uTd.js b/dist/assets/404.html-C-XD0uTd.js new file mode 100644 index 0000000..72f331a --- /dev/null +++ b/dist/assets/404.html-C-XD0uTd.js @@ -0,0 +1 @@ +import{_ as t,c as e,o,a as n}from"./app-Dw1tezwH.js";const r={},a=n("p",null,"404 Not Found",-1),c=[a];function s(p,l){return o(),e("div",null,c)}const d=t(r,[["render",s],["__file","404.html.vue"]]),m=JSON.parse('{"path":"/404.html","title":"","lang":"ru-RU","frontmatter":{"layout":"NotFound","description":"404 Not Found","head":[["meta",{"property":"og:url","content":"https://pleshevski.ru/404.html"}],["meta",{"property":"og:site_name","content":"Дмитрий Плешевский"}],["meta",{"property":"og:description","content":"404 Not Found"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"ru-RU"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"\\",\\"description\\":\\"404 Not Found\\"}"]]},"headers":[],"git":{},"autoDesc":true,"filePathRelative":null}');export{d as comp,m as data}; diff --git a/dist/assets/app-Dw1tezwH.js b/dist/assets/app-Dw1tezwH.js new file mode 100644 index 0000000..2e18ee7 --- /dev/null +++ b/dist/assets/app-Dw1tezwH.js @@ -0,0 +1,32 @@ +/** +* @vue/shared v3.4.33 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function Do(e,t){const n=new Set(e.split(","));return r=>n.has(r)}const Ce={},fn=[],ot=()=>{},Ca=()=>!1,Qn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Ho=e=>e.startsWith("onUpdate:"),He=Object.assign,No=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},La=Object.prototype.hasOwnProperty,fe=(e,t)=>La.call(e,t),ne=Array.isArray,dn=e=>Nr(e)==="[object Map]",Ii=e=>Nr(e)==="[object Set]",se=e=>typeof e=="function",Ae=e=>typeof e=="string",Ft=e=>typeof e=="symbol",we=e=>e!==null&&typeof e=="object",Mi=e=>(we(e)||se(e))&&se(e.then)&&se(e.catch),Di=Object.prototype.toString,Nr=e=>Di.call(e),Pa=e=>Nr(e).slice(8,-1),Hi=e=>Nr(e)==="[object Object]",$o=e=>Ae(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,hn=Do(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),$r=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},xa=/-(\w)/g,et=$r(e=>e.replace(xa,(t,n)=>n?n.toUpperCase():"")),ka=/\B([A-Z])/g,Bt=$r(e=>e.replace(ka,"-$1").toLowerCase()),Xn=$r(e=>e.charAt(0).toUpperCase()+e.slice(1)),eo=$r(e=>e?`on${Xn(e)}`:""),$t=(e,t)=>!Object.is(e,t),to=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},Aa=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Ta=e=>{const t=Ae(e)?Number(e):NaN;return isNaN(t)?e:t};let bs;const $i=()=>bs||(bs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Zn(e){if(ne(e)){const t={};for(let n=0;n{if(n){const r=n.split(Oa);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Ge(e){let t="";if(Ae(e))t=e;else if(ne(e))for(let n=0;n!!(e&&e.__v_isRef===!0),de=e=>Ae(e)?e:e==null?"":ne(e)||we(e)&&(e.toString===Di||!se(e.toString))?Vi(e)?de(e.value):JSON.stringify(e,Fi,2):String(e),Fi=(e,t)=>Vi(t)?Fi(e,t.value):dn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,o],s)=>(n[no(r,s)+" =>"]=o,n),{})}:Ii(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>no(n))}:Ft(t)?no(t):we(t)&&!ne(t)&&!Hi(t)?String(t):t,no=(e,t="")=>{var n;return Ft(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.4.33 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Xe;class Na{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Xe,!t&&Xe&&(this.index=(Xe.scopes||(Xe.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=Xe;try{return Xe=this,t()}finally{Xe=n}}}on(){Xe=this}off(){Xe=this.parent}stop(t){if(this._active){let n,r;for(n=0,r=this.effects.length;n=4))break}this._dirtyLevel===1&&(this._dirtyLevel=0),Wt()}return this._dirtyLevel>=4}set dirty(t){this._dirtyLevel=t?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=Ht,n=Zt;try{return Ht=!0,Zt=this,this._runnings++,ys(this),this.fn()}finally{ws(this),this._runnings--,Zt=n,Ht=t}}stop(){this.active&&(ys(this),ws(this),this.onStop&&this.onStop(),this.active=!1)}}function Va(e){return e.value}function ys(e){e._trackId++,e._depsLength=0}function ws(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t{const n=new Map;return n.cleanup=e,n.computed=t,n},Pr=new WeakMap,en=Symbol(""),wo=Symbol("");function Je(e,t,n){if(Ht&&Zt){let r=Pr.get(e);r||Pr.set(e,r=new Map);let o=r.get(n);o||r.set(n,o=qi(()=>r.delete(n))),Ui(Zt,o)}}function yt(e,t,n,r,o,s){const i=Pr.get(e);if(!i)return;let l=[];if(t==="clear")l=[...i.values()];else if(n==="length"&&ne(e)){const a=Number(r);i.forEach((c,f)=>{(f==="length"||!Ft(f)&&f>=a)&&l.push(c)})}else switch(n!==void 0&&l.push(i.get(n)),t){case"add":ne(e)?$o(n)&&l.push(i.get("length")):(l.push(i.get(en)),dn(e)&&l.push(i.get(wo)));break;case"delete":ne(e)||(l.push(i.get(en)),dn(e)&&l.push(i.get(wo)));break;case"set":dn(e)&&l.push(i.get(en));break}Vo();for(const a of l)a&&Ki(a,4);Fo()}function Fa(e,t){const n=Pr.get(e);return n&&n.get(t)}const Ba=Do("__proto__,__v_isRef,__isVue"),Gi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Ft)),Ss=za();function za(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=pe(this);for(let s=0,i=this.length;s{e[t]=function(...n){zt(),Vo();const r=pe(this)[t].apply(this,n);return Fo(),Wt(),r}}),e}function Wa(e){Ft(e)||(e=String(e));const t=pe(this);return Je(t,"has",e),t.hasOwnProperty(e)}class Ji{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){const o=this._isReadonly,s=this._isShallow;if(n==="__v_isReactive")return!o;if(n==="__v_isReadonly")return o;if(n==="__v_isShallow")return s;if(n==="__v_raw")return r===(o?s?rc:Zi:s?Xi:Qi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=ne(t);if(!o){if(i&&fe(Ss,n))return Reflect.get(Ss,n,r);if(n==="hasOwnProperty")return Wa}const l=Reflect.get(t,n,r);return(Ft(n)?Gi.has(n):Ba(n))||(o||Je(t,"get",n),s)?l:je(l)?i&&$o(n)?l:l.value:we(l)?o?Vr(l):er(l):l}}class Yi extends Ji{constructor(t=!1){super(!1,t)}set(t,n,r,o){let s=t[n];if(!this._isShallow){const a=on(s);if(!bn(r)&&!on(r)&&(s=pe(s),r=pe(r)),!ne(t)&&je(s)&&!je(r))return a?!1:(s.value=r,!0)}const i=ne(t)&&$o(n)?Number(n)e,jr=e=>Reflect.getPrototypeOf(e);function ar(e,t,n=!1,r=!1){e=e.__v_raw;const o=pe(e),s=pe(t);n||($t(t,s)&&Je(o,"get",t),Je(o,"get",s));const{has:i}=jr(o),l=r?Bo:n?Uo:Bn;if(i.call(o,t))return l(e.get(t));if(i.call(o,s))return l(e.get(s));e!==o&&e.get(t)}function cr(e,t=!1){const n=this.__v_raw,r=pe(n),o=pe(e);return t||($t(e,o)&&Je(r,"has",e),Je(r,"has",o)),e===o?n.has(e):n.has(e)||n.has(o)}function ur(e,t=!1){return e=e.__v_raw,!t&&Je(pe(e),"iterate",en),Reflect.get(e,"size",e)}function Es(e,t=!1){!t&&!bn(e)&&!on(e)&&(e=pe(e));const n=pe(this);return jr(n).has.call(n,e)||(n.add(e),yt(n,"add",e,e)),this}function Cs(e,t,n=!1){!n&&!bn(t)&&!on(t)&&(t=pe(t));const r=pe(this),{has:o,get:s}=jr(r);let i=o.call(r,e);i||(e=pe(e),i=o.call(r,e));const l=s.call(r,e);return r.set(e,t),i?$t(t,l)&&yt(r,"set",e,t):yt(r,"add",e,t),this}function Ls(e){const t=pe(this),{has:n,get:r}=jr(t);let o=n.call(t,e);o||(e=pe(e),o=n.call(t,e)),r&&r.call(t,e);const s=t.delete(e);return o&&yt(t,"delete",e,void 0),s}function Ps(){const e=pe(this),t=e.size!==0,n=e.clear();return t&&yt(e,"clear",void 0,void 0),n}function fr(e,t){return function(r,o){const s=this,i=s.__v_raw,l=pe(i),a=t?Bo:e?Uo:Bn;return!e&&Je(l,"iterate",en),i.forEach((c,f)=>r.call(o,a(c),a(f),s))}}function dr(e,t,n){return function(...r){const o=this.__v_raw,s=pe(o),i=dn(s),l=e==="entries"||e===Symbol.iterator&&i,a=e==="keys"&&i,c=o[e](...r),f=n?Bo:t?Uo:Bn;return!t&&Je(s,"iterate",a?wo:en),{next(){const{value:u,done:p}=c.next();return p?{value:u,done:p}:{value:l?[f(u[0]),f(u[1])]:f(u),done:p}},[Symbol.iterator](){return this}}}}function kt(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Ja(){const e={get(s){return ar(this,s)},get size(){return ur(this)},has:cr,add:Es,set:Cs,delete:Ls,clear:Ps,forEach:fr(!1,!1)},t={get(s){return ar(this,s,!1,!0)},get size(){return ur(this)},has:cr,add(s){return Es.call(this,s,!0)},set(s,i){return Cs.call(this,s,i,!0)},delete:Ls,clear:Ps,forEach:fr(!1,!0)},n={get(s){return ar(this,s,!0)},get size(){return ur(this,!0)},has(s){return cr.call(this,s,!0)},add:kt("add"),set:kt("set"),delete:kt("delete"),clear:kt("clear"),forEach:fr(!0,!1)},r={get(s){return ar(this,s,!0,!0)},get size(){return ur(this,!0)},has(s){return cr.call(this,s,!0)},add:kt("add"),set:kt("set"),delete:kt("delete"),clear:kt("clear"),forEach:fr(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(s=>{e[s]=dr(s,!1,!1),n[s]=dr(s,!0,!1),t[s]=dr(s,!1,!0),r[s]=dr(s,!0,!0)}),[e,n,t,r]}const[Ya,Qa,Xa,Za]=Ja();function zo(e,t){const n=t?e?Za:Xa:e?Qa:Ya;return(r,o,s)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?r:Reflect.get(fe(n,o)&&o in r?n:r,o,s)}const ec={get:zo(!1,!1)},tc={get:zo(!1,!0)},nc={get:zo(!0,!1)};const Qi=new WeakMap,Xi=new WeakMap,Zi=new WeakMap,rc=new WeakMap;function oc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function sc(e){return e.__v_skip||!Object.isExtensible(e)?0:oc(Pa(e))}function er(e){return on(e)?e:Wo(e,!1,Ka,ec,Qi)}function el(e){return Wo(e,!1,Ga,tc,Xi)}function Vr(e){return Wo(e,!0,qa,nc,Zi)}function Wo(e,t,n,r,o){if(!we(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const s=o.get(e);if(s)return s;const i=sc(e);if(i===0)return e;const l=new Proxy(e,i===2?r:n);return o.set(e,l),l}function pn(e){return on(e)?pn(e.__v_raw):!!(e&&e.__v_isReactive)}function on(e){return!!(e&&e.__v_isReadonly)}function bn(e){return!!(e&&e.__v_isShallow)}function tl(e){return e?!!e.__v_raw:!1}function pe(e){const t=e&&e.__v_raw;return t?pe(t):e}function ic(e){return Object.isExtensible(e)&&Ni(e,"__v_skip",!0),e}const Bn=e=>we(e)?er(e):e,Uo=e=>we(e)?Vr(e):e;class nl{constructor(t,n,r,o){this.getter=t,this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new jo(()=>t(this._value),()=>Dn(this,this.effect._dirtyLevel===2?2:3)),this.effect.computed=this,this.effect.active=this._cacheable=!o,this.__v_isReadonly=r}get value(){const t=pe(this);return(!t._cacheable||t.effect.dirty)&&$t(t._value,t._value=t.effect.run())&&Dn(t,4),Ko(t),t.effect._dirtyLevel>=2&&Dn(t,2),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function lc(e,t,n=!1){let r,o;const s=se(e);return s?(r=e,o=ot):(r=e.get,o=e.set),new nl(r,o,s||!o,n)}function Ko(e){var t;Ht&&Zt&&(e=pe(e),Ui(Zt,(t=e.dep)!=null?t:e.dep=qi(()=>e.dep=void 0,e instanceof nl?e:void 0)))}function Dn(e,t=4,n,r){e=pe(e);const o=e.dep;o&&Ki(o,t)}function je(e){return!!(e&&e.__v_isRef===!0)}function he(e){return rl(e,!1)}function En(e){return rl(e,!0)}function rl(e,t){return je(e)?e:new ac(e,t)}class ac{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:pe(t),this._value=n?t:Bn(t)}get value(){return Ko(this),this._value}set value(t){const n=this.__v_isShallow||bn(t)||on(t);t=n?t:pe(t),$t(t,this._rawValue)&&(this._rawValue,this._rawValue=t,this._value=n?t:Bn(t),Dn(this,4))}}function tn(e){return je(e)?e.value:e}const cc={get:(e,t,n)=>tn(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const o=e[t];return je(o)&&!je(n)?(o.value=n,!0):Reflect.set(e,t,n,r)}};function ol(e){return pn(e)?e:new Proxy(e,cc)}class uc{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:r}=t(()=>Ko(this),()=>Dn(this));this._get=n,this._set=r}get value(){return this._get()}set value(t){this._set(t)}}function fc(e){return new uc(e)}function sl(e){const t=ne(e)?new Array(e.length):{};for(const n in e)t[n]=il(e,n);return t}class dc{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return Fa(pe(this._object),this._key)}}class hc{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function pc(e,t,n){return je(e)?e:se(e)?new hc(e):we(e)&&arguments.length>1?il(e,t,n):he(e)}function il(e,t,n){const r=e[t];return je(r)?r:new dc(e,t,n)}/** +* @vue/runtime-core v3.4.33 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Nt(e,t,n,r){try{return r?e(...r):e()}catch(o){tr(o,t,n)}}function st(e,t,n,r){if(se(e)){const o=Nt(e,t,n,r);return o&&Mi(o)&&o.catch(s=>{tr(s,t,n)}),o}if(ne(e)){const o=[];for(let s=0;s>>1,o=Fe[r],s=Wn(o);spt&&Fe.splice(t,1)}function _c(e){ne(e)?mn.push(...e):(!Rt||!Rt.includes(e,e.allowRecurse?Yt+1:Yt))&&mn.push(e),al()}function xs(e,t,n=zn?pt+1:0){for(;nWn(n)-Wn(r));if(mn.length=0,Rt){Rt.push(...t);return}for(Rt=t,Yt=0;Yte.id==null?1/0:e.id,bc=(e,t)=>{const n=Wn(e)-Wn(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function cl(e){So=!1,zn=!0,Fe.sort(bc);try{for(pt=0;pt{r._d&&Fs(-1);const s=kr(t);let i;try{i=e(...o)}finally{kr(s),r._d&&Fs(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function Ar(e,t){if(De===null)return e;const n=qr(De),r=e.dirs||(e.dirs=[]);for(let o=0;o{e.isMounted=!0}),Go(()=>{e.isUnmounting=!0}),e}const tt=[Function,Array],ul={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:tt,onEnter:tt,onAfterEnter:tt,onEnterCancelled:tt,onBeforeLeave:tt,onLeave:tt,onAfterLeave:tt,onLeaveCancelled:tt,onBeforeAppear:tt,onAppear:tt,onAfterAppear:tt,onAppearCancelled:tt},fl=e=>{const t=e.subTree;return t.component?fl(t.component):t},Ec={name:"BaseTransition",props:ul,setup(e,{slots:t}){const n=Kr(),r=Sc();return()=>{const o=t.default&&hl(t.default(),!0);if(!o||!o.length)return;let s=o[0];if(o.length>1){for(const p of o)if(p.type!==ze){s=p;break}}const i=pe(e),{mode:l}=i;if(r.isLeaving)return ro(s);const a=ks(s);if(!a)return ro(s);let c=Eo(a,i,r,n,p=>c=p);Tr(a,c);const f=n.subTree,u=f&&ks(f);if(u&&u.type!==ze&&!Qt(a,u)&&fl(n).type!==ze){const p=Eo(u,i,r,n);if(Tr(u,p),l==="out-in"&&a.type!==ze)return r.isLeaving=!0,p.afterLeave=()=>{r.isLeaving=!1,n.update.active!==!1&&(n.effect.dirty=!0,n.update())},ro(s);l==="in-out"&&a.type!==ze&&(p.delayLeave=(m,_,C)=>{const k=dl(r,u);k[String(u.key)]=u,m[Ot]=()=>{_(),m[Ot]=void 0,delete c.delayedLeave},c.delayedLeave=C})}return s}}},Cc=Ec;function dl(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Eo(e,t,n,r,o){const{appear:s,mode:i,persisted:l=!1,onBeforeEnter:a,onEnter:c,onAfterEnter:f,onEnterCancelled:u,onBeforeLeave:p,onLeave:m,onAfterLeave:_,onLeaveCancelled:C,onBeforeAppear:k,onAppear:I,onAfterAppear:w,onAppearCancelled:g}=t,S=String(e.key),$=dl(n,e),H=(U,L)=>{U&&st(U,r,9,L)},M=(U,L)=>{const F=L[1];H(U,L),ne(U)?U.every(y=>y.length<=1)&&F():U.length<=1&&F()},b={mode:i,persisted:l,beforeEnter(U){let L=a;if(!n.isMounted)if(s)L=k||a;else return;U[Ot]&&U[Ot](!0);const F=$[S];F&&Qt(e,F)&&F.el[Ot]&&F.el[Ot](),H(L,[U])},enter(U){let L=c,F=f,y=u;if(!n.isMounted)if(s)L=I||c,F=w||f,y=g||u;else return;let D=!1;const te=U[hr]=re=>{D||(D=!0,re?H(y,[U]):H(F,[U]),b.delayedLeave&&b.delayedLeave(),U[hr]=void 0)};L?M(L,[U,te]):te()},leave(U,L){const F=String(e.key);if(U[hr]&&U[hr](!0),n.isUnmounting)return L();H(p,[U]);let y=!1;const D=U[Ot]=te=>{y||(y=!0,L(),te?H(C,[U]):H(_,[U]),U[Ot]=void 0,$[F]===e&&delete $[F])};$[F]=e,m?M(m,[U,D]):D()},clone(U){const L=Eo(U,t,n,r,o);return o&&o(L),L}};return b}function ro(e){if(nr(e))return e=jt(e),e.children=null,e}function ks(e){if(!nr(e))return e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&se(n.default))return n.default()}}function Tr(e,t){e.shapeFlag&6&&e.component?Tr(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function hl(e,t=!1,n){let r=[],o=0;for(let s=0;s1)for(let s=0;s!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function Lc(e){se(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:o=200,timeout:s,suspensible:i=!0,onError:l}=e;let a=null,c,f=0;const u=()=>(f++,a=null,p()),p=()=>{let m;return a||(m=a=t().catch(_=>{if(_=_ instanceof Error?_:new Error(String(_)),l)return new Promise((C,k)=>{l(_,()=>C(u()),()=>k(_),f+1)});throw _}).then(_=>m!==a&&a?a:(_&&(_.__esModule||_[Symbol.toStringTag]==="Module")&&(_=_.default),c=_,_)))};return ge({name:"AsyncComponentWrapper",__asyncLoader:p,get __asyncResolved(){return c},setup(){const m=Me;if(c)return()=>oo(c,m);const _=w=>{a=null,tr(w,m,13,!r)};if(i&&m.suspense||or)return p().then(w=>()=>oo(w,m)).catch(w=>(_(w),()=>r?oe(r,{error:w}):null));const C=he(!1),k=he(),I=he(!!o);return o&&setTimeout(()=>{I.value=!1},o),s!=null&&setTimeout(()=>{if(!C.value&&!k.value){const w=new Error(`Async component timed out after ${s}ms.`);_(w),k.value=w}},s),p().then(()=>{C.value=!0,m.parent&&nr(m.parent.vnode)&&(m.parent.effect.dirty=!0,Fr(m.parent.update))}).catch(w=>{_(w),k.value=w}),()=>{if(C.value&&c)return oo(c,m);if(k.value&&r)return oe(r,{error:k.value});if(n&&!I.value)return oe(n)}}})}function oo(e,t){const{ref:n,props:r,children:o,ce:s}=t.vnode,i=oe(e,r,o);return i.ref=n,i.ce=s,delete t.vnode.ce,i}const nr=e=>e.type.__isKeepAlive;function Pc(e,t){pl(e,"a",t)}function xc(e,t){pl(e,"da",t)}function pl(e,t,n=Me){const r=e.__wdc||(e.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(zr(t,r,n),n){let o=n.parent;for(;o&&o.parent;)nr(o.parent.vnode)&&kc(r,t,n,o),o=o.parent}}function kc(e,t,n,r){const o=zr(t,e,r,!0);Wr(()=>{No(r[t],o)},n)}function zr(e,t,n=Me,r=!1){if(n){const o=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...i)=>{zt();const l=rr(n),a=st(t,n,e,i);return l(),Wt(),a});return r?o.unshift(s):o.push(s),s}}const Et=e=>(t,n=Me)=>{(!or||e==="sp")&&zr(e,(...r)=>t(...r),n)},Ac=Et("bm"),Ye=Et("m"),Tc=Et("bu"),Rc=Et("u"),Go=Et("bum"),Wr=Et("um"),Oc=Et("sp"),Ic=Et("rtg"),Mc=Et("rtc");function Dc(e,t=Me){zr("ec",e,t)}const Hc="components";function Jo(e,t){return $c(Hc,e,!0,t)||e}const Nc=Symbol.for("v-ndc");function $c(e,t,n=!0,r=!1){const o=De||Me;if(o){const s=o.type;{const l=Tu(s,!1);if(l&&(l===t||l===et(t)||l===Xn(et(t))))return s}const i=As(o[e]||s[e],t)||As(o.appContext[e],t);return!i&&r?s:i}}function As(e,t){return e&&(e[t]||e[et(t)]||e[Xn(et(t))])}function wt(e,t,n,r){let o;const s=n;if(ne(e)||Ae(e)){o=new Array(e.length);for(let i=0,l=e.length;it(i,l,void 0,s));else{const i=Object.keys(e);o=new Array(i.length);for(let l=0,a=i.length;lIr(t)?!(t.type===ze||t.type===ye&&!ml(t.children)):!0)?e:null}const Co=e=>e?Dl(e)?qr(e):Co(e.parent):null,Hn=He(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Co(e.parent),$root:e=>Co(e.root),$emit:e=>e.emit,$options:e=>Yo(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,Fr(e.update)}),$nextTick:e=>e.n||(e.n=Cn.bind(e.proxy)),$watch:e=>uu.bind(e)}),so=(e,t)=>e!==Ce&&!e.__isScriptSetup&&fe(e,t),jc={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:o,props:s,accessCache:i,type:l,appContext:a}=e;let c;if(t[0]!=="$"){const m=i[t];if(m!==void 0)switch(m){case 1:return r[t];case 2:return o[t];case 4:return n[t];case 3:return s[t]}else{if(so(r,t))return i[t]=1,r[t];if(o!==Ce&&fe(o,t))return i[t]=2,o[t];if((c=e.propsOptions[0])&&fe(c,t))return i[t]=3,s[t];if(n!==Ce&&fe(n,t))return i[t]=4,n[t];Lo&&(i[t]=0)}}const f=Hn[t];let u,p;if(f)return t==="$attrs"&&Je(e.attrs,"get",""),f(e);if((u=l.__cssModules)&&(u=u[t]))return u;if(n!==Ce&&fe(n,t))return i[t]=4,n[t];if(p=a.config.globalProperties,fe(p,t))return p[t]},set({_:e},t,n){const{data:r,setupState:o,ctx:s}=e;return so(o,t)?(o[t]=n,!0):r!==Ce&&fe(r,t)?(r[t]=n,!0):fe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:o,propsOptions:s}},i){let l;return!!n[i]||e!==Ce&&fe(e,i)||so(t,i)||(l=s[0])&&fe(l,i)||fe(r,i)||fe(Hn,i)||fe(o.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:fe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Ts(e){return ne(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Lo=!0;function Vc(e){const t=Yo(e),n=e.proxy,r=e.ctx;Lo=!1,t.beforeCreate&&Rs(t.beforeCreate,e,"bc");const{data:o,computed:s,methods:i,watch:l,provide:a,inject:c,created:f,beforeMount:u,mounted:p,beforeUpdate:m,updated:_,activated:C,deactivated:k,beforeDestroy:I,beforeUnmount:w,destroyed:g,unmounted:S,render:$,renderTracked:H,renderTriggered:M,errorCaptured:b,serverPrefetch:U,expose:L,inheritAttrs:F,components:y,directives:D,filters:te}=t;if(c&&Fc(c,r,null),i)for(const Q in i){const K=i[Q];se(K)&&(r[Q]=K.bind(n))}if(o){const Q=o.call(n,n);we(Q)&&(e.data=er(Q))}if(Lo=!0,s)for(const Q in s){const K=s[Q],Oe=se(K)?K.bind(n,n):se(K.get)?K.get.bind(n,n):ot,Ne=!se(K)&&se(K.set)?K.set.bind(n):ot,Ue=O({get:Oe,set:Ne});Object.defineProperty(r,Q,{enumerable:!0,configurable:!0,get:()=>Ue.value,set:Ve=>Ue.value=Ve})}if(l)for(const Q in l)gl(l[Q],r,n,Q);if(a){const Q=se(a)?a.call(n):a;Reflect.ownKeys(Q).forEach(K=>{nn(K,Q[K])})}f&&Rs(f,e,"c");function R(Q,K){ne(K)?K.forEach(Oe=>Q(Oe.bind(n))):K&&Q(K.bind(n))}if(R(Ac,u),R(Ye,p),R(Tc,m),R(Rc,_),R(Pc,C),R(xc,k),R(Dc,b),R(Mc,H),R(Ic,M),R(Go,w),R(Wr,S),R(Oc,U),ne(L))if(L.length){const Q=e.exposed||(e.exposed={});L.forEach(K=>{Object.defineProperty(Q,K,{get:()=>n[K],set:Oe=>n[K]=Oe})})}else e.exposed||(e.exposed={});$&&e.render===ot&&(e.render=$),F!=null&&(e.inheritAttrs=F),y&&(e.components=y),D&&(e.directives=D)}function Fc(e,t,n=ot){ne(e)&&(e=Po(e));for(const r in e){const o=e[r];let s;we(o)?"default"in o?s=We(o.from||r,o.default,!0):s=We(o.from||r):s=We(o),je(s)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>s.value,set:i=>s.value=i}):t[r]=s}}function Rs(e,t,n){st(ne(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function gl(e,t,n,r){const o=r.includes(".")?Tl(n,r):()=>n[r];if(Ae(e)){const s=t[e];se(s)&&$e(o,s)}else if(se(e))$e(o,e.bind(n));else if(we(e))if(ne(e))e.forEach(s=>gl(s,t,n,r));else{const s=se(e.handler)?e.handler.bind(n):t[e.handler];se(s)&&$e(o,s,e)}}function Yo(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:o,optionsCache:s,config:{optionMergeStrategies:i}}=e.appContext,l=s.get(t);let a;return l?a=l:!o.length&&!n&&!r?a=t:(a={},o.length&&o.forEach(c=>Rr(a,c,i,!0)),Rr(a,t,i)),we(t)&&s.set(t,a),a}function Rr(e,t,n,r=!1){const{mixins:o,extends:s}=t;s&&Rr(e,s,n,!0),o&&o.forEach(i=>Rr(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Bc[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Bc={data:Os,props:Is,emits:Is,methods:In,computed:In,beforeCreate:Be,created:Be,beforeMount:Be,mounted:Be,beforeUpdate:Be,updated:Be,beforeDestroy:Be,beforeUnmount:Be,destroyed:Be,unmounted:Be,activated:Be,deactivated:Be,errorCaptured:Be,serverPrefetch:Be,components:In,directives:In,watch:Wc,provide:Os,inject:zc};function Os(e,t){return t?e?function(){return He(se(e)?e.call(this,this):e,se(t)?t.call(this,this):t)}:t:e}function zc(e,t){return In(Po(e),Po(t))}function Po(e){if(ne(e)){const t={};for(let n=0;n1)return n&&se(t)?t.call(r&&r.proxy):t}}const _l={},bl=()=>Object.create(_l),yl=e=>Object.getPrototypeOf(e)===_l;function qc(e,t,n,r=!1){const o={},s=bl();e.propsDefaults=Object.create(null),wl(e,t,o,s);for(const i in e.propsOptions[0])i in o||(o[i]=void 0);n?e.props=r?o:el(o):e.type.props?e.props=o:e.props=s,e.attrs=s}function Gc(e,t,n,r){const{props:o,attrs:s,vnode:{patchFlag:i}}=e,l=pe(o),[a]=e.propsOptions;let c=!1;if((r||i>0)&&!(i&16)){if(i&8){const f=e.vnode.dynamicProps;for(let u=0;u{a=!0;const[p,m]=Sl(u,t,!0);He(i,p),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!s&&!a)return we(e)&&r.set(e,fn),fn;if(ne(s))for(let f=0;f-1,m[1]=C<0||_-1||fe(m,"default"))&&l.push(u)}}}const c=[i,l];return we(e)&&r.set(e,c),c}function Ms(e){return e[0]!=="$"&&!hn(e)}function Ds(e){return e===null?"null":typeof e=="function"?e.name||"":typeof e=="object"&&e.constructor&&e.constructor.name||""}function Hs(e,t){return Ds(e)===Ds(t)}function Ns(e,t){return ne(t)?t.findIndex(n=>Hs(n,e)):se(t)&&Hs(t,e)?0:-1}const El=e=>e[0]==="_"||e==="$stable",Qo=e=>ne(e)?e.map(rt):[rt(e)],Yc=(e,t,n)=>{if(t._n)return t;const r=ke((...o)=>Qo(t(...o)),n);return r._c=!1,r},Cl=(e,t,n)=>{const r=e._ctx;for(const o in e){if(El(o))continue;const s=e[o];if(se(s))t[o]=Yc(o,s,r);else if(s!=null){const i=Qo(s);t[o]=()=>i}}},Ll=(e,t)=>{const n=Qo(t);e.slots.default=()=>n},Pl=(e,t,n)=>{for(const r in t)(n||r!=="_")&&(e[r]=t[r])},Qc=(e,t,n)=>{const r=e.slots=bl();if(e.vnode.shapeFlag&32){const o=t._;o?(Pl(r,t,n),n&&Ni(r,"_",o,!0)):Cl(t,r)}else t&&Ll(e,t)},Xc=(e,t,n)=>{const{vnode:r,slots:o}=e;let s=!0,i=Ce;if(r.shapeFlag&32){const l=t._;l?n&&l===1?s=!1:Pl(o,t,n):(s=!t.$stable,Cl(t,o)),i=t}else t&&(Ll(e,t),i={default:1});if(s)for(const l in o)!El(l)&&i[l]==null&&delete o[l]};function Or(e,t,n,r,o=!1){if(ne(e)){e.forEach((p,m)=>Or(p,t&&(ne(t)?t[m]:t),n,r,o));return}if(gn(r)&&!o)return;const s=r.shapeFlag&4?qr(r.component):r.el,i=o?null:s,{i:l,r:a}=e,c=t&&t.r,f=l.refs===Ce?l.refs={}:l.refs,u=l.setupState;if(c!=null&&c!==a&&(Ae(c)?(f[c]=null,fe(u,c)&&(u[c]=null)):je(c)&&(c.value=null)),se(a))Nt(a,l,12,[i,f]);else{const p=Ae(a),m=je(a);if(p||m){const _=()=>{if(e.f){const C=p?fe(u,a)?u[a]:f[a]:a.value;o?ne(C)&&No(C,s):ne(C)?C.includes(s)||C.push(s):p?(f[a]=[s],fe(u,a)&&(u[a]=f[a])):(a.value=[s],e.k&&(f[e.k]=a.value))}else p?(f[a]=i,fe(u,a)&&(u[a]=i)):m&&(a.value=i,e.k&&(f[e.k]=i))};i?(_.id=-1,qe(_,n)):_()}}}const Zc=Symbol("_vte"),eu=e=>e.__isTeleport;let $s=!1;const an=()=>{$s||(console.error("Hydration completed but contains mismatches."),$s=!0)},tu=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",nu=e=>e.namespaceURI.includes("MathML"),pr=e=>{if(tu(e))return"svg";if(nu(e))return"mathml"},mr=e=>e.nodeType===8;function ru(e){const{mt:t,p:n,o:{patchProp:r,createText:o,nextSibling:s,parentNode:i,remove:l,insert:a,createComment:c}}=e,f=(g,S)=>{if(!S.hasChildNodes()){n(null,g,S),xr(),S._vnode=g;return}u(S.firstChild,g,null,null,null),xr(),S._vnode=g},u=(g,S,$,H,M,b=!1)=>{b=b||!!S.dynamicChildren;const U=mr(g)&&g.data==="[",L=()=>C(g,S,$,H,M,U),{type:F,ref:y,shapeFlag:D,patchFlag:te}=S;let re=g.nodeType;S.el=g,te===-2&&(b=!1,S.dynamicChildren=null);let R=null;switch(F){case rn:re!==3?S.children===""?(a(S.el=o(""),i(g),g),R=g):R=L():(g.data!==S.children&&(an(),g.data=S.children),R=s(g));break;case ze:w(g)?(R=s(g),I(S.el=g.content.firstChild,g,$)):re!==8||U?R=L():R=s(g);break;case $n:if(U&&(g=s(g),re=g.nodeType),re===1||re===3){R=g;const Q=!S.children.length;for(let K=0;K{b=b||!!S.dynamicChildren;const{type:U,props:L,patchFlag:F,shapeFlag:y,dirs:D,transition:te}=S,re=U==="input"||U==="option";if(re||F!==-1){D&&ht(S,null,$,"created");let R=!1;if(w(g)){R=xl(H,te)&&$&&$.vnode.props&&$.vnode.props.appear;const K=g.content.firstChild;R&&te.beforeEnter(K),I(K,g,$),S.el=g=K}if(y&16&&!(L&&(L.innerHTML||L.textContent))){let K=m(g.firstChild,S,g,$,H,M,b);for(;K;){an();const Oe=K;K=K.nextSibling,l(Oe)}}else y&8&&g.textContent!==S.children&&(an(),g.textContent=S.children);if(L){if(re||!b||F&48)for(const K in L)(re&&(K.endsWith("value")||K==="indeterminate")||Qn(K)&&!hn(K)||K[0]===".")&&r(g,K,null,L[K],void 0,$);else if(L.onClick)r(g,"onClick",null,L.onClick,void 0,$);else if(F&4&&pn(L.style))for(const K in L.style)L.style[K]}let Q;(Q=L&&L.onVnodeBeforeMount)&&nt(Q,$,S),D&&ht(S,null,$,"beforeMount"),((Q=L&&L.onVnodeMounted)||D||R)&&Ol(()=>{Q&&nt(Q,$,S),R&&te.enter(g),D&&ht(S,null,$,"mounted")},H)}return g.nextSibling},m=(g,S,$,H,M,b,U)=>{U=U||!!S.dynamicChildren;const L=S.children,F=L.length;for(let y=0;y{const{slotScopeIds:U}=S;U&&(M=M?M.concat(U):U);const L=i(g),F=m(s(g),S,L,$,H,M,b);return F&&mr(F)&&F.data==="]"?s(S.anchor=F):(an(),a(S.anchor=c("]"),L,F),F)},C=(g,S,$,H,M,b)=>{if(an(),S.el=null,b){const F=k(g);for(;;){const y=s(g);if(y&&y!==F)l(y);else break}}const U=s(g),L=i(g);return l(g),n(null,S,L,U,$,H,pr(L),M),U},k=(g,S="[",$="]")=>{let H=0;for(;g;)if(g=s(g),g&&mr(g)&&(g.data===S&&H++,g.data===$)){if(H===0)return s(g);H--}return g},I=(g,S,$)=>{const H=S.parentNode;H&&H.replaceChild(g,S);let M=$;for(;M;)M.vnode.el===S&&(M.vnode.el=M.subTree.el=g),M=M.parent},w=g=>g.nodeType===1&&g.tagName.toLowerCase()==="template";return[f,u]}const qe=Ol;function ou(e){return su(e,ru)}function su(e,t){const n=$i();n.__VUE__=!0;const{insert:r,remove:o,patchProp:s,createElement:i,createText:l,createComment:a,setText:c,setElementText:f,parentNode:u,nextSibling:p,setScopeId:m=ot,insertStaticContent:_}=e,C=(d,h,v,x=null,E=null,T=null,z=void 0,j=null,V=!!h.dynamicChildren)=>{if(d===h)return;d&&!Qt(d,h)&&(x=P(d),Ve(d,E,T,!0),d=null),h.patchFlag===-2&&(V=!1,h.dynamicChildren=null);const{type:A,ref:G,shapeFlag:Z}=h;switch(A){case rn:k(d,h,v,x);break;case ze:I(d,h,v,x);break;case $n:d==null&&w(h,v,x,z);break;case ye:y(d,h,v,x,E,T,z,j,V);break;default:Z&1?$(d,h,v,x,E,T,z,j,V):Z&6?D(d,h,v,x,E,T,z,j,V):(Z&64||Z&128)&&A.process(d,h,v,x,E,T,z,j,V,Y)}G!=null&&E&&Or(G,d&&d.ref,T,h||d,!h)},k=(d,h,v,x)=>{if(d==null)r(h.el=l(h.children),v,x);else{const E=h.el=d.el;h.children!==d.children&&c(E,h.children)}},I=(d,h,v,x)=>{d==null?r(h.el=a(h.children||""),v,x):h.el=d.el},w=(d,h,v,x)=>{[d.el,d.anchor]=_(d.children,h,v,x,d.el,d.anchor)},g=({el:d,anchor:h},v,x)=>{let E;for(;d&&d!==h;)E=p(d),r(d,v,x),d=E;r(h,v,x)},S=({el:d,anchor:h})=>{let v;for(;d&&d!==h;)v=p(d),o(d),d=v;o(h)},$=(d,h,v,x,E,T,z,j,V)=>{h.type==="svg"?z="svg":h.type==="math"&&(z="mathml"),d==null?H(h,v,x,E,T,z,j,V):U(d,h,E,T,z,j,V)},H=(d,h,v,x,E,T,z,j)=>{let V,A;const{props:G,shapeFlag:Z,transition:X,dirs:ie}=d;if(V=d.el=i(d.type,T,G&&G.is,G),Z&8?f(V,d.children):Z&16&&b(d.children,V,null,x,E,io(d,T),z,j),ie&&ht(d,null,x,"created"),M(V,d,d.scopeId,z,x),G){for(const Ee in G)Ee!=="value"&&!hn(Ee)&&s(V,Ee,null,G[Ee],T,x);"value"in G&&s(V,"value",null,G.value,T),(A=G.onVnodeBeforeMount)&&nt(A,x,d)}ie&&ht(d,null,x,"beforeMount");const le=xl(E,X);le&&X.beforeEnter(V),r(V,h,v),((A=G&&G.onVnodeMounted)||le||ie)&&qe(()=>{A&&nt(A,x,d),le&&X.enter(V),ie&&ht(d,null,x,"mounted")},E)},M=(d,h,v,x,E)=>{if(v&&m(d,v),x)for(let T=0;T{for(let A=V;A{const j=h.el=d.el;let{patchFlag:V,dynamicChildren:A,dirs:G}=h;V|=d.patchFlag&16;const Z=d.props||Ce,X=h.props||Ce;let ie;if(v&&Ut(v,!1),(ie=X.onVnodeBeforeUpdate)&&nt(ie,v,h,d),G&&ht(h,d,v,"beforeUpdate"),v&&Ut(v,!0),(Z.innerHTML&&X.innerHTML==null||Z.textContent&&X.textContent==null)&&f(j,""),A?L(d.dynamicChildren,A,j,v,x,io(h,E),T):z||K(d,h,j,null,v,x,io(h,E),T,!1),V>0){if(V&16)F(j,Z,X,v,E);else if(V&2&&Z.class!==X.class&&s(j,"class",null,X.class,E),V&4&&s(j,"style",Z.style,X.style,E),V&8){const le=h.dynamicProps;for(let Ee=0;Ee{ie&&nt(ie,v,h,d),G&&ht(h,d,v,"updated")},x)},L=(d,h,v,x,E,T,z)=>{for(let j=0;j{if(h!==v){if(h!==Ce)for(const T in h)!hn(T)&&!(T in v)&&s(d,T,h[T],null,E,x);for(const T in v){if(hn(T))continue;const z=v[T],j=h[T];z!==j&&T!=="value"&&s(d,T,j,z,E,x)}"value"in v&&s(d,"value",h.value,v.value,E)}},y=(d,h,v,x,E,T,z,j,V)=>{const A=h.el=d?d.el:l(""),G=h.anchor=d?d.anchor:l("");let{patchFlag:Z,dynamicChildren:X,slotScopeIds:ie}=h;ie&&(j=j?j.concat(ie):ie),d==null?(r(A,v,x),r(G,v,x),b(h.children||[],v,G,E,T,z,j,V)):Z>0&&Z&64&&X&&d.dynamicChildren?(L(d.dynamicChildren,X,v,E,T,z,j),(h.key!=null||E&&h===E.subTree)&&kl(d,h,!0)):K(d,h,v,G,E,T,z,j,V)},D=(d,h,v,x,E,T,z,j,V)=>{h.slotScopeIds=j,d==null?h.shapeFlag&512?E.ctx.activate(h,v,x,z,V):te(h,v,x,E,T,z,V):re(d,h,V)},te=(d,h,v,x,E,T,z)=>{const j=d.component=Lu(d,x,E);if(nr(d)&&(j.ctx.renderer=Y),Pu(j,!1,z),j.asyncDep){if(E&&E.registerDep(j,R,z),!d.el){const V=j.subTree=oe(ze);I(null,V,h,v)}}else R(j,d,h,v,E,T,z)},re=(d,h,v)=>{const x=h.component=d.component;if(mu(d,h,v))if(x.asyncDep&&!x.asyncResolved){Q(x,h,v);return}else x.next=h,vc(x.update),x.effect.dirty=!0,x.update();else h.el=d.el,x.vnode=h},R=(d,h,v,x,E,T,z)=>{const j=()=>{if(d.isMounted){let{next:G,bu:Z,u:X,parent:ie,vnode:le}=d;{const ln=Al(d);if(ln){G&&(G.el=le.el,Q(d,G,z)),ln.asyncDep.then(()=>{d.isUnmounted||j()});return}}let Ee=G,ve;Ut(d,!1),G?(G.el=le.el,Q(d,G,z)):G=le,Z&&to(Z),(ve=G.props&&G.props.onVnodeBeforeUpdate)&&nt(ve,ie,G,le),Ut(d,!0);const Ie=lo(d),it=d.subTree;d.subTree=Ie,C(it,Ie,u(it.el),P(it),d,E,T),G.el=Ie.el,Ee===null&&gu(d,Ie.el),X&&qe(X,E),(ve=G.props&&G.props.onVnodeUpdated)&&qe(()=>nt(ve,ie,G,le),E)}else{let G;const{el:Z,props:X}=h,{bm:ie,m:le,parent:Ee}=d,ve=gn(h);if(Ut(d,!1),ie&&to(ie),!ve&&(G=X&&X.onVnodeBeforeMount)&&nt(G,Ee,h),Ut(d,!0),Z&&be){const Ie=()=>{d.subTree=lo(d),be(Z,d.subTree,d,E,null)};ve?h.type.__asyncLoader().then(()=>!d.isUnmounted&&Ie()):Ie()}else{const Ie=d.subTree=lo(d);C(null,Ie,v,x,d,E,T),h.el=Ie.el}if(le&&qe(le,E),!ve&&(G=X&&X.onVnodeMounted)){const Ie=h;qe(()=>nt(G,Ee,Ie),E)}(h.shapeFlag&256||Ee&&gn(Ee.vnode)&&Ee.vnode.shapeFlag&256)&&d.a&&qe(d.a,E),d.isMounted=!0,h=v=x=null}},V=d.effect=new jo(j,ot,()=>Fr(A),d.scope),A=d.update=()=>{V.dirty&&V.run()};A.i=d,A.id=d.uid,Ut(d,!0),A()},Q=(d,h,v)=>{h.component=d;const x=d.vnode.props;d.vnode=h,d.next=null,Gc(d,h.props,x,v),Xc(d,h.children,v),zt(),xs(d),Wt()},K=(d,h,v,x,E,T,z,j,V=!1)=>{const A=d&&d.children,G=d?d.shapeFlag:0,Z=h.children,{patchFlag:X,shapeFlag:ie}=h;if(X>0){if(X&128){Ne(A,Z,v,x,E,T,z,j,V);return}else if(X&256){Oe(A,Z,v,x,E,T,z,j,V);return}}ie&8?(G&16&&Ke(A,E,T),Z!==A&&f(v,Z)):G&16?ie&16?Ne(A,Z,v,x,E,T,z,j,V):Ke(A,E,T,!0):(G&8&&f(v,""),ie&16&&b(Z,v,x,E,T,z,j,V))},Oe=(d,h,v,x,E,T,z,j,V)=>{d=d||fn,h=h||fn;const A=d.length,G=h.length,Z=Math.min(A,G);let X;for(X=0;XG?Ke(d,E,T,!0,!1,Z):b(h,v,x,E,T,z,j,V,Z)},Ne=(d,h,v,x,E,T,z,j,V)=>{let A=0;const G=h.length;let Z=d.length-1,X=G-1;for(;A<=Z&&A<=X;){const ie=d[A],le=h[A]=V?It(h[A]):rt(h[A]);if(Qt(ie,le))C(ie,le,v,null,E,T,z,j,V);else break;A++}for(;A<=Z&&A<=X;){const ie=d[Z],le=h[X]=V?It(h[X]):rt(h[X]);if(Qt(ie,le))C(ie,le,v,null,E,T,z,j,V);else break;Z--,X--}if(A>Z){if(A<=X){const ie=X+1,le=ieX)for(;A<=Z;)Ve(d[A],E,T,!0),A++;else{const ie=A,le=A,Ee=new Map;for(A=le;A<=X;A++){const Qe=h[A]=V?It(h[A]):rt(h[A]);Qe.key!=null&&Ee.set(Qe.key,A)}let ve,Ie=0;const it=X-le+1;let ln=!1,gs=0;const xn=new Array(it);for(A=0;A=it){Ve(Qe,E,T,!0);continue}let dt;if(Qe.key!=null)dt=Ee.get(Qe.key);else for(ve=le;ve<=X;ve++)if(xn[ve-le]===0&&Qt(Qe,h[ve])){dt=ve;break}dt===void 0?Ve(Qe,E,T,!0):(xn[dt-le]=A+1,dt>=gs?gs=dt:ln=!0,C(Qe,h[dt],v,null,E,T,z,j,V),Ie++)}const vs=ln?iu(xn):fn;for(ve=vs.length-1,A=it-1;A>=0;A--){const Qe=le+A,dt=h[Qe],_s=Qe+1{const{el:T,type:z,transition:j,children:V,shapeFlag:A}=d;if(A&6){Ue(d.component.subTree,h,v,x);return}if(A&128){d.suspense.move(h,v,x);return}if(A&64){z.move(d,h,v,Y);return}if(z===ye){r(T,h,v);for(let Z=0;Zj.enter(T),E);else{const{leave:Z,delayLeave:X,afterLeave:ie}=j,le=()=>r(T,h,v),Ee=()=>{Z(T,()=>{le(),ie&&ie()})};X?X(T,le,Ee):Ee()}else r(T,h,v)},Ve=(d,h,v,x=!1,E=!1)=>{const{type:T,props:z,ref:j,children:V,dynamicChildren:A,shapeFlag:G,patchFlag:Z,dirs:X,cacheIndex:ie}=d;if(Z===-2&&(E=!1),j!=null&&Or(j,null,v,d,!0),ie!=null&&(h.renderCache[ie]=void 0),G&256){h.ctx.deactivate(d);return}const le=G&1&&X,Ee=!gn(d);let ve;if(Ee&&(ve=z&&z.onVnodeBeforeUnmount)&&nt(ve,h,d),G&6)ft(d.component,v,x);else{if(G&128){d.suspense.unmount(v,x);return}le&&ht(d,null,h,"beforeUnmount"),G&64?d.type.remove(d,h,v,Y,x):A&&!A.hasOnce&&(T!==ye||Z>0&&Z&64)?Ke(A,h,v,!1,!0):(T===ye&&Z&384||!E&&G&16)&&Ke(V,h,v),x&&Pt(d)}(Ee&&(ve=z&&z.onVnodeUnmounted)||le)&&qe(()=>{ve&&nt(ve,h,d),le&&ht(d,null,h,"unmounted")},v)},Pt=d=>{const{type:h,el:v,anchor:x,transition:E}=d;if(h===ye){xt(v,x);return}if(h===$n){S(d);return}const T=()=>{o(v),E&&!E.persisted&&E.afterLeave&&E.afterLeave()};if(d.shapeFlag&1&&E&&!E.persisted){const{leave:z,delayLeave:j}=E,V=()=>z(v,T);j?j(d.el,T,V):V()}else T()},xt=(d,h)=>{let v;for(;d!==h;)v=p(d),o(d),d=v;o(h)},ft=(d,h,v)=>{const{bum:x,scope:E,update:T,subTree:z,um:j,m:V,a:A}=d;js(V),js(A),x&&to(x),E.stop(),T&&(T.active=!1,Ve(z,d,h,v)),j&&qe(j,h),qe(()=>{d.isUnmounted=!0},h),h&&h.pendingBranch&&!h.isUnmounted&&d.asyncDep&&!d.asyncResolved&&d.suspenseId===h.pendingId&&(h.deps--,h.deps===0&&h.resolve())},Ke=(d,h,v,x=!1,E=!1,T=0)=>{for(let z=T;z{if(d.shapeFlag&6)return P(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const h=p(d.anchor||d.el),v=h&&h[Zc];return v?p(v):h};let q=!1;const B=(d,h,v)=>{d==null?h._vnode&&Ve(h._vnode,null,null,!0):C(h._vnode||null,d,h,null,null,null,v),q||(q=!0,xs(),xr(),q=!1),h._vnode=d},Y={p:C,um:Ve,m:Ue,r:Pt,mt:te,mc:b,pc:K,pbc:L,n:P,o:e};let ce,be;return t&&([ce,be]=t(Y)),{render:B,hydrate:ce,createApp:Kc(B,ce)}}function io({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Ut({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function xl(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function kl(e,t,n=!1){const r=e.children,o=t.children;if(ne(r)&&ne(o))for(let s=0;s>1,e[n[l]]0&&(t[r]=n[s-1]),n[s]=r)}}for(s=n.length,i=n[s-1];s-- >0;)n[s]=i,i=t[i];return n}function Al(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Al(t)}function js(e){if(e)for(let t=0;tWe(lu);function cu(e,t){return Xo(e,null,t)}const gr={};function $e(e,t,n){return Xo(e,t,n)}function Xo(e,t,{immediate:n,deep:r,flush:o,once:s,onTrack:i,onTrigger:l}=Ce){if(t&&s){const H=t;t=(...M)=>{H(...M),$()}}const a=Me,c=H=>r===!0?H:Dt(H,r===!1?1:void 0);let f,u=!1,p=!1;if(je(e)?(f=()=>e.value,u=bn(e)):pn(e)?(f=()=>c(e),u=!0):ne(e)?(p=!0,u=e.some(H=>pn(H)||bn(H)),f=()=>e.map(H=>{if(je(H))return H.value;if(pn(H))return c(H);if(se(H))return Nt(H,a,2)})):se(e)?t?f=()=>Nt(e,a,2):f=()=>(m&&m(),st(e,a,3,[_])):f=ot,t&&r){const H=f;f=()=>Dt(H())}let m,_=H=>{m=g.onStop=()=>{Nt(H,a,4),m=g.onStop=void 0}},C;if(or)if(_=ot,t?n&&st(t,a,3,[f(),p?[]:void 0,_]):f(),o==="sync"){const H=au();C=H.__watcherHandles||(H.__watcherHandles=[])}else return ot;let k=p?new Array(e.length).fill(gr):gr;const I=()=>{if(!(!g.active||!g.dirty))if(t){const H=g.run();(r||u||(p?H.some((M,b)=>$t(M,k[b])):$t(H,k)))&&(m&&m(),st(t,a,3,[H,k===gr?void 0:p&&k[0]===gr?[]:k,_]),k=H)}else g.run()};I.allowRecurse=!!t;let w;o==="sync"?w=I:o==="post"?w=()=>qe(I,a&&a.suspense):(I.pre=!0,a&&(I.id=a.uid),w=()=>Fr(I));const g=new jo(f,ot,w),S=Bi(),$=()=>{g.stop(),S&&No(S.effects,g)};return t?n?I():k=g.run():o==="post"?qe(g.run.bind(g),a&&a.suspense):g.run(),C&&C.push($),$}function uu(e,t,n){const r=this.proxy,o=Ae(e)?e.includes(".")?Tl(r,e):()=>r[e]:e.bind(r,r);let s;se(t)?s=t:(s=t.handler,n=t);const i=rr(this),l=Xo(o,s.bind(r),n);return i(),l}function Tl(e,t){const n=t.split(".");return()=>{let r=e;for(let o=0;o{Dt(r,t,n)});else if(Hi(e)){for(const r in e)Dt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Dt(e[r],t,n)}return e}const fu=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${et(t)}Modifiers`]||e[`${Bt(t)}Modifiers`];function du(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||Ce;let o=n;const s=t.startsWith("update:"),i=s&&fu(r,t.slice(7));i&&(i.trim&&(o=n.map(f=>Ae(f)?f.trim():f)),i.number&&(o=n.map(Aa)));let l,a=r[l=eo(t)]||r[l=eo(et(t))];!a&&s&&(a=r[l=eo(Bt(t))]),a&&st(a,e,6,o);const c=r[l+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,st(c,e,6,o)}}function Rl(e,t,n=!1){const r=t.emitsCache,o=r.get(e);if(o!==void 0)return o;const s=e.emits;let i={},l=!1;if(!se(e)){const a=c=>{const f=Rl(c,t,!0);f&&(l=!0,He(i,f))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!s&&!l?(we(e)&&r.set(e,null),null):(ne(s)?s.forEach(a=>i[a]=null):He(i,s),we(e)&&r.set(e,i),i)}function Ur(e,t){return!e||!Qn(t)?!1:(t=t.slice(2).replace(/Once$/,""),fe(e,t[0].toLowerCase()+t.slice(1))||fe(e,Bt(t))||fe(e,t))}function lo(e){const{type:t,vnode:n,proxy:r,withProxy:o,propsOptions:[s],slots:i,attrs:l,emit:a,render:c,renderCache:f,props:u,data:p,setupState:m,ctx:_,inheritAttrs:C}=e,k=kr(e);let I,w;try{if(n.shapeFlag&4){const S=o||r,$=S;I=rt(c.call($,S,f,u,m,p,_)),w=l}else{const S=t;I=rt(S.length>1?S(u,{attrs:l,slots:i,emit:a}):S(u,null)),w=t.props?l:hu(l)}}catch(S){jn.length=0,tr(S,e,1),I=oe(ze)}let g=I;if(w&&C!==!1){const S=Object.keys(w),{shapeFlag:$}=g;S.length&&$&7&&(s&&S.some(Ho)&&(w=pu(w,s)),g=jt(g,w,!1,!0))}return n.dirs&&(g=jt(g,null,!1,!0),g.dirs=g.dirs?g.dirs.concat(n.dirs):n.dirs),n.transition&&(g.transition=n.transition),I=g,kr(k),I}const hu=e=>{let t;for(const n in e)(n==="class"||n==="style"||Qn(n))&&((t||(t={}))[n]=e[n]);return t},pu=(e,t)=>{const n={};for(const r in e)(!Ho(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function mu(e,t,n){const{props:r,children:o,component:s}=e,{props:i,children:l,patchFlag:a}=t,c=s.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&a>=0){if(a&1024)return!0;if(a&16)return r?Vs(r,i,c):!!i;if(a&8){const f=t.dynamicProps;for(let u=0;ue.__isSuspense;function Ol(e,t){t&&t.pendingBranch?ne(e)?t.effects.push(...e):t.effects.push(e):_c(e)}const ye=Symbol.for("v-fgt"),rn=Symbol.for("v-txt"),ze=Symbol.for("v-cmt"),$n=Symbol.for("v-stc"),jn=[];let Ze=null;function W(e=!1){jn.push(Ze=e?null:[])}function _u(){jn.pop(),Ze=jn[jn.length-1]||null}let Un=1;function Fs(e){Un+=e,e<0&&Ze&&(Ze.hasOnce=!0)}function Il(e){return e.dynamicChildren=Un>0?Ze||fn:null,_u(),Un>0&&Ze&&Ze.push(e),e}function ee(e,t,n,r,o,s){return Il(J(e,t,n,r,o,s,!0))}function xe(e,t,n,r,o){return Il(oe(e,t,n,r,o,!0))}function Ir(e){return e?e.__v_isVNode===!0:!1}function Qt(e,t){return e.type===t.type&&e.key===t.key}const Ml=({key:e})=>e??null,Sr=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Ae(e)||je(e)||se(e)?{i:De,r:e,k:t,f:!!n}:e:null);function J(e,t=null,n=null,r=0,o=null,s=e===ye?0:1,i=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ml(t),ref:t&&Sr(t),scopeId:Br,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:r,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:De};return l?(Zo(a,n),s&128&&e.normalize(a)):n&&(a.shapeFlag|=Ae(n)?8:16),Un>0&&!i&&Ze&&(a.patchFlag>0||s&6)&&a.patchFlag!==32&&Ze.push(a),a}const oe=bu;function bu(e,t=null,n=null,r=0,o=null,s=!1){if((!e||e===Nc)&&(e=ze),Ir(e)){const l=jt(e,t,!0);return n&&Zo(l,n),Un>0&&!s&&Ze&&(l.shapeFlag&6?Ze[Ze.indexOf(e)]=l:Ze.push(l)),l.patchFlag=-2,l}if(Ru(e)&&(e=e.__vccOpts),t){t=yu(t);let{class:l,style:a}=t;l&&!Ae(l)&&(t.class=Ge(l)),we(a)&&(tl(a)&&!ne(a)&&(a=He({},a)),t.style=Zn(a))}const i=Ae(e)?1:vu(e)?128:eu(e)?64:we(e)?4:se(e)?2:0;return J(e,t,n,r,o,i,s,!0)}function yu(e){return e?tl(e)||yl(e)?He({},e):e:null}function jt(e,t,n=!1,r=!1){const{props:o,ref:s,patchFlag:i,children:l,transition:a}=e,c=t?Su(o||{},t):o,f={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Ml(c),ref:t&&t.ref?n&&s?ne(s)?s.concat(Sr(t)):[s,Sr(t)]:Sr(t):s,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ye?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&jt(e.ssContent),ssFallback:e.ssFallback&&jt(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&r&&Tr(f,a.clone(f)),f}function Vt(e=" ",t=0){return oe(rn,null,e,t)}function wu(e,t){const n=oe($n,null,e);return n.staticCount=t,n}function Re(e="",t=!1){return t?(W(),xe(ze,null,e)):oe(ze,null,e)}function rt(e){return e==null||typeof e=="boolean"?oe(ze):ne(e)?oe(ye,null,e.slice()):typeof e=="object"?It(e):oe(rn,null,String(e))}function It(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:jt(e)}function Zo(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(ne(t))n=16;else if(typeof t=="object")if(r&65){const o=t.default;o&&(o._c&&(o._d=!1),Zo(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!yl(t)?t._ctx=De:o===3&&De&&(De.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else se(t)?(t={default:t,_ctx:De},n=32):(t=String(t),r&64?(n=16,t=[Vt(t)]):n=8);e.children=t,e.shapeFlag|=n}function Su(...e){const t={};for(let n=0;nMe||De;let Mr,ko;{const e=$i(),t=(n,r)=>{let o;return(o=e[n])||(o=e[n]=[]),o.push(r),s=>{o.length>1?o.forEach(i=>i(s)):o[0](s)}};Mr=t("__VUE_INSTANCE_SETTERS__",n=>Me=n),ko=t("__VUE_SSR_SETTERS__",n=>or=n)}const rr=e=>{const t=Me;return Mr(e),e.scope.on(),()=>{e.scope.off(),Mr(t)}},Bs=()=>{Me&&Me.scope.off(),Mr(null)};function Dl(e){return e.vnode.shapeFlag&4}let or=!1;function Pu(e,t=!1,n=!1){t&&ko(t);const{props:r,children:o}=e.vnode,s=Dl(e);qc(e,r,s,t),Qc(e,o,n);const i=s?xu(e,t):void 0;return t&&ko(!1),i}function xu(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,jc);const{setup:r}=n;if(r){const o=e.setupContext=r.length>1?Au(e):null,s=rr(e);zt();const i=Nt(r,e,0,[e.props,o]);if(Wt(),s(),Mi(i)){if(i.then(Bs,Bs),t)return i.then(l=>{zs(e,l,t)}).catch(l=>{tr(l,e,0)});e.asyncDep=i}else zs(e,i,t)}else Hl(e,t)}function zs(e,t,n){se(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:we(t)&&(e.setupState=ol(t)),Hl(e,n)}let Ws;function Hl(e,t,n){const r=e.type;if(!e.render){if(!t&&Ws&&!r.render){const o=r.template||Yo(e).template;if(o){const{isCustomElement:s,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:a}=r,c=He(He({isCustomElement:s,delimiters:l},i),a);r.render=Ws(o,c)}}e.render=r.render||ot}{const o=rr(e);zt();try{Vc(e)}finally{Wt(),o()}}}const ku={get(e,t){return Je(e,"get",""),e[t]}};function Au(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,ku),slots:e.slots,emit:e.emit,expose:t}}function qr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ol(ic(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Hn)return Hn[n](e)},has(t,n){return n in t||n in Hn}})):e.proxy}function Tu(e,t=!0){return se(e)?e.displayName||e.name:e.name||t&&e.__name}function Ru(e){return se(e)&&"__vccOpts"in e}const O=(e,t)=>lc(e,t,or);function Le(e,t,n){const r=arguments.length;return r===2?we(t)&&!ne(t)?Ir(t)?oe(e,null,[t]):oe(e,t):oe(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Ir(n)&&(n=[n]),oe(e,t,n))}const Ou="3.4.33";/** +* @vue/runtime-dom v3.4.33 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const Iu="http://www.w3.org/2000/svg",Mu="http://www.w3.org/1998/Math/MathML",bt=typeof document<"u"?document:null,Us=bt&&bt.createElement("template"),Du={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t==="svg"?bt.createElementNS(Iu,e):t==="mathml"?bt.createElementNS(Mu,e):n?bt.createElement(e,{is:n}):bt.createElement(e);return e==="select"&&r&&r.multiple!=null&&o.setAttribute("multiple",r.multiple),o},createText:e=>bt.createTextNode(e),createComment:e=>bt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>bt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,o,s){const i=n?n.previousSibling:t.lastChild;if(o&&(o===s||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===s||!(o=o.nextSibling)););else{Us.innerHTML=r==="svg"?`${e}`:r==="mathml"?`${e}`:e;const l=Us.content;if(r==="svg"||r==="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]}},At="transition",kn="animation",Kn=Symbol("_vtc"),sr=(e,{slots:t})=>Le(Cc,Hu(e),t);sr.displayName="Transition";const Nl={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};sr.props=He({},ul,Nl);const Kt=(e,t=[])=>{ne(e)?e.forEach(n=>n(...t)):e&&e(...t)},Ks=e=>e?ne(e)?e.some(t=>t.length>1):e.length>1:!1;function Hu(e){const t={};for(const y in e)y in Nl||(t[y]=e[y]);if(e.css===!1)return t;const{name:n="v",type:r,duration:o,enterFromClass:s=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:a=s,appearActiveClass:c=i,appearToClass:f=l,leaveFromClass:u=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,_=Nu(o),C=_&&_[0],k=_&&_[1],{onBeforeEnter:I,onEnter:w,onEnterCancelled:g,onLeave:S,onLeaveCancelled:$,onBeforeAppear:H=I,onAppear:M=w,onAppearCancelled:b=g}=t,U=(y,D,te)=>{qt(y,D?f:l),qt(y,D?c:i),te&&te()},L=(y,D)=>{y._isLeaving=!1,qt(y,u),qt(y,m),qt(y,p),D&&D()},F=y=>(D,te)=>{const re=y?M:w,R=()=>U(D,y,te);Kt(re,[D,R]),qs(()=>{qt(D,y?a:s),Tt(D,y?f:l),Ks(re)||Gs(D,r,C,R)})};return He(t,{onBeforeEnter(y){Kt(I,[y]),Tt(y,s),Tt(y,i)},onBeforeAppear(y){Kt(H,[y]),Tt(y,a),Tt(y,c)},onEnter:F(!1),onAppear:F(!0),onLeave(y,D){y._isLeaving=!0;const te=()=>L(y,D);Tt(y,u),Tt(y,p),Vu(),qs(()=>{y._isLeaving&&(qt(y,u),Tt(y,m),Ks(S)||Gs(y,r,k,te))}),Kt(S,[y,te])},onEnterCancelled(y){U(y,!1),Kt(g,[y])},onAppearCancelled(y){U(y,!0),Kt(b,[y])},onLeaveCancelled(y){L(y),Kt($,[y])}})}function Nu(e){if(e==null)return null;if(we(e))return[ao(e.enter),ao(e.leave)];{const t=ao(e);return[t,t]}}function ao(e){return Ta(e)}function Tt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Kn]||(e[Kn]=new Set)).add(t)}function qt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Kn];n&&(n.delete(t),n.size||(e[Kn]=void 0))}function qs(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let $u=0;function Gs(e,t,n,r){const o=e._endId=++$u,s=()=>{o===e._endId&&r()};if(n)return setTimeout(s,n);const{type:i,timeout:l,propCount:a}=ju(e,t);if(!i)return r();const c=i+"end";let f=0;const u=()=>{e.removeEventListener(c,p),s()},p=m=>{m.target===e&&++f>=a&&u()};setTimeout(()=>{f(n[_]||"").split(", "),o=r(`${At}Delay`),s=r(`${At}Duration`),i=Js(o,s),l=r(`${kn}Delay`),a=r(`${kn}Duration`),c=Js(l,a);let f=null,u=0,p=0;t===At?i>0&&(f=At,u=i,p=s.length):t===kn?c>0&&(f=kn,u=c,p=a.length):(u=Math.max(i,c),f=u>0?i>c?At:kn:null,p=f?f===At?s.length:a.length:0);const m=f===At&&/\b(transform|all)(,|$)/.test(r(`${At}Property`).toString());return{type:f,timeout:u,propCount:p,hasTransform:m}}function Js(e,t){for(;e.lengthYs(n)+Ys(e[r])))}function Ys(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Vu(){return document.body.offsetHeight}function Fu(e,t,n){const r=e[Kn];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Dr=Symbol("_vod"),$l=Symbol("_vsh"),Hr={beforeMount(e,{value:t},{transition:n}){e[Dr]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):An(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),An(e,!0),r.enter(e)):r.leave(e,()=>{An(e,!1)}):An(e,t))},beforeUnmount(e,{value:t}){An(e,t)}};function An(e,t){e.style.display=t?e[Dr]:"none",e[$l]=!t}const Bu=Symbol(""),zu=/(^|;)\s*display\s*:/;function Wu(e,t,n){const r=e.style,o=Ae(n);let s=!1;if(n&&!o){if(t)if(Ae(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&Er(r,l,"")}else for(const i in t)n[i]==null&&Er(r,i,"");for(const i in n)i==="display"&&(s=!0),Er(r,i,n[i])}else if(o){if(t!==n){const i=r[Bu];i&&(n+=";"+i),r.cssText=n,s=zu.test(n)}}else t&&e.removeAttribute("style");Dr in e&&(e[Dr]=s?r.display:"",e[$l]&&(r.display="none"))}const Qs=/\s*!important$/;function Er(e,t,n){if(ne(n))n.forEach(r=>Er(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Uu(e,t);Qs.test(n)?e.setProperty(Bt(r),n.replace(Qs,""),"important"):e[r]=n}}const Xs=["Webkit","Moz","ms"],co={};function Uu(e,t){const n=co[t];if(n)return n;let r=et(t);if(r!=="filter"&&r in e)return co[t]=r;r=Xn(r);for(let o=0;ouo||(Qu.then(()=>uo=0),uo=Date.now());function Zu(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;st(ef(r,n.value),t,5,[r])};return n.value=e,n.attached=Xu(),n}function ef(e,t){if(ne(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>o=>!o._stopped&&r&&r(o))}else return t}const ri=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,tf=(e,t,n,r,o,s)=>{const i=o==="svg";t==="class"?Fu(e,r,i):t==="style"?Wu(e,n,r):Qn(t)?Ho(t)||Ju(e,t,n,r,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):nf(e,t,r,i))?(Ku(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&ei(e,t,r,i,s,t!=="value")):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),ei(e,t,r,i))};function nf(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&ri(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 o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return ri(t)&&Ae(n)?!1:t in e}const rf={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},of=(e,t)=>{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=o=>{if(!("key"in o))return;const s=Bt(o.key);if(t.some(i=>i===s||rf[i]===s))return e(o)})},sf=He({patchProp:tf},Du);let fo,oi=!1;function lf(){return fo=oi?fo:ou(sf),oi=!0,fo}const af=(...e)=>{const t=lf().createApp(...e),{mount:n}=t;return t.mount=r=>{const o=uf(r);if(o)return n(o,!0,cf(o))},t};function cf(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function uf(e){return Ae(e)?document.querySelector(e):e}var ir=e=>/^[a-z][a-z0-9+.-]*:/.test(e)||e.startsWith("//"),ff=/.md((\?|#).*)?$/,df=(e,t="/")=>ir(e)||e.startsWith("/")&&!e.startsWith(t)&&!ff.test(e),Gr=e=>/^(https?:)?\/\//.test(e),si=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},hf="http://.",pf=(e,t)=>{if(!e.startsWith("/")&&t){const n=t.slice(0,t.lastIndexOf("/"));return si(new URL(`${n}/${e}`,hf).pathname)}return si(e)},mf=(e,t)=>{const n=Object.keys(e).sort((r,o)=>{const s=o.split("/").length-r.split("/").length;return s!==0?s:o.length-r.length});for(const r of n)if(t.startsWith(r))return r;return"/"},gf=/(#|\?)/,jl=e=>{const[t,...n]=e.split(gf);return{pathname:t,hashAndQueries:n.join("")}},vf=["link","meta","script","style","noscript","template"],_f=["title","base"],bf=([e,t,n])=>_f.includes(e)?e:vf.includes(e)?e==="meta"&&t.name?`${e}.${t.name}`:e==="template"&&t.id?`${e}.${t.id}`:JSON.stringify([e,Object.entries(t).map(([r,o])=>typeof o=="boolean"?o?[r,""]:null:[r,o]).filter(r=>r!=null).sort(([r],[o])=>r.localeCompare(o)),n]):null,yf=e=>{const t=new Set,n=[];return e.forEach(r=>{const o=bf(r);o&&!t.has(o)&&(t.add(o),n.push(r))}),n},wf=e=>e[e.length-1]==="/"||e.endsWith(".html")?e:`${e}/`,Vl=e=>e[e.length-1]==="/"?e.slice(0,-1):e,Fl=e=>e[0]==="/"?e.slice(1):e,es=e=>Object.prototype.toString.call(e)==="[object Object]",lt=e=>typeof e=="string";const Sf="modulepreload",Ef=function(e){return"/"+e},ii={},Tn=function(t,n,r){let o=Promise.resolve();return n&&n.length>0&&(document.getElementsByTagName("link"),o=Promise.all(n.map(s=>{if(s=Ef(s),s in ii)return;ii[s]=!0;const i=s.endsWith(".css"),l=i?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${s}"]${l}`))return;const a=document.createElement("link");if(a.rel=i?"stylesheet":Sf,i||(a.as="script",a.crossOrigin=""),a.href=s,document.head.appendChild(a),i)return new Promise((c,f)=>{a.addEventListener("load",c),a.addEventListener("error",()=>f(new Error(`Unable to preload CSS for ${s}`)))})}))),o.then(()=>t()).catch(s=>{const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=s,window.dispatchEvent(i),!i.defaultPrevented)throw s})},Cf=JSON.parse("{}"),Lf=Object.fromEntries([["/",{loader:()=>Tn(()=>import("./index.html-Bgp5oohT.js"),__vite__mapDeps([])),meta:{title:"Резюме"}}],["/works.html",{loader:()=>Tn(()=>import("./works.html-sG2zmfnZ.js"),__vite__mapDeps([])),meta:{title:"Работы"}}],["/eng/",{loader:()=>Tn(()=>import("./index.html-Bmcvetlf.js"),__vite__mapDeps([])),meta:{title:"Resume"}}],["/eng/works.html",{loader:()=>Tn(()=>import("./works.html-DIDCwbnz.js"),__vite__mapDeps([])),meta:{title:"Works"}}],["/404.html",{loader:()=>Tn(()=>import("./404.html-C-XD0uTd.js"),__vite__mapDeps([])),meta:{title:""}}]]);/*! + * vue-router v4.4.0 + * (c) 2024 Eduardo San Martin Morote + * @license MIT + */const un=typeof document<"u";function Pf(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const _e=Object.assign;function ho(e,t){const n={};for(const r in t){const o=t[r];n[r]=at(o)?o.map(e):e(o)}return n}const Vn=()=>{},at=Array.isArray,Bl=/#/g,xf=/&/g,kf=/\//g,Af=/=/g,Tf=/\?/g,zl=/\+/g,Rf=/%5B/g,Of=/%5D/g,Wl=/%5E/g,If=/%60/g,Ul=/%7B/g,Mf=/%7C/g,Kl=/%7D/g,Df=/%20/g;function ts(e){return encodeURI(""+e).replace(Mf,"|").replace(Rf,"[").replace(Of,"]")}function Hf(e){return ts(e).replace(Ul,"{").replace(Kl,"}").replace(Wl,"^")}function Ao(e){return ts(e).replace(zl,"%2B").replace(Df,"+").replace(Bl,"%23").replace(xf,"%26").replace(If,"`").replace(Ul,"{").replace(Kl,"}").replace(Wl,"^")}function Nf(e){return Ao(e).replace(Af,"%3D")}function $f(e){return ts(e).replace(Bl,"%23").replace(Tf,"%3F")}function jf(e){return e==null?"":$f(e).replace(kf,"%2F")}function qn(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const Vf=/\/$/,Ff=e=>e.replace(Vf,"");function po(e,t,n="/"){let r,o={},s="",i="";const l=t.indexOf("#");let a=t.indexOf("?");return l=0&&(a=-1),a>-1&&(r=t.slice(0,a),s=t.slice(a+1,l>-1?l:t.length),o=e(s)),l>-1&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=Uf(r??t,n),{fullPath:r+(s&&"?")+s+i,path:r,query:o,hash:qn(i)}}function Bf(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function li(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function zf(e,t,n){const r=t.matched.length-1,o=n.matched.length-1;return r>-1&&r===o&&yn(t.matched[r],n.matched[o])&&ql(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function yn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function ql(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!Wf(e[n],t[n]))return!1;return!0}function Wf(e,t){return at(e)?ai(e,t):at(t)?ai(t,e):e===t}function ai(e,t){return at(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Uf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),o=r[r.length-1];(o===".."||o===".")&&r.push("");let s=n.length-1,i,l;for(i=0;i1&&s--;else break;return n.slice(0,s).join("/")+"/"+r.slice(i).join("/")}const _t={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var Gn;(function(e){e.pop="pop",e.push="push"})(Gn||(Gn={}));var Fn;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Fn||(Fn={}));function Kf(e){if(!e)if(un){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Ff(e)}const qf=/^[^#]+#/;function Gf(e,t){return e.replace(qf,"#")+t}function Jf(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const Jr=()=>({left:window.scrollX,top:window.scrollY});function Yf(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),o=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!o)return;t=Jf(o,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function ci(e,t){return(history.state?history.state.position-t:-1)+e}const To=new Map;function Qf(e,t){To.set(e,t)}function Xf(e){const t=To.get(e);return To.delete(e),t}let Zf=()=>location.protocol+"//"+location.host;function Gl(e,t){const{pathname:n,search:r,hash:o}=t,s=e.indexOf("#");if(s>-1){let l=o.includes(e.slice(s))?e.slice(s).length:1,a=o.slice(l);return a[0]!=="/"&&(a="/"+a),li(a,"")}return li(n,e)+r+o}function ed(e,t,n,r){let o=[],s=[],i=null;const l=({state:p})=>{const m=Gl(e,location),_=n.value,C=t.value;let k=0;if(p){if(n.value=m,t.value=p,i&&i===_){i=null;return}k=C?p.position-C.position:0}else r(m);o.forEach(I=>{I(n.value,_,{delta:k,type:Gn.pop,direction:k?k>0?Fn.forward:Fn.back:Fn.unknown})})};function a(){i=n.value}function c(p){o.push(p);const m=()=>{const _=o.indexOf(p);_>-1&&o.splice(_,1)};return s.push(m),m}function f(){const{history:p}=window;p.state&&p.replaceState(_e({},p.state,{scroll:Jr()}),"")}function u(){for(const p of s)p();s=[],window.removeEventListener("popstate",l),window.removeEventListener("beforeunload",f)}return window.addEventListener("popstate",l),window.addEventListener("beforeunload",f,{passive:!0}),{pauseListeners:a,listen:c,destroy:u}}function ui(e,t,n,r=!1,o=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:o?Jr():null}}function td(e){const{history:t,location:n}=window,r={value:Gl(e,n)},o={value:t.state};o.value||s(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function s(a,c,f){const u=e.indexOf("#"),p=u>-1?(n.host&&document.querySelector("base")?e:e.slice(u))+a:Zf()+e+a;try{t[f?"replaceState":"pushState"](c,"",p),o.value=c}catch(m){console.error(m),n[f?"replace":"assign"](p)}}function i(a,c){const f=_e({},t.state,ui(o.value.back,a,o.value.forward,!0),c,{position:o.value.position});s(a,f,!0),r.value=a}function l(a,c){const f=_e({},o.value,t.state,{forward:a,scroll:Jr()});s(f.current,f,!0);const u=_e({},ui(r.value,a,null),{position:f.position+1},c);s(a,u,!1),r.value=a}return{location:r,state:o,push:l,replace:i}}function nd(e){e=Kf(e);const t=td(e),n=ed(e,t.state,t.location,t.replace);function r(s,i=!0){i||n.pauseListeners(),history.go(s)}const o=_e({location:"",base:e,go:r,createHref:Gf.bind(null,e)},t,n);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}function rd(e){return typeof e=="string"||e&&typeof e=="object"}function Jl(e){return typeof e=="string"||typeof e=="symbol"}const Yl=Symbol("");var fi;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(fi||(fi={}));function wn(e,t){return _e(new Error,{type:e,[Yl]:!0},t)}function vt(e,t){return e instanceof Error&&Yl in e&&(t==null||!!(e.type&t))}const di="[^/]+?",od={sensitive:!1,strict:!1,start:!0,end:!0},sd=/[.+*?^${}()[\]/\\]/g;function id(e,t){const n=_e({},od,t),r=[];let o=n.start?"^":"";const s=[];for(const c of e){const f=c.length?[]:[90];n.strict&&!c.length&&(o+="/");for(let u=0;ut.length?t.length===1&&t[0]===80?1:-1:0}function Ql(e,t){let n=0;const r=e.score,o=t.score;for(;n0&&t[t.length-1]<0}const ad={type:0,value:""},cd=/[a-zA-Z0-9_]/;function ud(e){if(!e)return[[]];if(e==="/")return[[ad]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${c}": ${m}`)}let n=0,r=n;const o=[];let s;function i(){s&&o.push(s),s=[]}let l=0,a,c="",f="";function u(){c&&(n===0?s.push({type:0,value:c}):n===1||n===2||n===3?(s.length>1&&(a==="*"||a==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),s.push({type:1,value:c,regexp:f,repeatable:a==="*"||a==="+",optional:a==="*"||a==="?"})):t("Invalid state to consume buffer"),c="")}function p(){c+=a}for(;l{i(g)}:Vn}function i(u){if(Jl(u)){const p=r.get(u);p&&(r.delete(u),n.splice(n.indexOf(p),1),p.children.forEach(i),p.alias.forEach(i))}else{const p=n.indexOf(u);p>-1&&(n.splice(p,1),u.record.name&&r.delete(u.record.name),u.children.forEach(i),u.alias.forEach(i))}}function l(){return n}function a(u){const p=gd(u,n);n.splice(p,0,u),u.record.name&&!mi(u)&&r.set(u.record.name,u)}function c(u,p){let m,_={},C,k;if("name"in u&&u.name){if(m=r.get(u.name),!m)throw wn(1,{location:u});k=m.record.name,_=_e(pi(p.params,m.keys.filter(g=>!g.optional).concat(m.parent?m.parent.keys.filter(g=>g.optional):[]).map(g=>g.name)),u.params&&pi(u.params,m.keys.map(g=>g.name))),C=m.stringify(_)}else if(u.path!=null)C=u.path,m=n.find(g=>g.re.test(C)),m&&(_=m.parse(C),k=m.record.name);else{if(m=p.name?r.get(p.name):n.find(g=>g.re.test(p.path)),!m)throw wn(1,{location:u,currentLocation:p});k=m.record.name,_=_e({},p.params,u.params),C=m.stringify(_)}const I=[];let w=m;for(;w;)I.unshift(w.record),w=w.parent;return{name:k,path:C,params:_,matched:I,meta:md(I)}}e.forEach(u=>s(u));function f(){n.length=0,r.clear()}return{addRoute:s,resolve:c,removeRoute:i,clearRoutes:f,getRoutes:l,getRecordMatcher:o}}function pi(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function hd(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:pd(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function pd(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function mi(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function md(e){return e.reduce((t,n)=>_e(t,n.meta),{})}function gi(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function gd(e,t){let n=0,r=t.length;for(;n!==r;){const s=n+r>>1;Ql(e,t[s])<0?r=s:n=s+1}const o=vd(e);return o&&(r=t.lastIndexOf(o,r-1)),r}function vd(e){let t=e;for(;t=t.parent;)if(Xl(t)&&Ql(e,t)===0)return t}function Xl({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function _d(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let o=0;os&&Ao(s)):[r&&Ao(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function bd(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=at(r)?r.map(o=>o==null?null:""+o):r==null?r:""+r)}return t}const yd=Symbol(""),_i=Symbol(""),Yr=Symbol(""),ns=Symbol(""),Ro=Symbol("");function Rn(){let e=[];function t(r){return e.push(r),()=>{const o=e.indexOf(r);o>-1&&e.splice(o,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Mt(e,t,n,r,o,s=i=>i()){const i=r&&(r.enterCallbacks[o]=r.enterCallbacks[o]||[]);return()=>new Promise((l,a)=>{const c=p=>{p===!1?a(wn(4,{from:n,to:t})):p instanceof Error?a(p):rd(p)?a(wn(2,{from:t,to:p})):(i&&r.enterCallbacks[o]===i&&typeof p=="function"&&i.push(p),l())},f=s(()=>e.call(r&&r.instances[o],t,n,c));let u=Promise.resolve(f);e.length<3&&(u=u.then(c)),u.catch(p=>a(p))})}function mo(e,t,n,r,o=s=>s()){const s=[];for(const i of e)for(const l in i.components){let a=i.components[l];if(!(t!=="beforeRouteEnter"&&!i.instances[l]))if(wd(a)){const f=(a.__vccOpts||a)[t];f&&s.push(Mt(f,n,r,i,l,o))}else{let c=a();s.push(()=>c.then(f=>{if(!f)return Promise.reject(new Error(`Couldn't resolve component "${l}" at "${i.path}"`));const u=Pf(f)?f.default:f;i.components[l]=u;const m=(u.__vccOpts||u)[t];return m&&Mt(m,n,r,i,l,o)()}))}}return s}function wd(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function bi(e){const t=We(Yr),n=We(ns),r=O(()=>{const a=tn(e.to);return t.resolve(a)}),o=O(()=>{const{matched:a}=r.value,{length:c}=a,f=a[c-1],u=n.matched;if(!f||!u.length)return-1;const p=u.findIndex(yn.bind(null,f));if(p>-1)return p;const m=yi(a[c-2]);return c>1&&yi(f)===m&&u[u.length-1].path!==m?u.findIndex(yn.bind(null,a[c-2])):p}),s=O(()=>o.value>-1&&Ld(n.params,r.value.params)),i=O(()=>o.value>-1&&o.value===n.matched.length-1&&ql(n.params,r.value.params));function l(a={}){return Cd(a)?t[tn(e.replace)?"replace":"push"](tn(e.to)).catch(Vn):Promise.resolve()}return{route:r,href:O(()=>r.value.href),isActive:s,isExactActive:i,navigate:l}}const Sd=ge({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:bi,setup(e,{slots:t}){const n=er(bi(e)),{options:r}=We(Yr),o=O(()=>({[wi(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[wi(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const s=t.default&&t.default(n);return e.custom?s:Le("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:o.value},s)}}}),Ed=Sd;function Cd(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Ld(e,t){for(const n in t){const r=t[n],o=e[n];if(typeof r=="string"){if(r!==o)return!1}else if(!at(o)||o.length!==r.length||r.some((s,i)=>s!==o[i]))return!1}return!0}function yi(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const wi=(e,t,n)=>e??t??n,Pd=ge({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=We(Ro),o=O(()=>e.route||r.value),s=We(_i,0),i=O(()=>{let c=tn(s);const{matched:f}=o.value;let u;for(;(u=f[c])&&!u.components;)c++;return c}),l=O(()=>o.value.matched[i.value]);nn(_i,O(()=>i.value+1)),nn(yd,l),nn(Ro,o);const a=he();return $e(()=>[a.value,l.value,e.name],([c,f,u],[p,m,_])=>{f&&(f.instances[u]=c,m&&m!==f&&c&&c===p&&(f.leaveGuards.size||(f.leaveGuards=m.leaveGuards),f.updateGuards.size||(f.updateGuards=m.updateGuards))),c&&f&&(!m||!yn(f,m)||!p)&&(f.enterCallbacks[u]||[]).forEach(C=>C(c))},{flush:"post"}),()=>{const c=o.value,f=e.name,u=l.value,p=u&&u.components[f];if(!p)return Si(n.default,{Component:p,route:c});const m=u.props[f],_=m?m===!0?c.params:typeof m=="function"?m(c):m:null,k=Le(p,_e({},_,t,{onVnodeUnmounted:I=>{I.component.isUnmounted&&(u.instances[f]=null)},ref:a}));return Si(n.default,{Component:k,route:c})||k}}});function Si(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const xd=Pd;function kd(e){const t=dd(e.routes,e),n=e.parseQuery||_d,r=e.stringifyQuery||vi,o=e.history,s=Rn(),i=Rn(),l=Rn(),a=En(_t);let c=_t;un&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=ho.bind(null,P=>""+P),u=ho.bind(null,jf),p=ho.bind(null,qn);function m(P,q){let B,Y;return Jl(P)?(B=t.getRecordMatcher(P),Y=q):Y=P,t.addRoute(Y,B)}function _(P){const q=t.getRecordMatcher(P);q&&t.removeRoute(q)}function C(){return t.getRoutes().map(P=>P.record)}function k(P){return!!t.getRecordMatcher(P)}function I(P,q){if(q=_e({},q||a.value),typeof P=="string"){const h=po(n,P,q.path),v=t.resolve({path:h.path},q),x=o.createHref(h.fullPath);return _e(h,v,{params:p(v.params),hash:qn(h.hash),redirectedFrom:void 0,href:x})}let B;if(P.path!=null)B=_e({},P,{path:po(n,P.path,q.path).path});else{const h=_e({},P.params);for(const v in h)h[v]==null&&delete h[v];B=_e({},P,{params:u(h)}),q.params=u(q.params)}const Y=t.resolve(B,q),ce=P.hash||"";Y.params=f(p(Y.params));const be=Bf(r,_e({},P,{hash:Hf(ce),path:Y.path})),d=o.createHref(be);return _e({fullPath:be,hash:ce,query:r===vi?bd(P.query):P.query||{}},Y,{redirectedFrom:void 0,href:d})}function w(P){return typeof P=="string"?po(n,P,a.value.path):_e({},P)}function g(P,q){if(c!==P)return wn(8,{from:q,to:P})}function S(P){return M(P)}function $(P){return S(_e(w(P),{replace:!0}))}function H(P){const q=P.matched[P.matched.length-1];if(q&&q.redirect){const{redirect:B}=q;let Y=typeof B=="function"?B(P):B;return typeof Y=="string"&&(Y=Y.includes("?")||Y.includes("#")?Y=w(Y):{path:Y},Y.params={}),_e({query:P.query,hash:P.hash,params:Y.path!=null?{}:P.params},Y)}}function M(P,q){const B=c=I(P),Y=a.value,ce=P.state,be=P.force,d=P.replace===!0,h=H(B);if(h)return M(_e(w(h),{state:typeof h=="object"?_e({},ce,h.state):ce,force:be,replace:d}),q||B);const v=B;v.redirectedFrom=q;let x;return!be&&zf(r,Y,B)&&(x=wn(16,{to:v,from:Y}),Ue(Y,Y,!0,!1)),(x?Promise.resolve(x):L(v,Y)).catch(E=>vt(E)?vt(E,2)?E:Ne(E):K(E,v,Y)).then(E=>{if(E){if(vt(E,2))return M(_e({replace:d},w(E.to),{state:typeof E.to=="object"?_e({},ce,E.to.state):ce,force:be}),q||v)}else E=y(v,Y,!0,d,ce);return F(v,Y,E),E})}function b(P,q){const B=g(P,q);return B?Promise.reject(B):Promise.resolve()}function U(P){const q=xt.values().next().value;return q&&typeof q.runWithContext=="function"?q.runWithContext(P):P()}function L(P,q){let B;const[Y,ce,be]=Ad(P,q);B=mo(Y.reverse(),"beforeRouteLeave",P,q);for(const h of Y)h.leaveGuards.forEach(v=>{B.push(Mt(v,P,q))});const d=b.bind(null,P,q);return B.push(d),Ke(B).then(()=>{B=[];for(const h of s.list())B.push(Mt(h,P,q));return B.push(d),Ke(B)}).then(()=>{B=mo(ce,"beforeRouteUpdate",P,q);for(const h of ce)h.updateGuards.forEach(v=>{B.push(Mt(v,P,q))});return B.push(d),Ke(B)}).then(()=>{B=[];for(const h of be)if(h.beforeEnter)if(at(h.beforeEnter))for(const v of h.beforeEnter)B.push(Mt(v,P,q));else B.push(Mt(h.beforeEnter,P,q));return B.push(d),Ke(B)}).then(()=>(P.matched.forEach(h=>h.enterCallbacks={}),B=mo(be,"beforeRouteEnter",P,q,U),B.push(d),Ke(B))).then(()=>{B=[];for(const h of i.list())B.push(Mt(h,P,q));return B.push(d),Ke(B)}).catch(h=>vt(h,8)?h:Promise.reject(h))}function F(P,q,B){l.list().forEach(Y=>U(()=>Y(P,q,B)))}function y(P,q,B,Y,ce){const be=g(P,q);if(be)return be;const d=q===_t,h=un?history.state:{};B&&(Y||d?o.replace(P.fullPath,_e({scroll:d&&h&&h.scroll},ce)):o.push(P.fullPath,ce)),a.value=P,Ue(P,q,B,d),Ne()}let D;function te(){D||(D=o.listen((P,q,B)=>{if(!ft.listening)return;const Y=I(P),ce=H(Y);if(ce){M(_e(ce,{replace:!0}),Y).catch(Vn);return}c=Y;const be=a.value;un&&Qf(ci(be.fullPath,B.delta),Jr()),L(Y,be).catch(d=>vt(d,12)?d:vt(d,2)?(M(d.to,Y).then(h=>{vt(h,20)&&!B.delta&&B.type===Gn.pop&&o.go(-1,!1)}).catch(Vn),Promise.reject()):(B.delta&&o.go(-B.delta,!1),K(d,Y,be))).then(d=>{d=d||y(Y,be,!1),d&&(B.delta&&!vt(d,8)?o.go(-B.delta,!1):B.type===Gn.pop&&vt(d,20)&&o.go(-1,!1)),F(Y,be,d)}).catch(Vn)}))}let re=Rn(),R=Rn(),Q;function K(P,q,B){Ne(P);const Y=R.list();return Y.length?Y.forEach(ce=>ce(P,q,B)):console.error(P),Promise.reject(P)}function Oe(){return Q&&a.value!==_t?Promise.resolve():new Promise((P,q)=>{re.add([P,q])})}function Ne(P){return Q||(Q=!P,te(),re.list().forEach(([q,B])=>P?B(P):q()),re.reset()),P}function Ue(P,q,B,Y){const{scrollBehavior:ce}=e;if(!un||!ce)return Promise.resolve();const be=!B&&Xf(ci(P.fullPath,0))||(Y||!B)&&history.state&&history.state.scroll||null;return Cn().then(()=>ce(P,q,be)).then(d=>d&&Yf(d)).catch(d=>K(d,P,q))}const Ve=P=>o.go(P);let Pt;const xt=new Set,ft={currentRoute:a,listening:!0,addRoute:m,removeRoute:_,clearRoutes:t.clearRoutes,hasRoute:k,getRoutes:C,resolve:I,options:e,push:S,replace:$,go:Ve,back:()=>Ve(-1),forward:()=>Ve(1),beforeEach:s.add,beforeResolve:i.add,afterEach:l.add,onError:R.add,isReady:Oe,install(P){const q=this;P.component("RouterLink",Ed),P.component("RouterView",xd),P.config.globalProperties.$router=q,Object.defineProperty(P.config.globalProperties,"$route",{enumerable:!0,get:()=>tn(a)}),un&&!Pt&&a.value===_t&&(Pt=!0,S(o.location).catch(ce=>{}));const B={};for(const ce in _t)Object.defineProperty(B,ce,{get:()=>a.value[ce],enumerable:!0});P.provide(Yr,q),P.provide(ns,el(B)),P.provide(Ro,a);const Y=P.unmount;xt.add(P),P.unmount=function(){xt.delete(P),xt.size<1&&(c=_t,D&&D(),D=null,a.value=_t,Pt=!1,Q=!1),Y()}}};function Ke(P){return P.reduce((q,B)=>q.then(()=>U(B)),Promise.resolve())}return ft}function Ad(e,t){const n=[],r=[],o=[],s=Math.max(t.matched.length,e.matched.length);for(let i=0;iyn(c,l))?r.push(l):n.push(l));const a=e.matched[i];a&&(t.matched.find(c=>yn(c,a))||o.push(a))}return[n,r,o]}function sn(){return We(Yr)}function Ct(e){return We(ns)}var rs=Symbol(""),gt=()=>{const e=We(rs);if(!e)throw new Error("useClientData() is called without provider.");return e},Td=()=>gt().pageComponent,Ln=()=>gt().pageData,ut=()=>gt().pageFrontmatter,Rd=()=>gt().pageHead,Od=()=>gt().pageLang,Id=()=>gt().pageLayout,lr=()=>gt().routeLocale,Md=()=>gt().routes,Zl=()=>gt().siteData,os=()=>gt().siteLocaleData,Dd=Symbol(""),Oo=En(Cf),vn=En(Lf),ea=(e,t)=>{const n=pf(e,t);if(vn.value[n])return n;const r=encodeURI(n);if(vn.value[r])return r;const o=Oo.value[n]||Oo.value[r];return o||n},Jn=(e,t)=>{const{pathname:n,hashAndQueries:r}=jl(e),o=ea(n,t),s=o+r;return vn.value[o]?{...vn.value[o],path:s,notFound:!1}:{...vn.value["/404.html"],path:s,notFound:!0}},Hd=(e,t)=>{const{pathname:n,hashAndQueries:r}=jl(e);return ea(n,t)+r},Nd=e=>{if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget){const t=e.currentTarget.getAttribute("target");if(t!=null&&t.match(/\b_blank\b/i))return}return e.preventDefault(),!0}},Qr=ge({name:"RouteLink",props:{to:{type:String,required:!0},active:Boolean,activeClass:{type:String,default:"route-link-active"}},slots:Object,setup(e,{slots:t}){const n=sn(),r=Ct(),o=O(()=>e.to.startsWith("#")||e.to.startsWith("?")?e.to:`/${Hd(e.to,r.path).substring(1)}`);return()=>{var s;return Le("a",{class:["route-link",{[e.activeClass]:e.active}],href:o.value,onClick:(i={})=>{Nd(i)&&n.push(e.to).catch()}},(s=t.default)==null?void 0:s.call(t))}}}),Pn=ge({name:"AutoLink",props:{config:{type:Object,required:!0}},slots:Object,setup(e,{slots:t}){const n=pc(e,"config"),r=Ct(),o=Zl(),s=O(()=>ir(n.value.link)),i=O(()=>n.value.target||(s.value?"_blank":void 0)),l=O(()=>i.value==="_blank"),a=O(()=>!s.value&&!l.value),c=O(()=>n.value.rel||(l.value?"noopener noreferrer":null)),f=O(()=>n.value.ariaLabel??n.value.text),u=O(()=>{if(n.value.exact)return!1;const m=Object.keys(o.value.locales);return m.length?m.every(_=>_!==n.value.link):n.value.link!=="/"}),p=O(()=>a.value?n.value.activeMatch?(n.value.activeMatch instanceof RegExp?n.value.activeMatch:new RegExp(n.value.activeMatch,"u")).test(r.path):u.value?r.path.startsWith(n.value.link):r.path===n.value.link:!1);return()=>{const{before:m,after:_,default:C}=t,k=(C==null?void 0:C(n.value))||[m==null?void 0:m(n.value),n.value.text,_==null?void 0:_(n.value)];return a.value?Le(Qr,{class:"auto-link",to:n.value.link,active:p.value,"aria-label":f.value},()=>k):Le("a",{class:"auto-link external-link",href:n.value.link,"aria-label":f.value,rel:c.value,target:i.value},k)}}}),ss=ge({name:"ClientOnly",setup(e,t){const n=he(!1);return Ye(()=>{n.value=!0}),()=>{var r,o;return n.value?(o=(r=t.slots).default)==null?void 0:o.call(r):null}}}),is=ge({name:"Content",props:{path:{type:String,required:!1,default:""}},setup(e){const t=Td(),n=O(()=>{if(!e.path)return t.value;const r=Jn(e.path);return Lc(()=>r.loader().then(({comp:o})=>o))});return()=>Le(n.value)}}),$d="Layout",jd="en-US",Gt=er({resolveLayouts:e=>e.reduce((t,n)=>({...t,...n.layouts}),{}),resolvePageHead:(e,t,n)=>{const r=lt(t.description)?t.description:n.description,o=[...Array.isArray(t.head)?t.head:[],...n.head,["title",{},e],["meta",{name:"description",content:r}]];return yf(o)},resolvePageHeadTitle:(e,t)=>[e.title,t.title].filter(n=>!!n).join(" | "),resolvePageLang:(e,t)=>e.lang||t.lang||jd,resolvePageLayout:(e,t)=>{const n=lt(e.frontmatter.layout)?e.frontmatter.layout:$d;if(!t[n])throw new Error(`[vuepress] Cannot resolve layout: ${n}`);return t[n]},resolveRouteLocale:(e,t)=>mf(e,decodeURI(t)),resolveSiteLocaleData:({base:e,locales:t,...n},r)=>{var o;return{...n,...t[r],head:[...((o=t[r])==null?void 0:o.head)??[],...n.head??[]]}}}),Lt=(e={})=>e,ls=e=>Gr(e)?e:`/${Fl(e)}`;function Xr(e){return Bi()?(ja(e),!0):!1}function mt(e){return typeof e=="function"?e():tn(e)}const as=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Vd=Object.prototype.toString,Fd=e=>Vd.call(e)==="[object Object]",Io=()=>{};function ta(e,t){function n(...r){return new Promise((o,s)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(o).catch(s)})}return n}const na=e=>e();function Bd(e,t={}){let n,r,o=Io;const s=l=>{clearTimeout(l),o(),o=Io};return l=>{const a=mt(e),c=mt(t.maxWait);return n&&s(n),a<=0||c!==void 0&&c<=0?(r&&(s(r),r=null),Promise.resolve(l())):new Promise((f,u)=>{o=t.rejectOnCancel?u:f,c&&!r&&(r=setTimeout(()=>{n&&s(n),r=null,f(l())},c)),n=setTimeout(()=>{r&&s(r),r=null,f(l())},a)})}}function zd(e=na){const t=he(!0);function n(){t.value=!1}function r(){t.value=!0}const o=(...s)=>{t.value&&e(...s)};return{isActive:Vr(t),pause:n,resume:r,eventFilter:o}}function Wd(e){let t;function n(){return t||(t=e()),t}return n.reset=async()=>{const r=t;t=void 0,r&&await r},n}function Ud(e){return Kr()}function Kd(e,t=200,n={}){return ta(Bd(t,n),e)}function qd(e,t,n={}){const{eventFilter:r=na,...o}=n;return $e(e,ta(r,t),o)}function Gd(e,t,n={}){const{eventFilter:r,...o}=n,{eventFilter:s,pause:i,resume:l,isActive:a}=zd(r);return{stop:qd(e,t,{...o,eventFilter:s}),pause:i,resume:l,isActive:a}}function cs(e,t=!0,n){Ud()?Ye(e,n):t?e():Cn(e)}function Jd(e,t,n={}){const{immediate:r=!0}=n,o=he(!1);let s=null;function i(){s&&(clearTimeout(s),s=null)}function l(){o.value=!1,i()}function a(...c){i(),o.value=!0,s=setTimeout(()=>{o.value=!1,s=null,e(...c)},mt(t))}return r&&(o.value=!0,as&&a()),Xr(l),{isPending:Vr(o),start:a,stop:l}}function Yd(e=!1,t={}){const{truthyValue:n=!0,falsyValue:r=!1}=t,o=je(e),s=he(e);function i(l){if(arguments.length)return s.value=l,s.value;{const a=mt(n);return s.value=s.value===a?mt(r):a,s.value}}return o?i:[s,i]}function Xt(e){var t;const n=mt(e);return(t=n==null?void 0:n.$el)!=null?t:n}const St=as?window:void 0,ra=as?window.navigator:void 0;function ct(...e){let t,n,r,o;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,o]=e,t=St):[t,n,r,o]=e,!t)return Io;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const s=[],i=()=>{s.forEach(f=>f()),s.length=0},l=(f,u,p,m)=>(f.addEventListener(u,p,m),()=>f.removeEventListener(u,p,m)),a=$e(()=>[Xt(t),mt(o)],([f,u])=>{if(i(),!f)return;const p=Fd(u)?{...u}:u;s.push(...n.flatMap(m=>r.map(_=>l(f,m,_,p))))},{immediate:!0,flush:"post"}),c=()=>{a(),i()};return Xr(c),c}function Qd(){const e=he(!1),t=Kr();return t&&Ye(()=>{e.value=!0},t),e}function Zr(e){const t=Qd();return O(()=>(t.value,!!e()))}function us(e,t={}){const{window:n=St}=t,r=Zr(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let o;const s=he(!1),i=c=>{s.value=c.matches},l=()=>{o&&("removeEventListener"in o?o.removeEventListener("change",i):o.removeListener(i))},a=cu(()=>{r.value&&(l(),o=n.matchMedia(mt(e)),"addEventListener"in o?o.addEventListener("change",i):o.addListener(i),s.value=o.matches)});return Xr(()=>{a(),l(),o=void 0}),s}function Ei(e,t={}){const{controls:n=!1,navigator:r=ra}=t,o=Zr(()=>r&&"permissions"in r);let s;const i=typeof e=="string"?{name:e}:e,l=he(),a=()=>{s&&(l.value=s.state)},c=Wd(async()=>{if(o.value){if(!s)try{s=await r.permissions.query(i),ct(s,"change",a),a()}catch{l.value="prompt"}return s}});return c(),n?{state:l,isSupported:o,query:c}:l}function Xd(e={}){const{navigator:t=ra,read:n=!1,source:r,copiedDuring:o=1500,legacy:s=!1}=e,i=Zr(()=>t&&"clipboard"in t),l=Ei("clipboard-read"),a=Ei("clipboard-write"),c=O(()=>i.value||s),f=he(""),u=he(!1),p=Jd(()=>u.value=!1,o);function m(){i.value&&I(l.value)?t.clipboard.readText().then(w=>{f.value=w}):f.value=k()}c.value&&n&&ct(["copy","cut"],m);async function _(w=mt(r)){c.value&&w!=null&&(i.value&&I(a.value)?await t.clipboard.writeText(w):C(w),f.value=w,u.value=!0,p.start())}function C(w){const g=document.createElement("textarea");g.value=w??"",g.style.position="absolute",g.style.opacity="0",document.body.appendChild(g),g.select(),document.execCommand("copy"),g.remove()}function k(){var w,g,S;return(S=(g=(w=document==null?void 0:document.getSelection)==null?void 0:w.call(document))==null?void 0:g.toString())!=null?S:""}function I(w){return w==="granted"||w==="prompt"}return{isSupported:c,text:f,copied:u,copy:_}}const vr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},_r="__vueuse_ssr_handlers__",Zd=eh();function eh(){return _r in vr||(vr[_r]=vr[_r]||{}),vr[_r]}function th(e,t){return Zd[e]||t}function nh(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const rh={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Ci="vueuse-storage";function fs(e,t,n,r={}){var o;const{flush:s="pre",deep:i=!0,listenToStorageChanges:l=!0,writeDefaults:a=!0,mergeDefaults:c=!1,shallow:f,window:u=St,eventFilter:p,onError:m=L=>{console.error(L)},initOnMounted:_}=r,C=(f?En:he)(typeof t=="function"?t():t);if(!n)try{n=th("getDefaultStorage",()=>{var L;return(L=St)==null?void 0:L.localStorage})()}catch(L){m(L)}if(!n)return C;const k=mt(t),I=nh(k),w=(o=r.serializer)!=null?o:rh[I],{pause:g,resume:S}=Gd(C,()=>H(C.value),{flush:s,deep:i,eventFilter:p});u&&l&&cs(()=>{ct(u,"storage",b),ct(u,Ci,U),_&&b()}),_||b();function $(L,F){u&&u.dispatchEvent(new CustomEvent(Ci,{detail:{key:e,oldValue:L,newValue:F,storageArea:n}}))}function H(L){try{const F=n.getItem(e);if(L==null)$(F,null),n.removeItem(e);else{const y=w.write(L);F!==y&&(n.setItem(e,y),$(F,y))}}catch(F){m(F)}}function M(L){const F=L?L.newValue:n.getItem(e);if(F==null)return a&&k!=null&&n.setItem(e,w.write(k)),k;if(!L&&c){const y=w.read(F);return typeof c=="function"?c(y,k):I==="object"&&!Array.isArray(y)?{...k,...y}:y}else return typeof F!="string"?F:w.read(F)}function b(L){if(!(L&&L.storageArea!==n)){if(L&&L.key==null){C.value=k;return}if(!(L&&L.key!==e)){g();try{(L==null?void 0:L.newValue)!==w.write(C.value)&&(C.value=M(L))}catch(F){m(F)}finally{L?Cn(S):S()}}}}function U(L){b(L.detail)}return C}function oh(e){return us("(prefers-color-scheme: dark)",e)}function sh(e,t,n={}){const{window:r=St,...o}=n;let s;const i=Zr(()=>r&&"ResizeObserver"in r),l=()=>{s&&(s.disconnect(),s=void 0)},a=O(()=>Array.isArray(e)?e.map(u=>Xt(u)):[Xt(e)]),c=$e(a,u=>{if(l(),i.value&&r){s=new ResizeObserver(t);for(const p of u)p&&s.observe(p,o)}},{immediate:!0,flush:"post"}),f=()=>{l(),c()};return Xr(f),{isSupported:i,stop:f}}function ih(e,t={width:0,height:0},n={}){const{window:r=St,box:o="content-box"}=n,s=O(()=>{var u,p;return(p=(u=Xt(e))==null?void 0:u.namespaceURI)==null?void 0:p.includes("svg")}),i=he(t.width),l=he(t.height),{stop:a}=sh(e,([u])=>{const p=o==="border-box"?u.borderBoxSize:o==="content-box"?u.contentBoxSize:u.devicePixelContentBoxSize;if(r&&s.value){const m=Xt(e);if(m){const _=m.getBoundingClientRect();i.value=_.width,l.value=_.height}}else if(p){const m=Array.isArray(p)?p:[p];i.value=m.reduce((_,{inlineSize:C})=>_+C,0),l.value=m.reduce((_,{blockSize:C})=>_+C,0)}else i.value=u.contentRect.width,l.value=u.contentRect.height},n);cs(()=>{const u=Xt(e);u&&(i.value="offsetWidth"in u?u.offsetWidth:t.width,l.value="offsetHeight"in u?u.offsetHeight:t.height)});const c=$e(()=>Xt(e),u=>{i.value=u?t.width:0,l.value=u?t.height:0});function f(){a(),c()}return{width:i,height:l,stop:f}}function lh(e,t,n={}){const{window:r=St}=n;return fs(e,t,r==null?void 0:r.sessionStorage,n)}function ah(e={}){const{window:t=St,behavior:n="auto"}=e;if(!t)return{x:he(0),y:he(0)};const r=he(t.scrollX),o=he(t.scrollY),s=O({get(){return r.value},set(l){scrollTo({left:l,behavior:n})}}),i=O({get(){return o.value},set(l){scrollTo({top:l,behavior:n})}});return ct(t,"scroll",()=>{r.value=t.scrollX,o.value=t.scrollY},{capture:!1,passive:!0}),{x:s,y:i}}function ch(e={}){const{window:t=St,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:r=Number.POSITIVE_INFINITY,listenOrientation:o=!0,includeScrollbar:s=!0}=e,i=he(n),l=he(r),a=()=>{t&&(s?(i.value=t.innerWidth,l.value=t.innerHeight):(i.value=t.document.documentElement.clientWidth,l.value=t.document.documentElement.clientHeight))};if(a(),cs(a),ct("resize",a,{passive:!0}),o){const c=us("(orientation: portrait)");$e(c,()=>a())}return{width:i,height:l}}const Li=async(e,t)=>{const{path:n,query:r}=e.currentRoute.value,{scrollBehavior:o}=e.options;e.options.scrollBehavior=void 0,await e.replace({path:n,query:r,hash:t}),e.options.scrollBehavior=o},uh=({headerLinkSelector:e,headerAnchorSelector:t,delay:n,offset:r=5})=>{const o=sn();ct("scroll",Kd(()=>{var _,C;const i=Math.max(window.scrollY,document.documentElement.scrollTop,document.body.scrollTop);if(Math.abs(i-0)u.some(I=>I.hash===k.hash));for(let k=0;k=(((_=I.parentElement)==null?void 0:_.offsetTop)??0)-r,S=!w||i<(((C=w.parentElement)==null?void 0:C.offsetTop)??0)-r;if(!(g&&S))continue;const H=decodeURIComponent(o.currentRoute.value.hash),M=decodeURIComponent(I.hash);if(H===M)return;if(f){for(let b=k+1;b{const t=lr();return O(()=>e[t.value]??{})},vh=()=>{const e=Md();return O(()=>Object.keys(e.value))},go=(e,t)=>{var r;const n=(r=Kr())==null?void 0:r.appContext.components;return n?e in n||et(e)in n||Xn(et(e))in n:!1},sa=e=>new Promise(t=>setTimeout(t,e)),_h=({selector:e=[...new Array(6)].map((r,o)=>`#vp-content h${o+1}`).join(","),levels:t=2,ignore:n=[]}={})=>{const r=Array.from(document.querySelectorAll(e)).filter(o=>o.id&&o.hasChildNodes()).map(o=>{const s=Number(o.tagName[1]);return{element:o,title:bh(o,n),link:"#"+o.id,slug:o.id,level:s}});return yh(r,t)},bh=(e,t=[])=>{let n="";if(t.length){const r=e.cloneNode(!0);r.querySelectorAll(t.join(",")).forEach(o=>o.remove()),n=r.textContent||""}else n=e.textContent||"";return n.trim()},yh=(e,t=2)=>{if(t===!1)return[];const[n,r]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;e=e.filter(s=>s.level>=n&&s.level<=r);const o=[];e:for(let s=0;s=0;l--){const a=e[l];if(a.levellt(e)&&e.startsWith(t),wh=Object.keys,la=e=>ia(e,"/");var Sh={"/eng/":{backToTop:"Back to top"},"/":{backToTop:"Вернуться к началу"}};const Eh=ge({name:"BackToTop",setup(){const e=ut(),t=oa(Sh),n=En(),{height:r}=ih(n),{height:o}=ch(),{y:s}=ah(),i=O(()=>e.value.backToTop!==!1&&s.value>100),l=O(()=>s.value/(r.value-o.value)*100);return Ye(()=>{n.value=document.body}),()=>Le(sr,{name:"back-to-top"},()=>i.value?Le("button",{type:"button",class:"vp-back-to-top-button","aria-label":t.value.backToTop,onClick:()=>{window.scrollTo({top:0,behavior:"smooth"})}},[Le("span",{class:"vp-scroll-progress",role:"progressbar","aria-labelledby":"loadinglabel","aria-valuenow":l.value},Le("svg",Le("circle",{cx:"26",cy:"26",r:"24",fill:"none",stroke:"currentColor","stroke-width":"4","stroke-dasharray":`${Math.PI*l.value*.48} ${Math.PI*(100-l.value)*.48}`}))),Le("div",{class:"back-to-top-icon"})]):null)}}),Ch=Lt({rootComponents:[Eh]}),Lh=Object.freeze(Object.defineProperty({__proto__:null,default:Ch},Symbol.toStringTag,{value:"Module"})),Ph=/language-(shellscript|shell|bash|sh|zsh)/,xh=({delay:e=500,duration:t=2e3,locales:n,selector:r,showInMobile:o,ignoreSelector:s=[],transform:i})=>{const l=us("(max-width: 419px)"),a=O(()=>!l.value||o),c=oa(n),f=Ln(),u=k=>{var w;if(k.hasAttribute("copy-code-registered"))return;const I=document.createElement("button");I.type="button",I.classList.add("vp-copy-code-button"),I.setAttribute("aria-label",c.value.copy),I.setAttribute("data-copied",c.value.copied),(w=k.parentElement)==null||w.insertBefore(I,k),k.setAttribute("copy-code-registered","")};$e(()=>[f.value.path,a.value],async()=>{document.body.classList.toggle("copy-code-disabled",!a.value),a.value&&(await Cn(),await sa(e),document.querySelectorAll(r.join(",")).forEach(u))},{immediate:!0});const{copy:m}=Xd({legacy:!0}),_=new WeakMap,C=(k,I,w)=>{const g=I.cloneNode(!0);s.length&&g.querySelectorAll(s.join(",")).forEach($=>$.remove()),i&&i(g);let S=g.textContent||"";Ph.test(k.className)&&(S=S.replace(/^ *(\$|>) /gm,"")),m(S).then(()=>{if(t<=0)return;w.classList.add("copied"),clearTimeout(_.get(w));const $=setTimeout(()=>{w.classList.remove("copied"),w.blur(),_.delete(w)},t);_.set(w,$)})};ct("click",k=>{const I=k.target;if(a.value&&I.matches('div[class*="language-"] > button.vp-copy-code-button')){const w=I.parentElement,g=I.nextElementSibling;if(!w||!g)return;C(w,g,I)}})};var kh={"/eng/":{copy:"Copy code",copied:"Copied"},"/":{copy:"Скопировать код",copied:"Скопировано"}},Ah=['.theme-default-content div[class*="language-"] pre'];const Th=Lt({setup:()=>{xh({selector:Ah,locales:kh,duration:2e3,delay:500,showInMobile:!1})}}),Rh=Object.freeze(Object.defineProperty({__proto__:null,default:Th},Symbol.toStringTag,{value:"Module"}));/*! medium-zoom 1.1.0 | MIT License | https://github.com/francoischalifour/medium-zoom */var Jt=Object.assign||function(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{},r=window.Promise||function(y){function D(){}y(D,D)},o=function(y){var D=y.target;if(D===U){_();return}g.indexOf(D)!==-1&&C({target:D})},s=function(){if(!($||!b.original)){var y=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;Math.abs(H-y)>M.scrollOffset&&setTimeout(_,150)}},i=function(y){var D=y.key||y.keyCode;(D==="Escape"||D==="Esc"||D===27)&&_()},l=function(){var y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},D=y;if(y.background&&(U.style.background=y.background),y.container&&y.container instanceof Object&&(D.container=Jt({},M.container,y.container)),y.template){var te=Cr(y.template)?y.template:document.querySelector(y.template);D.template=te}return M=Jt({},M,D),g.forEach(function(re){re.dispatchEvent(cn("medium-zoom:update",{detail:{zoom:L}}))}),L},a=function(){var y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return e(Jt({},M,y))},c=function(){for(var y=arguments.length,D=Array(y),te=0;te0?D.reduce(function(R,Q){return[].concat(R,xi(Q))},[]):g;return re.forEach(function(R){R.classList.remove("medium-zoom-image"),R.dispatchEvent(cn("medium-zoom:detach",{detail:{zoom:L}}))}),g=g.filter(function(R){return re.indexOf(R)===-1}),L},u=function(y,D){var te=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return g.forEach(function(re){re.addEventListener("medium-zoom:"+y,D,te)}),S.push({type:"medium-zoom:"+y,listener:D,options:te}),L},p=function(y,D){var te=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return g.forEach(function(re){re.removeEventListener("medium-zoom:"+y,D,te)}),S=S.filter(function(re){return!(re.type==="medium-zoom:"+y&&re.listener.toString()===D.toString())}),L},m=function(){var y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},D=y.target,te=function(){var R={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight,left:0,top:0,right:0,bottom:0},Q=void 0,K=void 0;if(M.container)if(M.container instanceof Object)R=Jt({},R,M.container),Q=R.width-R.left-R.right-M.margin*2,K=R.height-R.top-R.bottom-M.margin*2;else{var Oe=Cr(M.container)?M.container:document.querySelector(M.container),Ne=Oe.getBoundingClientRect(),Ue=Ne.width,Ve=Ne.height,Pt=Ne.left,xt=Ne.top;R=Jt({},R,{width:Ue,height:Ve,left:Pt,top:xt})}Q=Q||R.width-M.margin*2,K=K||R.height-M.margin*2;var ft=b.zoomedHd||b.original,Ke=Pi(ft)?Q:ft.naturalWidth||Q,P=Pi(ft)?K:ft.naturalHeight||K,q=ft.getBoundingClientRect(),B=q.top,Y=q.left,ce=q.width,be=q.height,d=Math.min(Math.max(ce,Ke),Q)/ce,h=Math.min(Math.max(be,P),K)/be,v=Math.min(d,h),x=(-Y+(Q-ce)/2+M.margin+R.left)/v,E=(-B+(K-be)/2+M.margin+R.top)/v,T="scale("+v+") translate3d("+x+"px, "+E+"px, 0)";b.zoomed.style.transform=T,b.zoomedHd&&(b.zoomedHd.style.transform=T)};return new r(function(re){if(D&&g.indexOf(D)===-1){re(L);return}var R=function Ue(){$=!1,b.zoomed.removeEventListener("transitionend",Ue),b.original.dispatchEvent(cn("medium-zoom:opened",{detail:{zoom:L}})),re(L)};if(b.zoomed){re(L);return}if(D)b.original=D;else if(g.length>0){var Q=g;b.original=Q[0]}else{re(L);return}if(b.original.dispatchEvent(cn("medium-zoom:open",{detail:{zoom:L}})),H=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,$=!0,b.zoomed=Mh(b.original),document.body.appendChild(U),M.template){var K=Cr(M.template)?M.template:document.querySelector(M.template);b.template=document.createElement("div"),b.template.appendChild(K.content.cloneNode(!0)),document.body.appendChild(b.template)}if(b.original.parentElement&&b.original.parentElement.tagName==="PICTURE"&&b.original.currentSrc&&(b.zoomed.src=b.original.currentSrc),document.body.appendChild(b.zoomed),window.requestAnimationFrame(function(){document.body.classList.add("medium-zoom--opened")}),b.original.classList.add("medium-zoom-image--hidden"),b.zoomed.classList.add("medium-zoom-image--opened"),b.zoomed.addEventListener("click",_),b.zoomed.addEventListener("transitionend",R),b.original.getAttribute("data-zoom-src")){b.zoomedHd=b.zoomed.cloneNode(),b.zoomedHd.removeAttribute("srcset"),b.zoomedHd.removeAttribute("sizes"),b.zoomedHd.removeAttribute("loading"),b.zoomedHd.src=b.zoomed.getAttribute("data-zoom-src"),b.zoomedHd.onerror=function(){clearInterval(Oe),console.warn("Unable to reach the zoom image target "+b.zoomedHd.src),b.zoomedHd=null,te()};var Oe=setInterval(function(){b.zoomedHd.complete&&(clearInterval(Oe),b.zoomedHd.classList.add("medium-zoom-image--opened"),b.zoomedHd.addEventListener("click",_),document.body.appendChild(b.zoomedHd),te())},10)}else if(b.original.hasAttribute("srcset")){b.zoomedHd=b.zoomed.cloneNode(),b.zoomedHd.removeAttribute("sizes"),b.zoomedHd.removeAttribute("loading");var Ne=b.zoomedHd.addEventListener("load",function(){b.zoomedHd.removeEventListener("load",Ne),b.zoomedHd.classList.add("medium-zoom-image--opened"),b.zoomedHd.addEventListener("click",_),document.body.appendChild(b.zoomedHd),te()})}else te()})},_=function(){return new r(function(y){if($||!b.original){y(L);return}var D=function te(){b.original.classList.remove("medium-zoom-image--hidden"),document.body.removeChild(b.zoomed),b.zoomedHd&&document.body.removeChild(b.zoomedHd),document.body.removeChild(U),b.zoomed.classList.remove("medium-zoom-image--opened"),b.template&&document.body.removeChild(b.template),$=!1,b.zoomed.removeEventListener("transitionend",te),b.original.dispatchEvent(cn("medium-zoom:closed",{detail:{zoom:L}})),b.original=null,b.zoomed=null,b.zoomedHd=null,b.template=null,y(L)};$=!0,document.body.classList.remove("medium-zoom--opened"),b.zoomed.style.transform="",b.zoomedHd&&(b.zoomedHd.style.transform=""),b.template&&(b.template.style.transition="opacity 150ms",b.template.style.opacity=0),b.original.dispatchEvent(cn("medium-zoom:close",{detail:{zoom:L}})),b.zoomed.addEventListener("transitionend",D)})},C=function(){var y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},D=y.target;return b.original?_():m({target:D})},k=function(){return M},I=function(){return g},w=function(){return b.original},g=[],S=[],$=!1,H=0,M=n,b={original:null,zoomed:null,zoomedHd:null,template:null};Object.prototype.toString.call(t)==="[object Object]"?M=t:(t||typeof t=="string")&&c(t),M=Jt({margin:0,background:"#fff",scrollOffset:40,container:null,template:null},M);var U=Ih(M.background);document.addEventListener("click",o),document.addEventListener("keyup",i),document.addEventListener("scroll",s),window.addEventListener("resize",_);var L={open:m,close:_,toggle:C,update:l,clone:a,attach:c,detach:f,on:u,off:p,getOptions:k,getImages:I,getZoomedImage:w};return L};function Hh(e,t){t===void 0&&(t={});var n=t.insertAt;if(!(typeof document>"u")){var r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",n==="top"&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}var Nh=".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}";Hh(Nh);const $h=Symbol("mediumZoom");var jh={};const Vh=".theme-default-content > img, .theme-default-content :not(a) > img",Fh=jh,Bh=300,zh=Lt({enhance({app:e,router:t}){const n=Dh(Fh);n.refresh=(r=Vh)=>{n.detach(),n.attach(r)},e.provide($h,n),t.afterEach(()=>{sa(Bh).then(()=>n.refresh())})}}),Wh=Object.freeze(Object.defineProperty({__proto__:null,default:zh},Symbol.toStringTag,{value:"Module"}));/** + * NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT + */const ue={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=ue.isStarted();e=vo(e,ue.settings.minimum,1),ue.status=e===1?null:e;const n=ue.render(!t),r=n.querySelector(ue.settings.barSelector),o=ue.settings.speed,s=ue.settings.easing;return n.offsetWidth,Uh(i=>{yr(r,{transform:"translate3d("+ki(e)+"%,0,0)",transition:"all "+o+"ms "+s}),e===1?(yr(n,{transition:"none",opacity:"1"}),n.offsetWidth,setTimeout(()=>{yr(n,{transition:"all "+o+"ms linear",opacity:"0"}),setTimeout(()=>{ue.remove(),i()},o)},o)):setTimeout(()=>i(),o)}),ue},isStarted:()=>typeof ue.status=="number",start:()=>{ue.status||ue.set(0);const e=()=>{setTimeout(()=>{ue.status&&(ue.trickle(),e())},ue.settings.trickleSpeed)};return ue.settings.trickle&&e(),ue},done:e=>!e&&!ue.status?ue:ue.inc(.3+.5*Math.random()).set(1),inc:e=>{let t=ue.status;return t?(typeof e!="number"&&(e=(1-t)*vo(Math.random()*t,.1,.95)),t=vo(t+e,0,.994),ue.set(t)):ue.start()},trickle:()=>ue.inc(Math.random()*ue.settings.trickleRate),render:e=>{if(ue.isRendered())return document.getElementById("nprogress");Ai(document.documentElement,"nprogress-busy");const t=document.createElement("div");t.id="nprogress",t.innerHTML=ue.settings.template;const n=t.querySelector(ue.settings.barSelector),r=e?"-100":ki(ue.status||0),o=document.querySelector(ue.settings.parent);return yr(n,{transition:"all 0 linear",transform:"translate3d("+r+"%,0,0)"}),o!==document.body&&Ai(o,"nprogress-custom-parent"),o==null||o.appendChild(t),t},remove:()=>{Ti(document.documentElement,"nprogress-busy"),Ti(document.querySelector(ue.settings.parent),"nprogress-custom-parent");const e=document.getElementById("nprogress");e&&Kh(e)},isRendered:()=>!!document.getElementById("nprogress")},vo=(e,t,n)=>en?n:e,ki=e=>(-1+e)*100,Uh=function(){const e=[];function t(){const n=e.shift();n&&n(t)}return function(n){e.push(n),e.length===1&&t()}}(),yr=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 r(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 o(i){return i=n(i),t[i]??(t[i]=r(i))}function s(i,l,a){l=o(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)}}}(),aa=(e,t)=>(typeof e=="string"?e:ds(e)).indexOf(" "+t+" ")>=0,Ai=(e,t)=>{const n=ds(e),r=n+t;aa(n,t)||(e.className=r.substring(1))},Ti=(e,t)=>{const n=ds(e);if(!aa(e,t))return;const r=n.replace(" "+t+" "," ");e.className=r.substring(1,r.length-1)},ds=e=>(" "+(e.className||"")+" ").replace(/\s+/gi," "),Kh=e=>{e&&e.parentNode&&e.parentNode.removeChild(e)},qh=()=>{Ye(()=>{const e=sn(),t=new Set;t.add(e.currentRoute.value.path),e.beforeEach(n=>{t.has(n.path)||ue.start()}),e.afterEach(n=>{t.add(n.path),ue.done()})})},Gh=Lt({setup(){qh()}}),Jh=Object.freeze(Object.defineProperty({__proto__:null,default:Gh},Symbol.toStringTag,{value:"Module"})),Yh=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),Qh=JSON.parse(`{"repo":"https://git.pleshevski.ru/pleshevskiy/pleshevski.ru","locales":{"/":{"selectLanguageName":"Русский","navbar":["/","/works"],"notFound":["Верните страницу!","Мы потеряли страницу...","Вы заблокированы в лабиринте.","Искали кота?","Страница украдена.","Ошиблись в параллельной вселенной."],"backToHome":"Вернуться на главную","worksTable":{"name":"Название","description":"Описание","role":"Роль","technologies":"Технологии","start":"Начало","statusOrEnd":"Статус/Окончание"}},"/eng/":{"selectLanguageName":"English","navbar":["/eng/","/eng/works"],"notFound":["Return the page!","We lost a page...","You're blocked in a labyrinth.","Looking for a cat?","The page has been stolen.","Wrong turn in parallel universe."],"backToHome":"Back to home","worksTable":{"name":"Name","description":"Description","role":"Role","technologies":"Technologies","start":"Start","statusOrEnd":"Status/End"}}},"colorMode":"auto","colorModeSwitch":true,"navbar":[],"logo":null,"selectLanguageText":"Languages","selectLanguageAriaLabel":"Select language","sidebar":"heading","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"}`),Xh=he(Qh),ca=()=>Xh,ua=Symbol(""),Zh=()=>{const e=We(ua);if(!e)throw new Error("useThemeLocaleData() is called without provider.");return e},ep=(e,t)=>{const{locales:n,...r}=e;return{...r,...n==null?void 0:n[t]}},tp=Lt({enhance({app:e}){const t=ca(),n=e._context.provides[rs],r=O(()=>ep(t.value,n.routeLocale.value));e.provide(ua,r),Object.defineProperties(e.config.globalProperties,{$theme:{get(){return t.value}},$themeLocale:{get(){return r.value}}})}}),np=Object.freeze(Object.defineProperty({__proto__:null,default:tp},Symbol.toStringTag,{value:"Module"})),rp=()=>ca(),Te=()=>Zh(),fa=Symbol(""),op=e=>{const t=(n=e.value)=>{const r=window.document.documentElement;r.classList.toggle("dark",n),r.dataset.theme=n?"dark":"light"};Ye(()=>{$e(e,t,{immediate:!0})}),Wr(()=>t())},hs=()=>{const e=We(fa);if(!e)throw new Error("useDarkMode() is called without provider.");return e},sp=()=>{const e=Te(),t=oh(),n=fs("vuepress-color-scheme",e.value.colorMode),r=O({get(){return e.value.colorModeSwitch?n.value==="auto"?t.value:n.value==="dark":e.value.colorMode==="dark"},set(o){o===t.value?n.value="auto":n.value=o?"dark":"light"}});nn(fa,r),op(r)};let _o=null,On=null;const ip={wait:()=>_o,pending:()=>{_o=new Promise(e=>On=e)},resolve:()=>{On==null||On(),_o=null,On=null}},da=()=>ip,Sn=(e,t)=>{const{notFound:n,meta:r,path:o}=Jn(e,t);return n?{text:o,link:o}:{text:r.title||o,link:o}},Ri=e=>decodeURI(e).replace(/#.*$/,"").replace(/(index)?\.(md|html)$/,""),lp=(e,t)=>{if(t.hash===e)return!0;const n=Ri(t.path),r=Ri(e);return n===r},ha=(e,t)=>e.link&&lp(e.link,t)?!0:"children"in e?e.children.some(n=>ha(n,t)):!1,pa=e=>!df(e)&&!ir(e),ma=e=>!Gr(e)||/github\.com/.test(e)?"GitHub":/bitbucket\.org/.test(e)?"Bitbucket":/gitlab\.com/.test(e)?"GitLab":/gitee\.com/.test(e)?"Gitee":null,ap={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"},cp=({docsRepo:e,editLinkPattern:t})=>{if(t)return t;const n=ma(e);return n!==null?ap[n]:null},up=({docsRepo:e,docsBranch:t,docsDir:n,filePathRelative:r,editLinkPattern:o})=>{if(!r)return null;const s=cp({docsRepo:e,editLinkPattern:o});return s?s.replace(/:repo/,Gr(e)?e:`https://github.com/${e}`).replace(/:branch/,t).replace(/:path/,Fl(`${Vl(n)}/${r}`)):null},_n=(e="",t="")=>la(t)||ir(t)?t:`${wf(e)}${t}`,Lr=he([]),fp=()=>{const e=sn(),t=Te(),n=ut(),r=O(()=>n.value.sidebarDepth??t.value.sidebarDepth??2);e.beforeEach((s,i)=>{s.path!==i.path&&(Lr.value=[])});const o=()=>{if(r.value<=0){Lr.value=[];return}Lr.value=_h({selector:[...new Array(6)].map((s,i)=>`.theme-default-content h${i+1}`).join(","),levels:[2,r.value+1],ignore:[".vp-badge"]})};$e(r,o),Ye(o)},dp=()=>Lr,ga=Symbol("sidebarItems"),ps=()=>{const e=We(ga);if(!e)throw new Error("useSidebarItems() is called without provider.");return e},hp=()=>{const e=Te(),t=ut(),n=Ln(),r=Ct(),o=lr(),s=dp(),i=O(()=>t.value.home?!1:t.value.sidebar??e.value.sidebar??"heading"),l=O(()=>pp(i.value,n.value,r.path,o.value,s.value));nn(ga,l)},pp=(e,t,n,r,o)=>e===!1?[]:e==="heading"?va(t,o):Array.isArray(e)?_a(e,o,n,r):es(e)?gp(e,t,o,n):[],mp=e=>({text:e.title,link:e.link,children:ms(e.children)}),ms=e=>e?e.map(t=>mp(t)):[],va=(e,t)=>[{text:e.title,children:ms(t)}],_a=(e,t,n,r="")=>{const o=(s,i)=>{var a;const l=lt(s)?Sn(_n(i,s)):lt(s.link)?{...s,link:pa(s.link)?Sn(_n(i,s.link)).link:s.link}:s;if("children"in l)return{...l,children:l.children.map(c=>o(c,_n(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:ms(c)}}return l};return e.map(s=>o(s,r))},gp=(e,t,n,r)=>{const o=wh(e).sort((s,i)=>i.length-s.length);for(const s of o)if(ia(decodeURI(r),s)){const i=e[s];return i?i==="heading"?va(t,n):_a(i,n,r,s):[]}return console.warn(`${decodeURI(r)} is missing sidebar config.`),[]},vp=ge({__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}}),Se=(e,t)=>{const n=e.__vccOpts||e;for(const[r,o]of t)n[r]=o;return n};function _p(e,t,n,r,o,s){return W(),ee("span",{class:Ge(["vp-badge",n.type]),style:Zn({verticalAlign:n.vertical})},[Pe(e.$slots,"default",{},()=>[Vt(de(n.text),1)])],6)}const bp=Se(vp,[["render",_p],["__file","Badge.vue"]]),yp=ge({name:"CodeGroup",slots:Object,setup(e,{slots:t}){const n=he([]),r=he(-1),o=fs("vuepress-code-group",{}),s=O(()=>n.value.map(c=>c.innerText).join(","));Ye(()=>{$e(()=>o.value[s.value],(c=-1)=>{r.value!==c&&(r.value=c)},{immediate:!0}),$e(r,c=>{o.value[s.value]!==c&&(o.value[s.value]=c)})});const i=(c=r.value)=>{c{c>0?r.value=c-1:r.value=n.value.length-1,n.value[r.value].focus()},a=(c,f)=>{c.key===" "||c.key==="Enter"?(c.preventDefault(),r.value=f):c.key==="ArrowRight"?(c.preventDefault(),i(f)):c.key==="ArrowLeft"&&(c.preventDefault(),l(f))};return()=>{var f;const c=(((f=t.default)==null?void 0:f.call(t))||[]).filter(u=>u.type.name==="CodeGroupItem").map(u=>(u.props===null&&(u.props={}),u));return c.length===0?null:(r.value<0||r.value>c.length-1?(r.value=c.findIndex(u=>u.props.active===""||u.props.active===!0),r.value===-1&&(r.value=0)):c.forEach((u,p)=>{u.props.active=p===r.value}),Le("div",{class:"code-group"},[Le("div",{class:"code-group-nav",role:"tablist"},c.map((u,p)=>{const m=p===r.value;return Le("button",{ref:_=>{_&&(n.value[p]=_)},class:{"code-group-nav-tab":!0,active:m},role:"tab",ariaSelected:m,onClick:()=>r.value=p,onKeydown:_=>a(_,p)},u.props.title)})),c]))}}}),wp=ge({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 Sp(e,t,n,r,o,s){return W(),ee("div",{class:Ge(["code-group-item",{active:n.active}]),role:"tabpanel"},[Pe(e.$slots,"default")],2)}const Ep=Se(wp,[["render",Sp],["__file","CodeGroupItem.vue"]]),Cp=ge({__name:"VPHomeFeatures",setup(e,{expose:t}){t();const n=ut(),r=O(()=>n.value.features??[]),o={frontmatter:n,features:r};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),Lp={key:0,class:"vp-features"};function Pp(e,t,n,r,o,s){return r.features.length?(W(),ee("div",Lp,[(W(!0),ee(ye,null,wt(r.features,i=>(W(),ee("div",{key:i.title,class:"vp-feature"},[J("h2",null,de(i.title),1),J("p",null,de(i.details),1)]))),128))])):Re("",!0)}const xp=Se(Cp,[["render",Pp],["__file","VPHomeFeatures.vue"]]),kp=ge({__name:"VPHomeFooter",setup(e,{expose:t}){t();const n=ut(),r=O(()=>n.value.footer),o=O(()=>n.value.footerHtml),s={frontmatter:n,footer:r,footerHtml:o};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}}),Ap=["innerHTML"],Tp=["textContent"];function Rp(e,t,n,r,o,s){return r.footer?(W(),ee(ye,{key:0},[r.footerHtml?(W(),ee("div",{key:0,class:"vp-footer",innerHTML:r.footer},null,8,Ap)):(W(),ee("div",{key:1,class:"vp-footer",textContent:de(r.footer)},null,8,Tp))],64)):Re("",!0)}const Op=Se(kp,[["render",Rp],["__file","VPHomeFooter.vue"]]),Ip=ge({__name:"VPHomeHero",setup(e,{expose:t}){t();const n=ut(),r=os(),o=hs(),s=O(()=>o.value&&n.value.heroImageDark!==void 0?n.value.heroImageDark:n.value.heroImage),i=O(()=>n.value.heroAlt||a.value||"hero"),l=O(()=>n.value.heroHeight||280),a=O(()=>n.value.heroText===null?null:n.value.heroText||r.value.title||"Hello"),c=O(()=>n.value.tagline===null?null:n.value.tagline||r.value.description||"Welcome to your VuePress site"),f=O(()=>Array.isArray(n.value.actions)?n.value.actions.map(({text:m,link:_,type:C="primary"})=>({text:m,link:_,type:C})):[]),p={frontmatter:n,siteLocale:r,isDarkMode:o,heroImage:s,heroAlt:i,heroHeight:l,heroText:a,tagline:c,actions:f,HomeHeroImage:()=>{if(!s.value)return null;const m=Le("img",{class:"vp-hero-image",src:ls(s.value),alt:i.value,height:l.value});return n.value.heroImageDark===void 0?m:Le(ss,()=>m)},get AutoLink(){return Pn}};return Object.defineProperty(p,"__isScriptSetup",{enumerable:!1,value:!0}),p}}),Mp={class:"vp-hero"},Dp={key:0,id:"main-title"},Hp={key:1,class:"vp-hero-description"},Np={key:2,class:"vp-hero-actions"};function $p(e,t,n,r,o,s){return W(),ee("header",Mp,[oe(r.HomeHeroImage),r.heroText?(W(),ee("h1",Dp,de(r.heroText),1)):Re("",!0),r.tagline?(W(),ee("p",Hp,de(r.tagline),1)):Re("",!0),r.actions.length?(W(),ee("p",Np,[(W(!0),ee(ye,null,wt(r.actions,i=>(W(),xe(r.AutoLink,{key:i.text,class:Ge(["vp-hero-action-button",[i.type]]),config:i},null,8,["class","config"]))),128))])):Re("",!0)])}const jp=Se(Ip,[["render",$p],["__file","VPHomeHero.vue"]]),Vp=ge({__name:"VPHome",setup(e,{expose:t}){t();const n={VPHomeFeatures:xp,VPHomeFooter:Op,VPHomeHero:jp,get Content(){return is}};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),Fp={class:"vp-home"},Bp={class:"theme-default-content"};function zp(e,t,n,r,o,s){return W(),ee("main",Fp,[oe(r.VPHomeHero),oe(r.VPHomeFeatures),J("div",Bp,[oe(r.Content)]),oe(r.VPHomeFooter)])}const Wp=Se(Vp,[["render",zp],["__file","VPHome.vue"]]),Up="719px",Kp={mobile:Up};var Yn;(function(e){e.MOBILE="mobile"})(Yn||(Yn={}));const qp={[Yn.MOBILE]:Number.parseInt(Kp.mobile.replace("px",""),10)},ba=(e,t)=>{const n=qp[e];Number.isInteger(n)&&(ct("orientationchange",()=>t(n),!1),ct("resize",()=>t(n),!1),Ye(()=>{t(n)}))},Gp=ge({__name:"VPNavbarBrand",setup(e,{expose:t}){t();const n=lr(),r=os(),o=Te(),s=hs(),i=O(()=>o.value.home||n.value),l=O(()=>r.value.title),a=O(()=>s.value&&o.value.logoDark!==void 0?o.value.logoDark:o.value.logo),c=O(()=>o.value.logoAlt??l.value),f=O(()=>l.value.toLocaleUpperCase().trim()===c.value.toLocaleUpperCase().trim()),p={routeLocale:n,siteLocale:r,themeLocale:o,isDarkMode:s,navbarBrandLink:i,navbarBrandTitle:l,navbarBrandLogo:a,navbarBrandLogoAlt:c,navBarLogoAltMatchesTitle:f,NavbarBrandLogo:()=>{if(!a.value)return null;const m=Le("img",{class:"vp-site-logo",src:ls(a.value),alt:c.value});return o.value.logoDark===void 0?m:Le(ss,()=>m)},get RouteLink(){return Qr}};return Object.defineProperty(p,"__isScriptSetup",{enumerable:!1,value:!0}),p}}),Jp=["aria-hidden"];function Yp(e,t,n,r,o,s){return W(),xe(r.RouteLink,{to:r.navbarBrandLink},{default:ke(()=>[oe(r.NavbarBrandLogo),r.navbarBrandTitle?(W(),ee("span",{key:0,class:Ge(["vp-site-name",{"vp-hide-mobile":r.navbarBrandLogo}]),"aria-hidden":r.navBarLogoAltMatchesTitle},de(r.navbarBrandTitle),11,Jp)):Re("",!0)]),_:1},8,["to"])}const Qp=Se(Gp,[["render",Yp],["__file","VPNavbarBrand.vue"]]),ya=(e,t="")=>lt(e)?Sn(_n(t,e)):"children"in e?{...e,children:e.children.map(n=>ya(n,_n(t,e.prefix)))}:{...e,link:pa(e.link)?Sn(_n(t,e.link)).link:e.link},Xp=()=>{const e=Te();return O(()=>(e.value.navbar||[]).map(t=>ya(t)))},Zp=()=>{const e=Te(),t=O(()=>e.value.repo),n=O(()=>t.value?ma(t.value):null),r=O(()=>t.value&&!Gr(t.value)?`https://github.com/${t.value}`:t.value),o=O(()=>r.value?e.value.repoLabel?e.value.repoLabel:n.value===null?"Source":n.value:null);return O(()=>!r.value||!o.value?[]:[{text:o.value,link:r.value}])},em=()=>{const e=Ct(),t=vh(),n=lr(),r=Zl(),o=os(),s=rp(),i=Te();return O(()=>{const l=Object.keys(r.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 I,w;const p=((I=r.value.locales)==null?void 0:I[u])??{},m=((w=s.value.locales)==null?void 0:w[u])??{},_=`${p.lang}`,C=m.selectLanguageName??_;if(_===o.value.lang)return{text:C,activeMatch:".",link:e.fullPath};const k=a.replace(n.value,u);return{text:C,link:t.value.some(g=>g===k)?c.replace(a,k):m.home??u}})}]})},tm=ge({__name:"VPDropdownTransition",setup(e,{expose:t}){t();const o={setHeight:s=>{s.style.height=s.scrollHeight+"px"},unsetHeight:s=>{s.style.height=""}};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}});function nm(e,t,n,r,o,s){return W(),xe(sr,{name:"vp-dropdown",onEnter:r.setHeight,onAfterEnter:r.unsetHeight,onBeforeLeave:r.setHeight},{default:ke(()=>[Pe(e.$slots,"default")]),_:3})}const wa=Se(tm,[["render",nm],["__file","VPDropdownTransition.vue"]]),rm=ge({__name:"VPNavbarDropdown",props:{item:{}},setup(e,{expose:t}){t();const n=e,{item:r}=sl(n),o=Ct(),s=he(!1),i=O(()=>r.value.ariaLabel||r.value.text),l=(f,u)=>u[u.length-1]===f,a=f=>{const u=f.detail===0;s.value=u?!s.value:!1};$e(()=>o.path,()=>{s.value=!1});const c={props:n,item:r,route:o,open:s,dropdownAriaLabel:i,isLastItemOfArray:l,handleDropdown:a,VPDropdownTransition:wa,get AutoLink(){return Pn}};return Object.defineProperty(c,"__isScriptSetup",{enumerable:!1,value:!0}),c}}),om=["aria-label"],sm={class:"title"},im=J("span",{class:"arrow down"},null,-1),lm=["aria-label"],am={class:"title"},cm={class:"vp-navbar-dropdown"},um={class:"vp-navbar-dropdown-subtitle"},fm={key:1},dm={class:"vp-navbar-dropdown-subitem-wrapper"};function hm(e,t,n,r,o,s){return W(),ee("div",{class:Ge(["vp-navbar-dropdown-wrapper",{open:r.open}])},[J("button",{class:"vp-navbar-dropdown-title",type:"button","aria-label":r.dropdownAriaLabel,onClick:r.handleDropdown},[J("span",sm,de(r.item.text),1),im],8,om),J("button",{class:"vp-navbar-dropdown-title-mobile",type:"button","aria-label":r.dropdownAriaLabel,onClick:t[0]||(t[0]=i=>r.open=!r.open)},[J("span",am,de(r.item.text),1),J("span",{class:Ge(["arrow",r.open?"down":"right"])},null,2)],8,lm),oe(r.VPDropdownTransition,null,{default:ke(()=>[Ar(J("ul",cm,[(W(!0),ee(ye,null,wt(r.item.children,i=>(W(),ee("li",{key:i.text,class:"vp-navbar-dropdown-item"},["children"in i?(W(),ee(ye,{key:0},[J("h4",um,[i.link?(W(),xe(r.AutoLink,{key:0,config:i,onFocusout:l=>r.isLastItemOfArray(i,r.item.children)&&i.children.length===0&&(r.open=!1)},null,8,["config","onFocusout"])):(W(),ee("span",fm,de(i.text),1))]),J("ul",dm,[(W(!0),ee(ye,null,wt(i.children,l=>(W(),ee("li",{key:l.link,class:"vp-navbar-dropdown-subitem"},[oe(r.AutoLink,{config:l,onFocusout:a=>r.isLastItemOfArray(l,i.children)&&r.isLastItemOfArray(i,r.item.children)&&(r.open=!1)},null,8,["config","onFocusout"])]))),128))])],64)):(W(),xe(r.AutoLink,{key:1,config:i,onFocusout:l=>r.isLastItemOfArray(i,r.item.children)&&(r.open=!1)},null,8,["config","onFocusout"]))]))),128))],512),[[Hr,r.open]])]),_:1})],2)}const pm=Se(rm,[["render",hm],["__file","VPNavbarDropdown.vue"]]),mm=ge({__name:"VPNavbarItems",setup(e,{expose:t}){t();const n=Xp(),r=em(),o=Zp(),s=he(!1),i=O(()=>Te().value.navbarLabel??"site navigation"),l=O(()=>[...n.value,...r.value,...o.value]);ba(Yn.MOBILE,c=>{s.value=window.innerWidth(W(),ee("div",{key:i.text,class:"vp-navbar-item"},["children"in i?(W(),xe(r.VPNavbarDropdown,{key:0,class:Ge({mobile:r.isMobile}),item:i},null,8,["class","item"])):(W(),xe(r.AutoLink,{key:1,config:i},null,8,["config"]))]))),128))],8,gm)):Re("",!0)}const Sa=Se(mm,[["render",vm],["__file","VPNavbarItems.vue"]]),_m={},bm={class:"dark-icon",viewBox:"0 0 32 32"},ym=J("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),wm=[ym];function Sm(e,t){return W(),ee("svg",bm,wm)}const Em=Se(_m,[["render",Sm],["__file","VPDarkIcon.vue"]]),Cm={},Lm={class:"light-icon",viewBox:"0 0 32 32"},Pm=wu('',9),xm=[Pm];function km(e,t){return W(),ee("svg",Lm,xm)}const Am=Se(Cm,[["render",km],["__file","VPLightIcon.vue"]]),Tm=ge({__name:"VPToggleColorModeButton",setup(e,{expose:t}){t();const n=Te(),r=hs(),s={themeLocale:n,isDarkMode:r,toggleColorMode:()=>{r.value=!r.value},VPDarkIcon:Em,VPLightIcon:Am};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}}),Rm=["title"];function Om(e,t,n,r,o,s){return W(),ee("button",{class:"vp-toggle-color-mode-button",title:r.themeLocale.toggleColorMode,onClick:r.toggleColorMode},[Ar(oe(r.VPLightIcon,null,null,512),[[Hr,!r.isDarkMode]]),Ar(oe(r.VPDarkIcon,null,null,512),[[Hr,r.isDarkMode]])],8,Rm)}const Im=Se(Tm,[["render",Om],["__file","VPToggleColorModeButton.vue"]]),Mm=ge({__name:"VPToggleSidebarButton",emits:["toggle"],setup(e,{expose:t}){t();const r={themeLocale:Te()};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),Dm=["title"],Hm=J("div",{class:"icon","aria-hidden":"true"},[J("span"),J("span"),J("span")],-1),Nm=[Hm];function $m(e,t,n,r,o,s){return W(),ee("div",{class:"vp-toggle-sidebar-button",title:r.themeLocale.toggleSidebar,"aria-expanded":"false",role:"button",tabindex:"0",onClick:t[0]||(t[0]=i=>e.$emit("toggle"))},Nm,8,Dm)}const jm=Se(Mm,[["render",$m],["__file","VPToggleSidebarButton.vue"]]),Vm=ge({__name:"VPNavbar",emits:["toggle-sidebar"],setup(e,{expose:t}){t();const n=Te(),r=he(null),o=he(null),s=he(0),i=O(()=>s.value?{maxWidth:s.value+"px"}:{}),l=(c,f)=>{var m,_,C;const u=(C=(_=(m=c==null?void 0:c.ownerDocument)==null?void 0:m.defaultView)==null?void 0:_.getComputedStyle(c,null))==null?void 0:C[f],p=Number.parseInt(u,10);return Number.isNaN(p)?0:p};ba(Yn.MOBILE,c=>{var u;const f=l(r.value,"paddingLeft")+l(r.value,"paddingRight");window.innerWidthe.$emit("toggle-sidebar"))}),J("span",Bm,[oe(r.VPNavbarBrand)],512),J("div",{class:"vp-navbar-items-wrapper",style:Zn(r.linksWrapperStyle)},[Pe(e.$slots,"before"),oe(r.VPNavbarItems,{class:"vp-hide-mobile"}),Pe(e.$slots,"after"),r.themeLocale.colorModeSwitch?(W(),xe(r.VPToggleColorModeButton,{key:0})):Re("",!0),oe(i)],4)],512)}const Wm=Se(Vm,[["render",zm],["__file","VPNavbar.vue"]]),Um=()=>{const e=Te(),t=Ln(),n=ut();return O(()=>{var o;return n.value.contributors??e.value.contributors??!0?((o=t.value.git)==null?void 0:o.contributors)??null:null})},Km=()=>{const e=Te(),t=Ln(),n=ut();return O(()=>{if(!(n.value.editLink??e.value.editLink??!0))return null;const{repo:o,docsRepo:s=o,docsBranch:i="main",docsDir:l="",editLinkText:a}=e.value;if(!s)return null;const c=up({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})},qm=()=>{const e=Te(),t=Ln(),n=ut();return O(()=>{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()})},Gm={},Jm={class:"edit-icon",viewBox:"0 0 1024 1024"},Ym=J("g",{fill:"currentColor"},[J("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"}),J("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),Qm=[Ym];function Xm(e,t){return W(),ee("svg",Jm,Qm)}const Zm=Se(Gm,[["render",Xm],["__file","VPEditIcon.vue"]]),eg=ge({__name:"VPPageMeta",setup(e,{expose:t}){t();const n=Te(),r=Km(),o=qm(),s=Um(),i={themeLocale:n,editLink:r,lastUpdated:o,contributors:s,VPEditIcon:Zm,get AutoLink(){return Pn}};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}}),tg={class:"vp-page-meta"},ng={key:0,class:"vp-meta-item edit-link"},rg={class:"vp-meta-item git-info"},og={key:0,class:"vp-meta-item last-updated"},sg={class:"meta-item-label"},ig={class:"meta-item-info"},lg={key:1,class:"vp-meta-item contributors"},ag={class:"meta-item-label"},cg={class:"meta-item-info"},ug=["title"];function fg(e,t,n,r,o,s){const i=Jo("ClientOnly");return W(),ee("footer",tg,[r.editLink?(W(),ee("div",ng,[oe(r.AutoLink,{class:"label",config:r.editLink},{before:ke(()=>[oe(r.VPEditIcon)]),_:1},8,["config"])])):Re("",!0),J("div",rg,[r.lastUpdated?(W(),ee("div",og,[J("span",sg,de(r.themeLocale.lastUpdatedText)+": ",1),oe(i,null,{default:ke(()=>[J("span",ig,de(r.lastUpdated),1)]),_:1})])):Re("",!0),r.contributors&&r.contributors.length?(W(),ee("div",lg,[J("span",ag,de(r.themeLocale.contributorsText)+": ",1),J("span",cg,[(W(!0),ee(ye,null,wt(r.contributors,(l,a)=>(W(),ee(ye,{key:a},[J("span",{class:"contributor",title:`email: ${l.email}`},de(l.name),9,ug),a!==r.contributors.length-1?(W(),ee(ye,{key:0},[Vt(", ")],64)):Re("",!0)],64))),128))])])):Re("",!0)])])}const dg=Se(eg,[["render",fg],["__file","VPPageMeta.vue"]]),hg=()=>{const e=sn(),t=Ct();return n=>{n&&(la(n)?t.path!==n&&e.push(n):ir(n)?window==null||window.open(n):e.push(encodeURI(n)))}},Oi=(e,t)=>e===!1?!1:lt(e)?Sn(e,t):es(e)?{...e,link:Sn(e.link,t).link}:null,Mo=(e,t,n)=>{const r=e.findIndex(s=>s.link===t);if(r!==-1){const s=e[r+n];return s?s.link?s:"prefix"in s&&!Jn(s.prefix).notFound?{...s,link:s.prefix}:null:null}for(const s of e)if("children"in s){const i=Mo(s.children,t,n);if(i)return i}const o=e.findIndex(s=>"prefix"in s&&s.prefix===t);if(o!==-1){const s=e[o+n];return s?s.link?s:"prefix"in s&&!Jn(s.prefix).notFound?{...s,link:s.prefix}:null:null}return null},pg=()=>{const e=ut(),t=Te(),n=ps(),r=Ct(),o=O(()=>{const i=Oi(e.value.prev,r.path);return i===!1?null:i??(t.value.prev===!1?null:Mo(n.value,r.path,-1))}),s=O(()=>{const i=Oi(e.value.next,r.path);return i===!1?null:i??(t.value.next===!1?null:Mo(n.value,r.path,1))});return{prevLink:o,nextLink:s}},mg=ge({__name:"VPPageNav",setup(e,{expose:t}){t();const n=Te(),r=hg(),{prevLink:o,nextLink:s}=pg(),i=O(()=>Te().value.pageNavbarLabel??"page navigation");ct("keydown",a=>{a.altKey&&(a.key==="ArrowRight"?s.value&&(r(s.value.link),a.preventDefault()):a.key==="ArrowLeft"&&o.value&&(r(o.value.link),a.preventDefault()))});const l={themeLocale:n,navigate:r,prevLink:o,nextLink:s,navbarLabel:i,get AutoLink(){return Pn}};return Object.defineProperty(l,"__isScriptSetup",{enumerable:!1,value:!0}),l}}),gg=["aria-label"],vg={class:"hint"},_g=J("span",{class:"arrow left"},null,-1),bg={class:"link"},yg={class:"hint"},wg=J("span",{class:"arrow right"},null,-1),Sg={class:"link"};function Eg(e,t,n,r,o,s){return r.prevLink||r.nextLink?(W(),ee("nav",{key:0,class:"vp-page-nav","aria-label":r.navbarLabel},[r.prevLink?(W(),xe(r.AutoLink,{key:0,class:"prev",config:r.prevLink},{default:ke(()=>[J("div",vg,[_g,Vt(" "+de(r.themeLocale.prev??"Prev"),1)]),J("div",bg,[J("span",null,de(r.prevLink.text),1)])]),_:1},8,["config"])):Re("",!0),r.nextLink?(W(),xe(r.AutoLink,{key:1,class:"next",config:r.nextLink},{default:ke(()=>[J("div",yg,[Vt(de(r.themeLocale.next??"Next")+" ",1),wg]),J("div",Sg,[J("span",null,de(r.nextLink.text),1)])]),_:1},8,["config"])):Re("",!0)],8,gg)):Re("",!0)}const Cg=Se(mg,[["render",Eg],["__file","VPPageNav.vue"]]),Lg=ge({__name:"VPPage",setup(e,{expose:t}){t(),fp();const n={VPPageMeta:dg,VPPageNav:Cg,get Content(){return is}};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),Pg={class:"vp-page"},xg={class:"theme-default-content"};function kg(e,t,n,r,o,s){return W(),ee("main",Pg,[Pe(e.$slots,"top"),J("div",xg,[Pe(e.$slots,"content-top"),oe(r.Content),Pe(e.$slots,"content-bottom")]),oe(r.VPPageMeta),oe(r.VPPageNav),Pe(e.$slots,"bottom")])}const Ag=Se(Lg,[["render",kg],["__file","VPPage.vue"]]),Tg=ge({__name:"VPSidebarItem",props:{item:{},depth:{default:0}},setup(e,{expose:t}){t();const n=e,{item:r,depth:o}=sl(n),s=Ct(),i=sn(),l=O(()=>"collapsible"in r.value&&r.value.collapsible),a=O(()=>ha(r.value,s)),c=O(()=>({"vp-sidebar-item":!0,"vp-sidebar-heading":o.value===0,active:a.value,collapsible:l.value})),f=O(()=>l.value?a.value:!0),[u,p]=Yd(f.value),m=k=>{l.value&&(k.preventDefault(),p())},_=i.afterEach(k=>{Cn(()=>{u.value=f.value})});Go(()=>{_()});const C={props:n,item:r,depth:o,route:s,router:i,collapsible:l,isActive:a,itemClass:c,isOpenDefault:f,isOpen:u,toggleIsOpen:p,onClick:m,unregisterRouterHook:_,VPDropdownTransition:wa,get AutoLink(){return Pn}};return Object.defineProperty(C,"__isScriptSetup",{enumerable:!1,value:!0}),C}}),Rg={class:"vp-sidebar-children"};function Og(e,t,n,r,o,s){const i=Jo("VPSidebarItem",!0);return W(),ee("li",null,[r.item.link?(W(),xe(r.AutoLink,{key:0,class:Ge(r.itemClass),config:r.item},null,8,["class","config"])):(W(),ee("p",{key:1,tabindex:"0",class:Ge(r.itemClass),onClick:r.onClick,onKeydown:of(r.onClick,["enter"])},[Vt(de(r.item.text)+" ",1),r.collapsible?(W(),ee("span",{key:0,class:Ge(["arrow",r.isOpen?"down":"right"])},null,2)):Re("",!0)],34)),"children"in r.item&&r.item.children.length?(W(),xe(r.VPDropdownTransition,{key:2},{default:ke(()=>[Ar(J("ul",Rg,[(W(!0),ee(ye,null,wt(r.item.children,l=>(W(),xe(i,{key:`${r.depth}${l.text}${l.link}`,item:l,depth:r.depth+1},null,8,["item","depth"]))),128))],512),[[Hr,r.isOpen]])]),_:1})):Re("",!0)])}const Ig=Se(Tg,[["render",Og],["__file","VPSidebarItem.vue"]]),Mg=ge({__name:"VPSidebarItems",setup(e,{expose:t}){t();const n=Ct(),r=ps();Ye(()=>{$e(()=>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 o={route:n,sidebarItems:r,VPSidebarItem:Ig};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),Dg={key:0,class:"vp-sidebar-items"};function Hg(e,t,n,r,o,s){return r.sidebarItems.length?(W(),ee("ul",Dg,[(W(!0),ee(ye,null,wt(r.sidebarItems,i=>(W(),xe(r.VPSidebarItem,{key:`${i.text}${i.link}`,item:i},null,8,["item"]))),128))])):Re("",!0)}const Ng=Se(Mg,[["render",Hg],["__file","VPSidebarItems.vue"]]),$g=ge({__name:"VPSidebar",setup(e,{expose:t}){t();const n={VPNavbarItems:Sa,VPSidebarItems:Ng};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),jg={class:"vp-sidebar"};function Vg(e,t,n,r,o,s){return W(),ee("aside",jg,[oe(r.VPNavbarItems),Pe(e.$slots,"top"),oe(r.VPSidebarItems),Pe(e.$slots,"bottom")])}const Fg=Se($g,[["render",Vg],["__file","VPSidebar.vue"]]),Bg=ge({__name:"Layout",setup(e,{expose:t}){t();const n=Ln(),r=ut(),o=Te(),s=O(()=>r.value.navbar!==!1&&o.value.navbar!==!1),i=ps(),l=he(!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 S=g.changedTouches[0].clientX-c.x,$=g.changedTouches[0].clientY-c.y;Math.abs(S)>Math.abs($)&&Math.abs(S)>40&&(S>0&&c.x<=80?a(!0):a(!1))},p=O(()=>r.value.externalLinkIcon??o.value.externalLinkIcon??!0),m=O(()=>[{"no-navbar":!s.value,"no-sidebar":!i.value.length,"sidebar-open":l.value,"external-link-icon":p.value},r.value.pageClass]);let _;Ye(()=>{_=sn().afterEach(()=>{a(!1)})}),Wr(()=>{_()});const C=da(),k=C.resolve,I=C.pending,w={page:n,frontmatter:r,themeLocale:o,shouldShowNavbar:s,sidebarItems:i,isSidebarOpen:l,toggleSidebar:a,touchStart:c,onTouchStart:f,onTouchEnd:u,enableExternalLinkIcon:p,containerClass:m,get unregisterRouterHook(){return _},set unregisterRouterHook(g){_=g},scrollPromise:C,onBeforeEnter:k,onBeforeLeave:I,VPHome:Wp,VPNavbar:Wm,VPPage:Ag,VPSidebar:Fg};return Object.defineProperty(w,"__isScriptSetup",{enumerable:!1,value:!0}),w}});function zg(e,t,n,r,o,s){return W(),ee("div",{class:Ge(["vp-theme-container",r.containerClass]),onTouchstart:r.onTouchStart,onTouchend:r.onTouchEnd},[Pe(e.$slots,"navbar",{},()=>[r.shouldShowNavbar?(W(),xe(r.VPNavbar,{key:0,onToggleSidebar:r.toggleSidebar},{before:ke(()=>[Pe(e.$slots,"navbar-before")]),after:ke(()=>[Pe(e.$slots,"navbar-after")]),_:3})):Re("",!0)]),J("div",{class:"vp-sidebar-mask",onClick:t[0]||(t[0]=i=>r.toggleSidebar(!1))}),Pe(e.$slots,"sidebar",{},()=>[oe(r.VPSidebar,null,{top:ke(()=>[Pe(e.$slots,"sidebar-top")]),bottom:ke(()=>[Pe(e.$slots,"sidebar-bottom")]),_:3})]),Pe(e.$slots,"page",{},()=>[r.frontmatter.home?(W(),xe(r.VPHome,{key:0})):(W(),xe(sr,{key:1,name:"fade-slide-y",mode:"out-in",onBeforeEnter:r.onBeforeEnter,onBeforeLeave:r.onBeforeLeave},{default:ke(()=>[(W(),xe(r.VPPage,{key:r.page.path},{top:ke(()=>[Pe(e.$slots,"page-top")]),"content-top":ke(()=>[Pe(e.$slots,"page-content-top")]),"content-bottom":ke(()=>[Pe(e.$slots,"page-content-bottom")]),bottom:ke(()=>[Pe(e.$slots,"page-bottom")]),_:3}))]),_:3},8,["onBeforeEnter","onBeforeLeave"]))])],34)}const Ea=Se(Bg,[["render",zg],["__file","Layout.vue"]]),Wg=ge({__name:"NotFound",setup(e,{expose:t}){t();const n=lr(),r=Te(),o=r.value.notFound??["Not Found"],s=()=>o[Math.floor(Math.random()*o.length)],i=r.value.home??n.value,l=r.value.backToHome??"Back to home",a={routeLocale:n,themeLocale:r,messages:o,getMsg:s,homeLink:i,homeText:l,get RouteLink(){return Qr}};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),Ug=e=>(yc("data-v-99131a8e"),e=e(),wc(),e),Kg={class:"vp-theme-container"},qg={class:"page"},Gg={class:"theme-default-content"},Jg=Ug(()=>J("h1",null,"404",-1));function Yg(e,t,n,r,o,s){return W(),ee("div",Kg,[J("main",qg,[J("div",Gg,[Jg,J("blockquote",null,de(r.getMsg()),1),oe(r.RouteLink,{to:r.homeLink},{default:ke(()=>[Vt(de(r.homeText),1)]),_:1},8,["to"])])])])}const Qg=Se(Wg,[["render",Yg],["__scopeId","data-v-99131a8e"],["__file","NotFound.vue"]]),Xg=Lt({enhance({app:e,router:t}){go("Badge")||e.component("Badge",bp),go("CodeGroup")||e.component("CodeGroup",yp),go("CodeGroupItem")||e.component("CodeGroupItem",Ep),e.component("VPSearch",()=>{const r=e.component("Docsearch")||e.component("SearchBox");return r?Le(r):null});const n=t.options.scrollBehavior;t.options.scrollBehavior=async(...r)=>(await da().wait(),n(...r))},setup(){sp(),hp()},layouts:{Layout:Ea,NotFound:Qg}}),Zg=Object.freeze(Object.defineProperty({__proto__:null,default:Xg},Symbol.toStringTag,{value:"Module"})),ev=Object.entries;var tv={autoLocale:!1,switchLocale:!1,localeConfig:{"/eng/":["en-US"]},defaultLocale:"/eng/",localeFallback:!0,defaultBehavior:"defaultLocale"};const nv=tv;ev(nv.localeConfig);lh("VUEPRESS_REDIRECT_LOCALES",{});const rv=Lt({setup(){},rootComponents:[]}),ov=Object.freeze(Object.defineProperty({__proto__:null,default:rv},Symbol.toStringTag,{value:"Module"}));var ae=(e=>(e.Collaborator="collaborator",e.Author="author",e.TechLead="tech lead",e.TeamLead="team lead",e.Developer="developer",e))(ae||{}),me=(e=>(e.ActiveDeveloped="actively-developed",e.PassivelyMaintained="passively-maintained",e.AsIs="as-is",e.Experimental="experimental",e.LookingForMaintainer="looking-for-maintainer",e.Deprecated="deprecated",e))(me||{}),N=(e=>(e.C="C",e.JavaScript="JS",e.TypeScript="TS",e.Rust="Rust",e.Python="Python",e.Php="PHP",e.Deno="Deno",e.NodeJS="NodeJS",e.Flask="Flask",e.React="React",e.Antd="Antd",e.Postgresql="PostgreSQL",e.Docker="Docker",e.Drone="Drone CI",e.Woodpecker="Woodpecker CI",e.Bash="Bash",e.TreeSitter="TreeSitter",e.Nix="Nix",e.Lua="Lua",e.Sqlite="Sqlite",e.Vue="Vue",e.Godot="Godot",e.Haskell="Haskell",e))(N||{});const sv=[{name:"picsg",url:"/pleshevskiy/picsg",description:"A tool for steganographing information in a picture encoded using the Vernam cipher.",roles:[ae.Author],technologies:[N.Haskell],startDate:new Date("2024-04-13"),status:me.AsIs},{name:"Mindustry tools",url:"/pleshevskiy/mindustry-tools",description:"Tools for the Mindustry game",roles:[ae.Author],technologies:[N.Nix,N.Godot],startDate:new Date("2024-01-07"),status:me.PassivelyMaintained},{name:"Master Progress Rosmintrud tools",url:"https://rosmintrud.masterprogress.ru",description:"Internal service to prepare documents for the rosmintrud (SPA)",roles:[ae.TechLead],technologies:[N.Deno,N.Sqlite,N.TypeScript,N.Vue,N.Docker,N.Woodpecker,N.Nix],startDate:new Date("2023-07-03"),status:me.PassivelyMaintained},{name:"yandexgpt_tg_bot",url:"/pleshevskiy/yandexgpt_tg_bot",description:"The Telegram bot to describe article with link by YandexGPT.",roles:[ae.Author],technologies:[N.JavaScript,N.NodeJS,N.Nix],startDate:new Date("2023-06-27"),status:me.PassivelyMaintained},{name:"tree-sitter-plpgsql",url:"/pleshevskiy/tree-sitter-plpgsql",description:"plpgsql grammar for tree-sitter",roles:[ae.Author],technologies:[N.C,N.JavaScript,N.TreeSitter,N.Nix],startDate:new Date("2023-01-05"),status:me.PassivelyMaintained},{name:"wd2",url:"/pleshevskiy/wd2",description:"A wrapper over d2 which allows to use additional configs from d2 file",roles:[ae.Author],technologies:[N.Bash,N.Nix],startDate:new Date("2022-12-12"),endDate:new Date("2023-07-31"),status:me.AsIs},{name:"tree-sitter-d2",url:"/pleshevskiy/tree-sitter-d2",description:"d2 grammar for tree-sitter",roles:[ae.Author],technologies:[N.C,N.JavaScript,N.TreeSitter,N.Nix],startDate:new Date("2022-12-04"),status:me.ActiveDeveloped},{name:"nix2lua",url:"/mynix/nix2lua",description:"This is a small but functional library that converts your nix configurations into lua format.",roles:[ae.Author],technologies:[N.Nix,N.Lua],startDate:new Date("2022-11-22"),status:me.PassivelyMaintained},{name:"vnetod",url:"/pleshevskiy/vnetod",description:"Dotenv section switcher",roles:[ae.Author],technologies:[N.Rust],startDate:new Date("2022-07-29"),status:me.PassivelyMaintained},{name:"estring",url:"/pleshevskiy/estring",description:"A simple way to parse a string using type annotations.",roles:[ae.Author],technologies:[N.Rust],startDate:new Date("2022-07-23"),status:me.PassivelyMaintained},{name:"enve",url:"/pleshevskiy/enve",description:"It helps you work with environment variables and convert it to any type using only type annotations",roles:[ae.Author],technologies:[N.Rust],startDate:new Date("2022-07-18"),status:me.PassivelyMaintained},{name:"docker stack drone plugin",url:"/drone_plugins/docker_stack",description:"Deploy to production using `docker stack deploy`",roles:[ae.Author],technologies:[N.Docker,N.Drone,N.Woodpecker],startDate:new Date("2022-06-06"),status:me.PassivelyMaintained},{name:"dexios",url:"/github/dexios",description:"Dexios is a fast, secure, and open source command-line encryption tool.",roles:[ae.Collaborator],technologies:[N.Rust],startDate:new Date("2022-06-01"),endDate:new Date("2023-02-28")},{name:"recipes",url:"/pleshevskiy/recipes",description:"Site with recipes which cares about privacy",roles:[ae.Author],technologies:[N.TypeScript,N.Deno,N.Rust],startDate:new Date("2022-05-04"),status:me.PassivelyMaintained},{name:"pleshevski.ru",url:"/pleshevskiy/pleshevski.ru",description:"Source code of my personal site",roles:[ae.Author],technologies:[N.TypeScript,N.Deno,N.Docker,N.Woodpecker],startDate:new Date("2022-03-16"),status:me.PassivelyMaintained},{name:"paren",url:"/pleshevskiy/paren",description:"Library for parsing and rendering information.",roles:[ae.Author],technologies:[N.TypeScript,N.Deno],startDate:new Date("2022-03-14"),status:me.Experimental},{name:"hwt",url:"/pleshevskiy/hwt",description:"healthy workaholic timer – A tool that keeps you from breaking your health by working all day.",roles:[ae.Author],technologies:[N.Rust],startDate:new Date("2022-02-04"),status:me.AsIs},{name:"ood_persistence",url:"/pleshevskiy/ood_persistence",description:"Asynchronous and synchronous interfaces and persistence implementations for your OOD architecture ",roles:[ae.Author],technologies:[N.Rust],startDate:new Date("2021-10-12"),status:me.Deprecated},{name:"migra",url:"/pleshevskiy/migra",description:"Simple SQL migration manager for your project.",roles:[ae.Author],technologies:[N.Rust],startDate:new Date("2021-01-31"),status:me.AsIs},{name:"espruino-starter",url:"/pleshevskiy/espruino-starter",description:"Quickly start creating your new project on the espruino board or a board based on it.",roles:[ae.Author],technologies:[N.JavaScript],startDate:new Date("2021-08-23"),status:me.AsIs},{name:"react-rest-request",url:"/pleshevskiy/react-rest-request",description:"Minimalistic REST API client for React inspired by Apollo.",roles:[ae.Author],technologies:[N.TypeScript,N.React],startDate:new Date("2020-10-04"),status:me.Deprecated},{name:"sonic-channel",url:"/pleshevskiy/sonic-channel",description:"Rust client for sonic search backend.",roles:[ae.Author],technologies:[N.Rust],startDate:new Date("2020-07-18"),status:me.PassivelyMaintained},{name:"itconfig",url:"/pleshevskiy/itconfig",description:"Easy build a configs from environment variables and use it in globally.",roles:[ae.Author],technologies:[N.Rust],startDate:new Date("2019-12-22"),status:me.Deprecated},{name:"it-fsm",url:"/pleshevskiy/it-fsm",description:"Simple full-featured finite state machine for your project",roles:[ae.Author],technologies:[N.TypeScript,N.NodeJS,N.Deno],startDate:new Date("2019"),status:me.PassivelyMaintained},{name:"Cabinet Master Progress",url:"https://cabinet.masterprogress.ru",description:"Student's cabinet of the educational center Master Progress (SSR + SPA)",roles:[ae.TechLead],technologies:[N.Python,N.Flask,N.Postgresql,N.TypeScript,N.React,N.Docker,N.Woodpecker,N.Nix],startDate:new Date("2019-09-22"),status:me.PassivelyMaintained},{name:"genrss",url:"/pleshevskiy/genrss",description:"RSS generator for python",roles:[ae.Author],technologies:[N.Python],startDate:new Date("2019-07-23"),status:me.AsIs},{name:"marshmallow_pageinfo",url:"/pleshevskiy/marshmallow_pageinfo",description:"Page info marshmallow schema for api",roles:[ae.Author],technologies:[N.Python],startDate:new Date("2019-10-05"),status:me.AsIs},{name:"Binary Management",url:"https://www.binarymanagement.com",description:"Project management tool for interior designers",roles:[ae.Developer,ae.TechLead,ae.TeamLead],technologies:[N.TypeScript,N.NodeJS,N.React,N.Antd,N.Docker,N.Drone,N.Rust,N.Nix],startDate:new Date("2018-09-15"),status:me.ActiveDeveloped},{name:"Core Spirit",url:"https://corespirit.com",description:"Social platform focusing on human and planetary enhancement",roles:[ae.Developer],technologies:[N.TypeScript,N.NodeJS,N.React,N.Docker,N.Drone],startDate:new Date("2018-09-05"),endDate:new Date("2019-12-31")},{name:"Master Progress",url:"https://masterprogress.ru",description:"Main website of the educational center Master Progress (SSR + Forms)",roles:[ae.TechLead],technologies:[N.Python,N.Flask,N.JavaScript,N.Docker,N.Woodpecker],startDate:new Date("2018-04-10"),status:me.PassivelyMaintained},{name:"ictmpl",url:"/pleshevskiy/ictmpl",description:"Generate projects from templates",roles:[ae.Author],technologies:[N.Python],startDate:new Date("2018-06-30"),status:me.AsIs},{name:"jjcrypto",url:"/pleshevskiy/jjcrypto",description:"Javascript encoder and decoder",roles:[ae.Author],technologies:[N.Php],startDate:new Date("2015-11-01"),status:me.AsIs}];function iv(e){return e.toLocaleDateString(void 0,{year:"numeric",month:"2-digit",day:"2-digit"})}const lv=e=>e.url.startsWith("https://")?e.url:new URL(e.url,"https://git.pleshevski.ru").toString(),av=Object.freeze(Object.defineProperty({__proto__:null,getExternalLink:lv},Symbol.toStringTag,{value:"Module"})),cv={name:"WorksPage",computed:{tableTheme(){return this.$themeLocale.worksTable??{}}}},uv=ge({...cv,setup(e,{expose:t}){t();const n={get CHRONOLOGICAL_WORKS(){return sv},get renderDate(){return iv},get w(){return av}};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),fv=["href"],dv=["innerHTML"];function hv(e,t,n,r,o,s){return W(),ee("table",null,[J("thead",null,[J("tr",null,[J("th",null,de(s.tableTheme.name),1),J("th",null,de(s.tableTheme.description),1),J("th",null,de(s.tableTheme.role),1),J("th",null,de(s.tableTheme.technologies),1),J("th",null,de(s.tableTheme.start),1),J("th",null,de(s.tableTheme.statusOrEnd),1)])]),J("tbody",null,[(W(!0),ee(ye,null,wt(r.CHRONOLOGICAL_WORKS,i=>(W(),ee("tr",null,[J("td",null,[J("a",{rel:"nofollow noopener",href:r.w.getExternalLink(i)},de(i.name),9,fv)]),J("td",null,de(i.description),1),J("td",{innerHTML:i.roles.join(", ")},null,8,dv),J("td",null,de(i.technologies.join(", ")),1),J("td",null,de(r.renderDate(i.startDate)),1),J("td",null,de(i.endDate?r.renderDate(i.endDate):i.status),1)]))),256))])])}const pv=Se(uv,[["render",hv],["__file","ChronologicalWorksTable.vue"]]),mv={__name:"WorksPage",setup(e,{expose:t}){t();const n={ParentLayout:Ea,get ChronologicalWorksTable(){return pv}};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}},gv={class:"works-table-wrapper"};function vv(e,t,n,r,o,s){return W(),xe(r.ParentLayout,null,{"page-bottom":ke(()=>[J("div",gv,[oe(r.ChronologicalWorksTable)])]),_:1})}const _v=Se(mv,[["render",vv],["__scopeId","data-v-765855fb"],["__file","WorksPage.vue"]]),bv=Lt({layouts:{WorksPage:_v}}),yv=Object.freeze(Object.defineProperty({__proto__:null,default:bv},Symbol.toStringTag,{value:"Module"})),wr=[gh,Lh,Rh,Wh,Jh,Yh,np,Zg,ov,yv].map(e=>e.default).filter(Boolean),wv=JSON.parse('{"base":"/","lang":"ru-RU","title":"Дмитрий Плешевский","description":" ","head":[],"locales":{"/":{"lang":"ru-RU","title":"Дмитрий Плешевский"},"/eng/":{"lang":"en-US","title":"Dmitriy Pleshevskiy"}}}');var Mn=En(wv),Sv=nd,Ev=()=>{const e=kd({history:Sv(Vl("/")),routes:[{name:"vuepress-route",path:"/:catchAll(.*)",components:{}}],scrollBehavior:(t,n,r)=>r||(t.hash?{el:t.hash}:{top:0})});return e.beforeResolve(async(t,n)=>{if(t.path!==n.path||n===_t){const r=Jn(t.fullPath);if(r.path!==t.fullPath)return r.path;const o=await r.loader();t.meta={...r.meta,_pageChunk:o}}else t.path===n.path&&(t.meta=n.meta)}),e},Cv=e=>{e.component("ClientOnly",ss),e.component("Content",is),e.component("RouteLink",Qr)},Lv=(e,t,n)=>{const r=O(()=>t.currentRoute.value.path),o=fc((k,I)=>({get(){return k(),t.currentRoute.value.meta._pageChunk},set(w){t.currentRoute.value.meta._pageChunk=w,I()}})),s=O(()=>Gt.resolveLayouts(n)),i=O(()=>Gt.resolveRouteLocale(Mn.value.locales,r.value)),l=O(()=>Gt.resolveSiteLocaleData(Mn.value,i.value)),a=O(()=>o.value.comp),c=O(()=>o.value.data),f=O(()=>c.value.frontmatter),u=O(()=>Gt.resolvePageHeadTitle(c.value,l.value)),p=O(()=>Gt.resolvePageHead(u.value,f.value,l.value)),m=O(()=>Gt.resolvePageLang(c.value,l.value)),_=O(()=>Gt.resolvePageLayout(c.value,s.value)),C={layouts:s,pageData:c,pageComponent:a,pageFrontmatter:f,pageHead:p,pageHeadTitle:u,pageLang:m,pageLayout:_,redirects:Oo,routeLocale:i,routePath:r,routes:vn,siteData:Mn,siteLocaleData:l};return e.provide(rs,C),Object.defineProperties(e.config.globalProperties,{$frontmatter:{get:()=>f.value},$head:{get:()=>p.value},$headTitle:{get:()=>u.value},$lang:{get:()=>m.value},$page:{get:()=>c.value},$routeLocale:{get:()=>i.value},$site:{get:()=>Mn.value},$siteLocale:{get:()=>l.value},$withBase:{get:()=>ls}}),C},Pv=()=>{const e=Rd(),t=Od();let n=[];const r=()=>{e.value.forEach(i=>{const l=xv(i);l&&n.push(l)})},o=()=>{const i=[];return e.value.forEach(l=>{const a=kv(l);a&&i.push(a)}),i},s=()=>{document.documentElement.lang=t.value;const i=o();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]};nn(Dd,s),Ye(()=>{r(),$e(e,s,{immediate:!1})})},xv=([e,t,n=""])=>{const r=Object.entries(t).map(([l,a])=>lt(a)?`[${l}=${JSON.stringify(a)}]`:a===!0?`[${l}]`:"").join(""),o=`head > ${e}${r}`;return Array.from(document.querySelectorAll(o)).find(l=>l.innerText===n)||null},kv=([e,t,n])=>{if(!lt(e))return null;const r=document.createElement(e);return es(t)&&Object.entries(t).forEach(([o,s])=>{lt(s)?r.setAttribute(o,s):s===!0&&r.setAttribute(o,"")}),lt(n)&&r.appendChild(document.createTextNode(n)),r},Av=af,Tv=async()=>{var n;const e=Av({name:"Vuepress",setup(){var s;Pv();for(const i of wr)(s=i.setup)==null||s.call(i);const r=wr.flatMap(({rootComponents:i=[]})=>i.map(l=>Le(l))),o=Id();return()=>[Le(o.value),r]}}),t=Ev();Cv(e),Lv(e,t,wr);for(const r of wr)await((n=r.enhance)==null?void 0:n.call(r,{app:e,router:t,siteData:Mn}));return e.use(t),{app:e,router:t}};Tv().then(({app:e,router:t})=>{t.isReady().then(()=>{e.mount("#app")})});export{Se as _,J as a,Vt as b,ee as c,Tv as createVueApp,oe as d,wu as e,W as o,Jo as r,ke as w}; +function __vite__mapDeps(indexes) { + if (!__vite__mapDeps.viteFileDeps) { + __vite__mapDeps.viteFileDeps = [] + } + return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) +} diff --git a/dist/assets/index.html-Bgp5oohT.js b/dist/assets/index.html-Bgp5oohT.js new file mode 100644 index 0000000..eb0087c --- /dev/null +++ b/dist/assets/index.html-Bgp5oohT.js @@ -0,0 +1 @@ +import{_ as i,c as t,a,b as e,d as r,w as s,e as n,r as p,o}from"./app-Dw1tezwH.js";const c={},h=n('

Общие сведения

Меня зовут Дмитрий Плешевский.

Я энтузиаст программного обеспечения с открытым исходным кодом, ведущий разработчик програмного обеспечения, архитектор, руководитель команды, а так же ментор.

Умения

Языки программирования:

  • TypeScript (предпочитаю, твёрдый 9-летний опыт)
  • SQL (предпочитаю, твёрдый 8-летний опыт)
  • Rust (предпочитаю, 5-летний опыт)
  • Python (твёрдый 9-летний опыт)
  • Haskell
  • Bash
  • Java
  • C#
  • C++

Базы данных:

  • PostgreSQL (предпочитаю, твёрдый 7-летний опыт)
  • MySQL
  • Sqlite
  • MsSQL
  • MongoDB
  • Reddis

Я так же имею большой опыт в создании следующих типов приложений:

  • Традиционные (SSR + Forms)
  • API (REST/GraphQL/WebSocket/EventSource)
  • Динамическое (SPA)
  • Гибридное (SSR + SPA)
  • Консольные
  • Кроссплатформенные

Stack

Backend (Rust)

  • axum (предпочитаю, твёрдый 2-летний опыт)
  • async-graphql (предпочитаю, твёрдый 2-летний опыт)
  • shaku (предпочитаю, твёрдый 2-летний опыт)
  • bb8 + postgres-types (предпочитаю, твёрдый 5-летний опыт)
  • diesel (2-летний опыт)

Backend (Node.JS)

  • Apollo (твёрдый 5-летний опыт)
  • Express (твёрдый 9-летний опыт)
  • Nest.JS
  • Knex.js / Objection.js (твёрдый 5-летний опыт)
  • Sequelize

Frontend

  • React (твёрдый 8-летний опыт)
  • VueJS (предпочитаю, твёрдый 4-летний опыт)
  • Cypress (предпочитаю, твёрдый 3-летний опыт)
  • JQuery
  • Antd / Antdv
  • PostCSS (предпочитаю, твёрдый 5-летний опыт)
  • Sass (предпочитаю, твёрдый 8-летний опыт)
  • Less (слабый 4-летний опыт)

DevOps

  • NixOS / NixOps / Nix dev shell (предпочитаю, твёрдый 2-летний опыт)
  • Docker Swarm (предпочитаю, твёрдый 5-летний опыт)
  • Kubernetes (слабый 4-летний опыт)
  • Woodpecker CI (предпочитаю, твёрдый 3-летний опыт)
  • Drone CI (твёрдый 3-летний опыт)
  • Gitlab CI (твёрдый 7-летний опыт)
  • GitHub Actions (3-летний опыт)

Интересы

Open-source проекты - моя страсть! Разрабатываю, поддерживаю и улучшаю проекты в своё свободное время.

Помимо программирования я люблю готовить и проводить время со своей любимой семьей!

Контакты

SimpleX: Dmitriy Pleshevskiy

Telegram: Dmitriy Pleshevskiy

Matrix: @pleshevskiy:matrix.org

Email: dmitriy[at]pleshevski[dot]ru

Ссылки

My Git Repo

My Github (Приостановлен из-за санкций)

',30);function d(u,m){const l=p("RouteLink");return o(),t("div",null,[a("p",null,[e("Всегда актуальная ссылка на "),r(l,{to:"/"},{default:s(()=>[e("резюме")]),_:1}),e(".")]),h])}const y=i(c,[["render",d],["__file","index.html.vue"]]),g=JSON.parse('{"path":"/","title":"Резюме","lang":"ru-RU","frontmatter":{"home":true,"title":"Резюме","heroText":null,"description":"Всегда актуальная ссылка на . Общие сведения Меня зовут Дмитрий Плешевский. Я энтузиаст программного обеспечения с открытым исходным кодом, ведущий разработчик програмного обесп...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://pleshevski.ru/eng/"}],["meta",{"property":"og:url","content":"https://pleshevski.ru/"}],["meta",{"property":"og:site_name","content":"Дмитрий Плешевский"}],["meta",{"property":"og:title","content":"Резюме"}],["meta",{"property":"og:description","content":"Всегда актуальная ссылка на . Общие сведения Меня зовут Дмитрий Плешевский. Я энтузиаст программного обеспечения с открытым исходным кодом, ведущий разработчик програмного обесп..."}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"ru-RU"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-07-24T14:15:05.000Z"}],["meta",{"property":"article:modified_time","content":"2024-07-24T14:15:05.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"Резюме\\",\\"description\\":\\"Всегда актуальная ссылка на . Общие сведения Меня зовут Дмитрий Плешевский. Я энтузиаст программного обеспечения с открытым исходным кодом, ведущий разработчик програмного обесп...\\"}"]]},"headers":[{"level":3,"title":"Общие сведения","slug":"общие-сведения","link":"#общие-сведения","children":[]},{"level":3,"title":"Умения","slug":"умения","link":"#умения","children":[]},{"level":3,"title":"Stack","slug":"stack","link":"#stack","children":[]},{"level":3,"title":"Интересы","slug":"интересы","link":"#интересы","children":[]},{"level":3,"title":"Контакты","slug":"контакты","link":"#контакты","children":[]},{"level":3,"title":"Ссылки","slug":"ссылки","link":"#ссылки","children":[]}],"git":{"updatedTime":1721830505000,"contributors":[{"name":"Dmitriy Pleshevskiy","email":"dmitriy@pleshevski.ru","commits":1}]},"autoDesc":true,"filePathRelative":"index.md"}');export{y as comp,g as data}; diff --git a/dist/assets/index.html-Bmcvetlf.js b/dist/assets/index.html-Bmcvetlf.js new file mode 100644 index 0000000..eb8b608 --- /dev/null +++ b/dist/assets/index.html-Bmcvetlf.js @@ -0,0 +1 @@ +import{_ as l,c as t,a as r,b as e,d as a,w as s,e as o,r as n,o as p}from"./app-Dw1tezwH.js";const d={},c=o('

Overview

My name is Dmitriy Pleshevskiy.

I'm an open source software enthusiast, a lead software developer, architect, team leader and also mentor.

Skills

Programming Languages:

  • TypeScript (prefer, solid 9-year exp)
  • SQL (prefer, solid 8-year exp)
  • Rust (prefer, solid 5-year exp)
  • Python (solid 9-year exp)
  • Haskell
  • Bash
  • Java
  • C#
  • C++

Databases:

  • PostgreSQL (prefer, solid 7-year exp)
  • MySQL
  • Sqlite
  • MsSQL
  • MongoDB
  • Reddis

I also have extensive experience in creating the following applications:

  • Traditional (SSR + Forms)
  • API (REST/GraphQL/WebSocket/EventSource)
  • Dynamic (SPA)
  • Hybrid (SSR + SPA)
  • Console
  • Crossplatform

Stack

Backend (Rust)

  • axum (prefer, solid 2-year exp)
  • async-graphql (prefer, solid 2-year exp)
  • shaku (prefer, solid 2-year exp)
  • bb8 + postgres-types (prefer, solid 5-year exp)
  • diesel (2-year exp)

Backend (Node.JS)

  • Apollo (solid 5-year exp)
  • Express (solid 9-year exp)
  • Nest.JS
  • Knex.js / Objection.js (solid 5-year exp)
  • Sequelize

Frontend

  • React (solid 8-year exp)
  • VueJS (prefer, solid 3-year exp)
  • Cypress (prefer, solid 3-year exp)
  • JQuery
  • Antd / Antdv
  • PostCSS (prefer, solid 5-year exp)
  • Sass (prefer, solid 8-year exp)
  • Less (weak 4-year exp)

DevOps

  • NixOS / NixOps / Nix dev shell (prefer, solid 2-year exp)
  • Docker Swarm (prefer, solid 5-year exp)
  • Kubernetes (weak 4-year exp)
  • Woodpecker CI (prefer, solid 3-year exp)
  • Drone CI (solid 3-year exp)
  • Gitlab CI (solid 7-year exp)
  • GitHub Actions (3-year exp)

Interests

Open-source projects are my passion! I develop, maintain and improve projects in my spare time.

Besides programming, I love to cook and spend time with my beloved family!

Contacts

SimpleX: Dmitriy Pleshevskiy

Telegram: Dmitriy Pleshevskiy

Matrix: @pleshevskiy:matrix.org

Email: dmitriy[at]pleshevski[dot]ru

My Git Repo

My Github (Suspended due to sanctions)

',30);function h(m,y){const i=n("RouteLink");return p(),t("div",null,[r("p",null,[e("Always up-to-date link to "),a(i,{to:"/eng/"},{default:s(()=>[e("resume")]),_:1}),e(".")]),c])}const k=l(d,[["render",h],["__file","index.html.vue"]]),v=JSON.parse(`{"path":"/eng/","title":"Resume","lang":"en-US","frontmatter":{"home":true,"title":"Resume","heroText":null,"description":"Always up-to-date link to . Overview My name is Dmitriy Pleshevskiy. I'm an open source software enthusiast, a lead software developer, architect, team leader and also mentor. S...","head":[["link",{"rel":"alternate","hreflang":"ru-ru","href":"https://pleshevski.ru/"}],["meta",{"property":"og:url","content":"https://pleshevski.ru/eng/"}],["meta",{"property":"og:site_name","content":"Dmitriy Pleshevskiy"}],["meta",{"property":"og:title","content":"Resume"}],["meta",{"property":"og:description","content":"Always up-to-date link to . Overview My name is Dmitriy Pleshevskiy. I'm an open source software enthusiast, a lead software developer, architect, team leader and also mentor. S..."}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"ru-RU"}],["meta",{"property":"og:updated_time","content":"2024-07-24T14:15:05.000Z"}],["meta",{"property":"article:modified_time","content":"2024-07-24T14:15:05.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"Resume\\",\\"description\\":\\"Always up-to-date link to . Overview My name is Dmitriy Pleshevskiy. I'm an open source software enthusiast, a lead software developer, architect, team leader and also mentor. S...\\"}"]]},"headers":[{"level":3,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":3,"title":"Skills","slug":"skills","link":"#skills","children":[]},{"level":3,"title":"Stack","slug":"stack","link":"#stack","children":[]},{"level":3,"title":"Interests","slug":"interests","link":"#interests","children":[]},{"level":3,"title":"Contacts","slug":"contacts","link":"#contacts","children":[]},{"level":3,"title":"Links","slug":"links","link":"#links","children":[]}],"git":{"updatedTime":1721830505000,"contributors":[{"name":"Dmitriy Pleshevskiy","email":"dmitriy@pleshevski.ru","commits":1}]},"autoDesc":true,"filePathRelative":"eng/index.md"}`);export{k as comp,v as data}; diff --git a/dist/assets/style-BnNdFOI8.css b/dist/assets/style-BnNdFOI8.css new file mode 100644 index 0000000..41430c4 --- /dev/null +++ b/dist/assets/style-BnNdFOI8.css @@ -0,0 +1 @@ +@charset "UTF-8";.vp-back-to-top-button{position:fixed!important;inset-inline-end:1rem;bottom:4rem;z-index:100;width:48px;height:48px;padding:12px;border-width:0;border-radius:50%;background:var(--back-to-top-bg-color);color:var(--back-to-top-color);box-shadow:2px 2px 10px 4px var(--back-to-top-shadow);cursor:pointer}@media (max-width: 959px){.vp-back-to-top-button{transform:scale(.8);transform-origin:100% 100%}}@media print{.vp-back-to-top-button{display:none}}.vp-back-to-top-button:hover{color:var(--back-to-top-color-hover)}.vp-back-to-top-button .back-to-top-icon{overflow:hidden;width:24px;height:24px;margin:0 auto;background:var(--back-to-top-icon-color);-webkit-mask-image:var(--back-to-top-icon);mask-image:var(--back-to-top-icon);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:cover;mask-size:cover}.vp-scroll-progress{position:absolute;right:-2px;bottom:-2px;width:52px;height:52px}.vp-scroll-progress svg{width:100%;height:100%}.vp-scroll-progress circle{opacity:.9;transform:rotate(-90deg);transform-origin:50% 50%}.back-to-top-enter-active,.back-to-top-leave-active{transition:opacity .3s}.back-to-top-enter-from,.back-to-top-leave-to{opacity:0}:root{--back-to-top-z-index: 5;--back-to-top-icon: url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2048%2048'%3e%3cpath%20fill='none'%20stroke='currentColor'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='4'%20d='M24.008%2014.1V42M12%2026l12-12l12%2012M12%206h24'%20/%3e%3c/svg%3e");--back-to-top-bg-color: #fff;--back-to-top-color: #3eaf7c;--back-to-top-icon-color: currentcolor;--back-to-top-color-hover: #71cda3;--back-to-top-shadow: rgb(0 0 0 / 20%)}:root{--code-copy-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2'%3e%3cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2' /%3e%3c/svg%3e");--code-copied-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2'%3e%3cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2m-6 9 2 2 4-4' /%3e%3c/svg%3e");--copy-code-color: var(--code-line-number-color, #9e9e9e);--copy-code-hover: var(--code-highlight-bg-color, rgb(0 0 0 / 50%))}.vp-copy-code-button{position:absolute;top:.5em;right:.5em;z-index:5;width:2.5rem;height:2.5rem;padding:0;border-width:0;border-radius:.5rem;background:transparent;outline:none;opacity:0;cursor:pointer;transition:opacity .4s}@media print{.vp-copy-code-button{display:none}}.vp-copy-code-button:before{content:"";display:inline-block;width:1.25rem;height:1.25rem;padding:.625rem;background:currentcolor;color:var(--copy-code-color);font-size:1.25rem;-webkit-mask-image:var(--code-copy-icon);mask-image:var(--code-copy-icon);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:1em;mask-size:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.vp-copy-code-button:focus,.vp-copy-code-button.copied{opacity:1}.vp-copy-code-button:hover,.vp-copy-code-button.copied{background:var(--copy-code-hover)}.vp-copy-code-button.copied:before{-webkit-mask-image:var(--code-copied-icon);mask-image:var(--code-copied-icon)}.vp-copy-code-button.copied:after{content:attr(data-copied);position:absolute;top:0;right:calc(100% + .25rem);display:block;height:1.25rem;padding:.625rem;border-radius:.5rem;background:var(--copy-code-hover);color:var(--copy-code-color);font-weight:500;line-height:1.25rem;white-space:nowrap}.copy-code-disabled .vp-copy-code-button{display:none}body:not(.copy-code-disabled) div[class*=language-]:hover:before{display:none}body:not(.copy-code-disabled) div[class*=language-]:hover .vp-copy-code-button{opacity:1}:root{--medium-zoom-z-index: 100;--medium-zoom-bg-color: #fff;--medium-zoom-opacity: 1}.medium-zoom-overlay{z-index:var(--medium-zoom-z-index);background-color:var(--medium-zoom-bg-color)!important}.medium-zoom-overlay~img{z-index:calc(var(--medium-zoom-z-index) + 1)}.medium-zoom--opened .medium-zoom-overlay{opacity:var(--medium-zoom-opacity)}:root{--nprogress-color: #29d;--nprogress-z-index: 1031}#nprogress{pointer-events:none}#nprogress .bar{position:fixed;top:0;left:0;z-index:var(--nprogress-z-index);width:100%;height:2px;background:var(--nprogress-color)}:root{--code-padding-x: 1.25rem;--code-padding-y: 1rem;--code-border-radius: 6px;--code-line-height: 1.6;--code-font-family: consolas, monaco, "Andale Mono", "Ubuntu Mono", monospace}div[class*=language-]{position:relative;border-radius:var(--code-border-radius);background-color:var(--code-c-bg)}div[class*=language-]:before{content:attr(data-title);position:absolute;top:.8em;right:1em;z-index:3;color:var(--code-c-text);font-size:.75rem}div[class*=language-] pre{position:relative;z-index:1;overflow-x:auto;margin:.75rem 0;border-radius:var(--code-border-radius);font-size:14px;font-family:var(--code-font-family);line-height:var(--code-line-height)}div[class*=language-] pre code{display:block;box-sizing:border-box;width:-moz-fit-content;width:fit-content;min-width:100%;padding:var(--code-padding-y) var(--code-padding-x);background-color:transparent!important;overflow-wrap:unset;-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}:root{--code-c-text: #f8f8f2;--code-c-bg: #2e3440;--code-highlight-bg-color: #343d4e;--code-line-number-color: rgba(248, 248, 242, .67)}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#636f88}.token.punctuation{color:#81a1c1}.namespace{opacity:.7}.token.property,.token.tag,.token.constant,.token.symbol,.token.deleted{color:#81a1c1}.token.number{color:#b48ead}.token.boolean{color:#81a1c1}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#a3be8c}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string,.token.variable{color:#81a1c1}.token.atrule,.token.attr-value,.token.function,.token.class-name{color:#88c0d0}.token.keyword{color:#81a1c1}.token.regex,.token.important{color:#ebcb8b}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.vp-badge{display:inline-block;vertical-align:top;height:18px;padding:0 6px;border-radius:3px;color:var(--c-bg);font-weight:600;font-size:14px;line-height:18px;transition:color var(--t-color),background-color var(--t-color)}.vp-badge.tip{background-color:var(--c-badge-tip)}.vp-badge.warning{background-color:var(--c-badge-warning);color:var(--c-badge-warning-text)}.vp-badge.danger{background-color:var(--c-badge-danger);color:var(--c-badge-danger-text)}.vp-badge+.vp-badge{margin-left:5px}.code-group-nav{margin-top:.85rem;margin-bottom:calc(-1.7rem - 6px);padding-top:10px;padding-bottom:calc(1.7rem - 6px);padding-left:10px;border-top-left-radius:6px;border-top-right-radius:6px;background-color:var(--c-code-group-tab-bg)}@media (max-width: 419px){.code-group-nav{margin-right:-1.5rem;margin-left:-1.5rem;border-radius:0}}.code-group-nav-tab{padding:5px;border:0;background-color:transparent;color:var(--c-code-group-tab-title);font-weight:600;font-size:.85em;line-height:1.4;cursor:pointer}.code-group-nav-tab:focus{outline:none}.code-group-nav-tab:focus-visible{outline:1px solid var(--c-code-group-tab-outline)}.code-group-nav-tab.active{border-bottom:var(--c-code-group-tab-active-border) 1px solid}.code-group-item{display:none}.code-group-item.active{display:block}.code-group-item>pre{background-color:orange}.vp-features{display:flex;flex-wrap:wrap;place-content:stretch space-between;align-items:flex-start;margin-top:2.5rem;padding:1.2rem 0;border-top:1px solid var(--c-border);transition:border-color var(--t-color)}@media (max-width: 719px){.vp-features{flex-direction:column}}.vp-feature{flex-grow:1;flex-basis:30%;max-width:30%}@media (max-width: 719px){.vp-feature{max-width:100%;padding:0 2.5rem}}.vp-feature h2{padding-bottom:0;border-bottom:none;color:var(--c-text-light);font-weight:500;font-size:1.4rem}@media (max-width: 419px){.vp-feature h2{font-size:1.25rem}}.vp-feature p{color:var(--c-text-lighter)}.vp-footer{padding:2.5rem;border-top:1px solid var(--c-border);color:var(--c-text-lighter);text-align:center;transition:border-color var(--t-color)}.vp-hero{text-align:center}.vp-hero-image{display:block;max-width:100%;max-height:280px;margin:3rem auto 1.5rem}@media (max-width: 419px){.vp-hero-image{max-height:210px;margin:2rem auto 1.2rem}}#main-title{font-size:3rem}@media (max-width: 419px){#main-title{font-size:2rem}}#main-title,.vp-hero-description,.vp-hero-actions{margin:1.8rem auto}@media (max-width: 419px){#main-title,.vp-hero-description,.vp-hero-actions{margin:1.2rem auto}}.vp-hero-actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.vp-hero-description{max-width:35rem;color:var(--c-text-lightest);font-size:1.6rem;line-height:1.3}@media (max-width: 419px){.vp-hero-description{font-size:1.2rem}}.vp-hero-action-button{display:inline-block;box-sizing:border-box;padding:.8rem 1.6rem;border-width:2px;border-style:solid;border-radius:4px;font-size:1.2rem;transition:background-color var(--t-color)}@media (max-width: 419px){.vp-hero-action-button{padding:.6rem 1.2rem;font-size:1rem}}.vp-hero-action-button.primary{border-color:var(--c-brand);background-color:var(--c-brand);color:var(--c-bg)}.vp-hero-action-button.primary:hover{background-color:var(--c-brand-light)}.vp-hero-action-button.secondary{border-color:var(--c-brand);background-color:var(--c-bg);color:var(--c-brand)}.vp-hero-action-button.secondary:hover{background-color:var(--c-brand-light);color:var(--c-bg)}.vp-home{display:block;max-width:var(--homepage-width);margin:0 auto;padding:var(--navbar-height) 2rem 0}@media (max-width: 419px){.vp-home{padding-right:1.5rem;padding-left:1.5rem}}.vp-home .theme-default-content{margin:0;padding:0}.vp-site-logo{vertical-align:top;height:var(--navbar-line-height);margin-right:var(--navbar-padding-v)}.vp-site-name{position:relative;color:var(--c-text);font-weight:600;font-size:1.3rem}@media screen and (max-width: 719px){.vp-site-name{display:block;overflow:hidden;width:calc(100vw - 11rem);text-overflow:ellipsis;white-space:nowrap}}.vp-dropdown-enter-from,.vp-dropdown-leave-to{height:0!important}.vp-navbar-dropdown-wrapper{cursor:pointer}.vp-navbar-dropdown-wrapper:not(.mobile){height:1.8rem}.vp-navbar-dropdown-wrapper:not(.mobile):hover .vp-navbar-dropdown,.vp-navbar-dropdown-wrapper:not(.mobile).open .vp-navbar-dropdown{display:block!important}.vp-navbar-dropdown-wrapper.mobile .vp-navbar-dropdown{overflow:hidden;transition:height .1s ease-out;padding-top:.5rem}.vp-navbar-dropdown-wrapper:not(.mobile) .vp-navbar-dropdown{position:absolute;top:100%;right:0;display:none;overflow-y:auto;box-sizing:border-box;height:auto!important;max-height:calc(100vh - 2.7rem);margin:0;padding:.6rem 0;border:1px solid var(--c-border);border-bottom-color:var(--c-border-dark);border-radius:.25rem;background-color:var(--c-bg-navbar);text-align:left;white-space:nowrap}.vp-navbar-dropdown-title{display:block;padding:inherit;border:none;background:transparent;color:var(--c-text);font-weight:500;font-size:.9rem;font-family:inherit;line-height:1.4rem;cursor:inherit}.vp-navbar-dropdown-wrapper.mobile .vp-navbar-dropdown-title{display:none}.vp-navbar-dropdown-title:hover{border-color:transparent}.vp-navbar-dropdown-title-mobile{display:none;padding:inherit;border:none;background:transparent;color:var(--c-text);font-weight:600;font-size:inherit;font-family:inherit;line-height:1.4rem;cursor:inherit}.vp-navbar-dropdown-wrapper.mobile .vp-navbar-dropdown-title-mobile{display:block}.vp-navbar-dropdown-title-mobile:hover{color:var(--c-text-accent)}.vp-navbar-dropdown-item{color:inherit;line-height:1.7rem}.vp-navbar-dropdown-item a{position:relative;display:block;margin-bottom:0;padding:0 1.5rem 0 1.25rem;border-bottom:none;font-weight:400;line-height:1.7rem}.vp-navbar-dropdown-item a:hover,.vp-navbar-dropdown-item a.route-link-active{color:var(--c-text-accent)}.vp-navbar-dropdown-item a.route-link-active:after{content:"";position:absolute;top:calc(50% - 2px);left:9px;width:0;height:0;border-top:3px solid transparent;border-bottom:3px solid transparent;border-left:5px solid var(--c-text-accent)}.vp-navbar-dropdown-wrapper.mobile .vp-navbar-dropdown-item>a{font-size:15px;line-height:2rem}.vp-navbar-dropdown-subtitle{margin:.45rem 0 0;padding:1rem 0 .45rem;border-top:1px solid var(--c-border);font-size:.9rem}.vp-navbar-dropdown-wrapper.mobile .vp-navbar-dropdown-subtitle{margin-top:0;padding-top:0;padding-bottom:0;border-top:0;font-size:15px;line-height:2rem}.vp-navbar-dropdown-item:first-child .vp-navbar-dropdown-subtitle{margin-top:0;padding-top:0;border-top:0}.vp-navbar-dropdown-subtitle>span{padding:0 1.5rem 0 1.25rem}.vp-navbar-dropdown-subtitle>a{font-weight:inherit}.vp-navbar-dropdown-subtitle>a.route-link-active:after{display:none}.vp-navbar-dropdown-subitem-wrapper{padding:0;list-style:none}.vp-navbar-dropdown-subitem{font-size:.9em}.vp-navbar-dropdown-wrapper.mobile .vp-navbar-dropdown-subitem{padding-left:1rem;font-size:14px}.vp-navbar-items{display:inline-block}@media print{.vp-navbar-items{display:none}}.vp-navbar-items a{display:inline-block;color:inherit;line-height:1.4rem}.vp-navbar-items a:hover,.vp-navbar-items a.route-link-active{color:var(--c-text)}.vp-navbar-item{position:relative;display:inline-block;margin-left:1.5rem;line-height:var(--navbar-line-height)}@media (max-width: 719px){.vp-navbar-item{margin-left:0}}.vp-navbar-item:first-child{margin-left:0}.vp-navbar-item a:hover,.vp-navbar-item a.route-link-active{color:var(--c-text-accent)}.vp-navbar-item>a:hover,.vp-navbar-item>a.route-link-active{margin-bottom:-2px;border-bottom:2px solid var(--c-text-accent)}@media (max-width: 719px){.vp-navbar-item>a:hover,.vp-navbar-item>a.route-link-active{margin-bottom:0;border-bottom:none}}.vp-toggle-color-mode-button{display:flex;margin:auto;margin-left:1rem;border:0;background:none;color:var(--c-text);opacity:.8;cursor:pointer}@media print{.vp-toggle-color-mode-button{display:none}}.vp-toggle-color-mode-button:hover{opacity:1}.vp-toggle-color-mode-button .light-icon,.vp-toggle-color-mode-button .dark-icon{width:1.25rem;height:1.25rem}.vp-toggle-sidebar-button{position:absolute;top:.6rem;left:1rem;display:none;padding:.6rem;cursor:pointer}@media screen and (max-width: 719px){.vp-toggle-sidebar-button{display:block}}.vp-toggle-sidebar-button .icon{display:flex;flex-direction:column;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;cursor:inherit}.vp-toggle-sidebar-button .icon span{display:inline-block;width:100%;height:2px;border-radius:2px;background-color:var(--c-text);transition:transform var(--t-transform)}.vp-toggle-sidebar-button .icon span:nth-child(2){margin:6px 0}.vp-theme-container.sidebar-open .vp-toggle-sidebar-button .icon span:nth-child(1){transform:rotate(45deg) translate3d(5.5px,5.5px,0)}.vp-theme-container.sidebar-open .vp-toggle-sidebar-button .icon span:nth-child(2){transform:scale3d(0,1,1)}.vp-theme-container.sidebar-open .vp-toggle-sidebar-button .icon span:nth-child(3){transform:rotate(-45deg) translate3d(6px,-6px,0)}.vp-theme-container.sidebar-open .vp-toggle-sidebar-button .icon span:nth-child(1),.vp-theme-container.sidebar-open .vp-toggle-sidebar-button .icon span:nth-child(3){transform-origin:center}.vp-navbar{--navbar-line-height: calc( var(--navbar-height) - 2 * var(--navbar-padding-v) );position:fixed;top:0;right:0;left:0;z-index:20;box-sizing:border-box;height:var(--navbar-height);padding:var(--navbar-padding-v) var(--navbar-padding-h);border-bottom:1px solid var(--c-border);background-color:var(--c-bg-navbar);line-height:var(--navbar-line-height);transition:background-color var(--t-color),border-color var(--t-color)}@media screen and (max-width: 719px){.vp-navbar{padding-left:4rem}}.vp-navbar-items-wrapper{position:absolute;top:var(--navbar-padding-v);right:var(--navbar-padding-h);display:flex;box-sizing:border-box;height:var(--navbar-line-height);padding-left:var(--navbar-padding-h);font-size:.9rem;white-space:nowrap}.vp-page-meta{max-width:var(--content-width);margin:0 auto;padding:.75rem 2.5rem;display:flex;flex-wrap:wrap;justify-content:space-between;overflow:auto}@media (max-width: 959px){.vp-page-meta{padding:2rem}}@media (max-width: 419px){.vp-page-meta{padding:1.5rem}}@media print{.vp-page-meta{margin:0!important;padding-right:0!important;padding-left:0!important}}@media (max-width: 719px){.vp-page-meta{display:block}}.vp-page-meta .vp-meta-item{flex-grow:1}.vp-page-meta .vp-meta-item .vp-meta-label{font-weight:500}.vp-page-meta .vp-meta-item .vp-meta-label:not(a){color:var(--c-text-lighter)}.vp-page-meta .vp-meta-item .vp-meta-info{color:var(--c-text-quote);font-weight:400}.vp-page-meta .git-info{text-align:end}.vp-page-meta .edit-link{margin-top:.25rem;margin-right:.5rem;margin-bottom:.25rem;font-size:14px}@media print{.vp-page-meta .edit-link{display:none}}.vp-page-meta .edit-link .edit-icon{position:relative;bottom:-.125em;width:1em;height:1em;margin-right:.25em}.vp-page-meta .last-updated,.vp-page-meta .contributors{margin-top:.25rem;margin-bottom:.25rem;font-size:14px}@media (max-width: 719px){.vp-page-meta .last-updated,.vp-page-meta .contributors{font-size:13px;text-align:start}}.vp-page-nav{display:flex;flex-wrap:wrap;max-width:var(--content-width, 740px);min-height:2rem;margin-top:0;margin-right:auto;margin-left:auto;padding:1rem 2rem 0;border-top:1px solid var(--c-border);transition:border-top var(--t-color)}@media (max-width: 959px){.vp-page-nav{padding-right:1rem;padding-left:1rem}}@media print{.vp-page-nav{display:none}}.vp-page-nav .route-link{display:inline-block;flex-grow:1;margin:.25rem;padding:.25rem .5rem;border:1px solid var(--c-border);border-radius:.25rem}.vp-page-nav .route-link:hover{background:var(--c-bg-light)}.vp-page-nav .route-link .hint{color:var(--c-text-quote);font-size:.875rem;line-height:2}.vp-page-nav .prev{text-align:start}.vp-page-nav .next{text-align:end}.vp-page{display:block;padding-top:var(--navbar-height);padding-bottom:2rem;padding-left:var(--sidebar-width)}@media (max-width: 959px){.vp-page{padding-left:var(--sidebar-width-mobile)}}@media (max-width: 719px){.vp-page{padding-left:0}}.vp-page .theme-default-content{max-width:var(--content-width);margin:0 auto;padding:2rem 2.5rem;padding-top:0}@media (max-width: 959px){.vp-page .theme-default-content{padding:2rem}}@media (max-width: 419px){.vp-page .theme-default-content{padding:1.5rem}}.vp-sidebar-item{border-left:.25rem solid transparent;color:var(--c-text);cursor:default}.vp-sidebar-item:focus-visible{outline-width:1px;outline-offset:-1px}.vp-sidebar-item.vp-sidebar-heading{box-sizing:border-box;width:100%;margin:0;padding:.35rem 1.5rem .35rem 1.25rem;font-weight:700;font-size:1.1em;transition:color .15s ease}.vp-sidebar-item.vp-sidebar-heading+.vp-sidebar-children{overflow:hidden;transition:height .1s ease-out;margin-bottom:.75rem}.vp-sidebar-item.collapsible{cursor:pointer}.vp-sidebar-item:not(.vp-sidebar-heading){display:inline-block;box-sizing:border-box;width:100%;margin:0;padding:.35rem 1rem .35rem 2rem;font-weight:400;font-size:1em;line-height:1.4}.vp-sidebar-item:not(.vp-sidebar-heading)+.vp-sidebar-children{padding-left:1rem;font-size:.95em}.vp-sidebar-children .vp-sidebar-children .vp-sidebar-item:not(.vp-sidebar-heading){padding:.25rem 1rem .25rem 1.75rem}.vp-sidebar-children .vp-sidebar-children .vp-sidebar-item:not(.vp-sidebar-heading).active{border-left-color:transparent;font-weight:500}a.vp-sidebar-heading+.vp-sidebar-children .vp-sidebar-item:not(.vp-sidebar-heading).active{border-left-color:transparent}.vp-sidebar-item.active:not(p.vp-sidebar-heading){border-left-color:var(--c-text-accent);color:var(--c-text-accent);font-weight:600}a.vp-sidebar-item{cursor:pointer}a.vp-sidebar-item:hover{color:var(--c-text-accent)}.vp-sidebar-items{margin:0;padding:1.5rem 0;list-style-type:none}@media (max-width: 719px){.vp-sidebar-items{padding:1rem 0}}.vp-sidebar-items ul{margin:0;padding:0;list-style-type:none}.vp-sidebar-items a{display:inline-block}.vp-sidebar{position:fixed;top:var(--navbar-height);bottom:0;left:0;z-index:10;overflow-y:auto;box-sizing:border-box;width:var(--sidebar-width);margin:0;border-right:1px solid var(--c-border);background-color:var(--c-bg-sidebar);font-size:16px;transition:transform var(--t-transform),background-color var(--t-color),border-color var(--t-color);scrollbar-color:var(--c-brand) var(--c-border);scrollbar-width:thin}@media (max-width: 959px){.vp-sidebar{width:var(--sidebar-width-mobile);font-size:15px}}@media (max-width: 719px){.vp-sidebar{top:0;padding-top:var(--navbar-height);transform:translate(-100%)}}.vp-sidebar::-webkit-scrollbar{width:7px}.vp-sidebar::-webkit-scrollbar-track{background-color:var(--c-border)}.vp-sidebar::-webkit-scrollbar-thumb{background-color:var(--c-brand)}.vp-sidebar .vp-navbar-items{display:none;padding:.5rem 0 .75rem;border-bottom:1px solid var(--c-border);transition:border-color var(--t-color)}@media (max-width: 719px){.vp-sidebar .vp-navbar-items{display:block}.vp-sidebar .vp-navbar-items .vp-navbar-dropdown-item a.route-link-active:after{top:calc(1rem - 2px)}}.vp-sidebar .vp-navbar-items ul{margin:0;padding:0;list-style-type:none}.vp-sidebar .vp-navbar-items a{font-weight:600}.vp-sidebar .vp-navbar-item{display:block;padding:.5rem 0 .5rem 1.5rem;font-size:1.1em;line-height:1.25rem}.vp-sidebar-mask{position:fixed;top:0;left:0;z-index:9;display:none;width:100vw;height:100vh}.vp-theme-container.no-navbar .vp-sidebar{top:0}@media (max-width: 719px){.vp-theme-container.no-navbar .vp-sidebar{padding-top:0}}.vp-theme-container.no-navbar .vp-page{padding-top:0}.vp-theme-container.no-navbar .theme-default-content h1,.vp-theme-container.no-navbar .theme-default-content h2,.vp-theme-container.no-navbar .theme-default-content h3,.vp-theme-container.no-navbar .theme-default-content h4,.vp-theme-container.no-navbar .theme-default-content h5,.vp-theme-container.no-navbar .theme-default-content h6{margin-top:1.5rem;padding-top:0}.vp-theme-container.no-sidebar .vp-sidebar{display:none}@media (max-width: 719px){.vp-theme-container.no-sidebar .vp-sidebar{display:block}}.vp-theme-container.no-sidebar .vp-page{padding-left:0}@media (max-width: 719px){.vp-theme-container.sidebar-open .vp-sidebar{transform:translate(0)}.vp-theme-container.sidebar-open .vp-sidebar-mask{display:block}}.fade-slide-y-enter-active{transition:all .2s ease}.fade-slide-y-leave-active{transition:all .2s cubic-bezier(1,.5,.8,1)}.fade-slide-y-enter-from,.fade-slide-y-leave-to{opacity:0;transform:translateY(10px)}.vp-theme-container[data-v-99131a8e]{max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width: 959px){.vp-theme-container[data-v-99131a8e]{padding:2rem}}html,body{background:#fff}html{font-size:16px;font-display:optional;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}@media print{html{font-size:12pt}}body{min-height:100vh;margin:0;padding:0;color:#2c3e50;font-synthesis:style}a{color:#3eaf7c;font-weight:500;text-decoration:none;overflow-wrap:break-word}kbd{display:inline-block;min-width:1em;margin-inline:.125rem;padding:.25em;border:1px solid #eee;border-radius:.25em;box-shadow:1px 1px 4px #00000026;line-height:1;letter-spacing:-.1em;text-align:center}:not(pre)>code{margin:0;padding:3px 6px;border-radius:4px;background:#7f7f7f1f;font-size:.875em;overflow-wrap:break-word}table code{padding:.1rem .4rem}p a code{color:#3eaf7c;font-weight:400}strong{font-weight:600}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25;overflow-wrap:break-word}h1:focus-visible,h2:focus-visible,h3:focus-visible,h4:focus-visible,h5:focus-visible,h6:focus-visible{outline:none}h1{font-size:2rem}h2{padding-bottom:.3rem;border-bottom:1px solid #eaecef;font-size:1.65rem}h3{font-size:1.35rem}h4{font-size:1.15rem}h5{font-size:1.05rem}h6{font-size:1rem}a.header-anchor{position:relative;color:inherit;text-decoration:none}a.header-anchor:hover:before{content:"¶";position:absolute;top:.4167em;left:-.75em;color:var(--c-brand);font-size:.75em}a.header-anchor:focus-visible{outline:none}a.header-anchor:focus-visible:before{content:"¶";position:absolute;left:-.75em;color:var(--c-brand);outline:auto}p,ul,ol{line-height:1.6;overflow-wrap:break-word}@media print{p,ul,ol{line-height:1.5}}ul,ol{padding-inline-start:1.2em}blockquote{margin:1rem 0;padding:.25rem 0 .25rem 1rem;border-inline-start:.2rem solid #ddd;color:#666;font-size:1rem;overflow-wrap:break-word}blockquote>p{margin:0}hr{border:0;border-top:1px solid #eaecef}table{display:block;overflow-x:auto;margin:1rem 0;border-collapse:collapse}tr:nth-child(odd){background:#f6f8fa}th,td{padding:.6em 1em;border:1px solid #dfe2e5}pre{text-align:left;direction:ltr;white-space:pre;word-spacing:normal;word-wrap:normal;word-break:normal;overflow-wrap:unset;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}@media print{pre{white-space:pre-wrap}}pre code{padding:0;border-radius:0}@page{margin:2cm;font-size:12pt;size:a4}@media print{*,:after,:before{box-shadow:none!important;text-shadow:none!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}a{color:inherit;font-weight:inherit!important;font-size:inherit!important;text-decoration:underline}a.header-anchor{text-decoration:none}abbr[title]:after{content:" (" attr(title) ")"}pre{border:1px solid #eee;white-space:pre-wrap!important}pre>code{white-space:pre-wrap!important}blockquote{border-inline-start:.2rem solid #ddd;color:inherit}blockquote,pre{orphans:5;widows:5}img,tr,canvas{page-break-inside:avoid}}@media (prefers-reduced-motion: reduce){*,:before,:after{background-attachment:initial!important;scroll-behavior:auto!important;transition-delay:0s!important;transition-duration:0s!important;animation-duration:1ms!important;animation-delay:-1ms!important;animation-iteration-count:1!important}}:root{--c-brand: #3eaf7c;--c-brand-light: #4abf8a;--c-bg: #fff;--c-bg-light: #f3f4f5;--c-bg-lighter: #eee;--c-bg-dark: #ebebec;--c-bg-darker: #e6e6e6;--c-bg-navbar: var(--c-bg);--c-bg-sidebar: var(--c-bg);--c-bg-arrow: #ccc;--c-text: #2c3e50;--c-text-accent: var(--c-brand);--c-text-light: #3a5169;--c-text-lighter: #4e6e8e;--c-text-lightest: #6a8bad;--c-text-quote: #999;--c-border: #eaecef;--c-border-dark: #dfe2e5;--c-tip: #42b983;--c-tip-bg: var(--c-bg-light);--c-tip-title: var(--c-text);--c-tip-text: var(--c-text);--c-tip-text-accent: var(--c-text-accent);--c-warning: #ffc310;--c-warning-bg: #fffae3;--c-warning-bg-light: #fff3ba;--c-warning-bg-lighter: #fff0b0;--c-warning-border-dark: #f7dc91;--c-warning-details-bg: #fff5ca;--c-warning-title: #f1b300;--c-warning-text: #746000;--c-warning-text-accent: #edb100;--c-warning-text-light: #c1971c;--c-warning-text-quote: #ccab49;--c-danger: #f11e37;--c-danger-bg: #ffe0e0;--c-danger-bg-light: #ffcfde;--c-danger-bg-lighter: #ffc9c9;--c-danger-border-dark: #f1abab;--c-danger-details-bg: #ffd4d4;--c-danger-title: #ed1e2c;--c-danger-text: #600;--c-danger-text-accent: #bd1a1a;--c-danger-text-light: #b5474d;--c-danger-text-quote: #c15b5b;--c-details-bg: #eee;--c-badge-tip: var(--c-tip);--c-badge-warning: #ecc808;--c-badge-warning-text: var(--c-bg);--c-badge-danger: #dc2626;--c-badge-danger-text: var(--c-bg);--c-code-group-tab-title: rgb(255 255 255 / 90%);--c-code-group-tab-bg: var(--code-bg-color);--c-code-group-tab-outline: var(var(--c-code-group-tab-title));--c-code-group-tab-active-border: var(--c-brand);--t-color: .3s ease;--t-transform: .3s ease;--font-family: -apple-system, "BlinkMacSystemFont", "Segoe UI", roboto, oxygen, ubuntu, cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--navbar-height: 3.6rem;--navbar-padding-v: .7rem;--navbar-padding-h: 1.5rem;--sidebar-width: 20rem;--sidebar-width-mobile: calc(var(--sidebar-width) * .82);--content-width: 740px;--homepage-width: 960px;--external-link-icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");--external-link-icon-color: var(--c-text-quote)}.vp-back-to-top-button{--back-to-top-color: var(--c-brand);--back-to-top-color-hover: var(--c-brand-light);--back-to-top-bg-color: var(--c-bg)}.vp-catalog-wrapper{--catalog-bg-color: var(--c-bg);--catalog-bg-secondary-color: var(--c-bg-dark);--catalog-border-color: var(--c-border);--catalog-active-color: var(--c-brand);--catalog-hover-color: var(--c-brand-light)}.waline-wrapper{--waline-bg-color: var(--c-bg);--waline-bg-color-light: var(--c-bg-light);--waline-text-color: var(--c-color);--waline-border: 1px solid var(--c-border);--waline-border-color: var(--c-border);--waline-theme-color: var(--c-brand);--waline-active-color: var(--c-brand-light)}.DocSearch{--docsearch-primary-color: var(--c-brand);--docsearch-text-color: var(--c-text);--docsearch-highlight-color: var(--c-brand);--docsearch-muted-color: var(--c-text-quote);--docsearch-container-background: rgb(9 10 17 / 80%);--docsearch-modal-background: var(--c-bg-light);--docsearch-searchbox-background: var(--c-bg-lighter);--docsearch-searchbox-focus-background: var(--c-bg);--docsearch-searchbox-shadow: inset 0 0 0 2px var(--c-brand);--docsearch-hit-color: var(--c-text-light);--docsearch-hit-active-color: var(--c-bg);--docsearch-hit-background: var(--c-bg);--docsearch-hit-shadow: 0 1px 3px 0 var(--c-border-dark);--docsearch-footer-background: var(--c-bg)}.medium-zoom-overlay{--medium-zoom-bg-color: var(--c-bg)}.vp-notice-wrapper{--notice-color: var(--c-text);--notice-bg-color: var(--c-bg);--notice-primary-color: var(--c-brand);--notice-primary-text-color: var(--c-bg);--notice-primary-hover-color: var(--c-brand-light);--notice-button-color: var(--c-bg-light);--notice-button-hover-color: var(--c-bg-lighter)}#nprogress{--nprogress-color: var(--c-brand)}body{--photo-swipe-bullet: var(--c-bg);--photo-swipe-bullet-active: var(--c-brand);--pwa-text-color: var(--c-text);--pwa-bg-color: var(--c-bg);--pwa-border-color: var(--c-brand);--pwa-btn-text-color: var(--c-bg);--pwa-btn-bg-color: var(--c-brand);--pwa-btn-hover-bg-color: var(--c-brand-light)}.redirect-modal-mask{--redirect-bg-color: var(--c-bg);--redirect-bg-color-light: var(--c-bg-light);--redirect-bg-color-lighter: var(--c-bg-lighter);--redirect-text-color: var(--c-text);--redirect-primary-color: var(--c-brand);--redirect-primary-hover-color: var(--c-brand-light);--redirect-primary-text-color: var(--c-bg)}.search-box{--search-bg-color: var(--c-bg);--search-accent-color: var(--c-brand);--search-text-color: var(--c-text);--search-border-color: var(--c-border);--search-item-text-color: var(--c-text-lighter);--search-item-focus-bg-color: var(--c-bg-light)}html.dark{--c-brand: #3aa675;--c-brand-light: #349469;--c-bg: #22272e;--c-bg-light: #2b313a;--c-bg-lighter: #262c34;--c-bg-dark: #343b44;--c-bg-darker: #37404c;--c-text: #adbac7;--c-text-light: #96a7b7;--c-text-lighter: #8b9eb0;--c-text-lightest: #8094a8;--c-border: #3e4c5a;--c-border-dark: #34404c;--c-tip: #318a62;--c-warning: #e0ad15;--c-warning-bg: #2d2f2d;--c-warning-bg-light: #423e2a;--c-warning-bg-lighter: #44442f;--c-warning-border-dark: #957c35;--c-warning-details-bg: #39392d;--c-warning-title: #fdca31;--c-warning-text: #d8d96d;--c-warning-text-accent: #ffbf00;--c-warning-text-light: #ddb84b;--c-warning-text-quote: #ccab49;--c-danger: #fc1e38;--c-danger-bg: #39232c;--c-danger-bg-light: #4b2b35;--c-danger-bg-lighter: #553040;--c-danger-border-dark: #a25151;--c-danger-details-bg: #482936;--c-danger-title: #fc2d3b;--c-danger-text: #ea9ca0;--c-danger-text-accent: #fd3636;--c-danger-text-light: #d9777c;--c-danger-text-quote: #d56b6b;--c-details-bg: #323843;--c-badge-warning: var(--c-warning);--c-badge-warning-text: #3c2e05;--c-badge-danger: var(--c-danger);--c-badge-danger-text: #401416}html.dark .DocSearch{--docsearch-logo-color: var(--c-text);--docsearch-modal-shadow: inset 1px 1px 0 0 #2c2e40, 0 3px 8px 0 #000309;--docsearch-key-shadow: inset 0 -2px 0 0 #282d55, inset 0 0 1px 1px #51577d, 0 2px 2px 0 rgb(3 4 9 / 30%);--docsearch-key-gradient: linear-gradient(-225deg, #444950, #1c1e21);--docsearch-footer-shadow: inset 0 1px 0 0 rgb(73 76 106 / 50%), 0 -4px 8px 0 rgb(0 0 0 / 20%)}html.dark body{--pwa-shadow-color: rgb(0 0 0 / 30%);--pwa-content-color: #ccc;--pwa-content-light-color: #999}html,body{background-color:var(--c-bg);transition:background-color var(--t-color)}html.dark{color-scheme:dark}body{color:var(--c-text);font-size:1rem;font-family:var(--font-family)}h2{border-color:var(--c-border);transition:border-color var(--t-color)}a{color:var(--c-text-accent)}code{background-color:var(--c-bg-light);color:var(--c-text-lighter);font-family:var(--code-font-family);transition:background-color var(--t-color)}p a code{color:var(--c-text-accent)}kbd{border-color:var(--c-border-dark);transition:border-color var(--t-color)}blockquote{border-color:var(--c-border-dark);color:var(--c-text-quote);transition:border-color var(--t-color)}hr{border-color:var(--c-border);transition:border-color var(--t-color)}table{transition:border-color var(--t-color)}tr:nth-child(odd){background-color:var(--c-bg-light);transition:background-color var(--t-color)}tr:nth-child(odd) code{background-color:var(--c-bg-dark)}th,td{border-color:var(--c-border-dark);transition:border-color var(--t-color)}.theme-default-content h1,.theme-default-content h2,.theme-default-content h3,.theme-default-content h4,.theme-default-content h5,.theme-default-content h6{margin-top:calc(.5rem - var(--navbar-height));margin-bottom:0;padding-top:calc(1rem + var(--navbar-height))}.theme-default-content h1:first-child,.theme-default-content h2:first-child,.theme-default-content h3:first-child,.theme-default-content h4:first-child,.theme-default-content h5:first-child,.theme-default-content h6:first-child{margin-bottom:1rem}.theme-default-content h1:first-child+p,.theme-default-content h1:first-child+pre,.theme-default-content h1:first-child+.custom-container,.theme-default-content h2:first-child+p,.theme-default-content h2:first-child+pre,.theme-default-content h2:first-child+.custom-container,.theme-default-content h3:first-child+p,.theme-default-content h3:first-child+pre,.theme-default-content h3:first-child+.custom-container,.theme-default-content h4:first-child+p,.theme-default-content h4:first-child+pre,.theme-default-content h4:first-child+.custom-container,.theme-default-content h5:first-child+p,.theme-default-content h5:first-child+pre,.theme-default-content h5:first-child+.custom-container,.theme-default-content h6:first-child+p,.theme-default-content h6:first-child+pre,.theme-default-content h6:first-child+.custom-container{margin-top:2rem}@media (max-width: 419px){.theme-default-content h1{font-size:1.9rem}}.theme-default-content a:not(.header-anchor){text-decoration:underline}.theme-default-content img{max-width:100%}div[class*=language-]{margin:.75rem 0;transition:background-color var(--t-color),color var(--t-color)}@media (max-width: 419px){div[class*=language-]{--code-border-radius: 0;margin:.75rem -1.5rem}}div[class*=language-] .line.diff,div[class*=language-] .line.highlighted{transition:background-color var(--t-color)}.custom-container{transition:color var(--t-color),border-color var(--t-color),background-color var(--t-color)}.custom-container .custom-container-title{font-weight:600}.custom-container .custom-container-title:not(:only-child){margin-bottom:-.4rem}.custom-container.tip,.custom-container.warning,.custom-container.danger{margin:1rem 0;padding:.1rem 1.5rem;border-left-width:.5rem;border-left-style:solid}.custom-container.tip{border-color:var(--c-tip);background-color:var(--c-tip-bg);color:var(--c-tip-text)}.custom-container.tip .custom-container-title{color:var(--c-tip-title)}.custom-container.tip a{color:var(--c-tip-text-accent)}.custom-container.tip code{background-color:var(--c-bg-dark)}.custom-container.warning{--external-link-icon-color: var(--c-warning-text-quote);border-color:var(--c-warning);background-color:var(--c-warning-bg);color:var(--c-warning-text)}.custom-container.warning .custom-container-title{color:var(--c-warning-title)}.custom-container.warning a{color:var(--c-warning-text-accent)}.custom-container.warning blockquote{border-left-color:var(--c-warning-border-dark);color:var(--c-warning-text-quote)}.custom-container.warning code{background-color:var(--c-warning-bg-light);color:var(--c-warning-text-light)}.custom-container.warning details{background-color:var(--c-warning-details-bg)}.custom-container.warning details code{background-color:var(--c-warning-bg-lighter)}.custom-container.danger{--external-link-icon-color: var(--c-danger-text-quote);border-color:var(--c-danger);background-color:var(--c-danger-bg);color:var(--c-danger-text)}.custom-container.danger .custom-container-title{color:var(--c-danger-title)}.custom-container.danger a{color:var(--c-danger-text-accent)}.custom-container.danger blockquote{border-left-color:var(--c-danger-border-dark);color:var(--c-danger-text-quote)}.custom-container.danger code{background-color:var(--c-danger-bg-light);color:var(--c-danger-text-light)}.custom-container.danger details{background-color:var(--c-danger-details-bg)}.custom-container.danger details code{background-color:var(--c-danger-bg-lighter)}.custom-container.details{position:relative;display:block;margin:1.6em 0;padding:1.6em;border-radius:2px;background-color:var(--c-details-bg)}.custom-container.details code{background-color:var(--c-bg-darker)}.custom-container.details h4{margin-top:0}.custom-container.details figure:last-child,.custom-container.details p:last-child{margin-bottom:0;padding-bottom:0}.custom-container.details summary{outline:none;cursor:pointer}.table-of-contents .vp-badge{vertical-align:middle}.arrow{display:inline-block;vertical-align:middle;width:1em;height:1em;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgba(0,0,0,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E");background-position:center;background-repeat:no-repeat;line-height:normal;transition:all .3s}html.dark .arrow{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgba(255,255,255,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E")}.arrow.down{transform:rotate(180deg)}.arrow.right{transform:rotate(90deg)}.arrow.left{transform:rotate(-90deg)}.vp-external-link-icon:after{content:"";display:inline-block;flex-shrink:0;width:11px;height:11px;margin-top:-1px;margin-left:4px;background:var(--external-link-icon-color);-webkit-mask-image:var(--external-link-icon);mask-image:var(--external-link-icon)}.external-link-icon .external-link:after{content:"";display:inline-block;flex-shrink:0;width:11px;height:11px;margin-top:-1px;margin-left:4px;background:var(--external-link-icon-color);-webkit-mask-image:var(--external-link-icon);mask-image:var(--external-link-icon)}.external-link-icon .theme-default-content a[href*="://"]:not(.no-external-link-icon):after,.external-link-icon .theme-default-content a[target=_blank]:not(.no-external-link-icon):after{content:"";display:inline-block;flex-shrink:0;width:11px;height:11px;margin-top:-1px;margin-left:4px;background:var(--external-link-icon-color);-webkit-mask-image:var(--external-link-icon);mask-image:var(--external-link-icon)}@media screen and (max-width: 719px){.vp-hide-mobile{display:none}}#vp-comment{max-width:var(--content-width);margin:0 auto;padding:2rem 2.5rem}@media (max-width: 959px){#vp-comment{padding:2rem}}@media (max-width: 419px){#vp-comment{padding:1.5rem}}.vp-navbar .DocSearch{transition:background-color var(--t-color)}.vp-navbar .search-box{vertical-align:top;flex:0 0 auto}.lang-modal-fade-enter-active,.lang-modal-fade-leave-active{transition:opacity .5s}.lang-modal-fade-enter,.lang-modal-fade-leave-to{opacity:0}.lang-modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1499;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}@media print{.lang-modal-mask{display:none}}.lang-modal-wrapper{position:relative;z-index:1500;overflow:hidden;max-width:80vw;padding:1rem 2rem;border-radius:8px;background:var(--vp-bg);box-shadow:0 2px 6px 0 var(--card-shadow)}.lang-modal-action{display:block;width:100%;margin:1rem 0;padding:.5rem .75rem;border:none;border-radius:8px;background-color:var(--vp-bglt);color:var(--vp-c);cursor:pointer}.lang-modal-action:hover{background-color:var(--vp-bgl)}.lang-modal-action.primary{background-color:var(--vp-tc);color:var(--white)}.lang-modal-action.primary:hover{background-color:var(--vp-tcl)}.works-table-wrapper[data-v-765855fb]{margin:0 auto;padding:0 2rem;max-width:1224px;box-sizing:border-box}.works-table-wrapper[data-v-765855fb] table{width:100%}:root{--content-width: 960px}.vp-page .theme-default-content{padding-bottom:0!important}.vp-page-meta{display:none} diff --git a/dist/assets/works.html-DIDCwbnz.js b/dist/assets/works.html-DIDCwbnz.js new file mode 100644 index 0000000..4ec7b02 --- /dev/null +++ b/dist/assets/works.html-DIDCwbnz.js @@ -0,0 +1 @@ +import{_ as e,c as t,o as r,e as a}from"./app-Dw1tezwH.js";const o={},i=a('

Highlighted working experience

Binary Management

  • Dates: August 2018 – currently
  • Roles: Lead Fullstack Developer, Team Lead, Architect

Development of a project management tool for interior designers

  • Development of the GraphQL API (Node.JS, Apollo, PostgreSQL, Redis, BullMQ). Moved database triggers to business logic. Wrote integration tests on 70% api.
  • Development of the frontend (React, Antd). Formed uikit, shared components, redesigned the page generation gathering. Completely changed work with API on the frontend. Introduced the practice of writing integration tests using cypress
  • Completely ported the project to TypeScript. I have formed isolated modules of the system.
  • As a team leader, I brought the critical chain method, the buffer method, and the planning method to the project from the end. Helped the team get into a rhythm to make releases each week in small batches. A couple of times I also prepared an individual development plan for team members.

Master Progress

  • Dates: May 2018 - currently (Passively maintained)
  • Role: Tech Lead

Development web infrastructure of the educational center Master Progress

Core Spirit

  • Dates: August 2018 - May 2020
  • Role: Lead Fullstack Developer

Development of Social platform focusing on human and planetary enhancement.

  • REST API (Node.JS, Express, PostgreSQL) for main site and backoffice.
  • Auto poster to various social networks and messengers (Facebook, LinkedIn, Twitter, Telegram).
  • Neural network for automatic categorization of articles.

MERLION

  • Dates: March 2016 – May 2018
  • Role: Senior Fullstack developer

In this company there were 6 considerable projects I have successfully completed:

  • optimize the creation of promotional pages (PHP, JavaScript)
  • support main traditional site https://citilink.ru (PHP, JavaScript)
  • development of parsing to monitor products for changes in price, quantity/availability in stock, rating and other fields based on data from 55 websites (Node.JS, Express)
  • work with neural networks for matching of goods
  • development face recognition apps for Android (Java)
',17),n=[i];function l(s,p){return r(),t("div",null,n)}const h=e(o,[["render",l],["__file","works.html.vue"]]),d=JSON.parse('{"path":"/eng/works.html","title":"Works","lang":"en-US","frontmatter":{"title":"Works","layout":"WorksPage","sidebar":false,"description":"Highlighted working experience Binary Management Dates: August 2018 – currently Roles: Lead Fullstack Developer, Team Lead, Architect Development of a project management tool fo...","head":[["link",{"rel":"alternate","hreflang":"ru-ru","href":"https://pleshevski.ru/works.html"}],["meta",{"property":"og:url","content":"https://pleshevski.ru/eng/works.html"}],["meta",{"property":"og:site_name","content":"Dmitriy Pleshevskiy"}],["meta",{"property":"og:title","content":"Works"}],["meta",{"property":"og:description","content":"Highlighted working experience Binary Management Dates: August 2018 – currently Roles: Lead Fullstack Developer, Team Lead, Architect Development of a project management tool fo..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"ru-RU"}],["meta",{"property":"og:updated_time","content":"2024-07-24T14:15:05.000Z"}],["meta",{"property":"article:modified_time","content":"2024-07-24T14:15:05.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Works\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-07-24T14:15:05.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":3,"title":"Highlighted working experience","slug":"highlighted-working-experience","link":"#highlighted-working-experience","children":[]}],"git":{"updatedTime":1721830505000,"contributors":[{"name":"Dmitriy Pleshevskiy","email":"dmitriy@pleshevski.ru","commits":1}]},"autoDesc":true,"filePathRelative":"eng/works.md"}');export{h as comp,d as data}; diff --git a/dist/assets/works.html-sG2zmfnZ.js b/dist/assets/works.html-sG2zmfnZ.js new file mode 100644 index 0000000..7bb7cf3 --- /dev/null +++ b/dist/assets/works.html-sG2zmfnZ.js @@ -0,0 +1 @@ +import{_ as e,c as r,o as t,e as a}from"./app-Dw1tezwH.js";const l={},i=a('

Выделенный опыт работы

Binary Management

  • Даты: Август 2018 – по настоящее время
  • Роли: Lead Fullstack Developer, Team Lead, Architect

Разработка инструмента управления проектами для дизайнеров интерьера

  • Разработка GraphQL API (Node.JS, Apollo, PostgreSQL, Redis, BullMQ). Перенес триггеры базы данных в бизнес-логику. Написал интеграционные тесты на 70% api.
  • Разработка фронтенда (React, Antd). Сформировал uikit и общие компоненты, оптимизировал сложные и нагруженные компоненты. Полностью изменил работу с API на фронтенде. Внедрил практику написания интеграционных тестов с помощью cypress.
  • Полностью перенес проект на TypeScript. Сформировал изолированные модули системы.
  • Как руководитель команды, я привнес в проект метод критической цепи, метод буфера и метод планирования с конца. Помог команде войти в ритм, чтобы выпускать релизы каждую неделю небольшими партиями. Я также несколько раз составлял индивидуальный план развития для членов команды.

Master Progress

  • Даты: Май 2018 - по настоящее время (Пассивная поддержка)
  • Роль: Tech Lead

Разработка веб-инфраструктуры образовательного центра Мастер Прогресс

Core Spirit

  • Даты: Август 2018 - May 2020
  • Роль: Lead Fullstack Developer

Разработка социальной платформы, сфокусированной на улучшении человека и планеты.

  • REST API (Node.JS, Express, PostgreSQL) для основного сайта и бэк-офиса.
  • Автопостер в различные социальные сети и мессенджеры (Facebook, LinkedIn, Twitter, Telegram).
  • Создал нейронную сеть для автоматической категоризации статей.

MERLION

  • Dates: March 2016 – May 2018
  • Role: Senior Fullstack developer

В этой компании было 6 значительных проектов, которые я успешно завершил:

  • Оптимизация создания рекламных страниц (PHP, JavaScript)
  • Поддержка основного традиционного сайта https://citilink.ru (PHP, JavaScript)
  • Разработка парсинга для мониторинга товаров на предмет изменения цены, количества/наличия на складе, рейтинга и других полей на основе данных с 55+ сайтов (Node.js, Express)
  • Работа с нейронными сетями для подбора товаров
  • Разработка приложений для распознавания лиц для Android (Java)

Хронология

В списке перечислены только публичные проекты.

',19),n=[i];function s(o,p){return t(),r("div",null,n)}const h=e(l,[["render",s],["__file","works.html.vue"]]),d=JSON.parse('{"path":"/works.html","title":"Работы","lang":"ru-RU","frontmatter":{"title":"Работы","layout":"WorksPage","sidebar":false,"description":"Выделенный опыт работы Binary Management Даты: Август 2018 – по настоящее время Роли: Lead Fullstack Developer, Team Lead, Architect Разработка инструмента управления проектами ...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://pleshevski.ru/eng/works.html"}],["meta",{"property":"og:url","content":"https://pleshevski.ru/works.html"}],["meta",{"property":"og:site_name","content":"Дмитрий Плешевский"}],["meta",{"property":"og:title","content":"Работы"}],["meta",{"property":"og:description","content":"Выделенный опыт работы Binary Management Даты: Август 2018 – по настоящее время Роли: Lead Fullstack Developer, Team Lead, Architect Разработка инструмента управления проектами ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"ru-RU"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-07-24T14:15:05.000Z"}],["meta",{"property":"article:modified_time","content":"2024-07-24T14:15:05.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Работы\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-07-24T14:15:05.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Выделенный опыт работы","slug":"выделенныи-опыт-работы","link":"#выделенныи-опыт-работы","children":[{"level":3,"title":"Binary Management","slug":"binary-management","link":"#binary-management","children":[]},{"level":3,"title":"Master Progress","slug":"master-progress","link":"#master-progress","children":[]},{"level":3,"title":"Core Spirit","slug":"core-spirit","link":"#core-spirit","children":[]},{"level":3,"title":"MERLION","slug":"merlion","link":"#merlion","children":[]}]},{"level":2,"title":"Хронология","slug":"хронология","link":"#хронология","children":[]}],"git":{"updatedTime":1721830505000,"contributors":[{"name":"Dmitriy Pleshevskiy","email":"dmitriy@pleshevski.ru","commits":1}]},"autoDesc":true,"filePathRelative":"works.md"}');export{h as comp,d as data}; diff --git a/dist/eng/index.html b/dist/eng/index.html new file mode 100644 index 0000000..83eff38 --- /dev/null +++ b/dist/eng/index.html @@ -0,0 +1,43 @@ + + + + + + + + + Resume | Dmitriy Pleshevskiy + + + + + +
+ + + diff --git a/dist/eng/works.html b/dist/eng/works.html new file mode 100644 index 0000000..9ebe03d --- /dev/null +++ b/dist/eng/works.html @@ -0,0 +1,43 @@ + + + + + + + + + Works | Dmitriy Pleshevskiy + + + + + +
+ + + diff --git a/dist/index.html b/dist/index.html new file mode 100644 index 0000000..03de735 --- /dev/null +++ b/dist/index.html @@ -0,0 +1,43 @@ + + + + + + + + + Резюме | Дмитрий Плешевский + + + + + +
+ + + diff --git a/dist/robots.txt b/dist/robots.txt new file mode 100644 index 0000000..88bcb31 --- /dev/null +++ b/dist/robots.txt @@ -0,0 +1,5 @@ + +User-agent:* +Disallow: + +Sitemap: https://pleshevski.ru/sitemap.xml diff --git a/dist/rus/index.html b/dist/rus/index.html new file mode 100644 index 0000000..9381ead --- /dev/null +++ b/dist/rus/index.html @@ -0,0 +1,17 @@ + + + + + + + + Redirecting... + + + +

Redirecting...

+ + diff --git a/dist/rus/works.html b/dist/rus/works.html new file mode 100644 index 0000000..1d68de2 --- /dev/null +++ b/dist/rus/works.html @@ -0,0 +1,17 @@ + + + + + + + + Redirecting... + + + +

Redirecting...

+ + diff --git a/dist/sitemap.xml b/dist/sitemap.xml new file mode 100644 index 0000000..85b4311 --- /dev/null +++ b/dist/sitemap.xml @@ -0,0 +1,3 @@ + + +https://pleshevski.ru/2024-07-24T14:15:05.000Zdailyhttps://pleshevski.ru/works.html2024-07-24T14:15:05.000Zdailyhttps://pleshevski.ru/eng/2024-07-24T14:15:05.000Zdailyhttps://pleshevski.ru/eng/works.html2024-07-24T14:15:05.000Zdaily \ No newline at end of file diff --git a/dist/sitemap.xsl b/dist/sitemap.xsl new file mode 100644 index 0000000..a76881a --- /dev/null +++ b/dist/sitemap.xsl @@ -0,0 +1,207 @@ + + + + + + + XML Sitemap + + + + + +
+

Sitemap

+ + + + + + + + + + + + + + + + + + + + + +
+ + PriorityChange FrequencyLast Updated Time
+ + + + + + + + + + + + + 0.5 + + + + + + + + + - + + + + +
+
+ + + +
+
diff --git a/dist/works.html b/dist/works.html new file mode 100644 index 0000000..e7c124c --- /dev/null +++ b/dist/works.html @@ -0,0 +1,43 @@ + + + + + + + + + Работы | Дмитрий Плешевский + + + + + +
+ + + diff --git a/docs/.vuepress/client.ts b/docs/.vuepress/client.ts new file mode 100644 index 0000000..bfb63b7 --- /dev/null +++ b/docs/.vuepress/client.ts @@ -0,0 +1,6 @@ +import { defineClientConfig } from "vuepress/client"; +import WorksPage from "./pages/WorksPage.vue"; + +export default defineClientConfig({ + layouts: { WorksPage }, +}); diff --git a/docs/.vuepress/config.ts b/docs/.vuepress/config.ts new file mode 100644 index 0000000..454fe19 --- /dev/null +++ b/docs/.vuepress/config.ts @@ -0,0 +1,84 @@ +import { defineUserConfig } from "vuepress"; +import { viteBundler } from "@vuepress/bundler-vite"; +import { mkMyTheme } from "./theme.js"; +import { redirectPlugin } from "@vuepress/plugin-redirect"; + +export default defineUserConfig({ + lang: "ru-RU", + + title: "Дмитрий Плешевский", + description: " ", + + locales: { + "/": { + lang: "ru-RU", + title: "Дмитрий Плешевский", + }, + "/eng/": { + lang: "en-US", + title: "Dmitriy Pleshevskiy", + }, + }, + + theme: mkMyTheme({ + hostname: "https://pleshevski.ru", + + repo: "https://git.pleshevski.ru/pleshevskiy/pleshevski.ru", + + locales: { + "/": { + selectLanguageName: "Русский", + navbar: ["/", "/works"], + notFound: [ + "Верните страницу!", + "Мы потеряли страницу...", + "Вы заблокированы в лабиринте.", + "Искали кота?", + "Страница украдена.", + "Ошиблись в параллельной вселенной.", + ], + backToHome: "Вернуться на главную", + worksTable: { + name: "Название", + description: "Описание", + role: "Роль", + technologies: "Технологии", + start: "Начало", + statusOrEnd: "Статус/Окончание", + }, + }, + "/eng/": { + selectLanguageName: "English", + navbar: ["/eng/", "/eng/works"], + notFound: [ + "Return the page!", + "We lost a page...", + "You're blocked in a labyrinth.", + "Looking for a cat?", + "The page has been stolen.", + "Wrong turn in parallel universe.", + ], + backToHome: "Back to home", + worksTable: { + name: "Name", + description: "Description", + role: "Role", + technologies: "Technologies", + start: "Start", + statusOrEnd: "Status/End", + }, + }, + }, + }), + + plugins: [ + redirectPlugin({ + config: { + "/rus/": "/", + "/rus/works.html": "/works.html", + }, + }), + ], + + bundler: viteBundler(), +}); diff --git a/docs/.vuepress/global.ts b/docs/.vuepress/global.ts new file mode 100644 index 0000000..885378f --- /dev/null +++ b/docs/.vuepress/global.ts @@ -0,0 +1,9 @@ +export type NonEmptyArray = [T, ...T[]]; + +export function renderDate(date: Date): string { + return date.toLocaleDateString(undefined, { + year: "numeric", + month: "2-digit", + day: "2-digit", + }); +} diff --git a/docs/.vuepress/modules/work/ChronologicalWorksTable/ChronologicalWorksTable.vue b/docs/.vuepress/modules/work/ChronologicalWorksTable/ChronologicalWorksTable.vue new file mode 100644 index 0000000..67c92a9 --- /dev/null +++ b/docs/.vuepress/modules/work/ChronologicalWorksTable/ChronologicalWorksTable.vue @@ -0,0 +1,44 @@ + + + + + + + diff --git a/modules/work/ChronologicalWorksTable/TechnologyList.ts b/docs/.vuepress/modules/work/ChronologicalWorksTable/TechnologyList.ts similarity index 100% rename from modules/work/ChronologicalWorksTable/TechnologyList.ts rename to docs/.vuepress/modules/work/ChronologicalWorksTable/TechnologyList.ts diff --git a/docs/.vuepress/modules/work/ChronologicalWorksTable/index.ts b/docs/.vuepress/modules/work/ChronologicalWorksTable/index.ts new file mode 100644 index 0000000..2373401 --- /dev/null +++ b/docs/.vuepress/modules/work/ChronologicalWorksTable/index.ts @@ -0,0 +1 @@ +export { default as ChronologicalWorksTable } from "./ChronologicalWorksTable.vue"; diff --git a/docs/.vuepress/modules/work/data.ts b/docs/.vuepress/modules/work/data.ts new file mode 100644 index 0000000..a32d7ae --- /dev/null +++ b/docs/.vuepress/modules/work/data.ts @@ -0,0 +1,361 @@ +import { Role } from "./domain/Role.ts"; +import { Status } from "./domain/Status.ts"; +import { Technology } from "./domain/Technology.ts"; +import type { Work } from "./domain/Work.ts"; + +export const CHRONOLOGICAL_WORKS: Work[] = [ + { + name: "picsg", + url: "/pleshevskiy/picsg", + description: + "A tool for steganographing information in a picture encoded using the Vernam cipher.", + roles: [Role.Author], + technologies: [Technology.Haskell], + startDate: new Date("2024-04-13"), + status: Status.AsIs, + }, + { + name: "Mindustry tools", + url: "/pleshevskiy/mindustry-tools", + description: "Tools for the Mindustry game", + roles: [Role.Author], + technologies: [Technology.Nix, Technology.Godot], + startDate: new Date("2024-01-07"), + status: Status.PassivelyMaintained, + }, + { + name: "Master Progress Rosmintrud tools", + url: "https://rosmintrud.masterprogress.ru", + description: + "Internal service to prepare documents for the rosmintrud (SPA)", + roles: [Role.TechLead], + technologies: [ + Technology.Deno, + Technology.Sqlite, + Technology.TypeScript, + Technology.Vue, + Technology.Docker, + Technology.Woodpecker, + Technology.Nix, + ], + startDate: new Date("2023-07-03"), + status: Status.PassivelyMaintained, + }, + { + name: "yandexgpt_tg_bot", + url: "/pleshevskiy/yandexgpt_tg_bot", + description: "The Telegram bot to describe article with link by YandexGPT.", + roles: [Role.Author], + technologies: [Technology.JavaScript, Technology.NodeJS, Technology.Nix], + startDate: new Date("2023-06-27"), + status: Status.PassivelyMaintained, + }, + { + name: "tree-sitter-plpgsql", + url: "/pleshevskiy/tree-sitter-plpgsql", + description: "plpgsql grammar for tree-sitter", + roles: [Role.Author], + technologies: [ + Technology.C, + Technology.JavaScript, + Technology.TreeSitter, + Technology.Nix, + ], + startDate: new Date("2023-01-05"), + status: Status.PassivelyMaintained, + }, + { + name: "wd2", + url: "/pleshevskiy/wd2", + description: + "A wrapper over d2 which allows to use additional configs from d2 file", + roles: [Role.Author], + technologies: [Technology.Bash, Technology.Nix], + startDate: new Date("2022-12-12"), + endDate: new Date("2023-07-31"), + status: Status.AsIs, + }, + { + name: "tree-sitter-d2", + url: "/pleshevskiy/tree-sitter-d2", + description: "d2 grammar for tree-sitter", + roles: [Role.Author], + technologies: [ + Technology.C, + Technology.JavaScript, + Technology.TreeSitter, + Technology.Nix, + ], + startDate: new Date("2022-12-04"), + status: Status.ActiveDeveloped, + }, + { + name: "nix2lua", + url: "/mynix/nix2lua", + description: + "This is a small but functional library that converts your nix configurations into lua format.", + roles: [Role.Author], + technologies: [Technology.Nix, Technology.Lua], + startDate: new Date("2022-11-22"), + status: Status.PassivelyMaintained, + }, + { + name: "vnetod", + url: "/pleshevskiy/vnetod", + description: "Dotenv section switcher", + roles: [Role.Author], + technologies: [Technology.Rust], + startDate: new Date("2022-07-29"), + status: Status.PassivelyMaintained, + }, + { + name: "estring", + url: "/pleshevskiy/estring", + description: "A simple way to parse a string using type annotations.", + roles: [Role.Author], + technologies: [Technology.Rust], + startDate: new Date("2022-07-23"), + status: Status.PassivelyMaintained, + }, + { + name: "enve", + url: "/pleshevskiy/enve", + description: + "It helps you work with environment variables and convert it to any type using only type annotations", + roles: [Role.Author], + technologies: [Technology.Rust], + startDate: new Date("2022-07-18"), + status: Status.PassivelyMaintained, + }, + { + name: "docker stack drone plugin", + url: "/drone_plugins/docker_stack", + description: "Deploy to production using `docker stack deploy`", + roles: [Role.Author], + technologies: [Technology.Docker, Technology.Drone, Technology.Woodpecker], + startDate: new Date("2022-06-06"), + status: Status.PassivelyMaintained, + }, + { + name: "dexios", + url: "/github/dexios", + description: + "Dexios is a fast, secure, and open source command-line encryption tool.", + roles: [Role.Collaborator], + technologies: [Technology.Rust], + startDate: new Date("2022-06-01"), + endDate: new Date("2023-02-28"), + }, + { + name: "recipes", + url: "/pleshevskiy/recipes", + description: "Site with recipes which cares about privacy", + roles: [Role.Author], + technologies: [Technology.TypeScript, Technology.Deno, Technology.Rust], + startDate: new Date("2022-05-04"), + status: Status.PassivelyMaintained, + }, + { + name: "pleshevski.ru", + url: "/pleshevskiy/pleshevski.ru", + description: "Source code of my personal site", + roles: [Role.Author], + technologies: [ + Technology.TypeScript, + Technology.Deno, + Technology.Docker, + Technology.Woodpecker, + ], + startDate: new Date("2022-03-16"), + status: Status.PassivelyMaintained, + }, + { + name: "paren", + url: "/pleshevskiy/paren", + description: "Library for parsing and rendering information.", + roles: [Role.Author], + technologies: [Technology.TypeScript, Technology.Deno], + startDate: new Date("2022-03-14"), + status: Status.Experimental, + }, + { + name: "hwt", + url: "/pleshevskiy/hwt", + description: + "healthy workaholic timer – A tool that keeps you from breaking your health by working all day.", + roles: [Role.Author], + technologies: [Technology.Rust], + startDate: new Date("2022-02-04"), + status: Status.AsIs, + }, + { + name: "ood_persistence", + url: "/pleshevskiy/ood_persistence", + description: + "Asynchronous and synchronous interfaces and persistence implementations for your OOD architecture ", + roles: [Role.Author], + technologies: [Technology.Rust], + startDate: new Date("2021-10-12"), + status: Status.Deprecated, + }, + { + name: "migra", + url: "/pleshevskiy/migra", + description: "Simple SQL migration manager for your project.", + roles: [Role.Author], + technologies: [Technology.Rust], + startDate: new Date("2021-01-31"), + status: Status.AsIs, + }, + { + name: "espruino-starter", + url: "/pleshevskiy/espruino-starter", + description: + "Quickly start creating your new project on the espruino board or a board based on it.", + roles: [Role.Author], + technologies: [Technology.JavaScript], + startDate: new Date("2021-08-23"), + status: Status.AsIs, + }, + { + name: "react-rest-request", + url: "/pleshevskiy/react-rest-request", + description: "Minimalistic REST API client for React inspired by Apollo.", + roles: [Role.Author], + technologies: [Technology.TypeScript, Technology.React], + startDate: new Date("2020-10-04"), + status: Status.Deprecated, + }, + { + name: "sonic-channel", + url: "/pleshevskiy/sonic-channel", + description: "Rust client for sonic search backend.", + roles: [Role.Author], + technologies: [Technology.Rust], + startDate: new Date("2020-07-18"), + status: Status.PassivelyMaintained, + }, + { + name: "itconfig", + url: "/pleshevskiy/itconfig", + description: + "Easy build a configs from environment variables and use it in globally.", + roles: [Role.Author], + technologies: [Technology.Rust], + startDate: new Date("2019-12-22"), + status: Status.Deprecated, + }, + { + name: "it-fsm", + url: "/pleshevskiy/it-fsm", + description: "Simple full-featured finite state machine for your project", + roles: [Role.Author], + technologies: [Technology.TypeScript, Technology.NodeJS, Technology.Deno], + startDate: new Date("2019"), + status: Status.PassivelyMaintained, + }, + { + name: "Cabinet Master Progress", + url: "https://cabinet.masterprogress.ru", + description: + "Student's cabinet of the educational center Master Progress (SSR + SPA)", + roles: [Role.TechLead], + technologies: [ + Technology.Python, + Technology.Flask, + Technology.Postgresql, + Technology.TypeScript, + Technology.React, + Technology.Docker, + Technology.Woodpecker, + Technology.Nix, + ], + startDate: new Date("2019-09-22"), + status: Status.PassivelyMaintained, + }, + { + name: "genrss", + url: "/pleshevskiy/genrss", + description: "RSS generator for python", + roles: [Role.Author], + technologies: [Technology.Python], + startDate: new Date("2019-07-23"), + status: Status.AsIs, + }, + { + name: "marshmallow_pageinfo", + url: "/pleshevskiy/marshmallow_pageinfo", + description: "Page info marshmallow schema for api", + roles: [Role.Author], + technologies: [Technology.Python], + startDate: new Date("2019-10-05"), + status: Status.AsIs, + }, + { + name: "Binary Management", + url: "https://www.binarymanagement.com", + description: "Project management tool for interior designers", + roles: [Role.Developer, Role.TechLead, Role.TeamLead], + technologies: [ + Technology.TypeScript, + Technology.NodeJS, + Technology.React, + Technology.Antd, + Technology.Docker, + Technology.Drone, + Technology.Rust, + Technology.Nix, + ], + startDate: new Date("2018-09-15"), + status: Status.ActiveDeveloped, + }, + { + name: "Core Spirit", + url: "https://corespirit.com", + description: "Social platform focusing on human and planetary enhancement", + roles: [Role.Developer], + technologies: [ + Technology.TypeScript, + Technology.NodeJS, + Technology.React, + Technology.Docker, + Technology.Drone, + ], + startDate: new Date("2018-09-05"), + endDate: new Date("2019-12-31"), + }, + { + name: "Master Progress", + url: "https://masterprogress.ru", + description: + "Main website of the educational center Master Progress (SSR + Forms)", + roles: [Role.TechLead], + technologies: [ + Technology.Python, + Technology.Flask, + Technology.JavaScript, + Technology.Docker, + Technology.Woodpecker, + ], + startDate: new Date("2018-04-10"), + status: Status.PassivelyMaintained, + }, + { + name: "ictmpl", + url: "/pleshevskiy/ictmpl", + description: "Generate projects from templates", + roles: [Role.Author], + technologies: [Technology.Python], + startDate: new Date("2018-06-30"), + status: Status.AsIs, + }, + { + name: "jjcrypto", + url: "/pleshevskiy/jjcrypto", + description: "Javascript encoder and decoder", + roles: [Role.Author], + technologies: [Technology.Php], + startDate: new Date("2015-11-01"), + status: Status.AsIs, + }, +]; diff --git a/modules/work/domain/Role.ts b/docs/.vuepress/modules/work/domain/Role.ts similarity index 100% rename from modules/work/domain/Role.ts rename to docs/.vuepress/modules/work/domain/Role.ts diff --git a/modules/work/domain/Status.ts b/docs/.vuepress/modules/work/domain/Status.ts similarity index 100% rename from modules/work/domain/Status.ts rename to docs/.vuepress/modules/work/domain/Status.ts diff --git a/modules/work/domain/Technology.ts b/docs/.vuepress/modules/work/domain/Technology.ts similarity index 100% rename from modules/work/domain/Technology.ts rename to docs/.vuepress/modules/work/domain/Technology.ts diff --git a/docs/.vuepress/modules/work/domain/Work.ts b/docs/.vuepress/modules/work/domain/Work.ts new file mode 100644 index 0000000..77fe656 --- /dev/null +++ b/docs/.vuepress/modules/work/domain/Work.ts @@ -0,0 +1,20 @@ +import type { NonEmptyArray } from "../../../global.ts"; +import { Role } from "./Role.ts"; +import { Status } from "./Status.ts"; +import { Technology } from "./Technology.ts"; + +export interface Work { + name: string; + url: string; + description: string; + roles: NonEmptyArray; + technologies: NonEmptyArray; + startDate: Date; + endDate?: Date; + status?: Status; +} + +export const getExternalLink: (work: Pick) => string = (work) => + work.url.startsWith("https://") + ? work.url + : new URL(work.url, "https://git.pleshevski.ru").toString(); diff --git a/modules/work/domain/mod.ts b/docs/.vuepress/modules/work/domain/index.ts similarity index 100% rename from modules/work/domain/mod.ts rename to docs/.vuepress/modules/work/domain/index.ts diff --git a/docs/.vuepress/modules/work/index.ts b/docs/.vuepress/modules/work/index.ts new file mode 100644 index 0000000..b836ebf --- /dev/null +++ b/docs/.vuepress/modules/work/index.ts @@ -0,0 +1 @@ +export * from "./ChronologicalWorksTable"; diff --git a/docs/.vuepress/pages/WorksPage.vue b/docs/.vuepress/pages/WorksPage.vue new file mode 100644 index 0000000..5c043a3 --- /dev/null +++ b/docs/.vuepress/pages/WorksPage.vue @@ -0,0 +1,42 @@ + + + + + + + diff --git a/docs/.vuepress/theme.ts b/docs/.vuepress/theme.ts new file mode 100644 index 0000000..c93f4d2 --- /dev/null +++ b/docs/.vuepress/theme.ts @@ -0,0 +1,10 @@ +import { defaultTheme } from '@vuepress/theme-default' + +export const mkMyTheme = (options) => { + // returns a theme object + return { + name: 'my-theme', + + extends: defaultTheme(options), + } +} diff --git a/docs/eng/index.md b/docs/eng/index.md new file mode 100644 index 0000000..58c1b71 --- /dev/null +++ b/docs/eng/index.md @@ -0,0 +1,109 @@ +--- +home: true +title: Resume +heroText: null +--- + +Always up-to-date link to [resume](/eng/). + +### Overview + +My name is Dmitriy Pleshevskiy. + +I'm an open source software enthusiast, a lead software developer, architect, +team leader and also mentor. + +### Skills + +Programming Languages: + +- TypeScript (prefer, solid 9-year exp) +- SQL (prefer, solid 8-year exp) +- Rust (prefer, solid 5-year exp) +- Python (solid 9-year exp) +- Haskell +- Bash +- Java +- C# +- C++ + +Databases: + +- PostgreSQL (prefer, solid 7-year exp) +- MySQL +- Sqlite +- MsSQL +- MongoDB +- Reddis + +I also have extensive experience in creating the following applications: + +- Traditional (SSR + Forms) +- API (REST/GraphQL/WebSocket/EventSource) +- Dynamic (SPA) +- Hybrid (SSR + SPA) +- Console +- Crossplatform + +### Stack + +Backend (Rust) + +- axum (prefer, solid 2-year exp) +- async-graphql (prefer, solid 2-year exp) +- shaku (prefer, solid 2-year exp) +- bb8 + postgres-types (prefer, solid 5-year exp) +- diesel (2-year exp) + +Backend (Node.JS) + +- Apollo (solid 5-year exp) +- Express (solid 9-year exp) +- Nest.JS +- Knex.js / Objection.js (solid 5-year exp) +- Sequelize + +Frontend + +- React (solid 8-year exp) +- VueJS (prefer, solid 3-year exp) +- Cypress (prefer, solid 3-year exp) +- JQuery +- Antd / Antdv +- PostCSS (prefer, solid 5-year exp) +- Sass (prefer, solid 8-year exp) +- Less (weak 4-year exp) + +DevOps + +- NixOS / NixOps / Nix dev shell (prefer, solid 2-year exp) +- Docker Swarm (prefer, solid 5-year exp) +- Kubernetes (weak 4-year exp) +- Woodpecker CI (prefer, solid 3-year exp) +- Drone CI (solid 3-year exp) +- Gitlab CI (solid 7-year exp) +- GitHub Actions (3-year exp) + +### Interests + +Open-source projects are my passion! I develop, maintain and improve projects in +my spare time. + +Besides programming, I love to cook and spend time with my beloved family! + +### Contacts + +SimpleX: +[Dmitriy Pleshevskiy](https://simplex.chat/contact#/?v=1-2&smp=smp%3A%2F%2FSkIkI6EPd2D63F4xFKfHk7I1UGZVNn6k1QWZ5rcyr6w%3D%40smp9.simplex.im%2FLfKyG0YgW5eRO-z8vrEyvnNfV2EKDfBv%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAMRpR3YB10GVzc-asfqY2oIFkipx5RQm4DZRabzjfPHo%253D%26srv%3Djssqzccmrcws6bhmn77vgmhfjmhwlyr3u7puw4erkyoosywgl67slqqd.onion) + +Telegram: [Dmitriy Pleshevskiy](https://telegram.me/da_pranaya) + +Matrix: @pleshevskiy:matrix.org + +Email: dmitriy[at]pleshevski[dot]ru + +### Links + +[My Git Repo](https://git.pleshevski.ru/) + +[My Github (Suspended due to sanctions)](https://github.com/pleshevskiy) diff --git a/docs/eng/works.md b/docs/eng/works.md new file mode 100644 index 0000000..886f3a0 --- /dev/null +++ b/docs/eng/works.md @@ -0,0 +1,71 @@ +--- +title: Works +layout: WorksPage +sidebar: false +--- + +### Highlighted working experience + +#### Binary Management + +- Dates: August 2018 – currently +- Roles: Lead Fullstack Developer, Team Lead, Architect + +Development of a project management tool for interior designers + +- Development of the GraphQL API (Node.JS, Apollo, PostgreSQL, Redis, BullMQ). +Moved database triggers to business logic. Wrote integration tests on 70% api. +- Development of the frontend (React, Antd). Formed uikit, shared components, +redesigned the page generation gathering. Completely changed work with API on +the frontend. Introduced the practice of writing integration tests using +cypress +- Completely ported the project to TypeScript. I have formed isolated modules of +the system. +- As a team leader, I brought the critical chain method, the buffer method, and +the planning method to the project from the end. Helped the team get into a +rhythm to make releases each week in small batches. A couple of times I also +prepared an individual development plan for team members. + +#### Master Progress + +- Dates: May 2018 - currently (Passively maintained) +- Role: Tech Lead + +Development web infrastructure of the educational center Master Progress + +- [The main site](https://masterprogress.ru) (Python, Flask). +- [Student's cabinet](https://cabinet.masterprogress.ru) (Python, +Flask, TypeScript, React). +- [A tool for rosmintrud](https://rosmintrud.masterprogress.ru) +(Deno, Vue, Typescript) +- Created a complete infrastructure on Woodpecker CI and Docker swarm. + +#### Core Spirit + +- Dates: August 2018 - May 2020 +- Role: Lead Fullstack Developer + +Development of Social platform focusing on human and planetary enhancement. + +- REST API (Node.JS, Express, PostgreSQL) for main site and +backoffice. +- Auto poster to various social networks and messengers +(Facebook, LinkedIn, Twitter, Telegram). +- Neural network for automatic categorization of articles. + +#### MERLION + +- Dates: March 2016 – May 2018 +- Role: Senior Fullstack developer + +In this company there were 6 considerable projects I have successfully +completed: + +- optimize the creation of promotional pages (PHP, JavaScript) +- support main traditional site (PHP, JavaScript) +- development of parsing to monitor products for changes in price, +quantity/availability in stock, rating and other fields based on data from 55 +websites (Node.JS, Express) +- work with neural networks for matching of goods +- development face recognition apps for Android (Java) + diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..8885ec7 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,111 @@ +--- +home: true +title: Резюме +heroText: null +--- + +Всегда актуальная ссылка на [резюме](/). + +### Общие сведения + +Меня зовут Дмитрий Плешевский. + +Я энтузиаст программного обеспечения с открытым исходным кодом, ведущий +разработчик програмного обеспечения, архитектор, руководитель команды, а так же +ментор. + +### Умения + +Языки программирования: + +- TypeScript (предпочитаю, твёрдый 9-летний опыт) +- SQL (предпочитаю, твёрдый 8-летний опыт) +- Rust (предпочитаю, 5-летний опыт) +- Python (твёрдый 9-летний опыт) +- Haskell +- Bash +- Java +- C# +- C++ + +Базы данных: + +- PostgreSQL (предпочитаю, твёрдый 7-летний опыт) +- MySQL +- Sqlite +- MsSQL +- MongoDB +- Reddis + +Я так же имею большой опыт в создании следующих типов приложений: + +- Традиционные (SSR + Forms) +- API (REST/GraphQL/WebSocket/EventSource) +- Динамическое (SPA) +- Гибридное (SSR + SPA) +- Консольные +- Кроссплатформенные + +### Stack + +Backend (Rust) + +- axum (предпочитаю, твёрдый 2-летний опыт) +- async-graphql (предпочитаю, твёрдый 2-летний опыт) +- shaku (предпочитаю, твёрдый 2-летний опыт) +- bb8 + postgres-types (предпочитаю, твёрдый 5-летний опыт) +- diesel (2-летний опыт) + +Backend (Node.JS) + +- Apollo (твёрдый 5-летний опыт) +- Express (твёрдый 9-летний опыт) +- Nest.JS +- Knex.js / Objection.js (твёрдый 5-летний опыт) +- Sequelize + +Frontend + +- React (твёрдый 8-летний опыт) +- VueJS (предпочитаю, твёрдый 4-летний опыт) +- Cypress (предпочитаю, твёрдый 3-летний опыт) +- JQuery +- Antd / Antdv +- PostCSS (предпочитаю, твёрдый 5-летний опыт) +- Sass (предпочитаю, твёрдый 8-летний опыт) +- Less (слабый 4-летний опыт) + +DevOps + +- NixOS / NixOps / Nix dev shell (предпочитаю, твёрдый 2-летний опыт) +- Docker Swarm (предпочитаю, твёрдый 5-летний опыт) +- Kubernetes (слабый 4-летний опыт) +- Woodpecker CI (предпочитаю, твёрдый 3-летний опыт) +- Drone CI (твёрдый 3-летний опыт) +- Gitlab CI (твёрдый 7-летний опыт) +- GitHub Actions (3-летний опыт) + +### Интересы + +Open-source проекты - моя страсть! Разрабатываю, поддерживаю и улучшаю проекты в +своё свободное время. + +Помимо программирования я люблю готовить и проводить время со своей любимой +семьей! + +### Контакты + +SimpleX: +[Dmitriy Pleshevskiy](https://simplex.chat/contact#/?v=1-2&smp=smp%3A%2F%2FSkIkI6EPd2D63F4xFKfHk7I1UGZVNn6k1QWZ5rcyr6w%3D%40smp9.simplex.im%2FLfKyG0YgW5eRO-z8vrEyvnNfV2EKDfBv%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAMRpR3YB10GVzc-asfqY2oIFkipx5RQm4DZRabzjfPHo%253D%26srv%3Djssqzccmrcws6bhmn77vgmhfjmhwlyr3u7puw4erkyoosywgl67slqqd.onion) + +Telegram: [Dmitriy Pleshevskiy](https://telegram.me/da_pranaya) + +Matrix: @pleshevskiy:matrix.org + +Email: dmitriy[at]pleshevski[dot]ru + +### Ссылки + +[My Git Repo](https://git.pleshevski.ru/) + +[My Github (Приостановлен из-за санкций)](https://github.com/pleshevskiy) diff --git a/docs/works.md b/docs/works.md new file mode 100644 index 0000000..61233fc --- /dev/null +++ b/docs/works.md @@ -0,0 +1,75 @@ +--- +title: Работы +layout: WorksPage +sidebar: false +--- + +## Выделенный опыт работы + +### Binary Management + +- Даты: Август 2018 – по настоящее время +- Роли: Lead Fullstack Developer, Team Lead, Architect + +Разработка инструмента управления проектами для дизайнеров интерьера + +- Разработка GraphQL API (Node.JS, Apollo, PostgreSQL, Redis, BullMQ). Перенес +триггеры базы данных в бизнес-логику. Написал интеграционные тесты на 70% api. +- Разработка фронтенда (React, Antd). Сформировал uikit и общие компоненты, +оптимизировал сложные и нагруженные компоненты. Полностью изменил работу с API +на фронтенде. Внедрил практику написания интеграционных тестов с помощью +cypress. +- Полностью перенес проект на TypeScript. Сформировал изолированные модули +системы. +- Как руководитель команды, я привнес в проект метод критической цепи, метод +буфера и метод планирования с конца. Помог команде войти в ритм, чтобы +выпускать релизы каждую неделю небольшими партиями. Я также несколько раз +составлял индивидуальный план развития для членов команды. + +### Master Progress + +- Даты: Май 2018 - по настоящее время (Пассивная поддержка) +- Роль: Tech Lead + +Разработка веб-инфраструктуры образовательного центра Мастер Прогресс + +- [Главного сайта](https://masterprogress.ru) (Python, Flask). +- [Кабинета студента](https://cabinet.masterprogress.ru) (Python, Flask, +TypeScript, React). +- [Инструмента для работы с rosmintrud](https://rosmintrud.masterprogress.ru) +(Deno, Vue, Typescript) +- Создана полная инфраструктура на Woodpecker CI и Docker swarm. + +### Core Spirit + +- Даты: Август 2018 - May 2020 +- Роль: Lead Fullstack Developer + +Разработка социальной платформы, сфокусированной на улучшении человека и +планеты. + +- REST API (Node.JS, Express, PostgreSQL) для основного сайта и +бэк-офиса. +- Автопостер в различные социальные сети и мессенджеры (Facebook, +LinkedIn, Twitter, Telegram). +- Создал нейронную сеть для автоматической категоризации статей. + +### MERLION + +- Dates: March 2016 – May 2018 +- Role: Senior Fullstack developer + +В этой компании было 6 значительных проектов, которые я успешно завершил: + +- Оптимизация создания рекламных страниц (PHP, JavaScript) +- Поддержка основного традиционного сайта (PHP, +JavaScript) +- Разработка парсинга для мониторинга товаров на предмет изменения цены, +количества/наличия на складе, рейтинга и других полей на основе данных с 55+ +сайтов (Node.js, Express) +- Работа с нейронными сетями для подбора товаров +- Разработка приложений для распознавания лиц для Android (Java) + +## Хронология + +В списке перечислены только публичные проекты. diff --git a/flake.lock b/flake.lock index 3660fb7..b4230ee 100644 --- a/flake.lock +++ b/flake.lock @@ -1,12 +1,30 @@ { "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "nixpkgs": { "locked": { - "lastModified": 1654593855, - "narHash": "sha256-c+SyXvj7THre87OyIdZfRVR+HhI/g1ZDrQ3VUtTuHkU=", + "lastModified": 1721562059, + "narHash": "sha256-Tybxt65eyOARf285hMHIJ2uul8SULjFZbT9ZaEeUnP8=", "owner": "nixos", "repo": "nixpkgs", - "rev": "033bd4fa9a8fbe0c68a88e925d9a884161044b25", + "rev": "68c9ed8bbed9dfce253cc91560bf9043297ef2fe", "type": "github" }, "original": { @@ -18,22 +36,22 @@ }, "root": { "inputs": { - "nixpkgs": "nixpkgs", - "utils": "utils" + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" } }, - "utils": { + "systems": { "locked": { - "lastModified": 1653893745, - "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "nix-systems", + "repo": "default", "type": "github" } } diff --git a/flake.nix b/flake.nix index da35d3b..6fb5c94 100644 --- a/flake.nix +++ b/flake.nix @@ -3,20 +3,44 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; - utils.url = "github:numtide/flake-utils"; + flake-utils.url = "github:numtide/flake-utils"; }; - outputs = {self, nixpkgs, utils}: - let out = system: - let pkgs = nixpkgs.legacyPackages."${system}"; - in { - devShell = pkgs.mkShell { - buildInputs = with pkgs; [ - gnumake - nodePackages.sass - ]; + outputs = { self, nixpkgs, flake-utils }: + let + out = system: + let + inherit (builtins) substring; + + pkgs = import nixpkgs { inherit system; }; + version = "0.0.1+${substring 0 8 self.lastModifiedDate}_${self.shortRev or "dirty"}"; + in + { + packages.default = with pkgs; stdenv.mkDerivation (finalAttrs: { + pname = "pleshevski_site"; + inherit version; + + src = ./.; + + dontBuild = true; + + installPhase = '' + mkdir -p $out + cp -r dist/* $out + ''; + }); + + devShells.default = pkgs.mkShell { + buildInputs = with pkgs; [ + nodejs_22 + gnumake + pnpm + nodePackages.typescript-language-server # typescript + nodePackages.vscode-langservers-extracted # html, css, json, eslint + ]; + }; }; - }; - in with utils.lib; eachSystem defaultSystems out; + in + flake-utils.lib.eachDefaultSystem out; } diff --git a/.dockerignore b/old/.dockerignore similarity index 100% rename from .dockerignore rename to old/.dockerignore diff --git a/.woodpecker.yml b/old/.woodpecker.yml similarity index 100% rename from .woodpecker.yml rename to old/.woodpecker.yml diff --git a/Dockerfile b/old/Dockerfile similarity index 100% rename from Dockerfile rename to old/Dockerfile diff --git a/context.ts b/old/context.ts similarity index 100% rename from context.ts rename to old/context.ts diff --git a/data/about/eng.md b/old/data/about/eng.md similarity index 100% rename from data/about/eng.md rename to old/data/about/eng.md diff --git a/data/about/rus.md b/old/data/about/rus.md similarity index 100% rename from data/about/rus.md rename to old/data/about/rus.md diff --git a/data/works/eng.md b/old/data/works/eng.md similarity index 100% rename from data/works/eng.md rename to old/data/works/eng.md diff --git a/data/works/rus.md b/old/data/works/rus.md similarity index 100% rename from data/works/rus.md rename to old/data/works/rus.md diff --git a/deno.json b/old/deno.json similarity index 100% rename from deno.json rename to old/deno.json diff --git a/deno.lock b/old/deno.lock similarity index 100% rename from deno.lock rename to old/deno.lock diff --git a/docker-compose.yml b/old/docker-compose.yml similarity index 100% rename from docker-compose.yml rename to old/docker-compose.yml diff --git a/global.ts b/old/global.ts similarity index 100% rename from global.ts rename to old/global.ts diff --git a/import_map.json b/old/import_map.json similarity index 100% rename from import_map.json rename to old/import_map.json diff --git a/log.ts b/old/log.ts similarity index 100% rename from log.ts rename to old/log.ts diff --git a/modules/work/ChronologicalWorksTable/ChronologicalWorksTable.ts b/old/modules/work/ChronologicalWorksTable/ChronologicalWorksTable.ts similarity index 100% rename from modules/work/ChronologicalWorksTable/ChronologicalWorksTable.ts rename to old/modules/work/ChronologicalWorksTable/ChronologicalWorksTable.ts diff --git a/modules/work/ChronologicalWorksTable/RoleList.ts b/old/modules/work/ChronologicalWorksTable/RoleList.ts similarity index 100% rename from modules/work/ChronologicalWorksTable/RoleList.ts rename to old/modules/work/ChronologicalWorksTable/RoleList.ts diff --git a/old/modules/work/ChronologicalWorksTable/TechnologyList.ts b/old/modules/work/ChronologicalWorksTable/TechnologyList.ts new file mode 100644 index 0000000..e0c625c --- /dev/null +++ b/old/modules/work/ChronologicalWorksTable/TechnologyList.ts @@ -0,0 +1,7 @@ +import { NonEmptyArray } from "../../../global.ts"; +import { Technology } from "../domain/mod.ts"; +import { AnyNode, TextNode } from "ren/node.ts"; + +export const TechnologyList: (techs: NonEmptyArray) => AnyNode = ( + techs, +) => new TextNode(techs.join(", ")); diff --git a/modules/work/ChronologicalWorksTable/mod.ts b/old/modules/work/ChronologicalWorksTable/mod.ts similarity index 100% rename from modules/work/ChronologicalWorksTable/mod.ts rename to old/modules/work/ChronologicalWorksTable/mod.ts diff --git a/modules/work/WorkLink.ts b/old/modules/work/WorkLink.ts similarity index 100% rename from modules/work/WorkLink.ts rename to old/modules/work/WorkLink.ts diff --git a/modules/work/data.ts b/old/modules/work/data.ts similarity index 100% rename from modules/work/data.ts rename to old/modules/work/data.ts diff --git a/old/modules/work/domain/Role.ts b/old/modules/work/domain/Role.ts new file mode 100644 index 0000000..f124a40 --- /dev/null +++ b/old/modules/work/domain/Role.ts @@ -0,0 +1,7 @@ +export enum Role { + Collaborator = "collaborator", + Author = "author", + TechLead = "tech lead", + TeamLead = "team lead", + Developer = "developer", +} diff --git a/old/modules/work/domain/Status.ts b/old/modules/work/domain/Status.ts new file mode 100644 index 0000000..3e3dc64 --- /dev/null +++ b/old/modules/work/domain/Status.ts @@ -0,0 +1,25 @@ +export enum Status { + // New features are being added and bugs are being fixed. + ActiveDeveloped = "actively-developed", + + // There are no plans for new features, but the maintainer intends to respond + // to issues that get filed. + PassivelyMaintained = "passively-maintained", + + // The package is feature complete, the maintainer does not intend to continue + // working on it or providing support, but it works for the purposes it was + // designed for. + AsIs = "as-is", + + // The author wants to share it with the community but is not intending to + // meet anyone's particular use case. + Experimental = "experimental", + + // The current maintainer would like to transfer the package to someone else. + LookingForMaintainer = "looking-for-maintainer", + + // The maintainer does not recommend using this package (the description of the + // package can describe why, there could be a better solution available or + // there could be problems with the package that the author does not want to fix). + Deprecated = "deprecated", +} diff --git a/old/modules/work/domain/Technology.ts b/old/modules/work/domain/Technology.ts new file mode 100644 index 0000000..3f9b25c --- /dev/null +++ b/old/modules/work/domain/Technology.ts @@ -0,0 +1,25 @@ +export enum Technology { + C = "C", + JavaScript = "JS", + TypeScript = "TS", + Rust = "Rust", + Python = "Python", + Php = "PHP", + Deno = "Deno", + NodeJS = "NodeJS", + Flask = "Flask", + React = "React", + Antd = "Antd", + Postgresql = "PostgreSQL", + Docker = "Docker", + Drone = "Drone CI", + Woodpecker = "Woodpecker CI", + Bash = "Bash", + TreeSitter = "TreeSitter", + Nix = "Nix", + Lua = "Lua", + Sqlite = "Sqlite", + Vue = "Vue", + Godot = "Godot", + Haskell = "Haskell", +} diff --git a/modules/work/domain/Work.ts b/old/modules/work/domain/Work.ts similarity index 100% rename from modules/work/domain/Work.ts rename to old/modules/work/domain/Work.ts diff --git a/old/modules/work/domain/mod.ts b/old/modules/work/domain/mod.ts new file mode 100644 index 0000000..cf8937a --- /dev/null +++ b/old/modules/work/domain/mod.ts @@ -0,0 +1,5 @@ +export { Role } from "./Role.ts"; +export { Status } from "./Status.ts"; +export { Technology } from "./Technology.ts"; +export type { Work } from "./Work.ts"; +export * as work from "./Work.ts"; diff --git a/modules/work/mod.ts b/old/modules/work/mod.ts similarity index 100% rename from modules/work/mod.ts rename to old/modules/work/mod.ts diff --git a/public/styles/main.css b/old/public/styles/main.css similarity index 100% rename from public/styles/main.css rename to old/public/styles/main.css diff --git a/public/styles/main.css.map b/old/public/styles/main.css.map similarity index 100% rename from public/styles/main.css.map rename to old/public/styles/main.css.map diff --git a/render.ts b/old/render.ts similarity index 100% rename from render.ts rename to old/render.ts diff --git a/server.ts b/old/server.ts similarity index 100% rename from server.ts rename to old/server.ts diff --git a/styles/atoms/flex.scss b/old/styles/atoms/flex.scss similarity index 100% rename from styles/atoms/flex.scss rename to old/styles/atoms/flex.scss diff --git a/styles/atoms/misc.scss b/old/styles/atoms/misc.scss similarity index 100% rename from styles/atoms/misc.scss rename to old/styles/atoms/misc.scss diff --git a/styles/atoms/mod.scss b/old/styles/atoms/mod.scss similarity index 100% rename from styles/atoms/mod.scss rename to old/styles/atoms/mod.scss diff --git a/styles/atoms/sizes.scss b/old/styles/atoms/sizes.scss similarity index 100% rename from styles/atoms/sizes.scss rename to old/styles/atoms/sizes.scss diff --git a/styles/atoms/typography.scss b/old/styles/atoms/typography.scss similarity index 100% rename from styles/atoms/typography.scss rename to old/styles/atoms/typography.scss diff --git a/styles/atoms/white-spaces.scss b/old/styles/atoms/white-spaces.scss similarity index 100% rename from styles/atoms/white-spaces.scss rename to old/styles/atoms/white-spaces.scss diff --git a/styles/base/layout.scss b/old/styles/base/layout.scss similarity index 100% rename from styles/base/layout.scss rename to old/styles/base/layout.scss diff --git a/styles/base/reset.scss b/old/styles/base/reset.scss similarity index 100% rename from styles/base/reset.scss rename to old/styles/base/reset.scss diff --git a/styles/main.scss b/old/styles/main.scss similarity index 100% rename from styles/main.scss rename to old/styles/main.scss diff --git a/styles/mixins/flex.scss b/old/styles/mixins/flex.scss similarity index 100% rename from styles/mixins/flex.scss rename to old/styles/mixins/flex.scss diff --git a/styles/mixins/mod.scss b/old/styles/mixins/mod.scss similarity index 100% rename from styles/mixins/mod.scss rename to old/styles/mixins/mod.scss diff --git a/styles/mixins/white-spaces.scss b/old/styles/mixins/white-spaces.scss similarity index 100% rename from styles/mixins/white-spaces.scss rename to old/styles/mixins/white-spaces.scss diff --git a/styles/uikit/dropdown.scss b/old/styles/uikit/dropdown.scss similarity index 100% rename from styles/uikit/dropdown.scss rename to old/styles/uikit/dropdown.scss diff --git a/styles/uikit/main-menu.scss b/old/styles/uikit/main-menu.scss similarity index 100% rename from styles/uikit/main-menu.scss rename to old/styles/uikit/main-menu.scss diff --git a/styles/uikit/mod.scss b/old/styles/uikit/mod.scss similarity index 100% rename from styles/uikit/mod.scss rename to old/styles/uikit/mod.scss diff --git a/styles/variables.scss b/old/styles/variables.scss similarity index 100% rename from styles/variables.scss rename to old/styles/variables.scss diff --git a/translates/eng.ts b/old/translates/eng.ts similarity index 100% rename from translates/eng.ts rename to old/translates/eng.ts diff --git a/translates/rus.ts b/old/translates/rus.ts similarity index 100% rename from translates/rus.ts rename to old/translates/rus.ts diff --git a/uikit/link.ts b/old/uikit/link.ts similarity index 100% rename from uikit/link.ts rename to old/uikit/link.ts diff --git a/uikit/typo.ts b/old/uikit/typo.ts similarity index 100% rename from uikit/typo.ts rename to old/uikit/typo.ts diff --git a/views/comp/layout.ts b/old/views/comp/layout.ts similarity index 100% rename from views/comp/layout.ts rename to old/views/comp/layout.ts diff --git a/views/comp/page_layout.ts b/old/views/comp/page_layout.ts similarity index 100% rename from views/comp/page_layout.ts rename to old/views/comp/page_layout.ts diff --git a/views/pages/content.ts b/old/views/pages/content.ts similarity index 100% rename from views/pages/content.ts rename to old/views/pages/content.ts diff --git a/views/pages/e404.ts b/old/views/pages/e404.ts similarity index 100% rename from views/pages/e404.ts rename to old/views/pages/e404.ts diff --git a/views/pages/e500.ts b/old/views/pages/e500.ts similarity index 100% rename from views/pages/e500.ts rename to old/views/pages/e500.ts diff --git a/views/pages/works.ts b/old/views/pages/works.ts similarity index 100% rename from views/pages/works.ts rename to old/views/pages/works.ts diff --git a/package.json b/package.json new file mode 100644 index 0000000..a4b39b3 --- /dev/null +++ b/package.json @@ -0,0 +1,36 @@ +{ + "name": "pleshevskiy", + "version": "0.0.1", + "description": "Dmitriy Pleshevskiy", + "license": "MIT", + "type": "module", + "scripts": { + "docs:build": "vuepress build docs", + "docs:clean-dev": "vuepress dev docs --clean-cache", + "docs:dev": "vuepress dev docs", + "docs:update-package": "pnpm dlx vp-update" + }, + "devDependencies": { + "@vuepress/bundler-vite": "^2.0.0-rc.7", + "@vuepress/plugin-blog": "^2.0.0-rc.11", + "@vuepress/plugin-redirect": "2.0.0-rc.8", + "@vuepress/theme-default": "^2.0.0-rc.11", + "vue": "^3.4.0", + "vuepress": "^2.0.0-rc.7", + + "@rushstack/eslint-patch": "^1.1.4", + "@types/node": "^20.14.2", + "@vitejs/plugin-vue": "^4.0.0", + "@vue/eslint-config-prettier": "^9.0.0", + "@vue/eslint-config-typescript": "^13.0.0", + "@vue/language-server": "^2.0.19", + "@vue/tsconfig": "^0.5.1", + "@vue/typescript-plugin": "^2.0.19", + "eslint": "<9.0.0", + "eslint-plugin-cypress": "^3.3.0", + "eslint-plugin-vue": "^9.14.1", + "prettier": ">=3.0.0", + "typescript": "~5.4.5", + "vue-tsc": "^1.6.0" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..538562a --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,4554 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + devDependencies: + '@rushstack/eslint-patch': + specifier: ^1.1.4 + version: 1.10.3 + '@types/node': + specifier: ^20.14.2 + version: 20.14.12 + '@vitejs/plugin-vue': + specifier: ^4.0.0 + version: 4.6.2(vite@5.0.13(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3))(vue@3.4.33(typescript@5.4.5)) + '@vue/eslint-config-prettier': + specifier: ^9.0.0 + version: 9.0.0(eslint@8.57.0)(prettier@3.3.3) + '@vue/eslint-config-typescript': + specifier: ^13.0.0 + version: 13.0.0(eslint-plugin-vue@9.27.0(eslint@8.57.0))(eslint@8.57.0)(typescript@5.4.5) + '@vue/language-server': + specifier: ^2.0.19 + version: 2.0.28(typescript@5.4.5) + '@vue/tsconfig': + specifier: ^0.5.1 + version: 0.5.1 + '@vue/typescript-plugin': + specifier: ^2.0.19 + version: 2.0.28(typescript@5.4.5) + '@vuepress/bundler-vite': + specifier: ^2.0.0-rc.7 + version: 2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5) + '@vuepress/plugin-blog': + specifier: ^2.0.0-rc.11 + version: 2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5))) + '@vuepress/plugin-redirect': + specifier: 2.0.0-rc.8 + version: 2.0.0-rc.8(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5))) + '@vuepress/theme-default': + specifier: ^2.0.0-rc.11 + version: 2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5))) + eslint: + specifier: <9.0.0 + version: 8.57.0 + eslint-plugin-cypress: + specifier: ^3.3.0 + version: 3.3.0(eslint@8.57.0) + eslint-plugin-vue: + specifier: ^9.14.1 + version: 9.27.0(eslint@8.57.0) + prettier: + specifier: '>=3.0.0' + version: 3.3.3 + typescript: + specifier: ~5.4.5 + version: 5.4.5 + vue: + specifier: ^3.4.0 + version: 3.4.33(typescript@5.4.5) + vue-tsc: + specifier: ^1.6.0 + version: 1.8.27(typescript@5.4.5) + vuepress: + specifier: ^2.0.0-rc.7 + version: 2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)) + +packages: + + '@babel/helper-string-parser@7.24.8': + resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.24.7': + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.24.8': + resolution: {integrity: sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/types@7.24.9': + resolution: {integrity: sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==} + engines: {node: '>=6.9.0'} + + '@emmetio/abbreviation@2.3.3': + resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} + + '@emmetio/css-abbreviation@2.1.8': + resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} + + '@emmetio/css-parser@0.4.0': + resolution: {integrity: sha512-z7wkxRSZgrQHXVzObGkXG+Vmj3uRlpM11oCZ9pbaz0nFejvCDmAiNDpY75+wgXOcffKpj4rzGtwGaZxfJKsJxw==} + + '@emmetio/html-matcher@1.3.0': + resolution: {integrity: sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==} + + '@emmetio/scanner@1.0.4': + resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} + + '@emmetio/stream-reader-utils@0.1.0': + resolution: {integrity: sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==} + + '@emmetio/stream-reader@2.2.0': + resolution: {integrity: sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==} + + '@esbuild/aix-ppc64@0.19.12': + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.19.12': + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.19.12': + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.19.12': + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.19.12': + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.19.12': + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.19.12': + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.19.12': + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.19.12': + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.19.12': + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.19.12': + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.19.12': + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.19.12': + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.19.12': + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.19.12': + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.19.12': + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.19.12': + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.19.12': + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-x64@0.19.12': + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.19.12': + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.19.12': + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.19.12': + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.19.12': + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-utils@4.4.0': + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.11.0': + resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/eslintrc@2.1.4': + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@eslint/js@8.57.0': + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@humanwhocodes/config-array@0.11.14': + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/object-schema@2.0.3': + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead + + '@johnsoncodehk/pug-beautify@0.2.2': + resolution: {integrity: sha512-qqNS/YD0Nck5wtQLCPHAfGVgWbbGafxSPjNh0ekYPFSNNqnDH2kamnduzYly8IiADmeVx/MfAE1njMEjVeHTMA==} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.6': + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@mdit-vue/plugin-component@2.1.3': + resolution: {integrity: sha512-9AG17beCgpEw/4ldo/M6Y/1Rh4E1bqMmr/rCkWKmCAxy9tJz3lzY7HQJanyHMJufwsb3WL5Lp7Om/aPcQTZ9SA==} + + '@mdit-vue/plugin-frontmatter@2.1.3': + resolution: {integrity: sha512-KxsSCUVBEmn6sJcchSTiI5v9bWaoRxe68RBYRDGcSEY1GTnfQ5gQPMIsM48P4q1luLEIWurVGGrRu7u93//LDQ==} + + '@mdit-vue/plugin-headers@2.1.3': + resolution: {integrity: sha512-AcL7a7LHQR3ISINhfjGJNE/bHyM0dcl6MYm1Sr//zF7ZgokPGwD/HhD7TzwmrKA9YNYCcO9P3QmF/RN9XyA6CA==} + + '@mdit-vue/plugin-sfc@2.1.3': + resolution: {integrity: sha512-Ezl0dNvQNS639Yl4siXm+cnWtQvlqHrg+u+lnau/OHpj9Xh3LVap/BSQVugKIV37eR13jXXYf3VaAOP1fXPN+w==} + + '@mdit-vue/plugin-title@2.1.3': + resolution: {integrity: sha512-XWVOQoZqczoN97xCDrnQicmXKoqwOjIymIm9HQnRXhHnYKOgJPW1CxSGhkcOGzvDU1v0mD/adojVyyj/s6ggWw==} + + '@mdit-vue/plugin-toc@2.1.3': + resolution: {integrity: sha512-41Q+iXpLHZt0zJdApVwoVt7WF6za/xUjtjEPf90Z3KLzQO01TXsv48Xp9BsrFHPcPcm8tiZ0+O1/ICJO80V/MQ==} + + '@mdit-vue/shared@2.1.3': + resolution: {integrity: sha512-27YI8b0VVZsAlNwaWoaOCWbr4eL8B04HxiYk/y2ktblO/nMcOEOLt4p0RjuobvdyUyjHvGOS09RKhq7qHm1CHQ==} + + '@mdit-vue/types@2.1.0': + resolution: {integrity: sha512-TMBB/BQWVvwtpBdWD75rkZx4ZphQ6MN0O4QB2Bc0oI5PC2uE57QerhNxdRZ7cvBHE2iY2C+BUNUziCfJbjIRRA==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@pkgr/core@0.1.1': + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + + '@rollup/rollup-android-arm-eabi@4.19.0': + resolution: {integrity: sha512-JlPfZ/C7yn5S5p0yKk7uhHTTnFlvTgLetl2VxqE518QgyM7C9bSfFTYvB/Q/ftkq0RIPY4ySxTz+/wKJ/dXC0w==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.19.0': + resolution: {integrity: sha512-RDxUSY8D1tWYfn00DDi5myxKgOk6RvWPxhmWexcICt/MEC6yEMr4HNCu1sXXYLw8iAsg0D44NuU+qNq7zVWCrw==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.19.0': + resolution: {integrity: sha512-emvKHL4B15x6nlNTBMtIaC9tLPRpeA5jMvRLXVbl/W9Ie7HhkrE7KQjvgS9uxgatL1HmHWDXk5TTS4IaNJxbAA==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.19.0': + resolution: {integrity: sha512-fO28cWA1dC57qCd+D0rfLC4VPbh6EOJXrreBmFLWPGI9dpMlER2YwSPZzSGfq11XgcEpPukPTfEVFtw2q2nYJg==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-linux-arm-gnueabihf@4.19.0': + resolution: {integrity: sha512-2Rn36Ubxdv32NUcfm0wB1tgKqkQuft00PtM23VqLuCUR4N5jcNWDoV5iBC9jeGdgS38WK66ElncprqgMUOyomw==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.19.0': + resolution: {integrity: sha512-gJuzIVdq/X1ZA2bHeCGCISe0VWqCoNT8BvkQ+BfsixXwTOndhtLUpOg0A1Fcx/+eA6ei6rMBzlOz4JzmiDw7JQ==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.19.0': + resolution: {integrity: sha512-0EkX2HYPkSADo9cfeGFoQ7R0/wTKb7q6DdwI4Yn/ULFE1wuRRCHybxpl2goQrx4c/yzK3I8OlgtBu4xvted0ug==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.19.0': + resolution: {integrity: sha512-GlIQRj9px52ISomIOEUq/IojLZqzkvRpdP3cLgIE1wUWaiU5Takwlzpz002q0Nxxr1y2ZgxC2obWxjr13lvxNQ==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.19.0': + resolution: {integrity: sha512-N6cFJzssruDLUOKfEKeovCKiHcdwVYOT1Hs6dovDQ61+Y9n3Ek4zXvtghPPelt6U0AH4aDGnDLb83uiJMkWYzQ==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.19.0': + resolution: {integrity: sha512-2DnD3mkS2uuam/alF+I7M84koGwvn3ZVD7uG+LEWpyzo/bq8+kKnus2EVCkcvh6PlNB8QPNFOz6fWd5N8o1CYg==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.19.0': + resolution: {integrity: sha512-D6pkaF7OpE7lzlTOFCB2m3Ngzu2ykw40Nka9WmKGUOTS3xcIieHe82slQlNq69sVB04ch73thKYIWz/Ian8DUA==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.19.0': + resolution: {integrity: sha512-HBndjQLP8OsdJNSxpNIN0einbDmRFg9+UQeZV1eiYupIRuZsDEoeGU43NQsS34Pp166DtwQOnpcbV/zQxM+rWA==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.19.0': + resolution: {integrity: sha512-HxfbvfCKJe/RMYJJn0a12eiOI9OOtAUF4G6ozrFUK95BNyoJaSiBjIOHjZskTUffUrB84IPKkFG9H9nEvJGW6A==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.19.0': + resolution: {integrity: sha512-HxDMKIhmcguGTiP5TsLNolwBUK3nGGUEoV/BO9ldUBoMLBssvh4J0X8pf11i1fTV7WShWItB1bKAKjX4RQeYmg==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.19.0': + resolution: {integrity: sha512-xItlIAZZaiG/u0wooGzRsx11rokP4qyc/79LkAOdznGRAbOFc+SfEdfUOszG1odsHNgwippUJavag/+W/Etc6Q==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.19.0': + resolution: {integrity: sha512-xNo5fV5ycvCCKqiZcpB65VMR11NJB+StnxHz20jdqRAktfdfzhgjTiJ2doTDQE/7dqGaV5I7ZGqKpgph6lCIag==} + cpu: [x64] + os: [win32] + + '@rushstack/eslint-patch@1.10.3': + resolution: {integrity: sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==} + + '@sec-ant/readable-stream@0.4.1': + resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} + + '@sindresorhus/merge-streams@2.3.0': + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} + + '@sindresorhus/merge-streams@4.0.0': + resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} + engines: {node: '>=18'} + + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + '@types/fs-extra@11.0.4': + resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} + + '@types/hash-sum@1.0.2': + resolution: {integrity: sha512-UP28RddqY8xcU0SCEp9YKutQICXpaAq9N8U2klqF5hegGha7KzTOL8EdhIIV3bOSGBzjEpN9bU/d+nNZBdJYVw==} + + '@types/jsonfile@6.1.4': + resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} + + '@types/linkify-it@3.0.5': + resolution: {integrity: sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==} + + '@types/linkify-it@5.0.0': + resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} + + '@types/markdown-it-emoji@2.0.5': + resolution: {integrity: sha512-iJLsmCNpSWKtV6Ia3mLSjcXJPEt7ubGG342z+hGvYx++TpM19oTUrJcI7XjbOqRQ+W2UQ323E7B0eCLwlgT/9g==} + + '@types/markdown-it-emoji@3.0.1': + resolution: {integrity: sha512-cz1j8R35XivBqq9mwnsrP2fsz2yicLhB8+PDtuVkKOExwEdsVBNI+ROL3sbhtR5occRZ66vT0QnwFZCqdjf3pA==} + + '@types/markdown-it@13.0.8': + resolution: {integrity: sha512-V+KmpgiipS+zoypeUSS9ojesWtY/0k4XfqcK2fnVrX/qInJhX7rsCxZ/rygiPH2zxlPPrhfuW0I6ddMcWTKLsg==} + + '@types/markdown-it@14.1.1': + resolution: {integrity: sha512-4NpsnpYl2Gt1ljyBGrKMxFYAYvpqbnnkgP/i/g+NLpjEUa3obn1XJCur9YbEXKDAkaXqsR1LbDnGEJ0MmKFxfg==} + + '@types/mdurl@1.0.5': + resolution: {integrity: sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==} + + '@types/mdurl@2.0.0': + resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} + + '@types/ms@0.7.34': + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + + '@types/node@17.0.45': + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + + '@types/node@20.14.12': + resolution: {integrity: sha512-r7wNXakLeSsGT0H1AU863vS2wa5wBOK4bWMjZz2wj+8nBx+m5PeIn0k8AloSLpRuiwdRQZwarZqHE4FNArPuJQ==} + + '@types/sax@1.2.7': + resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} + + '@types/web-bluetooth@0.0.20': + resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} + + '@typescript-eslint/eslint-plugin@7.17.0': + resolution: {integrity: sha512-pyiDhEuLM3PuANxH7uNYan1AaFs5XE0zw1hq69JBvGvE7gSuEoQl1ydtEe/XQeoC3GQxLXyOVa5kNOATgM638A==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@7.17.0': + resolution: {integrity: sha512-puiYfGeg5Ydop8eusb/Hy1k7QmOU6X3nvsqCgzrB2K4qMavK//21+PzNE8qeECgNOIoertJPUC1SpegHDI515A==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@7.17.0': + resolution: {integrity: sha512-0P2jTTqyxWp9HiKLu/Vemr2Rg1Xb5B7uHItdVZ6iAenXmPo4SZ86yOPCJwMqpCyaMiEHTNqizHfsbmCFT1x9SA==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/type-utils@7.17.0': + resolution: {integrity: sha512-XD3aaBt+orgkM/7Cei0XNEm1vwUxQ958AOLALzPlbPqb8C1G8PZK85tND7Jpe69Wualri81PLU+Zc48GVKIMMA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@7.17.0': + resolution: {integrity: sha512-a29Ir0EbyKTKHnZWbNsrc/gqfIBqYPwj3F2M+jWE/9bqfEHg0AMtXzkbUkOG6QgEScxh2+Pz9OXe11jHDnHR7A==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/typescript-estree@7.17.0': + resolution: {integrity: sha512-72I3TGq93t2GoSBWI093wmKo0n6/b7O4j9o8U+f65TVD0FS6bI2180X5eGEr8MA8PhKMvYe9myZJquUT2JkCZw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@7.17.0': + resolution: {integrity: sha512-r+JFlm5NdB+JXc7aWWZ3fKSm1gn0pkswEwIYsrGPdsT2GjsRATAKXiNtp3vgAAO1xZhX8alIOEQnNMl3kbTgJw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + + '@typescript-eslint/visitor-keys@7.17.0': + resolution: {integrity: sha512-RVGC9UhPOCsfCdI9pU++K4nD7to+jTcMIbXTSOcrLqUEW6gF2pU1UUbYJKc9cvcRSK1UDeMJ7pdMxf4bhMpV/A==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + + '@vitejs/plugin-vue@4.6.2': + resolution: {integrity: sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.0.0 || ^5.0.0 + vue: ^3.2.25 + + '@vitejs/plugin-vue@5.1.0': + resolution: {integrity: sha512-QMRxARyrdiwi1mj3AW4fLByoHTavreXq0itdEW696EihXglf1MB3D4C2gBvE0jMPH29ZjC3iK8aIaUMLf4EOGA==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 + vue: ^3.2.25 + + '@volar/language-core@1.11.1': + resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} + + '@volar/language-core@2.4.0-alpha.18': + resolution: {integrity: sha512-JAYeJvYQQROmVRtSBIczaPjP3DX4QW1fOqW1Ebs0d3Y3EwSNRglz03dSv0Dm61dzd0Yx3WgTW3hndDnTQqgmyg==} + + '@volar/language-server@2.4.0-alpha.18': + resolution: {integrity: sha512-dciHEE/R5kzI0bY71QfkoCVQ3cQI6g9MHfA4oIP6UhnJy0CdleUalWSygOXoD3Nq7Yk6wn2BRrb1PP5MsadY/Q==} + + '@volar/language-service@2.4.0-alpha.18': + resolution: {integrity: sha512-EuetrtbEtudi9buinWAG5U3Jam5dY27zXd/7GYnx542kBwanWOBM8i4DAQd0z7M11fOxXgybxPA933uaSyaOog==} + + '@volar/snapshot-document@2.4.0-alpha.18': + resolution: {integrity: sha512-JAeclEly/wnILhR4Pu9MpgBLInZJH49O1zoy8fU+pk5I+zpv7JIEby5z2UFAS60+sIDnxBdAGd7rZ5VibE70vg==} + + '@volar/source-map@1.11.1': + resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==} + + '@volar/source-map@2.4.0-alpha.18': + resolution: {integrity: sha512-MTeCV9MUwwsH0sNFiZwKtFrrVZUK6p8ioZs3xFzHc2cvDXHWlYN3bChdQtwKX+FY2HG6H3CfAu1pKijolzIQ8g==} + + '@volar/typescript@1.11.1': + resolution: {integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==} + + '@volar/typescript@2.4.0-alpha.18': + resolution: {integrity: sha512-sXh5Y8sqGUkgxpMWUGvRXggxYHAVxg0Pa1C42lQZuPDrW6vHJPR0VCK8Sr7WJsAW530HuNQT/ZIskmXtxjybMQ==} + + '@vscode/emmet-helper@2.9.3': + resolution: {integrity: sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==} + + '@vscode/l10n@0.0.18': + resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} + + '@vue/compiler-core@3.4.33': + resolution: {integrity: sha512-MoIREbkdPQlnGfSKDMgzTqzqx5nmEjIc0ydLVYlTACGBsfvOJ4tHSbZXKVF536n6fB+0eZaGEOqsGThPpdvF5A==} + + '@vue/compiler-dom@3.4.33': + resolution: {integrity: sha512-GzB8fxEHKw0gGet5BKlpfXEqoBnzSVWwMnT+dc25wE7pFEfrU/QsvjZMP9rD4iVXHBBoemTct8mN0GJEI6ZX5A==} + + '@vue/compiler-sfc@3.4.33': + resolution: {integrity: sha512-7rk7Vbkn21xMwIUpHQR4hCVejwE6nvhBOiDgoBcR03qvGqRKA7dCBSsHZhwhYUsmjlbJ7OtD5UFIyhP6BY+c8A==} + + '@vue/compiler-ssr@3.4.33': + resolution: {integrity: sha512-0WveC9Ai+eT/1b6LCV5IfsufBZ0HP7pSSTdDjcuW302tTEgoBw8rHVHKPbGUtzGReUFCRXbv6zQDDgucnV2WzQ==} + + '@vue/devtools-api@6.6.3': + resolution: {integrity: sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==} + + '@vue/eslint-config-prettier@9.0.0': + resolution: {integrity: sha512-z1ZIAAUS9pKzo/ANEfd2sO+v2IUalz7cM/cTLOZ7vRFOPk5/xuRKQteOu1DErFLAh/lYGXMVZ0IfYKlyInuDVg==} + peerDependencies: + eslint: '>= 8.0.0' + prettier: '>= 3.0.0' + + '@vue/eslint-config-typescript@13.0.0': + resolution: {integrity: sha512-MHh9SncG/sfqjVqjcuFLOLD6Ed4dRAis4HNt0dXASeAuLqIAx4YMB1/m2o4pUKK1vCt8fUvYG8KKX2Ot3BVZTg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + eslint-plugin-vue: ^9.0.0 + typescript: '>=4.7.4' + peerDependenciesMeta: + typescript: + optional: true + + '@vue/language-core@1.8.27': + resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@vue/language-core@2.0.28': + resolution: {integrity: sha512-0z4tyCCaqqPbdyz0T4yTFQeLpCo4TOM/ZHAC3geGLHeCiFAjVbROB9PiEtrXR1AoLObqUPFHSmKZeWtEMssSqw==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@vue/language-server@2.0.28': + resolution: {integrity: sha512-V5c54qz3+Udbxhb7FqcwiLcSzdy1LZLUDA6awd8/CjGhx6gb5FhXq4DjvqS71WkR8F/u+J+6pUw56JlzFyj5fg==} + hasBin: true + + '@vue/language-service@2.0.28': + resolution: {integrity: sha512-DN0RhYZ6wcrzrYLnHBmRbo8XOFYqBqj60QKq5/7BS1zEQlSXoNJbT+8IqB/OdUFAHKLiV45tvfjCyr3CY0mK3g==} + + '@vue/reactivity@3.4.33': + resolution: {integrity: sha512-B24QIelahDbyHipBgbUItQblbd4w5HpG3KccL+YkGyo3maXyS253FzcTR3pSz739OTphmzlxP7JxEMWBpewilA==} + + '@vue/runtime-core@3.4.33': + resolution: {integrity: sha512-6wavthExzT4iAxpe8q37/rDmf44nyOJGISJPxCi9YsQO+8w9v0gLCFLfH5TzD1V1AYrTAdiF4Y1cgUmP68jP6w==} + + '@vue/runtime-dom@3.4.33': + resolution: {integrity: sha512-iHsMCUSFJ+4z432Bn9kZzHX+zOXa6+iw36DaVRmKYZpPt9jW9riF32SxNwB124i61kp9+AZtheQ/mKoJLerAaQ==} + + '@vue/server-renderer@3.4.33': + resolution: {integrity: sha512-jTH0d6gQcaYideFP/k0WdEu8PpRS9MF8d0b6SfZzNi+ap972pZ0TNIeTaESwdOtdY0XPVj54XEJ6K0wXxir4fw==} + peerDependencies: + vue: 3.4.33 + + '@vue/shared@3.4.33': + resolution: {integrity: sha512-aoRY0jQk3A/cuvdkodTrM4NMfxco8n55eG4H7ML/CRy7OryHfiqvug4xrCBBMbbN+dvXAetDDwZW9DXWWjBntA==} + + '@vue/tsconfig@0.5.1': + resolution: {integrity: sha512-VcZK7MvpjuTPx2w6blwnwZAu5/LgBUtejFOi3pPGQFXQN5Ela03FUtd2Qtg4yWGGissVL0dr6Ro1LfOFh+PCuQ==} + + '@vue/typescript-plugin@2.0.28': + resolution: {integrity: sha512-/NQP5reqT7WtfI3+GBKeDF6yLeHQM8Wl0VQMXOz0rpi4cirvUg/E8XNrLnLgHot2VzXfm23DoTJCEBgfYGmOUQ==} + + '@vuepress/bundler-vite@2.0.0-rc.7': + resolution: {integrity: sha512-2jNnU3sgHJuUCPfE0DvGRsAxo/A/Locguvnv4Q6QwJYdB1fuAqE6x5p8RDzq8Lv/GsyeexDWiV/PFER5EtVP3w==} + + '@vuepress/cli@2.0.0-rc.14': + resolution: {integrity: sha512-oYJX1nE6/ohF2tzUtpBAFxRr4MF2kdtab3+AQ897esXzrciQnE2LxPQZ8BUOn6Jb3XYW12FXDdkHrr82rN6XnQ==} + hasBin: true + + '@vuepress/client@2.0.0-rc.14': + resolution: {integrity: sha512-ULwxOiWoUi15HWQ6qH60gWjxSXB0797uExCUa4HgHV/8SpIqv4SHFn6jqjo7qCzOxuTqj1RT47JH3oWfUF4XPA==} + + '@vuepress/client@2.0.0-rc.7': + resolution: {integrity: sha512-T8jf9h8dfP1ln/7uOIiTAJrdyKRTyq1x+RHXuc7GoRxTfOw+bIYgGvh63Z7m1e3K/yh1nO9aM1WcXbDN1Swp4w==} + + '@vuepress/core@2.0.0-rc.14': + resolution: {integrity: sha512-Ly3fypjXGUgPzjfbXKJeyd59jxJgXkhxhWAGkH/rRyQeV8Nr7Wo1ah3H1MeGhlCRGH1T9Yd3Bz9W7QMoyWFfmg==} + + '@vuepress/core@2.0.0-rc.7': + resolution: {integrity: sha512-SPd2C9MIwHLe4mEWJfbcTHT5caS/vW+oeP79wAW0otSGgn2uY3Mmu5qcYPzl+17o8EYv7vDvPiO+uitp/Cek+A==} + + '@vuepress/helper@2.0.0-rc.39': + resolution: {integrity: sha512-X9KiTUjtrT6gxrDUDJhiB5+/kO4via8yzudowOPu55p/MKtPbShlJw/zEDivH3P4nD1LFWnjWWuEBgZLFymLFQ==} + peerDependencies: + vuepress: 2.0.0-rc.14 + + '@vuepress/helper@2.0.0-rc.7': + resolution: {integrity: sha512-O4kaFjNqICs4IKxwmyMPGcaDENod7vTqHgMBcR77fKhnGI8YDNOh+x1QA8+ajChqoUQhc96ULwqrpQI/IxBphA==} + peerDependencies: + vuepress: 2.0.0-rc.2 + + '@vuepress/highlighter-helper@2.0.0-rc.39': + resolution: {integrity: sha512-da4wob8vmrB8DGsBsJCF1ox4E50/9Yc3F9CkNvuH/BS/Touk5KabAw36dCDW/420jTrm5UjRgwfVzfkakcaRIQ==} + peerDependencies: + vuepress: 2.0.0-rc.14 + + '@vuepress/markdown@2.0.0-rc.14': + resolution: {integrity: sha512-9xr693gkp71qwEbQLxpo1ybhJ+lA2k5SiuFUgqqrmR2a8CSL3gcmKEGM+y7GMnHvL63U2dYlc9pUOtJ5rG9O0Q==} + + '@vuepress/markdown@2.0.0-rc.7': + resolution: {integrity: sha512-mczvo7MZxxXXj5htDXK22r0a7JjTP5sTlcywtVOTJurzCKp8SNSbr3HdmsAnr9S838Hn9+dkvhs57rqgPG3UHA==} + + '@vuepress/plugin-active-header-links@2.0.0-rc.39': + resolution: {integrity: sha512-Nm4srR+/kEoawFikbpXdJmi3dvXKU4RcsuOW6d0Aa6JWdiB8sX9PbCWbJD+ZWvAa8o+ySBBHFNd4exTzfCtBlw==} + peerDependencies: + vuepress: 2.0.0-rc.14 + + '@vuepress/plugin-back-to-top@2.0.0-rc.39': + resolution: {integrity: sha512-rG9HVgvpxURGfDZeuVRCjXLFHIEqPh1VPqkQpldh1zpDbB4+V2xqq73TYfpjFBRekN8lJZ0JO3BJ8f7p9t4wLg==} + peerDependencies: + vuepress: 2.0.0-rc.14 + + '@vuepress/plugin-blog@2.0.0-rc.39': + resolution: {integrity: sha512-YHxsZxlIeJGCcOdEm4c4lQoNHx358Zxu/0tvRC/jEwXgyZUnqSpbMd3FLJ9Yl7CPsp18PMLIN7d8YQOetR17zA==} + peerDependencies: + vuepress: 2.0.0-rc.14 + + '@vuepress/plugin-copy-code@2.0.0-rc.39': + resolution: {integrity: sha512-Udd73yfUvjCQadE+QRXCC+Rw2zxRNsBIcpDcFMzs3Vz93LbZxbG0cv6pO4rdKb3OrFH9M0JTawoWyANZspt3QQ==} + peerDependencies: + vuepress: 2.0.0-rc.14 + + '@vuepress/plugin-git@2.0.0-rc.38': + resolution: {integrity: sha512-dRJiZ5PVuhhyu+R2BZOlyeqgxVikUUh2Vf6RNVN2DNWv4VHdYybFQuQ+kYDpldYyzoP8932aFRV0d2ocpvxEug==} + peerDependencies: + vuepress: 2.0.0-rc.14 + + '@vuepress/plugin-links-check@2.0.0-rc.39': + resolution: {integrity: sha512-2lQHIMO49jYcJnEWHf7yoXnuFUrAQC+LfzSvaeCMUzshEIDTJXy96LSCQCjRWwW02GL65qS9ODfr6b8DDuXMgg==} + peerDependencies: + vuepress: 2.0.0-rc.14 + + '@vuepress/plugin-markdown-container@2.0.0-rc.37': + resolution: {integrity: sha512-o/jL/uHQ2U0x0crtODh2n4S51yG4BBmHw7DWrolP6e0FN6/PoQVsBenau5700c2iuouAfdrJ6G+tRbCrOx5ZjA==} + peerDependencies: + vuepress: 2.0.0-rc.14 + + '@vuepress/plugin-medium-zoom@2.0.0-rc.39': + resolution: {integrity: sha512-iZ3+R5kOfFE0QsXGfiof2nqSBGTDdkwIgwM6ZRlOiKQ4rZtAmvQws9MMB5h9HCWbpP4xiTSMZAVTf4T3ja2bkA==} + peerDependencies: + vuepress: 2.0.0-rc.14 + + '@vuepress/plugin-nprogress@2.0.0-rc.39': + resolution: {integrity: sha512-HH+GuR2sxzVQ5uIQxDHnQF5RevjefviLuAbB1UH4u1R6DRUDd9+DrqXm4T/0LJJWo4OCPO4DLzPpmRESjuZifw==} + peerDependencies: + vuepress: 2.0.0-rc.14 + + '@vuepress/plugin-palette@2.0.0-rc.37': + resolution: {integrity: sha512-wzsywEeZFHOcRITIff1SC0jXsMasze3t0d9gc0cp5iB/OW3bEdhes4mFmPtZZmWfnlmgajq/7uTEavEXVWJTIA==} + peerDependencies: + vuepress: 2.0.0-rc.14 + + '@vuepress/plugin-prismjs@2.0.0-rc.39': + resolution: {integrity: sha512-E5bn5akM4OKR3v6S7bzH4Ra+T+3t4LOpyZJ6ABLDif0JPsyPQvtJZy+cEgTG26FcFby6QahUHaIgADFswGKmvg==} + peerDependencies: + vuepress: 2.0.0-rc.14 + + '@vuepress/plugin-redirect@2.0.0-rc.8': + resolution: {integrity: sha512-DF7SPBCsSwCrxE+PU+1gQbOSw49OaBZSB18MqfnKBgQ7CiUhufKQ6TNwkSC5aDsoWDa8cdhcEEvul2AxB2eruw==} + hasBin: true + peerDependencies: + vuepress: 2.0.0-rc.2 + + '@vuepress/plugin-seo@2.0.0-rc.39': + resolution: {integrity: sha512-n6w3ifBU2HK3b6twxJQiiv7vZxjCi0DCgW3Ellp7pNI/uZU6PnfkZ+UjtlHieScThe7A8Q+mxW/T7CyWC6/8cw==} + peerDependencies: + vuepress: 2.0.0-rc.14 + + '@vuepress/plugin-sitemap@2.0.0-rc.39': + resolution: {integrity: sha512-/dgI8JK4oFaFG3Dmw34cwY5J/gYXNWto7RwR7H8wcK10cWuoT2tNV56BeixWiaqsKj1BZjv2GMwZTLpPgYxgZw==} + peerDependencies: + vuepress: 2.0.0-rc.14 + + '@vuepress/plugin-theme-data@2.0.0-rc.39': + resolution: {integrity: sha512-fNwaPpqM46gI23n5d4UrwC8Y+JRDi7mKs1sjawqKU9PdJpUQKd/2lOSOSx/farLqxiswHTQdZtLCxWjvWlcZRw==} + peerDependencies: + vuepress: 2.0.0-rc.14 + + '@vuepress/shared@2.0.0-rc.14': + resolution: {integrity: sha512-VDDnPpz4x1Q07richcVRGbc4qc2RG/6bKoEYSImofTFzvdmHer538ouv8kD2SNU10UrSOpxxUiphnhlhNIe03A==} + + '@vuepress/shared@2.0.0-rc.7': + resolution: {integrity: sha512-zNsYzAW5tuENb4vML0pK/61W3EscyOcn5JVPC+c6AwvsYWyAigZaMSu9ycGAptjDwzdYSi3gd33N9Q9T7pG77Q==} + + '@vuepress/theme-default@2.0.0-rc.39': + resolution: {integrity: sha512-GHja8v6YndBFtLlb9F0P3wyKy/1ojURrb4x5m+yKPpHCEy8DWtNOnei4n8BwZxrrcgt6wt1htgUI2IJDsOH8Dw==} + peerDependencies: + sass-loader: ^14.0.0 + vuepress: 2.0.0-rc.14 + peerDependenciesMeta: + sass-loader: + optional: true + + '@vuepress/utils@2.0.0-rc.14': + resolution: {integrity: sha512-1h/5qcKBeIhIg6SZM2IoZVOaIdFSeQ1CdEWadqQWy1uwupEeVrU3QPkjFyn0vUt0O/EuuVqQcLLC8OuS/wldNw==} + + '@vuepress/utils@2.0.0-rc.7': + resolution: {integrity: sha512-47c7T72JwOWH1EgG7f/KwWNpIknd9IC5JmrizGI5IVUM4G16Vyj5oPQuXqLobV47m8JOxPW4dLpsglZGVaKQeg==} + + '@vueuse/core@10.11.0': + resolution: {integrity: sha512-x3sD4Mkm7PJ+pcq3HX8PLPBadXCAlSDR/waK87dz0gQE+qJnaaFhc/dZVfJz+IUYzTMVGum2QlR7ImiJQN4s6g==} + + '@vueuse/metadata@10.11.0': + resolution: {integrity: sha512-kQX7l6l8dVWNqlqyN3ePW3KmjCQO3ZMgXuBMddIu83CmucrsBfXlH+JoviYyRBws/yLTQO8g3Pbw+bdIoVm4oQ==} + + '@vueuse/shared@10.11.0': + resolution: {integrity: sha512-fyNoIXEq3PfX1L3NkNhtVQUSRtqYwJtJg+Bp9rIzculIZWHTkKSysujrOk2J+NrRulLTQH9+3gGSfYLWSEWU1A==} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} + hasBin: true + + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + autoprefixer@10.4.19: + resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.23.2: + resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + caniuse-lite@1.0.30001643: + resolution: {integrity: sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + character-parser@2.2.0: + resolution: {integrity: sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==} + + cheerio-select@2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + + cheerio@1.0.0-rc.12: + resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} + engines: {node: '>= 6'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + computeds@0.0.1: + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + connect-history-api-fallback@2.0.0: + resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} + engines: {node: '>=0.8'} + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + + css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + + debug@4.3.5: + resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + + electron-to-chromium@1.5.0: + resolution: {integrity: sha512-Vb3xHHYnLseK8vlMJQKJYXJ++t4u1/qJ3vykuVrVjvdiOEhYyT1AuP4x03G8EnPmYvYOhe9T+dADTmthjRQMkA==} + + emmet@2.4.7: + resolution: {integrity: sha512-O5O5QNqtdlnQM2bmKHtJgyChcrFMgQuulI+WdiOw2NArzprUqqxUW6bgYtKvzKgrsYpuLWalOkdhNP+1jluhCA==} + + emoji-regex@10.3.0: + resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + envinfo@7.13.0: + resolution: {integrity: sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==} + engines: {node: '>=4'} + hasBin: true + + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + + escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-config-prettier@9.1.0: + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-plugin-cypress@3.3.0: + resolution: {integrity: sha512-HPHMPzYBIshzJM8wqgKSKHG2p/8R0Gbg4Pb3tcdC9WrmkuqxiKxSKbjunUrajhV5l7gCIFrh1P7C7GuBqH6YuQ==} + peerDependencies: + eslint: '>=7' + + eslint-plugin-prettier@5.2.1: + resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + + eslint-plugin-vue@9.27.0: + resolution: {integrity: sha512-5Dw3yxEyuBSXTzT5/Ge1X5kIkRTQ3nvBn/VwPwInNiZBSJOO/timWMUaflONnFBzU6NhB68lxnCda7ULV5N7LA==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + execa@9.3.0: + resolution: {integrity: sha512-l6JFbqnHEadBoVAVpN5dl2yCyfX28WoBAGaoQcNmLLSedOxTxcn2Qa83s8I/PA5i56vWru2OHOtrwF7Om2vqlg==} + engines: {node: ^18.19.0 || >=20.5.0} + + extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + fflate@0.8.2: + resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} + + figures@6.1.0: + resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} + engines: {node: '>=18'} + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + + flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + + fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + + fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} + + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + + get-stream@9.0.1: + resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} + engines: {node: '>=18'} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + globby@14.0.2: + resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==} + engines: {node: '>=18'} + + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hash-sum@2.0.0: + resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + + human-signals@7.0.0: + resolution: {integrity: sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==} + engines: {node: '>=18.18.0'} + + ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + + immutable@4.3.7: + resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-expression@4.0.0: + resolution: {integrity: sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==} + + is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + + is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + + is-stream@4.0.1: + resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} + engines: {node: '>=18'} + + is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + + is-unicode-supported@2.0.0: + resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} + engines: {node: '>=18'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + jsonc-parser@2.3.1: + resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} + + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + engines: {node: '>=14'} + + linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + log-symbols@6.0.0: + resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} + engines: {node: '>=18'} + + magic-string@0.30.10: + resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + + markdown-it-anchor@8.6.7: + resolution: {integrity: sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==} + peerDependencies: + '@types/markdown-it': '*' + markdown-it: '*' + + markdown-it-anchor@9.0.1: + resolution: {integrity: sha512-cBt7aAzmkfX8X7FqAe8EBryiKmToXgMQEEMqkXzWCm0toDtfDYIGboKeTKd8cpNJArJtutrf+977wFJTsvNGmQ==} + peerDependencies: + '@types/markdown-it': '*' + markdown-it: '*' + + markdown-it-container@4.0.0: + resolution: {integrity: sha512-HaNccxUH0l7BNGYbFbjmGpf5aLHAMTinqRZQAEQbMr2cdD3z91Q6kIo1oUn1CQndkT03jat6ckrdRYuwwqLlQw==} + + markdown-it-emoji@3.0.0: + resolution: {integrity: sha512-+rUD93bXHubA4arpEZO3q80so0qgoFJEKRkRbjKX8RTdca89v2kfyF+xR3i2sQTwql9tpPZPOQN5B+PunspXRg==} + + markdown-it@14.1.0: + resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} + hasBin: true + + mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + + medium-zoom@1.1.0: + resolution: {integrity: sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.7: + resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + engines: {node: '>=8.6'} + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + muggle-string@0.3.1: + resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} + + muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + ora@8.0.1: + resolution: {integrity: sha512-ANIvzobt1rls2BDny5fWZ3ZVKyD6nscLvfFRpQgfWsythlcsVUC9kL0zq6j2Z5z9wwp1kd7wpsD/T9qNPVLCaQ==} + engines: {node: '>=18'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-ms@4.0.0: + resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} + engines: {node: '>=18'} + + parse5-htmlparser2-tree-adapter@7.0.0: + resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} + + parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + path-type@5.0.0: + resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} + engines: {node: '>=12'} + + picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + postcss-load-config@5.1.0: + resolution: {integrity: sha512-G5AJ+IX0aD0dygOE0yFZQ/huFFMSNneyfp0e3/bT05a8OfPC5FUoZRPfGijUdGOJNMewJiwzcHJXFafFzeKFVA==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + tsx: ^4.8.1 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + + postcss-selector-parser@6.1.1: + resolution: {integrity: sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==} + engines: {node: '>=4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.4.39: + resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + + prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} + engines: {node: '>=14'} + hasBin: true + + pretty-ms@9.0.0: + resolution: {integrity: sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng==} + engines: {node: '>=18'} + + prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + + pug-error@2.1.0: + resolution: {integrity: sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg==} + + pug-lexer@5.0.1: + resolution: {integrity: sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==} + + pug-parser@6.0.0: + resolution: {integrity: sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==} + + punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + request-light@0.7.0: + resolution: {integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rollup@4.19.0: + resolution: {integrity: sha512-5r7EYSQIowHsK4eTZ0Y81qpZuJz+MUuYeqmmYmRMl1nwhdmbiYqt5jwzf6u7wyOzJgYqtCRMtVRKOtHANBz7rA==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + sass@1.77.8: + resolution: {integrity: sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==} + engines: {node: '>=14.0.0'} + hasBin: true + + sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + + section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + sitemap@8.0.0: + resolution: {integrity: sha512-+AbdxhM9kJsHtruUF39bwS/B0Fytw6Fr1o4ZAIAEqA6cke2xcoO2GleBw9Zw7nRzILVEgz7zBM5GiTJjie1G9A==} + engines: {node: '>=14.0.0', npm: '>=6.0.0'} + hasBin: true + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + + source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + stdin-discarder@0.2.2: + resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} + engines: {node: '>=18'} + + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + + strip-final-newline@4.0.0: + resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} + engines: {node: '>=18'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + synckit@0.9.1: + resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==} + engines: {node: ^14.18.0 || >=16.0.0} + + terser@5.31.3: + resolution: {integrity: sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA==} + engines: {node: '>=10'} + hasBin: true + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + token-stream@1.0.0: + resolution: {integrity: sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==} + + ts-api-utils@1.3.0: + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + typescript-auto-import-cache@0.3.3: + resolution: {integrity: sha512-ojEC7+Ci1ij9eE6hp8Jl9VUNnsEKzztktP5gtYNRMrTmfXVwA1PITYYAkpxCvvupdSYa/Re51B6KMcv1CTZEUA==} + + typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + engines: {node: '>=14.17'} + hasBin: true + + uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + upath@2.0.1: + resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} + engines: {node: '>=4'} + + update-browserslist-db@1.1.0: + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + vite@5.0.13: + resolution: {integrity: sha512-/9ovhv2M2dGTuA+dY93B9trfyWMDRQw2jdVBhHNP6wr0oF34wG2i/N55801iZIpgUpnHDm4F/FabGQLyc+eOgg==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + volar-service-css@0.0.59: + resolution: {integrity: sha512-gLNjJnECbalPvQB7qeJjhkDN8sR5M3ItbVYjnyio61aHaWptIiXm/HfDahcQ2ApwmvWidkMWWegjGq5L0BENDA==} + peerDependencies: + '@volar/language-service': ~2.4.0-alpha.12 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-emmet@0.0.59: + resolution: {integrity: sha512-6EynHcuMwMBETpK29TbZvIMmvzdVG+Tkokk9VWfZeI+SwDptk2tgdhEqiXXvIkqYNgbuu73Itp66lpH76cAU+Q==} + peerDependencies: + '@volar/language-service': ~2.4.0-alpha.12 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-html@0.0.59: + resolution: {integrity: sha512-hEXOsYpILDlITZxnqRLV9OepVWD63GZBsyjMxszwdzlxvGZjzbGcBBinJGGJRwFIV8djdJwnt91bkdg1V5tj6Q==} + peerDependencies: + '@volar/language-service': ~2.4.0-alpha.12 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-json@0.0.59: + resolution: {integrity: sha512-LfDOQhCvUpDBjA6CP9EogO0dn1yEFbInvV3Yk4OsEdyxwWUEYPLVjDacPlVUYcjCIKQN6NcTOWbVwpg4vYjw6A==} + peerDependencies: + '@volar/language-service': ~2.4.0-alpha.12 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-pug-beautify@0.0.59: + resolution: {integrity: sha512-SCLWHpBdgvWww3a9Vp8FX80ookozhnHx10gkKBTYW4wp7/rzEoVAPSyO7JKBwTdXmdKQv7YXfxLMVUGv0sYUKg==} + peerDependencies: + '@volar/language-service': ~2.4.0-alpha.12 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-pug@0.0.59: + resolution: {integrity: sha512-kmch7yoqeGNlJuDzpw/YL2b89ilzBmWDd0lJbpG412/RXc3PJVA4usUK+SQHdVoF+qi5IcZL6IDxlvRiIrDgWg==} + + volar-service-typescript-twoslash-queries@0.0.59: + resolution: {integrity: sha512-skm8e6yhCIkqLwJB6S9MqT5lO9LNFuMD3dYxKpmOZs1CKbXmCZZTmLfEaD5VkJae1xdleEDZFFTHl2O5HLjOGQ==} + peerDependencies: + '@volar/language-service': ~2.4.0-alpha.12 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-typescript@0.0.59: + resolution: {integrity: sha512-VCOpfiu+lUo5lapWLB5L5vmQGtwzmNWn5MueV915eku7blpphmE+Z7hCNcL1NApn7AetXWhiblv8ZhmUx/dGIA==} + peerDependencies: + '@volar/language-service': ~2.4.0-alpha.12 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + vscode-css-languageservice@6.3.0: + resolution: {integrity: sha512-nU92imtkgzpCL0xikrIb8WvedV553F2BENzgz23wFuok/HLN5BeQmroMy26pUwFxV2eV8oNRmYCUv8iO7kSMhw==} + + vscode-html-languageservice@5.3.0: + resolution: {integrity: sha512-C4Z3KsP5Ih+fjHpiBc5jxmvCl+4iEwvXegIrzu2F5pktbWvQaBT3YkVPk8N+QlSSMk8oCG6PKtZ/Sq2YHb5e8g==} + + vscode-json-languageservice@5.4.0: + resolution: {integrity: sha512-NCkkCr63OHVkE4lcb0xlUAaix6vE5gHQW4NrswbLEh3ArXj81lrGuFTsGEYEUXlNHdnc53vWPcjeSy/nMTrfXg==} + + vscode-jsonrpc@8.2.0: + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + engines: {node: '>=14.0.0'} + + vscode-languageserver-protocol@3.17.5: + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + + vscode-languageserver-textdocument@1.0.11: + resolution: {integrity: sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==} + + vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + + vscode-languageserver@9.0.1: + resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} + hasBin: true + + vscode-nls@5.2.0: + resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} + + vscode-uri@2.1.2: + resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} + + vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + + vue-demi@0.14.9: + resolution: {integrity: sha512-dC1TJMODGM8lxhP6wLToncaDPPNB3biVxxRDuNCYpuXwi70ou7NsGd97KVTJ2omepGId429JZt8oaZKeXbqxwg==} + engines: {node: '>=12'} + hasBin: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + + vue-eslint-parser@9.4.3: + resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + vue-router@4.4.0: + resolution: {integrity: sha512-HB+t2p611aIZraV2aPSRNXf0Z/oLZFrlygJm+sZbdJaW6lcFqEDQwnzUBXn+DApw+/QzDU/I9TeWx9izEjTmsA==} + peerDependencies: + vue: ^3.2.0 + + vue-template-compiler@2.7.16: + resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} + + vue-tsc@1.8.27: + resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} + hasBin: true + peerDependencies: + typescript: '*' + + vue@3.4.33: + resolution: {integrity: sha512-VdMCWQOummbhctl4QFMcW6eNtXHsFyDlX60O/tsSQuCcuDOnJ1qPOhhVla65Niece7xq/P2zyZReIO5mP+LGTQ==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + vuepress@2.0.0-rc.14: + resolution: {integrity: sha512-t902FYKFF2MavNQjm/I4gN8etl6iX4PETutu4c1Pt7qQjXF6Hp2eurZaW32O5/TaYWsbVG757FwKodRLj9GDng==} + engines: {node: '>=18.16.0'} + hasBin: true + peerDependencies: + '@vuepress/bundler-vite': 2.0.0-rc.14 + '@vuepress/bundler-webpack': 2.0.0-rc.14 + vue: ^3.4.0 + peerDependenciesMeta: + '@vuepress/bundler-vite': + optional: true + '@vuepress/bundler-webpack': + optional: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + + yaml@2.4.5: + resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} + engines: {node: '>= 14'} + hasBin: true + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + yoctocolors@2.1.1: + resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} + engines: {node: '>=18'} + +snapshots: + + '@babel/helper-string-parser@7.24.8': {} + + '@babel/helper-validator-identifier@7.24.7': {} + + '@babel/parser@7.24.8': + dependencies: + '@babel/types': 7.24.9 + + '@babel/types@7.24.9': + dependencies: + '@babel/helper-string-parser': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 + to-fast-properties: 2.0.0 + + '@emmetio/abbreviation@2.3.3': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/css-abbreviation@2.1.8': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/css-parser@0.4.0': + dependencies: + '@emmetio/stream-reader': 2.2.0 + '@emmetio/stream-reader-utils': 0.1.0 + + '@emmetio/html-matcher@1.3.0': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/scanner@1.0.4': {} + + '@emmetio/stream-reader-utils@0.1.0': {} + + '@emmetio/stream-reader@2.2.0': {} + + '@esbuild/aix-ppc64@0.19.12': + optional: true + + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/android-arm64@0.19.12': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + + '@esbuild/android-arm@0.19.12': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + + '@esbuild/android-x64@0.19.12': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true + + '@esbuild/darwin-arm64@0.19.12': + optional: true + + '@esbuild/darwin-arm64@0.21.5': + optional: true + + '@esbuild/darwin-x64@0.19.12': + optional: true + + '@esbuild/darwin-x64@0.21.5': + optional: true + + '@esbuild/freebsd-arm64@0.19.12': + optional: true + + '@esbuild/freebsd-arm64@0.21.5': + optional: true + + '@esbuild/freebsd-x64@0.19.12': + optional: true + + '@esbuild/freebsd-x64@0.21.5': + optional: true + + '@esbuild/linux-arm64@0.19.12': + optional: true + + '@esbuild/linux-arm64@0.21.5': + optional: true + + '@esbuild/linux-arm@0.19.12': + optional: true + + '@esbuild/linux-arm@0.21.5': + optional: true + + '@esbuild/linux-ia32@0.19.12': + optional: true + + '@esbuild/linux-ia32@0.21.5': + optional: true + + '@esbuild/linux-loong64@0.19.12': + optional: true + + '@esbuild/linux-loong64@0.21.5': + optional: true + + '@esbuild/linux-mips64el@0.19.12': + optional: true + + '@esbuild/linux-mips64el@0.21.5': + optional: true + + '@esbuild/linux-ppc64@0.19.12': + optional: true + + '@esbuild/linux-ppc64@0.21.5': + optional: true + + '@esbuild/linux-riscv64@0.19.12': + optional: true + + '@esbuild/linux-riscv64@0.21.5': + optional: true + + '@esbuild/linux-s390x@0.19.12': + optional: true + + '@esbuild/linux-s390x@0.21.5': + optional: true + + '@esbuild/linux-x64@0.19.12': + optional: true + + '@esbuild/linux-x64@0.21.5': + optional: true + + '@esbuild/netbsd-x64@0.19.12': + optional: true + + '@esbuild/netbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.19.12': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.19.12': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.19.12': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-ia32@0.19.12': + optional: true + + '@esbuild/win32-ia32@0.21.5': + optional: true + + '@esbuild/win32-x64@0.19.12': + optional: true + + '@esbuild/win32-x64@0.21.5': + optional: true + + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': + dependencies: + eslint: 8.57.0 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.11.0': {} + + '@eslint/eslintrc@2.1.4': + dependencies: + ajv: 6.12.6 + debug: 4.3.5 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@8.57.0': {} + + '@humanwhocodes/config-array@0.11.14': + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.3.5 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/object-schema@2.0.3': {} + + '@johnsoncodehk/pug-beautify@0.2.2': {} + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + optional: true + + '@jridgewell/resolve-uri@3.1.2': + optional: true + + '@jridgewell/set-array@1.2.1': + optional: true + + '@jridgewell/source-map@0.3.6': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + optional: true + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + optional: true + + '@mdit-vue/plugin-component@2.1.3': + dependencies: + '@types/markdown-it': 14.1.1 + markdown-it: 14.1.0 + + '@mdit-vue/plugin-frontmatter@2.1.3': + dependencies: + '@mdit-vue/types': 2.1.0 + '@types/markdown-it': 14.1.1 + gray-matter: 4.0.3 + markdown-it: 14.1.0 + + '@mdit-vue/plugin-headers@2.1.3': + dependencies: + '@mdit-vue/shared': 2.1.3 + '@mdit-vue/types': 2.1.0 + '@types/markdown-it': 14.1.1 + markdown-it: 14.1.0 + + '@mdit-vue/plugin-sfc@2.1.3': + dependencies: + '@mdit-vue/types': 2.1.0 + '@types/markdown-it': 14.1.1 + markdown-it: 14.1.0 + + '@mdit-vue/plugin-title@2.1.3': + dependencies: + '@mdit-vue/shared': 2.1.3 + '@mdit-vue/types': 2.1.0 + '@types/markdown-it': 14.1.1 + markdown-it: 14.1.0 + + '@mdit-vue/plugin-toc@2.1.3': + dependencies: + '@mdit-vue/shared': 2.1.3 + '@mdit-vue/types': 2.1.0 + '@types/markdown-it': 14.1.1 + markdown-it: 14.1.0 + + '@mdit-vue/shared@2.1.3': + dependencies: + '@mdit-vue/types': 2.1.0 + '@types/markdown-it': 14.1.1 + markdown-it: 14.1.0 + + '@mdit-vue/types@2.1.0': {} + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@pkgr/core@0.1.1': {} + + '@rollup/rollup-android-arm-eabi@4.19.0': + optional: true + + '@rollup/rollup-android-arm64@4.19.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.19.0': + optional: true + + '@rollup/rollup-darwin-x64@4.19.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.19.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.19.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.19.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.19.0': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.19.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.19.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.19.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.19.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.19.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.19.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.19.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.19.0': + optional: true + + '@rushstack/eslint-patch@1.10.3': {} + + '@sec-ant/readable-stream@0.4.1': {} + + '@sindresorhus/merge-streams@2.3.0': {} + + '@sindresorhus/merge-streams@4.0.0': {} + + '@types/debug@4.1.12': + dependencies: + '@types/ms': 0.7.34 + + '@types/estree@1.0.5': {} + + '@types/fs-extra@11.0.4': + dependencies: + '@types/jsonfile': 6.1.4 + '@types/node': 20.14.12 + + '@types/hash-sum@1.0.2': {} + + '@types/jsonfile@6.1.4': + dependencies: + '@types/node': 20.14.12 + + '@types/linkify-it@3.0.5': {} + + '@types/linkify-it@5.0.0': {} + + '@types/markdown-it-emoji@2.0.5': + dependencies: + '@types/markdown-it': 13.0.8 + + '@types/markdown-it-emoji@3.0.1': + dependencies: + '@types/markdown-it': 14.1.1 + + '@types/markdown-it@13.0.8': + dependencies: + '@types/linkify-it': 3.0.5 + '@types/mdurl': 1.0.5 + + '@types/markdown-it@14.1.1': + dependencies: + '@types/linkify-it': 5.0.0 + '@types/mdurl': 2.0.0 + + '@types/mdurl@1.0.5': {} + + '@types/mdurl@2.0.0': {} + + '@types/ms@0.7.34': {} + + '@types/node@17.0.45': {} + + '@types/node@20.14.12': + dependencies: + undici-types: 5.26.5 + + '@types/sax@1.2.7': + dependencies: + '@types/node': 20.14.12 + + '@types/web-bluetooth@0.0.20': {} + + '@typescript-eslint/eslint-plugin@7.17.0(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)': + dependencies: + '@eslint-community/regexpp': 4.11.0 + '@typescript-eslint/parser': 7.17.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.17.0 + '@typescript-eslint/type-utils': 7.17.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.17.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.17.0 + eslint: 8.57.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + optionalDependencies: + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.4.5)': + dependencies: + '@typescript-eslint/scope-manager': 7.17.0 + '@typescript-eslint/types': 7.17.0 + '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.17.0 + debug: 4.3.5 + eslint: 8.57.0 + optionalDependencies: + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@7.17.0': + dependencies: + '@typescript-eslint/types': 7.17.0 + '@typescript-eslint/visitor-keys': 7.17.0 + + '@typescript-eslint/type-utils@7.17.0(eslint@8.57.0)(typescript@5.4.5)': + dependencies: + '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.4.5) + '@typescript-eslint/utils': 7.17.0(eslint@8.57.0)(typescript@5.4.5) + debug: 4.3.5 + eslint: 8.57.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + optionalDependencies: + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@7.17.0': {} + + '@typescript-eslint/typescript-estree@7.17.0(typescript@5.4.5)': + dependencies: + '@typescript-eslint/types': 7.17.0 + '@typescript-eslint/visitor-keys': 7.17.0 + debug: 4.3.5 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.4.5) + optionalDependencies: + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@7.17.0(eslint@8.57.0)(typescript@5.4.5)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@typescript-eslint/scope-manager': 7.17.0 + '@typescript-eslint/types': 7.17.0 + '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.4.5) + eslint: 8.57.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/visitor-keys@7.17.0': + dependencies: + '@typescript-eslint/types': 7.17.0 + eslint-visitor-keys: 3.4.3 + + '@ungap/structured-clone@1.2.0': {} + + '@vitejs/plugin-vue@4.6.2(vite@5.0.13(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3))(vue@3.4.33(typescript@5.4.5))': + dependencies: + vite: 5.0.13(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3) + vue: 3.4.33(typescript@5.4.5) + + '@vitejs/plugin-vue@5.1.0(vite@5.0.13(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3))(vue@3.4.33(typescript@5.4.5))': + dependencies: + vite: 5.0.13(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3) + vue: 3.4.33(typescript@5.4.5) + + '@volar/language-core@1.11.1': + dependencies: + '@volar/source-map': 1.11.1 + + '@volar/language-core@2.4.0-alpha.18': + dependencies: + '@volar/source-map': 2.4.0-alpha.18 + + '@volar/language-server@2.4.0-alpha.18': + dependencies: + '@volar/language-core': 2.4.0-alpha.18 + '@volar/language-service': 2.4.0-alpha.18 + '@volar/snapshot-document': 2.4.0-alpha.18 + '@volar/typescript': 2.4.0-alpha.18 + path-browserify: 1.0.1 + request-light: 0.7.0 + vscode-languageserver: 9.0.1 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + + '@volar/language-service@2.4.0-alpha.18': + dependencies: + '@volar/language-core': 2.4.0-alpha.18 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + + '@volar/snapshot-document@2.4.0-alpha.18': + dependencies: + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.11 + + '@volar/source-map@1.11.1': + dependencies: + muggle-string: 0.3.1 + + '@volar/source-map@2.4.0-alpha.18': {} + + '@volar/typescript@1.11.1': + dependencies: + '@volar/language-core': 1.11.1 + path-browserify: 1.0.1 + + '@volar/typescript@2.4.0-alpha.18': + dependencies: + '@volar/language-core': 2.4.0-alpha.18 + path-browserify: 1.0.1 + vscode-uri: 3.0.8 + + '@vscode/emmet-helper@2.9.3': + dependencies: + emmet: 2.4.7 + jsonc-parser: 2.3.1 + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.17.5 + vscode-uri: 2.1.2 + + '@vscode/l10n@0.0.18': {} + + '@vue/compiler-core@3.4.33': + dependencies: + '@babel/parser': 7.24.8 + '@vue/shared': 3.4.33 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.0 + + '@vue/compiler-dom@3.4.33': + dependencies: + '@vue/compiler-core': 3.4.33 + '@vue/shared': 3.4.33 + + '@vue/compiler-sfc@3.4.33': + dependencies: + '@babel/parser': 7.24.8 + '@vue/compiler-core': 3.4.33 + '@vue/compiler-dom': 3.4.33 + '@vue/compiler-ssr': 3.4.33 + '@vue/shared': 3.4.33 + estree-walker: 2.0.2 + magic-string: 0.30.10 + postcss: 8.4.39 + source-map-js: 1.2.0 + + '@vue/compiler-ssr@3.4.33': + dependencies: + '@vue/compiler-dom': 3.4.33 + '@vue/shared': 3.4.33 + + '@vue/devtools-api@6.6.3': {} + + '@vue/eslint-config-prettier@9.0.0(eslint@8.57.0)(prettier@3.3.3)': + dependencies: + eslint: 8.57.0 + eslint-config-prettier: 9.1.0(eslint@8.57.0) + eslint-plugin-prettier: 5.2.1(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.3.3) + prettier: 3.3.3 + transitivePeerDependencies: + - '@types/eslint' + + '@vue/eslint-config-typescript@13.0.0(eslint-plugin-vue@9.27.0(eslint@8.57.0))(eslint@8.57.0)(typescript@5.4.5)': + dependencies: + '@typescript-eslint/eslint-plugin': 7.17.0(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.17.0(eslint@8.57.0)(typescript@5.4.5) + eslint: 8.57.0 + eslint-plugin-vue: 9.27.0(eslint@8.57.0) + vue-eslint-parser: 9.4.3(eslint@8.57.0) + optionalDependencies: + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + + '@vue/language-core@1.8.27(typescript@5.4.5)': + dependencies: + '@volar/language-core': 1.11.1 + '@volar/source-map': 1.11.1 + '@vue/compiler-dom': 3.4.33 + '@vue/shared': 3.4.33 + computeds: 0.0.1 + minimatch: 9.0.5 + muggle-string: 0.3.1 + path-browserify: 1.0.1 + vue-template-compiler: 2.7.16 + optionalDependencies: + typescript: 5.4.5 + + '@vue/language-core@2.0.28(typescript@5.4.5)': + dependencies: + '@volar/language-core': 2.4.0-alpha.18 + '@vue/compiler-dom': 3.4.33 + '@vue/shared': 3.4.33 + computeds: 0.0.1 + minimatch: 9.0.5 + muggle-string: 0.4.1 + path-browserify: 1.0.1 + vue-template-compiler: 2.7.16 + optionalDependencies: + typescript: 5.4.5 + + '@vue/language-server@2.0.28(typescript@5.4.5)': + dependencies: + '@volar/language-core': 2.4.0-alpha.18 + '@volar/language-server': 2.4.0-alpha.18 + '@vue/language-core': 2.0.28(typescript@5.4.5) + '@vue/language-service': 2.0.28(typescript@5.4.5) + '@vue/typescript-plugin': 2.0.28(typescript@5.4.5) + vscode-languageserver-protocol: 3.17.5 + vscode-uri: 3.0.8 + transitivePeerDependencies: + - typescript + + '@vue/language-service@2.0.28(typescript@5.4.5)': + dependencies: + '@volar/language-core': 2.4.0-alpha.18 + '@volar/language-service': 2.4.0-alpha.18 + '@volar/typescript': 2.4.0-alpha.18 + '@vue/compiler-dom': 3.4.33 + '@vue/language-core': 2.0.28(typescript@5.4.5) + '@vue/shared': 3.4.33 + '@vue/typescript-plugin': 2.0.28(typescript@5.4.5) + computeds: 0.0.1 + path-browserify: 1.0.1 + volar-service-css: 0.0.59(@volar/language-service@2.4.0-alpha.18) + volar-service-emmet: 0.0.59(@volar/language-service@2.4.0-alpha.18) + volar-service-html: 0.0.59(@volar/language-service@2.4.0-alpha.18) + volar-service-json: 0.0.59(@volar/language-service@2.4.0-alpha.18) + volar-service-pug: 0.0.59 + volar-service-pug-beautify: 0.0.59(@volar/language-service@2.4.0-alpha.18) + volar-service-typescript: 0.0.59(@volar/language-service@2.4.0-alpha.18) + volar-service-typescript-twoslash-queries: 0.0.59(@volar/language-service@2.4.0-alpha.18) + vscode-html-languageservice: 5.3.0 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + transitivePeerDependencies: + - typescript + + '@vue/reactivity@3.4.33': + dependencies: + '@vue/shared': 3.4.33 + + '@vue/runtime-core@3.4.33': + dependencies: + '@vue/reactivity': 3.4.33 + '@vue/shared': 3.4.33 + + '@vue/runtime-dom@3.4.33': + dependencies: + '@vue/reactivity': 3.4.33 + '@vue/runtime-core': 3.4.33 + '@vue/shared': 3.4.33 + csstype: 3.1.3 + + '@vue/server-renderer@3.4.33(vue@3.4.33(typescript@5.4.5))': + dependencies: + '@vue/compiler-ssr': 3.4.33 + '@vue/shared': 3.4.33 + vue: 3.4.33(typescript@5.4.5) + + '@vue/shared@3.4.33': {} + + '@vue/tsconfig@0.5.1': {} + + '@vue/typescript-plugin@2.0.28(typescript@5.4.5)': + dependencies: + '@volar/typescript': 2.4.0-alpha.18 + '@vue/language-core': 2.0.28(typescript@5.4.5) + '@vue/shared': 3.4.33 + transitivePeerDependencies: + - typescript + + '@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5)': + dependencies: + '@vitejs/plugin-vue': 5.1.0(vite@5.0.13(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3))(vue@3.4.33(typescript@5.4.5)) + '@vuepress/client': 2.0.0-rc.7(typescript@5.4.5) + '@vuepress/core': 2.0.0-rc.7(typescript@5.4.5) + '@vuepress/shared': 2.0.0-rc.7 + '@vuepress/utils': 2.0.0-rc.7 + autoprefixer: 10.4.19(postcss@8.4.39) + connect-history-api-fallback: 2.0.0 + postcss: 8.4.39 + postcss-load-config: 5.1.0(postcss@8.4.39) + rollup: 4.19.0 + vite: 5.0.13(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3) + vue: 3.4.33(typescript@5.4.5) + vue-router: 4.4.0(vue@3.4.33(typescript@5.4.5)) + transitivePeerDependencies: + - '@types/node' + - '@vue/composition-api' + - jiti + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + - tsx + - typescript + + '@vuepress/cli@2.0.0-rc.14(typescript@5.4.5)': + dependencies: + '@vuepress/core': 2.0.0-rc.14(typescript@5.4.5) + '@vuepress/shared': 2.0.0-rc.14 + '@vuepress/utils': 2.0.0-rc.14 + cac: 6.7.14 + chokidar: 3.6.0 + envinfo: 7.13.0 + esbuild: 0.21.5 + transitivePeerDependencies: + - supports-color + - typescript + + '@vuepress/client@2.0.0-rc.14(typescript@5.4.5)': + dependencies: + '@vue/devtools-api': 6.6.3 + '@vuepress/shared': 2.0.0-rc.14 + vue: 3.4.33(typescript@5.4.5) + vue-router: 4.4.0(vue@3.4.33(typescript@5.4.5)) + transitivePeerDependencies: + - typescript + + '@vuepress/client@2.0.0-rc.7(typescript@5.4.5)': + dependencies: + '@vue/devtools-api': 6.6.3 + '@vuepress/shared': 2.0.0-rc.7 + '@vueuse/core': 10.11.0(vue@3.4.33(typescript@5.4.5)) + vue: 3.4.33(typescript@5.4.5) + vue-router: 4.4.0(vue@3.4.33(typescript@5.4.5)) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + + '@vuepress/core@2.0.0-rc.14(typescript@5.4.5)': + dependencies: + '@vuepress/client': 2.0.0-rc.14(typescript@5.4.5) + '@vuepress/markdown': 2.0.0-rc.14 + '@vuepress/shared': 2.0.0-rc.14 + '@vuepress/utils': 2.0.0-rc.14 + vue: 3.4.33(typescript@5.4.5) + transitivePeerDependencies: + - supports-color + - typescript + + '@vuepress/core@2.0.0-rc.7(typescript@5.4.5)': + dependencies: + '@vuepress/client': 2.0.0-rc.7(typescript@5.4.5) + '@vuepress/markdown': 2.0.0-rc.7 + '@vuepress/shared': 2.0.0-rc.7 + '@vuepress/utils': 2.0.0-rc.7 + vue: 3.4.33(typescript@5.4.5) + transitivePeerDependencies: + - '@vue/composition-api' + - supports-color + - typescript + + '@vuepress/helper@2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)))': + dependencies: + '@vue/shared': 3.4.33 + cheerio: 1.0.0-rc.12 + fflate: 0.8.2 + gray-matter: 4.0.3 + vue: 3.4.33(typescript@5.4.5) + vuepress: 2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)) + transitivePeerDependencies: + - typescript + + '@vuepress/helper@2.0.0-rc.7(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)))': + dependencies: + '@vue/shared': 3.4.33 + cheerio: 1.0.0-rc.12 + fflate: 0.8.2 + gray-matter: 4.0.3 + vue: 3.4.33(typescript@5.4.5) + vuepress: 2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)) + transitivePeerDependencies: + - typescript + + '@vuepress/highlighter-helper@2.0.0-rc.39(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)))': + dependencies: + vuepress: 2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)) + + '@vuepress/markdown@2.0.0-rc.14': + dependencies: + '@mdit-vue/plugin-component': 2.1.3 + '@mdit-vue/plugin-frontmatter': 2.1.3 + '@mdit-vue/plugin-headers': 2.1.3 + '@mdit-vue/plugin-sfc': 2.1.3 + '@mdit-vue/plugin-title': 2.1.3 + '@mdit-vue/plugin-toc': 2.1.3 + '@mdit-vue/shared': 2.1.3 + '@mdit-vue/types': 2.1.0 + '@types/markdown-it': 14.1.1 + '@types/markdown-it-emoji': 3.0.1 + '@vuepress/shared': 2.0.0-rc.14 + '@vuepress/utils': 2.0.0-rc.14 + markdown-it: 14.1.0 + markdown-it-anchor: 9.0.1(@types/markdown-it@14.1.1)(markdown-it@14.1.0) + markdown-it-emoji: 3.0.0 + mdurl: 2.0.0 + transitivePeerDependencies: + - supports-color + + '@vuepress/markdown@2.0.0-rc.7': + dependencies: + '@mdit-vue/plugin-component': 2.1.3 + '@mdit-vue/plugin-frontmatter': 2.1.3 + '@mdit-vue/plugin-headers': 2.1.3 + '@mdit-vue/plugin-sfc': 2.1.3 + '@mdit-vue/plugin-title': 2.1.3 + '@mdit-vue/plugin-toc': 2.1.3 + '@mdit-vue/shared': 2.1.3 + '@mdit-vue/types': 2.1.0 + '@types/markdown-it': 13.0.8 + '@types/markdown-it-emoji': 2.0.5 + '@vuepress/shared': 2.0.0-rc.7 + '@vuepress/utils': 2.0.0-rc.7 + markdown-it: 14.1.0 + markdown-it-anchor: 8.6.7(@types/markdown-it@13.0.8)(markdown-it@14.1.0) + markdown-it-emoji: 3.0.0 + mdurl: 2.0.0 + transitivePeerDependencies: + - supports-color + + '@vuepress/plugin-active-header-links@2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)))': + dependencies: + '@vueuse/core': 10.11.0(vue@3.4.33(typescript@5.4.5)) + vue: 3.4.33(typescript@5.4.5) + vuepress: 2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + + '@vuepress/plugin-back-to-top@2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)))': + dependencies: + '@vuepress/helper': 2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5))) + '@vueuse/core': 10.11.0(vue@3.4.33(typescript@5.4.5)) + vue: 3.4.33(typescript@5.4.5) + vuepress: 2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + + '@vuepress/plugin-blog@2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)))': + dependencies: + '@vuepress/helper': 2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5))) + chokidar: 3.6.0 + vue: 3.4.33(typescript@5.4.5) + vuepress: 2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)) + transitivePeerDependencies: + - typescript + + '@vuepress/plugin-copy-code@2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)))': + dependencies: + '@vuepress/helper': 2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5))) + '@vueuse/core': 10.11.0(vue@3.4.33(typescript@5.4.5)) + vue: 3.4.33(typescript@5.4.5) + vuepress: 2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + + '@vuepress/plugin-git@2.0.0-rc.38(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)))': + dependencies: + execa: 9.3.0 + vuepress: 2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)) + + '@vuepress/plugin-links-check@2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)))': + dependencies: + '@vuepress/helper': 2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5))) + vuepress: 2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)) + transitivePeerDependencies: + - typescript + + '@vuepress/plugin-markdown-container@2.0.0-rc.37(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)))': + dependencies: + '@types/markdown-it': 14.1.1 + markdown-it-container: 4.0.0 + vuepress: 2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)) + + '@vuepress/plugin-medium-zoom@2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)))': + dependencies: + '@vuepress/helper': 2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5))) + medium-zoom: 1.1.0 + vue: 3.4.33(typescript@5.4.5) + vuepress: 2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)) + transitivePeerDependencies: + - typescript + + '@vuepress/plugin-nprogress@2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)))': + dependencies: + vue: 3.4.33(typescript@5.4.5) + vuepress: 2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)) + transitivePeerDependencies: + - typescript + + '@vuepress/plugin-palette@2.0.0-rc.37(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)))': + dependencies: + chokidar: 3.6.0 + vuepress: 2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)) + + '@vuepress/plugin-prismjs@2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)))': + dependencies: + '@vuepress/helper': 2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5))) + '@vuepress/highlighter-helper': 2.0.0-rc.39(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5))) + prismjs: 1.29.0 + vuepress: 2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)) + transitivePeerDependencies: + - typescript + + '@vuepress/plugin-redirect@2.0.0-rc.8(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)))': + dependencies: + '@vuepress/helper': 2.0.0-rc.7(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5))) + '@vueuse/core': 10.11.0(vue@3.4.33(typescript@5.4.5)) + cac: 6.7.14 + vue: 3.4.33(typescript@5.4.5) + vue-router: 4.4.0(vue@3.4.33(typescript@5.4.5)) + vuepress: 2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + + '@vuepress/plugin-seo@2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)))': + dependencies: + '@vuepress/helper': 2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5))) + vuepress: 2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)) + transitivePeerDependencies: + - typescript + + '@vuepress/plugin-sitemap@2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)))': + dependencies: + '@vuepress/helper': 2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5))) + sitemap: 8.0.0 + vuepress: 2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)) + transitivePeerDependencies: + - typescript + + '@vuepress/plugin-theme-data@2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)))': + dependencies: + '@vue/devtools-api': 6.6.3 + vue: 3.4.33(typescript@5.4.5) + vuepress: 2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)) + transitivePeerDependencies: + - typescript + + '@vuepress/shared@2.0.0-rc.14': + dependencies: + '@mdit-vue/types': 2.1.0 + + '@vuepress/shared@2.0.0-rc.7': + dependencies: + '@mdit-vue/types': 2.1.0 + + '@vuepress/theme-default@2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)))': + dependencies: + '@vuepress/helper': 2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5))) + '@vuepress/plugin-active-header-links': 2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5))) + '@vuepress/plugin-back-to-top': 2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5))) + '@vuepress/plugin-copy-code': 2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5))) + '@vuepress/plugin-git': 2.0.0-rc.38(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5))) + '@vuepress/plugin-links-check': 2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5))) + '@vuepress/plugin-markdown-container': 2.0.0-rc.37(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5))) + '@vuepress/plugin-medium-zoom': 2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5))) + '@vuepress/plugin-nprogress': 2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5))) + '@vuepress/plugin-palette': 2.0.0-rc.37(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5))) + '@vuepress/plugin-prismjs': 2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5))) + '@vuepress/plugin-seo': 2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5))) + '@vuepress/plugin-sitemap': 2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5))) + '@vuepress/plugin-theme-data': 2.0.0-rc.39(typescript@5.4.5)(vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5))) + '@vueuse/core': 10.11.0(vue@3.4.33(typescript@5.4.5)) + sass: 1.77.8 + vue: 3.4.33(typescript@5.4.5) + vuepress: 2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + + '@vuepress/utils@2.0.0-rc.14': + dependencies: + '@types/debug': 4.1.12 + '@types/fs-extra': 11.0.4 + '@types/hash-sum': 1.0.2 + '@vuepress/shared': 2.0.0-rc.14 + debug: 4.3.5 + fs-extra: 11.2.0 + globby: 14.0.2 + hash-sum: 2.0.0 + ora: 8.0.1 + picocolors: 1.0.1 + upath: 2.0.1 + transitivePeerDependencies: + - supports-color + + '@vuepress/utils@2.0.0-rc.7': + dependencies: + '@types/debug': 4.1.12 + '@types/fs-extra': 11.0.4 + '@types/hash-sum': 1.0.2 + '@vuepress/shared': 2.0.0-rc.7 + debug: 4.3.5 + fs-extra: 11.2.0 + globby: 14.0.2 + hash-sum: 2.0.0 + ora: 8.0.1 + picocolors: 1.0.1 + upath: 2.0.1 + transitivePeerDependencies: + - supports-color + + '@vueuse/core@10.11.0(vue@3.4.33(typescript@5.4.5))': + dependencies: + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.11.0 + '@vueuse/shared': 10.11.0(vue@3.4.33(typescript@5.4.5)) + vue-demi: 0.14.9(vue@3.4.33(typescript@5.4.5)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@vueuse/metadata@10.11.0': {} + + '@vueuse/shared@10.11.0(vue@3.4.33(typescript@5.4.5))': + dependencies: + vue-demi: 0.14.9(vue@3.4.33(typescript@5.4.5)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + acorn-jsx@5.3.2(acorn@8.12.1): + dependencies: + acorn: 8.12.1 + + acorn@7.4.1: {} + + acorn@8.12.1: {} + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ansi-regex@5.0.1: {} + + ansi-regex@6.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + arg@5.0.2: {} + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + array-union@2.1.0: {} + + autoprefixer@10.4.19(postcss@8.4.39): + dependencies: + browserslist: 4.23.2 + caniuse-lite: 1.0.30001643 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.0.1 + postcss: 8.4.39 + postcss-value-parser: 4.2.0 + + balanced-match@1.0.2: {} + + binary-extensions@2.3.0: {} + + boolbase@1.0.0: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.23.2: + dependencies: + caniuse-lite: 1.0.30001643 + electron-to-chromium: 1.5.0 + node-releases: 2.0.18 + update-browserslist-db: 1.1.0(browserslist@4.23.2) + + buffer-from@1.1.2: + optional: true + + cac@6.7.14: {} + + call-bind@1.0.7: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + + callsites@3.1.0: {} + + caniuse-lite@1.0.30001643: {} + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.3.0: {} + + character-parser@2.2.0: + dependencies: + is-regex: 1.1.4 + + cheerio-select@2.1.0: + dependencies: + boolbase: 1.0.0 + css-select: 5.1.0 + css-what: 6.1.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + + cheerio@1.0.0-rc.12: + dependencies: + cheerio-select: 2.1.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + domutils: 3.1.0 + htmlparser2: 8.0.2 + parse5: 7.1.2 + parse5-htmlparser2-tree-adapter: 7.0.0 + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + cli-cursor@4.0.0: + dependencies: + restore-cursor: 4.0.0 + + cli-spinners@2.9.2: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + commander@2.20.3: + optional: true + + computeds@0.0.1: {} + + concat-map@0.0.1: {} + + connect-history-api-fallback@2.0.0: {} + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + css-select@5.1.0: + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.1.0 + nth-check: 2.1.1 + + css-what@6.1.0: {} + + cssesc@3.0.0: {} + + csstype@3.1.3: {} + + de-indent@1.0.2: {} + + debug@4.3.5: + dependencies: + ms: 2.1.2 + + deep-is@0.1.4: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + domelementtype@2.3.0: {} + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@3.1.0: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + + electron-to-chromium@1.5.0: {} + + emmet@2.4.7: + dependencies: + '@emmetio/abbreviation': 2.3.3 + '@emmetio/css-abbreviation': 2.1.8 + + emoji-regex@10.3.0: {} + + entities@4.5.0: {} + + envinfo@7.13.0: {} + + es-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 + + es-errors@1.3.0: {} + + esbuild@0.19.12: + optionalDependencies: + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 + + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + + escalade@3.1.2: {} + + escape-string-regexp@4.0.0: {} + + eslint-config-prettier@9.1.0(eslint@8.57.0): + dependencies: + eslint: 8.57.0 + + eslint-plugin-cypress@3.3.0(eslint@8.57.0): + dependencies: + eslint: 8.57.0 + globals: 13.24.0 + + eslint-plugin-prettier@5.2.1(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.3.3): + dependencies: + eslint: 8.57.0 + prettier: 3.3.3 + prettier-linter-helpers: 1.0.0 + synckit: 0.9.1 + optionalDependencies: + eslint-config-prettier: 9.1.0(eslint@8.57.0) + + eslint-plugin-vue@9.27.0(eslint@8.57.0): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + eslint: 8.57.0 + globals: 13.24.0 + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.1.1 + semver: 7.6.3 + vue-eslint-parser: 9.4.3(eslint@8.57.0) + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - supports-color + + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint@8.57.0: + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.11.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.5 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.1 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + espree@9.6.1: + dependencies: + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) + eslint-visitor-keys: 3.4.3 + + esprima@4.0.1: {} + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + estree-walker@2.0.2: {} + + esutils@2.0.3: {} + + execa@9.3.0: + dependencies: + '@sindresorhus/merge-streams': 4.0.0 + cross-spawn: 7.0.3 + figures: 6.1.0 + get-stream: 9.0.1 + human-signals: 7.0.0 + is-plain-obj: 4.1.0 + is-stream: 4.0.1 + npm-run-path: 5.3.0 + pretty-ms: 9.0.0 + signal-exit: 4.1.0 + strip-final-newline: 4.0.0 + yoctocolors: 2.1.1 + + extend-shallow@2.0.1: + dependencies: + is-extendable: 0.1.1 + + fast-deep-equal@3.1.3: {} + + fast-diff@1.3.0: {} + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.7 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + + fflate@0.8.2: {} + + figures@6.1.0: + dependencies: + is-unicode-supported: 2.0.0 + + file-entry-cache@6.0.1: + dependencies: + flat-cache: 3.2.0 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@3.2.0: + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + rimraf: 3.0.2 + + flatted@3.3.1: {} + + fraction.js@4.3.7: {} + + fs-extra@11.2.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + get-east-asian-width@1.2.0: {} + + get-intrinsic@1.2.4: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + + get-stream@9.0.1: + dependencies: + '@sec-ant/readable-stream': 0.4.1 + is-stream: 4.0.1 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 3.0.0 + + globby@14.0.2: + dependencies: + '@sindresorhus/merge-streams': 2.3.0 + fast-glob: 3.3.2 + ignore: 5.3.1 + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 + + gopd@1.0.1: + dependencies: + get-intrinsic: 1.2.4 + + graceful-fs@4.2.11: {} + + graphemer@1.4.0: {} + + gray-matter@4.0.3: + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.0 + + has-proto@1.0.3: {} + + has-symbols@1.0.3: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.0.3 + + hash-sum@2.0.0: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + he@1.2.0: {} + + htmlparser2@8.0.2: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + entities: 4.5.0 + + human-signals@7.0.0: {} + + ignore@5.3.1: {} + + immutable@4.3.7: {} + + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + imurmurhash@0.1.4: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-expression@4.0.0: + dependencies: + acorn: 7.4.1 + object-assign: 4.1.1 + + is-extendable@0.1.1: {} + + is-extglob@2.1.1: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-interactive@2.0.0: {} + + is-number@7.0.0: {} + + is-path-inside@3.0.3: {} + + is-plain-obj@4.1.0: {} + + is-regex@1.1.4: + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + + is-stream@4.0.1: {} + + is-unicode-supported@1.3.0: {} + + is-unicode-supported@2.0.0: {} + + isexe@2.0.0: {} + + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + json-buffer@3.0.1: {} + + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + jsonc-parser@2.3.1: {} + + jsonc-parser@3.3.1: {} + + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kind-of@6.0.3: {} + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lilconfig@3.1.2: {} + + linkify-it@5.0.0: + dependencies: + uc.micro: 2.1.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.merge@4.6.2: {} + + lodash@4.17.21: {} + + log-symbols@6.0.0: + dependencies: + chalk: 5.3.0 + is-unicode-supported: 1.3.0 + + magic-string@0.30.10: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + markdown-it-anchor@8.6.7(@types/markdown-it@13.0.8)(markdown-it@14.1.0): + dependencies: + '@types/markdown-it': 13.0.8 + markdown-it: 14.1.0 + + markdown-it-anchor@9.0.1(@types/markdown-it@14.1.1)(markdown-it@14.1.0): + dependencies: + '@types/markdown-it': 14.1.1 + markdown-it: 14.1.0 + + markdown-it-container@4.0.0: {} + + markdown-it-emoji@3.0.0: {} + + markdown-it@14.1.0: + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + + mdurl@2.0.0: {} + + medium-zoom@1.1.0: {} + + merge2@1.4.1: {} + + micromatch@4.0.7: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mimic-fn@2.1.0: {} + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + ms@2.1.2: {} + + muggle-string@0.3.1: {} + + muggle-string@0.4.1: {} + + nanoid@3.3.7: {} + + natural-compare@1.4.0: {} + + node-releases@2.0.18: {} + + normalize-path@3.0.0: {} + + normalize-range@0.1.2: {} + + npm-run-path@5.3.0: + dependencies: + path-key: 4.0.0 + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + object-assign@4.1.1: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + ora@8.0.1: + dependencies: + chalk: 5.3.0 + cli-cursor: 4.0.0 + cli-spinners: 2.9.2 + is-interactive: 2.0.0 + is-unicode-supported: 2.0.0 + log-symbols: 6.0.0 + stdin-discarder: 0.2.2 + string-width: 7.2.0 + strip-ansi: 7.1.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-ms@4.0.0: {} + + parse5-htmlparser2-tree-adapter@7.0.0: + dependencies: + domhandler: 5.0.3 + parse5: 7.1.2 + + parse5@7.1.2: + dependencies: + entities: 4.5.0 + + path-browserify@1.0.1: {} + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-key@4.0.0: {} + + path-type@4.0.0: {} + + path-type@5.0.0: {} + + picocolors@1.0.1: {} + + picomatch@2.3.1: {} + + postcss-load-config@5.1.0(postcss@8.4.39): + dependencies: + lilconfig: 3.1.2 + yaml: 2.4.5 + optionalDependencies: + postcss: 8.4.39 + + postcss-selector-parser@6.1.1: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-value-parser@4.2.0: {} + + postcss@8.4.39: + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.1 + source-map-js: 1.2.0 + + prelude-ls@1.2.1: {} + + prettier-linter-helpers@1.0.0: + dependencies: + fast-diff: 1.3.0 + + prettier@3.3.3: {} + + pretty-ms@9.0.0: + dependencies: + parse-ms: 4.0.0 + + prismjs@1.29.0: {} + + pug-error@2.1.0: {} + + pug-lexer@5.0.1: + dependencies: + character-parser: 2.2.0 + is-expression: 4.0.0 + pug-error: 2.1.0 + + pug-parser@6.0.0: + dependencies: + pug-error: 2.1.0 + token-stream: 1.0.0 + + punycode.js@2.3.1: {} + + punycode@2.3.1: {} + + queue-microtask@1.2.3: {} + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + request-light@0.7.0: {} + + resolve-from@4.0.0: {} + + restore-cursor@4.0.0: + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + + reusify@1.0.4: {} + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + rollup@4.19.0: + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.19.0 + '@rollup/rollup-android-arm64': 4.19.0 + '@rollup/rollup-darwin-arm64': 4.19.0 + '@rollup/rollup-darwin-x64': 4.19.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.19.0 + '@rollup/rollup-linux-arm-musleabihf': 4.19.0 + '@rollup/rollup-linux-arm64-gnu': 4.19.0 + '@rollup/rollup-linux-arm64-musl': 4.19.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.19.0 + '@rollup/rollup-linux-riscv64-gnu': 4.19.0 + '@rollup/rollup-linux-s390x-gnu': 4.19.0 + '@rollup/rollup-linux-x64-gnu': 4.19.0 + '@rollup/rollup-linux-x64-musl': 4.19.0 + '@rollup/rollup-win32-arm64-msvc': 4.19.0 + '@rollup/rollup-win32-ia32-msvc': 4.19.0 + '@rollup/rollup-win32-x64-msvc': 4.19.0 + fsevents: 2.3.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + sass@1.77.8: + dependencies: + chokidar: 3.6.0 + immutable: 4.3.7 + source-map-js: 1.2.0 + + sax@1.4.1: {} + + section-matter@1.0.0: + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + + semver@7.6.3: {} + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + sitemap@8.0.0: + dependencies: + '@types/node': 17.0.45 + '@types/sax': 1.2.7 + arg: 5.0.2 + sax: 1.4.1 + + slash@3.0.0: {} + + slash@5.1.0: {} + + source-map-js@1.2.0: {} + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + optional: true + + source-map@0.6.1: + optional: true + + sprintf-js@1.0.3: {} + + stdin-discarder@0.2.2: {} + + string-width@7.2.0: + dependencies: + emoji-regex: 10.3.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.0.1 + + strip-bom-string@1.0.0: {} + + strip-final-newline@4.0.0: {} + + strip-json-comments@3.1.1: {} + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + synckit@0.9.1: + dependencies: + '@pkgr/core': 0.1.1 + tslib: 2.6.3 + + terser@5.31.3: + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.12.1 + commander: 2.20.3 + source-map-support: 0.5.21 + optional: true + + text-table@0.2.0: {} + + to-fast-properties@2.0.0: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + token-stream@1.0.0: {} + + ts-api-utils@1.3.0(typescript@5.4.5): + dependencies: + typescript: 5.4.5 + + tslib@2.6.3: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-fest@0.20.2: {} + + typescript-auto-import-cache@0.3.3: + dependencies: + semver: 7.6.3 + + typescript@5.4.5: {} + + uc.micro@2.1.0: {} + + undici-types@5.26.5: {} + + unicorn-magic@0.1.0: {} + + universalify@2.0.1: {} + + upath@2.0.1: {} + + update-browserslist-db@1.1.0(browserslist@4.23.2): + dependencies: + browserslist: 4.23.2 + escalade: 3.1.2 + picocolors: 1.0.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + util-deprecate@1.0.2: {} + + vite@5.0.13(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3): + dependencies: + esbuild: 0.19.12 + postcss: 8.4.39 + rollup: 4.19.0 + optionalDependencies: + '@types/node': 20.14.12 + fsevents: 2.3.3 + sass: 1.77.8 + terser: 5.31.3 + + volar-service-css@0.0.59(@volar/language-service@2.4.0-alpha.18): + dependencies: + vscode-css-languageservice: 6.3.0 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.0-alpha.18 + + volar-service-emmet@0.0.59(@volar/language-service@2.4.0-alpha.18): + dependencies: + '@emmetio/css-parser': 0.4.0 + '@emmetio/html-matcher': 1.3.0 + '@vscode/emmet-helper': 2.9.3 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.0-alpha.18 + + volar-service-html@0.0.59(@volar/language-service@2.4.0-alpha.18): + dependencies: + vscode-html-languageservice: 5.3.0 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.0-alpha.18 + + volar-service-json@0.0.59(@volar/language-service@2.4.0-alpha.18): + dependencies: + vscode-json-languageservice: 5.4.0 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.0-alpha.18 + + volar-service-pug-beautify@0.0.59(@volar/language-service@2.4.0-alpha.18): + dependencies: + '@johnsoncodehk/pug-beautify': 0.2.2 + optionalDependencies: + '@volar/language-service': 2.4.0-alpha.18 + + volar-service-pug@0.0.59: + dependencies: + '@volar/language-service': 2.4.0-alpha.18 + muggle-string: 0.4.1 + pug-lexer: 5.0.1 + pug-parser: 6.0.0 + volar-service-html: 0.0.59(@volar/language-service@2.4.0-alpha.18) + vscode-html-languageservice: 5.3.0 + vscode-languageserver-textdocument: 1.0.11 + + volar-service-typescript-twoslash-queries@0.0.59(@volar/language-service@2.4.0-alpha.18): + dependencies: + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.0-alpha.18 + + volar-service-typescript@0.0.59(@volar/language-service@2.4.0-alpha.18): + dependencies: + path-browserify: 1.0.1 + semver: 7.6.3 + typescript-auto-import-cache: 0.3.3 + vscode-languageserver-textdocument: 1.0.11 + vscode-nls: 5.2.0 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.0-alpha.18 + + vscode-css-languageservice@6.3.0: + dependencies: + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 + + vscode-html-languageservice@5.3.0: + dependencies: + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 + + vscode-json-languageservice@5.4.0: + dependencies: + '@vscode/l10n': 0.0.18 + jsonc-parser: 3.3.1 + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 + + vscode-jsonrpc@8.2.0: {} + + vscode-languageserver-protocol@3.17.5: + dependencies: + vscode-jsonrpc: 8.2.0 + vscode-languageserver-types: 3.17.5 + + vscode-languageserver-textdocument@1.0.11: {} + + vscode-languageserver-types@3.17.5: {} + + vscode-languageserver@9.0.1: + dependencies: + vscode-languageserver-protocol: 3.17.5 + + vscode-nls@5.2.0: {} + + vscode-uri@2.1.2: {} + + vscode-uri@3.0.8: {} + + vue-demi@0.14.9(vue@3.4.33(typescript@5.4.5)): + dependencies: + vue: 3.4.33(typescript@5.4.5) + + vue-eslint-parser@9.4.3(eslint@8.57.0): + dependencies: + debug: 4.3.5 + eslint: 8.57.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.6.0 + lodash: 4.17.21 + semver: 7.6.3 + transitivePeerDependencies: + - supports-color + + vue-router@4.4.0(vue@3.4.33(typescript@5.4.5)): + dependencies: + '@vue/devtools-api': 6.6.3 + vue: 3.4.33(typescript@5.4.5) + + vue-template-compiler@2.7.16: + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + + vue-tsc@1.8.27(typescript@5.4.5): + dependencies: + '@volar/typescript': 1.11.1 + '@vue/language-core': 1.8.27(typescript@5.4.5) + semver: 7.6.3 + typescript: 5.4.5 + + vue@3.4.33(typescript@5.4.5): + dependencies: + '@vue/compiler-dom': 3.4.33 + '@vue/compiler-sfc': 3.4.33 + '@vue/runtime-dom': 3.4.33 + '@vue/server-renderer': 3.4.33(vue@3.4.33(typescript@5.4.5)) + '@vue/shared': 3.4.33 + optionalDependencies: + typescript: 5.4.5 + + vuepress@2.0.0-rc.14(@vuepress/bundler-vite@2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5))(typescript@5.4.5)(vue@3.4.33(typescript@5.4.5)): + dependencies: + '@vuepress/cli': 2.0.0-rc.14(typescript@5.4.5) + '@vuepress/client': 2.0.0-rc.14(typescript@5.4.5) + '@vuepress/core': 2.0.0-rc.14(typescript@5.4.5) + '@vuepress/markdown': 2.0.0-rc.14 + '@vuepress/shared': 2.0.0-rc.14 + '@vuepress/utils': 2.0.0-rc.14 + vue: 3.4.33(typescript@5.4.5) + optionalDependencies: + '@vuepress/bundler-vite': 2.0.0-rc.7(@types/node@20.14.12)(sass@1.77.8)(terser@5.31.3)(typescript@5.4.5) + transitivePeerDependencies: + - supports-color + - typescript + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + word-wrap@1.2.5: {} + + wrappy@1.0.2: {} + + xml-name-validator@4.0.0: {} + + yaml@2.4.5: {} + + yocto-queue@0.1.0: {} + + yoctocolors@2.1.1: {} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..43aab21 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "@vue/tsconfig/tsconfig.dom.json", + "include": ["env.d.ts", "docs/**/*", "docs/**/*.vue"], + "compilerOptions": { + "composite": true, + "baseUrl": ".", + "paths": { + "@/*": ["./docs/*"] + } + } +}