├── .gitignore ├── .npmrc ├── LICENSE ├── README.md ├── eslint.config.js ├── package.json ├── pnpm-lock.yaml ├── pnpm-workspace.yaml ├── src ├── crypto.ts ├── index.ts └── util.ts ├── test └── index.test.ts ├── tsconfig.json └── tsup.config.ts /.gitignore: -------------------------------------------------------------------------------- 1 | .cache 2 | .DS_Store 3 | .idea 4 | *.log 5 | *.tgz 6 | coverage 7 | dist 8 | lib-cov 9 | logs 10 | node_modules 11 | temp -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | ignore-workspace-root-check=true 2 | shell-emulator=true -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 14K 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 8 | # totp-auth 9 | 10 | [![npm version][npm-version-src]][npm-version-href] 11 | [![npm downloads][npm-downloads-src]][npm-downloads-href] 12 | [![bundle][bundle-src]][bundle-href] 13 | [![JSDocs][jsdocs-src]][jsdocs-href] 14 | 15 | 100% JS's TOTP authenticator with no dependencies. You can use it in any javascript environment 16 | 17 | ## Quick Start 18 | 19 | ```bash 20 | npm install @14kay/totp-auth --save 21 | ``` 22 | 23 | ```js 24 | import TOTPAuth from '@14kay/totp-auth' 25 | 26 | const secret = 'JBSWY3DPEHPK3PXP' 27 | const code = TOTPAuth.totp(secret) // 666666 28 | ``` 29 | ### Get time remaining 30 | 31 | ```js 32 | const timeRemaining = OTPAuth.timeRemaining() // 15 33 | ``` 34 | ### code Verify 35 | 36 | ```js 37 | const isLegal = OTPAuth.totpVerify('123456') // true or false 38 | ``` 39 | 40 | ## License 41 | 42 | [MIT](./LICENSE) License © 2024-PRESENT [14K](https://github.com/14Kay) 43 | 44 | 45 | 46 | [npm-version-src]: https://img.shields.io/npm/v/@14kay/totp-auth?style=flat&colorA=080f12&colorB=1fa669 47 | [npm-version-href]: https://npmjs.com/package/@14kay/totp-auth 48 | [npm-downloads-src]: https://img.shields.io/npm/dm/@14kay/totp-auth?style=flat&colorA=080f12&colorB=1fa669 49 | [npm-downloads-href]: https://npmjs.com/package/@14kay/totp-auth 50 | [bundle-src]: https://img.shields.io/bundlephobia/minzip/@14kay/totp-auth?style=flat&colorA=080f12&colorB=1fa669&label=minzip 51 | [bundle-href]: https://bundlephobia.com/result?p=@14kay/totp-auth 52 | [license-src]: https://img.shields.io/github/license/antfu/@14kay/totp-auth.svg?style=flat&colorA=080f12&colorB=1fa669 53 | [jsdocs-src]: https://img.shields.io/badge/jsdocs-reference-080f12?style=flat&colorA=080f12&colorB=1fa669 54 | [jsdocs-href]: https://www.jsdocs.io/package/@14kay/totp-auth 55 | -------------------------------------------------------------------------------- /eslint.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | import eslint from '@antfu/eslint-config' 3 | 4 | export default eslint( 5 | { 6 | test: false, 7 | ignores: [ 8 | // eslint ignore globs here 9 | ], 10 | }, 11 | { 12 | rules: { 13 | // overrides 14 | }, 15 | }, 16 | ) -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@14kay/totp-auth", 3 | "type": "module", 4 | "version": "0.0.1", 5 | "packageManager": "pnpm@8.4.0", 6 | "description": "100% JS's TOTP authenticator with no dependencies", 7 | "author": { 8 | "name": "14K", 9 | "url": "https://github.com/14Kay" 10 | }, 11 | "license": "MIT", 12 | "homepage": "https://github.com/14Kay/totp-auth#readme", 13 | "repository": { 14 | "type": "git", 15 | "url": "git+https://github.com/14Kay/totp-auth.git" 16 | }, 17 | "bugs": "https://github.com/14Kay/totp-auth/issues", 18 | "keywords": [ 19 | "TOTP", 20 | "2FA", 21 | "authenticator" 22 | ], 23 | "sideEffects": false, 24 | "exports": { 25 | ".": { 26 | "import": { 27 | "types": "./dist/index.d.ts", 28 | "default": "./dist/index.js" 29 | }, 30 | "require": { 31 | "types": "./dist/index.d.cts", 32 | "default": "./dist/index.cjs" 33 | } 34 | } 35 | }, 36 | "main": "./dist/index.js", 37 | "module": "./dist/index.js", 38 | "types": "./dist/index.d.ts", 39 | "typesVersions": { 40 | "*": { 41 | "*": [ 42 | "./dist/*", 43 | "./dist/index.d.ts" 44 | ] 45 | } 46 | }, 47 | "files": [ 48 | "dist" 49 | ], 50 | "scripts": { 51 | "build": "tsup", 52 | "dev": "tsup --watch", 53 | "lint": "eslint .", 54 | "publish": "npm version patch && npm publish --access public", 55 | "minor": "npm version minor && npm publish --access public", 56 | "major": "npm version major && npm publish --access public", 57 | "start": "esno src/index.ts", 58 | "test": "vitest", 59 | "typecheck": "tsc --noEmit", 60 | "prepare": "simple-git-hooks" 61 | }, 62 | "devDependencies": { 63 | "@antfu/eslint-config": "^2.6.4", 64 | "@types/node": "^20.11.30", 65 | "eslint": "^8.56.0", 66 | "esno": "^4.0.0", 67 | "lint-staged": "^15.2.2", 68 | "pnpm": "^8.4.0", 69 | "simple-git-hooks": "^2.9.0", 70 | "tsup": "^8.0.2", 71 | "typescript": "^5.3.3", 72 | "vitest": "^1.3.1" 73 | }, 74 | "simple-git-hooks": { 75 | "pre-commit": "pnpm lint-staged" 76 | }, 77 | "lint-staged": { 78 | "*": "eslint --fix" 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | importers: 4 | 5 | .: 6 | devDependencies: 7 | '@antfu/eslint-config': 8 | specifier: ^2.6.4 9 | version: 2.13.2(@vue/compiler-sfc@3.4.21)(eslint@8.56.0)(typescript@5.4.4)(vitest@1.4.0) 10 | '@types/node': 11 | specifier: ^20.11.30 12 | version: 20.12.7 13 | eslint: 14 | specifier: ^8.56.0 15 | version: 8.56.0 16 | esno: 17 | specifier: ^4.0.0 18 | version: 4.7.0 19 | lint-staged: 20 | specifier: ^15.2.2 21 | version: 15.2.2 22 | pnpm: 23 | specifier: ^8.4.0 24 | version: 8.15.6 25 | simple-git-hooks: 26 | specifier: ^2.9.0 27 | version: 2.11.1 28 | tsup: 29 | specifier: ^8.0.2 30 | version: 8.0.2(typescript@5.4.4) 31 | typescript: 32 | specifier: ^5.3.3 33 | version: 5.4.4 34 | vitest: 35 | specifier: ^1.3.1 36 | version: 1.4.0(@types/node@20.12.7) 37 | 38 | packages: 39 | 40 | /@aashutoshrathi/word-wrap@1.2.6: 41 | resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} 42 | engines: {node: '>=0.10.0'} 43 | dev: true 44 | 45 | /@antfu/eslint-config@2.13.2(@vue/compiler-sfc@3.4.21)(eslint@8.56.0)(typescript@5.4.4)(vitest@1.4.0): 46 | resolution: {integrity: sha512-twfke7tx29F2lAyfMm412caEcgVh/msiwkuyWI+ZoskdPLHzSkKh9mql/EdijGO8Z/DjzWhpRObo94Vl74fL5w==} 47 | hasBin: true 48 | peerDependencies: 49 | '@unocss/eslint-plugin': '>=0.50.0' 50 | astro-eslint-parser: ^0.16.3 51 | eslint: '>=8.40.0' 52 | eslint-plugin-astro: ^0.31.4 53 | eslint-plugin-format: '>=0.1.0' 54 | eslint-plugin-react: ^7.33.2 55 | eslint-plugin-react-hooks: ^4.6.0 56 | eslint-plugin-react-refresh: ^0.4.4 57 | eslint-plugin-solid: ^0.13.2 58 | eslint-plugin-svelte: '>=2.35.1' 59 | prettier-plugin-astro: ^0.13.0 60 | prettier-plugin-slidev: ^1.0.5 61 | svelte-eslint-parser: ^0.33.1 62 | peerDependenciesMeta: 63 | '@unocss/eslint-plugin': 64 | optional: true 65 | astro-eslint-parser: 66 | optional: true 67 | eslint-plugin-astro: 68 | optional: true 69 | eslint-plugin-format: 70 | optional: true 71 | eslint-plugin-react: 72 | optional: true 73 | eslint-plugin-react-hooks: 74 | optional: true 75 | eslint-plugin-react-refresh: 76 | optional: true 77 | eslint-plugin-solid: 78 | optional: true 79 | eslint-plugin-svelte: 80 | optional: true 81 | prettier-plugin-astro: 82 | optional: true 83 | prettier-plugin-slidev: 84 | optional: true 85 | svelte-eslint-parser: 86 | optional: true 87 | dependencies: 88 | '@antfu/install-pkg': 0.3.2 89 | '@clack/prompts': 0.7.0 90 | '@stylistic/eslint-plugin': 1.7.0(eslint@8.56.0)(typescript@5.4.4) 91 | '@typescript-eslint/eslint-plugin': 7.6.0(@typescript-eslint/parser@7.6.0)(eslint@8.56.0)(typescript@5.4.4) 92 | '@typescript-eslint/parser': 7.6.0(eslint@8.56.0)(typescript@5.4.4) 93 | eslint: 8.56.0 94 | eslint-config-flat-gitignore: 0.1.5 95 | eslint-flat-config-utils: 0.2.1 96 | eslint-merge-processors: 0.1.0(eslint@8.56.0) 97 | eslint-plugin-antfu: 2.1.2(eslint@8.56.0) 98 | eslint-plugin-eslint-comments: 3.2.0(eslint@8.56.0) 99 | eslint-plugin-import-x: 0.5.0(eslint@8.56.0)(typescript@5.4.4) 100 | eslint-plugin-jsdoc: 48.2.3(eslint@8.56.0) 101 | eslint-plugin-jsonc: 2.15.0(eslint@8.56.0) 102 | eslint-plugin-markdown: 4.0.1(eslint@8.56.0) 103 | eslint-plugin-n: 17.1.0(eslint@8.56.0) 104 | eslint-plugin-no-only-tests: 3.1.0 105 | eslint-plugin-perfectionist: 2.8.0(eslint@8.56.0)(typescript@5.4.4)(vue-eslint-parser@9.4.2) 106 | eslint-plugin-toml: 0.11.0(eslint@8.56.0) 107 | eslint-plugin-unicorn: 52.0.0(eslint@8.56.0) 108 | eslint-plugin-unused-imports: 3.1.0(@typescript-eslint/eslint-plugin@7.6.0)(eslint@8.56.0) 109 | eslint-plugin-vitest: 0.5.1(@typescript-eslint/eslint-plugin@7.6.0)(eslint@8.56.0)(typescript@5.4.4)(vitest@1.4.0) 110 | eslint-plugin-vue: 9.24.1(eslint@8.56.0) 111 | eslint-plugin-yml: 1.14.0(eslint@8.56.0) 112 | eslint-processor-vue-blocks: 0.1.1(@vue/compiler-sfc@3.4.21)(eslint@8.56.0) 113 | globals: 15.0.0 114 | jsonc-eslint-parser: 2.4.0 115 | local-pkg: 0.5.0 116 | parse-gitignore: 2.0.0 117 | picocolors: 1.0.0 118 | toml-eslint-parser: 0.9.3 119 | vue-eslint-parser: 9.4.2(eslint@8.56.0) 120 | yaml-eslint-parser: 1.2.2 121 | yargs: 17.7.2 122 | transitivePeerDependencies: 123 | - '@vue/compiler-sfc' 124 | - supports-color 125 | - svelte 126 | - typescript 127 | - vitest 128 | dev: true 129 | 130 | /@antfu/install-pkg@0.3.2: 131 | resolution: {integrity: sha512-FFYqME8+UHlPnRlX/vn+8cTD4Wo/nG/lzRxpABs3XANBmdJdNImVz3QvjNAE/W3PSCNbG387FOz8o5WelnWOlg==} 132 | dependencies: 133 | execa: 8.0.1 134 | dev: true 135 | 136 | /@babel/code-frame@7.24.2: 137 | resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} 138 | engines: {node: '>=6.9.0'} 139 | dependencies: 140 | '@babel/highlight': 7.24.2 141 | picocolors: 1.0.0 142 | dev: true 143 | 144 | /@babel/helper-string-parser@7.24.1: 145 | resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} 146 | engines: {node: '>=6.9.0'} 147 | dev: true 148 | 149 | /@babel/helper-validator-identifier@7.22.20: 150 | resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} 151 | engines: {node: '>=6.9.0'} 152 | dev: true 153 | 154 | /@babel/highlight@7.24.2: 155 | resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} 156 | engines: {node: '>=6.9.0'} 157 | dependencies: 158 | '@babel/helper-validator-identifier': 7.22.20 159 | chalk: 2.4.2 160 | js-tokens: 4.0.0 161 | picocolors: 1.0.0 162 | dev: true 163 | 164 | /@babel/parser@7.24.4: 165 | resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} 166 | engines: {node: '>=6.0.0'} 167 | hasBin: true 168 | dependencies: 169 | '@babel/types': 7.24.0 170 | dev: true 171 | 172 | /@babel/types@7.24.0: 173 | resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} 174 | engines: {node: '>=6.9.0'} 175 | dependencies: 176 | '@babel/helper-string-parser': 7.24.1 177 | '@babel/helper-validator-identifier': 7.22.20 178 | to-fast-properties: 2.0.0 179 | dev: true 180 | 181 | /@clack/core@0.3.4: 182 | resolution: {integrity: sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==} 183 | dependencies: 184 | picocolors: 1.0.0 185 | sisteransi: 1.0.5 186 | dev: true 187 | 188 | /@clack/prompts@0.7.0: 189 | resolution: {integrity: sha512-0MhX9/B4iL6Re04jPrttDm+BsP8y6mS7byuv0BvXgdXhbV5PdlsHt55dvNsuBCPZ7xq1oTAOOuotR9NFbQyMSA==} 190 | dependencies: 191 | '@clack/core': 0.3.4 192 | picocolors: 1.0.0 193 | sisteransi: 1.0.5 194 | dev: true 195 | bundledDependencies: 196 | - is-unicode-supported 197 | 198 | /@es-joy/jsdoccomment@0.42.0: 199 | resolution: {integrity: sha512-R1w57YlVA6+YE01wch3GPYn6bCsrOV3YW/5oGGE2tmX6JcL9Nr+b5IikrjMPF+v9CV3ay+obImEdsDhovhJrzw==} 200 | engines: {node: '>=16'} 201 | dependencies: 202 | comment-parser: 1.4.1 203 | esquery: 1.5.0 204 | jsdoc-type-pratt-parser: 4.0.0 205 | dev: true 206 | 207 | /@esbuild/aix-ppc64@0.19.12: 208 | resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} 209 | engines: {node: '>=12'} 210 | cpu: [ppc64] 211 | os: [aix] 212 | requiresBuild: true 213 | dev: true 214 | optional: true 215 | 216 | /@esbuild/aix-ppc64@0.20.2: 217 | resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} 218 | engines: {node: '>=12'} 219 | cpu: [ppc64] 220 | os: [aix] 221 | requiresBuild: true 222 | dev: true 223 | optional: true 224 | 225 | /@esbuild/android-arm64@0.19.12: 226 | resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} 227 | engines: {node: '>=12'} 228 | cpu: [arm64] 229 | os: [android] 230 | requiresBuild: true 231 | dev: true 232 | optional: true 233 | 234 | /@esbuild/android-arm64@0.20.2: 235 | resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} 236 | engines: {node: '>=12'} 237 | cpu: [arm64] 238 | os: [android] 239 | requiresBuild: true 240 | dev: true 241 | optional: true 242 | 243 | /@esbuild/android-arm@0.19.12: 244 | resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} 245 | engines: {node: '>=12'} 246 | cpu: [arm] 247 | os: [android] 248 | requiresBuild: true 249 | dev: true 250 | optional: true 251 | 252 | /@esbuild/android-arm@0.20.2: 253 | resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} 254 | engines: {node: '>=12'} 255 | cpu: [arm] 256 | os: [android] 257 | requiresBuild: true 258 | dev: true 259 | optional: true 260 | 261 | /@esbuild/android-x64@0.19.12: 262 | resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} 263 | engines: {node: '>=12'} 264 | cpu: [x64] 265 | os: [android] 266 | requiresBuild: true 267 | dev: true 268 | optional: true 269 | 270 | /@esbuild/android-x64@0.20.2: 271 | resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} 272 | engines: {node: '>=12'} 273 | cpu: [x64] 274 | os: [android] 275 | requiresBuild: true 276 | dev: true 277 | optional: true 278 | 279 | /@esbuild/darwin-arm64@0.19.12: 280 | resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} 281 | engines: {node: '>=12'} 282 | cpu: [arm64] 283 | os: [darwin] 284 | requiresBuild: true 285 | dev: true 286 | optional: true 287 | 288 | /@esbuild/darwin-arm64@0.20.2: 289 | resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} 290 | engines: {node: '>=12'} 291 | cpu: [arm64] 292 | os: [darwin] 293 | requiresBuild: true 294 | dev: true 295 | optional: true 296 | 297 | /@esbuild/darwin-x64@0.19.12: 298 | resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} 299 | engines: {node: '>=12'} 300 | cpu: [x64] 301 | os: [darwin] 302 | requiresBuild: true 303 | dev: true 304 | optional: true 305 | 306 | /@esbuild/darwin-x64@0.20.2: 307 | resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} 308 | engines: {node: '>=12'} 309 | cpu: [x64] 310 | os: [darwin] 311 | requiresBuild: true 312 | dev: true 313 | optional: true 314 | 315 | /@esbuild/freebsd-arm64@0.19.12: 316 | resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} 317 | engines: {node: '>=12'} 318 | cpu: [arm64] 319 | os: [freebsd] 320 | requiresBuild: true 321 | dev: true 322 | optional: true 323 | 324 | /@esbuild/freebsd-arm64@0.20.2: 325 | resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} 326 | engines: {node: '>=12'} 327 | cpu: [arm64] 328 | os: [freebsd] 329 | requiresBuild: true 330 | dev: true 331 | optional: true 332 | 333 | /@esbuild/freebsd-x64@0.19.12: 334 | resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} 335 | engines: {node: '>=12'} 336 | cpu: [x64] 337 | os: [freebsd] 338 | requiresBuild: true 339 | dev: true 340 | optional: true 341 | 342 | /@esbuild/freebsd-x64@0.20.2: 343 | resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} 344 | engines: {node: '>=12'} 345 | cpu: [x64] 346 | os: [freebsd] 347 | requiresBuild: true 348 | dev: true 349 | optional: true 350 | 351 | /@esbuild/linux-arm64@0.19.12: 352 | resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} 353 | engines: {node: '>=12'} 354 | cpu: [arm64] 355 | os: [linux] 356 | requiresBuild: true 357 | dev: true 358 | optional: true 359 | 360 | /@esbuild/linux-arm64@0.20.2: 361 | resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} 362 | engines: {node: '>=12'} 363 | cpu: [arm64] 364 | os: [linux] 365 | requiresBuild: true 366 | dev: true 367 | optional: true 368 | 369 | /@esbuild/linux-arm@0.19.12: 370 | resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} 371 | engines: {node: '>=12'} 372 | cpu: [arm] 373 | os: [linux] 374 | requiresBuild: true 375 | dev: true 376 | optional: true 377 | 378 | /@esbuild/linux-arm@0.20.2: 379 | resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} 380 | engines: {node: '>=12'} 381 | cpu: [arm] 382 | os: [linux] 383 | requiresBuild: true 384 | dev: true 385 | optional: true 386 | 387 | /@esbuild/linux-ia32@0.19.12: 388 | resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} 389 | engines: {node: '>=12'} 390 | cpu: [ia32] 391 | os: [linux] 392 | requiresBuild: true 393 | dev: true 394 | optional: true 395 | 396 | /@esbuild/linux-ia32@0.20.2: 397 | resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} 398 | engines: {node: '>=12'} 399 | cpu: [ia32] 400 | os: [linux] 401 | requiresBuild: true 402 | dev: true 403 | optional: true 404 | 405 | /@esbuild/linux-loong64@0.19.12: 406 | resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} 407 | engines: {node: '>=12'} 408 | cpu: [loong64] 409 | os: [linux] 410 | requiresBuild: true 411 | dev: true 412 | optional: true 413 | 414 | /@esbuild/linux-loong64@0.20.2: 415 | resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} 416 | engines: {node: '>=12'} 417 | cpu: [loong64] 418 | os: [linux] 419 | requiresBuild: true 420 | dev: true 421 | optional: true 422 | 423 | /@esbuild/linux-mips64el@0.19.12: 424 | resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} 425 | engines: {node: '>=12'} 426 | cpu: [mips64el] 427 | os: [linux] 428 | requiresBuild: true 429 | dev: true 430 | optional: true 431 | 432 | /@esbuild/linux-mips64el@0.20.2: 433 | resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} 434 | engines: {node: '>=12'} 435 | cpu: [mips64el] 436 | os: [linux] 437 | requiresBuild: true 438 | dev: true 439 | optional: true 440 | 441 | /@esbuild/linux-ppc64@0.19.12: 442 | resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} 443 | engines: {node: '>=12'} 444 | cpu: [ppc64] 445 | os: [linux] 446 | requiresBuild: true 447 | dev: true 448 | optional: true 449 | 450 | /@esbuild/linux-ppc64@0.20.2: 451 | resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} 452 | engines: {node: '>=12'} 453 | cpu: [ppc64] 454 | os: [linux] 455 | requiresBuild: true 456 | dev: true 457 | optional: true 458 | 459 | /@esbuild/linux-riscv64@0.19.12: 460 | resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} 461 | engines: {node: '>=12'} 462 | cpu: [riscv64] 463 | os: [linux] 464 | requiresBuild: true 465 | dev: true 466 | optional: true 467 | 468 | /@esbuild/linux-riscv64@0.20.2: 469 | resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} 470 | engines: {node: '>=12'} 471 | cpu: [riscv64] 472 | os: [linux] 473 | requiresBuild: true 474 | dev: true 475 | optional: true 476 | 477 | /@esbuild/linux-s390x@0.19.12: 478 | resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} 479 | engines: {node: '>=12'} 480 | cpu: [s390x] 481 | os: [linux] 482 | requiresBuild: true 483 | dev: true 484 | optional: true 485 | 486 | /@esbuild/linux-s390x@0.20.2: 487 | resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} 488 | engines: {node: '>=12'} 489 | cpu: [s390x] 490 | os: [linux] 491 | requiresBuild: true 492 | dev: true 493 | optional: true 494 | 495 | /@esbuild/linux-x64@0.19.12: 496 | resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} 497 | engines: {node: '>=12'} 498 | cpu: [x64] 499 | os: [linux] 500 | requiresBuild: true 501 | dev: true 502 | optional: true 503 | 504 | /@esbuild/linux-x64@0.20.2: 505 | resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} 506 | engines: {node: '>=12'} 507 | cpu: [x64] 508 | os: [linux] 509 | requiresBuild: true 510 | dev: true 511 | optional: true 512 | 513 | /@esbuild/netbsd-x64@0.19.12: 514 | resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} 515 | engines: {node: '>=12'} 516 | cpu: [x64] 517 | os: [netbsd] 518 | requiresBuild: true 519 | dev: true 520 | optional: true 521 | 522 | /@esbuild/netbsd-x64@0.20.2: 523 | resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} 524 | engines: {node: '>=12'} 525 | cpu: [x64] 526 | os: [netbsd] 527 | requiresBuild: true 528 | dev: true 529 | optional: true 530 | 531 | /@esbuild/openbsd-x64@0.19.12: 532 | resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} 533 | engines: {node: '>=12'} 534 | cpu: [x64] 535 | os: [openbsd] 536 | requiresBuild: true 537 | dev: true 538 | optional: true 539 | 540 | /@esbuild/openbsd-x64@0.20.2: 541 | resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} 542 | engines: {node: '>=12'} 543 | cpu: [x64] 544 | os: [openbsd] 545 | requiresBuild: true 546 | dev: true 547 | optional: true 548 | 549 | /@esbuild/sunos-x64@0.19.12: 550 | resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} 551 | engines: {node: '>=12'} 552 | cpu: [x64] 553 | os: [sunos] 554 | requiresBuild: true 555 | dev: true 556 | optional: true 557 | 558 | /@esbuild/sunos-x64@0.20.2: 559 | resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} 560 | engines: {node: '>=12'} 561 | cpu: [x64] 562 | os: [sunos] 563 | requiresBuild: true 564 | dev: true 565 | optional: true 566 | 567 | /@esbuild/win32-arm64@0.19.12: 568 | resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} 569 | engines: {node: '>=12'} 570 | cpu: [arm64] 571 | os: [win32] 572 | requiresBuild: true 573 | dev: true 574 | optional: true 575 | 576 | /@esbuild/win32-arm64@0.20.2: 577 | resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} 578 | engines: {node: '>=12'} 579 | cpu: [arm64] 580 | os: [win32] 581 | requiresBuild: true 582 | dev: true 583 | optional: true 584 | 585 | /@esbuild/win32-ia32@0.19.12: 586 | resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} 587 | engines: {node: '>=12'} 588 | cpu: [ia32] 589 | os: [win32] 590 | requiresBuild: true 591 | dev: true 592 | optional: true 593 | 594 | /@esbuild/win32-ia32@0.20.2: 595 | resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} 596 | engines: {node: '>=12'} 597 | cpu: [ia32] 598 | os: [win32] 599 | requiresBuild: true 600 | dev: true 601 | optional: true 602 | 603 | /@esbuild/win32-x64@0.19.12: 604 | resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} 605 | engines: {node: '>=12'} 606 | cpu: [x64] 607 | os: [win32] 608 | requiresBuild: true 609 | dev: true 610 | optional: true 611 | 612 | /@esbuild/win32-x64@0.20.2: 613 | resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} 614 | engines: {node: '>=12'} 615 | cpu: [x64] 616 | os: [win32] 617 | requiresBuild: true 618 | dev: true 619 | optional: true 620 | 621 | /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): 622 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 623 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 624 | peerDependencies: 625 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 626 | dependencies: 627 | eslint: 8.56.0 628 | eslint-visitor-keys: 3.4.3 629 | dev: true 630 | 631 | /@eslint-community/regexpp@4.10.0: 632 | resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} 633 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 634 | dev: true 635 | 636 | /@eslint/eslintrc@2.1.4: 637 | resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} 638 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 639 | dependencies: 640 | ajv: 6.12.6 641 | debug: 4.3.4 642 | espree: 9.6.1 643 | globals: 13.24.0 644 | ignore: 5.3.1 645 | import-fresh: 3.3.0 646 | js-yaml: 4.1.0 647 | minimatch: 3.1.2 648 | strip-json-comments: 3.1.1 649 | transitivePeerDependencies: 650 | - supports-color 651 | dev: true 652 | 653 | /@eslint/js@8.56.0: 654 | resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} 655 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 656 | dev: true 657 | 658 | /@humanwhocodes/config-array@0.11.14: 659 | resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} 660 | engines: {node: '>=10.10.0'} 661 | dependencies: 662 | '@humanwhocodes/object-schema': 2.0.3 663 | debug: 4.3.4 664 | minimatch: 3.1.2 665 | transitivePeerDependencies: 666 | - supports-color 667 | dev: true 668 | 669 | /@humanwhocodes/module-importer@1.0.1: 670 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 671 | engines: {node: '>=12.22'} 672 | dev: true 673 | 674 | /@humanwhocodes/object-schema@2.0.3: 675 | resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} 676 | dev: true 677 | 678 | /@isaacs/cliui@8.0.2: 679 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 680 | engines: {node: '>=12'} 681 | dependencies: 682 | string-width: 5.1.2 683 | string-width-cjs: /string-width@4.2.3 684 | strip-ansi: 7.1.0 685 | strip-ansi-cjs: /strip-ansi@6.0.1 686 | wrap-ansi: 8.1.0 687 | wrap-ansi-cjs: /wrap-ansi@7.0.0 688 | dev: true 689 | 690 | /@jest/schemas@29.6.3: 691 | resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} 692 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 693 | dependencies: 694 | '@sinclair/typebox': 0.27.8 695 | dev: true 696 | 697 | /@jridgewell/gen-mapping@0.3.5: 698 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 699 | engines: {node: '>=6.0.0'} 700 | dependencies: 701 | '@jridgewell/set-array': 1.2.1 702 | '@jridgewell/sourcemap-codec': 1.4.15 703 | '@jridgewell/trace-mapping': 0.3.25 704 | dev: true 705 | 706 | /@jridgewell/resolve-uri@3.1.2: 707 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 708 | engines: {node: '>=6.0.0'} 709 | dev: true 710 | 711 | /@jridgewell/set-array@1.2.1: 712 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 713 | engines: {node: '>=6.0.0'} 714 | dev: true 715 | 716 | /@jridgewell/sourcemap-codec@1.4.15: 717 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 718 | dev: true 719 | 720 | /@jridgewell/trace-mapping@0.3.25: 721 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 722 | dependencies: 723 | '@jridgewell/resolve-uri': 3.1.2 724 | '@jridgewell/sourcemap-codec': 1.4.15 725 | dev: true 726 | 727 | /@nodelib/fs.scandir@2.1.5: 728 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 729 | engines: {node: '>= 8'} 730 | dependencies: 731 | '@nodelib/fs.stat': 2.0.5 732 | run-parallel: 1.2.0 733 | dev: true 734 | 735 | /@nodelib/fs.stat@2.0.5: 736 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 737 | engines: {node: '>= 8'} 738 | dev: true 739 | 740 | /@nodelib/fs.walk@1.2.8: 741 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 742 | engines: {node: '>= 8'} 743 | dependencies: 744 | '@nodelib/fs.scandir': 2.1.5 745 | fastq: 1.17.1 746 | dev: true 747 | 748 | /@pkgjs/parseargs@0.11.0: 749 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 750 | engines: {node: '>=14'} 751 | requiresBuild: true 752 | dev: true 753 | optional: true 754 | 755 | /@rollup/rollup-android-arm-eabi@4.14.1: 756 | resolution: {integrity: sha512-fH8/o8nSUek8ceQnT7K4EQbSiV7jgkHq81m9lWZFIXjJ7lJzpWXbQFpT/Zh6OZYnpFykvzC3fbEvEAFZu03dPA==} 757 | cpu: [arm] 758 | os: [android] 759 | requiresBuild: true 760 | dev: true 761 | optional: true 762 | 763 | /@rollup/rollup-android-arm64@4.14.1: 764 | resolution: {integrity: sha512-Y/9OHLjzkunF+KGEoJr3heiD5X9OLa8sbT1lm0NYeKyaM3oMhhQFvPB0bNZYJwlq93j8Z6wSxh9+cyKQaxS7PQ==} 765 | cpu: [arm64] 766 | os: [android] 767 | requiresBuild: true 768 | dev: true 769 | optional: true 770 | 771 | /@rollup/rollup-darwin-arm64@4.14.1: 772 | resolution: {integrity: sha512-+kecg3FY84WadgcuSVm6llrABOdQAEbNdnpi5X3UwWiFVhZIZvKgGrF7kmLguvxHNQy+UuRV66cLVl3S+Rkt+Q==} 773 | cpu: [arm64] 774 | os: [darwin] 775 | requiresBuild: true 776 | dev: true 777 | optional: true 778 | 779 | /@rollup/rollup-darwin-x64@4.14.1: 780 | resolution: {integrity: sha512-2pYRzEjVqq2TB/UNv47BV/8vQiXkFGVmPFwJb+1E0IFFZbIX8/jo1olxqqMbo6xCXf8kabANhp5bzCij2tFLUA==} 781 | cpu: [x64] 782 | os: [darwin] 783 | requiresBuild: true 784 | dev: true 785 | optional: true 786 | 787 | /@rollup/rollup-linux-arm-gnueabihf@4.14.1: 788 | resolution: {integrity: sha512-mS6wQ6Do6/wmrF9aTFVpIJ3/IDXhg1EZcQFYHZLHqw6AzMBjTHWnCG35HxSqUNphh0EHqSM6wRTT8HsL1C0x5g==} 789 | cpu: [arm] 790 | os: [linux] 791 | requiresBuild: true 792 | dev: true 793 | optional: true 794 | 795 | /@rollup/rollup-linux-arm64-gnu@4.14.1: 796 | resolution: {integrity: sha512-p9rGKYkHdFMzhckOTFubfxgyIO1vw//7IIjBBRVzyZebWlzRLeNhqxuSaZ7kCEKVkm/kuC9fVRW9HkC/zNRG2w==} 797 | cpu: [arm64] 798 | os: [linux] 799 | requiresBuild: true 800 | dev: true 801 | optional: true 802 | 803 | /@rollup/rollup-linux-arm64-musl@4.14.1: 804 | resolution: {integrity: sha512-nDY6Yz5xS/Y4M2i9JLQd3Rofh5OR8Bn8qe3Mv/qCVpHFlwtZSBYSPaU4mrGazWkXrdQ98GB//H0BirGR/SKFSw==} 805 | cpu: [arm64] 806 | os: [linux] 807 | requiresBuild: true 808 | dev: true 809 | optional: true 810 | 811 | /@rollup/rollup-linux-powerpc64le-gnu@4.14.1: 812 | resolution: {integrity: sha512-im7HE4VBL+aDswvcmfx88Mp1soqL9OBsdDBU8NqDEYtkri0qV0THhQsvZtZeNNlLeCUQ16PZyv7cqutjDF35qw==} 813 | cpu: [ppc64le] 814 | os: [linux] 815 | requiresBuild: true 816 | dev: true 817 | optional: true 818 | 819 | /@rollup/rollup-linux-riscv64-gnu@4.14.1: 820 | resolution: {integrity: sha512-RWdiHuAxWmzPJgaHJdpvUUlDz8sdQz4P2uv367T2JocdDa98iRw2UjIJ4QxSyt077mXZT2X6pKfT2iYtVEvOFw==} 821 | cpu: [riscv64] 822 | os: [linux] 823 | requiresBuild: true 824 | dev: true 825 | optional: true 826 | 827 | /@rollup/rollup-linux-s390x-gnu@4.14.1: 828 | resolution: {integrity: sha512-VMgaGQ5zRX6ZqV/fas65/sUGc9cPmsntq2FiGmayW9KMNfWVG/j0BAqImvU4KTeOOgYSf1F+k6at1UfNONuNjA==} 829 | cpu: [s390x] 830 | os: [linux] 831 | requiresBuild: true 832 | dev: true 833 | optional: true 834 | 835 | /@rollup/rollup-linux-x64-gnu@4.14.1: 836 | resolution: {integrity: sha512-9Q7DGjZN+hTdJomaQ3Iub4m6VPu1r94bmK2z3UeWP3dGUecRC54tmVu9vKHTm1bOt3ASoYtEz6JSRLFzrysKlA==} 837 | cpu: [x64] 838 | os: [linux] 839 | requiresBuild: true 840 | dev: true 841 | optional: true 842 | 843 | /@rollup/rollup-linux-x64-musl@4.14.1: 844 | resolution: {integrity: sha512-JNEG/Ti55413SsreTguSx0LOVKX902OfXIKVg+TCXO6Gjans/k9O6ww9q3oLGjNDaTLxM+IHFMeXy/0RXL5R/g==} 845 | cpu: [x64] 846 | os: [linux] 847 | requiresBuild: true 848 | dev: true 849 | optional: true 850 | 851 | /@rollup/rollup-win32-arm64-msvc@4.14.1: 852 | resolution: {integrity: sha512-ryS22I9y0mumlLNwDFYZRDFLwWh3aKaC72CWjFcFvxK0U6v/mOkM5Up1bTbCRAhv3kEIwW2ajROegCIQViUCeA==} 853 | cpu: [arm64] 854 | os: [win32] 855 | requiresBuild: true 856 | dev: true 857 | optional: true 858 | 859 | /@rollup/rollup-win32-ia32-msvc@4.14.1: 860 | resolution: {integrity: sha512-TdloItiGk+T0mTxKx7Hp279xy30LspMso+GzQvV2maYePMAWdmrzqSNZhUpPj3CGw12aGj57I026PgLCTu8CGg==} 861 | cpu: [ia32] 862 | os: [win32] 863 | requiresBuild: true 864 | dev: true 865 | optional: true 866 | 867 | /@rollup/rollup-win32-x64-msvc@4.14.1: 868 | resolution: {integrity: sha512-wQGI+LY/Py20zdUPq+XCem7JcPOyzIJBm3dli+56DJsQOHbnXZFEwgmnC6el1TPAfC8lBT3m+z69RmLykNUbew==} 869 | cpu: [x64] 870 | os: [win32] 871 | requiresBuild: true 872 | dev: true 873 | optional: true 874 | 875 | /@sinclair/typebox@0.27.8: 876 | resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} 877 | dev: true 878 | 879 | /@stylistic/eslint-plugin-js@1.7.0(eslint@8.56.0): 880 | resolution: {integrity: sha512-PN6On/+or63FGnhhMKSQfYcWutRlzOiYlVdLM6yN7lquoBTqUJHYnl4TA4MHwiAt46X5gRxDr1+xPZ1lOLcL+Q==} 881 | engines: {node: ^16.0.0 || >=18.0.0} 882 | peerDependencies: 883 | eslint: '>=8.40.0' 884 | dependencies: 885 | '@types/eslint': 8.56.7 886 | acorn: 8.11.3 887 | escape-string-regexp: 4.0.0 888 | eslint: 8.56.0 889 | eslint-visitor-keys: 3.4.3 890 | espree: 9.6.1 891 | dev: true 892 | 893 | /@stylistic/eslint-plugin-jsx@1.7.0(eslint@8.56.0): 894 | resolution: {integrity: sha512-BACdBwXakQvjYIST5N2WWhRbvhRsIxa/F59BiZol+0IH4FSmDXhie7v/yaxDIIA9CbfElzOmIA5nWNYTVXcnwQ==} 895 | engines: {node: ^16.0.0 || >=18.0.0} 896 | peerDependencies: 897 | eslint: '>=8.40.0' 898 | dependencies: 899 | '@stylistic/eslint-plugin-js': 1.7.0(eslint@8.56.0) 900 | '@types/eslint': 8.56.7 901 | eslint: 8.56.0 902 | estraverse: 5.3.0 903 | picomatch: 4.0.2 904 | dev: true 905 | 906 | /@stylistic/eslint-plugin-plus@1.7.0(eslint@8.56.0)(typescript@5.4.4): 907 | resolution: {integrity: sha512-AabDw8sXsc70Ydx3qnbeTlRHZnIwY6UKEenBPURPhY3bfYWX+/pDpZH40HkOu94v8D0DUrocPkeeEUxl4e0JDg==} 908 | peerDependencies: 909 | eslint: '*' 910 | dependencies: 911 | '@types/eslint': 8.56.7 912 | '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.4.4) 913 | eslint: 8.56.0 914 | transitivePeerDependencies: 915 | - supports-color 916 | - typescript 917 | dev: true 918 | 919 | /@stylistic/eslint-plugin-ts@1.7.0(eslint@8.56.0)(typescript@5.4.4): 920 | resolution: {integrity: sha512-QsHv98mmW1xaucVYQTyLDgEpybPJ/6jPPxVBrIchntWWwj74xCWKUiw79hu+TpYj/Pbhd9rkqJYLNq3pQGYuyA==} 921 | engines: {node: ^16.0.0 || >=18.0.0} 922 | peerDependencies: 923 | eslint: '>=8.40.0' 924 | dependencies: 925 | '@stylistic/eslint-plugin-js': 1.7.0(eslint@8.56.0) 926 | '@types/eslint': 8.56.7 927 | '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.4.4) 928 | eslint: 8.56.0 929 | transitivePeerDependencies: 930 | - supports-color 931 | - typescript 932 | dev: true 933 | 934 | /@stylistic/eslint-plugin@1.7.0(eslint@8.56.0)(typescript@5.4.4): 935 | resolution: {integrity: sha512-ThMUjGIi/jeWYNvOdjZkoLw1EOVs0tEuKXDgWvTn8uWaEz55HuPlajKxjKLpv19C+qRDbKczJfzUODfCdME53A==} 936 | engines: {node: ^16.0.0 || >=18.0.0} 937 | peerDependencies: 938 | eslint: '>=8.40.0' 939 | dependencies: 940 | '@stylistic/eslint-plugin-js': 1.7.0(eslint@8.56.0) 941 | '@stylistic/eslint-plugin-jsx': 1.7.0(eslint@8.56.0) 942 | '@stylistic/eslint-plugin-plus': 1.7.0(eslint@8.56.0)(typescript@5.4.4) 943 | '@stylistic/eslint-plugin-ts': 1.7.0(eslint@8.56.0)(typescript@5.4.4) 944 | '@types/eslint': 8.56.7 945 | eslint: 8.56.0 946 | transitivePeerDependencies: 947 | - supports-color 948 | - typescript 949 | dev: true 950 | 951 | /@types/eslint@8.56.7: 952 | resolution: {integrity: sha512-SjDvI/x3zsZnOkYZ3lCt9lOZWZLB2jIlNKz+LBgCtDurK0JZcwucxYHn1w2BJkD34dgX9Tjnak0txtq4WTggEA==} 953 | dependencies: 954 | '@types/estree': 1.0.5 955 | '@types/json-schema': 7.0.15 956 | dev: true 957 | 958 | /@types/estree@1.0.5: 959 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} 960 | dev: true 961 | 962 | /@types/json-schema@7.0.15: 963 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 964 | dev: true 965 | 966 | /@types/mdast@3.0.15: 967 | resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} 968 | dependencies: 969 | '@types/unist': 2.0.10 970 | dev: true 971 | 972 | /@types/node@20.12.7: 973 | resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} 974 | dependencies: 975 | undici-types: 5.26.5 976 | dev: true 977 | 978 | /@types/normalize-package-data@2.4.4: 979 | resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} 980 | dev: true 981 | 982 | /@types/semver@7.5.8: 983 | resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} 984 | dev: true 985 | 986 | /@types/unist@2.0.10: 987 | resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} 988 | dev: true 989 | 990 | /@typescript-eslint/eslint-plugin@7.6.0(@typescript-eslint/parser@7.6.0)(eslint@8.56.0)(typescript@5.4.4): 991 | resolution: {integrity: sha512-gKmTNwZnblUdnTIJu3e9kmeRRzV2j1a/LUO27KNNAnIC5zjy1aSvXSRp4rVNlmAoHlQ7HzX42NbKpcSr4jF80A==} 992 | engines: {node: ^18.18.0 || >=20.0.0} 993 | peerDependencies: 994 | '@typescript-eslint/parser': ^7.0.0 995 | eslint: ^8.56.0 996 | typescript: '*' 997 | peerDependenciesMeta: 998 | typescript: 999 | optional: true 1000 | dependencies: 1001 | '@eslint-community/regexpp': 4.10.0 1002 | '@typescript-eslint/parser': 7.6.0(eslint@8.56.0)(typescript@5.4.4) 1003 | '@typescript-eslint/scope-manager': 7.6.0 1004 | '@typescript-eslint/type-utils': 7.6.0(eslint@8.56.0)(typescript@5.4.4) 1005 | '@typescript-eslint/utils': 7.6.0(eslint@8.56.0)(typescript@5.4.4) 1006 | '@typescript-eslint/visitor-keys': 7.6.0 1007 | debug: 4.3.4 1008 | eslint: 8.56.0 1009 | graphemer: 1.4.0 1010 | ignore: 5.3.1 1011 | natural-compare: 1.4.0 1012 | semver: 7.6.0 1013 | ts-api-utils: 1.3.0(typescript@5.4.4) 1014 | typescript: 5.4.4 1015 | transitivePeerDependencies: 1016 | - supports-color 1017 | dev: true 1018 | 1019 | /@typescript-eslint/parser@7.6.0(eslint@8.56.0)(typescript@5.4.4): 1020 | resolution: {integrity: sha512-usPMPHcwX3ZoPWnBnhhorc14NJw9J4HpSXQX4urF2TPKG0au0XhJoZyX62fmvdHONUkmyUe74Hzm1//XA+BoYg==} 1021 | engines: {node: ^18.18.0 || >=20.0.0} 1022 | peerDependencies: 1023 | eslint: ^8.56.0 1024 | typescript: '*' 1025 | peerDependenciesMeta: 1026 | typescript: 1027 | optional: true 1028 | dependencies: 1029 | '@typescript-eslint/scope-manager': 7.6.0 1030 | '@typescript-eslint/types': 7.6.0 1031 | '@typescript-eslint/typescript-estree': 7.6.0(typescript@5.4.4) 1032 | '@typescript-eslint/visitor-keys': 7.6.0 1033 | debug: 4.3.4 1034 | eslint: 8.56.0 1035 | typescript: 5.4.4 1036 | transitivePeerDependencies: 1037 | - supports-color 1038 | dev: true 1039 | 1040 | /@typescript-eslint/scope-manager@6.21.0: 1041 | resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} 1042 | engines: {node: ^16.0.0 || >=18.0.0} 1043 | dependencies: 1044 | '@typescript-eslint/types': 6.21.0 1045 | '@typescript-eslint/visitor-keys': 6.21.0 1046 | dev: true 1047 | 1048 | /@typescript-eslint/scope-manager@7.6.0: 1049 | resolution: {integrity: sha512-ngttyfExA5PsHSx0rdFgnADMYQi+Zkeiv4/ZxGYUWd0nLs63Ha0ksmp8VMxAIC0wtCFxMos7Lt3PszJssG/E6w==} 1050 | engines: {node: ^18.18.0 || >=20.0.0} 1051 | dependencies: 1052 | '@typescript-eslint/types': 7.6.0 1053 | '@typescript-eslint/visitor-keys': 7.6.0 1054 | dev: true 1055 | 1056 | /@typescript-eslint/type-utils@7.6.0(eslint@8.56.0)(typescript@5.4.4): 1057 | resolution: {integrity: sha512-NxAfqAPNLG6LTmy7uZgpK8KcuiS2NZD/HlThPXQRGwz6u7MDBWRVliEEl1Gj6U7++kVJTpehkhZzCJLMK66Scw==} 1058 | engines: {node: ^18.18.0 || >=20.0.0} 1059 | peerDependencies: 1060 | eslint: ^8.56.0 1061 | typescript: '*' 1062 | peerDependenciesMeta: 1063 | typescript: 1064 | optional: true 1065 | dependencies: 1066 | '@typescript-eslint/typescript-estree': 7.6.0(typescript@5.4.4) 1067 | '@typescript-eslint/utils': 7.6.0(eslint@8.56.0)(typescript@5.4.4) 1068 | debug: 4.3.4 1069 | eslint: 8.56.0 1070 | ts-api-utils: 1.3.0(typescript@5.4.4) 1071 | typescript: 5.4.4 1072 | transitivePeerDependencies: 1073 | - supports-color 1074 | dev: true 1075 | 1076 | /@typescript-eslint/types@6.21.0: 1077 | resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} 1078 | engines: {node: ^16.0.0 || >=18.0.0} 1079 | dev: true 1080 | 1081 | /@typescript-eslint/types@7.6.0: 1082 | resolution: {integrity: sha512-h02rYQn8J+MureCvHVVzhl69/GAfQGPQZmOMjG1KfCl7o3HtMSlPaPUAPu6lLctXI5ySRGIYk94clD/AUMCUgQ==} 1083 | engines: {node: ^18.18.0 || >=20.0.0} 1084 | dev: true 1085 | 1086 | /@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.4): 1087 | resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} 1088 | engines: {node: ^16.0.0 || >=18.0.0} 1089 | peerDependencies: 1090 | typescript: '*' 1091 | peerDependenciesMeta: 1092 | typescript: 1093 | optional: true 1094 | dependencies: 1095 | '@typescript-eslint/types': 6.21.0 1096 | '@typescript-eslint/visitor-keys': 6.21.0 1097 | debug: 4.3.4 1098 | globby: 11.1.0 1099 | is-glob: 4.0.3 1100 | minimatch: 9.0.3 1101 | semver: 7.6.0 1102 | ts-api-utils: 1.3.0(typescript@5.4.4) 1103 | typescript: 5.4.4 1104 | transitivePeerDependencies: 1105 | - supports-color 1106 | dev: true 1107 | 1108 | /@typescript-eslint/typescript-estree@7.6.0(typescript@5.4.4): 1109 | resolution: {integrity: sha512-+7Y/GP9VuYibecrCQWSKgl3GvUM5cILRttpWtnAu8GNL9j11e4tbuGZmZjJ8ejnKYyBRb2ddGQ3rEFCq3QjMJw==} 1110 | engines: {node: ^18.18.0 || >=20.0.0} 1111 | peerDependencies: 1112 | typescript: '*' 1113 | peerDependenciesMeta: 1114 | typescript: 1115 | optional: true 1116 | dependencies: 1117 | '@typescript-eslint/types': 7.6.0 1118 | '@typescript-eslint/visitor-keys': 7.6.0 1119 | debug: 4.3.4 1120 | globby: 11.1.0 1121 | is-glob: 4.0.3 1122 | minimatch: 9.0.4 1123 | semver: 7.6.0 1124 | ts-api-utils: 1.3.0(typescript@5.4.4) 1125 | typescript: 5.4.4 1126 | transitivePeerDependencies: 1127 | - supports-color 1128 | dev: true 1129 | 1130 | /@typescript-eslint/utils@6.21.0(eslint@8.56.0)(typescript@5.4.4): 1131 | resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} 1132 | engines: {node: ^16.0.0 || >=18.0.0} 1133 | peerDependencies: 1134 | eslint: ^7.0.0 || ^8.0.0 1135 | dependencies: 1136 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) 1137 | '@types/json-schema': 7.0.15 1138 | '@types/semver': 7.5.8 1139 | '@typescript-eslint/scope-manager': 6.21.0 1140 | '@typescript-eslint/types': 6.21.0 1141 | '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.4) 1142 | eslint: 8.56.0 1143 | semver: 7.6.0 1144 | transitivePeerDependencies: 1145 | - supports-color 1146 | - typescript 1147 | dev: true 1148 | 1149 | /@typescript-eslint/utils@7.6.0(eslint@8.56.0)(typescript@5.4.4): 1150 | resolution: {integrity: sha512-x54gaSsRRI+Nwz59TXpCsr6harB98qjXYzsRxGqvA5Ue3kQH+FxS7FYU81g/omn22ML2pZJkisy6Q+ElK8pBCA==} 1151 | engines: {node: ^18.18.0 || >=20.0.0} 1152 | peerDependencies: 1153 | eslint: ^8.56.0 1154 | dependencies: 1155 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) 1156 | '@types/json-schema': 7.0.15 1157 | '@types/semver': 7.5.8 1158 | '@typescript-eslint/scope-manager': 7.6.0 1159 | '@typescript-eslint/types': 7.6.0 1160 | '@typescript-eslint/typescript-estree': 7.6.0(typescript@5.4.4) 1161 | eslint: 8.56.0 1162 | semver: 7.6.0 1163 | transitivePeerDependencies: 1164 | - supports-color 1165 | - typescript 1166 | dev: true 1167 | 1168 | /@typescript-eslint/visitor-keys@6.21.0: 1169 | resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} 1170 | engines: {node: ^16.0.0 || >=18.0.0} 1171 | dependencies: 1172 | '@typescript-eslint/types': 6.21.0 1173 | eslint-visitor-keys: 3.4.3 1174 | dev: true 1175 | 1176 | /@typescript-eslint/visitor-keys@7.6.0: 1177 | resolution: {integrity: sha512-4eLB7t+LlNUmXzfOu1VAIAdkjbu5xNSerURS9X/S5TUKWFRpXRQZbmtPqgKmYx8bj3J0irtQXSiWAOY82v+cgw==} 1178 | engines: {node: ^18.18.0 || >=20.0.0} 1179 | dependencies: 1180 | '@typescript-eslint/types': 7.6.0 1181 | eslint-visitor-keys: 3.4.3 1182 | dev: true 1183 | 1184 | /@ungap/structured-clone@1.2.0: 1185 | resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} 1186 | dev: true 1187 | 1188 | /@vitest/expect@1.4.0: 1189 | resolution: {integrity: sha512-Jths0sWCJZ8BxjKe+p+eKsoqev1/T8lYcrjavEaz8auEJ4jAVY0GwW3JKmdVU4mmNPLPHixh4GNXP7GFtAiDHA==} 1190 | dependencies: 1191 | '@vitest/spy': 1.4.0 1192 | '@vitest/utils': 1.4.0 1193 | chai: 4.4.1 1194 | dev: true 1195 | 1196 | /@vitest/runner@1.4.0: 1197 | resolution: {integrity: sha512-EDYVSmesqlQ4RD2VvWo3hQgTJ7ZrFQ2VSJdfiJiArkCerDAGeyF1i6dHkmySqk573jLp6d/cfqCN+7wUB5tLgg==} 1198 | dependencies: 1199 | '@vitest/utils': 1.4.0 1200 | p-limit: 5.0.0 1201 | pathe: 1.1.2 1202 | dev: true 1203 | 1204 | /@vitest/snapshot@1.4.0: 1205 | resolution: {integrity: sha512-saAFnt5pPIA5qDGxOHxJ/XxhMFKkUSBJmVt5VgDsAqPTX6JP326r5C/c9UuCMPoXNzuudTPsYDZCoJ5ilpqG2A==} 1206 | dependencies: 1207 | magic-string: 0.30.9 1208 | pathe: 1.1.2 1209 | pretty-format: 29.7.0 1210 | dev: true 1211 | 1212 | /@vitest/spy@1.4.0: 1213 | resolution: {integrity: sha512-Ywau/Qs1DzM/8Uc+yA77CwSegizMlcgTJuYGAi0jujOteJOUf1ujunHThYo243KG9nAyWT3L9ifPYZ5+As/+6Q==} 1214 | dependencies: 1215 | tinyspy: 2.2.1 1216 | dev: true 1217 | 1218 | /@vitest/utils@1.4.0: 1219 | resolution: {integrity: sha512-mx3Yd1/6e2Vt/PUC98DcqTirtfxUyAZ32uK82r8rZzbtBeBo+nqgnjx/LvqQdWsrvNtm14VmurNgcf4nqY5gJg==} 1220 | dependencies: 1221 | diff-sequences: 29.6.3 1222 | estree-walker: 3.0.3 1223 | loupe: 2.3.7 1224 | pretty-format: 29.7.0 1225 | dev: true 1226 | 1227 | /@vue/compiler-core@3.4.21: 1228 | resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==} 1229 | dependencies: 1230 | '@babel/parser': 7.24.4 1231 | '@vue/shared': 3.4.21 1232 | entities: 4.5.0 1233 | estree-walker: 2.0.2 1234 | source-map-js: 1.2.0 1235 | dev: true 1236 | 1237 | /@vue/compiler-dom@3.4.21: 1238 | resolution: {integrity: sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==} 1239 | dependencies: 1240 | '@vue/compiler-core': 3.4.21 1241 | '@vue/shared': 3.4.21 1242 | dev: true 1243 | 1244 | /@vue/compiler-sfc@3.4.21: 1245 | resolution: {integrity: sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==} 1246 | dependencies: 1247 | '@babel/parser': 7.24.4 1248 | '@vue/compiler-core': 3.4.21 1249 | '@vue/compiler-dom': 3.4.21 1250 | '@vue/compiler-ssr': 3.4.21 1251 | '@vue/shared': 3.4.21 1252 | estree-walker: 2.0.2 1253 | magic-string: 0.30.9 1254 | postcss: 8.4.38 1255 | source-map-js: 1.2.0 1256 | dev: true 1257 | 1258 | /@vue/compiler-ssr@3.4.21: 1259 | resolution: {integrity: sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==} 1260 | dependencies: 1261 | '@vue/compiler-dom': 3.4.21 1262 | '@vue/shared': 3.4.21 1263 | dev: true 1264 | 1265 | /@vue/shared@3.4.21: 1266 | resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==} 1267 | dev: true 1268 | 1269 | /acorn-jsx@5.3.2(acorn@8.11.3): 1270 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 1271 | peerDependencies: 1272 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 1273 | dependencies: 1274 | acorn: 8.11.3 1275 | dev: true 1276 | 1277 | /acorn-walk@8.3.2: 1278 | resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} 1279 | engines: {node: '>=0.4.0'} 1280 | dev: true 1281 | 1282 | /acorn@8.11.3: 1283 | resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} 1284 | engines: {node: '>=0.4.0'} 1285 | hasBin: true 1286 | dev: true 1287 | 1288 | /ajv@6.12.6: 1289 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 1290 | dependencies: 1291 | fast-deep-equal: 3.1.3 1292 | fast-json-stable-stringify: 2.1.0 1293 | json-schema-traverse: 0.4.1 1294 | uri-js: 4.4.1 1295 | dev: true 1296 | 1297 | /ansi-escapes@6.2.1: 1298 | resolution: {integrity: sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==} 1299 | engines: {node: '>=14.16'} 1300 | dev: true 1301 | 1302 | /ansi-regex@5.0.1: 1303 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 1304 | engines: {node: '>=8'} 1305 | dev: true 1306 | 1307 | /ansi-regex@6.0.1: 1308 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 1309 | engines: {node: '>=12'} 1310 | dev: true 1311 | 1312 | /ansi-styles@3.2.1: 1313 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 1314 | engines: {node: '>=4'} 1315 | dependencies: 1316 | color-convert: 1.9.3 1317 | dev: true 1318 | 1319 | /ansi-styles@4.3.0: 1320 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 1321 | engines: {node: '>=8'} 1322 | dependencies: 1323 | color-convert: 2.0.1 1324 | dev: true 1325 | 1326 | /ansi-styles@5.2.0: 1327 | resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} 1328 | engines: {node: '>=10'} 1329 | dev: true 1330 | 1331 | /ansi-styles@6.2.1: 1332 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 1333 | engines: {node: '>=12'} 1334 | dev: true 1335 | 1336 | /any-promise@1.3.0: 1337 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 1338 | dev: true 1339 | 1340 | /anymatch@3.1.3: 1341 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 1342 | engines: {node: '>= 8'} 1343 | dependencies: 1344 | normalize-path: 3.0.0 1345 | picomatch: 2.3.1 1346 | dev: true 1347 | 1348 | /are-docs-informative@0.0.2: 1349 | resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} 1350 | engines: {node: '>=14'} 1351 | dev: true 1352 | 1353 | /argparse@2.0.1: 1354 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 1355 | dev: true 1356 | 1357 | /array-union@2.1.0: 1358 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 1359 | engines: {node: '>=8'} 1360 | dev: true 1361 | 1362 | /assertion-error@1.1.0: 1363 | resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} 1364 | dev: true 1365 | 1366 | /balanced-match@1.0.2: 1367 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 1368 | dev: true 1369 | 1370 | /binary-extensions@2.3.0: 1371 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 1372 | engines: {node: '>=8'} 1373 | dev: true 1374 | 1375 | /boolbase@1.0.0: 1376 | resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} 1377 | dev: true 1378 | 1379 | /brace-expansion@1.1.11: 1380 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 1381 | dependencies: 1382 | balanced-match: 1.0.2 1383 | concat-map: 0.0.1 1384 | dev: true 1385 | 1386 | /brace-expansion@2.0.1: 1387 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 1388 | dependencies: 1389 | balanced-match: 1.0.2 1390 | dev: true 1391 | 1392 | /braces@3.0.2: 1393 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 1394 | engines: {node: '>=8'} 1395 | dependencies: 1396 | fill-range: 7.0.1 1397 | dev: true 1398 | 1399 | /browserslist@4.23.0: 1400 | resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} 1401 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 1402 | hasBin: true 1403 | dependencies: 1404 | caniuse-lite: 1.0.30001608 1405 | electron-to-chromium: 1.4.731 1406 | node-releases: 2.0.14 1407 | update-browserslist-db: 1.0.13(browserslist@4.23.0) 1408 | dev: true 1409 | 1410 | /builtin-modules@3.3.0: 1411 | resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} 1412 | engines: {node: '>=6'} 1413 | dev: true 1414 | 1415 | /bundle-require@4.0.2(esbuild@0.19.12): 1416 | resolution: {integrity: sha512-jwzPOChofl67PSTW2SGubV9HBQAhhR2i6nskiOThauo9dzwDUgOWQScFVaJkjEfYX+UXiD+LEx8EblQMc2wIag==} 1417 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1418 | peerDependencies: 1419 | esbuild: '>=0.17' 1420 | dependencies: 1421 | esbuild: 0.19.12 1422 | load-tsconfig: 0.2.5 1423 | dev: true 1424 | 1425 | /cac@6.7.14: 1426 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 1427 | engines: {node: '>=8'} 1428 | dev: true 1429 | 1430 | /callsites@3.1.0: 1431 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 1432 | engines: {node: '>=6'} 1433 | dev: true 1434 | 1435 | /caniuse-lite@1.0.30001608: 1436 | resolution: {integrity: sha512-cjUJTQkk9fQlJR2s4HMuPMvTiRggl0rAVMtthQuyOlDWuqHXqN8azLq+pi8B2TjwKJ32diHjUqRIKeFX4z1FoA==} 1437 | dev: true 1438 | 1439 | /chai@4.4.1: 1440 | resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} 1441 | engines: {node: '>=4'} 1442 | dependencies: 1443 | assertion-error: 1.1.0 1444 | check-error: 1.0.3 1445 | deep-eql: 4.1.3 1446 | get-func-name: 2.0.2 1447 | loupe: 2.3.7 1448 | pathval: 1.1.1 1449 | type-detect: 4.0.8 1450 | dev: true 1451 | 1452 | /chalk@2.4.2: 1453 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 1454 | engines: {node: '>=4'} 1455 | dependencies: 1456 | ansi-styles: 3.2.1 1457 | escape-string-regexp: 1.0.5 1458 | supports-color: 5.5.0 1459 | dev: true 1460 | 1461 | /chalk@4.1.2: 1462 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 1463 | engines: {node: '>=10'} 1464 | dependencies: 1465 | ansi-styles: 4.3.0 1466 | supports-color: 7.2.0 1467 | dev: true 1468 | 1469 | /chalk@5.3.0: 1470 | resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} 1471 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 1472 | dev: true 1473 | 1474 | /character-entities-legacy@1.1.4: 1475 | resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} 1476 | dev: true 1477 | 1478 | /character-entities@1.2.4: 1479 | resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} 1480 | dev: true 1481 | 1482 | /character-reference-invalid@1.1.4: 1483 | resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} 1484 | dev: true 1485 | 1486 | /check-error@1.0.3: 1487 | resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} 1488 | dependencies: 1489 | get-func-name: 2.0.2 1490 | dev: true 1491 | 1492 | /chokidar@3.6.0: 1493 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 1494 | engines: {node: '>= 8.10.0'} 1495 | dependencies: 1496 | anymatch: 3.1.3 1497 | braces: 3.0.2 1498 | glob-parent: 5.1.2 1499 | is-binary-path: 2.1.0 1500 | is-glob: 4.0.3 1501 | normalize-path: 3.0.0 1502 | readdirp: 3.6.0 1503 | optionalDependencies: 1504 | fsevents: 2.3.3 1505 | dev: true 1506 | 1507 | /ci-info@4.0.0: 1508 | resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} 1509 | engines: {node: '>=8'} 1510 | dev: true 1511 | 1512 | /clean-regexp@1.0.0: 1513 | resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} 1514 | engines: {node: '>=4'} 1515 | dependencies: 1516 | escape-string-regexp: 1.0.5 1517 | dev: true 1518 | 1519 | /cli-cursor@4.0.0: 1520 | resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} 1521 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1522 | dependencies: 1523 | restore-cursor: 4.0.0 1524 | dev: true 1525 | 1526 | /cli-truncate@4.0.0: 1527 | resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} 1528 | engines: {node: '>=18'} 1529 | dependencies: 1530 | slice-ansi: 5.0.0 1531 | string-width: 7.1.0 1532 | dev: true 1533 | 1534 | /cliui@8.0.1: 1535 | resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} 1536 | engines: {node: '>=12'} 1537 | dependencies: 1538 | string-width: 4.2.3 1539 | strip-ansi: 6.0.1 1540 | wrap-ansi: 7.0.0 1541 | dev: true 1542 | 1543 | /color-convert@1.9.3: 1544 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 1545 | dependencies: 1546 | color-name: 1.1.3 1547 | dev: true 1548 | 1549 | /color-convert@2.0.1: 1550 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 1551 | engines: {node: '>=7.0.0'} 1552 | dependencies: 1553 | color-name: 1.1.4 1554 | dev: true 1555 | 1556 | /color-name@1.1.3: 1557 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 1558 | dev: true 1559 | 1560 | /color-name@1.1.4: 1561 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 1562 | dev: true 1563 | 1564 | /colorette@2.0.20: 1565 | resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} 1566 | dev: true 1567 | 1568 | /commander@11.1.0: 1569 | resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} 1570 | engines: {node: '>=16'} 1571 | dev: true 1572 | 1573 | /commander@4.1.1: 1574 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 1575 | engines: {node: '>= 6'} 1576 | dev: true 1577 | 1578 | /comment-parser@1.4.1: 1579 | resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} 1580 | engines: {node: '>= 12.0.0'} 1581 | dev: true 1582 | 1583 | /concat-map@0.0.1: 1584 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 1585 | dev: true 1586 | 1587 | /core-js-compat@3.36.1: 1588 | resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} 1589 | dependencies: 1590 | browserslist: 4.23.0 1591 | dev: true 1592 | 1593 | /cross-spawn@7.0.3: 1594 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 1595 | engines: {node: '>= 8'} 1596 | dependencies: 1597 | path-key: 3.1.1 1598 | shebang-command: 2.0.0 1599 | which: 2.0.2 1600 | dev: true 1601 | 1602 | /cssesc@3.0.0: 1603 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 1604 | engines: {node: '>=4'} 1605 | hasBin: true 1606 | dev: true 1607 | 1608 | /debug@3.2.7: 1609 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 1610 | peerDependencies: 1611 | supports-color: '*' 1612 | peerDependenciesMeta: 1613 | supports-color: 1614 | optional: true 1615 | dependencies: 1616 | ms: 2.1.3 1617 | dev: true 1618 | 1619 | /debug@4.3.4: 1620 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 1621 | engines: {node: '>=6.0'} 1622 | peerDependencies: 1623 | supports-color: '*' 1624 | peerDependenciesMeta: 1625 | supports-color: 1626 | optional: true 1627 | dependencies: 1628 | ms: 2.1.2 1629 | dev: true 1630 | 1631 | /deep-eql@4.1.3: 1632 | resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} 1633 | engines: {node: '>=6'} 1634 | dependencies: 1635 | type-detect: 4.0.8 1636 | dev: true 1637 | 1638 | /deep-is@0.1.4: 1639 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 1640 | dev: true 1641 | 1642 | /diff-sequences@29.6.3: 1643 | resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} 1644 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1645 | dev: true 1646 | 1647 | /dir-glob@3.0.1: 1648 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 1649 | engines: {node: '>=8'} 1650 | dependencies: 1651 | path-type: 4.0.0 1652 | dev: true 1653 | 1654 | /doctrine@3.0.0: 1655 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 1656 | engines: {node: '>=6.0.0'} 1657 | dependencies: 1658 | esutils: 2.0.3 1659 | dev: true 1660 | 1661 | /eastasianwidth@0.2.0: 1662 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 1663 | dev: true 1664 | 1665 | /electron-to-chromium@1.4.731: 1666 | resolution: {integrity: sha512-+TqVfZjpRz2V/5SPpmJxq9qK620SC5SqCnxQIOi7i/U08ZDcTpKbT7Xjj9FU5CbXTMUb4fywbIr8C7cGv4hcjw==} 1667 | dev: true 1668 | 1669 | /emoji-regex@10.3.0: 1670 | resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} 1671 | dev: true 1672 | 1673 | /emoji-regex@8.0.0: 1674 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1675 | dev: true 1676 | 1677 | /emoji-regex@9.2.2: 1678 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 1679 | dev: true 1680 | 1681 | /enhanced-resolve@5.16.0: 1682 | resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} 1683 | engines: {node: '>=10.13.0'} 1684 | dependencies: 1685 | graceful-fs: 4.2.11 1686 | tapable: 2.2.1 1687 | dev: true 1688 | 1689 | /entities@4.5.0: 1690 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 1691 | engines: {node: '>=0.12'} 1692 | dev: true 1693 | 1694 | /error-ex@1.3.2: 1695 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 1696 | dependencies: 1697 | is-arrayish: 0.2.1 1698 | dev: true 1699 | 1700 | /esbuild@0.19.12: 1701 | resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} 1702 | engines: {node: '>=12'} 1703 | hasBin: true 1704 | requiresBuild: true 1705 | optionalDependencies: 1706 | '@esbuild/aix-ppc64': 0.19.12 1707 | '@esbuild/android-arm': 0.19.12 1708 | '@esbuild/android-arm64': 0.19.12 1709 | '@esbuild/android-x64': 0.19.12 1710 | '@esbuild/darwin-arm64': 0.19.12 1711 | '@esbuild/darwin-x64': 0.19.12 1712 | '@esbuild/freebsd-arm64': 0.19.12 1713 | '@esbuild/freebsd-x64': 0.19.12 1714 | '@esbuild/linux-arm': 0.19.12 1715 | '@esbuild/linux-arm64': 0.19.12 1716 | '@esbuild/linux-ia32': 0.19.12 1717 | '@esbuild/linux-loong64': 0.19.12 1718 | '@esbuild/linux-mips64el': 0.19.12 1719 | '@esbuild/linux-ppc64': 0.19.12 1720 | '@esbuild/linux-riscv64': 0.19.12 1721 | '@esbuild/linux-s390x': 0.19.12 1722 | '@esbuild/linux-x64': 0.19.12 1723 | '@esbuild/netbsd-x64': 0.19.12 1724 | '@esbuild/openbsd-x64': 0.19.12 1725 | '@esbuild/sunos-x64': 0.19.12 1726 | '@esbuild/win32-arm64': 0.19.12 1727 | '@esbuild/win32-ia32': 0.19.12 1728 | '@esbuild/win32-x64': 0.19.12 1729 | dev: true 1730 | 1731 | /esbuild@0.20.2: 1732 | resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} 1733 | engines: {node: '>=12'} 1734 | hasBin: true 1735 | requiresBuild: true 1736 | optionalDependencies: 1737 | '@esbuild/aix-ppc64': 0.20.2 1738 | '@esbuild/android-arm': 0.20.2 1739 | '@esbuild/android-arm64': 0.20.2 1740 | '@esbuild/android-x64': 0.20.2 1741 | '@esbuild/darwin-arm64': 0.20.2 1742 | '@esbuild/darwin-x64': 0.20.2 1743 | '@esbuild/freebsd-arm64': 0.20.2 1744 | '@esbuild/freebsd-x64': 0.20.2 1745 | '@esbuild/linux-arm': 0.20.2 1746 | '@esbuild/linux-arm64': 0.20.2 1747 | '@esbuild/linux-ia32': 0.20.2 1748 | '@esbuild/linux-loong64': 0.20.2 1749 | '@esbuild/linux-mips64el': 0.20.2 1750 | '@esbuild/linux-ppc64': 0.20.2 1751 | '@esbuild/linux-riscv64': 0.20.2 1752 | '@esbuild/linux-s390x': 0.20.2 1753 | '@esbuild/linux-x64': 0.20.2 1754 | '@esbuild/netbsd-x64': 0.20.2 1755 | '@esbuild/openbsd-x64': 0.20.2 1756 | '@esbuild/sunos-x64': 0.20.2 1757 | '@esbuild/win32-arm64': 0.20.2 1758 | '@esbuild/win32-ia32': 0.20.2 1759 | '@esbuild/win32-x64': 0.20.2 1760 | dev: true 1761 | 1762 | /escalade@3.1.2: 1763 | resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} 1764 | engines: {node: '>=6'} 1765 | dev: true 1766 | 1767 | /escape-string-regexp@1.0.5: 1768 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 1769 | engines: {node: '>=0.8.0'} 1770 | dev: true 1771 | 1772 | /escape-string-regexp@4.0.0: 1773 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1774 | engines: {node: '>=10'} 1775 | dev: true 1776 | 1777 | /eslint-compat-utils@0.5.0(eslint@8.56.0): 1778 | resolution: {integrity: sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==} 1779 | engines: {node: '>=12'} 1780 | peerDependencies: 1781 | eslint: '>=6.0.0' 1782 | dependencies: 1783 | eslint: 8.56.0 1784 | semver: 7.6.0 1785 | dev: true 1786 | 1787 | /eslint-config-flat-gitignore@0.1.5: 1788 | resolution: {integrity: sha512-hEZLwuZjDBGDERA49c2q7vxc8sCGv8EdBp6PQYzGOMcHIgrfG9YOM6s/4jx24zhD+wnK9AI8mgN5RxSss5nClQ==} 1789 | dependencies: 1790 | find-up: 7.0.0 1791 | parse-gitignore: 2.0.0 1792 | dev: true 1793 | 1794 | /eslint-flat-config-utils@0.2.1: 1795 | resolution: {integrity: sha512-SKnSr4YdPD7xxynNpaad/IlJYfeDmtWvZ0UEmHEA0+eTOcZFPt1075KO87LIWN30jXGCREG2qcCqdAnRoCiAWQ==} 1796 | dependencies: 1797 | '@types/eslint': 8.56.7 1798 | pathe: 1.1.2 1799 | dev: true 1800 | 1801 | /eslint-import-resolver-node@0.3.9: 1802 | resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} 1803 | dependencies: 1804 | debug: 3.2.7 1805 | is-core-module: 2.13.1 1806 | resolve: 1.22.8 1807 | transitivePeerDependencies: 1808 | - supports-color 1809 | dev: true 1810 | 1811 | /eslint-merge-processors@0.1.0(eslint@8.56.0): 1812 | resolution: {integrity: sha512-IvRXXtEajLeyssvW4wJcZ2etxkR9mUf4zpNwgI+m/Uac9RfXHskuJefkHUcawVzePnd6xp24enp5jfgdHzjRdQ==} 1813 | peerDependencies: 1814 | eslint: '*' 1815 | dependencies: 1816 | eslint: 8.56.0 1817 | dev: true 1818 | 1819 | /eslint-plugin-antfu@2.1.2(eslint@8.56.0): 1820 | resolution: {integrity: sha512-s7ZTOM3uq0iqpp6gF0UEotnvup7f2PHBUftCytLZX0+6C9j9KadKZQh6bVVngAyFgsmeD9+gcBopOYLClb2oDg==} 1821 | peerDependencies: 1822 | eslint: '*' 1823 | dependencies: 1824 | eslint: 8.56.0 1825 | dev: true 1826 | 1827 | /eslint-plugin-es-x@7.6.0(eslint@8.56.0): 1828 | resolution: {integrity: sha512-I0AmeNgevgaTR7y2lrVCJmGYF0rjoznpDvqV/kIkZSZbZ8Rw3eu4cGlvBBULScfkSOCzqKbff5LR4CNrV7mZHA==} 1829 | engines: {node: ^14.18.0 || >=16.0.0} 1830 | peerDependencies: 1831 | eslint: '>=8' 1832 | dependencies: 1833 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) 1834 | '@eslint-community/regexpp': 4.10.0 1835 | eslint: 8.56.0 1836 | eslint-compat-utils: 0.5.0(eslint@8.56.0) 1837 | dev: true 1838 | 1839 | /eslint-plugin-eslint-comments@3.2.0(eslint@8.56.0): 1840 | resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} 1841 | engines: {node: '>=6.5.0'} 1842 | peerDependencies: 1843 | eslint: '>=4.19.1' 1844 | dependencies: 1845 | escape-string-regexp: 1.0.5 1846 | eslint: 8.56.0 1847 | ignore: 5.3.1 1848 | dev: true 1849 | 1850 | /eslint-plugin-import-x@0.5.0(eslint@8.56.0)(typescript@5.4.4): 1851 | resolution: {integrity: sha512-C7R8Z4IzxmsoOPMtSzwuOBW5FH6iRlxHR6iTks+MzVlrk3r3TUxokkWTx3ypdj9nGOEP+CG/5e6ebZzHbxgbbQ==} 1852 | engines: {node: '>=16'} 1853 | peerDependencies: 1854 | eslint: ^8.56.0 || ^9.0.0-0 1855 | dependencies: 1856 | '@typescript-eslint/utils': 7.6.0(eslint@8.56.0)(typescript@5.4.4) 1857 | debug: 4.3.4 1858 | doctrine: 3.0.0 1859 | eslint: 8.56.0 1860 | eslint-import-resolver-node: 0.3.9 1861 | get-tsconfig: 4.7.3 1862 | is-glob: 4.0.3 1863 | minimatch: 9.0.4 1864 | semver: 7.6.0 1865 | transitivePeerDependencies: 1866 | - supports-color 1867 | - typescript 1868 | dev: true 1869 | 1870 | /eslint-plugin-jsdoc@48.2.3(eslint@8.56.0): 1871 | resolution: {integrity: sha512-r9DMAmFs66VNvNqRLLjHejdnJtILrt3xGi+Qx0op0oRfFGVpOR1Hb3BC++MacseHx93d8SKYPhyrC9BS7Os2QA==} 1872 | engines: {node: '>=18'} 1873 | peerDependencies: 1874 | eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 1875 | dependencies: 1876 | '@es-joy/jsdoccomment': 0.42.0 1877 | are-docs-informative: 0.0.2 1878 | comment-parser: 1.4.1 1879 | debug: 4.3.4 1880 | escape-string-regexp: 4.0.0 1881 | eslint: 8.56.0 1882 | esquery: 1.5.0 1883 | is-builtin-module: 3.2.1 1884 | semver: 7.6.0 1885 | spdx-expression-parse: 4.0.0 1886 | transitivePeerDependencies: 1887 | - supports-color 1888 | dev: true 1889 | 1890 | /eslint-plugin-jsonc@2.15.0(eslint@8.56.0): 1891 | resolution: {integrity: sha512-wAphMVgTQPAKAYV8d/QEkEYDg8uer9nMQ85N17IUiJcAWLxJs83/Exe59dEH9yKUpvpLf46H+wR7/U7lZ3/NpQ==} 1892 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1893 | peerDependencies: 1894 | eslint: '>=6.0.0' 1895 | dependencies: 1896 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) 1897 | eslint: 8.56.0 1898 | eslint-compat-utils: 0.5.0(eslint@8.56.0) 1899 | espree: 9.6.1 1900 | graphemer: 1.4.0 1901 | jsonc-eslint-parser: 2.4.0 1902 | natural-compare: 1.4.0 1903 | synckit: 0.6.2 1904 | dev: true 1905 | 1906 | /eslint-plugin-markdown@4.0.1(eslint@8.56.0): 1907 | resolution: {integrity: sha512-5/MnGvYU0i8MbHH5cg8S+Vl3DL+bqRNYshk1xUO86DilNBaxtTkhH+5FD0/yO03AmlI6+lfNFdk2yOw72EPzpA==} 1908 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1909 | peerDependencies: 1910 | eslint: '>=8' 1911 | dependencies: 1912 | eslint: 8.56.0 1913 | mdast-util-from-markdown: 0.8.5 1914 | transitivePeerDependencies: 1915 | - supports-color 1916 | dev: true 1917 | 1918 | /eslint-plugin-n@17.1.0(eslint@8.56.0): 1919 | resolution: {integrity: sha512-+MTiTej3B07+8vS/RfSMD1w4O9VVR9BSJT9kSa9QUsBlXzKi5PZc+lB3w+iu/2eIS3drFU7zCikSrD8Yn8PEBQ==} 1920 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1921 | peerDependencies: 1922 | eslint: '>=8.23.0' 1923 | dependencies: 1924 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) 1925 | enhanced-resolve: 5.16.0 1926 | eslint: 8.56.0 1927 | eslint-plugin-es-x: 7.6.0(eslint@8.56.0) 1928 | get-tsconfig: 4.7.3 1929 | globals: 14.0.0 1930 | ignore: 5.3.1 1931 | minimatch: 9.0.4 1932 | semver: 7.6.0 1933 | dev: true 1934 | 1935 | /eslint-plugin-no-only-tests@3.1.0: 1936 | resolution: {integrity: sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==} 1937 | engines: {node: '>=5.0.0'} 1938 | dev: true 1939 | 1940 | /eslint-plugin-perfectionist@2.8.0(eslint@8.56.0)(typescript@5.4.4)(vue-eslint-parser@9.4.2): 1941 | resolution: {integrity: sha512-XBjQ4ctU1rOzQ4bFJoUowe8XdsIIz42JqNrouFlae1TO78HjoyYBaRP8+gAHDDQCSdHY10pbChyzlJeBA6D51w==} 1942 | peerDependencies: 1943 | astro-eslint-parser: ^0.16.0 1944 | eslint: '>=8.0.0' 1945 | svelte: '>=3.0.0' 1946 | svelte-eslint-parser: ^0.33.0 1947 | vue-eslint-parser: '>=9.0.0' 1948 | peerDependenciesMeta: 1949 | astro-eslint-parser: 1950 | optional: true 1951 | svelte: 1952 | optional: true 1953 | svelte-eslint-parser: 1954 | optional: true 1955 | vue-eslint-parser: 1956 | optional: true 1957 | dependencies: 1958 | '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.4.4) 1959 | eslint: 8.56.0 1960 | minimatch: 9.0.4 1961 | natural-compare-lite: 1.4.0 1962 | vue-eslint-parser: 9.4.2(eslint@8.56.0) 1963 | transitivePeerDependencies: 1964 | - supports-color 1965 | - typescript 1966 | dev: true 1967 | 1968 | /eslint-plugin-toml@0.11.0(eslint@8.56.0): 1969 | resolution: {integrity: sha512-sau+YvPU4fWTjB+qtBt3n8WS87aoDCs+BVbSUAemGaIsRNbvR9uEk+Tt892iLHTGvp/DPWYoCX4/8DoyAbB+sQ==} 1970 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1971 | peerDependencies: 1972 | eslint: '>=6.0.0' 1973 | dependencies: 1974 | debug: 4.3.4 1975 | eslint: 8.56.0 1976 | eslint-compat-utils: 0.5.0(eslint@8.56.0) 1977 | lodash: 4.17.21 1978 | toml-eslint-parser: 0.9.3 1979 | transitivePeerDependencies: 1980 | - supports-color 1981 | dev: true 1982 | 1983 | /eslint-plugin-unicorn@52.0.0(eslint@8.56.0): 1984 | resolution: {integrity: sha512-1Yzm7/m+0R4djH0tjDjfVei/ju2w3AzUGjG6q8JnuNIL5xIwsflyCooW5sfBvQp2pMYQFSWWCFONsjCax1EHng==} 1985 | engines: {node: '>=16'} 1986 | peerDependencies: 1987 | eslint: '>=8.56.0' 1988 | dependencies: 1989 | '@babel/helper-validator-identifier': 7.22.20 1990 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) 1991 | '@eslint/eslintrc': 2.1.4 1992 | ci-info: 4.0.0 1993 | clean-regexp: 1.0.0 1994 | core-js-compat: 3.36.1 1995 | eslint: 8.56.0 1996 | esquery: 1.5.0 1997 | indent-string: 4.0.0 1998 | is-builtin-module: 3.2.1 1999 | jsesc: 3.0.2 2000 | pluralize: 8.0.0 2001 | read-pkg-up: 7.0.1 2002 | regexp-tree: 0.1.27 2003 | regjsparser: 0.10.0 2004 | semver: 7.6.0 2005 | strip-indent: 3.0.0 2006 | transitivePeerDependencies: 2007 | - supports-color 2008 | dev: true 2009 | 2010 | /eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.6.0)(eslint@8.56.0): 2011 | resolution: {integrity: sha512-9l1YFCzXKkw1qtAru1RWUtG2EVDZY0a0eChKXcL+EZ5jitG7qxdctu4RnvhOJHv4xfmUf7h+JJPINlVpGhZMrw==} 2012 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2013 | peerDependencies: 2014 | '@typescript-eslint/eslint-plugin': 6 - 7 2015 | eslint: '8' 2016 | peerDependenciesMeta: 2017 | '@typescript-eslint/eslint-plugin': 2018 | optional: true 2019 | dependencies: 2020 | '@typescript-eslint/eslint-plugin': 7.6.0(@typescript-eslint/parser@7.6.0)(eslint@8.56.0)(typescript@5.4.4) 2021 | eslint: 8.56.0 2022 | eslint-rule-composer: 0.3.0 2023 | dev: true 2024 | 2025 | /eslint-plugin-vitest@0.5.1(@typescript-eslint/eslint-plugin@7.6.0)(eslint@8.56.0)(typescript@5.4.4)(vitest@1.4.0): 2026 | resolution: {integrity: sha512-g137wC+LCq2N+tfqK39Nl6Rs2N9u+zu6lWxaVgpN3wX+Kq6zSyxjPSI/ZBXUjP+qandT3z1DM5wK5IjD4XrAIw==} 2027 | engines: {node: ^18.0.0 || >= 20.0.0} 2028 | peerDependencies: 2029 | '@typescript-eslint/eslint-plugin': '*' 2030 | eslint: ^8.57.0 || ^9.0.0 2031 | vitest: '*' 2032 | peerDependenciesMeta: 2033 | '@typescript-eslint/eslint-plugin': 2034 | optional: true 2035 | vitest: 2036 | optional: true 2037 | dependencies: 2038 | '@typescript-eslint/eslint-plugin': 7.6.0(@typescript-eslint/parser@7.6.0)(eslint@8.56.0)(typescript@5.4.4) 2039 | '@typescript-eslint/utils': 7.6.0(eslint@8.56.0)(typescript@5.4.4) 2040 | eslint: 8.56.0 2041 | vitest: 1.4.0(@types/node@20.12.7) 2042 | transitivePeerDependencies: 2043 | - supports-color 2044 | - typescript 2045 | dev: true 2046 | 2047 | /eslint-plugin-vue@9.24.1(eslint@8.56.0): 2048 | resolution: {integrity: sha512-wk3SuwmS1pZdcuJlokGYEi/buDOwD6KltvhIZyOnpJ/378dcQ4zchu9PAMbbLAaydCz1iYc5AozszcOOgZIIOg==} 2049 | engines: {node: ^14.17.0 || >=16.0.0} 2050 | peerDependencies: 2051 | eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 2052 | dependencies: 2053 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) 2054 | eslint: 8.56.0 2055 | globals: 13.24.0 2056 | natural-compare: 1.4.0 2057 | nth-check: 2.1.1 2058 | postcss-selector-parser: 6.0.16 2059 | semver: 7.6.0 2060 | vue-eslint-parser: 9.4.2(eslint@8.56.0) 2061 | xml-name-validator: 4.0.0 2062 | transitivePeerDependencies: 2063 | - supports-color 2064 | dev: true 2065 | 2066 | /eslint-plugin-yml@1.14.0(eslint@8.56.0): 2067 | resolution: {integrity: sha512-ESUpgYPOcAYQO9czugcX5OqRvn/ydDVwGCPXY4YjPqc09rHaUVUA6IE6HLQys4rXk/S+qx3EwTd1wHCwam/OWQ==} 2068 | engines: {node: ^14.17.0 || >=16.0.0} 2069 | peerDependencies: 2070 | eslint: '>=6.0.0' 2071 | dependencies: 2072 | debug: 4.3.4 2073 | eslint: 8.56.0 2074 | eslint-compat-utils: 0.5.0(eslint@8.56.0) 2075 | lodash: 4.17.21 2076 | natural-compare: 1.4.0 2077 | yaml-eslint-parser: 1.2.2 2078 | transitivePeerDependencies: 2079 | - supports-color 2080 | dev: true 2081 | 2082 | /eslint-processor-vue-blocks@0.1.1(@vue/compiler-sfc@3.4.21)(eslint@8.56.0): 2083 | resolution: {integrity: sha512-9+dU5lU881log570oBwpelaJmOfOzSniben7IWEDRYQPPWwlvaV7NhOtsTuUWDqpYT+dtKKWPsgz4OkOi+aZnA==} 2084 | peerDependencies: 2085 | '@vue/compiler-sfc': ^3.3.0 2086 | eslint: ^8.50.0 2087 | dependencies: 2088 | '@vue/compiler-sfc': 3.4.21 2089 | eslint: 8.56.0 2090 | dev: true 2091 | 2092 | /eslint-rule-composer@0.3.0: 2093 | resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} 2094 | engines: {node: '>=4.0.0'} 2095 | dev: true 2096 | 2097 | /eslint-scope@7.2.2: 2098 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 2099 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2100 | dependencies: 2101 | esrecurse: 4.3.0 2102 | estraverse: 5.3.0 2103 | dev: true 2104 | 2105 | /eslint-visitor-keys@3.4.3: 2106 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 2107 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2108 | dev: true 2109 | 2110 | /eslint@8.56.0: 2111 | resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} 2112 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2113 | hasBin: true 2114 | dependencies: 2115 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) 2116 | '@eslint-community/regexpp': 4.10.0 2117 | '@eslint/eslintrc': 2.1.4 2118 | '@eslint/js': 8.56.0 2119 | '@humanwhocodes/config-array': 0.11.14 2120 | '@humanwhocodes/module-importer': 1.0.1 2121 | '@nodelib/fs.walk': 1.2.8 2122 | '@ungap/structured-clone': 1.2.0 2123 | ajv: 6.12.6 2124 | chalk: 4.1.2 2125 | cross-spawn: 7.0.3 2126 | debug: 4.3.4 2127 | doctrine: 3.0.0 2128 | escape-string-regexp: 4.0.0 2129 | eslint-scope: 7.2.2 2130 | eslint-visitor-keys: 3.4.3 2131 | espree: 9.6.1 2132 | esquery: 1.5.0 2133 | esutils: 2.0.3 2134 | fast-deep-equal: 3.1.3 2135 | file-entry-cache: 6.0.1 2136 | find-up: 5.0.0 2137 | glob-parent: 6.0.2 2138 | globals: 13.24.0 2139 | graphemer: 1.4.0 2140 | ignore: 5.3.1 2141 | imurmurhash: 0.1.4 2142 | is-glob: 4.0.3 2143 | is-path-inside: 3.0.3 2144 | js-yaml: 4.1.0 2145 | json-stable-stringify-without-jsonify: 1.0.1 2146 | levn: 0.4.1 2147 | lodash.merge: 4.6.2 2148 | minimatch: 3.1.2 2149 | natural-compare: 1.4.0 2150 | optionator: 0.9.3 2151 | strip-ansi: 6.0.1 2152 | text-table: 0.2.0 2153 | transitivePeerDependencies: 2154 | - supports-color 2155 | dev: true 2156 | 2157 | /esno@4.7.0: 2158 | resolution: {integrity: sha512-81owrjxIxOwqcABt20U09Wn8lpBo9K6ttqbGvQcB3VYNLJyaV1fvKkDtpZd3Rj5BX3WXiGiJCjUevKQGNICzJg==} 2159 | hasBin: true 2160 | dependencies: 2161 | tsx: 4.7.2 2162 | dev: true 2163 | 2164 | /espree@9.6.1: 2165 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 2166 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2167 | dependencies: 2168 | acorn: 8.11.3 2169 | acorn-jsx: 5.3.2(acorn@8.11.3) 2170 | eslint-visitor-keys: 3.4.3 2171 | dev: true 2172 | 2173 | /esquery@1.5.0: 2174 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 2175 | engines: {node: '>=0.10'} 2176 | dependencies: 2177 | estraverse: 5.3.0 2178 | dev: true 2179 | 2180 | /esrecurse@4.3.0: 2181 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 2182 | engines: {node: '>=4.0'} 2183 | dependencies: 2184 | estraverse: 5.3.0 2185 | dev: true 2186 | 2187 | /estraverse@5.3.0: 2188 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 2189 | engines: {node: '>=4.0'} 2190 | dev: true 2191 | 2192 | /estree-walker@2.0.2: 2193 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 2194 | dev: true 2195 | 2196 | /estree-walker@3.0.3: 2197 | resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 2198 | dependencies: 2199 | '@types/estree': 1.0.5 2200 | dev: true 2201 | 2202 | /esutils@2.0.3: 2203 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 2204 | engines: {node: '>=0.10.0'} 2205 | dev: true 2206 | 2207 | /eventemitter3@5.0.1: 2208 | resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} 2209 | dev: true 2210 | 2211 | /execa@5.1.1: 2212 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 2213 | engines: {node: '>=10'} 2214 | dependencies: 2215 | cross-spawn: 7.0.3 2216 | get-stream: 6.0.1 2217 | human-signals: 2.1.0 2218 | is-stream: 2.0.1 2219 | merge-stream: 2.0.0 2220 | npm-run-path: 4.0.1 2221 | onetime: 5.1.2 2222 | signal-exit: 3.0.7 2223 | strip-final-newline: 2.0.0 2224 | dev: true 2225 | 2226 | /execa@8.0.1: 2227 | resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} 2228 | engines: {node: '>=16.17'} 2229 | dependencies: 2230 | cross-spawn: 7.0.3 2231 | get-stream: 8.0.1 2232 | human-signals: 5.0.0 2233 | is-stream: 3.0.0 2234 | merge-stream: 2.0.0 2235 | npm-run-path: 5.3.0 2236 | onetime: 6.0.0 2237 | signal-exit: 4.1.0 2238 | strip-final-newline: 3.0.0 2239 | dev: true 2240 | 2241 | /fast-deep-equal@3.1.3: 2242 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 2243 | dev: true 2244 | 2245 | /fast-glob@3.3.2: 2246 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 2247 | engines: {node: '>=8.6.0'} 2248 | dependencies: 2249 | '@nodelib/fs.stat': 2.0.5 2250 | '@nodelib/fs.walk': 1.2.8 2251 | glob-parent: 5.1.2 2252 | merge2: 1.4.1 2253 | micromatch: 4.0.5 2254 | dev: true 2255 | 2256 | /fast-json-stable-stringify@2.1.0: 2257 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 2258 | dev: true 2259 | 2260 | /fast-levenshtein@2.0.6: 2261 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 2262 | dev: true 2263 | 2264 | /fastq@1.17.1: 2265 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 2266 | dependencies: 2267 | reusify: 1.0.4 2268 | dev: true 2269 | 2270 | /file-entry-cache@6.0.1: 2271 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 2272 | engines: {node: ^10.12.0 || >=12.0.0} 2273 | dependencies: 2274 | flat-cache: 3.2.0 2275 | dev: true 2276 | 2277 | /fill-range@7.0.1: 2278 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 2279 | engines: {node: '>=8'} 2280 | dependencies: 2281 | to-regex-range: 5.0.1 2282 | dev: true 2283 | 2284 | /find-up@4.1.0: 2285 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 2286 | engines: {node: '>=8'} 2287 | dependencies: 2288 | locate-path: 5.0.0 2289 | path-exists: 4.0.0 2290 | dev: true 2291 | 2292 | /find-up@5.0.0: 2293 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 2294 | engines: {node: '>=10'} 2295 | dependencies: 2296 | locate-path: 6.0.0 2297 | path-exists: 4.0.0 2298 | dev: true 2299 | 2300 | /find-up@7.0.0: 2301 | resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} 2302 | engines: {node: '>=18'} 2303 | dependencies: 2304 | locate-path: 7.2.0 2305 | path-exists: 5.0.0 2306 | unicorn-magic: 0.1.0 2307 | dev: true 2308 | 2309 | /flat-cache@3.2.0: 2310 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} 2311 | engines: {node: ^10.12.0 || >=12.0.0} 2312 | dependencies: 2313 | flatted: 3.3.1 2314 | keyv: 4.5.4 2315 | rimraf: 3.0.2 2316 | dev: true 2317 | 2318 | /flatted@3.3.1: 2319 | resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} 2320 | dev: true 2321 | 2322 | /foreground-child@3.1.1: 2323 | resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} 2324 | engines: {node: '>=14'} 2325 | dependencies: 2326 | cross-spawn: 7.0.3 2327 | signal-exit: 4.1.0 2328 | dev: true 2329 | 2330 | /fs.realpath@1.0.0: 2331 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 2332 | dev: true 2333 | 2334 | /fsevents@2.3.3: 2335 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 2336 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 2337 | os: [darwin] 2338 | requiresBuild: true 2339 | dev: true 2340 | optional: true 2341 | 2342 | /function-bind@1.1.2: 2343 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 2344 | dev: true 2345 | 2346 | /get-caller-file@2.0.5: 2347 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 2348 | engines: {node: 6.* || 8.* || >= 10.*} 2349 | dev: true 2350 | 2351 | /get-east-asian-width@1.2.0: 2352 | resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} 2353 | engines: {node: '>=18'} 2354 | dev: true 2355 | 2356 | /get-func-name@2.0.2: 2357 | resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} 2358 | dev: true 2359 | 2360 | /get-stream@6.0.1: 2361 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 2362 | engines: {node: '>=10'} 2363 | dev: true 2364 | 2365 | /get-stream@8.0.1: 2366 | resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} 2367 | engines: {node: '>=16'} 2368 | dev: true 2369 | 2370 | /get-tsconfig@4.7.3: 2371 | resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} 2372 | dependencies: 2373 | resolve-pkg-maps: 1.0.0 2374 | dev: true 2375 | 2376 | /glob-parent@5.1.2: 2377 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 2378 | engines: {node: '>= 6'} 2379 | dependencies: 2380 | is-glob: 4.0.3 2381 | dev: true 2382 | 2383 | /glob-parent@6.0.2: 2384 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 2385 | engines: {node: '>=10.13.0'} 2386 | dependencies: 2387 | is-glob: 4.0.3 2388 | dev: true 2389 | 2390 | /glob@10.3.12: 2391 | resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} 2392 | engines: {node: '>=16 || 14 >=14.17'} 2393 | hasBin: true 2394 | dependencies: 2395 | foreground-child: 3.1.1 2396 | jackspeak: 2.3.6 2397 | minimatch: 9.0.4 2398 | minipass: 7.0.4 2399 | path-scurry: 1.10.2 2400 | dev: true 2401 | 2402 | /glob@7.2.3: 2403 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 2404 | dependencies: 2405 | fs.realpath: 1.0.0 2406 | inflight: 1.0.6 2407 | inherits: 2.0.4 2408 | minimatch: 3.1.2 2409 | once: 1.4.0 2410 | path-is-absolute: 1.0.1 2411 | dev: true 2412 | 2413 | /globals@13.24.0: 2414 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} 2415 | engines: {node: '>=8'} 2416 | dependencies: 2417 | type-fest: 0.20.2 2418 | dev: true 2419 | 2420 | /globals@14.0.0: 2421 | resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} 2422 | engines: {node: '>=18'} 2423 | dev: true 2424 | 2425 | /globals@15.0.0: 2426 | resolution: {integrity: sha512-m/C/yR4mjO6pXDTm9/R/SpYTAIyaUB4EOzcaaMEl7mds7Mshct9GfejiJNQGjHHbdMPey13Kpu4TMbYi9ex1pw==} 2427 | engines: {node: '>=18'} 2428 | dev: true 2429 | 2430 | /globby@11.1.0: 2431 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 2432 | engines: {node: '>=10'} 2433 | dependencies: 2434 | array-union: 2.1.0 2435 | dir-glob: 3.0.1 2436 | fast-glob: 3.3.2 2437 | ignore: 5.3.1 2438 | merge2: 1.4.1 2439 | slash: 3.0.0 2440 | dev: true 2441 | 2442 | /graceful-fs@4.2.11: 2443 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 2444 | dev: true 2445 | 2446 | /graphemer@1.4.0: 2447 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 2448 | dev: true 2449 | 2450 | /has-flag@3.0.0: 2451 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 2452 | engines: {node: '>=4'} 2453 | dev: true 2454 | 2455 | /has-flag@4.0.0: 2456 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 2457 | engines: {node: '>=8'} 2458 | dev: true 2459 | 2460 | /hasown@2.0.2: 2461 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 2462 | engines: {node: '>= 0.4'} 2463 | dependencies: 2464 | function-bind: 1.1.2 2465 | dev: true 2466 | 2467 | /hosted-git-info@2.8.9: 2468 | resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} 2469 | dev: true 2470 | 2471 | /human-signals@2.1.0: 2472 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 2473 | engines: {node: '>=10.17.0'} 2474 | dev: true 2475 | 2476 | /human-signals@5.0.0: 2477 | resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} 2478 | engines: {node: '>=16.17.0'} 2479 | dev: true 2480 | 2481 | /ignore@5.3.1: 2482 | resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} 2483 | engines: {node: '>= 4'} 2484 | dev: true 2485 | 2486 | /import-fresh@3.3.0: 2487 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 2488 | engines: {node: '>=6'} 2489 | dependencies: 2490 | parent-module: 1.0.1 2491 | resolve-from: 4.0.0 2492 | dev: true 2493 | 2494 | /imurmurhash@0.1.4: 2495 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 2496 | engines: {node: '>=0.8.19'} 2497 | dev: true 2498 | 2499 | /indent-string@4.0.0: 2500 | resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} 2501 | engines: {node: '>=8'} 2502 | dev: true 2503 | 2504 | /inflight@1.0.6: 2505 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 2506 | dependencies: 2507 | once: 1.4.0 2508 | wrappy: 1.0.2 2509 | dev: true 2510 | 2511 | /inherits@2.0.4: 2512 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 2513 | dev: true 2514 | 2515 | /is-alphabetical@1.0.4: 2516 | resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} 2517 | dev: true 2518 | 2519 | /is-alphanumerical@1.0.4: 2520 | resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} 2521 | dependencies: 2522 | is-alphabetical: 1.0.4 2523 | is-decimal: 1.0.4 2524 | dev: true 2525 | 2526 | /is-arrayish@0.2.1: 2527 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} 2528 | dev: true 2529 | 2530 | /is-binary-path@2.1.0: 2531 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 2532 | engines: {node: '>=8'} 2533 | dependencies: 2534 | binary-extensions: 2.3.0 2535 | dev: true 2536 | 2537 | /is-builtin-module@3.2.1: 2538 | resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} 2539 | engines: {node: '>=6'} 2540 | dependencies: 2541 | builtin-modules: 3.3.0 2542 | dev: true 2543 | 2544 | /is-core-module@2.13.1: 2545 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} 2546 | dependencies: 2547 | hasown: 2.0.2 2548 | dev: true 2549 | 2550 | /is-decimal@1.0.4: 2551 | resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} 2552 | dev: true 2553 | 2554 | /is-extglob@2.1.1: 2555 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 2556 | engines: {node: '>=0.10.0'} 2557 | dev: true 2558 | 2559 | /is-fullwidth-code-point@3.0.0: 2560 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 2561 | engines: {node: '>=8'} 2562 | dev: true 2563 | 2564 | /is-fullwidth-code-point@4.0.0: 2565 | resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} 2566 | engines: {node: '>=12'} 2567 | dev: true 2568 | 2569 | /is-fullwidth-code-point@5.0.0: 2570 | resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} 2571 | engines: {node: '>=18'} 2572 | dependencies: 2573 | get-east-asian-width: 1.2.0 2574 | dev: true 2575 | 2576 | /is-glob@4.0.3: 2577 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 2578 | engines: {node: '>=0.10.0'} 2579 | dependencies: 2580 | is-extglob: 2.1.1 2581 | dev: true 2582 | 2583 | /is-hexadecimal@1.0.4: 2584 | resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} 2585 | dev: true 2586 | 2587 | /is-number@7.0.0: 2588 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 2589 | engines: {node: '>=0.12.0'} 2590 | dev: true 2591 | 2592 | /is-path-inside@3.0.3: 2593 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 2594 | engines: {node: '>=8'} 2595 | dev: true 2596 | 2597 | /is-stream@2.0.1: 2598 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 2599 | engines: {node: '>=8'} 2600 | dev: true 2601 | 2602 | /is-stream@3.0.0: 2603 | resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} 2604 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2605 | dev: true 2606 | 2607 | /isexe@2.0.0: 2608 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 2609 | dev: true 2610 | 2611 | /jackspeak@2.3.6: 2612 | resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} 2613 | engines: {node: '>=14'} 2614 | dependencies: 2615 | '@isaacs/cliui': 8.0.2 2616 | optionalDependencies: 2617 | '@pkgjs/parseargs': 0.11.0 2618 | dev: true 2619 | 2620 | /joycon@3.1.1: 2621 | resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 2622 | engines: {node: '>=10'} 2623 | dev: true 2624 | 2625 | /js-tokens@4.0.0: 2626 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 2627 | dev: true 2628 | 2629 | /js-tokens@9.0.0: 2630 | resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} 2631 | dev: true 2632 | 2633 | /js-yaml@4.1.0: 2634 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 2635 | hasBin: true 2636 | dependencies: 2637 | argparse: 2.0.1 2638 | dev: true 2639 | 2640 | /jsdoc-type-pratt-parser@4.0.0: 2641 | resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} 2642 | engines: {node: '>=12.0.0'} 2643 | dev: true 2644 | 2645 | /jsesc@0.5.0: 2646 | resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} 2647 | hasBin: true 2648 | dev: true 2649 | 2650 | /jsesc@3.0.2: 2651 | resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} 2652 | engines: {node: '>=6'} 2653 | hasBin: true 2654 | dev: true 2655 | 2656 | /json-buffer@3.0.1: 2657 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 2658 | dev: true 2659 | 2660 | /json-parse-even-better-errors@2.3.1: 2661 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 2662 | dev: true 2663 | 2664 | /json-schema-traverse@0.4.1: 2665 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 2666 | dev: true 2667 | 2668 | /json-stable-stringify-without-jsonify@1.0.1: 2669 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 2670 | dev: true 2671 | 2672 | /jsonc-eslint-parser@2.4.0: 2673 | resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} 2674 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2675 | dependencies: 2676 | acorn: 8.11.3 2677 | eslint-visitor-keys: 3.4.3 2678 | espree: 9.6.1 2679 | semver: 7.6.0 2680 | dev: true 2681 | 2682 | /jsonc-parser@3.2.1: 2683 | resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} 2684 | dev: true 2685 | 2686 | /keyv@4.5.4: 2687 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 2688 | dependencies: 2689 | json-buffer: 3.0.1 2690 | dev: true 2691 | 2692 | /levn@0.4.1: 2693 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 2694 | engines: {node: '>= 0.8.0'} 2695 | dependencies: 2696 | prelude-ls: 1.2.1 2697 | type-check: 0.4.0 2698 | dev: true 2699 | 2700 | /lilconfig@3.0.0: 2701 | resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} 2702 | engines: {node: '>=14'} 2703 | dev: true 2704 | 2705 | /lilconfig@3.1.1: 2706 | resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} 2707 | engines: {node: '>=14'} 2708 | dev: true 2709 | 2710 | /lines-and-columns@1.2.4: 2711 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 2712 | dev: true 2713 | 2714 | /lint-staged@15.2.2: 2715 | resolution: {integrity: sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==} 2716 | engines: {node: '>=18.12.0'} 2717 | hasBin: true 2718 | dependencies: 2719 | chalk: 5.3.0 2720 | commander: 11.1.0 2721 | debug: 4.3.4 2722 | execa: 8.0.1 2723 | lilconfig: 3.0.0 2724 | listr2: 8.0.1 2725 | micromatch: 4.0.5 2726 | pidtree: 0.6.0 2727 | string-argv: 0.3.2 2728 | yaml: 2.3.4 2729 | transitivePeerDependencies: 2730 | - supports-color 2731 | dev: true 2732 | 2733 | /listr2@8.0.1: 2734 | resolution: {integrity: sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==} 2735 | engines: {node: '>=18.0.0'} 2736 | dependencies: 2737 | cli-truncate: 4.0.0 2738 | colorette: 2.0.20 2739 | eventemitter3: 5.0.1 2740 | log-update: 6.0.0 2741 | rfdc: 1.3.1 2742 | wrap-ansi: 9.0.0 2743 | dev: true 2744 | 2745 | /load-tsconfig@0.2.5: 2746 | resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} 2747 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2748 | dev: true 2749 | 2750 | /local-pkg@0.5.0: 2751 | resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} 2752 | engines: {node: '>=14'} 2753 | dependencies: 2754 | mlly: 1.6.1 2755 | pkg-types: 1.0.3 2756 | dev: true 2757 | 2758 | /locate-path@5.0.0: 2759 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 2760 | engines: {node: '>=8'} 2761 | dependencies: 2762 | p-locate: 4.1.0 2763 | dev: true 2764 | 2765 | /locate-path@6.0.0: 2766 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 2767 | engines: {node: '>=10'} 2768 | dependencies: 2769 | p-locate: 5.0.0 2770 | dev: true 2771 | 2772 | /locate-path@7.2.0: 2773 | resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} 2774 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2775 | dependencies: 2776 | p-locate: 6.0.0 2777 | dev: true 2778 | 2779 | /lodash.merge@4.6.2: 2780 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 2781 | dev: true 2782 | 2783 | /lodash.sortby@4.7.0: 2784 | resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} 2785 | dev: true 2786 | 2787 | /lodash@4.17.21: 2788 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 2789 | dev: true 2790 | 2791 | /log-update@6.0.0: 2792 | resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==} 2793 | engines: {node: '>=18'} 2794 | dependencies: 2795 | ansi-escapes: 6.2.1 2796 | cli-cursor: 4.0.0 2797 | slice-ansi: 7.1.0 2798 | strip-ansi: 7.1.0 2799 | wrap-ansi: 9.0.0 2800 | dev: true 2801 | 2802 | /loupe@2.3.7: 2803 | resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} 2804 | dependencies: 2805 | get-func-name: 2.0.2 2806 | dev: true 2807 | 2808 | /lru-cache@10.2.0: 2809 | resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} 2810 | engines: {node: 14 || >=16.14} 2811 | dev: true 2812 | 2813 | /lru-cache@6.0.0: 2814 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 2815 | engines: {node: '>=10'} 2816 | dependencies: 2817 | yallist: 4.0.0 2818 | dev: true 2819 | 2820 | /magic-string@0.30.9: 2821 | resolution: {integrity: sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==} 2822 | engines: {node: '>=12'} 2823 | dependencies: 2824 | '@jridgewell/sourcemap-codec': 1.4.15 2825 | dev: true 2826 | 2827 | /mdast-util-from-markdown@0.8.5: 2828 | resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} 2829 | dependencies: 2830 | '@types/mdast': 3.0.15 2831 | mdast-util-to-string: 2.0.0 2832 | micromark: 2.11.4 2833 | parse-entities: 2.0.0 2834 | unist-util-stringify-position: 2.0.3 2835 | transitivePeerDependencies: 2836 | - supports-color 2837 | dev: true 2838 | 2839 | /mdast-util-to-string@2.0.0: 2840 | resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} 2841 | dev: true 2842 | 2843 | /merge-stream@2.0.0: 2844 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 2845 | dev: true 2846 | 2847 | /merge2@1.4.1: 2848 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 2849 | engines: {node: '>= 8'} 2850 | dev: true 2851 | 2852 | /micromark@2.11.4: 2853 | resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} 2854 | dependencies: 2855 | debug: 4.3.4 2856 | parse-entities: 2.0.0 2857 | transitivePeerDependencies: 2858 | - supports-color 2859 | dev: true 2860 | 2861 | /micromatch@4.0.5: 2862 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 2863 | engines: {node: '>=8.6'} 2864 | dependencies: 2865 | braces: 3.0.2 2866 | picomatch: 2.3.1 2867 | dev: true 2868 | 2869 | /mimic-fn@2.1.0: 2870 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 2871 | engines: {node: '>=6'} 2872 | dev: true 2873 | 2874 | /mimic-fn@4.0.0: 2875 | resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} 2876 | engines: {node: '>=12'} 2877 | dev: true 2878 | 2879 | /min-indent@1.0.1: 2880 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 2881 | engines: {node: '>=4'} 2882 | dev: true 2883 | 2884 | /minimatch@3.1.2: 2885 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 2886 | dependencies: 2887 | brace-expansion: 1.1.11 2888 | dev: true 2889 | 2890 | /minimatch@9.0.3: 2891 | resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} 2892 | engines: {node: '>=16 || 14 >=14.17'} 2893 | dependencies: 2894 | brace-expansion: 2.0.1 2895 | dev: true 2896 | 2897 | /minimatch@9.0.4: 2898 | resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} 2899 | engines: {node: '>=16 || 14 >=14.17'} 2900 | dependencies: 2901 | brace-expansion: 2.0.1 2902 | dev: true 2903 | 2904 | /minipass@7.0.4: 2905 | resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} 2906 | engines: {node: '>=16 || 14 >=14.17'} 2907 | dev: true 2908 | 2909 | /mlly@1.6.1: 2910 | resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==} 2911 | dependencies: 2912 | acorn: 8.11.3 2913 | pathe: 1.1.2 2914 | pkg-types: 1.0.3 2915 | ufo: 1.5.3 2916 | dev: true 2917 | 2918 | /ms@2.1.2: 2919 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 2920 | dev: true 2921 | 2922 | /ms@2.1.3: 2923 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 2924 | dev: true 2925 | 2926 | /mz@2.7.0: 2927 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 2928 | dependencies: 2929 | any-promise: 1.3.0 2930 | object-assign: 4.1.1 2931 | thenify-all: 1.6.0 2932 | dev: true 2933 | 2934 | /nanoid@3.3.7: 2935 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 2936 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 2937 | hasBin: true 2938 | dev: true 2939 | 2940 | /natural-compare-lite@1.4.0: 2941 | resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} 2942 | dev: true 2943 | 2944 | /natural-compare@1.4.0: 2945 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 2946 | dev: true 2947 | 2948 | /node-releases@2.0.14: 2949 | resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} 2950 | dev: true 2951 | 2952 | /normalize-package-data@2.5.0: 2953 | resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} 2954 | dependencies: 2955 | hosted-git-info: 2.8.9 2956 | resolve: 1.22.8 2957 | semver: 5.7.2 2958 | validate-npm-package-license: 3.0.4 2959 | dev: true 2960 | 2961 | /normalize-path@3.0.0: 2962 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 2963 | engines: {node: '>=0.10.0'} 2964 | dev: true 2965 | 2966 | /npm-run-path@4.0.1: 2967 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 2968 | engines: {node: '>=8'} 2969 | dependencies: 2970 | path-key: 3.1.1 2971 | dev: true 2972 | 2973 | /npm-run-path@5.3.0: 2974 | resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} 2975 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2976 | dependencies: 2977 | path-key: 4.0.0 2978 | dev: true 2979 | 2980 | /nth-check@2.1.1: 2981 | resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} 2982 | dependencies: 2983 | boolbase: 1.0.0 2984 | dev: true 2985 | 2986 | /object-assign@4.1.1: 2987 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 2988 | engines: {node: '>=0.10.0'} 2989 | dev: true 2990 | 2991 | /once@1.4.0: 2992 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 2993 | dependencies: 2994 | wrappy: 1.0.2 2995 | dev: true 2996 | 2997 | /onetime@5.1.2: 2998 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 2999 | engines: {node: '>=6'} 3000 | dependencies: 3001 | mimic-fn: 2.1.0 3002 | dev: true 3003 | 3004 | /onetime@6.0.0: 3005 | resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} 3006 | engines: {node: '>=12'} 3007 | dependencies: 3008 | mimic-fn: 4.0.0 3009 | dev: true 3010 | 3011 | /optionator@0.9.3: 3012 | resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} 3013 | engines: {node: '>= 0.8.0'} 3014 | dependencies: 3015 | '@aashutoshrathi/word-wrap': 1.2.6 3016 | deep-is: 0.1.4 3017 | fast-levenshtein: 2.0.6 3018 | levn: 0.4.1 3019 | prelude-ls: 1.2.1 3020 | type-check: 0.4.0 3021 | dev: true 3022 | 3023 | /p-limit@2.3.0: 3024 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 3025 | engines: {node: '>=6'} 3026 | dependencies: 3027 | p-try: 2.2.0 3028 | dev: true 3029 | 3030 | /p-limit@3.1.0: 3031 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 3032 | engines: {node: '>=10'} 3033 | dependencies: 3034 | yocto-queue: 0.1.0 3035 | dev: true 3036 | 3037 | /p-limit@4.0.0: 3038 | resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} 3039 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 3040 | dependencies: 3041 | yocto-queue: 1.0.0 3042 | dev: true 3043 | 3044 | /p-limit@5.0.0: 3045 | resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} 3046 | engines: {node: '>=18'} 3047 | dependencies: 3048 | yocto-queue: 1.0.0 3049 | dev: true 3050 | 3051 | /p-locate@4.1.0: 3052 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 3053 | engines: {node: '>=8'} 3054 | dependencies: 3055 | p-limit: 2.3.0 3056 | dev: true 3057 | 3058 | /p-locate@5.0.0: 3059 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 3060 | engines: {node: '>=10'} 3061 | dependencies: 3062 | p-limit: 3.1.0 3063 | dev: true 3064 | 3065 | /p-locate@6.0.0: 3066 | resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} 3067 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 3068 | dependencies: 3069 | p-limit: 4.0.0 3070 | dev: true 3071 | 3072 | /p-try@2.2.0: 3073 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 3074 | engines: {node: '>=6'} 3075 | dev: true 3076 | 3077 | /parent-module@1.0.1: 3078 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 3079 | engines: {node: '>=6'} 3080 | dependencies: 3081 | callsites: 3.1.0 3082 | dev: true 3083 | 3084 | /parse-entities@2.0.0: 3085 | resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} 3086 | dependencies: 3087 | character-entities: 1.2.4 3088 | character-entities-legacy: 1.1.4 3089 | character-reference-invalid: 1.1.4 3090 | is-alphanumerical: 1.0.4 3091 | is-decimal: 1.0.4 3092 | is-hexadecimal: 1.0.4 3093 | dev: true 3094 | 3095 | /parse-gitignore@2.0.0: 3096 | resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==} 3097 | engines: {node: '>=14'} 3098 | dev: true 3099 | 3100 | /parse-json@5.2.0: 3101 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 3102 | engines: {node: '>=8'} 3103 | dependencies: 3104 | '@babel/code-frame': 7.24.2 3105 | error-ex: 1.3.2 3106 | json-parse-even-better-errors: 2.3.1 3107 | lines-and-columns: 1.2.4 3108 | dev: true 3109 | 3110 | /path-exists@4.0.0: 3111 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 3112 | engines: {node: '>=8'} 3113 | dev: true 3114 | 3115 | /path-exists@5.0.0: 3116 | resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} 3117 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 3118 | dev: true 3119 | 3120 | /path-is-absolute@1.0.1: 3121 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 3122 | engines: {node: '>=0.10.0'} 3123 | dev: true 3124 | 3125 | /path-key@3.1.1: 3126 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 3127 | engines: {node: '>=8'} 3128 | dev: true 3129 | 3130 | /path-key@4.0.0: 3131 | resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} 3132 | engines: {node: '>=12'} 3133 | dev: true 3134 | 3135 | /path-parse@1.0.7: 3136 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 3137 | dev: true 3138 | 3139 | /path-scurry@1.10.2: 3140 | resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} 3141 | engines: {node: '>=16 || 14 >=14.17'} 3142 | dependencies: 3143 | lru-cache: 10.2.0 3144 | minipass: 7.0.4 3145 | dev: true 3146 | 3147 | /path-type@4.0.0: 3148 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 3149 | engines: {node: '>=8'} 3150 | dev: true 3151 | 3152 | /pathe@1.1.2: 3153 | resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} 3154 | dev: true 3155 | 3156 | /pathval@1.1.1: 3157 | resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} 3158 | dev: true 3159 | 3160 | /picocolors@1.0.0: 3161 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 3162 | dev: true 3163 | 3164 | /picomatch@2.3.1: 3165 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 3166 | engines: {node: '>=8.6'} 3167 | dev: true 3168 | 3169 | /picomatch@4.0.2: 3170 | resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} 3171 | engines: {node: '>=12'} 3172 | dev: true 3173 | 3174 | /pidtree@0.6.0: 3175 | resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} 3176 | engines: {node: '>=0.10'} 3177 | hasBin: true 3178 | dev: true 3179 | 3180 | /pirates@4.0.6: 3181 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 3182 | engines: {node: '>= 6'} 3183 | dev: true 3184 | 3185 | /pkg-types@1.0.3: 3186 | resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} 3187 | dependencies: 3188 | jsonc-parser: 3.2.1 3189 | mlly: 1.6.1 3190 | pathe: 1.1.2 3191 | dev: true 3192 | 3193 | /pluralize@8.0.0: 3194 | resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} 3195 | engines: {node: '>=4'} 3196 | dev: true 3197 | 3198 | /pnpm@8.15.6: 3199 | resolution: {integrity: sha512-d7iem+d6Kwatj0A6Gcrl4il29hAj+YrTI9XDAZSVjrwC7gpq5dE+5FT2E05OjK8poF8LGg4dKxe8prah8RWfhg==} 3200 | engines: {node: '>=16.14'} 3201 | hasBin: true 3202 | dev: true 3203 | 3204 | /postcss-load-config@4.0.2: 3205 | resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} 3206 | engines: {node: '>= 14'} 3207 | peerDependencies: 3208 | postcss: '>=8.0.9' 3209 | ts-node: '>=9.0.0' 3210 | peerDependenciesMeta: 3211 | postcss: 3212 | optional: true 3213 | ts-node: 3214 | optional: true 3215 | dependencies: 3216 | lilconfig: 3.1.1 3217 | yaml: 2.4.1 3218 | dev: true 3219 | 3220 | /postcss-selector-parser@6.0.16: 3221 | resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} 3222 | engines: {node: '>=4'} 3223 | dependencies: 3224 | cssesc: 3.0.0 3225 | util-deprecate: 1.0.2 3226 | dev: true 3227 | 3228 | /postcss@8.4.38: 3229 | resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} 3230 | engines: {node: ^10 || ^12 || >=14} 3231 | dependencies: 3232 | nanoid: 3.3.7 3233 | picocolors: 1.0.0 3234 | source-map-js: 1.2.0 3235 | dev: true 3236 | 3237 | /prelude-ls@1.2.1: 3238 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 3239 | engines: {node: '>= 0.8.0'} 3240 | dev: true 3241 | 3242 | /pretty-format@29.7.0: 3243 | resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} 3244 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 3245 | dependencies: 3246 | '@jest/schemas': 29.6.3 3247 | ansi-styles: 5.2.0 3248 | react-is: 18.2.0 3249 | dev: true 3250 | 3251 | /punycode@2.3.1: 3252 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 3253 | engines: {node: '>=6'} 3254 | dev: true 3255 | 3256 | /queue-microtask@1.2.3: 3257 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 3258 | dev: true 3259 | 3260 | /react-is@18.2.0: 3261 | resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} 3262 | dev: true 3263 | 3264 | /read-pkg-up@7.0.1: 3265 | resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} 3266 | engines: {node: '>=8'} 3267 | dependencies: 3268 | find-up: 4.1.0 3269 | read-pkg: 5.2.0 3270 | type-fest: 0.8.1 3271 | dev: true 3272 | 3273 | /read-pkg@5.2.0: 3274 | resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} 3275 | engines: {node: '>=8'} 3276 | dependencies: 3277 | '@types/normalize-package-data': 2.4.4 3278 | normalize-package-data: 2.5.0 3279 | parse-json: 5.2.0 3280 | type-fest: 0.6.0 3281 | dev: true 3282 | 3283 | /readdirp@3.6.0: 3284 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 3285 | engines: {node: '>=8.10.0'} 3286 | dependencies: 3287 | picomatch: 2.3.1 3288 | dev: true 3289 | 3290 | /regexp-tree@0.1.27: 3291 | resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} 3292 | hasBin: true 3293 | dev: true 3294 | 3295 | /regjsparser@0.10.0: 3296 | resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} 3297 | hasBin: true 3298 | dependencies: 3299 | jsesc: 0.5.0 3300 | dev: true 3301 | 3302 | /require-directory@2.1.1: 3303 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 3304 | engines: {node: '>=0.10.0'} 3305 | dev: true 3306 | 3307 | /resolve-from@4.0.0: 3308 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 3309 | engines: {node: '>=4'} 3310 | dev: true 3311 | 3312 | /resolve-from@5.0.0: 3313 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 3314 | engines: {node: '>=8'} 3315 | dev: true 3316 | 3317 | /resolve-pkg-maps@1.0.0: 3318 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 3319 | dev: true 3320 | 3321 | /resolve@1.22.8: 3322 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 3323 | hasBin: true 3324 | dependencies: 3325 | is-core-module: 2.13.1 3326 | path-parse: 1.0.7 3327 | supports-preserve-symlinks-flag: 1.0.0 3328 | dev: true 3329 | 3330 | /restore-cursor@4.0.0: 3331 | resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} 3332 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 3333 | dependencies: 3334 | onetime: 5.1.2 3335 | signal-exit: 3.0.7 3336 | dev: true 3337 | 3338 | /reusify@1.0.4: 3339 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 3340 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 3341 | dev: true 3342 | 3343 | /rfdc@1.3.1: 3344 | resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} 3345 | dev: true 3346 | 3347 | /rimraf@3.0.2: 3348 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 3349 | hasBin: true 3350 | dependencies: 3351 | glob: 7.2.3 3352 | dev: true 3353 | 3354 | /rollup@4.14.1: 3355 | resolution: {integrity: sha512-4LnHSdd3QK2pa1J6dFbfm1HN0D7vSK/ZuZTsdyUAlA6Rr1yTouUTL13HaDOGJVgby461AhrNGBS7sCGXXtT+SA==} 3356 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 3357 | hasBin: true 3358 | dependencies: 3359 | '@types/estree': 1.0.5 3360 | optionalDependencies: 3361 | '@rollup/rollup-android-arm-eabi': 4.14.1 3362 | '@rollup/rollup-android-arm64': 4.14.1 3363 | '@rollup/rollup-darwin-arm64': 4.14.1 3364 | '@rollup/rollup-darwin-x64': 4.14.1 3365 | '@rollup/rollup-linux-arm-gnueabihf': 4.14.1 3366 | '@rollup/rollup-linux-arm64-gnu': 4.14.1 3367 | '@rollup/rollup-linux-arm64-musl': 4.14.1 3368 | '@rollup/rollup-linux-powerpc64le-gnu': 4.14.1 3369 | '@rollup/rollup-linux-riscv64-gnu': 4.14.1 3370 | '@rollup/rollup-linux-s390x-gnu': 4.14.1 3371 | '@rollup/rollup-linux-x64-gnu': 4.14.1 3372 | '@rollup/rollup-linux-x64-musl': 4.14.1 3373 | '@rollup/rollup-win32-arm64-msvc': 4.14.1 3374 | '@rollup/rollup-win32-ia32-msvc': 4.14.1 3375 | '@rollup/rollup-win32-x64-msvc': 4.14.1 3376 | fsevents: 2.3.3 3377 | dev: true 3378 | 3379 | /run-parallel@1.2.0: 3380 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 3381 | dependencies: 3382 | queue-microtask: 1.2.3 3383 | dev: true 3384 | 3385 | /semver@5.7.2: 3386 | resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} 3387 | hasBin: true 3388 | dev: true 3389 | 3390 | /semver@7.6.0: 3391 | resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} 3392 | engines: {node: '>=10'} 3393 | hasBin: true 3394 | dependencies: 3395 | lru-cache: 6.0.0 3396 | dev: true 3397 | 3398 | /shebang-command@2.0.0: 3399 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 3400 | engines: {node: '>=8'} 3401 | dependencies: 3402 | shebang-regex: 3.0.0 3403 | dev: true 3404 | 3405 | /shebang-regex@3.0.0: 3406 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 3407 | engines: {node: '>=8'} 3408 | dev: true 3409 | 3410 | /siginfo@2.0.0: 3411 | resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} 3412 | dev: true 3413 | 3414 | /signal-exit@3.0.7: 3415 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 3416 | dev: true 3417 | 3418 | /signal-exit@4.1.0: 3419 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 3420 | engines: {node: '>=14'} 3421 | dev: true 3422 | 3423 | /simple-git-hooks@2.11.1: 3424 | resolution: {integrity: sha512-tgqwPUMDcNDhuf1Xf6KTUsyeqGdgKMhzaH4PAZZuzguOgTl5uuyeYe/8mWgAr6IBxB5V06uqEf6Dy37gIWDtDg==} 3425 | hasBin: true 3426 | requiresBuild: true 3427 | dev: true 3428 | 3429 | /sisteransi@1.0.5: 3430 | resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} 3431 | dev: true 3432 | 3433 | /slash@3.0.0: 3434 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 3435 | engines: {node: '>=8'} 3436 | dev: true 3437 | 3438 | /slice-ansi@5.0.0: 3439 | resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} 3440 | engines: {node: '>=12'} 3441 | dependencies: 3442 | ansi-styles: 6.2.1 3443 | is-fullwidth-code-point: 4.0.0 3444 | dev: true 3445 | 3446 | /slice-ansi@7.1.0: 3447 | resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} 3448 | engines: {node: '>=18'} 3449 | dependencies: 3450 | ansi-styles: 6.2.1 3451 | is-fullwidth-code-point: 5.0.0 3452 | dev: true 3453 | 3454 | /source-map-js@1.2.0: 3455 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} 3456 | engines: {node: '>=0.10.0'} 3457 | dev: true 3458 | 3459 | /source-map@0.8.0-beta.0: 3460 | resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} 3461 | engines: {node: '>= 8'} 3462 | dependencies: 3463 | whatwg-url: 7.1.0 3464 | dev: true 3465 | 3466 | /spdx-correct@3.2.0: 3467 | resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} 3468 | dependencies: 3469 | spdx-expression-parse: 3.0.1 3470 | spdx-license-ids: 3.0.17 3471 | dev: true 3472 | 3473 | /spdx-exceptions@2.5.0: 3474 | resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} 3475 | dev: true 3476 | 3477 | /spdx-expression-parse@3.0.1: 3478 | resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} 3479 | dependencies: 3480 | spdx-exceptions: 2.5.0 3481 | spdx-license-ids: 3.0.17 3482 | dev: true 3483 | 3484 | /spdx-expression-parse@4.0.0: 3485 | resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} 3486 | dependencies: 3487 | spdx-exceptions: 2.5.0 3488 | spdx-license-ids: 3.0.17 3489 | dev: true 3490 | 3491 | /spdx-license-ids@3.0.17: 3492 | resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} 3493 | dev: true 3494 | 3495 | /stackback@0.0.2: 3496 | resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} 3497 | dev: true 3498 | 3499 | /std-env@3.7.0: 3500 | resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} 3501 | dev: true 3502 | 3503 | /string-argv@0.3.2: 3504 | resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} 3505 | engines: {node: '>=0.6.19'} 3506 | dev: true 3507 | 3508 | /string-width@4.2.3: 3509 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 3510 | engines: {node: '>=8'} 3511 | dependencies: 3512 | emoji-regex: 8.0.0 3513 | is-fullwidth-code-point: 3.0.0 3514 | strip-ansi: 6.0.1 3515 | dev: true 3516 | 3517 | /string-width@5.1.2: 3518 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 3519 | engines: {node: '>=12'} 3520 | dependencies: 3521 | eastasianwidth: 0.2.0 3522 | emoji-regex: 9.2.2 3523 | strip-ansi: 7.1.0 3524 | dev: true 3525 | 3526 | /string-width@7.1.0: 3527 | resolution: {integrity: sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==} 3528 | engines: {node: '>=18'} 3529 | dependencies: 3530 | emoji-regex: 10.3.0 3531 | get-east-asian-width: 1.2.0 3532 | strip-ansi: 7.1.0 3533 | dev: true 3534 | 3535 | /strip-ansi@6.0.1: 3536 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 3537 | engines: {node: '>=8'} 3538 | dependencies: 3539 | ansi-regex: 5.0.1 3540 | dev: true 3541 | 3542 | /strip-ansi@7.1.0: 3543 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 3544 | engines: {node: '>=12'} 3545 | dependencies: 3546 | ansi-regex: 6.0.1 3547 | dev: true 3548 | 3549 | /strip-final-newline@2.0.0: 3550 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 3551 | engines: {node: '>=6'} 3552 | dev: true 3553 | 3554 | /strip-final-newline@3.0.0: 3555 | resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} 3556 | engines: {node: '>=12'} 3557 | dev: true 3558 | 3559 | /strip-indent@3.0.0: 3560 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 3561 | engines: {node: '>=8'} 3562 | dependencies: 3563 | min-indent: 1.0.1 3564 | dev: true 3565 | 3566 | /strip-json-comments@3.1.1: 3567 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 3568 | engines: {node: '>=8'} 3569 | dev: true 3570 | 3571 | /strip-literal@2.1.0: 3572 | resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} 3573 | dependencies: 3574 | js-tokens: 9.0.0 3575 | dev: true 3576 | 3577 | /sucrase@3.35.0: 3578 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} 3579 | engines: {node: '>=16 || 14 >=14.17'} 3580 | hasBin: true 3581 | dependencies: 3582 | '@jridgewell/gen-mapping': 0.3.5 3583 | commander: 4.1.1 3584 | glob: 10.3.12 3585 | lines-and-columns: 1.2.4 3586 | mz: 2.7.0 3587 | pirates: 4.0.6 3588 | ts-interface-checker: 0.1.13 3589 | dev: true 3590 | 3591 | /supports-color@5.5.0: 3592 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 3593 | engines: {node: '>=4'} 3594 | dependencies: 3595 | has-flag: 3.0.0 3596 | dev: true 3597 | 3598 | /supports-color@7.2.0: 3599 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 3600 | engines: {node: '>=8'} 3601 | dependencies: 3602 | has-flag: 4.0.0 3603 | dev: true 3604 | 3605 | /supports-preserve-symlinks-flag@1.0.0: 3606 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 3607 | engines: {node: '>= 0.4'} 3608 | dev: true 3609 | 3610 | /synckit@0.6.2: 3611 | resolution: {integrity: sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA==} 3612 | engines: {node: '>=12.20'} 3613 | dependencies: 3614 | tslib: 2.6.2 3615 | dev: true 3616 | 3617 | /tapable@2.2.1: 3618 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} 3619 | engines: {node: '>=6'} 3620 | dev: true 3621 | 3622 | /text-table@0.2.0: 3623 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 3624 | dev: true 3625 | 3626 | /thenify-all@1.6.0: 3627 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 3628 | engines: {node: '>=0.8'} 3629 | dependencies: 3630 | thenify: 3.3.1 3631 | dev: true 3632 | 3633 | /thenify@3.3.1: 3634 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 3635 | dependencies: 3636 | any-promise: 1.3.0 3637 | dev: true 3638 | 3639 | /tinybench@2.6.0: 3640 | resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} 3641 | dev: true 3642 | 3643 | /tinypool@0.8.3: 3644 | resolution: {integrity: sha512-Ud7uepAklqRH1bvwy22ynrliC7Dljz7Tm8M/0RBUW+YRa4YHhZ6e4PpgE+fu1zr/WqB1kbeuVrdfeuyIBpy4tw==} 3645 | engines: {node: '>=14.0.0'} 3646 | dev: true 3647 | 3648 | /tinyspy@2.2.1: 3649 | resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} 3650 | engines: {node: '>=14.0.0'} 3651 | dev: true 3652 | 3653 | /to-fast-properties@2.0.0: 3654 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 3655 | engines: {node: '>=4'} 3656 | dev: true 3657 | 3658 | /to-regex-range@5.0.1: 3659 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 3660 | engines: {node: '>=8.0'} 3661 | dependencies: 3662 | is-number: 7.0.0 3663 | dev: true 3664 | 3665 | /toml-eslint-parser@0.9.3: 3666 | resolution: {integrity: sha512-moYoCvkNUAPCxSW9jmHmRElhm4tVJpHL8ItC/+uYD0EpPSFXbck7yREz9tNdJVTSpHVod8+HoipcpbQ0oE6gsw==} 3667 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 3668 | dependencies: 3669 | eslint-visitor-keys: 3.4.3 3670 | dev: true 3671 | 3672 | /tr46@1.0.1: 3673 | resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} 3674 | dependencies: 3675 | punycode: 2.3.1 3676 | dev: true 3677 | 3678 | /tree-kill@1.2.2: 3679 | resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} 3680 | hasBin: true 3681 | dev: true 3682 | 3683 | /ts-api-utils@1.3.0(typescript@5.4.4): 3684 | resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} 3685 | engines: {node: '>=16'} 3686 | peerDependencies: 3687 | typescript: '>=4.2.0' 3688 | dependencies: 3689 | typescript: 5.4.4 3690 | dev: true 3691 | 3692 | /ts-interface-checker@0.1.13: 3693 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 3694 | dev: true 3695 | 3696 | /tslib@2.6.2: 3697 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} 3698 | dev: true 3699 | 3700 | /tsup@8.0.2(typescript@5.4.4): 3701 | resolution: {integrity: sha512-NY8xtQXdH7hDUAZwcQdY/Vzlw9johQsaqf7iwZ6g1DOUlFYQ5/AtVAjTvihhEyeRlGo4dLRVHtrRaL35M1daqQ==} 3702 | engines: {node: '>=18'} 3703 | hasBin: true 3704 | peerDependencies: 3705 | '@microsoft/api-extractor': ^7.36.0 3706 | '@swc/core': ^1 3707 | postcss: ^8.4.12 3708 | typescript: '>=4.5.0' 3709 | peerDependenciesMeta: 3710 | '@microsoft/api-extractor': 3711 | optional: true 3712 | '@swc/core': 3713 | optional: true 3714 | postcss: 3715 | optional: true 3716 | typescript: 3717 | optional: true 3718 | dependencies: 3719 | bundle-require: 4.0.2(esbuild@0.19.12) 3720 | cac: 6.7.14 3721 | chokidar: 3.6.0 3722 | debug: 4.3.4 3723 | esbuild: 0.19.12 3724 | execa: 5.1.1 3725 | globby: 11.1.0 3726 | joycon: 3.1.1 3727 | postcss-load-config: 4.0.2 3728 | resolve-from: 5.0.0 3729 | rollup: 4.14.1 3730 | source-map: 0.8.0-beta.0 3731 | sucrase: 3.35.0 3732 | tree-kill: 1.2.2 3733 | typescript: 5.4.4 3734 | transitivePeerDependencies: 3735 | - supports-color 3736 | - ts-node 3737 | dev: true 3738 | 3739 | /tsx@4.7.2: 3740 | resolution: {integrity: sha512-BCNd4kz6fz12fyrgCTEdZHGJ9fWTGeUzXmQysh0RVocDY3h4frk05ZNCXSy4kIenF7y/QnrdiVpTsyNRn6vlAw==} 3741 | engines: {node: '>=18.0.0'} 3742 | hasBin: true 3743 | dependencies: 3744 | esbuild: 0.19.12 3745 | get-tsconfig: 4.7.3 3746 | optionalDependencies: 3747 | fsevents: 2.3.3 3748 | dev: true 3749 | 3750 | /type-check@0.4.0: 3751 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 3752 | engines: {node: '>= 0.8.0'} 3753 | dependencies: 3754 | prelude-ls: 1.2.1 3755 | dev: true 3756 | 3757 | /type-detect@4.0.8: 3758 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} 3759 | engines: {node: '>=4'} 3760 | dev: true 3761 | 3762 | /type-fest@0.20.2: 3763 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 3764 | engines: {node: '>=10'} 3765 | dev: true 3766 | 3767 | /type-fest@0.6.0: 3768 | resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} 3769 | engines: {node: '>=8'} 3770 | dev: true 3771 | 3772 | /type-fest@0.8.1: 3773 | resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} 3774 | engines: {node: '>=8'} 3775 | dev: true 3776 | 3777 | /typescript@5.4.4: 3778 | resolution: {integrity: sha512-dGE2Vv8cpVvw28v8HCPqyb08EzbBURxDpuhJvTrusShUfGnhHBafDsLdS1EhhxyL6BJQE+2cT3dDPAv+MQ6oLw==} 3779 | engines: {node: '>=14.17'} 3780 | hasBin: true 3781 | dev: true 3782 | 3783 | /ufo@1.5.3: 3784 | resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} 3785 | dev: true 3786 | 3787 | /undici-types@5.26.5: 3788 | resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} 3789 | dev: true 3790 | 3791 | /unicorn-magic@0.1.0: 3792 | resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} 3793 | engines: {node: '>=18'} 3794 | dev: true 3795 | 3796 | /unist-util-stringify-position@2.0.3: 3797 | resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} 3798 | dependencies: 3799 | '@types/unist': 2.0.10 3800 | dev: true 3801 | 3802 | /update-browserslist-db@1.0.13(browserslist@4.23.0): 3803 | resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} 3804 | hasBin: true 3805 | peerDependencies: 3806 | browserslist: '>= 4.21.0' 3807 | dependencies: 3808 | browserslist: 4.23.0 3809 | escalade: 3.1.2 3810 | picocolors: 1.0.0 3811 | dev: true 3812 | 3813 | /uri-js@4.4.1: 3814 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 3815 | dependencies: 3816 | punycode: 2.3.1 3817 | dev: true 3818 | 3819 | /util-deprecate@1.0.2: 3820 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 3821 | dev: true 3822 | 3823 | /validate-npm-package-license@3.0.4: 3824 | resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} 3825 | dependencies: 3826 | spdx-correct: 3.2.0 3827 | spdx-expression-parse: 3.0.1 3828 | dev: true 3829 | 3830 | /vite-node@1.4.0(@types/node@20.12.7): 3831 | resolution: {integrity: sha512-VZDAseqjrHgNd4Kh8icYHWzTKSCZMhia7GyHfhtzLW33fZlG9SwsB6CEhgyVOWkJfJ2pFLrp/Gj1FSfAiqH9Lw==} 3832 | engines: {node: ^18.0.0 || >=20.0.0} 3833 | hasBin: true 3834 | dependencies: 3835 | cac: 6.7.14 3836 | debug: 4.3.4 3837 | pathe: 1.1.2 3838 | picocolors: 1.0.0 3839 | vite: 5.2.8(@types/node@20.12.7) 3840 | transitivePeerDependencies: 3841 | - '@types/node' 3842 | - less 3843 | - lightningcss 3844 | - sass 3845 | - stylus 3846 | - sugarss 3847 | - supports-color 3848 | - terser 3849 | dev: true 3850 | 3851 | /vite@5.2.8(@types/node@20.12.7): 3852 | resolution: {integrity: sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA==} 3853 | engines: {node: ^18.0.0 || >=20.0.0} 3854 | hasBin: true 3855 | peerDependencies: 3856 | '@types/node': ^18.0.0 || >=20.0.0 3857 | less: '*' 3858 | lightningcss: ^1.21.0 3859 | sass: '*' 3860 | stylus: '*' 3861 | sugarss: '*' 3862 | terser: ^5.4.0 3863 | peerDependenciesMeta: 3864 | '@types/node': 3865 | optional: true 3866 | less: 3867 | optional: true 3868 | lightningcss: 3869 | optional: true 3870 | sass: 3871 | optional: true 3872 | stylus: 3873 | optional: true 3874 | sugarss: 3875 | optional: true 3876 | terser: 3877 | optional: true 3878 | dependencies: 3879 | '@types/node': 20.12.7 3880 | esbuild: 0.20.2 3881 | postcss: 8.4.38 3882 | rollup: 4.14.1 3883 | optionalDependencies: 3884 | fsevents: 2.3.3 3885 | dev: true 3886 | 3887 | /vitest@1.4.0(@types/node@20.12.7): 3888 | resolution: {integrity: sha512-gujzn0g7fmwf83/WzrDTnncZt2UiXP41mHuFYFrdwaLRVQ6JYQEiME2IfEjU3vcFL3VKa75XhI3lFgn+hfVsQw==} 3889 | engines: {node: ^18.0.0 || >=20.0.0} 3890 | hasBin: true 3891 | peerDependencies: 3892 | '@edge-runtime/vm': '*' 3893 | '@types/node': ^18.0.0 || >=20.0.0 3894 | '@vitest/browser': 1.4.0 3895 | '@vitest/ui': 1.4.0 3896 | happy-dom: '*' 3897 | jsdom: '*' 3898 | peerDependenciesMeta: 3899 | '@edge-runtime/vm': 3900 | optional: true 3901 | '@types/node': 3902 | optional: true 3903 | '@vitest/browser': 3904 | optional: true 3905 | '@vitest/ui': 3906 | optional: true 3907 | happy-dom: 3908 | optional: true 3909 | jsdom: 3910 | optional: true 3911 | dependencies: 3912 | '@types/node': 20.12.7 3913 | '@vitest/expect': 1.4.0 3914 | '@vitest/runner': 1.4.0 3915 | '@vitest/snapshot': 1.4.0 3916 | '@vitest/spy': 1.4.0 3917 | '@vitest/utils': 1.4.0 3918 | acorn-walk: 8.3.2 3919 | chai: 4.4.1 3920 | debug: 4.3.4 3921 | execa: 8.0.1 3922 | local-pkg: 0.5.0 3923 | magic-string: 0.30.9 3924 | pathe: 1.1.2 3925 | picocolors: 1.0.0 3926 | std-env: 3.7.0 3927 | strip-literal: 2.1.0 3928 | tinybench: 2.6.0 3929 | tinypool: 0.8.3 3930 | vite: 5.2.8(@types/node@20.12.7) 3931 | vite-node: 1.4.0(@types/node@20.12.7) 3932 | why-is-node-running: 2.2.2 3933 | transitivePeerDependencies: 3934 | - less 3935 | - lightningcss 3936 | - sass 3937 | - stylus 3938 | - sugarss 3939 | - supports-color 3940 | - terser 3941 | dev: true 3942 | 3943 | /vue-eslint-parser@9.4.2(eslint@8.56.0): 3944 | resolution: {integrity: sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==} 3945 | engines: {node: ^14.17.0 || >=16.0.0} 3946 | peerDependencies: 3947 | eslint: '>=6.0.0' 3948 | dependencies: 3949 | debug: 4.3.4 3950 | eslint: 8.56.0 3951 | eslint-scope: 7.2.2 3952 | eslint-visitor-keys: 3.4.3 3953 | espree: 9.6.1 3954 | esquery: 1.5.0 3955 | lodash: 4.17.21 3956 | semver: 7.6.0 3957 | transitivePeerDependencies: 3958 | - supports-color 3959 | dev: true 3960 | 3961 | /webidl-conversions@4.0.2: 3962 | resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} 3963 | dev: true 3964 | 3965 | /whatwg-url@7.1.0: 3966 | resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} 3967 | dependencies: 3968 | lodash.sortby: 4.7.0 3969 | tr46: 1.0.1 3970 | webidl-conversions: 4.0.2 3971 | dev: true 3972 | 3973 | /which@2.0.2: 3974 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 3975 | engines: {node: '>= 8'} 3976 | hasBin: true 3977 | dependencies: 3978 | isexe: 2.0.0 3979 | dev: true 3980 | 3981 | /why-is-node-running@2.2.2: 3982 | resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} 3983 | engines: {node: '>=8'} 3984 | hasBin: true 3985 | dependencies: 3986 | siginfo: 2.0.0 3987 | stackback: 0.0.2 3988 | dev: true 3989 | 3990 | /wrap-ansi@7.0.0: 3991 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 3992 | engines: {node: '>=10'} 3993 | dependencies: 3994 | ansi-styles: 4.3.0 3995 | string-width: 4.2.3 3996 | strip-ansi: 6.0.1 3997 | dev: true 3998 | 3999 | /wrap-ansi@8.1.0: 4000 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 4001 | engines: {node: '>=12'} 4002 | dependencies: 4003 | ansi-styles: 6.2.1 4004 | string-width: 5.1.2 4005 | strip-ansi: 7.1.0 4006 | dev: true 4007 | 4008 | /wrap-ansi@9.0.0: 4009 | resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} 4010 | engines: {node: '>=18'} 4011 | dependencies: 4012 | ansi-styles: 6.2.1 4013 | string-width: 7.1.0 4014 | strip-ansi: 7.1.0 4015 | dev: true 4016 | 4017 | /wrappy@1.0.2: 4018 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 4019 | dev: true 4020 | 4021 | /xml-name-validator@4.0.0: 4022 | resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} 4023 | engines: {node: '>=12'} 4024 | dev: true 4025 | 4026 | /y18n@5.0.8: 4027 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 4028 | engines: {node: '>=10'} 4029 | dev: true 4030 | 4031 | /yallist@4.0.0: 4032 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 4033 | dev: true 4034 | 4035 | /yaml-eslint-parser@1.2.2: 4036 | resolution: {integrity: sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==} 4037 | engines: {node: ^14.17.0 || >=16.0.0} 4038 | dependencies: 4039 | eslint-visitor-keys: 3.4.3 4040 | lodash: 4.17.21 4041 | yaml: 2.4.1 4042 | dev: true 4043 | 4044 | /yaml@2.3.4: 4045 | resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} 4046 | engines: {node: '>= 14'} 4047 | dev: true 4048 | 4049 | /yaml@2.4.1: 4050 | resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} 4051 | engines: {node: '>= 14'} 4052 | hasBin: true 4053 | dev: true 4054 | 4055 | /yargs-parser@21.1.1: 4056 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 4057 | engines: {node: '>=12'} 4058 | dev: true 4059 | 4060 | /yargs@17.7.2: 4061 | resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} 4062 | engines: {node: '>=12'} 4063 | dependencies: 4064 | cliui: 8.0.1 4065 | escalade: 3.1.2 4066 | get-caller-file: 2.0.5 4067 | require-directory: 2.1.1 4068 | string-width: 4.2.3 4069 | y18n: 5.0.8 4070 | yargs-parser: 21.1.1 4071 | dev: true 4072 | 4073 | /yocto-queue@0.1.0: 4074 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 4075 | engines: {node: '>=10'} 4076 | dev: true 4077 | 4078 | /yocto-queue@1.0.0: 4079 | resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} 4080 | engines: {node: '>=12.20'} 4081 | dev: true 4082 | -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - playground 3 | - examples/* -------------------------------------------------------------------------------- /src/crypto.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: 3 | * @Author: 14K 4 | * @Date: 2024-04-12 22:37:24 5 | * @LastEditTime: 2024-04-13 18:20:22 6 | * @LastEditors: 14K 7 | */ 8 | import util from './util'; 9 | 10 | export default class Crypto { 11 | 12 | private static blocksize = 16; 13 | 14 | public static sha1(message: number[]) { 15 | const m = util.bytesToWords(message); 16 | const l = message.length * 8; 17 | const w = []; 18 | let H0 = 1732584193; 19 | let H1 = -271733879; 20 | let H2 = -1732584194; 21 | let H3 = 271733878; 22 | let H4 = -1009589776; 23 | 24 | // Padding 25 | m[l >> 5] |= 0x80 << (24 - l % 32); 26 | m[((l + 64 >>> 9) << 4) + 15] = l; 27 | 28 | for (let i = 0; i < m.length; i += 16) { 29 | 30 | let a = H0; 31 | let b = H1; 32 | let c = H2; 33 | let d = H3; 34 | let e = H4; 35 | 36 | for (let j = 0; j < 80; j++) { 37 | 38 | if (j < 16) w[j] = m[i + j]; 39 | else { 40 | const n: any = w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16]; 41 | w[j] = (n << 1) | (n >>> 31); 42 | } 43 | 44 | const t = ((H0 << 5) | (H0 >>> 27)) + H4 + (w[j] >>> 0) + ( 45 | j < 20 ? (H1 & H2 | ~H1 & H3) + 1518500249 : 46 | j < 40 ? (H1 ^ H2 ^ H3) + 1859775393 : 47 | j < 60 ? (H1 & H2 | H1 & H3 | H2 & H3) - 1894007588 : 48 | (H1 ^ H2 ^ H3) - 899497514); 49 | 50 | H4 = H3; 51 | H3 = H2; 52 | H2 = (H1 << 30) | (H1 >>> 2); 53 | H1 = H0; 54 | H0 = t; 55 | } 56 | 57 | H0 += a; 58 | H1 += b; 59 | H2 += c; 60 | H3 += d; 61 | H4 += e; 62 | } 63 | 64 | return util.wordsToBytes([H0, H1, H2, H3, H4]); 65 | } 66 | 67 | public static hmac(counter: number, hexString: string) { 68 | const message = util.intToBytes(counter); 69 | let key = util.hexToBytes(hexString); 70 | 71 | // Allow arbitrary length keys 72 | key = key.length > this.blocksize * 4 ? this.sha1(key) : key; 73 | 74 | // XOR keys with pad constants 75 | let okey = key, 76 | ikey = key.slice(0); 77 | for (var i = 0; i < this.blocksize * 4; i++) { 78 | okey[i] ^= 0x5C; 79 | ikey[i] ^= 0x36; 80 | } 81 | 82 | return this.sha1(okey.concat(this.sha1(ikey.concat(message)))); 83 | }; 84 | } -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import util from './util'; 2 | import crypto from './crypto'; 3 | 4 | // default digit 5 | const DIGIT = 6; 6 | 7 | export default class OTPAuth{ 8 | 9 | public static hotp(key: string, counter: number, digit: number = DIGIT) { 10 | if(digit < 1 || digit > 10) 11 | digit = DIGIT; 12 | 13 | const decodedBytes = util.base32Decode(key); 14 | const hex = util.bytesToHex(decodedBytes); 15 | const digest = crypto.hmac(counter, hex); 16 | const offset = digest[digest.length - 1] & 0xf; 17 | const binary = (digest[offset] & 127) << 24 | (digest[offset + 1] & 255) << 16 | (digest[offset + 2] & 255) << 8 | (digest[offset + 3] & 255); 18 | 19 | return (binary % Math.pow(10, digit)).toString().padStart(digit, '0'); 20 | } 21 | 22 | public static hotpVerify(code: string, secret: string, count: number): boolean { 23 | const timeWindow = 2; 24 | 25 | for (let i = count - timeWindow ; i <= count + timeWindow ; i++) { 26 | const hotpCode = OTPAuth.hotp(secret, i, code.length); 27 | if (Number(hotpCode) === Number(code)) { 28 | return true 29 | } 30 | } 31 | 32 | return false 33 | } 34 | 35 | public static totp(secret: string, digit: number = DIGIT) { 36 | return OTPAuth.hotp(secret, this.getCount(), digit); 37 | } 38 | 39 | public static totpVerify(code: string, secret: string): boolean { 40 | return OTPAuth.hotpVerify(code, secret, this.getCount()); 41 | } 42 | 43 | private static getCount(timestamp: number = Date.now(), period: number = 30) { 44 | return Math.floor((timestamp / 1000) / period); 45 | } 46 | 47 | private static totptimeUsed(timestamp: number = Date.now(), period: number = 30) { 48 | return Math.floor(timestamp / 1000) % period; 49 | } 50 | 51 | public static timeUsed() { 52 | return OTPAuth.totptimeUsed(); 53 | } 54 | 55 | public static timeRemaining(period: number = 30) { 56 | return period - OTPAuth.totptimeUsed(); 57 | } 58 | } -------------------------------------------------------------------------------- /src/util.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: Util class 3 | * @Author: 14K 4 | * @Date: 2024-04-12 22:37:06 5 | * @LastEditTime: 2024-04-13 18:20:56 6 | * @LastEditors: 14K 7 | */ 8 | 9 | export default class Util { 10 | 11 | private static base32map = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'; 12 | 13 | public static stringToBytes (str: string) { 14 | const bytes: number[] = []; 15 | 16 | for (let i = 0; i < str.length; i++) { 17 | bytes.push(str.charCodeAt(i)); 18 | } 19 | 20 | return bytes; 21 | } 22 | 23 | public static bytesToWords (bytes: number[]) { 24 | const words: number[] = []; 25 | 26 | for (let i = 0, b = 0; i < bytes.length; i++, b += 8) { 27 | words[b >>> 5] |= bytes[i] << (24 - b % 32); 28 | } 29 | 30 | return words; 31 | } 32 | 33 | public static wordsToBytes (words: number[]) { 34 | const bytes: number[] = []; 35 | for (let b = 0; b < words.length * 32; b += 8) { 36 | bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF); 37 | } 38 | 39 | return bytes; 40 | } 41 | 42 | public static intToBytes (n: number) { 43 | const bytes: number[] = []; 44 | let num = n; 45 | 46 | for (let i = 7; i >= 0; --i) { 47 | bytes[i] = num & 255; // AND运算截取1字节数据存入数组中 48 | num = num >> 8; // 位移至下一个字节 49 | } 50 | 51 | return bytes; 52 | } 53 | 54 | public static hexToBytes (hex: string) { 55 | const bytes: number[] = []; 56 | 57 | for (let c = 0; c < hex.length; c += 2) { 58 | bytes.push(parseInt(hex.substr(c, 2), 16)); 59 | } 60 | 61 | return bytes; 62 | } 63 | 64 | public static bytesToHex (bytes: number[]) { 65 | const hex: string[] = []; 66 | 67 | for (let i = 0; i < bytes.length; i++) { 68 | hex.push((bytes[i] >>> 4).toString(16)); 69 | hex.push((bytes[i] & 0xF).toString(16)); 70 | } 71 | 72 | return hex.join(''); 73 | } 74 | 75 | public static bytesToBase32 (bytes: number[]) { 76 | // N N V G W 2 T E 77 | // 01101|011 01|10101|0 0110|1011 0|11010|10 011|01000 78 | // k j k j d 79 | 80 | const base32: string[] = []; 81 | let overflow: number = 6; 82 | 83 | for (let i = 0; i < bytes.length; i++) { 84 | switch (i % 5) { 85 | case 0: 86 | base32.push(this.base32map.charAt(bytes[i] >>> 3)); 87 | overflow = (bytes[i] & 0x7) << 2; 88 | break; 89 | 90 | case 1: 91 | base32.push(this.base32map.charAt(overflow | (bytes[i] >>> 6))); 92 | base32.push(this.base32map.charAt((bytes[i] >>> 1) & 0x1F)); 93 | overflow = (bytes[i] & 0x1) << 4; 94 | break; 95 | 96 | case 2: 97 | base32.push(this.base32map.charAt(overflow | (bytes[i] >>> 4))); 98 | overflow = (bytes[i] & 0xF) << 1; 99 | break; 100 | 101 | case 3: 102 | base32.push(this.base32map.charAt(overflow | (bytes[i] >>> 7))); 103 | base32.push(this.base32map.charAt((bytes[i] >>> 2) & 0x1F)); 104 | overflow = (bytes[i] & 0x3) << 3; 105 | break; 106 | 107 | case 4: 108 | base32.push(this.base32map.charAt(overflow | (bytes[i] >>> 5))); 109 | base32.push(this.base32map.charAt(bytes[i] & 0x1F)); 110 | overflow = -1; 111 | break; 112 | } 113 | } 114 | 115 | // 将剩余的字节编码 116 | if (overflow !== void 0 && overflow !== -1) { 117 | base32.push(this.base32map.charAt(overflow)); 118 | } 119 | 120 | // 填充 121 | while (base32.length % 8 != 0) { 122 | base32.push('='); 123 | } 124 | 125 | return base32.join(''); 126 | } 127 | 128 | public static base32Decode(encoded: string) { 129 | const charset = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'; 130 | const bitsPerChar = 5; 131 | const bytes: number[] = []; 132 | let buffer = 0; 133 | let bufferLength = 0; 134 | 135 | for (let i = 0; i < encoded.length; i++) { 136 | const char = encoded.charAt(i).toUpperCase(); 137 | const charValue = charset.indexOf(char); 138 | if (charValue === -1) { 139 | throw new Error(`Invalid character: ${char}`); 140 | } 141 | 142 | buffer = (buffer << bitsPerChar) | charValue; 143 | bufferLength += bitsPerChar; 144 | 145 | if (bufferLength >= 8) { 146 | bytes.push((buffer >> (bufferLength - 8)) & 0xff); 147 | bufferLength -= 8; 148 | } 149 | } 150 | 151 | if (bufferLength > 0) { 152 | buffer <<= (8 - bufferLength); 153 | bytes.push(buffer & 0xff); 154 | } 155 | 156 | return bytes; 157 | } 158 | } -------------------------------------------------------------------------------- /test/index.test.ts: -------------------------------------------------------------------------------- 1 | import { describe, test, expect, it } from 'vitest' 2 | import OTPAuth from "../src/index"; 3 | 4 | const secret = "JBSWY3DPEHPK3PXP" 5 | describe('totp', () => { 6 | it('default digit', () => { 7 | expect(OTPAuth.totp(secret).length).toBe(6) 8 | }) 9 | 10 | it('custom digit', () => { 11 | expect(OTPAuth.totp(secret, 8).length).toBe(8) 12 | }) 13 | 14 | it('totpVerify', () => { 15 | expect(OTPAuth.totpVerify("123456",secret)).toBe(false) 16 | }) 17 | 18 | it('timeUsed', () => { 19 | expect(OTPAuth.timeUsed()).toBeLessThanOrEqual(30) 20 | }) 21 | 22 | it('timeRemaining', () => { 23 | expect(OTPAuth.timeRemaining()).toBeLessThanOrEqual(30) 24 | }) 25 | }) 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "lib": [ 5 | "ESNext" 6 | ], 7 | "allowJs": true, 8 | "module": "ESNext", 9 | "moduleResolution": "Bundler", 10 | "resolveJsonModule": true, 11 | "strict": true, 12 | "strictNullChecks": true, 13 | "esModuleInterop": true, 14 | "skipDefaultLibCheck": true, 15 | "outDir": "dist", 16 | "skipLibCheck": true 17 | } 18 | } -------------------------------------------------------------------------------- /tsup.config.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: 3 | * @Author: 14K 4 | * @Date: 2024-04-10 15:50:13 5 | * @LastEditTime: 2024-04-10 17:05:30 6 | * @LastEditors: 14K 7 | */ 8 | import { defineConfig } from 'tsup' 9 | 10 | export default defineConfig({ 11 | // 入口文件 或者可以使用 entryPoints 底层是 esbuild 12 | entry: ['src/index.ts'], 13 | 14 | // 打包类型 支持以下几种 'cjs' | 'esm' | 'iife' 15 | format: ["cjs", "esm"], 16 | 17 | // 生成类型文件 xxx.d.ts 18 | dts: true, 19 | 20 | // 代码分割 默认esm模式支持 如果cjs需要代码分割的话就需要配置为 true 21 | splitting: false, 22 | 23 | // sourcemap 24 | sourcemap: false, 25 | 26 | // 每次打包先删除dist 27 | clean: true, 28 | }); --------------------------------------------------------------------------------