├── .gitignore ├── .vscode ├── extensions.json └── launch.json ├── README.md ├── astro.config.mjs ├── package.json ├── pnpm-lock.yaml ├── public └── favicon.svg ├── src ├── api.ts ├── client │ └── auth.ts ├── db.ts ├── env.d.ts ├── middleware.ts └── pages │ ├── api │ ├── challenge.ts │ ├── login.ts │ ├── logout.ts │ └── signup.ts │ ├── index.astro │ ├── login.astro │ └── signup.astro └── tsconfig.json /.gitignore: -------------------------------------------------------------------------------- 1 | # build output 2 | dist/ 3 | # generated types 4 | .astro/ 5 | 6 | # dependencies 7 | node_modules/ 8 | 9 | # logs 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | pnpm-debug.log* 14 | 15 | 16 | # environment variables 17 | .env 18 | .env.production 19 | 20 | # macOS-specific files 21 | .DS_Store 22 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["astro-build.astro-vscode"], 3 | "unwantedRecommendations": [] 4 | } 5 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "command": "./node_modules/.bin/astro dev", 6 | "name": "Development server", 7 | "request": "launch", 8 | "type": "node-terminal" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Passkey auth with Astro and Oslo 2 | 3 | Uses `Map`s to store data. -------------------------------------------------------------------------------- /astro.config.mjs: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'astro/config'; 2 | 3 | import node from "@astrojs/node"; 4 | 5 | // https://astro.build/config 6 | export default defineConfig({ 7 | output: "server", 8 | adapter: node({ 9 | mode: "standalone" 10 | }) 11 | }); -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "astro-passkey", 3 | "type": "module", 4 | "version": "0.0.1", 5 | "scripts": { 6 | "dev": "astro dev", 7 | "start": "astro dev", 8 | "build": "astro build", 9 | "preview": "astro preview", 10 | "astro": "astro" 11 | }, 12 | "dependencies": { 13 | "@astrojs/node": "^6.0.3", 14 | "astro": "^3.3.1", 15 | "oslo": "^0.6.1" 16 | } 17 | } -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | dependencies: 4 | '@astrojs/node': 5 | specifier: ^6.0.3 6 | version: 6.0.3(astro@3.3.1) 7 | astro: 8 | specifier: ^3.3.1 9 | version: 3.3.1 10 | oslo: 11 | specifier: ^0.6.1 12 | version: 0.6.1 13 | 14 | packages: 15 | 16 | /@ampproject/remapping@2.2.1: 17 | resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} 18 | engines: {node: '>=6.0.0'} 19 | dependencies: 20 | '@jridgewell/gen-mapping': 0.3.3 21 | '@jridgewell/trace-mapping': 0.3.19 22 | dev: false 23 | 24 | /@astrojs/compiler@2.2.0: 25 | resolution: {integrity: sha512-JvmckEJgg8uXUw8Rs6VZDvN7LcweCHOdcxsCXpC+4KMDC9FaB5t9EH/NooSE+hu/rnACEhsXA3FKmf9wnhb7hA==} 26 | dev: false 27 | 28 | /@astrojs/internal-helpers@0.2.1: 29 | resolution: {integrity: sha512-06DD2ZnItMwUnH81LBLco3tWjcZ1lGU9rLCCBaeUCGYe9cI0wKyY2W3kDyoW1I6GmcWgt1fu+D1CTvz+FIKf8A==} 30 | dev: false 31 | 32 | /@astrojs/markdown-remark@3.3.0(astro@3.3.1): 33 | resolution: {integrity: sha512-ezFzEiZygc/ASe2Eul9v1yrTbNGqSbR348UGNXQ4Dtkx8MYRwfiBfmPm6VnEdfIGkW+bi5qIUReKfc7mPVUkIg==} 34 | peerDependencies: 35 | astro: ^3.3.0 36 | dependencies: 37 | '@astrojs/prism': 3.0.0 38 | astro: 3.3.1 39 | github-slugger: 2.0.0 40 | import-meta-resolve: 3.0.0 41 | mdast-util-definitions: 6.0.0 42 | rehype-raw: 6.1.1 43 | rehype-stringify: 9.0.4 44 | remark-gfm: 3.0.1 45 | remark-parse: 10.0.2 46 | remark-rehype: 10.1.0 47 | remark-smartypants: 2.0.0 48 | shikiji: 0.6.10 49 | unified: 10.1.2 50 | unist-util-visit: 4.1.2 51 | vfile: 5.3.7 52 | transitivePeerDependencies: 53 | - supports-color 54 | dev: false 55 | 56 | /@astrojs/node@6.0.3(astro@3.3.1): 57 | resolution: {integrity: sha512-3isB8ETX3WabAh8pY1HMnbt4e8HV9noVP4X52SlF+GycIt7YOXsUSzditjROZkrZOSfWhzsTaHh7EqbdVXqzrw==} 58 | peerDependencies: 59 | astro: ^3.2.3 60 | dependencies: 61 | astro: 3.3.1 62 | send: 0.18.0 63 | server-destroy: 1.0.1 64 | transitivePeerDependencies: 65 | - supports-color 66 | dev: false 67 | 68 | /@astrojs/prism@3.0.0: 69 | resolution: {integrity: sha512-g61lZupWq1bYbcBnYZqdjndShr/J3l/oFobBKPA3+qMat146zce3nz2kdO4giGbhYDt4gYdhmoBz0vZJ4sIurQ==} 70 | engines: {node: '>=18.14.1'} 71 | dependencies: 72 | prismjs: 1.29.0 73 | dev: false 74 | 75 | /@astrojs/telemetry@3.0.3: 76 | resolution: {integrity: sha512-j19Cf5mfyLt9hxgJ9W/FMdAA5Lovfp7/CINNB/7V71GqvygnL7KXhRC3TzfB+PsVQcBtgWZzCXhUWRbmJ64Raw==} 77 | engines: {node: '>=18.14.1'} 78 | dependencies: 79 | ci-info: 3.9.0 80 | debug: 4.3.4 81 | dlv: 1.1.3 82 | dset: 3.1.2 83 | is-docker: 3.0.0 84 | is-wsl: 3.1.0 85 | which-pm-runs: 1.1.0 86 | transitivePeerDependencies: 87 | - supports-color 88 | dev: false 89 | 90 | /@babel/code-frame@7.22.13: 91 | resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} 92 | engines: {node: '>=6.9.0'} 93 | dependencies: 94 | '@babel/highlight': 7.22.20 95 | chalk: 2.4.2 96 | dev: false 97 | 98 | /@babel/compat-data@7.23.2: 99 | resolution: {integrity: sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==} 100 | engines: {node: '>=6.9.0'} 101 | dev: false 102 | 103 | /@babel/core@7.23.2: 104 | resolution: {integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==} 105 | engines: {node: '>=6.9.0'} 106 | dependencies: 107 | '@ampproject/remapping': 2.2.1 108 | '@babel/code-frame': 7.22.13 109 | '@babel/generator': 7.23.0 110 | '@babel/helper-compilation-targets': 7.22.15 111 | '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) 112 | '@babel/helpers': 7.23.2 113 | '@babel/parser': 7.23.0 114 | '@babel/template': 7.22.15 115 | '@babel/traverse': 7.23.2 116 | '@babel/types': 7.23.0 117 | convert-source-map: 2.0.0 118 | debug: 4.3.4 119 | gensync: 1.0.0-beta.2 120 | json5: 2.2.3 121 | semver: 6.3.1 122 | transitivePeerDependencies: 123 | - supports-color 124 | dev: false 125 | 126 | /@babel/generator@7.23.0: 127 | resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} 128 | engines: {node: '>=6.9.0'} 129 | dependencies: 130 | '@babel/types': 7.23.0 131 | '@jridgewell/gen-mapping': 0.3.3 132 | '@jridgewell/trace-mapping': 0.3.19 133 | jsesc: 2.5.2 134 | dev: false 135 | 136 | /@babel/helper-annotate-as-pure@7.22.5: 137 | resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} 138 | engines: {node: '>=6.9.0'} 139 | dependencies: 140 | '@babel/types': 7.23.0 141 | dev: false 142 | 143 | /@babel/helper-compilation-targets@7.22.15: 144 | resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} 145 | engines: {node: '>=6.9.0'} 146 | dependencies: 147 | '@babel/compat-data': 7.23.2 148 | '@babel/helper-validator-option': 7.22.15 149 | browserslist: 4.22.1 150 | lru-cache: 5.1.1 151 | semver: 6.3.1 152 | dev: false 153 | 154 | /@babel/helper-environment-visitor@7.22.20: 155 | resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} 156 | engines: {node: '>=6.9.0'} 157 | dev: false 158 | 159 | /@babel/helper-function-name@7.23.0: 160 | resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} 161 | engines: {node: '>=6.9.0'} 162 | dependencies: 163 | '@babel/template': 7.22.15 164 | '@babel/types': 7.23.0 165 | dev: false 166 | 167 | /@babel/helper-hoist-variables@7.22.5: 168 | resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} 169 | engines: {node: '>=6.9.0'} 170 | dependencies: 171 | '@babel/types': 7.23.0 172 | dev: false 173 | 174 | /@babel/helper-module-imports@7.22.15: 175 | resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} 176 | engines: {node: '>=6.9.0'} 177 | dependencies: 178 | '@babel/types': 7.23.0 179 | dev: false 180 | 181 | /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.2): 182 | resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} 183 | engines: {node: '>=6.9.0'} 184 | peerDependencies: 185 | '@babel/core': ^7.0.0 186 | dependencies: 187 | '@babel/core': 7.23.2 188 | '@babel/helper-environment-visitor': 7.22.20 189 | '@babel/helper-module-imports': 7.22.15 190 | '@babel/helper-simple-access': 7.22.5 191 | '@babel/helper-split-export-declaration': 7.22.6 192 | '@babel/helper-validator-identifier': 7.22.20 193 | dev: false 194 | 195 | /@babel/helper-plugin-utils@7.22.5: 196 | resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} 197 | engines: {node: '>=6.9.0'} 198 | dev: false 199 | 200 | /@babel/helper-simple-access@7.22.5: 201 | resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} 202 | engines: {node: '>=6.9.0'} 203 | dependencies: 204 | '@babel/types': 7.23.0 205 | dev: false 206 | 207 | /@babel/helper-split-export-declaration@7.22.6: 208 | resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} 209 | engines: {node: '>=6.9.0'} 210 | dependencies: 211 | '@babel/types': 7.23.0 212 | dev: false 213 | 214 | /@babel/helper-string-parser@7.22.5: 215 | resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} 216 | engines: {node: '>=6.9.0'} 217 | dev: false 218 | 219 | /@babel/helper-validator-identifier@7.22.20: 220 | resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} 221 | engines: {node: '>=6.9.0'} 222 | dev: false 223 | 224 | /@babel/helper-validator-option@7.22.15: 225 | resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} 226 | engines: {node: '>=6.9.0'} 227 | dev: false 228 | 229 | /@babel/helpers@7.23.2: 230 | resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} 231 | engines: {node: '>=6.9.0'} 232 | dependencies: 233 | '@babel/template': 7.22.15 234 | '@babel/traverse': 7.23.2 235 | '@babel/types': 7.23.0 236 | transitivePeerDependencies: 237 | - supports-color 238 | dev: false 239 | 240 | /@babel/highlight@7.22.20: 241 | resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} 242 | engines: {node: '>=6.9.0'} 243 | dependencies: 244 | '@babel/helper-validator-identifier': 7.22.20 245 | chalk: 2.4.2 246 | js-tokens: 4.0.0 247 | dev: false 248 | 249 | /@babel/parser@7.23.0: 250 | resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} 251 | engines: {node: '>=6.0.0'} 252 | hasBin: true 253 | dependencies: 254 | '@babel/types': 7.23.0 255 | dev: false 256 | 257 | /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.2): 258 | resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} 259 | engines: {node: '>=6.9.0'} 260 | peerDependencies: 261 | '@babel/core': ^7.0.0-0 262 | dependencies: 263 | '@babel/core': 7.23.2 264 | '@babel/helper-plugin-utils': 7.22.5 265 | dev: false 266 | 267 | /@babel/plugin-transform-react-jsx@7.22.15(@babel/core@7.23.2): 268 | resolution: {integrity: sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==} 269 | engines: {node: '>=6.9.0'} 270 | peerDependencies: 271 | '@babel/core': ^7.0.0-0 272 | dependencies: 273 | '@babel/core': 7.23.2 274 | '@babel/helper-annotate-as-pure': 7.22.5 275 | '@babel/helper-module-imports': 7.22.15 276 | '@babel/helper-plugin-utils': 7.22.5 277 | '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.2) 278 | '@babel/types': 7.23.0 279 | dev: false 280 | 281 | /@babel/template@7.22.15: 282 | resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} 283 | engines: {node: '>=6.9.0'} 284 | dependencies: 285 | '@babel/code-frame': 7.22.13 286 | '@babel/parser': 7.23.0 287 | '@babel/types': 7.23.0 288 | dev: false 289 | 290 | /@babel/traverse@7.23.2: 291 | resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==} 292 | engines: {node: '>=6.9.0'} 293 | dependencies: 294 | '@babel/code-frame': 7.22.13 295 | '@babel/generator': 7.23.0 296 | '@babel/helper-environment-visitor': 7.22.20 297 | '@babel/helper-function-name': 7.23.0 298 | '@babel/helper-hoist-variables': 7.22.5 299 | '@babel/helper-split-export-declaration': 7.22.6 300 | '@babel/parser': 7.23.0 301 | '@babel/types': 7.23.0 302 | debug: 4.3.4 303 | globals: 11.12.0 304 | transitivePeerDependencies: 305 | - supports-color 306 | dev: false 307 | 308 | /@babel/types@7.23.0: 309 | resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} 310 | engines: {node: '>=6.9.0'} 311 | dependencies: 312 | '@babel/helper-string-parser': 7.22.5 313 | '@babel/helper-validator-identifier': 7.22.20 314 | to-fast-properties: 2.0.0 315 | dev: false 316 | 317 | /@esbuild/android-arm64@0.18.20: 318 | resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} 319 | engines: {node: '>=12'} 320 | cpu: [arm64] 321 | os: [android] 322 | requiresBuild: true 323 | dev: false 324 | optional: true 325 | 326 | /@esbuild/android-arm64@0.19.5: 327 | resolution: {integrity: sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==} 328 | engines: {node: '>=12'} 329 | cpu: [arm64] 330 | os: [android] 331 | requiresBuild: true 332 | dev: false 333 | optional: true 334 | 335 | /@esbuild/android-arm@0.18.20: 336 | resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} 337 | engines: {node: '>=12'} 338 | cpu: [arm] 339 | os: [android] 340 | requiresBuild: true 341 | dev: false 342 | optional: true 343 | 344 | /@esbuild/android-arm@0.19.5: 345 | resolution: {integrity: sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==} 346 | engines: {node: '>=12'} 347 | cpu: [arm] 348 | os: [android] 349 | requiresBuild: true 350 | dev: false 351 | optional: true 352 | 353 | /@esbuild/android-x64@0.18.20: 354 | resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} 355 | engines: {node: '>=12'} 356 | cpu: [x64] 357 | os: [android] 358 | requiresBuild: true 359 | dev: false 360 | optional: true 361 | 362 | /@esbuild/android-x64@0.19.5: 363 | resolution: {integrity: sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==} 364 | engines: {node: '>=12'} 365 | cpu: [x64] 366 | os: [android] 367 | requiresBuild: true 368 | dev: false 369 | optional: true 370 | 371 | /@esbuild/darwin-arm64@0.18.20: 372 | resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} 373 | engines: {node: '>=12'} 374 | cpu: [arm64] 375 | os: [darwin] 376 | requiresBuild: true 377 | dev: false 378 | optional: true 379 | 380 | /@esbuild/darwin-arm64@0.19.5: 381 | resolution: {integrity: sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==} 382 | engines: {node: '>=12'} 383 | cpu: [arm64] 384 | os: [darwin] 385 | requiresBuild: true 386 | dev: false 387 | optional: true 388 | 389 | /@esbuild/darwin-x64@0.18.20: 390 | resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} 391 | engines: {node: '>=12'} 392 | cpu: [x64] 393 | os: [darwin] 394 | requiresBuild: true 395 | dev: false 396 | optional: true 397 | 398 | /@esbuild/darwin-x64@0.19.5: 399 | resolution: {integrity: sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==} 400 | engines: {node: '>=12'} 401 | cpu: [x64] 402 | os: [darwin] 403 | requiresBuild: true 404 | dev: false 405 | optional: true 406 | 407 | /@esbuild/freebsd-arm64@0.18.20: 408 | resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} 409 | engines: {node: '>=12'} 410 | cpu: [arm64] 411 | os: [freebsd] 412 | requiresBuild: true 413 | dev: false 414 | optional: true 415 | 416 | /@esbuild/freebsd-arm64@0.19.5: 417 | resolution: {integrity: sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==} 418 | engines: {node: '>=12'} 419 | cpu: [arm64] 420 | os: [freebsd] 421 | requiresBuild: true 422 | dev: false 423 | optional: true 424 | 425 | /@esbuild/freebsd-x64@0.18.20: 426 | resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} 427 | engines: {node: '>=12'} 428 | cpu: [x64] 429 | os: [freebsd] 430 | requiresBuild: true 431 | dev: false 432 | optional: true 433 | 434 | /@esbuild/freebsd-x64@0.19.5: 435 | resolution: {integrity: sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==} 436 | engines: {node: '>=12'} 437 | cpu: [x64] 438 | os: [freebsd] 439 | requiresBuild: true 440 | dev: false 441 | optional: true 442 | 443 | /@esbuild/linux-arm64@0.18.20: 444 | resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} 445 | engines: {node: '>=12'} 446 | cpu: [arm64] 447 | os: [linux] 448 | requiresBuild: true 449 | dev: false 450 | optional: true 451 | 452 | /@esbuild/linux-arm64@0.19.5: 453 | resolution: {integrity: sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==} 454 | engines: {node: '>=12'} 455 | cpu: [arm64] 456 | os: [linux] 457 | requiresBuild: true 458 | dev: false 459 | optional: true 460 | 461 | /@esbuild/linux-arm@0.18.20: 462 | resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} 463 | engines: {node: '>=12'} 464 | cpu: [arm] 465 | os: [linux] 466 | requiresBuild: true 467 | dev: false 468 | optional: true 469 | 470 | /@esbuild/linux-arm@0.19.5: 471 | resolution: {integrity: sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==} 472 | engines: {node: '>=12'} 473 | cpu: [arm] 474 | os: [linux] 475 | requiresBuild: true 476 | dev: false 477 | optional: true 478 | 479 | /@esbuild/linux-ia32@0.18.20: 480 | resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} 481 | engines: {node: '>=12'} 482 | cpu: [ia32] 483 | os: [linux] 484 | requiresBuild: true 485 | dev: false 486 | optional: true 487 | 488 | /@esbuild/linux-ia32@0.19.5: 489 | resolution: {integrity: sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==} 490 | engines: {node: '>=12'} 491 | cpu: [ia32] 492 | os: [linux] 493 | requiresBuild: true 494 | dev: false 495 | optional: true 496 | 497 | /@esbuild/linux-loong64@0.18.20: 498 | resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} 499 | engines: {node: '>=12'} 500 | cpu: [loong64] 501 | os: [linux] 502 | requiresBuild: true 503 | dev: false 504 | optional: true 505 | 506 | /@esbuild/linux-loong64@0.19.5: 507 | resolution: {integrity: sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==} 508 | engines: {node: '>=12'} 509 | cpu: [loong64] 510 | os: [linux] 511 | requiresBuild: true 512 | dev: false 513 | optional: true 514 | 515 | /@esbuild/linux-mips64el@0.18.20: 516 | resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} 517 | engines: {node: '>=12'} 518 | cpu: [mips64el] 519 | os: [linux] 520 | requiresBuild: true 521 | dev: false 522 | optional: true 523 | 524 | /@esbuild/linux-mips64el@0.19.5: 525 | resolution: {integrity: sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==} 526 | engines: {node: '>=12'} 527 | cpu: [mips64el] 528 | os: [linux] 529 | requiresBuild: true 530 | dev: false 531 | optional: true 532 | 533 | /@esbuild/linux-ppc64@0.18.20: 534 | resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} 535 | engines: {node: '>=12'} 536 | cpu: [ppc64] 537 | os: [linux] 538 | requiresBuild: true 539 | dev: false 540 | optional: true 541 | 542 | /@esbuild/linux-ppc64@0.19.5: 543 | resolution: {integrity: sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==} 544 | engines: {node: '>=12'} 545 | cpu: [ppc64] 546 | os: [linux] 547 | requiresBuild: true 548 | dev: false 549 | optional: true 550 | 551 | /@esbuild/linux-riscv64@0.18.20: 552 | resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} 553 | engines: {node: '>=12'} 554 | cpu: [riscv64] 555 | os: [linux] 556 | requiresBuild: true 557 | dev: false 558 | optional: true 559 | 560 | /@esbuild/linux-riscv64@0.19.5: 561 | resolution: {integrity: sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==} 562 | engines: {node: '>=12'} 563 | cpu: [riscv64] 564 | os: [linux] 565 | requiresBuild: true 566 | dev: false 567 | optional: true 568 | 569 | /@esbuild/linux-s390x@0.18.20: 570 | resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} 571 | engines: {node: '>=12'} 572 | cpu: [s390x] 573 | os: [linux] 574 | requiresBuild: true 575 | dev: false 576 | optional: true 577 | 578 | /@esbuild/linux-s390x@0.19.5: 579 | resolution: {integrity: sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==} 580 | engines: {node: '>=12'} 581 | cpu: [s390x] 582 | os: [linux] 583 | requiresBuild: true 584 | dev: false 585 | optional: true 586 | 587 | /@esbuild/linux-x64@0.18.20: 588 | resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} 589 | engines: {node: '>=12'} 590 | cpu: [x64] 591 | os: [linux] 592 | requiresBuild: true 593 | dev: false 594 | optional: true 595 | 596 | /@esbuild/linux-x64@0.19.5: 597 | resolution: {integrity: sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==} 598 | engines: {node: '>=12'} 599 | cpu: [x64] 600 | os: [linux] 601 | requiresBuild: true 602 | dev: false 603 | optional: true 604 | 605 | /@esbuild/netbsd-x64@0.18.20: 606 | resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} 607 | engines: {node: '>=12'} 608 | cpu: [x64] 609 | os: [netbsd] 610 | requiresBuild: true 611 | dev: false 612 | optional: true 613 | 614 | /@esbuild/netbsd-x64@0.19.5: 615 | resolution: {integrity: sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==} 616 | engines: {node: '>=12'} 617 | cpu: [x64] 618 | os: [netbsd] 619 | requiresBuild: true 620 | dev: false 621 | optional: true 622 | 623 | /@esbuild/openbsd-x64@0.18.20: 624 | resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} 625 | engines: {node: '>=12'} 626 | cpu: [x64] 627 | os: [openbsd] 628 | requiresBuild: true 629 | dev: false 630 | optional: true 631 | 632 | /@esbuild/openbsd-x64@0.19.5: 633 | resolution: {integrity: sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==} 634 | engines: {node: '>=12'} 635 | cpu: [x64] 636 | os: [openbsd] 637 | requiresBuild: true 638 | dev: false 639 | optional: true 640 | 641 | /@esbuild/sunos-x64@0.18.20: 642 | resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} 643 | engines: {node: '>=12'} 644 | cpu: [x64] 645 | os: [sunos] 646 | requiresBuild: true 647 | dev: false 648 | optional: true 649 | 650 | /@esbuild/sunos-x64@0.19.5: 651 | resolution: {integrity: sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==} 652 | engines: {node: '>=12'} 653 | cpu: [x64] 654 | os: [sunos] 655 | requiresBuild: true 656 | dev: false 657 | optional: true 658 | 659 | /@esbuild/win32-arm64@0.18.20: 660 | resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} 661 | engines: {node: '>=12'} 662 | cpu: [arm64] 663 | os: [win32] 664 | requiresBuild: true 665 | dev: false 666 | optional: true 667 | 668 | /@esbuild/win32-arm64@0.19.5: 669 | resolution: {integrity: sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==} 670 | engines: {node: '>=12'} 671 | cpu: [arm64] 672 | os: [win32] 673 | requiresBuild: true 674 | dev: false 675 | optional: true 676 | 677 | /@esbuild/win32-ia32@0.18.20: 678 | resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} 679 | engines: {node: '>=12'} 680 | cpu: [ia32] 681 | os: [win32] 682 | requiresBuild: true 683 | dev: false 684 | optional: true 685 | 686 | /@esbuild/win32-ia32@0.19.5: 687 | resolution: {integrity: sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==} 688 | engines: {node: '>=12'} 689 | cpu: [ia32] 690 | os: [win32] 691 | requiresBuild: true 692 | dev: false 693 | optional: true 694 | 695 | /@esbuild/win32-x64@0.18.20: 696 | resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} 697 | engines: {node: '>=12'} 698 | cpu: [x64] 699 | os: [win32] 700 | requiresBuild: true 701 | dev: false 702 | optional: true 703 | 704 | /@esbuild/win32-x64@0.19.5: 705 | resolution: {integrity: sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==} 706 | engines: {node: '>=12'} 707 | cpu: [x64] 708 | os: [win32] 709 | requiresBuild: true 710 | dev: false 711 | optional: true 712 | 713 | /@jridgewell/gen-mapping@0.3.3: 714 | resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} 715 | engines: {node: '>=6.0.0'} 716 | dependencies: 717 | '@jridgewell/set-array': 1.1.2 718 | '@jridgewell/sourcemap-codec': 1.4.15 719 | '@jridgewell/trace-mapping': 0.3.19 720 | dev: false 721 | 722 | /@jridgewell/resolve-uri@3.1.1: 723 | resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} 724 | engines: {node: '>=6.0.0'} 725 | dev: false 726 | 727 | /@jridgewell/set-array@1.1.2: 728 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} 729 | engines: {node: '>=6.0.0'} 730 | dev: false 731 | 732 | /@jridgewell/sourcemap-codec@1.4.15: 733 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 734 | dev: false 735 | 736 | /@jridgewell/trace-mapping@0.3.19: 737 | resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} 738 | dependencies: 739 | '@jridgewell/resolve-uri': 3.1.1 740 | '@jridgewell/sourcemap-codec': 1.4.15 741 | dev: false 742 | 743 | /@node-rs/argon2-android-arm-eabi@1.5.2: 744 | resolution: {integrity: sha512-vVZec4ITr9GumAy0p8Zj8ozie362gtbZrTkLp9EqvuFZ/HrZzR09uS2IsDgm4mAstg/rc4A1gLRrHI8jDdbjkA==} 745 | engines: {node: '>= 10'} 746 | cpu: [arm] 747 | os: [android] 748 | requiresBuild: true 749 | dev: false 750 | optional: true 751 | 752 | /@node-rs/argon2-android-arm64@1.5.2: 753 | resolution: {integrity: sha512-SwhnsXyrpgtWDTwYds1WUnxLA/kVP8HVaImYwQ3Wemqj1lkzcSoIaNyjNWkyrYGqO1tVc1YUrqsbd5eCHh+3sg==} 754 | engines: {node: '>= 10'} 755 | cpu: [arm64] 756 | os: [android] 757 | requiresBuild: true 758 | dev: false 759 | optional: true 760 | 761 | /@node-rs/argon2-darwin-arm64@1.5.2: 762 | resolution: {integrity: sha512-+1ZMKiCCv2pip/o1Xg09piQru2LOIBPQ1vS4is86f55N3jjZnSfP+db5mYCSRuB0gRYqui98he7su7OGXlF4gQ==} 763 | engines: {node: '>= 10'} 764 | cpu: [arm64] 765 | os: [darwin] 766 | requiresBuild: true 767 | dev: false 768 | optional: true 769 | 770 | /@node-rs/argon2-darwin-x64@1.5.2: 771 | resolution: {integrity: sha512-mQ57mORlsxpfjcEsVpiHyHCOp6Ljrz/rVNWk8ihnPWw0qt0EqF1zbHRxTEPemL1iBHL9UyXpXrKS4JKq6xMn5w==} 772 | engines: {node: '>= 10'} 773 | cpu: [x64] 774 | os: [darwin] 775 | requiresBuild: true 776 | dev: false 777 | optional: true 778 | 779 | /@node-rs/argon2-freebsd-x64@1.5.2: 780 | resolution: {integrity: sha512-UjKbFd3viYcpiwflkU4haEdNUMk1V2fVCJImWLWQns/hVval9BrDv5xsBwgdynbPHDlPOiWj816LBQwhWLGVWA==} 781 | engines: {node: '>= 10'} 782 | cpu: [x64] 783 | os: [freebsd] 784 | requiresBuild: true 785 | dev: false 786 | optional: true 787 | 788 | /@node-rs/argon2-linux-arm-gnueabihf@1.5.2: 789 | resolution: {integrity: sha512-36GJjJBnVuscV9CTn8RVDeJysnmIzr6Lp7QBCDczYHi6eKFuA8udCJb4SRyJqdvIuzycKG1RL56FbcFBJYCYIA==} 790 | engines: {node: '>= 10'} 791 | cpu: [arm] 792 | os: [linux] 793 | requiresBuild: true 794 | dev: false 795 | optional: true 796 | 797 | /@node-rs/argon2-linux-arm64-gnu@1.5.2: 798 | resolution: {integrity: sha512-sE0ydb2gp6xC+5vbVz8l3paaiBbFQIB2Rwp5wx9MmKiYdTfcO5WkGeADuSgoFiTcSEz1RsHXqrdVy6j/LtSqtA==} 799 | engines: {node: '>= 10'} 800 | cpu: [arm64] 801 | os: [linux] 802 | requiresBuild: true 803 | dev: false 804 | optional: true 805 | 806 | /@node-rs/argon2-linux-arm64-musl@1.5.2: 807 | resolution: {integrity: sha512-LhE0YHB0aJCwlbsQrwePik/KFWUc9qMriJIL5KiejK3bDoTVY4ihH587QT56JyaLvl3nBJaAV8l5yMqQdHnouA==} 808 | engines: {node: '>= 10'} 809 | cpu: [arm64] 810 | os: [linux] 811 | requiresBuild: true 812 | dev: false 813 | optional: true 814 | 815 | /@node-rs/argon2-linux-x64-gnu@1.5.2: 816 | resolution: {integrity: sha512-MnKLiBlyg05pxvKXe3lNgBL9El9ThD74hvVEiWH1Xk40RRrJ507NCOWXVmQ0FDq1mjTeGFxbIvk+AcoF0NSLIQ==} 817 | engines: {node: '>= 10'} 818 | cpu: [x64] 819 | os: [linux] 820 | requiresBuild: true 821 | dev: false 822 | optional: true 823 | 824 | /@node-rs/argon2-linux-x64-musl@1.5.2: 825 | resolution: {integrity: sha512-tzLgASY0Ng2OTW7Awwl9UWzjbWx8/uD6gXcZ/k/nYGSZE5Xp8EOD2NUqHLbK6KZE3775A0R25ShpiSxCadYqkg==} 826 | engines: {node: '>= 10'} 827 | cpu: [x64] 828 | os: [linux] 829 | requiresBuild: true 830 | dev: false 831 | optional: true 832 | 833 | /@node-rs/argon2-win32-arm64-msvc@1.5.2: 834 | resolution: {integrity: sha512-vpTwSvv3oUXTpWZh0/HxdJ5wFMlmS7aVDwL4ATWepTZhMG4n+TO0+tVLdcPHCbg0oc6hCWBjWNPlSn9mW+YIgA==} 835 | engines: {node: '>= 10'} 836 | cpu: [arm64] 837 | os: [win32] 838 | requiresBuild: true 839 | dev: false 840 | optional: true 841 | 842 | /@node-rs/argon2-win32-ia32-msvc@1.5.2: 843 | resolution: {integrity: sha512-KPpZR15ui7uQWQXKmtaKyUQRs4UJdXnIIfiyFLGmLWCdEKlr3MtIGFt0fdziu4BF5ZObD8Ic6QvT0VXK4OJiww==} 844 | engines: {node: '>= 10'} 845 | cpu: [ia32] 846 | os: [win32] 847 | requiresBuild: true 848 | dev: false 849 | optional: true 850 | 851 | /@node-rs/argon2-win32-x64-msvc@1.5.2: 852 | resolution: {integrity: sha512-/pGuwixJS8ZlpwhX9iM6g6JEeZYo1TtnNf8exwsOi7gxcUoTUfw5it+5GfbY/n+xRBz/DIU4bzUmXmh+7Gh0ug==} 853 | engines: {node: '>= 10'} 854 | cpu: [x64] 855 | os: [win32] 856 | requiresBuild: true 857 | dev: false 858 | optional: true 859 | 860 | /@node-rs/argon2@1.5.2: 861 | resolution: {integrity: sha512-qq7wOSsdP2b4rXEapWNmsCjpaTGZWtp9kZmri98GYCDZqN8UJUG5zSue4XtYWWJMWKJVE/hkaIwk+BgN1ZUn0Q==} 862 | engines: {node: '>= 10'} 863 | optionalDependencies: 864 | '@node-rs/argon2-android-arm-eabi': 1.5.2 865 | '@node-rs/argon2-android-arm64': 1.5.2 866 | '@node-rs/argon2-darwin-arm64': 1.5.2 867 | '@node-rs/argon2-darwin-x64': 1.5.2 868 | '@node-rs/argon2-freebsd-x64': 1.5.2 869 | '@node-rs/argon2-linux-arm-gnueabihf': 1.5.2 870 | '@node-rs/argon2-linux-arm64-gnu': 1.5.2 871 | '@node-rs/argon2-linux-arm64-musl': 1.5.2 872 | '@node-rs/argon2-linux-x64-gnu': 1.5.2 873 | '@node-rs/argon2-linux-x64-musl': 1.5.2 874 | '@node-rs/argon2-win32-arm64-msvc': 1.5.2 875 | '@node-rs/argon2-win32-ia32-msvc': 1.5.2 876 | '@node-rs/argon2-win32-x64-msvc': 1.5.2 877 | dev: false 878 | 879 | /@node-rs/bcrypt-android-arm-eabi@1.7.3: 880 | resolution: {integrity: sha512-l53RuBqnqNvBN2jx09Ws6jpLmuQdSDx10n0GeaTfwh1svxsC8bPpVmxkfBExsT2Tu7KF38gTnPZvwsxysZQyPQ==} 881 | engines: {node: '>= 10'} 882 | cpu: [arm] 883 | os: [android] 884 | requiresBuild: true 885 | dev: false 886 | optional: true 887 | 888 | /@node-rs/bcrypt-android-arm64@1.7.3: 889 | resolution: {integrity: sha512-TZpm4VbiViqDMvusrcYzLr1b1M5FDF0cDNiTUciLeBSsKtU5lNdEZGAU7gvCnrKoUWpGuOblHU7613zuB7SiNQ==} 890 | engines: {node: '>= 10'} 891 | cpu: [arm64] 892 | os: [android] 893 | requiresBuild: true 894 | dev: false 895 | optional: true 896 | 897 | /@node-rs/bcrypt-darwin-arm64@1.7.3: 898 | resolution: {integrity: sha512-SiUuAabynVsmixZMjh5xrn8w47EnV0HzbW9st4DPoVhn/wzdUcksIXDY75aoQG2EIzKLN8IGb+CIVnPGmRyhxw==} 899 | engines: {node: '>= 10'} 900 | cpu: [arm64] 901 | os: [darwin] 902 | requiresBuild: true 903 | dev: false 904 | optional: true 905 | 906 | /@node-rs/bcrypt-darwin-x64@1.7.3: 907 | resolution: {integrity: sha512-R+81Z0eX4hZPvCXY5Z6l0l+JrTU3WcSYGHP0QYV9uwdaafOz6EhrCXUzZ02AIcAbNoVR8eucYVruq9PiasXoVw==} 908 | engines: {node: '>= 10'} 909 | cpu: [x64] 910 | os: [darwin] 911 | requiresBuild: true 912 | dev: false 913 | optional: true 914 | 915 | /@node-rs/bcrypt-freebsd-x64@1.7.3: 916 | resolution: {integrity: sha512-0pItU/5K3e83JjcJj9fZv+78txUoZ3hHCT7n/UMdu9mkpUzhX/rqb4jmQpJpD+UQoR76xp3qDo5RMgQBffBVNg==} 917 | engines: {node: '>= 10'} 918 | cpu: [x64] 919 | os: [freebsd] 920 | requiresBuild: true 921 | dev: false 922 | optional: true 923 | 924 | /@node-rs/bcrypt-linux-arm-gnueabihf@1.7.3: 925 | resolution: {integrity: sha512-HTSybWUjNe8rWuXkTkMeFDiQNHc6VioRcgv6AeHZphIxiT6dFbnhXNkfz4Hr0zxvyPhZ3NrYjT2AmPVFT6VW3Q==} 926 | engines: {node: '>= 10'} 927 | cpu: [arm] 928 | os: [linux] 929 | requiresBuild: true 930 | dev: false 931 | optional: true 932 | 933 | /@node-rs/bcrypt-linux-arm64-gnu@1.7.3: 934 | resolution: {integrity: sha512-rWep6Y+v/c4bZHaM8LmSsrMwMmDR9wG4/q+3Z9VzR8xdnt5VCbuQdYWpf3sgGRGjTRdTBAdSK8x1reOjqsJ3Jg==} 935 | engines: {node: '>= 10'} 936 | cpu: [arm64] 937 | os: [linux] 938 | requiresBuild: true 939 | dev: false 940 | optional: true 941 | 942 | /@node-rs/bcrypt-linux-arm64-musl@1.7.3: 943 | resolution: {integrity: sha512-TyWEKhxr+yfGcMKzVV/ARZw+Hrky2yl91bo0XYU2ZW6I6LDC0emNsXugdWjwz8ADI4OWhhrOjXD8GCilxiB2Rg==} 944 | engines: {node: '>= 10'} 945 | cpu: [arm64] 946 | os: [linux] 947 | requiresBuild: true 948 | dev: false 949 | optional: true 950 | 951 | /@node-rs/bcrypt-linux-x64-gnu@1.7.3: 952 | resolution: {integrity: sha512-PofxM1Qg7tZKj1oP0I7tBTSSLr8Xc2uxx+P3pBCPmYzaBwWqGteNHJlF7n2q5xiH7YOlguH4w5CmcEjsiA3K4A==} 953 | engines: {node: '>= 10'} 954 | cpu: [x64] 955 | os: [linux] 956 | requiresBuild: true 957 | dev: false 958 | optional: true 959 | 960 | /@node-rs/bcrypt-linux-x64-musl@1.7.3: 961 | resolution: {integrity: sha512-D5V6/dDVKP8S/ieDBLGhTn4oTo3upbrpWInynbhOMjJvPiIxVG1PiI3MXkWBtG9qtfleDk7gUkEKtAOxlIxDTQ==} 962 | engines: {node: '>= 10'} 963 | cpu: [x64] 964 | os: [linux] 965 | requiresBuild: true 966 | dev: false 967 | optional: true 968 | 969 | /@node-rs/bcrypt-win32-arm64-msvc@1.7.3: 970 | resolution: {integrity: sha512-b4gH2Yj5R4TwULrfMHd1Qqr+MrnFjVRUAJujDKPqi+PppSqezW8QF6DRSOL4GjnBmz5JEd64wxgeidvy7dsbGw==} 971 | engines: {node: '>= 10'} 972 | cpu: [arm64] 973 | os: [win32] 974 | requiresBuild: true 975 | dev: false 976 | optional: true 977 | 978 | /@node-rs/bcrypt-win32-ia32-msvc@1.7.3: 979 | resolution: {integrity: sha512-E91ro+ybI0RhNc89aGaZQGll0YhPoHr8JacoWrNKwhg9zwNOYeuO0tokdMZdm6nF0/8obll0Mq7wO9AXO9iffw==} 980 | engines: {node: '>= 10'} 981 | cpu: [ia32] 982 | os: [win32] 983 | requiresBuild: true 984 | dev: false 985 | optional: true 986 | 987 | /@node-rs/bcrypt-win32-x64-msvc@1.7.3: 988 | resolution: {integrity: sha512-LO/p9yjPODj/pQvPnowBuwpDdqiyUXQbqL1xb1RSP3NoyCFAGmjL5h0plSQrhLh8hskQiozBRXNaQurtsM7o0Q==} 989 | engines: {node: '>= 10'} 990 | cpu: [x64] 991 | os: [win32] 992 | requiresBuild: true 993 | dev: false 994 | optional: true 995 | 996 | /@node-rs/bcrypt@1.7.3: 997 | resolution: {integrity: sha512-BF6u9CBPUiyk1zU+5iwikezf+xM4MFSu5cmrrg/PLKffGgIM13ZsY6DHftcTraETB04ryasjM/5IejotH+sO5Q==} 998 | engines: {node: '>= 10'} 999 | optionalDependencies: 1000 | '@node-rs/bcrypt-android-arm-eabi': 1.7.3 1001 | '@node-rs/bcrypt-android-arm64': 1.7.3 1002 | '@node-rs/bcrypt-darwin-arm64': 1.7.3 1003 | '@node-rs/bcrypt-darwin-x64': 1.7.3 1004 | '@node-rs/bcrypt-freebsd-x64': 1.7.3 1005 | '@node-rs/bcrypt-linux-arm-gnueabihf': 1.7.3 1006 | '@node-rs/bcrypt-linux-arm64-gnu': 1.7.3 1007 | '@node-rs/bcrypt-linux-arm64-musl': 1.7.3 1008 | '@node-rs/bcrypt-linux-x64-gnu': 1.7.3 1009 | '@node-rs/bcrypt-linux-x64-musl': 1.7.3 1010 | '@node-rs/bcrypt-win32-arm64-msvc': 1.7.3 1011 | '@node-rs/bcrypt-win32-ia32-msvc': 1.7.3 1012 | '@node-rs/bcrypt-win32-x64-msvc': 1.7.3 1013 | dev: false 1014 | 1015 | /@nodelib/fs.scandir@2.1.5: 1016 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 1017 | engines: {node: '>= 8'} 1018 | dependencies: 1019 | '@nodelib/fs.stat': 2.0.5 1020 | run-parallel: 1.2.0 1021 | dev: false 1022 | 1023 | /@nodelib/fs.stat@2.0.5: 1024 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 1025 | engines: {node: '>= 8'} 1026 | dev: false 1027 | 1028 | /@nodelib/fs.walk@1.2.8: 1029 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 1030 | engines: {node: '>= 8'} 1031 | dependencies: 1032 | '@nodelib/fs.scandir': 2.1.5 1033 | fastq: 1.15.0 1034 | dev: false 1035 | 1036 | /@types/babel__core@7.20.2: 1037 | resolution: {integrity: sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA==} 1038 | dependencies: 1039 | '@babel/parser': 7.23.0 1040 | '@babel/types': 7.23.0 1041 | '@types/babel__generator': 7.6.5 1042 | '@types/babel__template': 7.4.2 1043 | '@types/babel__traverse': 7.20.2 1044 | dev: false 1045 | 1046 | /@types/babel__generator@7.6.5: 1047 | resolution: {integrity: sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w==} 1048 | dependencies: 1049 | '@babel/types': 7.23.0 1050 | dev: false 1051 | 1052 | /@types/babel__template@7.4.2: 1053 | resolution: {integrity: sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ==} 1054 | dependencies: 1055 | '@babel/parser': 7.23.0 1056 | '@babel/types': 7.23.0 1057 | dev: false 1058 | 1059 | /@types/babel__traverse@7.20.2: 1060 | resolution: {integrity: sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw==} 1061 | dependencies: 1062 | '@babel/types': 7.23.0 1063 | dev: false 1064 | 1065 | /@types/debug@4.1.9: 1066 | resolution: {integrity: sha512-8Hz50m2eoS56ldRlepxSBa6PWEVCtzUo/92HgLc2qTMnotJNIm7xP+UZhyWoYsyOdd5dxZ+NZLb24rsKyFs2ow==} 1067 | dependencies: 1068 | '@types/ms': 0.7.32 1069 | dev: false 1070 | 1071 | /@types/estree@1.0.2: 1072 | resolution: {integrity: sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==} 1073 | dev: false 1074 | 1075 | /@types/hast@2.3.6: 1076 | resolution: {integrity: sha512-47rJE80oqPmFdVDCD7IheXBrVdwuBgsYwoczFvKmwfo2Mzsnt+V9OONsYauFmICb6lQPpCuXYJWejBNs4pDJRg==} 1077 | dependencies: 1078 | '@types/unist': 2.0.8 1079 | dev: false 1080 | 1081 | /@types/hast@3.0.1: 1082 | resolution: {integrity: sha512-hs/iBJx2aydugBQx5ETV3ZgeSS0oIreQrFJ4bjBl0XvM4wAmDjFEALY7p0rTSLt2eL+ibjRAAs9dTPiCLtmbqQ==} 1083 | dependencies: 1084 | '@types/unist': 3.0.0 1085 | dev: false 1086 | 1087 | /@types/mdast@3.0.13: 1088 | resolution: {integrity: sha512-HjiGiWedR0DVFkeNljpa6Lv4/IZU1+30VY5d747K7lBudFc3R0Ibr6yJ9lN3BE28VnZyDfLF/VB1Ql1ZIbKrmg==} 1089 | dependencies: 1090 | '@types/unist': 2.0.8 1091 | dev: false 1092 | 1093 | /@types/mdast@4.0.1: 1094 | resolution: {integrity: sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==} 1095 | dependencies: 1096 | '@types/unist': 3.0.0 1097 | dev: false 1098 | 1099 | /@types/ms@0.7.32: 1100 | resolution: {integrity: sha512-xPSg0jm4mqgEkNhowKgZFBNtwoEwF6gJ4Dhww+GFpm3IgtNseHQZ5IqdNwnquZEoANxyDAKDRAdVo4Z72VvD/g==} 1101 | dev: false 1102 | 1103 | /@types/nlcst@1.0.2: 1104 | resolution: {integrity: sha512-ykxL/GDDUhqikjU0LIywZvEwb1NTYXTEWf+XgMSS2o6IXIakafPccxZmxgZcvJPZ3yFl2kdL1gJZz3U3iZF3QA==} 1105 | dependencies: 1106 | '@types/unist': 2.0.8 1107 | dev: false 1108 | 1109 | /@types/parse5@6.0.3: 1110 | resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} 1111 | dev: false 1112 | 1113 | /@types/unist@2.0.8: 1114 | resolution: {integrity: sha512-d0XxK3YTObnWVp6rZuev3c49+j4Lo8g4L1ZRm9z5L0xpoZycUPshHgczK5gsUMaZOstjVYYi09p5gYvUtfChYw==} 1115 | dev: false 1116 | 1117 | /@types/unist@3.0.0: 1118 | resolution: {integrity: sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==} 1119 | dev: false 1120 | 1121 | /@ungap/structured-clone@1.2.0: 1122 | resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} 1123 | dev: false 1124 | 1125 | /acorn@8.10.0: 1126 | resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} 1127 | engines: {node: '>=0.4.0'} 1128 | hasBin: true 1129 | dev: false 1130 | 1131 | /ansi-align@3.0.1: 1132 | resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} 1133 | dependencies: 1134 | string-width: 4.2.3 1135 | dev: false 1136 | 1137 | /ansi-regex@5.0.1: 1138 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 1139 | engines: {node: '>=8'} 1140 | dev: false 1141 | 1142 | /ansi-regex@6.0.1: 1143 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 1144 | engines: {node: '>=12'} 1145 | dev: false 1146 | 1147 | /ansi-styles@3.2.1: 1148 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 1149 | engines: {node: '>=4'} 1150 | dependencies: 1151 | color-convert: 1.9.3 1152 | dev: false 1153 | 1154 | /ansi-styles@6.2.1: 1155 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 1156 | engines: {node: '>=12'} 1157 | dev: false 1158 | 1159 | /anymatch@3.1.3: 1160 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 1161 | engines: {node: '>= 8'} 1162 | dependencies: 1163 | normalize-path: 3.0.0 1164 | picomatch: 2.3.1 1165 | dev: false 1166 | 1167 | /argparse@1.0.10: 1168 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} 1169 | dependencies: 1170 | sprintf-js: 1.0.3 1171 | dev: false 1172 | 1173 | /argparse@2.0.1: 1174 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 1175 | dev: false 1176 | 1177 | /array-iterate@2.0.1: 1178 | resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} 1179 | dev: false 1180 | 1181 | /astro@3.3.1: 1182 | resolution: {integrity: sha512-PzXJN8IIjQrxf+D39utnBtxscdqizwslOKoXXGtVFCA66IPh37HzGts0VLtB/kSf8ouTojk5JBQWbevDiW53VQ==} 1183 | engines: {node: '>=18.14.1', npm: '>=6.14.0'} 1184 | hasBin: true 1185 | dependencies: 1186 | '@astrojs/compiler': 2.2.0 1187 | '@astrojs/internal-helpers': 0.2.1 1188 | '@astrojs/markdown-remark': 3.3.0(astro@3.3.1) 1189 | '@astrojs/telemetry': 3.0.3 1190 | '@babel/core': 7.23.2 1191 | '@babel/generator': 7.23.0 1192 | '@babel/parser': 7.23.0 1193 | '@babel/plugin-transform-react-jsx': 7.22.15(@babel/core@7.23.2) 1194 | '@babel/traverse': 7.23.2 1195 | '@babel/types': 7.23.0 1196 | '@types/babel__core': 7.20.2 1197 | acorn: 8.10.0 1198 | boxen: 7.1.1 1199 | chokidar: 3.5.3 1200 | ci-info: 3.9.0 1201 | clsx: 2.0.0 1202 | common-ancestor-path: 1.0.1 1203 | cookie: 0.5.0 1204 | debug: 4.3.4 1205 | deterministic-object-hash: 1.3.1 1206 | devalue: 4.3.2 1207 | diff: 5.1.0 1208 | es-module-lexer: 1.3.1 1209 | esbuild: 0.19.5 1210 | estree-walker: 3.0.3 1211 | execa: 8.0.1 1212 | fast-glob: 3.3.1 1213 | github-slugger: 2.0.0 1214 | gray-matter: 4.0.3 1215 | html-escaper: 3.0.3 1216 | http-cache-semantics: 4.1.1 1217 | js-yaml: 4.1.0 1218 | kleur: 4.1.5 1219 | magic-string: 0.30.5 1220 | mime: 3.0.0 1221 | ora: 7.0.1 1222 | p-limit: 4.0.0 1223 | path-to-regexp: 6.2.1 1224 | preferred-pm: 3.1.2 1225 | probe-image-size: 7.2.3 1226 | prompts: 2.4.2 1227 | rehype: 12.0.1 1228 | resolve: 1.22.8 1229 | semver: 7.5.4 1230 | server-destroy: 1.0.1 1231 | shikiji: 0.6.10 1232 | string-width: 6.1.0 1233 | strip-ansi: 7.1.0 1234 | tsconfck: 3.0.0 1235 | unist-util-visit: 4.1.2 1236 | vfile: 5.3.7 1237 | vite: 4.4.11 1238 | vitefu: 0.2.5(vite@4.4.11) 1239 | which-pm: 2.1.1 1240 | yargs-parser: 21.1.1 1241 | zod: 3.21.1 1242 | optionalDependencies: 1243 | sharp: 0.32.6 1244 | transitivePeerDependencies: 1245 | - '@types/node' 1246 | - less 1247 | - lightningcss 1248 | - sass 1249 | - stylus 1250 | - sugarss 1251 | - supports-color 1252 | - terser 1253 | - typescript 1254 | dev: false 1255 | 1256 | /b4a@1.6.4: 1257 | resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==} 1258 | dev: false 1259 | optional: true 1260 | 1261 | /bail@2.0.2: 1262 | resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} 1263 | dev: false 1264 | 1265 | /base64-js@1.5.1: 1266 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 1267 | dev: false 1268 | 1269 | /binary-extensions@2.2.0: 1270 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 1271 | engines: {node: '>=8'} 1272 | dev: false 1273 | 1274 | /bl@4.1.0: 1275 | resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} 1276 | dependencies: 1277 | buffer: 5.7.1 1278 | inherits: 2.0.4 1279 | readable-stream: 3.6.2 1280 | dev: false 1281 | optional: true 1282 | 1283 | /bl@5.1.0: 1284 | resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} 1285 | dependencies: 1286 | buffer: 6.0.3 1287 | inherits: 2.0.4 1288 | readable-stream: 3.6.2 1289 | dev: false 1290 | 1291 | /boxen@7.1.1: 1292 | resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} 1293 | engines: {node: '>=14.16'} 1294 | dependencies: 1295 | ansi-align: 3.0.1 1296 | camelcase: 7.0.1 1297 | chalk: 5.3.0 1298 | cli-boxes: 3.0.0 1299 | string-width: 5.1.2 1300 | type-fest: 2.19.0 1301 | widest-line: 4.0.1 1302 | wrap-ansi: 8.1.0 1303 | dev: false 1304 | 1305 | /braces@3.0.2: 1306 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 1307 | engines: {node: '>=8'} 1308 | dependencies: 1309 | fill-range: 7.0.1 1310 | dev: false 1311 | 1312 | /browserslist@4.22.1: 1313 | resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} 1314 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 1315 | hasBin: true 1316 | dependencies: 1317 | caniuse-lite: 1.0.30001549 1318 | electron-to-chromium: 1.4.556 1319 | node-releases: 2.0.13 1320 | update-browserslist-db: 1.0.13(browserslist@4.22.1) 1321 | dev: false 1322 | 1323 | /buffer@5.7.1: 1324 | resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} 1325 | dependencies: 1326 | base64-js: 1.5.1 1327 | ieee754: 1.2.1 1328 | dev: false 1329 | optional: true 1330 | 1331 | /buffer@6.0.3: 1332 | resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} 1333 | dependencies: 1334 | base64-js: 1.5.1 1335 | ieee754: 1.2.1 1336 | dev: false 1337 | 1338 | /camelcase@7.0.1: 1339 | resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} 1340 | engines: {node: '>=14.16'} 1341 | dev: false 1342 | 1343 | /caniuse-lite@1.0.30001549: 1344 | resolution: {integrity: sha512-qRp48dPYSCYaP+KurZLhDYdVE+yEyht/3NlmcJgVQ2VMGt6JL36ndQ/7rgspdZsJuxDPFIo/OzBT2+GmIJ53BA==} 1345 | dev: false 1346 | 1347 | /ccount@2.0.1: 1348 | resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} 1349 | dev: false 1350 | 1351 | /chalk@2.4.2: 1352 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 1353 | engines: {node: '>=4'} 1354 | dependencies: 1355 | ansi-styles: 3.2.1 1356 | escape-string-regexp: 1.0.5 1357 | supports-color: 5.5.0 1358 | dev: false 1359 | 1360 | /chalk@5.3.0: 1361 | resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} 1362 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 1363 | dev: false 1364 | 1365 | /character-entities-html4@2.1.0: 1366 | resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} 1367 | dev: false 1368 | 1369 | /character-entities-legacy@3.0.0: 1370 | resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} 1371 | dev: false 1372 | 1373 | /character-entities@2.0.2: 1374 | resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} 1375 | dev: false 1376 | 1377 | /chokidar@3.5.3: 1378 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 1379 | engines: {node: '>= 8.10.0'} 1380 | dependencies: 1381 | anymatch: 3.1.3 1382 | braces: 3.0.2 1383 | glob-parent: 5.1.2 1384 | is-binary-path: 2.1.0 1385 | is-glob: 4.0.3 1386 | normalize-path: 3.0.0 1387 | readdirp: 3.6.0 1388 | optionalDependencies: 1389 | fsevents: 2.3.3 1390 | dev: false 1391 | 1392 | /chownr@1.1.4: 1393 | resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} 1394 | dev: false 1395 | optional: true 1396 | 1397 | /ci-info@3.9.0: 1398 | resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} 1399 | engines: {node: '>=8'} 1400 | dev: false 1401 | 1402 | /cli-boxes@3.0.0: 1403 | resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} 1404 | engines: {node: '>=10'} 1405 | dev: false 1406 | 1407 | /cli-cursor@4.0.0: 1408 | resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} 1409 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1410 | dependencies: 1411 | restore-cursor: 4.0.0 1412 | dev: false 1413 | 1414 | /cli-spinners@2.9.1: 1415 | resolution: {integrity: sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==} 1416 | engines: {node: '>=6'} 1417 | dev: false 1418 | 1419 | /clsx@2.0.0: 1420 | resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} 1421 | engines: {node: '>=6'} 1422 | dev: false 1423 | 1424 | /color-convert@1.9.3: 1425 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 1426 | dependencies: 1427 | color-name: 1.1.3 1428 | dev: false 1429 | 1430 | /color-convert@2.0.1: 1431 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 1432 | engines: {node: '>=7.0.0'} 1433 | dependencies: 1434 | color-name: 1.1.4 1435 | dev: false 1436 | optional: true 1437 | 1438 | /color-name@1.1.3: 1439 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 1440 | dev: false 1441 | 1442 | /color-name@1.1.4: 1443 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 1444 | dev: false 1445 | optional: true 1446 | 1447 | /color-string@1.9.1: 1448 | resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} 1449 | dependencies: 1450 | color-name: 1.1.4 1451 | simple-swizzle: 0.2.2 1452 | dev: false 1453 | optional: true 1454 | 1455 | /color@4.2.3: 1456 | resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} 1457 | engines: {node: '>=12.5.0'} 1458 | dependencies: 1459 | color-convert: 2.0.1 1460 | color-string: 1.9.1 1461 | dev: false 1462 | optional: true 1463 | 1464 | /comma-separated-tokens@2.0.3: 1465 | resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} 1466 | dev: false 1467 | 1468 | /common-ancestor-path@1.0.1: 1469 | resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} 1470 | dev: false 1471 | 1472 | /convert-source-map@2.0.0: 1473 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 1474 | dev: false 1475 | 1476 | /cookie@0.5.0: 1477 | resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} 1478 | engines: {node: '>= 0.6'} 1479 | dev: false 1480 | 1481 | /cross-spawn@7.0.3: 1482 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 1483 | engines: {node: '>= 8'} 1484 | dependencies: 1485 | path-key: 3.1.1 1486 | shebang-command: 2.0.0 1487 | which: 2.0.2 1488 | dev: false 1489 | 1490 | /debug@2.6.9: 1491 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} 1492 | peerDependencies: 1493 | supports-color: '*' 1494 | peerDependenciesMeta: 1495 | supports-color: 1496 | optional: true 1497 | dependencies: 1498 | ms: 2.0.0 1499 | dev: false 1500 | 1501 | /debug@3.2.7: 1502 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 1503 | peerDependencies: 1504 | supports-color: '*' 1505 | peerDependenciesMeta: 1506 | supports-color: 1507 | optional: true 1508 | dependencies: 1509 | ms: 2.1.3 1510 | dev: false 1511 | 1512 | /debug@4.3.4: 1513 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 1514 | engines: {node: '>=6.0'} 1515 | peerDependencies: 1516 | supports-color: '*' 1517 | peerDependenciesMeta: 1518 | supports-color: 1519 | optional: true 1520 | dependencies: 1521 | ms: 2.1.2 1522 | dev: false 1523 | 1524 | /decode-named-character-reference@1.0.2: 1525 | resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} 1526 | dependencies: 1527 | character-entities: 2.0.2 1528 | dev: false 1529 | 1530 | /decompress-response@6.0.0: 1531 | resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} 1532 | engines: {node: '>=10'} 1533 | dependencies: 1534 | mimic-response: 3.1.0 1535 | dev: false 1536 | optional: true 1537 | 1538 | /deep-extend@0.6.0: 1539 | resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} 1540 | engines: {node: '>=4.0.0'} 1541 | dev: false 1542 | optional: true 1543 | 1544 | /depd@2.0.0: 1545 | resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} 1546 | engines: {node: '>= 0.8'} 1547 | dev: false 1548 | 1549 | /dequal@2.0.3: 1550 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 1551 | engines: {node: '>=6'} 1552 | dev: false 1553 | 1554 | /destroy@1.2.0: 1555 | resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} 1556 | engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 1557 | dev: false 1558 | 1559 | /detect-libc@2.0.2: 1560 | resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} 1561 | engines: {node: '>=8'} 1562 | dev: false 1563 | optional: true 1564 | 1565 | /deterministic-object-hash@1.3.1: 1566 | resolution: {integrity: sha512-kQDIieBUreEgY+akq0N7o4FzZCr27dPG1xr3wq267vPwDlSXQ3UMcBXHqTGUBaM/5WDS1jwTYjxRhUzHeuiAvw==} 1567 | dev: false 1568 | 1569 | /devalue@4.3.2: 1570 | resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} 1571 | dev: false 1572 | 1573 | /devlop@1.1.0: 1574 | resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} 1575 | dependencies: 1576 | dequal: 2.0.3 1577 | dev: false 1578 | 1579 | /diff@5.1.0: 1580 | resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} 1581 | engines: {node: '>=0.3.1'} 1582 | dev: false 1583 | 1584 | /dlv@1.1.3: 1585 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 1586 | dev: false 1587 | 1588 | /dset@3.1.2: 1589 | resolution: {integrity: sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q==} 1590 | engines: {node: '>=4'} 1591 | dev: false 1592 | 1593 | /eastasianwidth@0.2.0: 1594 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 1595 | dev: false 1596 | 1597 | /ee-first@1.1.1: 1598 | resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} 1599 | dev: false 1600 | 1601 | /electron-to-chromium@1.4.556: 1602 | resolution: {integrity: sha512-6RPN0hHfzDU8D56E72YkDvnLw5Cj2NMXZGg3UkgyoHxjVhG99KZpsKgBWMmTy0Ei89xwan+rbRsVB9yzATmYzQ==} 1603 | dev: false 1604 | 1605 | /emoji-regex@10.3.0: 1606 | resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} 1607 | dev: false 1608 | 1609 | /emoji-regex@8.0.0: 1610 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1611 | dev: false 1612 | 1613 | /emoji-regex@9.2.2: 1614 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 1615 | dev: false 1616 | 1617 | /encodeurl@1.0.2: 1618 | resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} 1619 | engines: {node: '>= 0.8'} 1620 | dev: false 1621 | 1622 | /end-of-stream@1.4.4: 1623 | resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} 1624 | dependencies: 1625 | once: 1.4.0 1626 | dev: false 1627 | optional: true 1628 | 1629 | /entities@4.5.0: 1630 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 1631 | engines: {node: '>=0.12'} 1632 | dev: false 1633 | 1634 | /es-module-lexer@1.3.1: 1635 | resolution: {integrity: sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==} 1636 | dev: false 1637 | 1638 | /esbuild@0.18.20: 1639 | resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} 1640 | engines: {node: '>=12'} 1641 | hasBin: true 1642 | requiresBuild: true 1643 | optionalDependencies: 1644 | '@esbuild/android-arm': 0.18.20 1645 | '@esbuild/android-arm64': 0.18.20 1646 | '@esbuild/android-x64': 0.18.20 1647 | '@esbuild/darwin-arm64': 0.18.20 1648 | '@esbuild/darwin-x64': 0.18.20 1649 | '@esbuild/freebsd-arm64': 0.18.20 1650 | '@esbuild/freebsd-x64': 0.18.20 1651 | '@esbuild/linux-arm': 0.18.20 1652 | '@esbuild/linux-arm64': 0.18.20 1653 | '@esbuild/linux-ia32': 0.18.20 1654 | '@esbuild/linux-loong64': 0.18.20 1655 | '@esbuild/linux-mips64el': 0.18.20 1656 | '@esbuild/linux-ppc64': 0.18.20 1657 | '@esbuild/linux-riscv64': 0.18.20 1658 | '@esbuild/linux-s390x': 0.18.20 1659 | '@esbuild/linux-x64': 0.18.20 1660 | '@esbuild/netbsd-x64': 0.18.20 1661 | '@esbuild/openbsd-x64': 0.18.20 1662 | '@esbuild/sunos-x64': 0.18.20 1663 | '@esbuild/win32-arm64': 0.18.20 1664 | '@esbuild/win32-ia32': 0.18.20 1665 | '@esbuild/win32-x64': 0.18.20 1666 | dev: false 1667 | 1668 | /esbuild@0.19.5: 1669 | resolution: {integrity: sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==} 1670 | engines: {node: '>=12'} 1671 | hasBin: true 1672 | requiresBuild: true 1673 | optionalDependencies: 1674 | '@esbuild/android-arm': 0.19.5 1675 | '@esbuild/android-arm64': 0.19.5 1676 | '@esbuild/android-x64': 0.19.5 1677 | '@esbuild/darwin-arm64': 0.19.5 1678 | '@esbuild/darwin-x64': 0.19.5 1679 | '@esbuild/freebsd-arm64': 0.19.5 1680 | '@esbuild/freebsd-x64': 0.19.5 1681 | '@esbuild/linux-arm': 0.19.5 1682 | '@esbuild/linux-arm64': 0.19.5 1683 | '@esbuild/linux-ia32': 0.19.5 1684 | '@esbuild/linux-loong64': 0.19.5 1685 | '@esbuild/linux-mips64el': 0.19.5 1686 | '@esbuild/linux-ppc64': 0.19.5 1687 | '@esbuild/linux-riscv64': 0.19.5 1688 | '@esbuild/linux-s390x': 0.19.5 1689 | '@esbuild/linux-x64': 0.19.5 1690 | '@esbuild/netbsd-x64': 0.19.5 1691 | '@esbuild/openbsd-x64': 0.19.5 1692 | '@esbuild/sunos-x64': 0.19.5 1693 | '@esbuild/win32-arm64': 0.19.5 1694 | '@esbuild/win32-ia32': 0.19.5 1695 | '@esbuild/win32-x64': 0.19.5 1696 | dev: false 1697 | 1698 | /escalade@3.1.1: 1699 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 1700 | engines: {node: '>=6'} 1701 | dev: false 1702 | 1703 | /escape-html@1.0.3: 1704 | resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} 1705 | dev: false 1706 | 1707 | /escape-string-regexp@1.0.5: 1708 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 1709 | engines: {node: '>=0.8.0'} 1710 | dev: false 1711 | 1712 | /escape-string-regexp@5.0.0: 1713 | resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} 1714 | engines: {node: '>=12'} 1715 | dev: false 1716 | 1717 | /esprima@4.0.1: 1718 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 1719 | engines: {node: '>=4'} 1720 | hasBin: true 1721 | dev: false 1722 | 1723 | /estree-walker@3.0.3: 1724 | resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 1725 | dependencies: 1726 | '@types/estree': 1.0.2 1727 | dev: false 1728 | 1729 | /etag@1.8.1: 1730 | resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} 1731 | engines: {node: '>= 0.6'} 1732 | dev: false 1733 | 1734 | /execa@8.0.1: 1735 | resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} 1736 | engines: {node: '>=16.17'} 1737 | dependencies: 1738 | cross-spawn: 7.0.3 1739 | get-stream: 8.0.1 1740 | human-signals: 5.0.0 1741 | is-stream: 3.0.0 1742 | merge-stream: 2.0.0 1743 | npm-run-path: 5.1.0 1744 | onetime: 6.0.0 1745 | signal-exit: 4.1.0 1746 | strip-final-newline: 3.0.0 1747 | dev: false 1748 | 1749 | /expand-template@2.0.3: 1750 | resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} 1751 | engines: {node: '>=6'} 1752 | dev: false 1753 | optional: true 1754 | 1755 | /extend-shallow@2.0.1: 1756 | resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} 1757 | engines: {node: '>=0.10.0'} 1758 | dependencies: 1759 | is-extendable: 0.1.1 1760 | dev: false 1761 | 1762 | /extend@3.0.2: 1763 | resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} 1764 | dev: false 1765 | 1766 | /fast-fifo@1.3.2: 1767 | resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} 1768 | dev: false 1769 | optional: true 1770 | 1771 | /fast-glob@3.3.1: 1772 | resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} 1773 | engines: {node: '>=8.6.0'} 1774 | dependencies: 1775 | '@nodelib/fs.stat': 2.0.5 1776 | '@nodelib/fs.walk': 1.2.8 1777 | glob-parent: 5.1.2 1778 | merge2: 1.4.1 1779 | micromatch: 4.0.5 1780 | dev: false 1781 | 1782 | /fastq@1.15.0: 1783 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 1784 | dependencies: 1785 | reusify: 1.0.4 1786 | dev: false 1787 | 1788 | /fill-range@7.0.1: 1789 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1790 | engines: {node: '>=8'} 1791 | dependencies: 1792 | to-regex-range: 5.0.1 1793 | dev: false 1794 | 1795 | /find-up@4.1.0: 1796 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 1797 | engines: {node: '>=8'} 1798 | dependencies: 1799 | locate-path: 5.0.0 1800 | path-exists: 4.0.0 1801 | dev: false 1802 | 1803 | /find-up@5.0.0: 1804 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1805 | engines: {node: '>=10'} 1806 | dependencies: 1807 | locate-path: 6.0.0 1808 | path-exists: 4.0.0 1809 | dev: false 1810 | 1811 | /find-yarn-workspace-root2@1.2.16: 1812 | resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} 1813 | dependencies: 1814 | micromatch: 4.0.5 1815 | pkg-dir: 4.2.0 1816 | dev: false 1817 | 1818 | /fresh@0.5.2: 1819 | resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} 1820 | engines: {node: '>= 0.6'} 1821 | dev: false 1822 | 1823 | /fs-constants@1.0.0: 1824 | resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} 1825 | dev: false 1826 | optional: true 1827 | 1828 | /fsevents@2.3.3: 1829 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1830 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1831 | os: [darwin] 1832 | requiresBuild: true 1833 | dev: false 1834 | optional: true 1835 | 1836 | /gensync@1.0.0-beta.2: 1837 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 1838 | engines: {node: '>=6.9.0'} 1839 | dev: false 1840 | 1841 | /get-stream@8.0.1: 1842 | resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} 1843 | engines: {node: '>=16'} 1844 | dev: false 1845 | 1846 | /github-from-package@0.0.0: 1847 | resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} 1848 | dev: false 1849 | optional: true 1850 | 1851 | /github-slugger@2.0.0: 1852 | resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} 1853 | dev: false 1854 | 1855 | /glob-parent@5.1.2: 1856 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1857 | engines: {node: '>= 6'} 1858 | dependencies: 1859 | is-glob: 4.0.3 1860 | dev: false 1861 | 1862 | /globals@11.12.0: 1863 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 1864 | engines: {node: '>=4'} 1865 | dev: false 1866 | 1867 | /graceful-fs@4.2.11: 1868 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1869 | dev: false 1870 | 1871 | /gray-matter@4.0.3: 1872 | resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} 1873 | engines: {node: '>=6.0'} 1874 | dependencies: 1875 | js-yaml: 3.14.1 1876 | kind-of: 6.0.3 1877 | section-matter: 1.0.0 1878 | strip-bom-string: 1.0.0 1879 | dev: false 1880 | 1881 | /has-flag@3.0.0: 1882 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 1883 | engines: {node: '>=4'} 1884 | dev: false 1885 | 1886 | /has@1.0.4: 1887 | resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} 1888 | engines: {node: '>= 0.4.0'} 1889 | dev: false 1890 | 1891 | /hast-util-from-parse5@7.1.2: 1892 | resolution: {integrity: sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==} 1893 | dependencies: 1894 | '@types/hast': 2.3.6 1895 | '@types/unist': 2.0.8 1896 | hastscript: 7.2.0 1897 | property-information: 6.3.0 1898 | vfile: 5.3.7 1899 | vfile-location: 4.1.0 1900 | web-namespaces: 2.0.1 1901 | dev: false 1902 | 1903 | /hast-util-from-parse5@8.0.1: 1904 | resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} 1905 | dependencies: 1906 | '@types/hast': 3.0.1 1907 | '@types/unist': 3.0.0 1908 | devlop: 1.1.0 1909 | hastscript: 8.0.0 1910 | property-information: 6.3.0 1911 | vfile: 6.0.1 1912 | vfile-location: 5.0.2 1913 | web-namespaces: 2.0.1 1914 | dev: false 1915 | 1916 | /hast-util-parse-selector@3.1.1: 1917 | resolution: {integrity: sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==} 1918 | dependencies: 1919 | '@types/hast': 2.3.6 1920 | dev: false 1921 | 1922 | /hast-util-parse-selector@4.0.0: 1923 | resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} 1924 | dependencies: 1925 | '@types/hast': 3.0.1 1926 | dev: false 1927 | 1928 | /hast-util-raw@7.2.3: 1929 | resolution: {integrity: sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==} 1930 | dependencies: 1931 | '@types/hast': 2.3.6 1932 | '@types/parse5': 6.0.3 1933 | hast-util-from-parse5: 7.1.2 1934 | hast-util-to-parse5: 7.1.0 1935 | html-void-elements: 2.0.1 1936 | parse5: 6.0.1 1937 | unist-util-position: 4.0.4 1938 | unist-util-visit: 4.1.2 1939 | vfile: 5.3.7 1940 | web-namespaces: 2.0.1 1941 | zwitch: 2.0.4 1942 | dev: false 1943 | 1944 | /hast-util-raw@9.0.1: 1945 | resolution: {integrity: sha512-5m1gmba658Q+lO5uqL5YNGQWeh1MYWZbZmWrM5lncdcuiXuo5E2HT/CIOp0rLF8ksfSwiCVJ3twlgVRyTGThGA==} 1946 | dependencies: 1947 | '@types/hast': 3.0.1 1948 | '@types/unist': 3.0.0 1949 | '@ungap/structured-clone': 1.2.0 1950 | hast-util-from-parse5: 8.0.1 1951 | hast-util-to-parse5: 8.0.0 1952 | html-void-elements: 3.0.0 1953 | mdast-util-to-hast: 13.0.2 1954 | parse5: 7.1.2 1955 | unist-util-position: 5.0.0 1956 | unist-util-visit: 5.0.0 1957 | vfile: 6.0.1 1958 | web-namespaces: 2.0.1 1959 | zwitch: 2.0.4 1960 | dev: false 1961 | 1962 | /hast-util-to-html@8.0.4: 1963 | resolution: {integrity: sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==} 1964 | dependencies: 1965 | '@types/hast': 2.3.6 1966 | '@types/unist': 2.0.8 1967 | ccount: 2.0.1 1968 | comma-separated-tokens: 2.0.3 1969 | hast-util-raw: 7.2.3 1970 | hast-util-whitespace: 2.0.1 1971 | html-void-elements: 2.0.1 1972 | property-information: 6.3.0 1973 | space-separated-tokens: 2.0.2 1974 | stringify-entities: 4.0.3 1975 | zwitch: 2.0.4 1976 | dev: false 1977 | 1978 | /hast-util-to-html@9.0.0: 1979 | resolution: {integrity: sha512-IVGhNgg7vANuUA2XKrT6sOIIPgaYZnmLx3l/CCOAK0PtgfoHrZwX7jCSYyFxHTrGmC6S9q8aQQekjp4JPZF+cw==} 1980 | dependencies: 1981 | '@types/hast': 3.0.1 1982 | '@types/unist': 3.0.0 1983 | ccount: 2.0.1 1984 | comma-separated-tokens: 2.0.3 1985 | hast-util-raw: 9.0.1 1986 | hast-util-whitespace: 3.0.0 1987 | html-void-elements: 3.0.0 1988 | mdast-util-to-hast: 13.0.2 1989 | property-information: 6.3.0 1990 | space-separated-tokens: 2.0.2 1991 | stringify-entities: 4.0.3 1992 | zwitch: 2.0.4 1993 | dev: false 1994 | 1995 | /hast-util-to-parse5@7.1.0: 1996 | resolution: {integrity: sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==} 1997 | dependencies: 1998 | '@types/hast': 2.3.6 1999 | comma-separated-tokens: 2.0.3 2000 | property-information: 6.3.0 2001 | space-separated-tokens: 2.0.2 2002 | web-namespaces: 2.0.1 2003 | zwitch: 2.0.4 2004 | dev: false 2005 | 2006 | /hast-util-to-parse5@8.0.0: 2007 | resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} 2008 | dependencies: 2009 | '@types/hast': 3.0.1 2010 | comma-separated-tokens: 2.0.3 2011 | devlop: 1.1.0 2012 | property-information: 6.3.0 2013 | space-separated-tokens: 2.0.2 2014 | web-namespaces: 2.0.1 2015 | zwitch: 2.0.4 2016 | dev: false 2017 | 2018 | /hast-util-whitespace@2.0.1: 2019 | resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} 2020 | dev: false 2021 | 2022 | /hast-util-whitespace@3.0.0: 2023 | resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} 2024 | dependencies: 2025 | '@types/hast': 3.0.1 2026 | dev: false 2027 | 2028 | /hastscript@7.2.0: 2029 | resolution: {integrity: sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==} 2030 | dependencies: 2031 | '@types/hast': 2.3.6 2032 | comma-separated-tokens: 2.0.3 2033 | hast-util-parse-selector: 3.1.1 2034 | property-information: 6.3.0 2035 | space-separated-tokens: 2.0.2 2036 | dev: false 2037 | 2038 | /hastscript@8.0.0: 2039 | resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} 2040 | dependencies: 2041 | '@types/hast': 3.0.1 2042 | comma-separated-tokens: 2.0.3 2043 | hast-util-parse-selector: 4.0.0 2044 | property-information: 6.3.0 2045 | space-separated-tokens: 2.0.2 2046 | dev: false 2047 | 2048 | /html-escaper@3.0.3: 2049 | resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} 2050 | dev: false 2051 | 2052 | /html-void-elements@2.0.1: 2053 | resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==} 2054 | dev: false 2055 | 2056 | /html-void-elements@3.0.0: 2057 | resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} 2058 | dev: false 2059 | 2060 | /http-cache-semantics@4.1.1: 2061 | resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} 2062 | dev: false 2063 | 2064 | /http-errors@2.0.0: 2065 | resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} 2066 | engines: {node: '>= 0.8'} 2067 | dependencies: 2068 | depd: 2.0.0 2069 | inherits: 2.0.4 2070 | setprototypeof: 1.2.0 2071 | statuses: 2.0.1 2072 | toidentifier: 1.0.1 2073 | dev: false 2074 | 2075 | /human-signals@5.0.0: 2076 | resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} 2077 | engines: {node: '>=16.17.0'} 2078 | dev: false 2079 | 2080 | /iconv-lite@0.4.24: 2081 | resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} 2082 | engines: {node: '>=0.10.0'} 2083 | dependencies: 2084 | safer-buffer: 2.1.2 2085 | dev: false 2086 | 2087 | /ieee754@1.2.1: 2088 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 2089 | dev: false 2090 | 2091 | /import-meta-resolve@3.0.0: 2092 | resolution: {integrity: sha512-4IwhLhNNA8yy445rPjD/lWh++7hMDOml2eHtd58eG7h+qK3EryMuuRbsHGPikCoAgIkkDnckKfWSk2iDla/ejg==} 2093 | dev: false 2094 | 2095 | /inherits@2.0.4: 2096 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 2097 | dev: false 2098 | 2099 | /ini@1.3.8: 2100 | resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} 2101 | dev: false 2102 | optional: true 2103 | 2104 | /is-arrayish@0.3.2: 2105 | resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} 2106 | dev: false 2107 | optional: true 2108 | 2109 | /is-binary-path@2.1.0: 2110 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 2111 | engines: {node: '>=8'} 2112 | dependencies: 2113 | binary-extensions: 2.2.0 2114 | dev: false 2115 | 2116 | /is-buffer@2.0.5: 2117 | resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} 2118 | engines: {node: '>=4'} 2119 | dev: false 2120 | 2121 | /is-core-module@2.13.0: 2122 | resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} 2123 | dependencies: 2124 | has: 1.0.4 2125 | dev: false 2126 | 2127 | /is-docker@3.0.0: 2128 | resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} 2129 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2130 | hasBin: true 2131 | dev: false 2132 | 2133 | /is-extendable@0.1.1: 2134 | resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} 2135 | engines: {node: '>=0.10.0'} 2136 | dev: false 2137 | 2138 | /is-extglob@2.1.1: 2139 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 2140 | engines: {node: '>=0.10.0'} 2141 | dev: false 2142 | 2143 | /is-fullwidth-code-point@3.0.0: 2144 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 2145 | engines: {node: '>=8'} 2146 | dev: false 2147 | 2148 | /is-glob@4.0.3: 2149 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 2150 | engines: {node: '>=0.10.0'} 2151 | dependencies: 2152 | is-extglob: 2.1.1 2153 | dev: false 2154 | 2155 | /is-inside-container@1.0.0: 2156 | resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} 2157 | engines: {node: '>=14.16'} 2158 | hasBin: true 2159 | dependencies: 2160 | is-docker: 3.0.0 2161 | dev: false 2162 | 2163 | /is-interactive@2.0.0: 2164 | resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} 2165 | engines: {node: '>=12'} 2166 | dev: false 2167 | 2168 | /is-number@7.0.0: 2169 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 2170 | engines: {node: '>=0.12.0'} 2171 | dev: false 2172 | 2173 | /is-plain-obj@4.1.0: 2174 | resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} 2175 | engines: {node: '>=12'} 2176 | dev: false 2177 | 2178 | /is-stream@3.0.0: 2179 | resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} 2180 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2181 | dev: false 2182 | 2183 | /is-unicode-supported@1.3.0: 2184 | resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} 2185 | engines: {node: '>=12'} 2186 | dev: false 2187 | 2188 | /is-wsl@3.1.0: 2189 | resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} 2190 | engines: {node: '>=16'} 2191 | dependencies: 2192 | is-inside-container: 1.0.0 2193 | dev: false 2194 | 2195 | /isexe@2.0.0: 2196 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 2197 | dev: false 2198 | 2199 | /js-tokens@4.0.0: 2200 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 2201 | dev: false 2202 | 2203 | /js-yaml@3.14.1: 2204 | resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} 2205 | hasBin: true 2206 | dependencies: 2207 | argparse: 1.0.10 2208 | esprima: 4.0.1 2209 | dev: false 2210 | 2211 | /js-yaml@4.1.0: 2212 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 2213 | hasBin: true 2214 | dependencies: 2215 | argparse: 2.0.1 2216 | dev: false 2217 | 2218 | /jsesc@2.5.2: 2219 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} 2220 | engines: {node: '>=4'} 2221 | hasBin: true 2222 | dev: false 2223 | 2224 | /json5@2.2.3: 2225 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 2226 | engines: {node: '>=6'} 2227 | hasBin: true 2228 | dev: false 2229 | 2230 | /kind-of@6.0.3: 2231 | resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} 2232 | engines: {node: '>=0.10.0'} 2233 | dev: false 2234 | 2235 | /kleur@3.0.3: 2236 | resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} 2237 | engines: {node: '>=6'} 2238 | dev: false 2239 | 2240 | /kleur@4.1.5: 2241 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 2242 | engines: {node: '>=6'} 2243 | dev: false 2244 | 2245 | /load-yaml-file@0.2.0: 2246 | resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} 2247 | engines: {node: '>=6'} 2248 | dependencies: 2249 | graceful-fs: 4.2.11 2250 | js-yaml: 3.14.1 2251 | pify: 4.0.1 2252 | strip-bom: 3.0.0 2253 | dev: false 2254 | 2255 | /locate-path@5.0.0: 2256 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 2257 | engines: {node: '>=8'} 2258 | dependencies: 2259 | p-locate: 4.1.0 2260 | dev: false 2261 | 2262 | /locate-path@6.0.0: 2263 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 2264 | engines: {node: '>=10'} 2265 | dependencies: 2266 | p-locate: 5.0.0 2267 | dev: false 2268 | 2269 | /lodash.merge@4.6.2: 2270 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 2271 | dev: false 2272 | 2273 | /log-symbols@5.1.0: 2274 | resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} 2275 | engines: {node: '>=12'} 2276 | dependencies: 2277 | chalk: 5.3.0 2278 | is-unicode-supported: 1.3.0 2279 | dev: false 2280 | 2281 | /longest-streak@3.1.0: 2282 | resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} 2283 | dev: false 2284 | 2285 | /lru-cache@5.1.1: 2286 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 2287 | dependencies: 2288 | yallist: 3.1.1 2289 | dev: false 2290 | 2291 | /lru-cache@6.0.0: 2292 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 2293 | engines: {node: '>=10'} 2294 | dependencies: 2295 | yallist: 4.0.0 2296 | dev: false 2297 | 2298 | /magic-string@0.30.5: 2299 | resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} 2300 | engines: {node: '>=12'} 2301 | dependencies: 2302 | '@jridgewell/sourcemap-codec': 1.4.15 2303 | dev: false 2304 | 2305 | /markdown-table@3.0.3: 2306 | resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} 2307 | dev: false 2308 | 2309 | /mdast-util-definitions@5.1.2: 2310 | resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==} 2311 | dependencies: 2312 | '@types/mdast': 3.0.13 2313 | '@types/unist': 2.0.8 2314 | unist-util-visit: 4.1.2 2315 | dev: false 2316 | 2317 | /mdast-util-definitions@6.0.0: 2318 | resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} 2319 | dependencies: 2320 | '@types/mdast': 4.0.1 2321 | '@types/unist': 3.0.0 2322 | unist-util-visit: 5.0.0 2323 | dev: false 2324 | 2325 | /mdast-util-find-and-replace@2.2.2: 2326 | resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==} 2327 | dependencies: 2328 | '@types/mdast': 3.0.13 2329 | escape-string-regexp: 5.0.0 2330 | unist-util-is: 5.2.1 2331 | unist-util-visit-parents: 5.1.3 2332 | dev: false 2333 | 2334 | /mdast-util-from-markdown@1.3.1: 2335 | resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} 2336 | dependencies: 2337 | '@types/mdast': 3.0.13 2338 | '@types/unist': 2.0.8 2339 | decode-named-character-reference: 1.0.2 2340 | mdast-util-to-string: 3.2.0 2341 | micromark: 3.2.0 2342 | micromark-util-decode-numeric-character-reference: 1.1.0 2343 | micromark-util-decode-string: 1.1.0 2344 | micromark-util-normalize-identifier: 1.1.0 2345 | micromark-util-symbol: 1.1.0 2346 | micromark-util-types: 1.1.0 2347 | unist-util-stringify-position: 3.0.3 2348 | uvu: 0.5.6 2349 | transitivePeerDependencies: 2350 | - supports-color 2351 | dev: false 2352 | 2353 | /mdast-util-gfm-autolink-literal@1.0.3: 2354 | resolution: {integrity: sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==} 2355 | dependencies: 2356 | '@types/mdast': 3.0.13 2357 | ccount: 2.0.1 2358 | mdast-util-find-and-replace: 2.2.2 2359 | micromark-util-character: 1.2.0 2360 | dev: false 2361 | 2362 | /mdast-util-gfm-footnote@1.0.2: 2363 | resolution: {integrity: sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==} 2364 | dependencies: 2365 | '@types/mdast': 3.0.13 2366 | mdast-util-to-markdown: 1.5.0 2367 | micromark-util-normalize-identifier: 1.1.0 2368 | dev: false 2369 | 2370 | /mdast-util-gfm-strikethrough@1.0.3: 2371 | resolution: {integrity: sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==} 2372 | dependencies: 2373 | '@types/mdast': 3.0.13 2374 | mdast-util-to-markdown: 1.5.0 2375 | dev: false 2376 | 2377 | /mdast-util-gfm-table@1.0.7: 2378 | resolution: {integrity: sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==} 2379 | dependencies: 2380 | '@types/mdast': 3.0.13 2381 | markdown-table: 3.0.3 2382 | mdast-util-from-markdown: 1.3.1 2383 | mdast-util-to-markdown: 1.5.0 2384 | transitivePeerDependencies: 2385 | - supports-color 2386 | dev: false 2387 | 2388 | /mdast-util-gfm-task-list-item@1.0.2: 2389 | resolution: {integrity: sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==} 2390 | dependencies: 2391 | '@types/mdast': 3.0.13 2392 | mdast-util-to-markdown: 1.5.0 2393 | dev: false 2394 | 2395 | /mdast-util-gfm@2.0.2: 2396 | resolution: {integrity: sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==} 2397 | dependencies: 2398 | mdast-util-from-markdown: 1.3.1 2399 | mdast-util-gfm-autolink-literal: 1.0.3 2400 | mdast-util-gfm-footnote: 1.0.2 2401 | mdast-util-gfm-strikethrough: 1.0.3 2402 | mdast-util-gfm-table: 1.0.7 2403 | mdast-util-gfm-task-list-item: 1.0.2 2404 | mdast-util-to-markdown: 1.5.0 2405 | transitivePeerDependencies: 2406 | - supports-color 2407 | dev: false 2408 | 2409 | /mdast-util-phrasing@3.0.1: 2410 | resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==} 2411 | dependencies: 2412 | '@types/mdast': 3.0.13 2413 | unist-util-is: 5.2.1 2414 | dev: false 2415 | 2416 | /mdast-util-to-hast@12.3.0: 2417 | resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==} 2418 | dependencies: 2419 | '@types/hast': 2.3.6 2420 | '@types/mdast': 3.0.13 2421 | mdast-util-definitions: 5.1.2 2422 | micromark-util-sanitize-uri: 1.2.0 2423 | trim-lines: 3.0.1 2424 | unist-util-generated: 2.0.1 2425 | unist-util-position: 4.0.4 2426 | unist-util-visit: 4.1.2 2427 | dev: false 2428 | 2429 | /mdast-util-to-hast@13.0.2: 2430 | resolution: {integrity: sha512-U5I+500EOOw9e3ZrclN3Is3fRpw8c19SMyNZlZ2IS+7vLsNzb2Om11VpIVOR+/0137GhZsFEF6YiKD5+0Hr2Og==} 2431 | dependencies: 2432 | '@types/hast': 3.0.1 2433 | '@types/mdast': 4.0.1 2434 | '@ungap/structured-clone': 1.2.0 2435 | devlop: 1.1.0 2436 | micromark-util-sanitize-uri: 2.0.0 2437 | trim-lines: 3.0.1 2438 | unist-util-position: 5.0.0 2439 | unist-util-visit: 5.0.0 2440 | dev: false 2441 | 2442 | /mdast-util-to-markdown@1.5.0: 2443 | resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} 2444 | dependencies: 2445 | '@types/mdast': 3.0.13 2446 | '@types/unist': 2.0.8 2447 | longest-streak: 3.1.0 2448 | mdast-util-phrasing: 3.0.1 2449 | mdast-util-to-string: 3.2.0 2450 | micromark-util-decode-string: 1.1.0 2451 | unist-util-visit: 4.1.2 2452 | zwitch: 2.0.4 2453 | dev: false 2454 | 2455 | /mdast-util-to-string@3.2.0: 2456 | resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} 2457 | dependencies: 2458 | '@types/mdast': 3.0.13 2459 | dev: false 2460 | 2461 | /merge-stream@2.0.0: 2462 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 2463 | dev: false 2464 | 2465 | /merge2@1.4.1: 2466 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 2467 | engines: {node: '>= 8'} 2468 | dev: false 2469 | 2470 | /micromark-core-commonmark@1.1.0: 2471 | resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==} 2472 | dependencies: 2473 | decode-named-character-reference: 1.0.2 2474 | micromark-factory-destination: 1.1.0 2475 | micromark-factory-label: 1.1.0 2476 | micromark-factory-space: 1.1.0 2477 | micromark-factory-title: 1.1.0 2478 | micromark-factory-whitespace: 1.1.0 2479 | micromark-util-character: 1.2.0 2480 | micromark-util-chunked: 1.1.0 2481 | micromark-util-classify-character: 1.1.0 2482 | micromark-util-html-tag-name: 1.2.0 2483 | micromark-util-normalize-identifier: 1.1.0 2484 | micromark-util-resolve-all: 1.1.0 2485 | micromark-util-subtokenize: 1.1.0 2486 | micromark-util-symbol: 1.1.0 2487 | micromark-util-types: 1.1.0 2488 | uvu: 0.5.6 2489 | dev: false 2490 | 2491 | /micromark-extension-gfm-autolink-literal@1.0.5: 2492 | resolution: {integrity: sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==} 2493 | dependencies: 2494 | micromark-util-character: 1.2.0 2495 | micromark-util-sanitize-uri: 1.2.0 2496 | micromark-util-symbol: 1.1.0 2497 | micromark-util-types: 1.1.0 2498 | dev: false 2499 | 2500 | /micromark-extension-gfm-footnote@1.1.2: 2501 | resolution: {integrity: sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==} 2502 | dependencies: 2503 | micromark-core-commonmark: 1.1.0 2504 | micromark-factory-space: 1.1.0 2505 | micromark-util-character: 1.2.0 2506 | micromark-util-normalize-identifier: 1.1.0 2507 | micromark-util-sanitize-uri: 1.2.0 2508 | micromark-util-symbol: 1.1.0 2509 | micromark-util-types: 1.1.0 2510 | uvu: 0.5.6 2511 | dev: false 2512 | 2513 | /micromark-extension-gfm-strikethrough@1.0.7: 2514 | resolution: {integrity: sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==} 2515 | dependencies: 2516 | micromark-util-chunked: 1.1.0 2517 | micromark-util-classify-character: 1.1.0 2518 | micromark-util-resolve-all: 1.1.0 2519 | micromark-util-symbol: 1.1.0 2520 | micromark-util-types: 1.1.0 2521 | uvu: 0.5.6 2522 | dev: false 2523 | 2524 | /micromark-extension-gfm-table@1.0.7: 2525 | resolution: {integrity: sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==} 2526 | dependencies: 2527 | micromark-factory-space: 1.1.0 2528 | micromark-util-character: 1.2.0 2529 | micromark-util-symbol: 1.1.0 2530 | micromark-util-types: 1.1.0 2531 | uvu: 0.5.6 2532 | dev: false 2533 | 2534 | /micromark-extension-gfm-tagfilter@1.0.2: 2535 | resolution: {integrity: sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==} 2536 | dependencies: 2537 | micromark-util-types: 1.1.0 2538 | dev: false 2539 | 2540 | /micromark-extension-gfm-task-list-item@1.0.5: 2541 | resolution: {integrity: sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==} 2542 | dependencies: 2543 | micromark-factory-space: 1.1.0 2544 | micromark-util-character: 1.2.0 2545 | micromark-util-symbol: 1.1.0 2546 | micromark-util-types: 1.1.0 2547 | uvu: 0.5.6 2548 | dev: false 2549 | 2550 | /micromark-extension-gfm@2.0.3: 2551 | resolution: {integrity: sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==} 2552 | dependencies: 2553 | micromark-extension-gfm-autolink-literal: 1.0.5 2554 | micromark-extension-gfm-footnote: 1.1.2 2555 | micromark-extension-gfm-strikethrough: 1.0.7 2556 | micromark-extension-gfm-table: 1.0.7 2557 | micromark-extension-gfm-tagfilter: 1.0.2 2558 | micromark-extension-gfm-task-list-item: 1.0.5 2559 | micromark-util-combine-extensions: 1.1.0 2560 | micromark-util-types: 1.1.0 2561 | dev: false 2562 | 2563 | /micromark-factory-destination@1.1.0: 2564 | resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==} 2565 | dependencies: 2566 | micromark-util-character: 1.2.0 2567 | micromark-util-symbol: 1.1.0 2568 | micromark-util-types: 1.1.0 2569 | dev: false 2570 | 2571 | /micromark-factory-label@1.1.0: 2572 | resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==} 2573 | dependencies: 2574 | micromark-util-character: 1.2.0 2575 | micromark-util-symbol: 1.1.0 2576 | micromark-util-types: 1.1.0 2577 | uvu: 0.5.6 2578 | dev: false 2579 | 2580 | /micromark-factory-space@1.1.0: 2581 | resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} 2582 | dependencies: 2583 | micromark-util-character: 1.2.0 2584 | micromark-util-types: 1.1.0 2585 | dev: false 2586 | 2587 | /micromark-factory-title@1.1.0: 2588 | resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==} 2589 | dependencies: 2590 | micromark-factory-space: 1.1.0 2591 | micromark-util-character: 1.2.0 2592 | micromark-util-symbol: 1.1.0 2593 | micromark-util-types: 1.1.0 2594 | dev: false 2595 | 2596 | /micromark-factory-whitespace@1.1.0: 2597 | resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==} 2598 | dependencies: 2599 | micromark-factory-space: 1.1.0 2600 | micromark-util-character: 1.2.0 2601 | micromark-util-symbol: 1.1.0 2602 | micromark-util-types: 1.1.0 2603 | dev: false 2604 | 2605 | /micromark-util-character@1.2.0: 2606 | resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} 2607 | dependencies: 2608 | micromark-util-symbol: 1.1.0 2609 | micromark-util-types: 1.1.0 2610 | dev: false 2611 | 2612 | /micromark-util-character@2.0.1: 2613 | resolution: {integrity: sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==} 2614 | dependencies: 2615 | micromark-util-symbol: 2.0.0 2616 | micromark-util-types: 2.0.0 2617 | dev: false 2618 | 2619 | /micromark-util-chunked@1.1.0: 2620 | resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==} 2621 | dependencies: 2622 | micromark-util-symbol: 1.1.0 2623 | dev: false 2624 | 2625 | /micromark-util-classify-character@1.1.0: 2626 | resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==} 2627 | dependencies: 2628 | micromark-util-character: 1.2.0 2629 | micromark-util-symbol: 1.1.0 2630 | micromark-util-types: 1.1.0 2631 | dev: false 2632 | 2633 | /micromark-util-combine-extensions@1.1.0: 2634 | resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==} 2635 | dependencies: 2636 | micromark-util-chunked: 1.1.0 2637 | micromark-util-types: 1.1.0 2638 | dev: false 2639 | 2640 | /micromark-util-decode-numeric-character-reference@1.1.0: 2641 | resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==} 2642 | dependencies: 2643 | micromark-util-symbol: 1.1.0 2644 | dev: false 2645 | 2646 | /micromark-util-decode-string@1.1.0: 2647 | resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==} 2648 | dependencies: 2649 | decode-named-character-reference: 1.0.2 2650 | micromark-util-character: 1.2.0 2651 | micromark-util-decode-numeric-character-reference: 1.1.0 2652 | micromark-util-symbol: 1.1.0 2653 | dev: false 2654 | 2655 | /micromark-util-encode@1.1.0: 2656 | resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==} 2657 | dev: false 2658 | 2659 | /micromark-util-encode@2.0.0: 2660 | resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} 2661 | dev: false 2662 | 2663 | /micromark-util-html-tag-name@1.2.0: 2664 | resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==} 2665 | dev: false 2666 | 2667 | /micromark-util-normalize-identifier@1.1.0: 2668 | resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==} 2669 | dependencies: 2670 | micromark-util-symbol: 1.1.0 2671 | dev: false 2672 | 2673 | /micromark-util-resolve-all@1.1.0: 2674 | resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==} 2675 | dependencies: 2676 | micromark-util-types: 1.1.0 2677 | dev: false 2678 | 2679 | /micromark-util-sanitize-uri@1.2.0: 2680 | resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==} 2681 | dependencies: 2682 | micromark-util-character: 1.2.0 2683 | micromark-util-encode: 1.1.0 2684 | micromark-util-symbol: 1.1.0 2685 | dev: false 2686 | 2687 | /micromark-util-sanitize-uri@2.0.0: 2688 | resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} 2689 | dependencies: 2690 | micromark-util-character: 2.0.1 2691 | micromark-util-encode: 2.0.0 2692 | micromark-util-symbol: 2.0.0 2693 | dev: false 2694 | 2695 | /micromark-util-subtokenize@1.1.0: 2696 | resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==} 2697 | dependencies: 2698 | micromark-util-chunked: 1.1.0 2699 | micromark-util-symbol: 1.1.0 2700 | micromark-util-types: 1.1.0 2701 | uvu: 0.5.6 2702 | dev: false 2703 | 2704 | /micromark-util-symbol@1.1.0: 2705 | resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} 2706 | dev: false 2707 | 2708 | /micromark-util-symbol@2.0.0: 2709 | resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} 2710 | dev: false 2711 | 2712 | /micromark-util-types@1.1.0: 2713 | resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} 2714 | dev: false 2715 | 2716 | /micromark-util-types@2.0.0: 2717 | resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} 2718 | dev: false 2719 | 2720 | /micromark@3.2.0: 2721 | resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} 2722 | dependencies: 2723 | '@types/debug': 4.1.9 2724 | debug: 4.3.4 2725 | decode-named-character-reference: 1.0.2 2726 | micromark-core-commonmark: 1.1.0 2727 | micromark-factory-space: 1.1.0 2728 | micromark-util-character: 1.2.0 2729 | micromark-util-chunked: 1.1.0 2730 | micromark-util-combine-extensions: 1.1.0 2731 | micromark-util-decode-numeric-character-reference: 1.1.0 2732 | micromark-util-encode: 1.1.0 2733 | micromark-util-normalize-identifier: 1.1.0 2734 | micromark-util-resolve-all: 1.1.0 2735 | micromark-util-sanitize-uri: 1.2.0 2736 | micromark-util-subtokenize: 1.1.0 2737 | micromark-util-symbol: 1.1.0 2738 | micromark-util-types: 1.1.0 2739 | uvu: 0.5.6 2740 | transitivePeerDependencies: 2741 | - supports-color 2742 | dev: false 2743 | 2744 | /micromatch@4.0.5: 2745 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 2746 | engines: {node: '>=8.6'} 2747 | dependencies: 2748 | braces: 3.0.2 2749 | picomatch: 2.3.1 2750 | dev: false 2751 | 2752 | /mime@1.6.0: 2753 | resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} 2754 | engines: {node: '>=4'} 2755 | hasBin: true 2756 | dev: false 2757 | 2758 | /mime@3.0.0: 2759 | resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} 2760 | engines: {node: '>=10.0.0'} 2761 | hasBin: true 2762 | dev: false 2763 | 2764 | /mimic-fn@2.1.0: 2765 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 2766 | engines: {node: '>=6'} 2767 | dev: false 2768 | 2769 | /mimic-fn@4.0.0: 2770 | resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} 2771 | engines: {node: '>=12'} 2772 | dev: false 2773 | 2774 | /mimic-response@3.1.0: 2775 | resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} 2776 | engines: {node: '>=10'} 2777 | dev: false 2778 | optional: true 2779 | 2780 | /minimist@1.2.8: 2781 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 2782 | dev: false 2783 | optional: true 2784 | 2785 | /mkdirp-classic@0.5.3: 2786 | resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} 2787 | dev: false 2788 | optional: true 2789 | 2790 | /mri@1.2.0: 2791 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 2792 | engines: {node: '>=4'} 2793 | dev: false 2794 | 2795 | /ms@2.0.0: 2796 | resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} 2797 | dev: false 2798 | 2799 | /ms@2.1.2: 2800 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 2801 | dev: false 2802 | 2803 | /ms@2.1.3: 2804 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 2805 | dev: false 2806 | 2807 | /nanoid@3.3.6: 2808 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} 2809 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 2810 | hasBin: true 2811 | dev: false 2812 | 2813 | /napi-build-utils@1.0.2: 2814 | resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} 2815 | dev: false 2816 | optional: true 2817 | 2818 | /needle@2.9.1: 2819 | resolution: {integrity: sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==} 2820 | engines: {node: '>= 4.4.x'} 2821 | hasBin: true 2822 | dependencies: 2823 | debug: 3.2.7 2824 | iconv-lite: 0.4.24 2825 | sax: 1.3.0 2826 | transitivePeerDependencies: 2827 | - supports-color 2828 | dev: false 2829 | 2830 | /nlcst-to-string@3.1.1: 2831 | resolution: {integrity: sha512-63mVyqaqt0cmn2VcI2aH6kxe1rLAmSROqHMA0i4qqg1tidkfExgpb0FGMikMCn86mw5dFtBtEANfmSSK7TjNHw==} 2832 | dependencies: 2833 | '@types/nlcst': 1.0.2 2834 | dev: false 2835 | 2836 | /node-abi@3.51.0: 2837 | resolution: {integrity: sha512-SQkEP4hmNWjlniS5zdnfIXTk1x7Ome85RDzHlTbBtzE97Gfwz/Ipw4v/Ryk20DWIy3yCNVLVlGKApCnmvYoJbA==} 2838 | engines: {node: '>=10'} 2839 | dependencies: 2840 | semver: 7.5.4 2841 | dev: false 2842 | optional: true 2843 | 2844 | /node-addon-api@6.1.0: 2845 | resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} 2846 | dev: false 2847 | optional: true 2848 | 2849 | /node-releases@2.0.13: 2850 | resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} 2851 | dev: false 2852 | 2853 | /normalize-path@3.0.0: 2854 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 2855 | engines: {node: '>=0.10.0'} 2856 | dev: false 2857 | 2858 | /npm-run-path@5.1.0: 2859 | resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} 2860 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2861 | dependencies: 2862 | path-key: 4.0.0 2863 | dev: false 2864 | 2865 | /on-finished@2.4.1: 2866 | resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} 2867 | engines: {node: '>= 0.8'} 2868 | dependencies: 2869 | ee-first: 1.1.1 2870 | dev: false 2871 | 2872 | /once@1.4.0: 2873 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 2874 | dependencies: 2875 | wrappy: 1.0.2 2876 | dev: false 2877 | optional: true 2878 | 2879 | /onetime@5.1.2: 2880 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 2881 | engines: {node: '>=6'} 2882 | dependencies: 2883 | mimic-fn: 2.1.0 2884 | dev: false 2885 | 2886 | /onetime@6.0.0: 2887 | resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} 2888 | engines: {node: '>=12'} 2889 | dependencies: 2890 | mimic-fn: 4.0.0 2891 | dev: false 2892 | 2893 | /ora@7.0.1: 2894 | resolution: {integrity: sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==} 2895 | engines: {node: '>=16'} 2896 | dependencies: 2897 | chalk: 5.3.0 2898 | cli-cursor: 4.0.0 2899 | cli-spinners: 2.9.1 2900 | is-interactive: 2.0.0 2901 | is-unicode-supported: 1.3.0 2902 | log-symbols: 5.1.0 2903 | stdin-discarder: 0.1.0 2904 | string-width: 6.1.0 2905 | strip-ansi: 7.1.0 2906 | dev: false 2907 | 2908 | /oslo@0.6.1: 2909 | resolution: {integrity: sha512-Dr4dZqusz3hdDt87ggCDVcFSF9rB2DbkJuGUi3s/jlHTBxrGqf1IN/QTyl/l1vTQ2bel2m7dlaQu6yfukBeMcQ==} 2910 | dependencies: 2911 | '@node-rs/argon2': 1.5.2 2912 | '@node-rs/bcrypt': 1.7.3 2913 | dev: false 2914 | 2915 | /p-limit@2.3.0: 2916 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 2917 | engines: {node: '>=6'} 2918 | dependencies: 2919 | p-try: 2.2.0 2920 | dev: false 2921 | 2922 | /p-limit@3.1.0: 2923 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 2924 | engines: {node: '>=10'} 2925 | dependencies: 2926 | yocto-queue: 0.1.0 2927 | dev: false 2928 | 2929 | /p-limit@4.0.0: 2930 | resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} 2931 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2932 | dependencies: 2933 | yocto-queue: 1.0.0 2934 | dev: false 2935 | 2936 | /p-locate@4.1.0: 2937 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 2938 | engines: {node: '>=8'} 2939 | dependencies: 2940 | p-limit: 2.3.0 2941 | dev: false 2942 | 2943 | /p-locate@5.0.0: 2944 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 2945 | engines: {node: '>=10'} 2946 | dependencies: 2947 | p-limit: 3.1.0 2948 | dev: false 2949 | 2950 | /p-try@2.2.0: 2951 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 2952 | engines: {node: '>=6'} 2953 | dev: false 2954 | 2955 | /parse-latin@5.0.1: 2956 | resolution: {integrity: sha512-b/K8ExXaWC9t34kKeDV8kGXBkXZ1HCSAZRYE7HR14eA1GlXX5L8iWhs8USJNhQU9q5ci413jCKF0gOyovvyRBg==} 2957 | dependencies: 2958 | nlcst-to-string: 3.1.1 2959 | unist-util-modify-children: 3.1.1 2960 | unist-util-visit-children: 2.0.2 2961 | dev: false 2962 | 2963 | /parse5@6.0.1: 2964 | resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} 2965 | dev: false 2966 | 2967 | /parse5@7.1.2: 2968 | resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} 2969 | dependencies: 2970 | entities: 4.5.0 2971 | dev: false 2972 | 2973 | /path-exists@4.0.0: 2974 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 2975 | engines: {node: '>=8'} 2976 | dev: false 2977 | 2978 | /path-key@3.1.1: 2979 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 2980 | engines: {node: '>=8'} 2981 | dev: false 2982 | 2983 | /path-key@4.0.0: 2984 | resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} 2985 | engines: {node: '>=12'} 2986 | dev: false 2987 | 2988 | /path-parse@1.0.7: 2989 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 2990 | dev: false 2991 | 2992 | /path-to-regexp@6.2.1: 2993 | resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} 2994 | dev: false 2995 | 2996 | /picocolors@1.0.0: 2997 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 2998 | dev: false 2999 | 3000 | /picomatch@2.3.1: 3001 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 3002 | engines: {node: '>=8.6'} 3003 | dev: false 3004 | 3005 | /pify@4.0.1: 3006 | resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} 3007 | engines: {node: '>=6'} 3008 | dev: false 3009 | 3010 | /pkg-dir@4.2.0: 3011 | resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} 3012 | engines: {node: '>=8'} 3013 | dependencies: 3014 | find-up: 4.1.0 3015 | dev: false 3016 | 3017 | /postcss@8.4.31: 3018 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} 3019 | engines: {node: ^10 || ^12 || >=14} 3020 | dependencies: 3021 | nanoid: 3.3.6 3022 | picocolors: 1.0.0 3023 | source-map-js: 1.0.2 3024 | dev: false 3025 | 3026 | /prebuild-install@7.1.1: 3027 | resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} 3028 | engines: {node: '>=10'} 3029 | hasBin: true 3030 | dependencies: 3031 | detect-libc: 2.0.2 3032 | expand-template: 2.0.3 3033 | github-from-package: 0.0.0 3034 | minimist: 1.2.8 3035 | mkdirp-classic: 0.5.3 3036 | napi-build-utils: 1.0.2 3037 | node-abi: 3.51.0 3038 | pump: 3.0.0 3039 | rc: 1.2.8 3040 | simple-get: 4.0.1 3041 | tar-fs: 2.1.1 3042 | tunnel-agent: 0.6.0 3043 | dev: false 3044 | optional: true 3045 | 3046 | /preferred-pm@3.1.2: 3047 | resolution: {integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==} 3048 | engines: {node: '>=10'} 3049 | dependencies: 3050 | find-up: 5.0.0 3051 | find-yarn-workspace-root2: 1.2.16 3052 | path-exists: 4.0.0 3053 | which-pm: 2.0.0 3054 | dev: false 3055 | 3056 | /prismjs@1.29.0: 3057 | resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} 3058 | engines: {node: '>=6'} 3059 | dev: false 3060 | 3061 | /probe-image-size@7.2.3: 3062 | resolution: {integrity: sha512-HubhG4Rb2UH8YtV4ba0Vp5bQ7L78RTONYu/ujmCu5nBI8wGv24s4E9xSKBi0N1MowRpxk76pFCpJtW0KPzOK0w==} 3063 | dependencies: 3064 | lodash.merge: 4.6.2 3065 | needle: 2.9.1 3066 | stream-parser: 0.3.1 3067 | transitivePeerDependencies: 3068 | - supports-color 3069 | dev: false 3070 | 3071 | /prompts@2.4.2: 3072 | resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} 3073 | engines: {node: '>= 6'} 3074 | dependencies: 3075 | kleur: 3.0.3 3076 | sisteransi: 1.0.5 3077 | dev: false 3078 | 3079 | /property-information@6.3.0: 3080 | resolution: {integrity: sha512-gVNZ74nqhRMiIUYWGQdosYetaKc83x8oT41a0LlV3AAFCAZwCpg4vmGkq8t34+cUhp3cnM4XDiU/7xlgK7HGrg==} 3081 | dev: false 3082 | 3083 | /pump@3.0.0: 3084 | resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} 3085 | dependencies: 3086 | end-of-stream: 1.4.4 3087 | once: 1.4.0 3088 | dev: false 3089 | optional: true 3090 | 3091 | /queue-microtask@1.2.3: 3092 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 3093 | dev: false 3094 | 3095 | /queue-tick@1.0.1: 3096 | resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} 3097 | dev: false 3098 | optional: true 3099 | 3100 | /range-parser@1.2.1: 3101 | resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} 3102 | engines: {node: '>= 0.6'} 3103 | dev: false 3104 | 3105 | /rc@1.2.8: 3106 | resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} 3107 | hasBin: true 3108 | dependencies: 3109 | deep-extend: 0.6.0 3110 | ini: 1.3.8 3111 | minimist: 1.2.8 3112 | strip-json-comments: 2.0.1 3113 | dev: false 3114 | optional: true 3115 | 3116 | /readable-stream@3.6.2: 3117 | resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} 3118 | engines: {node: '>= 6'} 3119 | dependencies: 3120 | inherits: 2.0.4 3121 | string_decoder: 1.3.0 3122 | util-deprecate: 1.0.2 3123 | dev: false 3124 | 3125 | /readdirp@3.6.0: 3126 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 3127 | engines: {node: '>=8.10.0'} 3128 | dependencies: 3129 | picomatch: 2.3.1 3130 | dev: false 3131 | 3132 | /rehype-parse@8.0.5: 3133 | resolution: {integrity: sha512-Ds3RglaY/+clEX2U2mHflt7NlMA72KspZ0JLUJgBBLpRddBcEw3H8uYZQliQriku22NZpYMfjDdSgHcjxue24A==} 3134 | dependencies: 3135 | '@types/hast': 2.3.6 3136 | hast-util-from-parse5: 7.1.2 3137 | parse5: 6.0.1 3138 | unified: 10.1.2 3139 | dev: false 3140 | 3141 | /rehype-raw@6.1.1: 3142 | resolution: {integrity: sha512-d6AKtisSRtDRX4aSPsJGTfnzrX2ZkHQLE5kiUuGOeEoLpbEulFF4hj0mLPbsa+7vmguDKOVVEQdHKDSwoaIDsQ==} 3143 | dependencies: 3144 | '@types/hast': 2.3.6 3145 | hast-util-raw: 7.2.3 3146 | unified: 10.1.2 3147 | dev: false 3148 | 3149 | /rehype-stringify@9.0.4: 3150 | resolution: {integrity: sha512-Uk5xu1YKdqobe5XpSskwPvo1XeHUUucWEQSl8hTrXt5selvca1e8K1EZ37E6YoZ4BT8BCqCdVfQW7OfHfthtVQ==} 3151 | dependencies: 3152 | '@types/hast': 2.3.6 3153 | hast-util-to-html: 8.0.4 3154 | unified: 10.1.2 3155 | dev: false 3156 | 3157 | /rehype@12.0.1: 3158 | resolution: {integrity: sha512-ey6kAqwLM3X6QnMDILJthGvG1m1ULROS9NT4uG9IDCuv08SFyLlreSuvOa//DgEvbXx62DS6elGVqusWhRUbgw==} 3159 | dependencies: 3160 | '@types/hast': 2.3.6 3161 | rehype-parse: 8.0.5 3162 | rehype-stringify: 9.0.4 3163 | unified: 10.1.2 3164 | dev: false 3165 | 3166 | /remark-gfm@3.0.1: 3167 | resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} 3168 | dependencies: 3169 | '@types/mdast': 3.0.13 3170 | mdast-util-gfm: 2.0.2 3171 | micromark-extension-gfm: 2.0.3 3172 | unified: 10.1.2 3173 | transitivePeerDependencies: 3174 | - supports-color 3175 | dev: false 3176 | 3177 | /remark-parse@10.0.2: 3178 | resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==} 3179 | dependencies: 3180 | '@types/mdast': 3.0.13 3181 | mdast-util-from-markdown: 1.3.1 3182 | unified: 10.1.2 3183 | transitivePeerDependencies: 3184 | - supports-color 3185 | dev: false 3186 | 3187 | /remark-rehype@10.1.0: 3188 | resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} 3189 | dependencies: 3190 | '@types/hast': 2.3.6 3191 | '@types/mdast': 3.0.13 3192 | mdast-util-to-hast: 12.3.0 3193 | unified: 10.1.2 3194 | dev: false 3195 | 3196 | /remark-smartypants@2.0.0: 3197 | resolution: {integrity: sha512-Rc0VDmr/yhnMQIz8n2ACYXlfw/P/XZev884QU1I5u+5DgJls32o97Vc1RbK3pfumLsJomS2yy8eT4Fxj/2MDVA==} 3198 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 3199 | dependencies: 3200 | retext: 8.1.0 3201 | retext-smartypants: 5.2.0 3202 | unist-util-visit: 4.1.2 3203 | dev: false 3204 | 3205 | /resolve@1.22.8: 3206 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 3207 | hasBin: true 3208 | dependencies: 3209 | is-core-module: 2.13.0 3210 | path-parse: 1.0.7 3211 | supports-preserve-symlinks-flag: 1.0.0 3212 | dev: false 3213 | 3214 | /restore-cursor@4.0.0: 3215 | resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} 3216 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 3217 | dependencies: 3218 | onetime: 5.1.2 3219 | signal-exit: 3.0.7 3220 | dev: false 3221 | 3222 | /retext-latin@3.1.0: 3223 | resolution: {integrity: sha512-5MrD1tuebzO8ppsja5eEu+ZbBeUNCjoEarn70tkXOS7Bdsdf6tNahsv2bY0Z8VooFF6cw7/6S+d3yI/TMlMVVQ==} 3224 | dependencies: 3225 | '@types/nlcst': 1.0.2 3226 | parse-latin: 5.0.1 3227 | unherit: 3.0.1 3228 | unified: 10.1.2 3229 | dev: false 3230 | 3231 | /retext-smartypants@5.2.0: 3232 | resolution: {integrity: sha512-Do8oM+SsjrbzT2UNIKgheP0hgUQTDDQYyZaIY3kfq0pdFzoPk+ZClYJ+OERNXveog4xf1pZL4PfRxNoVL7a/jw==} 3233 | dependencies: 3234 | '@types/nlcst': 1.0.2 3235 | nlcst-to-string: 3.1.1 3236 | unified: 10.1.2 3237 | unist-util-visit: 4.1.2 3238 | dev: false 3239 | 3240 | /retext-stringify@3.1.0: 3241 | resolution: {integrity: sha512-767TLOaoXFXyOnjx/EggXlb37ZD2u4P1n0GJqVdpipqACsQP+20W+BNpMYrlJkq7hxffnFk+jc6mAK9qrbuB8w==} 3242 | dependencies: 3243 | '@types/nlcst': 1.0.2 3244 | nlcst-to-string: 3.1.1 3245 | unified: 10.1.2 3246 | dev: false 3247 | 3248 | /retext@8.1.0: 3249 | resolution: {integrity: sha512-N9/Kq7YTn6ZpzfiGW45WfEGJqFf1IM1q8OsRa1CGzIebCJBNCANDRmOrholiDRGKo/We7ofKR4SEvcGAWEMD3Q==} 3250 | dependencies: 3251 | '@types/nlcst': 1.0.2 3252 | retext-latin: 3.1.0 3253 | retext-stringify: 3.1.0 3254 | unified: 10.1.2 3255 | dev: false 3256 | 3257 | /reusify@1.0.4: 3258 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 3259 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 3260 | dev: false 3261 | 3262 | /rollup@3.29.4: 3263 | resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} 3264 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} 3265 | hasBin: true 3266 | optionalDependencies: 3267 | fsevents: 2.3.3 3268 | dev: false 3269 | 3270 | /run-parallel@1.2.0: 3271 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 3272 | dependencies: 3273 | queue-microtask: 1.2.3 3274 | dev: false 3275 | 3276 | /sade@1.8.1: 3277 | resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} 3278 | engines: {node: '>=6'} 3279 | dependencies: 3280 | mri: 1.2.0 3281 | dev: false 3282 | 3283 | /safe-buffer@5.2.1: 3284 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 3285 | dev: false 3286 | 3287 | /safer-buffer@2.1.2: 3288 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 3289 | dev: false 3290 | 3291 | /sax@1.3.0: 3292 | resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} 3293 | dev: false 3294 | 3295 | /section-matter@1.0.0: 3296 | resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} 3297 | engines: {node: '>=4'} 3298 | dependencies: 3299 | extend-shallow: 2.0.1 3300 | kind-of: 6.0.3 3301 | dev: false 3302 | 3303 | /semver@6.3.1: 3304 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 3305 | hasBin: true 3306 | dev: false 3307 | 3308 | /semver@7.5.4: 3309 | resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} 3310 | engines: {node: '>=10'} 3311 | hasBin: true 3312 | dependencies: 3313 | lru-cache: 6.0.0 3314 | dev: false 3315 | 3316 | /send@0.18.0: 3317 | resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} 3318 | engines: {node: '>= 0.8.0'} 3319 | dependencies: 3320 | debug: 2.6.9 3321 | depd: 2.0.0 3322 | destroy: 1.2.0 3323 | encodeurl: 1.0.2 3324 | escape-html: 1.0.3 3325 | etag: 1.8.1 3326 | fresh: 0.5.2 3327 | http-errors: 2.0.0 3328 | mime: 1.6.0 3329 | ms: 2.1.3 3330 | on-finished: 2.4.1 3331 | range-parser: 1.2.1 3332 | statuses: 2.0.1 3333 | transitivePeerDependencies: 3334 | - supports-color 3335 | dev: false 3336 | 3337 | /server-destroy@1.0.1: 3338 | resolution: {integrity: sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==} 3339 | dev: false 3340 | 3341 | /setprototypeof@1.2.0: 3342 | resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} 3343 | dev: false 3344 | 3345 | /sharp@0.32.6: 3346 | resolution: {integrity: sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==} 3347 | engines: {node: '>=14.15.0'} 3348 | requiresBuild: true 3349 | dependencies: 3350 | color: 4.2.3 3351 | detect-libc: 2.0.2 3352 | node-addon-api: 6.1.0 3353 | prebuild-install: 7.1.1 3354 | semver: 7.5.4 3355 | simple-get: 4.0.1 3356 | tar-fs: 3.0.4 3357 | tunnel-agent: 0.6.0 3358 | dev: false 3359 | optional: true 3360 | 3361 | /shebang-command@2.0.0: 3362 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 3363 | engines: {node: '>=8'} 3364 | dependencies: 3365 | shebang-regex: 3.0.0 3366 | dev: false 3367 | 3368 | /shebang-regex@3.0.0: 3369 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 3370 | engines: {node: '>=8'} 3371 | dev: false 3372 | 3373 | /shikiji@0.6.10: 3374 | resolution: {integrity: sha512-WE+A5Y2ntM5hL3iJQujk97qr5Uj7PSIRXpQfrZ6h+JWPXZ8KBEDhFXc4lqNriaRq1WGOVPUT83XMOzmHiH3W8A==} 3375 | dependencies: 3376 | hast-util-to-html: 9.0.0 3377 | dev: false 3378 | 3379 | /signal-exit@3.0.7: 3380 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 3381 | dev: false 3382 | 3383 | /signal-exit@4.1.0: 3384 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 3385 | engines: {node: '>=14'} 3386 | dev: false 3387 | 3388 | /simple-concat@1.0.1: 3389 | resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} 3390 | dev: false 3391 | optional: true 3392 | 3393 | /simple-get@4.0.1: 3394 | resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} 3395 | dependencies: 3396 | decompress-response: 6.0.0 3397 | once: 1.4.0 3398 | simple-concat: 1.0.1 3399 | dev: false 3400 | optional: true 3401 | 3402 | /simple-swizzle@0.2.2: 3403 | resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} 3404 | dependencies: 3405 | is-arrayish: 0.3.2 3406 | dev: false 3407 | optional: true 3408 | 3409 | /sisteransi@1.0.5: 3410 | resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} 3411 | dev: false 3412 | 3413 | /source-map-js@1.0.2: 3414 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 3415 | engines: {node: '>=0.10.0'} 3416 | dev: false 3417 | 3418 | /space-separated-tokens@2.0.2: 3419 | resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} 3420 | dev: false 3421 | 3422 | /sprintf-js@1.0.3: 3423 | resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} 3424 | dev: false 3425 | 3426 | /statuses@2.0.1: 3427 | resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} 3428 | engines: {node: '>= 0.8'} 3429 | dev: false 3430 | 3431 | /stdin-discarder@0.1.0: 3432 | resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} 3433 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 3434 | dependencies: 3435 | bl: 5.1.0 3436 | dev: false 3437 | 3438 | /stream-parser@0.3.1: 3439 | resolution: {integrity: sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==} 3440 | dependencies: 3441 | debug: 2.6.9 3442 | transitivePeerDependencies: 3443 | - supports-color 3444 | dev: false 3445 | 3446 | /streamx@2.15.1: 3447 | resolution: {integrity: sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==} 3448 | dependencies: 3449 | fast-fifo: 1.3.2 3450 | queue-tick: 1.0.1 3451 | dev: false 3452 | optional: true 3453 | 3454 | /string-width@4.2.3: 3455 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 3456 | engines: {node: '>=8'} 3457 | dependencies: 3458 | emoji-regex: 8.0.0 3459 | is-fullwidth-code-point: 3.0.0 3460 | strip-ansi: 6.0.1 3461 | dev: false 3462 | 3463 | /string-width@5.1.2: 3464 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 3465 | engines: {node: '>=12'} 3466 | dependencies: 3467 | eastasianwidth: 0.2.0 3468 | emoji-regex: 9.2.2 3469 | strip-ansi: 7.1.0 3470 | dev: false 3471 | 3472 | /string-width@6.1.0: 3473 | resolution: {integrity: sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==} 3474 | engines: {node: '>=16'} 3475 | dependencies: 3476 | eastasianwidth: 0.2.0 3477 | emoji-regex: 10.3.0 3478 | strip-ansi: 7.1.0 3479 | dev: false 3480 | 3481 | /string_decoder@1.3.0: 3482 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 3483 | dependencies: 3484 | safe-buffer: 5.2.1 3485 | dev: false 3486 | 3487 | /stringify-entities@4.0.3: 3488 | resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} 3489 | dependencies: 3490 | character-entities-html4: 2.1.0 3491 | character-entities-legacy: 3.0.0 3492 | dev: false 3493 | 3494 | /strip-ansi@6.0.1: 3495 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 3496 | engines: {node: '>=8'} 3497 | dependencies: 3498 | ansi-regex: 5.0.1 3499 | dev: false 3500 | 3501 | /strip-ansi@7.1.0: 3502 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 3503 | engines: {node: '>=12'} 3504 | dependencies: 3505 | ansi-regex: 6.0.1 3506 | dev: false 3507 | 3508 | /strip-bom-string@1.0.0: 3509 | resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} 3510 | engines: {node: '>=0.10.0'} 3511 | dev: false 3512 | 3513 | /strip-bom@3.0.0: 3514 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 3515 | engines: {node: '>=4'} 3516 | dev: false 3517 | 3518 | /strip-final-newline@3.0.0: 3519 | resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} 3520 | engines: {node: '>=12'} 3521 | dev: false 3522 | 3523 | /strip-json-comments@2.0.1: 3524 | resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} 3525 | engines: {node: '>=0.10.0'} 3526 | dev: false 3527 | optional: true 3528 | 3529 | /supports-color@5.5.0: 3530 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 3531 | engines: {node: '>=4'} 3532 | dependencies: 3533 | has-flag: 3.0.0 3534 | dev: false 3535 | 3536 | /supports-preserve-symlinks-flag@1.0.0: 3537 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 3538 | engines: {node: '>= 0.4'} 3539 | dev: false 3540 | 3541 | /tar-fs@2.1.1: 3542 | resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} 3543 | dependencies: 3544 | chownr: 1.1.4 3545 | mkdirp-classic: 0.5.3 3546 | pump: 3.0.0 3547 | tar-stream: 2.2.0 3548 | dev: false 3549 | optional: true 3550 | 3551 | /tar-fs@3.0.4: 3552 | resolution: {integrity: sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==} 3553 | dependencies: 3554 | mkdirp-classic: 0.5.3 3555 | pump: 3.0.0 3556 | tar-stream: 3.1.6 3557 | dev: false 3558 | optional: true 3559 | 3560 | /tar-stream@2.2.0: 3561 | resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} 3562 | engines: {node: '>=6'} 3563 | dependencies: 3564 | bl: 4.1.0 3565 | end-of-stream: 1.4.4 3566 | fs-constants: 1.0.0 3567 | inherits: 2.0.4 3568 | readable-stream: 3.6.2 3569 | dev: false 3570 | optional: true 3571 | 3572 | /tar-stream@3.1.6: 3573 | resolution: {integrity: sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==} 3574 | dependencies: 3575 | b4a: 1.6.4 3576 | fast-fifo: 1.3.2 3577 | streamx: 2.15.1 3578 | dev: false 3579 | optional: true 3580 | 3581 | /to-fast-properties@2.0.0: 3582 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 3583 | engines: {node: '>=4'} 3584 | dev: false 3585 | 3586 | /to-regex-range@5.0.1: 3587 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 3588 | engines: {node: '>=8.0'} 3589 | dependencies: 3590 | is-number: 7.0.0 3591 | dev: false 3592 | 3593 | /toidentifier@1.0.1: 3594 | resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} 3595 | engines: {node: '>=0.6'} 3596 | dev: false 3597 | 3598 | /trim-lines@3.0.1: 3599 | resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} 3600 | dev: false 3601 | 3602 | /trough@2.1.0: 3603 | resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} 3604 | dev: false 3605 | 3606 | /tsconfck@3.0.0: 3607 | resolution: {integrity: sha512-w3wnsIrJNi7avf4Zb0VjOoodoO0woEqGgZGQm+LHH9przdUI+XDKsWAXwxHA1DaRTjeuZNcregSzr7RaA8zG9A==} 3608 | engines: {node: ^18 || >=20} 3609 | hasBin: true 3610 | peerDependencies: 3611 | typescript: ^5.0.0 3612 | peerDependenciesMeta: 3613 | typescript: 3614 | optional: true 3615 | dev: false 3616 | 3617 | /tunnel-agent@0.6.0: 3618 | resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} 3619 | dependencies: 3620 | safe-buffer: 5.2.1 3621 | dev: false 3622 | optional: true 3623 | 3624 | /type-fest@2.19.0: 3625 | resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} 3626 | engines: {node: '>=12.20'} 3627 | dev: false 3628 | 3629 | /unherit@3.0.1: 3630 | resolution: {integrity: sha512-akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==} 3631 | dev: false 3632 | 3633 | /unified@10.1.2: 3634 | resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} 3635 | dependencies: 3636 | '@types/unist': 2.0.8 3637 | bail: 2.0.2 3638 | extend: 3.0.2 3639 | is-buffer: 2.0.5 3640 | is-plain-obj: 4.1.0 3641 | trough: 2.1.0 3642 | vfile: 5.3.7 3643 | dev: false 3644 | 3645 | /unist-util-generated@2.0.1: 3646 | resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==} 3647 | dev: false 3648 | 3649 | /unist-util-is@5.2.1: 3650 | resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} 3651 | dependencies: 3652 | '@types/unist': 2.0.8 3653 | dev: false 3654 | 3655 | /unist-util-is@6.0.0: 3656 | resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} 3657 | dependencies: 3658 | '@types/unist': 3.0.0 3659 | dev: false 3660 | 3661 | /unist-util-modify-children@3.1.1: 3662 | resolution: {integrity: sha512-yXi4Lm+TG5VG+qvokP6tpnk+r1EPwyYL04JWDxLvgvPV40jANh7nm3udk65OOWquvbMDe+PL9+LmkxDpTv/7BA==} 3663 | dependencies: 3664 | '@types/unist': 2.0.8 3665 | array-iterate: 2.0.1 3666 | dev: false 3667 | 3668 | /unist-util-position@4.0.4: 3669 | resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==} 3670 | dependencies: 3671 | '@types/unist': 2.0.8 3672 | dev: false 3673 | 3674 | /unist-util-position@5.0.0: 3675 | resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} 3676 | dependencies: 3677 | '@types/unist': 3.0.0 3678 | dev: false 3679 | 3680 | /unist-util-stringify-position@3.0.3: 3681 | resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} 3682 | dependencies: 3683 | '@types/unist': 2.0.8 3684 | dev: false 3685 | 3686 | /unist-util-stringify-position@4.0.0: 3687 | resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} 3688 | dependencies: 3689 | '@types/unist': 3.0.0 3690 | dev: false 3691 | 3692 | /unist-util-visit-children@2.0.2: 3693 | resolution: {integrity: sha512-+LWpMFqyUwLGpsQxpumsQ9o9DG2VGLFrpz+rpVXYIEdPy57GSy5HioC0g3bg/8WP9oCLlapQtklOzQ8uLS496Q==} 3694 | dependencies: 3695 | '@types/unist': 2.0.8 3696 | dev: false 3697 | 3698 | /unist-util-visit-parents@5.1.3: 3699 | resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} 3700 | dependencies: 3701 | '@types/unist': 2.0.8 3702 | unist-util-is: 5.2.1 3703 | dev: false 3704 | 3705 | /unist-util-visit-parents@6.0.1: 3706 | resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} 3707 | dependencies: 3708 | '@types/unist': 3.0.0 3709 | unist-util-is: 6.0.0 3710 | dev: false 3711 | 3712 | /unist-util-visit@4.1.2: 3713 | resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} 3714 | dependencies: 3715 | '@types/unist': 2.0.8 3716 | unist-util-is: 5.2.1 3717 | unist-util-visit-parents: 5.1.3 3718 | dev: false 3719 | 3720 | /unist-util-visit@5.0.0: 3721 | resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} 3722 | dependencies: 3723 | '@types/unist': 3.0.0 3724 | unist-util-is: 6.0.0 3725 | unist-util-visit-parents: 6.0.1 3726 | dev: false 3727 | 3728 | /update-browserslist-db@1.0.13(browserslist@4.22.1): 3729 | resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} 3730 | hasBin: true 3731 | peerDependencies: 3732 | browserslist: '>= 4.21.0' 3733 | dependencies: 3734 | browserslist: 4.22.1 3735 | escalade: 3.1.1 3736 | picocolors: 1.0.0 3737 | dev: false 3738 | 3739 | /util-deprecate@1.0.2: 3740 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 3741 | dev: false 3742 | 3743 | /uvu@0.5.6: 3744 | resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} 3745 | engines: {node: '>=8'} 3746 | hasBin: true 3747 | dependencies: 3748 | dequal: 2.0.3 3749 | diff: 5.1.0 3750 | kleur: 4.1.5 3751 | sade: 1.8.1 3752 | dev: false 3753 | 3754 | /vfile-location@4.1.0: 3755 | resolution: {integrity: sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==} 3756 | dependencies: 3757 | '@types/unist': 2.0.8 3758 | vfile: 5.3.7 3759 | dev: false 3760 | 3761 | /vfile-location@5.0.2: 3762 | resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} 3763 | dependencies: 3764 | '@types/unist': 3.0.0 3765 | vfile: 6.0.1 3766 | dev: false 3767 | 3768 | /vfile-message@3.1.4: 3769 | resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} 3770 | dependencies: 3771 | '@types/unist': 2.0.8 3772 | unist-util-stringify-position: 3.0.3 3773 | dev: false 3774 | 3775 | /vfile-message@4.0.2: 3776 | resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} 3777 | dependencies: 3778 | '@types/unist': 3.0.0 3779 | unist-util-stringify-position: 4.0.0 3780 | dev: false 3781 | 3782 | /vfile@5.3.7: 3783 | resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} 3784 | dependencies: 3785 | '@types/unist': 2.0.8 3786 | is-buffer: 2.0.5 3787 | unist-util-stringify-position: 3.0.3 3788 | vfile-message: 3.1.4 3789 | dev: false 3790 | 3791 | /vfile@6.0.1: 3792 | resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} 3793 | dependencies: 3794 | '@types/unist': 3.0.0 3795 | unist-util-stringify-position: 4.0.0 3796 | vfile-message: 4.0.2 3797 | dev: false 3798 | 3799 | /vite@4.4.11: 3800 | resolution: {integrity: sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==} 3801 | engines: {node: ^14.18.0 || >=16.0.0} 3802 | hasBin: true 3803 | peerDependencies: 3804 | '@types/node': '>= 14' 3805 | less: '*' 3806 | lightningcss: ^1.21.0 3807 | sass: '*' 3808 | stylus: '*' 3809 | sugarss: '*' 3810 | terser: ^5.4.0 3811 | peerDependenciesMeta: 3812 | '@types/node': 3813 | optional: true 3814 | less: 3815 | optional: true 3816 | lightningcss: 3817 | optional: true 3818 | sass: 3819 | optional: true 3820 | stylus: 3821 | optional: true 3822 | sugarss: 3823 | optional: true 3824 | terser: 3825 | optional: true 3826 | dependencies: 3827 | esbuild: 0.18.20 3828 | postcss: 8.4.31 3829 | rollup: 3.29.4 3830 | optionalDependencies: 3831 | fsevents: 2.3.3 3832 | dev: false 3833 | 3834 | /vitefu@0.2.5(vite@4.4.11): 3835 | resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} 3836 | peerDependencies: 3837 | vite: ^3.0.0 || ^4.0.0 || ^5.0.0 3838 | peerDependenciesMeta: 3839 | vite: 3840 | optional: true 3841 | dependencies: 3842 | vite: 4.4.11 3843 | dev: false 3844 | 3845 | /web-namespaces@2.0.1: 3846 | resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} 3847 | dev: false 3848 | 3849 | /which-pm-runs@1.1.0: 3850 | resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} 3851 | engines: {node: '>=4'} 3852 | dev: false 3853 | 3854 | /which-pm@2.0.0: 3855 | resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} 3856 | engines: {node: '>=8.15'} 3857 | dependencies: 3858 | load-yaml-file: 0.2.0 3859 | path-exists: 4.0.0 3860 | dev: false 3861 | 3862 | /which-pm@2.1.1: 3863 | resolution: {integrity: sha512-xzzxNw2wMaoCWXiGE8IJ9wuPMU+EYhFksjHxrRT8kMT5SnocBPRg69YAMtyV4D12fP582RA+k3P8H9J5EMdIxQ==} 3864 | engines: {node: '>=8.15'} 3865 | dependencies: 3866 | load-yaml-file: 0.2.0 3867 | path-exists: 4.0.0 3868 | dev: false 3869 | 3870 | /which@2.0.2: 3871 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 3872 | engines: {node: '>= 8'} 3873 | hasBin: true 3874 | dependencies: 3875 | isexe: 2.0.0 3876 | dev: false 3877 | 3878 | /widest-line@4.0.1: 3879 | resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} 3880 | engines: {node: '>=12'} 3881 | dependencies: 3882 | string-width: 5.1.2 3883 | dev: false 3884 | 3885 | /wrap-ansi@8.1.0: 3886 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 3887 | engines: {node: '>=12'} 3888 | dependencies: 3889 | ansi-styles: 6.2.1 3890 | string-width: 5.1.2 3891 | strip-ansi: 7.1.0 3892 | dev: false 3893 | 3894 | /wrappy@1.0.2: 3895 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 3896 | dev: false 3897 | optional: true 3898 | 3899 | /yallist@3.1.1: 3900 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 3901 | dev: false 3902 | 3903 | /yallist@4.0.0: 3904 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 3905 | dev: false 3906 | 3907 | /yargs-parser@21.1.1: 3908 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 3909 | engines: {node: '>=12'} 3910 | dev: false 3911 | 3912 | /yocto-queue@0.1.0: 3913 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 3914 | engines: {node: '>=10'} 3915 | dev: false 3916 | 3917 | /yocto-queue@1.0.0: 3918 | resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} 3919 | engines: {node: '>=12.20'} 3920 | dev: false 3921 | 3922 | /zod@3.21.1: 3923 | resolution: {integrity: sha512-+dTu2m6gmCbO9Ahm4ZBDapx2O6ZY9QSPXst2WXjcznPMwf2YNpn3RevLx4KkZp1OPW/ouFcoBtBzFz/LeY69oA==} 3924 | dev: false 3925 | 3926 | /zwitch@2.0.4: 3927 | resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} 3928 | dev: false 3929 | -------------------------------------------------------------------------------- /public/favicon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | -------------------------------------------------------------------------------- /src/api.ts: -------------------------------------------------------------------------------- 1 | export interface LoginAPIBody { 2 | challenge_id: string; 3 | public_key_id: string; 4 | response: { 5 | signature: string; 6 | client_data_json: string; 7 | authenticator_data: string; 8 | }; 9 | } 10 | 11 | export interface SignupAPIBody { 12 | challenge_id: string; 13 | username: string; 14 | public_key_id: string; 15 | response: { 16 | public_key: string; 17 | client_data_json: string; 18 | authenticator_data: string; 19 | }; 20 | } 21 | 22 | export interface ChallengeAPIResponseBody { 23 | id: string; 24 | challenge: string; 25 | } 26 | -------------------------------------------------------------------------------- /src/client/auth.ts: -------------------------------------------------------------------------------- 1 | import { encodeBase64, decodeBase64 } from "oslo/encoding"; 2 | import type { 3 | ChallengeAPIResponseBody, 4 | LoginAPIBody, 5 | SignupAPIBody, 6 | } from "../api"; 7 | 8 | export async function signIn() { 9 | const challenge = await getChallenge(); 10 | const publicKeyCredential = await navigator.credentials.get({ 11 | publicKey: { 12 | challenge: challenge.value, 13 | }, 14 | }); 15 | if (!(publicKeyCredential instanceof PublicKeyCredential)) { 16 | throw new TypeError(); 17 | } 18 | if ( 19 | !(publicKeyCredential.response instanceof AuthenticatorAssertionResponse) 20 | ) { 21 | throw new TypeError(); 22 | } 23 | const body: LoginAPIBody = { 24 | challenge_id: challenge.challengeId, 25 | public_key_id: publicKeyCredential.id, 26 | response: { 27 | client_data_json: encodeBase64( 28 | publicKeyCredential.response.clientDataJSON 29 | ), 30 | authenticator_data: encodeBase64( 31 | publicKeyCredential.response.authenticatorData 32 | ), 33 | signature: encodeBase64(publicKeyCredential.response.signature), 34 | }, 35 | }; 36 | const response = await fetch("/api/login", { 37 | method: "POST", 38 | body: JSON.stringify(body), 39 | }); 40 | if (response.ok) { 41 | window.location.href = "/"; 42 | } else { 43 | console.log("Failed to sign in"); 44 | } 45 | } 46 | 47 | export async function signUp(username: string) { 48 | const challenge = await getChallenge(); 49 | const publicKeyCredential = await navigator.credentials.create({ 50 | // publicKey = Web Authentication API 51 | publicKey: { 52 | rp: { name: "Passkey Demo" }, 53 | user: { 54 | id: crypto.getRandomValues(new Uint8Array(32)), 55 | name: username, 56 | displayName: username, 57 | }, 58 | pubKeyCredParams: [ 59 | { 60 | type: "public-key", 61 | // use ECDSA with the secp256k1 curve and the SHA-256 (aka. ES256K) 62 | // id from the IANA COSE Algorithms registry 63 | alg: -7, 64 | }, 65 | ], 66 | challenge: challenge.value, 67 | }, 68 | }); 69 | if (!(publicKeyCredential instanceof PublicKeyCredential)) { 70 | throw new TypeError(); 71 | } 72 | if ( 73 | !(publicKeyCredential.response instanceof AuthenticatorAttestationResponse) 74 | ) { 75 | throw new TypeError(); 76 | } 77 | const publicKey = publicKeyCredential.response.getPublicKey(); 78 | if (!publicKey) { 79 | throw new TypeError(); 80 | } 81 | const body: SignupAPIBody = { 82 | challenge_id: challenge.challengeId, 83 | username, 84 | public_key_id: publicKeyCredential.id, 85 | response: { 86 | public_key: encodeBase64(publicKey), 87 | client_data_json: encodeBase64( 88 | publicKeyCredential.response.clientDataJSON 89 | ), 90 | authenticator_data: encodeBase64( 91 | publicKeyCredential.response.getAuthenticatorData() 92 | ), 93 | }, 94 | }; 95 | const response = await fetch("/api/signup", { 96 | method: "POST", 97 | body: JSON.stringify(body), 98 | }); 99 | if (response.ok) { 100 | window.location.href = "/"; 101 | } else { 102 | console.log("Failed to sign up"); 103 | } 104 | } 105 | 106 | async function getChallenge(): Promise { 107 | const challengeResponse = await fetch("/api/challenge", { 108 | method: "POST", 109 | }); 110 | const challengeResult: ChallengeAPIResponseBody = 111 | await challengeResponse.json(); 112 | return { 113 | challengeId: challengeResult.id, 114 | value: decodeBase64(challengeResult.challenge), 115 | }; 116 | } 117 | 118 | interface Challenge { 119 | challengeId: string; 120 | value: ArrayBufferLike; 121 | } 122 | -------------------------------------------------------------------------------- /src/db.ts: -------------------------------------------------------------------------------- 1 | export const sessions = new Map(); 2 | export const users = new Map(); 3 | export const challenges = new Map(); 4 | export const publicKeys = new Map() 5 | 6 | export interface Session { 7 | sessionId: string; 8 | userId: string; 9 | } 10 | 11 | export interface User { 12 | userId: string; 13 | username: string; 14 | } 15 | 16 | export interface Challenge { 17 | challengeId: string; 18 | value: string; 19 | } 20 | 21 | export interface PublicKey { 22 | keyId: string, 23 | value: string, 24 | userId: string 25 | } -------------------------------------------------------------------------------- /src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | declare namespace App { 3 | interface Locals { 4 | session: import("./db").Session | null; 5 | } 6 | } -------------------------------------------------------------------------------- /src/middleware.ts: -------------------------------------------------------------------------------- 1 | import { defineMiddleware } from "astro:middleware"; 2 | 3 | import { sessions, type Session } from "./db"; 4 | 5 | export const onRequest = defineMiddleware(async (context, next) => { 6 | const sessionId = context.cookies.get("session")?.value ?? null; 7 | let session: Session | null = null; 8 | if (sessionId) { 9 | session = sessions.get(sessionId) ?? null; 10 | } 11 | context.locals.session = session; 12 | return next(); 13 | }); 14 | -------------------------------------------------------------------------------- /src/pages/api/challenge.ts: -------------------------------------------------------------------------------- 1 | import { encodeBase64 } from "oslo/encoding"; 2 | import { generateRandomString, alphabet } from "oslo/random"; 3 | import { challenges } from "../../db"; 4 | 5 | export async function POST(): Promise { 6 | const challengeId = generateRandomString(15, alphabet("0-9", "a-z")); 7 | const challenge = new Uint8Array(32); 8 | crypto.getRandomValues(challenge); 9 | const encodedChallenge = encodeBase64(challenge); 10 | challenges.set(challengeId, { 11 | challengeId, 12 | value: encodedChallenge, 13 | }); 14 | return new Response( 15 | JSON.stringify({ 16 | id: challengeId, 17 | challenge: encodedChallenge, 18 | }) 19 | ); 20 | } 21 | -------------------------------------------------------------------------------- /src/pages/api/login.ts: -------------------------------------------------------------------------------- 1 | import { decodeBase64 } from "oslo/encoding"; 2 | import { generateRandomString, alphabet } from "oslo/random"; 3 | import { validateWebAuthnAssertionResponse } from "oslo/webauthn"; 4 | import { challenges, publicKeys, sessions } from "../../db"; 5 | 6 | import type { APIContext } from "astro"; 7 | import type { LoginAPIBody } from "../../api"; 8 | import type { WebAuthnAssertionResponse } from "oslo/webauthn"; 9 | 10 | export async function POST(context: APIContext): Promise { 11 | if (context.locals.session) { 12 | return new Response(null, { 13 | status: 400, 14 | }); 15 | } 16 | const body: LoginAPIBody = await context.request.json(); 17 | const response: WebAuthnAssertionResponse = { 18 | authenticatorData: decodeBase64(body.response.authenticator_data), 19 | clientDataJSON: decodeBase64(body.response.client_data_json), 20 | signature: decodeBase64(body.response.signature), 21 | }; 22 | const challenge = challenges.get(body.challenge_id) ?? null; 23 | if (!challenge) { 24 | return new Response(null, { 25 | status: 400, 26 | }); 27 | } 28 | challenges.delete(challenge.challengeId) 29 | const publicKeyId = body.public_key_id; 30 | const publicKey = publicKeys.get(publicKeyId) ?? null; 31 | if (!publicKey) { 32 | return new Response(null, { 33 | status: 400, 34 | }); 35 | } 36 | try { 37 | await validateWebAuthnAssertionResponse({ 38 | response, 39 | origin: "http://localhost:4321", 40 | challenge: decodeBase64(challenge.value), 41 | publicKey: decodeBase64(publicKey.value), 42 | algorithm: "ES256K", 43 | }); 44 | const sessionId = generateRandomString(40, alphabet("0-9", "a-z")); 45 | sessions.set(sessionId, { 46 | userId: publicKey.userId, 47 | sessionId: sessionId, 48 | }); 49 | context.cookies.set("session", sessionId, { 50 | httpOnly: true, 51 | maxAge: 60 * 60 * 24, 52 | secure: import.meta.env.PROD, 53 | path: "/", 54 | }); 55 | return new Response(null, { 56 | status: 200, 57 | }); 58 | } catch (e) { 59 | console.log(e); 60 | return new Response(null, { 61 | status: 500, 62 | }); 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /src/pages/api/logout.ts: -------------------------------------------------------------------------------- 1 | import { sessions } from "../../db"; 2 | 3 | import type { APIContext } from "astro"; 4 | 5 | export async function POST(context: APIContext): Promise { 6 | if (!context.locals.session) { 7 | return new Response(null, { 8 | status: 401, 9 | }); 10 | } 11 | sessions.delete(context.locals.session.sessionId); 12 | context.cookies.set("session", "", { 13 | httpOnly: true, 14 | secure: import.meta.env.PROD, 15 | path: "/", 16 | maxAge: 0, 17 | }); 18 | return new Response(null, { 19 | status: 200, 20 | }); 21 | } 22 | -------------------------------------------------------------------------------- /src/pages/api/signup.ts: -------------------------------------------------------------------------------- 1 | import { decodeBase64 } from "oslo/encoding"; 2 | import { generateRandomString, alphabet } from "oslo/random"; 3 | import { validateWebAuthnAttestationResponse } from "oslo/webauthn"; 4 | import { challenges, publicKeys, sessions, users } from "../../db"; 5 | 6 | import type { APIContext } from "astro"; 7 | import type { SignupAPIBody } from "../../api"; 8 | import type { WebAuthnAttestationResponse } from "oslo/webauthn"; 9 | 10 | export async function POST(context: APIContext): Promise { 11 | if (context.locals.session) { 12 | return new Response(null, { 13 | status: 400, 14 | }); 15 | } 16 | const body: SignupAPIBody = await context.request.json(); 17 | const response: WebAuthnAttestationResponse = { 18 | authenticatorData: decodeBase64(body.response.authenticator_data), 19 | clientDataJSON: decodeBase64(body.response.client_data_json), 20 | }; 21 | const challenge = challenges.get(body.challenge_id) ?? null; 22 | if (!challenge) { 23 | return new Response(null, { 24 | status: 400, 25 | }); 26 | } 27 | challenges.delete(challenge.challengeId); 28 | try { 29 | await validateWebAuthnAttestationResponse({ 30 | response, 31 | origin: "http://localhost:4321", 32 | challenge: decodeBase64(challenge.value), 33 | }); 34 | const userId = generateRandomString(15, alphabet("0-9", "a-z")); 35 | users.set(userId, { 36 | userId, 37 | username: body.username, 38 | }); 39 | const encodedPublicKey = body.response.public_key; 40 | publicKeys.set(body.public_key_id, { 41 | keyId: body.public_key_id, 42 | value: encodedPublicKey, 43 | userId, 44 | }); 45 | const sessionId = generateRandomString(40, alphabet("0-9", "a-z")); 46 | sessions.set(sessionId, { 47 | userId: userId, 48 | sessionId: sessionId, 49 | }); 50 | context.cookies.set("session", sessionId, { 51 | httpOnly: true, 52 | maxAge: 60 * 60 * 24, 53 | secure: import.meta.env.PROD, 54 | path: "/", 55 | }); 56 | return new Response(null, { 57 | status: 200, 58 | }); 59 | } catch (e) { 60 | console.log(e); 61 | return new Response(null, { 62 | status: 500, 63 | }); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /src/pages/index.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import { users } from "../db"; 3 | const { session } = Astro.locals; 4 | if (!session) { 5 | return Astro.redirect("/login"); 6 | } 7 | const user = users.get(session.userId)!; 8 | --- 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | Astro passkey with Oslo 17 | 18 | 19 |

Hi, {user.username}!

20 |

Your user id is {user.userId}

21 | 22 | 23 | 24 | 25 | 38 | -------------------------------------------------------------------------------- /src/pages/login.astro: -------------------------------------------------------------------------------- 1 | --- 2 | const { session } = Astro.locals; 3 | if (session) { 4 | return Astro.redirect("/"); 5 | } 6 | --- 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | Astro passkey with Oslo 15 | 16 | 17 |

Sign in

18 |
19 | Create account 20 | 21 | 22 | 30 | -------------------------------------------------------------------------------- /src/pages/signup.astro: -------------------------------------------------------------------------------- 1 | --- 2 | const { session } = Astro.locals; 3 | if (session) { 4 | return Astro.redirect("/"); 5 | } 6 | --- 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | Astro passkey with Oslo 15 | 16 | 17 |

Sign up

18 |
19 |
20 |
21 | 22 |
23 | Sign in 24 | 25 | 26 | 43 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "astro/tsconfigs/strict" 3 | } --------------------------------------------------------------------------------