├── .github ├── FUNDING.yml ├── images │ ├── base.png │ ├── colorful.png │ ├── css.png │ ├── error.png │ ├── folding.png │ ├── html.png │ ├── infer.png │ └── more.png └── workflows │ ├── ci.yml │ └── release.yml ├── .gitignore ├── .npmrc ├── .vscode ├── extensions.json ├── launch.json ├── settings.json └── tasks.json ├── .vscodeignore ├── README.md ├── eslint.config.js ├── icon.png ├── package.json ├── playground ├── .vscode │ └── settings.json ├── error.ts ├── moreMatch.ts ├── otherFile.ts ├── test.php ├── test.ts └── test.vue ├── pnpm-lock.yaml ├── src ├── CommentFoldingRangeProvider.ts ├── HoverProvider.ts ├── builtinPlatforms.ts ├── constants │ ├── index.ts │ ├── patterns.ts │ ├── platform.ts │ └── regex.ts ├── foldOtherPlatformComment.ts ├── getPlatformInfo.ts ├── getVscodeRange.ts ├── index.ts ├── parseComment │ ├── index.ts │ └── parsePlatform.ts ├── setPlatformColor.ts ├── transformPlatform.ts └── utils │ └── findClosestPlatform.ts ├── test ├── index.test.ts └── parse │ └── index.test.ts ├── tsconfig.json └── tsup.config.ts /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | custom: ['https://afdian.com/a/flippedround', 'https://afdian.com/a/kejun', 'https://github.com/ModyQyW/sponsors', 'https://afdian.com/a/zguolee'] 2 | -------------------------------------------------------------------------------- /.github/images/base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uni-helper/uni-highlight-vscode/036796f47178523f0c7bd19be23e3583af61cbe6/.github/images/base.png -------------------------------------------------------------------------------- /.github/images/colorful.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uni-helper/uni-highlight-vscode/036796f47178523f0c7bd19be23e3583af61cbe6/.github/images/colorful.png -------------------------------------------------------------------------------- /.github/images/css.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uni-helper/uni-highlight-vscode/036796f47178523f0c7bd19be23e3583af61cbe6/.github/images/css.png -------------------------------------------------------------------------------- /.github/images/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uni-helper/uni-highlight-vscode/036796f47178523f0c7bd19be23e3583af61cbe6/.github/images/error.png -------------------------------------------------------------------------------- /.github/images/folding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uni-helper/uni-highlight-vscode/036796f47178523f0c7bd19be23e3583af61cbe6/.github/images/folding.png -------------------------------------------------------------------------------- /.github/images/html.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uni-helper/uni-highlight-vscode/036796f47178523f0c7bd19be23e3583af61cbe6/.github/images/html.png -------------------------------------------------------------------------------- /.github/images/infer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uni-helper/uni-highlight-vscode/036796f47178523f0c7bd19be23e3583af61cbe6/.github/images/infer.png -------------------------------------------------------------------------------- /.github/images/more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uni-helper/uni-highlight-vscode/036796f47178523f0c7bd19be23e3583af61cbe6/.github/images/more.png -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | 8 | pull_request: 9 | branches: 10 | - main 11 | 12 | jobs: 13 | lint: 14 | runs-on: ubuntu-latest 15 | steps: 16 | - uses: actions/checkout@v3 17 | 18 | - name: Install pnpm 19 | uses: pnpm/action-setup@v2 20 | 21 | - name: Set node 22 | uses: actions/setup-node@v3 23 | with: 24 | node-version: 16.x 25 | cache: pnpm 26 | 27 | - name: Setup 28 | run: npm i -g @antfu/ni 29 | 30 | - name: Install 31 | run: nci 32 | 33 | - name: Lint 34 | run: nr lint 35 | 36 | typecheck: 37 | runs-on: ubuntu-latest 38 | steps: 39 | - uses: actions/checkout@v3 40 | 41 | - name: Install pnpm 42 | uses: pnpm/action-setup@v2 43 | 44 | - name: Set node 45 | uses: actions/setup-node@v3 46 | with: 47 | node-version: 16.x 48 | cache: pnpm 49 | 50 | - name: Setup 51 | run: npm i -g @antfu/ni 52 | 53 | - name: Install 54 | run: nci 55 | 56 | - name: Typecheck 57 | run: nr typecheck 58 | 59 | test: 60 | runs-on: ${{ matrix.os }} 61 | 62 | strategy: 63 | matrix: 64 | node: [16.x] 65 | os: [ubuntu-latest, windows-latest, macos-latest] 66 | fail-fast: false 67 | 68 | steps: 69 | - uses: actions/checkout@v3 70 | 71 | - name: Install pnpm 72 | uses: pnpm/action-setup@v2 73 | 74 | - name: Set node version to ${{ matrix.node }} 75 | uses: actions/setup-node@v3 76 | with: 77 | node-version: ${{ matrix.node }} 78 | cache: pnpm 79 | 80 | - name: Setup 81 | run: npm i -g @antfu/ni 82 | 83 | - name: Install 84 | run: nci 85 | 86 | - name: Build 87 | run: nr build 88 | 89 | - name: Test 90 | run: nr test 91 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | push: 5 | tags: 6 | - 'v*' 7 | 8 | jobs: 9 | release: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: actions/checkout@v3 13 | - uses: pnpm/action-setup@v2 14 | - uses: actions/setup-node@v3 15 | with: 16 | node-version: 16.x 17 | cache: pnpm 18 | - run: pnpm install 19 | - run: pnpm run publish 20 | env: 21 | VSCE_PAT: ${{ secrets.VSCE_PAT }} 22 | OVSX_PAT: ${{ secrets.OVSX_PAT }} 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .cache 2 | .DS_Store 3 | .idea 4 | *.log 5 | *.tgz 6 | *.vsix 7 | coverage 8 | dist 9 | lib-cov 10 | logs 11 | node_modules 12 | temp 13 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | ignore-workspace-root-check=true 2 | node-linker=hoisted 3 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "amodio.tsl-problem-matcher" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": "Extension", 6 | "type": "extensionHost", 7 | "request": "launch", 8 | "runtimeExecutable": "${execPath}", 9 | "args": [ 10 | "--extensionDevelopmentPath=${workspaceFolder}" 11 | ], 12 | "outFiles": [ 13 | "${workspaceFolder}/dist/**/*.js" 14 | ], 15 | "preLaunchTask": "npm: dev" 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "cSpell.words": [ 3 | "KUAISHOU", 4 | "NVUE", 5 | "TOUTIAO" 6 | ], 7 | "eslint.experimental.useFlatConfig": true, 8 | "prettier.enable": false, 9 | "editor.formatOnSave": false, 10 | // Auto fix 11 | "editor.codeActionsOnSave": { 12 | "source.fixAll": "never", 13 | "source.fixAll.eslint": "explicit", 14 | "source.organizeImports": "never" 15 | }, 16 | // Enable eslint for all supported languages 17 | "eslint.validate": [ 18 | "javascript", 19 | "javascriptreact", 20 | "typescript", 21 | "typescriptreact", 22 | "vue", 23 | "html", 24 | "markdown", 25 | "json", 26 | "jsonc", 27 | "yaml" 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "2.0.0", 3 | "tasks": [ 4 | { 5 | "type": "npm", 6 | "script": "dev", 7 | "isBackground": true, 8 | "presentation": { 9 | "reveal": "never" 10 | }, 11 | "problemMatcher": [ 12 | { 13 | "base": "$ts-webpack-watch", 14 | "background": { 15 | "activeOnStart": true, 16 | "beginsPattern": "Build start", 17 | "endsPattern": "Build success" 18 | } 19 | } 20 | ], 21 | "group": "build" 22 | } 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /.vscodeignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | playground 3 | src 4 | test 5 | 6 | .gitignore 7 | .github 8 | .vscode 9 | 10 | eslint.config.js 11 | pnpm-lock.yaml 12 | tsconfig.json 13 | tsup.config.ts 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

uni-helper/uni-highlight-vscode

2 |

3 | Visual Studio Marketplace Version 4 | 5 | Visual Studio Marketplace Version 6 |

7 | 8 | ## VS Code条件编译语法高亮支持 9 | 10 | 在`VS Code`中对条件编译的代码注释部分提供了语法高亮和折叠功能,可分辨出写法是否正确,使得代码更加清晰 11 | 12 | *** 13 | 14 | ### 基础使用 15 | 16 | 17 | 18 | *** 19 | 20 | ### 错误提示 21 | 22 | 23 | 24 | *** 25 | 26 | ### 错误推测 27 | 28 | 29 | 30 | *** 31 | 32 | ### 注释块折叠 33 | 34 | 35 | 36 | *** 37 | 38 | ### 多平台高亮 39 | 40 | 41 | 42 | *** 43 | 44 | ### 自定义高亮 45 | 46 | + 文件路径 47 | + .vscode/settings.json 48 | + 配置项 49 | + uni-highlight.platform 50 | + 配置说明 51 | + 可以覆盖原有高亮颜色 52 | + 可以添加新的平台及颜色 53 | + 可以增加平台说明 54 | 55 | ```json 56 | { 57 | "uni-highlight.platform": { 58 | "MP-DINGTALK": "#41b883" 59 | } 60 | } 61 | ``` 62 | 或者 63 | ```json 64 | { 65 | "uni-highlight.platform": { 66 | "MP-DINGTALK": { 67 | "color": "#41b883", 68 | "label": "钉钉" 69 | } 70 | } 71 | } 72 | ``` 73 | 74 | *** 75 | 76 | ### 各平台多种颜色高亮 77 | 78 | 79 | 80 | *** 81 | 82 | ### css高亮 83 | 84 | 85 | 86 | *** 87 | 88 | ### html高亮 89 | 90 | 91 | 92 | ## [Sponsors](https://github.com/FliPPeDround/sponsors) 93 | 94 |

95 | 96 | sponsors 97 | 98 |

