├── .gitignore ├── .prettierrc ├── .vitepress ├── config.ts ├── genFeed.ts └── theme │ ├── Article.vue │ ├── Author.vue │ ├── Date.vue │ ├── Home.vue │ ├── Layout.vue │ ├── NotFound.vue │ ├── index.ts │ ├── posts.data.ts │ └── style.css ├── index.md ├── package.json ├── pnpm-lock.yaml ├── postcss.config.js ├── posts ├── 2022-year-in-review.md ├── hello-2021.md ├── images │ ├── props-destructure-inlay-hint.png │ └── template-ref.png ├── on-migration.md ├── vitepress-1.0.md ├── volar-1.0.md ├── volar-a-new-beginning.md ├── vue-2-7-beta.md ├── vue-2-7-naruto.md ├── vue-2-eol.md ├── vue-3-2.md ├── vue-3-3.md ├── vue-3-4.md ├── vue-3-5.md ├── vue-3-as-the-new-default.md └── vue-3-one-piece.md ├── public ├── bench.png ├── compare.png ├── favicon.ico └── logo.svg ├── tsconfig.json └── vercel.json /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | .vitepress/cache 4 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | semi: false 2 | singleQuote: true 3 | printWidth: 80 4 | trailingComma: none 5 | -------------------------------------------------------------------------------- /.vitepress/config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vitepress' 2 | import { genFeed } from './genFeed.js' 3 | 4 | export default defineConfig({ 5 | title: 'The Vue Point', 6 | description: 'The official blog for the Vue.js project', 7 | cleanUrls: true, 8 | head: [ 9 | ['meta', { name: 'twitter:site', content: '@vuejs' }], 10 | ['meta', { name: 'twitter:card', content: 'summary' }], 11 | [ 12 | 'meta', 13 | { 14 | name: 'twitter:image', 15 | content: 'https://vuejs.org/images/logo.png' 16 | } 17 | ], 18 | [ 19 | 'link', 20 | { 21 | rel: 'icon', 22 | type: 'image/x-icon', 23 | href: '/favicon.ico' 24 | } 25 | ], 26 | [ 27 | 'script', 28 | { 29 | src: 'https://cdn.usefathom.com/script.js', 30 | 'data-site': 'NYHGSGQV', 31 | 'data-spa': 'auto', 32 | defer: '' 33 | } 34 | ] 35 | ], 36 | buildEnd: genFeed 37 | }) 38 | -------------------------------------------------------------------------------- /.vitepress/genFeed.ts: -------------------------------------------------------------------------------- 1 | import path from 'path' 2 | import { writeFileSync } from 'fs' 3 | import { Feed } from 'feed' 4 | import { createContentLoader, type SiteConfig } from 'vitepress' 5 | 6 | const baseUrl = `https://blog.vuejs.org` 7 | 8 | export async function genFeed(config: SiteConfig) { 9 | const feed = new Feed({ 10 | title: 'The Vue Point', 11 | description: 'The official blog for the Vue.js project', 12 | id: baseUrl, 13 | link: baseUrl, 14 | language: 'en', 15 | image: 'https://vuejs.org/images/logo.png', 16 | favicon: `${baseUrl}/favicon.ico`, 17 | copyright: 18 | 'Copyright (c) 2021-present, Yuxi (Evan) You and blog contributors' 19 | }) 20 | 21 | const posts = await createContentLoader('posts/*.md', { 22 | excerpt: true, 23 | render: true 24 | }).load() 25 | 26 | posts.sort( 27 | (a, b) => 28 | +new Date(b.frontmatter.date as string) - 29 | +new Date(a.frontmatter.date as string) 30 | ) 31 | 32 | for (const { url, excerpt, frontmatter, html } of posts) { 33 | feed.addItem({ 34 | title: frontmatter.title, 35 | id: `${baseUrl}${url}`, 36 | link: `${baseUrl}${url}`, 37 | description: excerpt, 38 | content: html?.replaceAll('​', ''), 39 | author: [ 40 | { 41 | name: frontmatter.author, 42 | link: frontmatter.twitter 43 | ? `https://twitter.com/${frontmatter.twitter}` 44 | : undefined 45 | } 46 | ], 47 | date: frontmatter.date 48 | }) 49 | } 50 | 51 | writeFileSync(path.join(config.outDir, 'feed.rss'), feed.rss2()) 52 | } 53 | -------------------------------------------------------------------------------- /.vitepress/theme/Article.vue: -------------------------------------------------------------------------------- 1 | 21 | 22 | 74 | -------------------------------------------------------------------------------- /.vitepress/theme/Author.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 46 | -------------------------------------------------------------------------------- /.vitepress/theme/Date.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 19 | -------------------------------------------------------------------------------- /.vitepress/theme/Home.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 49 | -------------------------------------------------------------------------------- /.vitepress/theme/Layout.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 59 | -------------------------------------------------------------------------------- /.vitepress/theme/NotFound.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /.vitepress/theme/index.ts: -------------------------------------------------------------------------------- 1 | import './style.css' 2 | import Layout from './Layout.vue' 3 | 4 | export default { 5 | Layout 6 | } 7 | -------------------------------------------------------------------------------- /.vitepress/theme/posts.data.ts: -------------------------------------------------------------------------------- 1 | import { createContentLoader } from 'vitepress' 2 | 3 | interface Post { 4 | title: string 5 | url: string 6 | date: { 7 | time: number 8 | string: string 9 | } 10 | excerpt: string | undefined 11 | } 12 | 13 | declare const data: Post[] 14 | export { data } 15 | 16 | export default createContentLoader('posts/*.md', { 17 | excerpt: true, 18 | transform(raw): Post[] { 19 | return raw 20 | .map(({ url, frontmatter, excerpt }) => ({ 21 | title: frontmatter.title, 22 | url, 23 | excerpt, 24 | date: formatDate(frontmatter.date) 25 | })) 26 | .sort((a, b) => b.date.time - a.date.time) 27 | } 28 | }) 29 | 30 | function formatDate(raw: string): Post['date'] { 31 | const date = new Date(raw) 32 | date.setUTCHours(12) 33 | return { 34 | time: +date, 35 | string: date.toLocaleDateString('en-US', { 36 | year: 'numeric', 37 | month: 'long', 38 | day: 'numeric' 39 | }) 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /.vitepress/theme/style.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | .vp-code span { 6 | color: var(--shiki-dark, inherit); 7 | } 8 | 9 | :root { 10 | --c-brand: #3eaf7c; 11 | --c-brand-light: #4abf8a; 12 | } 13 | 14 | nav img { 15 | vertical-align: middle; 16 | } 17 | 18 | p img { 19 | margin: 0px auto; 20 | } 21 | 22 | .prose hr { 23 | border-top: 1px solid #e5e7eb; 24 | } 25 | 26 | .link { 27 | color: var(--c-brand); 28 | } 29 | 30 | .link:hover { 31 | color: var(--c-brand-light); 32 | } 33 | 34 | .header-anchor { 35 | display: none; 36 | } 37 | 38 | h3 .header-anchor { 39 | display: inline-block; 40 | position: absolute; 41 | left: -1em; 42 | text-decoration: none; 43 | color: var(--c-brand); 44 | } 45 | 46 | h3 .header-anchor:before { 47 | content: '#'; 48 | } 49 | 50 | /** 51 | * prism.js tomorrow night eighties for JavaScript, CoffeeScript, CSS and HTML. 52 | * Based on https://github.com/chriskempson/tomorrow-theme 53 | * 54 | * @author Rose Pritchard 55 | */ 56 | .token.comment, 57 | .token.block-comment, 58 | .token.prolog, 59 | .token.doctype, 60 | .token.cdata { 61 | color: #999; 62 | } 63 | 64 | .token.punctuation { 65 | color: #ccc; 66 | } 67 | 68 | .token.tag, 69 | .token.attr-name, 70 | .token.namespace, 71 | .token.deleted { 72 | color: #e2777a; 73 | } 74 | 75 | .token.function-name { 76 | color: #6196cc; 77 | } 78 | 79 | .token.boolean, 80 | .token.number, 81 | .token.function { 82 | color: #f08d49; 83 | } 84 | 85 | .token.property, 86 | .token.class-name, 87 | .token.constant, 88 | .token.symbol { 89 | color: #f8c555; 90 | } 91 | 92 | .token.selector, 93 | .token.important, 94 | .token.atrule, 95 | .token.keyword, 96 | .token.builtin { 97 | color: #cc99cd; 98 | } 99 | 100 | .token.string, 101 | .token.char, 102 | .token.attr-value, 103 | .token.regex, 104 | .token.variable { 105 | color: #7ec699; 106 | } 107 | 108 | .token.operator, 109 | .token.entity, 110 | .token.url { 111 | color: #67cdcc; 112 | } 113 | 114 | .token.important, 115 | .token.bold { 116 | font-weight: bold; 117 | } 118 | 119 | .token.italic { 120 | font-style: italic; 121 | } 122 | 123 | .token.entity { 124 | cursor: help; 125 | } 126 | 127 | .token.inserted { 128 | color: #67cdcc; 129 | } 130 | 131 | button.copy { 132 | display: none; 133 | } 134 | 135 | span.lang { 136 | position: absolute; 137 | right: 0.5em; 138 | font-size: 0.75em; 139 | color: #999; 140 | font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 141 | 'Liberation Mono', 'Courier New', monospace; 142 | } 143 | 144 | .custom-block { 145 | margin: 28px 0; 146 | padding: 0 24px 2px; 147 | border-radius: 8px; 148 | overflow-x: auto; 149 | position: relative; 150 | font-size: 14px; 151 | line-height: 1.3; 152 | font-weight: 500; 153 | color: #444; 154 | background-color: #f9f9f9; 155 | } 156 | .custom-block .custom-block-title { 157 | margin-bottom: 8px; 158 | font-size: 15px; 159 | font-weight: bold; 160 | } 161 | 162 | .custom-block.tip { 163 | border: 1px solid #42b883; 164 | } 165 | .custom-block.tip:before { 166 | color: #42b883; 167 | } 168 | 169 | .prose 170 | :where(:not(pre) > code):not( 171 | :where([class~='not-prose'], [class~='not-prose'] *) 172 | ) { 173 | color: #0a3760; 174 | padding: 0.25em 0.4em; 175 | border-radius: 4px; 176 | background-color: #eee; 177 | } 178 | 179 | .prose 180 | :where(code):not( 181 | :where([class~='not-prose'], [class~='not-prose'] *) 182 | )::before { 183 | content: '' !important; 184 | } 185 | 186 | .prose 187 | :where(code):not( 188 | :where([class~='not-prose'], [class~='not-prose'] *) 189 | )::after { 190 | content: '' !important; 191 | } 192 | 193 | @media (prefers-color-scheme: dark) { 194 | .prose 195 | :where(:not(pre) > code):not( 196 | :where([class~='not-prose'], [class~='not-prose'] *) 197 | ) { 198 | color: #d1e9ff; 199 | background-color: #3c3a5b; 200 | } 201 | } 202 | 203 | @media (max-width: 518px) { 204 | .prose img { 205 | max-width: 100% !important; 206 | } 207 | } 208 | -------------------------------------------------------------------------------- /index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: The Vue Point 3 | subtext: Updates, tips & opinions from the maintainers of Vue.js. 4 | index: true 5 | --- 6 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-blog", 3 | "version": "1.0.0", 4 | "private": true, 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vitepress --open", 8 | "build": "vitepress build", 9 | "serve": "vitepress serve", 10 | "preview": "vitepress preview" 11 | }, 12 | "devDependencies": { 13 | "@tailwindcss/typography": "^0.5.14", 14 | "@types/markdown-it": "^12.2.3", 15 | "@types/node": "^20.11.27", 16 | "feed": "^4.2.2", 17 | "gray-matter": "^4.0.3", 18 | "tailwindcss": "^3.4.10", 19 | "vitepress": "^1.3.4", 20 | "vue": "^3.5.0-beta.3" 21 | }, 22 | "packageManager": "pnpm@9.8.0" 23 | } 24 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | devDependencies: 11 | '@tailwindcss/typography': 12 | specifier: ^0.5.14 13 | version: 0.5.14(tailwindcss@3.4.10) 14 | '@types/markdown-it': 15 | specifier: ^12.2.3 16 | version: 12.2.3 17 | '@types/node': 18 | specifier: ^20.11.27 19 | version: 20.11.27 20 | feed: 21 | specifier: ^4.2.2 22 | version: 4.2.2 23 | gray-matter: 24 | specifier: ^4.0.3 25 | version: 4.0.3 26 | tailwindcss: 27 | specifier: ^3.4.10 28 | version: 3.4.10 29 | vitepress: 30 | specifier: ^1.3.4 31 | version: 1.3.4(@algolia/client-search@4.22.0)(@types/node@20.11.27)(postcss@8.4.38)(search-insights@2.13.0) 32 | vue: 33 | specifier: ^3.5.0-beta.3 34 | version: 3.5.0-beta.3 35 | 36 | packages: 37 | 38 | '@algolia/autocomplete-core@1.9.3': 39 | resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} 40 | 41 | '@algolia/autocomplete-plugin-algolia-insights@1.9.3': 42 | resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} 43 | peerDependencies: 44 | search-insights: '>= 1 < 3' 45 | 46 | '@algolia/autocomplete-preset-algolia@1.9.3': 47 | resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} 48 | peerDependencies: 49 | '@algolia/client-search': '>= 4.9.1 < 6' 50 | algoliasearch: '>= 4.9.1 < 6' 51 | 52 | '@algolia/autocomplete-shared@1.9.3': 53 | resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} 54 | peerDependencies: 55 | '@algolia/client-search': '>= 4.9.1 < 6' 56 | algoliasearch: '>= 4.9.1 < 6' 57 | 58 | '@algolia/cache-browser-local-storage@4.22.0': 59 | resolution: {integrity: sha512-uZ1uZMLDZb4qODLfTSNHxSi4fH9RdrQf7DXEzW01dS8XK7QFtFh29N5NGKa9S+Yudf1vUMIF+/RiL4i/J0pWlQ==} 60 | 61 | '@algolia/cache-common@4.22.0': 62 | resolution: {integrity: sha512-TPwUMlIGPN16eW67qamNQUmxNiGHg/WBqWcrOoCddhqNTqGDPVqmgfaM85LPbt24t3r1z0zEz/tdsmuq3Q6oaA==} 63 | 64 | '@algolia/cache-in-memory@4.22.0': 65 | resolution: {integrity: sha512-kf4Cio9NpPjzp1+uXQgL4jsMDeck7MP89BYThSvXSjf2A6qV/0KeqQf90TL2ECS02ovLOBXkk98P7qVarM+zGA==} 66 | 67 | '@algolia/client-account@4.22.0': 68 | resolution: {integrity: sha512-Bjb5UXpWmJT+yGWiqAJL0prkENyEZTBzdC+N1vBuHjwIJcjLMjPB6j1hNBRbT12Lmwi55uzqeMIKS69w+0aPzA==} 69 | 70 | '@algolia/client-analytics@4.22.0': 71 | resolution: {integrity: sha512-os2K+kHUcwwRa4ArFl5p/3YbF9lN3TLOPkbXXXxOvDpqFh62n9IRZuzfxpHxMPKAQS3Et1s0BkKavnNP02E9Hg==} 72 | 73 | '@algolia/client-common@4.22.0': 74 | resolution: {integrity: sha512-BlbkF4qXVWuwTmYxVWvqtatCR3lzXwxx628p1wj1Q7QP2+LsTmGt1DiUYRuy9jG7iMsnlExby6kRMOOlbhv2Ag==} 75 | 76 | '@algolia/client-personalization@4.22.0': 77 | resolution: {integrity: sha512-pEOftCxeBdG5pL97WngOBi9w5Vxr5KCV2j2D+xMVZH8MuU/JX7CglDSDDb0ffQWYqcUN+40Ry+xtXEYaGXTGow==} 78 | 79 | '@algolia/client-search@4.22.0': 80 | resolution: {integrity: sha512-bn4qQiIdRPBGCwsNuuqB8rdHhGKKWIij9OqidM1UkQxnSG8yzxHdb7CujM30pvp5EnV7jTqDZRbxacbjYVW20Q==} 81 | 82 | '@algolia/logger-common@4.22.0': 83 | resolution: {integrity: sha512-HMUQTID0ucxNCXs5d1eBJ5q/HuKg8rFVE/vOiLaM4Abfeq1YnTtGV3+rFEhOPWhRQxNDd+YHa4q864IMc0zHpQ==} 84 | 85 | '@algolia/logger-console@4.22.0': 86 | resolution: {integrity: sha512-7JKb6hgcY64H7CRm3u6DRAiiEVXMvCJV5gRE672QFOUgDxo4aiDpfU61g6Uzy8NKjlEzHMmgG4e2fklELmPXhQ==} 87 | 88 | '@algolia/requester-browser-xhr@4.22.0': 89 | resolution: {integrity: sha512-BHfv1h7P9/SyvcDJDaRuIwDu2yrDLlXlYmjvaLZTtPw6Ok/ZVhBR55JqW832XN/Fsl6k3LjdkYHHR7xnsa5Wvg==} 90 | 91 | '@algolia/requester-common@4.22.0': 92 | resolution: {integrity: sha512-Y9cEH/cKjIIZgzvI1aI0ARdtR/xRrOR13g5psCxkdhpgRN0Vcorx+zePhmAa4jdQNqexpxtkUdcKYugBzMZJgQ==} 93 | 94 | '@algolia/requester-node-http@4.22.0': 95 | resolution: {integrity: sha512-8xHoGpxVhz3u2MYIieHIB6MsnX+vfd5PS4REgglejJ6lPigftRhTdBCToe6zbwq4p0anZXjjPDvNWMlgK2+xYA==} 96 | 97 | '@algolia/transporter@4.22.0': 98 | resolution: {integrity: sha512-ieO1k8x2o77GNvOoC+vAkFKppydQSVfbjM3YrSjLmgywiBejPTvU1R1nEvG59JIIUvtSLrZsLGPkd6vL14zopA==} 99 | 100 | '@alloc/quick-lru@5.2.0': 101 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} 102 | engines: {node: '>=10'} 103 | 104 | '@babel/helper-string-parser@7.24.8': 105 | resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} 106 | engines: {node: '>=6.9.0'} 107 | 108 | '@babel/helper-validator-identifier@7.24.7': 109 | resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} 110 | engines: {node: '>=6.9.0'} 111 | 112 | '@babel/parser@7.25.4': 113 | resolution: {integrity: sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA==} 114 | engines: {node: '>=6.0.0'} 115 | hasBin: true 116 | 117 | '@babel/types@7.25.4': 118 | resolution: {integrity: sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ==} 119 | engines: {node: '>=6.9.0'} 120 | 121 | '@docsearch/css@3.6.1': 122 | resolution: {integrity: sha512-VtVb5DS+0hRIprU2CO6ZQjK2Zg4QU5HrDM1+ix6rT0umsYvFvatMAnf97NHZlVWDaaLlx7GRfR/7FikANiM2Fg==} 123 | 124 | '@docsearch/js@3.6.1': 125 | resolution: {integrity: sha512-erI3RRZurDr1xES5hvYJ3Imp7jtrXj6f1xYIzDzxiS7nNBufYWPbJwrmMqWC5g9y165PmxEmN9pklGCdLi0Iqg==} 126 | 127 | '@docsearch/react@3.6.1': 128 | resolution: {integrity: sha512-qXZkEPvybVhSXj0K7U3bXc233tk5e8PfhoZ6MhPOiik/qUQxYC+Dn9DnoS7CxHQQhHfCvTiN0eY9M12oRghEXw==} 129 | peerDependencies: 130 | '@types/react': '>= 16.8.0 < 19.0.0' 131 | react: '>= 16.8.0 < 19.0.0' 132 | react-dom: '>= 16.8.0 < 19.0.0' 133 | search-insights: '>= 1 < 3' 134 | peerDependenciesMeta: 135 | '@types/react': 136 | optional: true 137 | react: 138 | optional: true 139 | react-dom: 140 | optional: true 141 | search-insights: 142 | optional: true 143 | 144 | '@esbuild/aix-ppc64@0.21.5': 145 | resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} 146 | engines: {node: '>=12'} 147 | cpu: [ppc64] 148 | os: [aix] 149 | 150 | '@esbuild/android-arm64@0.21.5': 151 | resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} 152 | engines: {node: '>=12'} 153 | cpu: [arm64] 154 | os: [android] 155 | 156 | '@esbuild/android-arm@0.21.5': 157 | resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} 158 | engines: {node: '>=12'} 159 | cpu: [arm] 160 | os: [android] 161 | 162 | '@esbuild/android-x64@0.21.5': 163 | resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} 164 | engines: {node: '>=12'} 165 | cpu: [x64] 166 | os: [android] 167 | 168 | '@esbuild/darwin-arm64@0.21.5': 169 | resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} 170 | engines: {node: '>=12'} 171 | cpu: [arm64] 172 | os: [darwin] 173 | 174 | '@esbuild/darwin-x64@0.21.5': 175 | resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} 176 | engines: {node: '>=12'} 177 | cpu: [x64] 178 | os: [darwin] 179 | 180 | '@esbuild/freebsd-arm64@0.21.5': 181 | resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} 182 | engines: {node: '>=12'} 183 | cpu: [arm64] 184 | os: [freebsd] 185 | 186 | '@esbuild/freebsd-x64@0.21.5': 187 | resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} 188 | engines: {node: '>=12'} 189 | cpu: [x64] 190 | os: [freebsd] 191 | 192 | '@esbuild/linux-arm64@0.21.5': 193 | resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} 194 | engines: {node: '>=12'} 195 | cpu: [arm64] 196 | os: [linux] 197 | 198 | '@esbuild/linux-arm@0.21.5': 199 | resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} 200 | engines: {node: '>=12'} 201 | cpu: [arm] 202 | os: [linux] 203 | 204 | '@esbuild/linux-ia32@0.21.5': 205 | resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} 206 | engines: {node: '>=12'} 207 | cpu: [ia32] 208 | os: [linux] 209 | 210 | '@esbuild/linux-loong64@0.21.5': 211 | resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} 212 | engines: {node: '>=12'} 213 | cpu: [loong64] 214 | os: [linux] 215 | 216 | '@esbuild/linux-mips64el@0.21.5': 217 | resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} 218 | engines: {node: '>=12'} 219 | cpu: [mips64el] 220 | os: [linux] 221 | 222 | '@esbuild/linux-ppc64@0.21.5': 223 | resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} 224 | engines: {node: '>=12'} 225 | cpu: [ppc64] 226 | os: [linux] 227 | 228 | '@esbuild/linux-riscv64@0.21.5': 229 | resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} 230 | engines: {node: '>=12'} 231 | cpu: [riscv64] 232 | os: [linux] 233 | 234 | '@esbuild/linux-s390x@0.21.5': 235 | resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} 236 | engines: {node: '>=12'} 237 | cpu: [s390x] 238 | os: [linux] 239 | 240 | '@esbuild/linux-x64@0.21.5': 241 | resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} 242 | engines: {node: '>=12'} 243 | cpu: [x64] 244 | os: [linux] 245 | 246 | '@esbuild/netbsd-x64@0.21.5': 247 | resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} 248 | engines: {node: '>=12'} 249 | cpu: [x64] 250 | os: [netbsd] 251 | 252 | '@esbuild/openbsd-x64@0.21.5': 253 | resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} 254 | engines: {node: '>=12'} 255 | cpu: [x64] 256 | os: [openbsd] 257 | 258 | '@esbuild/sunos-x64@0.21.5': 259 | resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} 260 | engines: {node: '>=12'} 261 | cpu: [x64] 262 | os: [sunos] 263 | 264 | '@esbuild/win32-arm64@0.21.5': 265 | resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} 266 | engines: {node: '>=12'} 267 | cpu: [arm64] 268 | os: [win32] 269 | 270 | '@esbuild/win32-ia32@0.21.5': 271 | resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} 272 | engines: {node: '>=12'} 273 | cpu: [ia32] 274 | os: [win32] 275 | 276 | '@esbuild/win32-x64@0.21.5': 277 | resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} 278 | engines: {node: '>=12'} 279 | cpu: [x64] 280 | os: [win32] 281 | 282 | '@jridgewell/gen-mapping@0.3.3': 283 | resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} 284 | engines: {node: '>=6.0.0'} 285 | 286 | '@jridgewell/resolve-uri@3.1.1': 287 | resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} 288 | engines: {node: '>=6.0.0'} 289 | 290 | '@jridgewell/set-array@1.1.2': 291 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} 292 | engines: {node: '>=6.0.0'} 293 | 294 | '@jridgewell/sourcemap-codec@1.4.15': 295 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 296 | 297 | '@jridgewell/sourcemap-codec@1.5.0': 298 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 299 | 300 | '@jridgewell/trace-mapping@0.3.20': 301 | resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} 302 | 303 | '@nodelib/fs.scandir@2.1.5': 304 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 305 | engines: {node: '>= 8'} 306 | 307 | '@nodelib/fs.stat@2.0.5': 308 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 309 | engines: {node: '>= 8'} 310 | 311 | '@nodelib/fs.walk@1.2.8': 312 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 313 | engines: {node: '>= 8'} 314 | 315 | '@rollup/rollup-android-arm-eabi@4.21.0': 316 | resolution: {integrity: sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA==} 317 | cpu: [arm] 318 | os: [android] 319 | 320 | '@rollup/rollup-android-arm64@4.21.0': 321 | resolution: {integrity: sha512-a1sR2zSK1B4eYkiZu17ZUZhmUQcKjk2/j9Me2IDjk1GHW7LB5Z35LEzj9iJch6gtUfsnvZs1ZNyDW2oZSThrkA==} 322 | cpu: [arm64] 323 | os: [android] 324 | 325 | '@rollup/rollup-darwin-arm64@4.21.0': 326 | resolution: {integrity: sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA==} 327 | cpu: [arm64] 328 | os: [darwin] 329 | 330 | '@rollup/rollup-darwin-x64@4.21.0': 331 | resolution: {integrity: sha512-7doS8br0xAkg48SKE2QNtMSFPFUlRdw9+votl27MvT46vo44ATBmdZdGysOevNELmZlfd+NEa0UYOA8f01WSrg==} 332 | cpu: [x64] 333 | os: [darwin] 334 | 335 | '@rollup/rollup-linux-arm-gnueabihf@4.21.0': 336 | resolution: {integrity: sha512-pWJsfQjNWNGsoCq53KjMtwdJDmh/6NubwQcz52aEwLEuvx08bzcy6tOUuawAOncPnxz/3siRtd8hiQ32G1y8VA==} 337 | cpu: [arm] 338 | os: [linux] 339 | 340 | '@rollup/rollup-linux-arm-musleabihf@4.21.0': 341 | resolution: {integrity: sha512-efRIANsz3UHZrnZXuEvxS9LoCOWMGD1rweciD6uJQIx2myN3a8Im1FafZBzh7zk1RJ6oKcR16dU3UPldaKd83w==} 342 | cpu: [arm] 343 | os: [linux] 344 | 345 | '@rollup/rollup-linux-arm64-gnu@4.21.0': 346 | resolution: {integrity: sha512-ZrPhydkTVhyeGTW94WJ8pnl1uroqVHM3j3hjdquwAcWnmivjAwOYjTEAuEDeJvGX7xv3Z9GAvrBkEzCgHq9U1w==} 347 | cpu: [arm64] 348 | os: [linux] 349 | 350 | '@rollup/rollup-linux-arm64-musl@4.21.0': 351 | resolution: {integrity: sha512-cfaupqd+UEFeURmqNP2eEvXqgbSox/LHOyN9/d2pSdV8xTrjdg3NgOFJCtc1vQ/jEke1qD0IejbBfxleBPHnPw==} 352 | cpu: [arm64] 353 | os: [linux] 354 | 355 | '@rollup/rollup-linux-powerpc64le-gnu@4.21.0': 356 | resolution: {integrity: sha512-ZKPan1/RvAhrUylwBXC9t7B2hXdpb/ufeu22pG2psV7RN8roOfGurEghw1ySmX/CmDDHNTDDjY3lo9hRlgtaHg==} 357 | cpu: [ppc64] 358 | os: [linux] 359 | 360 | '@rollup/rollup-linux-riscv64-gnu@4.21.0': 361 | resolution: {integrity: sha512-H1eRaCwd5E8eS8leiS+o/NqMdljkcb1d6r2h4fKSsCXQilLKArq6WS7XBLDu80Yz+nMqHVFDquwcVrQmGr28rg==} 362 | cpu: [riscv64] 363 | os: [linux] 364 | 365 | '@rollup/rollup-linux-s390x-gnu@4.21.0': 366 | resolution: {integrity: sha512-zJ4hA+3b5tu8u7L58CCSI0A9N1vkfwPhWd/puGXwtZlsB5bTkwDNW/+JCU84+3QYmKpLi+XvHdmrlwUwDA6kqw==} 367 | cpu: [s390x] 368 | os: [linux] 369 | 370 | '@rollup/rollup-linux-x64-gnu@4.21.0': 371 | resolution: {integrity: sha512-e2hrvElFIh6kW/UNBQK/kzqMNY5mO+67YtEh9OA65RM5IJXYTWiXjX6fjIiPaqOkBthYF1EqgiZ6OXKcQsM0hg==} 372 | cpu: [x64] 373 | os: [linux] 374 | 375 | '@rollup/rollup-linux-x64-musl@4.21.0': 376 | resolution: {integrity: sha512-1vvmgDdUSebVGXWX2lIcgRebqfQSff0hMEkLJyakQ9JQUbLDkEaMsPTLOmyccyC6IJ/l3FZuJbmrBw/u0A0uCQ==} 377 | cpu: [x64] 378 | os: [linux] 379 | 380 | '@rollup/rollup-win32-arm64-msvc@4.21.0': 381 | resolution: {integrity: sha512-s5oFkZ/hFcrlAyBTONFY1TWndfyre1wOMwU+6KCpm/iatybvrRgmZVM+vCFwxmC5ZhdlgfE0N4XorsDpi7/4XQ==} 382 | cpu: [arm64] 383 | os: [win32] 384 | 385 | '@rollup/rollup-win32-ia32-msvc@4.21.0': 386 | resolution: {integrity: sha512-G9+TEqRnAA6nbpqyUqgTiopmnfgnMkR3kMukFBDsiyy23LZvUCpiUwjTRx6ezYCjJODXrh52rBR9oXvm+Fp5wg==} 387 | cpu: [ia32] 388 | os: [win32] 389 | 390 | '@rollup/rollup-win32-x64-msvc@4.21.0': 391 | resolution: {integrity: sha512-2jsCDZwtQvRhejHLfZ1JY6w6kEuEtfF9nzYsZxzSlNVKDX+DpsDJ+Rbjkm74nvg2rdx0gwBS+IMdvwJuq3S9pQ==} 392 | cpu: [x64] 393 | os: [win32] 394 | 395 | '@shikijs/core@1.14.1': 396 | resolution: {integrity: sha512-KyHIIpKNaT20FtFPFjCQB5WVSTpLR/n+jQXhWHWVUMm9MaOaG9BGOG0MSyt7yA4+Lm+4c9rTc03tt3nYzeYSfw==} 397 | 398 | '@shikijs/transformers@1.14.1': 399 | resolution: {integrity: sha512-JJqL8QBVCJh3L61jqqEXgFq1cTycwjcGj7aSmqOEsbxnETM9hRlaB74QuXvY/fVJNjbNt8nvWo0VwAXKvMSLRg==} 400 | 401 | '@tailwindcss/typography@0.5.14': 402 | resolution: {integrity: sha512-ZvOCjUbsJBjL9CxQBn+VEnFpouzuKhxh2dH8xMIWHILL+HfOYtlAkWcyoon8LlzE53d2Yo6YO6pahKKNW3q1YQ==} 403 | peerDependencies: 404 | tailwindcss: '>=3.0.0 || insiders' 405 | 406 | '@types/estree@1.0.5': 407 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} 408 | 409 | '@types/hast@3.0.4': 410 | resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} 411 | 412 | '@types/linkify-it@3.0.2': 413 | resolution: {integrity: sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==} 414 | 415 | '@types/linkify-it@5.0.0': 416 | resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} 417 | 418 | '@types/markdown-it@12.2.3': 419 | resolution: {integrity: sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==} 420 | 421 | '@types/markdown-it@14.1.2': 422 | resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} 423 | 424 | '@types/mdurl@1.0.2': 425 | resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==} 426 | 427 | '@types/mdurl@2.0.0': 428 | resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} 429 | 430 | '@types/node@20.11.27': 431 | resolution: {integrity: sha512-qyUZfMnCg1KEz57r7pzFtSGt49f6RPkPBis3Vo4PbS7roQEDn22hiHzl/Lo1q4i4hDEgBJmBF/NTNg2XR0HbFg==} 432 | 433 | '@types/unist@3.0.3': 434 | resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} 435 | 436 | '@types/web-bluetooth@0.0.20': 437 | resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} 438 | 439 | '@vitejs/plugin-vue@5.1.2': 440 | resolution: {integrity: sha512-nY9IwH12qeiJqumTCLJLE7IiNx7HZ39cbHaysEUd+Myvbz9KAqd2yq+U01Kab1R/H1BmiyM2ShTYlNH32Fzo3A==} 441 | engines: {node: ^18.0.0 || >=20.0.0} 442 | peerDependencies: 443 | vite: ^5.0.0 444 | vue: ^3.2.25 445 | 446 | '@vue/compiler-core@3.4.38': 447 | resolution: {integrity: sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==} 448 | 449 | '@vue/compiler-core@3.5.0-beta.3': 450 | resolution: {integrity: sha512-88gac5IIPIXEp74H5EFd5+SENbe4qd0TjtNBqUlD0QZdZ1/4WJIVWL79VRsp24LPBBUvQM5ddfMl8meUXr97jw==} 451 | 452 | '@vue/compiler-dom@3.4.38': 453 | resolution: {integrity: sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ==} 454 | 455 | '@vue/compiler-dom@3.5.0-beta.3': 456 | resolution: {integrity: sha512-KMp24vqXvxmqO7/mds1Nb8fkQrYHhQdHZX7LvpRiHsHweAWZ7IC4jLrWg4//gs3kBmhxjKx5AE/f0uHuX6UT0Q==} 457 | 458 | '@vue/compiler-sfc@3.4.38': 459 | resolution: {integrity: sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ==} 460 | 461 | '@vue/compiler-sfc@3.5.0-beta.3': 462 | resolution: {integrity: sha512-gbMW3KXuKgNO8aOOZ5xJcDs9wq8LNnIc0ZlboMZ7CcqjW6L8jIIPZps9ewwT8RUNvKoxl7MoPPvgeWJvlKRlfw==} 463 | 464 | '@vue/compiler-ssr@3.4.38': 465 | resolution: {integrity: sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw==} 466 | 467 | '@vue/compiler-ssr@3.5.0-beta.3': 468 | resolution: {integrity: sha512-6SQhCb8dqnipwcZzA888lbs15GNp/YmzIfoFqCGBlyDWFz77wGdbDEV+cCHOwGU4kzwDCAuoFki6UL0h/kYoxQ==} 469 | 470 | '@vue/devtools-api@7.3.9': 471 | resolution: {integrity: sha512-D+GTYtFg68bqSu66EugQUydsOqaDlPLNmYw5oYk8k81uBu9/bVTUrqlAJrAA9Am7MXhKz2gWdDkopY6sOBf/Bg==} 472 | 473 | '@vue/devtools-kit@7.3.9': 474 | resolution: {integrity: sha512-Gr17nA+DaQzqyhNx1DUJr1CJRzTRfbIuuC80ZgU8MD/qNO302tv9la+ROi+Uaw+ULVwU9T71GnwLy4n8m9Lspg==} 475 | 476 | '@vue/devtools-shared@7.3.9': 477 | resolution: {integrity: sha512-CdfMRZKXyI8vw+hqOcQIiLihB6Hbbi7WNZGp7LsuH1Qe4aYAFmTaKjSciRZ301oTnwmU/knC/s5OGuV6UNiNoA==} 478 | 479 | '@vue/reactivity@3.4.38': 480 | resolution: {integrity: sha512-4vl4wMMVniLsSYYeldAKzbk72+D3hUnkw9z8lDeJacTxAkXeDAP1uE9xr2+aKIN0ipOL8EG2GPouVTH6yF7Gnw==} 481 | 482 | '@vue/reactivity@3.5.0-beta.3': 483 | resolution: {integrity: sha512-vtg6+iwb8h7cHy9X8G0z059yZoZvBt8nD64Os12uy+iDZ8TaKketU9q0Sa1pmCRq/T7xEeXr23BEOxP5LBkJ0g==} 484 | 485 | '@vue/runtime-core@3.4.38': 486 | resolution: {integrity: sha512-21z3wA99EABtuf+O3IhdxP0iHgkBs1vuoCAsCKLVJPEjpVqvblwBnTj42vzHRlWDCyxu9ptDm7sI2ZMcWrQqlA==} 487 | 488 | '@vue/runtime-core@3.5.0-beta.3': 489 | resolution: {integrity: sha512-WGW2j2aoJbJEWVlIezzvVWeiPTlkgZxp42PdaWm3ZzP1JsASHoIq6fCMo3bFxvH9pxPhgjYQxtrfyuVofQUVKA==} 490 | 491 | '@vue/runtime-dom@3.4.38': 492 | resolution: {integrity: sha512-afZzmUreU7vKwKsV17H1NDThEEmdYI+GCAK/KY1U957Ig2NATPVjCROv61R19fjZNzMmiU03n79OMnXyJVN0UA==} 493 | 494 | '@vue/runtime-dom@3.5.0-beta.3': 495 | resolution: {integrity: sha512-1hUBqEubv64aQN+qBuxJrsUGZJqTDodtMtjXfmjrbl2ZwdcBQhKONqZJRAdNCF320Nh3PivhmrMaGt43/6npkg==} 496 | 497 | '@vue/server-renderer@3.4.38': 498 | resolution: {integrity: sha512-NggOTr82FbPEkkUvBm4fTGcwUY8UuTsnWC/L2YZBmvaQ4C4Jl/Ao4HHTB+l7WnFCt5M/dN3l0XLuyjzswGYVCA==} 499 | peerDependencies: 500 | vue: 3.4.38 501 | 502 | '@vue/server-renderer@3.5.0-beta.3': 503 | resolution: {integrity: sha512-mSkHAQyELQyAfV/nSW7/bMQF8pdT8BYWKtgJiubAGKLWc1kZMk1GzUx+CumD/UJ1EbeWt79QIiRG6Q4HNx2cCA==} 504 | peerDependencies: 505 | vue: 3.5.0-beta.3 506 | 507 | '@vue/shared@3.4.38': 508 | resolution: {integrity: sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==} 509 | 510 | '@vue/shared@3.5.0-beta.3': 511 | resolution: {integrity: sha512-MLtDZlcJILbDwrcyZK/Mtf5mhebiRZggJ3BZeXaFe5RaQVVbirMIBBhvv8ujtAuweioD92np86LsjWcgg0JebQ==} 512 | 513 | '@vueuse/core@11.0.3': 514 | resolution: {integrity: sha512-RENlh64+SYA9XMExmmH1a3TPqeIuJBNNB/63GT35MZI+zpru3oMRUA6cEFr9HmGqEgUisurwGwnIieF6qu3aXw==} 515 | 516 | '@vueuse/integrations@11.0.3': 517 | resolution: {integrity: sha512-w6CDisaxs19S5Fd+NPPLFaA3GoX5gxuxrbTTBu0EYap7oH13w75L6C/+7e9mcoF9akhcR6GyYajwVMQEjdapJg==} 518 | peerDependencies: 519 | async-validator: ^4 520 | axios: ^1 521 | change-case: ^5 522 | drauu: ^0.4 523 | focus-trap: ^7 524 | fuse.js: ^7 525 | idb-keyval: ^6 526 | jwt-decode: ^4 527 | nprogress: ^0.2 528 | qrcode: ^1.5 529 | sortablejs: ^1 530 | universal-cookie: ^7 531 | peerDependenciesMeta: 532 | async-validator: 533 | optional: true 534 | axios: 535 | optional: true 536 | change-case: 537 | optional: true 538 | drauu: 539 | optional: true 540 | focus-trap: 541 | optional: true 542 | fuse.js: 543 | optional: true 544 | idb-keyval: 545 | optional: true 546 | jwt-decode: 547 | optional: true 548 | nprogress: 549 | optional: true 550 | qrcode: 551 | optional: true 552 | sortablejs: 553 | optional: true 554 | universal-cookie: 555 | optional: true 556 | 557 | '@vueuse/metadata@11.0.3': 558 | resolution: {integrity: sha512-+FtbO4SD5WpsOcQTcC0hAhNlOid6QNLzqedtquTtQ+CRNBoAt9GuV07c6KNHK1wCmlq8DFPwgiLF2rXwgSHX5Q==} 559 | 560 | '@vueuse/shared@11.0.3': 561 | resolution: {integrity: sha512-0rY2m6HS5t27n/Vp5cTDsKTlNnimCqsbh/fmT2LgE+aaU42EMfXo8+bNX91W9I7DDmxfuACXMmrd7d79JxkqWA==} 562 | 563 | algoliasearch@4.22.0: 564 | resolution: {integrity: sha512-gfceltjkwh7PxXwtkS8KVvdfK+TSNQAWUeNSxf4dA29qW5tf2EGwa8jkJujlT9jLm17cixMVoGNc+GJFO1Mxhg==} 565 | 566 | any-promise@1.3.0: 567 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 568 | 569 | anymatch@3.1.2: 570 | resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} 571 | engines: {node: '>= 8'} 572 | 573 | arg@5.0.2: 574 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 575 | 576 | argparse@1.0.10: 577 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} 578 | 579 | balanced-match@1.0.2: 580 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 581 | 582 | binary-extensions@2.2.0: 583 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 584 | engines: {node: '>=8'} 585 | 586 | birpc@0.2.17: 587 | resolution: {integrity: sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg==} 588 | 589 | brace-expansion@1.1.11: 590 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 591 | 592 | braces@3.0.2: 593 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 594 | engines: {node: '>=8'} 595 | 596 | camelcase-css@2.0.1: 597 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 598 | engines: {node: '>= 6'} 599 | 600 | chokidar@3.5.3: 601 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 602 | engines: {node: '>= 8.10.0'} 603 | 604 | commander@4.1.1: 605 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 606 | engines: {node: '>= 6'} 607 | 608 | concat-map@0.0.1: 609 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 610 | 611 | copy-anything@3.0.5: 612 | resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} 613 | engines: {node: '>=12.13'} 614 | 615 | cssesc@3.0.0: 616 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 617 | engines: {node: '>=4'} 618 | hasBin: true 619 | 620 | csstype@3.1.3: 621 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 622 | 623 | didyoumean@1.2.2: 624 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 625 | 626 | dlv@1.1.3: 627 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 628 | 629 | entities@4.5.0: 630 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 631 | engines: {node: '>=0.12'} 632 | 633 | esbuild@0.21.5: 634 | resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} 635 | engines: {node: '>=12'} 636 | hasBin: true 637 | 638 | esprima@4.0.1: 639 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 640 | engines: {node: '>=4'} 641 | hasBin: true 642 | 643 | estree-walker@2.0.2: 644 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 645 | 646 | extend-shallow@2.0.1: 647 | resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} 648 | engines: {node: '>=0.10.0'} 649 | 650 | fast-glob@3.3.2: 651 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 652 | engines: {node: '>=8.6.0'} 653 | 654 | fastq@1.13.0: 655 | resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} 656 | 657 | feed@4.2.2: 658 | resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} 659 | engines: {node: '>=0.4.0'} 660 | 661 | fill-range@7.0.1: 662 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 663 | engines: {node: '>=8'} 664 | 665 | focus-trap@7.5.4: 666 | resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==} 667 | 668 | fs.realpath@1.0.0: 669 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 670 | 671 | fsevents@2.3.3: 672 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 673 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 674 | os: [darwin] 675 | 676 | function-bind@1.1.2: 677 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 678 | 679 | glob-parent@5.1.2: 680 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 681 | engines: {node: '>= 6'} 682 | 683 | glob-parent@6.0.2: 684 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 685 | engines: {node: '>=10.13.0'} 686 | 687 | glob@7.1.6: 688 | resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} 689 | deprecated: Glob versions prior to v9 are no longer supported 690 | 691 | gray-matter@4.0.3: 692 | resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} 693 | engines: {node: '>=6.0'} 694 | 695 | hasown@2.0.0: 696 | resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} 697 | engines: {node: '>= 0.4'} 698 | 699 | hookable@5.5.3: 700 | resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} 701 | 702 | inflight@1.0.6: 703 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 704 | 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. 705 | 706 | inherits@2.0.4: 707 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 708 | 709 | is-binary-path@2.1.0: 710 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 711 | engines: {node: '>=8'} 712 | 713 | is-core-module@2.13.1: 714 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} 715 | 716 | is-extendable@0.1.1: 717 | resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} 718 | engines: {node: '>=0.10.0'} 719 | 720 | is-extglob@2.1.1: 721 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 722 | engines: {node: '>=0.10.0'} 723 | 724 | is-glob@4.0.3: 725 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 726 | engines: {node: '>=0.10.0'} 727 | 728 | is-number@7.0.0: 729 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 730 | engines: {node: '>=0.12.0'} 731 | 732 | is-what@4.1.16: 733 | resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} 734 | engines: {node: '>=12.13'} 735 | 736 | jiti@1.21.0: 737 | resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} 738 | hasBin: true 739 | 740 | js-yaml@3.14.1: 741 | resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} 742 | hasBin: true 743 | 744 | kind-of@6.0.3: 745 | resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} 746 | engines: {node: '>=0.10.0'} 747 | 748 | lilconfig@2.1.0: 749 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 750 | engines: {node: '>=10'} 751 | 752 | lilconfig@3.0.0: 753 | resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} 754 | engines: {node: '>=14'} 755 | 756 | lines-and-columns@1.2.4: 757 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 758 | 759 | lodash.castarray@4.4.0: 760 | resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} 761 | 762 | lodash.isplainobject@4.0.6: 763 | resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} 764 | 765 | lodash.merge@4.6.2: 766 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 767 | 768 | magic-string@0.30.11: 769 | resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} 770 | 771 | mark.js@8.11.1: 772 | resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} 773 | 774 | merge2@1.4.1: 775 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 776 | engines: {node: '>= 8'} 777 | 778 | micromatch@4.0.5: 779 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 780 | engines: {node: '>=8.6'} 781 | 782 | minimatch@3.1.2: 783 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 784 | 785 | minisearch@7.1.0: 786 | resolution: {integrity: sha512-tv7c/uefWdEhcu6hvrfTihflgeEi2tN6VV7HJnCjK6VxM75QQJh4t9FwJCsA2EsRS8LCnu3W87CuGPWMocOLCA==} 787 | 788 | mitt@3.0.1: 789 | resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} 790 | 791 | mz@2.7.0: 792 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 793 | 794 | nanoid@3.3.7: 795 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 796 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 797 | hasBin: true 798 | 799 | normalize-path@3.0.0: 800 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 801 | engines: {node: '>=0.10.0'} 802 | 803 | object-assign@4.1.1: 804 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 805 | engines: {node: '>=0.10.0'} 806 | 807 | object-hash@3.0.0: 808 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} 809 | engines: {node: '>= 6'} 810 | 811 | once@1.4.0: 812 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 813 | 814 | path-is-absolute@1.0.1: 815 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 816 | engines: {node: '>=0.10.0'} 817 | 818 | path-parse@1.0.7: 819 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 820 | 821 | perfect-debounce@1.0.0: 822 | resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} 823 | 824 | picocolors@1.0.0: 825 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 826 | 827 | picocolors@1.0.1: 828 | resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} 829 | 830 | picomatch@2.3.1: 831 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 832 | engines: {node: '>=8.6'} 833 | 834 | pify@2.3.0: 835 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 836 | engines: {node: '>=0.10.0'} 837 | 838 | pirates@4.0.6: 839 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 840 | engines: {node: '>= 6'} 841 | 842 | postcss-import@15.1.0: 843 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} 844 | engines: {node: '>=14.0.0'} 845 | peerDependencies: 846 | postcss: ^8.0.0 847 | 848 | postcss-js@4.0.1: 849 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} 850 | engines: {node: ^12 || ^14 || >= 16} 851 | peerDependencies: 852 | postcss: ^8.4.21 853 | 854 | postcss-load-config@4.0.2: 855 | resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} 856 | engines: {node: '>= 14'} 857 | peerDependencies: 858 | postcss: '>=8.0.9' 859 | ts-node: '>=9.0.0' 860 | peerDependenciesMeta: 861 | postcss: 862 | optional: true 863 | ts-node: 864 | optional: true 865 | 866 | postcss-nested@6.0.1: 867 | resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} 868 | engines: {node: '>=12.0'} 869 | peerDependencies: 870 | postcss: ^8.2.14 871 | 872 | postcss-selector-parser@6.0.10: 873 | resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} 874 | engines: {node: '>=4'} 875 | 876 | postcss-selector-parser@6.0.13: 877 | resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} 878 | engines: {node: '>=4'} 879 | 880 | postcss-value-parser@4.2.0: 881 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 882 | 883 | postcss@8.4.38: 884 | resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} 885 | engines: {node: ^10 || ^12 || >=14} 886 | 887 | postcss@8.4.41: 888 | resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} 889 | engines: {node: ^10 || ^12 || >=14} 890 | 891 | preact@10.10.6: 892 | resolution: {integrity: sha512-w0mCL5vICUAZrh1DuHEdOWBjxdO62lvcO++jbzr8UhhYcTbFkpegLH9XX+7MadjTl/y0feoqwQ/zAnzkc/EGog==} 893 | 894 | queue-microtask@1.2.3: 895 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 896 | 897 | read-cache@1.0.0: 898 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} 899 | 900 | readdirp@3.6.0: 901 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 902 | engines: {node: '>=8.10.0'} 903 | 904 | resolve@1.22.8: 905 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 906 | hasBin: true 907 | 908 | reusify@1.0.4: 909 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 910 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 911 | 912 | rfdc@1.4.1: 913 | resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} 914 | 915 | rollup@4.21.0: 916 | resolution: {integrity: sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ==} 917 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 918 | hasBin: true 919 | 920 | run-parallel@1.2.0: 921 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 922 | 923 | sax@1.2.4: 924 | resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} 925 | 926 | search-insights@2.13.0: 927 | resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==} 928 | 929 | section-matter@1.0.0: 930 | resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} 931 | engines: {node: '>=4'} 932 | 933 | shiki@1.14.1: 934 | resolution: {integrity: sha512-FujAN40NEejeXdzPt+3sZ3F2dx1U24BY2XTY01+MG8mbxCiA2XukXdcbyMyLAHJ/1AUUnQd1tZlvIjefWWEJeA==} 935 | 936 | source-map-js@1.2.0: 937 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} 938 | engines: {node: '>=0.10.0'} 939 | 940 | speakingurl@14.0.1: 941 | resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} 942 | engines: {node: '>=0.10.0'} 943 | 944 | sprintf-js@1.0.3: 945 | resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} 946 | 947 | strip-bom-string@1.0.0: 948 | resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} 949 | engines: {node: '>=0.10.0'} 950 | 951 | sucrase@3.34.0: 952 | resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} 953 | engines: {node: '>=8'} 954 | hasBin: true 955 | 956 | superjson@2.2.1: 957 | resolution: {integrity: sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==} 958 | engines: {node: '>=16'} 959 | 960 | supports-preserve-symlinks-flag@1.0.0: 961 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 962 | engines: {node: '>= 0.4'} 963 | 964 | tabbable@6.2.0: 965 | resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} 966 | 967 | tailwindcss@3.4.10: 968 | resolution: {integrity: sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==} 969 | engines: {node: '>=14.0.0'} 970 | hasBin: true 971 | 972 | thenify-all@1.6.0: 973 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 974 | engines: {node: '>=0.8'} 975 | 976 | thenify@3.3.1: 977 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 978 | 979 | to-fast-properties@2.0.0: 980 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 981 | engines: {node: '>=4'} 982 | 983 | to-regex-range@5.0.1: 984 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 985 | engines: {node: '>=8.0'} 986 | 987 | ts-interface-checker@0.1.13: 988 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 989 | 990 | undici-types@5.26.5: 991 | resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} 992 | 993 | util-deprecate@1.0.2: 994 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 995 | 996 | vite@5.4.2: 997 | resolution: {integrity: sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA==} 998 | engines: {node: ^18.0.0 || >=20.0.0} 999 | hasBin: true 1000 | peerDependencies: 1001 | '@types/node': ^18.0.0 || >=20.0.0 1002 | less: '*' 1003 | lightningcss: ^1.21.0 1004 | sass: '*' 1005 | sass-embedded: '*' 1006 | stylus: '*' 1007 | sugarss: '*' 1008 | terser: ^5.4.0 1009 | peerDependenciesMeta: 1010 | '@types/node': 1011 | optional: true 1012 | less: 1013 | optional: true 1014 | lightningcss: 1015 | optional: true 1016 | sass: 1017 | optional: true 1018 | sass-embedded: 1019 | optional: true 1020 | stylus: 1021 | optional: true 1022 | sugarss: 1023 | optional: true 1024 | terser: 1025 | optional: true 1026 | 1027 | vitepress@1.3.4: 1028 | resolution: {integrity: sha512-I1/F6OW1xl3kW4PaIMC6snxjWgf3qfziq2aqsDoFc/Gt41WbcRv++z8zjw8qGRIJ+I4bUW7ZcKFDHHN/jkH9DQ==} 1029 | hasBin: true 1030 | peerDependencies: 1031 | markdown-it-mathjax3: ^4 1032 | postcss: ^8 1033 | peerDependenciesMeta: 1034 | markdown-it-mathjax3: 1035 | optional: true 1036 | postcss: 1037 | optional: true 1038 | 1039 | vue-demi@0.14.10: 1040 | resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} 1041 | engines: {node: '>=12'} 1042 | hasBin: true 1043 | peerDependencies: 1044 | '@vue/composition-api': ^1.0.0-rc.1 1045 | vue: ^3.0.0-0 || ^2.6.0 1046 | peerDependenciesMeta: 1047 | '@vue/composition-api': 1048 | optional: true 1049 | 1050 | vue@3.4.38: 1051 | resolution: {integrity: sha512-f0ZgN+mZ5KFgVv9wz0f4OgVKukoXtS3nwET4c2vLBGQR50aI8G0cqbFtLlX9Yiyg3LFGBitruPHt2PxwTduJEw==} 1052 | peerDependencies: 1053 | typescript: '*' 1054 | peerDependenciesMeta: 1055 | typescript: 1056 | optional: true 1057 | 1058 | vue@3.5.0-beta.3: 1059 | resolution: {integrity: sha512-0ibS+nuCPRDKDAmqd/1GRTUX3Mkbsbe+zak/Ym0oiy8LJ0ORNXjFHiLJ2q0H2e8UX/JpEtJ2Kio/bcnqEd8nvw==} 1060 | peerDependencies: 1061 | typescript: '*' 1062 | peerDependenciesMeta: 1063 | typescript: 1064 | optional: true 1065 | 1066 | wrappy@1.0.2: 1067 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1068 | 1069 | xml-js@1.6.11: 1070 | resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} 1071 | hasBin: true 1072 | 1073 | yaml@2.3.4: 1074 | resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} 1075 | engines: {node: '>= 14'} 1076 | 1077 | snapshots: 1078 | 1079 | '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0)(search-insights@2.13.0)': 1080 | dependencies: 1081 | '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0)(search-insights@2.13.0) 1082 | '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0) 1083 | transitivePeerDependencies: 1084 | - '@algolia/client-search' 1085 | - algoliasearch 1086 | - search-insights 1087 | 1088 | '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0)(search-insights@2.13.0)': 1089 | dependencies: 1090 | '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0) 1091 | search-insights: 2.13.0 1092 | transitivePeerDependencies: 1093 | - '@algolia/client-search' 1094 | - algoliasearch 1095 | 1096 | '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0)': 1097 | dependencies: 1098 | '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0) 1099 | '@algolia/client-search': 4.22.0 1100 | algoliasearch: 4.22.0 1101 | 1102 | '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0)': 1103 | dependencies: 1104 | '@algolia/client-search': 4.22.0 1105 | algoliasearch: 4.22.0 1106 | 1107 | '@algolia/cache-browser-local-storage@4.22.0': 1108 | dependencies: 1109 | '@algolia/cache-common': 4.22.0 1110 | 1111 | '@algolia/cache-common@4.22.0': {} 1112 | 1113 | '@algolia/cache-in-memory@4.22.0': 1114 | dependencies: 1115 | '@algolia/cache-common': 4.22.0 1116 | 1117 | '@algolia/client-account@4.22.0': 1118 | dependencies: 1119 | '@algolia/client-common': 4.22.0 1120 | '@algolia/client-search': 4.22.0 1121 | '@algolia/transporter': 4.22.0 1122 | 1123 | '@algolia/client-analytics@4.22.0': 1124 | dependencies: 1125 | '@algolia/client-common': 4.22.0 1126 | '@algolia/client-search': 4.22.0 1127 | '@algolia/requester-common': 4.22.0 1128 | '@algolia/transporter': 4.22.0 1129 | 1130 | '@algolia/client-common@4.22.0': 1131 | dependencies: 1132 | '@algolia/requester-common': 4.22.0 1133 | '@algolia/transporter': 4.22.0 1134 | 1135 | '@algolia/client-personalization@4.22.0': 1136 | dependencies: 1137 | '@algolia/client-common': 4.22.0 1138 | '@algolia/requester-common': 4.22.0 1139 | '@algolia/transporter': 4.22.0 1140 | 1141 | '@algolia/client-search@4.22.0': 1142 | dependencies: 1143 | '@algolia/client-common': 4.22.0 1144 | '@algolia/requester-common': 4.22.0 1145 | '@algolia/transporter': 4.22.0 1146 | 1147 | '@algolia/logger-common@4.22.0': {} 1148 | 1149 | '@algolia/logger-console@4.22.0': 1150 | dependencies: 1151 | '@algolia/logger-common': 4.22.0 1152 | 1153 | '@algolia/requester-browser-xhr@4.22.0': 1154 | dependencies: 1155 | '@algolia/requester-common': 4.22.0 1156 | 1157 | '@algolia/requester-common@4.22.0': {} 1158 | 1159 | '@algolia/requester-node-http@4.22.0': 1160 | dependencies: 1161 | '@algolia/requester-common': 4.22.0 1162 | 1163 | '@algolia/transporter@4.22.0': 1164 | dependencies: 1165 | '@algolia/cache-common': 4.22.0 1166 | '@algolia/logger-common': 4.22.0 1167 | '@algolia/requester-common': 4.22.0 1168 | 1169 | '@alloc/quick-lru@5.2.0': {} 1170 | 1171 | '@babel/helper-string-parser@7.24.8': {} 1172 | 1173 | '@babel/helper-validator-identifier@7.24.7': {} 1174 | 1175 | '@babel/parser@7.25.4': 1176 | dependencies: 1177 | '@babel/types': 7.25.4 1178 | 1179 | '@babel/types@7.25.4': 1180 | dependencies: 1181 | '@babel/helper-string-parser': 7.24.8 1182 | '@babel/helper-validator-identifier': 7.24.7 1183 | to-fast-properties: 2.0.0 1184 | 1185 | '@docsearch/css@3.6.1': {} 1186 | 1187 | '@docsearch/js@3.6.1(@algolia/client-search@4.22.0)(search-insights@2.13.0)': 1188 | dependencies: 1189 | '@docsearch/react': 3.6.1(@algolia/client-search@4.22.0)(search-insights@2.13.0) 1190 | preact: 10.10.6 1191 | transitivePeerDependencies: 1192 | - '@algolia/client-search' 1193 | - '@types/react' 1194 | - react 1195 | - react-dom 1196 | - search-insights 1197 | 1198 | '@docsearch/react@3.6.1(@algolia/client-search@4.22.0)(search-insights@2.13.0)': 1199 | dependencies: 1200 | '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0)(search-insights@2.13.0) 1201 | '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0) 1202 | '@docsearch/css': 3.6.1 1203 | algoliasearch: 4.22.0 1204 | optionalDependencies: 1205 | search-insights: 2.13.0 1206 | transitivePeerDependencies: 1207 | - '@algolia/client-search' 1208 | 1209 | '@esbuild/aix-ppc64@0.21.5': 1210 | optional: true 1211 | 1212 | '@esbuild/android-arm64@0.21.5': 1213 | optional: true 1214 | 1215 | '@esbuild/android-arm@0.21.5': 1216 | optional: true 1217 | 1218 | '@esbuild/android-x64@0.21.5': 1219 | optional: true 1220 | 1221 | '@esbuild/darwin-arm64@0.21.5': 1222 | optional: true 1223 | 1224 | '@esbuild/darwin-x64@0.21.5': 1225 | optional: true 1226 | 1227 | '@esbuild/freebsd-arm64@0.21.5': 1228 | optional: true 1229 | 1230 | '@esbuild/freebsd-x64@0.21.5': 1231 | optional: true 1232 | 1233 | '@esbuild/linux-arm64@0.21.5': 1234 | optional: true 1235 | 1236 | '@esbuild/linux-arm@0.21.5': 1237 | optional: true 1238 | 1239 | '@esbuild/linux-ia32@0.21.5': 1240 | optional: true 1241 | 1242 | '@esbuild/linux-loong64@0.21.5': 1243 | optional: true 1244 | 1245 | '@esbuild/linux-mips64el@0.21.5': 1246 | optional: true 1247 | 1248 | '@esbuild/linux-ppc64@0.21.5': 1249 | optional: true 1250 | 1251 | '@esbuild/linux-riscv64@0.21.5': 1252 | optional: true 1253 | 1254 | '@esbuild/linux-s390x@0.21.5': 1255 | optional: true 1256 | 1257 | '@esbuild/linux-x64@0.21.5': 1258 | optional: true 1259 | 1260 | '@esbuild/netbsd-x64@0.21.5': 1261 | optional: true 1262 | 1263 | '@esbuild/openbsd-x64@0.21.5': 1264 | optional: true 1265 | 1266 | '@esbuild/sunos-x64@0.21.5': 1267 | optional: true 1268 | 1269 | '@esbuild/win32-arm64@0.21.5': 1270 | optional: true 1271 | 1272 | '@esbuild/win32-ia32@0.21.5': 1273 | optional: true 1274 | 1275 | '@esbuild/win32-x64@0.21.5': 1276 | optional: true 1277 | 1278 | '@jridgewell/gen-mapping@0.3.3': 1279 | dependencies: 1280 | '@jridgewell/set-array': 1.1.2 1281 | '@jridgewell/sourcemap-codec': 1.4.15 1282 | '@jridgewell/trace-mapping': 0.3.20 1283 | 1284 | '@jridgewell/resolve-uri@3.1.1': {} 1285 | 1286 | '@jridgewell/set-array@1.1.2': {} 1287 | 1288 | '@jridgewell/sourcemap-codec@1.4.15': {} 1289 | 1290 | '@jridgewell/sourcemap-codec@1.5.0': {} 1291 | 1292 | '@jridgewell/trace-mapping@0.3.20': 1293 | dependencies: 1294 | '@jridgewell/resolve-uri': 3.1.1 1295 | '@jridgewell/sourcemap-codec': 1.4.15 1296 | 1297 | '@nodelib/fs.scandir@2.1.5': 1298 | dependencies: 1299 | '@nodelib/fs.stat': 2.0.5 1300 | run-parallel: 1.2.0 1301 | 1302 | '@nodelib/fs.stat@2.0.5': {} 1303 | 1304 | '@nodelib/fs.walk@1.2.8': 1305 | dependencies: 1306 | '@nodelib/fs.scandir': 2.1.5 1307 | fastq: 1.13.0 1308 | 1309 | '@rollup/rollup-android-arm-eabi@4.21.0': 1310 | optional: true 1311 | 1312 | '@rollup/rollup-android-arm64@4.21.0': 1313 | optional: true 1314 | 1315 | '@rollup/rollup-darwin-arm64@4.21.0': 1316 | optional: true 1317 | 1318 | '@rollup/rollup-darwin-x64@4.21.0': 1319 | optional: true 1320 | 1321 | '@rollup/rollup-linux-arm-gnueabihf@4.21.0': 1322 | optional: true 1323 | 1324 | '@rollup/rollup-linux-arm-musleabihf@4.21.0': 1325 | optional: true 1326 | 1327 | '@rollup/rollup-linux-arm64-gnu@4.21.0': 1328 | optional: true 1329 | 1330 | '@rollup/rollup-linux-arm64-musl@4.21.0': 1331 | optional: true 1332 | 1333 | '@rollup/rollup-linux-powerpc64le-gnu@4.21.0': 1334 | optional: true 1335 | 1336 | '@rollup/rollup-linux-riscv64-gnu@4.21.0': 1337 | optional: true 1338 | 1339 | '@rollup/rollup-linux-s390x-gnu@4.21.0': 1340 | optional: true 1341 | 1342 | '@rollup/rollup-linux-x64-gnu@4.21.0': 1343 | optional: true 1344 | 1345 | '@rollup/rollup-linux-x64-musl@4.21.0': 1346 | optional: true 1347 | 1348 | '@rollup/rollup-win32-arm64-msvc@4.21.0': 1349 | optional: true 1350 | 1351 | '@rollup/rollup-win32-ia32-msvc@4.21.0': 1352 | optional: true 1353 | 1354 | '@rollup/rollup-win32-x64-msvc@4.21.0': 1355 | optional: true 1356 | 1357 | '@shikijs/core@1.14.1': 1358 | dependencies: 1359 | '@types/hast': 3.0.4 1360 | 1361 | '@shikijs/transformers@1.14.1': 1362 | dependencies: 1363 | shiki: 1.14.1 1364 | 1365 | '@tailwindcss/typography@0.5.14(tailwindcss@3.4.10)': 1366 | dependencies: 1367 | lodash.castarray: 4.4.0 1368 | lodash.isplainobject: 4.0.6 1369 | lodash.merge: 4.6.2 1370 | postcss-selector-parser: 6.0.10 1371 | tailwindcss: 3.4.10 1372 | 1373 | '@types/estree@1.0.5': {} 1374 | 1375 | '@types/hast@3.0.4': 1376 | dependencies: 1377 | '@types/unist': 3.0.3 1378 | 1379 | '@types/linkify-it@3.0.2': {} 1380 | 1381 | '@types/linkify-it@5.0.0': {} 1382 | 1383 | '@types/markdown-it@12.2.3': 1384 | dependencies: 1385 | '@types/linkify-it': 3.0.2 1386 | '@types/mdurl': 1.0.2 1387 | 1388 | '@types/markdown-it@14.1.2': 1389 | dependencies: 1390 | '@types/linkify-it': 5.0.0 1391 | '@types/mdurl': 2.0.0 1392 | 1393 | '@types/mdurl@1.0.2': {} 1394 | 1395 | '@types/mdurl@2.0.0': {} 1396 | 1397 | '@types/node@20.11.27': 1398 | dependencies: 1399 | undici-types: 5.26.5 1400 | 1401 | '@types/unist@3.0.3': {} 1402 | 1403 | '@types/web-bluetooth@0.0.20': {} 1404 | 1405 | '@vitejs/plugin-vue@5.1.2(vite@5.4.2(@types/node@20.11.27))(vue@3.4.38)': 1406 | dependencies: 1407 | vite: 5.4.2(@types/node@20.11.27) 1408 | vue: 3.4.38 1409 | 1410 | '@vue/compiler-core@3.4.38': 1411 | dependencies: 1412 | '@babel/parser': 7.25.4 1413 | '@vue/shared': 3.4.38 1414 | entities: 4.5.0 1415 | estree-walker: 2.0.2 1416 | source-map-js: 1.2.0 1417 | 1418 | '@vue/compiler-core@3.5.0-beta.3': 1419 | dependencies: 1420 | '@babel/parser': 7.25.4 1421 | '@vue/shared': 3.5.0-beta.3 1422 | entities: 4.5.0 1423 | estree-walker: 2.0.2 1424 | source-map-js: 1.2.0 1425 | 1426 | '@vue/compiler-dom@3.4.38': 1427 | dependencies: 1428 | '@vue/compiler-core': 3.4.38 1429 | '@vue/shared': 3.4.38 1430 | 1431 | '@vue/compiler-dom@3.5.0-beta.3': 1432 | dependencies: 1433 | '@vue/compiler-core': 3.5.0-beta.3 1434 | '@vue/shared': 3.5.0-beta.3 1435 | 1436 | '@vue/compiler-sfc@3.4.38': 1437 | dependencies: 1438 | '@babel/parser': 7.25.4 1439 | '@vue/compiler-core': 3.4.38 1440 | '@vue/compiler-dom': 3.4.38 1441 | '@vue/compiler-ssr': 3.4.38 1442 | '@vue/shared': 3.4.38 1443 | estree-walker: 2.0.2 1444 | magic-string: 0.30.11 1445 | postcss: 8.4.41 1446 | source-map-js: 1.2.0 1447 | 1448 | '@vue/compiler-sfc@3.5.0-beta.3': 1449 | dependencies: 1450 | '@babel/parser': 7.25.4 1451 | '@vue/compiler-core': 3.5.0-beta.3 1452 | '@vue/compiler-dom': 3.5.0-beta.3 1453 | '@vue/compiler-ssr': 3.5.0-beta.3 1454 | '@vue/shared': 3.5.0-beta.3 1455 | estree-walker: 2.0.2 1456 | magic-string: 0.30.11 1457 | postcss: 8.4.41 1458 | source-map-js: 1.2.0 1459 | 1460 | '@vue/compiler-ssr@3.4.38': 1461 | dependencies: 1462 | '@vue/compiler-dom': 3.4.38 1463 | '@vue/shared': 3.4.38 1464 | 1465 | '@vue/compiler-ssr@3.5.0-beta.3': 1466 | dependencies: 1467 | '@vue/compiler-dom': 3.5.0-beta.3 1468 | '@vue/shared': 3.5.0-beta.3 1469 | 1470 | '@vue/devtools-api@7.3.9': 1471 | dependencies: 1472 | '@vue/devtools-kit': 7.3.9 1473 | 1474 | '@vue/devtools-kit@7.3.9': 1475 | dependencies: 1476 | '@vue/devtools-shared': 7.3.9 1477 | birpc: 0.2.17 1478 | hookable: 5.5.3 1479 | mitt: 3.0.1 1480 | perfect-debounce: 1.0.0 1481 | speakingurl: 14.0.1 1482 | superjson: 2.2.1 1483 | 1484 | '@vue/devtools-shared@7.3.9': 1485 | dependencies: 1486 | rfdc: 1.4.1 1487 | 1488 | '@vue/reactivity@3.4.38': 1489 | dependencies: 1490 | '@vue/shared': 3.4.38 1491 | 1492 | '@vue/reactivity@3.5.0-beta.3': 1493 | dependencies: 1494 | '@vue/shared': 3.5.0-beta.3 1495 | 1496 | '@vue/runtime-core@3.4.38': 1497 | dependencies: 1498 | '@vue/reactivity': 3.4.38 1499 | '@vue/shared': 3.4.38 1500 | 1501 | '@vue/runtime-core@3.5.0-beta.3': 1502 | dependencies: 1503 | '@vue/reactivity': 3.5.0-beta.3 1504 | '@vue/shared': 3.5.0-beta.3 1505 | 1506 | '@vue/runtime-dom@3.4.38': 1507 | dependencies: 1508 | '@vue/reactivity': 3.4.38 1509 | '@vue/runtime-core': 3.4.38 1510 | '@vue/shared': 3.4.38 1511 | csstype: 3.1.3 1512 | 1513 | '@vue/runtime-dom@3.5.0-beta.3': 1514 | dependencies: 1515 | '@vue/reactivity': 3.5.0-beta.3 1516 | '@vue/runtime-core': 3.5.0-beta.3 1517 | '@vue/shared': 3.5.0-beta.3 1518 | csstype: 3.1.3 1519 | 1520 | '@vue/server-renderer@3.4.38(vue@3.4.38)': 1521 | dependencies: 1522 | '@vue/compiler-ssr': 3.4.38 1523 | '@vue/shared': 3.4.38 1524 | vue: 3.4.38 1525 | 1526 | '@vue/server-renderer@3.5.0-beta.3(vue@3.5.0-beta.3)': 1527 | dependencies: 1528 | '@vue/compiler-ssr': 3.5.0-beta.3 1529 | '@vue/shared': 3.5.0-beta.3 1530 | vue: 3.5.0-beta.3 1531 | 1532 | '@vue/shared@3.4.38': {} 1533 | 1534 | '@vue/shared@3.5.0-beta.3': {} 1535 | 1536 | '@vueuse/core@11.0.3(vue@3.4.38)': 1537 | dependencies: 1538 | '@types/web-bluetooth': 0.0.20 1539 | '@vueuse/metadata': 11.0.3 1540 | '@vueuse/shared': 11.0.3(vue@3.4.38) 1541 | vue-demi: 0.14.10(vue@3.4.38) 1542 | transitivePeerDependencies: 1543 | - '@vue/composition-api' 1544 | - vue 1545 | 1546 | '@vueuse/integrations@11.0.3(focus-trap@7.5.4)(vue@3.4.38)': 1547 | dependencies: 1548 | '@vueuse/core': 11.0.3(vue@3.4.38) 1549 | '@vueuse/shared': 11.0.3(vue@3.4.38) 1550 | vue-demi: 0.14.10(vue@3.4.38) 1551 | optionalDependencies: 1552 | focus-trap: 7.5.4 1553 | transitivePeerDependencies: 1554 | - '@vue/composition-api' 1555 | - vue 1556 | 1557 | '@vueuse/metadata@11.0.3': {} 1558 | 1559 | '@vueuse/shared@11.0.3(vue@3.4.38)': 1560 | dependencies: 1561 | vue-demi: 0.14.10(vue@3.4.38) 1562 | transitivePeerDependencies: 1563 | - '@vue/composition-api' 1564 | - vue 1565 | 1566 | algoliasearch@4.22.0: 1567 | dependencies: 1568 | '@algolia/cache-browser-local-storage': 4.22.0 1569 | '@algolia/cache-common': 4.22.0 1570 | '@algolia/cache-in-memory': 4.22.0 1571 | '@algolia/client-account': 4.22.0 1572 | '@algolia/client-analytics': 4.22.0 1573 | '@algolia/client-common': 4.22.0 1574 | '@algolia/client-personalization': 4.22.0 1575 | '@algolia/client-search': 4.22.0 1576 | '@algolia/logger-common': 4.22.0 1577 | '@algolia/logger-console': 4.22.0 1578 | '@algolia/requester-browser-xhr': 4.22.0 1579 | '@algolia/requester-common': 4.22.0 1580 | '@algolia/requester-node-http': 4.22.0 1581 | '@algolia/transporter': 4.22.0 1582 | 1583 | any-promise@1.3.0: {} 1584 | 1585 | anymatch@3.1.2: 1586 | dependencies: 1587 | normalize-path: 3.0.0 1588 | picomatch: 2.3.1 1589 | 1590 | arg@5.0.2: {} 1591 | 1592 | argparse@1.0.10: 1593 | dependencies: 1594 | sprintf-js: 1.0.3 1595 | 1596 | balanced-match@1.0.2: {} 1597 | 1598 | binary-extensions@2.2.0: {} 1599 | 1600 | birpc@0.2.17: {} 1601 | 1602 | brace-expansion@1.1.11: 1603 | dependencies: 1604 | balanced-match: 1.0.2 1605 | concat-map: 0.0.1 1606 | 1607 | braces@3.0.2: 1608 | dependencies: 1609 | fill-range: 7.0.1 1610 | 1611 | camelcase-css@2.0.1: {} 1612 | 1613 | chokidar@3.5.3: 1614 | dependencies: 1615 | anymatch: 3.1.2 1616 | braces: 3.0.2 1617 | glob-parent: 5.1.2 1618 | is-binary-path: 2.1.0 1619 | is-glob: 4.0.3 1620 | normalize-path: 3.0.0 1621 | readdirp: 3.6.0 1622 | optionalDependencies: 1623 | fsevents: 2.3.3 1624 | 1625 | commander@4.1.1: {} 1626 | 1627 | concat-map@0.0.1: {} 1628 | 1629 | copy-anything@3.0.5: 1630 | dependencies: 1631 | is-what: 4.1.16 1632 | 1633 | cssesc@3.0.0: {} 1634 | 1635 | csstype@3.1.3: {} 1636 | 1637 | didyoumean@1.2.2: {} 1638 | 1639 | dlv@1.1.3: {} 1640 | 1641 | entities@4.5.0: {} 1642 | 1643 | esbuild@0.21.5: 1644 | optionalDependencies: 1645 | '@esbuild/aix-ppc64': 0.21.5 1646 | '@esbuild/android-arm': 0.21.5 1647 | '@esbuild/android-arm64': 0.21.5 1648 | '@esbuild/android-x64': 0.21.5 1649 | '@esbuild/darwin-arm64': 0.21.5 1650 | '@esbuild/darwin-x64': 0.21.5 1651 | '@esbuild/freebsd-arm64': 0.21.5 1652 | '@esbuild/freebsd-x64': 0.21.5 1653 | '@esbuild/linux-arm': 0.21.5 1654 | '@esbuild/linux-arm64': 0.21.5 1655 | '@esbuild/linux-ia32': 0.21.5 1656 | '@esbuild/linux-loong64': 0.21.5 1657 | '@esbuild/linux-mips64el': 0.21.5 1658 | '@esbuild/linux-ppc64': 0.21.5 1659 | '@esbuild/linux-riscv64': 0.21.5 1660 | '@esbuild/linux-s390x': 0.21.5 1661 | '@esbuild/linux-x64': 0.21.5 1662 | '@esbuild/netbsd-x64': 0.21.5 1663 | '@esbuild/openbsd-x64': 0.21.5 1664 | '@esbuild/sunos-x64': 0.21.5 1665 | '@esbuild/win32-arm64': 0.21.5 1666 | '@esbuild/win32-ia32': 0.21.5 1667 | '@esbuild/win32-x64': 0.21.5 1668 | 1669 | esprima@4.0.1: {} 1670 | 1671 | estree-walker@2.0.2: {} 1672 | 1673 | extend-shallow@2.0.1: 1674 | dependencies: 1675 | is-extendable: 0.1.1 1676 | 1677 | fast-glob@3.3.2: 1678 | dependencies: 1679 | '@nodelib/fs.stat': 2.0.5 1680 | '@nodelib/fs.walk': 1.2.8 1681 | glob-parent: 5.1.2 1682 | merge2: 1.4.1 1683 | micromatch: 4.0.5 1684 | 1685 | fastq@1.13.0: 1686 | dependencies: 1687 | reusify: 1.0.4 1688 | 1689 | feed@4.2.2: 1690 | dependencies: 1691 | xml-js: 1.6.11 1692 | 1693 | fill-range@7.0.1: 1694 | dependencies: 1695 | to-regex-range: 5.0.1 1696 | 1697 | focus-trap@7.5.4: 1698 | dependencies: 1699 | tabbable: 6.2.0 1700 | 1701 | fs.realpath@1.0.0: {} 1702 | 1703 | fsevents@2.3.3: 1704 | optional: true 1705 | 1706 | function-bind@1.1.2: {} 1707 | 1708 | glob-parent@5.1.2: 1709 | dependencies: 1710 | is-glob: 4.0.3 1711 | 1712 | glob-parent@6.0.2: 1713 | dependencies: 1714 | is-glob: 4.0.3 1715 | 1716 | glob@7.1.6: 1717 | dependencies: 1718 | fs.realpath: 1.0.0 1719 | inflight: 1.0.6 1720 | inherits: 2.0.4 1721 | minimatch: 3.1.2 1722 | once: 1.4.0 1723 | path-is-absolute: 1.0.1 1724 | 1725 | gray-matter@4.0.3: 1726 | dependencies: 1727 | js-yaml: 3.14.1 1728 | kind-of: 6.0.3 1729 | section-matter: 1.0.0 1730 | strip-bom-string: 1.0.0 1731 | 1732 | hasown@2.0.0: 1733 | dependencies: 1734 | function-bind: 1.1.2 1735 | 1736 | hookable@5.5.3: {} 1737 | 1738 | inflight@1.0.6: 1739 | dependencies: 1740 | once: 1.4.0 1741 | wrappy: 1.0.2 1742 | 1743 | inherits@2.0.4: {} 1744 | 1745 | is-binary-path@2.1.0: 1746 | dependencies: 1747 | binary-extensions: 2.2.0 1748 | 1749 | is-core-module@2.13.1: 1750 | dependencies: 1751 | hasown: 2.0.0 1752 | 1753 | is-extendable@0.1.1: {} 1754 | 1755 | is-extglob@2.1.1: {} 1756 | 1757 | is-glob@4.0.3: 1758 | dependencies: 1759 | is-extglob: 2.1.1 1760 | 1761 | is-number@7.0.0: {} 1762 | 1763 | is-what@4.1.16: {} 1764 | 1765 | jiti@1.21.0: {} 1766 | 1767 | js-yaml@3.14.1: 1768 | dependencies: 1769 | argparse: 1.0.10 1770 | esprima: 4.0.1 1771 | 1772 | kind-of@6.0.3: {} 1773 | 1774 | lilconfig@2.1.0: {} 1775 | 1776 | lilconfig@3.0.0: {} 1777 | 1778 | lines-and-columns@1.2.4: {} 1779 | 1780 | lodash.castarray@4.4.0: {} 1781 | 1782 | lodash.isplainobject@4.0.6: {} 1783 | 1784 | lodash.merge@4.6.2: {} 1785 | 1786 | magic-string@0.30.11: 1787 | dependencies: 1788 | '@jridgewell/sourcemap-codec': 1.5.0 1789 | 1790 | mark.js@8.11.1: {} 1791 | 1792 | merge2@1.4.1: {} 1793 | 1794 | micromatch@4.0.5: 1795 | dependencies: 1796 | braces: 3.0.2 1797 | picomatch: 2.3.1 1798 | 1799 | minimatch@3.1.2: 1800 | dependencies: 1801 | brace-expansion: 1.1.11 1802 | 1803 | minisearch@7.1.0: {} 1804 | 1805 | mitt@3.0.1: {} 1806 | 1807 | mz@2.7.0: 1808 | dependencies: 1809 | any-promise: 1.3.0 1810 | object-assign: 4.1.1 1811 | thenify-all: 1.6.0 1812 | 1813 | nanoid@3.3.7: {} 1814 | 1815 | normalize-path@3.0.0: {} 1816 | 1817 | object-assign@4.1.1: {} 1818 | 1819 | object-hash@3.0.0: {} 1820 | 1821 | once@1.4.0: 1822 | dependencies: 1823 | wrappy: 1.0.2 1824 | 1825 | path-is-absolute@1.0.1: {} 1826 | 1827 | path-parse@1.0.7: {} 1828 | 1829 | perfect-debounce@1.0.0: {} 1830 | 1831 | picocolors@1.0.0: {} 1832 | 1833 | picocolors@1.0.1: {} 1834 | 1835 | picomatch@2.3.1: {} 1836 | 1837 | pify@2.3.0: {} 1838 | 1839 | pirates@4.0.6: {} 1840 | 1841 | postcss-import@15.1.0(postcss@8.4.38): 1842 | dependencies: 1843 | postcss: 8.4.38 1844 | postcss-value-parser: 4.2.0 1845 | read-cache: 1.0.0 1846 | resolve: 1.22.8 1847 | 1848 | postcss-js@4.0.1(postcss@8.4.38): 1849 | dependencies: 1850 | camelcase-css: 2.0.1 1851 | postcss: 8.4.38 1852 | 1853 | postcss-load-config@4.0.2(postcss@8.4.38): 1854 | dependencies: 1855 | lilconfig: 3.0.0 1856 | yaml: 2.3.4 1857 | optionalDependencies: 1858 | postcss: 8.4.38 1859 | 1860 | postcss-nested@6.0.1(postcss@8.4.38): 1861 | dependencies: 1862 | postcss: 8.4.38 1863 | postcss-selector-parser: 6.0.13 1864 | 1865 | postcss-selector-parser@6.0.10: 1866 | dependencies: 1867 | cssesc: 3.0.0 1868 | util-deprecate: 1.0.2 1869 | 1870 | postcss-selector-parser@6.0.13: 1871 | dependencies: 1872 | cssesc: 3.0.0 1873 | util-deprecate: 1.0.2 1874 | 1875 | postcss-value-parser@4.2.0: {} 1876 | 1877 | postcss@8.4.38: 1878 | dependencies: 1879 | nanoid: 3.3.7 1880 | picocolors: 1.0.0 1881 | source-map-js: 1.2.0 1882 | 1883 | postcss@8.4.41: 1884 | dependencies: 1885 | nanoid: 3.3.7 1886 | picocolors: 1.0.1 1887 | source-map-js: 1.2.0 1888 | 1889 | preact@10.10.6: {} 1890 | 1891 | queue-microtask@1.2.3: {} 1892 | 1893 | read-cache@1.0.0: 1894 | dependencies: 1895 | pify: 2.3.0 1896 | 1897 | readdirp@3.6.0: 1898 | dependencies: 1899 | picomatch: 2.3.1 1900 | 1901 | resolve@1.22.8: 1902 | dependencies: 1903 | is-core-module: 2.13.1 1904 | path-parse: 1.0.7 1905 | supports-preserve-symlinks-flag: 1.0.0 1906 | 1907 | reusify@1.0.4: {} 1908 | 1909 | rfdc@1.4.1: {} 1910 | 1911 | rollup@4.21.0: 1912 | dependencies: 1913 | '@types/estree': 1.0.5 1914 | optionalDependencies: 1915 | '@rollup/rollup-android-arm-eabi': 4.21.0 1916 | '@rollup/rollup-android-arm64': 4.21.0 1917 | '@rollup/rollup-darwin-arm64': 4.21.0 1918 | '@rollup/rollup-darwin-x64': 4.21.0 1919 | '@rollup/rollup-linux-arm-gnueabihf': 4.21.0 1920 | '@rollup/rollup-linux-arm-musleabihf': 4.21.0 1921 | '@rollup/rollup-linux-arm64-gnu': 4.21.0 1922 | '@rollup/rollup-linux-arm64-musl': 4.21.0 1923 | '@rollup/rollup-linux-powerpc64le-gnu': 4.21.0 1924 | '@rollup/rollup-linux-riscv64-gnu': 4.21.0 1925 | '@rollup/rollup-linux-s390x-gnu': 4.21.0 1926 | '@rollup/rollup-linux-x64-gnu': 4.21.0 1927 | '@rollup/rollup-linux-x64-musl': 4.21.0 1928 | '@rollup/rollup-win32-arm64-msvc': 4.21.0 1929 | '@rollup/rollup-win32-ia32-msvc': 4.21.0 1930 | '@rollup/rollup-win32-x64-msvc': 4.21.0 1931 | fsevents: 2.3.3 1932 | 1933 | run-parallel@1.2.0: 1934 | dependencies: 1935 | queue-microtask: 1.2.3 1936 | 1937 | sax@1.2.4: {} 1938 | 1939 | search-insights@2.13.0: {} 1940 | 1941 | section-matter@1.0.0: 1942 | dependencies: 1943 | extend-shallow: 2.0.1 1944 | kind-of: 6.0.3 1945 | 1946 | shiki@1.14.1: 1947 | dependencies: 1948 | '@shikijs/core': 1.14.1 1949 | '@types/hast': 3.0.4 1950 | 1951 | source-map-js@1.2.0: {} 1952 | 1953 | speakingurl@14.0.1: {} 1954 | 1955 | sprintf-js@1.0.3: {} 1956 | 1957 | strip-bom-string@1.0.0: {} 1958 | 1959 | sucrase@3.34.0: 1960 | dependencies: 1961 | '@jridgewell/gen-mapping': 0.3.3 1962 | commander: 4.1.1 1963 | glob: 7.1.6 1964 | lines-and-columns: 1.2.4 1965 | mz: 2.7.0 1966 | pirates: 4.0.6 1967 | ts-interface-checker: 0.1.13 1968 | 1969 | superjson@2.2.1: 1970 | dependencies: 1971 | copy-anything: 3.0.5 1972 | 1973 | supports-preserve-symlinks-flag@1.0.0: {} 1974 | 1975 | tabbable@6.2.0: {} 1976 | 1977 | tailwindcss@3.4.10: 1978 | dependencies: 1979 | '@alloc/quick-lru': 5.2.0 1980 | arg: 5.0.2 1981 | chokidar: 3.5.3 1982 | didyoumean: 1.2.2 1983 | dlv: 1.1.3 1984 | fast-glob: 3.3.2 1985 | glob-parent: 6.0.2 1986 | is-glob: 4.0.3 1987 | jiti: 1.21.0 1988 | lilconfig: 2.1.0 1989 | micromatch: 4.0.5 1990 | normalize-path: 3.0.0 1991 | object-hash: 3.0.0 1992 | picocolors: 1.0.0 1993 | postcss: 8.4.38 1994 | postcss-import: 15.1.0(postcss@8.4.38) 1995 | postcss-js: 4.0.1(postcss@8.4.38) 1996 | postcss-load-config: 4.0.2(postcss@8.4.38) 1997 | postcss-nested: 6.0.1(postcss@8.4.38) 1998 | postcss-selector-parser: 6.0.13 1999 | resolve: 1.22.8 2000 | sucrase: 3.34.0 2001 | transitivePeerDependencies: 2002 | - ts-node 2003 | 2004 | thenify-all@1.6.0: 2005 | dependencies: 2006 | thenify: 3.3.1 2007 | 2008 | thenify@3.3.1: 2009 | dependencies: 2010 | any-promise: 1.3.0 2011 | 2012 | to-fast-properties@2.0.0: {} 2013 | 2014 | to-regex-range@5.0.1: 2015 | dependencies: 2016 | is-number: 7.0.0 2017 | 2018 | ts-interface-checker@0.1.13: {} 2019 | 2020 | undici-types@5.26.5: {} 2021 | 2022 | util-deprecate@1.0.2: {} 2023 | 2024 | vite@5.4.2(@types/node@20.11.27): 2025 | dependencies: 2026 | esbuild: 0.21.5 2027 | postcss: 8.4.41 2028 | rollup: 4.21.0 2029 | optionalDependencies: 2030 | '@types/node': 20.11.27 2031 | fsevents: 2.3.3 2032 | 2033 | vitepress@1.3.4(@algolia/client-search@4.22.0)(@types/node@20.11.27)(postcss@8.4.38)(search-insights@2.13.0): 2034 | dependencies: 2035 | '@docsearch/css': 3.6.1 2036 | '@docsearch/js': 3.6.1(@algolia/client-search@4.22.0)(search-insights@2.13.0) 2037 | '@shikijs/core': 1.14.1 2038 | '@shikijs/transformers': 1.14.1 2039 | '@types/markdown-it': 14.1.2 2040 | '@vitejs/plugin-vue': 5.1.2(vite@5.4.2(@types/node@20.11.27))(vue@3.4.38) 2041 | '@vue/devtools-api': 7.3.9 2042 | '@vue/shared': 3.4.38 2043 | '@vueuse/core': 11.0.3(vue@3.4.38) 2044 | '@vueuse/integrations': 11.0.3(focus-trap@7.5.4)(vue@3.4.38) 2045 | focus-trap: 7.5.4 2046 | mark.js: 8.11.1 2047 | minisearch: 7.1.0 2048 | shiki: 1.14.1 2049 | vite: 5.4.2(@types/node@20.11.27) 2050 | vue: 3.4.38 2051 | optionalDependencies: 2052 | postcss: 8.4.38 2053 | transitivePeerDependencies: 2054 | - '@algolia/client-search' 2055 | - '@types/node' 2056 | - '@types/react' 2057 | - '@vue/composition-api' 2058 | - async-validator 2059 | - axios 2060 | - change-case 2061 | - drauu 2062 | - fuse.js 2063 | - idb-keyval 2064 | - jwt-decode 2065 | - less 2066 | - lightningcss 2067 | - nprogress 2068 | - qrcode 2069 | - react 2070 | - react-dom 2071 | - sass 2072 | - sass-embedded 2073 | - search-insights 2074 | - sortablejs 2075 | - stylus 2076 | - sugarss 2077 | - terser 2078 | - typescript 2079 | - universal-cookie 2080 | 2081 | vue-demi@0.14.10(vue@3.4.38): 2082 | dependencies: 2083 | vue: 3.4.38 2084 | 2085 | vue@3.4.38: 2086 | dependencies: 2087 | '@vue/compiler-dom': 3.4.38 2088 | '@vue/compiler-sfc': 3.4.38 2089 | '@vue/runtime-dom': 3.4.38 2090 | '@vue/server-renderer': 3.4.38(vue@3.4.38) 2091 | '@vue/shared': 3.4.38 2092 | 2093 | vue@3.5.0-beta.3: 2094 | dependencies: 2095 | '@vue/compiler-dom': 3.5.0-beta.3 2096 | '@vue/compiler-sfc': 3.5.0-beta.3 2097 | '@vue/runtime-dom': 3.5.0-beta.3 2098 | '@vue/server-renderer': 3.5.0-beta.3(vue@3.5.0-beta.3) 2099 | '@vue/shared': 3.5.0-beta.3 2100 | 2101 | wrappy@1.0.2: {} 2102 | 2103 | xml-js@1.6.11: 2104 | dependencies: 2105 | sax: 1.2.4 2106 | 2107 | yaml@2.3.4: {} 2108 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | import tailwind from 'tailwindcss' 2 | import tailwindTypography from '@tailwindcss/typography' 3 | 4 | export default { 5 | plugins: [ 6 | tailwind({ 7 | content: ['./.vitepress/theme/**/*.vue'], 8 | plugins: [tailwindTypography] 9 | }) 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /posts/2022-year-in-review.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: '2022 Year In Review' 3 | date: 2023-01-01 4 | author: Evan You 5 | gravatar: eca93da2c67aadafe35d477aa8f454b8 6 | twitter: '@youyuxi' 7 | --- 8 | 9 | Happy new year, Vue community! With 2023 upon us, we would like to take this opportunity to recap what happened in 2022, and discuss what to expect in 2023. 10 | 11 | --- 12 | 13 | ## Recap for 2022 14 | 15 | In February 2022, we [switched Vue's default version to 3.x](./vue-3-as-the-new-default.html). The switch marked the readiness of all the official parts of the framework for v3, including a major revamp of the documentation that provides guidance on latest best practices. 16 | 17 | We are still in a transition period for the ecosystem to move to Vue 3. So after the switch, we focused more on improving Vue's developer experience by investing in tooling. Our team members have been actively involved in the development of [Vite](https://vitejs.dev), and we made significant improvement to Vue's IDE and TypeScript support by shipping [Volar 1.0](./volar-1.0.html). 18 | 19 | Over the course of 2022, we saw the NPM usage of Vue 3 grew by **almost 200%**. On the community side, the Vue 3 ecosystem is now ripe with great solutions to help boost your productivity. Both [Nuxt 3](https://nuxt.com) and [Vuetify 3](https://vuetifyjs.com) reached stable status in November 2022, and [NativeScript for Vue 3](https://github.com/nativescript-vue/nativescript-vue) recently launched beta. In addition, we want to give a shout out to other great projects that had already supported Vue 3 for quite some time: [Quasar](https://quasar.dev/), [NaiveUI](https://www.naiveui.com/), [Ionic Vue](https://ionicframework.com/docs/vue/overview), [PrimeVue](https://www.primefaces.org/primevue/), [InkLine](https://www.inkline.io/), [ElementPlus](https://element-plus.org/), and [more](https://twitter.com/vuejs/status/1599706412086878208). 20 | 21 | Despite Vue 3 being now the default, we understand that many users have to stay on Vue 2 due to the cost of migration. To ensure that Vue 2 users benefit from the advancement of the framework, we decided to move Vue 2's source code to TypeScript and back-ported some of the most important Vue 3 features in [Vue 2.7](./vue-2-7-naruto.html). We also made sure that Vite, Vue Devtools and Volar all simultaneously support Vue 2 and Vue 3. 22 | 23 | ## What to Expect in 2023 24 | 25 | ### Smaller and More Frequent Minor Releases 26 | 27 | With the last Vue 2 minor release (2.7) out of the door, we expect to be full steam ahead shipping features for Vue 3 core in 2023. We have quite a long list of features that we are excited to work on! 28 | 29 | One thing we would like to improve is our release cadence. Vue follows [semver](https://semver.org/), which means we should only ship features in minor versions. In the past, we did a "big minor" approach where we group many features together in big, infrequent minor releases. This has resulted in quite some low-complexity features being blocked while we worked on other high-complexity ones. In 2023, we want to do smaller and more frequent minor releases so that we can get more features out, faster. 30 | 31 | This also means we will be adjusting what goes into 3.3. Originally, we planned to graduate Suspense and Reactivity Transform from experimental status in 3.3. However, we feel that both still need further RFC discussion, and they should not block other more straightforward features to land. Now, the goal of 3.3 is to land proposed / planned features that are clear wins and do not require RFC discussion - for example, supporting externally imported types in ` 81 | 82 | 85 | ``` 86 | 87 | It provides a level of brevity similar to Svelte, but is also usable in plain JS/TS files. It's also straightforward to automatically de-sugar the syntax into plain Composition API code. 88 | 89 | ## Performance and Bundle Size 90 | 91 | Improved performance and bundle size was mentioned as one of the reasons for the migration. While there is no doubt Svelte is highly performant and lightweight, an improvement over other frameworks isn't necessarily guaranteed. In reality, it could depend on other factors, including actual implementations, room for optimization, and scale of the app. 92 | 93 | For reference, Vue 3 is able to outperform Svelte in the [js-framework-benchmark](https://krausest.github.io/js-framework-benchmark/index.html) with a small amount of optimization. Vue 3 achieves this with a runtime / compiler hybrid rendering model which we call [Compiler-Informed Virtual DOM](https://vuejs.org/guide/extras/rendering-mechanism.html#compiler-informed-virtual-dom). It leverages information that can be known at compile time to optimize runtime performance, while retaining compatibility with manually-written render functions. 94 | 95 | In terms of bundle size, Svelte is great for generating widgets or web components that contain only a single or a few components, but its light runtime size can be offset by its more verbose per-component code output compared to other frameworks. [This research](https://github.com/yyx990803/vue-svelte-size-analysis) shows that Svelte's app bundle size can become a disadvantage in larger scale apps, especially with SSR hydration enabled. 96 | 97 | It should be noted that both Svelte and Vue 3 are most likely performant enough for your use case, and that both frameworks will continue to evolve and improve. The Svelte team has mentioned plans for improved per-component code output size in Svelte 4. On the Vue side, we are also exploring an alternative, more performant compilation strategy (codename: Vapor) that is inspired by [Solid.js](https://www.solidjs.com/). Vapor mode will allow Vue components to be compiled into a format that does not involve the Virtual DOM runtime. It is currently still in research phase, and we will share more details about it in 2023. 98 | 99 | ## Retention Data in the State of JS Survey 100 | 101 | In addition, a major point of consideration mentioned involved the satisfaction rating from the State of JavaScript survey. While Svelte definitely deserves its high rating in the survey, using such ratings to decide whether you should migrate your app can impact your team negatively since there are lots of missing context. 102 | 103 | In the survey, the satisfaction rating of a framework is defined as the ratio of number of users who would use it again, compared to those who would not. Note this number is only calculated based on the responses from the users who have used a framework. It should be fair to say that this formula naturally favors newer technologies. In theory, if a framework has only one user and that user reports that they would use it again, the framework would get a perfect 100% score! 104 | 105 | A technology in its early phase primarily attracts users who like the technology by itself. When it goes mainstream, however, it starts to get adopted in larger scale organizations where the tech choice decision is made top-down. This means there will be more and more users who have to work with it regardless of their personal preferences. It also attracts more drive-by users who try it purely out of its popularity, but may not be the target audience. Furthermore, wider adoption challenges the tech in a wider range of scenarios, exposing issues that may only arise in more demanding cases. 106 | 107 | On the other hand, a newer technology will probably not even make it into the survey if it fails to obtain a higher score than existing ones among its early adopters. 108 | 109 | This is in no way meant to diminish the accomplishments of Svelte, nor is it an excuse for us. The Vue 2 to Vue 3 transition didn't go as smoothly as it could, and has definitely affected the satisfaction score. We hope we can turn it around by continuing to improve Vue 3. But hopefully you get the point: the number alone does not fully represent how "good" a framework is, let alone how it suits your use case. Remember that surveys are often subject to many confounding variables and contexts which may not apply to your situation, so be cautious of referring to them as gospel. 110 | 111 | ## Conclusion 112 | 113 | At the end of the day, we think Svelte is a great framework and we wish Escape all the best with their work with Svelte! After all, while we wanted to clarify some of the comparison points made, we're all part of the same community and want to help people build amazing products for users. 114 | 115 | --- 116 | 117 | Finally, if you have a codebase on Vue 2 and are concerned about the approaching end of life (EOY 2023), migrating isn't necessarily the only choice. Vue 2 is a stable, proven, and battle-tested piece of technology that will continue to work. Make sure to evaluate what your real gains and cost would be before committing to big migrations. For those that need to deal with security compliance, we are partnering with [HeroDevs](https://www.herodevs.com/) to provide paid extended support for Vue 2. If this is something your team will need, please register your interest [here](https://airtable.com/shrj37Zf4ZIfrxFzh). 118 | -------------------------------------------------------------------------------- /posts/vitepress-1.0.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'Announcing VitePress 1.0' 3 | date: 2024-03-21 4 | author: Evan You 5 | gravatar: eca93da2c67aadafe35d477aa8f454b8 6 | twitter: '@youyuxi' 7 | --- 8 | 9 | vitepress logo 10 | 11 | Today we are happy to announce the (long overdue) 1.0 release of [VitePress](https://vitepress.dev/)! 12 | 13 | VitePress is a Static Site Generator (SSG) designed for building fast, content-centric websites. In a nutshell, VitePress takes your source content written in Markdown, applies a theme to it, and generates static HTML pages that can be easily deployed anywhere. 14 | 15 | VitePress is built on top of [Vite](https://vitejs.dev/) and [Vue](https://vuejs.org/), and is the spiritual successor and modern replacement of [VuePress](https://vuepress.vuejs.org). 16 | 17 | --- 18 | 19 | ## What can I use VitePress for? 20 | 21 | - **Documentation** 22 | 23 | VitePress ships with a default theme designed for technical documentation. It powers the documentation for [Vite](https://vitejs.dev/), [Rollup](https://rollupjs.org/), [Pinia](https://pinia.vuejs.org/), [VueUse](https://vueuse.org/), [Vitest](https://vitest.dev/), [D3](https://d3js.org/), [UnoCSS](https://unocss.dev/), [Iconify](https://iconify.design/) and many more. 24 | 25 | The [official Vue.js documentation](https://vuejs.org/) is also based on VitePress, but uses a custom theme shared between multiple translations. 26 | 27 | - **Blogs, Portfolios, and Marketing Sites** 28 | 29 | VitePress supports [fully customized themes](https://vitepress.dev/guide/custom-theme), with the developer experience of a standard Vite + Vue application. Being built on Vite also means you can directly leverage Vite plugins from its rich ecosystem. In addition, VitePress provides flexible APIs to [load data](https://vitepress.dev/guide/data-loading) (local or remote) and [dynamically generate routes](https://vitepress.dev/guide/routing#dynamic-routes) at build time. You can use it to build almost anything as long as the data can be determined at build time. 30 | 31 | [This very blog](https://github.com/vuejs/blog) is built with VitePress' custom theme and data loading API. 32 | 33 | ## Developer experience 34 | 35 | VitePress aims to provide a great Developer Experience (DX) when working with Markdown content. 36 | 37 | - **[Vite-Powered:](https://vitejs.dev/)** instant server start, with edits always instantly reflected (<100ms) without page reload. 38 | 39 | - **[Built-in Markdown Extensions:](https://vitepress.dev/guide/markdown)** Frontmatter, tables, syntax highlighting... you name it. Specifically, VitePress provides many advanced features for working with code blocks, making it ideal for highly technical documentation. 40 | 41 | - **[Vue-Enhanced Markdown:](https://vitepress.dev/guide/using-vue)** each Markdown page is also a Vue [Single-File Component](https://vuejs.org/guide/scaling-up/sfc.html), thanks to Vue template's 100% syntax compatibility with HTML. You can embed interactivity in your static content using Vue templating features or imported Vue components. 42 | 43 | ## Performance 44 | 45 | Unlike many traditional SSGs where each navigation results in a full page reload, a website generated by VitePress serves static HTML on the initial visit, but becomes a [Single Page Application](https://en.wikipedia.org/wiki/Single-page_application) (SPA) for subsequent navigation within the site. This model, in our opinion, provides an optimal balance for performance: 46 | 47 | - **Fast Initial Load** 48 | 49 | The initial visit to any page will be served the static, pre-rendered HTML for fast loading speed and optimal SEO. The page then loads a JavaScript bundle that turns the page into a Vue SPA ("hydration"). Contrary to common assumptions of SPA hydration being slow, this process is actually extremely fast thanks to Vue 3's raw performance and compiler optimizations. On [PageSpeed Insights](https://pagespeed.web.dev/report?url=https%3A%2F%2Fvitepress.dev%2F), typical VitePress sites achieve near-perfect performance scores even on low-end mobile devices with a slow network. 50 | 51 | - **Fast Post-load Navigation** 52 | 53 | More importantly, the SPA model leads to better user experience **after** the initial load. Subsequent navigation within the site will no longer cause a full page reload. Instead, the incoming page's content will be fetched and dynamically updated. VitePress also automatically pre-fetches page chunks for links that are within viewport. In most cases, post-load navigation will feel instant. 54 | 55 | - **Interactivity Without Penalty** 56 | 57 | To be able to hydrate the dynamic Vue parts embedded inside static Markdown, each Markdown page is processed as a Vue component and compiled into JavaScript. This may sound inefficient, but the Vue compiler is smart enough to separate the static and dynamic parts, minimizing both the hydration cost and payload size. For the initial page load, the static parts are automatically eliminated from the JavaScript payload and skipped during hydration. 58 | 59 | --- 60 | 61 | The path to VitePress 1.0 wouldn't have been possible without the hard work of [our contributors](https://github.com/vuejs/vitepress/graphs/contributors). In particular, shout out to [Kia King Ishii (@kiaking)](https://github.com/kiaking) for creating the beautiful design for the default theme, and [Divyansh Singh (@brc-dd)](https://github.com/brc-dd) for tirelessly leading the maintenance and pushing new features. 62 | -------------------------------------------------------------------------------- /posts/volar-1.0.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Volar 1.0 "Nika" Released! 3 | date: 2022-10-10 4 | author: Johnson Chu 5 | avatar: https://avatars.githubusercontent.com/u/16279759?v=4 6 | twitter: '@johnsoncodehk' 7 | --- 8 | 9 | We are happy to announce that we have released v1.0 of Volar, the official IDE/TS tooling support for Vue! 🎉 10 | 11 | This major version ships with tons of improvements across the board. In addition to improving UX, performance, and package size, we also released Plugin API v1 and refactored the core code to be framework-agnostic. 12 | 13 | 注:結尾附有中文版本 (There is Chinese version of this post at the end)。 14 | 15 | --- 16 | 17 | Earlier this year in March, Vue creator Evan You started sponsoring me ([@johnsoncodehk](https://twitter.com/johnsoncodehk)) to work full-time on the development of Volar, with the goal of pushing it towards 1.0. After 7 months of hard work, we have finally achieved this goal! 18 | 19 | There are so many updates that you most likely missed some. Below we have summarized the most significant changes from the past 7 months: 20 | 21 | ### Feature Updates 22 | 23 | - Implemented `Goto Code` and `Highlight Selection Dom Elements` for Vite and Nuxt 3 Preview (highly recommend you try it out!) 24 | - Implemented [Component Preview](https://github.com/johnsoncodehk/volar/discussions/1511) 25 | - Added setting `format.initialIndent` to specify the initial indent of SFC blocks 26 | - Implemented support for Web IDE 27 | - No longer built-in support for `