├── .github ├── FUNDING.yml ├── assets │ ├── video-ss.png │ └── video.mp4 └── workflows │ ├── ci.yml │ └── release.yml ├── .gitignore ├── .npmrc ├── .nvmrc ├── .vscode └── settings.json ├── LICENSE ├── README.md ├── eslint.config.js ├── package.json ├── playground ├── drizzle.ts └── package.json ├── pnpm-lock.yaml ├── pnpm-workspace.yaml ├── renovate.json ├── src ├── core.ts ├── index.ts ├── plugins │ ├── andScope.ts │ ├── orScope.ts │ ├── orderByScope.ts │ ├── textScope.ts │ └── twoPointScope.ts ├── types.ts └── utils.ts ├── test └── core.ts ├── tsconfig.json ├── tsup.config.ts └── vitest.config.ts /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [productdevbook] -------------------------------------------------------------------------------- /.github/assets/video-ss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/productdevbook/unsearch/79f3250d8c50326bb86d37c687b4f0a241611a1f/.github/assets/video-ss.png -------------------------------------------------------------------------------- /.github/assets/video.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/productdevbook/unsearch/79f3250d8c50326bb86d37c687b4f0a241611a1f/.github/assets/video.mp4 -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: Main 2 | 3 | concurrency: 4 | group: ${{ github.workflow }}-${{ github.ref }} 5 | cancel-in-progress: true 6 | 7 | permissions: 8 | pull-requests: write 9 | contents: read 10 | 11 | on: 12 | push: 13 | branches: 14 | - main 15 | 16 | pull_request: 17 | branches: 18 | - main 19 | 20 | jobs: 21 | build-test: 22 | name: 📚 Main 23 | runs-on: ${{ matrix.os }} 24 | 25 | strategy: 26 | matrix: 27 | os: [ubuntu-latest] 28 | 29 | steps: 30 | - uses: actions/checkout@v4 31 | 32 | - run: corepack enable 33 | - uses: actions/setup-node@v3 34 | with: 35 | node-version: '20' 36 | cache: pnpm 37 | 38 | - name: 📦 Install dependencies 39 | run: pnpm install --frozen-lockfile 40 | 41 | - name: 🚀 Build 42 | run: pnpm build 43 | 44 | - name: 👀 Lint 45 | run: pnpm lint 46 | 47 | # - name: 🧪 Test 48 | # run: pnpm test 49 | # env: 50 | # VITE_TEST_DB_URL: ${{ secrets.VITE_TEST_DB_URL }} 51 | 52 | - name: 🧪 Test with coverage 53 | run: pnpm coverage 54 | 55 | - name: 📝 Upload coverage 56 | if: always() 57 | uses: davelosert/vitest-coverage-report-action@v2 58 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | push: 5 | tags: 6 | - 'v*' 7 | 8 | permissions: 9 | pull-requests: write 10 | contents: write 11 | 12 | jobs: 13 | release: 14 | runs-on: ubuntu-latest 15 | steps: 16 | - uses: actions/checkout@v4 17 | with: 18 | fetch-depth: 0 19 | 20 | - uses: actions/setup-node@v3 21 | with: 22 | node-version: 20.x 23 | 24 | - run: npx changelogithub 25 | env: 26 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 27 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | node_modules 4 | dist 5 | package-lock.json 6 | .env -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | shamefully-hoist=true 2 | git-checks=false -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | v20 -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | // Enable the ESlint flat config support 3 | "eslint.experimental.useFlatConfig": true 4 | } 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 productdevbook - Open Source 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 | # unsearch 2 | 3 | unsearch is a simple library designed to add flexible search functionality to your own APIs and databases. 4 | 5 | ## Features 6 | 7 | - Pluggable architecture 8 | - Plugins 9 | - [x] andScope / AND 10 | - [x] orScope / OR 11 | - [x] orderByScope / asc:xx, desc:xx asc:[xx, xx], desc:[xx, xx] 12 | - [x] textScope / hello world 13 | - [x] twoPointScope / xx:xx yy:yy xx:>yy xx:>=yy xx:yy xx:yy and more 14 | - [ ] limitScope 15 | - [ ] offsetScope 16 | - key:value scope search 17 | - asc:key or desc:key sort search 18 | - limit:count limit search (soon) 19 | - offset:count offset search (soon) 20 | - key:value OR key:value orScope search 21 | - key:value AND key:value andScope search 22 | 23 |

24 | Version 25 | Downloads 26 | License 27 | 28 | Github Stars 29 |

30 | 31 | ## Video 32 | 33 | [![unsearch](.github/assets/video-ss.png)](https://github.com/productdevbook/unsearch/raw/main/.github/assets/video.mp4) 34 | 35 | ## Installation 36 | 37 | ```bash 38 | pnpm add unsearch 39 | ``` 40 | 41 | ## Usage 42 | 43 | - [Drizzle ORM Example](/playground/drizzle.ts) 44 | 45 | ### Search Text 46 | Here is an example of a search text. 47 | 48 | ```ts 49 | const example1 = 'name:john' 50 | const example2 = 'test name:john' 51 | const example3 = 'name:>john' // 'name:>=john' 'name:john' 'name:john' 52 | const example2 = 'name:john age:20' 53 | const example3 = 'name:john age:20 OR name:doe age:30' 54 | const example4 = 'name:john age:20 AND name:doe age:30' 55 | const example5 = 'name:john asc:age' 56 | const example6 = 'name:john desc:age' 57 | const example8 = 'name:john AND email:test@gmail.com asc:age name:doe OR age:30' 58 | const example7 = 'name:john asc:age limit:10' // soon 59 | ``` 60 | 61 | ## TODO 62 | 63 | - [ ] Add limitScope 64 | - [ ] Add offsetScope 65 | - [ ] Usege examples 66 | - [ ] Prisma 67 | - [ ] TypeORM 68 | - [ ] Sequelize 69 | - [ ] Knex 70 | - [ ] Postgres 71 | - [ ] MySQL 72 | - [ ] MongoDB 73 | - [ ] SQLite 74 | - [ ] MariaDB 75 | - [ ] Add more tests 76 | - [ ] Add more docs 77 | 78 | ## Development 79 | 80 | 1. To use this template, click the "Use this template" button above. 81 | 2. Clone the repository to your local machine. 82 | 3. Run `pnpm install` to install the dependencies. 83 | 4. Run `pnpm build` to build the bundle. 84 | 5. Run `pnpm start` to start the bundle. 85 | 6. Run `pnpm lint` to lint the code. (You can also run `pnpm lint:fix` to fix the linting errors.) 86 | 7. Run `pnpm test` to run the tests. (You can also run `pnpm test:watch` to run the tests in watch mode.) 87 | 8. Run `pnpm release` to bump the version. Terminal will ask you to select the version type. And then it will automatically commit and push the changes. GitHub Actions will automatically publish git tags. NPM local registry will automatically publish the package. 88 | 89 | ## Sponsors 90 | 91 |

92 | 93 | sponsors 94 | 95 |

