├── .editorconfig ├── .eslintrc ├── .github └── workflows │ ├── CI.yml │ └── GithubRelease.yml ├── .gitignore ├── .husky └── pre-commit ├── .lintstagedrc ├── LICENSE ├── README.md ├── auto-imports.d.ts ├── build.config.ts ├── package.json ├── playground ├── 01.html ├── arc.html ├── assets │ └── zu.png ├── img.html ├── line.html └── test.html ├── pnpm-lock.yaml ├── src ├── EventHandlers │ ├── base.ts │ ├── click.ts │ ├── helper.ts │ └── index.ts ├── Shapes │ ├── arc.ts │ ├── base.ts │ ├── image.ts │ ├── index.ts │ ├── line.ts │ └── rect.ts ├── canvasEngine.ts ├── helper │ └── warn.ts ├── index.ts └── types │ ├── event.ts │ ├── index.ts │ └── shape.ts ├── test └── index.spec.ts ├── tsconfig.json └── vitest.config.ts /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_size = 2 6 | indent_style = space 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | insert_final_newline = false 13 | trim_trailing_whitespace = false -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@alexzzz/eslint-config", 3 | "ignorePatterns": [ 4 | "**/playground/**" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /.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 | - name: Set node 18 | uses: actions/setup-node@v3 19 | with: 20 | node-version: 16.x 21 | 22 | - name: Setup 23 | run: npm i -g @antfu/ni 24 | 25 | - name: Install 26 | run: nci 27 | 28 | - name: Lint 29 | run: nr lint 30 | 31 | typecheck: 32 | runs-on: ubuntu-latest 33 | steps: 34 | - uses: actions/checkout@v3 35 | - name: Set node 36 | uses: actions/setup-node@v3 37 | with: 38 | node-version: 16.x 39 | 40 | - name: Setup 41 | run: npm i -g @antfu/ni 42 | 43 | - name: Install 44 | run: nci 45 | 46 | - name: Typecheck 47 | run: nr typecheck 48 | 49 | test: 50 | runs-on: ${{ matrix.os }} 51 | 52 | strategy: 53 | matrix: 54 | node: [14.x, 16.x] 55 | os: [ubuntu-latest, windows-latest, macos-latest] 56 | fail-fast: false 57 | 58 | steps: 59 | - uses: actions/checkout@v3 60 | - name: Set node ${{ matrix.node }} 61 | uses: actions/setup-node@v3 62 | with: 63 | node-version: ${{ matrix.node }} 64 | 65 | - name: Setup 66 | run: npm i -g @antfu/ni 67 | 68 | - name: Install 69 | run: nci 70 | 71 | - name: Build 72 | run: nr build 73 | 74 | - name: Test 75 | run: nr test 76 | -------------------------------------------------------------------------------- /.github/workflows/GithubRelease.yml: -------------------------------------------------------------------------------- 1 | name: GithubRelease 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 | with: 14 | fetch-depth: 0 15 | 16 | - uses: actions/setup-node@v3 17 | with: 18 | node-version: 16.x 19 | 20 | - run: npx changelogithub 21 | env: 22 | GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | 26 | .prettierrc.yml 27 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | pnpm exec lint-staged 5 | -------------------------------------------------------------------------------- /.lintstagedrc: -------------------------------------------------------------------------------- 1 | { 2 | "*.{vue,js,jsx,ts,tsx,json,md,yml,yaml}": "eslint --fix" 3 | } 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 zxTick 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ZTCanvas 2 | 3 | a lightweight but powerful Canvas Engine 4 | 5 | you can click 👇 to access our docs 6 | 7 | [ztcanvas docs](https://ztcanvas.netlify.app/) 8 | 9 | ## features 10 | 11 | - ⛔️ fully type supported (by using TypeScript) 12 | - ⚡️ build your Canvas Application Fast and Easy 13 | - 🛠️ rich api and features 14 | -------------------------------------------------------------------------------- /auto-imports.d.ts: -------------------------------------------------------------------------------- 1 | // Generated by 'unplugin-auto-import' 2 | export {} 3 | declare global { 4 | const afterAll: typeof import('vitest')['afterAll'] 5 | const afterEach: typeof import('vitest')['afterEach'] 6 | const assert: typeof import('vitest')['assert'] 7 | const beforeAll: typeof import('vitest')['beforeAll'] 8 | const beforeEach: typeof import('vitest')['beforeEach'] 9 | const chai: typeof import('vitest')['chai'] 10 | const describe: typeof import('vitest')['describe'] 11 | const expect: typeof import('vitest')['expect'] 12 | const it: typeof import('vitest')['it'] 13 | const suite: typeof import('vitest')['suite'] 14 | const test: typeof import('vitest')['test'] 15 | const vi: typeof import('vitest')['vi'] 16 | const vitest: typeof import('vitest')['vitest'] 17 | } 18 | -------------------------------------------------------------------------------- /build.config.ts: -------------------------------------------------------------------------------- 1 | import { defineBuildConfig } from 'unbuild' 2 | 3 | export default defineBuildConfig({ 4 | entries: ['src/index'], 5 | clean: true, 6 | declaration: true, 7 | rollup: { 8 | emitCJS: true, 9 | dts: { 10 | respectExternal: false, 11 | }, 12 | }, 13 | }) 14 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ztcanvas", 3 | "type": "module", 4 | "version": "1.0.6", 5 | "description": "a framework to help you build your canvas library easily", 6 | "keywords": [], 7 | "license": "ISC", 8 | "author": "", 9 | "main": "dist/index.cjs", 10 | "module": "dist/index.mjs", 11 | "types": "dist/index.d.ts", 12 | "files": [ 13 | "dist" 14 | ], 15 | "scripts": { 16 | "build": "unbuild", 17 | "stub": "unbuild --stub", 18 | "prepare": "husky install", 19 | "test": "vitest", 20 | "prepublishOnly": "npm run build", 21 | "release": "bumpp && npm publish", 22 | "lint": "eslint .", 23 | "lint:fix": "eslint --fix .", 24 | "typecheck": "tsc --noEmit" 25 | }, 26 | "dependencies": { 27 | "@vue/shared": "^3.2.37", 28 | "nanoid": "^4.0.0", 29 | "unbuild": "^0.7.4" 30 | }, 31 | "devDependencies": { 32 | "@alexzzz/eslint-config": "^1.3.0", 33 | "bumpp": "^8.2.0", 34 | "eslint": "^8.17.0", 35 | "husky": "^8.0.1", 36 | "lint-staged": "^13.0.1", 37 | "typescript": "^4.7.3", 38 | "unplugin-auto-import": "^0.8.8", 39 | "vitest": "^0.15.1" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /playground/01.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /playground/arc.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Document 9 | 10 | 11 | 12 | 13 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /playground/assets/zu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zxTick/ztcanvas/c79341ce04ee54031beb192c917c5aa0616cb282/playground/assets/zu.png -------------------------------------------------------------------------------- /playground/img.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Document 9 | 10 | 11 | 12 | 13 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /playground/line.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Document 9 | 10 | 11 | 12 | 13 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /playground/test.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zxTick/ztcanvas/c79341ce04ee54031beb192c917c5aa0616cb282/playground/test.html -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | '@alexzzz/eslint-config': ^1.3.0 5 | '@vue/shared': ^3.2.37 6 | bumpp: ^8.2.0 7 | eslint: ^8.17.0 8 | husky: ^8.0.1 9 | lint-staged: ^13.0.1 10 | nanoid: ^4.0.0 11 | typescript: ^4.7.3 12 | unbuild: ^0.7.4 13 | unplugin-auto-import: ^0.8.8 14 | vitest: ^0.15.1 15 | 16 | dependencies: 17 | '@vue/shared': 3.2.37 18 | nanoid: 4.0.0 19 | unbuild: 0.7.4 20 | 21 | devDependencies: 22 | '@alexzzz/eslint-config': 1.3.0_ud6rd4xtew5bv4yhvkvu24pzm4 23 | bumpp: 8.2.0 24 | eslint: 8.17.0 25 | husky: 8.0.1 26 | lint-staged: 13.0.1 27 | typescript: 4.7.3 28 | unplugin-auto-import: 0.8.8 29 | vitest: 0.15.1 30 | 31 | packages: 32 | 33 | /@alexzzz/eslint-config-basic/1.3.0_pv5w3e62ssxduf5aiwxbc3knra: 34 | resolution: {integrity: sha512-a/Zn0aggFhXaheaouAZwOaIuJlBzJpavev5swiqkPf2itftvBSE1ADRcoWSZ31RI8nyspZ+kdwBurLlPdmpdZA==} 35 | dependencies: 36 | eslint-plugin-eslint-comments: 3.2.0_eslint@8.17.0 37 | eslint-plugin-html: 6.2.0 38 | eslint-plugin-import: 2.26.0_pv5w3e62ssxduf5aiwxbc3knra 39 | eslint-plugin-jsonc: 2.3.0_eslint@8.17.0 40 | eslint-plugin-markdown: 2.2.1_eslint@8.17.0 41 | eslint-plugin-n: 15.2.2_eslint@8.17.0 42 | eslint-plugin-promise: 6.0.0_eslint@8.17.0 43 | eslint-plugin-unicorn: 42.0.0_eslint@8.17.0 44 | eslint-plugin-yml: 0.14.0_eslint@8.17.0 45 | jsonc-eslint-parser: 2.1.0 46 | yaml-eslint-parser: 0.5.0 47 | transitivePeerDependencies: 48 | - '@typescript-eslint/parser' 49 | - eslint 50 | - eslint-import-resolver-typescript 51 | - eslint-import-resolver-webpack 52 | - supports-color 53 | dev: true 54 | 55 | /@alexzzz/eslint-config-react/1.3.0_ud6rd4xtew5bv4yhvkvu24pzm4: 56 | resolution: {integrity: sha512-MRbZNkoiIcFm4gx4ww2ZBGFASFbCD5vZ9OZ5xaiE72vTp4sGZLeYDZ/2l/G++ZjmhQkQBiZVEFUljP4dVe4N6w==} 57 | dependencies: 58 | '@alexzzz/eslint-config-typescript': 1.3.0_ud6rd4xtew5bv4yhvkvu24pzm4 59 | eslint-plugin-react: 7.30.0_eslint@8.17.0 60 | transitivePeerDependencies: 61 | - eslint 62 | - eslint-import-resolver-typescript 63 | - eslint-import-resolver-webpack 64 | - supports-color 65 | - typescript 66 | dev: true 67 | 68 | /@alexzzz/eslint-config-typescript/1.3.0_ud6rd4xtew5bv4yhvkvu24pzm4: 69 | resolution: {integrity: sha512-Ga4DaqUM6cqj051JgxcyV9GYKz0haF5309OLs4E4IgnU8i+LOYADdN/4Tb6uXs5xYADUkKwpG42ksNenOqkIog==} 70 | dependencies: 71 | '@alexzzz/eslint-config-basic': 1.3.0_pv5w3e62ssxduf5aiwxbc3knra 72 | '@typescript-eslint/eslint-plugin': 5.27.1_aq7uryhocdbvbqum33pitcm3y4 73 | '@typescript-eslint/parser': 5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4 74 | transitivePeerDependencies: 75 | - eslint 76 | - eslint-import-resolver-typescript 77 | - eslint-import-resolver-webpack 78 | - supports-color 79 | - typescript 80 | dev: true 81 | 82 | /@alexzzz/eslint-config-vue/1.3.0_ud6rd4xtew5bv4yhvkvu24pzm4: 83 | resolution: {integrity: sha512-XALOxtfguc9EZsi2WixzdGKeUizeK+d8Sem7lFjvjUsXabNXM4g/sqERhZJLqCXk3L6vDTPxI9WtKsORFJDw9A==} 84 | dependencies: 85 | '@alexzzz/eslint-config-typescript': 1.3.0_ud6rd4xtew5bv4yhvkvu24pzm4 86 | eslint-plugin-vue: 8.7.1_eslint@8.17.0 87 | transitivePeerDependencies: 88 | - eslint 89 | - eslint-import-resolver-typescript 90 | - eslint-import-resolver-webpack 91 | - supports-color 92 | - typescript 93 | dev: true 94 | 95 | /@alexzzz/eslint-config/1.3.0_ud6rd4xtew5bv4yhvkvu24pzm4: 96 | resolution: {integrity: sha512-640QO7EWHkXikXp9X6uzsY6CYdLBDHvCd48utdr7KKB83DaKb7eny99ybTQ36BkZm6X6U9rTscEJ9tB3l7pcPg==} 97 | dependencies: 98 | '@alexzzz/eslint-config-react': 1.3.0_ud6rd4xtew5bv4yhvkvu24pzm4 99 | '@alexzzz/eslint-config-vue': 1.3.0_ud6rd4xtew5bv4yhvkvu24pzm4 100 | transitivePeerDependencies: 101 | - eslint 102 | - eslint-import-resolver-typescript 103 | - eslint-import-resolver-webpack 104 | - supports-color 105 | - typescript 106 | dev: true 107 | 108 | /@ampproject/remapping/2.2.0: 109 | resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} 110 | engines: {node: '>=6.0.0'} 111 | dependencies: 112 | '@jridgewell/gen-mapping': 0.1.1 113 | '@jridgewell/trace-mapping': 0.3.13 114 | dev: false 115 | 116 | /@antfu/utils/0.5.2: 117 | resolution: {integrity: sha512-CQkeV+oJxUazwjlHD0/3ZD08QWKuGQkhnrKo3e6ly5pd48VUpXbb77q0xMU4+vc2CkJnDS02Eq/M9ugyX20XZA==} 118 | dev: true 119 | 120 | /@babel/code-frame/7.16.7: 121 | resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==} 122 | engines: {node: '>=6.9.0'} 123 | dependencies: 124 | '@babel/highlight': 7.17.12 125 | 126 | /@babel/compat-data/7.18.5: 127 | resolution: {integrity: sha512-BxhE40PVCBxVEJsSBhB6UWyAuqJRxGsAw8BdHMJ3AKGydcwuWW4kOO3HmqBQAdcq/OP+/DlTVxLvsCzRTnZuGg==} 128 | engines: {node: '>=6.9.0'} 129 | dev: false 130 | 131 | /@babel/core/7.18.5: 132 | resolution: {integrity: sha512-MGY8vg3DxMnctw0LdvSEojOsumc70g0t18gNyUdAZqB1Rpd1Bqo/svHGvt+UJ6JcGX+DIekGFDxxIWofBxLCnQ==} 133 | engines: {node: '>=6.9.0'} 134 | dependencies: 135 | '@ampproject/remapping': 2.2.0 136 | '@babel/code-frame': 7.16.7 137 | '@babel/generator': 7.18.2 138 | '@babel/helper-compilation-targets': 7.18.2_@babel+core@7.18.5 139 | '@babel/helper-module-transforms': 7.18.0 140 | '@babel/helpers': 7.18.2 141 | '@babel/parser': 7.18.5 142 | '@babel/template': 7.16.7 143 | '@babel/traverse': 7.18.5 144 | '@babel/types': 7.18.4 145 | convert-source-map: 1.8.0 146 | debug: 4.3.4 147 | gensync: 1.0.0-beta.2 148 | json5: 2.2.1 149 | semver: 6.3.0 150 | transitivePeerDependencies: 151 | - supports-color 152 | dev: false 153 | 154 | /@babel/generator/7.18.2: 155 | resolution: {integrity: sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==} 156 | engines: {node: '>=6.9.0'} 157 | dependencies: 158 | '@babel/types': 7.18.4 159 | '@jridgewell/gen-mapping': 0.3.1 160 | jsesc: 2.5.2 161 | dev: false 162 | 163 | /@babel/helper-compilation-targets/7.18.2_@babel+core@7.18.5: 164 | resolution: {integrity: sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==} 165 | engines: {node: '>=6.9.0'} 166 | peerDependencies: 167 | '@babel/core': ^7.0.0 168 | dependencies: 169 | '@babel/compat-data': 7.18.5 170 | '@babel/core': 7.18.5 171 | '@babel/helper-validator-option': 7.16.7 172 | browserslist: 4.20.4 173 | semver: 6.3.0 174 | dev: false 175 | 176 | /@babel/helper-environment-visitor/7.18.2: 177 | resolution: {integrity: sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==} 178 | engines: {node: '>=6.9.0'} 179 | dev: false 180 | 181 | /@babel/helper-function-name/7.17.9: 182 | resolution: {integrity: sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==} 183 | engines: {node: '>=6.9.0'} 184 | dependencies: 185 | '@babel/template': 7.16.7 186 | '@babel/types': 7.18.4 187 | dev: false 188 | 189 | /@babel/helper-hoist-variables/7.16.7: 190 | resolution: {integrity: sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==} 191 | engines: {node: '>=6.9.0'} 192 | dependencies: 193 | '@babel/types': 7.18.4 194 | dev: false 195 | 196 | /@babel/helper-module-imports/7.16.7: 197 | resolution: {integrity: sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==} 198 | engines: {node: '>=6.9.0'} 199 | dependencies: 200 | '@babel/types': 7.18.4 201 | dev: false 202 | 203 | /@babel/helper-module-transforms/7.18.0: 204 | resolution: {integrity: sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==} 205 | engines: {node: '>=6.9.0'} 206 | dependencies: 207 | '@babel/helper-environment-visitor': 7.18.2 208 | '@babel/helper-module-imports': 7.16.7 209 | '@babel/helper-simple-access': 7.18.2 210 | '@babel/helper-split-export-declaration': 7.16.7 211 | '@babel/helper-validator-identifier': 7.16.7 212 | '@babel/template': 7.16.7 213 | '@babel/traverse': 7.18.5 214 | '@babel/types': 7.18.4 215 | transitivePeerDependencies: 216 | - supports-color 217 | dev: false 218 | 219 | /@babel/helper-simple-access/7.18.2: 220 | resolution: {integrity: sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==} 221 | engines: {node: '>=6.9.0'} 222 | dependencies: 223 | '@babel/types': 7.18.4 224 | dev: false 225 | 226 | /@babel/helper-split-export-declaration/7.16.7: 227 | resolution: {integrity: sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==} 228 | engines: {node: '>=6.9.0'} 229 | dependencies: 230 | '@babel/types': 7.18.4 231 | dev: false 232 | 233 | /@babel/helper-validator-identifier/7.16.7: 234 | resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==} 235 | engines: {node: '>=6.9.0'} 236 | 237 | /@babel/helper-validator-option/7.16.7: 238 | resolution: {integrity: sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==} 239 | engines: {node: '>=6.9.0'} 240 | dev: false 241 | 242 | /@babel/helpers/7.18.2: 243 | resolution: {integrity: sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==} 244 | engines: {node: '>=6.9.0'} 245 | dependencies: 246 | '@babel/template': 7.16.7 247 | '@babel/traverse': 7.18.5 248 | '@babel/types': 7.18.4 249 | transitivePeerDependencies: 250 | - supports-color 251 | dev: false 252 | 253 | /@babel/highlight/7.17.12: 254 | resolution: {integrity: sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==} 255 | engines: {node: '>=6.9.0'} 256 | dependencies: 257 | '@babel/helper-validator-identifier': 7.16.7 258 | chalk: 2.4.2 259 | js-tokens: 4.0.0 260 | 261 | /@babel/parser/7.18.5: 262 | resolution: {integrity: sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw==} 263 | engines: {node: '>=6.0.0'} 264 | hasBin: true 265 | dependencies: 266 | '@babel/types': 7.18.4 267 | dev: false 268 | 269 | /@babel/standalone/7.18.5: 270 | resolution: {integrity: sha512-3RlzTl3JSvbY1bvaRmuHf3fM2BSy7IbX0zqpVFjsiGO7678KE/LytwvJN+f5MGrarnUFUz2DNcCdetumWdIAKA==} 271 | engines: {node: '>=6.9.0'} 272 | dev: false 273 | 274 | /@babel/template/7.16.7: 275 | resolution: {integrity: sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==} 276 | engines: {node: '>=6.9.0'} 277 | dependencies: 278 | '@babel/code-frame': 7.16.7 279 | '@babel/parser': 7.18.5 280 | '@babel/types': 7.18.4 281 | dev: false 282 | 283 | /@babel/traverse/7.18.5: 284 | resolution: {integrity: sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA==} 285 | engines: {node: '>=6.9.0'} 286 | dependencies: 287 | '@babel/code-frame': 7.16.7 288 | '@babel/generator': 7.18.2 289 | '@babel/helper-environment-visitor': 7.18.2 290 | '@babel/helper-function-name': 7.17.9 291 | '@babel/helper-hoist-variables': 7.16.7 292 | '@babel/helper-split-export-declaration': 7.16.7 293 | '@babel/parser': 7.18.5 294 | '@babel/types': 7.18.4 295 | debug: 4.3.4 296 | globals: 11.12.0 297 | transitivePeerDependencies: 298 | - supports-color 299 | dev: false 300 | 301 | /@babel/types/7.18.4: 302 | resolution: {integrity: sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==} 303 | engines: {node: '>=6.9.0'} 304 | dependencies: 305 | '@babel/helper-validator-identifier': 7.16.7 306 | to-fast-properties: 2.0.0 307 | dev: false 308 | 309 | /@eslint/eslintrc/1.3.0: 310 | resolution: {integrity: sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==} 311 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 312 | dependencies: 313 | ajv: 6.12.6 314 | debug: 4.3.4 315 | espree: 9.3.2 316 | globals: 13.15.0 317 | ignore: 5.2.0 318 | import-fresh: 3.3.0 319 | js-yaml: 4.1.0 320 | minimatch: 3.1.2 321 | strip-json-comments: 3.1.1 322 | transitivePeerDependencies: 323 | - supports-color 324 | dev: true 325 | 326 | /@humanwhocodes/config-array/0.9.5: 327 | resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==} 328 | engines: {node: '>=10.10.0'} 329 | dependencies: 330 | '@humanwhocodes/object-schema': 1.2.1 331 | debug: 4.3.4 332 | minimatch: 3.1.2 333 | transitivePeerDependencies: 334 | - supports-color 335 | dev: true 336 | 337 | /@humanwhocodes/object-schema/1.2.1: 338 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} 339 | dev: true 340 | 341 | /@jridgewell/gen-mapping/0.1.1: 342 | resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} 343 | engines: {node: '>=6.0.0'} 344 | dependencies: 345 | '@jridgewell/set-array': 1.1.1 346 | '@jridgewell/sourcemap-codec': 1.4.13 347 | dev: false 348 | 349 | /@jridgewell/gen-mapping/0.3.1: 350 | resolution: {integrity: sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==} 351 | engines: {node: '>=6.0.0'} 352 | dependencies: 353 | '@jridgewell/set-array': 1.1.1 354 | '@jridgewell/sourcemap-codec': 1.4.13 355 | '@jridgewell/trace-mapping': 0.3.13 356 | dev: false 357 | 358 | /@jridgewell/resolve-uri/3.0.7: 359 | resolution: {integrity: sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==} 360 | engines: {node: '>=6.0.0'} 361 | dev: false 362 | 363 | /@jridgewell/set-array/1.1.1: 364 | resolution: {integrity: sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==} 365 | engines: {node: '>=6.0.0'} 366 | dev: false 367 | 368 | /@jridgewell/sourcemap-codec/1.4.13: 369 | resolution: {integrity: sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==} 370 | dev: false 371 | 372 | /@jridgewell/trace-mapping/0.3.13: 373 | resolution: {integrity: sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==} 374 | dependencies: 375 | '@jridgewell/resolve-uri': 3.0.7 376 | '@jridgewell/sourcemap-codec': 1.4.13 377 | dev: false 378 | 379 | /@jsdevtools/ez-spawn/3.0.4: 380 | resolution: {integrity: sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==} 381 | engines: {node: '>=10'} 382 | dependencies: 383 | call-me-maybe: 1.0.1 384 | cross-spawn: 7.0.3 385 | string-argv: 0.3.1 386 | type-detect: 4.0.8 387 | dev: true 388 | 389 | /@nodelib/fs.scandir/2.1.5: 390 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 391 | engines: {node: '>= 8'} 392 | dependencies: 393 | '@nodelib/fs.stat': 2.0.5 394 | run-parallel: 1.2.0 395 | 396 | /@nodelib/fs.stat/2.0.5: 397 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 398 | engines: {node: '>= 8'} 399 | 400 | /@nodelib/fs.walk/1.2.8: 401 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 402 | engines: {node: '>= 8'} 403 | dependencies: 404 | '@nodelib/fs.scandir': 2.1.5 405 | fastq: 1.13.0 406 | 407 | /@rollup/plugin-alias/3.1.9_rollup@2.75.6: 408 | resolution: {integrity: sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw==} 409 | engines: {node: '>=8.0.0'} 410 | peerDependencies: 411 | rollup: ^1.20.0||^2.0.0 412 | dependencies: 413 | rollup: 2.75.6 414 | slash: 3.0.0 415 | dev: false 416 | 417 | /@rollup/plugin-commonjs/21.1.0_rollup@2.75.6: 418 | resolution: {integrity: sha512-6ZtHx3VHIp2ReNNDxHjuUml6ur+WcQ28N1yHgCQwsbNkQg2suhxGMDQGJOn/KuDxKtd1xuZP5xSTwBA4GQ8hbA==} 419 | engines: {node: '>= 8.0.0'} 420 | peerDependencies: 421 | rollup: ^2.38.3 422 | dependencies: 423 | '@rollup/pluginutils': 3.1.0_rollup@2.75.6 424 | commondir: 1.0.1 425 | estree-walker: 2.0.2 426 | glob: 7.2.3 427 | is-reference: 1.2.1 428 | magic-string: 0.25.9 429 | resolve: 1.22.0 430 | rollup: 2.75.6 431 | dev: false 432 | 433 | /@rollup/plugin-json/4.1.0_rollup@2.75.6: 434 | resolution: {integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==} 435 | peerDependencies: 436 | rollup: ^1.20.0 || ^2.0.0 437 | dependencies: 438 | '@rollup/pluginutils': 3.1.0_rollup@2.75.6 439 | rollup: 2.75.6 440 | dev: false 441 | 442 | /@rollup/plugin-node-resolve/13.3.0_rollup@2.75.6: 443 | resolution: {integrity: sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==} 444 | engines: {node: '>= 10.0.0'} 445 | peerDependencies: 446 | rollup: ^2.42.0 447 | dependencies: 448 | '@rollup/pluginutils': 3.1.0_rollup@2.75.6 449 | '@types/resolve': 1.17.1 450 | deepmerge: 4.2.2 451 | is-builtin-module: 3.1.0 452 | is-module: 1.0.0 453 | resolve: 1.22.0 454 | rollup: 2.75.6 455 | dev: false 456 | 457 | /@rollup/plugin-replace/4.0.0_rollup@2.75.6: 458 | resolution: {integrity: sha512-+rumQFiaNac9y64OHtkHGmdjm7us9bo1PlbgQfdihQtuNxzjpaB064HbRnewUOggLQxVCCyINfStkgmBeQpv1g==} 459 | peerDependencies: 460 | rollup: ^1.20.0 || ^2.0.0 461 | dependencies: 462 | '@rollup/pluginutils': 3.1.0_rollup@2.75.6 463 | magic-string: 0.25.9 464 | rollup: 2.75.6 465 | dev: false 466 | 467 | /@rollup/pluginutils/3.1.0_rollup@2.75.6: 468 | resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} 469 | engines: {node: '>= 8.0.0'} 470 | peerDependencies: 471 | rollup: ^1.20.0||^2.0.0 472 | dependencies: 473 | '@types/estree': 0.0.39 474 | estree-walker: 1.0.1 475 | picomatch: 2.3.1 476 | rollup: 2.75.6 477 | dev: false 478 | 479 | /@rollup/pluginutils/4.2.1: 480 | resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} 481 | engines: {node: '>= 8.0.0'} 482 | dependencies: 483 | estree-walker: 2.0.2 484 | picomatch: 2.3.1 485 | 486 | /@types/chai-subset/1.3.3: 487 | resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} 488 | dependencies: 489 | '@types/chai': 4.3.1 490 | dev: true 491 | 492 | /@types/chai/4.3.1: 493 | resolution: {integrity: sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ==} 494 | dev: true 495 | 496 | /@types/estree/0.0.39: 497 | resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} 498 | dev: false 499 | 500 | /@types/estree/0.0.51: 501 | resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} 502 | dev: false 503 | 504 | /@types/json-schema/7.0.11: 505 | resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} 506 | dev: true 507 | 508 | /@types/json5/0.0.29: 509 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} 510 | dev: true 511 | 512 | /@types/mdast/3.0.10: 513 | resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==} 514 | dependencies: 515 | '@types/unist': 2.0.6 516 | dev: true 517 | 518 | /@types/node/17.0.42: 519 | resolution: {integrity: sha512-Q5BPGyGKcvQgAMbsr7qEGN/kIPN6zZecYYABeTDBizOsau+2NMdSVTar9UQw21A2+JyA2KRNDYaYrPB0Rpk2oQ==} 520 | 521 | /@types/normalize-package-data/2.4.1: 522 | resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} 523 | dev: true 524 | 525 | /@types/resolve/1.17.1: 526 | resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} 527 | dependencies: 528 | '@types/node': 17.0.42 529 | dev: false 530 | 531 | /@types/unist/2.0.6: 532 | resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} 533 | dev: true 534 | 535 | /@typescript-eslint/eslint-plugin/5.27.1_aq7uryhocdbvbqum33pitcm3y4: 536 | resolution: {integrity: sha512-6dM5NKT57ZduNnJfpY81Phe9nc9wolnMCnknb1im6brWi1RYv84nbMS3olJa27B6+irUVV1X/Wb+Am0FjJdGFw==} 537 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 538 | peerDependencies: 539 | '@typescript-eslint/parser': ^5.0.0 540 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 541 | typescript: '*' 542 | peerDependenciesMeta: 543 | typescript: 544 | optional: true 545 | dependencies: 546 | '@typescript-eslint/parser': 5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4 547 | '@typescript-eslint/scope-manager': 5.27.1 548 | '@typescript-eslint/type-utils': 5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4 549 | '@typescript-eslint/utils': 5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4 550 | debug: 4.3.4 551 | eslint: 8.17.0 552 | functional-red-black-tree: 1.0.1 553 | ignore: 5.2.0 554 | regexpp: 3.2.0 555 | semver: 7.3.7 556 | tsutils: 3.21.0_typescript@4.7.3 557 | typescript: 4.7.3 558 | transitivePeerDependencies: 559 | - supports-color 560 | dev: true 561 | 562 | /@typescript-eslint/parser/5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4: 563 | resolution: {integrity: sha512-7Va2ZOkHi5NP+AZwb5ReLgNF6nWLGTeUJfxdkVUAPPSaAdbWNnFZzLZ4EGGmmiCTg+AwlbE1KyUYTBglosSLHQ==} 564 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 565 | peerDependencies: 566 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 567 | typescript: '*' 568 | peerDependenciesMeta: 569 | typescript: 570 | optional: true 571 | dependencies: 572 | '@typescript-eslint/scope-manager': 5.27.1 573 | '@typescript-eslint/types': 5.27.1 574 | '@typescript-eslint/typescript-estree': 5.27.1_typescript@4.7.3 575 | debug: 4.3.4 576 | eslint: 8.17.0 577 | typescript: 4.7.3 578 | transitivePeerDependencies: 579 | - supports-color 580 | dev: true 581 | 582 | /@typescript-eslint/scope-manager/5.27.1: 583 | resolution: {integrity: sha512-fQEOSa/QroWE6fAEg+bJxtRZJTH8NTskggybogHt4H9Da8zd4cJji76gA5SBlR0MgtwF7rebxTbDKB49YUCpAg==} 584 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 585 | dependencies: 586 | '@typescript-eslint/types': 5.27.1 587 | '@typescript-eslint/visitor-keys': 5.27.1 588 | dev: true 589 | 590 | /@typescript-eslint/type-utils/5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4: 591 | resolution: {integrity: sha512-+UC1vVUWaDHRnC2cQrCJ4QtVjpjjCgjNFpg8b03nERmkHv9JV9X5M19D7UFMd+/G7T/sgFwX2pGmWK38rqyvXw==} 592 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 593 | peerDependencies: 594 | eslint: '*' 595 | typescript: '*' 596 | peerDependenciesMeta: 597 | typescript: 598 | optional: true 599 | dependencies: 600 | '@typescript-eslint/utils': 5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4 601 | debug: 4.3.4 602 | eslint: 8.17.0 603 | tsutils: 3.21.0_typescript@4.7.3 604 | typescript: 4.7.3 605 | transitivePeerDependencies: 606 | - supports-color 607 | dev: true 608 | 609 | /@typescript-eslint/types/5.27.1: 610 | resolution: {integrity: sha512-LgogNVkBhCTZU/m8XgEYIWICD6m4dmEDbKXESCbqOXfKZxRKeqpiJXQIErv66sdopRKZPo5l32ymNqibYEH/xg==} 611 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 612 | dev: true 613 | 614 | /@typescript-eslint/typescript-estree/5.27.1_typescript@4.7.3: 615 | resolution: {integrity: sha512-DnZvvq3TAJ5ke+hk0LklvxwYsnXpRdqUY5gaVS0D4raKtbznPz71UJGnPTHEFo0GDxqLOLdMkkmVZjSpET1hFw==} 616 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 617 | peerDependencies: 618 | typescript: '*' 619 | peerDependenciesMeta: 620 | typescript: 621 | optional: true 622 | dependencies: 623 | '@typescript-eslint/types': 5.27.1 624 | '@typescript-eslint/visitor-keys': 5.27.1 625 | debug: 4.3.4 626 | globby: 11.1.0 627 | is-glob: 4.0.3 628 | semver: 7.3.7 629 | tsutils: 3.21.0_typescript@4.7.3 630 | typescript: 4.7.3 631 | transitivePeerDependencies: 632 | - supports-color 633 | dev: true 634 | 635 | /@typescript-eslint/utils/5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4: 636 | resolution: {integrity: sha512-mZ9WEn1ZLDaVrhRaYgzbkXBkTPghPFsup8zDbbsYTxC5OmqrFE7skkKS/sraVsLP3TcT3Ki5CSyEFBRkLH/H/w==} 637 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 638 | peerDependencies: 639 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 640 | dependencies: 641 | '@types/json-schema': 7.0.11 642 | '@typescript-eslint/scope-manager': 5.27.1 643 | '@typescript-eslint/types': 5.27.1 644 | '@typescript-eslint/typescript-estree': 5.27.1_typescript@4.7.3 645 | eslint: 8.17.0 646 | eslint-scope: 5.1.1 647 | eslint-utils: 3.0.0_eslint@8.17.0 648 | transitivePeerDependencies: 649 | - supports-color 650 | - typescript 651 | dev: true 652 | 653 | /@typescript-eslint/visitor-keys/5.27.1: 654 | resolution: {integrity: sha512-xYs6ffo01nhdJgPieyk7HAOpjhTsx7r/oB9LWEhwAXgwn33tkr+W8DI2ChboqhZlC4q3TC6geDYPoiX8ROqyOQ==} 655 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 656 | dependencies: 657 | '@typescript-eslint/types': 5.27.1 658 | eslint-visitor-keys: 3.3.0 659 | dev: true 660 | 661 | /@vue/shared/3.2.37: 662 | resolution: {integrity: sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==} 663 | dev: false 664 | 665 | /acorn-jsx/5.3.2_acorn@8.7.1: 666 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 667 | peerDependencies: 668 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 669 | dependencies: 670 | acorn: 8.7.1 671 | dev: true 672 | 673 | /acorn/8.7.1: 674 | resolution: {integrity: sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==} 675 | engines: {node: '>=0.4.0'} 676 | hasBin: true 677 | dev: true 678 | 679 | /aggregate-error/3.1.0: 680 | resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} 681 | engines: {node: '>=8'} 682 | dependencies: 683 | clean-stack: 2.2.0 684 | indent-string: 4.0.0 685 | dev: true 686 | 687 | /ajv/6.12.6: 688 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 689 | dependencies: 690 | fast-deep-equal: 3.1.3 691 | fast-json-stable-stringify: 2.1.0 692 | json-schema-traverse: 0.4.1 693 | uri-js: 4.4.1 694 | dev: true 695 | 696 | /ansi-escapes/4.3.2: 697 | resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} 698 | engines: {node: '>=8'} 699 | dependencies: 700 | type-fest: 0.21.3 701 | dev: true 702 | 703 | /ansi-regex/5.0.1: 704 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 705 | engines: {node: '>=8'} 706 | dev: true 707 | 708 | /ansi-regex/6.0.1: 709 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 710 | engines: {node: '>=12'} 711 | dev: true 712 | 713 | /ansi-styles/3.2.1: 714 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 715 | engines: {node: '>=4'} 716 | dependencies: 717 | color-convert: 1.9.3 718 | 719 | /ansi-styles/4.3.0: 720 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 721 | engines: {node: '>=8'} 722 | dependencies: 723 | color-convert: 2.0.1 724 | dev: true 725 | 726 | /ansi-styles/6.1.0: 727 | resolution: {integrity: sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==} 728 | engines: {node: '>=12'} 729 | dev: true 730 | 731 | /anymatch/3.1.2: 732 | resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} 733 | engines: {node: '>= 8'} 734 | dependencies: 735 | normalize-path: 3.0.0 736 | picomatch: 2.3.1 737 | dev: true 738 | 739 | /argparse/2.0.1: 740 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 741 | dev: true 742 | 743 | /array-includes/3.1.5: 744 | resolution: {integrity: sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==} 745 | engines: {node: '>= 0.4'} 746 | dependencies: 747 | call-bind: 1.0.2 748 | define-properties: 1.1.4 749 | es-abstract: 1.20.1 750 | get-intrinsic: 1.1.2 751 | is-string: 1.0.7 752 | dev: true 753 | 754 | /array-union/2.1.0: 755 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 756 | engines: {node: '>=8'} 757 | 758 | /array.prototype.flat/1.3.0: 759 | resolution: {integrity: sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==} 760 | engines: {node: '>= 0.4'} 761 | dependencies: 762 | call-bind: 1.0.2 763 | define-properties: 1.1.4 764 | es-abstract: 1.20.1 765 | es-shim-unscopables: 1.0.0 766 | dev: true 767 | 768 | /array.prototype.flatmap/1.3.0: 769 | resolution: {integrity: sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==} 770 | engines: {node: '>= 0.4'} 771 | dependencies: 772 | call-bind: 1.0.2 773 | define-properties: 1.1.4 774 | es-abstract: 1.20.1 775 | es-shim-unscopables: 1.0.0 776 | dev: true 777 | 778 | /assertion-error/1.1.0: 779 | resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} 780 | dev: true 781 | 782 | /astral-regex/2.0.0: 783 | resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} 784 | engines: {node: '>=8'} 785 | dev: true 786 | 787 | /balanced-match/1.0.2: 788 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 789 | 790 | /binary-extensions/2.2.0: 791 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 792 | engines: {node: '>=8'} 793 | dev: true 794 | 795 | /boolbase/1.0.0: 796 | resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} 797 | dev: true 798 | 799 | /brace-expansion/1.1.11: 800 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 801 | dependencies: 802 | balanced-match: 1.0.2 803 | concat-map: 0.0.1 804 | 805 | /braces/3.0.2: 806 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 807 | engines: {node: '>=8'} 808 | dependencies: 809 | fill-range: 7.0.1 810 | 811 | /browserslist/4.20.4: 812 | resolution: {integrity: sha512-ok1d+1WpnU24XYN7oC3QWgTyMhY/avPJ/r9T00xxvUOIparA/gc+UPUMaod3i+G6s+nI2nUb9xZ5k794uIwShw==} 813 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 814 | hasBin: true 815 | dependencies: 816 | caniuse-lite: 1.0.30001352 817 | electron-to-chromium: 1.4.152 818 | escalade: 3.1.1 819 | node-releases: 2.0.5 820 | picocolors: 1.0.0 821 | dev: false 822 | 823 | /builtin-modules/3.3.0: 824 | resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} 825 | engines: {node: '>=6'} 826 | 827 | /builtins/5.0.1: 828 | resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} 829 | dependencies: 830 | semver: 7.3.7 831 | dev: true 832 | 833 | /bumpp/8.2.0: 834 | resolution: {integrity: sha512-DhFa4DSREOwnHJQyQ+Qhj9pUJAIZKMEtuHN7BuQij4CoxSBc6n4bBZnlvFWuLXNMr0aCtsMXnkQWC/7GyGypYw==} 835 | engines: {node: '>=10'} 836 | hasBin: true 837 | dependencies: 838 | '@jsdevtools/ez-spawn': 3.0.4 839 | cac: 6.7.12 840 | fast-glob: 3.2.11 841 | kleur: 4.1.4 842 | prompts: 2.4.2 843 | semver: 7.3.7 844 | dev: true 845 | 846 | /cac/6.7.12: 847 | resolution: {integrity: sha512-rM7E2ygtMkJqD9c7WnFU6fruFcN3xe4FM5yUmgxhZzIKJk4uHl9U/fhwdajGFQbQuv43FAUo1Fe8gX/oIKDeSA==} 848 | engines: {node: '>=8'} 849 | dev: true 850 | 851 | /call-bind/1.0.2: 852 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} 853 | dependencies: 854 | function-bind: 1.1.1 855 | get-intrinsic: 1.1.2 856 | dev: true 857 | 858 | /call-me-maybe/1.0.1: 859 | resolution: {integrity: sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw==} 860 | dev: true 861 | 862 | /callsites/3.1.0: 863 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 864 | engines: {node: '>=6'} 865 | dev: true 866 | 867 | /caniuse-lite/1.0.30001352: 868 | resolution: {integrity: sha512-GUgH8w6YergqPQDGWhJGt8GDRnY0L/iJVQcU3eJ46GYf52R8tk0Wxp0PymuFVZboJYXGiCqwozAYZNRjVj6IcA==} 869 | dev: false 870 | 871 | /chai/4.3.6: 872 | resolution: {integrity: sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==} 873 | engines: {node: '>=4'} 874 | dependencies: 875 | assertion-error: 1.1.0 876 | check-error: 1.0.2 877 | deep-eql: 3.0.1 878 | get-func-name: 2.0.0 879 | loupe: 2.3.4 880 | pathval: 1.1.1 881 | type-detect: 4.0.8 882 | dev: true 883 | 884 | /chalk/2.4.2: 885 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 886 | engines: {node: '>=4'} 887 | dependencies: 888 | ansi-styles: 3.2.1 889 | escape-string-regexp: 1.0.5 890 | supports-color: 5.5.0 891 | 892 | /chalk/4.1.2: 893 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 894 | engines: {node: '>=10'} 895 | dependencies: 896 | ansi-styles: 4.3.0 897 | supports-color: 7.2.0 898 | dev: true 899 | 900 | /chalk/5.0.1: 901 | resolution: {integrity: sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==} 902 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 903 | dev: false 904 | 905 | /character-entities-legacy/1.1.4: 906 | resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} 907 | dev: true 908 | 909 | /character-entities/1.2.4: 910 | resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} 911 | dev: true 912 | 913 | /character-reference-invalid/1.1.4: 914 | resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} 915 | dev: true 916 | 917 | /check-error/1.0.2: 918 | resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} 919 | dev: true 920 | 921 | /chokidar/3.5.3: 922 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 923 | engines: {node: '>= 8.10.0'} 924 | dependencies: 925 | anymatch: 3.1.2 926 | braces: 3.0.2 927 | glob-parent: 5.1.2 928 | is-binary-path: 2.1.0 929 | is-glob: 4.0.3 930 | normalize-path: 3.0.0 931 | readdirp: 3.6.0 932 | optionalDependencies: 933 | fsevents: 2.3.2 934 | dev: true 935 | 936 | /ci-info/3.3.1: 937 | resolution: {integrity: sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==} 938 | dev: true 939 | 940 | /clean-regexp/1.0.0: 941 | resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} 942 | engines: {node: '>=4'} 943 | dependencies: 944 | escape-string-regexp: 1.0.5 945 | dev: true 946 | 947 | /clean-stack/2.2.0: 948 | resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} 949 | engines: {node: '>=6'} 950 | dev: true 951 | 952 | /cli-cursor/3.1.0: 953 | resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} 954 | engines: {node: '>=8'} 955 | dependencies: 956 | restore-cursor: 3.1.0 957 | dev: true 958 | 959 | /cli-truncate/2.1.0: 960 | resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} 961 | engines: {node: '>=8'} 962 | dependencies: 963 | slice-ansi: 3.0.0 964 | string-width: 4.2.3 965 | dev: true 966 | 967 | /cli-truncate/3.1.0: 968 | resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} 969 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 970 | dependencies: 971 | slice-ansi: 5.0.0 972 | string-width: 5.1.2 973 | dev: true 974 | 975 | /color-convert/1.9.3: 976 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 977 | dependencies: 978 | color-name: 1.1.3 979 | 980 | /color-convert/2.0.1: 981 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 982 | engines: {node: '>=7.0.0'} 983 | dependencies: 984 | color-name: 1.1.4 985 | dev: true 986 | 987 | /color-name/1.1.3: 988 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 989 | 990 | /color-name/1.1.4: 991 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 992 | dev: true 993 | 994 | /colorette/2.0.19: 995 | resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} 996 | dev: true 997 | 998 | /commander/9.3.0: 999 | resolution: {integrity: sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw==} 1000 | engines: {node: ^12.20.0 || >=14} 1001 | dev: true 1002 | 1003 | /commondir/1.0.1: 1004 | resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} 1005 | dev: false 1006 | 1007 | /concat-map/0.0.1: 1008 | resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} 1009 | 1010 | /consola/2.15.3: 1011 | resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} 1012 | dev: false 1013 | 1014 | /convert-source-map/1.8.0: 1015 | resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} 1016 | dependencies: 1017 | safe-buffer: 5.1.2 1018 | dev: false 1019 | 1020 | /cross-spawn/7.0.3: 1021 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 1022 | engines: {node: '>= 8'} 1023 | dependencies: 1024 | path-key: 3.1.1 1025 | shebang-command: 2.0.0 1026 | which: 2.0.2 1027 | dev: true 1028 | 1029 | /cssesc/3.0.0: 1030 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 1031 | engines: {node: '>=4'} 1032 | hasBin: true 1033 | dev: true 1034 | 1035 | /debug/2.6.9: 1036 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} 1037 | peerDependencies: 1038 | supports-color: '*' 1039 | peerDependenciesMeta: 1040 | supports-color: 1041 | optional: true 1042 | dependencies: 1043 | ms: 2.0.0 1044 | dev: true 1045 | 1046 | /debug/3.2.7: 1047 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 1048 | peerDependencies: 1049 | supports-color: '*' 1050 | peerDependenciesMeta: 1051 | supports-color: 1052 | optional: true 1053 | dependencies: 1054 | ms: 2.1.2 1055 | dev: true 1056 | 1057 | /debug/4.3.4: 1058 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 1059 | engines: {node: '>=6.0'} 1060 | peerDependencies: 1061 | supports-color: '*' 1062 | peerDependenciesMeta: 1063 | supports-color: 1064 | optional: true 1065 | dependencies: 1066 | ms: 2.1.2 1067 | 1068 | /deep-eql/3.0.1: 1069 | resolution: {integrity: sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==} 1070 | engines: {node: '>=0.12'} 1071 | dependencies: 1072 | type-detect: 4.0.8 1073 | dev: true 1074 | 1075 | /deep-is/0.1.4: 1076 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 1077 | dev: true 1078 | 1079 | /deepmerge/4.2.2: 1080 | resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} 1081 | engines: {node: '>=0.10.0'} 1082 | dev: false 1083 | 1084 | /define-properties/1.1.4: 1085 | resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} 1086 | engines: {node: '>= 0.4'} 1087 | dependencies: 1088 | has-property-descriptors: 1.0.0 1089 | object-keys: 1.1.1 1090 | dev: true 1091 | 1092 | /defu/5.0.1: 1093 | resolution: {integrity: sha512-EPS1carKg+dkEVy3qNTqIdp2qV7mUP08nIsupfwQpz++slCVRw7qbQyWvSTig+kFPwz2XXp5/kIIkH+CwrJKkQ==} 1094 | dev: false 1095 | 1096 | /defu/6.0.0: 1097 | resolution: {integrity: sha512-t2MZGLf1V2rV4VBZbWIaXKdX/mUcYW0n2znQZoADBkGGxYL8EWqCuCZBmJPJ/Yy9fofJkyuuSuo5GSwo0XdEgw==} 1098 | dev: false 1099 | 1100 | /dir-glob/3.0.1: 1101 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 1102 | engines: {node: '>=8'} 1103 | dependencies: 1104 | path-type: 4.0.0 1105 | 1106 | /doctrine/2.1.0: 1107 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} 1108 | engines: {node: '>=0.10.0'} 1109 | dependencies: 1110 | esutils: 2.0.3 1111 | dev: true 1112 | 1113 | /doctrine/3.0.0: 1114 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 1115 | engines: {node: '>=6.0.0'} 1116 | dependencies: 1117 | esutils: 2.0.3 1118 | dev: true 1119 | 1120 | /dom-serializer/1.4.1: 1121 | resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} 1122 | dependencies: 1123 | domelementtype: 2.3.0 1124 | domhandler: 4.3.1 1125 | entities: 2.2.0 1126 | dev: true 1127 | 1128 | /domelementtype/2.3.0: 1129 | resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} 1130 | dev: true 1131 | 1132 | /domhandler/4.3.1: 1133 | resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} 1134 | engines: {node: '>= 4'} 1135 | dependencies: 1136 | domelementtype: 2.3.0 1137 | dev: true 1138 | 1139 | /domutils/2.8.0: 1140 | resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} 1141 | dependencies: 1142 | dom-serializer: 1.4.1 1143 | domelementtype: 2.3.0 1144 | domhandler: 4.3.1 1145 | dev: true 1146 | 1147 | /eastasianwidth/0.2.0: 1148 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 1149 | dev: true 1150 | 1151 | /electron-to-chromium/1.4.152: 1152 | resolution: {integrity: sha512-jk4Ju5SGZAQQJ1iI4Rgru7dDlvkQPLpNPWH9gIZmwCD4YteA5Bbk1xPcPDUf5jUYs3e1e80RXdi8XgKQZaigeg==} 1153 | dev: false 1154 | 1155 | /emoji-regex/8.0.0: 1156 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1157 | dev: true 1158 | 1159 | /emoji-regex/9.2.2: 1160 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 1161 | dev: true 1162 | 1163 | /entities/2.2.0: 1164 | resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} 1165 | dev: true 1166 | 1167 | /entities/3.0.1: 1168 | resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==} 1169 | engines: {node: '>=0.12'} 1170 | dev: true 1171 | 1172 | /error-ex/1.3.2: 1173 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 1174 | dependencies: 1175 | is-arrayish: 0.2.1 1176 | dev: true 1177 | 1178 | /es-abstract/1.20.1: 1179 | resolution: {integrity: sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==} 1180 | engines: {node: '>= 0.4'} 1181 | dependencies: 1182 | call-bind: 1.0.2 1183 | es-to-primitive: 1.2.1 1184 | function-bind: 1.1.1 1185 | function.prototype.name: 1.1.5 1186 | get-intrinsic: 1.1.2 1187 | get-symbol-description: 1.0.0 1188 | has: 1.0.3 1189 | has-property-descriptors: 1.0.0 1190 | has-symbols: 1.0.3 1191 | internal-slot: 1.0.3 1192 | is-callable: 1.2.4 1193 | is-negative-zero: 2.0.2 1194 | is-regex: 1.1.4 1195 | is-shared-array-buffer: 1.0.2 1196 | is-string: 1.0.7 1197 | is-weakref: 1.0.2 1198 | object-inspect: 1.12.2 1199 | object-keys: 1.1.1 1200 | object.assign: 4.1.2 1201 | regexp.prototype.flags: 1.4.3 1202 | string.prototype.trimend: 1.0.5 1203 | string.prototype.trimstart: 1.0.5 1204 | unbox-primitive: 1.0.2 1205 | dev: true 1206 | 1207 | /es-module-lexer/0.9.3: 1208 | resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} 1209 | dev: false 1210 | 1211 | /es-shim-unscopables/1.0.0: 1212 | resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} 1213 | dependencies: 1214 | has: 1.0.3 1215 | dev: true 1216 | 1217 | /es-to-primitive/1.2.1: 1218 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 1219 | engines: {node: '>= 0.4'} 1220 | dependencies: 1221 | is-callable: 1.2.4 1222 | is-date-object: 1.0.5 1223 | is-symbol: 1.0.4 1224 | dev: true 1225 | 1226 | /esbuild-android-64/0.14.43: 1227 | resolution: {integrity: sha512-kqFXAS72K6cNrB6RiM7YJ5lNvmWRDSlpi7ZuRZ1hu1S3w0zlwcoCxWAyM23LQUyZSs1PbjHgdbbfYAN8IGh6xg==} 1228 | engines: {node: '>=12'} 1229 | cpu: [x64] 1230 | os: [android] 1231 | requiresBuild: true 1232 | optional: true 1233 | 1234 | /esbuild-android-arm64/0.13.15: 1235 | resolution: {integrity: sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==} 1236 | cpu: [arm64] 1237 | os: [android] 1238 | requiresBuild: true 1239 | dev: false 1240 | optional: true 1241 | 1242 | /esbuild-android-arm64/0.14.43: 1243 | resolution: {integrity: sha512-bKS2BBFh+7XZY9rpjiHGRNA7LvWYbZWP87pLehggTG7tTaCDvj8qQGOU/OZSjCSKDYbgY7Q+oDw8RlYQ2Jt2BA==} 1244 | engines: {node: '>=12'} 1245 | cpu: [arm64] 1246 | os: [android] 1247 | requiresBuild: true 1248 | optional: true 1249 | 1250 | /esbuild-darwin-64/0.13.15: 1251 | resolution: {integrity: sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==} 1252 | cpu: [x64] 1253 | os: [darwin] 1254 | requiresBuild: true 1255 | dev: false 1256 | optional: true 1257 | 1258 | /esbuild-darwin-64/0.14.43: 1259 | resolution: {integrity: sha512-/3PSilx011ttoieRGkSZ0XV8zjBf2C9enV4ScMMbCT4dpx0mFhMOpFnCHkOK0pWGB8LklykFyHrWk2z6DENVUg==} 1260 | engines: {node: '>=12'} 1261 | cpu: [x64] 1262 | os: [darwin] 1263 | requiresBuild: true 1264 | optional: true 1265 | 1266 | /esbuild-darwin-arm64/0.13.15: 1267 | resolution: {integrity: sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ==} 1268 | cpu: [arm64] 1269 | os: [darwin] 1270 | requiresBuild: true 1271 | dev: false 1272 | optional: true 1273 | 1274 | /esbuild-darwin-arm64/0.14.43: 1275 | resolution: {integrity: sha512-1HyFUKs8DMCBOvw1Qxpr5Vv/ThNcVIFb5xgXWK3pyT40WPvgYIiRTwJCvNs4l8i5qWF8/CK5bQxJVDjQvtv0Yw==} 1276 | engines: {node: '>=12'} 1277 | cpu: [arm64] 1278 | os: [darwin] 1279 | requiresBuild: true 1280 | optional: true 1281 | 1282 | /esbuild-freebsd-64/0.13.15: 1283 | resolution: {integrity: sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA==} 1284 | cpu: [x64] 1285 | os: [freebsd] 1286 | requiresBuild: true 1287 | dev: false 1288 | optional: true 1289 | 1290 | /esbuild-freebsd-64/0.14.43: 1291 | resolution: {integrity: sha512-FNWc05TPHYgaXjbPZO5/rJKSBslfG6BeMSs8GhwnqAKP56eEhvmzwnIz1QcC9cRVyO+IKqWNfmHFkCa1WJTULA==} 1292 | engines: {node: '>=12'} 1293 | cpu: [x64] 1294 | os: [freebsd] 1295 | requiresBuild: true 1296 | optional: true 1297 | 1298 | /esbuild-freebsd-arm64/0.13.15: 1299 | resolution: {integrity: sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ==} 1300 | cpu: [arm64] 1301 | os: [freebsd] 1302 | requiresBuild: true 1303 | dev: false 1304 | optional: true 1305 | 1306 | /esbuild-freebsd-arm64/0.14.43: 1307 | resolution: {integrity: sha512-amrYopclz3VohqisOPR6hA3GOWA3LZC1WDLnp21RhNmoERmJ/vLnOpnrG2P/Zao+/erKTCUqmrCIPVtj58DRoA==} 1308 | engines: {node: '>=12'} 1309 | cpu: [arm64] 1310 | os: [freebsd] 1311 | requiresBuild: true 1312 | optional: true 1313 | 1314 | /esbuild-linux-32/0.13.15: 1315 | resolution: {integrity: sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g==} 1316 | cpu: [ia32] 1317 | os: [linux] 1318 | requiresBuild: true 1319 | dev: false 1320 | optional: true 1321 | 1322 | /esbuild-linux-32/0.14.43: 1323 | resolution: {integrity: sha512-KoxoEra+9O3AKVvgDFvDkiuddCds6q71owSQEYwjtqRV7RwbPzKxJa6+uyzUulHcyGVq0g15K0oKG5CFBcvYDw==} 1324 | engines: {node: '>=12'} 1325 | cpu: [ia32] 1326 | os: [linux] 1327 | requiresBuild: true 1328 | optional: true 1329 | 1330 | /esbuild-linux-64/0.13.15: 1331 | resolution: {integrity: sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA==} 1332 | cpu: [x64] 1333 | os: [linux] 1334 | requiresBuild: true 1335 | dev: false 1336 | optional: true 1337 | 1338 | /esbuild-linux-64/0.14.43: 1339 | resolution: {integrity: sha512-EwINwGMyiJMgBby5/SbMqKcUhS5AYAZ2CpEBzSowsJPNBJEdhkCTtEjk757TN/wxgbu3QklqDM6KghY660QCUw==} 1340 | engines: {node: '>=12'} 1341 | cpu: [x64] 1342 | os: [linux] 1343 | requiresBuild: true 1344 | optional: true 1345 | 1346 | /esbuild-linux-arm/0.13.15: 1347 | resolution: {integrity: sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA==} 1348 | cpu: [arm] 1349 | os: [linux] 1350 | requiresBuild: true 1351 | dev: false 1352 | optional: true 1353 | 1354 | /esbuild-linux-arm/0.14.43: 1355 | resolution: {integrity: sha512-e6YzQUoDxxtyamuF12eVzzRC7bbEFSZohJ6igQB9tBqnNmIQY3fI6Cns3z2wxtbZ3f2o6idkD2fQnlvs2902Dg==} 1356 | engines: {node: '>=12'} 1357 | cpu: [arm] 1358 | os: [linux] 1359 | requiresBuild: true 1360 | optional: true 1361 | 1362 | /esbuild-linux-arm64/0.13.15: 1363 | resolution: {integrity: sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA==} 1364 | cpu: [arm64] 1365 | os: [linux] 1366 | requiresBuild: true 1367 | dev: false 1368 | optional: true 1369 | 1370 | /esbuild-linux-arm64/0.14.43: 1371 | resolution: {integrity: sha512-UlSpjMWllAc70zYbHxWuDS3FJytyuR/gHJYBr8BICcTNb/TSOYVBg6U7b3jZ3mILTrgzwJUHwhEwK18FZDouUQ==} 1372 | engines: {node: '>=12'} 1373 | cpu: [arm64] 1374 | os: [linux] 1375 | requiresBuild: true 1376 | optional: true 1377 | 1378 | /esbuild-linux-mips64le/0.13.15: 1379 | resolution: {integrity: sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg==} 1380 | cpu: [mips64el] 1381 | os: [linux] 1382 | requiresBuild: true 1383 | dev: false 1384 | optional: true 1385 | 1386 | /esbuild-linux-mips64le/0.14.43: 1387 | resolution: {integrity: sha512-f+v8cInPEL1/SDP//CfSYzcDNgE4CY3xgDV81DWm3KAPWzhvxARrKxB1Pstf5mB56yAslJDxu7ryBUPX207EZA==} 1388 | engines: {node: '>=12'} 1389 | cpu: [mips64el] 1390 | os: [linux] 1391 | requiresBuild: true 1392 | optional: true 1393 | 1394 | /esbuild-linux-ppc64le/0.13.15: 1395 | resolution: {integrity: sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ==} 1396 | cpu: [ppc64] 1397 | os: [linux] 1398 | requiresBuild: true 1399 | dev: false 1400 | optional: true 1401 | 1402 | /esbuild-linux-ppc64le/0.14.43: 1403 | resolution: {integrity: sha512-5wZYMDGAL/K2pqkdIsW+I4IR41kyfHr/QshJcNpUfK3RjB3VQcPWOaZmc+74rm4ZjVirYrtz+jWw0SgxtxRanA==} 1404 | engines: {node: '>=12'} 1405 | cpu: [ppc64] 1406 | os: [linux] 1407 | requiresBuild: true 1408 | optional: true 1409 | 1410 | /esbuild-linux-riscv64/0.14.43: 1411 | resolution: {integrity: sha512-lYcAOUxp85hC7lSjycJUVSmj4/9oEfSyXjb/ua9bNl8afonaduuqtw7hvKMoKuYnVwOCDw4RSfKpcnIRDWq+Bw==} 1412 | engines: {node: '>=12'} 1413 | cpu: [riscv64] 1414 | os: [linux] 1415 | requiresBuild: true 1416 | optional: true 1417 | 1418 | /esbuild-linux-s390x/0.14.43: 1419 | resolution: {integrity: sha512-27e43ZhHvhFE4nM7HqtUbMRu37I/4eNSUbb8FGZWszV+uLzMIsHDwLoBiJmw7G9N+hrehNPeQ4F5Ujad0DrUKQ==} 1420 | engines: {node: '>=12'} 1421 | cpu: [s390x] 1422 | os: [linux] 1423 | requiresBuild: true 1424 | optional: true 1425 | 1426 | /esbuild-netbsd-64/0.13.15: 1427 | resolution: {integrity: sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==} 1428 | cpu: [x64] 1429 | os: [netbsd] 1430 | requiresBuild: true 1431 | dev: false 1432 | optional: true 1433 | 1434 | /esbuild-netbsd-64/0.14.43: 1435 | resolution: {integrity: sha512-2mH4QF6hHBn5zzAfxEI/2eBC0mspVsZ6UVo821LpAJKMvLJPBk3XJO5xwg7paDqSqpl7p6IRrAenW999AEfJhQ==} 1436 | engines: {node: '>=12'} 1437 | cpu: [x64] 1438 | os: [netbsd] 1439 | requiresBuild: true 1440 | optional: true 1441 | 1442 | /esbuild-openbsd-64/0.13.15: 1443 | resolution: {integrity: sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g==} 1444 | cpu: [x64] 1445 | os: [openbsd] 1446 | requiresBuild: true 1447 | dev: false 1448 | optional: true 1449 | 1450 | /esbuild-openbsd-64/0.14.43: 1451 | resolution: {integrity: sha512-ZhQpiZjvqCqO8jKdGp9+8k9E/EHSA+zIWOg+grwZasI9RoblqJ1QiZqqi7jfd6ZrrG1UFBNGe4m0NFxCFbMVbg==} 1452 | engines: {node: '>=12'} 1453 | cpu: [x64] 1454 | os: [openbsd] 1455 | requiresBuild: true 1456 | optional: true 1457 | 1458 | /esbuild-sunos-64/0.13.15: 1459 | resolution: {integrity: sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw==} 1460 | cpu: [x64] 1461 | os: [sunos] 1462 | requiresBuild: true 1463 | dev: false 1464 | optional: true 1465 | 1466 | /esbuild-sunos-64/0.14.43: 1467 | resolution: {integrity: sha512-DgxSi9DaHReL9gYuul2rrQCAapgnCJkh3LSHPKsY26zytYppG0HgkgVF80zjIlvEsUbGBP/GHQzBtrezj/Zq1Q==} 1468 | engines: {node: '>=12'} 1469 | cpu: [x64] 1470 | os: [sunos] 1471 | requiresBuild: true 1472 | optional: true 1473 | 1474 | /esbuild-windows-32/0.13.15: 1475 | resolution: {integrity: sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw==} 1476 | cpu: [ia32] 1477 | os: [win32] 1478 | requiresBuild: true 1479 | dev: false 1480 | optional: true 1481 | 1482 | /esbuild-windows-32/0.14.43: 1483 | resolution: {integrity: sha512-Ih3+2O5oExiqm0mY6YYE5dR0o8+AspccQ3vIAtRodwFvhuyGLjb0Hbmzun/F3Lw19nuhPMu3sW2fqIJ5xBxByw==} 1484 | engines: {node: '>=12'} 1485 | cpu: [ia32] 1486 | os: [win32] 1487 | requiresBuild: true 1488 | optional: true 1489 | 1490 | /esbuild-windows-64/0.13.15: 1491 | resolution: {integrity: sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ==} 1492 | cpu: [x64] 1493 | os: [win32] 1494 | requiresBuild: true 1495 | dev: false 1496 | optional: true 1497 | 1498 | /esbuild-windows-64/0.14.43: 1499 | resolution: {integrity: sha512-8NsuNfI8xwFuJbrCuI+aBqNTYkrWErejFO5aYM+yHqyHuL8mmepLS9EPzAzk8rvfaJrhN0+RvKWAcymViHOKEw==} 1500 | engines: {node: '>=12'} 1501 | cpu: [x64] 1502 | os: [win32] 1503 | requiresBuild: true 1504 | optional: true 1505 | 1506 | /esbuild-windows-arm64/0.13.15: 1507 | resolution: {integrity: sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA==} 1508 | cpu: [arm64] 1509 | os: [win32] 1510 | requiresBuild: true 1511 | dev: false 1512 | optional: true 1513 | 1514 | /esbuild-windows-arm64/0.14.43: 1515 | resolution: {integrity: sha512-7ZlD7bo++kVRblJEoG+cepljkfP8bfuTPz5fIXzptwnPaFwGS6ahvfoYzY7WCf5v/1nX2X02HDraVItTgbHnKw==} 1516 | engines: {node: '>=12'} 1517 | cpu: [arm64] 1518 | os: [win32] 1519 | requiresBuild: true 1520 | optional: true 1521 | 1522 | /esbuild/0.13.15: 1523 | resolution: {integrity: sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==} 1524 | hasBin: true 1525 | requiresBuild: true 1526 | optionalDependencies: 1527 | esbuild-android-arm64: 0.13.15 1528 | esbuild-darwin-64: 0.13.15 1529 | esbuild-darwin-arm64: 0.13.15 1530 | esbuild-freebsd-64: 0.13.15 1531 | esbuild-freebsd-arm64: 0.13.15 1532 | esbuild-linux-32: 0.13.15 1533 | esbuild-linux-64: 0.13.15 1534 | esbuild-linux-arm: 0.13.15 1535 | esbuild-linux-arm64: 0.13.15 1536 | esbuild-linux-mips64le: 0.13.15 1537 | esbuild-linux-ppc64le: 0.13.15 1538 | esbuild-netbsd-64: 0.13.15 1539 | esbuild-openbsd-64: 0.13.15 1540 | esbuild-sunos-64: 0.13.15 1541 | esbuild-windows-32: 0.13.15 1542 | esbuild-windows-64: 0.13.15 1543 | esbuild-windows-arm64: 0.13.15 1544 | dev: false 1545 | 1546 | /esbuild/0.14.43: 1547 | resolution: {integrity: sha512-Uf94+kQmy/5jsFwKWiQB4hfo/RkM9Dh7b79p8yqd1tshULdr25G2szLz631NoH3s2ujnKEKVD16RmOxvCNKRFA==} 1548 | engines: {node: '>=12'} 1549 | hasBin: true 1550 | requiresBuild: true 1551 | optionalDependencies: 1552 | esbuild-android-64: 0.14.43 1553 | esbuild-android-arm64: 0.14.43 1554 | esbuild-darwin-64: 0.14.43 1555 | esbuild-darwin-arm64: 0.14.43 1556 | esbuild-freebsd-64: 0.14.43 1557 | esbuild-freebsd-arm64: 0.14.43 1558 | esbuild-linux-32: 0.14.43 1559 | esbuild-linux-64: 0.14.43 1560 | esbuild-linux-arm: 0.14.43 1561 | esbuild-linux-arm64: 0.14.43 1562 | esbuild-linux-mips64le: 0.14.43 1563 | esbuild-linux-ppc64le: 0.14.43 1564 | esbuild-linux-riscv64: 0.14.43 1565 | esbuild-linux-s390x: 0.14.43 1566 | esbuild-netbsd-64: 0.14.43 1567 | esbuild-openbsd-64: 0.14.43 1568 | esbuild-sunos-64: 0.14.43 1569 | esbuild-windows-32: 0.14.43 1570 | esbuild-windows-64: 0.14.43 1571 | esbuild-windows-arm64: 0.14.43 1572 | 1573 | /escalade/3.1.1: 1574 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 1575 | engines: {node: '>=6'} 1576 | dev: false 1577 | 1578 | /escape-string-regexp/1.0.5: 1579 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 1580 | engines: {node: '>=0.8.0'} 1581 | 1582 | /escape-string-regexp/4.0.0: 1583 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1584 | engines: {node: '>=10'} 1585 | dev: true 1586 | 1587 | /escape-string-regexp/5.0.0: 1588 | resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} 1589 | engines: {node: '>=12'} 1590 | dev: true 1591 | 1592 | /eslint-import-resolver-node/0.3.6: 1593 | resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==} 1594 | dependencies: 1595 | debug: 3.2.7 1596 | resolve: 1.22.0 1597 | transitivePeerDependencies: 1598 | - supports-color 1599 | dev: true 1600 | 1601 | /eslint-module-utils/2.7.3_5uhabtgzo3akfzi73a5jap3i6a: 1602 | resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==} 1603 | engines: {node: '>=4'} 1604 | peerDependencies: 1605 | '@typescript-eslint/parser': '*' 1606 | eslint-import-resolver-node: '*' 1607 | eslint-import-resolver-typescript: '*' 1608 | eslint-import-resolver-webpack: '*' 1609 | peerDependenciesMeta: 1610 | '@typescript-eslint/parser': 1611 | optional: true 1612 | eslint-import-resolver-node: 1613 | optional: true 1614 | eslint-import-resolver-typescript: 1615 | optional: true 1616 | eslint-import-resolver-webpack: 1617 | optional: true 1618 | dependencies: 1619 | '@typescript-eslint/parser': 5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4 1620 | debug: 3.2.7 1621 | eslint-import-resolver-node: 0.3.6 1622 | find-up: 2.1.0 1623 | transitivePeerDependencies: 1624 | - supports-color 1625 | dev: true 1626 | 1627 | /eslint-plugin-es/4.1.0_eslint@8.17.0: 1628 | resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} 1629 | engines: {node: '>=8.10.0'} 1630 | peerDependencies: 1631 | eslint: '>=4.19.1' 1632 | dependencies: 1633 | eslint: 8.17.0 1634 | eslint-utils: 2.1.0 1635 | regexpp: 3.2.0 1636 | dev: true 1637 | 1638 | /eslint-plugin-eslint-comments/3.2.0_eslint@8.17.0: 1639 | resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} 1640 | engines: {node: '>=6.5.0'} 1641 | peerDependencies: 1642 | eslint: '>=4.19.1' 1643 | dependencies: 1644 | escape-string-regexp: 1.0.5 1645 | eslint: 8.17.0 1646 | ignore: 5.2.0 1647 | dev: true 1648 | 1649 | /eslint-plugin-html/6.2.0: 1650 | resolution: {integrity: sha512-vi3NW0E8AJombTvt8beMwkL1R/fdRWl4QSNRNMhVQKWm36/X0KF0unGNAY4mqUF06mnwVWZcIcerrCnfn9025g==} 1651 | dependencies: 1652 | htmlparser2: 7.2.0 1653 | dev: true 1654 | 1655 | /eslint-plugin-import/2.26.0_pv5w3e62ssxduf5aiwxbc3knra: 1656 | resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} 1657 | engines: {node: '>=4'} 1658 | peerDependencies: 1659 | '@typescript-eslint/parser': '*' 1660 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 1661 | peerDependenciesMeta: 1662 | '@typescript-eslint/parser': 1663 | optional: true 1664 | dependencies: 1665 | '@typescript-eslint/parser': 5.27.1_ud6rd4xtew5bv4yhvkvu24pzm4 1666 | array-includes: 3.1.5 1667 | array.prototype.flat: 1.3.0 1668 | debug: 2.6.9 1669 | doctrine: 2.1.0 1670 | eslint: 8.17.0 1671 | eslint-import-resolver-node: 0.3.6 1672 | eslint-module-utils: 2.7.3_5uhabtgzo3akfzi73a5jap3i6a 1673 | has: 1.0.3 1674 | is-core-module: 2.9.0 1675 | is-glob: 4.0.3 1676 | minimatch: 3.1.2 1677 | object.values: 1.1.5 1678 | resolve: 1.22.0 1679 | tsconfig-paths: 3.14.1 1680 | transitivePeerDependencies: 1681 | - eslint-import-resolver-typescript 1682 | - eslint-import-resolver-webpack 1683 | - supports-color 1684 | dev: true 1685 | 1686 | /eslint-plugin-jsonc/2.3.0_eslint@8.17.0: 1687 | resolution: {integrity: sha512-QqHj7Chw8vsALsCOhFxecRIepxpbcpmMon9yA1+GaYk1Am0GanHAwnTkeVX+/ysAb4QTkeGMZ+ZPK4TKrZ/VSw==} 1688 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1689 | peerDependencies: 1690 | eslint: '>=6.0.0' 1691 | dependencies: 1692 | eslint: 8.17.0 1693 | eslint-utils: 3.0.0_eslint@8.17.0 1694 | jsonc-eslint-parser: 2.1.0 1695 | natural-compare: 1.4.0 1696 | dev: true 1697 | 1698 | /eslint-plugin-markdown/2.2.1_eslint@8.17.0: 1699 | resolution: {integrity: sha512-FgWp4iyYvTFxPwfbxofTvXxgzPsDuSKHQy2S+a8Ve6savbujey+lgrFFbXQA0HPygISpRYWYBjooPzhYSF81iA==} 1700 | engines: {node: ^8.10.0 || ^10.12.0 || >= 12.0.0} 1701 | peerDependencies: 1702 | eslint: '>=6.0.0' 1703 | dependencies: 1704 | eslint: 8.17.0 1705 | mdast-util-from-markdown: 0.8.5 1706 | transitivePeerDependencies: 1707 | - supports-color 1708 | dev: true 1709 | 1710 | /eslint-plugin-n/15.2.2_eslint@8.17.0: 1711 | resolution: {integrity: sha512-MLjZVAv4TiCIoXqjibNqCJjLkGHfrOY3XZ0ZBLoW0OnS3o98PUBnzB/kfp8dCz/4A4Y18jjX50PRnqI4ACFY1Q==} 1712 | engines: {node: '>=12.22.0'} 1713 | peerDependencies: 1714 | eslint: '>=7.0.0' 1715 | dependencies: 1716 | builtins: 5.0.1 1717 | eslint: 8.17.0 1718 | eslint-plugin-es: 4.1.0_eslint@8.17.0 1719 | eslint-utils: 3.0.0_eslint@8.17.0 1720 | ignore: 5.2.0 1721 | is-core-module: 2.9.0 1722 | minimatch: 3.1.2 1723 | resolve: 1.22.0 1724 | semver: 7.3.7 1725 | dev: true 1726 | 1727 | /eslint-plugin-promise/6.0.0_eslint@8.17.0: 1728 | resolution: {integrity: sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==} 1729 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1730 | peerDependencies: 1731 | eslint: ^7.0.0 || ^8.0.0 1732 | dependencies: 1733 | eslint: 8.17.0 1734 | dev: true 1735 | 1736 | /eslint-plugin-react/7.30.0_eslint@8.17.0: 1737 | resolution: {integrity: sha512-RgwH7hjW48BleKsYyHK5vUAvxtE9SMPDKmcPRQgtRCYaZA0XQPt5FSkrU3nhz5ifzMZcA8opwmRJ2cmOO8tr5A==} 1738 | engines: {node: '>=4'} 1739 | peerDependencies: 1740 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 1741 | dependencies: 1742 | array-includes: 3.1.5 1743 | array.prototype.flatmap: 1.3.0 1744 | doctrine: 2.1.0 1745 | eslint: 8.17.0 1746 | estraverse: 5.3.0 1747 | jsx-ast-utils: 3.3.0 1748 | minimatch: 3.1.2 1749 | object.entries: 1.1.5 1750 | object.fromentries: 2.0.5 1751 | object.hasown: 1.1.1 1752 | object.values: 1.1.5 1753 | prop-types: 15.8.1 1754 | resolve: 2.0.0-next.3 1755 | semver: 6.3.0 1756 | string.prototype.matchall: 4.0.7 1757 | dev: true 1758 | 1759 | /eslint-plugin-unicorn/42.0.0_eslint@8.17.0: 1760 | resolution: {integrity: sha512-ixBsbhgWuxVaNlPTT8AyfJMlhyC5flCJFjyK3oKE8TRrwBnaHvUbuIkCM1lqg8ryYrFStL/T557zfKzX4GKSlg==} 1761 | engines: {node: '>=12'} 1762 | peerDependencies: 1763 | eslint: '>=8.8.0' 1764 | dependencies: 1765 | '@babel/helper-validator-identifier': 7.16.7 1766 | ci-info: 3.3.1 1767 | clean-regexp: 1.0.0 1768 | eslint: 8.17.0 1769 | eslint-utils: 3.0.0_eslint@8.17.0 1770 | esquery: 1.4.0 1771 | indent-string: 4.0.0 1772 | is-builtin-module: 3.1.0 1773 | lodash: 4.17.21 1774 | pluralize: 8.0.0 1775 | read-pkg-up: 7.0.1 1776 | regexp-tree: 0.1.24 1777 | safe-regex: 2.1.1 1778 | semver: 7.3.7 1779 | strip-indent: 3.0.0 1780 | dev: true 1781 | 1782 | /eslint-plugin-vue/8.7.1_eslint@8.17.0: 1783 | resolution: {integrity: sha512-28sbtm4l4cOzoO1LtzQPxfxhQABararUb1JtqusQqObJpWX2e/gmVyeYVfepizPFne0Q5cILkYGiBoV36L12Wg==} 1784 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1785 | peerDependencies: 1786 | eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 1787 | dependencies: 1788 | eslint: 8.17.0 1789 | eslint-utils: 3.0.0_eslint@8.17.0 1790 | natural-compare: 1.4.0 1791 | nth-check: 2.1.1 1792 | postcss-selector-parser: 6.0.10 1793 | semver: 7.3.7 1794 | vue-eslint-parser: 8.3.0_eslint@8.17.0 1795 | transitivePeerDependencies: 1796 | - supports-color 1797 | dev: true 1798 | 1799 | /eslint-plugin-yml/0.14.0_eslint@8.17.0: 1800 | resolution: {integrity: sha512-+0+bBV/07txENbxfrHF9olGoLCHez64vmnOmjWOoLwmXOwfdaSRleBSPIi4nWQs7WwX8lm/fSLadOjbVEcsXQQ==} 1801 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1802 | peerDependencies: 1803 | eslint: '>=6.0.0' 1804 | dependencies: 1805 | debug: 4.3.4 1806 | eslint: 8.17.0 1807 | lodash: 4.17.21 1808 | natural-compare: 1.4.0 1809 | yaml-eslint-parser: 0.5.0 1810 | transitivePeerDependencies: 1811 | - supports-color 1812 | dev: true 1813 | 1814 | /eslint-scope/5.1.1: 1815 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} 1816 | engines: {node: '>=8.0.0'} 1817 | dependencies: 1818 | esrecurse: 4.3.0 1819 | estraverse: 4.3.0 1820 | dev: true 1821 | 1822 | /eslint-scope/7.1.1: 1823 | resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} 1824 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1825 | dependencies: 1826 | esrecurse: 4.3.0 1827 | estraverse: 5.3.0 1828 | dev: true 1829 | 1830 | /eslint-utils/2.1.0: 1831 | resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} 1832 | engines: {node: '>=6'} 1833 | dependencies: 1834 | eslint-visitor-keys: 1.3.0 1835 | dev: true 1836 | 1837 | /eslint-utils/3.0.0_eslint@8.17.0: 1838 | resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} 1839 | engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} 1840 | peerDependencies: 1841 | eslint: '>=5' 1842 | dependencies: 1843 | eslint: 8.17.0 1844 | eslint-visitor-keys: 2.1.0 1845 | dev: true 1846 | 1847 | /eslint-visitor-keys/1.3.0: 1848 | resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} 1849 | engines: {node: '>=4'} 1850 | dev: true 1851 | 1852 | /eslint-visitor-keys/2.1.0: 1853 | resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} 1854 | engines: {node: '>=10'} 1855 | dev: true 1856 | 1857 | /eslint-visitor-keys/3.3.0: 1858 | resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} 1859 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1860 | dev: true 1861 | 1862 | /eslint/8.17.0: 1863 | resolution: {integrity: sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==} 1864 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1865 | hasBin: true 1866 | dependencies: 1867 | '@eslint/eslintrc': 1.3.0 1868 | '@humanwhocodes/config-array': 0.9.5 1869 | ajv: 6.12.6 1870 | chalk: 4.1.2 1871 | cross-spawn: 7.0.3 1872 | debug: 4.3.4 1873 | doctrine: 3.0.0 1874 | escape-string-regexp: 4.0.0 1875 | eslint-scope: 7.1.1 1876 | eslint-utils: 3.0.0_eslint@8.17.0 1877 | eslint-visitor-keys: 3.3.0 1878 | espree: 9.3.2 1879 | esquery: 1.4.0 1880 | esutils: 2.0.3 1881 | fast-deep-equal: 3.1.3 1882 | file-entry-cache: 6.0.1 1883 | functional-red-black-tree: 1.0.1 1884 | glob-parent: 6.0.2 1885 | globals: 13.15.0 1886 | ignore: 5.2.0 1887 | import-fresh: 3.3.0 1888 | imurmurhash: 0.1.4 1889 | is-glob: 4.0.3 1890 | js-yaml: 4.1.0 1891 | json-stable-stringify-without-jsonify: 1.0.1 1892 | levn: 0.4.1 1893 | lodash.merge: 4.6.2 1894 | minimatch: 3.1.2 1895 | natural-compare: 1.4.0 1896 | optionator: 0.9.1 1897 | regexpp: 3.2.0 1898 | strip-ansi: 6.0.1 1899 | strip-json-comments: 3.1.1 1900 | text-table: 0.2.0 1901 | v8-compile-cache: 2.3.0 1902 | transitivePeerDependencies: 1903 | - supports-color 1904 | dev: true 1905 | 1906 | /espree/9.3.2: 1907 | resolution: {integrity: sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==} 1908 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1909 | dependencies: 1910 | acorn: 8.7.1 1911 | acorn-jsx: 5.3.2_acorn@8.7.1 1912 | eslint-visitor-keys: 3.3.0 1913 | dev: true 1914 | 1915 | /esquery/1.4.0: 1916 | resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} 1917 | engines: {node: '>=0.10'} 1918 | dependencies: 1919 | estraverse: 5.3.0 1920 | dev: true 1921 | 1922 | /esrecurse/4.3.0: 1923 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1924 | engines: {node: '>=4.0'} 1925 | dependencies: 1926 | estraverse: 5.3.0 1927 | dev: true 1928 | 1929 | /estraverse/4.3.0: 1930 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} 1931 | engines: {node: '>=4.0'} 1932 | dev: true 1933 | 1934 | /estraverse/5.3.0: 1935 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1936 | engines: {node: '>=4.0'} 1937 | dev: true 1938 | 1939 | /estree-walker/1.0.1: 1940 | resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} 1941 | dev: false 1942 | 1943 | /estree-walker/2.0.2: 1944 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 1945 | 1946 | /esutils/2.0.3: 1947 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1948 | engines: {node: '>=0.10.0'} 1949 | dev: true 1950 | 1951 | /execa/6.1.0: 1952 | resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} 1953 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1954 | dependencies: 1955 | cross-spawn: 7.0.3 1956 | get-stream: 6.0.1 1957 | human-signals: 3.0.1 1958 | is-stream: 3.0.0 1959 | merge-stream: 2.0.0 1960 | npm-run-path: 5.1.0 1961 | onetime: 6.0.0 1962 | signal-exit: 3.0.7 1963 | strip-final-newline: 3.0.0 1964 | dev: true 1965 | 1966 | /fast-deep-equal/3.1.3: 1967 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1968 | dev: true 1969 | 1970 | /fast-glob/3.2.11: 1971 | resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} 1972 | engines: {node: '>=8.6.0'} 1973 | dependencies: 1974 | '@nodelib/fs.stat': 2.0.5 1975 | '@nodelib/fs.walk': 1.2.8 1976 | glob-parent: 5.1.2 1977 | merge2: 1.4.1 1978 | micromatch: 4.0.5 1979 | 1980 | /fast-json-stable-stringify/2.1.0: 1981 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1982 | dev: true 1983 | 1984 | /fast-levenshtein/2.0.6: 1985 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1986 | dev: true 1987 | 1988 | /fastq/1.13.0: 1989 | resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} 1990 | dependencies: 1991 | reusify: 1.0.4 1992 | 1993 | /file-entry-cache/6.0.1: 1994 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1995 | engines: {node: ^10.12.0 || >=12.0.0} 1996 | dependencies: 1997 | flat-cache: 3.0.4 1998 | dev: true 1999 | 2000 | /fill-range/7.0.1: 2001 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 2002 | engines: {node: '>=8'} 2003 | dependencies: 2004 | to-regex-range: 5.0.1 2005 | 2006 | /find-up/2.1.0: 2007 | resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} 2008 | engines: {node: '>=4'} 2009 | dependencies: 2010 | locate-path: 2.0.0 2011 | dev: true 2012 | 2013 | /find-up/4.1.0: 2014 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 2015 | engines: {node: '>=8'} 2016 | dependencies: 2017 | locate-path: 5.0.0 2018 | path-exists: 4.0.0 2019 | dev: true 2020 | 2021 | /flat-cache/3.0.4: 2022 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} 2023 | engines: {node: ^10.12.0 || >=12.0.0} 2024 | dependencies: 2025 | flatted: 3.2.5 2026 | rimraf: 3.0.2 2027 | dev: true 2028 | 2029 | /flatted/3.2.5: 2030 | resolution: {integrity: sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==} 2031 | dev: true 2032 | 2033 | /fs-extra/10.1.0: 2034 | resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} 2035 | engines: {node: '>=12'} 2036 | dependencies: 2037 | graceful-fs: 4.2.10 2038 | jsonfile: 6.1.0 2039 | universalify: 2.0.0 2040 | dev: false 2041 | 2042 | /fs.realpath/1.0.0: 2043 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 2044 | 2045 | /fsevents/2.3.2: 2046 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 2047 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 2048 | os: [darwin] 2049 | requiresBuild: true 2050 | optional: true 2051 | 2052 | /function-bind/1.1.1: 2053 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 2054 | 2055 | /function.prototype.name/1.1.5: 2056 | resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} 2057 | engines: {node: '>= 0.4'} 2058 | dependencies: 2059 | call-bind: 1.0.2 2060 | define-properties: 1.1.4 2061 | es-abstract: 1.20.1 2062 | functions-have-names: 1.2.3 2063 | dev: true 2064 | 2065 | /functional-red-black-tree/1.0.1: 2066 | resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} 2067 | dev: true 2068 | 2069 | /functions-have-names/1.2.3: 2070 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 2071 | dev: true 2072 | 2073 | /gensync/1.0.0-beta.2: 2074 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 2075 | engines: {node: '>=6.9.0'} 2076 | dev: false 2077 | 2078 | /get-func-name/2.0.0: 2079 | resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} 2080 | dev: true 2081 | 2082 | /get-intrinsic/1.1.2: 2083 | resolution: {integrity: sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==} 2084 | dependencies: 2085 | function-bind: 1.1.1 2086 | has: 1.0.3 2087 | has-symbols: 1.0.3 2088 | dev: true 2089 | 2090 | /get-stream/6.0.1: 2091 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 2092 | engines: {node: '>=10'} 2093 | dev: true 2094 | 2095 | /get-symbol-description/1.0.0: 2096 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} 2097 | engines: {node: '>= 0.4'} 2098 | dependencies: 2099 | call-bind: 1.0.2 2100 | get-intrinsic: 1.1.2 2101 | dev: true 2102 | 2103 | /glob-parent/5.1.2: 2104 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 2105 | engines: {node: '>= 6'} 2106 | dependencies: 2107 | is-glob: 4.0.3 2108 | 2109 | /glob-parent/6.0.2: 2110 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 2111 | engines: {node: '>=10.13.0'} 2112 | dependencies: 2113 | is-glob: 4.0.3 2114 | dev: true 2115 | 2116 | /glob/7.2.3: 2117 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 2118 | dependencies: 2119 | fs.realpath: 1.0.0 2120 | inflight: 1.0.6 2121 | inherits: 2.0.4 2122 | minimatch: 3.1.2 2123 | once: 1.4.0 2124 | path-is-absolute: 1.0.1 2125 | 2126 | /globals/11.12.0: 2127 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 2128 | engines: {node: '>=4'} 2129 | dev: false 2130 | 2131 | /globals/13.15.0: 2132 | resolution: {integrity: sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==} 2133 | engines: {node: '>=8'} 2134 | dependencies: 2135 | type-fest: 0.20.2 2136 | dev: true 2137 | 2138 | /globby/11.1.0: 2139 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 2140 | engines: {node: '>=10'} 2141 | dependencies: 2142 | array-union: 2.1.0 2143 | dir-glob: 3.0.1 2144 | fast-glob: 3.2.11 2145 | ignore: 5.2.0 2146 | merge2: 1.4.1 2147 | slash: 3.0.0 2148 | 2149 | /graceful-fs/4.2.10: 2150 | resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} 2151 | dev: false 2152 | 2153 | /has-bigints/1.0.2: 2154 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} 2155 | dev: true 2156 | 2157 | /has-flag/3.0.0: 2158 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 2159 | engines: {node: '>=4'} 2160 | 2161 | /has-flag/4.0.0: 2162 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 2163 | engines: {node: '>=8'} 2164 | dev: true 2165 | 2166 | /has-property-descriptors/1.0.0: 2167 | resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} 2168 | dependencies: 2169 | get-intrinsic: 1.1.2 2170 | dev: true 2171 | 2172 | /has-symbols/1.0.3: 2173 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 2174 | engines: {node: '>= 0.4'} 2175 | dev: true 2176 | 2177 | /has-tostringtag/1.0.0: 2178 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} 2179 | engines: {node: '>= 0.4'} 2180 | dependencies: 2181 | has-symbols: 1.0.3 2182 | dev: true 2183 | 2184 | /has/1.0.3: 2185 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 2186 | engines: {node: '>= 0.4.0'} 2187 | dependencies: 2188 | function-bind: 1.1.1 2189 | 2190 | /hookable/5.1.1: 2191 | resolution: {integrity: sha512-7qam9XBFb+DijNBthaL1k/7lHU2TEMZkWSyuqmU3sCQze1wFm5w9AlEx30PD7a+QVAjOy6Ec2goFwe1YVyk2uA==} 2192 | dev: false 2193 | 2194 | /hosted-git-info/2.8.9: 2195 | resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} 2196 | dev: true 2197 | 2198 | /htmlparser2/7.2.0: 2199 | resolution: {integrity: sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==} 2200 | dependencies: 2201 | domelementtype: 2.3.0 2202 | domhandler: 4.3.1 2203 | domutils: 2.8.0 2204 | entities: 3.0.1 2205 | dev: true 2206 | 2207 | /human-signals/3.0.1: 2208 | resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} 2209 | engines: {node: '>=12.20.0'} 2210 | dev: true 2211 | 2212 | /husky/8.0.1: 2213 | resolution: {integrity: sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==} 2214 | engines: {node: '>=14'} 2215 | hasBin: true 2216 | dev: true 2217 | 2218 | /ignore/5.2.0: 2219 | resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} 2220 | engines: {node: '>= 4'} 2221 | 2222 | /import-fresh/3.3.0: 2223 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 2224 | engines: {node: '>=6'} 2225 | dependencies: 2226 | parent-module: 1.0.1 2227 | resolve-from: 4.0.0 2228 | dev: true 2229 | 2230 | /imurmurhash/0.1.4: 2231 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 2232 | engines: {node: '>=0.8.19'} 2233 | dev: true 2234 | 2235 | /indent-string/4.0.0: 2236 | resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} 2237 | engines: {node: '>=8'} 2238 | dev: true 2239 | 2240 | /inflight/1.0.6: 2241 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 2242 | dependencies: 2243 | once: 1.4.0 2244 | wrappy: 1.0.2 2245 | 2246 | /inherits/2.0.4: 2247 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 2248 | 2249 | /internal-slot/1.0.3: 2250 | resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} 2251 | engines: {node: '>= 0.4'} 2252 | dependencies: 2253 | get-intrinsic: 1.1.2 2254 | has: 1.0.3 2255 | side-channel: 1.0.4 2256 | dev: true 2257 | 2258 | /is-alphabetical/1.0.4: 2259 | resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} 2260 | dev: true 2261 | 2262 | /is-alphanumerical/1.0.4: 2263 | resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} 2264 | dependencies: 2265 | is-alphabetical: 1.0.4 2266 | is-decimal: 1.0.4 2267 | dev: true 2268 | 2269 | /is-arrayish/0.2.1: 2270 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} 2271 | dev: true 2272 | 2273 | /is-bigint/1.0.4: 2274 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 2275 | dependencies: 2276 | has-bigints: 1.0.2 2277 | dev: true 2278 | 2279 | /is-binary-path/2.1.0: 2280 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 2281 | engines: {node: '>=8'} 2282 | dependencies: 2283 | binary-extensions: 2.2.0 2284 | dev: true 2285 | 2286 | /is-boolean-object/1.1.2: 2287 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 2288 | engines: {node: '>= 0.4'} 2289 | dependencies: 2290 | call-bind: 1.0.2 2291 | has-tostringtag: 1.0.0 2292 | dev: true 2293 | 2294 | /is-builtin-module/3.1.0: 2295 | resolution: {integrity: sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==} 2296 | engines: {node: '>=6'} 2297 | dependencies: 2298 | builtin-modules: 3.3.0 2299 | 2300 | /is-callable/1.2.4: 2301 | resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==} 2302 | engines: {node: '>= 0.4'} 2303 | dev: true 2304 | 2305 | /is-core-module/2.9.0: 2306 | resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==} 2307 | dependencies: 2308 | has: 1.0.3 2309 | 2310 | /is-date-object/1.0.5: 2311 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 2312 | engines: {node: '>= 0.4'} 2313 | dependencies: 2314 | has-tostringtag: 1.0.0 2315 | dev: true 2316 | 2317 | /is-decimal/1.0.4: 2318 | resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} 2319 | dev: true 2320 | 2321 | /is-extglob/2.1.1: 2322 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 2323 | engines: {node: '>=0.10.0'} 2324 | 2325 | /is-fullwidth-code-point/3.0.0: 2326 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 2327 | engines: {node: '>=8'} 2328 | dev: true 2329 | 2330 | /is-fullwidth-code-point/4.0.0: 2331 | resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} 2332 | engines: {node: '>=12'} 2333 | dev: true 2334 | 2335 | /is-glob/4.0.3: 2336 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 2337 | engines: {node: '>=0.10.0'} 2338 | dependencies: 2339 | is-extglob: 2.1.1 2340 | 2341 | /is-hexadecimal/1.0.4: 2342 | resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} 2343 | dev: true 2344 | 2345 | /is-module/1.0.0: 2346 | resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} 2347 | dev: false 2348 | 2349 | /is-negative-zero/2.0.2: 2350 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} 2351 | engines: {node: '>= 0.4'} 2352 | dev: true 2353 | 2354 | /is-number-object/1.0.7: 2355 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} 2356 | engines: {node: '>= 0.4'} 2357 | dependencies: 2358 | has-tostringtag: 1.0.0 2359 | dev: true 2360 | 2361 | /is-number/7.0.0: 2362 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 2363 | engines: {node: '>=0.12.0'} 2364 | 2365 | /is-reference/1.2.1: 2366 | resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} 2367 | dependencies: 2368 | '@types/estree': 0.0.51 2369 | dev: false 2370 | 2371 | /is-regex/1.1.4: 2372 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 2373 | engines: {node: '>= 0.4'} 2374 | dependencies: 2375 | call-bind: 1.0.2 2376 | has-tostringtag: 1.0.0 2377 | dev: true 2378 | 2379 | /is-shared-array-buffer/1.0.2: 2380 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} 2381 | dependencies: 2382 | call-bind: 1.0.2 2383 | dev: true 2384 | 2385 | /is-stream/3.0.0: 2386 | resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} 2387 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2388 | dev: true 2389 | 2390 | /is-string/1.0.7: 2391 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 2392 | engines: {node: '>= 0.4'} 2393 | dependencies: 2394 | has-tostringtag: 1.0.0 2395 | dev: true 2396 | 2397 | /is-symbol/1.0.4: 2398 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 2399 | engines: {node: '>= 0.4'} 2400 | dependencies: 2401 | has-symbols: 1.0.3 2402 | dev: true 2403 | 2404 | /is-weakref/1.0.2: 2405 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 2406 | dependencies: 2407 | call-bind: 1.0.2 2408 | dev: true 2409 | 2410 | /isexe/2.0.0: 2411 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 2412 | dev: true 2413 | 2414 | /jiti/1.13.0: 2415 | resolution: {integrity: sha512-/n9mNxZj/HDSrincJ6RP+L+yXbpnB8FybySBa+IjIaoH9FIxBbrbRT5XUbe8R7zuVM2AQqNMNDDqz0bzx3znOQ==} 2416 | hasBin: true 2417 | dev: false 2418 | 2419 | /joycon/3.1.1: 2420 | resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 2421 | engines: {node: '>=10'} 2422 | dev: false 2423 | 2424 | /js-tokens/4.0.0: 2425 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 2426 | 2427 | /js-yaml/4.1.0: 2428 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 2429 | hasBin: true 2430 | dependencies: 2431 | argparse: 2.0.1 2432 | dev: true 2433 | 2434 | /jsesc/2.5.2: 2435 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} 2436 | engines: {node: '>=4'} 2437 | hasBin: true 2438 | dev: false 2439 | 2440 | /json-parse-even-better-errors/2.3.1: 2441 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 2442 | dev: true 2443 | 2444 | /json-schema-traverse/0.4.1: 2445 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 2446 | dev: true 2447 | 2448 | /json-stable-stringify-without-jsonify/1.0.1: 2449 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 2450 | dev: true 2451 | 2452 | /json5/1.0.1: 2453 | resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==} 2454 | hasBin: true 2455 | dependencies: 2456 | minimist: 1.2.6 2457 | dev: true 2458 | 2459 | /json5/2.2.1: 2460 | resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} 2461 | engines: {node: '>=6'} 2462 | hasBin: true 2463 | dev: false 2464 | 2465 | /jsonc-eslint-parser/2.1.0: 2466 | resolution: {integrity: sha512-qCRJWlbP2v6HbmKW7R3lFbeiVWHo+oMJ0j+MizwvauqnCV/EvtAeEeuCgoc/ErtsuoKgYB8U4Ih8AxJbXoE6/g==} 2467 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2468 | dependencies: 2469 | acorn: 8.7.1 2470 | eslint-visitor-keys: 3.3.0 2471 | espree: 9.3.2 2472 | semver: 7.3.7 2473 | dev: true 2474 | 2475 | /jsonc-parser/3.0.0: 2476 | resolution: {integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==} 2477 | 2478 | /jsonfile/6.1.0: 2479 | resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} 2480 | dependencies: 2481 | universalify: 2.0.0 2482 | optionalDependencies: 2483 | graceful-fs: 4.2.10 2484 | dev: false 2485 | 2486 | /jsx-ast-utils/3.3.0: 2487 | resolution: {integrity: sha512-XzO9luP6L0xkxwhIJMTJQpZo/eeN60K08jHdexfD569AGxeNug6UketeHXEhROoM8aR7EcUoOQmIhcJQjcuq8Q==} 2488 | engines: {node: '>=4.0'} 2489 | dependencies: 2490 | array-includes: 3.1.5 2491 | object.assign: 4.1.2 2492 | dev: true 2493 | 2494 | /kleur/3.0.3: 2495 | resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} 2496 | engines: {node: '>=6'} 2497 | dev: true 2498 | 2499 | /kleur/4.1.4: 2500 | resolution: {integrity: sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==} 2501 | engines: {node: '>=6'} 2502 | dev: true 2503 | 2504 | /levn/0.4.1: 2505 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 2506 | engines: {node: '>= 0.8.0'} 2507 | dependencies: 2508 | prelude-ls: 1.2.1 2509 | type-check: 0.4.0 2510 | dev: true 2511 | 2512 | /lilconfig/2.0.5: 2513 | resolution: {integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==} 2514 | engines: {node: '>=10'} 2515 | dev: true 2516 | 2517 | /lines-and-columns/1.2.4: 2518 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 2519 | dev: true 2520 | 2521 | /lint-staged/13.0.1: 2522 | resolution: {integrity: sha512-Ykaf4QTi0a02BF7cnq7JIPGOJxH4TkNMWhSlJdH9wOekd0X+gog47Jfh/0L31DqZe5AiydLGC7LkPqpaNm+Kvg==} 2523 | engines: {node: ^14.13.1 || >=16.0.0} 2524 | hasBin: true 2525 | dependencies: 2526 | cli-truncate: 3.1.0 2527 | colorette: 2.0.19 2528 | commander: 9.3.0 2529 | debug: 4.3.4 2530 | execa: 6.1.0 2531 | lilconfig: 2.0.5 2532 | listr2: 4.0.5 2533 | micromatch: 4.0.5 2534 | normalize-path: 3.0.0 2535 | object-inspect: 1.12.2 2536 | pidtree: 0.6.0 2537 | string-argv: 0.3.1 2538 | yaml: 2.1.1 2539 | transitivePeerDependencies: 2540 | - enquirer 2541 | - supports-color 2542 | dev: true 2543 | 2544 | /listr2/4.0.5: 2545 | resolution: {integrity: sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==} 2546 | engines: {node: '>=12'} 2547 | peerDependencies: 2548 | enquirer: '>= 2.3.0 < 3' 2549 | peerDependenciesMeta: 2550 | enquirer: 2551 | optional: true 2552 | dependencies: 2553 | cli-truncate: 2.1.0 2554 | colorette: 2.0.19 2555 | log-update: 4.0.0 2556 | p-map: 4.0.0 2557 | rfdc: 1.3.0 2558 | rxjs: 7.5.5 2559 | through: 2.3.8 2560 | wrap-ansi: 7.0.0 2561 | dev: true 2562 | 2563 | /local-pkg/0.4.1: 2564 | resolution: {integrity: sha512-lL87ytIGP2FU5PWwNDo0w3WhIo2gopIAxPg9RxDYF7m4rr5ahuZxP22xnJHIvaLTe4Z9P6uKKY2UHiwyB4pcrw==} 2565 | engines: {node: '>=14'} 2566 | dev: true 2567 | 2568 | /locate-path/2.0.0: 2569 | resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} 2570 | engines: {node: '>=4'} 2571 | dependencies: 2572 | p-locate: 2.0.0 2573 | path-exists: 3.0.0 2574 | dev: true 2575 | 2576 | /locate-path/5.0.0: 2577 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 2578 | engines: {node: '>=8'} 2579 | dependencies: 2580 | p-locate: 4.1.0 2581 | dev: true 2582 | 2583 | /lodash.merge/4.6.2: 2584 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 2585 | dev: true 2586 | 2587 | /lodash/4.17.21: 2588 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 2589 | dev: true 2590 | 2591 | /log-update/4.0.0: 2592 | resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} 2593 | engines: {node: '>=10'} 2594 | dependencies: 2595 | ansi-escapes: 4.3.2 2596 | cli-cursor: 3.1.0 2597 | slice-ansi: 4.0.0 2598 | wrap-ansi: 6.2.0 2599 | dev: true 2600 | 2601 | /loose-envify/1.4.0: 2602 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 2603 | hasBin: true 2604 | dependencies: 2605 | js-tokens: 4.0.0 2606 | dev: true 2607 | 2608 | /loupe/2.3.4: 2609 | resolution: {integrity: sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==} 2610 | dependencies: 2611 | get-func-name: 2.0.0 2612 | dev: true 2613 | 2614 | /lru-cache/6.0.0: 2615 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 2616 | engines: {node: '>=10'} 2617 | dependencies: 2618 | yallist: 4.0.0 2619 | dev: true 2620 | 2621 | /magic-string/0.25.9: 2622 | resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} 2623 | dependencies: 2624 | sourcemap-codec: 1.4.8 2625 | dev: false 2626 | 2627 | /magic-string/0.26.2: 2628 | resolution: {integrity: sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==} 2629 | engines: {node: '>=12'} 2630 | dependencies: 2631 | sourcemap-codec: 1.4.8 2632 | 2633 | /mdast-util-from-markdown/0.8.5: 2634 | resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} 2635 | dependencies: 2636 | '@types/mdast': 3.0.10 2637 | mdast-util-to-string: 2.0.0 2638 | micromark: 2.11.4 2639 | parse-entities: 2.0.0 2640 | unist-util-stringify-position: 2.0.3 2641 | transitivePeerDependencies: 2642 | - supports-color 2643 | dev: true 2644 | 2645 | /mdast-util-to-string/2.0.0: 2646 | resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} 2647 | dev: true 2648 | 2649 | /merge-stream/2.0.0: 2650 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 2651 | dev: true 2652 | 2653 | /merge2/1.4.1: 2654 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 2655 | engines: {node: '>= 8'} 2656 | 2657 | /micromark/2.11.4: 2658 | resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} 2659 | dependencies: 2660 | debug: 4.3.4 2661 | parse-entities: 2.0.0 2662 | transitivePeerDependencies: 2663 | - supports-color 2664 | dev: true 2665 | 2666 | /micromatch/4.0.5: 2667 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 2668 | engines: {node: '>=8.6'} 2669 | dependencies: 2670 | braces: 3.0.2 2671 | picomatch: 2.3.1 2672 | 2673 | /mimic-fn/2.1.0: 2674 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 2675 | engines: {node: '>=6'} 2676 | dev: true 2677 | 2678 | /mimic-fn/4.0.0: 2679 | resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} 2680 | engines: {node: '>=12'} 2681 | dev: true 2682 | 2683 | /min-indent/1.0.1: 2684 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 2685 | engines: {node: '>=4'} 2686 | dev: true 2687 | 2688 | /minimatch/3.1.2: 2689 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 2690 | dependencies: 2691 | brace-expansion: 1.1.11 2692 | 2693 | /minimist/1.2.6: 2694 | resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} 2695 | dev: true 2696 | 2697 | /mkdirp/1.0.4: 2698 | resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} 2699 | engines: {node: '>=10'} 2700 | hasBin: true 2701 | dev: false 2702 | 2703 | /mkdist/0.3.10_typescript@4.7.3: 2704 | resolution: {integrity: sha512-Aoc6hjILr2JPUJU2OUvBiD5sZ/CG1FeiXwk6KKPqE0iSTjBCrjrVK/fP5ig+TB3AKHvh2aA2QXXGeXVCJBdSwg==} 2705 | hasBin: true 2706 | peerDependencies: 2707 | typescript: '>=3.7' 2708 | peerDependenciesMeta: 2709 | typescript: 2710 | optional: true 2711 | dependencies: 2712 | defu: 5.0.1 2713 | esbuild: 0.13.15 2714 | fs-extra: 10.1.0 2715 | globby: 11.1.0 2716 | jiti: 1.13.0 2717 | mri: 1.2.0 2718 | pathe: 0.2.0 2719 | typescript: 4.7.3 2720 | dev: false 2721 | 2722 | /mlly/0.3.19: 2723 | resolution: {integrity: sha512-zMq5n3cOf4fOzA4WoeulxagbAgMChdev3MgP6K51k7M0u2whTXxupfIY4VVzws4vxkiWhwH1rVQcsw7zDGfRhA==} 2724 | 2725 | /mlly/0.5.2: 2726 | resolution: {integrity: sha512-4GTELSSErv6ZZJYU98fZNuIBJcXSz+ktHdRrCYEqU1m6ZlebOCG0jwZ+IEd9vOrbpYsVBBMC5OTrEyLnKRcauQ==} 2727 | dependencies: 2728 | pathe: 0.2.0 2729 | pkg-types: 0.3.2 2730 | 2731 | /mri/1.2.0: 2732 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 2733 | engines: {node: '>=4'} 2734 | dev: false 2735 | 2736 | /ms/2.0.0: 2737 | resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} 2738 | dev: true 2739 | 2740 | /ms/2.1.2: 2741 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 2742 | 2743 | /nanoid/3.3.4: 2744 | resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} 2745 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 2746 | hasBin: true 2747 | dev: true 2748 | 2749 | /nanoid/4.0.0: 2750 | resolution: {integrity: sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg==} 2751 | engines: {node: ^14 || ^16 || >=18} 2752 | hasBin: true 2753 | dev: false 2754 | 2755 | /natural-compare/1.4.0: 2756 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 2757 | dev: true 2758 | 2759 | /node-releases/2.0.5: 2760 | resolution: {integrity: sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==} 2761 | dev: false 2762 | 2763 | /normalize-package-data/2.5.0: 2764 | resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} 2765 | dependencies: 2766 | hosted-git-info: 2.8.9 2767 | resolve: 1.22.0 2768 | semver: 5.7.1 2769 | validate-npm-package-license: 3.0.4 2770 | dev: true 2771 | 2772 | /normalize-path/3.0.0: 2773 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 2774 | engines: {node: '>=0.10.0'} 2775 | dev: true 2776 | 2777 | /npm-run-path/5.1.0: 2778 | resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} 2779 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2780 | dependencies: 2781 | path-key: 4.0.0 2782 | dev: true 2783 | 2784 | /nth-check/2.1.1: 2785 | resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} 2786 | dependencies: 2787 | boolbase: 1.0.0 2788 | dev: true 2789 | 2790 | /object-assign/4.1.1: 2791 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 2792 | engines: {node: '>=0.10.0'} 2793 | dev: true 2794 | 2795 | /object-inspect/1.12.2: 2796 | resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} 2797 | dev: true 2798 | 2799 | /object-keys/1.1.1: 2800 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 2801 | engines: {node: '>= 0.4'} 2802 | dev: true 2803 | 2804 | /object.assign/4.1.2: 2805 | resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==} 2806 | engines: {node: '>= 0.4'} 2807 | dependencies: 2808 | call-bind: 1.0.2 2809 | define-properties: 1.1.4 2810 | has-symbols: 1.0.3 2811 | object-keys: 1.1.1 2812 | dev: true 2813 | 2814 | /object.entries/1.1.5: 2815 | resolution: {integrity: sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==} 2816 | engines: {node: '>= 0.4'} 2817 | dependencies: 2818 | call-bind: 1.0.2 2819 | define-properties: 1.1.4 2820 | es-abstract: 1.20.1 2821 | dev: true 2822 | 2823 | /object.fromentries/2.0.5: 2824 | resolution: {integrity: sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==} 2825 | engines: {node: '>= 0.4'} 2826 | dependencies: 2827 | call-bind: 1.0.2 2828 | define-properties: 1.1.4 2829 | es-abstract: 1.20.1 2830 | dev: true 2831 | 2832 | /object.hasown/1.1.1: 2833 | resolution: {integrity: sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==} 2834 | dependencies: 2835 | define-properties: 1.1.4 2836 | es-abstract: 1.20.1 2837 | dev: true 2838 | 2839 | /object.values/1.1.5: 2840 | resolution: {integrity: sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==} 2841 | engines: {node: '>= 0.4'} 2842 | dependencies: 2843 | call-bind: 1.0.2 2844 | define-properties: 1.1.4 2845 | es-abstract: 1.20.1 2846 | dev: true 2847 | 2848 | /once/1.4.0: 2849 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 2850 | dependencies: 2851 | wrappy: 1.0.2 2852 | 2853 | /onetime/5.1.2: 2854 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 2855 | engines: {node: '>=6'} 2856 | dependencies: 2857 | mimic-fn: 2.1.0 2858 | dev: true 2859 | 2860 | /onetime/6.0.0: 2861 | resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} 2862 | engines: {node: '>=12'} 2863 | dependencies: 2864 | mimic-fn: 4.0.0 2865 | dev: true 2866 | 2867 | /optionator/0.9.1: 2868 | resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} 2869 | engines: {node: '>= 0.8.0'} 2870 | dependencies: 2871 | deep-is: 0.1.4 2872 | fast-levenshtein: 2.0.6 2873 | levn: 0.4.1 2874 | prelude-ls: 1.2.1 2875 | type-check: 0.4.0 2876 | word-wrap: 1.2.3 2877 | dev: true 2878 | 2879 | /p-limit/1.3.0: 2880 | resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} 2881 | engines: {node: '>=4'} 2882 | dependencies: 2883 | p-try: 1.0.0 2884 | dev: true 2885 | 2886 | /p-limit/2.3.0: 2887 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 2888 | engines: {node: '>=6'} 2889 | dependencies: 2890 | p-try: 2.2.0 2891 | dev: true 2892 | 2893 | /p-locate/2.0.0: 2894 | resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} 2895 | engines: {node: '>=4'} 2896 | dependencies: 2897 | p-limit: 1.3.0 2898 | dev: true 2899 | 2900 | /p-locate/4.1.0: 2901 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 2902 | engines: {node: '>=8'} 2903 | dependencies: 2904 | p-limit: 2.3.0 2905 | dev: true 2906 | 2907 | /p-map/4.0.0: 2908 | resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} 2909 | engines: {node: '>=10'} 2910 | dependencies: 2911 | aggregate-error: 3.1.0 2912 | dev: true 2913 | 2914 | /p-try/1.0.0: 2915 | resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} 2916 | engines: {node: '>=4'} 2917 | dev: true 2918 | 2919 | /p-try/2.2.0: 2920 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 2921 | engines: {node: '>=6'} 2922 | dev: true 2923 | 2924 | /parent-module/1.0.1: 2925 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 2926 | engines: {node: '>=6'} 2927 | dependencies: 2928 | callsites: 3.1.0 2929 | dev: true 2930 | 2931 | /parse-entities/2.0.0: 2932 | resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} 2933 | dependencies: 2934 | character-entities: 1.2.4 2935 | character-entities-legacy: 1.1.4 2936 | character-reference-invalid: 1.1.4 2937 | is-alphanumerical: 1.0.4 2938 | is-decimal: 1.0.4 2939 | is-hexadecimal: 1.0.4 2940 | dev: true 2941 | 2942 | /parse-json/5.2.0: 2943 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 2944 | engines: {node: '>=8'} 2945 | dependencies: 2946 | '@babel/code-frame': 7.16.7 2947 | error-ex: 1.3.2 2948 | json-parse-even-better-errors: 2.3.1 2949 | lines-and-columns: 1.2.4 2950 | dev: true 2951 | 2952 | /path-exists/3.0.0: 2953 | resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} 2954 | engines: {node: '>=4'} 2955 | dev: true 2956 | 2957 | /path-exists/4.0.0: 2958 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 2959 | engines: {node: '>=8'} 2960 | dev: true 2961 | 2962 | /path-is-absolute/1.0.1: 2963 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 2964 | engines: {node: '>=0.10.0'} 2965 | 2966 | /path-key/3.1.1: 2967 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 2968 | engines: {node: '>=8'} 2969 | dev: true 2970 | 2971 | /path-key/4.0.0: 2972 | resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} 2973 | engines: {node: '>=12'} 2974 | dev: true 2975 | 2976 | /path-parse/1.0.7: 2977 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 2978 | 2979 | /path-type/4.0.0: 2980 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 2981 | engines: {node: '>=8'} 2982 | 2983 | /pathe/0.2.0: 2984 | resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} 2985 | 2986 | /pathe/0.3.0: 2987 | resolution: {integrity: sha512-3vUjp552BJzCw9vqKsO5sttHkbYqqsZtH0x1PNtItgqx8BXEXzoY1SYRKcL6BTyVh4lGJGLj0tM42elUDMvcYA==} 2988 | dev: true 2989 | 2990 | /pathval/1.1.1: 2991 | resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} 2992 | dev: true 2993 | 2994 | /picocolors/1.0.0: 2995 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 2996 | 2997 | /picomatch/2.3.1: 2998 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 2999 | engines: {node: '>=8.6'} 3000 | 3001 | /pidtree/0.6.0: 3002 | resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} 3003 | engines: {node: '>=0.10'} 3004 | hasBin: true 3005 | dev: true 3006 | 3007 | /pkg-types/0.3.2: 3008 | resolution: {integrity: sha512-eBYzX/7NYsQEOR2alWY4rnQB49G62oHzFpoi9Som56aUr8vB8UGcmcIia9v8fpBeuhH3Ltentuk2OGpp4IQV3Q==} 3009 | dependencies: 3010 | jsonc-parser: 3.0.0 3011 | mlly: 0.3.19 3012 | pathe: 0.2.0 3013 | 3014 | /pluralize/8.0.0: 3015 | resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} 3016 | engines: {node: '>=4'} 3017 | dev: true 3018 | 3019 | /postcss-selector-parser/6.0.10: 3020 | resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} 3021 | engines: {node: '>=4'} 3022 | dependencies: 3023 | cssesc: 3.0.0 3024 | util-deprecate: 1.0.2 3025 | dev: true 3026 | 3027 | /postcss/8.4.14: 3028 | resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} 3029 | engines: {node: ^10 || ^12 || >=14} 3030 | dependencies: 3031 | nanoid: 3.3.4 3032 | picocolors: 1.0.0 3033 | source-map-js: 1.0.2 3034 | dev: true 3035 | 3036 | /prelude-ls/1.2.1: 3037 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 3038 | engines: {node: '>= 0.8.0'} 3039 | dev: true 3040 | 3041 | /pretty-bytes/6.0.0: 3042 | resolution: {integrity: sha512-6UqkYefdogmzqAZWzJ7laYeJnaXDy2/J+ZqiiMtS7t7OfpXWTlaeGMwX8U6EFvPV/YWWEKRkS8hKS4k60WHTOg==} 3043 | engines: {node: ^14.13.1 || >=16.0.0} 3044 | dev: false 3045 | 3046 | /prompts/2.4.2: 3047 | resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} 3048 | engines: {node: '>= 6'} 3049 | dependencies: 3050 | kleur: 3.0.3 3051 | sisteransi: 1.0.5 3052 | dev: true 3053 | 3054 | /prop-types/15.8.1: 3055 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} 3056 | dependencies: 3057 | loose-envify: 1.4.0 3058 | object-assign: 4.1.1 3059 | react-is: 16.13.1 3060 | dev: true 3061 | 3062 | /punycode/2.1.1: 3063 | resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} 3064 | engines: {node: '>=6'} 3065 | dev: true 3066 | 3067 | /queue-microtask/1.2.3: 3068 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 3069 | 3070 | /react-is/16.13.1: 3071 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} 3072 | dev: true 3073 | 3074 | /read-pkg-up/7.0.1: 3075 | resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} 3076 | engines: {node: '>=8'} 3077 | dependencies: 3078 | find-up: 4.1.0 3079 | read-pkg: 5.2.0 3080 | type-fest: 0.8.1 3081 | dev: true 3082 | 3083 | /read-pkg/5.2.0: 3084 | resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} 3085 | engines: {node: '>=8'} 3086 | dependencies: 3087 | '@types/normalize-package-data': 2.4.1 3088 | normalize-package-data: 2.5.0 3089 | parse-json: 5.2.0 3090 | type-fest: 0.6.0 3091 | dev: true 3092 | 3093 | /readdirp/3.6.0: 3094 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 3095 | engines: {node: '>=8.10.0'} 3096 | dependencies: 3097 | picomatch: 2.3.1 3098 | dev: true 3099 | 3100 | /regexp-tree/0.1.24: 3101 | resolution: {integrity: sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==} 3102 | hasBin: true 3103 | dev: true 3104 | 3105 | /regexp.prototype.flags/1.4.3: 3106 | resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} 3107 | engines: {node: '>= 0.4'} 3108 | dependencies: 3109 | call-bind: 1.0.2 3110 | define-properties: 1.1.4 3111 | functions-have-names: 1.2.3 3112 | dev: true 3113 | 3114 | /regexpp/3.2.0: 3115 | resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} 3116 | engines: {node: '>=8'} 3117 | dev: true 3118 | 3119 | /resolve-from/4.0.0: 3120 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 3121 | engines: {node: '>=4'} 3122 | dev: true 3123 | 3124 | /resolve/1.22.0: 3125 | resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==} 3126 | hasBin: true 3127 | dependencies: 3128 | is-core-module: 2.9.0 3129 | path-parse: 1.0.7 3130 | supports-preserve-symlinks-flag: 1.0.0 3131 | 3132 | /resolve/2.0.0-next.3: 3133 | resolution: {integrity: sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==} 3134 | dependencies: 3135 | is-core-module: 2.9.0 3136 | path-parse: 1.0.7 3137 | dev: true 3138 | 3139 | /restore-cursor/3.1.0: 3140 | resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} 3141 | engines: {node: '>=8'} 3142 | dependencies: 3143 | onetime: 5.1.2 3144 | signal-exit: 3.0.7 3145 | dev: true 3146 | 3147 | /reusify/1.0.4: 3148 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 3149 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 3150 | 3151 | /rfdc/1.3.0: 3152 | resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} 3153 | dev: true 3154 | 3155 | /rimraf/3.0.2: 3156 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 3157 | hasBin: true 3158 | dependencies: 3159 | glob: 7.2.3 3160 | 3161 | /rollup-plugin-dts/4.2.2_fgms252lqu3rk7srzpqqayl4ya: 3162 | resolution: {integrity: sha512-A3g6Rogyko/PXeKoUlkjxkP++8UDVpgA7C+Tdl77Xj4fgEaIjPSnxRmR53EzvoYy97VMVwLAOcWJudaVAuxneQ==} 3163 | engines: {node: '>=v12.22.11'} 3164 | peerDependencies: 3165 | rollup: ^2.55 3166 | typescript: ^4.1 3167 | dependencies: 3168 | magic-string: 0.26.2 3169 | rollup: 2.75.6 3170 | typescript: 4.7.3 3171 | optionalDependencies: 3172 | '@babel/code-frame': 7.16.7 3173 | dev: false 3174 | 3175 | /rollup-plugin-esbuild/4.9.1_2uefy6dldbldonrghlgjus4ieu: 3176 | resolution: {integrity: sha512-qn/x7Wz9p3Xnva99qcb+nopH0d2VJwVnsxJTGEg+Sh2Z3tqQl33MhOwzekVo1YTKgv+yAmosjcBRJygMfGrtLw==} 3177 | engines: {node: '>=12'} 3178 | peerDependencies: 3179 | esbuild: '>=0.10.1' 3180 | rollup: ^1.20.0 || ^2.0.0 3181 | dependencies: 3182 | '@rollup/pluginutils': 4.2.1 3183 | debug: 4.3.4 3184 | es-module-lexer: 0.9.3 3185 | esbuild: 0.14.43 3186 | joycon: 3.1.1 3187 | jsonc-parser: 3.0.0 3188 | rollup: 2.75.6 3189 | transitivePeerDependencies: 3190 | - supports-color 3191 | dev: false 3192 | 3193 | /rollup/2.75.6: 3194 | resolution: {integrity: sha512-OEf0TgpC9vU6WGROJIk1JA3LR5vk/yvqlzxqdrE2CzzXnqKXNzbAwlWUXis8RS3ZPe7LAq+YUxsRa0l3r27MLA==} 3195 | engines: {node: '>=10.0.0'} 3196 | hasBin: true 3197 | optionalDependencies: 3198 | fsevents: 2.3.2 3199 | 3200 | /run-parallel/1.2.0: 3201 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 3202 | dependencies: 3203 | queue-microtask: 1.2.3 3204 | 3205 | /rxjs/7.5.5: 3206 | resolution: {integrity: sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==} 3207 | dependencies: 3208 | tslib: 2.4.0 3209 | dev: true 3210 | 3211 | /safe-buffer/5.1.2: 3212 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 3213 | dev: false 3214 | 3215 | /safe-regex/2.1.1: 3216 | resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} 3217 | dependencies: 3218 | regexp-tree: 0.1.24 3219 | dev: true 3220 | 3221 | /scule/0.2.1: 3222 | resolution: {integrity: sha512-M9gnWtn3J0W+UhJOHmBxBTwv8mZCan5i1Himp60t6vvZcor0wr+IM0URKmIglsWJ7bRujNAVVN77fp+uZaWoKg==} 3223 | 3224 | /semver/5.7.1: 3225 | resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} 3226 | hasBin: true 3227 | dev: true 3228 | 3229 | /semver/6.3.0: 3230 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} 3231 | hasBin: true 3232 | 3233 | /semver/7.3.7: 3234 | resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} 3235 | engines: {node: '>=10'} 3236 | hasBin: true 3237 | dependencies: 3238 | lru-cache: 6.0.0 3239 | dev: true 3240 | 3241 | /shebang-command/2.0.0: 3242 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 3243 | engines: {node: '>=8'} 3244 | dependencies: 3245 | shebang-regex: 3.0.0 3246 | dev: true 3247 | 3248 | /shebang-regex/3.0.0: 3249 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 3250 | engines: {node: '>=8'} 3251 | dev: true 3252 | 3253 | /side-channel/1.0.4: 3254 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} 3255 | dependencies: 3256 | call-bind: 1.0.2 3257 | get-intrinsic: 1.1.2 3258 | object-inspect: 1.12.2 3259 | dev: true 3260 | 3261 | /signal-exit/3.0.7: 3262 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 3263 | dev: true 3264 | 3265 | /sisteransi/1.0.5: 3266 | resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} 3267 | dev: true 3268 | 3269 | /slash/3.0.0: 3270 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 3271 | engines: {node: '>=8'} 3272 | 3273 | /slice-ansi/3.0.0: 3274 | resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} 3275 | engines: {node: '>=8'} 3276 | dependencies: 3277 | ansi-styles: 4.3.0 3278 | astral-regex: 2.0.0 3279 | is-fullwidth-code-point: 3.0.0 3280 | dev: true 3281 | 3282 | /slice-ansi/4.0.0: 3283 | resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} 3284 | engines: {node: '>=10'} 3285 | dependencies: 3286 | ansi-styles: 4.3.0 3287 | astral-regex: 2.0.0 3288 | is-fullwidth-code-point: 3.0.0 3289 | dev: true 3290 | 3291 | /slice-ansi/5.0.0: 3292 | resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} 3293 | engines: {node: '>=12'} 3294 | dependencies: 3295 | ansi-styles: 6.1.0 3296 | is-fullwidth-code-point: 4.0.0 3297 | dev: true 3298 | 3299 | /source-map-js/1.0.2: 3300 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 3301 | engines: {node: '>=0.10.0'} 3302 | dev: true 3303 | 3304 | /sourcemap-codec/1.4.8: 3305 | resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} 3306 | 3307 | /spdx-correct/3.1.1: 3308 | resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} 3309 | dependencies: 3310 | spdx-expression-parse: 3.0.1 3311 | spdx-license-ids: 3.0.11 3312 | dev: true 3313 | 3314 | /spdx-exceptions/2.3.0: 3315 | resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} 3316 | dev: true 3317 | 3318 | /spdx-expression-parse/3.0.1: 3319 | resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} 3320 | dependencies: 3321 | spdx-exceptions: 2.3.0 3322 | spdx-license-ids: 3.0.11 3323 | dev: true 3324 | 3325 | /spdx-license-ids/3.0.11: 3326 | resolution: {integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==} 3327 | dev: true 3328 | 3329 | /string-argv/0.3.1: 3330 | resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} 3331 | engines: {node: '>=0.6.19'} 3332 | dev: true 3333 | 3334 | /string-width/4.2.3: 3335 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 3336 | engines: {node: '>=8'} 3337 | dependencies: 3338 | emoji-regex: 8.0.0 3339 | is-fullwidth-code-point: 3.0.0 3340 | strip-ansi: 6.0.1 3341 | dev: true 3342 | 3343 | /string-width/5.1.2: 3344 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 3345 | engines: {node: '>=12'} 3346 | dependencies: 3347 | eastasianwidth: 0.2.0 3348 | emoji-regex: 9.2.2 3349 | strip-ansi: 7.0.1 3350 | dev: true 3351 | 3352 | /string.prototype.matchall/4.0.7: 3353 | resolution: {integrity: sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==} 3354 | dependencies: 3355 | call-bind: 1.0.2 3356 | define-properties: 1.1.4 3357 | es-abstract: 1.20.1 3358 | get-intrinsic: 1.1.2 3359 | has-symbols: 1.0.3 3360 | internal-slot: 1.0.3 3361 | regexp.prototype.flags: 1.4.3 3362 | side-channel: 1.0.4 3363 | dev: true 3364 | 3365 | /string.prototype.trimend/1.0.5: 3366 | resolution: {integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==} 3367 | dependencies: 3368 | call-bind: 1.0.2 3369 | define-properties: 1.1.4 3370 | es-abstract: 1.20.1 3371 | dev: true 3372 | 3373 | /string.prototype.trimstart/1.0.5: 3374 | resolution: {integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==} 3375 | dependencies: 3376 | call-bind: 1.0.2 3377 | define-properties: 1.1.4 3378 | es-abstract: 1.20.1 3379 | dev: true 3380 | 3381 | /strip-ansi/6.0.1: 3382 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 3383 | engines: {node: '>=8'} 3384 | dependencies: 3385 | ansi-regex: 5.0.1 3386 | dev: true 3387 | 3388 | /strip-ansi/7.0.1: 3389 | resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} 3390 | engines: {node: '>=12'} 3391 | dependencies: 3392 | ansi-regex: 6.0.1 3393 | dev: true 3394 | 3395 | /strip-bom/3.0.0: 3396 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 3397 | engines: {node: '>=4'} 3398 | dev: true 3399 | 3400 | /strip-final-newline/3.0.0: 3401 | resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} 3402 | engines: {node: '>=12'} 3403 | dev: true 3404 | 3405 | /strip-indent/3.0.0: 3406 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 3407 | engines: {node: '>=8'} 3408 | dependencies: 3409 | min-indent: 1.0.1 3410 | dev: true 3411 | 3412 | /strip-json-comments/3.1.1: 3413 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 3414 | engines: {node: '>=8'} 3415 | dev: true 3416 | 3417 | /strip-literal/0.4.0: 3418 | resolution: {integrity: sha512-ql/sBDoJOybTKSIOWrrh8kgUEMjXMwRAkZTD0EwiwxQH/6tTPkZvMIEjp0CRlpi6V5FMiJyvxeRkEi1KrGISoA==} 3419 | dependencies: 3420 | acorn: 8.7.1 3421 | dev: true 3422 | 3423 | /supports-color/5.5.0: 3424 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 3425 | engines: {node: '>=4'} 3426 | dependencies: 3427 | has-flag: 3.0.0 3428 | 3429 | /supports-color/7.2.0: 3430 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 3431 | engines: {node: '>=8'} 3432 | dependencies: 3433 | has-flag: 4.0.0 3434 | dev: true 3435 | 3436 | /supports-preserve-symlinks-flag/1.0.0: 3437 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 3438 | engines: {node: '>= 0.4'} 3439 | 3440 | /text-table/0.2.0: 3441 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 3442 | dev: true 3443 | 3444 | /through/2.3.8: 3445 | resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} 3446 | dev: true 3447 | 3448 | /tinypool/0.1.3: 3449 | resolution: {integrity: sha512-2IfcQh7CP46XGWGGbdyO4pjcKqsmVqFAPcXfPxcPXmOWt9cYkTP9HcDmGgsfijYoAEc4z9qcpM/BaBz46Y9/CQ==} 3450 | engines: {node: '>=14.0.0'} 3451 | dev: true 3452 | 3453 | /tinyspy/0.3.3: 3454 | resolution: {integrity: sha512-gRiUR8fuhUf0W9lzojPf1N1euJYA30ISebSfgca8z76FOvXtVXqd5ojEIaKLWbDQhAaC3ibxZIjqbyi4ybjcTw==} 3455 | engines: {node: '>=14.0.0'} 3456 | dev: true 3457 | 3458 | /to-fast-properties/2.0.0: 3459 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 3460 | engines: {node: '>=4'} 3461 | dev: false 3462 | 3463 | /to-regex-range/5.0.1: 3464 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 3465 | engines: {node: '>=8.0'} 3466 | dependencies: 3467 | is-number: 7.0.0 3468 | 3469 | /tsconfig-paths/3.14.1: 3470 | resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==} 3471 | dependencies: 3472 | '@types/json5': 0.0.29 3473 | json5: 1.0.1 3474 | minimist: 1.2.6 3475 | strip-bom: 3.0.0 3476 | dev: true 3477 | 3478 | /tslib/1.14.1: 3479 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} 3480 | dev: true 3481 | 3482 | /tslib/2.4.0: 3483 | resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} 3484 | dev: true 3485 | 3486 | /tsutils/3.21.0_typescript@4.7.3: 3487 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} 3488 | engines: {node: '>= 6'} 3489 | peerDependencies: 3490 | typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' 3491 | dependencies: 3492 | tslib: 1.14.1 3493 | typescript: 4.7.3 3494 | dev: true 3495 | 3496 | /type-check/0.4.0: 3497 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 3498 | engines: {node: '>= 0.8.0'} 3499 | dependencies: 3500 | prelude-ls: 1.2.1 3501 | dev: true 3502 | 3503 | /type-detect/4.0.8: 3504 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} 3505 | engines: {node: '>=4'} 3506 | dev: true 3507 | 3508 | /type-fest/0.20.2: 3509 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 3510 | engines: {node: '>=10'} 3511 | dev: true 3512 | 3513 | /type-fest/0.21.3: 3514 | resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} 3515 | engines: {node: '>=10'} 3516 | dev: true 3517 | 3518 | /type-fest/0.6.0: 3519 | resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} 3520 | engines: {node: '>=8'} 3521 | dev: true 3522 | 3523 | /type-fest/0.8.1: 3524 | resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} 3525 | engines: {node: '>=8'} 3526 | dev: true 3527 | 3528 | /typescript/4.7.3: 3529 | resolution: {integrity: sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==} 3530 | engines: {node: '>=4.2.0'} 3531 | hasBin: true 3532 | 3533 | /unbox-primitive/1.0.2: 3534 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} 3535 | dependencies: 3536 | call-bind: 1.0.2 3537 | has-bigints: 1.0.2 3538 | has-symbols: 1.0.3 3539 | which-boxed-primitive: 1.0.2 3540 | dev: true 3541 | 3542 | /unbuild/0.7.4: 3543 | resolution: {integrity: sha512-gJvfMw4h5Q7xieMCeW/d3wtNKZDpFyDR9651s8kL+AGp95sMNhAFRLxy24AUKC3b5EQbB74vaDoU5R+XwsZC6A==} 3544 | hasBin: true 3545 | dependencies: 3546 | '@rollup/plugin-alias': 3.1.9_rollup@2.75.6 3547 | '@rollup/plugin-commonjs': 21.1.0_rollup@2.75.6 3548 | '@rollup/plugin-json': 4.1.0_rollup@2.75.6 3549 | '@rollup/plugin-node-resolve': 13.3.0_rollup@2.75.6 3550 | '@rollup/plugin-replace': 4.0.0_rollup@2.75.6 3551 | '@rollup/pluginutils': 4.2.1 3552 | chalk: 5.0.1 3553 | consola: 2.15.3 3554 | defu: 6.0.0 3555 | esbuild: 0.14.43 3556 | hookable: 5.1.1 3557 | jiti: 1.13.0 3558 | magic-string: 0.26.2 3559 | mkdirp: 1.0.4 3560 | mkdist: 0.3.10_typescript@4.7.3 3561 | mlly: 0.5.2 3562 | mri: 1.2.0 3563 | pathe: 0.2.0 3564 | pkg-types: 0.3.2 3565 | pretty-bytes: 6.0.0 3566 | rimraf: 3.0.2 3567 | rollup: 2.75.6 3568 | rollup-plugin-dts: 4.2.2_fgms252lqu3rk7srzpqqayl4ya 3569 | rollup-plugin-esbuild: 4.9.1_2uefy6dldbldonrghlgjus4ieu 3570 | scule: 0.2.1 3571 | typescript: 4.7.3 3572 | untyped: 0.4.4 3573 | transitivePeerDependencies: 3574 | - supports-color 3575 | dev: false 3576 | 3577 | /unimport/0.2.9: 3578 | resolution: {integrity: sha512-5SLmZZL2rwaNOQa/yTGaG0QI0meRhb6MDdIlS9s1uHPSYO6Gfzr7ugl5Rf35/CJioW6wYiNJsN9dru5JMzaD8w==} 3579 | dependencies: 3580 | '@rollup/pluginutils': 4.2.1 3581 | escape-string-regexp: 5.0.0 3582 | fast-glob: 3.2.11 3583 | local-pkg: 0.4.1 3584 | magic-string: 0.26.2 3585 | mlly: 0.5.2 3586 | pathe: 0.3.0 3587 | scule: 0.2.1 3588 | strip-literal: 0.4.0 3589 | unplugin: 0.7.0 3590 | transitivePeerDependencies: 3591 | - esbuild 3592 | - rollup 3593 | - vite 3594 | - webpack 3595 | dev: true 3596 | 3597 | /unist-util-stringify-position/2.0.3: 3598 | resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} 3599 | dependencies: 3600 | '@types/unist': 2.0.6 3601 | dev: true 3602 | 3603 | /universalify/2.0.0: 3604 | resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} 3605 | engines: {node: '>= 10.0.0'} 3606 | dev: false 3607 | 3608 | /unplugin-auto-import/0.8.8: 3609 | resolution: {integrity: sha512-cVZ79zMR1v4VCZ9emFTUnltmazCc2B4hObyVrxJdlgJ2sK8qub6JfjFt38rCF6MVEddkHiWCU6wZR1qbdqe+ig==} 3610 | engines: {node: '>=14'} 3611 | peerDependencies: 3612 | '@vueuse/core': '*' 3613 | peerDependenciesMeta: 3614 | '@vueuse/core': 3615 | optional: true 3616 | dependencies: 3617 | '@antfu/utils': 0.5.2 3618 | '@rollup/pluginutils': 4.2.1 3619 | local-pkg: 0.4.1 3620 | magic-string: 0.26.2 3621 | unimport: 0.2.9 3622 | unplugin: 0.7.0 3623 | transitivePeerDependencies: 3624 | - esbuild 3625 | - rollup 3626 | - vite 3627 | - webpack 3628 | dev: true 3629 | 3630 | /unplugin/0.7.0: 3631 | resolution: {integrity: sha512-OsiFrgybmqm5bGuaodvbLYhqUrvGuRHRMZDhddKEXTDbuQ1x+hR7M1WpQguXj03whVYjEYChhFo738cZH5RNig==} 3632 | peerDependencies: 3633 | esbuild: '>=0.13' 3634 | rollup: ^2.50.0 3635 | vite: ^2.3.0 3636 | webpack: 4 || 5 3637 | peerDependenciesMeta: 3638 | esbuild: 3639 | optional: true 3640 | rollup: 3641 | optional: true 3642 | vite: 3643 | optional: true 3644 | webpack: 3645 | optional: true 3646 | dependencies: 3647 | acorn: 8.7.1 3648 | chokidar: 3.5.3 3649 | webpack-sources: 3.2.3 3650 | webpack-virtual-modules: 0.4.3 3651 | dev: true 3652 | 3653 | /untyped/0.4.4: 3654 | resolution: {integrity: sha512-sY6u8RedwfLfBis0copfU/fzROieyAndqPs8Kn2PfyzTjtA88vCk81J1b5z+8/VJc+cwfGy23/AqOCpvAbkNVw==} 3655 | dependencies: 3656 | '@babel/core': 7.18.5 3657 | '@babel/standalone': 7.18.5 3658 | '@babel/types': 7.18.4 3659 | scule: 0.2.1 3660 | transitivePeerDependencies: 3661 | - supports-color 3662 | dev: false 3663 | 3664 | /uri-js/4.4.1: 3665 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 3666 | dependencies: 3667 | punycode: 2.1.1 3668 | dev: true 3669 | 3670 | /util-deprecate/1.0.2: 3671 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 3672 | dev: true 3673 | 3674 | /v8-compile-cache/2.3.0: 3675 | resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} 3676 | dev: true 3677 | 3678 | /validate-npm-package-license/3.0.4: 3679 | resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} 3680 | dependencies: 3681 | spdx-correct: 3.1.1 3682 | spdx-expression-parse: 3.0.1 3683 | dev: true 3684 | 3685 | /vite/2.9.12: 3686 | resolution: {integrity: sha512-suxC36dQo9Rq1qMB2qiRorNJtJAdxguu5TMvBHOc/F370KvqAe9t48vYp+/TbPKRNrMh/J55tOUmkuIqstZaew==} 3687 | engines: {node: '>=12.2.0'} 3688 | hasBin: true 3689 | peerDependencies: 3690 | less: '*' 3691 | sass: '*' 3692 | stylus: '*' 3693 | peerDependenciesMeta: 3694 | less: 3695 | optional: true 3696 | sass: 3697 | optional: true 3698 | stylus: 3699 | optional: true 3700 | dependencies: 3701 | esbuild: 0.14.43 3702 | postcss: 8.4.14 3703 | resolve: 1.22.0 3704 | rollup: 2.75.6 3705 | optionalDependencies: 3706 | fsevents: 2.3.2 3707 | dev: true 3708 | 3709 | /vitest/0.15.1: 3710 | resolution: {integrity: sha512-NaNFi93JKSuvV4YGnfQ0l0GKYxH0EsLcTrrXaCzd6qfVEZM/RJpjwSevg6waNFqu2DyN6e0aHHdrCZW5/vh5NA==} 3711 | engines: {node: '>=v14.16.0'} 3712 | hasBin: true 3713 | peerDependencies: 3714 | '@vitest/ui': '*' 3715 | c8: '*' 3716 | happy-dom: '*' 3717 | jsdom: '*' 3718 | peerDependenciesMeta: 3719 | '@vitest/ui': 3720 | optional: true 3721 | c8: 3722 | optional: true 3723 | happy-dom: 3724 | optional: true 3725 | jsdom: 3726 | optional: true 3727 | dependencies: 3728 | '@types/chai': 4.3.1 3729 | '@types/chai-subset': 1.3.3 3730 | '@types/node': 17.0.42 3731 | chai: 4.3.6 3732 | debug: 4.3.4 3733 | local-pkg: 0.4.1 3734 | tinypool: 0.1.3 3735 | tinyspy: 0.3.3 3736 | vite: 2.9.12 3737 | transitivePeerDependencies: 3738 | - less 3739 | - sass 3740 | - stylus 3741 | - supports-color 3742 | dev: true 3743 | 3744 | /vue-eslint-parser/8.3.0_eslint@8.17.0: 3745 | resolution: {integrity: sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==} 3746 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 3747 | peerDependencies: 3748 | eslint: '>=6.0.0' 3749 | dependencies: 3750 | debug: 4.3.4 3751 | eslint: 8.17.0 3752 | eslint-scope: 7.1.1 3753 | eslint-visitor-keys: 3.3.0 3754 | espree: 9.3.2 3755 | esquery: 1.4.0 3756 | lodash: 4.17.21 3757 | semver: 7.3.7 3758 | transitivePeerDependencies: 3759 | - supports-color 3760 | dev: true 3761 | 3762 | /webpack-sources/3.2.3: 3763 | resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} 3764 | engines: {node: '>=10.13.0'} 3765 | dev: true 3766 | 3767 | /webpack-virtual-modules/0.4.3: 3768 | resolution: {integrity: sha512-5NUqC2JquIL2pBAAo/VfBP6KuGkHIZQXW/lNKupLPfhViwh8wNsu0BObtl09yuKZszeEUfbXz8xhrHvSG16Nqw==} 3769 | dev: true 3770 | 3771 | /which-boxed-primitive/1.0.2: 3772 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 3773 | dependencies: 3774 | is-bigint: 1.0.4 3775 | is-boolean-object: 1.1.2 3776 | is-number-object: 1.0.7 3777 | is-string: 1.0.7 3778 | is-symbol: 1.0.4 3779 | dev: true 3780 | 3781 | /which/2.0.2: 3782 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 3783 | engines: {node: '>= 8'} 3784 | hasBin: true 3785 | dependencies: 3786 | isexe: 2.0.0 3787 | dev: true 3788 | 3789 | /word-wrap/1.2.3: 3790 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} 3791 | engines: {node: '>=0.10.0'} 3792 | dev: true 3793 | 3794 | /wrap-ansi/6.2.0: 3795 | resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} 3796 | engines: {node: '>=8'} 3797 | dependencies: 3798 | ansi-styles: 4.3.0 3799 | string-width: 4.2.3 3800 | strip-ansi: 6.0.1 3801 | dev: true 3802 | 3803 | /wrap-ansi/7.0.0: 3804 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 3805 | engines: {node: '>=10'} 3806 | dependencies: 3807 | ansi-styles: 4.3.0 3808 | string-width: 4.2.3 3809 | strip-ansi: 6.0.1 3810 | dev: true 3811 | 3812 | /wrappy/1.0.2: 3813 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 3814 | 3815 | /yallist/4.0.0: 3816 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 3817 | dev: true 3818 | 3819 | /yaml-eslint-parser/0.5.0: 3820 | resolution: {integrity: sha512-nJeyLA3YHAzhBTZbRAbu3W6xrSCucyxExmA+ZDtEdUFpGllxAZpto2Zxo2IG0r0eiuEiBM4e+wiAdxTziTq94g==} 3821 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 3822 | dependencies: 3823 | eslint-visitor-keys: 3.3.0 3824 | lodash: 4.17.21 3825 | yaml: 1.10.2 3826 | dev: true 3827 | 3828 | /yaml/1.10.2: 3829 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 3830 | engines: {node: '>= 6'} 3831 | dev: true 3832 | 3833 | /yaml/2.1.1: 3834 | resolution: {integrity: sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==} 3835 | engines: {node: '>= 14'} 3836 | dev: true 3837 | -------------------------------------------------------------------------------- /src/EventHandlers/base.ts: -------------------------------------------------------------------------------- 1 | import type { CanvasEngine } from '../canvasEngine' 2 | import { warn } from '../helper/warn' 3 | import type { EventFn, EventName, ShapeClassType, ValidEventType } from '../types' 4 | 5 | interface ShouldTriggerEvent { shape: ShapeClassType; handler: EventFn } 6 | 7 | export type TriggerReturnType = (event: ValidEventType) => false | ShouldTriggerEvent 8 | 9 | export interface EventBase { 10 | shape: ShapeClassType 11 | handler: TriggerReturnType 12 | } 13 | 14 | /** 15 | * EventHandler 基类 16 | */ 17 | export abstract class BaseEventHandler { 18 | abstract eventName: EventName 19 | engine: CanvasEngine 20 | events: EventBase[] = [] 21 | domEventListener!: EventFn | null 22 | constructor(engine: CanvasEngine) { 23 | this.engine = engine 24 | } 25 | /** 26 | * 收集事件处理函数 27 | * 28 | * @param shape 图形 29 | * @returns {boolean} 是否收集成功 30 | */ 31 | abstract track(shape: ShapeClassType, cbFn: EventFn): void 32 | 33 | /** 34 | * 触发事件的处理函数,注意:该函数只能由 track 函数所调用 35 | * @param shape 图形 36 | * @param cbFn 事件的处理函数 37 | * @returns TriggerReturnType 返回一个函数或者 false 38 | */ 39 | protected abstract trigger(shape: ShapeClassType, cbFn: EventFn): TriggerReturnType 40 | 41 | /** 42 | * 初始化的时候,为 canvas dom 添加对应的事件监听 43 | */ 44 | protected initDomEventListener() { 45 | const dom = this.engine.getCanvasDom() 46 | this.domEventListener = (e: ValidEventType) => { 47 | // 根据 shape.zIndex 进行排序,然后只需要触发图层最大的那一个就好了 48 | const shouldTriggerEvents: ShouldTriggerEvent[] = [] 49 | this.events.forEach((i) => { 50 | const res = i.handler(e) 51 | if (res) shouldTriggerEvents.push(res) 52 | }) 53 | shouldTriggerEvents.sort((a, b) => b.shape.innerZIndex - a.shape.innerZIndex) 54 | if (shouldTriggerEvents.length) { 55 | const { handler } = shouldTriggerEvents[0] 56 | handler(e) 57 | } 58 | } 59 | dom.addEventListener(this.eventName, this.domEventListener) 60 | } 61 | 62 | /** 63 | * 根据传入的 fn ,删除此 fn 64 | * @param fn 事件处理函数 65 | */ 66 | removeListener(fn: EventFn) { 67 | const index = this.events.findIndex(evt => evt.handler === fn) 68 | if (index === -1) 69 | return warn(`${this.eventName} 事件监听函数不存在`) 70 | this.events.splice(index, 1) 71 | } 72 | 73 | /** 74 | * 判断 event 是否为空,如果为空,则取消此 dom 的事件监听 75 | */ 76 | checkEmpty() { 77 | if (!this.events.length) { 78 | const dom = this.engine.getCanvasDom() 79 | dom.removeEventListener(this.eventName, this.domEventListener!) 80 | this.domEventListener = null 81 | } 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /src/EventHandlers/click.ts: -------------------------------------------------------------------------------- 1 | import type { CanvasEngine } from '../canvasEngine' 2 | import type { EventFn, ShapeClassType } from '../types' 3 | import { EventName } from '../types' 4 | import type { TriggerReturnType } from './base' 5 | import { BaseEventHandler } from './base' 6 | import { getCanvasCheckApi } from './helper' 7 | 8 | export class ClickEventHandler extends BaseEventHandler { 9 | eventName = EventName.click 10 | 11 | constructor(engine: CanvasEngine) { 12 | super(engine) 13 | } 14 | 15 | track(shape: ShapeClassType, cbFn: EventFn): void { 16 | if (!this.events.length) this.initDomEventListener() 17 | const fn = this.trigger(shape, cbFn) 18 | this.events.push({ 19 | shape, 20 | handler: fn, 21 | }) 22 | } 23 | 24 | trigger(shape: ShapeClassType, cbFn: EventFn): TriggerReturnType { 25 | return (e: MouseEvent) => { 26 | this.engine.updateCanvasOffset() 27 | const { clientX, clientY } = e 28 | const { leftOffset, topOffset } = this.engine.canvasDomInfo 29 | const { renderMode = 'fill' } = shape.shapeInfo 30 | const api = getCanvasCheckApi(this.engine.ctx) 31 | let isIn = false 32 | const params = { 33 | x: clientX - leftOffset, 34 | y: clientY - topOffset, 35 | } 36 | if (renderMode === 'fill') isIn = api(shape.path2D, params.x, params.y) 37 | else if (renderMode === 'stroke') isIn = api(params.x, params.y) 38 | if (isIn) { 39 | return { 40 | shape, 41 | handler: cbFn.bind(cbFn, e), 42 | } 43 | } 44 | else { 45 | return false 46 | } 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/EventHandlers/helper.ts: -------------------------------------------------------------------------------- 1 | import type { baseShape } from '../types' 2 | 3 | export function getCanvasCheckApi(ctx: CanvasRenderingContext2D, renderMode: baseShape['renderMode'] = 'fill') { 4 | const mapping = { 5 | fill: ctx.isPointInPath, 6 | stroke: ctx.isPointInStroke, 7 | } 8 | return mapping[renderMode].bind(ctx) 9 | } 10 | -------------------------------------------------------------------------------- /src/EventHandlers/index.ts: -------------------------------------------------------------------------------- 1 | import type { CanvasEngine } from '../canvasEngine' 2 | import type { 3 | EventFn, 4 | EventName, 5 | ShapeClassType, 6 | } from '../types' 7 | import type { BaseEventHandler } from './base' 8 | import { ClickEventHandler } from './click' 9 | 10 | type HandlerInstanceCache = { 11 | [key in EventName]: BaseEventHandler 12 | } 13 | 14 | export class EventHandler { 15 | engine: CanvasEngine 16 | handlerInstances!: HandlerInstanceCache 17 | 18 | constructor(engine: CanvasEngine) { 19 | this.engine = engine 20 | this.initHandlerInstance(this.engine) 21 | } 22 | 23 | initHandlerInstance(engine: CanvasEngine) { 24 | this.handlerInstances = { 25 | click: new ClickEventHandler(engine), 26 | dblclick: new ClickEventHandler(engine), 27 | } 28 | } 29 | 30 | pushEvent(shape: ShapeClassType, eventName: EventName, cbFn: EventFn) { 31 | const handlerInstance = this.handlerInstances[eventName] 32 | handlerInstance.track(shape, cbFn) 33 | // 让 shape 也存在此 listener 的缓存 34 | let shapeEvents = shape.events[eventName] 35 | if (!shapeEvents) shapeEvents = shape.events[eventName] = new Set() 36 | shapeEvents.add(cbFn) 37 | return () => { 38 | handlerInstance.removeListener(cbFn) 39 | } 40 | } 41 | 42 | removeListener(shape: ShapeClassType, evtName: EventName): void { 43 | const eventSet = shape.events[evtName] 44 | if (!eventSet) return 45 | const handlerInstance = this.handlerInstances[evtName] 46 | handlerInstance.events = handlerInstance.events.filter(e => e.shape.id !== shape.id) 47 | eventSet.clear() 48 | handlerInstance.checkEmpty() 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/Shapes/arc.ts: -------------------------------------------------------------------------------- 1 | import type { CanvasEngine, RenderOptions } from '../canvasEngine' 2 | import type { ArcShape, Position } from '../types' 3 | import { ShapeType } from '../types' 4 | import { BaseShape } from './base' 5 | 6 | export interface ArcOptions { 7 | x: number 8 | y: number 9 | radius: number 10 | zIndex: number 11 | } 12 | 13 | export class Arc extends BaseShape { 14 | id = Symbol('Arc') 15 | shapeInfo = {} as ArcShape 16 | 17 | constructor(x: number, y: number, radius: number, zIndex: number) 18 | constructor(options: ArcOptions) 19 | constructor( 20 | options: ArcOptions | number, 21 | y?: number, 22 | radius?: number, 23 | zIndex?: number, 24 | ) { 25 | super() 26 | const op = this.generateConfiguration(options, y, radius, zIndex) 27 | this.injectShapeInfo(op) 28 | this.machiningGraphics(op) 29 | this.zIndex = op.zIndex || -1 30 | } 31 | 32 | generateConfiguration( 33 | options: ArcOptions | number, 34 | y?: number, 35 | radius?: number, 36 | zIndex?: number, 37 | ) { 38 | let op: ArcOptions 39 | if (typeof options === 'object') { 40 | op = options 41 | } 42 | else if (typeof options === 'number') { 43 | op = { 44 | x: options, 45 | y: y!, 46 | radius: radius!, 47 | zIndex: zIndex!, 48 | } 49 | } 50 | return op! 51 | } 52 | 53 | machiningGraphics(options: ArcOptions) { 54 | const { x, y, radius } = options 55 | this.path2D.arc(x, y, radius, 0, Math.PI * 2) 56 | } 57 | 58 | render(canvasEngine: CanvasEngine, opt: RenderOptions) { 59 | const { 60 | options: { color }, 61 | cb, 62 | } = opt 63 | canvasEngine.ctx.fillStyle = color || '' 64 | canvasEngine.ctx.fill(this.path2D) 65 | cb() 66 | } 67 | 68 | injectShapeInfo(options: ArcOptions) { 69 | const { radius, x, y } = options 70 | const top: Position = { 71 | x, 72 | y: y - radius, 73 | } 74 | const left = { 75 | x: x - radius, 76 | y, 77 | } 78 | const right: Position = { 79 | x: x + radius, 80 | y, 81 | } 82 | const bottom: Position = { 83 | x, 84 | y: y + radius, 85 | } 86 | this.shapeInfo = { 87 | ...options, 88 | shape: ShapeType.Arc, 89 | top, 90 | left, 91 | right, 92 | bottom, 93 | } 94 | } 95 | } 96 | -------------------------------------------------------------------------------- /src/Shapes/base.ts: -------------------------------------------------------------------------------- 1 | import type { CanvasEngine, RenderOptions } from '../canvasEngine' 2 | import type { EventHandlerFn, EventName } from '../types' 3 | 4 | export abstract class BaseShape { 5 | path2D: Path2D = new Path2D() 6 | abstract id: symbol 7 | abstract shapeInfo: S 8 | zIndex = -1 9 | events = {} as Record> 10 | // 内部需要用到的 zIndex 11 | public innerZIndex = -1 12 | constructor() { } 13 | protected abstract injectShapeInfo(info: T): void 14 | protected abstract machiningGraphics(info: T): void 15 | abstract render(canvasEngine: CanvasEngine, options: RenderOptions): void 16 | beforeRender(_: CanvasEngine, __: RenderOptions): void { } 17 | } 18 | -------------------------------------------------------------------------------- /src/Shapes/image.ts: -------------------------------------------------------------------------------- 1 | import type { CanvasEngine, RenderOptions } from '../canvasEngine' 2 | import type { Position, RectShape } from '../types' 3 | import { ShapeType } from '../types' 4 | import { BaseShape } from './base' 5 | 6 | export interface ImageCanvas { 7 | x: number 8 | y: number 9 | w: number 10 | h: number 11 | src: string 12 | zIndex: number 13 | } 14 | 15 | export class Img extends BaseShape { 16 | shapeInfo = {} as RectShape & ImageCanvas 17 | id = Symbol('ImageCanvas') 18 | constructor(x: number, y: number, w: number, h: number, src: string, zIndex: number) 19 | constructor(options: ImageCanvas) 20 | constructor( 21 | options: ImageCanvas | number, 22 | y?: number, 23 | w?: number, 24 | h?: number, 25 | src?: string, 26 | zIndex?: number, 27 | ) { 28 | super() 29 | const completeConfiguration = this.generateConfiguration( 30 | options, 31 | y, 32 | w, 33 | h, 34 | src, 35 | zIndex, 36 | ) 37 | this.injectShapeInfo(completeConfiguration) 38 | this.machiningGraphics(completeConfiguration) 39 | } 40 | 41 | generateConfiguration( 42 | options: ImageCanvas | number, 43 | y?: number, 44 | w?: number, 45 | h?: number, 46 | src?: string, 47 | zIndex?: number, 48 | ) { 49 | let completeConfiguration: ImageCanvas 50 | if (typeof options === 'object') { 51 | completeConfiguration = options 52 | } 53 | else { 54 | completeConfiguration = { 55 | x: options, 56 | y: y!, 57 | w: w!, 58 | h: h!, 59 | src: src!, 60 | zIndex: zIndex!, 61 | } 62 | } 63 | return completeConfiguration 64 | } 65 | 66 | protected machiningGraphics(options: ImageCanvas) { 67 | const { x, y, w, h } = options 68 | this.path2D.rect(x, y, w, h) 69 | } 70 | 71 | protected injectShapeInfo(info: ImageCanvas) { 72 | const { x, y, w, h, src, zIndex } = info 73 | const topCenter: Position = { x: (x + w) / 2, y } 74 | const bottomCenter: Position = { x: (x + w) / 2, y: y + h } 75 | const leftCenter: Position = { x, y: (y + h) / 2 } 76 | const rightCenter: Position = { x: x + w, y: (y + h) / 2 } 77 | this.shapeInfo = { 78 | ...info, 79 | shape: ShapeType.Rect, 80 | topCenter, 81 | bottomCenter, 82 | leftCenter, 83 | rightCenter, 84 | src, 85 | } 86 | 87 | this.zIndex = zIndex 88 | } 89 | 90 | render(canvasEngine: CanvasEngine, _: RenderOptions) { 91 | const image = new Image(this.shapeInfo.w, this.shapeInfo.h) 92 | image.src = this.shapeInfo.src 93 | image.onload = () => { 94 | canvasEngine.ctx.fillStyle = 'rgba(0,0,0,0)' 95 | canvasEngine.ctx.fill(this.path2D) 96 | canvasEngine.ctx.drawImage(image, this.shapeInfo.x, this.shapeInfo.y, this.shapeInfo.w, this.shapeInfo.h) 97 | } 98 | } 99 | } 100 | -------------------------------------------------------------------------------- /src/Shapes/index.ts: -------------------------------------------------------------------------------- 1 | export * from './arc' 2 | export * from './line' 3 | export * from './rect' 4 | export * from './image' 5 | -------------------------------------------------------------------------------- /src/Shapes/line.ts: -------------------------------------------------------------------------------- 1 | import type { CanvasEngine, RenderOptions } from '../canvasEngine' 2 | import type { LineShape } from '../types' 3 | import { ShapeType } from '../types' 4 | import { BaseShape } from './base' 5 | 6 | export interface LineOptions { 7 | x: number 8 | y: number 9 | thickness?: number 10 | zIndex?: number 11 | lineWidth?: number 12 | } 13 | 14 | export class Line extends BaseShape { 15 | id = Symbol('Line') 16 | shapeInfo = {} as LineShape 17 | 18 | constructor( 19 | x: number, 20 | y: number, 21 | thickness?: number, 22 | lineWidth?: number, 23 | zIndex?: number 24 | ) 25 | constructor(options: LineOptions) 26 | constructor( 27 | options: LineOptions | number, 28 | y?: number, 29 | thickness?: number, 30 | lineWidth?: number, 31 | zIndex?: number, 32 | ) { 33 | super() 34 | const op = this.generateConfiguration( 35 | options, 36 | y, 37 | thickness, 38 | lineWidth, 39 | zIndex, 40 | ) 41 | this.injectShapeInfo(op) 42 | } 43 | 44 | generateConfiguration( 45 | options: LineOptions | number, 46 | y?: number, 47 | thickness?: number, 48 | lineWidth?: number, 49 | zIndex?: number, 50 | ) { 51 | let op: LineOptions 52 | if (typeof options === 'number') { 53 | op = { 54 | x: options, 55 | y: y!, 56 | thickness, 57 | lineWidth, 58 | zIndex, 59 | } 60 | } 61 | else { 62 | op = options 63 | } 64 | 65 | return op 66 | } 67 | 68 | machiningGraphics(_: LineOptions) { } 69 | 70 | injectShapeInfo(options: LineOptions) { 71 | const { x, y, zIndex = -1, lineWidth } = options 72 | this.shapeInfo = { 73 | x, 74 | y, 75 | end: { x, y }, 76 | zIndex, 77 | shape: ShapeType.Line, 78 | track: [], 79 | lineWidth, 80 | renderMode: 'fill', 81 | } 82 | } 83 | 84 | move(toX: number, toY: number) { 85 | const { x: nowX, y: nowY } = this.shapeInfo.end 86 | const track = { x: nowX + toX, y: nowY + toY } 87 | this.shapeInfo.end = track 88 | this.shapeInfo.track.push(track) 89 | return this 90 | } 91 | 92 | render(engine: CanvasEngine, { options: { color = '', mode = 'fill' }, cb }: RenderOptions) { 93 | engine.ctx.beginPath() 94 | const len = this.shapeInfo.track.length 95 | for (let i = 0; i < len; i++) { 96 | const { x, y } = this.shapeInfo.track[i] 97 | this.path2D.lineTo(x, y) 98 | } 99 | engine.ctx.lineWidth = this.shapeInfo.lineWidth || 1 100 | if (mode === 'fill') { 101 | engine.ctx.fillStyle = color 102 | engine.ctx.fill(this.path2D) 103 | } 104 | else if (mode === 'stroke') { 105 | engine.ctx.strokeStyle = color 106 | engine.ctx.stroke(this.path2D) 107 | } 108 | 109 | this.shapeInfo.renderMode = mode 110 | engine.ctx.closePath() 111 | cb() 112 | } 113 | } 114 | -------------------------------------------------------------------------------- /src/Shapes/rect.ts: -------------------------------------------------------------------------------- 1 | import type { CanvasEngine, RenderOptions } from '../canvasEngine' 2 | import type { Position, RectShape } from '../types' 3 | import { ShapeType } from '../types' 4 | import { BaseShape } from './base' 5 | 6 | export interface RectOptions { 7 | x: number 8 | y: number 9 | w: number 10 | h: number 11 | zIndex: number 12 | } 13 | 14 | export class Rect extends BaseShape { 15 | shapeInfo = {} as RectShape 16 | id = Symbol('Rect') 17 | constructor(x: number, y: number, w: number, h: number, zIndex: number) 18 | constructor(options: RectOptions) 19 | constructor( 20 | options: RectOptions | number, 21 | y?: number, 22 | w?: number, 23 | h?: number, 24 | zIndex?: number, 25 | ) { 26 | super() 27 | const completeConfiguration = this.generateConfiguration( 28 | options, 29 | y, 30 | w, 31 | h, 32 | zIndex, 33 | ) 34 | this.injectShapeInfo(completeConfiguration) 35 | this.machiningGraphics(completeConfiguration) 36 | } 37 | 38 | generateConfiguration( 39 | options: RectOptions | number, 40 | y?: number, 41 | w?: number, 42 | h?: number, 43 | zIndex?: number, 44 | ) { 45 | let completeConfiguration: RectOptions 46 | if (typeof options === 'object') { 47 | completeConfiguration = options 48 | } 49 | else { 50 | completeConfiguration = { 51 | x: options, 52 | y: y!, 53 | w: w!, 54 | h: h!, 55 | zIndex: zIndex!, 56 | } 57 | } 58 | return completeConfiguration 59 | } 60 | 61 | protected machiningGraphics(options: RectOptions) { 62 | const { x, y, w, h } = options 63 | this.path2D.rect(x, y, w, h) 64 | } 65 | 66 | protected injectShapeInfo(info: RectOptions) { 67 | const { x, y, w, h, zIndex } = info 68 | const topCenter: Position = { x: (x + w) / 2, y } 69 | const bottomCenter: Position = { x: (x + w) / 2, y: y + h } 70 | const leftCenter: Position = { x, y: (y + h) / 2 } 71 | const rightCenter: Position = { x: x + w, y: (y + h) / 2 } 72 | this.shapeInfo = { 73 | ...info, 74 | shape: ShapeType.Rect, 75 | topCenter, 76 | bottomCenter, 77 | leftCenter, 78 | rightCenter, 79 | } 80 | 81 | this.zIndex = zIndex 82 | } 83 | 84 | render(canvasEngine: CanvasEngine, options: RenderOptions) { 85 | const { 86 | options: { color }, 87 | cb, 88 | } = options 89 | canvasEngine.ctx.fillStyle = color || '' 90 | canvasEngine.ctx.fill(this.path2D) 91 | cb() 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /src/canvasEngine.ts: -------------------------------------------------------------------------------- 1 | import { EventHandler } from './EventHandlers' 2 | import type { BaseShape } from './Shapes/base' 3 | import type { Rect } from './Shapes/rect' 4 | import type { EventFn, EventName } from './types/event' 5 | import type { ShapeClassType } from './types/shape' 6 | 7 | // todo 8 | // 移动元素 9 | // 切换图层 10 | 11 | export interface CanvasEngineProps { 12 | w?: string 13 | h?: string 14 | canvasTarget?: string | HTMLCanvasElement 15 | } 16 | 17 | export interface DrawDependencyGraphMap { 18 | id: symbol 19 | path2D: Path2D 20 | shapeInfo: BaseShape 21 | } 22 | 23 | export interface RenderOptions { 24 | options: { 25 | color?: string 26 | mode?: 'fill' | 'stroke' 27 | } 28 | cb: (...args: any[]) => unknown 29 | } 30 | 31 | export interface CanvasDomInfo { 32 | canvasHeight: number 33 | canvasWidth: number 34 | leftOffset: number 35 | topOffset: number 36 | } 37 | 38 | export class CanvasEngine { 39 | private maxZIndex = -1 40 | 41 | public canvasDomInfo: CanvasDomInfo = { 42 | canvasHeight: 0, 43 | canvasWidth: 0, 44 | leftOffset: 0, 45 | topOffset: 0, 46 | } 47 | 48 | // 绘画图 49 | private drawDependencyGraphsMap: Map = new Map() 50 | 51 | // canvas dom 52 | private rawCanvasDom!: HTMLCanvasElement 53 | // canvas ctx 54 | public ctx!: CanvasRenderingContext2D 55 | // 事件map 56 | public eventsMap: Map> = new Map() 57 | // 渲染队列 58 | private renderQueue: { 59 | graphical: BaseShape 60 | options: RenderOptions 61 | }[] = [] 62 | 63 | isRender = false 64 | 65 | private eventHandler 66 | 67 | constructor(public options: CanvasEngineProps) { 68 | this.initCanvasSize(options) 69 | this.initCtx() 70 | this.eventHandler = new EventHandler(this) 71 | } 72 | 73 | private initCanvasSize(options: CanvasEngineProps) { 74 | const { w, h, canvasTarget } = options 75 | const canvasDom = typeof canvasTarget === 'string' 76 | ? (document.querySelector( 77 | canvasTarget || '#canvas', 78 | ) as HTMLCanvasElement) 79 | : canvasTarget 80 | 81 | if (canvasDom) { 82 | canvasDom.setAttribute('width', w || '500') 83 | canvasDom.setAttribute('height', h || '500') 84 | } 85 | else { 86 | throw new Error('请选择正确的 canvas id 获取dom元素') 87 | } 88 | this.rawCanvasDom = canvasDom 89 | this.initCanvasDomInfo(options, canvasDom) 90 | } 91 | 92 | private initCanvasDomInfo(options: CanvasEngineProps, _: HTMLCanvasElement) { 93 | const { w, h } = options 94 | this.canvasDomInfo.canvasWidth = Number(w || '500') 95 | this.canvasDomInfo.canvasHeight = Number(h || '500') 96 | this.updateCanvasOffset() 97 | } 98 | 99 | public updateCanvasOffset() { 100 | const { left, top } = this.rawCanvasDom.getClientRects()[0] 101 | this.canvasDomInfo.leftOffset = left 102 | this.canvasDomInfo.topOffset = top 103 | } 104 | 105 | private sortRenderQueue() { 106 | this.renderQueue.sort((a, b) => { 107 | return a.graphical.zIndex - b.graphical.zIndex 108 | }) 109 | } 110 | 111 | private initCtx() { 112 | this.ctx = this.rawCanvasDom.getContext('2d') as CanvasRenderingContext2D 113 | } 114 | 115 | private renderingQueue() { 116 | this.sortRenderQueue() 117 | this.renderQueue.forEach((render) => { 118 | render.graphical.innerZIndex = ++this.maxZIndex 119 | render.graphical.beforeRender(this, render.options) 120 | render.graphical.render(this, render.options) 121 | }) 122 | } 123 | 124 | public getCanvasDom(): HTMLCanvasElement { 125 | return this.rawCanvasDom 126 | } 127 | 128 | public render( 129 | graphical: ShapeClassType, 130 | options: RenderOptions['options'], 131 | cb: RenderOptions['cb'] = () => {}, 132 | ) { 133 | this.drawDependencyGraphsMap.set(graphical.id, graphical) 134 | this.renderQueue.push({ 135 | graphical, 136 | options: { 137 | options, 138 | cb, 139 | }, 140 | }) 141 | this.runRenderTask() 142 | } 143 | 144 | public addEventListener( 145 | graphical: ShapeClassType, 146 | eventType: EventName, 147 | fn: EventFn, 148 | ) { 149 | return this.eventHandler.pushEvent(graphical, eventType, fn) 150 | } 151 | 152 | public clear(graphical: ShapeClassType) { 153 | const index = this.renderQueue.findIndex( 154 | it => it.graphical.id === graphical.id, 155 | ) 156 | if (index === -1) return 157 | this.renderQueue.splice(index, 1) 158 | this.emptyEvents(graphical) 159 | this.runRenderTask() 160 | } 161 | 162 | public emptyEvents(graphical: ShapeClassType) { 163 | const { events } = graphical 164 | Object.keys(events).forEach((eventName) => { 165 | this.clearEvents(graphical, eventName as EventName) 166 | }) 167 | } 168 | 169 | public clearEvents(graphical: ShapeClassType, eventType: EventName) { 170 | this.eventHandler.removeListener(graphical, eventType) 171 | } 172 | 173 | public reload() { 174 | this.clearView() 175 | this.renderingQueue() 176 | } 177 | 178 | public clearView() { 179 | const { canvasWidth, canvasHeight } = this.canvasDomInfo 180 | this.ctx.clearRect(0, 0, canvasWidth, canvasHeight) 181 | } 182 | 183 | public modifyShapeLayer(graphical: Rect, zIndex: number) { 184 | graphical.zIndex = zIndex 185 | this.runRenderTask() 186 | } 187 | 188 | private runRenderTask() { 189 | if (!this.isRender) { 190 | this.isRender = true 191 | Promise.resolve().then(() => { 192 | this.reload() 193 | this.isRender = false 194 | }) 195 | } 196 | } 197 | 198 | public getCtx() { 199 | return this.ctx 200 | } 201 | } 202 | -------------------------------------------------------------------------------- /src/helper/warn.ts: -------------------------------------------------------------------------------- 1 | export function warn(message: string) { 2 | console.warn(`[CanvasEngine warn] ${message}`) 3 | } 4 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './canvasEngine' 2 | export * from './Shapes' 3 | export * from './types' 4 | -------------------------------------------------------------------------------- /src/types/event.ts: -------------------------------------------------------------------------------- 1 | import type { ShapeClassType } from './shape' 2 | 3 | export enum EventName { 4 | click = 'click', 5 | dblclick = 'dblclick', 6 | } 7 | 8 | export type ValidEventType = MouseEvent 9 | 10 | export type EventFn = (event: ValidEventType) => unknown 11 | 12 | export type Noop = () => {} 13 | 14 | export type EventHandlerFn = (e: ValidEventType, shape: ShapeClassType) => void 15 | export type NormalEventHandlerFn = (ev: MouseEvent) => any 16 | -------------------------------------------------------------------------------- /src/types/index.ts: -------------------------------------------------------------------------------- 1 | export * from './event' 2 | export * from './shape' 3 | -------------------------------------------------------------------------------- /src/types/shape.ts: -------------------------------------------------------------------------------- 1 | import type { BaseShape } from '../Shapes/base' 2 | 3 | export enum ShapeType { 4 | Rect, 5 | Arc, 6 | Line, 7 | } 8 | 9 | export interface Size { 10 | w: number 11 | h: number 12 | } 13 | 14 | export interface baseShape { 15 | shape: ShapeType 16 | x: number 17 | y: number 18 | renderMode?: 'fill' | 'stroke' 19 | } 20 | 21 | export type ShapeClassType = BaseShape 22 | 23 | export interface Position { 24 | x: number 25 | y: number 26 | } 27 | 28 | export interface RectShape extends baseShape, Size { 29 | leftCenter: Position 30 | rightCenter: Position 31 | bottomCenter: Position 32 | topCenter: Position 33 | } 34 | 35 | /** 36 | * @param {number} x, y 圆心 37 | * @param {number} radius 半径 38 | */ 39 | export interface ArcShape extends baseShape { 40 | radius: number 41 | top: Position 42 | left: Position 43 | right: Position 44 | bottom: Position 45 | } 46 | 47 | export interface LineShape extends baseShape { 48 | end: { x: number; y: number } 49 | zIndex: number 50 | track: { x: number; y: number }[] 51 | lineWidth?: number 52 | } 53 | -------------------------------------------------------------------------------- /test/index.spec.ts: -------------------------------------------------------------------------------- 1 | it('name', () => { 2 | expect(1).toBe(1) 3 | }) 4 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Visit https://aka.ms/tsconfig.json to read more about this file */ 4 | 5 | /* Projects */ 6 | // "incremental": true, /* Enable incremental compilation */ 7 | // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ 8 | // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ 9 | // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ 10 | // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ 11 | // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ 12 | 13 | /* Language and Environment */ 14 | "target": "ESNext" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, 15 | // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ 16 | // "jsx": "preserve", /* Specify what JSX code is generated. */ 17 | // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ 18 | // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ 19 | // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ 20 | // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ 21 | // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ 22 | // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ 23 | // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ 24 | // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ 25 | 26 | /* Modules */ 27 | "module": "commonjs" /* Specify what module code is generated. */, 28 | // "rootDir": "./", /* Specify the root folder within your source files. */ 29 | // "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ 30 | // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ 31 | // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ 32 | // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ 33 | // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ 34 | "types": ["vitest/globals", "vitest/importMeta"], 35 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 36 | // "resolveJsonModule": true, /* Enable importing .json files */ 37 | // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ 38 | 39 | /* JavaScript Support */ 40 | // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ 41 | // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ 42 | // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ 43 | 44 | /* Emit */ 45 | // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ 46 | // "declarationMap": true, /* Create sourcemaps for d.ts files. */ 47 | // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ 48 | // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ 49 | // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ 50 | // "outDir": "./", /* Specify an output folder for all emitted files. */ 51 | // "removeComments": true, /* Disable emitting comments. */ 52 | // "noEmit": true, /* Disable emitting files from a compilation. */ 53 | // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ 54 | // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ 55 | // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ 56 | // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ 57 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 58 | // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ 59 | // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ 60 | // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ 61 | // "newLine": "crlf", /* Set the newline character for emitting files. */ 62 | // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ 63 | // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ 64 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ 65 | // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ 66 | // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ 67 | // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ 68 | 69 | /* Interop Constraints */ 70 | // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ 71 | // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ 72 | "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */, 73 | // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ 74 | "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, 75 | 76 | /* Type Checking */ 77 | "strict": true /* Enable all strict type-checking options. */, 78 | // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ 79 | // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ 80 | // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ 81 | // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ 82 | // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ 83 | // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ 84 | // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ 85 | // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ 86 | // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ 87 | // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ 88 | // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ 89 | // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ 90 | // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ 91 | // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ 92 | // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ 93 | // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ 94 | // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ 95 | // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ 96 | 97 | /* Completeness */ 98 | // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ 99 | "skipLibCheck": true /* Skip type checking all .d.ts files. */ 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /vitest.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vitest/config' 2 | import AutoImport from 'unplugin-auto-import/vite' 3 | 4 | export default defineConfig({ 5 | plugins: [ 6 | AutoImport({ 7 | imports: ['vitest'], 8 | }), 9 | ], 10 | test: { 11 | includeSource: ['test/**/*'], 12 | }, 13 | }) 14 | --------------------------------------------------------------------------------