99 | -------------------------------------------------------------------------------- /eslint.config.js: -------------------------------------------------------------------------------- 1 | const antfu = require('@antfu/eslint-config').default 2 | 3 | module.exports = antfu({ 4 | ignores: ['playground'], 5 | rules: { 6 | 'no-new': 'off', 7 | }, 8 | }) 9 | -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uni-helper/uni-highlight-vscode/036796f47178523f0c7bd19be23e3583af61cbe6/icon.png -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "publisher": "uni-helper", 3 | "name": "uni-highlight-vscode", 4 | "displayName": "uni-highlight", 5 | "version": "0.3.15", 6 | "private": true, 7 | "packageManager": "pnpm@8.3.1", 8 | "description": "在 Vscode中对条件编译的代码注释部分提供了语法高亮", 9 | "author": "FliPPeDround https://github.com/FliPPeDround", 10 | "license": "MIT", 11 | "funding": "https://afdian.com/a/flippedround", 12 | "homepage": "https://github.com/uni-helper/uni-highlight-vscode#readme", 13 | "repository": { 14 | "type": "git", 15 | "url": "https://github.com/uni-helper/uni-highlight-vscode" 16 | }, 17 | "bugs": { 18 | "url": "https://github.com/uni-helper/uni-highlight-vscode/issues" 19 | }, 20 | "keywords": [ 21 | "uniapp", 22 | "uni-app", 23 | "highlight" 24 | ], 25 | "categories": [ 26 | "Other" 27 | ], 28 | "main": "./dist/index.js", 29 | "icon": "icon.png", 30 | "files": [ 31 | "dist" 32 | ], 33 | "engines": { 34 | "vscode": "^1.47.0" 35 | }, 36 | "activationEvents": [ 37 | "onStartupFinished" 38 | ], 39 | "contributes": { 40 | "commands": [ 41 | { 42 | "command": "uni.comment.reload", 43 | "title": "Uni Helper: 重新加载条件编译高亮" 44 | }, 45 | { 46 | "command": "uni.comment.fold-other-platform", 47 | "title": "Uni Helper: 选择平台并折叠其他平台注释", 48 | "icon": "$(list-tree)" 49 | } 50 | ], 51 | "configuration": { 52 | "title": "uni-highlight", 53 | "properties": { 54 | "uni-highlight.platform": { 55 | "type": "object", 56 | "default": {}, 57 | "description": "自定义平台高亮和名称" 58 | } 59 | } 60 | }, 61 | "menus": { 62 | "editor/title": [ 63 | { 64 | "command": "uni.comment.fold-other-platform", 65 | "group": "navigation@0", 66 | "when": "uni.hasComment" 67 | } 68 | ] 69 | } 70 | }, 71 | "scripts": { 72 | "build": "tsup src/index.ts --external vscode", 73 | "dev": "nr build --watch", 74 | "lint": "eslint .", 75 | "lint:fix": "eslint . --fix", 76 | "vscode:prepublish": "nr build", 77 | "publish": "concurrently \"pnpm:publish:vscode\" \"pnpm:publish:openvsx\"", 78 | "publish:vscode": "vsce package --no-dependencies && vsce publish --no-dependencies", 79 | "publish:openvsx": "ovsx publish", 80 | "test": "vitest", 81 | "typecheck": "tsc --noEmit", 82 | "release": "bumpp" 83 | }, 84 | "devDependencies": { 85 | "@antfu/eslint-config": "^2.1.2", 86 | "@antfu/ni": "^0.21.2", 87 | "@antfu/utils": "^0.7.6", 88 | "@types/node": "^18.15.11", 89 | "@types/vscode": "1.47.0", 90 | "@vscode/vsce": "^2.19.0", 91 | "bumpp": "^9.1.0", 92 | "concurrently": "^8.0.1", 93 | "eslint": "^8.54.0", 94 | "fastest-levenshtein": "^1.0.16", 95 | "ovsx": "^0.8.0", 96 | "pnpm": "^8.1.1", 97 | "tsup": "^6.7.0", 98 | "typescript": "^5.0.3", 99 | "vite": "^4.2.1", 100 | "vitest": "^0.29.8" 101 | } 102 | } 103 | -------------------------------------------------------------------------------- /playground/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "uni-highlight.platform": { 3 | "MP-DINGTALK": { 4 | "color": "#1CA2FC", 5 | "label": "钉钉" 6 | } 7 | }, 8 | "cSpell.words": [ 9 | "WEIXIN" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /playground/error.ts: -------------------------------------------------------------------------------- 1 | // #ifdef baidu 2 | const a = 1 3 | export { a } 4 | // #endif 5 | -------------------------------------------------------------------------------- /playground/moreMatch.ts: -------------------------------------------------------------------------------- 1 | // #ifdef H5 || MP 2 | const a = 1 3 | export { a } 4 | // #endif 5 | -------------------------------------------------------------------------------- /playground/otherFile.ts: -------------------------------------------------------------------------------- 1 | export function bar() { 2 | const bar = 1 3 | return bar 4 | } 5 | 6 | const foo = 1 7 | export default foo 8 | -------------------------------------------------------------------------------- /playground/test.php: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /playground/test.ts: -------------------------------------------------------------------------------- 1 | // #ifdef MP-DINGTALK 2 | export const test = 1 3 | // #endif 4 | 5 | // #ifdef APP 6 | // #ifdef UNI-APP-X 7 | 8 | // #ifdef weixin 9 | -------------------------------------------------------------------------------- /playground/test.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 18 | 19 | 27 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | devDependencies: 11 | '@antfu/eslint-config': 12 | specifier: ^2.1.2 13 | version: 2.1.2(eslint@8.54.0)(typescript@5.0.4)(vitest@0.29.8) 14 | '@antfu/ni': 15 | specifier: ^0.21.2 16 | version: 0.21.3 17 | '@antfu/utils': 18 | specifier: ^0.7.6 19 | version: 0.7.6 20 | '@types/node': 21 | specifier: ^18.15.11 22 | version: 18.15.13 23 | '@types/vscode': 24 | specifier: 1.47.0 25 | version: 1.47.0 26 | '@vscode/vsce': 27 | specifier: ^2.19.0 28 | version: 2.19.0 29 | bumpp: 30 | specifier: ^9.1.0 31 | version: 9.1.0 32 | concurrently: 33 | specifier: ^8.0.1 34 | version: 8.0.1 35 | eslint: 36 | specifier: ^8.54.0 37 | version: 8.54.0 38 | fastest-levenshtein: 39 | specifier: ^1.0.16 40 | version: 1.0.16 41 | ovsx: 42 | specifier: ^0.8.0 43 | version: 0.8.0 44 | pnpm: 45 | specifier: ^8.1.1 46 | version: 8.3.1 47 | tsup: 48 | specifier: ^6.7.0 49 | version: 6.7.0(typescript@5.0.4) 50 | typescript: 51 | specifier: ^5.0.3 52 | version: 5.0.4 53 | vite: 54 | specifier: ^4.2.1 55 | version: 4.3.1(@types/node@18.15.13) 56 | vitest: 57 | specifier: ^0.29.8 58 | version: 0.29.8 59 | 60 | packages: 61 | 62 | /@aashutoshrathi/word-wrap@1.2.6: 63 | resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} 64 | engines: {node: '>=0.10.0'} 65 | dev: true 66 | 67 | /@antfu/eslint-config@2.1.2(eslint@8.54.0)(typescript@5.0.4)(vitest@0.29.8): 68 | resolution: {integrity: sha512-eOkXtRcj3pAqkdbqNYEBUgFKTcDYYwAAAnGEs+DTTcJJJReIlrPx4WJIE02whOsi+5oKcJ7EK/swS6PcdcCIog==} 69 | hasBin: true 70 | peerDependencies: 71 | '@unocss/eslint-plugin': '>=0.50.0' 72 | eslint: '>=8.40.0' 73 | eslint-plugin-react: ^7.33.2 74 | eslint-plugin-react-hooks: ^4.6.0 75 | eslint-plugin-react-refresh: ^0.4.4 76 | peerDependenciesMeta: 77 | '@unocss/eslint-plugin': 78 | optional: true 79 | eslint-plugin-react: 80 | optional: true 81 | eslint-plugin-react-hooks: 82 | optional: true 83 | eslint-plugin-react-refresh: 84 | optional: true 85 | dependencies: 86 | '@antfu/eslint-define-config': 1.23.0-2 87 | '@antfu/install-pkg': 0.3.0 88 | '@eslint-types/jsdoc': 46.8.2-1 89 | '@eslint-types/typescript-eslint': 6.12.0 90 | '@eslint-types/unicorn': 49.0.0 91 | '@stylistic/eslint-plugin': 1.4.1(eslint@8.54.0)(typescript@5.0.4) 92 | '@typescript-eslint/eslint-plugin': 6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.54.0)(typescript@5.0.4) 93 | '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.0.4) 94 | eslint: 8.54.0 95 | eslint-config-flat-gitignore: 0.1.1 96 | eslint-plugin-antfu: 1.0.11(eslint@8.54.0) 97 | eslint-plugin-eslint-comments: 3.2.0(eslint@8.54.0) 98 | eslint-plugin-i: 2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.54.0) 99 | eslint-plugin-jsdoc: 46.9.0(eslint@8.54.0) 100 | eslint-plugin-jsonc: 2.10.0(eslint@8.54.0) 101 | eslint-plugin-markdown: 3.0.1(eslint@8.54.0) 102 | eslint-plugin-n: 16.3.1(eslint@8.54.0) 103 | eslint-plugin-no-only-tests: 3.1.0 104 | eslint-plugin-perfectionist: 2.5.0(eslint@8.54.0)(typescript@5.0.4)(vue-eslint-parser@9.3.2) 105 | eslint-plugin-unicorn: 49.0.0(eslint@8.54.0) 106 | eslint-plugin-unused-imports: 3.0.0(@typescript-eslint/eslint-plugin@6.13.1)(eslint@8.54.0) 107 | eslint-plugin-vitest: 0.3.10(@typescript-eslint/eslint-plugin@6.13.1)(eslint@8.54.0)(typescript@5.0.4)(vitest@0.29.8) 108 | eslint-plugin-vue: 9.19.2(eslint@8.54.0) 109 | eslint-plugin-yml: 1.10.0(eslint@8.54.0) 110 | globals: 13.23.0 111 | jsonc-eslint-parser: 2.4.0 112 | local-pkg: 0.5.0 113 | parse-gitignore: 2.0.0 114 | picocolors: 1.0.0 115 | prompts: 2.4.2 116 | vue-eslint-parser: 9.3.2(eslint@8.54.0) 117 | yaml-eslint-parser: 1.2.2 118 | yargs: 17.7.2 119 | transitivePeerDependencies: 120 | - astro-eslint-parser 121 | - eslint-import-resolver-typescript 122 | - eslint-import-resolver-webpack 123 | - supports-color 124 | - svelte 125 | - svelte-eslint-parser 126 | - typescript 127 | - vitest 128 | dev: true 129 | 130 | /@antfu/eslint-define-config@1.23.0-2: 131 | resolution: {integrity: sha512-LvxY21+ZhpuBf/aHeBUtGQhSEfad4PkNKXKvDOSvukaM3XVTfBhwmHX2EKwAsdq5DlfjbT3qqYyMiueBIO5iDQ==} 132 | engines: {node: '>=18.0.0', npm: '>=9.0.0', pnpm: '>= 8.6.0'} 133 | dev: true 134 | 135 | /@antfu/install-pkg@0.3.0: 136 | resolution: {integrity: sha512-hzTVgEFGBBMXUjsNhIRDdt9jvAkZzPbMLQW8q2wXz455+1zxGFtM0nxPl2pukFWHXcC/Bn/UCHV9rd0+pwYsmw==} 137 | dependencies: 138 | execa: 8.0.1 139 | find-up: 7.0.0 140 | dev: true 141 | 142 | /@antfu/ni@0.21.3: 143 | resolution: {integrity: sha512-iDtQMeMW1kKV4nzQ+tjYOIPUm6nmh7pJe4sM0kx1jdAChKSCBLStqlgIoo5Tce++p+o8cBiWIzC3jg6oHyjzMA==} 144 | hasBin: true 145 | dev: true 146 | 147 | /@antfu/utils@0.7.6: 148 | resolution: {integrity: sha512-pvFiLP2BeOKA/ZOS6jxx4XhKzdVLHDhGlFEaZ2flWWYf2xOqVniqpk38I04DFRyz+L0ASggl7SkItTc+ZLju4w==} 149 | dev: true 150 | 151 | /@babel/code-frame@7.21.4: 152 | resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} 153 | engines: {node: '>=6.9.0'} 154 | dependencies: 155 | '@babel/highlight': 7.18.6 156 | dev: true 157 | 158 | /@babel/helper-validator-identifier@7.22.20: 159 | resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} 160 | engines: {node: '>=6.9.0'} 161 | dev: true 162 | 163 | /@babel/highlight@7.18.6: 164 | resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} 165 | engines: {node: '>=6.9.0'} 166 | dependencies: 167 | '@babel/helper-validator-identifier': 7.22.20 168 | chalk: 2.4.2 169 | js-tokens: 4.0.0 170 | dev: true 171 | 172 | /@es-joy/jsdoccomment@0.41.0: 173 | resolution: {integrity: sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==} 174 | engines: {node: '>=16'} 175 | dependencies: 176 | comment-parser: 1.4.1 177 | esquery: 1.5.0 178 | jsdoc-type-pratt-parser: 4.0.0 179 | dev: true 180 | 181 | /@esbuild/android-arm64@0.17.17: 182 | resolution: {integrity: sha512-jaJ5IlmaDLFPNttv0ofcwy/cfeY4bh/n705Tgh+eLObbGtQBK3EPAu+CzL95JVE4nFAliyrnEu0d32Q5foavqg==} 183 | engines: {node: '>=12'} 184 | cpu: [arm64] 185 | os: [android] 186 | requiresBuild: true 187 | dev: true 188 | optional: true 189 | 190 | /@esbuild/android-arm@0.17.17: 191 | resolution: {integrity: sha512-E6VAZwN7diCa3labs0GYvhEPL2M94WLF8A+czO8hfjREXxba8Ng7nM5VxV+9ihNXIY1iQO1XxUU4P7hbqbICxg==} 192 | engines: {node: '>=12'} 193 | cpu: [arm] 194 | os: [android] 195 | requiresBuild: true 196 | dev: true 197 | optional: true 198 | 199 | /@esbuild/android-x64@0.17.17: 200 | resolution: {integrity: sha512-446zpfJ3nioMC7ASvJB1pszHVskkw4u/9Eu8s5yvvsSDTzYh4p4ZIRj0DznSl3FBF0Z/mZfrKXTtt0QCoFmoHA==} 201 | engines: {node: '>=12'} 202 | cpu: [x64] 203 | os: [android] 204 | requiresBuild: true 205 | dev: true 206 | optional: true 207 | 208 | /@esbuild/darwin-arm64@0.17.17: 209 | resolution: {integrity: sha512-m/gwyiBwH3jqfUabtq3GH31otL/0sE0l34XKpSIqR7NjQ/XHQ3lpmQHLHbG8AHTGCw8Ao059GvV08MS0bhFIJQ==} 210 | engines: {node: '>=12'} 211 | cpu: [arm64] 212 | os: [darwin] 213 | requiresBuild: true 214 | dev: true 215 | optional: true 216 | 217 | /@esbuild/darwin-x64@0.17.17: 218 | resolution: {integrity: sha512-4utIrsX9IykrqYaXR8ob9Ha2hAY2qLc6ohJ8c0CN1DR8yWeMrTgYFjgdeQ9LIoTOfLetXjuCu5TRPHT9yKYJVg==} 219 | engines: {node: '>=12'} 220 | cpu: [x64] 221 | os: [darwin] 222 | requiresBuild: true 223 | dev: true 224 | optional: true 225 | 226 | /@esbuild/freebsd-arm64@0.17.17: 227 | resolution: {integrity: sha512-4PxjQII/9ppOrpEwzQ1b0pXCsFLqy77i0GaHodrmzH9zq2/NEhHMAMJkJ635Ns4fyJPFOlHMz4AsklIyRqFZWA==} 228 | engines: {node: '>=12'} 229 | cpu: [arm64] 230 | os: [freebsd] 231 | requiresBuild: true 232 | dev: true 233 | optional: true 234 | 235 | /@esbuild/freebsd-x64@0.17.17: 236 | resolution: {integrity: sha512-lQRS+4sW5S3P1sv0z2Ym807qMDfkmdhUYX30GRBURtLTrJOPDpoU0kI6pVz1hz3U0+YQ0tXGS9YWveQjUewAJw==} 237 | engines: {node: '>=12'} 238 | cpu: [x64] 239 | os: [freebsd] 240 | requiresBuild: true 241 | dev: true 242 | optional: true 243 | 244 | /@esbuild/linux-arm64@0.17.17: 245 | resolution: {integrity: sha512-2+pwLx0whKY1/Vqt8lyzStyda1v0qjJ5INWIe+d8+1onqQxHLLi3yr5bAa4gvbzhZqBztifYEu8hh1La5+7sUw==} 246 | engines: {node: '>=12'} 247 | cpu: [arm64] 248 | os: [linux] 249 | requiresBuild: true 250 | dev: true 251 | optional: true 252 | 253 | /@esbuild/linux-arm@0.17.17: 254 | resolution: {integrity: sha512-biDs7bjGdOdcmIk6xU426VgdRUpGg39Yz6sT9Xp23aq+IEHDb/u5cbmu/pAANpDB4rZpY/2USPhCA+w9t3roQg==} 255 | engines: {node: '>=12'} 256 | cpu: [arm] 257 | os: [linux] 258 | requiresBuild: true 259 | dev: true 260 | optional: true 261 | 262 | /@esbuild/linux-ia32@0.17.17: 263 | resolution: {integrity: sha512-IBTTv8X60dYo6P2t23sSUYym8fGfMAiuv7PzJ+0LcdAndZRzvke+wTVxJeCq4WgjppkOpndL04gMZIFvwoU34Q==} 264 | engines: {node: '>=12'} 265 | cpu: [ia32] 266 | os: [linux] 267 | requiresBuild: true 268 | dev: true 269 | optional: true 270 | 271 | /@esbuild/linux-loong64@0.17.17: 272 | resolution: {integrity: sha512-WVMBtcDpATjaGfWfp6u9dANIqmU9r37SY8wgAivuKmgKHE+bWSuv0qXEFt/p3qXQYxJIGXQQv6hHcm7iWhWjiw==} 273 | engines: {node: '>=12'} 274 | cpu: [loong64] 275 | os: [linux] 276 | requiresBuild: true 277 | dev: true 278 | optional: true 279 | 280 | /@esbuild/linux-mips64el@0.17.17: 281 | resolution: {integrity: sha512-2kYCGh8589ZYnY031FgMLy0kmE4VoGdvfJkxLdxP4HJvWNXpyLhjOvxVsYjYZ6awqY4bgLR9tpdYyStgZZhi2A==} 282 | engines: {node: '>=12'} 283 | cpu: [mips64el] 284 | os: [linux] 285 | requiresBuild: true 286 | dev: true 287 | optional: true 288 | 289 | /@esbuild/linux-ppc64@0.17.17: 290 | resolution: {integrity: sha512-KIdG5jdAEeAKogfyMTcszRxy3OPbZhq0PPsW4iKKcdlbk3YE4miKznxV2YOSmiK/hfOZ+lqHri3v8eecT2ATwQ==} 291 | engines: {node: '>=12'} 292 | cpu: [ppc64] 293 | os: [linux] 294 | requiresBuild: true 295 | dev: true 296 | optional: true 297 | 298 | /@esbuild/linux-riscv64@0.17.17: 299 | resolution: {integrity: sha512-Cj6uWLBR5LWhcD/2Lkfg2NrkVsNb2sFM5aVEfumKB2vYetkA/9Uyc1jVoxLZ0a38sUhFk4JOVKH0aVdPbjZQeA==} 300 | engines: {node: '>=12'} 301 | cpu: [riscv64] 302 | os: [linux] 303 | requiresBuild: true 304 | dev: true 305 | optional: true 306 | 307 | /@esbuild/linux-s390x@0.17.17: 308 | resolution: {integrity: sha512-lK+SffWIr0XsFf7E0srBjhpkdFVJf3HEgXCwzkm69kNbRar8MhezFpkIwpk0qo2IOQL4JE4mJPJI8AbRPLbuOQ==} 309 | engines: {node: '>=12'} 310 | cpu: [s390x] 311 | os: [linux] 312 | requiresBuild: true 313 | dev: true 314 | optional: true 315 | 316 | /@esbuild/linux-x64@0.17.17: 317 | resolution: {integrity: sha512-XcSGTQcWFQS2jx3lZtQi7cQmDYLrpLRyz1Ns1DzZCtn898cWfm5Icx/DEWNcTU+T+tyPV89RQtDnI7qL2PObPg==} 318 | engines: {node: '>=12'} 319 | cpu: [x64] 320 | os: [linux] 321 | requiresBuild: true 322 | dev: true 323 | optional: true 324 | 325 | /@esbuild/netbsd-x64@0.17.17: 326 | resolution: {integrity: sha512-RNLCDmLP5kCWAJR+ItLM3cHxzXRTe4N00TQyQiimq+lyqVqZWGPAvcyfUBM0isE79eEZhIuGN09rAz8EL5KdLA==} 327 | engines: {node: '>=12'} 328 | cpu: [x64] 329 | os: [netbsd] 330 | requiresBuild: true 331 | dev: true 332 | optional: true 333 | 334 | /@esbuild/openbsd-x64@0.17.17: 335 | resolution: {integrity: sha512-PAXswI5+cQq3Pann7FNdcpSUrhrql3wKjj3gVkmuz6OHhqqYxKvi6GgRBoaHjaG22HV/ZZEgF9TlS+9ftHVigA==} 336 | engines: {node: '>=12'} 337 | cpu: [x64] 338 | os: [openbsd] 339 | requiresBuild: true 340 | dev: true 341 | optional: true 342 | 343 | /@esbuild/sunos-x64@0.17.17: 344 | resolution: {integrity: sha512-V63egsWKnx/4V0FMYkr9NXWrKTB5qFftKGKuZKFIrAkO/7EWLFnbBZNM1CvJ6Sis+XBdPws2YQSHF1Gqf1oj/Q==} 345 | engines: {node: '>=12'} 346 | cpu: [x64] 347 | os: [sunos] 348 | requiresBuild: true 349 | dev: true 350 | optional: true 351 | 352 | /@esbuild/win32-arm64@0.17.17: 353 | resolution: {integrity: sha512-YtUXLdVnd6YBSYlZODjWzH+KzbaubV0YVd6UxSfoFfa5PtNJNaW+1i+Hcmjpg2nEe0YXUCNF5bkKy1NnBv1y7Q==} 354 | engines: {node: '>=12'} 355 | cpu: [arm64] 356 | os: [win32] 357 | requiresBuild: true 358 | dev: true 359 | optional: true 360 | 361 | /@esbuild/win32-ia32@0.17.17: 362 | resolution: {integrity: sha512-yczSLRbDdReCO74Yfc5tKG0izzm+lPMYyO1fFTcn0QNwnKmc3K+HdxZWLGKg4pZVte7XVgcFku7TIZNbWEJdeQ==} 363 | engines: {node: '>=12'} 364 | cpu: [ia32] 365 | os: [win32] 366 | requiresBuild: true 367 | dev: true 368 | optional: true 369 | 370 | /@esbuild/win32-x64@0.17.17: 371 | resolution: {integrity: sha512-FNZw7H3aqhF9OyRQbDDnzUApDXfC1N6fgBhkqEO2jvYCJ+DxMTfZVqg3AX0R1khg1wHTBRD5SdcibSJ+XF6bFg==} 372 | engines: {node: '>=12'} 373 | cpu: [x64] 374 | os: [win32] 375 | requiresBuild: true 376 | dev: true 377 | optional: true 378 | 379 | /@eslint-community/eslint-utils@4.4.0(eslint@8.54.0): 380 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 381 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 382 | peerDependencies: 383 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 384 | dependencies: 385 | eslint: 8.54.0 386 | eslint-visitor-keys: 3.4.3 387 | dev: true 388 | 389 | /@eslint-community/regexpp@4.10.0: 390 | resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} 391 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 392 | dev: true 393 | 394 | /@eslint-types/jsdoc@46.8.2-1: 395 | resolution: {integrity: sha512-FwD7V0xX0jyaqj8Ul5ZY+TAAPohDfVqtbuXJNHb+OIv1aTIqZi5+Zn3F2UwQ5O3BnQd2mTduyK0+HjGx3/AMFg==} 396 | dev: true 397 | 398 | /@eslint-types/typescript-eslint@6.12.0: 399 | resolution: {integrity: sha512-N8cbOYjyFl2BFgDhDgHhTGpgiMkFg0CoITG5hdBm9ZGmcEgUvFBnHvHG7qJl3qVEmFnoKUdfSAcr7MRb2/Jxvw==} 400 | dev: true 401 | 402 | /@eslint-types/unicorn@49.0.0: 403 | resolution: {integrity: sha512-NfXSZIsPFRD2fwTDZQj8SaXqS/rXjB5foxMraLovyrYGXiQK2y0780drDKYYSVbqvco29QIYoZNmnKTUkzZMvQ==} 404 | dev: true 405 | 406 | /@eslint/eslintrc@2.1.3: 407 | resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} 408 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 409 | dependencies: 410 | ajv: 6.12.6 411 | debug: 4.3.4 412 | espree: 9.6.1 413 | globals: 13.23.0 414 | ignore: 5.2.4 415 | import-fresh: 3.3.0 416 | js-yaml: 4.1.0 417 | minimatch: 3.1.2 418 | strip-json-comments: 3.1.1 419 | transitivePeerDependencies: 420 | - supports-color 421 | dev: true 422 | 423 | /@eslint/js@8.54.0: 424 | resolution: {integrity: sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==} 425 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 426 | dev: true 427 | 428 | /@humanwhocodes/config-array@0.11.13: 429 | resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} 430 | engines: {node: '>=10.10.0'} 431 | dependencies: 432 | '@humanwhocodes/object-schema': 2.0.1 433 | debug: 4.3.4 434 | minimatch: 3.1.2 435 | transitivePeerDependencies: 436 | - supports-color 437 | dev: true 438 | 439 | /@humanwhocodes/module-importer@1.0.1: 440 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 441 | engines: {node: '>=12.22'} 442 | dev: true 443 | 444 | /@humanwhocodes/object-schema@2.0.1: 445 | resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} 446 | dev: true 447 | 448 | /@jridgewell/gen-mapping@0.3.3: 449 | resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} 450 | engines: {node: '>=6.0.0'} 451 | dependencies: 452 | '@jridgewell/set-array': 1.1.2 453 | '@jridgewell/sourcemap-codec': 1.4.15 454 | '@jridgewell/trace-mapping': 0.3.18 455 | dev: true 456 | 457 | /@jridgewell/resolve-uri@3.1.0: 458 | resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} 459 | engines: {node: '>=6.0.0'} 460 | dev: true 461 | 462 | /@jridgewell/set-array@1.1.2: 463 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} 464 | engines: {node: '>=6.0.0'} 465 | dev: true 466 | 467 | /@jridgewell/sourcemap-codec@1.4.14: 468 | resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} 469 | dev: true 470 | 471 | /@jridgewell/sourcemap-codec@1.4.15: 472 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 473 | dev: true 474 | 475 | /@jridgewell/trace-mapping@0.3.18: 476 | resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} 477 | dependencies: 478 | '@jridgewell/resolve-uri': 3.1.0 479 | '@jridgewell/sourcemap-codec': 1.4.14 480 | dev: true 481 | 482 | /@jsdevtools/ez-spawn@3.0.4: 483 | resolution: {integrity: sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==} 484 | engines: {node: '>=10'} 485 | dependencies: 486 | call-me-maybe: 1.0.2 487 | cross-spawn: 7.0.3 488 | string-argv: 0.3.1 489 | type-detect: 4.0.8 490 | dev: true 491 | 492 | /@nodelib/fs.scandir@2.1.5: 493 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 494 | engines: {node: '>= 8'} 495 | dependencies: 496 | '@nodelib/fs.stat': 2.0.5 497 | run-parallel: 1.2.0 498 | dev: true 499 | 500 | /@nodelib/fs.stat@2.0.5: 501 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 502 | engines: {node: '>= 8'} 503 | dev: true 504 | 505 | /@nodelib/fs.walk@1.2.8: 506 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 507 | engines: {node: '>= 8'} 508 | dependencies: 509 | '@nodelib/fs.scandir': 2.1.5 510 | fastq: 1.15.0 511 | dev: true 512 | 513 | /@stylistic/eslint-plugin-js@1.4.1(eslint@8.54.0): 514 | resolution: {integrity: sha512-WXHPEVw5PB7OML7cLwHJDEcCyLiP7vzKeBbSwmpHLK0oh0JYkoJfTg2hEdFuQT5rQxFy3KzCy9R1mZ0wgLjKrA==} 515 | engines: {node: ^16.0.0 || >=18.0.0} 516 | peerDependencies: 517 | eslint: '>=8.40.0' 518 | dependencies: 519 | acorn: 8.11.2 520 | escape-string-regexp: 4.0.0 521 | eslint: 8.54.0 522 | eslint-visitor-keys: 3.4.3 523 | espree: 9.6.1 524 | graphemer: 1.4.0 525 | dev: true 526 | 527 | /@stylistic/eslint-plugin-jsx@1.4.1(eslint@8.54.0): 528 | resolution: {integrity: sha512-INBYpZmXrkeqnjCrUuTKMa7BeXiCR5VNvq71033hbPqXnG9oQDxX5mqE9Duj9qlISEOsxzhSr+UXGmq3mVYG9Q==} 529 | engines: {node: ^16.0.0 || >=18.0.0} 530 | peerDependencies: 531 | eslint: '>=8.40.0' 532 | dependencies: 533 | '@stylistic/eslint-plugin-js': 1.4.1(eslint@8.54.0) 534 | eslint: 8.54.0 535 | estraverse: 5.3.0 536 | dev: true 537 | 538 | /@stylistic/eslint-plugin-ts@1.4.1(eslint@8.54.0)(typescript@5.0.4): 539 | resolution: {integrity: sha512-zuqnxhWoqPhZcxOb7AiYZz1RF/fUCsbJ7xq60IdRWnEY6MPybqYVJAb+SYilJ3PYxqmz8zdZeYkSeVy6f1fNnA==} 540 | engines: {node: ^16.0.0 || >=18.0.0} 541 | peerDependencies: 542 | eslint: '>=8.40.0' 543 | dependencies: 544 | '@stylistic/eslint-plugin-js': 1.4.1(eslint@8.54.0) 545 | '@typescript-eslint/utils': 6.13.1(eslint@8.54.0)(typescript@5.0.4) 546 | eslint: 8.54.0 547 | graphemer: 1.4.0 548 | transitivePeerDependencies: 549 | - supports-color 550 | - typescript 551 | dev: true 552 | 553 | /@stylistic/eslint-plugin@1.4.1(eslint@8.54.0)(typescript@5.0.4): 554 | resolution: {integrity: sha512-CDwQCxglLTkUjpIJT4ltlpC8sKkPvTA7DjFcWiuZtBr0Vc6owGuYgJso4X1TDiD2JkjD3idbXCoGK0AfzNrgww==} 555 | engines: {node: ^16.0.0 || >=18.0.0} 556 | peerDependencies: 557 | eslint: '>=8.40.0' 558 | dependencies: 559 | '@stylistic/eslint-plugin-js': 1.4.1(eslint@8.54.0) 560 | '@stylistic/eslint-plugin-jsx': 1.4.1(eslint@8.54.0) 561 | '@stylistic/eslint-plugin-ts': 1.4.1(eslint@8.54.0)(typescript@5.0.4) 562 | eslint: 8.54.0 563 | transitivePeerDependencies: 564 | - supports-color 565 | - typescript 566 | dev: true 567 | 568 | /@types/chai-subset@1.3.3: 569 | resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} 570 | dependencies: 571 | '@types/chai': 4.3.4 572 | dev: true 573 | 574 | /@types/chai@4.3.4: 575 | resolution: {integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==} 576 | dev: true 577 | 578 | /@types/json-schema@7.0.15: 579 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 580 | dev: true 581 | 582 | /@types/mdast@3.0.11: 583 | resolution: {integrity: sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw==} 584 | dependencies: 585 | '@types/unist': 2.0.6 586 | dev: true 587 | 588 | /@types/node@18.15.13: 589 | resolution: {integrity: sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==} 590 | dev: true 591 | 592 | /@types/normalize-package-data@2.4.1: 593 | resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} 594 | dev: true 595 | 596 | /@types/semver@7.5.6: 597 | resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} 598 | dev: true 599 | 600 | /@types/unist@2.0.6: 601 | resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} 602 | dev: true 603 | 604 | /@types/vscode@1.47.0: 605 | resolution: {integrity: sha512-nJA37ykkz9FYA0ZOQUSc3OZnhuzEW2vUhUEo4MiduUo82jGwwcLfyvmgd/Q7b0WrZAAceojGhZybg319L24bTA==} 606 | dev: true 607 | 608 | /@typescript-eslint/eslint-plugin@6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.54.0)(typescript@5.0.4): 609 | resolution: {integrity: sha512-5bQDGkXaxD46bPvQt08BUz9YSaO4S0fB1LB5JHQuXTfkGPI3+UUeS387C/e9jRie5GqT8u5kFTrMvAjtX4O5kA==} 610 | engines: {node: ^16.0.0 || >=18.0.0} 611 | peerDependencies: 612 | '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha 613 | eslint: ^7.0.0 || ^8.0.0 614 | typescript: '*' 615 | peerDependenciesMeta: 616 | typescript: 617 | optional: true 618 | dependencies: 619 | '@eslint-community/regexpp': 4.10.0 620 | '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.0.4) 621 | '@typescript-eslint/scope-manager': 6.13.1 622 | '@typescript-eslint/type-utils': 6.13.1(eslint@8.54.0)(typescript@5.0.4) 623 | '@typescript-eslint/utils': 6.13.1(eslint@8.54.0)(typescript@5.0.4) 624 | '@typescript-eslint/visitor-keys': 6.13.1 625 | debug: 4.3.4 626 | eslint: 8.54.0 627 | graphemer: 1.4.0 628 | ignore: 5.2.4 629 | natural-compare: 1.4.0 630 | semver: 7.5.4 631 | ts-api-utils: 1.0.3(typescript@5.0.4) 632 | typescript: 5.0.4 633 | transitivePeerDependencies: 634 | - supports-color 635 | dev: true 636 | 637 | /@typescript-eslint/parser@6.13.1(eslint@8.54.0)(typescript@5.0.4): 638 | resolution: {integrity: sha512-fs2XOhWCzRhqMmQf0eicLa/CWSaYss2feXsy7xBD/pLyWke/jCIVc2s1ikEAtSW7ina1HNhv7kONoEfVNEcdDQ==} 639 | engines: {node: ^16.0.0 || >=18.0.0} 640 | peerDependencies: 641 | eslint: ^7.0.0 || ^8.0.0 642 | typescript: '*' 643 | peerDependenciesMeta: 644 | typescript: 645 | optional: true 646 | dependencies: 647 | '@typescript-eslint/scope-manager': 6.13.1 648 | '@typescript-eslint/types': 6.13.1 649 | '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.0.4) 650 | '@typescript-eslint/visitor-keys': 6.13.1 651 | debug: 4.3.4 652 | eslint: 8.54.0 653 | typescript: 5.0.4 654 | transitivePeerDependencies: 655 | - supports-color 656 | dev: true 657 | 658 | /@typescript-eslint/scope-manager@6.13.1: 659 | resolution: {integrity: sha512-BW0kJ7ceiKi56GbT2KKzZzN+nDxzQK2DS6x0PiSMPjciPgd/JRQGMibyaN2cPt2cAvuoH0oNvn2fwonHI+4QUQ==} 660 | engines: {node: ^16.0.0 || >=18.0.0} 661 | dependencies: 662 | '@typescript-eslint/types': 6.13.1 663 | '@typescript-eslint/visitor-keys': 6.13.1 664 | dev: true 665 | 666 | /@typescript-eslint/type-utils@6.13.1(eslint@8.54.0)(typescript@5.0.4): 667 | resolution: {integrity: sha512-A2qPlgpxx2v//3meMqQyB1qqTg1h1dJvzca7TugM3Yc2USDY+fsRBiojAEo92HO7f5hW5mjAUF6qobOPzlBCBQ==} 668 | engines: {node: ^16.0.0 || >=18.0.0} 669 | peerDependencies: 670 | eslint: ^7.0.0 || ^8.0.0 671 | typescript: '*' 672 | peerDependenciesMeta: 673 | typescript: 674 | optional: true 675 | dependencies: 676 | '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.0.4) 677 | '@typescript-eslint/utils': 6.13.1(eslint@8.54.0)(typescript@5.0.4) 678 | debug: 4.3.4 679 | eslint: 8.54.0 680 | ts-api-utils: 1.0.3(typescript@5.0.4) 681 | typescript: 5.0.4 682 | transitivePeerDependencies: 683 | - supports-color 684 | dev: true 685 | 686 | /@typescript-eslint/types@6.13.1: 687 | resolution: {integrity: sha512-gjeEskSmiEKKFIbnhDXUyiqVma1gRCQNbVZ1C8q7Zjcxh3WZMbzWVfGE9rHfWd1msQtPS0BVD9Jz9jded44eKg==} 688 | engines: {node: ^16.0.0 || >=18.0.0} 689 | dev: true 690 | 691 | /@typescript-eslint/typescript-estree@6.13.1(typescript@5.0.4): 692 | resolution: {integrity: sha512-sBLQsvOC0Q7LGcUHO5qpG1HxRgePbT6wwqOiGLpR8uOJvPJbfs0mW3jPA3ujsDvfiVwVlWUDESNXv44KtINkUQ==} 693 | engines: {node: ^16.0.0 || >=18.0.0} 694 | peerDependencies: 695 | typescript: '*' 696 | peerDependenciesMeta: 697 | typescript: 698 | optional: true 699 | dependencies: 700 | '@typescript-eslint/types': 6.13.1 701 | '@typescript-eslint/visitor-keys': 6.13.1 702 | debug: 4.3.4 703 | globby: 11.1.0 704 | is-glob: 4.0.3 705 | semver: 7.5.4 706 | ts-api-utils: 1.0.3(typescript@5.0.4) 707 | typescript: 5.0.4 708 | transitivePeerDependencies: 709 | - supports-color 710 | dev: true 711 | 712 | /@typescript-eslint/utils@6.13.1(eslint@8.54.0)(typescript@5.0.4): 713 | resolution: {integrity: sha512-ouPn/zVoan92JgAegesTXDB/oUp6BP1v8WpfYcqh649ejNc9Qv+B4FF2Ff626kO1xg0wWwwG48lAJ4JuesgdOw==} 714 | engines: {node: ^16.0.0 || >=18.0.0} 715 | peerDependencies: 716 | eslint: ^7.0.0 || ^8.0.0 717 | dependencies: 718 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) 719 | '@types/json-schema': 7.0.15 720 | '@types/semver': 7.5.6 721 | '@typescript-eslint/scope-manager': 6.13.1 722 | '@typescript-eslint/types': 6.13.1 723 | '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.0.4) 724 | eslint: 8.54.0 725 | semver: 7.5.4 726 | transitivePeerDependencies: 727 | - supports-color 728 | - typescript 729 | dev: true 730 | 731 | /@typescript-eslint/visitor-keys@6.13.1: 732 | resolution: {integrity: sha512-NDhQUy2tg6XGNBGDRm1XybOHSia8mcXmlbKWoQP+nm1BIIMxa55shyJfZkHpEBN62KNPLrocSM2PdPcaLgDKMQ==} 733 | engines: {node: ^16.0.0 || >=18.0.0} 734 | dependencies: 735 | '@typescript-eslint/types': 6.13.1 736 | eslint-visitor-keys: 3.4.3 737 | dev: true 738 | 739 | /@ungap/structured-clone@1.2.0: 740 | resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} 741 | dev: true 742 | 743 | /@vitest/expect@0.29.8: 744 | resolution: {integrity: sha512-xlcVXn5I5oTq6NiZSY3ykyWixBxr5mG8HYtjvpgg6KaqHm0mvhX18xuwl5YGxIRNt/A5jidd7CWcNHrSvgaQqQ==} 745 | dependencies: 746 | '@vitest/spy': 0.29.8 747 | '@vitest/utils': 0.29.8 748 | chai: 4.3.7 749 | dev: true 750 | 751 | /@vitest/runner@0.29.8: 752 | resolution: {integrity: sha512-FzdhnRDwEr/A3Oo1jtIk/B952BBvP32n1ObMEb23oEJNO+qO5cBet6M2XWIDQmA7BDKGKvmhUf2naXyp/2JEwQ==} 753 | dependencies: 754 | '@vitest/utils': 0.29.8 755 | p-limit: 4.0.0 756 | pathe: 1.1.0 757 | dev: true 758 | 759 | /@vitest/spy@0.29.8: 760 | resolution: {integrity: sha512-VdjBe9w34vOMl5I5mYEzNX8inTxrZ+tYUVk9jxaZJmHFwmDFC/GV3KBFTA/JKswr3XHvZL+FE/yq5EVhb6pSAw==} 761 | dependencies: 762 | tinyspy: 1.1.1 763 | dev: true 764 | 765 | /@vitest/utils@0.29.8: 766 | resolution: {integrity: sha512-qGzuf3vrTbnoY+RjjVVIBYfuWMjn3UMUqyQtdGNZ6ZIIyte7B37exj6LaVkrZiUTvzSadVvO/tJm8AEgbGCBPg==} 767 | dependencies: 768 | cli-truncate: 3.1.0 769 | diff: 5.1.0 770 | loupe: 2.3.6 771 | pretty-format: 27.5.1 772 | dev: true 773 | 774 | /@vscode/vsce@2.19.0: 775 | resolution: {integrity: sha512-dAlILxC5ggOutcvJY24jxz913wimGiUrHaPkk16Gm9/PGFbz1YezWtrXsTKUtJws4fIlpX2UIlVlVESWq8lkfQ==} 776 | engines: {node: '>= 14'} 777 | hasBin: true 778 | dependencies: 779 | azure-devops-node-api: 11.2.0 780 | chalk: 2.4.2 781 | cheerio: 1.0.0-rc.12 782 | commander: 6.2.1 783 | glob: 7.2.3 784 | hosted-git-info: 4.1.0 785 | jsonc-parser: 3.2.0 786 | leven: 3.1.0 787 | markdown-it: 12.3.2 788 | mime: 1.6.0 789 | minimatch: 3.1.2 790 | parse-semver: 1.1.1 791 | read: 1.0.7 792 | semver: 5.7.1 793 | tmp: 0.2.1 794 | typed-rest-client: 1.8.9 795 | url-join: 4.0.1 796 | xml2js: 0.5.0 797 | yauzl: 2.10.0 798 | yazl: 2.5.1 799 | optionalDependencies: 800 | keytar: 7.9.0 801 | dev: true 802 | 803 | /acorn-jsx@5.3.2(acorn@8.11.2): 804 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 805 | peerDependencies: 806 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 807 | dependencies: 808 | acorn: 8.11.2 809 | dev: true 810 | 811 | /acorn-walk@8.2.0: 812 | resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} 813 | engines: {node: '>=0.4.0'} 814 | dev: true 815 | 816 | /acorn@8.11.2: 817 | resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} 818 | engines: {node: '>=0.4.0'} 819 | hasBin: true 820 | dev: true 821 | 822 | /acorn@8.8.2: 823 | resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} 824 | engines: {node: '>=0.4.0'} 825 | hasBin: true 826 | dev: true 827 | 828 | /agent-base@6.0.2: 829 | resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} 830 | engines: {node: '>= 6.0.0'} 831 | dependencies: 832 | debug: 4.3.4 833 | transitivePeerDependencies: 834 | - supports-color 835 | dev: true 836 | 837 | /ajv@6.12.6: 838 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 839 | dependencies: 840 | fast-deep-equal: 3.1.3 841 | fast-json-stable-stringify: 2.1.0 842 | json-schema-traverse: 0.4.1 843 | uri-js: 4.4.1 844 | dev: true 845 | 846 | /ansi-regex@5.0.1: 847 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 848 | engines: {node: '>=8'} 849 | dev: true 850 | 851 | /ansi-regex@6.0.1: 852 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 853 | engines: {node: '>=12'} 854 | dev: true 855 | 856 | /ansi-styles@3.2.1: 857 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 858 | engines: {node: '>=4'} 859 | dependencies: 860 | color-convert: 1.9.3 861 | dev: true 862 | 863 | /ansi-styles@4.3.0: 864 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 865 | engines: {node: '>=8'} 866 | dependencies: 867 | color-convert: 2.0.1 868 | dev: true 869 | 870 | /ansi-styles@5.2.0: 871 | resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} 872 | engines: {node: '>=10'} 873 | dev: true 874 | 875 | /ansi-styles@6.2.1: 876 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 877 | engines: {node: '>=12'} 878 | dev: true 879 | 880 | /any-promise@1.3.0: 881 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 882 | dev: true 883 | 884 | /anymatch@3.1.3: 885 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 886 | engines: {node: '>= 8'} 887 | dependencies: 888 | normalize-path: 3.0.0 889 | picomatch: 2.3.1 890 | dev: true 891 | 892 | /are-docs-informative@0.0.2: 893 | resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} 894 | engines: {node: '>=14'} 895 | dev: true 896 | 897 | /argparse@2.0.1: 898 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 899 | dev: true 900 | 901 | /array-union@2.1.0: 902 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 903 | engines: {node: '>=8'} 904 | dev: true 905 | 906 | /assertion-error@1.1.0: 907 | resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} 908 | dev: true 909 | 910 | /azure-devops-node-api@11.2.0: 911 | resolution: {integrity: sha512-XdiGPhrpaT5J8wdERRKs5g8E0Zy1pvOYTli7z9E8nmOn3YGp4FhtjhrOyFmX/8veWCwdI69mCHKJw6l+4J/bHA==} 912 | dependencies: 913 | tunnel: 0.0.6 914 | typed-rest-client: 1.8.9 915 | dev: true 916 | 917 | /balanced-match@1.0.2: 918 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 919 | dev: true 920 | 921 | /base64-js@1.5.1: 922 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 923 | requiresBuild: true 924 | dev: true 925 | optional: true 926 | 927 | /binary-extensions@2.2.0: 928 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 929 | engines: {node: '>=8'} 930 | dev: true 931 | 932 | /bl@4.1.0: 933 | resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} 934 | requiresBuild: true 935 | dependencies: 936 | buffer: 5.7.1 937 | inherits: 2.0.4 938 | readable-stream: 3.6.2 939 | dev: true 940 | optional: true 941 | 942 | /boolbase@1.0.0: 943 | resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} 944 | dev: true 945 | 946 | /brace-expansion@1.1.11: 947 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 948 | dependencies: 949 | balanced-match: 1.0.2 950 | concat-map: 0.0.1 951 | dev: true 952 | 953 | /brace-expansion@2.0.1: 954 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 955 | dependencies: 956 | balanced-match: 1.0.2 957 | dev: true 958 | 959 | /braces@3.0.2: 960 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 961 | engines: {node: '>=8'} 962 | dependencies: 963 | fill-range: 7.0.1 964 | dev: true 965 | 966 | /buffer-crc32@0.2.13: 967 | resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} 968 | dev: true 969 | 970 | /buffer@5.7.1: 971 | resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} 972 | requiresBuild: true 973 | dependencies: 974 | base64-js: 1.5.1 975 | ieee754: 1.2.1 976 | dev: true 977 | optional: true 978 | 979 | /builtin-modules@3.3.0: 980 | resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} 981 | engines: {node: '>=6'} 982 | dev: true 983 | 984 | /builtins@5.0.1: 985 | resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} 986 | dependencies: 987 | semver: 7.5.4 988 | dev: true 989 | 990 | /bumpp@9.1.0: 991 | resolution: {integrity: sha512-m3+YD8uoa0VttG+RV4oKr3lK60gkUn1yPDaBTFwT7xrdJUsy7Jm0VYgx457HI3VPAOX8szLmy1x2y1QcvB+M8Q==} 992 | engines: {node: '>=10'} 993 | hasBin: true 994 | dependencies: 995 | '@jsdevtools/ez-spawn': 3.0.4 996 | c12: 1.4.1 997 | cac: 6.7.14 998 | fast-glob: 3.2.12 999 | prompts: 2.4.2 1000 | semver: 7.5.0 1001 | transitivePeerDependencies: 1002 | - supports-color 1003 | dev: true 1004 | 1005 | /bundle-require@4.0.1(esbuild@0.17.17): 1006 | resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} 1007 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1008 | peerDependencies: 1009 | esbuild: '>=0.17' 1010 | dependencies: 1011 | esbuild: 0.17.17 1012 | load-tsconfig: 0.2.5 1013 | dev: true 1014 | 1015 | /c12@1.4.1: 1016 | resolution: {integrity: sha512-0x7pWfLZpZsgtyotXtuepJc0rZYE0Aw8PwNAXs0jSG9zq6Sl5xmbWnFqfmRY01ieZLHNbvneSFm9/x88CvzAuw==} 1017 | dependencies: 1018 | chokidar: 3.5.3 1019 | defu: 6.1.2 1020 | dotenv: 16.0.3 1021 | giget: 1.1.2 1022 | jiti: 1.18.2 1023 | mlly: 1.2.0 1024 | ohash: 1.1.1 1025 | pathe: 1.1.0 1026 | perfect-debounce: 0.1.3 1027 | pkg-types: 1.0.2 1028 | rc9: 2.1.0 1029 | transitivePeerDependencies: 1030 | - supports-color 1031 | dev: true 1032 | 1033 | /cac@6.7.14: 1034 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 1035 | engines: {node: '>=8'} 1036 | dev: true 1037 | 1038 | /call-bind@1.0.2: 1039 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} 1040 | dependencies: 1041 | function-bind: 1.1.1 1042 | get-intrinsic: 1.2.0 1043 | dev: true 1044 | 1045 | /call-me-maybe@1.0.2: 1046 | resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} 1047 | dev: true 1048 | 1049 | /callsites@3.1.0: 1050 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 1051 | engines: {node: '>=6'} 1052 | dev: true 1053 | 1054 | /chai@4.3.7: 1055 | resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} 1056 | engines: {node: '>=4'} 1057 | dependencies: 1058 | assertion-error: 1.1.0 1059 | check-error: 1.0.2 1060 | deep-eql: 4.1.3 1061 | get-func-name: 2.0.0 1062 | loupe: 2.3.6 1063 | pathval: 1.1.1 1064 | type-detect: 4.0.8 1065 | dev: true 1066 | 1067 | /chalk@2.4.2: 1068 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 1069 | engines: {node: '>=4'} 1070 | dependencies: 1071 | ansi-styles: 3.2.1 1072 | escape-string-regexp: 1.0.5 1073 | supports-color: 5.5.0 1074 | dev: true 1075 | 1076 | /chalk@4.1.2: 1077 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 1078 | engines: {node: '>=10'} 1079 | dependencies: 1080 | ansi-styles: 4.3.0 1081 | supports-color: 7.2.0 1082 | dev: true 1083 | 1084 | /character-entities-legacy@1.1.4: 1085 | resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} 1086 | dev: true 1087 | 1088 | /character-entities@1.2.4: 1089 | resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} 1090 | dev: true 1091 | 1092 | /character-reference-invalid@1.1.4: 1093 | resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} 1094 | dev: true 1095 | 1096 | /check-error@1.0.2: 1097 | resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} 1098 | dev: true 1099 | 1100 | /cheerio-select@2.1.0: 1101 | resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} 1102 | dependencies: 1103 | boolbase: 1.0.0 1104 | css-select: 5.1.0 1105 | css-what: 6.1.0 1106 | domelementtype: 2.3.0 1107 | domhandler: 5.0.3 1108 | domutils: 3.0.1 1109 | dev: true 1110 | 1111 | /cheerio@1.0.0-rc.12: 1112 | resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} 1113 | engines: {node: '>= 6'} 1114 | dependencies: 1115 | cheerio-select: 2.1.0 1116 | dom-serializer: 2.0.0 1117 | domhandler: 5.0.3 1118 | domutils: 3.0.1 1119 | htmlparser2: 8.0.2 1120 | parse5: 7.1.2 1121 | parse5-htmlparser2-tree-adapter: 7.0.0 1122 | dev: true 1123 | 1124 | /chokidar@3.5.3: 1125 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 1126 | engines: {node: '>= 8.10.0'} 1127 | dependencies: 1128 | anymatch: 3.1.3 1129 | braces: 3.0.2 1130 | glob-parent: 5.1.2 1131 | is-binary-path: 2.1.0 1132 | is-glob: 4.0.3 1133 | normalize-path: 3.0.0 1134 | readdirp: 3.6.0 1135 | optionalDependencies: 1136 | fsevents: 2.3.2 1137 | dev: true 1138 | 1139 | /chownr@1.1.4: 1140 | resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} 1141 | requiresBuild: true 1142 | dev: true 1143 | optional: true 1144 | 1145 | /chownr@2.0.0: 1146 | resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} 1147 | engines: {node: '>=10'} 1148 | dev: true 1149 | 1150 | /ci-info@2.0.0: 1151 | resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} 1152 | dev: true 1153 | 1154 | /ci-info@3.8.0: 1155 | resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} 1156 | engines: {node: '>=8'} 1157 | dev: true 1158 | 1159 | /clean-regexp@1.0.0: 1160 | resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} 1161 | engines: {node: '>=4'} 1162 | dependencies: 1163 | escape-string-regexp: 1.0.5 1164 | dev: true 1165 | 1166 | /cli-truncate@3.1.0: 1167 | resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} 1168 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1169 | dependencies: 1170 | slice-ansi: 5.0.0 1171 | string-width: 5.1.2 1172 | dev: true 1173 | 1174 | /cliui@8.0.1: 1175 | resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} 1176 | engines: {node: '>=12'} 1177 | dependencies: 1178 | string-width: 4.2.3 1179 | strip-ansi: 6.0.1 1180 | wrap-ansi: 7.0.0 1181 | dev: true 1182 | 1183 | /color-convert@1.9.3: 1184 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 1185 | dependencies: 1186 | color-name: 1.1.3 1187 | dev: true 1188 | 1189 | /color-convert@2.0.1: 1190 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 1191 | engines: {node: '>=7.0.0'} 1192 | dependencies: 1193 | color-name: 1.1.4 1194 | dev: true 1195 | 1196 | /color-name@1.1.3: 1197 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 1198 | dev: true 1199 | 1200 | /color-name@1.1.4: 1201 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 1202 | dev: true 1203 | 1204 | /colorette@2.0.20: 1205 | resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} 1206 | dev: true 1207 | 1208 | /commander@4.1.1: 1209 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 1210 | engines: {node: '>= 6'} 1211 | dev: true 1212 | 1213 | /commander@6.2.1: 1214 | resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} 1215 | engines: {node: '>= 6'} 1216 | dev: true 1217 | 1218 | /comment-parser@1.4.1: 1219 | resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} 1220 | engines: {node: '>= 12.0.0'} 1221 | dev: true 1222 | 1223 | /concat-map@0.0.1: 1224 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 1225 | dev: true 1226 | 1227 | /concurrently@8.0.1: 1228 | resolution: {integrity: sha512-Sh8bGQMEL0TAmAm2meAXMjcASHZa7V0xXQVDBLknCPa9TPtkY9yYs+0cnGGgfdkW0SV1Mlg+hVGfXcoI8d3MJA==} 1229 | engines: {node: ^14.13.0 || >=16.0.0} 1230 | hasBin: true 1231 | dependencies: 1232 | chalk: 4.1.2 1233 | date-fns: 2.29.3 1234 | lodash: 4.17.21 1235 | rxjs: 7.8.0 1236 | shell-quote: 1.8.1 1237 | spawn-command: 0.0.2-1 1238 | supports-color: 8.1.1 1239 | tree-kill: 1.2.2 1240 | yargs: 17.7.1 1241 | dev: true 1242 | 1243 | /cross-spawn@7.0.3: 1244 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 1245 | engines: {node: '>= 8'} 1246 | dependencies: 1247 | path-key: 3.1.1 1248 | shebang-command: 2.0.0 1249 | which: 2.0.2 1250 | dev: true 1251 | 1252 | /css-select@5.1.0: 1253 | resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} 1254 | dependencies: 1255 | boolbase: 1.0.0 1256 | css-what: 6.1.0 1257 | domhandler: 5.0.3 1258 | domutils: 3.0.1 1259 | nth-check: 2.1.1 1260 | dev: true 1261 | 1262 | /css-what@6.1.0: 1263 | resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} 1264 | engines: {node: '>= 6'} 1265 | dev: true 1266 | 1267 | /cssesc@3.0.0: 1268 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 1269 | engines: {node: '>=4'} 1270 | hasBin: true 1271 | dev: true 1272 | 1273 | /date-fns@2.29.3: 1274 | resolution: {integrity: sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==} 1275 | engines: {node: '>=0.11'} 1276 | dev: true 1277 | 1278 | /debug@3.2.7: 1279 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 1280 | peerDependencies: 1281 | supports-color: '*' 1282 | peerDependenciesMeta: 1283 | supports-color: 1284 | optional: true 1285 | dependencies: 1286 | ms: 2.1.3 1287 | dev: true 1288 | 1289 | /debug@4.3.4: 1290 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 1291 | engines: {node: '>=6.0'} 1292 | peerDependencies: 1293 | supports-color: '*' 1294 | peerDependenciesMeta: 1295 | supports-color: 1296 | optional: true 1297 | dependencies: 1298 | ms: 2.1.2 1299 | dev: true 1300 | 1301 | /decompress-response@6.0.0: 1302 | resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} 1303 | engines: {node: '>=10'} 1304 | requiresBuild: true 1305 | dependencies: 1306 | mimic-response: 3.1.0 1307 | dev: true 1308 | optional: true 1309 | 1310 | /deep-eql@4.1.3: 1311 | resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} 1312 | engines: {node: '>=6'} 1313 | dependencies: 1314 | type-detect: 4.0.8 1315 | dev: true 1316 | 1317 | /deep-extend@0.6.0: 1318 | resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} 1319 | engines: {node: '>=4.0.0'} 1320 | requiresBuild: true 1321 | dev: true 1322 | optional: true 1323 | 1324 | /deep-is@0.1.4: 1325 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 1326 | dev: true 1327 | 1328 | /defu@6.1.2: 1329 | resolution: {integrity: sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==} 1330 | dev: true 1331 | 1332 | /destr@1.2.2: 1333 | resolution: {integrity: sha512-lrbCJwD9saUQrqUfXvl6qoM+QN3W7tLV5pAOs+OqOmopCCz/JkE05MHedJR1xfk4IAnZuJXPVuN5+7jNA2ZCiA==} 1334 | dev: true 1335 | 1336 | /detect-libc@2.0.1: 1337 | resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==} 1338 | engines: {node: '>=8'} 1339 | requiresBuild: true 1340 | dev: true 1341 | optional: true 1342 | 1343 | /diff@5.1.0: 1344 | resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} 1345 | engines: {node: '>=0.3.1'} 1346 | dev: true 1347 | 1348 | /dir-glob@3.0.1: 1349 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 1350 | engines: {node: '>=8'} 1351 | dependencies: 1352 | path-type: 4.0.0 1353 | dev: true 1354 | 1355 | /doctrine@2.1.0: 1356 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} 1357 | engines: {node: '>=0.10.0'} 1358 | dependencies: 1359 | esutils: 2.0.3 1360 | dev: true 1361 | 1362 | /doctrine@3.0.0: 1363 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 1364 | engines: {node: '>=6.0.0'} 1365 | dependencies: 1366 | esutils: 2.0.3 1367 | dev: true 1368 | 1369 | /dom-serializer@2.0.0: 1370 | resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} 1371 | dependencies: 1372 | domelementtype: 2.3.0 1373 | domhandler: 5.0.3 1374 | entities: 4.5.0 1375 | dev: true 1376 | 1377 | /domelementtype@2.3.0: 1378 | resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} 1379 | dev: true 1380 | 1381 | /domhandler@5.0.3: 1382 | resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} 1383 | engines: {node: '>= 4'} 1384 | dependencies: 1385 | domelementtype: 2.3.0 1386 | dev: true 1387 | 1388 | /domutils@3.0.1: 1389 | resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==} 1390 | dependencies: 1391 | dom-serializer: 2.0.0 1392 | domelementtype: 2.3.0 1393 | domhandler: 5.0.3 1394 | dev: true 1395 | 1396 | /dotenv@16.0.3: 1397 | resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} 1398 | engines: {node: '>=12'} 1399 | dev: true 1400 | 1401 | /eastasianwidth@0.2.0: 1402 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 1403 | dev: true 1404 | 1405 | /emoji-regex@8.0.0: 1406 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1407 | dev: true 1408 | 1409 | /emoji-regex@9.2.2: 1410 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 1411 | dev: true 1412 | 1413 | /end-of-stream@1.4.4: 1414 | resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} 1415 | requiresBuild: true 1416 | dependencies: 1417 | once: 1.4.0 1418 | dev: true 1419 | optional: true 1420 | 1421 | /entities@2.1.0: 1422 | resolution: {integrity: sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==} 1423 | dev: true 1424 | 1425 | /entities@4.5.0: 1426 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 1427 | engines: {node: '>=0.12'} 1428 | dev: true 1429 | 1430 | /error-ex@1.3.2: 1431 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 1432 | dependencies: 1433 | is-arrayish: 0.2.1 1434 | dev: true 1435 | 1436 | /esbuild@0.17.17: 1437 | resolution: {integrity: sha512-/jUywtAymR8jR4qsa2RujlAF7Krpt5VWi72Q2yuLD4e/hvtNcFQ0I1j8m/bxq238pf3/0KO5yuXNpuLx8BE1KA==} 1438 | engines: {node: '>=12'} 1439 | hasBin: true 1440 | requiresBuild: true 1441 | optionalDependencies: 1442 | '@esbuild/android-arm': 0.17.17 1443 | '@esbuild/android-arm64': 0.17.17 1444 | '@esbuild/android-x64': 0.17.17 1445 | '@esbuild/darwin-arm64': 0.17.17 1446 | '@esbuild/darwin-x64': 0.17.17 1447 | '@esbuild/freebsd-arm64': 0.17.17 1448 | '@esbuild/freebsd-x64': 0.17.17 1449 | '@esbuild/linux-arm': 0.17.17 1450 | '@esbuild/linux-arm64': 0.17.17 1451 | '@esbuild/linux-ia32': 0.17.17 1452 | '@esbuild/linux-loong64': 0.17.17 1453 | '@esbuild/linux-mips64el': 0.17.17 1454 | '@esbuild/linux-ppc64': 0.17.17 1455 | '@esbuild/linux-riscv64': 0.17.17 1456 | '@esbuild/linux-s390x': 0.17.17 1457 | '@esbuild/linux-x64': 0.17.17 1458 | '@esbuild/netbsd-x64': 0.17.17 1459 | '@esbuild/openbsd-x64': 0.17.17 1460 | '@esbuild/sunos-x64': 0.17.17 1461 | '@esbuild/win32-arm64': 0.17.17 1462 | '@esbuild/win32-ia32': 0.17.17 1463 | '@esbuild/win32-x64': 0.17.17 1464 | dev: true 1465 | 1466 | /escalade@3.1.1: 1467 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 1468 | engines: {node: '>=6'} 1469 | dev: true 1470 | 1471 | /escape-string-regexp@1.0.5: 1472 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 1473 | engines: {node: '>=0.8.0'} 1474 | dev: true 1475 | 1476 | /escape-string-regexp@4.0.0: 1477 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1478 | engines: {node: '>=10'} 1479 | dev: true 1480 | 1481 | /eslint-compat-utils@0.1.2(eslint@8.54.0): 1482 | resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} 1483 | engines: {node: '>=12'} 1484 | peerDependencies: 1485 | eslint: '>=6.0.0' 1486 | dependencies: 1487 | eslint: 8.54.0 1488 | dev: true 1489 | 1490 | /eslint-config-flat-gitignore@0.1.1: 1491 | resolution: {integrity: sha512-ysq0QpN63+uaxE67U0g0HeCweIpv8Ztp7yvm0nYiM2TBalRIG6KQLO5J6lAz2gkA8KVis/QsJppe+BR5VigtWQ==} 1492 | dependencies: 1493 | parse-gitignore: 2.0.0 1494 | dev: true 1495 | 1496 | /eslint-import-resolver-node@0.3.9: 1497 | resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} 1498 | dependencies: 1499 | debug: 3.2.7 1500 | is-core-module: 2.13.1 1501 | resolve: 1.22.8 1502 | transitivePeerDependencies: 1503 | - supports-color 1504 | dev: true 1505 | 1506 | /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.13.1)(eslint-import-resolver-node@0.3.9)(eslint@8.54.0): 1507 | resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} 1508 | engines: {node: '>=4'} 1509 | peerDependencies: 1510 | '@typescript-eslint/parser': '*' 1511 | eslint: '*' 1512 | eslint-import-resolver-node: '*' 1513 | eslint-import-resolver-typescript: '*' 1514 | eslint-import-resolver-webpack: '*' 1515 | peerDependenciesMeta: 1516 | '@typescript-eslint/parser': 1517 | optional: true 1518 | eslint: 1519 | optional: true 1520 | eslint-import-resolver-node: 1521 | optional: true 1522 | eslint-import-resolver-typescript: 1523 | optional: true 1524 | eslint-import-resolver-webpack: 1525 | optional: true 1526 | dependencies: 1527 | '@typescript-eslint/parser': 6.13.1(eslint@8.54.0)(typescript@5.0.4) 1528 | debug: 3.2.7 1529 | eslint: 8.54.0 1530 | eslint-import-resolver-node: 0.3.9 1531 | transitivePeerDependencies: 1532 | - supports-color 1533 | dev: true 1534 | 1535 | /eslint-plugin-antfu@1.0.11(eslint@8.54.0): 1536 | resolution: {integrity: sha512-m+RWX/D+Ep9xU7VTDYKG4UmDUV9bOa5/SU/fUwWcRyYGbEy3lgxlnhuxv+Zw5Ca/RlcabCFt+vxh62wo1RI/6w==} 1537 | peerDependencies: 1538 | eslint: '*' 1539 | dependencies: 1540 | eslint: 8.54.0 1541 | dev: true 1542 | 1543 | /eslint-plugin-es-x@7.4.0(eslint@8.54.0): 1544 | resolution: {integrity: sha512-WJa3RhYzBtl8I37ebY9p76s61UhZyi4KaFOnX2A5r32RPazkXj5yoT6PGnD02dhwzEUj0KwsUdqfKDd/OuvGsw==} 1545 | engines: {node: ^14.18.0 || >=16.0.0} 1546 | peerDependencies: 1547 | eslint: '>=8' 1548 | dependencies: 1549 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) 1550 | '@eslint-community/regexpp': 4.10.0 1551 | eslint: 8.54.0 1552 | eslint-compat-utils: 0.1.2(eslint@8.54.0) 1553 | dev: true 1554 | 1555 | /eslint-plugin-eslint-comments@3.2.0(eslint@8.54.0): 1556 | resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} 1557 | engines: {node: '>=6.5.0'} 1558 | peerDependencies: 1559 | eslint: '>=4.19.1' 1560 | dependencies: 1561 | escape-string-regexp: 1.0.5 1562 | eslint: 8.54.0 1563 | ignore: 5.2.4 1564 | dev: true 1565 | 1566 | /eslint-plugin-i@2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.54.0): 1567 | resolution: {integrity: sha512-slGeTS3GQzx9267wLJnNYNO8X9EHGsc75AKIAFvnvMYEcTJKotPKL1Ru5PIGVHIVet+2DsugePWp8Oxpx8G22w==} 1568 | engines: {node: '>=12'} 1569 | peerDependencies: 1570 | eslint: ^7.2.0 || ^8 1571 | dependencies: 1572 | debug: 3.2.7 1573 | doctrine: 2.1.0 1574 | eslint: 8.54.0 1575 | eslint-import-resolver-node: 0.3.9 1576 | eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.1)(eslint-import-resolver-node@0.3.9)(eslint@8.54.0) 1577 | get-tsconfig: 4.7.2 1578 | is-glob: 4.0.3 1579 | minimatch: 3.1.2 1580 | resolve: 1.22.8 1581 | semver: 7.5.4 1582 | transitivePeerDependencies: 1583 | - '@typescript-eslint/parser' 1584 | - eslint-import-resolver-typescript 1585 | - eslint-import-resolver-webpack 1586 | - supports-color 1587 | dev: true 1588 | 1589 | /eslint-plugin-jsdoc@46.9.0(eslint@8.54.0): 1590 | resolution: {integrity: sha512-UQuEtbqLNkPf5Nr/6PPRCtr9xypXY+g8y/Q7gPa0YK7eDhh0y2lWprXRnaYbW7ACgIUvpDKy9X2bZqxtGzBG9Q==} 1591 | engines: {node: '>=16'} 1592 | peerDependencies: 1593 | eslint: ^7.0.0 || ^8.0.0 1594 | dependencies: 1595 | '@es-joy/jsdoccomment': 0.41.0 1596 | are-docs-informative: 0.0.2 1597 | comment-parser: 1.4.1 1598 | debug: 4.3.4 1599 | escape-string-regexp: 4.0.0 1600 | eslint: 8.54.0 1601 | esquery: 1.5.0 1602 | is-builtin-module: 3.2.1 1603 | semver: 7.5.4 1604 | spdx-expression-parse: 3.0.1 1605 | transitivePeerDependencies: 1606 | - supports-color 1607 | dev: true 1608 | 1609 | /eslint-plugin-jsonc@2.10.0(eslint@8.54.0): 1610 | resolution: {integrity: sha512-9d//o6Jyh4s1RxC9fNSt1+MMaFN2ruFdXPG9XZcb/mR2KkfjADYiNL/hbU6W0Cyxfg3tS/XSFuhl5LgtMD8hmw==} 1611 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1612 | peerDependencies: 1613 | eslint: '>=6.0.0' 1614 | dependencies: 1615 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) 1616 | eslint: 8.54.0 1617 | eslint-compat-utils: 0.1.2(eslint@8.54.0) 1618 | jsonc-eslint-parser: 2.4.0 1619 | natural-compare: 1.4.0 1620 | dev: true 1621 | 1622 | /eslint-plugin-markdown@3.0.1(eslint@8.54.0): 1623 | resolution: {integrity: sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A==} 1624 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1625 | peerDependencies: 1626 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 1627 | dependencies: 1628 | eslint: 8.54.0 1629 | mdast-util-from-markdown: 0.8.5 1630 | transitivePeerDependencies: 1631 | - supports-color 1632 | dev: true 1633 | 1634 | /eslint-plugin-n@16.3.1(eslint@8.54.0): 1635 | resolution: {integrity: sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw==} 1636 | engines: {node: '>=16.0.0'} 1637 | peerDependencies: 1638 | eslint: '>=7.0.0' 1639 | dependencies: 1640 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) 1641 | builtins: 5.0.1 1642 | eslint: 8.54.0 1643 | eslint-plugin-es-x: 7.4.0(eslint@8.54.0) 1644 | get-tsconfig: 4.7.2 1645 | ignore: 5.2.4 1646 | is-builtin-module: 3.2.1 1647 | is-core-module: 2.13.1 1648 | minimatch: 3.1.2 1649 | resolve: 1.22.8 1650 | semver: 7.5.4 1651 | dev: true 1652 | 1653 | /eslint-plugin-no-only-tests@3.1.0: 1654 | resolution: {integrity: sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==} 1655 | engines: {node: '>=5.0.0'} 1656 | dev: true 1657 | 1658 | /eslint-plugin-perfectionist@2.5.0(eslint@8.54.0)(typescript@5.0.4)(vue-eslint-parser@9.3.2): 1659 | resolution: {integrity: sha512-F6XXcq4mKKUe/SREoMGQqzgw6cgCgf3pFzkFfQVIGtqD1yXVpQjnhTepzhBeZfxZwgMzR9HO4yH4CUhIQ2WBcQ==} 1660 | peerDependencies: 1661 | astro-eslint-parser: ^0.16.0 1662 | eslint: '>=8.0.0' 1663 | svelte: '>=3.0.0' 1664 | svelte-eslint-parser: ^0.33.0 1665 | vue-eslint-parser: '>=9.0.0' 1666 | peerDependenciesMeta: 1667 | astro-eslint-parser: 1668 | optional: true 1669 | svelte: 1670 | optional: true 1671 | svelte-eslint-parser: 1672 | optional: true 1673 | vue-eslint-parser: 1674 | optional: true 1675 | dependencies: 1676 | '@typescript-eslint/utils': 6.13.1(eslint@8.54.0)(typescript@5.0.4) 1677 | eslint: 8.54.0 1678 | minimatch: 9.0.3 1679 | natural-compare-lite: 1.4.0 1680 | vue-eslint-parser: 9.3.2(eslint@8.54.0) 1681 | transitivePeerDependencies: 1682 | - supports-color 1683 | - typescript 1684 | dev: true 1685 | 1686 | /eslint-plugin-unicorn@49.0.0(eslint@8.54.0): 1687 | resolution: {integrity: sha512-0fHEa/8Pih5cmzFW5L7xMEfUTvI9WKeQtjmKpTUmY+BiFCDxkxrTdnURJOHKykhtwIeyYsxnecbGvDCml++z4Q==} 1688 | engines: {node: '>=16'} 1689 | peerDependencies: 1690 | eslint: '>=8.52.0' 1691 | dependencies: 1692 | '@babel/helper-validator-identifier': 7.22.20 1693 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) 1694 | ci-info: 3.8.0 1695 | clean-regexp: 1.0.0 1696 | eslint: 8.54.0 1697 | esquery: 1.5.0 1698 | indent-string: 4.0.0 1699 | is-builtin-module: 3.2.1 1700 | jsesc: 3.0.2 1701 | pluralize: 8.0.0 1702 | read-pkg-up: 7.0.1 1703 | regexp-tree: 0.1.27 1704 | regjsparser: 0.10.0 1705 | semver: 7.5.4 1706 | strip-indent: 3.0.0 1707 | dev: true 1708 | 1709 | /eslint-plugin-unused-imports@3.0.0(@typescript-eslint/eslint-plugin@6.13.1)(eslint@8.54.0): 1710 | resolution: {integrity: sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==} 1711 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1712 | peerDependencies: 1713 | '@typescript-eslint/eslint-plugin': ^6.0.0 1714 | eslint: ^8.0.0 1715 | peerDependenciesMeta: 1716 | '@typescript-eslint/eslint-plugin': 1717 | optional: true 1718 | dependencies: 1719 | '@typescript-eslint/eslint-plugin': 6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.54.0)(typescript@5.0.4) 1720 | eslint: 8.54.0 1721 | eslint-rule-composer: 0.3.0 1722 | dev: true 1723 | 1724 | /eslint-plugin-vitest@0.3.10(@typescript-eslint/eslint-plugin@6.13.1)(eslint@8.54.0)(typescript@5.0.4)(vitest@0.29.8): 1725 | resolution: {integrity: sha512-08lj4rdhZHYyHk+Py2nJ7SlE6arP8GNfGXl9jVqhe9s5JoZIGiBpIkLGX+VNBiB6vXTn56H6Ant7Koc6XzRjtQ==} 1726 | engines: {node: 14.x || >= 16} 1727 | peerDependencies: 1728 | '@typescript-eslint/eslint-plugin': '*' 1729 | eslint: '>=8.0.0' 1730 | vitest: '*' 1731 | peerDependenciesMeta: 1732 | '@typescript-eslint/eslint-plugin': 1733 | optional: true 1734 | vitest: 1735 | optional: true 1736 | dependencies: 1737 | '@typescript-eslint/eslint-plugin': 6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.54.0)(typescript@5.0.4) 1738 | '@typescript-eslint/utils': 6.13.1(eslint@8.54.0)(typescript@5.0.4) 1739 | eslint: 8.54.0 1740 | vitest: 0.29.8 1741 | transitivePeerDependencies: 1742 | - supports-color 1743 | - typescript 1744 | dev: true 1745 | 1746 | /eslint-plugin-vue@9.19.2(eslint@8.54.0): 1747 | resolution: {integrity: sha512-CPDqTOG2K4Ni2o4J5wixkLVNwgctKXFu6oBpVJlpNq7f38lh9I80pRTouZSJ2MAebPJlINU/KTFSXyQfBUlymA==} 1748 | engines: {node: ^14.17.0 || >=16.0.0} 1749 | peerDependencies: 1750 | eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 1751 | dependencies: 1752 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) 1753 | eslint: 8.54.0 1754 | natural-compare: 1.4.0 1755 | nth-check: 2.1.1 1756 | postcss-selector-parser: 6.0.13 1757 | semver: 7.5.4 1758 | vue-eslint-parser: 9.3.2(eslint@8.54.0) 1759 | xml-name-validator: 4.0.0 1760 | transitivePeerDependencies: 1761 | - supports-color 1762 | dev: true 1763 | 1764 | /eslint-plugin-yml@1.10.0(eslint@8.54.0): 1765 | resolution: {integrity: sha512-53SUwuNDna97lVk38hL/5++WXDuugPM9SUQ1T645R0EHMRCdBIIxGye/oOX2qO3FQ7aImxaUZJU/ju+NMUBrLQ==} 1766 | engines: {node: ^14.17.0 || >=16.0.0} 1767 | peerDependencies: 1768 | eslint: '>=6.0.0' 1769 | dependencies: 1770 | debug: 4.3.4 1771 | eslint: 8.54.0 1772 | eslint-compat-utils: 0.1.2(eslint@8.54.0) 1773 | lodash: 4.17.21 1774 | natural-compare: 1.4.0 1775 | yaml-eslint-parser: 1.2.2 1776 | transitivePeerDependencies: 1777 | - supports-color 1778 | dev: true 1779 | 1780 | /eslint-rule-composer@0.3.0: 1781 | resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} 1782 | engines: {node: '>=4.0.0'} 1783 | dev: true 1784 | 1785 | /eslint-scope@7.2.0: 1786 | resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} 1787 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1788 | dependencies: 1789 | esrecurse: 4.3.0 1790 | estraverse: 5.3.0 1791 | dev: true 1792 | 1793 | /eslint-scope@7.2.2: 1794 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 1795 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1796 | dependencies: 1797 | esrecurse: 4.3.0 1798 | estraverse: 5.3.0 1799 | dev: true 1800 | 1801 | /eslint-visitor-keys@3.4.0: 1802 | resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==} 1803 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1804 | dev: true 1805 | 1806 | /eslint-visitor-keys@3.4.3: 1807 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 1808 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1809 | dev: true 1810 | 1811 | /eslint@8.54.0: 1812 | resolution: {integrity: sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==} 1813 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1814 | hasBin: true 1815 | dependencies: 1816 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) 1817 | '@eslint-community/regexpp': 4.10.0 1818 | '@eslint/eslintrc': 2.1.3 1819 | '@eslint/js': 8.54.0 1820 | '@humanwhocodes/config-array': 0.11.13 1821 | '@humanwhocodes/module-importer': 1.0.1 1822 | '@nodelib/fs.walk': 1.2.8 1823 | '@ungap/structured-clone': 1.2.0 1824 | ajv: 6.12.6 1825 | chalk: 4.1.2 1826 | cross-spawn: 7.0.3 1827 | debug: 4.3.4 1828 | doctrine: 3.0.0 1829 | escape-string-regexp: 4.0.0 1830 | eslint-scope: 7.2.2 1831 | eslint-visitor-keys: 3.4.3 1832 | espree: 9.6.1 1833 | esquery: 1.5.0 1834 | esutils: 2.0.3 1835 | fast-deep-equal: 3.1.3 1836 | file-entry-cache: 6.0.1 1837 | find-up: 5.0.0 1838 | glob-parent: 6.0.2 1839 | globals: 13.23.0 1840 | graphemer: 1.4.0 1841 | ignore: 5.2.4 1842 | imurmurhash: 0.1.4 1843 | is-glob: 4.0.3 1844 | is-path-inside: 3.0.3 1845 | js-yaml: 4.1.0 1846 | json-stable-stringify-without-jsonify: 1.0.1 1847 | levn: 0.4.1 1848 | lodash.merge: 4.6.2 1849 | minimatch: 3.1.2 1850 | natural-compare: 1.4.0 1851 | optionator: 0.9.3 1852 | strip-ansi: 6.0.1 1853 | text-table: 0.2.0 1854 | transitivePeerDependencies: 1855 | - supports-color 1856 | dev: true 1857 | 1858 | /espree@9.5.1: 1859 | resolution: {integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==} 1860 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1861 | dependencies: 1862 | acorn: 8.11.2 1863 | acorn-jsx: 5.3.2(acorn@8.11.2) 1864 | eslint-visitor-keys: 3.4.3 1865 | dev: true 1866 | 1867 | /espree@9.6.1: 1868 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 1869 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1870 | dependencies: 1871 | acorn: 8.11.2 1872 | acorn-jsx: 5.3.2(acorn@8.11.2) 1873 | eslint-visitor-keys: 3.4.3 1874 | dev: true 1875 | 1876 | /esquery@1.5.0: 1877 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 1878 | engines: {node: '>=0.10'} 1879 | dependencies: 1880 | estraverse: 5.3.0 1881 | dev: true 1882 | 1883 | /esrecurse@4.3.0: 1884 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1885 | engines: {node: '>=4.0'} 1886 | dependencies: 1887 | estraverse: 5.3.0 1888 | dev: true 1889 | 1890 | /estraverse@5.3.0: 1891 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1892 | engines: {node: '>=4.0'} 1893 | dev: true 1894 | 1895 | /esutils@2.0.3: 1896 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1897 | engines: {node: '>=0.10.0'} 1898 | dev: true 1899 | 1900 | /execa@5.1.1: 1901 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 1902 | engines: {node: '>=10'} 1903 | dependencies: 1904 | cross-spawn: 7.0.3 1905 | get-stream: 6.0.1 1906 | human-signals: 2.1.0 1907 | is-stream: 2.0.1 1908 | merge-stream: 2.0.0 1909 | npm-run-path: 4.0.1 1910 | onetime: 5.1.2 1911 | signal-exit: 3.0.7 1912 | strip-final-newline: 2.0.0 1913 | dev: true 1914 | 1915 | /execa@8.0.1: 1916 | resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} 1917 | engines: {node: '>=16.17'} 1918 | dependencies: 1919 | cross-spawn: 7.0.3 1920 | get-stream: 8.0.1 1921 | human-signals: 5.0.0 1922 | is-stream: 3.0.0 1923 | merge-stream: 2.0.0 1924 | npm-run-path: 5.1.0 1925 | onetime: 6.0.0 1926 | signal-exit: 4.1.0 1927 | strip-final-newline: 3.0.0 1928 | dev: true 1929 | 1930 | /expand-template@2.0.3: 1931 | resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} 1932 | engines: {node: '>=6'} 1933 | requiresBuild: true 1934 | dev: true 1935 | optional: true 1936 | 1937 | /fast-deep-equal@3.1.3: 1938 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1939 | dev: true 1940 | 1941 | /fast-glob@3.2.12: 1942 | resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} 1943 | engines: {node: '>=8.6.0'} 1944 | dependencies: 1945 | '@nodelib/fs.stat': 2.0.5 1946 | '@nodelib/fs.walk': 1.2.8 1947 | glob-parent: 5.1.2 1948 | merge2: 1.4.1 1949 | micromatch: 4.0.5 1950 | dev: true 1951 | 1952 | /fast-json-stable-stringify@2.1.0: 1953 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1954 | dev: true 1955 | 1956 | /fast-levenshtein@2.0.6: 1957 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1958 | dev: true 1959 | 1960 | /fastest-levenshtein@1.0.16: 1961 | resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} 1962 | engines: {node: '>= 4.9.1'} 1963 | dev: true 1964 | 1965 | /fastq@1.15.0: 1966 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 1967 | dependencies: 1968 | reusify: 1.0.4 1969 | dev: true 1970 | 1971 | /fd-slicer@1.1.0: 1972 | resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} 1973 | dependencies: 1974 | pend: 1.2.0 1975 | dev: true 1976 | 1977 | /file-entry-cache@6.0.1: 1978 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1979 | engines: {node: ^10.12.0 || >=12.0.0} 1980 | dependencies: 1981 | flat-cache: 3.0.4 1982 | dev: true 1983 | 1984 | /fill-range@7.0.1: 1985 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1986 | engines: {node: '>=8'} 1987 | dependencies: 1988 | to-regex-range: 5.0.1 1989 | dev: true 1990 | 1991 | /find-up@4.1.0: 1992 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 1993 | engines: {node: '>=8'} 1994 | dependencies: 1995 | locate-path: 5.0.0 1996 | path-exists: 4.0.0 1997 | dev: true 1998 | 1999 | /find-up@5.0.0: 2000 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 2001 | engines: {node: '>=10'} 2002 | dependencies: 2003 | locate-path: 6.0.0 2004 | path-exists: 4.0.0 2005 | dev: true 2006 | 2007 | /find-up@7.0.0: 2008 | resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} 2009 | engines: {node: '>=18'} 2010 | dependencies: 2011 | locate-path: 7.2.0 2012 | path-exists: 5.0.0 2013 | unicorn-magic: 0.1.0 2014 | dev: true 2015 | 2016 | /flat-cache@3.0.4: 2017 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} 2018 | engines: {node: ^10.12.0 || >=12.0.0} 2019 | dependencies: 2020 | flatted: 3.2.7 2021 | rimraf: 3.0.2 2022 | dev: true 2023 | 2024 | /flat@5.0.2: 2025 | resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} 2026 | hasBin: true 2027 | dev: true 2028 | 2029 | /flatted@3.2.7: 2030 | resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} 2031 | dev: true 2032 | 2033 | /follow-redirects@1.15.2: 2034 | resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} 2035 | engines: {node: '>=4.0'} 2036 | peerDependencies: 2037 | debug: '*' 2038 | peerDependenciesMeta: 2039 | debug: 2040 | optional: true 2041 | dev: true 2042 | 2043 | /fs-constants@1.0.0: 2044 | resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} 2045 | requiresBuild: true 2046 | dev: true 2047 | optional: true 2048 | 2049 | /fs-minipass@2.1.0: 2050 | resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} 2051 | engines: {node: '>= 8'} 2052 | dependencies: 2053 | minipass: 3.3.6 2054 | dev: true 2055 | 2056 | /fs.realpath@1.0.0: 2057 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 2058 | dev: true 2059 | 2060 | /fsevents@2.3.2: 2061 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 2062 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 2063 | os: [darwin] 2064 | requiresBuild: true 2065 | dev: true 2066 | optional: true 2067 | 2068 | /function-bind@1.1.1: 2069 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 2070 | dev: true 2071 | 2072 | /function-bind@1.1.2: 2073 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 2074 | dev: true 2075 | 2076 | /get-caller-file@2.0.5: 2077 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 2078 | engines: {node: 6.* || 8.* || >= 10.*} 2079 | dev: true 2080 | 2081 | /get-func-name@2.0.0: 2082 | resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} 2083 | dev: true 2084 | 2085 | /get-intrinsic@1.2.0: 2086 | resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} 2087 | dependencies: 2088 | function-bind: 1.1.1 2089 | has: 1.0.3 2090 | has-symbols: 1.0.3 2091 | dev: true 2092 | 2093 | /get-stream@6.0.1: 2094 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 2095 | engines: {node: '>=10'} 2096 | dev: true 2097 | 2098 | /get-stream@8.0.1: 2099 | resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} 2100 | engines: {node: '>=16'} 2101 | dev: true 2102 | 2103 | /get-tsconfig@4.7.2: 2104 | resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} 2105 | dependencies: 2106 | resolve-pkg-maps: 1.0.0 2107 | dev: true 2108 | 2109 | /giget@1.1.2: 2110 | resolution: {integrity: sha512-HsLoS07HiQ5oqvObOI+Qb2tyZH4Gj5nYGfF9qQcZNrPw+uEFhdXtgJr01aO2pWadGHucajYDLxxbtQkm97ON2A==} 2111 | hasBin: true 2112 | dependencies: 2113 | colorette: 2.0.20 2114 | defu: 6.1.2 2115 | https-proxy-agent: 5.0.1 2116 | mri: 1.2.0 2117 | node-fetch-native: 1.1.0 2118 | pathe: 1.1.0 2119 | tar: 6.1.13 2120 | transitivePeerDependencies: 2121 | - supports-color 2122 | dev: true 2123 | 2124 | /github-from-package@0.0.0: 2125 | resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} 2126 | requiresBuild: true 2127 | dev: true 2128 | optional: true 2129 | 2130 | /glob-parent@5.1.2: 2131 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 2132 | engines: {node: '>= 6'} 2133 | dependencies: 2134 | is-glob: 4.0.3 2135 | dev: true 2136 | 2137 | /glob-parent@6.0.2: 2138 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 2139 | engines: {node: '>=10.13.0'} 2140 | dependencies: 2141 | is-glob: 4.0.3 2142 | dev: true 2143 | 2144 | /glob@7.1.6: 2145 | resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} 2146 | dependencies: 2147 | fs.realpath: 1.0.0 2148 | inflight: 1.0.6 2149 | inherits: 2.0.4 2150 | minimatch: 3.1.2 2151 | once: 1.4.0 2152 | path-is-absolute: 1.0.1 2153 | dev: true 2154 | 2155 | /glob@7.2.3: 2156 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 2157 | dependencies: 2158 | fs.realpath: 1.0.0 2159 | inflight: 1.0.6 2160 | inherits: 2.0.4 2161 | minimatch: 3.1.2 2162 | once: 1.4.0 2163 | path-is-absolute: 1.0.1 2164 | dev: true 2165 | 2166 | /globals@13.23.0: 2167 | resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} 2168 | engines: {node: '>=8'} 2169 | dependencies: 2170 | type-fest: 0.20.2 2171 | dev: true 2172 | 2173 | /globby@11.1.0: 2174 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 2175 | engines: {node: '>=10'} 2176 | dependencies: 2177 | array-union: 2.1.0 2178 | dir-glob: 3.0.1 2179 | fast-glob: 3.2.12 2180 | ignore: 5.2.4 2181 | merge2: 1.4.1 2182 | slash: 3.0.0 2183 | dev: true 2184 | 2185 | /graphemer@1.4.0: 2186 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 2187 | dev: true 2188 | 2189 | /has-flag@3.0.0: 2190 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 2191 | engines: {node: '>=4'} 2192 | dev: true 2193 | 2194 | /has-flag@4.0.0: 2195 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 2196 | engines: {node: '>=8'} 2197 | dev: true 2198 | 2199 | /has-symbols@1.0.3: 2200 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 2201 | engines: {node: '>= 0.4'} 2202 | dev: true 2203 | 2204 | /has@1.0.3: 2205 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 2206 | engines: {node: '>= 0.4.0'} 2207 | dependencies: 2208 | function-bind: 1.1.1 2209 | dev: true 2210 | 2211 | /hasown@2.0.0: 2212 | resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} 2213 | engines: {node: '>= 0.4'} 2214 | dependencies: 2215 | function-bind: 1.1.2 2216 | dev: true 2217 | 2218 | /hosted-git-info@2.8.9: 2219 | resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} 2220 | dev: true 2221 | 2222 | /hosted-git-info@4.1.0: 2223 | resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} 2224 | engines: {node: '>=10'} 2225 | dependencies: 2226 | lru-cache: 6.0.0 2227 | dev: true 2228 | 2229 | /htmlparser2@8.0.2: 2230 | resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} 2231 | dependencies: 2232 | domelementtype: 2.3.0 2233 | domhandler: 5.0.3 2234 | domutils: 3.0.1 2235 | entities: 4.5.0 2236 | dev: true 2237 | 2238 | /https-proxy-agent@5.0.1: 2239 | resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} 2240 | engines: {node: '>= 6'} 2241 | dependencies: 2242 | agent-base: 6.0.2 2243 | debug: 4.3.4 2244 | transitivePeerDependencies: 2245 | - supports-color 2246 | dev: true 2247 | 2248 | /human-signals@2.1.0: 2249 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 2250 | engines: {node: '>=10.17.0'} 2251 | dev: true 2252 | 2253 | /human-signals@5.0.0: 2254 | resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} 2255 | engines: {node: '>=16.17.0'} 2256 | dev: true 2257 | 2258 | /ieee754@1.2.1: 2259 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 2260 | requiresBuild: true 2261 | dev: true 2262 | optional: true 2263 | 2264 | /ignore@5.2.4: 2265 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} 2266 | engines: {node: '>= 4'} 2267 | dev: true 2268 | 2269 | /import-fresh@3.3.0: 2270 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 2271 | engines: {node: '>=6'} 2272 | dependencies: 2273 | parent-module: 1.0.1 2274 | resolve-from: 4.0.0 2275 | dev: true 2276 | 2277 | /imurmurhash@0.1.4: 2278 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 2279 | engines: {node: '>=0.8.19'} 2280 | dev: true 2281 | 2282 | /indent-string@4.0.0: 2283 | resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} 2284 | engines: {node: '>=8'} 2285 | dev: true 2286 | 2287 | /inflight@1.0.6: 2288 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 2289 | dependencies: 2290 | once: 1.4.0 2291 | wrappy: 1.0.2 2292 | dev: true 2293 | 2294 | /inherits@2.0.4: 2295 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 2296 | dev: true 2297 | 2298 | /ini@1.3.8: 2299 | resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} 2300 | requiresBuild: true 2301 | dev: true 2302 | optional: true 2303 | 2304 | /is-alphabetical@1.0.4: 2305 | resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} 2306 | dev: true 2307 | 2308 | /is-alphanumerical@1.0.4: 2309 | resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} 2310 | dependencies: 2311 | is-alphabetical: 1.0.4 2312 | is-decimal: 1.0.4 2313 | dev: true 2314 | 2315 | /is-arrayish@0.2.1: 2316 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} 2317 | dev: true 2318 | 2319 | /is-binary-path@2.1.0: 2320 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 2321 | engines: {node: '>=8'} 2322 | dependencies: 2323 | binary-extensions: 2.2.0 2324 | dev: true 2325 | 2326 | /is-builtin-module@3.2.1: 2327 | resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} 2328 | engines: {node: '>=6'} 2329 | dependencies: 2330 | builtin-modules: 3.3.0 2331 | dev: true 2332 | 2333 | /is-ci@2.0.0: 2334 | resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} 2335 | hasBin: true 2336 | dependencies: 2337 | ci-info: 2.0.0 2338 | dev: true 2339 | 2340 | /is-core-module@2.13.1: 2341 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} 2342 | dependencies: 2343 | hasown: 2.0.0 2344 | dev: true 2345 | 2346 | /is-decimal@1.0.4: 2347 | resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} 2348 | dev: true 2349 | 2350 | /is-extglob@2.1.1: 2351 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 2352 | engines: {node: '>=0.10.0'} 2353 | dev: true 2354 | 2355 | /is-fullwidth-code-point@3.0.0: 2356 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 2357 | engines: {node: '>=8'} 2358 | dev: true 2359 | 2360 | /is-fullwidth-code-point@4.0.0: 2361 | resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} 2362 | engines: {node: '>=12'} 2363 | dev: true 2364 | 2365 | /is-glob@4.0.3: 2366 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 2367 | engines: {node: '>=0.10.0'} 2368 | dependencies: 2369 | is-extglob: 2.1.1 2370 | dev: true 2371 | 2372 | /is-hexadecimal@1.0.4: 2373 | resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} 2374 | dev: true 2375 | 2376 | /is-number@7.0.0: 2377 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 2378 | engines: {node: '>=0.12.0'} 2379 | dev: true 2380 | 2381 | /is-path-inside@3.0.3: 2382 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 2383 | engines: {node: '>=8'} 2384 | dev: true 2385 | 2386 | /is-stream@2.0.1: 2387 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 2388 | engines: {node: '>=8'} 2389 | dev: true 2390 | 2391 | /is-stream@3.0.0: 2392 | resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} 2393 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2394 | dev: true 2395 | 2396 | /isexe@2.0.0: 2397 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 2398 | dev: true 2399 | 2400 | /jiti@1.18.2: 2401 | resolution: {integrity: sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==} 2402 | hasBin: true 2403 | dev: true 2404 | 2405 | /joycon@3.1.1: 2406 | resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 2407 | engines: {node: '>=10'} 2408 | dev: true 2409 | 2410 | /js-tokens@4.0.0: 2411 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 2412 | dev: true 2413 | 2414 | /js-yaml@4.1.0: 2415 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 2416 | hasBin: true 2417 | dependencies: 2418 | argparse: 2.0.1 2419 | dev: true 2420 | 2421 | /jsdoc-type-pratt-parser@4.0.0: 2422 | resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} 2423 | engines: {node: '>=12.0.0'} 2424 | dev: true 2425 | 2426 | /jsesc@0.5.0: 2427 | resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} 2428 | hasBin: true 2429 | dev: true 2430 | 2431 | /jsesc@3.0.2: 2432 | resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} 2433 | engines: {node: '>=6'} 2434 | hasBin: true 2435 | dev: true 2436 | 2437 | /json-parse-even-better-errors@2.3.1: 2438 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 2439 | dev: true 2440 | 2441 | /json-schema-traverse@0.4.1: 2442 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 2443 | dev: true 2444 | 2445 | /json-stable-stringify-without-jsonify@1.0.1: 2446 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 2447 | dev: true 2448 | 2449 | /jsonc-eslint-parser@2.4.0: 2450 | resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} 2451 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2452 | dependencies: 2453 | acorn: 8.8.2 2454 | eslint-visitor-keys: 3.4.0 2455 | espree: 9.5.1 2456 | semver: 7.5.4 2457 | dev: true 2458 | 2459 | /jsonc-parser@3.2.0: 2460 | resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} 2461 | dev: true 2462 | 2463 | /keytar@7.9.0: 2464 | resolution: {integrity: sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==} 2465 | requiresBuild: true 2466 | dependencies: 2467 | node-addon-api: 4.3.0 2468 | prebuild-install: 7.1.1 2469 | dev: true 2470 | optional: true 2471 | 2472 | /kleur@3.0.3: 2473 | resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} 2474 | engines: {node: '>=6'} 2475 | dev: true 2476 | 2477 | /leven@3.1.0: 2478 | resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} 2479 | engines: {node: '>=6'} 2480 | dev: true 2481 | 2482 | /levn@0.4.1: 2483 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 2484 | engines: {node: '>= 0.8.0'} 2485 | dependencies: 2486 | prelude-ls: 1.2.1 2487 | type-check: 0.4.0 2488 | dev: true 2489 | 2490 | /lilconfig@2.1.0: 2491 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 2492 | engines: {node: '>=10'} 2493 | dev: true 2494 | 2495 | /lines-and-columns@1.2.4: 2496 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 2497 | dev: true 2498 | 2499 | /linkify-it@3.0.3: 2500 | resolution: {integrity: sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==} 2501 | dependencies: 2502 | uc.micro: 1.0.6 2503 | dev: true 2504 | 2505 | /load-tsconfig@0.2.5: 2506 | resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} 2507 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2508 | dev: true 2509 | 2510 | /local-pkg@0.4.3: 2511 | resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} 2512 | engines: {node: '>=14'} 2513 | dev: true 2514 | 2515 | /local-pkg@0.5.0: 2516 | resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} 2517 | engines: {node: '>=14'} 2518 | dependencies: 2519 | mlly: 1.4.2 2520 | pkg-types: 1.0.3 2521 | dev: true 2522 | 2523 | /locate-path@5.0.0: 2524 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 2525 | engines: {node: '>=8'} 2526 | dependencies: 2527 | p-locate: 4.1.0 2528 | dev: true 2529 | 2530 | /locate-path@6.0.0: 2531 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 2532 | engines: {node: '>=10'} 2533 | dependencies: 2534 | p-locate: 5.0.0 2535 | dev: true 2536 | 2537 | /locate-path@7.2.0: 2538 | resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} 2539 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2540 | dependencies: 2541 | p-locate: 6.0.0 2542 | dev: true 2543 | 2544 | /lodash.merge@4.6.2: 2545 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 2546 | dev: true 2547 | 2548 | /lodash.sortby@4.7.0: 2549 | resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} 2550 | dev: true 2551 | 2552 | /lodash@4.17.21: 2553 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 2554 | dev: true 2555 | 2556 | /loupe@2.3.6: 2557 | resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} 2558 | dependencies: 2559 | get-func-name: 2.0.0 2560 | dev: true 2561 | 2562 | /lru-cache@6.0.0: 2563 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 2564 | engines: {node: '>=10'} 2565 | dependencies: 2566 | yallist: 4.0.0 2567 | dev: true 2568 | 2569 | /markdown-it@12.3.2: 2570 | resolution: {integrity: sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==} 2571 | hasBin: true 2572 | dependencies: 2573 | argparse: 2.0.1 2574 | entities: 2.1.0 2575 | linkify-it: 3.0.3 2576 | mdurl: 1.0.1 2577 | uc.micro: 1.0.6 2578 | dev: true 2579 | 2580 | /mdast-util-from-markdown@0.8.5: 2581 | resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} 2582 | dependencies: 2583 | '@types/mdast': 3.0.11 2584 | mdast-util-to-string: 2.0.0 2585 | micromark: 2.11.4 2586 | parse-entities: 2.0.0 2587 | unist-util-stringify-position: 2.0.3 2588 | transitivePeerDependencies: 2589 | - supports-color 2590 | dev: true 2591 | 2592 | /mdast-util-to-string@2.0.0: 2593 | resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} 2594 | dev: true 2595 | 2596 | /mdurl@1.0.1: 2597 | resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} 2598 | dev: true 2599 | 2600 | /merge-stream@2.0.0: 2601 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 2602 | dev: true 2603 | 2604 | /merge2@1.4.1: 2605 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 2606 | engines: {node: '>= 8'} 2607 | dev: true 2608 | 2609 | /micromark@2.11.4: 2610 | resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} 2611 | dependencies: 2612 | debug: 4.3.4 2613 | parse-entities: 2.0.0 2614 | transitivePeerDependencies: 2615 | - supports-color 2616 | dev: true 2617 | 2618 | /micromatch@4.0.5: 2619 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 2620 | engines: {node: '>=8.6'} 2621 | dependencies: 2622 | braces: 3.0.2 2623 | picomatch: 2.3.1 2624 | dev: true 2625 | 2626 | /mime@1.6.0: 2627 | resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} 2628 | engines: {node: '>=4'} 2629 | hasBin: true 2630 | dev: true 2631 | 2632 | /mimic-fn@2.1.0: 2633 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 2634 | engines: {node: '>=6'} 2635 | dev: true 2636 | 2637 | /mimic-fn@4.0.0: 2638 | resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} 2639 | engines: {node: '>=12'} 2640 | dev: true 2641 | 2642 | /mimic-response@3.1.0: 2643 | resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} 2644 | engines: {node: '>=10'} 2645 | requiresBuild: true 2646 | dev: true 2647 | optional: true 2648 | 2649 | /min-indent@1.0.1: 2650 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 2651 | engines: {node: '>=4'} 2652 | dev: true 2653 | 2654 | /minimatch@3.1.2: 2655 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 2656 | dependencies: 2657 | brace-expansion: 1.1.11 2658 | dev: true 2659 | 2660 | /minimatch@9.0.3: 2661 | resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} 2662 | engines: {node: '>=16 || 14 >=14.17'} 2663 | dependencies: 2664 | brace-expansion: 2.0.1 2665 | dev: true 2666 | 2667 | /minimist@1.2.8: 2668 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 2669 | requiresBuild: true 2670 | dev: true 2671 | optional: true 2672 | 2673 | /minipass@3.3.6: 2674 | resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} 2675 | engines: {node: '>=8'} 2676 | dependencies: 2677 | yallist: 4.0.0 2678 | dev: true 2679 | 2680 | /minipass@4.2.8: 2681 | resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} 2682 | engines: {node: '>=8'} 2683 | dev: true 2684 | 2685 | /minizlib@2.1.2: 2686 | resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} 2687 | engines: {node: '>= 8'} 2688 | dependencies: 2689 | minipass: 3.3.6 2690 | yallist: 4.0.0 2691 | dev: true 2692 | 2693 | /mkdirp-classic@0.5.3: 2694 | resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} 2695 | requiresBuild: true 2696 | dev: true 2697 | optional: true 2698 | 2699 | /mkdirp@1.0.4: 2700 | resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} 2701 | engines: {node: '>=10'} 2702 | hasBin: true 2703 | dev: true 2704 | 2705 | /mlly@1.2.0: 2706 | resolution: {integrity: sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww==} 2707 | dependencies: 2708 | acorn: 8.11.2 2709 | pathe: 1.1.0 2710 | pkg-types: 1.0.2 2711 | ufo: 1.1.1 2712 | dev: true 2713 | 2714 | /mlly@1.4.2: 2715 | resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} 2716 | dependencies: 2717 | acorn: 8.11.2 2718 | pathe: 1.1.1 2719 | pkg-types: 1.0.3 2720 | ufo: 1.3.2 2721 | dev: true 2722 | 2723 | /mri@1.2.0: 2724 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 2725 | engines: {node: '>=4'} 2726 | dev: true 2727 | 2728 | /ms@2.1.2: 2729 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 2730 | dev: true 2731 | 2732 | /ms@2.1.3: 2733 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 2734 | dev: true 2735 | 2736 | /mute-stream@0.0.8: 2737 | resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} 2738 | dev: true 2739 | 2740 | /mz@2.7.0: 2741 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 2742 | dependencies: 2743 | any-promise: 1.3.0 2744 | object-assign: 4.1.1 2745 | thenify-all: 1.6.0 2746 | dev: true 2747 | 2748 | /nanoid@3.3.6: 2749 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} 2750 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 2751 | hasBin: true 2752 | dev: true 2753 | 2754 | /napi-build-utils@1.0.2: 2755 | resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} 2756 | requiresBuild: true 2757 | dev: true 2758 | optional: true 2759 | 2760 | /natural-compare-lite@1.4.0: 2761 | resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} 2762 | dev: true 2763 | 2764 | /natural-compare@1.4.0: 2765 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 2766 | dev: true 2767 | 2768 | /node-abi@3.40.0: 2769 | resolution: {integrity: sha512-zNy02qivjjRosswoYmPi8hIKJRr8MpQyeKT6qlcq/OnOgA3Rhoae+IYOqsM9V5+JnHWmxKnWOT2GxvtqdtOCXA==} 2770 | engines: {node: '>=10'} 2771 | requiresBuild: true 2772 | dependencies: 2773 | semver: 7.5.0 2774 | dev: true 2775 | optional: true 2776 | 2777 | /node-addon-api@4.3.0: 2778 | resolution: {integrity: sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==} 2779 | requiresBuild: true 2780 | dev: true 2781 | optional: true 2782 | 2783 | /node-fetch-native@1.1.0: 2784 | resolution: {integrity: sha512-nl5goFCig93JZ9FIV8GHT9xpNqXbxQUzkOmKIMKmncsBH9jhg7qKex8hirpymkBFmNQ114chEEG5lS4wgK2I+Q==} 2785 | dev: true 2786 | 2787 | /normalize-package-data@2.5.0: 2788 | resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} 2789 | dependencies: 2790 | hosted-git-info: 2.8.9 2791 | resolve: 1.22.8 2792 | semver: 5.7.1 2793 | validate-npm-package-license: 3.0.4 2794 | dev: true 2795 | 2796 | /normalize-path@3.0.0: 2797 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 2798 | engines: {node: '>=0.10.0'} 2799 | dev: true 2800 | 2801 | /npm-run-path@4.0.1: 2802 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 2803 | engines: {node: '>=8'} 2804 | dependencies: 2805 | path-key: 3.1.1 2806 | dev: true 2807 | 2808 | /npm-run-path@5.1.0: 2809 | resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} 2810 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2811 | dependencies: 2812 | path-key: 4.0.0 2813 | dev: true 2814 | 2815 | /nth-check@2.1.1: 2816 | resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} 2817 | dependencies: 2818 | boolbase: 1.0.0 2819 | dev: true 2820 | 2821 | /object-assign@4.1.1: 2822 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 2823 | engines: {node: '>=0.10.0'} 2824 | dev: true 2825 | 2826 | /object-inspect@1.12.3: 2827 | resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} 2828 | dev: true 2829 | 2830 | /ohash@1.1.1: 2831 | resolution: {integrity: sha512-N9UDJn2IV6oO6pNclJ80tRXraNNJqw/asscr3Lu7+ibRQdEswejJuuXNclMQTJVTsVhQs+ZJThVziy6t2v2KXA==} 2832 | dev: true 2833 | 2834 | /once@1.4.0: 2835 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 2836 | dependencies: 2837 | wrappy: 1.0.2 2838 | dev: true 2839 | 2840 | /onetime@5.1.2: 2841 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 2842 | engines: {node: '>=6'} 2843 | dependencies: 2844 | mimic-fn: 2.1.0 2845 | dev: true 2846 | 2847 | /onetime@6.0.0: 2848 | resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} 2849 | engines: {node: '>=12'} 2850 | dependencies: 2851 | mimic-fn: 4.0.0 2852 | dev: true 2853 | 2854 | /optionator@0.9.3: 2855 | resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} 2856 | engines: {node: '>= 0.8.0'} 2857 | dependencies: 2858 | '@aashutoshrathi/word-wrap': 1.2.6 2859 | deep-is: 0.1.4 2860 | fast-levenshtein: 2.0.6 2861 | levn: 0.4.1 2862 | prelude-ls: 1.2.1 2863 | type-check: 0.4.0 2864 | dev: true 2865 | 2866 | /ovsx@0.8.0: 2867 | resolution: {integrity: sha512-W1U7lgBIbhSB1DcqyGKeenKzmwWYY78SkWd+BUKKyLyqN6w39Uekdr0PKAM7dyBGb0JLtLE7d86A1jJVn8bEng==} 2868 | engines: {node: '>= 14'} 2869 | hasBin: true 2870 | dependencies: 2871 | '@vscode/vsce': 2.19.0 2872 | commander: 6.2.1 2873 | follow-redirects: 1.15.2 2874 | is-ci: 2.0.0 2875 | leven: 3.1.0 2876 | tmp: 0.2.1 2877 | transitivePeerDependencies: 2878 | - debug 2879 | dev: true 2880 | 2881 | /p-limit@2.3.0: 2882 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 2883 | engines: {node: '>=6'} 2884 | dependencies: 2885 | p-try: 2.2.0 2886 | dev: true 2887 | 2888 | /p-limit@3.1.0: 2889 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 2890 | engines: {node: '>=10'} 2891 | dependencies: 2892 | yocto-queue: 0.1.0 2893 | dev: true 2894 | 2895 | /p-limit@4.0.0: 2896 | resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} 2897 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2898 | dependencies: 2899 | yocto-queue: 1.0.0 2900 | dev: true 2901 | 2902 | /p-locate@4.1.0: 2903 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 2904 | engines: {node: '>=8'} 2905 | dependencies: 2906 | p-limit: 2.3.0 2907 | dev: true 2908 | 2909 | /p-locate@5.0.0: 2910 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 2911 | engines: {node: '>=10'} 2912 | dependencies: 2913 | p-limit: 3.1.0 2914 | dev: true 2915 | 2916 | /p-locate@6.0.0: 2917 | resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} 2918 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2919 | dependencies: 2920 | p-limit: 4.0.0 2921 | dev: true 2922 | 2923 | /p-try@2.2.0: 2924 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 2925 | engines: {node: '>=6'} 2926 | dev: true 2927 | 2928 | /parent-module@1.0.1: 2929 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 2930 | engines: {node: '>=6'} 2931 | dependencies: 2932 | callsites: 3.1.0 2933 | dev: true 2934 | 2935 | /parse-entities@2.0.0: 2936 | resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} 2937 | dependencies: 2938 | character-entities: 1.2.4 2939 | character-entities-legacy: 1.1.4 2940 | character-reference-invalid: 1.1.4 2941 | is-alphanumerical: 1.0.4 2942 | is-decimal: 1.0.4 2943 | is-hexadecimal: 1.0.4 2944 | dev: true 2945 | 2946 | /parse-gitignore@2.0.0: 2947 | resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==} 2948 | engines: {node: '>=14'} 2949 | dev: true 2950 | 2951 | /parse-json@5.2.0: 2952 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 2953 | engines: {node: '>=8'} 2954 | dependencies: 2955 | '@babel/code-frame': 7.21.4 2956 | error-ex: 1.3.2 2957 | json-parse-even-better-errors: 2.3.1 2958 | lines-and-columns: 1.2.4 2959 | dev: true 2960 | 2961 | /parse-semver@1.1.1: 2962 | resolution: {integrity: sha512-Eg1OuNntBMH0ojvEKSrvDSnwLmvVuUOSdylH/pSCPNMIspLlweJyIWXCE+k/5hm3cj/EBUYwmWkjhBALNP4LXQ==} 2963 | dependencies: 2964 | semver: 5.7.1 2965 | dev: true 2966 | 2967 | /parse5-htmlparser2-tree-adapter@7.0.0: 2968 | resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} 2969 | dependencies: 2970 | domhandler: 5.0.3 2971 | parse5: 7.1.2 2972 | dev: true 2973 | 2974 | /parse5@7.1.2: 2975 | resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} 2976 | dependencies: 2977 | entities: 4.5.0 2978 | dev: true 2979 | 2980 | /path-exists@4.0.0: 2981 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 2982 | engines: {node: '>=8'} 2983 | dev: true 2984 | 2985 | /path-exists@5.0.0: 2986 | resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} 2987 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2988 | dev: true 2989 | 2990 | /path-is-absolute@1.0.1: 2991 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 2992 | engines: {node: '>=0.10.0'} 2993 | dev: true 2994 | 2995 | /path-key@3.1.1: 2996 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 2997 | engines: {node: '>=8'} 2998 | dev: true 2999 | 3000 | /path-key@4.0.0: 3001 | resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} 3002 | engines: {node: '>=12'} 3003 | dev: true 3004 | 3005 | /path-parse@1.0.7: 3006 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 3007 | dev: true 3008 | 3009 | /path-type@4.0.0: 3010 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 3011 | engines: {node: '>=8'} 3012 | dev: true 3013 | 3014 | /pathe@1.1.0: 3015 | resolution: {integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==} 3016 | dev: true 3017 | 3018 | /pathe@1.1.1: 3019 | resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} 3020 | dev: true 3021 | 3022 | /pathval@1.1.1: 3023 | resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} 3024 | dev: true 3025 | 3026 | /pend@1.2.0: 3027 | resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} 3028 | dev: true 3029 | 3030 | /perfect-debounce@0.1.3: 3031 | resolution: {integrity: sha512-NOT9AcKiDGpnV/HBhI22Str++XWcErO/bALvHCuhv33owZW/CjH8KAFLZDCmu3727sihe0wTxpDhyGc6M8qacQ==} 3032 | dev: true 3033 | 3034 | /picocolors@1.0.0: 3035 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 3036 | dev: true 3037 | 3038 | /picomatch@2.3.1: 3039 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 3040 | engines: {node: '>=8.6'} 3041 | dev: true 3042 | 3043 | /pirates@4.0.5: 3044 | resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} 3045 | engines: {node: '>= 6'} 3046 | dev: true 3047 | 3048 | /pkg-types@1.0.2: 3049 | resolution: {integrity: sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==} 3050 | dependencies: 3051 | jsonc-parser: 3.2.0 3052 | mlly: 1.2.0 3053 | pathe: 1.1.0 3054 | dev: true 3055 | 3056 | /pkg-types@1.0.3: 3057 | resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} 3058 | dependencies: 3059 | jsonc-parser: 3.2.0 3060 | mlly: 1.4.2 3061 | pathe: 1.1.0 3062 | dev: true 3063 | 3064 | /pluralize@8.0.0: 3065 | resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} 3066 | engines: {node: '>=4'} 3067 | dev: true 3068 | 3069 | /pnpm@8.3.1: 3070 | resolution: {integrity: sha512-0mT2ZAv08J3nz8xUdWhRW88GE89IWgPo/xZhb6acQXK2+aCikl7kT7Bg31ZcnJqOrwYXSed68xjLd/ZoSnBR8w==} 3071 | engines: {node: '>=16.14'} 3072 | hasBin: true 3073 | dev: true 3074 | 3075 | /postcss-load-config@3.1.4: 3076 | resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} 3077 | engines: {node: '>= 10'} 3078 | peerDependencies: 3079 | postcss: '>=8.0.9' 3080 | ts-node: '>=9.0.0' 3081 | peerDependenciesMeta: 3082 | postcss: 3083 | optional: true 3084 | ts-node: 3085 | optional: true 3086 | dependencies: 3087 | lilconfig: 2.1.0 3088 | yaml: 1.10.2 3089 | dev: true 3090 | 3091 | /postcss-selector-parser@6.0.13: 3092 | resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} 3093 | engines: {node: '>=4'} 3094 | dependencies: 3095 | cssesc: 3.0.0 3096 | util-deprecate: 1.0.2 3097 | dev: true 3098 | 3099 | /postcss@8.4.23: 3100 | resolution: {integrity: sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==} 3101 | engines: {node: ^10 || ^12 || >=14} 3102 | dependencies: 3103 | nanoid: 3.3.6 3104 | picocolors: 1.0.0 3105 | source-map-js: 1.0.2 3106 | dev: true 3107 | 3108 | /prebuild-install@7.1.1: 3109 | resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} 3110 | engines: {node: '>=10'} 3111 | hasBin: true 3112 | requiresBuild: true 3113 | dependencies: 3114 | detect-libc: 2.0.1 3115 | expand-template: 2.0.3 3116 | github-from-package: 0.0.0 3117 | minimist: 1.2.8 3118 | mkdirp-classic: 0.5.3 3119 | napi-build-utils: 1.0.2 3120 | node-abi: 3.40.0 3121 | pump: 3.0.0 3122 | rc: 1.2.8 3123 | simple-get: 4.0.1 3124 | tar-fs: 2.1.1 3125 | tunnel-agent: 0.6.0 3126 | dev: true 3127 | optional: true 3128 | 3129 | /prelude-ls@1.2.1: 3130 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 3131 | engines: {node: '>= 0.8.0'} 3132 | dev: true 3133 | 3134 | /pretty-format@27.5.1: 3135 | resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} 3136 | engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} 3137 | dependencies: 3138 | ansi-regex: 5.0.1 3139 | ansi-styles: 5.2.0 3140 | react-is: 17.0.2 3141 | dev: true 3142 | 3143 | /prompts@2.4.2: 3144 | resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} 3145 | engines: {node: '>= 6'} 3146 | dependencies: 3147 | kleur: 3.0.3 3148 | sisteransi: 1.0.5 3149 | dev: true 3150 | 3151 | /pump@3.0.0: 3152 | resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} 3153 | requiresBuild: true 3154 | dependencies: 3155 | end-of-stream: 1.4.4 3156 | once: 1.4.0 3157 | dev: true 3158 | optional: true 3159 | 3160 | /punycode@2.3.0: 3161 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} 3162 | engines: {node: '>=6'} 3163 | dev: true 3164 | 3165 | /qs@6.11.1: 3166 | resolution: {integrity: sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==} 3167 | engines: {node: '>=0.6'} 3168 | dependencies: 3169 | side-channel: 1.0.4 3170 | dev: true 3171 | 3172 | /queue-microtask@1.2.3: 3173 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 3174 | dev: true 3175 | 3176 | /rc9@2.1.0: 3177 | resolution: {integrity: sha512-ROO9bv8PPqngWKoiUZU3JDQ4sugpdRs9DfwHnzDSxK25XtQn6BEHL6EOd/OtKuDT2qodrtNR+0WkPT6l0jxH5Q==} 3178 | dependencies: 3179 | defu: 6.1.2 3180 | destr: 1.2.2 3181 | flat: 5.0.2 3182 | dev: true 3183 | 3184 | /rc@1.2.8: 3185 | resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} 3186 | hasBin: true 3187 | requiresBuild: true 3188 | dependencies: 3189 | deep-extend: 0.6.0 3190 | ini: 1.3.8 3191 | minimist: 1.2.8 3192 | strip-json-comments: 2.0.1 3193 | dev: true 3194 | optional: true 3195 | 3196 | /react-is@17.0.2: 3197 | resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} 3198 | dev: true 3199 | 3200 | /read-pkg-up@7.0.1: 3201 | resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} 3202 | engines: {node: '>=8'} 3203 | dependencies: 3204 | find-up: 4.1.0 3205 | read-pkg: 5.2.0 3206 | type-fest: 0.8.1 3207 | dev: true 3208 | 3209 | /read-pkg@5.2.0: 3210 | resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} 3211 | engines: {node: '>=8'} 3212 | dependencies: 3213 | '@types/normalize-package-data': 2.4.1 3214 | normalize-package-data: 2.5.0 3215 | parse-json: 5.2.0 3216 | type-fest: 0.6.0 3217 | dev: true 3218 | 3219 | /read@1.0.7: 3220 | resolution: {integrity: sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==} 3221 | engines: {node: '>=0.8'} 3222 | dependencies: 3223 | mute-stream: 0.0.8 3224 | dev: true 3225 | 3226 | /readable-stream@3.6.2: 3227 | resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} 3228 | engines: {node: '>= 6'} 3229 | requiresBuild: true 3230 | dependencies: 3231 | inherits: 2.0.4 3232 | string_decoder: 1.3.0 3233 | util-deprecate: 1.0.2 3234 | dev: true 3235 | optional: true 3236 | 3237 | /readdirp@3.6.0: 3238 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 3239 | engines: {node: '>=8.10.0'} 3240 | dependencies: 3241 | picomatch: 2.3.1 3242 | dev: true 3243 | 3244 | /regexp-tree@0.1.27: 3245 | resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} 3246 | hasBin: true 3247 | dev: true 3248 | 3249 | /regjsparser@0.10.0: 3250 | resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} 3251 | hasBin: true 3252 | dependencies: 3253 | jsesc: 0.5.0 3254 | dev: true 3255 | 3256 | /require-directory@2.1.1: 3257 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 3258 | engines: {node: '>=0.10.0'} 3259 | dev: true 3260 | 3261 | /resolve-from@4.0.0: 3262 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 3263 | engines: {node: '>=4'} 3264 | dev: true 3265 | 3266 | /resolve-from@5.0.0: 3267 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 3268 | engines: {node: '>=8'} 3269 | dev: true 3270 | 3271 | /resolve-pkg-maps@1.0.0: 3272 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 3273 | dev: true 3274 | 3275 | /resolve@1.22.8: 3276 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 3277 | hasBin: true 3278 | dependencies: 3279 | is-core-module: 2.13.1 3280 | path-parse: 1.0.7 3281 | supports-preserve-symlinks-flag: 1.0.0 3282 | dev: true 3283 | 3284 | /reusify@1.0.4: 3285 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 3286 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 3287 | dev: true 3288 | 3289 | /rimraf@3.0.2: 3290 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 3291 | hasBin: true 3292 | dependencies: 3293 | glob: 7.2.3 3294 | dev: true 3295 | 3296 | /rollup@3.20.7: 3297 | resolution: {integrity: sha512-P7E2zezKSLhWnTz46XxjSmInrbOCiul1yf+kJccMxT56vxjHwCbDfoLbiqFgu+WQoo9ij2PkraYaBstgB2prBA==} 3298 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} 3299 | hasBin: true 3300 | optionalDependencies: 3301 | fsevents: 2.3.2 3302 | dev: true 3303 | 3304 | /run-parallel@1.2.0: 3305 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 3306 | dependencies: 3307 | queue-microtask: 1.2.3 3308 | dev: true 3309 | 3310 | /rxjs@7.8.0: 3311 | resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==} 3312 | dependencies: 3313 | tslib: 2.5.0 3314 | dev: true 3315 | 3316 | /safe-buffer@5.2.1: 3317 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 3318 | requiresBuild: true 3319 | dev: true 3320 | optional: true 3321 | 3322 | /sax@1.2.4: 3323 | resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} 3324 | dev: true 3325 | 3326 | /semver@5.7.1: 3327 | resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} 3328 | hasBin: true 3329 | dev: true 3330 | 3331 | /semver@7.5.0: 3332 | resolution: {integrity: sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==} 3333 | engines: {node: '>=10'} 3334 | hasBin: true 3335 | dependencies: 3336 | lru-cache: 6.0.0 3337 | dev: true 3338 | 3339 | /semver@7.5.4: 3340 | resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} 3341 | engines: {node: '>=10'} 3342 | hasBin: true 3343 | dependencies: 3344 | lru-cache: 6.0.0 3345 | dev: true 3346 | 3347 | /shebang-command@2.0.0: 3348 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 3349 | engines: {node: '>=8'} 3350 | dependencies: 3351 | shebang-regex: 3.0.0 3352 | dev: true 3353 | 3354 | /shebang-regex@3.0.0: 3355 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 3356 | engines: {node: '>=8'} 3357 | dev: true 3358 | 3359 | /shell-quote@1.8.1: 3360 | resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} 3361 | dev: true 3362 | 3363 | /side-channel@1.0.4: 3364 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} 3365 | dependencies: 3366 | call-bind: 1.0.2 3367 | get-intrinsic: 1.2.0 3368 | object-inspect: 1.12.3 3369 | dev: true 3370 | 3371 | /siginfo@2.0.0: 3372 | resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} 3373 | dev: true 3374 | 3375 | /signal-exit@3.0.7: 3376 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 3377 | dev: true 3378 | 3379 | /signal-exit@4.1.0: 3380 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 3381 | engines: {node: '>=14'} 3382 | dev: true 3383 | 3384 | /simple-concat@1.0.1: 3385 | resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} 3386 | requiresBuild: true 3387 | dev: true 3388 | optional: true 3389 | 3390 | /simple-get@4.0.1: 3391 | resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} 3392 | requiresBuild: true 3393 | dependencies: 3394 | decompress-response: 6.0.0 3395 | once: 1.4.0 3396 | simple-concat: 1.0.1 3397 | dev: true 3398 | optional: true 3399 | 3400 | /sisteransi@1.0.5: 3401 | resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} 3402 | dev: true 3403 | 3404 | /slash@3.0.0: 3405 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 3406 | engines: {node: '>=8'} 3407 | dev: true 3408 | 3409 | /slice-ansi@5.0.0: 3410 | resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} 3411 | engines: {node: '>=12'} 3412 | dependencies: 3413 | ansi-styles: 6.2.1 3414 | is-fullwidth-code-point: 4.0.0 3415 | dev: true 3416 | 3417 | /source-map-js@1.0.2: 3418 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 3419 | engines: {node: '>=0.10.0'} 3420 | dev: true 3421 | 3422 | /source-map@0.6.1: 3423 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 3424 | engines: {node: '>=0.10.0'} 3425 | dev: true 3426 | 3427 | /source-map@0.8.0-beta.0: 3428 | resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} 3429 | engines: {node: '>= 8'} 3430 | dependencies: 3431 | whatwg-url: 7.1.0 3432 | dev: true 3433 | 3434 | /spawn-command@0.0.2-1: 3435 | resolution: {integrity: sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==} 3436 | dev: true 3437 | 3438 | /spdx-correct@3.2.0: 3439 | resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} 3440 | dependencies: 3441 | spdx-expression-parse: 3.0.1 3442 | spdx-license-ids: 3.0.13 3443 | dev: true 3444 | 3445 | /spdx-exceptions@2.3.0: 3446 | resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} 3447 | dev: true 3448 | 3449 | /spdx-expression-parse@3.0.1: 3450 | resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} 3451 | dependencies: 3452 | spdx-exceptions: 2.3.0 3453 | spdx-license-ids: 3.0.13 3454 | dev: true 3455 | 3456 | /spdx-license-ids@3.0.13: 3457 | resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} 3458 | dev: true 3459 | 3460 | /stackback@0.0.2: 3461 | resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} 3462 | dev: true 3463 | 3464 | /std-env@3.3.2: 3465 | resolution: {integrity: sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==} 3466 | dev: true 3467 | 3468 | /string-argv@0.3.1: 3469 | resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} 3470 | engines: {node: '>=0.6.19'} 3471 | dev: true 3472 | 3473 | /string-width@4.2.3: 3474 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 3475 | engines: {node: '>=8'} 3476 | dependencies: 3477 | emoji-regex: 8.0.0 3478 | is-fullwidth-code-point: 3.0.0 3479 | strip-ansi: 6.0.1 3480 | dev: true 3481 | 3482 | /string-width@5.1.2: 3483 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 3484 | engines: {node: '>=12'} 3485 | dependencies: 3486 | eastasianwidth: 0.2.0 3487 | emoji-regex: 9.2.2 3488 | strip-ansi: 7.0.1 3489 | dev: true 3490 | 3491 | /string_decoder@1.3.0: 3492 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 3493 | requiresBuild: true 3494 | dependencies: 3495 | safe-buffer: 5.2.1 3496 | dev: true 3497 | optional: true 3498 | 3499 | /strip-ansi@6.0.1: 3500 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 3501 | engines: {node: '>=8'} 3502 | dependencies: 3503 | ansi-regex: 5.0.1 3504 | dev: true 3505 | 3506 | /strip-ansi@7.0.1: 3507 | resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} 3508 | engines: {node: '>=12'} 3509 | dependencies: 3510 | ansi-regex: 6.0.1 3511 | dev: true 3512 | 3513 | /strip-final-newline@2.0.0: 3514 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 3515 | engines: {node: '>=6'} 3516 | dev: true 3517 | 3518 | /strip-final-newline@3.0.0: 3519 | resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} 3520 | engines: {node: '>=12'} 3521 | dev: true 3522 | 3523 | /strip-indent@3.0.0: 3524 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 3525 | engines: {node: '>=8'} 3526 | dependencies: 3527 | min-indent: 1.0.1 3528 | dev: true 3529 | 3530 | /strip-json-comments@2.0.1: 3531 | resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} 3532 | engines: {node: '>=0.10.0'} 3533 | requiresBuild: true 3534 | dev: true 3535 | optional: true 3536 | 3537 | /strip-json-comments@3.1.1: 3538 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 3539 | engines: {node: '>=8'} 3540 | dev: true 3541 | 3542 | /strip-literal@1.0.1: 3543 | resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==} 3544 | dependencies: 3545 | acorn: 8.8.2 3546 | dev: true 3547 | 3548 | /sucrase@3.32.0: 3549 | resolution: {integrity: sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==} 3550 | engines: {node: '>=8'} 3551 | hasBin: true 3552 | dependencies: 3553 | '@jridgewell/gen-mapping': 0.3.3 3554 | commander: 4.1.1 3555 | glob: 7.1.6 3556 | lines-and-columns: 1.2.4 3557 | mz: 2.7.0 3558 | pirates: 4.0.5 3559 | ts-interface-checker: 0.1.13 3560 | dev: true 3561 | 3562 | /supports-color@5.5.0: 3563 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 3564 | engines: {node: '>=4'} 3565 | dependencies: 3566 | has-flag: 3.0.0 3567 | dev: true 3568 | 3569 | /supports-color@7.2.0: 3570 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 3571 | engines: {node: '>=8'} 3572 | dependencies: 3573 | has-flag: 4.0.0 3574 | dev: true 3575 | 3576 | /supports-color@8.1.1: 3577 | resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} 3578 | engines: {node: '>=10'} 3579 | dependencies: 3580 | has-flag: 4.0.0 3581 | dev: true 3582 | 3583 | /supports-preserve-symlinks-flag@1.0.0: 3584 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 3585 | engines: {node: '>= 0.4'} 3586 | dev: true 3587 | 3588 | /tar-fs@2.1.1: 3589 | resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} 3590 | requiresBuild: true 3591 | dependencies: 3592 | chownr: 1.1.4 3593 | mkdirp-classic: 0.5.3 3594 | pump: 3.0.0 3595 | tar-stream: 2.2.0 3596 | dev: true 3597 | optional: true 3598 | 3599 | /tar-stream@2.2.0: 3600 | resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} 3601 | engines: {node: '>=6'} 3602 | requiresBuild: true 3603 | dependencies: 3604 | bl: 4.1.0 3605 | end-of-stream: 1.4.4 3606 | fs-constants: 1.0.0 3607 | inherits: 2.0.4 3608 | readable-stream: 3.6.2 3609 | dev: true 3610 | optional: true 3611 | 3612 | /tar@6.1.13: 3613 | resolution: {integrity: sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==} 3614 | engines: {node: '>=10'} 3615 | dependencies: 3616 | chownr: 2.0.0 3617 | fs-minipass: 2.1.0 3618 | minipass: 4.2.8 3619 | minizlib: 2.1.2 3620 | mkdirp: 1.0.4 3621 | yallist: 4.0.0 3622 | dev: true 3623 | 3624 | /text-table@0.2.0: 3625 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 3626 | dev: true 3627 | 3628 | /thenify-all@1.6.0: 3629 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 3630 | engines: {node: '>=0.8'} 3631 | dependencies: 3632 | thenify: 3.3.1 3633 | dev: true 3634 | 3635 | /thenify@3.3.1: 3636 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 3637 | dependencies: 3638 | any-promise: 1.3.0 3639 | dev: true 3640 | 3641 | /tinybench@2.4.0: 3642 | resolution: {integrity: sha512-iyziEiyFxX4kyxSp+MtY1oCH/lvjH3PxFN8PGCDeqcZWAJ/i+9y+nL85w99PxVzrIvew/GSkSbDYtiGVa85Afg==} 3643 | dev: true 3644 | 3645 | /tinypool@0.4.0: 3646 | resolution: {integrity: sha512-2ksntHOKf893wSAH4z/+JbPpi92esw8Gn9N2deXX+B0EO92hexAVI9GIZZPx7P5aYo5KULfeOSt3kMOmSOy6uA==} 3647 | engines: {node: '>=14.0.0'} 3648 | dev: true 3649 | 3650 | /tinyspy@1.1.1: 3651 | resolution: {integrity: sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==} 3652 | engines: {node: '>=14.0.0'} 3653 | dev: true 3654 | 3655 | /tmp@0.2.1: 3656 | resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} 3657 | engines: {node: '>=8.17.0'} 3658 | dependencies: 3659 | rimraf: 3.0.2 3660 | dev: true 3661 | 3662 | /to-regex-range@5.0.1: 3663 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 3664 | engines: {node: '>=8.0'} 3665 | dependencies: 3666 | is-number: 7.0.0 3667 | dev: true 3668 | 3669 | /tr46@1.0.1: 3670 | resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} 3671 | dependencies: 3672 | punycode: 2.3.0 3673 | dev: true 3674 | 3675 | /tree-kill@1.2.2: 3676 | resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} 3677 | hasBin: true 3678 | dev: true 3679 | 3680 | /ts-api-utils@1.0.3(typescript@5.0.4): 3681 | resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} 3682 | engines: {node: '>=16.13.0'} 3683 | peerDependencies: 3684 | typescript: '>=4.2.0' 3685 | dependencies: 3686 | typescript: 5.0.4 3687 | dev: true 3688 | 3689 | /ts-interface-checker@0.1.13: 3690 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 3691 | dev: true 3692 | 3693 | /tslib@2.5.0: 3694 | resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} 3695 | dev: true 3696 | 3697 | /tsup@6.7.0(typescript@5.0.4): 3698 | resolution: {integrity: sha512-L3o8hGkaHnu5TdJns+mCqFsDBo83bJ44rlK7e6VdanIvpea4ArPcU3swWGsLVbXak1PqQx/V+SSmFPujBK+zEQ==} 3699 | engines: {node: '>=14.18'} 3700 | hasBin: true 3701 | peerDependencies: 3702 | '@swc/core': ^1 3703 | postcss: ^8.4.12 3704 | typescript: '>=4.1.0' 3705 | peerDependenciesMeta: 3706 | '@swc/core': 3707 | optional: true 3708 | postcss: 3709 | optional: true 3710 | typescript: 3711 | optional: true 3712 | dependencies: 3713 | bundle-require: 4.0.1(esbuild@0.17.17) 3714 | cac: 6.7.14 3715 | chokidar: 3.5.3 3716 | debug: 4.3.4 3717 | esbuild: 0.17.17 3718 | execa: 5.1.1 3719 | globby: 11.1.0 3720 | joycon: 3.1.1 3721 | postcss-load-config: 3.1.4 3722 | resolve-from: 5.0.0 3723 | rollup: 3.20.7 3724 | source-map: 0.8.0-beta.0 3725 | sucrase: 3.32.0 3726 | tree-kill: 1.2.2 3727 | typescript: 5.0.4 3728 | transitivePeerDependencies: 3729 | - supports-color 3730 | - ts-node 3731 | dev: true 3732 | 3733 | /tunnel-agent@0.6.0: 3734 | resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} 3735 | requiresBuild: true 3736 | dependencies: 3737 | safe-buffer: 5.2.1 3738 | dev: true 3739 | optional: true 3740 | 3741 | /tunnel@0.0.6: 3742 | resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} 3743 | engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} 3744 | dev: true 3745 | 3746 | /type-check@0.4.0: 3747 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 3748 | engines: {node: '>= 0.8.0'} 3749 | dependencies: 3750 | prelude-ls: 1.2.1 3751 | dev: true 3752 | 3753 | /type-detect@4.0.8: 3754 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} 3755 | engines: {node: '>=4'} 3756 | dev: true 3757 | 3758 | /type-fest@0.20.2: 3759 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 3760 | engines: {node: '>=10'} 3761 | dev: true 3762 | 3763 | /type-fest@0.6.0: 3764 | resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} 3765 | engines: {node: '>=8'} 3766 | dev: true 3767 | 3768 | /type-fest@0.8.1: 3769 | resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} 3770 | engines: {node: '>=8'} 3771 | dev: true 3772 | 3773 | /typed-rest-client@1.8.9: 3774 | resolution: {integrity: sha512-uSmjE38B80wjL85UFX3sTYEUlvZ1JgCRhsWj/fJ4rZ0FqDUFoIuodtiVeE+cUqiVTOKPdKrp/sdftD15MDek6g==} 3775 | dependencies: 3776 | qs: 6.11.1 3777 | tunnel: 0.0.6 3778 | underscore: 1.13.6 3779 | dev: true 3780 | 3781 | /typescript@5.0.4: 3782 | resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} 3783 | engines: {node: '>=12.20'} 3784 | hasBin: true 3785 | dev: true 3786 | 3787 | /uc.micro@1.0.6: 3788 | resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} 3789 | dev: true 3790 | 3791 | /ufo@1.1.1: 3792 | resolution: {integrity: sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==} 3793 | dev: true 3794 | 3795 | /ufo@1.3.2: 3796 | resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} 3797 | dev: true 3798 | 3799 | /underscore@1.13.6: 3800 | resolution: {integrity: sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==} 3801 | dev: true 3802 | 3803 | /unicorn-magic@0.1.0: 3804 | resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} 3805 | engines: {node: '>=18'} 3806 | dev: true 3807 | 3808 | /unist-util-stringify-position@2.0.3: 3809 | resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} 3810 | dependencies: 3811 | '@types/unist': 2.0.6 3812 | dev: true 3813 | 3814 | /uri-js@4.4.1: 3815 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 3816 | dependencies: 3817 | punycode: 2.3.0 3818 | dev: true 3819 | 3820 | /url-join@4.0.1: 3821 | resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} 3822 | dev: true 3823 | 3824 | /util-deprecate@1.0.2: 3825 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 3826 | dev: true 3827 | 3828 | /validate-npm-package-license@3.0.4: 3829 | resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} 3830 | dependencies: 3831 | spdx-correct: 3.2.0 3832 | spdx-expression-parse: 3.0.1 3833 | dev: true 3834 | 3835 | /vite-node@0.29.8(@types/node@18.15.13): 3836 | resolution: {integrity: sha512-b6OtCXfk65L6SElVM20q5G546yu10/kNrhg08afEoWlFRJXFq9/6glsvSVY+aI6YeC1tu2TtAqI2jHEQmOmsFw==} 3837 | engines: {node: '>=v14.16.0'} 3838 | hasBin: true 3839 | dependencies: 3840 | cac: 6.7.14 3841 | debug: 4.3.4 3842 | mlly: 1.2.0 3843 | pathe: 1.1.0 3844 | picocolors: 1.0.0 3845 | vite: 4.3.1(@types/node@18.15.13) 3846 | transitivePeerDependencies: 3847 | - '@types/node' 3848 | - less 3849 | - sass 3850 | - stylus 3851 | - sugarss 3852 | - supports-color 3853 | - terser 3854 | dev: true 3855 | 3856 | /vite@4.3.1(@types/node@18.15.13): 3857 | resolution: {integrity: sha512-EPmfPLAI79Z/RofuMvkIS0Yr091T2ReUoXQqc5ppBX/sjFRhHKiPPF/R46cTdoci/XgeQpB23diiJxq5w30vdg==} 3858 | engines: {node: ^14.18.0 || >=16.0.0} 3859 | hasBin: true 3860 | peerDependencies: 3861 | '@types/node': '>= 14' 3862 | less: '*' 3863 | sass: '*' 3864 | stylus: '*' 3865 | sugarss: '*' 3866 | terser: ^5.4.0 3867 | peerDependenciesMeta: 3868 | '@types/node': 3869 | optional: true 3870 | less: 3871 | optional: true 3872 | sass: 3873 | optional: true 3874 | stylus: 3875 | optional: true 3876 | sugarss: 3877 | optional: true 3878 | terser: 3879 | optional: true 3880 | dependencies: 3881 | '@types/node': 18.15.13 3882 | esbuild: 0.17.17 3883 | postcss: 8.4.23 3884 | rollup: 3.20.7 3885 | optionalDependencies: 3886 | fsevents: 2.3.2 3887 | dev: true 3888 | 3889 | /vitest@0.29.8: 3890 | resolution: {integrity: sha512-JIAVi2GK5cvA6awGpH0HvH/gEG9PZ0a/WoxdiV3PmqK+3CjQMf8c+J/Vhv4mdZ2nRyXFw66sAg6qz7VNkaHfDQ==} 3891 | engines: {node: '>=v14.16.0'} 3892 | hasBin: true 3893 | peerDependencies: 3894 | '@edge-runtime/vm': '*' 3895 | '@vitest/browser': '*' 3896 | '@vitest/ui': '*' 3897 | happy-dom: '*' 3898 | jsdom: '*' 3899 | playwright: '*' 3900 | safaridriver: '*' 3901 | webdriverio: '*' 3902 | peerDependenciesMeta: 3903 | '@edge-runtime/vm': 3904 | optional: true 3905 | '@vitest/browser': 3906 | optional: true 3907 | '@vitest/ui': 3908 | optional: true 3909 | happy-dom: 3910 | optional: true 3911 | jsdom: 3912 | optional: true 3913 | playwright: 3914 | optional: true 3915 | safaridriver: 3916 | optional: true 3917 | webdriverio: 3918 | optional: true 3919 | dependencies: 3920 | '@types/chai': 4.3.4 3921 | '@types/chai-subset': 1.3.3 3922 | '@types/node': 18.15.13 3923 | '@vitest/expect': 0.29.8 3924 | '@vitest/runner': 0.29.8 3925 | '@vitest/spy': 0.29.8 3926 | '@vitest/utils': 0.29.8 3927 | acorn: 8.8.2 3928 | acorn-walk: 8.2.0 3929 | cac: 6.7.14 3930 | chai: 4.3.7 3931 | debug: 4.3.4 3932 | local-pkg: 0.4.3 3933 | pathe: 1.1.0 3934 | picocolors: 1.0.0 3935 | source-map: 0.6.1 3936 | std-env: 3.3.2 3937 | strip-literal: 1.0.1 3938 | tinybench: 2.4.0 3939 | tinypool: 0.4.0 3940 | tinyspy: 1.1.1 3941 | vite: 4.3.1(@types/node@18.15.13) 3942 | vite-node: 0.29.8(@types/node@18.15.13) 3943 | why-is-node-running: 2.2.2 3944 | transitivePeerDependencies: 3945 | - less 3946 | - sass 3947 | - stylus 3948 | - sugarss 3949 | - supports-color 3950 | - terser 3951 | dev: true 3952 | 3953 | /vue-eslint-parser@9.3.2(eslint@8.54.0): 3954 | resolution: {integrity: sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg==} 3955 | engines: {node: ^14.17.0 || >=16.0.0} 3956 | peerDependencies: 3957 | eslint: '>=6.0.0' 3958 | dependencies: 3959 | debug: 4.3.4 3960 | eslint: 8.54.0 3961 | eslint-scope: 7.2.0 3962 | eslint-visitor-keys: 3.4.0 3963 | espree: 9.5.1 3964 | esquery: 1.5.0 3965 | lodash: 4.17.21 3966 | semver: 7.5.4 3967 | transitivePeerDependencies: 3968 | - supports-color 3969 | dev: true 3970 | 3971 | /webidl-conversions@4.0.2: 3972 | resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} 3973 | dev: true 3974 | 3975 | /whatwg-url@7.1.0: 3976 | resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} 3977 | dependencies: 3978 | lodash.sortby: 4.7.0 3979 | tr46: 1.0.1 3980 | webidl-conversions: 4.0.2 3981 | dev: true 3982 | 3983 | /which@2.0.2: 3984 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 3985 | engines: {node: '>= 8'} 3986 | hasBin: true 3987 | dependencies: 3988 | isexe: 2.0.0 3989 | dev: true 3990 | 3991 | /why-is-node-running@2.2.2: 3992 | resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} 3993 | engines: {node: '>=8'} 3994 | hasBin: true 3995 | dependencies: 3996 | siginfo: 2.0.0 3997 | stackback: 0.0.2 3998 | dev: true 3999 | 4000 | /wrap-ansi@7.0.0: 4001 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 4002 | engines: {node: '>=10'} 4003 | dependencies: 4004 | ansi-styles: 4.3.0 4005 | string-width: 4.2.3 4006 | strip-ansi: 6.0.1 4007 | dev: true 4008 | 4009 | /wrappy@1.0.2: 4010 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 4011 | dev: true 4012 | 4013 | /xml-name-validator@4.0.0: 4014 | resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} 4015 | engines: {node: '>=12'} 4016 | dev: true 4017 | 4018 | /xml2js@0.5.0: 4019 | resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} 4020 | engines: {node: '>=4.0.0'} 4021 | dependencies: 4022 | sax: 1.2.4 4023 | xmlbuilder: 11.0.1 4024 | dev: true 4025 | 4026 | /xmlbuilder@11.0.1: 4027 | resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} 4028 | engines: {node: '>=4.0'} 4029 | dev: true 4030 | 4031 | /y18n@5.0.8: 4032 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 4033 | engines: {node: '>=10'} 4034 | dev: true 4035 | 4036 | /yallist@4.0.0: 4037 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 4038 | dev: true 4039 | 4040 | /yaml-eslint-parser@1.2.2: 4041 | resolution: {integrity: sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==} 4042 | engines: {node: ^14.17.0 || >=16.0.0} 4043 | dependencies: 4044 | eslint-visitor-keys: 3.4.0 4045 | lodash: 4.17.21 4046 | yaml: 2.2.1 4047 | dev: true 4048 | 4049 | /yaml@1.10.2: 4050 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 4051 | engines: {node: '>= 6'} 4052 | dev: true 4053 | 4054 | /yaml@2.2.1: 4055 | resolution: {integrity: sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==} 4056 | engines: {node: '>= 14'} 4057 | dev: true 4058 | 4059 | /yargs-parser@21.1.1: 4060 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 4061 | engines: {node: '>=12'} 4062 | dev: true 4063 | 4064 | /yargs@17.7.1: 4065 | resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==} 4066 | engines: {node: '>=12'} 4067 | dependencies: 4068 | cliui: 8.0.1 4069 | escalade: 3.1.1 4070 | get-caller-file: 2.0.5 4071 | require-directory: 2.1.1 4072 | string-width: 4.2.3 4073 | y18n: 5.0.8 4074 | yargs-parser: 21.1.1 4075 | dev: true 4076 | 4077 | /yargs@17.7.2: 4078 | resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} 4079 | engines: {node: '>=12'} 4080 | dependencies: 4081 | cliui: 8.0.1 4082 | escalade: 3.1.1 4083 | get-caller-file: 2.0.5 4084 | require-directory: 2.1.1 4085 | string-width: 4.2.3 4086 | y18n: 5.0.8 4087 | yargs-parser: 21.1.1 4088 | dev: true 4089 | 4090 | /yauzl@2.10.0: 4091 | resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} 4092 | dependencies: 4093 | buffer-crc32: 0.2.13 4094 | fd-slicer: 1.1.0 4095 | dev: true 4096 | 4097 | /yazl@2.5.1: 4098 | resolution: {integrity: sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==} 4099 | dependencies: 4100 | buffer-crc32: 0.2.13 4101 | dev: true 4102 | 4103 | /yocto-queue@0.1.0: 4104 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 4105 | engines: {node: '>=10'} 4106 | dev: true 4107 | 4108 | /yocto-queue@1.0.0: 4109 | resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} 4110 | engines: {node: '>=12.20'} 4111 | dev: true 4112 | -------------------------------------------------------------------------------- /src/CommentFoldingRangeProvider.ts: -------------------------------------------------------------------------------- 1 | import type { 2 | FoldingRangeProvider, 3 | ProviderResult, 4 | } from 'vscode' 5 | 6 | import { FoldingRange, FoldingRangeKind } from 'vscode' 7 | import { Ranges } from './getVscodeRange' 8 | 9 | export class CommentFoldingRangeProvider implements FoldingRangeProvider { 10 | provideFoldingRanges(): ProviderResult { 11 | const { platformInfo } = Ranges 12 | if (!platformInfo.length) 13 | return [] 14 | 15 | const foldingRanges: FoldingRange[] = [] 16 | const startLines = [] 17 | const endLines = [] 18 | const stack = [] 19 | 20 | for (let i = 0; i < platformInfo.length; i++) { 21 | const { row, type, line } = platformInfo[i] ?? {} 22 | if (type !== 'prefix') 23 | continue 24 | if (row === '#ifdef' || row === '#ifndef') { 25 | startLines.push(line - 1) 26 | stack.push(startLines.length - 1) 27 | } 28 | else if (row === '#endif') { 29 | const index = stack.pop() 30 | if (index !== undefined) 31 | endLines[index] = line - 1 32 | } 33 | } 34 | 35 | for (let i = 0; i < endLines.length; i++) { 36 | foldingRanges.push( 37 | new FoldingRange( 38 | startLines[i], 39 | endLines[i], 40 | FoldingRangeKind.Region, 41 | ), 42 | ) 43 | } 44 | 45 | return foldingRanges 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/HoverProvider.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode' 2 | 3 | export class HoverProvider implements vscode.HoverProvider { 4 | private platformLabels: { [key: string]: { color: string, label: string } } 5 | 6 | constructor(platformLabels: { [key: string]: { color: string, label: string } }) { 7 | this.platformLabels = platformLabels 8 | } 9 | 10 | provideHover(document: vscode.TextDocument, position: vscode.Position): vscode.ProviderResult { 11 | const platformKeys = Object.keys(this.platformLabels) 12 | const platformPrefixes = Array.from(new Set(platformKeys.map(key => `${key.split('-')[0]}-`))) 13 | const regexPattern = `(${platformPrefixes.join('|')})\\w+` 14 | const regexPatternWithNoPrefix = `(${platformKeys.join('|')})` 15 | const combinedRegexPattern = `(${regexPattern}|${regexPatternWithNoPrefix})` 16 | const wordRange = document.getWordRangeAtPosition(position, new RegExp(combinedRegexPattern)) 17 | if (wordRange) { 18 | const word = document.getText(wordRange) 19 | const platformInfo = this.platformLabels[word] 20 | const platformName = platformInfo ? platformInfo.label : word 21 | return new vscode.Hover(`**${platformName}**`) 22 | } 23 | return null 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/builtinPlatforms.ts: -------------------------------------------------------------------------------- 1 | // src/builtinPlatforms.ts 2 | export const builtinPlatforms: Record = { 3 | 'VUE3': { color: '#41b883', label: 'Vue 3' }, 4 | 'VUE2': { color: '#41b883', label: 'Vue 2' }, 5 | 'UNI-APP-X': { color: '#2b9939', label: 'Uni-App X' }, 6 | 'APP': { color: '#80bd00', label: 'App' }, 7 | 'APP-PLUS': { color: '#80bd00', label: 'App Plus' }, 8 | 'APP-PLUS-NVUE': { color: '#41b883', label: 'App Plus NVue' }, 9 | 'APP-NVUE': { color: '#41b883', label: 'App NVue' }, 10 | 'APP-ANDROID': { color: '#80bd00', label: 'App Android 平台' }, 11 | 'APP-IOS': { color: '#d9774b', label: 'App iOS 平台' }, 12 | 'APP-HARMONY': { color: '#0a59f7', label: 'App HarmonyOS Next 平台' }, 13 | 'H5': { color: '#e5c07b', label: 'H5' }, 14 | 'WEB': { color: '#e5c07b', label: 'Web' }, 15 | 'MP-WEIXIN': { color: '#2aae67', label: '微信小程序' }, 16 | 'MP-ALIPAY': { color: '#ff6a00', label: '支付宝小程序' }, 17 | 'MP-BAIDU': { color: '#2932e1', label: '百度小程序' }, 18 | 'MP-TOUTIAO': { color: '#f04142', label: '抖音/字节跳动小程序' }, 19 | 'MP-LARK': { color: '#00d6b9', label: '飞书小程序' }, 20 | 'MP-QQ': { color: '#025aef', label: 'QQ小程序' }, 21 | 'MP-KUAISHOU': { color: '#ff5005', label: '快手小程序' }, 22 | 'MP-JD': { color: '#e21e17', label: '京东小程序' }, 23 | 'MP-360': { color: '#00aa48', label: '360小程序' }, 24 | 'MP-HARMONY': { color: '#0a59f7', label: '鸿蒙元服务' }, 25 | 'MP-XHS': { color: '#ff2442', label: '小红书小程序' }, 26 | 'MP': { color: '#2aae67', label: '小程序/鸿蒙元服务' }, 27 | 'QUICKAPP-WEBVIEW': { color: '#4497ff', label: '快应用 WebView' }, 28 | 'QUICKAPP-WEBVIEW-UNION': { color: '#4497ff', label: '快应用 WebView 联合' }, 29 | 'QUICKAPP-WEBVIEW-HUAWEI': { color: '#e60214', label: '快应用 WebView 华为' }, 30 | } 31 | -------------------------------------------------------------------------------- /src/constants/index.ts: -------------------------------------------------------------------------------- 1 | export * from './platform' 2 | export * from './regex' 3 | export * from './patterns' 4 | -------------------------------------------------------------------------------- /src/constants/patterns.ts: -------------------------------------------------------------------------------- 1 | const fileExtensions = [ 2 | '.vue', 3 | '.nvue', 4 | '.uvue', 5 | '.pug', 6 | '.jsx', 7 | '.tsx', 8 | '.js', 9 | '.ts', 10 | '.uts', 11 | '.less', 12 | '.css', 13 | '.stylus', 14 | '.scss', 15 | '.sass', 16 | '.json', 17 | ] 18 | 19 | function createFilePattern(extension: string) { 20 | return { 21 | pattern: `**/*${extension}`, 22 | scheme: 'file', 23 | } 24 | } 25 | 26 | export const patterns = fileExtensions.map(createFilePattern) 27 | -------------------------------------------------------------------------------- /src/constants/platform.ts: -------------------------------------------------------------------------------- 1 | import { workspace } from 'vscode' 2 | import { isObject } from '@antfu/utils' 3 | import { builtinPlatforms } from '../builtinPlatforms' 4 | 5 | // 定义接口以描述可能的对象结构 6 | interface PlatformConfig { 7 | color?: string 8 | label?: string 9 | } 10 | 11 | const config = workspace.getConfiguration('uni-highlight').get('platform') 12 | 13 | const SETTING = isObject(config) 14 | ? Object.fromEntries( 15 | Object.entries(config).map(([key, value]) => { 16 | if (typeof value === 'string') 17 | return [key, { color: value, label: key }] 18 | 19 | if (isObject(value) && typeof (value as PlatformConfig).color === 'string') 20 | return [key, { color: (value as PlatformConfig).color, label: (value as PlatformConfig).label ?? key }] 21 | 22 | return [key, { color: '#859900', label: key }] // 默认颜色 23 | }), 24 | ) 25 | : {} 26 | 27 | export const HIGHTLIGHT_COLOR = { 28 | prefix: '#859900', 29 | platform: { 30 | ...Object.assign( 31 | {}, 32 | ...Object.keys(builtinPlatforms).map(key => ({ [key]: builtinPlatforms[key].color })), 33 | ...Object.keys(SETTING).map(key => ({ [key]: SETTING[key].color })), 34 | ), 35 | }, 36 | } 37 | 38 | export const PLATFORM_LABELS = { 39 | ...builtinPlatforms, 40 | ...SETTING, 41 | } 42 | 43 | export const PLATFORM_LIST = Object.keys(HIGHTLIGHT_COLOR.platform) as string[] 44 | export const COMMENT_PRE = ['//', '/*', '|\*\/)/gm 3 | -------------------------------------------------------------------------------- /src/foldOtherPlatformComment.ts: -------------------------------------------------------------------------------- 1 | import { commands, window } from 'vscode' 2 | import { Ranges } from './getVscodeRange' 3 | import type { PlatformInfo } from './getPlatformInfo' 4 | 5 | export async function foldOtherPlatformComment() { 6 | const { platformList, platformInfo } = Ranges 7 | if (!platformList.length) { 8 | window.showWarningMessage('该页面没有有效的uni条件编译代码') 9 | return 10 | } 11 | 12 | const platform = await window.showQuickPick([ 13 | 'ALL', 14 | ...platformList, 15 | ]) 16 | if (!platform) 17 | return 18 | 19 | const { fold, unfold } = getFoldLines(platform, platformInfo) 20 | 21 | await commands.executeCommand('editor.fold', { 22 | levels: 1, 23 | direction: 'up', 24 | selectionLines: fold, 25 | }) 26 | await commands.executeCommand('editor.unfold', { 27 | levels: 1, 28 | direction: 'up', 29 | selectionLines: unfold, 30 | }) 31 | } 32 | 33 | function getFoldLines(platform: string, platformInfo: PlatformInfo[]) { 34 | const platformStarts = platformInfo.filter(({ type }) => type === 'platform') 35 | 36 | if (platform === 'ALL') { 37 | return { 38 | fold: [], 39 | unfold: platformStarts.map(({ line }) => line - 1), 40 | } 41 | } 42 | 43 | const unfold = platformStarts.filter(({ row }) => row === platform).map(({ line }) => line - 1) 44 | const fold = platformStarts.map(({ line }) => line - 1).filter(line => !unfold.includes(line)) 45 | 46 | return { fold, unfold } 47 | } 48 | -------------------------------------------------------------------------------- /src/getPlatformInfo.ts: -------------------------------------------------------------------------------- 1 | import type { Platform } from './constants' 2 | import { HIGHTLIGHT_COLOR } from './constants' 3 | import { parseComment } from './parseComment' 4 | 5 | export function getPlatformInfo(code: string): PlatformInfo[] { 6 | const commentAST = parseComment(code) 7 | 8 | if (!commentAST) 9 | return [] 10 | 11 | const platformInfos = [] 12 | for (let i = 0; i < commentAST.length; i++) { 13 | const item = commentAST[i] 14 | const { start, end, type, row, line } = item 15 | const color = HIGHTLIGHT_COLOR.platform[row as Platform] 16 | 17 | if (type === 'prefix') { 18 | platformInfos.push({ 19 | start, 20 | end, 21 | type, 22 | row, 23 | line, 24 | }) 25 | } 26 | else if (type === 'platform' && color) { 27 | platformInfos.push({ 28 | start, 29 | end, 30 | type, 31 | color, 32 | line, 33 | row, 34 | }) 35 | } 36 | else if (type === 'platform' && !color) { 37 | platformInfos.push({ 38 | start, 39 | end, 40 | type: 'unPlatform', 41 | row, 42 | }) 43 | } 44 | } 45 | return platformInfos as unknown as PlatformInfo[] 46 | } 47 | 48 | export interface PlatformInfo { 49 | row: string 50 | start: number 51 | end: number 52 | type: 'prefix' | 'platform' | 'unPlatform' 53 | color: string 54 | line: number 55 | } 56 | -------------------------------------------------------------------------------- /src/getVscodeRange.ts: -------------------------------------------------------------------------------- 1 | import { commands, window } from 'vscode' 2 | import type { TextDocument, TextEditor } from 'vscode' 3 | import { getPlatformInfo } from './../src/getPlatformInfo' 4 | import type { HighlightRange } from './transformPlatform' 5 | import { transformPlatform } from './transformPlatform' 6 | import { setPlatformColor } from './setPlatformColor' 7 | 8 | export class Ranges { 9 | value!: HighlightRange 10 | editor!: TextEditor 11 | document!: TextDocument 12 | code!: string 13 | 14 | static platformInfo: ReturnType 15 | static platformList: string[] 16 | constructor() { 17 | this.getContext() 18 | if (!this.code) 19 | return 20 | this.setPlatformData() 21 | this.hasPlatformList() 22 | this.setColor() 23 | } 24 | 25 | getContext() { 26 | const editor = window.activeTextEditor 27 | if (!editor) 28 | return 29 | this.editor = editor 30 | const document = editor?.document 31 | if (!document) 32 | return 33 | this.document = document 34 | this.code = document.getText() 35 | } 36 | 37 | setPlatformData() { 38 | Ranges.platformInfo = getPlatformInfo(this.code) 39 | Ranges.platformList = Array.from(new Set(Ranges.platformInfo.filter(item => item.type === 'platform').map(item => item.row))) 40 | } 41 | 42 | hasPlatformList() { 43 | if (Ranges.platformList.length) 44 | commands.executeCommand('setContext', 'uni.hasComment', true) 45 | else 46 | commands.executeCommand('setContext', 'uni.hasComment', false) 47 | } 48 | 49 | getVscodeRange() { 50 | this.value = transformPlatform(Ranges.platformInfo, this.editor) 51 | } 52 | 53 | setColor() { 54 | this.getVscodeRange() 55 | setPlatformColor(this.value, this.editor) 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import type { ExtensionContext } from 'vscode' 2 | import { commands, languages, window, workspace } from 'vscode' 3 | import { Ranges } from './getVscodeRange' 4 | import { CommentFoldingRangeProvider } from './CommentFoldingRangeProvider' 5 | import { foldOtherPlatformComment } from './foldOtherPlatformComment' 6 | import { HoverProvider } from './HoverProvider' 7 | import { patterns } from './constants' 8 | import { PLATFORM_LABELS } from './constants/platform' 9 | 10 | type PlatformConfigValue = string | { color: string, label?: string } 11 | 12 | function setupEventListeners() { 13 | window.onDidChangeActiveTextEditor(() => new Ranges()) 14 | workspace.onDidChangeTextDocument(() => new Ranges()) 15 | } 16 | 17 | export function activate(context: ExtensionContext) { 18 | new Ranges() 19 | setupEventListeners() 20 | 21 | // 读取用户配置的平台名称 22 | const customPlatformConfig = workspace.getConfiguration('uni-highlight').get('platform', {}) as { [key: string]: PlatformConfigValue } 23 | // 处理自定义平台配置 24 | const processedCustomPlatformConfig: { [key: string]: PlatformConfigValue } = {} 25 | 26 | for (const key in customPlatformConfig) { 27 | const value = customPlatformConfig[key] 28 | if (typeof value === 'string') { 29 | processedCustomPlatformConfig[key] = { color: value, label: key } 30 | } 31 | else if (typeof value === 'object' && value !== null) { 32 | processedCustomPlatformConfig[key] = { 33 | color: value.color, 34 | label: value.label ?? key, 35 | } 36 | } 37 | } 38 | 39 | // 合并内置平台和自定义平台 40 | const mergedPlatformLabels: any = { ...PLATFORM_LABELS, ...processedCustomPlatformConfig } 41 | 42 | context.subscriptions.push( 43 | languages.registerFoldingRangeProvider( 44 | patterns, 45 | new CommentFoldingRangeProvider(), 46 | ), 47 | commands.registerCommand('uni.comment.reload', () => { 48 | new Ranges() 49 | }), 50 | commands.registerCommand('uni.comment.fold-other-platform', () => { 51 | foldOtherPlatformComment() 52 | }), 53 | languages.registerHoverProvider(patterns, new HoverProvider(mergedPlatformLabels)), 54 | ) 55 | } 56 | 57 | export function deactivate() {} 58 | -------------------------------------------------------------------------------- /src/parseComment/index.ts: -------------------------------------------------------------------------------- 1 | import { COMMENT_PRE, commentPreReg } from '../constants' 2 | import { parsePlatform } from './parsePlatform' 3 | 4 | export function parseComment(code: string) { 5 | if (code.trim().length === 0) 6 | return 7 | 8 | const commentResults = [...code.matchAll(commentPreReg)] 9 | if (commentResults.length === 0) 10 | return 11 | 12 | const commentAST = [] 13 | for (let i = 0; i < commentResults.length; i++) { 14 | const item = commentResults[i] 15 | 16 | const index = item.index! 17 | const [self, commentPre, _space, prefix, _platform] = item 18 | 19 | if (!COMMENT_PRE.includes(commentPre)) 20 | continue 21 | 22 | const platform = _platform.trim() 23 | 24 | const lineNumber = code.substring(0, index).split('\n').length 25 | 26 | if (platform && prefix !== '#endif') { 27 | const prefixStart = self.indexOf(prefix) + index 28 | const prefixEnd = prefixStart + prefix.length 29 | commentAST.push({ 30 | start: prefixStart, 31 | end: prefixEnd, 32 | type: 'prefix', 33 | row: prefix, 34 | line: lineNumber, 35 | }) 36 | const platforms = parsePlatform(platform, commentPre) 37 | if (!platforms) 38 | continue 39 | 40 | if (platforms.length > 1) { 41 | const orRex = /\|\|/g 42 | const orResult = [...platform.matchAll(orRex)] 43 | const offset = index + self.indexOf(_platform) + 1 44 | orResult.forEach((element) => { 45 | const orStart = offset + element.index! 46 | const orEnd = orStart + 2 47 | commentAST.push({ 48 | start: orStart, 49 | end: orEnd, 50 | type: 'prefix', 51 | row: element[0], 52 | line: lineNumber, 53 | }) 54 | }) 55 | } 56 | platforms.forEach((element) => { 57 | const platformStart = self.indexOf(element) + index 58 | const platformEnd = platformStart + element.length 59 | commentAST.push({ 60 | start: platformStart, 61 | end: platformEnd, 62 | type: 'platform', 63 | row: element, 64 | line: lineNumber, 65 | }) 66 | }) 67 | } 68 | else { 69 | const start = self.indexOf(prefix) + index 70 | const end = start + prefix.length 71 | commentAST.push({ 72 | start, 73 | end, 74 | row: prefix, 75 | type: 'prefix', 76 | line: lineNumber, 77 | }) 78 | } 79 | } 80 | return commentAST 81 | } 82 | -------------------------------------------------------------------------------- /src/parseComment/parsePlatform.ts: -------------------------------------------------------------------------------- 1 | import { commentSufReg } from '../constants' 2 | 3 | export function parsePlatform(platform: string, commentPre: string): string[] { 4 | let platforms: string[] 5 | if (commentPre !== '//') { 6 | const PlatformResult = [...platform.matchAll(commentSufReg)][0] 7 | if (!PlatformResult) 8 | return [] 9 | const [_self, _platform, _commentSuf] = PlatformResult 10 | platform = _platform.trim() 11 | } 12 | 13 | if (platform.includes('||')) 14 | platforms = platform.split('||').map(item => item.trim()) 15 | 16 | else 17 | platforms = [platform.trim()] 18 | 19 | return platforms 20 | } 21 | -------------------------------------------------------------------------------- /src/setPlatformColor.ts: -------------------------------------------------------------------------------- 1 | import type { TextEditor, TextEditorDecorationType } from 'vscode' 2 | import { DecorationRangeBehavior, MarkdownString, window } from 'vscode' 3 | import type { HighlightRange } from './transformPlatform' 4 | import { HIGHTLIGHT_COLOR } from './constants' 5 | import { findClosestPlatform } from './utils/findClosestPlatform' 6 | 7 | const UnderlineDecoration = window.createTextEditorDecorationType({ 8 | textDecoration: 'none; border-bottom: 1px dashed currentColor', 9 | cursor: 'pointer', 10 | rangeBehavior: DecorationRangeBehavior.ClosedClosed, 11 | }) 12 | 13 | const prefixColorDecoration = window.createTextEditorDecorationType({ 14 | color: HIGHTLIGHT_COLOR.prefix, 15 | rangeBehavior: DecorationRangeBehavior.ClosedClosed, 16 | }) 17 | 18 | function createPlatformColorDecoration(color: string) { 19 | return window.createTextEditorDecorationType({ 20 | color, 21 | rangeBehavior: DecorationRangeBehavior.ClosedClosed, 22 | }) 23 | } 24 | 25 | const platformColorDecorationList: TextEditorDecorationType[] = [] 26 | function initDecorations(editor: TextEditor) { 27 | editor.setDecorations(UnderlineDecoration, []) 28 | if (platformColorDecorationList.length > 0) { 29 | platformColorDecorationList.forEach((item) => { 30 | item.dispose() 31 | }) 32 | } 33 | platformColorDecorationList.length = 0 34 | editor.setDecorations(prefixColorDecoration, []) 35 | } 36 | 37 | export function setPlatformColor( 38 | highlightRange: HighlightRange, 39 | editor: TextEditor, 40 | ) { 41 | const { prefix, platform, unPlatform } = highlightRange 42 | 43 | initDecorations(editor) 44 | 45 | editor.setDecorations( 46 | prefixColorDecoration, 47 | prefix, 48 | ) 49 | 50 | for (const color in platform) { 51 | const decoration = createPlatformColorDecoration(color) 52 | platformColorDecorationList.push(decoration) 53 | editor.setDecorations( 54 | decoration, 55 | platform[color], 56 | ) 57 | } 58 | 59 | editor.setDecorations( 60 | UnderlineDecoration, 61 | unPlatform.map((item) => { 62 | const RightPlatform = findClosestPlatform(item.row) 63 | return { 64 | range: item.range, 65 | hoverMessage: new MarkdownString(` 66 | ### [@uni-helper](https://github.com/uni-helper/uni-highlight-vscode)\n 67 | ~~${item.row}~~ 不是一个有效的平台, 请检查拼写错误\n 68 | 是否要输入:\`${RightPlatform}\` 69 | *** 70 | 详情请查看[\`文档\`](https://uniapp.dcloud.net.cn/tutorial/platform.html#preprocessor) 71 | `), 72 | } 73 | }), 74 | ) 75 | } 76 | -------------------------------------------------------------------------------- /src/transformPlatform.ts: -------------------------------------------------------------------------------- 1 | import type { TextEditor } from 'vscode' 2 | import { Range } from 'vscode' 3 | import type { PlatformInfo } from './getPlatformInfo' 4 | 5 | export function transformPlatform(platformInfos: PlatformInfo[], editor: TextEditor) { 6 | const highlightRange: HighlightRange = { 7 | prefix: [], 8 | platform: {}, 9 | unPlatform: [], 10 | } 11 | platformInfos.forEach((platformInfo) => { 12 | const { start, end, row, color } = platformInfo 13 | const range = new Range( 14 | editor.document.positionAt(start), 15 | editor.document.positionAt(end), 16 | ) 17 | if (platformInfo.type === 'prefix') 18 | highlightRange.prefix.push(range) 19 | 20 | if (platformInfo.type === 'platform') { 21 | if (!highlightRange.platform[color]) 22 | highlightRange.platform[color] = [] 23 | 24 | highlightRange.platform[color].push(range) 25 | } 26 | 27 | if (platformInfo.type === 'unPlatform') { 28 | highlightRange.unPlatform.push({ 29 | range, 30 | row, 31 | }) 32 | } 33 | }) 34 | return highlightRange 35 | } 36 | 37 | export interface HighlightRange { 38 | prefix: Range[] 39 | platform: { 40 | [key: string]: Range[] 41 | } 42 | unPlatform: { 43 | range: Range 44 | row: string 45 | }[] 46 | } 47 | -------------------------------------------------------------------------------- /src/utils/findClosestPlatform.ts: -------------------------------------------------------------------------------- 1 | import { closest } from 'fastest-levenshtein' 2 | import { PLATFORM_LIST } from '../constants/platform' 3 | 4 | export function findClosestPlatform(target: string): string { 5 | const UpperTarget = target.toUpperCase() 6 | const exactMatchList = PLATFORM_LIST.filter(item => item.includes(UpperTarget)) 7 | const targetList = exactMatchList.length === 0 ? PLATFORM_LIST : exactMatchList 8 | return closest(UpperTarget, targetList) 9 | } 10 | -------------------------------------------------------------------------------- /test/index.test.ts: -------------------------------------------------------------------------------- 1 | import { describe, expect, it, vi } from 'vitest' 2 | import { getPlatformInfo } from './../src/getPlatformInfo' 3 | 4 | vi.mock('vscode', () => { 5 | return { 6 | workspace: { 7 | getConfiguration: () => { 8 | return { 9 | get: vi.fn(), 10 | } 11 | }, 12 | }, 13 | } 14 | }) 15 | 16 | describe('getPlatformInfo', () => { 17 | it('get // #endif', () => { 18 | const code = ` 19 | // #endif 20 | ` 21 | const result = getPlatformInfo(code) 22 | expect(result).toMatchInlineSnapshot(` 23 | [ 24 | { 25 | "end": 14, 26 | "line": 2, 27 | "row": "#endif", 28 | "start": 8, 29 | "type": "prefix", 30 | }, 31 | ] 32 | `) 33 | }) 34 | it('be OK', () => { 35 | const jsCode = ` 36 | // #ifdef PLATFORM_IOS 37 | // #endif 38 | ` 39 | expect(getPlatformInfo(jsCode)).toMatchInlineSnapshot(` 40 | [ 41 | { 42 | "end": 14, 43 | "line": 2, 44 | "row": "#ifdef", 45 | "start": 8, 46 | "type": "prefix", 47 | }, 48 | { 49 | "end": 27, 50 | "row": "PLATFORM_IOS", 51 | "start": 15, 52 | "type": "unPlatform", 53 | }, 54 | { 55 | "end": 41, 56 | "line": 3, 57 | "row": "#endif", 58 | "start": 35, 59 | "type": "prefix", 60 | }, 61 | ] 62 | `) 63 | const htmlCode = ` 64 | 65 | 66 | ` 67 | expect(getPlatformInfo(htmlCode)).toMatchInlineSnapshot(` 68 | [ 69 | { 70 | "end": 16, 71 | "line": 2, 72 | "row": "#ifdef", 73 | "start": 10, 74 | "type": "prefix", 75 | }, 76 | { 77 | "color": "#e5c07b", 78 | "end": 19, 79 | "line": 2, 80 | "row": "H5", 81 | "start": 17, 82 | "type": "platform", 83 | }, 84 | { 85 | "end": 39, 86 | "line": 3, 87 | "row": "#endif", 88 | "start": 33, 89 | "type": "prefix", 90 | }, 91 | ] 92 | `) 93 | const cssCode = ` 94 | /* #ifdef MP */ 95 | /* #endif */ 96 | ` 97 | expect(getPlatformInfo(cssCode)).toMatchInlineSnapshot(` 98 | [ 99 | { 100 | "end": 14, 101 | "line": 2, 102 | "row": "#ifdef", 103 | "start": 8, 104 | "type": "prefix", 105 | }, 106 | { 107 | "color": "#2aae67", 108 | "end": 17, 109 | "line": 2, 110 | "row": "MP", 111 | "start": 15, 112 | "type": "platform", 113 | }, 114 | { 115 | "end": 34, 116 | "line": 3, 117 | "row": "#endif", 118 | "start": 28, 119 | "type": "prefix", 120 | }, 121 | ] 122 | `) 123 | }) 124 | it('be OK with ||', () => { 125 | const code = ` 126 | // #ifdef PLATFORM_IOS || PLATFORM_ANDROID 127 | // #endif 128 | ` 129 | expect(getPlatformInfo(code)).toMatchInlineSnapshot(` 130 | [ 131 | { 132 | "end": 14, 133 | "line": 2, 134 | "row": "#ifdef", 135 | "start": 8, 136 | "type": "prefix", 137 | }, 138 | { 139 | "end": 30, 140 | "line": 2, 141 | "row": "||", 142 | "start": 28, 143 | "type": "prefix", 144 | }, 145 | { 146 | "end": 27, 147 | "row": "PLATFORM_IOS", 148 | "start": 15, 149 | "type": "unPlatform", 150 | }, 151 | { 152 | "end": 47, 153 | "row": "PLATFORM_ANDROID", 154 | "start": 31, 155 | "type": "unPlatform", 156 | }, 157 | { 158 | "end": 61, 159 | "line": 3, 160 | "row": "#endif", 161 | "start": 55, 162 | "type": "prefix", 163 | }, 164 | ] 165 | `) 166 | }) 167 | }) 168 | -------------------------------------------------------------------------------- /test/parse/index.test.ts: -------------------------------------------------------------------------------- 1 | import { describe, expect, it, vi } from 'vitest' 2 | import { parsePlatform } from '../../src/parseComment/parsePlatform' 3 | import { parseComment } from '../../src/parseComment' 4 | 5 | vi.mock('vscode', () => { 6 | return { 7 | workspace: { 8 | getConfiguration: () => { 9 | return { 10 | get: vi.fn(), 11 | } 12 | }, 13 | }, 14 | } 15 | }) 16 | 17 | describe('parseComment', () => { 18 | it('should parse comment', () => { 19 | const code = ` 20 | // #ifdef APP-PLUSaasd 21 | // #endif 22 | /* #ifdef APP-PLUS */ 23 | ` 24 | expect(parseComment(code)).toMatchInlineSnapshot(` 25 | [ 26 | { 27 | "end": 14, 28 | "line": 2, 29 | "row": "#ifdef", 30 | "start": 8, 31 | "type": "prefix", 32 | }, 33 | { 34 | "end": 27, 35 | "line": 2, 36 | "row": "APP-PLUSaasd", 37 | "start": 15, 38 | "type": "platform", 39 | }, 40 | { 41 | "end": 41, 42 | "line": 3, 43 | "row": "#endif", 44 | "start": 35, 45 | "type": "prefix", 46 | }, 47 | { 48 | "end": 55, 49 | "line": 4, 50 | "row": "#ifdef", 51 | "start": 49, 52 | "type": "prefix", 53 | }, 54 | { 55 | "end": 64, 56 | "line": 4, 57 | "row": "APP-PLUS", 58 | "start": 56, 59 | "type": "platform", 60 | }, 61 | ] 62 | `) 63 | }) 64 | it('should parse more comment', () => { 65 | const code = ` 66 | // #ifdef APP-PLUS || APP-PLUS-NVUE 67 | // #endif 68 | ` 69 | expect(parseComment(code)).toMatchInlineSnapshot(` 70 | [ 71 | { 72 | "end": 14, 73 | "line": 2, 74 | "row": "#ifdef", 75 | "start": 8, 76 | "type": "prefix", 77 | }, 78 | { 79 | "end": 26, 80 | "line": 2, 81 | "row": "||", 82 | "start": 24, 83 | "type": "prefix", 84 | }, 85 | { 86 | "end": 23, 87 | "line": 2, 88 | "row": "APP-PLUS", 89 | "start": 15, 90 | "type": "platform", 91 | }, 92 | { 93 | "end": 40, 94 | "line": 2, 95 | "row": "APP-PLUS-NVUE", 96 | "start": 27, 97 | "type": "platform", 98 | }, 99 | { 100 | "end": 54, 101 | "line": 3, 102 | "row": "#endif", 103 | "start": 48, 104 | "type": "prefix", 105 | }, 106 | ] 107 | `) 108 | const code2 = ` 109 | // #ifdef APP-PLUS || APP-PLUS-NVUE || APP-PLUS-NVUE 110 | // #endif 111 | ` 112 | expect(parseComment(code2)).toMatchInlineSnapshot(` 113 | [ 114 | { 115 | "end": 14, 116 | "line": 2, 117 | "row": "#ifdef", 118 | "start": 8, 119 | "type": "prefix", 120 | }, 121 | { 122 | "end": 26, 123 | "line": 2, 124 | "row": "||", 125 | "start": 24, 126 | "type": "prefix", 127 | }, 128 | { 129 | "end": 43, 130 | "line": 2, 131 | "row": "||", 132 | "start": 41, 133 | "type": "prefix", 134 | }, 135 | { 136 | "end": 23, 137 | "line": 2, 138 | "row": "APP-PLUS", 139 | "start": 15, 140 | "type": "platform", 141 | }, 142 | { 143 | "end": 40, 144 | "line": 2, 145 | "row": "APP-PLUS-NVUE", 146 | "start": 27, 147 | "type": "platform", 148 | }, 149 | { 150 | "end": 40, 151 | "line": 2, 152 | "row": "APP-PLUS-NVUE", 153 | "start": 27, 154 | "type": "platform", 155 | }, 156 | { 157 | "end": 71, 158 | "line": 3, 159 | "row": "#endif", 160 | "start": 65, 161 | "type": "prefix", 162 | }, 163 | ] 164 | `) 165 | }) 166 | it('should parse platform', () => { 167 | const jsCode = ` 168 | APP-PLUS 169 | ` 170 | const htmlCode = 'H5 -->' 171 | const cssCode = 'H5 */' 172 | const errorCode = 'H5asd */' 173 | expect(parsePlatform(jsCode, '//')).toStrictEqual(['APP-PLUS']) 174 | expect(parsePlatform(htmlCode, '