96 | 97 | ## License 98 | 99 | MIT License © 2024-PRESENT [productdevbook](https://github.com/productdevbook) 100 | -------------------------------------------------------------------------------- /eslint.config.js: -------------------------------------------------------------------------------- 1 | import antfu from '@antfu/eslint-config' 2 | 3 | export default antfu( 4 | {}, 5 | { 6 | ignores: [ 7 | 'dist', 8 | '.github', 9 | ], 10 | }, 11 | ) 12 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "unsearch", 3 | "type": "module", 4 | "version": "0.0.2", 5 | "packageManager": "pnpm@8.10.0", 6 | "description": "Unsearch smart key:value scope all database search. Compatible with any database.", 7 | "author": "Mehmet - productdevbook ", 8 | "license": "MIT", 9 | "funding": "https://github.com/sponsors/productdevbook", 10 | "homepage": "https://github.com/productdevbook/unsearch", 11 | "repository": { 12 | "type": "git", 13 | "url": "https://github.com/productdevbook/unsearch.git" 14 | }, 15 | "bugs": "https://github.com/productdevbook/unsearch/issues", 16 | "keywords": [ 17 | "github search syntax", 18 | "stackoverflow search syntax", 19 | "key value search", 20 | "global search", 21 | "drizzle search" 22 | ], 23 | "exports": { 24 | ".": { 25 | "import": "./dist/index.js", 26 | "require": "./dist/index.cjs" 27 | } 28 | }, 29 | "main": "./dist/index.js", 30 | "module": "./dist/index.js", 31 | "types": "./dist/index.d.ts", 32 | "files": [ 33 | "dist" 34 | ], 35 | "engines": { 36 | "node": ">=20" 37 | }, 38 | "scripts": { 39 | "build": "tsup", 40 | "dev": "tsup --watch", 41 | "prepublishOnly": "pnpm run build", 42 | "release": "pnpm build && bumpp --commit --push --tag && pnpm publish", 43 | "lint": "eslint . && pnpm typecheck", 44 | "lint:fix": "eslint . --fix", 45 | "typecheck": "tsc --noEmit", 46 | "test": "vitest", 47 | "test:watch": "vitest --watch", 48 | "coverage": "vitest run --coverage", 49 | "prepare": "npx simple-git-hooks" 50 | }, 51 | "devDependencies": { 52 | "@antfu/eslint-config": "2.6.3", 53 | "@vitest/coverage-v8": "^1.2.2", 54 | "bumpp": "^9.3.0", 55 | "drizzle-orm": "^0.29.3", 56 | "eslint": "^8.56.0", 57 | "lint-staged": "^15.2.0", 58 | "postgres": "^3.4.3", 59 | "simple-git-hooks": "^2.9.0", 60 | "tsup": "^8.0.1", 61 | "typescript": "^5.3.3", 62 | "vitest": "^1.2.2" 63 | }, 64 | "simple-git-hooks": { 65 | "pre-commit": "pnpm lint-staged" 66 | }, 67 | "lint-staged": { 68 | "*": "pnpm eslint . --fix" 69 | }, 70 | "publishConfig": { 71 | "access": "public" 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /playground/drizzle.ts: -------------------------------------------------------------------------------- 1 | import { unSearch } from 'unsearch' 2 | import type { Column } from 'drizzle-orm' 3 | import { 4 | and, 5 | asc, 6 | desc, 7 | eq, 8 | gt, 9 | gte, 10 | ilike, 11 | like, 12 | lt, 13 | lte, 14 | ne, 15 | or, 16 | } from 'drizzle-orm' 17 | import { pgTable, serial, varchar } from 'drizzle-orm/pg-core' 18 | import postgres from 'postgres' 19 | import { drizzle } from 'drizzle-orm/postgres-js' 20 | 21 | const queryClient = postgres('postgres://postgres:adminadmin@0.0.0.0:5432/db') 22 | const db = drizzle(queryClient) 23 | 24 | export const user = pgTable('user', { 25 | id: serial('id').primaryKey(), 26 | username: varchar('username').unique(), 27 | name: varchar('name'), 28 | email: varchar('email'), 29 | }) 30 | 31 | const columKeys = { 32 | username: user.username, 33 | email: user.email, 34 | id: user.id, 35 | name: user.name, 36 | } 37 | 38 | const scopeTags = { 39 | '=': (key: Column, value: string) => eq(key, value), 40 | '!=': (key: Column, value: string) => ne(key, value), 41 | '>': (key: Column, value: string) => gt(key, value), 42 | '>=': (key: Column, value: string) => gte(key, value), 43 | '<': (key: Column, value: string) => lt(key, value), 44 | '<=': (key: Column, value: string) => lte(key, value), 45 | '': (key: Column, value: string) => like(key, `%${value}%`), 46 | '': (key: Column, value: string) => ilike(key, `%${value}%`), 47 | 'OR': (...args: any[]) => or(...args), 48 | 'AND': (...args: any[]) => and(...args), 49 | 'asc': (key: Column) => asc(key), 50 | 'desc': (key: Column) => desc(key), 51 | } 52 | 53 | const scopeTagsArray = ['OR', 'AND', '', '', '>=', '<=', '>', '<', '!=', '='] 54 | 55 | async function search(query: string) { 56 | const { config } = await unSearch({ 57 | columKeys, 58 | scopeTags, 59 | scopeTagsArray, 60 | search: query, 61 | default: { 62 | filterText: Object.keys(columKeys).map((key) => { 63 | return { 64 | column: columKeys[key as keyof typeof columKeys], 65 | filter: '', 66 | key, 67 | } 68 | }), 69 | }, 70 | }) 71 | 72 | const data = db.select().from(user) 73 | .where( 74 | or( 75 | ...config._data?.wheres || [], 76 | ), 77 | ) 78 | .orderBy( 79 | ...config._data?.orderBy || [], 80 | ) 81 | 82 | console.warn(data) 83 | } 84 | 85 | search('username:foo AND email:bar') 86 | -------------------------------------------------------------------------------- /playground/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "playground", 3 | "version": "1.0.0", 4 | "devDependencies": { 5 | "unsearch": "workspace:^" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | devDependencies: 11 | '@antfu/eslint-config': 12 | specifier: 2.6.3 13 | version: 2.6.3(@vue/compiler-sfc@3.4.15)(eslint@8.56.0)(typescript@5.3.3)(vitest@1.2.2) 14 | '@vitest/coverage-v8': 15 | specifier: ^1.2.2 16 | version: 1.2.2(vitest@1.2.2) 17 | bumpp: 18 | specifier: ^9.3.0 19 | version: 9.3.0 20 | drizzle-orm: 21 | specifier: ^0.29.3 22 | version: 0.29.3(postgres@3.4.3) 23 | eslint: 24 | specifier: ^8.56.0 25 | version: 8.56.0 26 | lint-staged: 27 | specifier: ^15.2.0 28 | version: 15.2.0 29 | postgres: 30 | specifier: ^3.4.3 31 | version: 3.4.3 32 | simple-git-hooks: 33 | specifier: ^2.9.0 34 | version: 2.9.0 35 | tsup: 36 | specifier: ^8.0.1 37 | version: 8.0.1(typescript@5.3.3) 38 | typescript: 39 | specifier: ^5.3.3 40 | version: 5.3.3 41 | vitest: 42 | specifier: ^1.2.2 43 | version: 1.2.2 44 | 45 | playground: 46 | devDependencies: 47 | unsearch: 48 | specifier: workspace:^ 49 | version: link:.. 50 | 51 | packages: 52 | 53 | /@aashutoshrathi/word-wrap@1.2.6: 54 | resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} 55 | engines: {node: '>=0.10.0'} 56 | dev: true 57 | 58 | /@ampproject/remapping@2.2.1: 59 | resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} 60 | engines: {node: '>=6.0.0'} 61 | dependencies: 62 | '@jridgewell/gen-mapping': 0.3.3 63 | '@jridgewell/trace-mapping': 0.3.22 64 | dev: true 65 | 66 | /@antfu/eslint-config@2.6.3(@vue/compiler-sfc@3.4.15)(eslint@8.56.0)(typescript@5.3.3)(vitest@1.2.2): 67 | resolution: {integrity: sha512-sfkamrOatMwMZkp14mBerHKIw8FY0SD1iCb5UZ6Y5hgb+FeDpNQPlVA0i2PN95TQ8NSYyPC1QnoM+UA5NSl0Kg==} 68 | hasBin: true 69 | peerDependencies: 70 | '@unocss/eslint-plugin': '>=0.50.0' 71 | eslint: '>=8.40.0' 72 | eslint-plugin-format: '>=0.1.0' 73 | eslint-plugin-react: ^7.33.2 74 | eslint-plugin-react-hooks: ^4.6.0 75 | eslint-plugin-react-refresh: ^0.4.4 76 | eslint-plugin-svelte: ^2.34.1 77 | svelte-eslint-parser: ^0.33.1 78 | peerDependenciesMeta: 79 | '@unocss/eslint-plugin': 80 | optional: true 81 | eslint-plugin-format: 82 | optional: true 83 | eslint-plugin-react: 84 | optional: true 85 | eslint-plugin-react-hooks: 86 | optional: true 87 | eslint-plugin-react-refresh: 88 | optional: true 89 | eslint-plugin-svelte: 90 | optional: true 91 | svelte-eslint-parser: 92 | optional: true 93 | dependencies: 94 | '@antfu/eslint-define-config': 1.23.0-2 95 | '@antfu/install-pkg': 0.3.1 96 | '@eslint-types/jsdoc': 46.8.2-1 97 | '@eslint-types/typescript-eslint': 6.19.1 98 | '@eslint-types/unicorn': 50.0.1 99 | '@stylistic/eslint-plugin': 1.5.4(eslint@8.56.0)(typescript@5.3.3) 100 | '@typescript-eslint/eslint-plugin': 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3) 101 | '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) 102 | eslint: 8.56.0 103 | eslint-config-flat-gitignore: 0.1.2 104 | eslint-merge-processors: 0.1.0(eslint@8.56.0) 105 | eslint-plugin-antfu: 2.1.2(eslint@8.56.0) 106 | eslint-plugin-eslint-comments: 3.2.0(eslint@8.56.0) 107 | eslint-plugin-i: 2.29.1(@typescript-eslint/parser@6.20.0)(eslint@8.56.0) 108 | eslint-plugin-jsdoc: 48.0.4(eslint@8.56.0) 109 | eslint-plugin-jsonc: 2.13.0(eslint@8.56.0) 110 | eslint-plugin-markdown: 3.0.1(eslint@8.56.0) 111 | eslint-plugin-n: 16.6.2(eslint@8.56.0) 112 | eslint-plugin-no-only-tests: 3.1.0 113 | eslint-plugin-perfectionist: 2.5.0(eslint@8.56.0)(typescript@5.3.3)(vue-eslint-parser@9.4.2) 114 | eslint-plugin-toml: 0.9.2(eslint@8.56.0) 115 | eslint-plugin-unicorn: 50.0.1(eslint@8.56.0) 116 | eslint-plugin-unused-imports: 3.0.0(@typescript-eslint/eslint-plugin@6.20.0)(eslint@8.56.0) 117 | eslint-plugin-vitest: 0.3.21(@typescript-eslint/eslint-plugin@6.20.0)(eslint@8.56.0)(typescript@5.3.3)(vitest@1.2.2) 118 | eslint-plugin-vue: 9.20.1(eslint@8.56.0) 119 | eslint-plugin-yml: 1.12.2(eslint@8.56.0) 120 | eslint-processor-vue-blocks: 0.1.1(@vue/compiler-sfc@3.4.15)(eslint@8.56.0) 121 | globals: 13.24.0 122 | jsonc-eslint-parser: 2.4.0 123 | local-pkg: 0.5.0 124 | parse-gitignore: 2.0.0 125 | picocolors: 1.0.0 126 | prompts: 2.4.2 127 | toml-eslint-parser: 0.9.3 128 | vue-eslint-parser: 9.4.2(eslint@8.56.0) 129 | yaml-eslint-parser: 1.2.2 130 | yargs: 17.7.2 131 | transitivePeerDependencies: 132 | - '@vue/compiler-sfc' 133 | - astro-eslint-parser 134 | - eslint-import-resolver-typescript 135 | - eslint-import-resolver-webpack 136 | - supports-color 137 | - svelte 138 | - typescript 139 | - vitest 140 | dev: true 141 | 142 | /@antfu/eslint-define-config@1.23.0-2: 143 | resolution: {integrity: sha512-LvxY21+ZhpuBf/aHeBUtGQhSEfad4PkNKXKvDOSvukaM3XVTfBhwmHX2EKwAsdq5DlfjbT3qqYyMiueBIO5iDQ==} 144 | engines: {node: '>=18.0.0', npm: '>=9.0.0', pnpm: '>= 8.6.0'} 145 | dev: true 146 | 147 | /@antfu/install-pkg@0.3.1: 148 | resolution: {integrity: sha512-A3zWY9VeTPnxlMiZtsGHw2lSd3ghwvL8s9RiGOtqvDxhhFfZ781ynsGBa/iUnDJ5zBrmTFQrJDud3TGgRISaxw==} 149 | dependencies: 150 | execa: 8.0.1 151 | dev: true 152 | 153 | /@babel/code-frame@7.23.5: 154 | resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} 155 | engines: {node: '>=6.9.0'} 156 | dependencies: 157 | '@babel/highlight': 7.23.4 158 | chalk: 2.4.2 159 | dev: true 160 | 161 | /@babel/helper-string-parser@7.23.4: 162 | resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} 163 | engines: {node: '>=6.9.0'} 164 | dev: true 165 | 166 | /@babel/helper-validator-identifier@7.22.20: 167 | resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} 168 | engines: {node: '>=6.9.0'} 169 | dev: true 170 | 171 | /@babel/highlight@7.23.4: 172 | resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} 173 | engines: {node: '>=6.9.0'} 174 | dependencies: 175 | '@babel/helper-validator-identifier': 7.22.20 176 | chalk: 2.4.2 177 | js-tokens: 4.0.0 178 | dev: true 179 | 180 | /@babel/parser@7.23.9: 181 | resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==} 182 | engines: {node: '>=6.0.0'} 183 | hasBin: true 184 | dependencies: 185 | '@babel/types': 7.23.9 186 | dev: true 187 | 188 | /@babel/types@7.23.9: 189 | resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==} 190 | engines: {node: '>=6.9.0'} 191 | dependencies: 192 | '@babel/helper-string-parser': 7.23.4 193 | '@babel/helper-validator-identifier': 7.22.20 194 | to-fast-properties: 2.0.0 195 | dev: true 196 | 197 | /@bcoe/v8-coverage@0.2.3: 198 | resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} 199 | dev: true 200 | 201 | /@es-joy/jsdoccomment@0.41.0: 202 | resolution: {integrity: sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==} 203 | engines: {node: '>=16'} 204 | dependencies: 205 | comment-parser: 1.4.1 206 | esquery: 1.5.0 207 | jsdoc-type-pratt-parser: 4.0.0 208 | dev: true 209 | 210 | /@esbuild/aix-ppc64@0.19.12: 211 | resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} 212 | engines: {node: '>=12'} 213 | cpu: [ppc64] 214 | os: [aix] 215 | requiresBuild: true 216 | dev: true 217 | optional: true 218 | 219 | /@esbuild/android-arm64@0.19.12: 220 | resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} 221 | engines: {node: '>=12'} 222 | cpu: [arm64] 223 | os: [android] 224 | requiresBuild: true 225 | dev: true 226 | optional: true 227 | 228 | /@esbuild/android-arm@0.19.12: 229 | resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} 230 | engines: {node: '>=12'} 231 | cpu: [arm] 232 | os: [android] 233 | requiresBuild: true 234 | dev: true 235 | optional: true 236 | 237 | /@esbuild/android-x64@0.19.12: 238 | resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} 239 | engines: {node: '>=12'} 240 | cpu: [x64] 241 | os: [android] 242 | requiresBuild: true 243 | dev: true 244 | optional: true 245 | 246 | /@esbuild/darwin-arm64@0.19.12: 247 | resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} 248 | engines: {node: '>=12'} 249 | cpu: [arm64] 250 | os: [darwin] 251 | requiresBuild: true 252 | dev: true 253 | optional: true 254 | 255 | /@esbuild/darwin-x64@0.19.12: 256 | resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} 257 | engines: {node: '>=12'} 258 | cpu: [x64] 259 | os: [darwin] 260 | requiresBuild: true 261 | dev: true 262 | optional: true 263 | 264 | /@esbuild/freebsd-arm64@0.19.12: 265 | resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} 266 | engines: {node: '>=12'} 267 | cpu: [arm64] 268 | os: [freebsd] 269 | requiresBuild: true 270 | dev: true 271 | optional: true 272 | 273 | /@esbuild/freebsd-x64@0.19.12: 274 | resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} 275 | engines: {node: '>=12'} 276 | cpu: [x64] 277 | os: [freebsd] 278 | requiresBuild: true 279 | dev: true 280 | optional: true 281 | 282 | /@esbuild/linux-arm64@0.19.12: 283 | resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} 284 | engines: {node: '>=12'} 285 | cpu: [arm64] 286 | os: [linux] 287 | requiresBuild: true 288 | dev: true 289 | optional: true 290 | 291 | /@esbuild/linux-arm@0.19.12: 292 | resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} 293 | engines: {node: '>=12'} 294 | cpu: [arm] 295 | os: [linux] 296 | requiresBuild: true 297 | dev: true 298 | optional: true 299 | 300 | /@esbuild/linux-ia32@0.19.12: 301 | resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} 302 | engines: {node: '>=12'} 303 | cpu: [ia32] 304 | os: [linux] 305 | requiresBuild: true 306 | dev: true 307 | optional: true 308 | 309 | /@esbuild/linux-loong64@0.19.12: 310 | resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} 311 | engines: {node: '>=12'} 312 | cpu: [loong64] 313 | os: [linux] 314 | requiresBuild: true 315 | dev: true 316 | optional: true 317 | 318 | /@esbuild/linux-mips64el@0.19.12: 319 | resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} 320 | engines: {node: '>=12'} 321 | cpu: [mips64el] 322 | os: [linux] 323 | requiresBuild: true 324 | dev: true 325 | optional: true 326 | 327 | /@esbuild/linux-ppc64@0.19.12: 328 | resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} 329 | engines: {node: '>=12'} 330 | cpu: [ppc64] 331 | os: [linux] 332 | requiresBuild: true 333 | dev: true 334 | optional: true 335 | 336 | /@esbuild/linux-riscv64@0.19.12: 337 | resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} 338 | engines: {node: '>=12'} 339 | cpu: [riscv64] 340 | os: [linux] 341 | requiresBuild: true 342 | dev: true 343 | optional: true 344 | 345 | /@esbuild/linux-s390x@0.19.12: 346 | resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} 347 | engines: {node: '>=12'} 348 | cpu: [s390x] 349 | os: [linux] 350 | requiresBuild: true 351 | dev: true 352 | optional: true 353 | 354 | /@esbuild/linux-x64@0.19.12: 355 | resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} 356 | engines: {node: '>=12'} 357 | cpu: [x64] 358 | os: [linux] 359 | requiresBuild: true 360 | dev: true 361 | optional: true 362 | 363 | /@esbuild/netbsd-x64@0.19.12: 364 | resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} 365 | engines: {node: '>=12'} 366 | cpu: [x64] 367 | os: [netbsd] 368 | requiresBuild: true 369 | dev: true 370 | optional: true 371 | 372 | /@esbuild/openbsd-x64@0.19.12: 373 | resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} 374 | engines: {node: '>=12'} 375 | cpu: [x64] 376 | os: [openbsd] 377 | requiresBuild: true 378 | dev: true 379 | optional: true 380 | 381 | /@esbuild/sunos-x64@0.19.12: 382 | resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} 383 | engines: {node: '>=12'} 384 | cpu: [x64] 385 | os: [sunos] 386 | requiresBuild: true 387 | dev: true 388 | optional: true 389 | 390 | /@esbuild/win32-arm64@0.19.12: 391 | resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} 392 | engines: {node: '>=12'} 393 | cpu: [arm64] 394 | os: [win32] 395 | requiresBuild: true 396 | dev: true 397 | optional: true 398 | 399 | /@esbuild/win32-ia32@0.19.12: 400 | resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} 401 | engines: {node: '>=12'} 402 | cpu: [ia32] 403 | os: [win32] 404 | requiresBuild: true 405 | dev: true 406 | optional: true 407 | 408 | /@esbuild/win32-x64@0.19.12: 409 | resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} 410 | engines: {node: '>=12'} 411 | cpu: [x64] 412 | os: [win32] 413 | requiresBuild: true 414 | dev: true 415 | optional: true 416 | 417 | /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): 418 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 419 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 420 | peerDependencies: 421 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 422 | dependencies: 423 | eslint: 8.56.0 424 | eslint-visitor-keys: 3.4.3 425 | dev: true 426 | 427 | /@eslint-community/regexpp@4.10.0: 428 | resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} 429 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 430 | dev: true 431 | 432 | /@eslint-types/jsdoc@46.8.2-1: 433 | resolution: {integrity: sha512-FwD7V0xX0jyaqj8Ul5ZY+TAAPohDfVqtbuXJNHb+OIv1aTIqZi5+Zn3F2UwQ5O3BnQd2mTduyK0+HjGx3/AMFg==} 434 | dev: true 435 | 436 | /@eslint-types/typescript-eslint@6.19.1: 437 | resolution: {integrity: sha512-X0farz1+psE6Qfx6+ISQQ/J3ZetKlUeuTIN9Zt/agx4UXrgK6daH/n9ba776JxysK6YJCRaEHng/bcQQUm+BsA==} 438 | dev: true 439 | 440 | /@eslint-types/unicorn@50.0.1: 441 | resolution: {integrity: sha512-nuJuipTNcg9f+oxZ+3QZw4tuDLmir4RJOPfM/oujgToiy1s+tePDZhwg5jUGc3q8OzTtPbVpsFSYX7QApjO3EA==} 442 | dev: true 443 | 444 | /@eslint/eslintrc@2.1.4: 445 | resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} 446 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 447 | dependencies: 448 | ajv: 6.12.6 449 | debug: 4.3.4 450 | espree: 9.6.1 451 | globals: 13.24.0 452 | ignore: 5.3.0 453 | import-fresh: 3.3.0 454 | js-yaml: 4.1.0 455 | minimatch: 3.1.2 456 | strip-json-comments: 3.1.1 457 | transitivePeerDependencies: 458 | - supports-color 459 | dev: true 460 | 461 | /@eslint/js@8.56.0: 462 | resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} 463 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 464 | dev: true 465 | 466 | /@humanwhocodes/config-array@0.11.14: 467 | resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} 468 | engines: {node: '>=10.10.0'} 469 | dependencies: 470 | '@humanwhocodes/object-schema': 2.0.2 471 | debug: 4.3.4 472 | minimatch: 3.1.2 473 | transitivePeerDependencies: 474 | - supports-color 475 | dev: true 476 | 477 | /@humanwhocodes/module-importer@1.0.1: 478 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 479 | engines: {node: '>=12.22'} 480 | dev: true 481 | 482 | /@humanwhocodes/object-schema@2.0.2: 483 | resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} 484 | dev: true 485 | 486 | /@isaacs/cliui@8.0.2: 487 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 488 | engines: {node: '>=12'} 489 | dependencies: 490 | string-width: 5.1.2 491 | string-width-cjs: /string-width@4.2.3 492 | strip-ansi: 7.1.0 493 | strip-ansi-cjs: /strip-ansi@6.0.1 494 | wrap-ansi: 8.1.0 495 | wrap-ansi-cjs: /wrap-ansi@7.0.0 496 | dev: true 497 | 498 | /@istanbuljs/schema@0.1.3: 499 | resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} 500 | engines: {node: '>=8'} 501 | dev: true 502 | 503 | /@jest/schemas@29.6.3: 504 | resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} 505 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 506 | dependencies: 507 | '@sinclair/typebox': 0.27.8 508 | dev: true 509 | 510 | /@jridgewell/gen-mapping@0.3.3: 511 | resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} 512 | engines: {node: '>=6.0.0'} 513 | dependencies: 514 | '@jridgewell/set-array': 1.1.2 515 | '@jridgewell/sourcemap-codec': 1.4.15 516 | '@jridgewell/trace-mapping': 0.3.22 517 | dev: true 518 | 519 | /@jridgewell/resolve-uri@3.1.1: 520 | resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} 521 | engines: {node: '>=6.0.0'} 522 | dev: true 523 | 524 | /@jridgewell/set-array@1.1.2: 525 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} 526 | engines: {node: '>=6.0.0'} 527 | dev: true 528 | 529 | /@jridgewell/sourcemap-codec@1.4.15: 530 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 531 | dev: true 532 | 533 | /@jridgewell/trace-mapping@0.3.22: 534 | resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==} 535 | dependencies: 536 | '@jridgewell/resolve-uri': 3.1.1 537 | '@jridgewell/sourcemap-codec': 1.4.15 538 | dev: true 539 | 540 | /@jsdevtools/ez-spawn@3.0.4: 541 | resolution: {integrity: sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==} 542 | engines: {node: '>=10'} 543 | dependencies: 544 | call-me-maybe: 1.0.2 545 | cross-spawn: 7.0.3 546 | string-argv: 0.3.2 547 | type-detect: 4.0.8 548 | dev: true 549 | 550 | /@nodelib/fs.scandir@2.1.5: 551 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 552 | engines: {node: '>= 8'} 553 | dependencies: 554 | '@nodelib/fs.stat': 2.0.5 555 | run-parallel: 1.2.0 556 | dev: true 557 | 558 | /@nodelib/fs.stat@2.0.5: 559 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 560 | engines: {node: '>= 8'} 561 | dev: true 562 | 563 | /@nodelib/fs.walk@1.2.8: 564 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 565 | engines: {node: '>= 8'} 566 | dependencies: 567 | '@nodelib/fs.scandir': 2.1.5 568 | fastq: 1.17.0 569 | dev: true 570 | 571 | /@pkgjs/parseargs@0.11.0: 572 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 573 | engines: {node: '>=14'} 574 | requiresBuild: true 575 | dev: true 576 | optional: true 577 | 578 | /@rollup/rollup-android-arm-eabi@4.9.6: 579 | resolution: {integrity: sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==} 580 | cpu: [arm] 581 | os: [android] 582 | requiresBuild: true 583 | dev: true 584 | optional: true 585 | 586 | /@rollup/rollup-android-arm64@4.9.6: 587 | resolution: {integrity: sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==} 588 | cpu: [arm64] 589 | os: [android] 590 | requiresBuild: true 591 | dev: true 592 | optional: true 593 | 594 | /@rollup/rollup-darwin-arm64@4.9.6: 595 | resolution: {integrity: sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==} 596 | cpu: [arm64] 597 | os: [darwin] 598 | requiresBuild: true 599 | dev: true 600 | optional: true 601 | 602 | /@rollup/rollup-darwin-x64@4.9.6: 603 | resolution: {integrity: sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==} 604 | cpu: [x64] 605 | os: [darwin] 606 | requiresBuild: true 607 | dev: true 608 | optional: true 609 | 610 | /@rollup/rollup-linux-arm-gnueabihf@4.9.6: 611 | resolution: {integrity: sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==} 612 | cpu: [arm] 613 | os: [linux] 614 | requiresBuild: true 615 | dev: true 616 | optional: true 617 | 618 | /@rollup/rollup-linux-arm64-gnu@4.9.6: 619 | resolution: {integrity: sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==} 620 | cpu: [arm64] 621 | os: [linux] 622 | requiresBuild: true 623 | dev: true 624 | optional: true 625 | 626 | /@rollup/rollup-linux-arm64-musl@4.9.6: 627 | resolution: {integrity: sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==} 628 | cpu: [arm64] 629 | os: [linux] 630 | requiresBuild: true 631 | dev: true 632 | optional: true 633 | 634 | /@rollup/rollup-linux-riscv64-gnu@4.9.6: 635 | resolution: {integrity: sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==} 636 | cpu: [riscv64] 637 | os: [linux] 638 | requiresBuild: true 639 | dev: true 640 | optional: true 641 | 642 | /@rollup/rollup-linux-x64-gnu@4.9.6: 643 | resolution: {integrity: sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==} 644 | cpu: [x64] 645 | os: [linux] 646 | requiresBuild: true 647 | dev: true 648 | optional: true 649 | 650 | /@rollup/rollup-linux-x64-musl@4.9.6: 651 | resolution: {integrity: sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==} 652 | cpu: [x64] 653 | os: [linux] 654 | requiresBuild: true 655 | dev: true 656 | optional: true 657 | 658 | /@rollup/rollup-win32-arm64-msvc@4.9.6: 659 | resolution: {integrity: sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==} 660 | cpu: [arm64] 661 | os: [win32] 662 | requiresBuild: true 663 | dev: true 664 | optional: true 665 | 666 | /@rollup/rollup-win32-ia32-msvc@4.9.6: 667 | resolution: {integrity: sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==} 668 | cpu: [ia32] 669 | os: [win32] 670 | requiresBuild: true 671 | dev: true 672 | optional: true 673 | 674 | /@rollup/rollup-win32-x64-msvc@4.9.6: 675 | resolution: {integrity: sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==} 676 | cpu: [x64] 677 | os: [win32] 678 | requiresBuild: true 679 | dev: true 680 | optional: true 681 | 682 | /@sinclair/typebox@0.27.8: 683 | resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} 684 | dev: true 685 | 686 | /@stylistic/eslint-plugin-js@1.5.4(eslint@8.56.0): 687 | resolution: {integrity: sha512-3ctWb3NvJNV1MsrZN91cYp2EGInLPSoZKphXIbIRx/zjZxKwLDr9z4LMOWtqjq14li/OgqUUcMq5pj8fgbLoTw==} 688 | engines: {node: ^16.0.0 || >=18.0.0} 689 | peerDependencies: 690 | eslint: '>=8.40.0' 691 | dependencies: 692 | acorn: 8.11.3 693 | escape-string-regexp: 4.0.0 694 | eslint: 8.56.0 695 | eslint-visitor-keys: 3.4.3 696 | espree: 9.6.1 697 | dev: true 698 | 699 | /@stylistic/eslint-plugin-jsx@1.5.4(eslint@8.56.0): 700 | resolution: {integrity: sha512-JUfrpCkeBCqt1IZ4QsP4WgxGza4PhK4LPbc0VnCjHKygl+rgqoDAovqOuzFJ49wJ4Ix3r6OIHFuwiBGswZEVvg==} 701 | engines: {node: ^16.0.0 || >=18.0.0} 702 | peerDependencies: 703 | eslint: '>=8.40.0' 704 | dependencies: 705 | '@stylistic/eslint-plugin-js': 1.5.4(eslint@8.56.0) 706 | eslint: 8.56.0 707 | estraverse: 5.3.0 708 | dev: true 709 | 710 | /@stylistic/eslint-plugin-plus@1.5.4(eslint@8.56.0)(typescript@5.3.3): 711 | resolution: {integrity: sha512-dI0Cs5vYX/0uMhQDY+NK0cKQ0Pe9B6jWYxd0Ndud+mNloDaVLrsmJocK4zn+YfhGEDs1E4Nk5uAPZEumIpDuSg==} 712 | peerDependencies: 713 | eslint: '*' 714 | dependencies: 715 | '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) 716 | eslint: 8.56.0 717 | transitivePeerDependencies: 718 | - supports-color 719 | - typescript 720 | dev: true 721 | 722 | /@stylistic/eslint-plugin-ts@1.5.4(eslint@8.56.0)(typescript@5.3.3): 723 | resolution: {integrity: sha512-NZDFVIlVNjuPvhT+0Cidm5IS3emtx338xbJTqs2xfOVRDGTpYwRHhNVEGa1rFOpYHmv0sAj6+OXbMDn7ul0K/g==} 724 | engines: {node: ^16.0.0 || >=18.0.0} 725 | peerDependencies: 726 | eslint: '>=8.40.0' 727 | dependencies: 728 | '@stylistic/eslint-plugin-js': 1.5.4(eslint@8.56.0) 729 | '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) 730 | eslint: 8.56.0 731 | transitivePeerDependencies: 732 | - supports-color 733 | - typescript 734 | dev: true 735 | 736 | /@stylistic/eslint-plugin@1.5.4(eslint@8.56.0)(typescript@5.3.3): 737 | resolution: {integrity: sha512-zWPXr+O67GC9KDAFkbL1U9UVqE6Iv69YMKhkIECCmE0GvClUJwdfsimm4XebEDondV7kfjMrTDZaYfrI5aS0Jg==} 738 | engines: {node: ^16.0.0 || >=18.0.0} 739 | peerDependencies: 740 | eslint: '>=8.40.0' 741 | dependencies: 742 | '@stylistic/eslint-plugin-js': 1.5.4(eslint@8.56.0) 743 | '@stylistic/eslint-plugin-jsx': 1.5.4(eslint@8.56.0) 744 | '@stylistic/eslint-plugin-plus': 1.5.4(eslint@8.56.0)(typescript@5.3.3) 745 | '@stylistic/eslint-plugin-ts': 1.5.4(eslint@8.56.0)(typescript@5.3.3) 746 | eslint: 8.56.0 747 | transitivePeerDependencies: 748 | - supports-color 749 | - typescript 750 | dev: true 751 | 752 | /@types/estree@1.0.5: 753 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} 754 | dev: true 755 | 756 | /@types/istanbul-lib-coverage@2.0.6: 757 | resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} 758 | dev: true 759 | 760 | /@types/json-schema@7.0.15: 761 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 762 | dev: true 763 | 764 | /@types/mdast@3.0.15: 765 | resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} 766 | dependencies: 767 | '@types/unist': 2.0.10 768 | dev: true 769 | 770 | /@types/normalize-package-data@2.4.4: 771 | resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} 772 | dev: true 773 | 774 | /@types/semver@7.5.6: 775 | resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} 776 | dev: true 777 | 778 | /@types/unist@2.0.10: 779 | resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} 780 | dev: true 781 | 782 | /@typescript-eslint/eslint-plugin@6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3): 783 | resolution: {integrity: sha512-fTwGQUnjhoYHeSF6m5pWNkzmDDdsKELYrOBxhjMrofPqCkoC2k3B2wvGHFxa1CTIqkEn88nlW1HVMztjo2K8Hg==} 784 | engines: {node: ^16.0.0 || >=18.0.0} 785 | peerDependencies: 786 | '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha 787 | eslint: ^7.0.0 || ^8.0.0 788 | typescript: '*' 789 | peerDependenciesMeta: 790 | typescript: 791 | optional: true 792 | dependencies: 793 | '@eslint-community/regexpp': 4.10.0 794 | '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) 795 | '@typescript-eslint/scope-manager': 6.20.0 796 | '@typescript-eslint/type-utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) 797 | '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) 798 | '@typescript-eslint/visitor-keys': 6.20.0 799 | debug: 4.3.4 800 | eslint: 8.56.0 801 | graphemer: 1.4.0 802 | ignore: 5.3.0 803 | natural-compare: 1.4.0 804 | semver: 7.5.4 805 | ts-api-utils: 1.0.3(typescript@5.3.3) 806 | typescript: 5.3.3 807 | transitivePeerDependencies: 808 | - supports-color 809 | dev: true 810 | 811 | /@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.3.3): 812 | resolution: {integrity: sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w==} 813 | engines: {node: ^16.0.0 || >=18.0.0} 814 | peerDependencies: 815 | eslint: ^7.0.0 || ^8.0.0 816 | typescript: '*' 817 | peerDependenciesMeta: 818 | typescript: 819 | optional: true 820 | dependencies: 821 | '@typescript-eslint/scope-manager': 6.20.0 822 | '@typescript-eslint/types': 6.20.0 823 | '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) 824 | '@typescript-eslint/visitor-keys': 6.20.0 825 | debug: 4.3.4 826 | eslint: 8.56.0 827 | typescript: 5.3.3 828 | transitivePeerDependencies: 829 | - supports-color 830 | dev: true 831 | 832 | /@typescript-eslint/scope-manager@6.20.0: 833 | resolution: {integrity: sha512-p4rvHQRDTI1tGGMDFQm+GtxP1ZHyAh64WANVoyEcNMpaTFn3ox/3CcgtIlELnRfKzSs/DwYlDccJEtr3O6qBvA==} 834 | engines: {node: ^16.0.0 || >=18.0.0} 835 | dependencies: 836 | '@typescript-eslint/types': 6.20.0 837 | '@typescript-eslint/visitor-keys': 6.20.0 838 | dev: true 839 | 840 | /@typescript-eslint/type-utils@6.20.0(eslint@8.56.0)(typescript@5.3.3): 841 | resolution: {integrity: sha512-qnSobiJQb1F5JjN0YDRPHruQTrX7ICsmltXhkV536mp4idGAYrIyr47zF/JmkJtEcAVnIz4gUYJ7gOZa6SmN4g==} 842 | engines: {node: ^16.0.0 || >=18.0.0} 843 | peerDependencies: 844 | eslint: ^7.0.0 || ^8.0.0 845 | typescript: '*' 846 | peerDependenciesMeta: 847 | typescript: 848 | optional: true 849 | dependencies: 850 | '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) 851 | '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) 852 | debug: 4.3.4 853 | eslint: 8.56.0 854 | ts-api-utils: 1.0.3(typescript@5.3.3) 855 | typescript: 5.3.3 856 | transitivePeerDependencies: 857 | - supports-color 858 | dev: true 859 | 860 | /@typescript-eslint/types@6.20.0: 861 | resolution: {integrity: sha512-MM9mfZMAhiN4cOEcUOEx+0HmuaW3WBfukBZPCfwSqFnQy0grXYtngKCqpQN339X3RrwtzspWJrpbrupKYUSBXQ==} 862 | engines: {node: ^16.0.0 || >=18.0.0} 863 | dev: true 864 | 865 | /@typescript-eslint/typescript-estree@6.20.0(typescript@5.3.3): 866 | resolution: {integrity: sha512-RnRya9q5m6YYSpBN7IzKu9FmLcYtErkDkc8/dKv81I9QiLLtVBHrjz+Ev/crAqgMNW2FCsoZF4g2QUylMnJz+g==} 867 | engines: {node: ^16.0.0 || >=18.0.0} 868 | peerDependencies: 869 | typescript: '*' 870 | peerDependenciesMeta: 871 | typescript: 872 | optional: true 873 | dependencies: 874 | '@typescript-eslint/types': 6.20.0 875 | '@typescript-eslint/visitor-keys': 6.20.0 876 | debug: 4.3.4 877 | globby: 11.1.0 878 | is-glob: 4.0.3 879 | minimatch: 9.0.3 880 | semver: 7.5.4 881 | ts-api-utils: 1.0.3(typescript@5.3.3) 882 | typescript: 5.3.3 883 | transitivePeerDependencies: 884 | - supports-color 885 | dev: true 886 | 887 | /@typescript-eslint/utils@6.20.0(eslint@8.56.0)(typescript@5.3.3): 888 | resolution: {integrity: sha512-/EKuw+kRu2vAqCoDwDCBtDRU6CTKbUmwwI7SH7AashZ+W+7o8eiyy6V2cdOqN49KsTcASWsC5QeghYuRDTyOOg==} 889 | engines: {node: ^16.0.0 || >=18.0.0} 890 | peerDependencies: 891 | eslint: ^7.0.0 || ^8.0.0 892 | dependencies: 893 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) 894 | '@types/json-schema': 7.0.15 895 | '@types/semver': 7.5.6 896 | '@typescript-eslint/scope-manager': 6.20.0 897 | '@typescript-eslint/types': 6.20.0 898 | '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) 899 | eslint: 8.56.0 900 | semver: 7.5.4 901 | transitivePeerDependencies: 902 | - supports-color 903 | - typescript 904 | dev: true 905 | 906 | /@typescript-eslint/visitor-keys@6.20.0: 907 | resolution: {integrity: sha512-E8Cp98kRe4gKHjJD4NExXKz/zOJ1A2hhZc+IMVD6i7w4yjIvh6VyuRI0gRtxAsXtoC35uGMaQ9rjI2zJaXDEAw==} 908 | engines: {node: ^16.0.0 || >=18.0.0} 909 | dependencies: 910 | '@typescript-eslint/types': 6.20.0 911 | eslint-visitor-keys: 3.4.3 912 | dev: true 913 | 914 | /@ungap/structured-clone@1.2.0: 915 | resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} 916 | dev: true 917 | 918 | /@vitest/coverage-v8@1.2.2(vitest@1.2.2): 919 | resolution: {integrity: sha512-IHyKnDz18SFclIEEAHb9Y4Uxx0sPKC2VO1kdDCs1BF6Ip4S8rQprs971zIsooLUn7Afs71GRxWMWpkCGZpRMhw==} 920 | peerDependencies: 921 | vitest: ^1.0.0 922 | dependencies: 923 | '@ampproject/remapping': 2.2.1 924 | '@bcoe/v8-coverage': 0.2.3 925 | debug: 4.3.4 926 | istanbul-lib-coverage: 3.2.2 927 | istanbul-lib-report: 3.0.1 928 | istanbul-lib-source-maps: 4.0.1 929 | istanbul-reports: 3.1.6 930 | magic-string: 0.30.5 931 | magicast: 0.3.3 932 | picocolors: 1.0.0 933 | std-env: 3.7.0 934 | test-exclude: 6.0.0 935 | v8-to-istanbul: 9.2.0 936 | vitest: 1.2.2 937 | transitivePeerDependencies: 938 | - supports-color 939 | dev: true 940 | 941 | /@vitest/expect@1.2.2: 942 | resolution: {integrity: sha512-3jpcdPAD7LwHUUiT2pZTj2U82I2Tcgg2oVPvKxhn6mDI2On6tfvPQTjAI4628GUGDZrCm4Zna9iQHm5cEexOAg==} 943 | dependencies: 944 | '@vitest/spy': 1.2.2 945 | '@vitest/utils': 1.2.2 946 | chai: 4.4.1 947 | dev: true 948 | 949 | /@vitest/runner@1.2.2: 950 | resolution: {integrity: sha512-JctG7QZ4LSDXr5CsUweFgcpEvrcxOV1Gft7uHrvkQ+fsAVylmWQvnaAr/HDp3LAH1fztGMQZugIheTWjaGzYIg==} 951 | dependencies: 952 | '@vitest/utils': 1.2.2 953 | p-limit: 5.0.0 954 | pathe: 1.1.2 955 | dev: true 956 | 957 | /@vitest/snapshot@1.2.2: 958 | resolution: {integrity: sha512-SmGY4saEw1+bwE1th6S/cZmPxz/Q4JWsl7LvbQIky2tKE35US4gd0Mjzqfr84/4OD0tikGWaWdMja/nWL5NIPA==} 959 | dependencies: 960 | magic-string: 0.30.5 961 | pathe: 1.1.2 962 | pretty-format: 29.7.0 963 | dev: true 964 | 965 | /@vitest/spy@1.2.2: 966 | resolution: {integrity: sha512-k9Gcahssw8d7X3pSLq3e3XEu/0L78mUkCjivUqCQeXJm9clfXR/Td8+AP+VC1O6fKPIDLcHDTAmBOINVuv6+7g==} 967 | dependencies: 968 | tinyspy: 2.2.0 969 | dev: true 970 | 971 | /@vitest/utils@1.2.2: 972 | resolution: {integrity: sha512-WKITBHLsBHlpjnDQahr+XK6RE7MiAsgrIkr0pGhQ9ygoxBfUeG0lUG5iLlzqjmKSlBv3+j5EGsriBzh+C3Tq9g==} 973 | dependencies: 974 | diff-sequences: 29.6.3 975 | estree-walker: 3.0.3 976 | loupe: 2.3.7 977 | pretty-format: 29.7.0 978 | dev: true 979 | 980 | /@vue/compiler-core@3.4.15: 981 | resolution: {integrity: sha512-XcJQVOaxTKCnth1vCxEChteGuwG6wqnUHxAm1DO3gCz0+uXKaJNx8/digSz4dLALCy8n2lKq24jSUs8segoqIw==} 982 | dependencies: 983 | '@babel/parser': 7.23.9 984 | '@vue/shared': 3.4.15 985 | entities: 4.5.0 986 | estree-walker: 2.0.2 987 | source-map-js: 1.0.2 988 | dev: true 989 | 990 | /@vue/compiler-dom@3.4.15: 991 | resolution: {integrity: sha512-wox0aasVV74zoXyblarOM3AZQz/Z+OunYcIHe1OsGclCHt8RsRm04DObjefaI82u6XDzv+qGWZ24tIsRAIi5MQ==} 992 | dependencies: 993 | '@vue/compiler-core': 3.4.15 994 | '@vue/shared': 3.4.15 995 | dev: true 996 | 997 | /@vue/compiler-sfc@3.4.15: 998 | resolution: {integrity: sha512-LCn5M6QpkpFsh3GQvs2mJUOAlBQcCco8D60Bcqmf3O3w5a+KWS5GvYbrrJBkgvL1BDnTp+e8q0lXCLgHhKguBA==} 999 | dependencies: 1000 | '@babel/parser': 7.23.9 1001 | '@vue/compiler-core': 3.4.15 1002 | '@vue/compiler-dom': 3.4.15 1003 | '@vue/compiler-ssr': 3.4.15 1004 | '@vue/shared': 3.4.15 1005 | estree-walker: 2.0.2 1006 | magic-string: 0.30.5 1007 | postcss: 8.4.33 1008 | source-map-js: 1.0.2 1009 | dev: true 1010 | 1011 | /@vue/compiler-ssr@3.4.15: 1012 | resolution: {integrity: sha512-1jdeQyiGznr8gjFDadVmOJqZiLNSsMa5ZgqavkPZ8O2wjHv0tVuAEsw5hTdUoUW4232vpBbL/wJhzVW/JwY1Uw==} 1013 | dependencies: 1014 | '@vue/compiler-dom': 3.4.15 1015 | '@vue/shared': 3.4.15 1016 | dev: true 1017 | 1018 | /@vue/shared@3.4.15: 1019 | resolution: {integrity: sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g==} 1020 | dev: true 1021 | 1022 | /acorn-jsx@5.3.2(acorn@8.11.3): 1023 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 1024 | peerDependencies: 1025 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 1026 | dependencies: 1027 | acorn: 8.11.3 1028 | dev: true 1029 | 1030 | /acorn-walk@8.3.2: 1031 | resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} 1032 | engines: {node: '>=0.4.0'} 1033 | dev: true 1034 | 1035 | /acorn@8.11.3: 1036 | resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} 1037 | engines: {node: '>=0.4.0'} 1038 | hasBin: true 1039 | dev: true 1040 | 1041 | /ajv@6.12.6: 1042 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 1043 | dependencies: 1044 | fast-deep-equal: 3.1.3 1045 | fast-json-stable-stringify: 2.1.0 1046 | json-schema-traverse: 0.4.1 1047 | uri-js: 4.4.1 1048 | dev: true 1049 | 1050 | /ansi-escapes@6.2.0: 1051 | resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==} 1052 | engines: {node: '>=14.16'} 1053 | dependencies: 1054 | type-fest: 3.13.1 1055 | dev: true 1056 | 1057 | /ansi-regex@5.0.1: 1058 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 1059 | engines: {node: '>=8'} 1060 | dev: true 1061 | 1062 | /ansi-regex@6.0.1: 1063 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 1064 | engines: {node: '>=12'} 1065 | dev: true 1066 | 1067 | /ansi-styles@3.2.1: 1068 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 1069 | engines: {node: '>=4'} 1070 | dependencies: 1071 | color-convert: 1.9.3 1072 | dev: true 1073 | 1074 | /ansi-styles@4.3.0: 1075 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 1076 | engines: {node: '>=8'} 1077 | dependencies: 1078 | color-convert: 2.0.1 1079 | dev: true 1080 | 1081 | /ansi-styles@5.2.0: 1082 | resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} 1083 | engines: {node: '>=10'} 1084 | dev: true 1085 | 1086 | /ansi-styles@6.2.1: 1087 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 1088 | engines: {node: '>=12'} 1089 | dev: true 1090 | 1091 | /any-promise@1.3.0: 1092 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 1093 | dev: true 1094 | 1095 | /anymatch@3.1.3: 1096 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 1097 | engines: {node: '>= 8'} 1098 | dependencies: 1099 | normalize-path: 3.0.0 1100 | picomatch: 2.3.1 1101 | dev: true 1102 | 1103 | /are-docs-informative@0.0.2: 1104 | resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} 1105 | engines: {node: '>=14'} 1106 | dev: true 1107 | 1108 | /argparse@2.0.1: 1109 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 1110 | dev: true 1111 | 1112 | /array-union@2.1.0: 1113 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 1114 | engines: {node: '>=8'} 1115 | dev: true 1116 | 1117 | /assertion-error@1.1.0: 1118 | resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} 1119 | dev: true 1120 | 1121 | /balanced-match@1.0.2: 1122 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 1123 | dev: true 1124 | 1125 | /binary-extensions@2.2.0: 1126 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 1127 | engines: {node: '>=8'} 1128 | dev: true 1129 | 1130 | /boolbase@1.0.0: 1131 | resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} 1132 | dev: true 1133 | 1134 | /brace-expansion@1.1.11: 1135 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 1136 | dependencies: 1137 | balanced-match: 1.0.2 1138 | concat-map: 0.0.1 1139 | dev: true 1140 | 1141 | /brace-expansion@2.0.1: 1142 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 1143 | dependencies: 1144 | balanced-match: 1.0.2 1145 | dev: true 1146 | 1147 | /braces@3.0.2: 1148 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 1149 | engines: {node: '>=8'} 1150 | dependencies: 1151 | fill-range: 7.0.1 1152 | dev: true 1153 | 1154 | /browserslist@4.22.3: 1155 | resolution: {integrity: sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==} 1156 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 1157 | hasBin: true 1158 | dependencies: 1159 | caniuse-lite: 1.0.30001581 1160 | electron-to-chromium: 1.4.650 1161 | node-releases: 2.0.14 1162 | update-browserslist-db: 1.0.13(browserslist@4.22.3) 1163 | dev: true 1164 | 1165 | /builtin-modules@3.3.0: 1166 | resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} 1167 | engines: {node: '>=6'} 1168 | dev: true 1169 | 1170 | /builtins@5.0.1: 1171 | resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} 1172 | dependencies: 1173 | semver: 7.5.4 1174 | dev: true 1175 | 1176 | /bumpp@9.3.0: 1177 | resolution: {integrity: sha512-P46VikoEZadYCqx7mbClKlaJnOyvc+JfRJPRf1YwlOjwqeYmutgFe1w9hvfXe819VhpU0N0TNXtxyVAUlAgaNA==} 1178 | engines: {node: '>=10'} 1179 | hasBin: true 1180 | dependencies: 1181 | '@jsdevtools/ez-spawn': 3.0.4 1182 | c12: 1.6.1 1183 | cac: 6.7.14 1184 | fast-glob: 3.3.2 1185 | js-yaml: 4.1.0 1186 | prompts: 2.4.2 1187 | semver: 7.5.4 1188 | dev: true 1189 | 1190 | /bundle-require@4.0.2(esbuild@0.19.12): 1191 | resolution: {integrity: sha512-jwzPOChofl67PSTW2SGubV9HBQAhhR2i6nskiOThauo9dzwDUgOWQScFVaJkjEfYX+UXiD+LEx8EblQMc2wIag==} 1192 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1193 | peerDependencies: 1194 | esbuild: '>=0.17' 1195 | dependencies: 1196 | esbuild: 0.19.12 1197 | load-tsconfig: 0.2.5 1198 | dev: true 1199 | 1200 | /c12@1.6.1: 1201 | resolution: {integrity: sha512-fAZOi3INDvIbmjuwAVVggusyRTxwNdTAnwLay8IsXwhFzDwPPGzFxzrx6L55CPFGPulUSZI0eyFUvRDXveoE3g==} 1202 | dependencies: 1203 | chokidar: 3.5.3 1204 | defu: 6.1.4 1205 | dotenv: 16.4.1 1206 | giget: 1.2.1 1207 | jiti: 1.21.0 1208 | mlly: 1.5.0 1209 | ohash: 1.1.3 1210 | pathe: 1.1.2 1211 | perfect-debounce: 1.0.0 1212 | pkg-types: 1.0.3 1213 | rc9: 2.1.1 1214 | dev: true 1215 | 1216 | /cac@6.7.14: 1217 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 1218 | engines: {node: '>=8'} 1219 | dev: true 1220 | 1221 | /call-me-maybe@1.0.2: 1222 | resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} 1223 | dev: true 1224 | 1225 | /callsites@3.1.0: 1226 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 1227 | engines: {node: '>=6'} 1228 | dev: true 1229 | 1230 | /caniuse-lite@1.0.30001581: 1231 | resolution: {integrity: sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ==} 1232 | dev: true 1233 | 1234 | /chai@4.4.1: 1235 | resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} 1236 | engines: {node: '>=4'} 1237 | dependencies: 1238 | assertion-error: 1.1.0 1239 | check-error: 1.0.3 1240 | deep-eql: 4.1.3 1241 | get-func-name: 2.0.2 1242 | loupe: 2.3.7 1243 | pathval: 1.1.1 1244 | type-detect: 4.0.8 1245 | dev: true 1246 | 1247 | /chalk@2.4.2: 1248 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 1249 | engines: {node: '>=4'} 1250 | dependencies: 1251 | ansi-styles: 3.2.1 1252 | escape-string-regexp: 1.0.5 1253 | supports-color: 5.5.0 1254 | dev: true 1255 | 1256 | /chalk@4.1.2: 1257 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 1258 | engines: {node: '>=10'} 1259 | dependencies: 1260 | ansi-styles: 4.3.0 1261 | supports-color: 7.2.0 1262 | dev: true 1263 | 1264 | /chalk@5.3.0: 1265 | resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} 1266 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 1267 | dev: true 1268 | 1269 | /character-entities-legacy@1.1.4: 1270 | resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} 1271 | dev: true 1272 | 1273 | /character-entities@1.2.4: 1274 | resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} 1275 | dev: true 1276 | 1277 | /character-reference-invalid@1.1.4: 1278 | resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} 1279 | dev: true 1280 | 1281 | /check-error@1.0.3: 1282 | resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} 1283 | dependencies: 1284 | get-func-name: 2.0.2 1285 | dev: true 1286 | 1287 | /chokidar@3.5.3: 1288 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 1289 | engines: {node: '>= 8.10.0'} 1290 | dependencies: 1291 | anymatch: 3.1.3 1292 | braces: 3.0.2 1293 | glob-parent: 5.1.2 1294 | is-binary-path: 2.1.0 1295 | is-glob: 4.0.3 1296 | normalize-path: 3.0.0 1297 | readdirp: 3.6.0 1298 | optionalDependencies: 1299 | fsevents: 2.3.3 1300 | dev: true 1301 | 1302 | /chownr@2.0.0: 1303 | resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} 1304 | engines: {node: '>=10'} 1305 | dev: true 1306 | 1307 | /ci-info@4.0.0: 1308 | resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} 1309 | engines: {node: '>=8'} 1310 | dev: true 1311 | 1312 | /citty@0.1.5: 1313 | resolution: {integrity: sha512-AS7n5NSc0OQVMV9v6wt3ByujNIrne0/cTjiC2MYqhvao57VNfiuVksTSr2p17nVOhEr2KtqiAkGwHcgMC/qUuQ==} 1314 | dependencies: 1315 | consola: 3.2.3 1316 | dev: true 1317 | 1318 | /clean-regexp@1.0.0: 1319 | resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} 1320 | engines: {node: '>=4'} 1321 | dependencies: 1322 | escape-string-regexp: 1.0.5 1323 | dev: true 1324 | 1325 | /cli-cursor@4.0.0: 1326 | resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} 1327 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1328 | dependencies: 1329 | restore-cursor: 4.0.0 1330 | dev: true 1331 | 1332 | /cli-truncate@4.0.0: 1333 | resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} 1334 | engines: {node: '>=18'} 1335 | dependencies: 1336 | slice-ansi: 5.0.0 1337 | string-width: 7.1.0 1338 | dev: true 1339 | 1340 | /cliui@8.0.1: 1341 | resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} 1342 | engines: {node: '>=12'} 1343 | dependencies: 1344 | string-width: 4.2.3 1345 | strip-ansi: 6.0.1 1346 | wrap-ansi: 7.0.0 1347 | dev: true 1348 | 1349 | /color-convert@1.9.3: 1350 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 1351 | dependencies: 1352 | color-name: 1.1.3 1353 | dev: true 1354 | 1355 | /color-convert@2.0.1: 1356 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 1357 | engines: {node: '>=7.0.0'} 1358 | dependencies: 1359 | color-name: 1.1.4 1360 | dev: true 1361 | 1362 | /color-name@1.1.3: 1363 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 1364 | dev: true 1365 | 1366 | /color-name@1.1.4: 1367 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 1368 | dev: true 1369 | 1370 | /colorette@2.0.20: 1371 | resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} 1372 | dev: true 1373 | 1374 | /commander@11.1.0: 1375 | resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} 1376 | engines: {node: '>=16'} 1377 | dev: true 1378 | 1379 | /commander@4.1.1: 1380 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 1381 | engines: {node: '>= 6'} 1382 | dev: true 1383 | 1384 | /comment-parser@1.4.1: 1385 | resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} 1386 | engines: {node: '>= 12.0.0'} 1387 | dev: true 1388 | 1389 | /concat-map@0.0.1: 1390 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 1391 | dev: true 1392 | 1393 | /consola@3.2.3: 1394 | resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} 1395 | engines: {node: ^14.18.0 || >=16.10.0} 1396 | dev: true 1397 | 1398 | /convert-source-map@2.0.0: 1399 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 1400 | dev: true 1401 | 1402 | /core-js-compat@3.35.1: 1403 | resolution: {integrity: sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==} 1404 | dependencies: 1405 | browserslist: 4.22.3 1406 | dev: true 1407 | 1408 | /cross-spawn@7.0.3: 1409 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 1410 | engines: {node: '>= 8'} 1411 | dependencies: 1412 | path-key: 3.1.1 1413 | shebang-command: 2.0.0 1414 | which: 2.0.2 1415 | dev: true 1416 | 1417 | /cssesc@3.0.0: 1418 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 1419 | engines: {node: '>=4'} 1420 | hasBin: true 1421 | dev: true 1422 | 1423 | /debug@3.2.7: 1424 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 1425 | peerDependencies: 1426 | supports-color: '*' 1427 | peerDependenciesMeta: 1428 | supports-color: 1429 | optional: true 1430 | dependencies: 1431 | ms: 2.1.3 1432 | dev: true 1433 | 1434 | /debug@4.3.4: 1435 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 1436 | engines: {node: '>=6.0'} 1437 | peerDependencies: 1438 | supports-color: '*' 1439 | peerDependenciesMeta: 1440 | supports-color: 1441 | optional: true 1442 | dependencies: 1443 | ms: 2.1.2 1444 | dev: true 1445 | 1446 | /deep-eql@4.1.3: 1447 | resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} 1448 | engines: {node: '>=6'} 1449 | dependencies: 1450 | type-detect: 4.0.8 1451 | dev: true 1452 | 1453 | /deep-is@0.1.4: 1454 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 1455 | dev: true 1456 | 1457 | /defu@6.1.4: 1458 | resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} 1459 | dev: true 1460 | 1461 | /destr@2.0.2: 1462 | resolution: {integrity: sha512-65AlobnZMiCET00KaFFjUefxDX0khFA/E4myqZ7a6Sq1yZtR8+FVIvilVX66vF2uobSumxooYZChiRPCKNqhmg==} 1463 | dev: true 1464 | 1465 | /diff-sequences@29.6.3: 1466 | resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} 1467 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1468 | dev: true 1469 | 1470 | /dir-glob@3.0.1: 1471 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 1472 | engines: {node: '>=8'} 1473 | dependencies: 1474 | path-type: 4.0.0 1475 | dev: true 1476 | 1477 | /doctrine@3.0.0: 1478 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 1479 | engines: {node: '>=6.0.0'} 1480 | dependencies: 1481 | esutils: 2.0.3 1482 | dev: true 1483 | 1484 | /dotenv@16.4.1: 1485 | resolution: {integrity: sha512-CjA3y+Dr3FyFDOAMnxZEGtnW9KBR2M0JvvUtXNW+dYJL5ROWxP9DUHCwgFqpMk0OXCc0ljhaNTr2w/kutYIcHQ==} 1486 | engines: {node: '>=12'} 1487 | dev: true 1488 | 1489 | /drizzle-orm@0.29.3(postgres@3.4.3): 1490 | resolution: {integrity: sha512-uSE027csliGSGYD0pqtM+SAQATMREb3eSM/U8s6r+Y0RFwTKwftnwwSkqx3oS65UBgqDOM0gMTl5UGNpt6lW0A==} 1491 | peerDependencies: 1492 | '@aws-sdk/client-rds-data': '>=3' 1493 | '@cloudflare/workers-types': '>=3' 1494 | '@libsql/client': '*' 1495 | '@neondatabase/serverless': '>=0.1' 1496 | '@opentelemetry/api': ^1.4.1 1497 | '@planetscale/database': '>=1' 1498 | '@types/better-sqlite3': '*' 1499 | '@types/pg': '*' 1500 | '@types/react': '>=18' 1501 | '@types/sql.js': '*' 1502 | '@vercel/postgres': '*' 1503 | better-sqlite3: '>=7' 1504 | bun-types: '*' 1505 | expo-sqlite: '>=13.2.0' 1506 | knex: '*' 1507 | kysely: '*' 1508 | mysql2: '>=2' 1509 | pg: '>=8' 1510 | postgres: '>=3' 1511 | react: '>=18' 1512 | sql.js: '>=1' 1513 | sqlite3: '>=5' 1514 | peerDependenciesMeta: 1515 | '@aws-sdk/client-rds-data': 1516 | optional: true 1517 | '@cloudflare/workers-types': 1518 | optional: true 1519 | '@libsql/client': 1520 | optional: true 1521 | '@neondatabase/serverless': 1522 | optional: true 1523 | '@opentelemetry/api': 1524 | optional: true 1525 | '@planetscale/database': 1526 | optional: true 1527 | '@types/better-sqlite3': 1528 | optional: true 1529 | '@types/pg': 1530 | optional: true 1531 | '@types/react': 1532 | optional: true 1533 | '@types/sql.js': 1534 | optional: true 1535 | '@vercel/postgres': 1536 | optional: true 1537 | better-sqlite3: 1538 | optional: true 1539 | bun-types: 1540 | optional: true 1541 | expo-sqlite: 1542 | optional: true 1543 | knex: 1544 | optional: true 1545 | kysely: 1546 | optional: true 1547 | mysql2: 1548 | optional: true 1549 | pg: 1550 | optional: true 1551 | postgres: 1552 | optional: true 1553 | react: 1554 | optional: true 1555 | sql.js: 1556 | optional: true 1557 | sqlite3: 1558 | optional: true 1559 | dependencies: 1560 | postgres: 3.4.3 1561 | dev: true 1562 | 1563 | /eastasianwidth@0.2.0: 1564 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 1565 | dev: true 1566 | 1567 | /electron-to-chromium@1.4.650: 1568 | resolution: {integrity: sha512-sYSQhJCJa4aGA1wYol5cMQgekDBlbVfTRavlGZVr3WZpDdOPcp6a6xUnFfrt8TqZhsBYYbDxJZCjGfHuGupCRQ==} 1569 | dev: true 1570 | 1571 | /emoji-regex@10.3.0: 1572 | resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} 1573 | dev: true 1574 | 1575 | /emoji-regex@8.0.0: 1576 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1577 | dev: true 1578 | 1579 | /emoji-regex@9.2.2: 1580 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 1581 | dev: true 1582 | 1583 | /entities@4.5.0: 1584 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 1585 | engines: {node: '>=0.12'} 1586 | dev: true 1587 | 1588 | /error-ex@1.3.2: 1589 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 1590 | dependencies: 1591 | is-arrayish: 0.2.1 1592 | dev: true 1593 | 1594 | /esbuild@0.19.12: 1595 | resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} 1596 | engines: {node: '>=12'} 1597 | hasBin: true 1598 | requiresBuild: true 1599 | optionalDependencies: 1600 | '@esbuild/aix-ppc64': 0.19.12 1601 | '@esbuild/android-arm': 0.19.12 1602 | '@esbuild/android-arm64': 0.19.12 1603 | '@esbuild/android-x64': 0.19.12 1604 | '@esbuild/darwin-arm64': 0.19.12 1605 | '@esbuild/darwin-x64': 0.19.12 1606 | '@esbuild/freebsd-arm64': 0.19.12 1607 | '@esbuild/freebsd-x64': 0.19.12 1608 | '@esbuild/linux-arm': 0.19.12 1609 | '@esbuild/linux-arm64': 0.19.12 1610 | '@esbuild/linux-ia32': 0.19.12 1611 | '@esbuild/linux-loong64': 0.19.12 1612 | '@esbuild/linux-mips64el': 0.19.12 1613 | '@esbuild/linux-ppc64': 0.19.12 1614 | '@esbuild/linux-riscv64': 0.19.12 1615 | '@esbuild/linux-s390x': 0.19.12 1616 | '@esbuild/linux-x64': 0.19.12 1617 | '@esbuild/netbsd-x64': 0.19.12 1618 | '@esbuild/openbsd-x64': 0.19.12 1619 | '@esbuild/sunos-x64': 0.19.12 1620 | '@esbuild/win32-arm64': 0.19.12 1621 | '@esbuild/win32-ia32': 0.19.12 1622 | '@esbuild/win32-x64': 0.19.12 1623 | dev: true 1624 | 1625 | /escalade@3.1.1: 1626 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 1627 | engines: {node: '>=6'} 1628 | dev: true 1629 | 1630 | /escape-string-regexp@1.0.5: 1631 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 1632 | engines: {node: '>=0.8.0'} 1633 | dev: true 1634 | 1635 | /escape-string-regexp@4.0.0: 1636 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1637 | engines: {node: '>=10'} 1638 | dev: true 1639 | 1640 | /eslint-compat-utils@0.1.2(eslint@8.56.0): 1641 | resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} 1642 | engines: {node: '>=12'} 1643 | peerDependencies: 1644 | eslint: '>=6.0.0' 1645 | dependencies: 1646 | eslint: 8.56.0 1647 | dev: true 1648 | 1649 | /eslint-compat-utils@0.4.1(eslint@8.56.0): 1650 | resolution: {integrity: sha512-5N7ZaJG5pZxUeNNJfUchurLVrunD1xJvyg5kYOIVF8kg1f3ajTikmAu/5fZ9w100omNPOoMjngRszh/Q/uFGMg==} 1651 | engines: {node: '>=12'} 1652 | peerDependencies: 1653 | eslint: '>=6.0.0' 1654 | dependencies: 1655 | eslint: 8.56.0 1656 | semver: 7.5.4 1657 | dev: true 1658 | 1659 | /eslint-config-flat-gitignore@0.1.2: 1660 | resolution: {integrity: sha512-PcBsqtd5QHEZH4ROvpnRN4EP0qcHh9voCCHgtyHxnJZHGspJREcZn7oPqRG/GfWt9m3C0fkC2l5CuBtMig2wXQ==} 1661 | dependencies: 1662 | parse-gitignore: 2.0.0 1663 | dev: true 1664 | 1665 | /eslint-import-resolver-node@0.3.9: 1666 | resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} 1667 | dependencies: 1668 | debug: 3.2.7 1669 | is-core-module: 2.13.1 1670 | resolve: 1.22.8 1671 | transitivePeerDependencies: 1672 | - supports-color 1673 | dev: true 1674 | 1675 | /eslint-merge-processors@0.1.0(eslint@8.56.0): 1676 | resolution: {integrity: sha512-IvRXXtEajLeyssvW4wJcZ2etxkR9mUf4zpNwgI+m/Uac9RfXHskuJefkHUcawVzePnd6xp24enp5jfgdHzjRdQ==} 1677 | peerDependencies: 1678 | eslint: '*' 1679 | dependencies: 1680 | eslint: 8.56.0 1681 | dev: true 1682 | 1683 | /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): 1684 | resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} 1685 | engines: {node: '>=4'} 1686 | peerDependencies: 1687 | '@typescript-eslint/parser': '*' 1688 | eslint: '*' 1689 | eslint-import-resolver-node: '*' 1690 | eslint-import-resolver-typescript: '*' 1691 | eslint-import-resolver-webpack: '*' 1692 | peerDependenciesMeta: 1693 | '@typescript-eslint/parser': 1694 | optional: true 1695 | eslint: 1696 | optional: true 1697 | eslint-import-resolver-node: 1698 | optional: true 1699 | eslint-import-resolver-typescript: 1700 | optional: true 1701 | eslint-import-resolver-webpack: 1702 | optional: true 1703 | dependencies: 1704 | '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) 1705 | debug: 3.2.7 1706 | eslint: 8.56.0 1707 | eslint-import-resolver-node: 0.3.9 1708 | transitivePeerDependencies: 1709 | - supports-color 1710 | dev: true 1711 | 1712 | /eslint-plugin-antfu@2.1.2(eslint@8.56.0): 1713 | resolution: {integrity: sha512-s7ZTOM3uq0iqpp6gF0UEotnvup7f2PHBUftCytLZX0+6C9j9KadKZQh6bVVngAyFgsmeD9+gcBopOYLClb2oDg==} 1714 | peerDependencies: 1715 | eslint: '*' 1716 | dependencies: 1717 | eslint: 8.56.0 1718 | dev: true 1719 | 1720 | /eslint-plugin-es-x@7.5.0(eslint@8.56.0): 1721 | resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} 1722 | engines: {node: ^14.18.0 || >=16.0.0} 1723 | peerDependencies: 1724 | eslint: '>=8' 1725 | dependencies: 1726 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) 1727 | '@eslint-community/regexpp': 4.10.0 1728 | eslint: 8.56.0 1729 | eslint-compat-utils: 0.1.2(eslint@8.56.0) 1730 | dev: true 1731 | 1732 | /eslint-plugin-eslint-comments@3.2.0(eslint@8.56.0): 1733 | resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} 1734 | engines: {node: '>=6.5.0'} 1735 | peerDependencies: 1736 | eslint: '>=4.19.1' 1737 | dependencies: 1738 | escape-string-regexp: 1.0.5 1739 | eslint: 8.56.0 1740 | ignore: 5.3.0 1741 | dev: true 1742 | 1743 | /eslint-plugin-i@2.29.1(@typescript-eslint/parser@6.20.0)(eslint@8.56.0): 1744 | resolution: {integrity: sha512-ORizX37MelIWLbMyqI7hi8VJMf7A0CskMmYkB+lkCX3aF4pkGV7kwx5bSEb4qx7Yce2rAf9s34HqDRPjGRZPNQ==} 1745 | engines: {node: '>=12'} 1746 | peerDependencies: 1747 | eslint: ^7.2.0 || ^8 1748 | dependencies: 1749 | debug: 4.3.4 1750 | doctrine: 3.0.0 1751 | eslint: 8.56.0 1752 | eslint-import-resolver-node: 0.3.9 1753 | eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) 1754 | get-tsconfig: 4.7.2 1755 | is-glob: 4.0.3 1756 | minimatch: 3.1.2 1757 | semver: 7.5.4 1758 | transitivePeerDependencies: 1759 | - '@typescript-eslint/parser' 1760 | - eslint-import-resolver-typescript 1761 | - eslint-import-resolver-webpack 1762 | - supports-color 1763 | dev: true 1764 | 1765 | /eslint-plugin-jsdoc@48.0.4(eslint@8.56.0): 1766 | resolution: {integrity: sha512-A0cH+5svWPXzGZszBjXA1t0aAqVGS+/x3i02KFmb73rU0iMLnadEcVWcD/dGBZHIfAMKr3YpWh58f6wn4N909w==} 1767 | engines: {node: '>=18'} 1768 | peerDependencies: 1769 | eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 1770 | dependencies: 1771 | '@es-joy/jsdoccomment': 0.41.0 1772 | are-docs-informative: 0.0.2 1773 | comment-parser: 1.4.1 1774 | debug: 4.3.4 1775 | escape-string-regexp: 4.0.0 1776 | eslint: 8.56.0 1777 | esquery: 1.5.0 1778 | is-builtin-module: 3.2.1 1779 | semver: 7.5.4 1780 | spdx-expression-parse: 4.0.0 1781 | transitivePeerDependencies: 1782 | - supports-color 1783 | dev: true 1784 | 1785 | /eslint-plugin-jsonc@2.13.0(eslint@8.56.0): 1786 | resolution: {integrity: sha512-2wWdJfpO/UbZzPDABuUVvlUQjfMJa2p2iQfYt/oWxOMpXCcjuiMUSaA02gtY/Dbu82vpaSqc+O7Xq6ECHwtIxA==} 1787 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1788 | peerDependencies: 1789 | eslint: '>=6.0.0' 1790 | dependencies: 1791 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) 1792 | eslint: 8.56.0 1793 | eslint-compat-utils: 0.4.1(eslint@8.56.0) 1794 | espree: 9.6.1 1795 | graphemer: 1.4.0 1796 | jsonc-eslint-parser: 2.4.0 1797 | natural-compare: 1.4.0 1798 | synckit: 0.6.2 1799 | dev: true 1800 | 1801 | /eslint-plugin-markdown@3.0.1(eslint@8.56.0): 1802 | resolution: {integrity: sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A==} 1803 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1804 | peerDependencies: 1805 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 1806 | dependencies: 1807 | eslint: 8.56.0 1808 | mdast-util-from-markdown: 0.8.5 1809 | transitivePeerDependencies: 1810 | - supports-color 1811 | dev: true 1812 | 1813 | /eslint-plugin-n@16.6.2(eslint@8.56.0): 1814 | resolution: {integrity: sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==} 1815 | engines: {node: '>=16.0.0'} 1816 | peerDependencies: 1817 | eslint: '>=7.0.0' 1818 | dependencies: 1819 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) 1820 | builtins: 5.0.1 1821 | eslint: 8.56.0 1822 | eslint-plugin-es-x: 7.5.0(eslint@8.56.0) 1823 | get-tsconfig: 4.7.2 1824 | globals: 13.24.0 1825 | ignore: 5.3.0 1826 | is-builtin-module: 3.2.1 1827 | is-core-module: 2.13.1 1828 | minimatch: 3.1.2 1829 | resolve: 1.22.8 1830 | semver: 7.5.4 1831 | dev: true 1832 | 1833 | /eslint-plugin-no-only-tests@3.1.0: 1834 | resolution: {integrity: sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==} 1835 | engines: {node: '>=5.0.0'} 1836 | dev: true 1837 | 1838 | /eslint-plugin-perfectionist@2.5.0(eslint@8.56.0)(typescript@5.3.3)(vue-eslint-parser@9.4.2): 1839 | resolution: {integrity: sha512-F6XXcq4mKKUe/SREoMGQqzgw6cgCgf3pFzkFfQVIGtqD1yXVpQjnhTepzhBeZfxZwgMzR9HO4yH4CUhIQ2WBcQ==} 1840 | peerDependencies: 1841 | astro-eslint-parser: ^0.16.0 1842 | eslint: '>=8.0.0' 1843 | svelte: '>=3.0.0' 1844 | svelte-eslint-parser: ^0.33.0 1845 | vue-eslint-parser: '>=9.0.0' 1846 | peerDependenciesMeta: 1847 | astro-eslint-parser: 1848 | optional: true 1849 | svelte: 1850 | optional: true 1851 | svelte-eslint-parser: 1852 | optional: true 1853 | vue-eslint-parser: 1854 | optional: true 1855 | dependencies: 1856 | '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) 1857 | eslint: 8.56.0 1858 | minimatch: 9.0.3 1859 | natural-compare-lite: 1.4.0 1860 | vue-eslint-parser: 9.4.2(eslint@8.56.0) 1861 | transitivePeerDependencies: 1862 | - supports-color 1863 | - typescript 1864 | dev: true 1865 | 1866 | /eslint-plugin-toml@0.9.2(eslint@8.56.0): 1867 | resolution: {integrity: sha512-ri0xf63PYf3pIq/WY9BIwrqxZmGTIwSkAO0bHddI0ajUwN4KGz6W8vOvdXFHOpRdRfzxlmXze/vfsY/aTEXESg==} 1868 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1869 | peerDependencies: 1870 | eslint: '>=6.0.0' 1871 | dependencies: 1872 | debug: 4.3.4 1873 | eslint: 8.56.0 1874 | eslint-compat-utils: 0.4.1(eslint@8.56.0) 1875 | lodash: 4.17.21 1876 | toml-eslint-parser: 0.9.3 1877 | transitivePeerDependencies: 1878 | - supports-color 1879 | dev: true 1880 | 1881 | /eslint-plugin-unicorn@50.0.1(eslint@8.56.0): 1882 | resolution: {integrity: sha512-KxenCZxqSYW0GWHH18okDlOQcpezcitm5aOSz6EnobyJ6BIByiPDviQRjJIUAjG/tMN11958MxaQ+qCoU6lfDA==} 1883 | engines: {node: '>=16'} 1884 | peerDependencies: 1885 | eslint: '>=8.56.0' 1886 | dependencies: 1887 | '@babel/helper-validator-identifier': 7.22.20 1888 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) 1889 | '@eslint/eslintrc': 2.1.4 1890 | ci-info: 4.0.0 1891 | clean-regexp: 1.0.0 1892 | core-js-compat: 3.35.1 1893 | eslint: 8.56.0 1894 | esquery: 1.5.0 1895 | indent-string: 4.0.0 1896 | is-builtin-module: 3.2.1 1897 | jsesc: 3.0.2 1898 | pluralize: 8.0.0 1899 | read-pkg-up: 7.0.1 1900 | regexp-tree: 0.1.27 1901 | regjsparser: 0.10.0 1902 | semver: 7.5.4 1903 | strip-indent: 3.0.0 1904 | transitivePeerDependencies: 1905 | - supports-color 1906 | dev: true 1907 | 1908 | /eslint-plugin-unused-imports@3.0.0(@typescript-eslint/eslint-plugin@6.20.0)(eslint@8.56.0): 1909 | resolution: {integrity: sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==} 1910 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1911 | peerDependencies: 1912 | '@typescript-eslint/eslint-plugin': ^6.0.0 1913 | eslint: ^8.0.0 1914 | peerDependenciesMeta: 1915 | '@typescript-eslint/eslint-plugin': 1916 | optional: true 1917 | dependencies: 1918 | '@typescript-eslint/eslint-plugin': 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3) 1919 | eslint: 8.56.0 1920 | eslint-rule-composer: 0.3.0 1921 | dev: true 1922 | 1923 | /eslint-plugin-vitest@0.3.21(@typescript-eslint/eslint-plugin@6.20.0)(eslint@8.56.0)(typescript@5.3.3)(vitest@1.2.2): 1924 | resolution: {integrity: sha512-oYwR1MrwaBw/OG6CKU+SJYleAc442w6CWL1RTQl5WLwy8X3sh0bgHIQk5iEtmTak3Q+XAvZglr0bIoDOjFdkcw==} 1925 | engines: {node: ^18.0.0 || >= 20.0.0} 1926 | peerDependencies: 1927 | '@typescript-eslint/eslint-plugin': '*' 1928 | eslint: '>=8.0.0' 1929 | vitest: '*' 1930 | peerDependenciesMeta: 1931 | '@typescript-eslint/eslint-plugin': 1932 | optional: true 1933 | vitest: 1934 | optional: true 1935 | dependencies: 1936 | '@typescript-eslint/eslint-plugin': 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3) 1937 | '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) 1938 | eslint: 8.56.0 1939 | vitest: 1.2.2 1940 | transitivePeerDependencies: 1941 | - supports-color 1942 | - typescript 1943 | dev: true 1944 | 1945 | /eslint-plugin-vue@9.20.1(eslint@8.56.0): 1946 | resolution: {integrity: sha512-GyCs8K3lkEvoyC1VV97GJhP1SvqsKCiWGHnbn0gVUYiUhaH2+nB+Dv1uekv1THFMPbBfYxukrzQdltw950k+LQ==} 1947 | engines: {node: ^14.17.0 || >=16.0.0} 1948 | peerDependencies: 1949 | eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 1950 | dependencies: 1951 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) 1952 | eslint: 8.56.0 1953 | natural-compare: 1.4.0 1954 | nth-check: 2.1.1 1955 | postcss-selector-parser: 6.0.15 1956 | semver: 7.5.4 1957 | vue-eslint-parser: 9.4.2(eslint@8.56.0) 1958 | xml-name-validator: 4.0.0 1959 | transitivePeerDependencies: 1960 | - supports-color 1961 | dev: true 1962 | 1963 | /eslint-plugin-yml@1.12.2(eslint@8.56.0): 1964 | resolution: {integrity: sha512-hvS9p08FhPT7i/ynwl7/Wt7ke7Rf4P2D6fT8lZlL43peZDTsHtH2A0SIFQ7Kt7+mJ6if6P+FX3iJhMkdnxQwpg==} 1965 | engines: {node: ^14.17.0 || >=16.0.0} 1966 | peerDependencies: 1967 | eslint: '>=6.0.0' 1968 | dependencies: 1969 | debug: 4.3.4 1970 | eslint: 8.56.0 1971 | eslint-compat-utils: 0.4.1(eslint@8.56.0) 1972 | lodash: 4.17.21 1973 | natural-compare: 1.4.0 1974 | yaml-eslint-parser: 1.2.2 1975 | transitivePeerDependencies: 1976 | - supports-color 1977 | dev: true 1978 | 1979 | /eslint-processor-vue-blocks@0.1.1(@vue/compiler-sfc@3.4.15)(eslint@8.56.0): 1980 | resolution: {integrity: sha512-9+dU5lU881log570oBwpelaJmOfOzSniben7IWEDRYQPPWwlvaV7NhOtsTuUWDqpYT+dtKKWPsgz4OkOi+aZnA==} 1981 | peerDependencies: 1982 | '@vue/compiler-sfc': ^3.3.0 1983 | eslint: ^8.50.0 1984 | dependencies: 1985 | '@vue/compiler-sfc': 3.4.15 1986 | eslint: 8.56.0 1987 | dev: true 1988 | 1989 | /eslint-rule-composer@0.3.0: 1990 | resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} 1991 | engines: {node: '>=4.0.0'} 1992 | dev: true 1993 | 1994 | /eslint-scope@7.2.2: 1995 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 1996 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1997 | dependencies: 1998 | esrecurse: 4.3.0 1999 | estraverse: 5.3.0 2000 | dev: true 2001 | 2002 | /eslint-visitor-keys@3.4.3: 2003 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 2004 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2005 | dev: true 2006 | 2007 | /eslint@8.56.0: 2008 | resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} 2009 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2010 | hasBin: true 2011 | dependencies: 2012 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) 2013 | '@eslint-community/regexpp': 4.10.0 2014 | '@eslint/eslintrc': 2.1.4 2015 | '@eslint/js': 8.56.0 2016 | '@humanwhocodes/config-array': 0.11.14 2017 | '@humanwhocodes/module-importer': 1.0.1 2018 | '@nodelib/fs.walk': 1.2.8 2019 | '@ungap/structured-clone': 1.2.0 2020 | ajv: 6.12.6 2021 | chalk: 4.1.2 2022 | cross-spawn: 7.0.3 2023 | debug: 4.3.4 2024 | doctrine: 3.0.0 2025 | escape-string-regexp: 4.0.0 2026 | eslint-scope: 7.2.2 2027 | eslint-visitor-keys: 3.4.3 2028 | espree: 9.6.1 2029 | esquery: 1.5.0 2030 | esutils: 2.0.3 2031 | fast-deep-equal: 3.1.3 2032 | file-entry-cache: 6.0.1 2033 | find-up: 5.0.0 2034 | glob-parent: 6.0.2 2035 | globals: 13.24.0 2036 | graphemer: 1.4.0 2037 | ignore: 5.3.0 2038 | imurmurhash: 0.1.4 2039 | is-glob: 4.0.3 2040 | is-path-inside: 3.0.3 2041 | js-yaml: 4.1.0 2042 | json-stable-stringify-without-jsonify: 1.0.1 2043 | levn: 0.4.1 2044 | lodash.merge: 4.6.2 2045 | minimatch: 3.1.2 2046 | natural-compare: 1.4.0 2047 | optionator: 0.9.3 2048 | strip-ansi: 6.0.1 2049 | text-table: 0.2.0 2050 | transitivePeerDependencies: 2051 | - supports-color 2052 | dev: true 2053 | 2054 | /espree@9.6.1: 2055 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 2056 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2057 | dependencies: 2058 | acorn: 8.11.3 2059 | acorn-jsx: 5.3.2(acorn@8.11.3) 2060 | eslint-visitor-keys: 3.4.3 2061 | dev: true 2062 | 2063 | /esquery@1.5.0: 2064 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 2065 | engines: {node: '>=0.10'} 2066 | dependencies: 2067 | estraverse: 5.3.0 2068 | dev: true 2069 | 2070 | /esrecurse@4.3.0: 2071 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 2072 | engines: {node: '>=4.0'} 2073 | dependencies: 2074 | estraverse: 5.3.0 2075 | dev: true 2076 | 2077 | /estraverse@5.3.0: 2078 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 2079 | engines: {node: '>=4.0'} 2080 | dev: true 2081 | 2082 | /estree-walker@2.0.2: 2083 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 2084 | dev: true 2085 | 2086 | /estree-walker@3.0.3: 2087 | resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 2088 | dependencies: 2089 | '@types/estree': 1.0.5 2090 | dev: true 2091 | 2092 | /esutils@2.0.3: 2093 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 2094 | engines: {node: '>=0.10.0'} 2095 | dev: true 2096 | 2097 | /eventemitter3@5.0.1: 2098 | resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} 2099 | dev: true 2100 | 2101 | /execa@5.1.1: 2102 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 2103 | engines: {node: '>=10'} 2104 | dependencies: 2105 | cross-spawn: 7.0.3 2106 | get-stream: 6.0.1 2107 | human-signals: 2.1.0 2108 | is-stream: 2.0.1 2109 | merge-stream: 2.0.0 2110 | npm-run-path: 4.0.1 2111 | onetime: 5.1.2 2112 | signal-exit: 3.0.7 2113 | strip-final-newline: 2.0.0 2114 | dev: true 2115 | 2116 | /execa@8.0.1: 2117 | resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} 2118 | engines: {node: '>=16.17'} 2119 | dependencies: 2120 | cross-spawn: 7.0.3 2121 | get-stream: 8.0.1 2122 | human-signals: 5.0.0 2123 | is-stream: 3.0.0 2124 | merge-stream: 2.0.0 2125 | npm-run-path: 5.2.0 2126 | onetime: 6.0.0 2127 | signal-exit: 4.1.0 2128 | strip-final-newline: 3.0.0 2129 | dev: true 2130 | 2131 | /fast-deep-equal@3.1.3: 2132 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 2133 | dev: true 2134 | 2135 | /fast-glob@3.3.2: 2136 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 2137 | engines: {node: '>=8.6.0'} 2138 | dependencies: 2139 | '@nodelib/fs.stat': 2.0.5 2140 | '@nodelib/fs.walk': 1.2.8 2141 | glob-parent: 5.1.2 2142 | merge2: 1.4.1 2143 | micromatch: 4.0.5 2144 | dev: true 2145 | 2146 | /fast-json-stable-stringify@2.1.0: 2147 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 2148 | dev: true 2149 | 2150 | /fast-levenshtein@2.0.6: 2151 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 2152 | dev: true 2153 | 2154 | /fastq@1.17.0: 2155 | resolution: {integrity: sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==} 2156 | dependencies: 2157 | reusify: 1.0.4 2158 | dev: true 2159 | 2160 | /file-entry-cache@6.0.1: 2161 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 2162 | engines: {node: ^10.12.0 || >=12.0.0} 2163 | dependencies: 2164 | flat-cache: 3.2.0 2165 | dev: true 2166 | 2167 | /fill-range@7.0.1: 2168 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 2169 | engines: {node: '>=8'} 2170 | dependencies: 2171 | to-regex-range: 5.0.1 2172 | dev: true 2173 | 2174 | /find-up@4.1.0: 2175 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 2176 | engines: {node: '>=8'} 2177 | dependencies: 2178 | locate-path: 5.0.0 2179 | path-exists: 4.0.0 2180 | dev: true 2181 | 2182 | /find-up@5.0.0: 2183 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 2184 | engines: {node: '>=10'} 2185 | dependencies: 2186 | locate-path: 6.0.0 2187 | path-exists: 4.0.0 2188 | dev: true 2189 | 2190 | /flat-cache@3.2.0: 2191 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} 2192 | engines: {node: ^10.12.0 || >=12.0.0} 2193 | dependencies: 2194 | flatted: 3.2.9 2195 | keyv: 4.5.4 2196 | rimraf: 3.0.2 2197 | dev: true 2198 | 2199 | /flat@5.0.2: 2200 | resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} 2201 | hasBin: true 2202 | dev: true 2203 | 2204 | /flatted@3.2.9: 2205 | resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} 2206 | dev: true 2207 | 2208 | /foreground-child@3.1.1: 2209 | resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} 2210 | engines: {node: '>=14'} 2211 | dependencies: 2212 | cross-spawn: 7.0.3 2213 | signal-exit: 4.1.0 2214 | dev: true 2215 | 2216 | /fs-minipass@2.1.0: 2217 | resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} 2218 | engines: {node: '>= 8'} 2219 | dependencies: 2220 | minipass: 3.3.6 2221 | dev: true 2222 | 2223 | /fs.realpath@1.0.0: 2224 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 2225 | dev: true 2226 | 2227 | /fsevents@2.3.3: 2228 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 2229 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 2230 | os: [darwin] 2231 | requiresBuild: true 2232 | dev: true 2233 | optional: true 2234 | 2235 | /function-bind@1.1.2: 2236 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 2237 | dev: true 2238 | 2239 | /get-caller-file@2.0.5: 2240 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 2241 | engines: {node: 6.* || 8.* || >= 10.*} 2242 | dev: true 2243 | 2244 | /get-east-asian-width@1.2.0: 2245 | resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} 2246 | engines: {node: '>=18'} 2247 | dev: true 2248 | 2249 | /get-func-name@2.0.2: 2250 | resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} 2251 | dev: true 2252 | 2253 | /get-stream@6.0.1: 2254 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 2255 | engines: {node: '>=10'} 2256 | dev: true 2257 | 2258 | /get-stream@8.0.1: 2259 | resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} 2260 | engines: {node: '>=16'} 2261 | dev: true 2262 | 2263 | /get-tsconfig@4.7.2: 2264 | resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} 2265 | dependencies: 2266 | resolve-pkg-maps: 1.0.0 2267 | dev: true 2268 | 2269 | /giget@1.2.1: 2270 | resolution: {integrity: sha512-4VG22mopWtIeHwogGSy1FViXVo0YT+m6BrqZfz0JJFwbSsePsCdOzdLIIli5BtMp7Xe8f/o2OmBpQX2NBOC24g==} 2271 | hasBin: true 2272 | dependencies: 2273 | citty: 0.1.5 2274 | consola: 3.2.3 2275 | defu: 6.1.4 2276 | node-fetch-native: 1.6.1 2277 | nypm: 0.3.6 2278 | ohash: 1.1.3 2279 | pathe: 1.1.2 2280 | tar: 6.2.0 2281 | dev: true 2282 | 2283 | /glob-parent@5.1.2: 2284 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 2285 | engines: {node: '>= 6'} 2286 | dependencies: 2287 | is-glob: 4.0.3 2288 | dev: true 2289 | 2290 | /glob-parent@6.0.2: 2291 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 2292 | engines: {node: '>=10.13.0'} 2293 | dependencies: 2294 | is-glob: 4.0.3 2295 | dev: true 2296 | 2297 | /glob@10.3.10: 2298 | resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} 2299 | engines: {node: '>=16 || 14 >=14.17'} 2300 | hasBin: true 2301 | dependencies: 2302 | foreground-child: 3.1.1 2303 | jackspeak: 2.3.6 2304 | minimatch: 9.0.3 2305 | minipass: 7.0.4 2306 | path-scurry: 1.10.1 2307 | dev: true 2308 | 2309 | /glob@7.2.3: 2310 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 2311 | dependencies: 2312 | fs.realpath: 1.0.0 2313 | inflight: 1.0.6 2314 | inherits: 2.0.4 2315 | minimatch: 3.1.2 2316 | once: 1.4.0 2317 | path-is-absolute: 1.0.1 2318 | dev: true 2319 | 2320 | /globals@13.24.0: 2321 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} 2322 | engines: {node: '>=8'} 2323 | dependencies: 2324 | type-fest: 0.20.2 2325 | dev: true 2326 | 2327 | /globby@11.1.0: 2328 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 2329 | engines: {node: '>=10'} 2330 | dependencies: 2331 | array-union: 2.1.0 2332 | dir-glob: 3.0.1 2333 | fast-glob: 3.3.2 2334 | ignore: 5.3.0 2335 | merge2: 1.4.1 2336 | slash: 3.0.0 2337 | dev: true 2338 | 2339 | /graphemer@1.4.0: 2340 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 2341 | dev: true 2342 | 2343 | /has-flag@3.0.0: 2344 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 2345 | engines: {node: '>=4'} 2346 | dev: true 2347 | 2348 | /has-flag@4.0.0: 2349 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 2350 | engines: {node: '>=8'} 2351 | dev: true 2352 | 2353 | /hasown@2.0.0: 2354 | resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} 2355 | engines: {node: '>= 0.4'} 2356 | dependencies: 2357 | function-bind: 1.1.2 2358 | dev: true 2359 | 2360 | /hosted-git-info@2.8.9: 2361 | resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} 2362 | dev: true 2363 | 2364 | /html-escaper@2.0.2: 2365 | resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} 2366 | dev: true 2367 | 2368 | /human-signals@2.1.0: 2369 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 2370 | engines: {node: '>=10.17.0'} 2371 | dev: true 2372 | 2373 | /human-signals@5.0.0: 2374 | resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} 2375 | engines: {node: '>=16.17.0'} 2376 | dev: true 2377 | 2378 | /ignore@5.3.0: 2379 | resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} 2380 | engines: {node: '>= 4'} 2381 | dev: true 2382 | 2383 | /import-fresh@3.3.0: 2384 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 2385 | engines: {node: '>=6'} 2386 | dependencies: 2387 | parent-module: 1.0.1 2388 | resolve-from: 4.0.0 2389 | dev: true 2390 | 2391 | /imurmurhash@0.1.4: 2392 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 2393 | engines: {node: '>=0.8.19'} 2394 | dev: true 2395 | 2396 | /indent-string@4.0.0: 2397 | resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} 2398 | engines: {node: '>=8'} 2399 | dev: true 2400 | 2401 | /inflight@1.0.6: 2402 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 2403 | dependencies: 2404 | once: 1.4.0 2405 | wrappy: 1.0.2 2406 | dev: true 2407 | 2408 | /inherits@2.0.4: 2409 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 2410 | dev: true 2411 | 2412 | /is-alphabetical@1.0.4: 2413 | resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} 2414 | dev: true 2415 | 2416 | /is-alphanumerical@1.0.4: 2417 | resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} 2418 | dependencies: 2419 | is-alphabetical: 1.0.4 2420 | is-decimal: 1.0.4 2421 | dev: true 2422 | 2423 | /is-arrayish@0.2.1: 2424 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} 2425 | dev: true 2426 | 2427 | /is-binary-path@2.1.0: 2428 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 2429 | engines: {node: '>=8'} 2430 | dependencies: 2431 | binary-extensions: 2.2.0 2432 | dev: true 2433 | 2434 | /is-builtin-module@3.2.1: 2435 | resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} 2436 | engines: {node: '>=6'} 2437 | dependencies: 2438 | builtin-modules: 3.3.0 2439 | dev: true 2440 | 2441 | /is-core-module@2.13.1: 2442 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} 2443 | dependencies: 2444 | hasown: 2.0.0 2445 | dev: true 2446 | 2447 | /is-decimal@1.0.4: 2448 | resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} 2449 | dev: true 2450 | 2451 | /is-extglob@2.1.1: 2452 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 2453 | engines: {node: '>=0.10.0'} 2454 | dev: true 2455 | 2456 | /is-fullwidth-code-point@3.0.0: 2457 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 2458 | engines: {node: '>=8'} 2459 | dev: true 2460 | 2461 | /is-fullwidth-code-point@4.0.0: 2462 | resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} 2463 | engines: {node: '>=12'} 2464 | dev: true 2465 | 2466 | /is-fullwidth-code-point@5.0.0: 2467 | resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} 2468 | engines: {node: '>=18'} 2469 | dependencies: 2470 | get-east-asian-width: 1.2.0 2471 | dev: true 2472 | 2473 | /is-glob@4.0.3: 2474 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 2475 | engines: {node: '>=0.10.0'} 2476 | dependencies: 2477 | is-extglob: 2.1.1 2478 | dev: true 2479 | 2480 | /is-hexadecimal@1.0.4: 2481 | resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} 2482 | dev: true 2483 | 2484 | /is-number@7.0.0: 2485 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 2486 | engines: {node: '>=0.12.0'} 2487 | dev: true 2488 | 2489 | /is-path-inside@3.0.3: 2490 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 2491 | engines: {node: '>=8'} 2492 | dev: true 2493 | 2494 | /is-stream@2.0.1: 2495 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 2496 | engines: {node: '>=8'} 2497 | dev: true 2498 | 2499 | /is-stream@3.0.0: 2500 | resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} 2501 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2502 | dev: true 2503 | 2504 | /isexe@2.0.0: 2505 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 2506 | dev: true 2507 | 2508 | /istanbul-lib-coverage@3.2.2: 2509 | resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} 2510 | engines: {node: '>=8'} 2511 | dev: true 2512 | 2513 | /istanbul-lib-report@3.0.1: 2514 | resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} 2515 | engines: {node: '>=10'} 2516 | dependencies: 2517 | istanbul-lib-coverage: 3.2.2 2518 | make-dir: 4.0.0 2519 | supports-color: 7.2.0 2520 | dev: true 2521 | 2522 | /istanbul-lib-source-maps@4.0.1: 2523 | resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} 2524 | engines: {node: '>=10'} 2525 | dependencies: 2526 | debug: 4.3.4 2527 | istanbul-lib-coverage: 3.2.2 2528 | source-map: 0.6.1 2529 | transitivePeerDependencies: 2530 | - supports-color 2531 | dev: true 2532 | 2533 | /istanbul-reports@3.1.6: 2534 | resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} 2535 | engines: {node: '>=8'} 2536 | dependencies: 2537 | html-escaper: 2.0.2 2538 | istanbul-lib-report: 3.0.1 2539 | dev: true 2540 | 2541 | /jackspeak@2.3.6: 2542 | resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} 2543 | engines: {node: '>=14'} 2544 | dependencies: 2545 | '@isaacs/cliui': 8.0.2 2546 | optionalDependencies: 2547 | '@pkgjs/parseargs': 0.11.0 2548 | dev: true 2549 | 2550 | /jiti@1.21.0: 2551 | resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} 2552 | hasBin: true 2553 | dev: true 2554 | 2555 | /joycon@3.1.1: 2556 | resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 2557 | engines: {node: '>=10'} 2558 | dev: true 2559 | 2560 | /js-tokens@4.0.0: 2561 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 2562 | dev: true 2563 | 2564 | /js-yaml@4.1.0: 2565 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 2566 | hasBin: true 2567 | dependencies: 2568 | argparse: 2.0.1 2569 | dev: true 2570 | 2571 | /jsdoc-type-pratt-parser@4.0.0: 2572 | resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} 2573 | engines: {node: '>=12.0.0'} 2574 | dev: true 2575 | 2576 | /jsesc@0.5.0: 2577 | resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} 2578 | hasBin: true 2579 | dev: true 2580 | 2581 | /jsesc@3.0.2: 2582 | resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} 2583 | engines: {node: '>=6'} 2584 | hasBin: true 2585 | dev: true 2586 | 2587 | /json-buffer@3.0.1: 2588 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 2589 | dev: true 2590 | 2591 | /json-parse-even-better-errors@2.3.1: 2592 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 2593 | dev: true 2594 | 2595 | /json-schema-traverse@0.4.1: 2596 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 2597 | dev: true 2598 | 2599 | /json-stable-stringify-without-jsonify@1.0.1: 2600 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 2601 | dev: true 2602 | 2603 | /jsonc-eslint-parser@2.4.0: 2604 | resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} 2605 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2606 | dependencies: 2607 | acorn: 8.11.3 2608 | eslint-visitor-keys: 3.4.3 2609 | espree: 9.6.1 2610 | semver: 7.5.4 2611 | dev: true 2612 | 2613 | /jsonc-parser@3.2.1: 2614 | resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} 2615 | dev: true 2616 | 2617 | /keyv@4.5.4: 2618 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 2619 | dependencies: 2620 | json-buffer: 3.0.1 2621 | dev: true 2622 | 2623 | /kleur@3.0.3: 2624 | resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} 2625 | engines: {node: '>=6'} 2626 | dev: true 2627 | 2628 | /levn@0.4.1: 2629 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 2630 | engines: {node: '>= 0.8.0'} 2631 | dependencies: 2632 | prelude-ls: 1.2.1 2633 | type-check: 0.4.0 2634 | dev: true 2635 | 2636 | /lilconfig@3.0.0: 2637 | resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} 2638 | engines: {node: '>=14'} 2639 | dev: true 2640 | 2641 | /lines-and-columns@1.2.4: 2642 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 2643 | dev: true 2644 | 2645 | /lint-staged@15.2.0: 2646 | resolution: {integrity: sha512-TFZzUEV00f+2YLaVPWBWGAMq7So6yQx+GG8YRMDeOEIf95Zn5RyiLMsEiX4KTNl9vq/w+NqRJkLA1kPIo15ufQ==} 2647 | engines: {node: '>=18.12.0'} 2648 | hasBin: true 2649 | dependencies: 2650 | chalk: 5.3.0 2651 | commander: 11.1.0 2652 | debug: 4.3.4 2653 | execa: 8.0.1 2654 | lilconfig: 3.0.0 2655 | listr2: 8.0.0 2656 | micromatch: 4.0.5 2657 | pidtree: 0.6.0 2658 | string-argv: 0.3.2 2659 | yaml: 2.3.4 2660 | transitivePeerDependencies: 2661 | - supports-color 2662 | dev: true 2663 | 2664 | /listr2@8.0.0: 2665 | resolution: {integrity: sha512-u8cusxAcyqAiQ2RhYvV7kRKNLgUvtObIbhOX2NCXqvp1UU32xIg5CT22ykS2TPKJXZWJwtK3IKLiqAGlGNE+Zg==} 2666 | engines: {node: '>=18.0.0'} 2667 | dependencies: 2668 | cli-truncate: 4.0.0 2669 | colorette: 2.0.20 2670 | eventemitter3: 5.0.1 2671 | log-update: 6.0.0 2672 | rfdc: 1.3.1 2673 | wrap-ansi: 9.0.0 2674 | dev: true 2675 | 2676 | /load-tsconfig@0.2.5: 2677 | resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} 2678 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2679 | dev: true 2680 | 2681 | /local-pkg@0.5.0: 2682 | resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} 2683 | engines: {node: '>=14'} 2684 | dependencies: 2685 | mlly: 1.5.0 2686 | pkg-types: 1.0.3 2687 | dev: true 2688 | 2689 | /locate-path@5.0.0: 2690 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 2691 | engines: {node: '>=8'} 2692 | dependencies: 2693 | p-locate: 4.1.0 2694 | dev: true 2695 | 2696 | /locate-path@6.0.0: 2697 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 2698 | engines: {node: '>=10'} 2699 | dependencies: 2700 | p-locate: 5.0.0 2701 | dev: true 2702 | 2703 | /lodash.merge@4.6.2: 2704 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 2705 | dev: true 2706 | 2707 | /lodash.sortby@4.7.0: 2708 | resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} 2709 | dev: true 2710 | 2711 | /lodash@4.17.21: 2712 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 2713 | dev: true 2714 | 2715 | /log-update@6.0.0: 2716 | resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==} 2717 | engines: {node: '>=18'} 2718 | dependencies: 2719 | ansi-escapes: 6.2.0 2720 | cli-cursor: 4.0.0 2721 | slice-ansi: 7.1.0 2722 | strip-ansi: 7.1.0 2723 | wrap-ansi: 9.0.0 2724 | dev: true 2725 | 2726 | /loupe@2.3.7: 2727 | resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} 2728 | dependencies: 2729 | get-func-name: 2.0.2 2730 | dev: true 2731 | 2732 | /lru-cache@10.2.0: 2733 | resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} 2734 | engines: {node: 14 || >=16.14} 2735 | dev: true 2736 | 2737 | /lru-cache@6.0.0: 2738 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 2739 | engines: {node: '>=10'} 2740 | dependencies: 2741 | yallist: 4.0.0 2742 | dev: true 2743 | 2744 | /magic-string@0.30.5: 2745 | resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} 2746 | engines: {node: '>=12'} 2747 | dependencies: 2748 | '@jridgewell/sourcemap-codec': 1.4.15 2749 | dev: true 2750 | 2751 | /magicast@0.3.3: 2752 | resolution: {integrity: sha512-ZbrP1Qxnpoes8sz47AM0z08U+jW6TyRgZzcWy3Ma3vDhJttwMwAFDMMQFobwdBxByBD46JYmxRzeF7w2+wJEuw==} 2753 | dependencies: 2754 | '@babel/parser': 7.23.9 2755 | '@babel/types': 7.23.9 2756 | source-map-js: 1.0.2 2757 | dev: true 2758 | 2759 | /make-dir@4.0.0: 2760 | resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} 2761 | engines: {node: '>=10'} 2762 | dependencies: 2763 | semver: 7.5.4 2764 | dev: true 2765 | 2766 | /mdast-util-from-markdown@0.8.5: 2767 | resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} 2768 | dependencies: 2769 | '@types/mdast': 3.0.15 2770 | mdast-util-to-string: 2.0.0 2771 | micromark: 2.11.4 2772 | parse-entities: 2.0.0 2773 | unist-util-stringify-position: 2.0.3 2774 | transitivePeerDependencies: 2775 | - supports-color 2776 | dev: true 2777 | 2778 | /mdast-util-to-string@2.0.0: 2779 | resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} 2780 | dev: true 2781 | 2782 | /merge-stream@2.0.0: 2783 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 2784 | dev: true 2785 | 2786 | /merge2@1.4.1: 2787 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 2788 | engines: {node: '>= 8'} 2789 | dev: true 2790 | 2791 | /micromark@2.11.4: 2792 | resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} 2793 | dependencies: 2794 | debug: 4.3.4 2795 | parse-entities: 2.0.0 2796 | transitivePeerDependencies: 2797 | - supports-color 2798 | dev: true 2799 | 2800 | /micromatch@4.0.5: 2801 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 2802 | engines: {node: '>=8.6'} 2803 | dependencies: 2804 | braces: 3.0.2 2805 | picomatch: 2.3.1 2806 | dev: true 2807 | 2808 | /mimic-fn@2.1.0: 2809 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 2810 | engines: {node: '>=6'} 2811 | dev: true 2812 | 2813 | /mimic-fn@4.0.0: 2814 | resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} 2815 | engines: {node: '>=12'} 2816 | dev: true 2817 | 2818 | /min-indent@1.0.1: 2819 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 2820 | engines: {node: '>=4'} 2821 | dev: true 2822 | 2823 | /minimatch@3.1.2: 2824 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 2825 | dependencies: 2826 | brace-expansion: 1.1.11 2827 | dev: true 2828 | 2829 | /minimatch@9.0.3: 2830 | resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} 2831 | engines: {node: '>=16 || 14 >=14.17'} 2832 | dependencies: 2833 | brace-expansion: 2.0.1 2834 | dev: true 2835 | 2836 | /minipass@3.3.6: 2837 | resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} 2838 | engines: {node: '>=8'} 2839 | dependencies: 2840 | yallist: 4.0.0 2841 | dev: true 2842 | 2843 | /minipass@5.0.0: 2844 | resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} 2845 | engines: {node: '>=8'} 2846 | dev: true 2847 | 2848 | /minipass@7.0.4: 2849 | resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} 2850 | engines: {node: '>=16 || 14 >=14.17'} 2851 | dev: true 2852 | 2853 | /minizlib@2.1.2: 2854 | resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} 2855 | engines: {node: '>= 8'} 2856 | dependencies: 2857 | minipass: 3.3.6 2858 | yallist: 4.0.0 2859 | dev: true 2860 | 2861 | /mkdirp@1.0.4: 2862 | resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} 2863 | engines: {node: '>=10'} 2864 | hasBin: true 2865 | dev: true 2866 | 2867 | /mlly@1.5.0: 2868 | resolution: {integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==} 2869 | dependencies: 2870 | acorn: 8.11.3 2871 | pathe: 1.1.2 2872 | pkg-types: 1.0.3 2873 | ufo: 1.3.2 2874 | dev: true 2875 | 2876 | /ms@2.1.2: 2877 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 2878 | dev: true 2879 | 2880 | /ms@2.1.3: 2881 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 2882 | dev: true 2883 | 2884 | /mz@2.7.0: 2885 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 2886 | dependencies: 2887 | any-promise: 1.3.0 2888 | object-assign: 4.1.1 2889 | thenify-all: 1.6.0 2890 | dev: true 2891 | 2892 | /nanoid@3.3.7: 2893 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 2894 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 2895 | hasBin: true 2896 | dev: true 2897 | 2898 | /natural-compare-lite@1.4.0: 2899 | resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} 2900 | dev: true 2901 | 2902 | /natural-compare@1.4.0: 2903 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 2904 | dev: true 2905 | 2906 | /node-fetch-native@1.6.1: 2907 | resolution: {integrity: sha512-bW9T/uJDPAJB2YNYEpWzE54U5O3MQidXsOyTfnbKYtTtFexRvGzb1waphBN4ZwP6EcIvYYEOwW0b72BpAqydTw==} 2908 | dev: true 2909 | 2910 | /node-releases@2.0.14: 2911 | resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} 2912 | dev: true 2913 | 2914 | /normalize-package-data@2.5.0: 2915 | resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} 2916 | dependencies: 2917 | hosted-git-info: 2.8.9 2918 | resolve: 1.22.8 2919 | semver: 5.7.2 2920 | validate-npm-package-license: 3.0.4 2921 | dev: true 2922 | 2923 | /normalize-path@3.0.0: 2924 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 2925 | engines: {node: '>=0.10.0'} 2926 | dev: true 2927 | 2928 | /npm-run-path@4.0.1: 2929 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 2930 | engines: {node: '>=8'} 2931 | dependencies: 2932 | path-key: 3.1.1 2933 | dev: true 2934 | 2935 | /npm-run-path@5.2.0: 2936 | resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} 2937 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2938 | dependencies: 2939 | path-key: 4.0.0 2940 | dev: true 2941 | 2942 | /nth-check@2.1.1: 2943 | resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} 2944 | dependencies: 2945 | boolbase: 1.0.0 2946 | dev: true 2947 | 2948 | /nypm@0.3.6: 2949 | resolution: {integrity: sha512-2CATJh3pd6CyNfU5VZM7qSwFu0ieyabkEdnogE30Obn1czrmOYiZ8DOZLe1yBdLKWoyD3Mcy2maUs+0MR3yVjQ==} 2950 | engines: {node: ^14.16.0 || >=16.10.0} 2951 | hasBin: true 2952 | dependencies: 2953 | citty: 0.1.5 2954 | execa: 8.0.1 2955 | pathe: 1.1.2 2956 | ufo: 1.3.2 2957 | dev: true 2958 | 2959 | /object-assign@4.1.1: 2960 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 2961 | engines: {node: '>=0.10.0'} 2962 | dev: true 2963 | 2964 | /ohash@1.1.3: 2965 | resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} 2966 | dev: true 2967 | 2968 | /once@1.4.0: 2969 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 2970 | dependencies: 2971 | wrappy: 1.0.2 2972 | dev: true 2973 | 2974 | /onetime@5.1.2: 2975 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 2976 | engines: {node: '>=6'} 2977 | dependencies: 2978 | mimic-fn: 2.1.0 2979 | dev: true 2980 | 2981 | /onetime@6.0.0: 2982 | resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} 2983 | engines: {node: '>=12'} 2984 | dependencies: 2985 | mimic-fn: 4.0.0 2986 | dev: true 2987 | 2988 | /optionator@0.9.3: 2989 | resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} 2990 | engines: {node: '>= 0.8.0'} 2991 | dependencies: 2992 | '@aashutoshrathi/word-wrap': 1.2.6 2993 | deep-is: 0.1.4 2994 | fast-levenshtein: 2.0.6 2995 | levn: 0.4.1 2996 | prelude-ls: 1.2.1 2997 | type-check: 0.4.0 2998 | dev: true 2999 | 3000 | /p-limit@2.3.0: 3001 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 3002 | engines: {node: '>=6'} 3003 | dependencies: 3004 | p-try: 2.2.0 3005 | dev: true 3006 | 3007 | /p-limit@3.1.0: 3008 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 3009 | engines: {node: '>=10'} 3010 | dependencies: 3011 | yocto-queue: 0.1.0 3012 | dev: true 3013 | 3014 | /p-limit@5.0.0: 3015 | resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} 3016 | engines: {node: '>=18'} 3017 | dependencies: 3018 | yocto-queue: 1.0.0 3019 | dev: true 3020 | 3021 | /p-locate@4.1.0: 3022 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 3023 | engines: {node: '>=8'} 3024 | dependencies: 3025 | p-limit: 2.3.0 3026 | dev: true 3027 | 3028 | /p-locate@5.0.0: 3029 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 3030 | engines: {node: '>=10'} 3031 | dependencies: 3032 | p-limit: 3.1.0 3033 | dev: true 3034 | 3035 | /p-try@2.2.0: 3036 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 3037 | engines: {node: '>=6'} 3038 | dev: true 3039 | 3040 | /parent-module@1.0.1: 3041 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 3042 | engines: {node: '>=6'} 3043 | dependencies: 3044 | callsites: 3.1.0 3045 | dev: true 3046 | 3047 | /parse-entities@2.0.0: 3048 | resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} 3049 | dependencies: 3050 | character-entities: 1.2.4 3051 | character-entities-legacy: 1.1.4 3052 | character-reference-invalid: 1.1.4 3053 | is-alphanumerical: 1.0.4 3054 | is-decimal: 1.0.4 3055 | is-hexadecimal: 1.0.4 3056 | dev: true 3057 | 3058 | /parse-gitignore@2.0.0: 3059 | resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==} 3060 | engines: {node: '>=14'} 3061 | dev: true 3062 | 3063 | /parse-json@5.2.0: 3064 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 3065 | engines: {node: '>=8'} 3066 | dependencies: 3067 | '@babel/code-frame': 7.23.5 3068 | error-ex: 1.3.2 3069 | json-parse-even-better-errors: 2.3.1 3070 | lines-and-columns: 1.2.4 3071 | dev: true 3072 | 3073 | /path-exists@4.0.0: 3074 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 3075 | engines: {node: '>=8'} 3076 | dev: true 3077 | 3078 | /path-is-absolute@1.0.1: 3079 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 3080 | engines: {node: '>=0.10.0'} 3081 | dev: true 3082 | 3083 | /path-key@3.1.1: 3084 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 3085 | engines: {node: '>=8'} 3086 | dev: true 3087 | 3088 | /path-key@4.0.0: 3089 | resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} 3090 | engines: {node: '>=12'} 3091 | dev: true 3092 | 3093 | /path-parse@1.0.7: 3094 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 3095 | dev: true 3096 | 3097 | /path-scurry@1.10.1: 3098 | resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} 3099 | engines: {node: '>=16 || 14 >=14.17'} 3100 | dependencies: 3101 | lru-cache: 10.2.0 3102 | minipass: 7.0.4 3103 | dev: true 3104 | 3105 | /path-type@4.0.0: 3106 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 3107 | engines: {node: '>=8'} 3108 | dev: true 3109 | 3110 | /pathe@1.1.2: 3111 | resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} 3112 | dev: true 3113 | 3114 | /pathval@1.1.1: 3115 | resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} 3116 | dev: true 3117 | 3118 | /perfect-debounce@1.0.0: 3119 | resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} 3120 | dev: true 3121 | 3122 | /picocolors@1.0.0: 3123 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 3124 | dev: true 3125 | 3126 | /picomatch@2.3.1: 3127 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 3128 | engines: {node: '>=8.6'} 3129 | dev: true 3130 | 3131 | /pidtree@0.6.0: 3132 | resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} 3133 | engines: {node: '>=0.10'} 3134 | hasBin: true 3135 | dev: true 3136 | 3137 | /pirates@4.0.6: 3138 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 3139 | engines: {node: '>= 6'} 3140 | dev: true 3141 | 3142 | /pkg-types@1.0.3: 3143 | resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} 3144 | dependencies: 3145 | jsonc-parser: 3.2.1 3146 | mlly: 1.5.0 3147 | pathe: 1.1.2 3148 | dev: true 3149 | 3150 | /pluralize@8.0.0: 3151 | resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} 3152 | engines: {node: '>=4'} 3153 | dev: true 3154 | 3155 | /postcss-load-config@4.0.2: 3156 | resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} 3157 | engines: {node: '>= 14'} 3158 | peerDependencies: 3159 | postcss: '>=8.0.9' 3160 | ts-node: '>=9.0.0' 3161 | peerDependenciesMeta: 3162 | postcss: 3163 | optional: true 3164 | ts-node: 3165 | optional: true 3166 | dependencies: 3167 | lilconfig: 3.0.0 3168 | yaml: 2.3.4 3169 | dev: true 3170 | 3171 | /postcss-selector-parser@6.0.15: 3172 | resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} 3173 | engines: {node: '>=4'} 3174 | dependencies: 3175 | cssesc: 3.0.0 3176 | util-deprecate: 1.0.2 3177 | dev: true 3178 | 3179 | /postcss@8.4.33: 3180 | resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==} 3181 | engines: {node: ^10 || ^12 || >=14} 3182 | dependencies: 3183 | nanoid: 3.3.7 3184 | picocolors: 1.0.0 3185 | source-map-js: 1.0.2 3186 | dev: true 3187 | 3188 | /postgres@3.4.3: 3189 | resolution: {integrity: sha512-iHJn4+M9vbTdHSdDzNkC0crHq+1CUdFhx+YqCE+SqWxPjm+Zu63jq7yZborOBF64c8pc58O5uMudyL1FQcHacA==} 3190 | engines: {node: '>=12'} 3191 | dev: true 3192 | 3193 | /prelude-ls@1.2.1: 3194 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 3195 | engines: {node: '>= 0.8.0'} 3196 | dev: true 3197 | 3198 | /pretty-format@29.7.0: 3199 | resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} 3200 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 3201 | dependencies: 3202 | '@jest/schemas': 29.6.3 3203 | ansi-styles: 5.2.0 3204 | react-is: 18.2.0 3205 | dev: true 3206 | 3207 | /prompts@2.4.2: 3208 | resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} 3209 | engines: {node: '>= 6'} 3210 | dependencies: 3211 | kleur: 3.0.3 3212 | sisteransi: 1.0.5 3213 | dev: true 3214 | 3215 | /punycode@2.3.1: 3216 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 3217 | engines: {node: '>=6'} 3218 | dev: true 3219 | 3220 | /queue-microtask@1.2.3: 3221 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 3222 | dev: true 3223 | 3224 | /rc9@2.1.1: 3225 | resolution: {integrity: sha512-lNeOl38Ws0eNxpO3+wD1I9rkHGQyj1NU1jlzv4go2CtEnEQEUfqnIvZG7W+bC/aXdJ27n5x/yUjb6RoT9tko+Q==} 3226 | dependencies: 3227 | defu: 6.1.4 3228 | destr: 2.0.2 3229 | flat: 5.0.2 3230 | dev: true 3231 | 3232 | /react-is@18.2.0: 3233 | resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} 3234 | dev: true 3235 | 3236 | /read-pkg-up@7.0.1: 3237 | resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} 3238 | engines: {node: '>=8'} 3239 | dependencies: 3240 | find-up: 4.1.0 3241 | read-pkg: 5.2.0 3242 | type-fest: 0.8.1 3243 | dev: true 3244 | 3245 | /read-pkg@5.2.0: 3246 | resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} 3247 | engines: {node: '>=8'} 3248 | dependencies: 3249 | '@types/normalize-package-data': 2.4.4 3250 | normalize-package-data: 2.5.0 3251 | parse-json: 5.2.0 3252 | type-fest: 0.6.0 3253 | dev: true 3254 | 3255 | /readdirp@3.6.0: 3256 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 3257 | engines: {node: '>=8.10.0'} 3258 | dependencies: 3259 | picomatch: 2.3.1 3260 | dev: true 3261 | 3262 | /regexp-tree@0.1.27: 3263 | resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} 3264 | hasBin: true 3265 | dev: true 3266 | 3267 | /regjsparser@0.10.0: 3268 | resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} 3269 | hasBin: true 3270 | dependencies: 3271 | jsesc: 0.5.0 3272 | dev: true 3273 | 3274 | /require-directory@2.1.1: 3275 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 3276 | engines: {node: '>=0.10.0'} 3277 | dev: true 3278 | 3279 | /resolve-from@4.0.0: 3280 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 3281 | engines: {node: '>=4'} 3282 | dev: true 3283 | 3284 | /resolve-from@5.0.0: 3285 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 3286 | engines: {node: '>=8'} 3287 | dev: true 3288 | 3289 | /resolve-pkg-maps@1.0.0: 3290 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 3291 | dev: true 3292 | 3293 | /resolve@1.22.8: 3294 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 3295 | hasBin: true 3296 | dependencies: 3297 | is-core-module: 2.13.1 3298 | path-parse: 1.0.7 3299 | supports-preserve-symlinks-flag: 1.0.0 3300 | dev: true 3301 | 3302 | /restore-cursor@4.0.0: 3303 | resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} 3304 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 3305 | dependencies: 3306 | onetime: 5.1.2 3307 | signal-exit: 3.0.7 3308 | dev: true 3309 | 3310 | /reusify@1.0.4: 3311 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 3312 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 3313 | dev: true 3314 | 3315 | /rfdc@1.3.1: 3316 | resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} 3317 | dev: true 3318 | 3319 | /rimraf@3.0.2: 3320 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 3321 | hasBin: true 3322 | dependencies: 3323 | glob: 7.2.3 3324 | dev: true 3325 | 3326 | /rollup@4.9.6: 3327 | resolution: {integrity: sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==} 3328 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 3329 | hasBin: true 3330 | dependencies: 3331 | '@types/estree': 1.0.5 3332 | optionalDependencies: 3333 | '@rollup/rollup-android-arm-eabi': 4.9.6 3334 | '@rollup/rollup-android-arm64': 4.9.6 3335 | '@rollup/rollup-darwin-arm64': 4.9.6 3336 | '@rollup/rollup-darwin-x64': 4.9.6 3337 | '@rollup/rollup-linux-arm-gnueabihf': 4.9.6 3338 | '@rollup/rollup-linux-arm64-gnu': 4.9.6 3339 | '@rollup/rollup-linux-arm64-musl': 4.9.6 3340 | '@rollup/rollup-linux-riscv64-gnu': 4.9.6 3341 | '@rollup/rollup-linux-x64-gnu': 4.9.6 3342 | '@rollup/rollup-linux-x64-musl': 4.9.6 3343 | '@rollup/rollup-win32-arm64-msvc': 4.9.6 3344 | '@rollup/rollup-win32-ia32-msvc': 4.9.6 3345 | '@rollup/rollup-win32-x64-msvc': 4.9.6 3346 | fsevents: 2.3.3 3347 | dev: true 3348 | 3349 | /run-parallel@1.2.0: 3350 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 3351 | dependencies: 3352 | queue-microtask: 1.2.3 3353 | dev: true 3354 | 3355 | /semver@5.7.2: 3356 | resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} 3357 | hasBin: true 3358 | dev: true 3359 | 3360 | /semver@7.5.4: 3361 | resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} 3362 | engines: {node: '>=10'} 3363 | hasBin: true 3364 | dependencies: 3365 | lru-cache: 6.0.0 3366 | dev: true 3367 | 3368 | /shebang-command@2.0.0: 3369 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 3370 | engines: {node: '>=8'} 3371 | dependencies: 3372 | shebang-regex: 3.0.0 3373 | dev: true 3374 | 3375 | /shebang-regex@3.0.0: 3376 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 3377 | engines: {node: '>=8'} 3378 | dev: true 3379 | 3380 | /siginfo@2.0.0: 3381 | resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} 3382 | dev: true 3383 | 3384 | /signal-exit@3.0.7: 3385 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 3386 | dev: true 3387 | 3388 | /signal-exit@4.1.0: 3389 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 3390 | engines: {node: '>=14'} 3391 | dev: true 3392 | 3393 | /simple-git-hooks@2.9.0: 3394 | resolution: {integrity: sha512-waSQ5paUQtyGC0ZxlHmcMmD9I1rRXauikBwX31bX58l5vTOhCEcBC5Bi+ZDkPXTjDnZAF8TbCqKBY+9+sVPScw==} 3395 | hasBin: true 3396 | requiresBuild: true 3397 | dev: true 3398 | 3399 | /sisteransi@1.0.5: 3400 | resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} 3401 | dev: true 3402 | 3403 | /slash@3.0.0: 3404 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 3405 | engines: {node: '>=8'} 3406 | dev: true 3407 | 3408 | /slice-ansi@5.0.0: 3409 | resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} 3410 | engines: {node: '>=12'} 3411 | dependencies: 3412 | ansi-styles: 6.2.1 3413 | is-fullwidth-code-point: 4.0.0 3414 | dev: true 3415 | 3416 | /slice-ansi@7.1.0: 3417 | resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} 3418 | engines: {node: '>=18'} 3419 | dependencies: 3420 | ansi-styles: 6.2.1 3421 | is-fullwidth-code-point: 5.0.0 3422 | dev: true 3423 | 3424 | /source-map-js@1.0.2: 3425 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 3426 | engines: {node: '>=0.10.0'} 3427 | dev: true 3428 | 3429 | /source-map@0.6.1: 3430 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 3431 | engines: {node: '>=0.10.0'} 3432 | dev: true 3433 | 3434 | /source-map@0.8.0-beta.0: 3435 | resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} 3436 | engines: {node: '>= 8'} 3437 | dependencies: 3438 | whatwg-url: 7.1.0 3439 | dev: true 3440 | 3441 | /spdx-correct@3.2.0: 3442 | resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} 3443 | dependencies: 3444 | spdx-expression-parse: 3.0.1 3445 | spdx-license-ids: 3.0.16 3446 | dev: true 3447 | 3448 | /spdx-exceptions@2.4.0: 3449 | resolution: {integrity: sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==} 3450 | dev: true 3451 | 3452 | /spdx-expression-parse@3.0.1: 3453 | resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} 3454 | dependencies: 3455 | spdx-exceptions: 2.4.0 3456 | spdx-license-ids: 3.0.16 3457 | dev: true 3458 | 3459 | /spdx-expression-parse@4.0.0: 3460 | resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} 3461 | dependencies: 3462 | spdx-exceptions: 2.4.0 3463 | spdx-license-ids: 3.0.16 3464 | dev: true 3465 | 3466 | /spdx-license-ids@3.0.16: 3467 | resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} 3468 | dev: true 3469 | 3470 | /stackback@0.0.2: 3471 | resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} 3472 | dev: true 3473 | 3474 | /std-env@3.7.0: 3475 | resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} 3476 | dev: true 3477 | 3478 | /string-argv@0.3.2: 3479 | resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} 3480 | engines: {node: '>=0.6.19'} 3481 | dev: true 3482 | 3483 | /string-width@4.2.3: 3484 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 3485 | engines: {node: '>=8'} 3486 | dependencies: 3487 | emoji-regex: 8.0.0 3488 | is-fullwidth-code-point: 3.0.0 3489 | strip-ansi: 6.0.1 3490 | dev: true 3491 | 3492 | /string-width@5.1.2: 3493 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 3494 | engines: {node: '>=12'} 3495 | dependencies: 3496 | eastasianwidth: 0.2.0 3497 | emoji-regex: 9.2.2 3498 | strip-ansi: 7.1.0 3499 | dev: true 3500 | 3501 | /string-width@7.1.0: 3502 | resolution: {integrity: sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==} 3503 | engines: {node: '>=18'} 3504 | dependencies: 3505 | emoji-regex: 10.3.0 3506 | get-east-asian-width: 1.2.0 3507 | strip-ansi: 7.1.0 3508 | dev: true 3509 | 3510 | /strip-ansi@6.0.1: 3511 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 3512 | engines: {node: '>=8'} 3513 | dependencies: 3514 | ansi-regex: 5.0.1 3515 | dev: true 3516 | 3517 | /strip-ansi@7.1.0: 3518 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 3519 | engines: {node: '>=12'} 3520 | dependencies: 3521 | ansi-regex: 6.0.1 3522 | dev: true 3523 | 3524 | /strip-final-newline@2.0.0: 3525 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 3526 | engines: {node: '>=6'} 3527 | dev: true 3528 | 3529 | /strip-final-newline@3.0.0: 3530 | resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} 3531 | engines: {node: '>=12'} 3532 | dev: true 3533 | 3534 | /strip-indent@3.0.0: 3535 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 3536 | engines: {node: '>=8'} 3537 | dependencies: 3538 | min-indent: 1.0.1 3539 | dev: true 3540 | 3541 | /strip-json-comments@3.1.1: 3542 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 3543 | engines: {node: '>=8'} 3544 | dev: true 3545 | 3546 | /strip-literal@1.3.0: 3547 | resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} 3548 | dependencies: 3549 | acorn: 8.11.3 3550 | dev: true 3551 | 3552 | /sucrase@3.35.0: 3553 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} 3554 | engines: {node: '>=16 || 14 >=14.17'} 3555 | hasBin: true 3556 | dependencies: 3557 | '@jridgewell/gen-mapping': 0.3.3 3558 | commander: 4.1.1 3559 | glob: 10.3.10 3560 | lines-and-columns: 1.2.4 3561 | mz: 2.7.0 3562 | pirates: 4.0.6 3563 | ts-interface-checker: 0.1.13 3564 | dev: true 3565 | 3566 | /supports-color@5.5.0: 3567 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 3568 | engines: {node: '>=4'} 3569 | dependencies: 3570 | has-flag: 3.0.0 3571 | dev: true 3572 | 3573 | /supports-color@7.2.0: 3574 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 3575 | engines: {node: '>=8'} 3576 | dependencies: 3577 | has-flag: 4.0.0 3578 | dev: true 3579 | 3580 | /supports-preserve-symlinks-flag@1.0.0: 3581 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 3582 | engines: {node: '>= 0.4'} 3583 | dev: true 3584 | 3585 | /synckit@0.6.2: 3586 | resolution: {integrity: sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA==} 3587 | engines: {node: '>=12.20'} 3588 | dependencies: 3589 | tslib: 2.6.2 3590 | dev: true 3591 | 3592 | /tar@6.2.0: 3593 | resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} 3594 | engines: {node: '>=10'} 3595 | dependencies: 3596 | chownr: 2.0.0 3597 | fs-minipass: 2.1.0 3598 | minipass: 5.0.0 3599 | minizlib: 2.1.2 3600 | mkdirp: 1.0.4 3601 | yallist: 4.0.0 3602 | dev: true 3603 | 3604 | /test-exclude@6.0.0: 3605 | resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} 3606 | engines: {node: '>=8'} 3607 | dependencies: 3608 | '@istanbuljs/schema': 0.1.3 3609 | glob: 7.2.3 3610 | minimatch: 3.1.2 3611 | dev: true 3612 | 3613 | /text-table@0.2.0: 3614 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 3615 | dev: true 3616 | 3617 | /thenify-all@1.6.0: 3618 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 3619 | engines: {node: '>=0.8'} 3620 | dependencies: 3621 | thenify: 3.3.1 3622 | dev: true 3623 | 3624 | /thenify@3.3.1: 3625 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 3626 | dependencies: 3627 | any-promise: 1.3.0 3628 | dev: true 3629 | 3630 | /tinybench@2.6.0: 3631 | resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} 3632 | dev: true 3633 | 3634 | /tinypool@0.8.2: 3635 | resolution: {integrity: sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==} 3636 | engines: {node: '>=14.0.0'} 3637 | dev: true 3638 | 3639 | /tinyspy@2.2.0: 3640 | resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} 3641 | engines: {node: '>=14.0.0'} 3642 | dev: true 3643 | 3644 | /to-fast-properties@2.0.0: 3645 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 3646 | engines: {node: '>=4'} 3647 | dev: true 3648 | 3649 | /to-regex-range@5.0.1: 3650 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 3651 | engines: {node: '>=8.0'} 3652 | dependencies: 3653 | is-number: 7.0.0 3654 | dev: true 3655 | 3656 | /toml-eslint-parser@0.9.3: 3657 | resolution: {integrity: sha512-moYoCvkNUAPCxSW9jmHmRElhm4tVJpHL8ItC/+uYD0EpPSFXbck7yREz9tNdJVTSpHVod8+HoipcpbQ0oE6gsw==} 3658 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 3659 | dependencies: 3660 | eslint-visitor-keys: 3.4.3 3661 | dev: true 3662 | 3663 | /tr46@1.0.1: 3664 | resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} 3665 | dependencies: 3666 | punycode: 2.3.1 3667 | dev: true 3668 | 3669 | /tree-kill@1.2.2: 3670 | resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} 3671 | hasBin: true 3672 | dev: true 3673 | 3674 | /ts-api-utils@1.0.3(typescript@5.3.3): 3675 | resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} 3676 | engines: {node: '>=16.13.0'} 3677 | peerDependencies: 3678 | typescript: '>=4.2.0' 3679 | dependencies: 3680 | typescript: 5.3.3 3681 | dev: true 3682 | 3683 | /ts-interface-checker@0.1.13: 3684 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 3685 | dev: true 3686 | 3687 | /tslib@2.6.2: 3688 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} 3689 | dev: true 3690 | 3691 | /tsup@8.0.1(typescript@5.3.3): 3692 | resolution: {integrity: sha512-hvW7gUSG96j53ZTSlT4j/KL0q1Q2l6TqGBFc6/mu/L46IoNWqLLUzLRLP1R8Q7xrJTmkDxxDoojV5uCVs1sVOg==} 3693 | engines: {node: '>=18'} 3694 | hasBin: true 3695 | peerDependencies: 3696 | '@microsoft/api-extractor': ^7.36.0 3697 | '@swc/core': ^1 3698 | postcss: ^8.4.12 3699 | typescript: '>=4.5.0' 3700 | peerDependenciesMeta: 3701 | '@microsoft/api-extractor': 3702 | optional: true 3703 | '@swc/core': 3704 | optional: true 3705 | postcss: 3706 | optional: true 3707 | typescript: 3708 | optional: true 3709 | dependencies: 3710 | bundle-require: 4.0.2(esbuild@0.19.12) 3711 | cac: 6.7.14 3712 | chokidar: 3.5.3 3713 | debug: 4.3.4 3714 | esbuild: 0.19.12 3715 | execa: 5.1.1 3716 | globby: 11.1.0 3717 | joycon: 3.1.1 3718 | postcss-load-config: 4.0.2 3719 | resolve-from: 5.0.0 3720 | rollup: 4.9.6 3721 | source-map: 0.8.0-beta.0 3722 | sucrase: 3.35.0 3723 | tree-kill: 1.2.2 3724 | typescript: 5.3.3 3725 | transitivePeerDependencies: 3726 | - supports-color 3727 | - ts-node 3728 | dev: true 3729 | 3730 | /type-check@0.4.0: 3731 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 3732 | engines: {node: '>= 0.8.0'} 3733 | dependencies: 3734 | prelude-ls: 1.2.1 3735 | dev: true 3736 | 3737 | /type-detect@4.0.8: 3738 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} 3739 | engines: {node: '>=4'} 3740 | dev: true 3741 | 3742 | /type-fest@0.20.2: 3743 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 3744 | engines: {node: '>=10'} 3745 | dev: true 3746 | 3747 | /type-fest@0.6.0: 3748 | resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} 3749 | engines: {node: '>=8'} 3750 | dev: true 3751 | 3752 | /type-fest@0.8.1: 3753 | resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} 3754 | engines: {node: '>=8'} 3755 | dev: true 3756 | 3757 | /type-fest@3.13.1: 3758 | resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} 3759 | engines: {node: '>=14.16'} 3760 | dev: true 3761 | 3762 | /typescript@5.3.3: 3763 | resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} 3764 | engines: {node: '>=14.17'} 3765 | hasBin: true 3766 | dev: true 3767 | 3768 | /ufo@1.3.2: 3769 | resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} 3770 | dev: true 3771 | 3772 | /unist-util-stringify-position@2.0.3: 3773 | resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} 3774 | dependencies: 3775 | '@types/unist': 2.0.10 3776 | dev: true 3777 | 3778 | /update-browserslist-db@1.0.13(browserslist@4.22.3): 3779 | resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} 3780 | hasBin: true 3781 | peerDependencies: 3782 | browserslist: '>= 4.21.0' 3783 | dependencies: 3784 | browserslist: 4.22.3 3785 | escalade: 3.1.1 3786 | picocolors: 1.0.0 3787 | dev: true 3788 | 3789 | /uri-js@4.4.1: 3790 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 3791 | dependencies: 3792 | punycode: 2.3.1 3793 | dev: true 3794 | 3795 | /util-deprecate@1.0.2: 3796 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 3797 | dev: true 3798 | 3799 | /v8-to-istanbul@9.2.0: 3800 | resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} 3801 | engines: {node: '>=10.12.0'} 3802 | dependencies: 3803 | '@jridgewell/trace-mapping': 0.3.22 3804 | '@types/istanbul-lib-coverage': 2.0.6 3805 | convert-source-map: 2.0.0 3806 | dev: true 3807 | 3808 | /validate-npm-package-license@3.0.4: 3809 | resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} 3810 | dependencies: 3811 | spdx-correct: 3.2.0 3812 | spdx-expression-parse: 3.0.1 3813 | dev: true 3814 | 3815 | /vite-node@1.2.2: 3816 | resolution: {integrity: sha512-1as4rDTgVWJO3n1uHmUYqq7nsFgINQ9u+mRcXpjeOMJUmviqNKjcZB7UfRZrlM7MjYXMKpuWp5oGkjaFLnjawg==} 3817 | engines: {node: ^18.0.0 || >=20.0.0} 3818 | hasBin: true 3819 | dependencies: 3820 | cac: 6.7.14 3821 | debug: 4.3.4 3822 | pathe: 1.1.2 3823 | picocolors: 1.0.0 3824 | vite: 5.0.12 3825 | transitivePeerDependencies: 3826 | - '@types/node' 3827 | - less 3828 | - lightningcss 3829 | - sass 3830 | - stylus 3831 | - sugarss 3832 | - supports-color 3833 | - terser 3834 | dev: true 3835 | 3836 | /vite@5.0.12: 3837 | resolution: {integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==} 3838 | engines: {node: ^18.0.0 || >=20.0.0} 3839 | hasBin: true 3840 | peerDependencies: 3841 | '@types/node': ^18.0.0 || >=20.0.0 3842 | less: '*' 3843 | lightningcss: ^1.21.0 3844 | sass: '*' 3845 | stylus: '*' 3846 | sugarss: '*' 3847 | terser: ^5.4.0 3848 | peerDependenciesMeta: 3849 | '@types/node': 3850 | optional: true 3851 | less: 3852 | optional: true 3853 | lightningcss: 3854 | optional: true 3855 | sass: 3856 | optional: true 3857 | stylus: 3858 | optional: true 3859 | sugarss: 3860 | optional: true 3861 | terser: 3862 | optional: true 3863 | dependencies: 3864 | esbuild: 0.19.12 3865 | postcss: 8.4.33 3866 | rollup: 4.9.6 3867 | optionalDependencies: 3868 | fsevents: 2.3.3 3869 | dev: true 3870 | 3871 | /vitest@1.2.2: 3872 | resolution: {integrity: sha512-d5Ouvrnms3GD9USIK36KG8OZ5bEvKEkITFtnGv56HFaSlbItJuYr7hv2Lkn903+AvRAgSixiamozUVfORUekjw==} 3873 | engines: {node: ^18.0.0 || >=20.0.0} 3874 | hasBin: true 3875 | peerDependencies: 3876 | '@edge-runtime/vm': '*' 3877 | '@types/node': ^18.0.0 || >=20.0.0 3878 | '@vitest/browser': ^1.0.0 3879 | '@vitest/ui': ^1.0.0 3880 | happy-dom: '*' 3881 | jsdom: '*' 3882 | peerDependenciesMeta: 3883 | '@edge-runtime/vm': 3884 | optional: true 3885 | '@types/node': 3886 | optional: true 3887 | '@vitest/browser': 3888 | optional: true 3889 | '@vitest/ui': 3890 | optional: true 3891 | happy-dom: 3892 | optional: true 3893 | jsdom: 3894 | optional: true 3895 | dependencies: 3896 | '@vitest/expect': 1.2.2 3897 | '@vitest/runner': 1.2.2 3898 | '@vitest/snapshot': 1.2.2 3899 | '@vitest/spy': 1.2.2 3900 | '@vitest/utils': 1.2.2 3901 | acorn-walk: 8.3.2 3902 | cac: 6.7.14 3903 | chai: 4.4.1 3904 | debug: 4.3.4 3905 | execa: 8.0.1 3906 | local-pkg: 0.5.0 3907 | magic-string: 0.30.5 3908 | pathe: 1.1.2 3909 | picocolors: 1.0.0 3910 | std-env: 3.7.0 3911 | strip-literal: 1.3.0 3912 | tinybench: 2.6.0 3913 | tinypool: 0.8.2 3914 | vite: 5.0.12 3915 | vite-node: 1.2.2 3916 | why-is-node-running: 2.2.2 3917 | transitivePeerDependencies: 3918 | - less 3919 | - lightningcss 3920 | - sass 3921 | - stylus 3922 | - sugarss 3923 | - supports-color 3924 | - terser 3925 | dev: true 3926 | 3927 | /vue-eslint-parser@9.4.2(eslint@8.56.0): 3928 | resolution: {integrity: sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==} 3929 | engines: {node: ^14.17.0 || >=16.0.0} 3930 | peerDependencies: 3931 | eslint: '>=6.0.0' 3932 | dependencies: 3933 | debug: 4.3.4 3934 | eslint: 8.56.0 3935 | eslint-scope: 7.2.2 3936 | eslint-visitor-keys: 3.4.3 3937 | espree: 9.6.1 3938 | esquery: 1.5.0 3939 | lodash: 4.17.21 3940 | semver: 7.5.4 3941 | transitivePeerDependencies: 3942 | - supports-color 3943 | dev: true 3944 | 3945 | /webidl-conversions@4.0.2: 3946 | resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} 3947 | dev: true 3948 | 3949 | /whatwg-url@7.1.0: 3950 | resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} 3951 | dependencies: 3952 | lodash.sortby: 4.7.0 3953 | tr46: 1.0.1 3954 | webidl-conversions: 4.0.2 3955 | dev: true 3956 | 3957 | /which@2.0.2: 3958 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 3959 | engines: {node: '>= 8'} 3960 | hasBin: true 3961 | dependencies: 3962 | isexe: 2.0.0 3963 | dev: true 3964 | 3965 | /why-is-node-running@2.2.2: 3966 | resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} 3967 | engines: {node: '>=8'} 3968 | hasBin: true 3969 | dependencies: 3970 | siginfo: 2.0.0 3971 | stackback: 0.0.2 3972 | dev: true 3973 | 3974 | /wrap-ansi@7.0.0: 3975 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 3976 | engines: {node: '>=10'} 3977 | dependencies: 3978 | ansi-styles: 4.3.0 3979 | string-width: 4.2.3 3980 | strip-ansi: 6.0.1 3981 | dev: true 3982 | 3983 | /wrap-ansi@8.1.0: 3984 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 3985 | engines: {node: '>=12'} 3986 | dependencies: 3987 | ansi-styles: 6.2.1 3988 | string-width: 5.1.2 3989 | strip-ansi: 7.1.0 3990 | dev: true 3991 | 3992 | /wrap-ansi@9.0.0: 3993 | resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} 3994 | engines: {node: '>=18'} 3995 | dependencies: 3996 | ansi-styles: 6.2.1 3997 | string-width: 7.1.0 3998 | strip-ansi: 7.1.0 3999 | dev: true 4000 | 4001 | /wrappy@1.0.2: 4002 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 4003 | dev: true 4004 | 4005 | /xml-name-validator@4.0.0: 4006 | resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} 4007 | engines: {node: '>=12'} 4008 | dev: true 4009 | 4010 | /y18n@5.0.8: 4011 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 4012 | engines: {node: '>=10'} 4013 | dev: true 4014 | 4015 | /yallist@4.0.0: 4016 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 4017 | dev: true 4018 | 4019 | /yaml-eslint-parser@1.2.2: 4020 | resolution: {integrity: sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==} 4021 | engines: {node: ^14.17.0 || >=16.0.0} 4022 | dependencies: 4023 | eslint-visitor-keys: 3.4.3 4024 | lodash: 4.17.21 4025 | yaml: 2.3.4 4026 | dev: true 4027 | 4028 | /yaml@2.3.4: 4029 | resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} 4030 | engines: {node: '>= 14'} 4031 | dev: true 4032 | 4033 | /yargs-parser@21.1.1: 4034 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 4035 | engines: {node: '>=12'} 4036 | dev: true 4037 | 4038 | /yargs@17.7.2: 4039 | resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} 4040 | engines: {node: '>=12'} 4041 | dependencies: 4042 | cliui: 8.0.1 4043 | escalade: 3.1.1 4044 | get-caller-file: 2.0.5 4045 | require-directory: 2.1.1 4046 | string-width: 4.2.3 4047 | y18n: 5.0.8 4048 | yargs-parser: 21.1.1 4049 | dev: true 4050 | 4051 | /yocto-queue@0.1.0: 4052 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 4053 | engines: {node: '>=10'} 4054 | dev: true 4055 | 4056 | /yocto-queue@1.0.0: 4057 | resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} 4058 | engines: {node: '>=12.20'} 4059 | dev: true 4060 | -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - playground 3 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": [ 4 | "config:base" 5 | ], 6 | "rebaseWhen": "conflicted", 7 | "schedule": [ 8 | "every 8 months on the first day of the month" 9 | ], 10 | "baseBranches": [ 11 | "main" 12 | ], 13 | "rangeStrategy": "bump", 14 | "ignoreDeps": [ 15 | "node", 16 | "pnpm" 17 | ], 18 | "packageRules": [ 19 | { 20 | "enabled": false, 21 | "matchDepTypes": [ 22 | "peerDependencies" 23 | ] 24 | }, 25 | { 26 | "groupName": "playground", 27 | "commitMessageTopic": "playground", 28 | "matchPaths": [ 29 | "playground/**" 30 | ], 31 | "matchUpdateTypes": [ 32 | "major", 33 | "minor", 34 | "patch" 35 | ], 36 | "matchDatasources": [ 37 | "npm" 38 | ] 39 | }, 40 | { 41 | "groupName": "root", 42 | "matchUpdateTypes": [ 43 | "patch", 44 | "minor", 45 | "major" 46 | ], 47 | "ignorePaths": [ 48 | "**/playground/**" 49 | ], 50 | "matchDatasources": [ 51 | "npm", 52 | "github-actions" 53 | ], 54 | "labels": [ 55 | "dependencies" 56 | ], 57 | "addLabels": [ 58 | "dependencies" 59 | ], 60 | "matchFiles": [ 61 | "package.json" 62 | ] 63 | } 64 | ] 65 | } 66 | -------------------------------------------------------------------------------- /src/core.ts: -------------------------------------------------------------------------------- 1 | import { andScope } from './plugins/andScope' 2 | import { orScope } from './plugins/orScope' 3 | import { orderByScope } from './plugins/orderByScope' 4 | import { textScope } from './plugins/textScope' 5 | import { twoPointScope } from './plugins/twoPointScope' 6 | import type { SearchFilter } from './types' 7 | 8 | export async function unSearch( 9 | config: SearchFilter, 10 | ) { 11 | config._data ??= { 12 | wheres: [], 13 | orderBy: [], 14 | textArray: [], 15 | } 16 | 17 | config.default.ignore = config.default.ignore ?? { 18 | filterText: ['id'], 19 | } 20 | 21 | config.regex = config.regex ?? /([a-zA-Z]{1,20}):(\/([^\/]+)\/\/|([^:\s]{1,100}))/g 22 | config.plugins = config.plugins ?? [orScope, andScope, orderByScope, twoPointScope, textScope] 23 | 24 | const textArray = config.search.split(' ') 25 | config._data.textArray = textArray 26 | 27 | for await (const plugin of config.plugins) { 28 | if (typeof plugin === 'function') { 29 | const { separation } = plugin() 30 | if (typeof separation === 'function') 31 | separation(config as Required) 32 | } 33 | } 34 | 35 | for await (const plugin of config.plugins) { 36 | if (typeof plugin === 'function') { 37 | const { setup } = plugin() 38 | if (typeof setup === 'function') 39 | setup(config as Required) 40 | } 41 | } 42 | 43 | return { 44 | config, 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | export { unSearch } from './core' 2 | export type { SearchFilter, FilterConfig } from './types' 3 | -------------------------------------------------------------------------------- /src/plugins/andScope.ts: -------------------------------------------------------------------------------- 1 | import { defineFilterPlugin } from '../utils' 2 | 3 | export function andScope() { 4 | return defineFilterPlugin({ 5 | separation(params) { 6 | for (const [index, text] of params._data.textArray.entries()) { 7 | if (typeof text === 'object' || !text.includes('AND')) 8 | continue 9 | 10 | const andFunction = params.scopeTags.AND 11 | 12 | params._data.textArray[index] = { 13 | func: andFunction, 14 | text, 15 | index, 16 | type: 'and', 17 | } 18 | } 19 | }, 20 | setup(params) { 21 | for (const text of params._data.textArray) { 22 | if (typeof text !== 'object' || text.type !== 'and') 23 | continue 24 | 25 | if (typeof text === 'object' && text.type === 'and') { 26 | const prev = params._data.textArray[text.index - 1] 27 | const next = params._data.textArray[text.index + 1] 28 | 29 | if (prev && next && typeof prev === 'object' && typeof next === 'object') { 30 | params._data.wheres.push(text.func( 31 | prev.func(params.columKeys[prev.key as keyof typeof params.columKeys], prev.text), 32 | next.func(params.columKeys[next.key as keyof typeof params.columKeys], next.text), 33 | )) 34 | params._data.textArray.splice(text.index - 1, 3) 35 | } 36 | } 37 | } 38 | }, 39 | }) 40 | } 41 | -------------------------------------------------------------------------------- /src/plugins/orScope.ts: -------------------------------------------------------------------------------- 1 | import { defineFilterPlugin } from '../utils' 2 | 3 | export function orScope() { 4 | return defineFilterPlugin({ 5 | separation(params) { 6 | for (const [index, text] of params._data.textArray.entries()) { 7 | if (typeof text === 'object' || !text.includes('OR')) 8 | continue 9 | 10 | const orFunction = params.scopeTags.OR 11 | 12 | params._data.textArray[index] = { 13 | func: orFunction, 14 | text, 15 | index, 16 | type: 'or', 17 | } 18 | } 19 | }, 20 | setup(params) { 21 | for (const text of params._data.textArray) { 22 | if (typeof text !== 'object' || text.type !== 'or') 23 | continue 24 | 25 | if (typeof text === 'object' && text.type === 'or') { 26 | const prev = params._data.textArray[text.index - 1] 27 | const next = params._data.textArray[text.index + 1] 28 | 29 | if (prev && next && typeof prev === 'object' && typeof next === 'object') { 30 | params._data.wheres.push(text.func( 31 | prev.func(params.columKeys[prev.key as keyof typeof params.columKeys], prev.text), 32 | next.func(params.columKeys[next.key as keyof typeof params.columKeys], next.text), 33 | )) 34 | params._data.textArray.splice(text.index - 1, 3) 35 | } 36 | } 37 | } 38 | }, 39 | }) 40 | } 41 | -------------------------------------------------------------------------------- /src/plugins/orderByScope.ts: -------------------------------------------------------------------------------- 1 | import { defineFilterPlugin } from '../utils' 2 | 3 | export function orderByScope() { 4 | return defineFilterPlugin({ 5 | separation(params) { 6 | for (const [index, text] of params._data.textArray.entries()) { 7 | if (typeof text === 'object' || !((text.includes('asc:') || text.includes('desc:')))) 8 | continue 9 | 10 | if (text.includes('asc:[') || text.includes('desc:[')) { 11 | const [columnKey, value] = text.split(':').map(key => key.trim()) 12 | const ascOrDesc = columnKey.includes('asc') ? 'asc' : 'desc' 13 | const filterFunction = params.scopeTags[ascOrDesc as keyof typeof params.scopeTags] 14 | 15 | for (const key of value.replace('[', '').replace(']', '').split(',')) { 16 | params._data.textArray[index] = { 17 | func: filterFunction, 18 | text: key, 19 | index, 20 | type: 'orderBy', 21 | } 22 | } 23 | } 24 | 25 | if (text.includes('asc:') || text.includes('desc:')) { 26 | const [columnKey, value] = text.split(':').map(key => key.trim()) 27 | const filterFunction = params.scopeTags[columnKey as keyof typeof params.scopeTags] 28 | params._data.textArray[index] = { 29 | func: filterFunction, 30 | text: value, 31 | index, 32 | type: 'orderBy', 33 | } 34 | } 35 | } 36 | }, 37 | setup(params) { 38 | for (const item of params._data.textArray) { 39 | if (typeof item === 'object' && item.type === 'orderBy') { 40 | params._data.orderBy.push( 41 | item.func(params.columKeys[item.text as keyof typeof params.columKeys], item.text), 42 | ) 43 | params._data.textArray.splice(item.index, 1) 44 | } 45 | } 46 | }, 47 | }) 48 | } 49 | -------------------------------------------------------------------------------- /src/plugins/textScope.ts: -------------------------------------------------------------------------------- 1 | import { defineFilterPlugin } from '../utils' 2 | 3 | export function textScope(ignoreKeys: string[] = ['id']) { 4 | return defineFilterPlugin({ 5 | separation(params) { 6 | for (const [index, text] of params._data.textArray.entries()) { 7 | if (typeof text === 'object' 8 | || text.includes(':') 9 | || text.includes('OR') 10 | || text.includes('AND') 11 | ) 12 | continue 13 | 14 | const filterFunction = params.scopeTags[''] 15 | 16 | params._data.textArray[index] = { 17 | func: filterFunction, 18 | text, 19 | index, 20 | type: 'text', 21 | } 22 | } 23 | }, 24 | setup(params) { 25 | for (const text of params._data.textArray) { 26 | if (typeof text === 'object' && text.type === 'text') { 27 | const filterFunction = text.func 28 | for (const key of Object.keys(params.columKeys)) { 29 | if (ignoreKeys.includes(key)) 30 | continue 31 | 32 | params._data.wheres.push(filterFunction(params.columKeys[key as keyof typeof params.columKeys], text.text)) 33 | params._data.textArray.splice(text.index, 1) 34 | } 35 | } 36 | } 37 | }, 38 | }) 39 | } 40 | -------------------------------------------------------------------------------- /src/plugins/twoPointScope.ts: -------------------------------------------------------------------------------- 1 | import { defineFilterPlugin } from '../utils' 2 | 3 | export function twoPointScope() { 4 | return defineFilterPlugin({ 5 | separation(params) { 6 | for (const [index, text] of params._data.textArray.entries()) { 7 | if (typeof text === 'object' || !text.includes(':')) 8 | continue 9 | 10 | const [columnKey, value] = text.split(':').map(key => key.trim()) 11 | 12 | let filter = params.scopeTagsArray.find(f => value.includes(f)) 13 | if (!filter) { 14 | if (columnKey === 'id') 15 | filter = '=' 16 | 17 | else 18 | filter = '' 19 | } 20 | 21 | const filterFunction = params.scopeTags[filter as keyof typeof params.scopeTags] 22 | 23 | params._data.textArray[index] = { 24 | func: filterFunction, 25 | text: value.replace(filter, '').trim(), 26 | index, 27 | key: columnKey, 28 | type: ':', 29 | } 30 | } 31 | }, 32 | setup(params) { 33 | for (const text of params._data.textArray) { 34 | if (typeof text === 'object' && text.type === ':') { 35 | const filterFunction = text.func 36 | const key = text.key 37 | const value = text.text 38 | params._data.wheres.push(filterFunction(params.columKeys[key as keyof typeof params.columKeys], value)) 39 | params._data.textArray.splice(text.index, 1) 40 | } 41 | } 42 | }, 43 | }) 44 | } 45 | -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- 1 | export interface SearchFilter { 2 | /** 3 | * username:hello, email:hello, username:test@test.com or:[username, email] and:[username, email] asc:[username, email] desc:[username, email] 4 | */ 5 | search: string 6 | /** 7 | * { 8 | * Drizzle Example 9 | * username: tablesPzg.user.username, 10 | * 11 | * Postgres Example 12 | * username: SQL`users.username` 13 | * } 14 | */ 15 | columKeys: Record 16 | 17 | /** 18 | * { 19 | * Drizzle Example 20 | * '=': (key: Column, value: string) => eq(key, value), 21 | * '!=': (key: Column, value: string) => ne(key, value), 22 | * 23 | * Postgres Example 24 | * '=': (key: SQLWrapper, value: string) => SQL`${key} = ${value}`, 25 | * '!=': (key: SQLWrapper, value: string) => SQL`${key} != ${value}`, 26 | * 27 | */ 28 | scopeTags: { 29 | [key in string]: (key: any, value: string) => void 30 | } 31 | 32 | /** 33 | * The order is important here. If >= is at the beginning, >= will not be perceived and will be corrupted. 34 | * Make sure that the order is correct. 35 | * ['like', 'ilike', '>=', '<=', '>', '<', '!=', '='] 36 | */ 37 | scopeTagsArray: string[] 38 | 39 | /** 40 | * 41 | * @example 42 | * const regex = /([a-zA-Z]{1,20}):(\/([^\/]+)\/\/|([^:\s]{1,100}))/g 43 | * 44 | * @default 45 | * /([a-zA-Z]{1,20}):(\/([^\/]+)\/\/|([^:\s]{1,100}))/g 46 | */ 47 | regex?: RegExp 48 | 49 | /** 50 | * 51 | * @example 52 | * const plugins = [ORScope, orderByScope] 53 | * 54 | * @default 55 | * [ORScope, orderByScope] 56 | */ 57 | plugins?: (() => FilterConfig)[] 58 | 59 | default: { 60 | /** 61 | * @default 62 | * filter: SearchFilter.default.filterText 63 | */ 64 | filterText: { 65 | filter: string 66 | column: any 67 | key: string 68 | }[] 69 | ignore?: { 70 | /** @default ['id'] */ 71 | filterText?: string[] 72 | } 73 | } 74 | 75 | /** 76 | * @private 77 | * @ignore 78 | * @default 79 | * { 80 | * wheres: [], 81 | * orderBy: [], 82 | * } 83 | */ 84 | _data?: { 85 | wheres: any[] 86 | orderBy: any[] 87 | textArray: (string | { 88 | func: any 89 | text: string 90 | index: number 91 | key?: string 92 | type: string 93 | })[] 94 | } 95 | } 96 | 97 | export interface FilterConfig { 98 | setup?( 99 | params: Required, 100 | ): void 101 | separation?( 102 | params: Required, 103 | ): void 104 | } 105 | -------------------------------------------------------------------------------- /src/utils.ts: -------------------------------------------------------------------------------- 1 | import type { FilterConfig } from './types' 2 | 3 | export function defineFilterPlugin(config: FilterConfig) { 4 | return config 5 | } 6 | -------------------------------------------------------------------------------- /test/core.ts: -------------------------------------------------------------------------------- 1 | import { describe, expect, it } from 'vitest' 2 | 3 | import { unSearch } from '../src/core' 4 | 5 | const columKeys = { 6 | username: 'user.username', 7 | email: 'user.email', 8 | id: 'user.id', 9 | name: 'user.name', 10 | } 11 | 12 | // POSTGRESS SQL TEST 13 | const scopeTags = { 14 | '=': (key: string, value: string) => `${key} = ${value}`, 15 | '!=': (key: string, value: string) => `${key} != ${value}`, 16 | '>': (key: string, value: string) => `${key} > ${value}`, 17 | '>=': (key: string, value: string) => `${key} >= ${value}`, 18 | '<': (key: string, value: string) => `${key} < ${value}`, 19 | '<=': (key: string, value: string) => `${key} <= ${value}`, 20 | '': (key: string, value: string) => `${key} LIKE %${value}%`, 21 | '': (key: string, value: string) => `${key} ILIKE %${value}%`, 22 | 'OR': (...args: any[]) => `${args.join(' OR ')}`, 23 | 'AND': (...args: any[]) => `${args.join(' AND ')}`, 24 | 'asc': (key: string) => `ORDER BY ${key} ASC`, 25 | 'desc': (key: string) => `ORDER BY ${key} DESC`, 26 | } 27 | 28 | const scopeTagsArray = ['OR', 'AND', '', '', '>=', '<=', '>', '<', '!=', '='] 29 | 30 | async function search(query: string) { 31 | return await unSearch({ 32 | columKeys, 33 | scopeTags, 34 | scopeTagsArray, 35 | search: query, 36 | default: { 37 | filterText: Object.keys(columKeys).map((key) => { 38 | return { 39 | column: columKeys[key as keyof typeof columKeys], 40 | filter: '', 41 | key, 42 | } 43 | }), 44 | }, 45 | }) 46 | } 47 | 48 | describe('suite', () => { 49 | it.concurrent('concurrent test 1', async () => { 50 | const data = await search('username:admin') 51 | 52 | expect(data.config._data?.wheres).toEqual([ 53 | 'user.username ILIKE %admin%', 54 | ]) 55 | 56 | expect(data.config._data?.orderBy).toEqual([]) 57 | }) 58 | 59 | it.concurrent('concurrent test 2', async () => { 60 | const data = await search('username:admin AND email:admin') 61 | 62 | expect(data.config._data?.wheres).toEqual([ 63 | 'user.username ILIKE %admin% AND user.email ILIKE %admin%', 64 | ]) 65 | 66 | expect(data.config._data?.orderBy).toEqual([]) 67 | }) 68 | 69 | it.concurrent('concurrent test 3', async () => { 70 | const data = await search('username:admin OR email:admin') 71 | 72 | expect(data.config._data?.wheres).toEqual([ 73 | 'user.username ILIKE %admin% OR user.email ILIKE %admin%', 74 | ]) 75 | 76 | expect(data.config._data?.orderBy).toEqual([]) 77 | }) 78 | }) 79 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tsconfig", 3 | "display": "Node 18", 4 | "_version": "2.0.0", 5 | "compilerOptions": { 6 | "target": "es2022", 7 | "lib": [ 8 | "es2023", 9 | "DOM" 10 | ], 11 | "module": "ES2022", 12 | "moduleResolution": "node", 13 | "resolveJsonModule": true, 14 | "strict": true, 15 | "esModuleInterop": true, 16 | "forceConsistentCasingInFileNames": true, 17 | "skipLibCheck": true 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /tsup.config.ts: -------------------------------------------------------------------------------- 1 | import type { Options } from 'tsup' 2 | 3 | export default { 4 | entryPoints: ['src/index.ts'], 5 | outDir: 'dist', 6 | format: ['esm', 'cjs'], 7 | sourcemap: true, 8 | clean: true, 9 | dts: true, 10 | minify: false, 11 | } 12 | -------------------------------------------------------------------------------- /vitest.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vitest/config' 2 | 3 | export default defineConfig({ 4 | optimizeDeps: { 5 | entries: [], 6 | }, 7 | test: { 8 | coverage: { 9 | provider: 'v8', 10 | reporter: ['text', 'json-summary', 'json', 'html'], 11 | }, 12 | exclude: [ 13 | '**/node_modules/**', 14 | '**/dist/**', 15 | ], 16 | include: [ 17 | './test/**', 18 | ], 19 | }, 20 | }) 21 | --------------------------------------------------------------------------------