├── .gitignore ├── .npmrc ├── CHANGELOG.md ├── README.md ├── package-lock.json ├── package.json ├── src ├── Search.vue ├── index.ts ├── interfaces │ └── options.ts ├── options.ts ├── searchBuilder.ts └── types │ └── fileSearchData.ts ├── tsconfig.json ├── vite-env.d.ts └── vite.config.ts /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # TypeScript v1 declaration files 45 | typings/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Microbundle cache 57 | .rpt2_cache/ 58 | .rts2_cache_cjs/ 59 | .rts2_cache_es/ 60 | .rts2_cache_umd/ 61 | 62 | # Optional REPL history 63 | .node_repl_history 64 | 65 | # Output of 'npm pack' 66 | *.tgz 67 | 68 | # Yarn Integrity file 69 | .yarn-integrity 70 | 71 | # dotenv environment variables file 72 | .env 73 | .env.test 74 | 75 | # parcel-bundler cache (https://parceljs.org/) 76 | .cache 77 | 78 | # Next.js build output 79 | .next 80 | 81 | # Nuxt.js build / generate output 82 | .nuxt 83 | dist 84 | 85 | # Gatsby files 86 | .cache/ 87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 88 | # https://nextjs.org/blog/next-9-1#public-directory-support 89 | # public 90 | 91 | # vuepress build output 92 | .vuepress/dist 93 | 94 | # Serverless directories 95 | .serverless/ 96 | 97 | # FuseBox cache 98 | .fusebox/ 99 | 100 | # DynamoDB Local files 101 | .dynamodb/ 102 | 103 | # TernJS port file 104 | .tern-port 105 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | auto-install-peers=true 2 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # 1.3.4 2 | 3 | - Add 'preambleTransformer' to options. Adjusted typings accordingly. 4 | 5 | # 1.3.3 6 | 7 | - Add 'fs-extra' to external dependencies. 8 | 9 | # 1.3.2 10 | 11 | - Add prepublish script. 12 | 13 | # 1.3.1 14 | 15 | - Fix scaling for mobile users 16 | 17 | # 1.3.0 18 | 19 | - Added partial file names to ignore to an Array 20 | - Added node_modules to always be ignored 21 | - Added pathway for docs path 22 | 23 | # 1.2.1 24 | 25 | - Fix Readme 26 | - Fix Font Family Issue 27 | - Fix Overflow Issue 28 | 29 | # 1.2.0 30 | 31 | - Change all content parsing to lowercase all data. 32 | - Change search terminology to always lowercase. 33 | - Fix bug where mouseup off-modal in search would exit search. 34 | - Force close search when mouse down is done inside of the canvas. 35 | - Spaces in search box now act as additional search terms. 36 | - "Quotes" in search box turns on strict mode for searching for exact phrases 37 | 38 | # 1.1.2 39 | 40 | - Initial release and patches for a working version. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Hey Listen! 2 | 3 | This repository is no longer necessary. Vitepress has offline search built in as of `alpha 66`. 4 | 5 | --- 6 | 7 | --- 8 | 9 | --- 10 | 11 | # Vitepress Simple Search 12 | 13 | Vitepress needs better offline search. Let's make it simple and quick. 14 | 15 | Thanks to everyone in [this thread for offline search](https://github.com/vuejs/vitepress/issues/670) for getting the general idea implemented. 16 | 17 | ## Features 18 | 19 | * Utilizes front-matter for page titles. 20 | * Auto-strips content of extra tags. 21 | * Auto-reads all markdown documents, and creates search data based on that. 22 | * Ability to change baseURL for doc pathing. 23 | * Ability to change regexp for content stripping and searching content. 24 | * Ability to use quotes for stricter search results in-search. 25 | * Option to change docs path. 26 | * Option to ignore specific files or folders based on partial naming. 27 | 28 | ## Required 29 | 30 | Make sure all of your markdown documents have `title` in their front matter. 31 | 32 | Example: 33 | 34 | ```md 35 | --- 36 | title: 'My Cool Document' 37 | --- 38 | 39 | # {{ $frontmatter.title }} 40 | 41 | Content, and everything else... 42 | ``` 43 | 44 | ## Installing 45 | 46 | ```js 47 | npm i vitepress-plugin-simple-search 48 | ``` 49 | 50 | ## Add the plugin 51 | 52 | Create a file in `docs` called `vite.config.js` or `vite.config.ts`. 53 | 54 | ```js 55 | // docs/vite.config.js 56 | import { SimpleSearch } from "vitepress-plugin-simple-search"; 57 | import { defineConfig } from "vite"; 58 | 59 | export default defineConfig({ 60 | plugins: [SimpleSearch()], 61 | }); 62 | ``` 63 | 64 | ## Additional Options 65 | 66 | These can be passed through the `SimpleSearch` function. 67 | 68 | ```ts 69 | export interface Options { 70 | /** 71 | * Base URL to use for content link replacement. 72 | * 73 | * @type {string} 74 | * @memberof Options 75 | */ 76 | baseURL?: string; 77 | 78 | /** 79 | * Pathway to docs folder. 80 | * Must be an absolute path. 81 | * Defaults to 'docs' folder. 82 | * 83 | * @type {string} 84 | * @memberof Options 85 | */ 86 | docsPath?: string; 87 | 88 | /** 89 | * A list of strings of partial file names or folders to ignore and not add to search. 90 | * 91 | * @type {Array} 92 | * @memberof Options 93 | */ 94 | partialsToIgnore?: Array; 95 | 96 | /** 97 | * Used as a regex content remover for non-matching characters. 98 | * Setting this to undefined turns off all content stripping. 99 | * May have unintended side effects. 100 | * 101 | * @type {RegExp | undefined} 102 | * @memberof Options 103 | */ 104 | regexForContentStripping?: RegExp | undefined; 105 | } 106 | ``` 107 | 108 | **Example** 109 | 110 | ```ts 111 | SimpleSearch({ baseURL: '/my-repo', regexForContentStripping: undefined }); 112 | ``` 113 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vitepress-plugin-simple-search", 3 | "version": "1.3.4", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "vitepress-plugin-simple-search", 9 | "version": "1.3.4", 10 | "license": "MIT", 11 | "dependencies": { 12 | "fs-extra": "^10.1.0", 13 | "glob": "^8.0.3", 14 | "gray-matter": "^4.0.3" 15 | }, 16 | "devDependencies": { 17 | "@types/fs-extra": "^9.0.13", 18 | "@types/glob": "^8.0.0", 19 | "@types/node": "^18.7.18", 20 | "vite-plugin-static-copy": "^0.9.0", 21 | "vue-tsc": "^0.40.5" 22 | }, 23 | "engines": { 24 | "node": "^14.13.1 || ^16.7.0 || >=18" 25 | }, 26 | "peerDependencies": { 27 | "vite": "2 || 3", 28 | "vitepress": "^1.0.0-alpha.13", 29 | "vue": "3" 30 | } 31 | }, 32 | "node_modules/@algolia/autocomplete-core": { 33 | "version": "1.7.1", 34 | "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.7.1.tgz", 35 | "integrity": "sha512-eiZw+fxMzNQn01S8dA/hcCpoWCOCwcIIEUtHHdzN5TGB3IpzLbuhqFeTfh2OUhhgkE8Uo17+wH+QJ/wYyQmmzg==", 36 | "peer": true, 37 | "dependencies": { 38 | "@algolia/autocomplete-shared": "1.7.1" 39 | } 40 | }, 41 | "node_modules/@algolia/autocomplete-preset-algolia": { 42 | "version": "1.7.1", 43 | "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.7.1.tgz", 44 | "integrity": "sha512-pJwmIxeJCymU1M6cGujnaIYcY3QPOVYZOXhFkWVM7IxKzy272BwCvMFMyc5NpG/QmiObBxjo7myd060OeTNJXg==", 45 | "peer": true, 46 | "dependencies": { 47 | "@algolia/autocomplete-shared": "1.7.1" 48 | }, 49 | "peerDependencies": { 50 | "@algolia/client-search": "^4.9.1", 51 | "algoliasearch": "^4.9.1" 52 | } 53 | }, 54 | "node_modules/@algolia/autocomplete-shared": { 55 | "version": "1.7.1", 56 | "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.7.1.tgz", 57 | "integrity": "sha512-eTmGVqY3GeyBTT8IWiB2K5EuURAqhnumfktAEoHxfDY2o7vg2rSnO16ZtIG0fMgt3py28Vwgq42/bVEuaQV7pg==", 58 | "peer": true 59 | }, 60 | "node_modules/@algolia/cache-browser-local-storage": { 61 | "version": "4.14.2", 62 | "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.14.2.tgz", 63 | "integrity": "sha512-FRweBkK/ywO+GKYfAWbrepewQsPTIEirhi1BdykX9mxvBPtGNKccYAxvGdDCumU1jL4r3cayio4psfzKMejBlA==", 64 | "peer": true, 65 | "dependencies": { 66 | "@algolia/cache-common": "4.14.2" 67 | } 68 | }, 69 | "node_modules/@algolia/cache-common": { 70 | "version": "4.14.2", 71 | "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.14.2.tgz", 72 | "integrity": "sha512-SbvAlG9VqNanCErr44q6lEKD2qoK4XtFNx9Qn8FK26ePCI8I9yU7pYB+eM/cZdS9SzQCRJBbHUumVr4bsQ4uxg==", 73 | "peer": true 74 | }, 75 | "node_modules/@algolia/cache-in-memory": { 76 | "version": "4.14.2", 77 | "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.14.2.tgz", 78 | "integrity": "sha512-HrOukWoop9XB/VFojPv1R5SVXowgI56T9pmezd/djh2JnVN/vXswhXV51RKy4nCpqxyHt/aGFSq2qkDvj6KiuQ==", 79 | "peer": true, 80 | "dependencies": { 81 | "@algolia/cache-common": "4.14.2" 82 | } 83 | }, 84 | "node_modules/@algolia/client-account": { 85 | "version": "4.14.2", 86 | "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.14.2.tgz", 87 | "integrity": "sha512-WHtriQqGyibbb/Rx71YY43T0cXqyelEU0lB2QMBRXvD2X0iyeGl4qMxocgEIcbHyK7uqE7hKgjT8aBrHqhgc1w==", 88 | "peer": true, 89 | "dependencies": { 90 | "@algolia/client-common": "4.14.2", 91 | "@algolia/client-search": "4.14.2", 92 | "@algolia/transporter": "4.14.2" 93 | } 94 | }, 95 | "node_modules/@algolia/client-analytics": { 96 | "version": "4.14.2", 97 | "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.14.2.tgz", 98 | "integrity": "sha512-yBvBv2mw+HX5a+aeR0dkvUbFZsiC4FKSnfqk9rrfX+QrlNOKEhCG0tJzjiOggRW4EcNqRmaTULIYvIzQVL2KYQ==", 99 | "peer": true, 100 | "dependencies": { 101 | "@algolia/client-common": "4.14.2", 102 | "@algolia/client-search": "4.14.2", 103 | "@algolia/requester-common": "4.14.2", 104 | "@algolia/transporter": "4.14.2" 105 | } 106 | }, 107 | "node_modules/@algolia/client-common": { 108 | "version": "4.14.2", 109 | "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.14.2.tgz", 110 | "integrity": "sha512-43o4fslNLcktgtDMVaT5XwlzsDPzlqvqesRi4MjQz2x4/Sxm7zYg5LRYFol1BIhG6EwxKvSUq8HcC/KxJu3J0Q==", 111 | "peer": true, 112 | "dependencies": { 113 | "@algolia/requester-common": "4.14.2", 114 | "@algolia/transporter": "4.14.2" 115 | } 116 | }, 117 | "node_modules/@algolia/client-personalization": { 118 | "version": "4.14.2", 119 | "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.14.2.tgz", 120 | "integrity": "sha512-ACCoLi0cL8CBZ1W/2juehSltrw2iqsQBnfiu/Rbl9W2yE6o2ZUb97+sqN/jBqYNQBS+o0ekTMKNkQjHHAcEXNw==", 121 | "peer": true, 122 | "dependencies": { 123 | "@algolia/client-common": "4.14.2", 124 | "@algolia/requester-common": "4.14.2", 125 | "@algolia/transporter": "4.14.2" 126 | } 127 | }, 128 | "node_modules/@algolia/client-search": { 129 | "version": "4.14.2", 130 | "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.14.2.tgz", 131 | "integrity": "sha512-L5zScdOmcZ6NGiVbLKTvP02UbxZ0njd5Vq9nJAmPFtjffUSOGEp11BmD2oMJ5QvARgx2XbX4KzTTNS5ECYIMWw==", 132 | "peer": true, 133 | "dependencies": { 134 | "@algolia/client-common": "4.14.2", 135 | "@algolia/requester-common": "4.14.2", 136 | "@algolia/transporter": "4.14.2" 137 | } 138 | }, 139 | "node_modules/@algolia/logger-common": { 140 | "version": "4.14.2", 141 | "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.14.2.tgz", 142 | "integrity": "sha512-/JGlYvdV++IcMHBnVFsqEisTiOeEr6cUJtpjz8zc0A9c31JrtLm318Njc72p14Pnkw3A/5lHHh+QxpJ6WFTmsA==", 143 | "peer": true 144 | }, 145 | "node_modules/@algolia/logger-console": { 146 | "version": "4.14.2", 147 | "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.14.2.tgz", 148 | "integrity": "sha512-8S2PlpdshbkwlLCSAB5f8c91xyc84VM9Ar9EdfE9UmX+NrKNYnWR1maXXVDQQoto07G1Ol/tYFnFVhUZq0xV/g==", 149 | "peer": true, 150 | "dependencies": { 151 | "@algolia/logger-common": "4.14.2" 152 | } 153 | }, 154 | "node_modules/@algolia/requester-browser-xhr": { 155 | "version": "4.14.2", 156 | "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.14.2.tgz", 157 | "integrity": "sha512-CEh//xYz/WfxHFh7pcMjQNWgpl4wFB85lUMRyVwaDPibNzQRVcV33YS+63fShFWc2+42YEipFGH2iPzlpszmDw==", 158 | "peer": true, 159 | "dependencies": { 160 | "@algolia/requester-common": "4.14.2" 161 | } 162 | }, 163 | "node_modules/@algolia/requester-common": { 164 | "version": "4.14.2", 165 | "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.14.2.tgz", 166 | "integrity": "sha512-73YQsBOKa5fvVV3My7iZHu1sUqmjjfs9TteFWwPwDmnad7T0VTCopttcsM3OjLxZFtBnX61Xxl2T2gmG2O4ehg==", 167 | "peer": true 168 | }, 169 | "node_modules/@algolia/requester-node-http": { 170 | "version": "4.14.2", 171 | "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.14.2.tgz", 172 | "integrity": "sha512-oDbb02kd1o5GTEld4pETlPZLY0e+gOSWjWMJHWTgDXbv9rm/o2cF7japO6Vj1ENnrqWvLBmW1OzV9g6FUFhFXg==", 173 | "peer": true, 174 | "dependencies": { 175 | "@algolia/requester-common": "4.14.2" 176 | } 177 | }, 178 | "node_modules/@algolia/transporter": { 179 | "version": "4.14.2", 180 | "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.14.2.tgz", 181 | "integrity": "sha512-t89dfQb2T9MFQHidjHcfhh6iGMNwvuKUvojAj+JsrHAGbuSy7yE4BylhLX6R0Q1xYRoC4Vvv+O5qIw/LdnQfsQ==", 182 | "peer": true, 183 | "dependencies": { 184 | "@algolia/cache-common": "4.14.2", 185 | "@algolia/logger-common": "4.14.2", 186 | "@algolia/requester-common": "4.14.2" 187 | } 188 | }, 189 | "node_modules/@babel/parser": { 190 | "version": "7.18.13", 191 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.13.tgz", 192 | "integrity": "sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg==", 193 | "bin": { 194 | "parser": "bin/babel-parser.js" 195 | }, 196 | "engines": { 197 | "node": ">=6.0.0" 198 | } 199 | }, 200 | "node_modules/@docsearch/css": { 201 | "version": "3.2.1", 202 | "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.2.1.tgz", 203 | "integrity": "sha512-gaP6TxxwQC+K8D6TRx5WULUWKrcbzECOPA2KCVMuI+6C7dNiGUk5yXXzVhc5sld79XKYLnO9DRTI4mjXDYkh+g==", 204 | "peer": true 205 | }, 206 | "node_modules/@docsearch/js": { 207 | "version": "3.2.1", 208 | "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.2.1.tgz", 209 | "integrity": "sha512-H1PekEtSeS0msetR2YGGey2w7jQ2wAKfGODJvQTygSwMgUZ+2DHpzUgeDyEBIXRIfaBcoQneqrzsljM62pm6Xg==", 210 | "peer": true, 211 | "dependencies": { 212 | "@docsearch/react": "3.2.1", 213 | "preact": "^10.0.0" 214 | } 215 | }, 216 | "node_modules/@docsearch/react": { 217 | "version": "3.2.1", 218 | "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.2.1.tgz", 219 | "integrity": "sha512-EzTQ/y82s14IQC5XVestiK/kFFMe2aagoYFuTAIfIb/e+4FU7kSMKonRtLwsCiLQHmjvNQq+HO+33giJ5YVtaQ==", 220 | "peer": true, 221 | "dependencies": { 222 | "@algolia/autocomplete-core": "1.7.1", 223 | "@algolia/autocomplete-preset-algolia": "1.7.1", 224 | "@docsearch/css": "3.2.1", 225 | "algoliasearch": "^4.0.0" 226 | }, 227 | "peerDependencies": { 228 | "@types/react": ">= 16.8.0 < 19.0.0", 229 | "react": ">= 16.8.0 < 19.0.0", 230 | "react-dom": ">= 16.8.0 < 19.0.0" 231 | }, 232 | "peerDependenciesMeta": { 233 | "@types/react": { 234 | "optional": true 235 | }, 236 | "react": { 237 | "optional": true 238 | }, 239 | "react-dom": { 240 | "optional": true 241 | } 242 | } 243 | }, 244 | "node_modules/@esbuild/linux-loong64": { 245 | "version": "0.14.54", 246 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz", 247 | "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==", 248 | "cpu": [ 249 | "loong64" 250 | ], 251 | "optional": true, 252 | "os": [ 253 | "linux" 254 | ], 255 | "peer": true, 256 | "engines": { 257 | "node": ">=12" 258 | } 259 | }, 260 | "node_modules/@nodelib/fs.scandir": { 261 | "version": "2.1.5", 262 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 263 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 264 | "dev": true, 265 | "dependencies": { 266 | "@nodelib/fs.stat": "2.0.5", 267 | "run-parallel": "^1.1.9" 268 | }, 269 | "engines": { 270 | "node": ">= 8" 271 | } 272 | }, 273 | "node_modules/@nodelib/fs.stat": { 274 | "version": "2.0.5", 275 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 276 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 277 | "dev": true, 278 | "engines": { 279 | "node": ">= 8" 280 | } 281 | }, 282 | "node_modules/@nodelib/fs.walk": { 283 | "version": "1.2.8", 284 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 285 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 286 | "dev": true, 287 | "dependencies": { 288 | "@nodelib/fs.scandir": "2.1.5", 289 | "fastq": "^1.6.0" 290 | }, 291 | "engines": { 292 | "node": ">= 8" 293 | } 294 | }, 295 | "node_modules/@types/fs-extra": { 296 | "version": "9.0.13", 297 | "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", 298 | "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", 299 | "dev": true, 300 | "dependencies": { 301 | "@types/node": "*" 302 | } 303 | }, 304 | "node_modules/@types/glob": { 305 | "version": "8.0.0", 306 | "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.0.0.tgz", 307 | "integrity": "sha512-l6NQsDDyQUVeoTynNpC9uRvCUint/gSUXQA2euwmTuWGvPY5LSDUu6tkCtJB2SvGQlJQzLaKqcGZP4//7EDveA==", 308 | "dev": true, 309 | "dependencies": { 310 | "@types/minimatch": "*", 311 | "@types/node": "*" 312 | } 313 | }, 314 | "node_modules/@types/minimatch": { 315 | "version": "5.1.2", 316 | "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", 317 | "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", 318 | "dev": true 319 | }, 320 | "node_modules/@types/node": { 321 | "version": "18.7.18", 322 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.18.tgz", 323 | "integrity": "sha512-m+6nTEOadJZuTPkKR/SYK3A2d7FZrgElol9UP1Kae90VVU4a6mxnPuLiIW1m4Cq4gZ/nWb9GrdVXJCoCazDAbg==", 324 | "dev": true 325 | }, 326 | "node_modules/@types/web-bluetooth": { 327 | "version": "0.0.15", 328 | "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.15.tgz", 329 | "integrity": "sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA==", 330 | "peer": true 331 | }, 332 | "node_modules/@vitejs/plugin-vue": { 333 | "version": "3.0.3", 334 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.0.3.tgz", 335 | "integrity": "sha512-U4zNBlz9mg+TA+i+5QPc3N5lQvdUXENZLO2h0Wdzp56gI1MWhqJOv+6R+d4kOzoaSSq6TnGPBdZAXKOe4lXy6g==", 336 | "peer": true, 337 | "engines": { 338 | "node": "^14.18.0 || >=16.0.0" 339 | }, 340 | "peerDependencies": { 341 | "vite": "^3.0.0", 342 | "vue": "^3.2.25" 343 | } 344 | }, 345 | "node_modules/@volar/code-gen": { 346 | "version": "0.40.5", 347 | "resolved": "https://registry.npmjs.org/@volar/code-gen/-/code-gen-0.40.5.tgz", 348 | "integrity": "sha512-M3D/2pmvjyGYalmldcyvTqVXhUnDxMYA2HtThmdQ8pVsTW4BVVzqrjnJAvHKNfM/zU0XA+fzIh1tfJ4Cssoe5w==", 349 | "dev": true, 350 | "dependencies": { 351 | "@volar/source-map": "0.40.5" 352 | } 353 | }, 354 | "node_modules/@volar/source-map": { 355 | "version": "0.40.5", 356 | "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-0.40.5.tgz", 357 | "integrity": "sha512-HNO+svbNHXmJtDs82muusI1ErWnMpmNPDpz0Hmex5XDEa+q3NlWFXPMAxCflg294fkCfdOizyCxXYqh3UKz3VA==", 358 | "dev": true, 359 | "dependencies": { 360 | "@vue/reactivity": "3.2.37" 361 | } 362 | }, 363 | "node_modules/@volar/source-map/node_modules/@vue/reactivity": { 364 | "version": "3.2.37", 365 | "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.37.tgz", 366 | "integrity": "sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==", 367 | "dev": true, 368 | "dependencies": { 369 | "@vue/shared": "3.2.37" 370 | } 371 | }, 372 | "node_modules/@volar/source-map/node_modules/@vue/shared": { 373 | "version": "3.2.37", 374 | "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.37.tgz", 375 | "integrity": "sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==", 376 | "dev": true 377 | }, 378 | "node_modules/@volar/typescript-faster": { 379 | "version": "0.40.5", 380 | "resolved": "https://registry.npmjs.org/@volar/typescript-faster/-/typescript-faster-0.40.5.tgz", 381 | "integrity": "sha512-DfIVkQawbesz+8ghbYS1NnlIQjfMIDsSJY/bumIJk98M/tM/2Fykhiil3GDfTr6ju/fAqDpfF8VF8XpYDWPc7w==", 382 | "dev": true, 383 | "dependencies": { 384 | "semver": "^7.3.7" 385 | } 386 | }, 387 | "node_modules/@volar/vue-language-core": { 388 | "version": "0.40.5", 389 | "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-0.40.5.tgz", 390 | "integrity": "sha512-4EpMQdLaORWg3EBZtgqzgkNRm1+qvyvCyLbnWHT2SPkUuHObPcbyA3giXbOEnPB0pnQpr2nVTv+tRLWvksXdyA==", 391 | "dev": true, 392 | "dependencies": { 393 | "@volar/code-gen": "0.40.5", 394 | "@volar/source-map": "0.40.5", 395 | "@vue/compiler-core": "^3.2.37", 396 | "@vue/compiler-dom": "^3.2.37", 397 | "@vue/compiler-sfc": "^3.2.37", 398 | "@vue/reactivity": "^3.2.37", 399 | "@vue/shared": "^3.2.37" 400 | } 401 | }, 402 | "node_modules/@volar/vue-typescript": { 403 | "version": "0.40.5", 404 | "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-0.40.5.tgz", 405 | "integrity": "sha512-6OHJ87e8A3Z0xuWmBg72X5aYbW/EatogB168827j/OL371eiy3dExqa5y2+eJuWYjDiRJOmlHzhUElN+OEQRZQ==", 406 | "dev": true, 407 | "dependencies": { 408 | "@volar/code-gen": "0.40.5", 409 | "@volar/typescript-faster": "0.40.5", 410 | "@volar/vue-language-core": "0.40.5" 411 | } 412 | }, 413 | "node_modules/@vue/compiler-core": { 414 | "version": "3.2.38", 415 | "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.38.tgz", 416 | "integrity": "sha512-/FsvnSu7Z+lkd/8KXMa4yYNUiqQrI22135gfsQYVGuh5tqEgOB0XqrUdb/KnCLa5+TmQLPwvyUnKMyCpu+SX3Q==", 417 | "dependencies": { 418 | "@babel/parser": "^7.16.4", 419 | "@vue/shared": "3.2.38", 420 | "estree-walker": "^2.0.2", 421 | "source-map": "^0.6.1" 422 | } 423 | }, 424 | "node_modules/@vue/compiler-dom": { 425 | "version": "3.2.38", 426 | "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.38.tgz", 427 | "integrity": "sha512-zqX4FgUbw56kzHlgYuEEJR8mefFiiyR3u96498+zWPsLeh1WKvgIReoNE+U7gG8bCUdvsrJ0JRmev0Ky6n2O0g==", 428 | "dependencies": { 429 | "@vue/compiler-core": "3.2.38", 430 | "@vue/shared": "3.2.38" 431 | } 432 | }, 433 | "node_modules/@vue/compiler-sfc": { 434 | "version": "3.2.38", 435 | "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.38.tgz", 436 | "integrity": "sha512-KZjrW32KloMYtTcHAFuw3CqsyWc5X6seb8KbkANSWt3Cz9p2qA8c1GJpSkksFP9ABb6an0FLCFl46ZFXx3kKpg==", 437 | "dependencies": { 438 | "@babel/parser": "^7.16.4", 439 | "@vue/compiler-core": "3.2.38", 440 | "@vue/compiler-dom": "3.2.38", 441 | "@vue/compiler-ssr": "3.2.38", 442 | "@vue/reactivity-transform": "3.2.38", 443 | "@vue/shared": "3.2.38", 444 | "estree-walker": "^2.0.2", 445 | "magic-string": "^0.25.7", 446 | "postcss": "^8.1.10", 447 | "source-map": "^0.6.1" 448 | } 449 | }, 450 | "node_modules/@vue/compiler-ssr": { 451 | "version": "3.2.38", 452 | "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.38.tgz", 453 | "integrity": "sha512-bm9jOeyv1H3UskNm4S6IfueKjUNFmi2kRweFIGnqaGkkRePjwEcfCVqyS3roe7HvF4ugsEkhf4+kIvDhip6XzQ==", 454 | "dependencies": { 455 | "@vue/compiler-dom": "3.2.38", 456 | "@vue/shared": "3.2.38" 457 | } 458 | }, 459 | "node_modules/@vue/devtools-api": { 460 | "version": "6.2.1", 461 | "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.2.1.tgz", 462 | "integrity": "sha512-OEgAMeQXvCoJ+1x8WyQuVZzFo0wcyCmUR3baRVLmKBo1LmYZWMlRiXlux5jd0fqVJu6PfDbOrZItVqUEzLobeQ==", 463 | "peer": true 464 | }, 465 | "node_modules/@vue/reactivity": { 466 | "version": "3.2.38", 467 | "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.38.tgz", 468 | "integrity": "sha512-6L4myYcH9HG2M25co7/BSo0skKFHpAN8PhkNPM4xRVkyGl1K5M3Jx4rp5bsYhvYze2K4+l+pioN4e6ZwFLUVtw==", 469 | "dependencies": { 470 | "@vue/shared": "3.2.38" 471 | } 472 | }, 473 | "node_modules/@vue/reactivity-transform": { 474 | "version": "3.2.38", 475 | "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.38.tgz", 476 | "integrity": "sha512-3SD3Jmi1yXrDwiNJqQ6fs1x61WsDLqVk4NyKVz78mkaIRh6d3IqtRnptgRfXn+Fzf+m6B1KxBYWq1APj6h4qeA==", 477 | "dependencies": { 478 | "@babel/parser": "^7.16.4", 479 | "@vue/compiler-core": "3.2.38", 480 | "@vue/shared": "3.2.38", 481 | "estree-walker": "^2.0.2", 482 | "magic-string": "^0.25.7" 483 | } 484 | }, 485 | "node_modules/@vue/runtime-core": { 486 | "version": "3.2.38", 487 | "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.38.tgz", 488 | "integrity": "sha512-kk0qiSiXUU/IKxZw31824rxmFzrLr3TL6ZcbrxWTKivadoKupdlzbQM4SlGo4MU6Zzrqv4fzyUasTU1jDoEnzg==", 489 | "peer": true, 490 | "dependencies": { 491 | "@vue/reactivity": "3.2.38", 492 | "@vue/shared": "3.2.38" 493 | } 494 | }, 495 | "node_modules/@vue/runtime-dom": { 496 | "version": "3.2.38", 497 | "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.38.tgz", 498 | "integrity": "sha512-4PKAb/ck2TjxdMSzMsnHViOrrwpudk4/A56uZjhzvusoEU9xqa5dygksbzYepdZeB5NqtRw5fRhWIiQlRVK45A==", 499 | "peer": true, 500 | "dependencies": { 501 | "@vue/runtime-core": "3.2.38", 502 | "@vue/shared": "3.2.38", 503 | "csstype": "^2.6.8" 504 | } 505 | }, 506 | "node_modules/@vue/server-renderer": { 507 | "version": "3.2.38", 508 | "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.38.tgz", 509 | "integrity": "sha512-pg+JanpbOZ5kEfOZzO2bt02YHd+ELhYP8zPeLU1H0e7lg079NtuuSB8fjLdn58c4Ou8UQ6C1/P+528nXnLPAhA==", 510 | "peer": true, 511 | "dependencies": { 512 | "@vue/compiler-ssr": "3.2.38", 513 | "@vue/shared": "3.2.38" 514 | }, 515 | "peerDependencies": { 516 | "vue": "3.2.38" 517 | } 518 | }, 519 | "node_modules/@vue/shared": { 520 | "version": "3.2.38", 521 | "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.38.tgz", 522 | "integrity": "sha512-dTyhTIRmGXBjxJE+skC8tTWCGLCVc4wQgRRLt8+O9p5ewBAjoBwtCAkLPrtToSr1xltoe3st21Pv953aOZ7alg==" 523 | }, 524 | "node_modules/@vueuse/core": { 525 | "version": "9.1.1", 526 | "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.1.1.tgz", 527 | "integrity": "sha512-QfuaNWRDMQcCUwXylCyYhPC3ScS9Tiiz4J0chdwr3vOemBwRToSywq8MP+ZegKYFnbETzRY8G/5zC+ca30wrRQ==", 528 | "peer": true, 529 | "dependencies": { 530 | "@types/web-bluetooth": "^0.0.15", 531 | "@vueuse/metadata": "9.1.1", 532 | "@vueuse/shared": "9.1.1", 533 | "vue-demi": "*" 534 | }, 535 | "funding": { 536 | "url": "https://github.com/sponsors/antfu" 537 | } 538 | }, 539 | "node_modules/@vueuse/core/node_modules/vue-demi": { 540 | "version": "0.13.11", 541 | "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", 542 | "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", 543 | "hasInstallScript": true, 544 | "peer": true, 545 | "bin": { 546 | "vue-demi-fix": "bin/vue-demi-fix.js", 547 | "vue-demi-switch": "bin/vue-demi-switch.js" 548 | }, 549 | "engines": { 550 | "node": ">=12" 551 | }, 552 | "funding": { 553 | "url": "https://github.com/sponsors/antfu" 554 | }, 555 | "peerDependencies": { 556 | "@vue/composition-api": "^1.0.0-rc.1", 557 | "vue": "^3.0.0-0 || ^2.6.0" 558 | }, 559 | "peerDependenciesMeta": { 560 | "@vue/composition-api": { 561 | "optional": true 562 | } 563 | } 564 | }, 565 | "node_modules/@vueuse/metadata": { 566 | "version": "9.1.1", 567 | "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.1.1.tgz", 568 | "integrity": "sha512-XZ2KtSW+85LLHB/IdGILPAtbIVHasPsAW7aqz3BRMzJdAQWRiM/FGa1OKBwLbXtUw/AmjKYFlZJo7eOFIBXRog==", 569 | "peer": true, 570 | "funding": { 571 | "url": "https://github.com/sponsors/antfu" 572 | } 573 | }, 574 | "node_modules/@vueuse/shared": { 575 | "version": "9.1.1", 576 | "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.1.1.tgz", 577 | "integrity": "sha512-c+IfcOYmHiHqoEa3ED1Tbpue5GHmoUmTp8PtO4YbczthtY155Rt6DmWhjxMLXBF1Bcidagxljmp/7xtAzEHXLw==", 578 | "peer": true, 579 | "dependencies": { 580 | "vue-demi": "*" 581 | }, 582 | "funding": { 583 | "url": "https://github.com/sponsors/antfu" 584 | } 585 | }, 586 | "node_modules/@vueuse/shared/node_modules/vue-demi": { 587 | "version": "0.13.11", 588 | "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", 589 | "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", 590 | "hasInstallScript": true, 591 | "peer": true, 592 | "bin": { 593 | "vue-demi-fix": "bin/vue-demi-fix.js", 594 | "vue-demi-switch": "bin/vue-demi-switch.js" 595 | }, 596 | "engines": { 597 | "node": ">=12" 598 | }, 599 | "funding": { 600 | "url": "https://github.com/sponsors/antfu" 601 | }, 602 | "peerDependencies": { 603 | "@vue/composition-api": "^1.0.0-rc.1", 604 | "vue": "^3.0.0-0 || ^2.6.0" 605 | }, 606 | "peerDependenciesMeta": { 607 | "@vue/composition-api": { 608 | "optional": true 609 | } 610 | } 611 | }, 612 | "node_modules/algoliasearch": { 613 | "version": "4.14.2", 614 | "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.14.2.tgz", 615 | "integrity": "sha512-ngbEQonGEmf8dyEh5f+uOIihv4176dgbuOZspiuhmTTBRBuzWu3KCGHre6uHj5YyuC7pNvQGzB6ZNJyZi0z+Sg==", 616 | "peer": true, 617 | "dependencies": { 618 | "@algolia/cache-browser-local-storage": "4.14.2", 619 | "@algolia/cache-common": "4.14.2", 620 | "@algolia/cache-in-memory": "4.14.2", 621 | "@algolia/client-account": "4.14.2", 622 | "@algolia/client-analytics": "4.14.2", 623 | "@algolia/client-common": "4.14.2", 624 | "@algolia/client-personalization": "4.14.2", 625 | "@algolia/client-search": "4.14.2", 626 | "@algolia/logger-common": "4.14.2", 627 | "@algolia/logger-console": "4.14.2", 628 | "@algolia/requester-browser-xhr": "4.14.2", 629 | "@algolia/requester-common": "4.14.2", 630 | "@algolia/requester-node-http": "4.14.2", 631 | "@algolia/transporter": "4.14.2" 632 | } 633 | }, 634 | "node_modules/anymatch": { 635 | "version": "3.1.2", 636 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", 637 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", 638 | "dev": true, 639 | "dependencies": { 640 | "normalize-path": "^3.0.0", 641 | "picomatch": "^2.0.4" 642 | }, 643 | "engines": { 644 | "node": ">= 8" 645 | } 646 | }, 647 | "node_modules/argparse": { 648 | "version": "1.0.10", 649 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 650 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 651 | "dependencies": { 652 | "sprintf-js": "~1.0.2" 653 | } 654 | }, 655 | "node_modules/balanced-match": { 656 | "version": "1.0.2", 657 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 658 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" 659 | }, 660 | "node_modules/binary-extensions": { 661 | "version": "2.2.0", 662 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 663 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 664 | "dev": true, 665 | "engines": { 666 | "node": ">=8" 667 | } 668 | }, 669 | "node_modules/body-scroll-lock": { 670 | "version": "4.0.0-beta.0", 671 | "resolved": "https://registry.npmjs.org/body-scroll-lock/-/body-scroll-lock-4.0.0-beta.0.tgz", 672 | "integrity": "sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==", 673 | "peer": true 674 | }, 675 | "node_modules/brace-expansion": { 676 | "version": "2.0.1", 677 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", 678 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 679 | "dependencies": { 680 | "balanced-match": "^1.0.0" 681 | } 682 | }, 683 | "node_modules/braces": { 684 | "version": "3.0.2", 685 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 686 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 687 | "dev": true, 688 | "dependencies": { 689 | "fill-range": "^7.0.1" 690 | }, 691 | "engines": { 692 | "node": ">=8" 693 | } 694 | }, 695 | "node_modules/chokidar": { 696 | "version": "3.5.3", 697 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", 698 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 699 | "dev": true, 700 | "funding": [ 701 | { 702 | "type": "individual", 703 | "url": "https://paulmillr.com/funding/" 704 | } 705 | ], 706 | "dependencies": { 707 | "anymatch": "~3.1.2", 708 | "braces": "~3.0.2", 709 | "glob-parent": "~5.1.2", 710 | "is-binary-path": "~2.1.0", 711 | "is-glob": "~4.0.1", 712 | "normalize-path": "~3.0.0", 713 | "readdirp": "~3.6.0" 714 | }, 715 | "engines": { 716 | "node": ">= 8.10.0" 717 | }, 718 | "optionalDependencies": { 719 | "fsevents": "~2.3.2" 720 | } 721 | }, 722 | "node_modules/csstype": { 723 | "version": "2.6.20", 724 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", 725 | "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==", 726 | "peer": true 727 | }, 728 | "node_modules/esbuild": { 729 | "version": "0.14.54", 730 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz", 731 | "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==", 732 | "hasInstallScript": true, 733 | "peer": true, 734 | "bin": { 735 | "esbuild": "bin/esbuild" 736 | }, 737 | "engines": { 738 | "node": ">=12" 739 | }, 740 | "optionalDependencies": { 741 | "@esbuild/linux-loong64": "0.14.54", 742 | "esbuild-android-64": "0.14.54", 743 | "esbuild-android-arm64": "0.14.54", 744 | "esbuild-darwin-64": "0.14.54", 745 | "esbuild-darwin-arm64": "0.14.54", 746 | "esbuild-freebsd-64": "0.14.54", 747 | "esbuild-freebsd-arm64": "0.14.54", 748 | "esbuild-linux-32": "0.14.54", 749 | "esbuild-linux-64": "0.14.54", 750 | "esbuild-linux-arm": "0.14.54", 751 | "esbuild-linux-arm64": "0.14.54", 752 | "esbuild-linux-mips64le": "0.14.54", 753 | "esbuild-linux-ppc64le": "0.14.54", 754 | "esbuild-linux-riscv64": "0.14.54", 755 | "esbuild-linux-s390x": "0.14.54", 756 | "esbuild-netbsd-64": "0.14.54", 757 | "esbuild-openbsd-64": "0.14.54", 758 | "esbuild-sunos-64": "0.14.54", 759 | "esbuild-windows-32": "0.14.54", 760 | "esbuild-windows-64": "0.14.54", 761 | "esbuild-windows-arm64": "0.14.54" 762 | } 763 | }, 764 | "node_modules/esbuild-android-64": { 765 | "version": "0.14.54", 766 | "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz", 767 | "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==", 768 | "cpu": [ 769 | "x64" 770 | ], 771 | "optional": true, 772 | "os": [ 773 | "android" 774 | ], 775 | "peer": true, 776 | "engines": { 777 | "node": ">=12" 778 | } 779 | }, 780 | "node_modules/esbuild-android-arm64": { 781 | "version": "0.14.54", 782 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz", 783 | "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==", 784 | "cpu": [ 785 | "arm64" 786 | ], 787 | "optional": true, 788 | "os": [ 789 | "android" 790 | ], 791 | "peer": true, 792 | "engines": { 793 | "node": ">=12" 794 | } 795 | }, 796 | "node_modules/esbuild-darwin-64": { 797 | "version": "0.14.54", 798 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz", 799 | "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==", 800 | "cpu": [ 801 | "x64" 802 | ], 803 | "optional": true, 804 | "os": [ 805 | "darwin" 806 | ], 807 | "peer": true, 808 | "engines": { 809 | "node": ">=12" 810 | } 811 | }, 812 | "node_modules/esbuild-darwin-arm64": { 813 | "version": "0.14.54", 814 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz", 815 | "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==", 816 | "cpu": [ 817 | "arm64" 818 | ], 819 | "optional": true, 820 | "os": [ 821 | "darwin" 822 | ], 823 | "peer": true, 824 | "engines": { 825 | "node": ">=12" 826 | } 827 | }, 828 | "node_modules/esbuild-freebsd-64": { 829 | "version": "0.14.54", 830 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz", 831 | "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==", 832 | "cpu": [ 833 | "x64" 834 | ], 835 | "optional": true, 836 | "os": [ 837 | "freebsd" 838 | ], 839 | "peer": true, 840 | "engines": { 841 | "node": ">=12" 842 | } 843 | }, 844 | "node_modules/esbuild-freebsd-arm64": { 845 | "version": "0.14.54", 846 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz", 847 | "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==", 848 | "cpu": [ 849 | "arm64" 850 | ], 851 | "optional": true, 852 | "os": [ 853 | "freebsd" 854 | ], 855 | "peer": true, 856 | "engines": { 857 | "node": ">=12" 858 | } 859 | }, 860 | "node_modules/esbuild-linux-32": { 861 | "version": "0.14.54", 862 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz", 863 | "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==", 864 | "cpu": [ 865 | "ia32" 866 | ], 867 | "optional": true, 868 | "os": [ 869 | "linux" 870 | ], 871 | "peer": true, 872 | "engines": { 873 | "node": ">=12" 874 | } 875 | }, 876 | "node_modules/esbuild-linux-64": { 877 | "version": "0.14.54", 878 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz", 879 | "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==", 880 | "cpu": [ 881 | "x64" 882 | ], 883 | "optional": true, 884 | "os": [ 885 | "linux" 886 | ], 887 | "peer": true, 888 | "engines": { 889 | "node": ">=12" 890 | } 891 | }, 892 | "node_modules/esbuild-linux-arm": { 893 | "version": "0.14.54", 894 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz", 895 | "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==", 896 | "cpu": [ 897 | "arm" 898 | ], 899 | "optional": true, 900 | "os": [ 901 | "linux" 902 | ], 903 | "peer": true, 904 | "engines": { 905 | "node": ">=12" 906 | } 907 | }, 908 | "node_modules/esbuild-linux-arm64": { 909 | "version": "0.14.54", 910 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz", 911 | "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==", 912 | "cpu": [ 913 | "arm64" 914 | ], 915 | "optional": true, 916 | "os": [ 917 | "linux" 918 | ], 919 | "peer": true, 920 | "engines": { 921 | "node": ">=12" 922 | } 923 | }, 924 | "node_modules/esbuild-linux-mips64le": { 925 | "version": "0.14.54", 926 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz", 927 | "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==", 928 | "cpu": [ 929 | "mips64el" 930 | ], 931 | "optional": true, 932 | "os": [ 933 | "linux" 934 | ], 935 | "peer": true, 936 | "engines": { 937 | "node": ">=12" 938 | } 939 | }, 940 | "node_modules/esbuild-linux-ppc64le": { 941 | "version": "0.14.54", 942 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz", 943 | "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==", 944 | "cpu": [ 945 | "ppc64" 946 | ], 947 | "optional": true, 948 | "os": [ 949 | "linux" 950 | ], 951 | "peer": true, 952 | "engines": { 953 | "node": ">=12" 954 | } 955 | }, 956 | "node_modules/esbuild-linux-riscv64": { 957 | "version": "0.14.54", 958 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz", 959 | "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==", 960 | "cpu": [ 961 | "riscv64" 962 | ], 963 | "optional": true, 964 | "os": [ 965 | "linux" 966 | ], 967 | "peer": true, 968 | "engines": { 969 | "node": ">=12" 970 | } 971 | }, 972 | "node_modules/esbuild-linux-s390x": { 973 | "version": "0.14.54", 974 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz", 975 | "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==", 976 | "cpu": [ 977 | "s390x" 978 | ], 979 | "optional": true, 980 | "os": [ 981 | "linux" 982 | ], 983 | "peer": true, 984 | "engines": { 985 | "node": ">=12" 986 | } 987 | }, 988 | "node_modules/esbuild-netbsd-64": { 989 | "version": "0.14.54", 990 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz", 991 | "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==", 992 | "cpu": [ 993 | "x64" 994 | ], 995 | "optional": true, 996 | "os": [ 997 | "netbsd" 998 | ], 999 | "peer": true, 1000 | "engines": { 1001 | "node": ">=12" 1002 | } 1003 | }, 1004 | "node_modules/esbuild-openbsd-64": { 1005 | "version": "0.14.54", 1006 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz", 1007 | "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==", 1008 | "cpu": [ 1009 | "x64" 1010 | ], 1011 | "optional": true, 1012 | "os": [ 1013 | "openbsd" 1014 | ], 1015 | "peer": true, 1016 | "engines": { 1017 | "node": ">=12" 1018 | } 1019 | }, 1020 | "node_modules/esbuild-sunos-64": { 1021 | "version": "0.14.54", 1022 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz", 1023 | "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==", 1024 | "cpu": [ 1025 | "x64" 1026 | ], 1027 | "optional": true, 1028 | "os": [ 1029 | "sunos" 1030 | ], 1031 | "peer": true, 1032 | "engines": { 1033 | "node": ">=12" 1034 | } 1035 | }, 1036 | "node_modules/esbuild-windows-32": { 1037 | "version": "0.14.54", 1038 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz", 1039 | "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==", 1040 | "cpu": [ 1041 | "ia32" 1042 | ], 1043 | "optional": true, 1044 | "os": [ 1045 | "win32" 1046 | ], 1047 | "peer": true, 1048 | "engines": { 1049 | "node": ">=12" 1050 | } 1051 | }, 1052 | "node_modules/esbuild-windows-64": { 1053 | "version": "0.14.54", 1054 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz", 1055 | "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==", 1056 | "cpu": [ 1057 | "x64" 1058 | ], 1059 | "optional": true, 1060 | "os": [ 1061 | "win32" 1062 | ], 1063 | "peer": true, 1064 | "engines": { 1065 | "node": ">=12" 1066 | } 1067 | }, 1068 | "node_modules/esbuild-windows-arm64": { 1069 | "version": "0.14.54", 1070 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz", 1071 | "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==", 1072 | "cpu": [ 1073 | "arm64" 1074 | ], 1075 | "optional": true, 1076 | "os": [ 1077 | "win32" 1078 | ], 1079 | "peer": true, 1080 | "engines": { 1081 | "node": ">=12" 1082 | } 1083 | }, 1084 | "node_modules/esprima": { 1085 | "version": "4.0.1", 1086 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 1087 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 1088 | "bin": { 1089 | "esparse": "bin/esparse.js", 1090 | "esvalidate": "bin/esvalidate.js" 1091 | }, 1092 | "engines": { 1093 | "node": ">=4" 1094 | } 1095 | }, 1096 | "node_modules/estree-walker": { 1097 | "version": "2.0.2", 1098 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 1099 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" 1100 | }, 1101 | "node_modules/extend-shallow": { 1102 | "version": "2.0.1", 1103 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 1104 | "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", 1105 | "dependencies": { 1106 | "is-extendable": "^0.1.0" 1107 | }, 1108 | "engines": { 1109 | "node": ">=0.10.0" 1110 | } 1111 | }, 1112 | "node_modules/fast-glob": { 1113 | "version": "3.2.11", 1114 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", 1115 | "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", 1116 | "dev": true, 1117 | "dependencies": { 1118 | "@nodelib/fs.stat": "^2.0.2", 1119 | "@nodelib/fs.walk": "^1.2.3", 1120 | "glob-parent": "^5.1.2", 1121 | "merge2": "^1.3.0", 1122 | "micromatch": "^4.0.4" 1123 | }, 1124 | "engines": { 1125 | "node": ">=8.6.0" 1126 | } 1127 | }, 1128 | "node_modules/fastq": { 1129 | "version": "1.13.0", 1130 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", 1131 | "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", 1132 | "dev": true, 1133 | "dependencies": { 1134 | "reusify": "^1.0.4" 1135 | } 1136 | }, 1137 | "node_modules/fill-range": { 1138 | "version": "7.0.1", 1139 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 1140 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 1141 | "dev": true, 1142 | "dependencies": { 1143 | "to-regex-range": "^5.0.1" 1144 | }, 1145 | "engines": { 1146 | "node": ">=8" 1147 | } 1148 | }, 1149 | "node_modules/fs-extra": { 1150 | "version": "10.1.0", 1151 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", 1152 | "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", 1153 | "dependencies": { 1154 | "graceful-fs": "^4.2.0", 1155 | "jsonfile": "^6.0.1", 1156 | "universalify": "^2.0.0" 1157 | }, 1158 | "engines": { 1159 | "node": ">=12" 1160 | } 1161 | }, 1162 | "node_modules/fs.realpath": { 1163 | "version": "1.0.0", 1164 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1165 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" 1166 | }, 1167 | "node_modules/fsevents": { 1168 | "version": "2.3.2", 1169 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 1170 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 1171 | "hasInstallScript": true, 1172 | "optional": true, 1173 | "os": [ 1174 | "darwin" 1175 | ], 1176 | "engines": { 1177 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1178 | } 1179 | }, 1180 | "node_modules/function-bind": { 1181 | "version": "1.1.1", 1182 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1183 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1184 | "peer": true 1185 | }, 1186 | "node_modules/glob": { 1187 | "version": "8.0.3", 1188 | "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", 1189 | "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", 1190 | "dependencies": { 1191 | "fs.realpath": "^1.0.0", 1192 | "inflight": "^1.0.4", 1193 | "inherits": "2", 1194 | "minimatch": "^5.0.1", 1195 | "once": "^1.3.0" 1196 | }, 1197 | "engines": { 1198 | "node": ">=12" 1199 | }, 1200 | "funding": { 1201 | "url": "https://github.com/sponsors/isaacs" 1202 | } 1203 | }, 1204 | "node_modules/glob-parent": { 1205 | "version": "5.1.2", 1206 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 1207 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1208 | "dev": true, 1209 | "dependencies": { 1210 | "is-glob": "^4.0.1" 1211 | }, 1212 | "engines": { 1213 | "node": ">= 6" 1214 | } 1215 | }, 1216 | "node_modules/graceful-fs": { 1217 | "version": "4.2.10", 1218 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", 1219 | "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" 1220 | }, 1221 | "node_modules/gray-matter": { 1222 | "version": "4.0.3", 1223 | "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", 1224 | "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", 1225 | "dependencies": { 1226 | "js-yaml": "^3.13.1", 1227 | "kind-of": "^6.0.2", 1228 | "section-matter": "^1.0.0", 1229 | "strip-bom-string": "^1.0.0" 1230 | }, 1231 | "engines": { 1232 | "node": ">=6.0" 1233 | } 1234 | }, 1235 | "node_modules/has": { 1236 | "version": "1.0.3", 1237 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1238 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1239 | "peer": true, 1240 | "dependencies": { 1241 | "function-bind": "^1.1.1" 1242 | }, 1243 | "engines": { 1244 | "node": ">= 0.4.0" 1245 | } 1246 | }, 1247 | "node_modules/inflight": { 1248 | "version": "1.0.6", 1249 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1250 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 1251 | "dependencies": { 1252 | "once": "^1.3.0", 1253 | "wrappy": "1" 1254 | } 1255 | }, 1256 | "node_modules/inherits": { 1257 | "version": "2.0.4", 1258 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1259 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 1260 | }, 1261 | "node_modules/is-binary-path": { 1262 | "version": "2.1.0", 1263 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 1264 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 1265 | "dev": true, 1266 | "dependencies": { 1267 | "binary-extensions": "^2.0.0" 1268 | }, 1269 | "engines": { 1270 | "node": ">=8" 1271 | } 1272 | }, 1273 | "node_modules/is-core-module": { 1274 | "version": "2.10.0", 1275 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", 1276 | "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", 1277 | "peer": true, 1278 | "dependencies": { 1279 | "has": "^1.0.3" 1280 | }, 1281 | "funding": { 1282 | "url": "https://github.com/sponsors/ljharb" 1283 | } 1284 | }, 1285 | "node_modules/is-extendable": { 1286 | "version": "0.1.1", 1287 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 1288 | "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", 1289 | "engines": { 1290 | "node": ">=0.10.0" 1291 | } 1292 | }, 1293 | "node_modules/is-extglob": { 1294 | "version": "2.1.1", 1295 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1296 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 1297 | "dev": true, 1298 | "engines": { 1299 | "node": ">=0.10.0" 1300 | } 1301 | }, 1302 | "node_modules/is-glob": { 1303 | "version": "4.0.3", 1304 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 1305 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 1306 | "dev": true, 1307 | "dependencies": { 1308 | "is-extglob": "^2.1.1" 1309 | }, 1310 | "engines": { 1311 | "node": ">=0.10.0" 1312 | } 1313 | }, 1314 | "node_modules/is-number": { 1315 | "version": "7.0.0", 1316 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 1317 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 1318 | "dev": true, 1319 | "engines": { 1320 | "node": ">=0.12.0" 1321 | } 1322 | }, 1323 | "node_modules/js-yaml": { 1324 | "version": "3.14.1", 1325 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", 1326 | "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", 1327 | "dependencies": { 1328 | "argparse": "^1.0.7", 1329 | "esprima": "^4.0.0" 1330 | }, 1331 | "bin": { 1332 | "js-yaml": "bin/js-yaml.js" 1333 | } 1334 | }, 1335 | "node_modules/jsonc-parser": { 1336 | "version": "3.2.0", 1337 | "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", 1338 | "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", 1339 | "peer": true 1340 | }, 1341 | "node_modules/jsonfile": { 1342 | "version": "6.1.0", 1343 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", 1344 | "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", 1345 | "dependencies": { 1346 | "universalify": "^2.0.0" 1347 | }, 1348 | "optionalDependencies": { 1349 | "graceful-fs": "^4.1.6" 1350 | } 1351 | }, 1352 | "node_modules/kind-of": { 1353 | "version": "6.0.3", 1354 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", 1355 | "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", 1356 | "engines": { 1357 | "node": ">=0.10.0" 1358 | } 1359 | }, 1360 | "node_modules/lru-cache": { 1361 | "version": "6.0.0", 1362 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 1363 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 1364 | "dev": true, 1365 | "dependencies": { 1366 | "yallist": "^4.0.0" 1367 | }, 1368 | "engines": { 1369 | "node": ">=10" 1370 | } 1371 | }, 1372 | "node_modules/magic-string": { 1373 | "version": "0.25.9", 1374 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", 1375 | "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", 1376 | "dependencies": { 1377 | "sourcemap-codec": "^1.4.8" 1378 | } 1379 | }, 1380 | "node_modules/merge2": { 1381 | "version": "1.4.1", 1382 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 1383 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 1384 | "dev": true, 1385 | "engines": { 1386 | "node": ">= 8" 1387 | } 1388 | }, 1389 | "node_modules/micromatch": { 1390 | "version": "4.0.5", 1391 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", 1392 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", 1393 | "dev": true, 1394 | "dependencies": { 1395 | "braces": "^3.0.2", 1396 | "picomatch": "^2.3.1" 1397 | }, 1398 | "engines": { 1399 | "node": ">=8.6" 1400 | } 1401 | }, 1402 | "node_modules/minimatch": { 1403 | "version": "5.1.0", 1404 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", 1405 | "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", 1406 | "dependencies": { 1407 | "brace-expansion": "^2.0.1" 1408 | }, 1409 | "engines": { 1410 | "node": ">=10" 1411 | } 1412 | }, 1413 | "node_modules/nanoid": { 1414 | "version": "3.3.4", 1415 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 1416 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", 1417 | "bin": { 1418 | "nanoid": "bin/nanoid.cjs" 1419 | }, 1420 | "engines": { 1421 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 1422 | } 1423 | }, 1424 | "node_modules/normalize-path": { 1425 | "version": "3.0.0", 1426 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 1427 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 1428 | "dev": true, 1429 | "engines": { 1430 | "node": ">=0.10.0" 1431 | } 1432 | }, 1433 | "node_modules/once": { 1434 | "version": "1.4.0", 1435 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1436 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 1437 | "dependencies": { 1438 | "wrappy": "1" 1439 | } 1440 | }, 1441 | "node_modules/path-parse": { 1442 | "version": "1.0.7", 1443 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 1444 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 1445 | "peer": true 1446 | }, 1447 | "node_modules/picocolors": { 1448 | "version": "1.0.0", 1449 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 1450 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" 1451 | }, 1452 | "node_modules/picomatch": { 1453 | "version": "2.3.1", 1454 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 1455 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 1456 | "dev": true, 1457 | "engines": { 1458 | "node": ">=8.6" 1459 | }, 1460 | "funding": { 1461 | "url": "https://github.com/sponsors/jonschlinkert" 1462 | } 1463 | }, 1464 | "node_modules/postcss": { 1465 | "version": "8.4.16", 1466 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", 1467 | "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", 1468 | "funding": [ 1469 | { 1470 | "type": "opencollective", 1471 | "url": "https://opencollective.com/postcss/" 1472 | }, 1473 | { 1474 | "type": "tidelift", 1475 | "url": "https://tidelift.com/funding/github/npm/postcss" 1476 | } 1477 | ], 1478 | "dependencies": { 1479 | "nanoid": "^3.3.4", 1480 | "picocolors": "^1.0.0", 1481 | "source-map-js": "^1.0.2" 1482 | }, 1483 | "engines": { 1484 | "node": "^10 || ^12 || >=14" 1485 | } 1486 | }, 1487 | "node_modules/preact": { 1488 | "version": "10.10.6", 1489 | "resolved": "https://registry.npmjs.org/preact/-/preact-10.10.6.tgz", 1490 | "integrity": "sha512-w0mCL5vICUAZrh1DuHEdOWBjxdO62lvcO++jbzr8UhhYcTbFkpegLH9XX+7MadjTl/y0feoqwQ/zAnzkc/EGog==", 1491 | "peer": true, 1492 | "funding": { 1493 | "type": "opencollective", 1494 | "url": "https://opencollective.com/preact" 1495 | } 1496 | }, 1497 | "node_modules/queue-microtask": { 1498 | "version": "1.2.3", 1499 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 1500 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 1501 | "dev": true, 1502 | "funding": [ 1503 | { 1504 | "type": "github", 1505 | "url": "https://github.com/sponsors/feross" 1506 | }, 1507 | { 1508 | "type": "patreon", 1509 | "url": "https://www.patreon.com/feross" 1510 | }, 1511 | { 1512 | "type": "consulting", 1513 | "url": "https://feross.org/support" 1514 | } 1515 | ] 1516 | }, 1517 | "node_modules/readdirp": { 1518 | "version": "3.6.0", 1519 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 1520 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 1521 | "dev": true, 1522 | "dependencies": { 1523 | "picomatch": "^2.2.1" 1524 | }, 1525 | "engines": { 1526 | "node": ">=8.10.0" 1527 | } 1528 | }, 1529 | "node_modules/resolve": { 1530 | "version": "1.22.1", 1531 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", 1532 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", 1533 | "peer": true, 1534 | "dependencies": { 1535 | "is-core-module": "^2.9.0", 1536 | "path-parse": "^1.0.7", 1537 | "supports-preserve-symlinks-flag": "^1.0.0" 1538 | }, 1539 | "bin": { 1540 | "resolve": "bin/resolve" 1541 | }, 1542 | "funding": { 1543 | "url": "https://github.com/sponsors/ljharb" 1544 | } 1545 | }, 1546 | "node_modules/reusify": { 1547 | "version": "1.0.4", 1548 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 1549 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 1550 | "dev": true, 1551 | "engines": { 1552 | "iojs": ">=1.0.0", 1553 | "node": ">=0.10.0" 1554 | } 1555 | }, 1556 | "node_modules/rollup": { 1557 | "version": "2.77.3", 1558 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.77.3.tgz", 1559 | "integrity": "sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==", 1560 | "peer": true, 1561 | "bin": { 1562 | "rollup": "dist/bin/rollup" 1563 | }, 1564 | "engines": { 1565 | "node": ">=10.0.0" 1566 | }, 1567 | "optionalDependencies": { 1568 | "fsevents": "~2.3.2" 1569 | } 1570 | }, 1571 | "node_modules/run-parallel": { 1572 | "version": "1.2.0", 1573 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 1574 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 1575 | "dev": true, 1576 | "funding": [ 1577 | { 1578 | "type": "github", 1579 | "url": "https://github.com/sponsors/feross" 1580 | }, 1581 | { 1582 | "type": "patreon", 1583 | "url": "https://www.patreon.com/feross" 1584 | }, 1585 | { 1586 | "type": "consulting", 1587 | "url": "https://feross.org/support" 1588 | } 1589 | ], 1590 | "dependencies": { 1591 | "queue-microtask": "^1.2.2" 1592 | } 1593 | }, 1594 | "node_modules/section-matter": { 1595 | "version": "1.0.0", 1596 | "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", 1597 | "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", 1598 | "dependencies": { 1599 | "extend-shallow": "^2.0.1", 1600 | "kind-of": "^6.0.0" 1601 | }, 1602 | "engines": { 1603 | "node": ">=4" 1604 | } 1605 | }, 1606 | "node_modules/semver": { 1607 | "version": "7.3.7", 1608 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", 1609 | "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", 1610 | "dev": true, 1611 | "dependencies": { 1612 | "lru-cache": "^6.0.0" 1613 | }, 1614 | "bin": { 1615 | "semver": "bin/semver.js" 1616 | }, 1617 | "engines": { 1618 | "node": ">=10" 1619 | } 1620 | }, 1621 | "node_modules/shiki": { 1622 | "version": "0.11.1", 1623 | "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.11.1.tgz", 1624 | "integrity": "sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA==", 1625 | "peer": true, 1626 | "dependencies": { 1627 | "jsonc-parser": "^3.0.0", 1628 | "vscode-oniguruma": "^1.6.1", 1629 | "vscode-textmate": "^6.0.0" 1630 | } 1631 | }, 1632 | "node_modules/source-map": { 1633 | "version": "0.6.1", 1634 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 1635 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 1636 | "engines": { 1637 | "node": ">=0.10.0" 1638 | } 1639 | }, 1640 | "node_modules/source-map-js": { 1641 | "version": "1.0.2", 1642 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 1643 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 1644 | "engines": { 1645 | "node": ">=0.10.0" 1646 | } 1647 | }, 1648 | "node_modules/sourcemap-codec": { 1649 | "version": "1.4.8", 1650 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", 1651 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" 1652 | }, 1653 | "node_modules/sprintf-js": { 1654 | "version": "1.0.3", 1655 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 1656 | "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" 1657 | }, 1658 | "node_modules/strip-bom-string": { 1659 | "version": "1.0.0", 1660 | "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", 1661 | "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", 1662 | "engines": { 1663 | "node": ">=0.10.0" 1664 | } 1665 | }, 1666 | "node_modules/supports-preserve-symlinks-flag": { 1667 | "version": "1.0.0", 1668 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 1669 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 1670 | "peer": true, 1671 | "engines": { 1672 | "node": ">= 0.4" 1673 | }, 1674 | "funding": { 1675 | "url": "https://github.com/sponsors/ljharb" 1676 | } 1677 | }, 1678 | "node_modules/to-regex-range": { 1679 | "version": "5.0.1", 1680 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 1681 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 1682 | "dev": true, 1683 | "dependencies": { 1684 | "is-number": "^7.0.0" 1685 | }, 1686 | "engines": { 1687 | "node": ">=8.0" 1688 | } 1689 | }, 1690 | "node_modules/typescript": { 1691 | "version": "4.8.2", 1692 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz", 1693 | "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==", 1694 | "dev": true, 1695 | "peer": true, 1696 | "bin": { 1697 | "tsc": "bin/tsc", 1698 | "tsserver": "bin/tsserver" 1699 | }, 1700 | "engines": { 1701 | "node": ">=4.2.0" 1702 | } 1703 | }, 1704 | "node_modules/universalify": { 1705 | "version": "2.0.0", 1706 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", 1707 | "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", 1708 | "engines": { 1709 | "node": ">= 10.0.0" 1710 | } 1711 | }, 1712 | "node_modules/vite": { 1713 | "version": "3.0.9", 1714 | "resolved": "https://registry.npmjs.org/vite/-/vite-3.0.9.tgz", 1715 | "integrity": "sha512-waYABTM+G6DBTCpYAxvevpG50UOlZuynR0ckTK5PawNVt7ebX6X7wNXHaGIO6wYYFXSM7/WcuFuO2QzhBB6aMw==", 1716 | "peer": true, 1717 | "dependencies": { 1718 | "esbuild": "^0.14.47", 1719 | "postcss": "^8.4.16", 1720 | "resolve": "^1.22.1", 1721 | "rollup": ">=2.75.6 <2.77.0 || ~2.77.0" 1722 | }, 1723 | "bin": { 1724 | "vite": "bin/vite.js" 1725 | }, 1726 | "engines": { 1727 | "node": "^14.18.0 || >=16.0.0" 1728 | }, 1729 | "optionalDependencies": { 1730 | "fsevents": "~2.3.2" 1731 | }, 1732 | "peerDependencies": { 1733 | "less": "*", 1734 | "sass": "*", 1735 | "stylus": "*", 1736 | "terser": "^5.4.0" 1737 | }, 1738 | "peerDependenciesMeta": { 1739 | "less": { 1740 | "optional": true 1741 | }, 1742 | "sass": { 1743 | "optional": true 1744 | }, 1745 | "stylus": { 1746 | "optional": true 1747 | }, 1748 | "terser": { 1749 | "optional": true 1750 | } 1751 | } 1752 | }, 1753 | "node_modules/vite-plugin-static-copy": { 1754 | "version": "0.9.0", 1755 | "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-0.9.0.tgz", 1756 | "integrity": "sha512-0h8esPoZn6zdTK8KoDbiZPJum7+Nw2t4oLTpu2i2haP2HmgysRH+Xy6FaE6lLyCpgODYR5RiRjbLH0UKUZpIPw==", 1757 | "dev": true, 1758 | "dependencies": { 1759 | "chokidar": "^3.5.3", 1760 | "fast-glob": "^3.2.11", 1761 | "fs-extra": "^10.1.0", 1762 | "picocolors": "^1.0.0" 1763 | }, 1764 | "engines": { 1765 | "node": "^14.18.0 || >=16.0.0" 1766 | }, 1767 | "peerDependencies": { 1768 | "vite": "^3.0.0" 1769 | } 1770 | }, 1771 | "node_modules/vitepress": { 1772 | "version": "1.0.0-alpha.13", 1773 | "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.0-alpha.13.tgz", 1774 | "integrity": "sha512-gCbKb+6o0g5wHt2yyqBPk7FcvrB+MfwGtg1JMS5p99GTQR87l3b7symCl8o1ecv7MDXwJ2mPB8ZrYNLnQAJxLQ==", 1775 | "peer": true, 1776 | "dependencies": { 1777 | "@docsearch/css": "^3.2.1", 1778 | "@docsearch/js": "^3.2.1", 1779 | "@vitejs/plugin-vue": "^3.0.3", 1780 | "@vue/devtools-api": "^6.2.1", 1781 | "@vueuse/core": "^9.1.0", 1782 | "body-scroll-lock": "^4.0.0-beta.0", 1783 | "shiki": "^0.11.1", 1784 | "vite": "^3.0.8", 1785 | "vue": "^3.2.37" 1786 | }, 1787 | "bin": { 1788 | "vitepress": "bin/vitepress.js" 1789 | } 1790 | }, 1791 | "node_modules/vscode-oniguruma": { 1792 | "version": "1.6.2", 1793 | "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz", 1794 | "integrity": "sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==", 1795 | "peer": true 1796 | }, 1797 | "node_modules/vscode-textmate": { 1798 | "version": "6.0.0", 1799 | "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-6.0.0.tgz", 1800 | "integrity": "sha512-gu73tuZfJgu+mvCSy4UZwd2JXykjK9zAZsfmDeut5dx/1a7FeTk0XwJsSuqQn+cuMCGVbIBfl+s53X4T19DnzQ==", 1801 | "peer": true 1802 | }, 1803 | "node_modules/vue": { 1804 | "version": "3.2.38", 1805 | "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.38.tgz", 1806 | "integrity": "sha512-hHrScEFSmDAWL0cwO4B6WO7D3sALZPbfuThDsGBebthrNlDxdJZpGR3WB87VbjpPh96mep1+KzukYEhpHDFa8Q==", 1807 | "peer": true, 1808 | "dependencies": { 1809 | "@vue/compiler-dom": "3.2.38", 1810 | "@vue/compiler-sfc": "3.2.38", 1811 | "@vue/runtime-dom": "3.2.38", 1812 | "@vue/server-renderer": "3.2.38", 1813 | "@vue/shared": "3.2.38" 1814 | } 1815 | }, 1816 | "node_modules/vue-tsc": { 1817 | "version": "0.40.5", 1818 | "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-0.40.5.tgz", 1819 | "integrity": "sha512-rQPyyqrQiDzc8a3YpAYUb27VQbU+NDewOJ7GJBiEIEcaSugMjDc6dtJijTHK32t8IgGPl6ybsJ9LIU9sZvixLA==", 1820 | "dev": true, 1821 | "dependencies": { 1822 | "@volar/vue-language-core": "0.40.5", 1823 | "@volar/vue-typescript": "0.40.5" 1824 | }, 1825 | "bin": { 1826 | "vue-tsc": "bin/vue-tsc.js" 1827 | }, 1828 | "peerDependencies": { 1829 | "typescript": "*" 1830 | } 1831 | }, 1832 | "node_modules/wrappy": { 1833 | "version": "1.0.2", 1834 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1835 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" 1836 | }, 1837 | "node_modules/yallist": { 1838 | "version": "4.0.0", 1839 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 1840 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 1841 | "dev": true 1842 | } 1843 | }, 1844 | "dependencies": { 1845 | "@algolia/autocomplete-core": { 1846 | "version": "1.7.1", 1847 | "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.7.1.tgz", 1848 | "integrity": "sha512-eiZw+fxMzNQn01S8dA/hcCpoWCOCwcIIEUtHHdzN5TGB3IpzLbuhqFeTfh2OUhhgkE8Uo17+wH+QJ/wYyQmmzg==", 1849 | "peer": true, 1850 | "requires": { 1851 | "@algolia/autocomplete-shared": "1.7.1" 1852 | } 1853 | }, 1854 | "@algolia/autocomplete-preset-algolia": { 1855 | "version": "1.7.1", 1856 | "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.7.1.tgz", 1857 | "integrity": "sha512-pJwmIxeJCymU1M6cGujnaIYcY3QPOVYZOXhFkWVM7IxKzy272BwCvMFMyc5NpG/QmiObBxjo7myd060OeTNJXg==", 1858 | "peer": true, 1859 | "requires": { 1860 | "@algolia/autocomplete-shared": "1.7.1" 1861 | } 1862 | }, 1863 | "@algolia/autocomplete-shared": { 1864 | "version": "1.7.1", 1865 | "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.7.1.tgz", 1866 | "integrity": "sha512-eTmGVqY3GeyBTT8IWiB2K5EuURAqhnumfktAEoHxfDY2o7vg2rSnO16ZtIG0fMgt3py28Vwgq42/bVEuaQV7pg==", 1867 | "peer": true 1868 | }, 1869 | "@algolia/cache-browser-local-storage": { 1870 | "version": "4.14.2", 1871 | "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.14.2.tgz", 1872 | "integrity": "sha512-FRweBkK/ywO+GKYfAWbrepewQsPTIEirhi1BdykX9mxvBPtGNKccYAxvGdDCumU1jL4r3cayio4psfzKMejBlA==", 1873 | "peer": true, 1874 | "requires": { 1875 | "@algolia/cache-common": "4.14.2" 1876 | } 1877 | }, 1878 | "@algolia/cache-common": { 1879 | "version": "4.14.2", 1880 | "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.14.2.tgz", 1881 | "integrity": "sha512-SbvAlG9VqNanCErr44q6lEKD2qoK4XtFNx9Qn8FK26ePCI8I9yU7pYB+eM/cZdS9SzQCRJBbHUumVr4bsQ4uxg==", 1882 | "peer": true 1883 | }, 1884 | "@algolia/cache-in-memory": { 1885 | "version": "4.14.2", 1886 | "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.14.2.tgz", 1887 | "integrity": "sha512-HrOukWoop9XB/VFojPv1R5SVXowgI56T9pmezd/djh2JnVN/vXswhXV51RKy4nCpqxyHt/aGFSq2qkDvj6KiuQ==", 1888 | "peer": true, 1889 | "requires": { 1890 | "@algolia/cache-common": "4.14.2" 1891 | } 1892 | }, 1893 | "@algolia/client-account": { 1894 | "version": "4.14.2", 1895 | "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.14.2.tgz", 1896 | "integrity": "sha512-WHtriQqGyibbb/Rx71YY43T0cXqyelEU0lB2QMBRXvD2X0iyeGl4qMxocgEIcbHyK7uqE7hKgjT8aBrHqhgc1w==", 1897 | "peer": true, 1898 | "requires": { 1899 | "@algolia/client-common": "4.14.2", 1900 | "@algolia/client-search": "4.14.2", 1901 | "@algolia/transporter": "4.14.2" 1902 | } 1903 | }, 1904 | "@algolia/client-analytics": { 1905 | "version": "4.14.2", 1906 | "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.14.2.tgz", 1907 | "integrity": "sha512-yBvBv2mw+HX5a+aeR0dkvUbFZsiC4FKSnfqk9rrfX+QrlNOKEhCG0tJzjiOggRW4EcNqRmaTULIYvIzQVL2KYQ==", 1908 | "peer": true, 1909 | "requires": { 1910 | "@algolia/client-common": "4.14.2", 1911 | "@algolia/client-search": "4.14.2", 1912 | "@algolia/requester-common": "4.14.2", 1913 | "@algolia/transporter": "4.14.2" 1914 | } 1915 | }, 1916 | "@algolia/client-common": { 1917 | "version": "4.14.2", 1918 | "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.14.2.tgz", 1919 | "integrity": "sha512-43o4fslNLcktgtDMVaT5XwlzsDPzlqvqesRi4MjQz2x4/Sxm7zYg5LRYFol1BIhG6EwxKvSUq8HcC/KxJu3J0Q==", 1920 | "peer": true, 1921 | "requires": { 1922 | "@algolia/requester-common": "4.14.2", 1923 | "@algolia/transporter": "4.14.2" 1924 | } 1925 | }, 1926 | "@algolia/client-personalization": { 1927 | "version": "4.14.2", 1928 | "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.14.2.tgz", 1929 | "integrity": "sha512-ACCoLi0cL8CBZ1W/2juehSltrw2iqsQBnfiu/Rbl9W2yE6o2ZUb97+sqN/jBqYNQBS+o0ekTMKNkQjHHAcEXNw==", 1930 | "peer": true, 1931 | "requires": { 1932 | "@algolia/client-common": "4.14.2", 1933 | "@algolia/requester-common": "4.14.2", 1934 | "@algolia/transporter": "4.14.2" 1935 | } 1936 | }, 1937 | "@algolia/client-search": { 1938 | "version": "4.14.2", 1939 | "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.14.2.tgz", 1940 | "integrity": "sha512-L5zScdOmcZ6NGiVbLKTvP02UbxZ0njd5Vq9nJAmPFtjffUSOGEp11BmD2oMJ5QvARgx2XbX4KzTTNS5ECYIMWw==", 1941 | "peer": true, 1942 | "requires": { 1943 | "@algolia/client-common": "4.14.2", 1944 | "@algolia/requester-common": "4.14.2", 1945 | "@algolia/transporter": "4.14.2" 1946 | } 1947 | }, 1948 | "@algolia/logger-common": { 1949 | "version": "4.14.2", 1950 | "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.14.2.tgz", 1951 | "integrity": "sha512-/JGlYvdV++IcMHBnVFsqEisTiOeEr6cUJtpjz8zc0A9c31JrtLm318Njc72p14Pnkw3A/5lHHh+QxpJ6WFTmsA==", 1952 | "peer": true 1953 | }, 1954 | "@algolia/logger-console": { 1955 | "version": "4.14.2", 1956 | "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.14.2.tgz", 1957 | "integrity": "sha512-8S2PlpdshbkwlLCSAB5f8c91xyc84VM9Ar9EdfE9UmX+NrKNYnWR1maXXVDQQoto07G1Ol/tYFnFVhUZq0xV/g==", 1958 | "peer": true, 1959 | "requires": { 1960 | "@algolia/logger-common": "4.14.2" 1961 | } 1962 | }, 1963 | "@algolia/requester-browser-xhr": { 1964 | "version": "4.14.2", 1965 | "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.14.2.tgz", 1966 | "integrity": "sha512-CEh//xYz/WfxHFh7pcMjQNWgpl4wFB85lUMRyVwaDPibNzQRVcV33YS+63fShFWc2+42YEipFGH2iPzlpszmDw==", 1967 | "peer": true, 1968 | "requires": { 1969 | "@algolia/requester-common": "4.14.2" 1970 | } 1971 | }, 1972 | "@algolia/requester-common": { 1973 | "version": "4.14.2", 1974 | "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.14.2.tgz", 1975 | "integrity": "sha512-73YQsBOKa5fvVV3My7iZHu1sUqmjjfs9TteFWwPwDmnad7T0VTCopttcsM3OjLxZFtBnX61Xxl2T2gmG2O4ehg==", 1976 | "peer": true 1977 | }, 1978 | "@algolia/requester-node-http": { 1979 | "version": "4.14.2", 1980 | "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.14.2.tgz", 1981 | "integrity": "sha512-oDbb02kd1o5GTEld4pETlPZLY0e+gOSWjWMJHWTgDXbv9rm/o2cF7japO6Vj1ENnrqWvLBmW1OzV9g6FUFhFXg==", 1982 | "peer": true, 1983 | "requires": { 1984 | "@algolia/requester-common": "4.14.2" 1985 | } 1986 | }, 1987 | "@algolia/transporter": { 1988 | "version": "4.14.2", 1989 | "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.14.2.tgz", 1990 | "integrity": "sha512-t89dfQb2T9MFQHidjHcfhh6iGMNwvuKUvojAj+JsrHAGbuSy7yE4BylhLX6R0Q1xYRoC4Vvv+O5qIw/LdnQfsQ==", 1991 | "peer": true, 1992 | "requires": { 1993 | "@algolia/cache-common": "4.14.2", 1994 | "@algolia/logger-common": "4.14.2", 1995 | "@algolia/requester-common": "4.14.2" 1996 | } 1997 | }, 1998 | "@babel/parser": { 1999 | "version": "7.18.13", 2000 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.13.tgz", 2001 | "integrity": "sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg==" 2002 | }, 2003 | "@docsearch/css": { 2004 | "version": "3.2.1", 2005 | "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.2.1.tgz", 2006 | "integrity": "sha512-gaP6TxxwQC+K8D6TRx5WULUWKrcbzECOPA2KCVMuI+6C7dNiGUk5yXXzVhc5sld79XKYLnO9DRTI4mjXDYkh+g==", 2007 | "peer": true 2008 | }, 2009 | "@docsearch/js": { 2010 | "version": "3.2.1", 2011 | "resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.2.1.tgz", 2012 | "integrity": "sha512-H1PekEtSeS0msetR2YGGey2w7jQ2wAKfGODJvQTygSwMgUZ+2DHpzUgeDyEBIXRIfaBcoQneqrzsljM62pm6Xg==", 2013 | "peer": true, 2014 | "requires": { 2015 | "@docsearch/react": "3.2.1", 2016 | "preact": "^10.0.0" 2017 | } 2018 | }, 2019 | "@docsearch/react": { 2020 | "version": "3.2.1", 2021 | "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.2.1.tgz", 2022 | "integrity": "sha512-EzTQ/y82s14IQC5XVestiK/kFFMe2aagoYFuTAIfIb/e+4FU7kSMKonRtLwsCiLQHmjvNQq+HO+33giJ5YVtaQ==", 2023 | "peer": true, 2024 | "requires": { 2025 | "@algolia/autocomplete-core": "1.7.1", 2026 | "@algolia/autocomplete-preset-algolia": "1.7.1", 2027 | "@docsearch/css": "3.2.1", 2028 | "algoliasearch": "^4.0.0" 2029 | } 2030 | }, 2031 | "@esbuild/linux-loong64": { 2032 | "version": "0.14.54", 2033 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz", 2034 | "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==", 2035 | "optional": true, 2036 | "peer": true 2037 | }, 2038 | "@nodelib/fs.scandir": { 2039 | "version": "2.1.5", 2040 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 2041 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 2042 | "dev": true, 2043 | "requires": { 2044 | "@nodelib/fs.stat": "2.0.5", 2045 | "run-parallel": "^1.1.9" 2046 | } 2047 | }, 2048 | "@nodelib/fs.stat": { 2049 | "version": "2.0.5", 2050 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 2051 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 2052 | "dev": true 2053 | }, 2054 | "@nodelib/fs.walk": { 2055 | "version": "1.2.8", 2056 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 2057 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 2058 | "dev": true, 2059 | "requires": { 2060 | "@nodelib/fs.scandir": "2.1.5", 2061 | "fastq": "^1.6.0" 2062 | } 2063 | }, 2064 | "@types/fs-extra": { 2065 | "version": "9.0.13", 2066 | "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", 2067 | "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", 2068 | "dev": true, 2069 | "requires": { 2070 | "@types/node": "*" 2071 | } 2072 | }, 2073 | "@types/glob": { 2074 | "version": "8.0.0", 2075 | "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.0.0.tgz", 2076 | "integrity": "sha512-l6NQsDDyQUVeoTynNpC9uRvCUint/gSUXQA2euwmTuWGvPY5LSDUu6tkCtJB2SvGQlJQzLaKqcGZP4//7EDveA==", 2077 | "dev": true, 2078 | "requires": { 2079 | "@types/minimatch": "*", 2080 | "@types/node": "*" 2081 | } 2082 | }, 2083 | "@types/minimatch": { 2084 | "version": "5.1.2", 2085 | "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", 2086 | "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", 2087 | "dev": true 2088 | }, 2089 | "@types/node": { 2090 | "version": "18.7.18", 2091 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.18.tgz", 2092 | "integrity": "sha512-m+6nTEOadJZuTPkKR/SYK3A2d7FZrgElol9UP1Kae90VVU4a6mxnPuLiIW1m4Cq4gZ/nWb9GrdVXJCoCazDAbg==", 2093 | "dev": true 2094 | }, 2095 | "@types/web-bluetooth": { 2096 | "version": "0.0.15", 2097 | "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.15.tgz", 2098 | "integrity": "sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA==", 2099 | "peer": true 2100 | }, 2101 | "@vitejs/plugin-vue": { 2102 | "version": "3.0.3", 2103 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.0.3.tgz", 2104 | "integrity": "sha512-U4zNBlz9mg+TA+i+5QPc3N5lQvdUXENZLO2h0Wdzp56gI1MWhqJOv+6R+d4kOzoaSSq6TnGPBdZAXKOe4lXy6g==", 2105 | "peer": true, 2106 | "requires": {} 2107 | }, 2108 | "@volar/code-gen": { 2109 | "version": "0.40.5", 2110 | "resolved": "https://registry.npmjs.org/@volar/code-gen/-/code-gen-0.40.5.tgz", 2111 | "integrity": "sha512-M3D/2pmvjyGYalmldcyvTqVXhUnDxMYA2HtThmdQ8pVsTW4BVVzqrjnJAvHKNfM/zU0XA+fzIh1tfJ4Cssoe5w==", 2112 | "dev": true, 2113 | "requires": { 2114 | "@volar/source-map": "0.40.5" 2115 | } 2116 | }, 2117 | "@volar/source-map": { 2118 | "version": "0.40.5", 2119 | "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-0.40.5.tgz", 2120 | "integrity": "sha512-HNO+svbNHXmJtDs82muusI1ErWnMpmNPDpz0Hmex5XDEa+q3NlWFXPMAxCflg294fkCfdOizyCxXYqh3UKz3VA==", 2121 | "dev": true, 2122 | "requires": { 2123 | "@vue/reactivity": "3.2.37" 2124 | }, 2125 | "dependencies": { 2126 | "@vue/reactivity": { 2127 | "version": "3.2.37", 2128 | "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.37.tgz", 2129 | "integrity": "sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==", 2130 | "dev": true, 2131 | "requires": { 2132 | "@vue/shared": "3.2.37" 2133 | } 2134 | }, 2135 | "@vue/shared": { 2136 | "version": "3.2.37", 2137 | "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.37.tgz", 2138 | "integrity": "sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==", 2139 | "dev": true 2140 | } 2141 | } 2142 | }, 2143 | "@volar/typescript-faster": { 2144 | "version": "0.40.5", 2145 | "resolved": "https://registry.npmjs.org/@volar/typescript-faster/-/typescript-faster-0.40.5.tgz", 2146 | "integrity": "sha512-DfIVkQawbesz+8ghbYS1NnlIQjfMIDsSJY/bumIJk98M/tM/2Fykhiil3GDfTr6ju/fAqDpfF8VF8XpYDWPc7w==", 2147 | "dev": true, 2148 | "requires": { 2149 | "semver": "^7.3.7" 2150 | } 2151 | }, 2152 | "@volar/vue-language-core": { 2153 | "version": "0.40.5", 2154 | "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-0.40.5.tgz", 2155 | "integrity": "sha512-4EpMQdLaORWg3EBZtgqzgkNRm1+qvyvCyLbnWHT2SPkUuHObPcbyA3giXbOEnPB0pnQpr2nVTv+tRLWvksXdyA==", 2156 | "dev": true, 2157 | "requires": { 2158 | "@volar/code-gen": "0.40.5", 2159 | "@volar/source-map": "0.40.5", 2160 | "@vue/compiler-core": "^3.2.37", 2161 | "@vue/compiler-dom": "^3.2.37", 2162 | "@vue/compiler-sfc": "^3.2.37", 2163 | "@vue/reactivity": "^3.2.37", 2164 | "@vue/shared": "^3.2.37" 2165 | } 2166 | }, 2167 | "@volar/vue-typescript": { 2168 | "version": "0.40.5", 2169 | "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-0.40.5.tgz", 2170 | "integrity": "sha512-6OHJ87e8A3Z0xuWmBg72X5aYbW/EatogB168827j/OL371eiy3dExqa5y2+eJuWYjDiRJOmlHzhUElN+OEQRZQ==", 2171 | "dev": true, 2172 | "requires": { 2173 | "@volar/code-gen": "0.40.5", 2174 | "@volar/typescript-faster": "0.40.5", 2175 | "@volar/vue-language-core": "0.40.5" 2176 | } 2177 | }, 2178 | "@vue/compiler-core": { 2179 | "version": "3.2.38", 2180 | "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.38.tgz", 2181 | "integrity": "sha512-/FsvnSu7Z+lkd/8KXMa4yYNUiqQrI22135gfsQYVGuh5tqEgOB0XqrUdb/KnCLa5+TmQLPwvyUnKMyCpu+SX3Q==", 2182 | "requires": { 2183 | "@babel/parser": "^7.16.4", 2184 | "@vue/shared": "3.2.38", 2185 | "estree-walker": "^2.0.2", 2186 | "source-map": "^0.6.1" 2187 | } 2188 | }, 2189 | "@vue/compiler-dom": { 2190 | "version": "3.2.38", 2191 | "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.38.tgz", 2192 | "integrity": "sha512-zqX4FgUbw56kzHlgYuEEJR8mefFiiyR3u96498+zWPsLeh1WKvgIReoNE+U7gG8bCUdvsrJ0JRmev0Ky6n2O0g==", 2193 | "requires": { 2194 | "@vue/compiler-core": "3.2.38", 2195 | "@vue/shared": "3.2.38" 2196 | } 2197 | }, 2198 | "@vue/compiler-sfc": { 2199 | "version": "3.2.38", 2200 | "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.38.tgz", 2201 | "integrity": "sha512-KZjrW32KloMYtTcHAFuw3CqsyWc5X6seb8KbkANSWt3Cz9p2qA8c1GJpSkksFP9ABb6an0FLCFl46ZFXx3kKpg==", 2202 | "requires": { 2203 | "@babel/parser": "^7.16.4", 2204 | "@vue/compiler-core": "3.2.38", 2205 | "@vue/compiler-dom": "3.2.38", 2206 | "@vue/compiler-ssr": "3.2.38", 2207 | "@vue/reactivity-transform": "3.2.38", 2208 | "@vue/shared": "3.2.38", 2209 | "estree-walker": "^2.0.2", 2210 | "magic-string": "^0.25.7", 2211 | "postcss": "^8.1.10", 2212 | "source-map": "^0.6.1" 2213 | } 2214 | }, 2215 | "@vue/compiler-ssr": { 2216 | "version": "3.2.38", 2217 | "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.38.tgz", 2218 | "integrity": "sha512-bm9jOeyv1H3UskNm4S6IfueKjUNFmi2kRweFIGnqaGkkRePjwEcfCVqyS3roe7HvF4ugsEkhf4+kIvDhip6XzQ==", 2219 | "requires": { 2220 | "@vue/compiler-dom": "3.2.38", 2221 | "@vue/shared": "3.2.38" 2222 | } 2223 | }, 2224 | "@vue/devtools-api": { 2225 | "version": "6.2.1", 2226 | "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.2.1.tgz", 2227 | "integrity": "sha512-OEgAMeQXvCoJ+1x8WyQuVZzFo0wcyCmUR3baRVLmKBo1LmYZWMlRiXlux5jd0fqVJu6PfDbOrZItVqUEzLobeQ==", 2228 | "peer": true 2229 | }, 2230 | "@vue/reactivity": { 2231 | "version": "3.2.38", 2232 | "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.38.tgz", 2233 | "integrity": "sha512-6L4myYcH9HG2M25co7/BSo0skKFHpAN8PhkNPM4xRVkyGl1K5M3Jx4rp5bsYhvYze2K4+l+pioN4e6ZwFLUVtw==", 2234 | "requires": { 2235 | "@vue/shared": "3.2.38" 2236 | } 2237 | }, 2238 | "@vue/reactivity-transform": { 2239 | "version": "3.2.38", 2240 | "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.38.tgz", 2241 | "integrity": "sha512-3SD3Jmi1yXrDwiNJqQ6fs1x61WsDLqVk4NyKVz78mkaIRh6d3IqtRnptgRfXn+Fzf+m6B1KxBYWq1APj6h4qeA==", 2242 | "requires": { 2243 | "@babel/parser": "^7.16.4", 2244 | "@vue/compiler-core": "3.2.38", 2245 | "@vue/shared": "3.2.38", 2246 | "estree-walker": "^2.0.2", 2247 | "magic-string": "^0.25.7" 2248 | } 2249 | }, 2250 | "@vue/runtime-core": { 2251 | "version": "3.2.38", 2252 | "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.38.tgz", 2253 | "integrity": "sha512-kk0qiSiXUU/IKxZw31824rxmFzrLr3TL6ZcbrxWTKivadoKupdlzbQM4SlGo4MU6Zzrqv4fzyUasTU1jDoEnzg==", 2254 | "peer": true, 2255 | "requires": { 2256 | "@vue/reactivity": "3.2.38", 2257 | "@vue/shared": "3.2.38" 2258 | } 2259 | }, 2260 | "@vue/runtime-dom": { 2261 | "version": "3.2.38", 2262 | "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.38.tgz", 2263 | "integrity": "sha512-4PKAb/ck2TjxdMSzMsnHViOrrwpudk4/A56uZjhzvusoEU9xqa5dygksbzYepdZeB5NqtRw5fRhWIiQlRVK45A==", 2264 | "peer": true, 2265 | "requires": { 2266 | "@vue/runtime-core": "3.2.38", 2267 | "@vue/shared": "3.2.38", 2268 | "csstype": "^2.6.8" 2269 | } 2270 | }, 2271 | "@vue/server-renderer": { 2272 | "version": "3.2.38", 2273 | "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.38.tgz", 2274 | "integrity": "sha512-pg+JanpbOZ5kEfOZzO2bt02YHd+ELhYP8zPeLU1H0e7lg079NtuuSB8fjLdn58c4Ou8UQ6C1/P+528nXnLPAhA==", 2275 | "peer": true, 2276 | "requires": { 2277 | "@vue/compiler-ssr": "3.2.38", 2278 | "@vue/shared": "3.2.38" 2279 | } 2280 | }, 2281 | "@vue/shared": { 2282 | "version": "3.2.38", 2283 | "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.38.tgz", 2284 | "integrity": "sha512-dTyhTIRmGXBjxJE+skC8tTWCGLCVc4wQgRRLt8+O9p5ewBAjoBwtCAkLPrtToSr1xltoe3st21Pv953aOZ7alg==" 2285 | }, 2286 | "@vueuse/core": { 2287 | "version": "9.1.1", 2288 | "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.1.1.tgz", 2289 | "integrity": "sha512-QfuaNWRDMQcCUwXylCyYhPC3ScS9Tiiz4J0chdwr3vOemBwRToSywq8MP+ZegKYFnbETzRY8G/5zC+ca30wrRQ==", 2290 | "peer": true, 2291 | "requires": { 2292 | "@types/web-bluetooth": "^0.0.15", 2293 | "@vueuse/metadata": "9.1.1", 2294 | "@vueuse/shared": "9.1.1", 2295 | "vue-demi": "*" 2296 | }, 2297 | "dependencies": { 2298 | "vue-demi": { 2299 | "version": "0.13.11", 2300 | "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", 2301 | "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", 2302 | "peer": true, 2303 | "requires": {} 2304 | } 2305 | } 2306 | }, 2307 | "@vueuse/metadata": { 2308 | "version": "9.1.1", 2309 | "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.1.1.tgz", 2310 | "integrity": "sha512-XZ2KtSW+85LLHB/IdGILPAtbIVHasPsAW7aqz3BRMzJdAQWRiM/FGa1OKBwLbXtUw/AmjKYFlZJo7eOFIBXRog==", 2311 | "peer": true 2312 | }, 2313 | "@vueuse/shared": { 2314 | "version": "9.1.1", 2315 | "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.1.1.tgz", 2316 | "integrity": "sha512-c+IfcOYmHiHqoEa3ED1Tbpue5GHmoUmTp8PtO4YbczthtY155Rt6DmWhjxMLXBF1Bcidagxljmp/7xtAzEHXLw==", 2317 | "peer": true, 2318 | "requires": { 2319 | "vue-demi": "*" 2320 | }, 2321 | "dependencies": { 2322 | "vue-demi": { 2323 | "version": "0.13.11", 2324 | "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", 2325 | "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", 2326 | "peer": true, 2327 | "requires": {} 2328 | } 2329 | } 2330 | }, 2331 | "algoliasearch": { 2332 | "version": "4.14.2", 2333 | "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.14.2.tgz", 2334 | "integrity": "sha512-ngbEQonGEmf8dyEh5f+uOIihv4176dgbuOZspiuhmTTBRBuzWu3KCGHre6uHj5YyuC7pNvQGzB6ZNJyZi0z+Sg==", 2335 | "peer": true, 2336 | "requires": { 2337 | "@algolia/cache-browser-local-storage": "4.14.2", 2338 | "@algolia/cache-common": "4.14.2", 2339 | "@algolia/cache-in-memory": "4.14.2", 2340 | "@algolia/client-account": "4.14.2", 2341 | "@algolia/client-analytics": "4.14.2", 2342 | "@algolia/client-common": "4.14.2", 2343 | "@algolia/client-personalization": "4.14.2", 2344 | "@algolia/client-search": "4.14.2", 2345 | "@algolia/logger-common": "4.14.2", 2346 | "@algolia/logger-console": "4.14.2", 2347 | "@algolia/requester-browser-xhr": "4.14.2", 2348 | "@algolia/requester-common": "4.14.2", 2349 | "@algolia/requester-node-http": "4.14.2", 2350 | "@algolia/transporter": "4.14.2" 2351 | } 2352 | }, 2353 | "anymatch": { 2354 | "version": "3.1.2", 2355 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", 2356 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", 2357 | "dev": true, 2358 | "requires": { 2359 | "normalize-path": "^3.0.0", 2360 | "picomatch": "^2.0.4" 2361 | } 2362 | }, 2363 | "argparse": { 2364 | "version": "1.0.10", 2365 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 2366 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 2367 | "requires": { 2368 | "sprintf-js": "~1.0.2" 2369 | } 2370 | }, 2371 | "balanced-match": { 2372 | "version": "1.0.2", 2373 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 2374 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" 2375 | }, 2376 | "binary-extensions": { 2377 | "version": "2.2.0", 2378 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 2379 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 2380 | "dev": true 2381 | }, 2382 | "body-scroll-lock": { 2383 | "version": "4.0.0-beta.0", 2384 | "resolved": "https://registry.npmjs.org/body-scroll-lock/-/body-scroll-lock-4.0.0-beta.0.tgz", 2385 | "integrity": "sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==", 2386 | "peer": true 2387 | }, 2388 | "brace-expansion": { 2389 | "version": "2.0.1", 2390 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", 2391 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 2392 | "requires": { 2393 | "balanced-match": "^1.0.0" 2394 | } 2395 | }, 2396 | "braces": { 2397 | "version": "3.0.2", 2398 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 2399 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 2400 | "dev": true, 2401 | "requires": { 2402 | "fill-range": "^7.0.1" 2403 | } 2404 | }, 2405 | "chokidar": { 2406 | "version": "3.5.3", 2407 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", 2408 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 2409 | "dev": true, 2410 | "requires": { 2411 | "anymatch": "~3.1.2", 2412 | "braces": "~3.0.2", 2413 | "fsevents": "~2.3.2", 2414 | "glob-parent": "~5.1.2", 2415 | "is-binary-path": "~2.1.0", 2416 | "is-glob": "~4.0.1", 2417 | "normalize-path": "~3.0.0", 2418 | "readdirp": "~3.6.0" 2419 | } 2420 | }, 2421 | "csstype": { 2422 | "version": "2.6.20", 2423 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", 2424 | "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==", 2425 | "peer": true 2426 | }, 2427 | "esbuild": { 2428 | "version": "0.14.54", 2429 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz", 2430 | "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==", 2431 | "peer": true, 2432 | "requires": { 2433 | "@esbuild/linux-loong64": "0.14.54", 2434 | "esbuild-android-64": "0.14.54", 2435 | "esbuild-android-arm64": "0.14.54", 2436 | "esbuild-darwin-64": "0.14.54", 2437 | "esbuild-darwin-arm64": "0.14.54", 2438 | "esbuild-freebsd-64": "0.14.54", 2439 | "esbuild-freebsd-arm64": "0.14.54", 2440 | "esbuild-linux-32": "0.14.54", 2441 | "esbuild-linux-64": "0.14.54", 2442 | "esbuild-linux-arm": "0.14.54", 2443 | "esbuild-linux-arm64": "0.14.54", 2444 | "esbuild-linux-mips64le": "0.14.54", 2445 | "esbuild-linux-ppc64le": "0.14.54", 2446 | "esbuild-linux-riscv64": "0.14.54", 2447 | "esbuild-linux-s390x": "0.14.54", 2448 | "esbuild-netbsd-64": "0.14.54", 2449 | "esbuild-openbsd-64": "0.14.54", 2450 | "esbuild-sunos-64": "0.14.54", 2451 | "esbuild-windows-32": "0.14.54", 2452 | "esbuild-windows-64": "0.14.54", 2453 | "esbuild-windows-arm64": "0.14.54" 2454 | } 2455 | }, 2456 | "esbuild-android-64": { 2457 | "version": "0.14.54", 2458 | "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz", 2459 | "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==", 2460 | "optional": true, 2461 | "peer": true 2462 | }, 2463 | "esbuild-android-arm64": { 2464 | "version": "0.14.54", 2465 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz", 2466 | "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==", 2467 | "optional": true, 2468 | "peer": true 2469 | }, 2470 | "esbuild-darwin-64": { 2471 | "version": "0.14.54", 2472 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz", 2473 | "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==", 2474 | "optional": true, 2475 | "peer": true 2476 | }, 2477 | "esbuild-darwin-arm64": { 2478 | "version": "0.14.54", 2479 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz", 2480 | "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==", 2481 | "optional": true, 2482 | "peer": true 2483 | }, 2484 | "esbuild-freebsd-64": { 2485 | "version": "0.14.54", 2486 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz", 2487 | "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==", 2488 | "optional": true, 2489 | "peer": true 2490 | }, 2491 | "esbuild-freebsd-arm64": { 2492 | "version": "0.14.54", 2493 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz", 2494 | "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==", 2495 | "optional": true, 2496 | "peer": true 2497 | }, 2498 | "esbuild-linux-32": { 2499 | "version": "0.14.54", 2500 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz", 2501 | "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==", 2502 | "optional": true, 2503 | "peer": true 2504 | }, 2505 | "esbuild-linux-64": { 2506 | "version": "0.14.54", 2507 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz", 2508 | "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==", 2509 | "optional": true, 2510 | "peer": true 2511 | }, 2512 | "esbuild-linux-arm": { 2513 | "version": "0.14.54", 2514 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz", 2515 | "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==", 2516 | "optional": true, 2517 | "peer": true 2518 | }, 2519 | "esbuild-linux-arm64": { 2520 | "version": "0.14.54", 2521 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz", 2522 | "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==", 2523 | "optional": true, 2524 | "peer": true 2525 | }, 2526 | "esbuild-linux-mips64le": { 2527 | "version": "0.14.54", 2528 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz", 2529 | "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==", 2530 | "optional": true, 2531 | "peer": true 2532 | }, 2533 | "esbuild-linux-ppc64le": { 2534 | "version": "0.14.54", 2535 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz", 2536 | "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==", 2537 | "optional": true, 2538 | "peer": true 2539 | }, 2540 | "esbuild-linux-riscv64": { 2541 | "version": "0.14.54", 2542 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz", 2543 | "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==", 2544 | "optional": true, 2545 | "peer": true 2546 | }, 2547 | "esbuild-linux-s390x": { 2548 | "version": "0.14.54", 2549 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz", 2550 | "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==", 2551 | "optional": true, 2552 | "peer": true 2553 | }, 2554 | "esbuild-netbsd-64": { 2555 | "version": "0.14.54", 2556 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz", 2557 | "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==", 2558 | "optional": true, 2559 | "peer": true 2560 | }, 2561 | "esbuild-openbsd-64": { 2562 | "version": "0.14.54", 2563 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz", 2564 | "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==", 2565 | "optional": true, 2566 | "peer": true 2567 | }, 2568 | "esbuild-sunos-64": { 2569 | "version": "0.14.54", 2570 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz", 2571 | "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==", 2572 | "optional": true, 2573 | "peer": true 2574 | }, 2575 | "esbuild-windows-32": { 2576 | "version": "0.14.54", 2577 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz", 2578 | "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==", 2579 | "optional": true, 2580 | "peer": true 2581 | }, 2582 | "esbuild-windows-64": { 2583 | "version": "0.14.54", 2584 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz", 2585 | "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==", 2586 | "optional": true, 2587 | "peer": true 2588 | }, 2589 | "esbuild-windows-arm64": { 2590 | "version": "0.14.54", 2591 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz", 2592 | "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==", 2593 | "optional": true, 2594 | "peer": true 2595 | }, 2596 | "esprima": { 2597 | "version": "4.0.1", 2598 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 2599 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" 2600 | }, 2601 | "estree-walker": { 2602 | "version": "2.0.2", 2603 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 2604 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" 2605 | }, 2606 | "extend-shallow": { 2607 | "version": "2.0.1", 2608 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 2609 | "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", 2610 | "requires": { 2611 | "is-extendable": "^0.1.0" 2612 | } 2613 | }, 2614 | "fast-glob": { 2615 | "version": "3.2.11", 2616 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", 2617 | "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", 2618 | "dev": true, 2619 | "requires": { 2620 | "@nodelib/fs.stat": "^2.0.2", 2621 | "@nodelib/fs.walk": "^1.2.3", 2622 | "glob-parent": "^5.1.2", 2623 | "merge2": "^1.3.0", 2624 | "micromatch": "^4.0.4" 2625 | } 2626 | }, 2627 | "fastq": { 2628 | "version": "1.13.0", 2629 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", 2630 | "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", 2631 | "dev": true, 2632 | "requires": { 2633 | "reusify": "^1.0.4" 2634 | } 2635 | }, 2636 | "fill-range": { 2637 | "version": "7.0.1", 2638 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 2639 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 2640 | "dev": true, 2641 | "requires": { 2642 | "to-regex-range": "^5.0.1" 2643 | } 2644 | }, 2645 | "fs-extra": { 2646 | "version": "10.1.0", 2647 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", 2648 | "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", 2649 | "requires": { 2650 | "graceful-fs": "^4.2.0", 2651 | "jsonfile": "^6.0.1", 2652 | "universalify": "^2.0.0" 2653 | } 2654 | }, 2655 | "fs.realpath": { 2656 | "version": "1.0.0", 2657 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 2658 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" 2659 | }, 2660 | "fsevents": { 2661 | "version": "2.3.2", 2662 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 2663 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 2664 | "optional": true 2665 | }, 2666 | "function-bind": { 2667 | "version": "1.1.1", 2668 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 2669 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 2670 | "peer": true 2671 | }, 2672 | "glob": { 2673 | "version": "8.0.3", 2674 | "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", 2675 | "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", 2676 | "requires": { 2677 | "fs.realpath": "^1.0.0", 2678 | "inflight": "^1.0.4", 2679 | "inherits": "2", 2680 | "minimatch": "^5.0.1", 2681 | "once": "^1.3.0" 2682 | } 2683 | }, 2684 | "glob-parent": { 2685 | "version": "5.1.2", 2686 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 2687 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 2688 | "dev": true, 2689 | "requires": { 2690 | "is-glob": "^4.0.1" 2691 | } 2692 | }, 2693 | "graceful-fs": { 2694 | "version": "4.2.10", 2695 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", 2696 | "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" 2697 | }, 2698 | "gray-matter": { 2699 | "version": "4.0.3", 2700 | "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", 2701 | "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", 2702 | "requires": { 2703 | "js-yaml": "^3.13.1", 2704 | "kind-of": "^6.0.2", 2705 | "section-matter": "^1.0.0", 2706 | "strip-bom-string": "^1.0.0" 2707 | } 2708 | }, 2709 | "has": { 2710 | "version": "1.0.3", 2711 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 2712 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 2713 | "peer": true, 2714 | "requires": { 2715 | "function-bind": "^1.1.1" 2716 | } 2717 | }, 2718 | "inflight": { 2719 | "version": "1.0.6", 2720 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 2721 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 2722 | "requires": { 2723 | "once": "^1.3.0", 2724 | "wrappy": "1" 2725 | } 2726 | }, 2727 | "inherits": { 2728 | "version": "2.0.4", 2729 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 2730 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 2731 | }, 2732 | "is-binary-path": { 2733 | "version": "2.1.0", 2734 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 2735 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 2736 | "dev": true, 2737 | "requires": { 2738 | "binary-extensions": "^2.0.0" 2739 | } 2740 | }, 2741 | "is-core-module": { 2742 | "version": "2.10.0", 2743 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", 2744 | "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", 2745 | "peer": true, 2746 | "requires": { 2747 | "has": "^1.0.3" 2748 | } 2749 | }, 2750 | "is-extendable": { 2751 | "version": "0.1.1", 2752 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 2753 | "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" 2754 | }, 2755 | "is-extglob": { 2756 | "version": "2.1.1", 2757 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 2758 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 2759 | "dev": true 2760 | }, 2761 | "is-glob": { 2762 | "version": "4.0.3", 2763 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 2764 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 2765 | "dev": true, 2766 | "requires": { 2767 | "is-extglob": "^2.1.1" 2768 | } 2769 | }, 2770 | "is-number": { 2771 | "version": "7.0.0", 2772 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 2773 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 2774 | "dev": true 2775 | }, 2776 | "js-yaml": { 2777 | "version": "3.14.1", 2778 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", 2779 | "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", 2780 | "requires": { 2781 | "argparse": "^1.0.7", 2782 | "esprima": "^4.0.0" 2783 | } 2784 | }, 2785 | "jsonc-parser": { 2786 | "version": "3.2.0", 2787 | "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", 2788 | "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", 2789 | "peer": true 2790 | }, 2791 | "jsonfile": { 2792 | "version": "6.1.0", 2793 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", 2794 | "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", 2795 | "requires": { 2796 | "graceful-fs": "^4.1.6", 2797 | "universalify": "^2.0.0" 2798 | } 2799 | }, 2800 | "kind-of": { 2801 | "version": "6.0.3", 2802 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", 2803 | "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" 2804 | }, 2805 | "lru-cache": { 2806 | "version": "6.0.0", 2807 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 2808 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 2809 | "dev": true, 2810 | "requires": { 2811 | "yallist": "^4.0.0" 2812 | } 2813 | }, 2814 | "magic-string": { 2815 | "version": "0.25.9", 2816 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", 2817 | "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", 2818 | "requires": { 2819 | "sourcemap-codec": "^1.4.8" 2820 | } 2821 | }, 2822 | "merge2": { 2823 | "version": "1.4.1", 2824 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 2825 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 2826 | "dev": true 2827 | }, 2828 | "micromatch": { 2829 | "version": "4.0.5", 2830 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", 2831 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", 2832 | "dev": true, 2833 | "requires": { 2834 | "braces": "^3.0.2", 2835 | "picomatch": "^2.3.1" 2836 | } 2837 | }, 2838 | "minimatch": { 2839 | "version": "5.1.0", 2840 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", 2841 | "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", 2842 | "requires": { 2843 | "brace-expansion": "^2.0.1" 2844 | } 2845 | }, 2846 | "nanoid": { 2847 | "version": "3.3.4", 2848 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 2849 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" 2850 | }, 2851 | "normalize-path": { 2852 | "version": "3.0.0", 2853 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 2854 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 2855 | "dev": true 2856 | }, 2857 | "once": { 2858 | "version": "1.4.0", 2859 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2860 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 2861 | "requires": { 2862 | "wrappy": "1" 2863 | } 2864 | }, 2865 | "path-parse": { 2866 | "version": "1.0.7", 2867 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 2868 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 2869 | "peer": true 2870 | }, 2871 | "picocolors": { 2872 | "version": "1.0.0", 2873 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 2874 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" 2875 | }, 2876 | "picomatch": { 2877 | "version": "2.3.1", 2878 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 2879 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 2880 | "dev": true 2881 | }, 2882 | "postcss": { 2883 | "version": "8.4.16", 2884 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", 2885 | "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", 2886 | "requires": { 2887 | "nanoid": "^3.3.4", 2888 | "picocolors": "^1.0.0", 2889 | "source-map-js": "^1.0.2" 2890 | } 2891 | }, 2892 | "preact": { 2893 | "version": "10.10.6", 2894 | "resolved": "https://registry.npmjs.org/preact/-/preact-10.10.6.tgz", 2895 | "integrity": "sha512-w0mCL5vICUAZrh1DuHEdOWBjxdO62lvcO++jbzr8UhhYcTbFkpegLH9XX+7MadjTl/y0feoqwQ/zAnzkc/EGog==", 2896 | "peer": true 2897 | }, 2898 | "queue-microtask": { 2899 | "version": "1.2.3", 2900 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 2901 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 2902 | "dev": true 2903 | }, 2904 | "readdirp": { 2905 | "version": "3.6.0", 2906 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 2907 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 2908 | "dev": true, 2909 | "requires": { 2910 | "picomatch": "^2.2.1" 2911 | } 2912 | }, 2913 | "resolve": { 2914 | "version": "1.22.1", 2915 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", 2916 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", 2917 | "peer": true, 2918 | "requires": { 2919 | "is-core-module": "^2.9.0", 2920 | "path-parse": "^1.0.7", 2921 | "supports-preserve-symlinks-flag": "^1.0.0" 2922 | } 2923 | }, 2924 | "reusify": { 2925 | "version": "1.0.4", 2926 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 2927 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 2928 | "dev": true 2929 | }, 2930 | "rollup": { 2931 | "version": "2.77.3", 2932 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.77.3.tgz", 2933 | "integrity": "sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==", 2934 | "peer": true, 2935 | "requires": { 2936 | "fsevents": "~2.3.2" 2937 | } 2938 | }, 2939 | "run-parallel": { 2940 | "version": "1.2.0", 2941 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 2942 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 2943 | "dev": true, 2944 | "requires": { 2945 | "queue-microtask": "^1.2.2" 2946 | } 2947 | }, 2948 | "section-matter": { 2949 | "version": "1.0.0", 2950 | "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", 2951 | "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", 2952 | "requires": { 2953 | "extend-shallow": "^2.0.1", 2954 | "kind-of": "^6.0.0" 2955 | } 2956 | }, 2957 | "semver": { 2958 | "version": "7.3.7", 2959 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", 2960 | "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", 2961 | "dev": true, 2962 | "requires": { 2963 | "lru-cache": "^6.0.0" 2964 | } 2965 | }, 2966 | "shiki": { 2967 | "version": "0.11.1", 2968 | "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.11.1.tgz", 2969 | "integrity": "sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA==", 2970 | "peer": true, 2971 | "requires": { 2972 | "jsonc-parser": "^3.0.0", 2973 | "vscode-oniguruma": "^1.6.1", 2974 | "vscode-textmate": "^6.0.0" 2975 | } 2976 | }, 2977 | "source-map": { 2978 | "version": "0.6.1", 2979 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 2980 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" 2981 | }, 2982 | "source-map-js": { 2983 | "version": "1.0.2", 2984 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 2985 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" 2986 | }, 2987 | "sourcemap-codec": { 2988 | "version": "1.4.8", 2989 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", 2990 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" 2991 | }, 2992 | "sprintf-js": { 2993 | "version": "1.0.3", 2994 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 2995 | "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" 2996 | }, 2997 | "strip-bom-string": { 2998 | "version": "1.0.0", 2999 | "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", 3000 | "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==" 3001 | }, 3002 | "supports-preserve-symlinks-flag": { 3003 | "version": "1.0.0", 3004 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 3005 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 3006 | "peer": true 3007 | }, 3008 | "to-regex-range": { 3009 | "version": "5.0.1", 3010 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 3011 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 3012 | "dev": true, 3013 | "requires": { 3014 | "is-number": "^7.0.0" 3015 | } 3016 | }, 3017 | "typescript": { 3018 | "version": "4.8.2", 3019 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz", 3020 | "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==", 3021 | "dev": true, 3022 | "peer": true 3023 | }, 3024 | "universalify": { 3025 | "version": "2.0.0", 3026 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", 3027 | "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" 3028 | }, 3029 | "vite": { 3030 | "version": "3.0.9", 3031 | "resolved": "https://registry.npmjs.org/vite/-/vite-3.0.9.tgz", 3032 | "integrity": "sha512-waYABTM+G6DBTCpYAxvevpG50UOlZuynR0ckTK5PawNVt7ebX6X7wNXHaGIO6wYYFXSM7/WcuFuO2QzhBB6aMw==", 3033 | "peer": true, 3034 | "requires": { 3035 | "esbuild": "^0.14.47", 3036 | "fsevents": "~2.3.2", 3037 | "postcss": "^8.4.16", 3038 | "resolve": "^1.22.1", 3039 | "rollup": ">=2.75.6 <2.77.0 || ~2.77.0" 3040 | } 3041 | }, 3042 | "vite-plugin-static-copy": { 3043 | "version": "0.9.0", 3044 | "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-0.9.0.tgz", 3045 | "integrity": "sha512-0h8esPoZn6zdTK8KoDbiZPJum7+Nw2t4oLTpu2i2haP2HmgysRH+Xy6FaE6lLyCpgODYR5RiRjbLH0UKUZpIPw==", 3046 | "dev": true, 3047 | "requires": { 3048 | "chokidar": "^3.5.3", 3049 | "fast-glob": "^3.2.11", 3050 | "fs-extra": "^10.1.0", 3051 | "picocolors": "^1.0.0" 3052 | } 3053 | }, 3054 | "vitepress": { 3055 | "version": "1.0.0-alpha.13", 3056 | "resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.0-alpha.13.tgz", 3057 | "integrity": "sha512-gCbKb+6o0g5wHt2yyqBPk7FcvrB+MfwGtg1JMS5p99GTQR87l3b7symCl8o1ecv7MDXwJ2mPB8ZrYNLnQAJxLQ==", 3058 | "peer": true, 3059 | "requires": { 3060 | "@docsearch/css": "^3.2.1", 3061 | "@docsearch/js": "^3.2.1", 3062 | "@vitejs/plugin-vue": "^3.0.3", 3063 | "@vue/devtools-api": "^6.2.1", 3064 | "@vueuse/core": "^9.1.0", 3065 | "body-scroll-lock": "^4.0.0-beta.0", 3066 | "shiki": "^0.11.1", 3067 | "vite": "^3.0.8", 3068 | "vue": "^3.2.37" 3069 | } 3070 | }, 3071 | "vscode-oniguruma": { 3072 | "version": "1.6.2", 3073 | "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz", 3074 | "integrity": "sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==", 3075 | "peer": true 3076 | }, 3077 | "vscode-textmate": { 3078 | "version": "6.0.0", 3079 | "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-6.0.0.tgz", 3080 | "integrity": "sha512-gu73tuZfJgu+mvCSy4UZwd2JXykjK9zAZsfmDeut5dx/1a7FeTk0XwJsSuqQn+cuMCGVbIBfl+s53X4T19DnzQ==", 3081 | "peer": true 3082 | }, 3083 | "vue": { 3084 | "version": "3.2.38", 3085 | "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.38.tgz", 3086 | "integrity": "sha512-hHrScEFSmDAWL0cwO4B6WO7D3sALZPbfuThDsGBebthrNlDxdJZpGR3WB87VbjpPh96mep1+KzukYEhpHDFa8Q==", 3087 | "peer": true, 3088 | "requires": { 3089 | "@vue/compiler-dom": "3.2.38", 3090 | "@vue/compiler-sfc": "3.2.38", 3091 | "@vue/runtime-dom": "3.2.38", 3092 | "@vue/server-renderer": "3.2.38", 3093 | "@vue/shared": "3.2.38" 3094 | } 3095 | }, 3096 | "vue-tsc": { 3097 | "version": "0.40.5", 3098 | "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-0.40.5.tgz", 3099 | "integrity": "sha512-rQPyyqrQiDzc8a3YpAYUb27VQbU+NDewOJ7GJBiEIEcaSugMjDc6dtJijTHK32t8IgGPl6ybsJ9LIU9sZvixLA==", 3100 | "dev": true, 3101 | "requires": { 3102 | "@volar/vue-language-core": "0.40.5", 3103 | "@volar/vue-typescript": "0.40.5" 3104 | } 3105 | }, 3106 | "wrappy": { 3107 | "version": "1.0.2", 3108 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 3109 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" 3110 | }, 3111 | "yallist": { 3112 | "version": "4.0.0", 3113 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 3114 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 3115 | "dev": true 3116 | } 3117 | } 3118 | } 3119 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vitepress-plugin-simple-search", 3 | "version": "1.3.4", 4 | "description": "A very simple offline search for your vitepress documentation.", 5 | "author": "Stuyk", 6 | "license": "MIT", 7 | "types": "./dist/types/src/index.d.ts", 8 | "files": [ 9 | "dist" 10 | ], 11 | "main": "./dist/simple-search.umd.js", 12 | "module": "./dist/simple-search.es.js", 13 | "exports": { 14 | ".": { 15 | "import": "./dist/simple-search.es.js", 16 | "require": "./dist/simple-search.umd.js" 17 | }, 18 | "./Search.vue": "./dist/Search.vue" 19 | }, 20 | "scripts": { 21 | "prepublishOnly": "npm run build", 22 | "dev": "vite build --watch", 23 | "build": "vite build", 24 | "postbuild": "vue-tsc --emitDeclarationOnly" 25 | }, 26 | "engines": { 27 | "node": "^14.13.1 || ^16.7.0 || >=18" 28 | }, 29 | "homepage": "https://github.com/stuyk/vitepress-plugin-simple-search#readme", 30 | "repository": { 31 | "type": "git", 32 | "url": "git+https://github.com/stuyk/vitepress-plugin-simple-search.git" 33 | }, 34 | "bugs": { 35 | "url": "https://github.com/stuyk/vitepress-plugin-simple-search/issues" 36 | }, 37 | "keywords": [ 38 | "vitepress", 39 | "search", 40 | "simple", 41 | "offline" 42 | ], 43 | "peerDependencies": { 44 | "vite": "2 || 3", 45 | "vitepress": "^1.0.0-alpha.13", 46 | "vue": "3" 47 | }, 48 | "devDependencies": { 49 | "@types/fs-extra": "^9.0.13", 50 | "@types/glob": "^8.0.0", 51 | "@types/node": "^18.7.18", 52 | "vite-plugin-static-copy": "^0.9.0", 53 | "vue-tsc": "^0.40.5" 54 | }, 55 | "dependencies": { 56 | "fs-extra": "^10.1.0", 57 | "glob": "^8.0.3", 58 | "gray-matter": "^4.0.3" 59 | }, 60 | "prettier": { 61 | "tabWidth": 4, 62 | "printWidth": 120, 63 | "singleQuote": true, 64 | "semi": true 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /src/Search.vue: -------------------------------------------------------------------------------- 1 | 152 | 153 | 209 | 210 | 327 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { Plugin } from 'vite'; 2 | import { Options } from './interfaces/options'; 3 | import { setOptions } from './options'; 4 | import { buildDocumentation } from './searchBuilder'; 5 | import fs from 'fs-extra'; 6 | 7 | /** 8 | * Initialize the plugin, and pass additional configuration options. 9 | * 10 | * @export 11 | * @param {Options} options 12 | * @return {Plugin} 13 | */ 14 | export function SimpleSearch(userOptions: Options): Plugin { 15 | const options = setOptions(userOptions); 16 | 17 | let config: any; 18 | const virtualModuleId = 'virtual:simple-search'; 19 | const resolvedVirtualModuleId = '\0' + virtualModuleId; 20 | 21 | return { 22 | name: 'simple-search', 23 | enforce: 'pre', 24 | configResolved(resolvedConfig) { 25 | config = resolvedConfig; 26 | }, 27 | config: () => ({ 28 | resolve: { 29 | alias: { './VPNavBarSearch.vue': 'vitepress-plugin-simple-search/Search.vue' }, 30 | }, 31 | }), 32 | resolveId(id) { 33 | if (id === virtualModuleId) { 34 | return resolvedVirtualModuleId; 35 | } 36 | }, 37 | async load(this, id) { 38 | if (id === resolvedVirtualModuleId) { 39 | const filePathway = options.docsPath ? options.docsPath : config.root; 40 | if (!fs.existsSync(filePathway)) { 41 | console.warn(`File Pathway: ${filePathway} does not exist. Search could not be built.`) 42 | console.warn(`Try 'process.cwd() + your folder'`) 43 | throw new Error(`Docs pathway could not be found.`); 44 | } 45 | 46 | const fileData = await buildDocumentation(config.root, userOptions.preambleTransformer); 47 | const javaScript: string = 48 | `const regexForContentStripping = ${options.regexForContentStripping}` + 49 | ';\n' + 50 | 'const data =' + 51 | JSON.stringify(fileData) + 52 | ';\n' + 53 | 'export default { data, regexForContentStripping };'; 54 | 55 | return javaScript; 56 | } 57 | }, 58 | }; 59 | } 60 | -------------------------------------------------------------------------------- /src/interfaces/options.ts: -------------------------------------------------------------------------------- 1 | export interface Options { 2 | /** 3 | * Base URL to use for content link replacement. 4 | * 5 | * @type {string} 6 | * @memberof Options 7 | */ 8 | baseURL?: string; 9 | 10 | /** 11 | * Pathway to docs folder. 12 | * Must be an ABSOLUTE path. Not relative. 13 | * 14 | * @type {string} 15 | * @memberof Options 16 | */ 17 | docsPath?: string; 18 | 19 | /** 20 | * A list of strings of partial file names or folders to ignore and not add to search. 21 | * 22 | * @type {Array} 23 | * @memberof Options 24 | */ 25 | partialsToIgnore?: Array; 26 | 27 | /** 28 | * Used as a regex content remover for non-matching characters. 29 | * Setting this to undefined turns off all content stripping. 30 | * May have unintended side effects. 31 | * 32 | * @type {RegExp | undefined} 33 | * @memberof Options 34 | */ 35 | regexForContentStripping?: RegExp | undefined; 36 | 37 | /** 38 | * Used to transform the front matter. 39 | * 40 | * @type {any => any | undefined} 41 | * @memberof Options 42 | */ 43 | preambleTransformer?: ((data: { [key: string]: any }) => { [key: string]: any }) | undefined; 44 | } 45 | -------------------------------------------------------------------------------- /src/options.ts: -------------------------------------------------------------------------------- 1 | import { Options } from './interfaces/options'; 2 | 3 | let options: Options = { 4 | baseURL: '', 5 | regexForContentStripping: /[^a-zA-Z0-9._ ]+/g, 6 | preambleTransformer: undefined, // No transformation 7 | }; 8 | 9 | /** 10 | * Used to set default options for indexing data. 11 | * 12 | * @export 13 | * @param {Options} userOptions 14 | * @return {Options} 15 | */ 16 | export function setOptions(userOptions: Options): Options { 17 | options = { ...options, ...userOptions }; 18 | 19 | if (options && options.baseURL) { 20 | if (options.baseURL.length >= 1 && options.baseURL.charAt(options.baseURL.length - 1) === '/') { 21 | options.baseURL = options.baseURL.slice(0, options.baseURL.length - 1); 22 | } 23 | } 24 | 25 | if (!options.partialsToIgnore) { 26 | options.partialsToIgnore = []; 27 | } 28 | 29 | return options; 30 | } 31 | 32 | /** 33 | * Return the current options. 34 | * 35 | * @export 36 | * @return {Options} 37 | */ 38 | export function getOptions(): Options { 39 | return options; 40 | } 41 | -------------------------------------------------------------------------------- /src/searchBuilder.ts: -------------------------------------------------------------------------------- 1 | import * as fs from 'fs-extra'; 2 | import glob from 'glob'; 3 | import matter from 'gray-matter'; 4 | import { getOptions } from './options'; 5 | import { FileSearchData } from './types/fileSearchData'; 6 | 7 | /** 8 | * Strips content of lots of garabage. 9 | * 10 | * @param {string} content 11 | * @return {string} 12 | */ 13 | function cleanupContent(content: string): string { 14 | const options = getOptions(); 15 | if (typeof options.regexForContentStripping === 'undefined') { 16 | return content; 17 | } 18 | 19 | return content.replace(options.regexForContentStripping, '').toLowerCase(); 20 | } 21 | 22 | /** 23 | * Builds document info by reading markdown files. 24 | * Strips content, gets titles, complains about no titles. 25 | * Returns formatted data. 26 | * 27 | * @export 28 | * @param {string} folder 29 | * @param {string} [baseURL=''] 30 | * @return {Promise} 31 | */ 32 | export async function buildDocumentation( 33 | folder: string, 34 | transformer: ((data: { [key: string]: any }) => { [key: string]: any }) | undefined = undefined 35 | ): Promise { 36 | const files = glob.sync(`${folder}/**/*.md`.replace(/\\/gm, '/')); 37 | const fileInfo: Array<{ title: string; content: string; link: string }> = []; 38 | const options = getOptions(); 39 | 40 | for (let file of files) { 41 | if (file.includes('node_modules')) { 42 | continue; 43 | } 44 | 45 | if (options.partialsToIgnore && options.partialsToIgnore.length >= 1) { 46 | const partialIndex = options.partialsToIgnore.findIndex((partialName) => file.includes(partialName)); 47 | if (partialIndex !== -1) { 48 | continue; 49 | } 50 | } 51 | 52 | const data = fs.readFileSync(file).toString(); 53 | const frontMatter = matter(data); 54 | let frontMatterData: { [key: string]: any }; 55 | if (typeof transformer !== 'undefined') { 56 | frontMatterData = transformer(frontMatter.data); 57 | } else { 58 | frontMatterData = frontMatter.data; 59 | } 60 | 61 | if (typeof frontMatterData['title'] === 'undefined') { 62 | console.warn(`${file} does not have a 'title' for building search index.`); 63 | } 64 | 65 | const baseURL = options.baseURL ? options.baseURL : ''; 66 | fileInfo.push({ 67 | title: frontMatterData.title, 68 | content: cleanupContent(frontMatter.content), 69 | link: file.replace(/.*docs/gm, baseURL).replace('.md', ''), 70 | }); 71 | } 72 | 73 | return fileInfo; 74 | } 75 | -------------------------------------------------------------------------------- /src/types/fileSearchData.ts: -------------------------------------------------------------------------------- 1 | export type FileSearchData = Array<{title: string, content: string, link: string}>; -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": "./", 4 | "target": "esnext", 5 | "useDefineForClassFields": true, 6 | "module": "esnext", 7 | "moduleResolution": "node", 8 | "isolatedModules": true, 9 | "strict": true, 10 | "jsx": "preserve", 11 | "sourceMap": true, 12 | "resolveJsonModule": true, 13 | "esModuleInterop": true, 14 | "lib": ["esnext", "dom", "dom.iterable", "scripthost"], 15 | "skipLibCheck": true, 16 | "outDir": "dist/types", 17 | "declaration": true, 18 | "allowSyntheticDefaultImports": true 19 | }, 20 | "include": ["vite.config.*", "vite-env.d.ts", "src/**/*", "src/**/*.vue"] 21 | } 22 | -------------------------------------------------------------------------------- /vite-env.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.vue' { 2 | import { DefineComponent } from 'vue'; 3 | const component: DefineComponent<{}, {}, any>; 4 | export default component; 5 | } 6 | 7 | declare module 'virtual:simple-search' { 8 | const regexForContentStripping: RegExp; 9 | const data: Array<{ title: string; content: string; link: string }>; 10 | export default { data, regexForContentStripping }; 11 | } 12 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | const path = require("path"); 2 | const { defineConfig } = require("vite"); 3 | import { viteStaticCopy } from "vite-plugin-static-copy"; 4 | 5 | module.exports = defineConfig({ 6 | plugins: [ 7 | viteStaticCopy({ 8 | targets: [ 9 | { 10 | src: "src/Search.vue", 11 | dest: "./", 12 | }, 13 | ], 14 | }), 15 | ], 16 | build: { 17 | lib: { 18 | entry: path.resolve(__dirname, "src/index.ts"), 19 | name: "SearchPlugin", 20 | fileName: (format: string) => `simple-search.${format}.js`, 21 | }, 22 | rollupOptions: { 23 | // make sure to externalize deps that shouldn't be bundled 24 | // into your library 25 | external: ["vue", "glob", "gray-matter", "fs-extra"], 26 | output: { 27 | // Provide global variables to use in the UMD build 28 | // for externalized deps 29 | globals: { 30 | vue: "Vue", 31 | 'fs-extra': 'fs-extra', 32 | }, 33 | }, 34 | }, 35 | }, 36 | }); 37 | --------------------------------------------------------------------------------