├── .editorconfig ├── .github └── workflows │ ├── ci.yml │ └── release.yml ├── .gitignore ├── .vscode ├── extensions.json └── settings.json ├── LICENSE ├── README.md ├── eslint.config.mjs ├── index.d.ts ├── index.js ├── package.json ├── pnpm-lock.yaml ├── src ├── api.d.ts ├── blocks.d.ts ├── kql.d.ts ├── layout.d.ts └── query.d.ts ├── test ├── blocks.test-d.ts ├── kql.test-d.ts └── query.test-d.ts └── tsconfig.json /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | 8 | pull_request: 9 | branches: 10 | - main 11 | 12 | jobs: 13 | lint: 14 | runs-on: ubuntu-latest 15 | steps: 16 | - uses: actions/checkout@v4 17 | - uses: pnpm/action-setup@v3 18 | - uses: actions/setup-node@v4 19 | with: 20 | node-version: 20 21 | cache: pnpm 22 | - run: pnpm install 23 | - run: pnpm run lint 24 | 25 | test: 26 | runs-on: ubuntu-latest 27 | steps: 28 | - uses: actions/checkout@v4 29 | - uses: pnpm/action-setup@v3 30 | - uses: actions/setup-node@v4 31 | with: 32 | node-version: 20 33 | cache: pnpm 34 | - run: pnpm install 35 | - run: pnpm run test 36 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | push: 5 | tags: 6 | - "v*" 7 | 8 | permissions: 9 | contents: write 10 | 11 | jobs: 12 | release: 13 | runs-on: ubuntu-latest 14 | steps: 15 | - uses: actions/checkout@v4 16 | with: 17 | fetch-depth: 0 18 | - uses: pnpm/action-setup@v3 19 | - uses: actions/setup-node@v4 20 | with: 21 | node-version: 20 22 | registry-url: https://registry.npmjs.org/ 23 | 24 | - name: Publish changelog 25 | run: npx changelogithub 26 | env: 27 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 28 | 29 | - name: Publish to npm 30 | run: npm publish --access public 31 | env: 32 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} 33 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | dist 4 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode"] 3 | } 4 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | // Enable ESLint flat config support 3 | "eslint.useFlatConfig": true, 4 | 5 | // Use Prettier as the default formatter 6 | "editor.defaultFormatter": "esbenp.prettier-vscode", 7 | "editor.formatOnSave": true, 8 | 9 | // Auto-fix ESLint errors on save 10 | "editor.codeActionsOnSave": { 11 | "source.fixAll.eslint": "explicit", 12 | "source.organizeImports": "never" 13 | }, 14 | 15 | // Enable ESLint for all supported languages 16 | "eslint.validate": [ 17 | "javascript", 18 | "javascriptreact", 19 | "typescript", 20 | "typescriptreact", 21 | "vue", 22 | "html", 23 | "markdown", 24 | "json", 25 | "jsonc", 26 | "yaml" 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022-PRESENT Johann Schopplich 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 | # kirby-types 2 | 3 | A collection of TypeScript types to work with [Kirby CMS](https://getkirby.com), mainly in the context of the Kirby Query Language and [headless Kirby usage](https://github.com/johannschopplich/kirby-headless). 4 | 5 | ## Setup 6 | 7 | ```bash 8 | # pnpm 9 | pnpm add -D kirby-types 10 | 11 | # npm 12 | npm i -D kirby-types 13 | 14 | # yarn 15 | yarn add -D kirby-types 16 | ``` 17 | 18 | ## Basic Usage 19 | 20 | ```ts 21 | import type { KirbyQuery, ParseKirbyQuery } from "kirby-types"; 22 | 23 | // Strictly typed query 24 | const query: KirbyQuery = 'page.children.filterBy("featured", true)'; 25 | 26 | // Parse query strings into structured objects 27 | type BasicQuery = ParseKirbyQuery<"site">; 28 | // Result: { model: "site"; chain: [] } 29 | 30 | type DotNotationQuery = ParseKirbyQuery<"page.children.listed">; 31 | // Result: { 32 | // model: "page"; 33 | // chain: [ 34 | // { type: "property"; name: "children" }, 35 | // { type: "property"; name: "listed" } 36 | // ] 37 | // } 38 | 39 | type MethodQuery = ParseKirbyQuery<'site("home")'>; 40 | // Result: { 41 | // model: "site"; 42 | // chain: [{ type: "method"; name: "site"; params: '"home"' }] 43 | // } 44 | 45 | type ComplexQuery = 46 | ParseKirbyQuery<'page.children.filterBy("status", "published")'>; 47 | // Result: { 48 | // model: "page"; 49 | // chain: [ 50 | // { type: "property"; name: "children" }, 51 | // { type: "method"; name: "filterBy"; params: '"status", "published"' } 52 | // ] 53 | // } 54 | ``` 55 | 56 | ## API 57 | 58 | By clicking on a type name, you will be redirected to the corresponding TypeScript definition file. 59 | 60 | ### API 61 | 62 | - [`KirbyApiResponse`](./src/api.d.ts) - Matches the response of a [Kirby API request](https://getkirby.com/docs/reference/api). 63 | 64 | ### Query 65 | 66 | - [`KirbyQueryModel`](./src/query.d.ts) - Matches any supported KirbyQL model. 67 | - [`KirbyQuery`](./src/query.d.ts) - Matches a KirbyQL [`query`](https://getkirby.com/docs/guide/blueprints/query-language). 68 | - [`ParseKirbyQuery`](./src/query.d.ts) - Parses a KirbyQL query string into a structured object with model and chain information. 69 | 70 | ### Blocks 71 | 72 | - [`KirbyBlock`](./src/blocks.d.ts) - Matches a [Kirby block](https://getkirby.com/docs/guide/page-builder). 73 | - [`KirbyDefaultBlockType`](./src/blocks.d.ts) - Matches any [Kirby default block type](https://getkirby.com/docs/reference/panel/blocks). 74 | - [`KirbyDefaultBlocks`](./src/blocks.d.ts) - Maps each of [Kirby's default block type](https://getkirby.com/docs/reference/panel/blocks) to its corresponding block content. 75 | 76 | ### Layout 77 | 78 | - [`KirbyLayout`](./src/layout.d.ts) - Matches a [Kirby layout](https://getkirby.com/docs/reference/panel/fields/layout). 79 | - [`KirbyLayoutColumn`](./src/layout.d.ts) - Matches any [supported layout width](https://getkirby.com/docs/reference/panel/fields/layout#defining-your-own-layouts__available-widths). 80 | 81 | ### KQL 82 | 83 | - [`KirbyQuerySchema`](./src/kql.d.ts) - Matches a [KQL query schema](https://github.com/getkirby/kql). 84 | - [`KirbyQueryRequest`](./src/kql.d.ts) - Matches any [KQL request](https://github.com/getkirby/kql). 85 | - [`KirbyQueryResponse`](./src/kql.d.ts) - Matches any [KQL response](https://github.com/getkirby/kql). 86 | 87 | ## License 88 | 89 | [MIT](./LICENSE) License © 2022-PRESENT [Johann Schopplich](https://github.com/johannschopplich) 90 | -------------------------------------------------------------------------------- /eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import antfu from "@antfu/eslint-config"; 2 | 3 | export default antfu({ 4 | stylistic: false, 5 | }); 6 | -------------------------------------------------------------------------------- /index.d.ts: -------------------------------------------------------------------------------- 1 | export type { KirbyApiResponse } from "./src/api"; 2 | export type { 3 | KirbyBlock, 4 | KirbyDefaultBlocks, 5 | KirbyDefaultBlockType, 6 | } from "./src/blocks"; 7 | export type { 8 | KirbyQueryRequest, 9 | KirbyQueryResponse, 10 | KirbyQuerySchema, 11 | } from "./src/kql"; 12 | export type { KirbyLayout, KirbyLayoutColumn } from "./src/layout"; 13 | export type { 14 | KirbyQuery, 15 | KirbyQueryChain, 16 | KirbyQueryModel, 17 | ParseKirbyQuery, 18 | } from "./src/query"; 19 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "kirby-types", 3 | "type": "module", 4 | "version": "1.0.0", 5 | "packageManager": "pnpm@9.15.9", 6 | "description": "A collection of TypeScript types for the Kirby CMS", 7 | "author": "Johann Schopplich ", 8 | "license": "MIT", 9 | "homepage": "https://github.com/johannschopplich/kirby-types#readme", 10 | "repository": { 11 | "type": "git", 12 | "url": "git+https://github.com/johannschopplich/kirby-types.git" 13 | }, 14 | "bugs": "https://github.com/johannschopplich/kirby-types/issues", 15 | "keywords": [ 16 | "getkirby", 17 | "kirby-cms", 18 | "kirby", 19 | "kql", 20 | "query-language", 21 | "query", 22 | "typescript" 23 | ], 24 | "sideEffects": false, 25 | "exports": { 26 | ".": { 27 | "types": "./index.d.ts", 28 | "default": "./index.js" 29 | } 30 | }, 31 | "types": "./index.d.ts", 32 | "files": [ 33 | "index.d.ts", 34 | "src" 35 | ], 36 | "scripts": { 37 | "lint": "eslint .", 38 | "lint:fix": "eslint . --fix", 39 | "format": "prettier \"**/*.{css,html,json,md,mjs,ts,vue,yml}\" --write", 40 | "format:check": "prettier \"**/*.{css,html,json,md,mjs,ts,vue,yml}\" --check", 41 | "release": "bumpp --commit --push --tag", 42 | "test": "tsd -f \"test/**/*.test-d.ts\"" 43 | }, 44 | "devDependencies": { 45 | "@antfu/eslint-config": "^3.16.0", 46 | "bumpp": "^9.11.1", 47 | "eslint": "^9.27.0", 48 | "prettier": "^3.5.3", 49 | "tsd": "^0.32.0", 50 | "typescript": "^5.8.3" 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | devDependencies: 11 | '@antfu/eslint-config': 12 | specifier: ^3.16.0 13 | version: 3.16.0(@vue/compiler-sfc@3.5.15)(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) 14 | bumpp: 15 | specifier: ^9.11.1 16 | version: 9.11.1 17 | eslint: 18 | specifier: ^9.27.0 19 | version: 9.27.0(jiti@2.4.2) 20 | prettier: 21 | specifier: ^3.5.3 22 | version: 3.5.3 23 | tsd: 24 | specifier: ^0.32.0 25 | version: 0.32.0 26 | typescript: 27 | specifier: ^5.8.3 28 | version: 5.8.3 29 | 30 | packages: 31 | 32 | '@antfu/eslint-config@3.16.0': 33 | resolution: {integrity: sha512-g6RAXUMeow9vexoOMYwCpByY2xSDpAD78q+rvQLvVpY6MFcxFD/zmdrZGYa/yt7LizK86m17kIYKOGLJ3L8P0w==} 34 | hasBin: true 35 | peerDependencies: 36 | '@eslint-react/eslint-plugin': ^1.19.0 37 | '@prettier/plugin-xml': ^3.4.1 38 | '@unocss/eslint-plugin': '>=0.50.0' 39 | astro-eslint-parser: ^1.0.2 40 | eslint: ^9.10.0 41 | eslint-plugin-astro: ^1.2.0 42 | eslint-plugin-format: '>=0.1.0' 43 | eslint-plugin-react-hooks: ^5.0.0 44 | eslint-plugin-react-refresh: ^0.4.4 45 | eslint-plugin-solid: ^0.14.3 46 | eslint-plugin-svelte: '>=2.35.1' 47 | prettier-plugin-astro: ^0.14.0 48 | prettier-plugin-slidev: ^1.0.5 49 | svelte-eslint-parser: '>=0.37.0' 50 | peerDependenciesMeta: 51 | '@eslint-react/eslint-plugin': 52 | optional: true 53 | '@prettier/plugin-xml': 54 | optional: true 55 | '@unocss/eslint-plugin': 56 | optional: true 57 | astro-eslint-parser: 58 | optional: true 59 | eslint-plugin-astro: 60 | optional: true 61 | eslint-plugin-format: 62 | optional: true 63 | eslint-plugin-react-hooks: 64 | optional: true 65 | eslint-plugin-react-refresh: 66 | optional: true 67 | eslint-plugin-solid: 68 | optional: true 69 | eslint-plugin-svelte: 70 | optional: true 71 | prettier-plugin-astro: 72 | optional: true 73 | prettier-plugin-slidev: 74 | optional: true 75 | svelte-eslint-parser: 76 | optional: true 77 | 78 | '@antfu/install-pkg@1.1.0': 79 | resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} 80 | 81 | '@antfu/utils@0.7.10': 82 | resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} 83 | 84 | '@babel/code-frame@7.27.1': 85 | resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} 86 | engines: {node: '>=6.9.0'} 87 | 88 | '@babel/helper-string-parser@7.27.1': 89 | resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} 90 | engines: {node: '>=6.9.0'} 91 | 92 | '@babel/helper-validator-identifier@7.27.1': 93 | resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} 94 | engines: {node: '>=6.9.0'} 95 | 96 | '@babel/parser@7.27.3': 97 | resolution: {integrity: sha512-xyYxRj6+tLNDTWi0KCBcZ9V7yg3/lwL9DWh9Uwh/RIVlIfFidggcgxKX3GCXwCiswwcGRawBKbEg2LG/Y8eJhw==} 98 | engines: {node: '>=6.0.0'} 99 | hasBin: true 100 | 101 | '@babel/types@7.27.3': 102 | resolution: {integrity: sha512-Y1GkI4ktrtvmawoSq+4FCVHNryea6uR+qUQy0AGxLSsjCX0nVmkYQMBLHDkXZuo5hGx7eYdnIaslsdBFm7zbUw==} 103 | engines: {node: '>=6.9.0'} 104 | 105 | '@clack/core@0.4.1': 106 | resolution: {integrity: sha512-Pxhij4UXg8KSr7rPek6Zowm+5M22rbd2g1nfojHJkxp5YkFqiZ2+YLEM/XGVIzvGOcM0nqjIFxrpDwWRZYWYjA==} 107 | 108 | '@clack/prompts@0.9.1': 109 | resolution: {integrity: sha512-JIpyaboYZeWYlyP0H+OoPPxd6nqueG/CmN6ixBiNFsIDHREevjIf0n0Ohh5gr5C8pEDknzgvz+pIJ8dMhzWIeg==} 110 | 111 | '@emnapi/core@1.4.3': 112 | resolution: {integrity: sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==} 113 | 114 | '@emnapi/runtime@1.4.3': 115 | resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} 116 | 117 | '@emnapi/wasi-threads@1.0.2': 118 | resolution: {integrity: sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==} 119 | 120 | '@es-joy/jsdoccomment@0.50.2': 121 | resolution: {integrity: sha512-YAdE/IJSpwbOTiaURNCKECdAwqrJuFiZhylmesBcIRawtYKnBR2wxPhoIewMg+Yu+QuYvHfJNReWpoxGBKOChA==} 122 | engines: {node: '>=18'} 123 | 124 | '@eslint-community/eslint-plugin-eslint-comments@4.5.0': 125 | resolution: {integrity: sha512-MAhuTKlr4y/CE3WYX26raZjy+I/kS2PLKSzvfmDCGrBLTFHOYwqROZdr4XwPgXwX3K9rjzMr4pSmUWGnzsUyMg==} 126 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 127 | peerDependencies: 128 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 129 | 130 | '@eslint-community/eslint-utils@4.7.0': 131 | resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} 132 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 133 | peerDependencies: 134 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 135 | 136 | '@eslint-community/regexpp@4.12.1': 137 | resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} 138 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 139 | 140 | '@eslint/compat@1.2.9': 141 | resolution: {integrity: sha512-gCdSY54n7k+driCadyMNv8JSPzYLeDVM/ikZRtvtROBpRdFSkS8W9A82MqsaY7lZuwL0wiapgD0NT1xT0hyJsA==} 142 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 143 | peerDependencies: 144 | eslint: ^9.10.0 145 | peerDependenciesMeta: 146 | eslint: 147 | optional: true 148 | 149 | '@eslint/config-array@0.20.0': 150 | resolution: {integrity: sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==} 151 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 152 | 153 | '@eslint/config-helpers@0.2.2': 154 | resolution: {integrity: sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==} 155 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 156 | 157 | '@eslint/core@0.10.0': 158 | resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==} 159 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 160 | 161 | '@eslint/core@0.13.0': 162 | resolution: {integrity: sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==} 163 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 164 | 165 | '@eslint/core@0.14.0': 166 | resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==} 167 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 168 | 169 | '@eslint/eslintrc@3.3.1': 170 | resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} 171 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 172 | 173 | '@eslint/js@9.27.0': 174 | resolution: {integrity: sha512-G5JD9Tu5HJEu4z2Uo4aHY2sLV64B7CDMXxFzqzjl3NKd6RVzSXNoE80jk7Y0lJkTTkjiIhBAqmlYwjuBY3tvpA==} 175 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 176 | 177 | '@eslint/markdown@6.4.0': 178 | resolution: {integrity: sha512-J07rR8uBSNFJ9iliNINrchilpkmCihPmTVotpThUeKEn5G8aBBZnkjNBy/zovhJA5LBk1vWU9UDlhqKSc/dViQ==} 179 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 180 | 181 | '@eslint/object-schema@2.1.6': 182 | resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} 183 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 184 | 185 | '@eslint/plugin-kit@0.2.8': 186 | resolution: {integrity: sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==} 187 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 188 | 189 | '@eslint/plugin-kit@0.3.1': 190 | resolution: {integrity: sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==} 191 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 192 | 193 | '@humanfs/core@0.19.1': 194 | resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} 195 | engines: {node: '>=18.18.0'} 196 | 197 | '@humanfs/node@0.16.6': 198 | resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} 199 | engines: {node: '>=18.18.0'} 200 | 201 | '@humanwhocodes/module-importer@1.0.1': 202 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 203 | engines: {node: '>=12.22'} 204 | 205 | '@humanwhocodes/retry@0.3.1': 206 | resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} 207 | engines: {node: '>=18.18'} 208 | 209 | '@humanwhocodes/retry@0.4.3': 210 | resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} 211 | engines: {node: '>=18.18'} 212 | 213 | '@jest/schemas@29.6.3': 214 | resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} 215 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 216 | 217 | '@jridgewell/sourcemap-codec@1.5.0': 218 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 219 | 220 | '@napi-rs/wasm-runtime@0.2.10': 221 | resolution: {integrity: sha512-bCsCyeZEwVErsGmyPNSzwfwFn4OdxBj0mmv6hOFucB/k81Ojdu68RbZdxYsRQUPc9l6SU5F/cG+bXgWs3oUgsQ==} 222 | 223 | '@nodelib/fs.scandir@2.1.5': 224 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 225 | engines: {node: '>= 8'} 226 | 227 | '@nodelib/fs.stat@2.0.5': 228 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 229 | engines: {node: '>= 8'} 230 | 231 | '@nodelib/fs.walk@1.2.8': 232 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 233 | engines: {node: '>= 8'} 234 | 235 | '@pkgr/core@0.2.4': 236 | resolution: {integrity: sha512-ROFF39F6ZrnzSUEmQQZUar0Jt4xVoP9WnDRdWwF4NNcXs3xBTLgBUDoOwW141y1jP+S8nahIbdxbFC7IShw9Iw==} 237 | engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} 238 | 239 | '@sinclair/typebox@0.27.8': 240 | resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} 241 | 242 | '@stylistic/eslint-plugin@2.13.0': 243 | resolution: {integrity: sha512-RnO1SaiCFHn666wNz2QfZEFxvmiNRqhzaMXHXxXXKt+MEP7aajlPxUSMIQpKAaJfverpovEYqjBOXDq6dDcaOQ==} 244 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 245 | peerDependencies: 246 | eslint: '>=8.40.0' 247 | 248 | '@tsd/typescript@5.8.3': 249 | resolution: {integrity: sha512-oKarNCN1QUhG148M88mtZdOlBZWWGcInquef+U8QL7gwJkRuNo5WS45Fjsd+3hM9cDJWGpqSZ4Oo097KDx4IWA==} 250 | engines: {node: '>=14.17'} 251 | 252 | '@tybys/wasm-util@0.9.0': 253 | resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} 254 | 255 | '@types/debug@4.1.12': 256 | resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} 257 | 258 | '@types/eslint@7.29.0': 259 | resolution: {integrity: sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==} 260 | 261 | '@types/estree@1.0.7': 262 | resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} 263 | 264 | '@types/json-schema@7.0.15': 265 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 266 | 267 | '@types/mdast@4.0.4': 268 | resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} 269 | 270 | '@types/minimist@1.2.5': 271 | resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} 272 | 273 | '@types/ms@2.1.0': 274 | resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} 275 | 276 | '@types/normalize-package-data@2.4.4': 277 | resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} 278 | 279 | '@types/unist@3.0.3': 280 | resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} 281 | 282 | '@typescript-eslint/eslint-plugin@8.33.0': 283 | resolution: {integrity: sha512-CACyQuqSHt7ma3Ns601xykeBK/rDeZa3w6IS6UtMQbixO5DWy+8TilKkviGDH6jtWCo8FGRKEK5cLLkPvEammQ==} 284 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 285 | peerDependencies: 286 | '@typescript-eslint/parser': ^8.33.0 287 | eslint: ^8.57.0 || ^9.0.0 288 | typescript: '>=4.8.4 <5.9.0' 289 | 290 | '@typescript-eslint/parser@8.33.0': 291 | resolution: {integrity: sha512-JaehZvf6m0yqYp34+RVnihBAChkqeH+tqqhS0GuX1qgPpwLvmTPheKEs6OeCK6hVJgXZHJ2vbjnC9j119auStQ==} 292 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 293 | peerDependencies: 294 | eslint: ^8.57.0 || ^9.0.0 295 | typescript: '>=4.8.4 <5.9.0' 296 | 297 | '@typescript-eslint/project-service@8.33.0': 298 | resolution: {integrity: sha512-d1hz0u9l6N+u/gcrk6s6gYdl7/+pp8yHheRTqP6X5hVDKALEaTn8WfGiit7G511yueBEL3OpOEpD+3/MBdoN+A==} 299 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 300 | 301 | '@typescript-eslint/scope-manager@8.33.0': 302 | resolution: {integrity: sha512-LMi/oqrzpqxyO72ltP+dBSP6V0xiUb4saY7WLtxSfiNEBI8m321LLVFU9/QDJxjDQG9/tjSqKz/E3380TEqSTw==} 303 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 304 | 305 | '@typescript-eslint/tsconfig-utils@8.33.0': 306 | resolution: {integrity: sha512-sTkETlbqhEoiFmGr1gsdq5HyVbSOF0145SYDJ/EQmXHtKViCaGvnyLqWFFHtEXoS0J1yU8Wyou2UGmgW88fEug==} 307 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 308 | peerDependencies: 309 | typescript: '>=4.8.4 <5.9.0' 310 | 311 | '@typescript-eslint/type-utils@8.33.0': 312 | resolution: {integrity: sha512-lScnHNCBqL1QayuSrWeqAL5GmqNdVUQAAMTaCwdYEdWfIrSrOGzyLGRCHXcCixa5NK6i5l0AfSO2oBSjCjf4XQ==} 313 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 314 | peerDependencies: 315 | eslint: ^8.57.0 || ^9.0.0 316 | typescript: '>=4.8.4 <5.9.0' 317 | 318 | '@typescript-eslint/types@8.33.0': 319 | resolution: {integrity: sha512-DKuXOKpM5IDT1FA2g9x9x1Ug81YuKrzf4mYX8FAVSNu5Wo/LELHWQyM1pQaDkI42bX15PWl0vNPt1uGiIFUOpg==} 320 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 321 | 322 | '@typescript-eslint/typescript-estree@8.33.0': 323 | resolution: {integrity: sha512-vegY4FQoB6jL97Tu/lWRsAiUUp8qJTqzAmENH2k59SJhw0Th1oszb9Idq/FyyONLuNqT1OADJPXfyUNOR8SzAQ==} 324 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 325 | peerDependencies: 326 | typescript: '>=4.8.4 <5.9.0' 327 | 328 | '@typescript-eslint/utils@8.33.0': 329 | resolution: {integrity: sha512-lPFuQaLA9aSNa7D5u2EpRiqdAUhzShwGg/nhpBlc4GR6kcTABttCuyjFs8BcEZ8VWrjCBof/bePhP3Q3fS+Yrw==} 330 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 331 | peerDependencies: 332 | eslint: ^8.57.0 || ^9.0.0 333 | typescript: '>=4.8.4 <5.9.0' 334 | 335 | '@typescript-eslint/visitor-keys@8.33.0': 336 | resolution: {integrity: sha512-7RW7CMYoskiz5OOGAWjJFxgb7c5UNjTG292gYhWeOAcFmYCtVCSqjqSBj5zMhxbXo2JOW95YYrUWJfU0zrpaGQ==} 337 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 338 | 339 | '@unrs/resolver-binding-darwin-arm64@1.7.6': 340 | resolution: {integrity: sha512-dDhh//8GrF4PynBubCUvnJ/mG2LStUEiaWqML4SAhz2iZvG769d6e25MoJBamDR251FBT3ULpXGJ7Mdnysp27w==} 341 | cpu: [arm64] 342 | os: [darwin] 343 | 344 | '@unrs/resolver-binding-darwin-x64@1.7.6': 345 | resolution: {integrity: sha512-u1Avp0HPAulQHMwgBJaHXIcao0LWwxF5/pd3H7DhldIFd2o3B2xVjXiqslSRpARL2b0QRdAdUf8+IAy6RlrvgQ==} 346 | cpu: [x64] 347 | os: [darwin] 348 | 349 | '@unrs/resolver-binding-freebsd-x64@1.7.6': 350 | resolution: {integrity: sha512-nnjHghvIxEWvym6+ToAVmiXO11c+25p1E7CAQa/1uJTjcRhJTpEUKNbEWGO9tsxxIpBv1dfXaOA3gsJz5eBAjg==} 351 | cpu: [x64] 352 | os: [freebsd] 353 | 354 | '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.6': 355 | resolution: {integrity: sha512-96y5xFahjyUwk1om2FRVkzXHTtgmi+6MUO9iMhyb/W/9v05z1wawgj7v4j9TPwXo/f10cDKty4Aao3Fufcu2Cg==} 356 | cpu: [arm] 357 | os: [linux] 358 | 359 | '@unrs/resolver-binding-linux-arm-musleabihf@1.7.6': 360 | resolution: {integrity: sha512-tyHD5mKRZpHPVg13a16a0X8wJ6Avtfecqg1gMlGB/MXOlvrJJ6EKzdWyUPi5GZUtT+JWV/NVTPLvvC/Hzxo3aw==} 361 | cpu: [arm] 362 | os: [linux] 363 | 364 | '@unrs/resolver-binding-linux-arm64-gnu@1.7.6': 365 | resolution: {integrity: sha512-rVHWGBVbhBrWYQl0y8sObTkCqSXtLAa8srG1u21S/IPGciOP0Djq7ykih5TeUtj0nAktANsiK2g/ST8UPhfbiA==} 366 | cpu: [arm64] 367 | os: [linux] 368 | 369 | '@unrs/resolver-binding-linux-arm64-musl@1.7.6': 370 | resolution: {integrity: sha512-6a7res5yz781YPZCkilDf34cQyNOCaHTGiUR8Z5U+hlrOChGPaciz4IpUpO1x2BWiBvbyIC9Janh/ujel9bo3g==} 371 | cpu: [arm64] 372 | os: [linux] 373 | 374 | '@unrs/resolver-binding-linux-ppc64-gnu@1.7.6': 375 | resolution: {integrity: sha512-MtejOT0dfnupO9Tja6GtakFCe1FA7yY3tv6JM+oCFpChSCfJ/G87305AJyC0WZvdOUnPFh6hIMRpEjZAWxssyw==} 376 | cpu: [ppc64] 377 | os: [linux] 378 | 379 | '@unrs/resolver-binding-linux-riscv64-gnu@1.7.6': 380 | resolution: {integrity: sha512-urwxUzOqU7KKZs5KyTTFZIztzpNBHmxgO24nxaaD8lhESzC1ng1zq+gP7CKHZmQF2t3NMTdcnrXc86XYXZcBwQ==} 381 | cpu: [riscv64] 382 | os: [linux] 383 | 384 | '@unrs/resolver-binding-linux-riscv64-musl@1.7.6': 385 | resolution: {integrity: sha512-uqKOYPHRs+XUvq1+7ydgv6V42pMpzSJyuV6Y/R5FJUUuV2gJ54xhR+e5NqqS7WvWHZTDZ895P1fXejoooUfWgw==} 386 | cpu: [riscv64] 387 | os: [linux] 388 | 389 | '@unrs/resolver-binding-linux-s390x-gnu@1.7.6': 390 | resolution: {integrity: sha512-WAjhxt3hypzJf5vk2Zut/ebvuXYEOFTi45SqqkoShU9p40IEeYM2AoKC6NNo3/5CIFxR5iaIHOetlJF+iWAMIQ==} 391 | cpu: [s390x] 392 | os: [linux] 393 | 394 | '@unrs/resolver-binding-linux-x64-gnu@1.7.6': 395 | resolution: {integrity: sha512-qsuxl8zUdwWXUlMa8zUAnonye/j+2k3QfcSXkW9bAZ0BcMLDZ/7uqXsAmk+7fP1gzv57AhCDpOcFSIsP4eSPEA==} 396 | cpu: [x64] 397 | os: [linux] 398 | 399 | '@unrs/resolver-binding-linux-x64-musl@1.7.6': 400 | resolution: {integrity: sha512-5xg1/XpaJP6y5t4gAIHO6LVvd3xpkWXMBWk1lEUjh9oXfkxY9uoEd6gYJ5zj1dhiGy8uc//TG80Gnu3bqE4gsg==} 401 | cpu: [x64] 402 | os: [linux] 403 | 404 | '@unrs/resolver-binding-wasm32-wasi@1.7.6': 405 | resolution: {integrity: sha512-s5QPe0XWHDY0rb+ywbwGqZ24WH1fLpSeakM+M+up58My5T2LsScoJpqN60KgaYRJpumabqcAcczL/2LEWL6bQA==} 406 | engines: {node: '>=14.0.0'} 407 | cpu: [wasm32] 408 | 409 | '@unrs/resolver-binding-win32-arm64-msvc@1.7.6': 410 | resolution: {integrity: sha512-lzYMuug2XyxY+Ptw0LA5sNmF3WY+IefI1IMtws3y3G0EkYnqidhEi2+7eqtEiYAxPNo9VerQNfXKJd3bIuntPQ==} 411 | cpu: [arm64] 412 | os: [win32] 413 | 414 | '@unrs/resolver-binding-win32-ia32-msvc@1.7.6': 415 | resolution: {integrity: sha512-ysjUtTmUsgFMZqkMovWBr43izkC0kQPbW8V1Ln70FSAE7cVHCVf7PxIfllgQwLjjsYKKOVuq7iWe8G9mJlCk4A==} 416 | cpu: [ia32] 417 | os: [win32] 418 | 419 | '@unrs/resolver-binding-win32-x64-msvc@1.7.6': 420 | resolution: {integrity: sha512-/1kM+r9G86s0ZLk2ej0MuU3hJQGmnawAA1JPIhcVMkZCtxK/pJzNtzPms3vDwVxbbwho6ExRcVLoA4h0zwzVmA==} 421 | cpu: [x64] 422 | os: [win32] 423 | 424 | '@vitest/eslint-plugin@1.2.1': 425 | resolution: {integrity: sha512-JQr1jdVcrsoS7Sdzn83h9sq4DvREf9Q/onTZbJCqTVlv/76qb+TZrLv/9VhjnjSMHweQH5FdpMDeCR6aDe2fgw==} 426 | peerDependencies: 427 | eslint: '>= 8.57.0' 428 | typescript: '>= 5.0.0' 429 | vitest: '*' 430 | peerDependenciesMeta: 431 | typescript: 432 | optional: true 433 | vitest: 434 | optional: true 435 | 436 | '@vue/compiler-core@3.5.15': 437 | resolution: {integrity: sha512-nGRc6YJg/kxNqbv/7Tg4juirPnjHvuVdhcmDvQWVZXlLHjouq7VsKmV1hIxM/8yKM0VUfwT/Uzc0lO510ltZqw==} 438 | 439 | '@vue/compiler-dom@3.5.15': 440 | resolution: {integrity: sha512-ZelQd9n+O/UCBdL00rlwCrsArSak+YLZpBVuNDio1hN3+wrCshYZEDUO3khSLAzPbF1oQS2duEoMDUHScUlYjA==} 441 | 442 | '@vue/compiler-sfc@3.5.15': 443 | resolution: {integrity: sha512-3zndKbxMsOU6afQWer75Zot/aydjtxNj0T2KLg033rAFaQUn2PGuE32ZRe4iMhflbTcAxL0yEYsRWFxtPro8RQ==} 444 | 445 | '@vue/compiler-ssr@3.5.15': 446 | resolution: {integrity: sha512-gShn8zRREZbrXqTtmLSCffgZXDWv8nHc/GhsW+mbwBfNZL5pI96e7IWcIq8XGQe1TLtVbu7EV9gFIVSmfyarPg==} 447 | 448 | '@vue/shared@3.5.15': 449 | resolution: {integrity: sha512-bKvgFJJL1ZX9KxMCTQY6xD9Dhe3nusd1OhyOb1cJYGqvAr0Vg8FIjHPMOEVbJ9GDT9HG+Bjdn4oS8ohKP8EvoA==} 450 | 451 | acorn-jsx@5.3.2: 452 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 453 | peerDependencies: 454 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 455 | 456 | acorn@8.14.1: 457 | resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} 458 | engines: {node: '>=0.4.0'} 459 | hasBin: true 460 | 461 | ajv@6.12.6: 462 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 463 | 464 | ansi-escapes@4.3.2: 465 | resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} 466 | engines: {node: '>=8'} 467 | 468 | ansi-regex@5.0.1: 469 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 470 | engines: {node: '>=8'} 471 | 472 | ansi-styles@4.3.0: 473 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 474 | engines: {node: '>=8'} 475 | 476 | ansi-styles@5.2.0: 477 | resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} 478 | engines: {node: '>=10'} 479 | 480 | are-docs-informative@0.0.2: 481 | resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} 482 | engines: {node: '>=14'} 483 | 484 | argparse@2.0.1: 485 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 486 | 487 | array-union@2.1.0: 488 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 489 | engines: {node: '>=8'} 490 | 491 | arrify@1.0.1: 492 | resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} 493 | engines: {node: '>=0.10.0'} 494 | 495 | balanced-match@1.0.2: 496 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 497 | 498 | boolbase@1.0.0: 499 | resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} 500 | 501 | brace-expansion@1.1.11: 502 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 503 | 504 | brace-expansion@2.0.1: 505 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 506 | 507 | braces@3.0.3: 508 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 509 | engines: {node: '>=8'} 510 | 511 | browserslist@4.24.5: 512 | resolution: {integrity: sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==} 513 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 514 | hasBin: true 515 | 516 | builtin-modules@3.3.0: 517 | resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} 518 | engines: {node: '>=6'} 519 | 520 | bumpp@9.11.1: 521 | resolution: {integrity: sha512-jBHlab9NnRwrpHsockb5E+MBo0os2yS6S7i3cnN8hB6EkTardKQotmd0CFdOc8pubLz2fxj2AD6RGtrySVG6Mw==} 522 | engines: {node: '>=10'} 523 | hasBin: true 524 | 525 | c12@2.0.4: 526 | resolution: {integrity: sha512-3DbbhnFt0fKJHxU4tEUPmD1ahWE4PWPMomqfYsTJdrhpmEnRKJi3qSC4rO5U6E6zN1+pjBY7+z8fUmNRMaVKLw==} 527 | peerDependencies: 528 | magicast: ^0.3.5 529 | peerDependenciesMeta: 530 | magicast: 531 | optional: true 532 | 533 | cac@6.7.14: 534 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 535 | engines: {node: '>=8'} 536 | 537 | callsites@3.1.0: 538 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 539 | engines: {node: '>=6'} 540 | 541 | camelcase-keys@6.2.2: 542 | resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} 543 | engines: {node: '>=8'} 544 | 545 | camelcase@5.3.1: 546 | resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} 547 | engines: {node: '>=6'} 548 | 549 | caniuse-lite@1.0.30001718: 550 | resolution: {integrity: sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==} 551 | 552 | ccount@2.0.1: 553 | resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} 554 | 555 | chalk@4.1.2: 556 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 557 | engines: {node: '>=10'} 558 | 559 | character-entities@2.0.2: 560 | resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} 561 | 562 | chokidar@4.0.3: 563 | resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} 564 | engines: {node: '>= 14.16.0'} 565 | 566 | chownr@2.0.0: 567 | resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} 568 | engines: {node: '>=10'} 569 | 570 | ci-info@4.2.0: 571 | resolution: {integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==} 572 | engines: {node: '>=8'} 573 | 574 | citty@0.1.6: 575 | resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} 576 | 577 | clean-regexp@1.0.0: 578 | resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} 579 | engines: {node: '>=4'} 580 | 581 | cliui@8.0.1: 582 | resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} 583 | engines: {node: '>=12'} 584 | 585 | color-convert@2.0.1: 586 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 587 | engines: {node: '>=7.0.0'} 588 | 589 | color-name@1.1.4: 590 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 591 | 592 | comment-parser@1.4.1: 593 | resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} 594 | engines: {node: '>= 12.0.0'} 595 | 596 | concat-map@0.0.1: 597 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 598 | 599 | confbox@0.1.8: 600 | resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} 601 | 602 | confbox@0.2.2: 603 | resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} 604 | 605 | consola@3.4.2: 606 | resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} 607 | engines: {node: ^14.18.0 || >=16.10.0} 608 | 609 | core-js-compat@3.42.0: 610 | resolution: {integrity: sha512-bQasjMfyDGyaeWKBIu33lHh9qlSR0MFE/Nmc6nMjf/iU9b3rSMdAYz1Baxrv4lPdGUsTqZudHA4jIGSJy0SWZQ==} 611 | 612 | cross-spawn@7.0.6: 613 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 614 | engines: {node: '>= 8'} 615 | 616 | cssesc@3.0.0: 617 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 618 | engines: {node: '>=4'} 619 | hasBin: true 620 | 621 | debug@3.2.7: 622 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 623 | peerDependencies: 624 | supports-color: '*' 625 | peerDependenciesMeta: 626 | supports-color: 627 | optional: true 628 | 629 | debug@4.4.1: 630 | resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} 631 | engines: {node: '>=6.0'} 632 | peerDependencies: 633 | supports-color: '*' 634 | peerDependenciesMeta: 635 | supports-color: 636 | optional: true 637 | 638 | decamelize-keys@1.1.1: 639 | resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} 640 | engines: {node: '>=0.10.0'} 641 | 642 | decamelize@1.2.0: 643 | resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} 644 | engines: {node: '>=0.10.0'} 645 | 646 | decode-named-character-reference@1.1.0: 647 | resolution: {integrity: sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==} 648 | 649 | deep-is@0.1.4: 650 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 651 | 652 | defu@6.1.4: 653 | resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} 654 | 655 | dequal@2.0.3: 656 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 657 | engines: {node: '>=6'} 658 | 659 | destr@2.0.5: 660 | resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} 661 | 662 | devlop@1.1.0: 663 | resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} 664 | 665 | diff-sequences@29.6.3: 666 | resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} 667 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 668 | 669 | dir-glob@3.0.1: 670 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 671 | engines: {node: '>=8'} 672 | 673 | dotenv@16.5.0: 674 | resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==} 675 | engines: {node: '>=12'} 676 | 677 | electron-to-chromium@1.5.159: 678 | resolution: {integrity: sha512-CEvHptWAMV5p6GJ0Lq8aheyvVbfzVrv5mmidu1D3pidoVNkB3tTBsTMVtPJ+rzRK5oV229mCLz9Zj/hNvU8GBA==} 679 | 680 | emoji-regex@8.0.0: 681 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 682 | 683 | enhanced-resolve@5.18.1: 684 | resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} 685 | engines: {node: '>=10.13.0'} 686 | 687 | entities@4.5.0: 688 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 689 | engines: {node: '>=0.12'} 690 | 691 | error-ex@1.3.2: 692 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 693 | 694 | escalade@3.2.0: 695 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 696 | engines: {node: '>=6'} 697 | 698 | escape-string-regexp@1.0.5: 699 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 700 | engines: {node: '>=0.8.0'} 701 | 702 | escape-string-regexp@4.0.0: 703 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 704 | engines: {node: '>=10'} 705 | 706 | escape-string-regexp@5.0.0: 707 | resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} 708 | engines: {node: '>=12'} 709 | 710 | eslint-compat-utils@0.5.1: 711 | resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} 712 | engines: {node: '>=12'} 713 | peerDependencies: 714 | eslint: '>=6.0.0' 715 | 716 | eslint-compat-utils@0.6.5: 717 | resolution: {integrity: sha512-vAUHYzue4YAa2hNACjB8HvUQj5yehAZgiClyFVVom9cP8z5NSFq3PwB/TtJslN2zAMgRX6FCFCjYBbQh71g5RQ==} 718 | engines: {node: '>=12'} 719 | peerDependencies: 720 | eslint: '>=6.0.0' 721 | 722 | eslint-config-flat-gitignore@1.0.1: 723 | resolution: {integrity: sha512-wjBmJ8TAb67G2or/gBp/H62uCIkDCjpCmlGPSG41/7QagUjMgh+iegVB3gY8eNYhTAmecjKtclT4wGAjHz5yWA==} 724 | peerDependencies: 725 | eslint: ^9.5.0 726 | 727 | eslint-flat-config-utils@1.1.0: 728 | resolution: {integrity: sha512-W49wz7yQJGRfg4QSV3nwdO/fYcWetiSKhLV5YykfQMcqnIATNpoS7EPdINhLB9P3fmdjNmFtOgZjiKnCndWAnw==} 729 | 730 | eslint-formatter-pretty@4.1.0: 731 | resolution: {integrity: sha512-IsUTtGxF1hrH6lMWiSl1WbGaiP01eT6kzywdY1U+zLc0MP+nwEnUiS9UI8IaOTUhTeQJLlCEWIbXINBH4YJbBQ==} 732 | engines: {node: '>=10'} 733 | 734 | eslint-import-context@0.1.6: 735 | resolution: {integrity: sha512-/e2ZNPDLCrU8niIy0pddcvXuoO2YrKjf3NAIX+60mHJBT4yv7mqCqvVdyCW2E720e25e4S/1OSVef4U6efGLFg==} 736 | engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} 737 | peerDependencies: 738 | unrs-resolver: ^1.0.0 739 | peerDependenciesMeta: 740 | unrs-resolver: 741 | optional: true 742 | 743 | eslint-import-resolver-node@0.3.9: 744 | resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} 745 | 746 | eslint-json-compat-utils@0.2.1: 747 | resolution: {integrity: sha512-YzEodbDyW8DX8bImKhAcCeu/L31Dd/70Bidx2Qex9OFUtgzXLqtfWL4Hr5fM/aCCB8QUZLuJur0S9k6UfgFkfg==} 748 | engines: {node: '>=12'} 749 | peerDependencies: 750 | '@eslint/json': '*' 751 | eslint: '*' 752 | jsonc-eslint-parser: ^2.4.0 753 | peerDependenciesMeta: 754 | '@eslint/json': 755 | optional: true 756 | 757 | eslint-merge-processors@1.0.0: 758 | resolution: {integrity: sha512-4GybyHmhXtT7/W8RAouQzNM0791sYasJCTYHIAYjuiJvbNFY0jMKkoESREhX+mjX37dxiN6v4EqhZ1nc0tJF7A==} 759 | peerDependencies: 760 | eslint: '*' 761 | 762 | eslint-plugin-antfu@2.7.0: 763 | resolution: {integrity: sha512-gZM3jq3ouqaoHmUNszb1Zo2Ux7RckSvkGksjLWz9ipBYGSv1EwwBETN6AdiUXn+RpVHXTbEMPAPlXJazcA6+iA==} 764 | peerDependencies: 765 | eslint: '*' 766 | 767 | eslint-plugin-command@2.1.0: 768 | resolution: {integrity: sha512-S3gvDSCRHLdRG7NYaevLvGA0g/txOju7NEB2di7SE80NtbCwsvpi/fft045YuTZpOzqCRUfuye39raldmpXXYQ==} 769 | peerDependencies: 770 | eslint: '*' 771 | 772 | eslint-plugin-es-x@7.8.0: 773 | resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} 774 | engines: {node: ^14.18.0 || >=16.0.0} 775 | peerDependencies: 776 | eslint: '>=8' 777 | 778 | eslint-plugin-import-x@4.13.3: 779 | resolution: {integrity: sha512-CDewJDEeYQhm94KGCDYiuwU1SdaWc/vh+SziSKkF7kichAqAFnQYtSYUvSwSBbiBjYLxV5uUxocxxQobRI9YXA==} 780 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 781 | peerDependencies: 782 | eslint: ^8.57.0 || ^9.0.0 783 | 784 | eslint-plugin-jsdoc@50.6.17: 785 | resolution: {integrity: sha512-hq+VQylhd12l8qjexyriDsejZhqiP33WgMTy2AmaGZ9+MrMWVqPECsM87GPxgHfQn0zw+YTuhqjUfk1f+q67aQ==} 786 | engines: {node: '>=18'} 787 | peerDependencies: 788 | eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 789 | 790 | eslint-plugin-jsonc@2.20.1: 791 | resolution: {integrity: sha512-gUzIwQHXx7ZPypUoadcyRi4WbHW2TPixDr0kqQ4miuJBU0emJmyGTlnaT3Og9X2a8R1CDayN9BFSq5weGWbTng==} 792 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 793 | peerDependencies: 794 | eslint: '>=6.0.0' 795 | 796 | eslint-plugin-n@17.18.0: 797 | resolution: {integrity: sha512-hvZ/HusueqTJ7VDLoCpjN0hx4N4+jHIWTXD4TMLHy9F23XkDagR9v+xQWRWR57yY55GPF8NnD4ox9iGTxirY8A==} 798 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 799 | peerDependencies: 800 | eslint: '>=8.23.0' 801 | 802 | eslint-plugin-no-only-tests@3.3.0: 803 | resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==} 804 | engines: {node: '>=5.0.0'} 805 | 806 | eslint-plugin-perfectionist@4.13.0: 807 | resolution: {integrity: sha512-dsPwXwV7IrG26PJ+h1crQ1f5kxay/gQAU0NJnbVTQc91l5Mz9kPjyIZ7fXgie+QSgi8a+0TwGbfaJx+GIhzuoQ==} 808 | engines: {node: ^18.0.0 || >=20.0.0} 809 | peerDependencies: 810 | eslint: '>=8.45.0' 811 | 812 | eslint-plugin-regexp@2.7.0: 813 | resolution: {integrity: sha512-U8oZI77SBtH8U3ulZ05iu0qEzIizyEDXd+BWHvyVxTOjGwcDcvy/kEpgFG4DYca2ByRLiVPFZ2GeH7j1pdvZTA==} 814 | engines: {node: ^18 || >=20} 815 | peerDependencies: 816 | eslint: '>=8.44.0' 817 | 818 | eslint-plugin-toml@0.12.0: 819 | resolution: {integrity: sha512-+/wVObA9DVhwZB1nG83D2OAQRrcQZXy+drqUnFJKymqnmbnbfg/UPmEMCKrJNcEboUGxUjYrJlgy+/Y930mURQ==} 820 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 821 | peerDependencies: 822 | eslint: '>=6.0.0' 823 | 824 | eslint-plugin-unicorn@56.0.1: 825 | resolution: {integrity: sha512-FwVV0Uwf8XPfVnKSGpMg7NtlZh0G0gBarCaFcMUOoqPxXryxdYxTRRv4kH6B9TFCVIrjRXG+emcxIk2ayZilog==} 826 | engines: {node: '>=18.18'} 827 | peerDependencies: 828 | eslint: '>=8.56.0' 829 | 830 | eslint-plugin-unused-imports@4.1.4: 831 | resolution: {integrity: sha512-YptD6IzQjDardkl0POxnnRBhU1OEePMV0nd6siHaRBbd+lyh6NAhFEobiznKU7kTsSsDeSD62Pe7kAM1b7dAZQ==} 832 | peerDependencies: 833 | '@typescript-eslint/eslint-plugin': ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0 834 | eslint: ^9.0.0 || ^8.0.0 835 | peerDependenciesMeta: 836 | '@typescript-eslint/eslint-plugin': 837 | optional: true 838 | 839 | eslint-plugin-vue@9.33.0: 840 | resolution: {integrity: sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw==} 841 | engines: {node: ^14.17.0 || >=16.0.0} 842 | peerDependencies: 843 | eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 844 | 845 | eslint-plugin-yml@1.18.0: 846 | resolution: {integrity: sha512-9NtbhHRN2NJa/s3uHchO3qVVZw0vyOIvWlXWGaKCr/6l3Go62wsvJK5byiI6ZoYztDsow4GnS69BZD3GnqH3hA==} 847 | engines: {node: ^14.17.0 || >=16.0.0} 848 | peerDependencies: 849 | eslint: '>=6.0.0' 850 | 851 | eslint-processor-vue-blocks@1.0.0: 852 | resolution: {integrity: sha512-q+Wn9bCml65NwYtuINVCE5dUqZa/uVoY4jfc8qEDwWbcGqdRyfJJmAONNZsreA4Q9EJqjYGjk8Hk1QuwAktgkw==} 853 | peerDependencies: 854 | '@vue/compiler-sfc': ^3.3.0 855 | eslint: ^8.50.0 || ^9.0.0 856 | 857 | eslint-rule-docs@1.1.235: 858 | resolution: {integrity: sha512-+TQ+x4JdTnDoFEXXb3fDvfGOwnyNV7duH8fXWTPD1ieaBmB8omj7Gw/pMBBu4uI2uJCCU8APDaQJzWuXnTsH4A==} 859 | 860 | eslint-scope@7.2.2: 861 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 862 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 863 | 864 | eslint-scope@8.3.0: 865 | resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==} 866 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 867 | 868 | eslint-visitor-keys@3.4.3: 869 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 870 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 871 | 872 | eslint-visitor-keys@4.2.0: 873 | resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} 874 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 875 | 876 | eslint@9.27.0: 877 | resolution: {integrity: sha512-ixRawFQuMB9DZ7fjU3iGGganFDp3+45bPOdaRurcFHSXO1e/sYwUX/FtQZpLZJR6SjMoJH8hR2pPEAfDyCoU2Q==} 878 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 879 | hasBin: true 880 | peerDependencies: 881 | jiti: '*' 882 | peerDependenciesMeta: 883 | jiti: 884 | optional: true 885 | 886 | espree@10.3.0: 887 | resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} 888 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 889 | 890 | espree@9.6.1: 891 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 892 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 893 | 894 | esquery@1.6.0: 895 | resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} 896 | engines: {node: '>=0.10'} 897 | 898 | esrecurse@4.3.0: 899 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 900 | engines: {node: '>=4.0'} 901 | 902 | estraverse@5.3.0: 903 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 904 | engines: {node: '>=4.0'} 905 | 906 | estree-walker@2.0.2: 907 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 908 | 909 | esutils@2.0.3: 910 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 911 | engines: {node: '>=0.10.0'} 912 | 913 | exsolve@1.0.5: 914 | resolution: {integrity: sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==} 915 | 916 | fast-deep-equal@3.1.3: 917 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 918 | 919 | fast-glob@3.3.3: 920 | resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} 921 | engines: {node: '>=8.6.0'} 922 | 923 | fast-json-stable-stringify@2.1.0: 924 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 925 | 926 | fast-levenshtein@2.0.6: 927 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 928 | 929 | fastq@1.19.1: 930 | resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} 931 | 932 | fault@2.0.1: 933 | resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} 934 | 935 | fdir@6.4.5: 936 | resolution: {integrity: sha512-4BG7puHpVsIYxZUbiUE3RqGloLaSSwzYie5jvasC4LWuBWzZawynvYouhjbQKw2JuIGYdm0DzIxl8iVidKlUEw==} 937 | peerDependencies: 938 | picomatch: ^3 || ^4 939 | peerDependenciesMeta: 940 | picomatch: 941 | optional: true 942 | 943 | file-entry-cache@8.0.0: 944 | resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} 945 | engines: {node: '>=16.0.0'} 946 | 947 | fill-range@7.1.1: 948 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 949 | engines: {node: '>=8'} 950 | 951 | find-up@4.1.0: 952 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 953 | engines: {node: '>=8'} 954 | 955 | find-up@5.0.0: 956 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 957 | engines: {node: '>=10'} 958 | 959 | flat-cache@4.0.1: 960 | resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} 961 | engines: {node: '>=16'} 962 | 963 | flatted@3.3.3: 964 | resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} 965 | 966 | format@0.2.2: 967 | resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} 968 | engines: {node: '>=0.4.x'} 969 | 970 | fs-minipass@2.1.0: 971 | resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} 972 | engines: {node: '>= 8'} 973 | 974 | function-bind@1.1.2: 975 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 976 | 977 | get-caller-file@2.0.5: 978 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 979 | engines: {node: 6.* || 8.* || >= 10.*} 980 | 981 | get-tsconfig@4.10.1: 982 | resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} 983 | 984 | giget@1.2.5: 985 | resolution: {integrity: sha512-r1ekGw/Bgpi3HLV3h1MRBIlSAdHoIMklpaQ3OQLFcRw9PwAj2rqigvIbg+dBUI51OxVI2jsEtDywDBjSiuf7Ug==} 986 | hasBin: true 987 | 988 | glob-parent@5.1.2: 989 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 990 | engines: {node: '>= 6'} 991 | 992 | glob-parent@6.0.2: 993 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 994 | engines: {node: '>=10.13.0'} 995 | 996 | globals@13.24.0: 997 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} 998 | engines: {node: '>=8'} 999 | 1000 | globals@14.0.0: 1001 | resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} 1002 | engines: {node: '>=18'} 1003 | 1004 | globals@15.15.0: 1005 | resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} 1006 | engines: {node: '>=18'} 1007 | 1008 | globby@11.1.0: 1009 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1010 | engines: {node: '>=10'} 1011 | 1012 | graceful-fs@4.2.11: 1013 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1014 | 1015 | graphemer@1.4.0: 1016 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 1017 | 1018 | hard-rejection@2.1.0: 1019 | resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} 1020 | engines: {node: '>=6'} 1021 | 1022 | has-flag@4.0.0: 1023 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1024 | engines: {node: '>=8'} 1025 | 1026 | hasown@2.0.2: 1027 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 1028 | engines: {node: '>= 0.4'} 1029 | 1030 | hosted-git-info@2.8.9: 1031 | resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} 1032 | 1033 | hosted-git-info@4.1.0: 1034 | resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} 1035 | engines: {node: '>=10'} 1036 | 1037 | ignore@5.3.2: 1038 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 1039 | engines: {node: '>= 4'} 1040 | 1041 | ignore@7.0.4: 1042 | resolution: {integrity: sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==} 1043 | engines: {node: '>= 4'} 1044 | 1045 | import-fresh@3.3.1: 1046 | resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} 1047 | engines: {node: '>=6'} 1048 | 1049 | imurmurhash@0.1.4: 1050 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1051 | engines: {node: '>=0.8.19'} 1052 | 1053 | indent-string@4.0.0: 1054 | resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} 1055 | engines: {node: '>=8'} 1056 | 1057 | irregular-plurals@3.5.0: 1058 | resolution: {integrity: sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==} 1059 | engines: {node: '>=8'} 1060 | 1061 | is-arrayish@0.2.1: 1062 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} 1063 | 1064 | is-builtin-module@3.2.1: 1065 | resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} 1066 | engines: {node: '>=6'} 1067 | 1068 | is-core-module@2.16.1: 1069 | resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} 1070 | engines: {node: '>= 0.4'} 1071 | 1072 | is-extglob@2.1.1: 1073 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1074 | engines: {node: '>=0.10.0'} 1075 | 1076 | is-fullwidth-code-point@3.0.0: 1077 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1078 | engines: {node: '>=8'} 1079 | 1080 | is-glob@4.0.3: 1081 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1082 | engines: {node: '>=0.10.0'} 1083 | 1084 | is-number@7.0.0: 1085 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1086 | engines: {node: '>=0.12.0'} 1087 | 1088 | is-plain-obj@1.1.0: 1089 | resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} 1090 | engines: {node: '>=0.10.0'} 1091 | 1092 | is-unicode-supported@0.1.0: 1093 | resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} 1094 | engines: {node: '>=10'} 1095 | 1096 | isexe@2.0.0: 1097 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1098 | 1099 | jest-diff@29.7.0: 1100 | resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} 1101 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1102 | 1103 | jest-get-type@29.6.3: 1104 | resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} 1105 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1106 | 1107 | jiti@2.4.2: 1108 | resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} 1109 | hasBin: true 1110 | 1111 | js-tokens@4.0.0: 1112 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1113 | 1114 | js-yaml@4.1.0: 1115 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1116 | hasBin: true 1117 | 1118 | jsdoc-type-pratt-parser@4.1.0: 1119 | resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} 1120 | engines: {node: '>=12.0.0'} 1121 | 1122 | jsesc@0.5.0: 1123 | resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} 1124 | hasBin: true 1125 | 1126 | jsesc@3.1.0: 1127 | resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} 1128 | engines: {node: '>=6'} 1129 | hasBin: true 1130 | 1131 | json-buffer@3.0.1: 1132 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 1133 | 1134 | json-parse-even-better-errors@2.3.1: 1135 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 1136 | 1137 | json-schema-traverse@0.4.1: 1138 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1139 | 1140 | json-stable-stringify-without-jsonify@1.0.1: 1141 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1142 | 1143 | jsonc-eslint-parser@2.4.0: 1144 | resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} 1145 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1146 | 1147 | jsonc-parser@3.3.1: 1148 | resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} 1149 | 1150 | keyv@4.5.4: 1151 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 1152 | 1153 | kind-of@6.0.3: 1154 | resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} 1155 | engines: {node: '>=0.10.0'} 1156 | 1157 | kleur@3.0.3: 1158 | resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} 1159 | engines: {node: '>=6'} 1160 | 1161 | levn@0.4.1: 1162 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1163 | engines: {node: '>= 0.8.0'} 1164 | 1165 | lines-and-columns@1.2.4: 1166 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1167 | 1168 | local-pkg@1.1.1: 1169 | resolution: {integrity: sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==} 1170 | engines: {node: '>=14'} 1171 | 1172 | locate-path@5.0.0: 1173 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 1174 | engines: {node: '>=8'} 1175 | 1176 | locate-path@6.0.0: 1177 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1178 | engines: {node: '>=10'} 1179 | 1180 | lodash.merge@4.6.2: 1181 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1182 | 1183 | lodash@4.17.21: 1184 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 1185 | 1186 | log-symbols@4.1.0: 1187 | resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} 1188 | engines: {node: '>=10'} 1189 | 1190 | longest-streak@3.1.0: 1191 | resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} 1192 | 1193 | lru-cache@6.0.0: 1194 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 1195 | engines: {node: '>=10'} 1196 | 1197 | magic-string@0.30.17: 1198 | resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} 1199 | 1200 | map-obj@1.0.1: 1201 | resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} 1202 | engines: {node: '>=0.10.0'} 1203 | 1204 | map-obj@4.3.0: 1205 | resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} 1206 | engines: {node: '>=8'} 1207 | 1208 | markdown-table@3.0.4: 1209 | resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} 1210 | 1211 | mdast-util-find-and-replace@3.0.2: 1212 | resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} 1213 | 1214 | mdast-util-from-markdown@2.0.2: 1215 | resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} 1216 | 1217 | mdast-util-frontmatter@2.0.1: 1218 | resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} 1219 | 1220 | mdast-util-gfm-autolink-literal@2.0.1: 1221 | resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} 1222 | 1223 | mdast-util-gfm-footnote@2.1.0: 1224 | resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} 1225 | 1226 | mdast-util-gfm-strikethrough@2.0.0: 1227 | resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} 1228 | 1229 | mdast-util-gfm-table@2.0.0: 1230 | resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} 1231 | 1232 | mdast-util-gfm-task-list-item@2.0.0: 1233 | resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} 1234 | 1235 | mdast-util-gfm@3.1.0: 1236 | resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} 1237 | 1238 | mdast-util-phrasing@4.1.0: 1239 | resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} 1240 | 1241 | mdast-util-to-markdown@2.1.2: 1242 | resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} 1243 | 1244 | mdast-util-to-string@4.0.0: 1245 | resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} 1246 | 1247 | meow@9.0.0: 1248 | resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} 1249 | engines: {node: '>=10'} 1250 | 1251 | merge2@1.4.1: 1252 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1253 | engines: {node: '>= 8'} 1254 | 1255 | micromark-core-commonmark@2.0.3: 1256 | resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} 1257 | 1258 | micromark-extension-frontmatter@2.0.0: 1259 | resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} 1260 | 1261 | micromark-extension-gfm-autolink-literal@2.1.0: 1262 | resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} 1263 | 1264 | micromark-extension-gfm-footnote@2.1.0: 1265 | resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} 1266 | 1267 | micromark-extension-gfm-strikethrough@2.1.0: 1268 | resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} 1269 | 1270 | micromark-extension-gfm-table@2.1.1: 1271 | resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} 1272 | 1273 | micromark-extension-gfm-tagfilter@2.0.0: 1274 | resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} 1275 | 1276 | micromark-extension-gfm-task-list-item@2.1.0: 1277 | resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} 1278 | 1279 | micromark-extension-gfm@3.0.0: 1280 | resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} 1281 | 1282 | micromark-factory-destination@2.0.1: 1283 | resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} 1284 | 1285 | micromark-factory-label@2.0.1: 1286 | resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} 1287 | 1288 | micromark-factory-space@2.0.1: 1289 | resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} 1290 | 1291 | micromark-factory-title@2.0.1: 1292 | resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} 1293 | 1294 | micromark-factory-whitespace@2.0.1: 1295 | resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} 1296 | 1297 | micromark-util-character@2.1.1: 1298 | resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} 1299 | 1300 | micromark-util-chunked@2.0.1: 1301 | resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} 1302 | 1303 | micromark-util-classify-character@2.0.1: 1304 | resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} 1305 | 1306 | micromark-util-combine-extensions@2.0.1: 1307 | resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} 1308 | 1309 | micromark-util-decode-numeric-character-reference@2.0.2: 1310 | resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} 1311 | 1312 | micromark-util-decode-string@2.0.1: 1313 | resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} 1314 | 1315 | micromark-util-encode@2.0.1: 1316 | resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} 1317 | 1318 | micromark-util-html-tag-name@2.0.1: 1319 | resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} 1320 | 1321 | micromark-util-normalize-identifier@2.0.1: 1322 | resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} 1323 | 1324 | micromark-util-resolve-all@2.0.1: 1325 | resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} 1326 | 1327 | micromark-util-sanitize-uri@2.0.1: 1328 | resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} 1329 | 1330 | micromark-util-subtokenize@2.1.0: 1331 | resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} 1332 | 1333 | micromark-util-symbol@2.0.1: 1334 | resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} 1335 | 1336 | micromark-util-types@2.0.2: 1337 | resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} 1338 | 1339 | micromark@4.0.2: 1340 | resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} 1341 | 1342 | micromatch@4.0.8: 1343 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 1344 | engines: {node: '>=8.6'} 1345 | 1346 | min-indent@1.0.1: 1347 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 1348 | engines: {node: '>=4'} 1349 | 1350 | minimatch@10.0.1: 1351 | resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} 1352 | engines: {node: 20 || >=22} 1353 | 1354 | minimatch@3.1.2: 1355 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1356 | 1357 | minimatch@9.0.5: 1358 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 1359 | engines: {node: '>=16 || 14 >=14.17'} 1360 | 1361 | minimist-options@4.1.0: 1362 | resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} 1363 | engines: {node: '>= 6'} 1364 | 1365 | minipass@3.3.6: 1366 | resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} 1367 | engines: {node: '>=8'} 1368 | 1369 | minipass@5.0.0: 1370 | resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} 1371 | engines: {node: '>=8'} 1372 | 1373 | minizlib@2.1.2: 1374 | resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} 1375 | engines: {node: '>= 8'} 1376 | 1377 | mkdirp@1.0.4: 1378 | resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} 1379 | engines: {node: '>=10'} 1380 | hasBin: true 1381 | 1382 | mlly@1.7.4: 1383 | resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} 1384 | 1385 | ms@2.1.3: 1386 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1387 | 1388 | nanoid@3.3.11: 1389 | resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} 1390 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1391 | hasBin: true 1392 | 1393 | napi-postinstall@0.2.4: 1394 | resolution: {integrity: sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==} 1395 | engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} 1396 | hasBin: true 1397 | 1398 | natural-compare@1.4.0: 1399 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1400 | 1401 | natural-orderby@5.0.0: 1402 | resolution: {integrity: sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==} 1403 | engines: {node: '>=18'} 1404 | 1405 | node-fetch-native@1.6.6: 1406 | resolution: {integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==} 1407 | 1408 | node-releases@2.0.19: 1409 | resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} 1410 | 1411 | normalize-package-data@2.5.0: 1412 | resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} 1413 | 1414 | normalize-package-data@3.0.3: 1415 | resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} 1416 | engines: {node: '>=10'} 1417 | 1418 | nth-check@2.1.1: 1419 | resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} 1420 | 1421 | nypm@0.5.4: 1422 | resolution: {integrity: sha512-X0SNNrZiGU8/e/zAB7sCTtdxWTMSIO73q+xuKgglm2Yvzwlo8UoC5FNySQFCvl84uPaeADkqHUZUkWy4aH4xOA==} 1423 | engines: {node: ^14.16.0 || >=16.10.0} 1424 | hasBin: true 1425 | 1426 | ohash@2.0.11: 1427 | resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} 1428 | 1429 | optionator@0.9.4: 1430 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 1431 | engines: {node: '>= 0.8.0'} 1432 | 1433 | p-limit@2.3.0: 1434 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 1435 | engines: {node: '>=6'} 1436 | 1437 | p-limit@3.1.0: 1438 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1439 | engines: {node: '>=10'} 1440 | 1441 | p-locate@4.1.0: 1442 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 1443 | engines: {node: '>=8'} 1444 | 1445 | p-locate@5.0.0: 1446 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1447 | engines: {node: '>=10'} 1448 | 1449 | p-try@2.2.0: 1450 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 1451 | engines: {node: '>=6'} 1452 | 1453 | package-manager-detector@0.2.11: 1454 | resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} 1455 | 1456 | package-manager-detector@1.3.0: 1457 | resolution: {integrity: sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==} 1458 | 1459 | parent-module@1.0.1: 1460 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1461 | engines: {node: '>=6'} 1462 | 1463 | parse-gitignore@2.0.0: 1464 | resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==} 1465 | engines: {node: '>=14'} 1466 | 1467 | parse-imports-exports@0.2.4: 1468 | resolution: {integrity: sha512-4s6vd6dx1AotCx/RCI2m7t7GCh5bDRUtGNvRfHSP2wbBQdMi67pPe7mtzmgwcaQ8VKK/6IB7Glfyu3qdZJPybQ==} 1469 | 1470 | parse-json@5.2.0: 1471 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 1472 | engines: {node: '>=8'} 1473 | 1474 | parse-statements@1.0.11: 1475 | resolution: {integrity: sha512-HlsyYdMBnbPQ9Jr/VgJ1YF4scnldvJpJxCVx6KgqPL4dxppsWrJHCIIxQXMJrqGnsRkNPATbeMJ8Yxu7JMsYcA==} 1476 | 1477 | path-exists@4.0.0: 1478 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1479 | engines: {node: '>=8'} 1480 | 1481 | path-key@3.1.1: 1482 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1483 | engines: {node: '>=8'} 1484 | 1485 | path-parse@1.0.7: 1486 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1487 | 1488 | path-type@4.0.0: 1489 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1490 | engines: {node: '>=8'} 1491 | 1492 | pathe@2.0.3: 1493 | resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} 1494 | 1495 | perfect-debounce@1.0.0: 1496 | resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} 1497 | 1498 | picocolors@1.1.1: 1499 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1500 | 1501 | picomatch@2.3.1: 1502 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1503 | engines: {node: '>=8.6'} 1504 | 1505 | picomatch@4.0.2: 1506 | resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} 1507 | engines: {node: '>=12'} 1508 | 1509 | pkg-types@1.3.1: 1510 | resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} 1511 | 1512 | pkg-types@2.1.0: 1513 | resolution: {integrity: sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==} 1514 | 1515 | plur@4.0.0: 1516 | resolution: {integrity: sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==} 1517 | engines: {node: '>=10'} 1518 | 1519 | pluralize@8.0.0: 1520 | resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} 1521 | engines: {node: '>=4'} 1522 | 1523 | postcss-selector-parser@6.1.2: 1524 | resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} 1525 | engines: {node: '>=4'} 1526 | 1527 | postcss@8.5.3: 1528 | resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} 1529 | engines: {node: ^10 || ^12 || >=14} 1530 | 1531 | prelude-ls@1.2.1: 1532 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1533 | engines: {node: '>= 0.8.0'} 1534 | 1535 | prettier@3.5.3: 1536 | resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} 1537 | engines: {node: '>=14'} 1538 | hasBin: true 1539 | 1540 | pretty-format@29.7.0: 1541 | resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} 1542 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1543 | 1544 | prompts@2.4.2: 1545 | resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} 1546 | engines: {node: '>= 6'} 1547 | 1548 | punycode@2.3.1: 1549 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1550 | engines: {node: '>=6'} 1551 | 1552 | quansync@0.2.10: 1553 | resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==} 1554 | 1555 | queue-microtask@1.2.3: 1556 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1557 | 1558 | quick-lru@4.0.1: 1559 | resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} 1560 | engines: {node: '>=8'} 1561 | 1562 | rc9@2.1.2: 1563 | resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} 1564 | 1565 | react-is@18.3.1: 1566 | resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} 1567 | 1568 | read-pkg-up@7.0.1: 1569 | resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} 1570 | engines: {node: '>=8'} 1571 | 1572 | read-pkg@5.2.0: 1573 | resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} 1574 | engines: {node: '>=8'} 1575 | 1576 | readdirp@4.1.2: 1577 | resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} 1578 | engines: {node: '>= 14.18.0'} 1579 | 1580 | redent@3.0.0: 1581 | resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} 1582 | engines: {node: '>=8'} 1583 | 1584 | refa@0.12.1: 1585 | resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} 1586 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 1587 | 1588 | regexp-ast-analysis@0.7.1: 1589 | resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} 1590 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 1591 | 1592 | regexp-tree@0.1.27: 1593 | resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} 1594 | hasBin: true 1595 | 1596 | regjsparser@0.10.0: 1597 | resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} 1598 | hasBin: true 1599 | 1600 | require-directory@2.1.1: 1601 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 1602 | engines: {node: '>=0.10.0'} 1603 | 1604 | resolve-from@4.0.0: 1605 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1606 | engines: {node: '>=4'} 1607 | 1608 | resolve-pkg-maps@1.0.0: 1609 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 1610 | 1611 | resolve@1.22.10: 1612 | resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} 1613 | engines: {node: '>= 0.4'} 1614 | hasBin: true 1615 | 1616 | reusify@1.1.0: 1617 | resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} 1618 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1619 | 1620 | run-parallel@1.2.0: 1621 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1622 | 1623 | scslre@0.3.0: 1624 | resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==} 1625 | engines: {node: ^14.0.0 || >=16.0.0} 1626 | 1627 | semver@5.7.2: 1628 | resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} 1629 | hasBin: true 1630 | 1631 | semver@7.7.2: 1632 | resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} 1633 | engines: {node: '>=10'} 1634 | hasBin: true 1635 | 1636 | shebang-command@2.0.0: 1637 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1638 | engines: {node: '>=8'} 1639 | 1640 | shebang-regex@3.0.0: 1641 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1642 | engines: {node: '>=8'} 1643 | 1644 | sisteransi@1.0.5: 1645 | resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} 1646 | 1647 | slash@3.0.0: 1648 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1649 | engines: {node: '>=8'} 1650 | 1651 | source-map-js@1.2.1: 1652 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 1653 | engines: {node: '>=0.10.0'} 1654 | 1655 | spdx-correct@3.2.0: 1656 | resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} 1657 | 1658 | spdx-exceptions@2.5.0: 1659 | resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} 1660 | 1661 | spdx-expression-parse@3.0.1: 1662 | resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} 1663 | 1664 | spdx-expression-parse@4.0.0: 1665 | resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} 1666 | 1667 | spdx-license-ids@3.0.21: 1668 | resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==} 1669 | 1670 | stable-hash@0.0.5: 1671 | resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} 1672 | 1673 | string-width@4.2.3: 1674 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1675 | engines: {node: '>=8'} 1676 | 1677 | strip-ansi@6.0.1: 1678 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1679 | engines: {node: '>=8'} 1680 | 1681 | strip-indent@3.0.0: 1682 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 1683 | engines: {node: '>=8'} 1684 | 1685 | strip-json-comments@3.1.1: 1686 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1687 | engines: {node: '>=8'} 1688 | 1689 | supports-color@7.2.0: 1690 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1691 | engines: {node: '>=8'} 1692 | 1693 | supports-hyperlinks@2.3.0: 1694 | resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} 1695 | engines: {node: '>=8'} 1696 | 1697 | supports-preserve-symlinks-flag@1.0.0: 1698 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1699 | engines: {node: '>= 0.4'} 1700 | 1701 | synckit@0.11.6: 1702 | resolution: {integrity: sha512-2pR2ubZSV64f/vqm9eLPz/KOvR9Dm+Co/5ChLgeHl0yEDRc6h5hXHoxEQH8Y5Ljycozd3p1k5TTSVdzYGkPvLw==} 1703 | engines: {node: ^14.18.0 || >=16.0.0} 1704 | 1705 | tapable@2.2.2: 1706 | resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} 1707 | engines: {node: '>=6'} 1708 | 1709 | tar@6.2.1: 1710 | resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} 1711 | engines: {node: '>=10'} 1712 | 1713 | tiny-conventional-commits-parser@0.0.1: 1714 | resolution: {integrity: sha512-N5+AZWdBeHNSgTIaxvx0+9mFrnW4H1BbjQ84H7i3TuWSkno8Hju886hLaHZhE/hYEKrfrfl/uHurqpZJHDuYGQ==} 1715 | 1716 | tinyexec@0.3.2: 1717 | resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} 1718 | 1719 | tinyexec@1.0.1: 1720 | resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==} 1721 | 1722 | tinyglobby@0.2.14: 1723 | resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} 1724 | engines: {node: '>=12.0.0'} 1725 | 1726 | to-regex-range@5.0.1: 1727 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1728 | engines: {node: '>=8.0'} 1729 | 1730 | toml-eslint-parser@0.10.0: 1731 | resolution: {integrity: sha512-khrZo4buq4qVmsGzS5yQjKe/WsFvV8fGfOjDQN0q4iy9FjRfPWRgTFrU8u1R2iu/SfWLhY9WnCi4Jhdrcbtg+g==} 1732 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1733 | 1734 | trim-newlines@3.0.1: 1735 | resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} 1736 | engines: {node: '>=8'} 1737 | 1738 | ts-api-utils@2.1.0: 1739 | resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} 1740 | engines: {node: '>=18.12'} 1741 | peerDependencies: 1742 | typescript: '>=4.8.4' 1743 | 1744 | tsd@0.32.0: 1745 | resolution: {integrity: sha512-R5lBZCbxGBowOcW0gpQaiIjGYrG5NmU+PfFDKcc3zbtzWjML1o/zAwzdDnS2ZheSlPu9GW51azpFqEPUBq9DoQ==} 1746 | engines: {node: '>=14.16'} 1747 | hasBin: true 1748 | 1749 | tslib@2.8.1: 1750 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 1751 | 1752 | type-check@0.4.0: 1753 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1754 | engines: {node: '>= 0.8.0'} 1755 | 1756 | type-fest@0.18.1: 1757 | resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} 1758 | engines: {node: '>=10'} 1759 | 1760 | type-fest@0.20.2: 1761 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 1762 | engines: {node: '>=10'} 1763 | 1764 | type-fest@0.21.3: 1765 | resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} 1766 | engines: {node: '>=10'} 1767 | 1768 | type-fest@0.6.0: 1769 | resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} 1770 | engines: {node: '>=8'} 1771 | 1772 | type-fest@0.8.1: 1773 | resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} 1774 | engines: {node: '>=8'} 1775 | 1776 | typescript@5.8.3: 1777 | resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} 1778 | engines: {node: '>=14.17'} 1779 | hasBin: true 1780 | 1781 | ufo@1.6.1: 1782 | resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} 1783 | 1784 | unist-util-is@6.0.0: 1785 | resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} 1786 | 1787 | unist-util-stringify-position@4.0.0: 1788 | resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} 1789 | 1790 | unist-util-visit-parents@6.0.1: 1791 | resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} 1792 | 1793 | unist-util-visit@5.0.0: 1794 | resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} 1795 | 1796 | unrs-resolver@1.7.6: 1797 | resolution: {integrity: sha512-72mW/4N9ajUM3Pnw2CLFcsollrsfUuPl+/OW+AJsgmp5rnw7KuCre6I4EtoVBYrOy3DbVXnR33bL+Pfbdbek2Q==} 1798 | 1799 | update-browserslist-db@1.1.3: 1800 | resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} 1801 | hasBin: true 1802 | peerDependencies: 1803 | browserslist: '>= 4.21.0' 1804 | 1805 | uri-js@4.4.1: 1806 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1807 | 1808 | util-deprecate@1.0.2: 1809 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 1810 | 1811 | validate-npm-package-license@3.0.4: 1812 | resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} 1813 | 1814 | vue-eslint-parser@9.4.3: 1815 | resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==} 1816 | engines: {node: ^14.17.0 || >=16.0.0} 1817 | peerDependencies: 1818 | eslint: '>=6.0.0' 1819 | 1820 | which@2.0.2: 1821 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1822 | engines: {node: '>= 8'} 1823 | hasBin: true 1824 | 1825 | word-wrap@1.2.5: 1826 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 1827 | engines: {node: '>=0.10.0'} 1828 | 1829 | wrap-ansi@7.0.0: 1830 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1831 | engines: {node: '>=10'} 1832 | 1833 | xml-name-validator@4.0.0: 1834 | resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} 1835 | engines: {node: '>=12'} 1836 | 1837 | y18n@5.0.8: 1838 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 1839 | engines: {node: '>=10'} 1840 | 1841 | yallist@4.0.0: 1842 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 1843 | 1844 | yaml-eslint-parser@1.3.0: 1845 | resolution: {integrity: sha512-E/+VitOorXSLiAqtTd7Yqax0/pAS3xaYMP+AUUJGOK1OZG3rhcj9fcJOM5HJ2VrP1FrStVCWr1muTfQCdj4tAA==} 1846 | engines: {node: ^14.17.0 || >=16.0.0} 1847 | 1848 | yaml@2.8.0: 1849 | resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==} 1850 | engines: {node: '>= 14.6'} 1851 | hasBin: true 1852 | 1853 | yargs-parser@20.2.9: 1854 | resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} 1855 | engines: {node: '>=10'} 1856 | 1857 | yargs-parser@21.1.1: 1858 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 1859 | engines: {node: '>=12'} 1860 | 1861 | yargs@17.7.2: 1862 | resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} 1863 | engines: {node: '>=12'} 1864 | 1865 | yocto-queue@0.1.0: 1866 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 1867 | engines: {node: '>=10'} 1868 | 1869 | zwitch@2.0.4: 1870 | resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} 1871 | 1872 | snapshots: 1873 | 1874 | '@antfu/eslint-config@3.16.0(@vue/compiler-sfc@3.5.15)(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': 1875 | dependencies: 1876 | '@antfu/install-pkg': 1.1.0 1877 | '@clack/prompts': 0.9.1 1878 | '@eslint-community/eslint-plugin-eslint-comments': 4.5.0(eslint@9.27.0(jiti@2.4.2)) 1879 | '@eslint/markdown': 6.4.0 1880 | '@stylistic/eslint-plugin': 2.13.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) 1881 | '@typescript-eslint/eslint-plugin': 8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) 1882 | '@typescript-eslint/parser': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) 1883 | '@vitest/eslint-plugin': 1.2.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) 1884 | eslint: 9.27.0(jiti@2.4.2) 1885 | eslint-config-flat-gitignore: 1.0.1(eslint@9.27.0(jiti@2.4.2)) 1886 | eslint-flat-config-utils: 1.1.0 1887 | eslint-merge-processors: 1.0.0(eslint@9.27.0(jiti@2.4.2)) 1888 | eslint-plugin-antfu: 2.7.0(eslint@9.27.0(jiti@2.4.2)) 1889 | eslint-plugin-command: 2.1.0(eslint@9.27.0(jiti@2.4.2)) 1890 | eslint-plugin-import-x: 4.13.3(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) 1891 | eslint-plugin-jsdoc: 50.6.17(eslint@9.27.0(jiti@2.4.2)) 1892 | eslint-plugin-jsonc: 2.20.1(eslint@9.27.0(jiti@2.4.2)) 1893 | eslint-plugin-n: 17.18.0(eslint@9.27.0(jiti@2.4.2)) 1894 | eslint-plugin-no-only-tests: 3.3.0 1895 | eslint-plugin-perfectionist: 4.13.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) 1896 | eslint-plugin-regexp: 2.7.0(eslint@9.27.0(jiti@2.4.2)) 1897 | eslint-plugin-toml: 0.12.0(eslint@9.27.0(jiti@2.4.2)) 1898 | eslint-plugin-unicorn: 56.0.1(eslint@9.27.0(jiti@2.4.2)) 1899 | eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2)) 1900 | eslint-plugin-vue: 9.33.0(eslint@9.27.0(jiti@2.4.2)) 1901 | eslint-plugin-yml: 1.18.0(eslint@9.27.0(jiti@2.4.2)) 1902 | eslint-processor-vue-blocks: 1.0.0(@vue/compiler-sfc@3.5.15)(eslint@9.27.0(jiti@2.4.2)) 1903 | globals: 15.15.0 1904 | jsonc-eslint-parser: 2.4.0 1905 | local-pkg: 1.1.1 1906 | parse-gitignore: 2.0.0 1907 | picocolors: 1.1.1 1908 | toml-eslint-parser: 0.10.0 1909 | vue-eslint-parser: 9.4.3(eslint@9.27.0(jiti@2.4.2)) 1910 | yaml-eslint-parser: 1.3.0 1911 | yargs: 17.7.2 1912 | transitivePeerDependencies: 1913 | - '@eslint/json' 1914 | - '@vue/compiler-sfc' 1915 | - supports-color 1916 | - typescript 1917 | - vitest 1918 | 1919 | '@antfu/install-pkg@1.1.0': 1920 | dependencies: 1921 | package-manager-detector: 1.3.0 1922 | tinyexec: 1.0.1 1923 | 1924 | '@antfu/utils@0.7.10': {} 1925 | 1926 | '@babel/code-frame@7.27.1': 1927 | dependencies: 1928 | '@babel/helper-validator-identifier': 7.27.1 1929 | js-tokens: 4.0.0 1930 | picocolors: 1.1.1 1931 | 1932 | '@babel/helper-string-parser@7.27.1': {} 1933 | 1934 | '@babel/helper-validator-identifier@7.27.1': {} 1935 | 1936 | '@babel/parser@7.27.3': 1937 | dependencies: 1938 | '@babel/types': 7.27.3 1939 | 1940 | '@babel/types@7.27.3': 1941 | dependencies: 1942 | '@babel/helper-string-parser': 7.27.1 1943 | '@babel/helper-validator-identifier': 7.27.1 1944 | 1945 | '@clack/core@0.4.1': 1946 | dependencies: 1947 | picocolors: 1.1.1 1948 | sisteransi: 1.0.5 1949 | 1950 | '@clack/prompts@0.9.1': 1951 | dependencies: 1952 | '@clack/core': 0.4.1 1953 | picocolors: 1.1.1 1954 | sisteransi: 1.0.5 1955 | 1956 | '@emnapi/core@1.4.3': 1957 | dependencies: 1958 | '@emnapi/wasi-threads': 1.0.2 1959 | tslib: 2.8.1 1960 | optional: true 1961 | 1962 | '@emnapi/runtime@1.4.3': 1963 | dependencies: 1964 | tslib: 2.8.1 1965 | optional: true 1966 | 1967 | '@emnapi/wasi-threads@1.0.2': 1968 | dependencies: 1969 | tslib: 2.8.1 1970 | optional: true 1971 | 1972 | '@es-joy/jsdoccomment@0.50.2': 1973 | dependencies: 1974 | '@types/estree': 1.0.7 1975 | '@typescript-eslint/types': 8.33.0 1976 | comment-parser: 1.4.1 1977 | esquery: 1.6.0 1978 | jsdoc-type-pratt-parser: 4.1.0 1979 | 1980 | '@eslint-community/eslint-plugin-eslint-comments@4.5.0(eslint@9.27.0(jiti@2.4.2))': 1981 | dependencies: 1982 | escape-string-regexp: 4.0.0 1983 | eslint: 9.27.0(jiti@2.4.2) 1984 | ignore: 5.3.2 1985 | 1986 | '@eslint-community/eslint-utils@4.7.0(eslint@9.27.0(jiti@2.4.2))': 1987 | dependencies: 1988 | eslint: 9.27.0(jiti@2.4.2) 1989 | eslint-visitor-keys: 3.4.3 1990 | 1991 | '@eslint-community/regexpp@4.12.1': {} 1992 | 1993 | '@eslint/compat@1.2.9(eslint@9.27.0(jiti@2.4.2))': 1994 | optionalDependencies: 1995 | eslint: 9.27.0(jiti@2.4.2) 1996 | 1997 | '@eslint/config-array@0.20.0': 1998 | dependencies: 1999 | '@eslint/object-schema': 2.1.6 2000 | debug: 4.4.1 2001 | minimatch: 3.1.2 2002 | transitivePeerDependencies: 2003 | - supports-color 2004 | 2005 | '@eslint/config-helpers@0.2.2': {} 2006 | 2007 | '@eslint/core@0.10.0': 2008 | dependencies: 2009 | '@types/json-schema': 7.0.15 2010 | 2011 | '@eslint/core@0.13.0': 2012 | dependencies: 2013 | '@types/json-schema': 7.0.15 2014 | 2015 | '@eslint/core@0.14.0': 2016 | dependencies: 2017 | '@types/json-schema': 7.0.15 2018 | 2019 | '@eslint/eslintrc@3.3.1': 2020 | dependencies: 2021 | ajv: 6.12.6 2022 | debug: 4.4.1 2023 | espree: 10.3.0 2024 | globals: 14.0.0 2025 | ignore: 5.3.2 2026 | import-fresh: 3.3.1 2027 | js-yaml: 4.1.0 2028 | minimatch: 3.1.2 2029 | strip-json-comments: 3.1.1 2030 | transitivePeerDependencies: 2031 | - supports-color 2032 | 2033 | '@eslint/js@9.27.0': {} 2034 | 2035 | '@eslint/markdown@6.4.0': 2036 | dependencies: 2037 | '@eslint/core': 0.10.0 2038 | '@eslint/plugin-kit': 0.2.8 2039 | mdast-util-from-markdown: 2.0.2 2040 | mdast-util-frontmatter: 2.0.1 2041 | mdast-util-gfm: 3.1.0 2042 | micromark-extension-frontmatter: 2.0.0 2043 | micromark-extension-gfm: 3.0.0 2044 | transitivePeerDependencies: 2045 | - supports-color 2046 | 2047 | '@eslint/object-schema@2.1.6': {} 2048 | 2049 | '@eslint/plugin-kit@0.2.8': 2050 | dependencies: 2051 | '@eslint/core': 0.13.0 2052 | levn: 0.4.1 2053 | 2054 | '@eslint/plugin-kit@0.3.1': 2055 | dependencies: 2056 | '@eslint/core': 0.14.0 2057 | levn: 0.4.1 2058 | 2059 | '@humanfs/core@0.19.1': {} 2060 | 2061 | '@humanfs/node@0.16.6': 2062 | dependencies: 2063 | '@humanfs/core': 0.19.1 2064 | '@humanwhocodes/retry': 0.3.1 2065 | 2066 | '@humanwhocodes/module-importer@1.0.1': {} 2067 | 2068 | '@humanwhocodes/retry@0.3.1': {} 2069 | 2070 | '@humanwhocodes/retry@0.4.3': {} 2071 | 2072 | '@jest/schemas@29.6.3': 2073 | dependencies: 2074 | '@sinclair/typebox': 0.27.8 2075 | 2076 | '@jridgewell/sourcemap-codec@1.5.0': {} 2077 | 2078 | '@napi-rs/wasm-runtime@0.2.10': 2079 | dependencies: 2080 | '@emnapi/core': 1.4.3 2081 | '@emnapi/runtime': 1.4.3 2082 | '@tybys/wasm-util': 0.9.0 2083 | optional: true 2084 | 2085 | '@nodelib/fs.scandir@2.1.5': 2086 | dependencies: 2087 | '@nodelib/fs.stat': 2.0.5 2088 | run-parallel: 1.2.0 2089 | 2090 | '@nodelib/fs.stat@2.0.5': {} 2091 | 2092 | '@nodelib/fs.walk@1.2.8': 2093 | dependencies: 2094 | '@nodelib/fs.scandir': 2.1.5 2095 | fastq: 1.19.1 2096 | 2097 | '@pkgr/core@0.2.4': {} 2098 | 2099 | '@sinclair/typebox@0.27.8': {} 2100 | 2101 | '@stylistic/eslint-plugin@2.13.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': 2102 | dependencies: 2103 | '@typescript-eslint/utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) 2104 | eslint: 9.27.0(jiti@2.4.2) 2105 | eslint-visitor-keys: 4.2.0 2106 | espree: 10.3.0 2107 | estraverse: 5.3.0 2108 | picomatch: 4.0.2 2109 | transitivePeerDependencies: 2110 | - supports-color 2111 | - typescript 2112 | 2113 | '@tsd/typescript@5.8.3': {} 2114 | 2115 | '@tybys/wasm-util@0.9.0': 2116 | dependencies: 2117 | tslib: 2.8.1 2118 | optional: true 2119 | 2120 | '@types/debug@4.1.12': 2121 | dependencies: 2122 | '@types/ms': 2.1.0 2123 | 2124 | '@types/eslint@7.29.0': 2125 | dependencies: 2126 | '@types/estree': 1.0.7 2127 | '@types/json-schema': 7.0.15 2128 | 2129 | '@types/estree@1.0.7': {} 2130 | 2131 | '@types/json-schema@7.0.15': {} 2132 | 2133 | '@types/mdast@4.0.4': 2134 | dependencies: 2135 | '@types/unist': 3.0.3 2136 | 2137 | '@types/minimist@1.2.5': {} 2138 | 2139 | '@types/ms@2.1.0': {} 2140 | 2141 | '@types/normalize-package-data@2.4.4': {} 2142 | 2143 | '@types/unist@3.0.3': {} 2144 | 2145 | '@typescript-eslint/eslint-plugin@8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': 2146 | dependencies: 2147 | '@eslint-community/regexpp': 4.12.1 2148 | '@typescript-eslint/parser': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) 2149 | '@typescript-eslint/scope-manager': 8.33.0 2150 | '@typescript-eslint/type-utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) 2151 | '@typescript-eslint/utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) 2152 | '@typescript-eslint/visitor-keys': 8.33.0 2153 | eslint: 9.27.0(jiti@2.4.2) 2154 | graphemer: 1.4.0 2155 | ignore: 7.0.4 2156 | natural-compare: 1.4.0 2157 | ts-api-utils: 2.1.0(typescript@5.8.3) 2158 | typescript: 5.8.3 2159 | transitivePeerDependencies: 2160 | - supports-color 2161 | 2162 | '@typescript-eslint/parser@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': 2163 | dependencies: 2164 | '@typescript-eslint/scope-manager': 8.33.0 2165 | '@typescript-eslint/types': 8.33.0 2166 | '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) 2167 | '@typescript-eslint/visitor-keys': 8.33.0 2168 | debug: 4.4.1 2169 | eslint: 9.27.0(jiti@2.4.2) 2170 | typescript: 5.8.3 2171 | transitivePeerDependencies: 2172 | - supports-color 2173 | 2174 | '@typescript-eslint/project-service@8.33.0(typescript@5.8.3)': 2175 | dependencies: 2176 | '@typescript-eslint/tsconfig-utils': 8.33.0(typescript@5.8.3) 2177 | '@typescript-eslint/types': 8.33.0 2178 | debug: 4.4.1 2179 | transitivePeerDependencies: 2180 | - supports-color 2181 | - typescript 2182 | 2183 | '@typescript-eslint/scope-manager@8.33.0': 2184 | dependencies: 2185 | '@typescript-eslint/types': 8.33.0 2186 | '@typescript-eslint/visitor-keys': 8.33.0 2187 | 2188 | '@typescript-eslint/tsconfig-utils@8.33.0(typescript@5.8.3)': 2189 | dependencies: 2190 | typescript: 5.8.3 2191 | 2192 | '@typescript-eslint/type-utils@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': 2193 | dependencies: 2194 | '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) 2195 | '@typescript-eslint/utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) 2196 | debug: 4.4.1 2197 | eslint: 9.27.0(jiti@2.4.2) 2198 | ts-api-utils: 2.1.0(typescript@5.8.3) 2199 | typescript: 5.8.3 2200 | transitivePeerDependencies: 2201 | - supports-color 2202 | 2203 | '@typescript-eslint/types@8.33.0': {} 2204 | 2205 | '@typescript-eslint/typescript-estree@8.33.0(typescript@5.8.3)': 2206 | dependencies: 2207 | '@typescript-eslint/project-service': 8.33.0(typescript@5.8.3) 2208 | '@typescript-eslint/tsconfig-utils': 8.33.0(typescript@5.8.3) 2209 | '@typescript-eslint/types': 8.33.0 2210 | '@typescript-eslint/visitor-keys': 8.33.0 2211 | debug: 4.4.1 2212 | fast-glob: 3.3.3 2213 | is-glob: 4.0.3 2214 | minimatch: 9.0.5 2215 | semver: 7.7.2 2216 | ts-api-utils: 2.1.0(typescript@5.8.3) 2217 | typescript: 5.8.3 2218 | transitivePeerDependencies: 2219 | - supports-color 2220 | 2221 | '@typescript-eslint/utils@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': 2222 | dependencies: 2223 | '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) 2224 | '@typescript-eslint/scope-manager': 8.33.0 2225 | '@typescript-eslint/types': 8.33.0 2226 | '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3) 2227 | eslint: 9.27.0(jiti@2.4.2) 2228 | typescript: 5.8.3 2229 | transitivePeerDependencies: 2230 | - supports-color 2231 | 2232 | '@typescript-eslint/visitor-keys@8.33.0': 2233 | dependencies: 2234 | '@typescript-eslint/types': 8.33.0 2235 | eslint-visitor-keys: 4.2.0 2236 | 2237 | '@unrs/resolver-binding-darwin-arm64@1.7.6': 2238 | optional: true 2239 | 2240 | '@unrs/resolver-binding-darwin-x64@1.7.6': 2241 | optional: true 2242 | 2243 | '@unrs/resolver-binding-freebsd-x64@1.7.6': 2244 | optional: true 2245 | 2246 | '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.6': 2247 | optional: true 2248 | 2249 | '@unrs/resolver-binding-linux-arm-musleabihf@1.7.6': 2250 | optional: true 2251 | 2252 | '@unrs/resolver-binding-linux-arm64-gnu@1.7.6': 2253 | optional: true 2254 | 2255 | '@unrs/resolver-binding-linux-arm64-musl@1.7.6': 2256 | optional: true 2257 | 2258 | '@unrs/resolver-binding-linux-ppc64-gnu@1.7.6': 2259 | optional: true 2260 | 2261 | '@unrs/resolver-binding-linux-riscv64-gnu@1.7.6': 2262 | optional: true 2263 | 2264 | '@unrs/resolver-binding-linux-riscv64-musl@1.7.6': 2265 | optional: true 2266 | 2267 | '@unrs/resolver-binding-linux-s390x-gnu@1.7.6': 2268 | optional: true 2269 | 2270 | '@unrs/resolver-binding-linux-x64-gnu@1.7.6': 2271 | optional: true 2272 | 2273 | '@unrs/resolver-binding-linux-x64-musl@1.7.6': 2274 | optional: true 2275 | 2276 | '@unrs/resolver-binding-wasm32-wasi@1.7.6': 2277 | dependencies: 2278 | '@napi-rs/wasm-runtime': 0.2.10 2279 | optional: true 2280 | 2281 | '@unrs/resolver-binding-win32-arm64-msvc@1.7.6': 2282 | optional: true 2283 | 2284 | '@unrs/resolver-binding-win32-ia32-msvc@1.7.6': 2285 | optional: true 2286 | 2287 | '@unrs/resolver-binding-win32-x64-msvc@1.7.6': 2288 | optional: true 2289 | 2290 | '@vitest/eslint-plugin@1.2.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': 2291 | dependencies: 2292 | '@typescript-eslint/utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) 2293 | eslint: 9.27.0(jiti@2.4.2) 2294 | optionalDependencies: 2295 | typescript: 5.8.3 2296 | transitivePeerDependencies: 2297 | - supports-color 2298 | 2299 | '@vue/compiler-core@3.5.15': 2300 | dependencies: 2301 | '@babel/parser': 7.27.3 2302 | '@vue/shared': 3.5.15 2303 | entities: 4.5.0 2304 | estree-walker: 2.0.2 2305 | source-map-js: 1.2.1 2306 | 2307 | '@vue/compiler-dom@3.5.15': 2308 | dependencies: 2309 | '@vue/compiler-core': 3.5.15 2310 | '@vue/shared': 3.5.15 2311 | 2312 | '@vue/compiler-sfc@3.5.15': 2313 | dependencies: 2314 | '@babel/parser': 7.27.3 2315 | '@vue/compiler-core': 3.5.15 2316 | '@vue/compiler-dom': 3.5.15 2317 | '@vue/compiler-ssr': 3.5.15 2318 | '@vue/shared': 3.5.15 2319 | estree-walker: 2.0.2 2320 | magic-string: 0.30.17 2321 | postcss: 8.5.3 2322 | source-map-js: 1.2.1 2323 | 2324 | '@vue/compiler-ssr@3.5.15': 2325 | dependencies: 2326 | '@vue/compiler-dom': 3.5.15 2327 | '@vue/shared': 3.5.15 2328 | 2329 | '@vue/shared@3.5.15': {} 2330 | 2331 | acorn-jsx@5.3.2(acorn@8.14.1): 2332 | dependencies: 2333 | acorn: 8.14.1 2334 | 2335 | acorn@8.14.1: {} 2336 | 2337 | ajv@6.12.6: 2338 | dependencies: 2339 | fast-deep-equal: 3.1.3 2340 | fast-json-stable-stringify: 2.1.0 2341 | json-schema-traverse: 0.4.1 2342 | uri-js: 4.4.1 2343 | 2344 | ansi-escapes@4.3.2: 2345 | dependencies: 2346 | type-fest: 0.21.3 2347 | 2348 | ansi-regex@5.0.1: {} 2349 | 2350 | ansi-styles@4.3.0: 2351 | dependencies: 2352 | color-convert: 2.0.1 2353 | 2354 | ansi-styles@5.2.0: {} 2355 | 2356 | are-docs-informative@0.0.2: {} 2357 | 2358 | argparse@2.0.1: {} 2359 | 2360 | array-union@2.1.0: {} 2361 | 2362 | arrify@1.0.1: {} 2363 | 2364 | balanced-match@1.0.2: {} 2365 | 2366 | boolbase@1.0.0: {} 2367 | 2368 | brace-expansion@1.1.11: 2369 | dependencies: 2370 | balanced-match: 1.0.2 2371 | concat-map: 0.0.1 2372 | 2373 | brace-expansion@2.0.1: 2374 | dependencies: 2375 | balanced-match: 1.0.2 2376 | 2377 | braces@3.0.3: 2378 | dependencies: 2379 | fill-range: 7.1.1 2380 | 2381 | browserslist@4.24.5: 2382 | dependencies: 2383 | caniuse-lite: 1.0.30001718 2384 | electron-to-chromium: 1.5.159 2385 | node-releases: 2.0.19 2386 | update-browserslist-db: 1.1.3(browserslist@4.24.5) 2387 | 2388 | builtin-modules@3.3.0: {} 2389 | 2390 | bumpp@9.11.1: 2391 | dependencies: 2392 | c12: 2.0.4 2393 | cac: 6.7.14 2394 | escalade: 3.2.0 2395 | js-yaml: 4.1.0 2396 | jsonc-parser: 3.3.1 2397 | package-manager-detector: 0.2.11 2398 | prompts: 2.4.2 2399 | semver: 7.7.2 2400 | tiny-conventional-commits-parser: 0.0.1 2401 | tinyexec: 0.3.2 2402 | tinyglobby: 0.2.14 2403 | transitivePeerDependencies: 2404 | - magicast 2405 | 2406 | c12@2.0.4: 2407 | dependencies: 2408 | chokidar: 4.0.3 2409 | confbox: 0.1.8 2410 | defu: 6.1.4 2411 | dotenv: 16.5.0 2412 | giget: 1.2.5 2413 | jiti: 2.4.2 2414 | mlly: 1.7.4 2415 | ohash: 2.0.11 2416 | pathe: 2.0.3 2417 | perfect-debounce: 1.0.0 2418 | pkg-types: 1.3.1 2419 | rc9: 2.1.2 2420 | 2421 | cac@6.7.14: {} 2422 | 2423 | callsites@3.1.0: {} 2424 | 2425 | camelcase-keys@6.2.2: 2426 | dependencies: 2427 | camelcase: 5.3.1 2428 | map-obj: 4.3.0 2429 | quick-lru: 4.0.1 2430 | 2431 | camelcase@5.3.1: {} 2432 | 2433 | caniuse-lite@1.0.30001718: {} 2434 | 2435 | ccount@2.0.1: {} 2436 | 2437 | chalk@4.1.2: 2438 | dependencies: 2439 | ansi-styles: 4.3.0 2440 | supports-color: 7.2.0 2441 | 2442 | character-entities@2.0.2: {} 2443 | 2444 | chokidar@4.0.3: 2445 | dependencies: 2446 | readdirp: 4.1.2 2447 | 2448 | chownr@2.0.0: {} 2449 | 2450 | ci-info@4.2.0: {} 2451 | 2452 | citty@0.1.6: 2453 | dependencies: 2454 | consola: 3.4.2 2455 | 2456 | clean-regexp@1.0.0: 2457 | dependencies: 2458 | escape-string-regexp: 1.0.5 2459 | 2460 | cliui@8.0.1: 2461 | dependencies: 2462 | string-width: 4.2.3 2463 | strip-ansi: 6.0.1 2464 | wrap-ansi: 7.0.0 2465 | 2466 | color-convert@2.0.1: 2467 | dependencies: 2468 | color-name: 1.1.4 2469 | 2470 | color-name@1.1.4: {} 2471 | 2472 | comment-parser@1.4.1: {} 2473 | 2474 | concat-map@0.0.1: {} 2475 | 2476 | confbox@0.1.8: {} 2477 | 2478 | confbox@0.2.2: {} 2479 | 2480 | consola@3.4.2: {} 2481 | 2482 | core-js-compat@3.42.0: 2483 | dependencies: 2484 | browserslist: 4.24.5 2485 | 2486 | cross-spawn@7.0.6: 2487 | dependencies: 2488 | path-key: 3.1.1 2489 | shebang-command: 2.0.0 2490 | which: 2.0.2 2491 | 2492 | cssesc@3.0.0: {} 2493 | 2494 | debug@3.2.7: 2495 | dependencies: 2496 | ms: 2.1.3 2497 | 2498 | debug@4.4.1: 2499 | dependencies: 2500 | ms: 2.1.3 2501 | 2502 | decamelize-keys@1.1.1: 2503 | dependencies: 2504 | decamelize: 1.2.0 2505 | map-obj: 1.0.1 2506 | 2507 | decamelize@1.2.0: {} 2508 | 2509 | decode-named-character-reference@1.1.0: 2510 | dependencies: 2511 | character-entities: 2.0.2 2512 | 2513 | deep-is@0.1.4: {} 2514 | 2515 | defu@6.1.4: {} 2516 | 2517 | dequal@2.0.3: {} 2518 | 2519 | destr@2.0.5: {} 2520 | 2521 | devlop@1.1.0: 2522 | dependencies: 2523 | dequal: 2.0.3 2524 | 2525 | diff-sequences@29.6.3: {} 2526 | 2527 | dir-glob@3.0.1: 2528 | dependencies: 2529 | path-type: 4.0.0 2530 | 2531 | dotenv@16.5.0: {} 2532 | 2533 | electron-to-chromium@1.5.159: {} 2534 | 2535 | emoji-regex@8.0.0: {} 2536 | 2537 | enhanced-resolve@5.18.1: 2538 | dependencies: 2539 | graceful-fs: 4.2.11 2540 | tapable: 2.2.2 2541 | 2542 | entities@4.5.0: {} 2543 | 2544 | error-ex@1.3.2: 2545 | dependencies: 2546 | is-arrayish: 0.2.1 2547 | 2548 | escalade@3.2.0: {} 2549 | 2550 | escape-string-regexp@1.0.5: {} 2551 | 2552 | escape-string-regexp@4.0.0: {} 2553 | 2554 | escape-string-regexp@5.0.0: {} 2555 | 2556 | eslint-compat-utils@0.5.1(eslint@9.27.0(jiti@2.4.2)): 2557 | dependencies: 2558 | eslint: 9.27.0(jiti@2.4.2) 2559 | semver: 7.7.2 2560 | 2561 | eslint-compat-utils@0.6.5(eslint@9.27.0(jiti@2.4.2)): 2562 | dependencies: 2563 | eslint: 9.27.0(jiti@2.4.2) 2564 | semver: 7.7.2 2565 | 2566 | eslint-config-flat-gitignore@1.0.1(eslint@9.27.0(jiti@2.4.2)): 2567 | dependencies: 2568 | '@eslint/compat': 1.2.9(eslint@9.27.0(jiti@2.4.2)) 2569 | eslint: 9.27.0(jiti@2.4.2) 2570 | 2571 | eslint-flat-config-utils@1.1.0: 2572 | dependencies: 2573 | pathe: 2.0.3 2574 | 2575 | eslint-formatter-pretty@4.1.0: 2576 | dependencies: 2577 | '@types/eslint': 7.29.0 2578 | ansi-escapes: 4.3.2 2579 | chalk: 4.1.2 2580 | eslint-rule-docs: 1.1.235 2581 | log-symbols: 4.1.0 2582 | plur: 4.0.0 2583 | string-width: 4.2.3 2584 | supports-hyperlinks: 2.3.0 2585 | 2586 | eslint-import-context@0.1.6(unrs-resolver@1.7.6): 2587 | dependencies: 2588 | get-tsconfig: 4.10.1 2589 | stable-hash: 0.0.5 2590 | optionalDependencies: 2591 | unrs-resolver: 1.7.6 2592 | 2593 | eslint-import-resolver-node@0.3.9: 2594 | dependencies: 2595 | debug: 3.2.7 2596 | is-core-module: 2.16.1 2597 | resolve: 1.22.10 2598 | transitivePeerDependencies: 2599 | - supports-color 2600 | 2601 | eslint-json-compat-utils@0.2.1(eslint@9.27.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0): 2602 | dependencies: 2603 | eslint: 9.27.0(jiti@2.4.2) 2604 | esquery: 1.6.0 2605 | jsonc-eslint-parser: 2.4.0 2606 | 2607 | eslint-merge-processors@1.0.0(eslint@9.27.0(jiti@2.4.2)): 2608 | dependencies: 2609 | eslint: 9.27.0(jiti@2.4.2) 2610 | 2611 | eslint-plugin-antfu@2.7.0(eslint@9.27.0(jiti@2.4.2)): 2612 | dependencies: 2613 | '@antfu/utils': 0.7.10 2614 | eslint: 9.27.0(jiti@2.4.2) 2615 | 2616 | eslint-plugin-command@2.1.0(eslint@9.27.0(jiti@2.4.2)): 2617 | dependencies: 2618 | '@es-joy/jsdoccomment': 0.50.2 2619 | eslint: 9.27.0(jiti@2.4.2) 2620 | 2621 | eslint-plugin-es-x@7.8.0(eslint@9.27.0(jiti@2.4.2)): 2622 | dependencies: 2623 | '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) 2624 | '@eslint-community/regexpp': 4.12.1 2625 | eslint: 9.27.0(jiti@2.4.2) 2626 | eslint-compat-utils: 0.5.1(eslint@9.27.0(jiti@2.4.2)) 2627 | 2628 | eslint-plugin-import-x@4.13.3(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): 2629 | dependencies: 2630 | '@typescript-eslint/utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) 2631 | comment-parser: 1.4.1 2632 | debug: 4.4.1 2633 | eslint: 9.27.0(jiti@2.4.2) 2634 | eslint-import-context: 0.1.6(unrs-resolver@1.7.6) 2635 | eslint-import-resolver-node: 0.3.9 2636 | is-glob: 4.0.3 2637 | minimatch: 10.0.1 2638 | semver: 7.7.2 2639 | stable-hash: 0.0.5 2640 | tslib: 2.8.1 2641 | unrs-resolver: 1.7.6 2642 | transitivePeerDependencies: 2643 | - supports-color 2644 | - typescript 2645 | 2646 | eslint-plugin-jsdoc@50.6.17(eslint@9.27.0(jiti@2.4.2)): 2647 | dependencies: 2648 | '@es-joy/jsdoccomment': 0.50.2 2649 | are-docs-informative: 0.0.2 2650 | comment-parser: 1.4.1 2651 | debug: 4.4.1 2652 | escape-string-regexp: 4.0.0 2653 | eslint: 9.27.0(jiti@2.4.2) 2654 | espree: 10.3.0 2655 | esquery: 1.6.0 2656 | parse-imports-exports: 0.2.4 2657 | semver: 7.7.2 2658 | spdx-expression-parse: 4.0.0 2659 | transitivePeerDependencies: 2660 | - supports-color 2661 | 2662 | eslint-plugin-jsonc@2.20.1(eslint@9.27.0(jiti@2.4.2)): 2663 | dependencies: 2664 | '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) 2665 | eslint: 9.27.0(jiti@2.4.2) 2666 | eslint-compat-utils: 0.6.5(eslint@9.27.0(jiti@2.4.2)) 2667 | eslint-json-compat-utils: 0.2.1(eslint@9.27.0(jiti@2.4.2))(jsonc-eslint-parser@2.4.0) 2668 | espree: 10.3.0 2669 | graphemer: 1.4.0 2670 | jsonc-eslint-parser: 2.4.0 2671 | natural-compare: 1.4.0 2672 | synckit: 0.11.6 2673 | transitivePeerDependencies: 2674 | - '@eslint/json' 2675 | 2676 | eslint-plugin-n@17.18.0(eslint@9.27.0(jiti@2.4.2)): 2677 | dependencies: 2678 | '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) 2679 | enhanced-resolve: 5.18.1 2680 | eslint: 9.27.0(jiti@2.4.2) 2681 | eslint-plugin-es-x: 7.8.0(eslint@9.27.0(jiti@2.4.2)) 2682 | get-tsconfig: 4.10.1 2683 | globals: 15.15.0 2684 | ignore: 5.3.2 2685 | minimatch: 9.0.5 2686 | semver: 7.7.2 2687 | 2688 | eslint-plugin-no-only-tests@3.3.0: {} 2689 | 2690 | eslint-plugin-perfectionist@4.13.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): 2691 | dependencies: 2692 | '@typescript-eslint/types': 8.33.0 2693 | '@typescript-eslint/utils': 8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) 2694 | eslint: 9.27.0(jiti@2.4.2) 2695 | natural-orderby: 5.0.0 2696 | transitivePeerDependencies: 2697 | - supports-color 2698 | - typescript 2699 | 2700 | eslint-plugin-regexp@2.7.0(eslint@9.27.0(jiti@2.4.2)): 2701 | dependencies: 2702 | '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) 2703 | '@eslint-community/regexpp': 4.12.1 2704 | comment-parser: 1.4.1 2705 | eslint: 9.27.0(jiti@2.4.2) 2706 | jsdoc-type-pratt-parser: 4.1.0 2707 | refa: 0.12.1 2708 | regexp-ast-analysis: 0.7.1 2709 | scslre: 0.3.0 2710 | 2711 | eslint-plugin-toml@0.12.0(eslint@9.27.0(jiti@2.4.2)): 2712 | dependencies: 2713 | debug: 4.4.1 2714 | eslint: 9.27.0(jiti@2.4.2) 2715 | eslint-compat-utils: 0.6.5(eslint@9.27.0(jiti@2.4.2)) 2716 | lodash: 4.17.21 2717 | toml-eslint-parser: 0.10.0 2718 | transitivePeerDependencies: 2719 | - supports-color 2720 | 2721 | eslint-plugin-unicorn@56.0.1(eslint@9.27.0(jiti@2.4.2)): 2722 | dependencies: 2723 | '@babel/helper-validator-identifier': 7.27.1 2724 | '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) 2725 | ci-info: 4.2.0 2726 | clean-regexp: 1.0.0 2727 | core-js-compat: 3.42.0 2728 | eslint: 9.27.0(jiti@2.4.2) 2729 | esquery: 1.6.0 2730 | globals: 15.15.0 2731 | indent-string: 4.0.0 2732 | is-builtin-module: 3.2.1 2733 | jsesc: 3.1.0 2734 | pluralize: 8.0.0 2735 | read-pkg-up: 7.0.1 2736 | regexp-tree: 0.1.27 2737 | regjsparser: 0.10.0 2738 | semver: 7.7.2 2739 | strip-indent: 3.0.0 2740 | 2741 | eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2)): 2742 | dependencies: 2743 | eslint: 9.27.0(jiti@2.4.2) 2744 | optionalDependencies: 2745 | '@typescript-eslint/eslint-plugin': 8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) 2746 | 2747 | eslint-plugin-vue@9.33.0(eslint@9.27.0(jiti@2.4.2)): 2748 | dependencies: 2749 | '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) 2750 | eslint: 9.27.0(jiti@2.4.2) 2751 | globals: 13.24.0 2752 | natural-compare: 1.4.0 2753 | nth-check: 2.1.1 2754 | postcss-selector-parser: 6.1.2 2755 | semver: 7.7.2 2756 | vue-eslint-parser: 9.4.3(eslint@9.27.0(jiti@2.4.2)) 2757 | xml-name-validator: 4.0.0 2758 | transitivePeerDependencies: 2759 | - supports-color 2760 | 2761 | eslint-plugin-yml@1.18.0(eslint@9.27.0(jiti@2.4.2)): 2762 | dependencies: 2763 | debug: 4.4.1 2764 | escape-string-regexp: 4.0.0 2765 | eslint: 9.27.0(jiti@2.4.2) 2766 | eslint-compat-utils: 0.6.5(eslint@9.27.0(jiti@2.4.2)) 2767 | natural-compare: 1.4.0 2768 | yaml-eslint-parser: 1.3.0 2769 | transitivePeerDependencies: 2770 | - supports-color 2771 | 2772 | eslint-processor-vue-blocks@1.0.0(@vue/compiler-sfc@3.5.15)(eslint@9.27.0(jiti@2.4.2)): 2773 | dependencies: 2774 | '@vue/compiler-sfc': 3.5.15 2775 | eslint: 9.27.0(jiti@2.4.2) 2776 | 2777 | eslint-rule-docs@1.1.235: {} 2778 | 2779 | eslint-scope@7.2.2: 2780 | dependencies: 2781 | esrecurse: 4.3.0 2782 | estraverse: 5.3.0 2783 | 2784 | eslint-scope@8.3.0: 2785 | dependencies: 2786 | esrecurse: 4.3.0 2787 | estraverse: 5.3.0 2788 | 2789 | eslint-visitor-keys@3.4.3: {} 2790 | 2791 | eslint-visitor-keys@4.2.0: {} 2792 | 2793 | eslint@9.27.0(jiti@2.4.2): 2794 | dependencies: 2795 | '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) 2796 | '@eslint-community/regexpp': 4.12.1 2797 | '@eslint/config-array': 0.20.0 2798 | '@eslint/config-helpers': 0.2.2 2799 | '@eslint/core': 0.14.0 2800 | '@eslint/eslintrc': 3.3.1 2801 | '@eslint/js': 9.27.0 2802 | '@eslint/plugin-kit': 0.3.1 2803 | '@humanfs/node': 0.16.6 2804 | '@humanwhocodes/module-importer': 1.0.1 2805 | '@humanwhocodes/retry': 0.4.3 2806 | '@types/estree': 1.0.7 2807 | '@types/json-schema': 7.0.15 2808 | ajv: 6.12.6 2809 | chalk: 4.1.2 2810 | cross-spawn: 7.0.6 2811 | debug: 4.4.1 2812 | escape-string-regexp: 4.0.0 2813 | eslint-scope: 8.3.0 2814 | eslint-visitor-keys: 4.2.0 2815 | espree: 10.3.0 2816 | esquery: 1.6.0 2817 | esutils: 2.0.3 2818 | fast-deep-equal: 3.1.3 2819 | file-entry-cache: 8.0.0 2820 | find-up: 5.0.0 2821 | glob-parent: 6.0.2 2822 | ignore: 5.3.2 2823 | imurmurhash: 0.1.4 2824 | is-glob: 4.0.3 2825 | json-stable-stringify-without-jsonify: 1.0.1 2826 | lodash.merge: 4.6.2 2827 | minimatch: 3.1.2 2828 | natural-compare: 1.4.0 2829 | optionator: 0.9.4 2830 | optionalDependencies: 2831 | jiti: 2.4.2 2832 | transitivePeerDependencies: 2833 | - supports-color 2834 | 2835 | espree@10.3.0: 2836 | dependencies: 2837 | acorn: 8.14.1 2838 | acorn-jsx: 5.3.2(acorn@8.14.1) 2839 | eslint-visitor-keys: 4.2.0 2840 | 2841 | espree@9.6.1: 2842 | dependencies: 2843 | acorn: 8.14.1 2844 | acorn-jsx: 5.3.2(acorn@8.14.1) 2845 | eslint-visitor-keys: 3.4.3 2846 | 2847 | esquery@1.6.0: 2848 | dependencies: 2849 | estraverse: 5.3.0 2850 | 2851 | esrecurse@4.3.0: 2852 | dependencies: 2853 | estraverse: 5.3.0 2854 | 2855 | estraverse@5.3.0: {} 2856 | 2857 | estree-walker@2.0.2: {} 2858 | 2859 | esutils@2.0.3: {} 2860 | 2861 | exsolve@1.0.5: {} 2862 | 2863 | fast-deep-equal@3.1.3: {} 2864 | 2865 | fast-glob@3.3.3: 2866 | dependencies: 2867 | '@nodelib/fs.stat': 2.0.5 2868 | '@nodelib/fs.walk': 1.2.8 2869 | glob-parent: 5.1.2 2870 | merge2: 1.4.1 2871 | micromatch: 4.0.8 2872 | 2873 | fast-json-stable-stringify@2.1.0: {} 2874 | 2875 | fast-levenshtein@2.0.6: {} 2876 | 2877 | fastq@1.19.1: 2878 | dependencies: 2879 | reusify: 1.1.0 2880 | 2881 | fault@2.0.1: 2882 | dependencies: 2883 | format: 0.2.2 2884 | 2885 | fdir@6.4.5(picomatch@4.0.2): 2886 | optionalDependencies: 2887 | picomatch: 4.0.2 2888 | 2889 | file-entry-cache@8.0.0: 2890 | dependencies: 2891 | flat-cache: 4.0.1 2892 | 2893 | fill-range@7.1.1: 2894 | dependencies: 2895 | to-regex-range: 5.0.1 2896 | 2897 | find-up@4.1.0: 2898 | dependencies: 2899 | locate-path: 5.0.0 2900 | path-exists: 4.0.0 2901 | 2902 | find-up@5.0.0: 2903 | dependencies: 2904 | locate-path: 6.0.0 2905 | path-exists: 4.0.0 2906 | 2907 | flat-cache@4.0.1: 2908 | dependencies: 2909 | flatted: 3.3.3 2910 | keyv: 4.5.4 2911 | 2912 | flatted@3.3.3: {} 2913 | 2914 | format@0.2.2: {} 2915 | 2916 | fs-minipass@2.1.0: 2917 | dependencies: 2918 | minipass: 3.3.6 2919 | 2920 | function-bind@1.1.2: {} 2921 | 2922 | get-caller-file@2.0.5: {} 2923 | 2924 | get-tsconfig@4.10.1: 2925 | dependencies: 2926 | resolve-pkg-maps: 1.0.0 2927 | 2928 | giget@1.2.5: 2929 | dependencies: 2930 | citty: 0.1.6 2931 | consola: 3.4.2 2932 | defu: 6.1.4 2933 | node-fetch-native: 1.6.6 2934 | nypm: 0.5.4 2935 | pathe: 2.0.3 2936 | tar: 6.2.1 2937 | 2938 | glob-parent@5.1.2: 2939 | dependencies: 2940 | is-glob: 4.0.3 2941 | 2942 | glob-parent@6.0.2: 2943 | dependencies: 2944 | is-glob: 4.0.3 2945 | 2946 | globals@13.24.0: 2947 | dependencies: 2948 | type-fest: 0.20.2 2949 | 2950 | globals@14.0.0: {} 2951 | 2952 | globals@15.15.0: {} 2953 | 2954 | globby@11.1.0: 2955 | dependencies: 2956 | array-union: 2.1.0 2957 | dir-glob: 3.0.1 2958 | fast-glob: 3.3.3 2959 | ignore: 5.3.2 2960 | merge2: 1.4.1 2961 | slash: 3.0.0 2962 | 2963 | graceful-fs@4.2.11: {} 2964 | 2965 | graphemer@1.4.0: {} 2966 | 2967 | hard-rejection@2.1.0: {} 2968 | 2969 | has-flag@4.0.0: {} 2970 | 2971 | hasown@2.0.2: 2972 | dependencies: 2973 | function-bind: 1.1.2 2974 | 2975 | hosted-git-info@2.8.9: {} 2976 | 2977 | hosted-git-info@4.1.0: 2978 | dependencies: 2979 | lru-cache: 6.0.0 2980 | 2981 | ignore@5.3.2: {} 2982 | 2983 | ignore@7.0.4: {} 2984 | 2985 | import-fresh@3.3.1: 2986 | dependencies: 2987 | parent-module: 1.0.1 2988 | resolve-from: 4.0.0 2989 | 2990 | imurmurhash@0.1.4: {} 2991 | 2992 | indent-string@4.0.0: {} 2993 | 2994 | irregular-plurals@3.5.0: {} 2995 | 2996 | is-arrayish@0.2.1: {} 2997 | 2998 | is-builtin-module@3.2.1: 2999 | dependencies: 3000 | builtin-modules: 3.3.0 3001 | 3002 | is-core-module@2.16.1: 3003 | dependencies: 3004 | hasown: 2.0.2 3005 | 3006 | is-extglob@2.1.1: {} 3007 | 3008 | is-fullwidth-code-point@3.0.0: {} 3009 | 3010 | is-glob@4.0.3: 3011 | dependencies: 3012 | is-extglob: 2.1.1 3013 | 3014 | is-number@7.0.0: {} 3015 | 3016 | is-plain-obj@1.1.0: {} 3017 | 3018 | is-unicode-supported@0.1.0: {} 3019 | 3020 | isexe@2.0.0: {} 3021 | 3022 | jest-diff@29.7.0: 3023 | dependencies: 3024 | chalk: 4.1.2 3025 | diff-sequences: 29.6.3 3026 | jest-get-type: 29.6.3 3027 | pretty-format: 29.7.0 3028 | 3029 | jest-get-type@29.6.3: {} 3030 | 3031 | jiti@2.4.2: {} 3032 | 3033 | js-tokens@4.0.0: {} 3034 | 3035 | js-yaml@4.1.0: 3036 | dependencies: 3037 | argparse: 2.0.1 3038 | 3039 | jsdoc-type-pratt-parser@4.1.0: {} 3040 | 3041 | jsesc@0.5.0: {} 3042 | 3043 | jsesc@3.1.0: {} 3044 | 3045 | json-buffer@3.0.1: {} 3046 | 3047 | json-parse-even-better-errors@2.3.1: {} 3048 | 3049 | json-schema-traverse@0.4.1: {} 3050 | 3051 | json-stable-stringify-without-jsonify@1.0.1: {} 3052 | 3053 | jsonc-eslint-parser@2.4.0: 3054 | dependencies: 3055 | acorn: 8.14.1 3056 | eslint-visitor-keys: 3.4.3 3057 | espree: 9.6.1 3058 | semver: 7.7.2 3059 | 3060 | jsonc-parser@3.3.1: {} 3061 | 3062 | keyv@4.5.4: 3063 | dependencies: 3064 | json-buffer: 3.0.1 3065 | 3066 | kind-of@6.0.3: {} 3067 | 3068 | kleur@3.0.3: {} 3069 | 3070 | levn@0.4.1: 3071 | dependencies: 3072 | prelude-ls: 1.2.1 3073 | type-check: 0.4.0 3074 | 3075 | lines-and-columns@1.2.4: {} 3076 | 3077 | local-pkg@1.1.1: 3078 | dependencies: 3079 | mlly: 1.7.4 3080 | pkg-types: 2.1.0 3081 | quansync: 0.2.10 3082 | 3083 | locate-path@5.0.0: 3084 | dependencies: 3085 | p-locate: 4.1.0 3086 | 3087 | locate-path@6.0.0: 3088 | dependencies: 3089 | p-locate: 5.0.0 3090 | 3091 | lodash.merge@4.6.2: {} 3092 | 3093 | lodash@4.17.21: {} 3094 | 3095 | log-symbols@4.1.0: 3096 | dependencies: 3097 | chalk: 4.1.2 3098 | is-unicode-supported: 0.1.0 3099 | 3100 | longest-streak@3.1.0: {} 3101 | 3102 | lru-cache@6.0.0: 3103 | dependencies: 3104 | yallist: 4.0.0 3105 | 3106 | magic-string@0.30.17: 3107 | dependencies: 3108 | '@jridgewell/sourcemap-codec': 1.5.0 3109 | 3110 | map-obj@1.0.1: {} 3111 | 3112 | map-obj@4.3.0: {} 3113 | 3114 | markdown-table@3.0.4: {} 3115 | 3116 | mdast-util-find-and-replace@3.0.2: 3117 | dependencies: 3118 | '@types/mdast': 4.0.4 3119 | escape-string-regexp: 5.0.0 3120 | unist-util-is: 6.0.0 3121 | unist-util-visit-parents: 6.0.1 3122 | 3123 | mdast-util-from-markdown@2.0.2: 3124 | dependencies: 3125 | '@types/mdast': 4.0.4 3126 | '@types/unist': 3.0.3 3127 | decode-named-character-reference: 1.1.0 3128 | devlop: 1.1.0 3129 | mdast-util-to-string: 4.0.0 3130 | micromark: 4.0.2 3131 | micromark-util-decode-numeric-character-reference: 2.0.2 3132 | micromark-util-decode-string: 2.0.1 3133 | micromark-util-normalize-identifier: 2.0.1 3134 | micromark-util-symbol: 2.0.1 3135 | micromark-util-types: 2.0.2 3136 | unist-util-stringify-position: 4.0.0 3137 | transitivePeerDependencies: 3138 | - supports-color 3139 | 3140 | mdast-util-frontmatter@2.0.1: 3141 | dependencies: 3142 | '@types/mdast': 4.0.4 3143 | devlop: 1.1.0 3144 | escape-string-regexp: 5.0.0 3145 | mdast-util-from-markdown: 2.0.2 3146 | mdast-util-to-markdown: 2.1.2 3147 | micromark-extension-frontmatter: 2.0.0 3148 | transitivePeerDependencies: 3149 | - supports-color 3150 | 3151 | mdast-util-gfm-autolink-literal@2.0.1: 3152 | dependencies: 3153 | '@types/mdast': 4.0.4 3154 | ccount: 2.0.1 3155 | devlop: 1.1.0 3156 | mdast-util-find-and-replace: 3.0.2 3157 | micromark-util-character: 2.1.1 3158 | 3159 | mdast-util-gfm-footnote@2.1.0: 3160 | dependencies: 3161 | '@types/mdast': 4.0.4 3162 | devlop: 1.1.0 3163 | mdast-util-from-markdown: 2.0.2 3164 | mdast-util-to-markdown: 2.1.2 3165 | micromark-util-normalize-identifier: 2.0.1 3166 | transitivePeerDependencies: 3167 | - supports-color 3168 | 3169 | mdast-util-gfm-strikethrough@2.0.0: 3170 | dependencies: 3171 | '@types/mdast': 4.0.4 3172 | mdast-util-from-markdown: 2.0.2 3173 | mdast-util-to-markdown: 2.1.2 3174 | transitivePeerDependencies: 3175 | - supports-color 3176 | 3177 | mdast-util-gfm-table@2.0.0: 3178 | dependencies: 3179 | '@types/mdast': 4.0.4 3180 | devlop: 1.1.0 3181 | markdown-table: 3.0.4 3182 | mdast-util-from-markdown: 2.0.2 3183 | mdast-util-to-markdown: 2.1.2 3184 | transitivePeerDependencies: 3185 | - supports-color 3186 | 3187 | mdast-util-gfm-task-list-item@2.0.0: 3188 | dependencies: 3189 | '@types/mdast': 4.0.4 3190 | devlop: 1.1.0 3191 | mdast-util-from-markdown: 2.0.2 3192 | mdast-util-to-markdown: 2.1.2 3193 | transitivePeerDependencies: 3194 | - supports-color 3195 | 3196 | mdast-util-gfm@3.1.0: 3197 | dependencies: 3198 | mdast-util-from-markdown: 2.0.2 3199 | mdast-util-gfm-autolink-literal: 2.0.1 3200 | mdast-util-gfm-footnote: 2.1.0 3201 | mdast-util-gfm-strikethrough: 2.0.0 3202 | mdast-util-gfm-table: 2.0.0 3203 | mdast-util-gfm-task-list-item: 2.0.0 3204 | mdast-util-to-markdown: 2.1.2 3205 | transitivePeerDependencies: 3206 | - supports-color 3207 | 3208 | mdast-util-phrasing@4.1.0: 3209 | dependencies: 3210 | '@types/mdast': 4.0.4 3211 | unist-util-is: 6.0.0 3212 | 3213 | mdast-util-to-markdown@2.1.2: 3214 | dependencies: 3215 | '@types/mdast': 4.0.4 3216 | '@types/unist': 3.0.3 3217 | longest-streak: 3.1.0 3218 | mdast-util-phrasing: 4.1.0 3219 | mdast-util-to-string: 4.0.0 3220 | micromark-util-classify-character: 2.0.1 3221 | micromark-util-decode-string: 2.0.1 3222 | unist-util-visit: 5.0.0 3223 | zwitch: 2.0.4 3224 | 3225 | mdast-util-to-string@4.0.0: 3226 | dependencies: 3227 | '@types/mdast': 4.0.4 3228 | 3229 | meow@9.0.0: 3230 | dependencies: 3231 | '@types/minimist': 1.2.5 3232 | camelcase-keys: 6.2.2 3233 | decamelize: 1.2.0 3234 | decamelize-keys: 1.1.1 3235 | hard-rejection: 2.1.0 3236 | minimist-options: 4.1.0 3237 | normalize-package-data: 3.0.3 3238 | read-pkg-up: 7.0.1 3239 | redent: 3.0.0 3240 | trim-newlines: 3.0.1 3241 | type-fest: 0.18.1 3242 | yargs-parser: 20.2.9 3243 | 3244 | merge2@1.4.1: {} 3245 | 3246 | micromark-core-commonmark@2.0.3: 3247 | dependencies: 3248 | decode-named-character-reference: 1.1.0 3249 | devlop: 1.1.0 3250 | micromark-factory-destination: 2.0.1 3251 | micromark-factory-label: 2.0.1 3252 | micromark-factory-space: 2.0.1 3253 | micromark-factory-title: 2.0.1 3254 | micromark-factory-whitespace: 2.0.1 3255 | micromark-util-character: 2.1.1 3256 | micromark-util-chunked: 2.0.1 3257 | micromark-util-classify-character: 2.0.1 3258 | micromark-util-html-tag-name: 2.0.1 3259 | micromark-util-normalize-identifier: 2.0.1 3260 | micromark-util-resolve-all: 2.0.1 3261 | micromark-util-subtokenize: 2.1.0 3262 | micromark-util-symbol: 2.0.1 3263 | micromark-util-types: 2.0.2 3264 | 3265 | micromark-extension-frontmatter@2.0.0: 3266 | dependencies: 3267 | fault: 2.0.1 3268 | micromark-util-character: 2.1.1 3269 | micromark-util-symbol: 2.0.1 3270 | micromark-util-types: 2.0.2 3271 | 3272 | micromark-extension-gfm-autolink-literal@2.1.0: 3273 | dependencies: 3274 | micromark-util-character: 2.1.1 3275 | micromark-util-sanitize-uri: 2.0.1 3276 | micromark-util-symbol: 2.0.1 3277 | micromark-util-types: 2.0.2 3278 | 3279 | micromark-extension-gfm-footnote@2.1.0: 3280 | dependencies: 3281 | devlop: 1.1.0 3282 | micromark-core-commonmark: 2.0.3 3283 | micromark-factory-space: 2.0.1 3284 | micromark-util-character: 2.1.1 3285 | micromark-util-normalize-identifier: 2.0.1 3286 | micromark-util-sanitize-uri: 2.0.1 3287 | micromark-util-symbol: 2.0.1 3288 | micromark-util-types: 2.0.2 3289 | 3290 | micromark-extension-gfm-strikethrough@2.1.0: 3291 | dependencies: 3292 | devlop: 1.1.0 3293 | micromark-util-chunked: 2.0.1 3294 | micromark-util-classify-character: 2.0.1 3295 | micromark-util-resolve-all: 2.0.1 3296 | micromark-util-symbol: 2.0.1 3297 | micromark-util-types: 2.0.2 3298 | 3299 | micromark-extension-gfm-table@2.1.1: 3300 | dependencies: 3301 | devlop: 1.1.0 3302 | micromark-factory-space: 2.0.1 3303 | micromark-util-character: 2.1.1 3304 | micromark-util-symbol: 2.0.1 3305 | micromark-util-types: 2.0.2 3306 | 3307 | micromark-extension-gfm-tagfilter@2.0.0: 3308 | dependencies: 3309 | micromark-util-types: 2.0.2 3310 | 3311 | micromark-extension-gfm-task-list-item@2.1.0: 3312 | dependencies: 3313 | devlop: 1.1.0 3314 | micromark-factory-space: 2.0.1 3315 | micromark-util-character: 2.1.1 3316 | micromark-util-symbol: 2.0.1 3317 | micromark-util-types: 2.0.2 3318 | 3319 | micromark-extension-gfm@3.0.0: 3320 | dependencies: 3321 | micromark-extension-gfm-autolink-literal: 2.1.0 3322 | micromark-extension-gfm-footnote: 2.1.0 3323 | micromark-extension-gfm-strikethrough: 2.1.0 3324 | micromark-extension-gfm-table: 2.1.1 3325 | micromark-extension-gfm-tagfilter: 2.0.0 3326 | micromark-extension-gfm-task-list-item: 2.1.0 3327 | micromark-util-combine-extensions: 2.0.1 3328 | micromark-util-types: 2.0.2 3329 | 3330 | micromark-factory-destination@2.0.1: 3331 | dependencies: 3332 | micromark-util-character: 2.1.1 3333 | micromark-util-symbol: 2.0.1 3334 | micromark-util-types: 2.0.2 3335 | 3336 | micromark-factory-label@2.0.1: 3337 | dependencies: 3338 | devlop: 1.1.0 3339 | micromark-util-character: 2.1.1 3340 | micromark-util-symbol: 2.0.1 3341 | micromark-util-types: 2.0.2 3342 | 3343 | micromark-factory-space@2.0.1: 3344 | dependencies: 3345 | micromark-util-character: 2.1.1 3346 | micromark-util-types: 2.0.2 3347 | 3348 | micromark-factory-title@2.0.1: 3349 | dependencies: 3350 | micromark-factory-space: 2.0.1 3351 | micromark-util-character: 2.1.1 3352 | micromark-util-symbol: 2.0.1 3353 | micromark-util-types: 2.0.2 3354 | 3355 | micromark-factory-whitespace@2.0.1: 3356 | dependencies: 3357 | micromark-factory-space: 2.0.1 3358 | micromark-util-character: 2.1.1 3359 | micromark-util-symbol: 2.0.1 3360 | micromark-util-types: 2.0.2 3361 | 3362 | micromark-util-character@2.1.1: 3363 | dependencies: 3364 | micromark-util-symbol: 2.0.1 3365 | micromark-util-types: 2.0.2 3366 | 3367 | micromark-util-chunked@2.0.1: 3368 | dependencies: 3369 | micromark-util-symbol: 2.0.1 3370 | 3371 | micromark-util-classify-character@2.0.1: 3372 | dependencies: 3373 | micromark-util-character: 2.1.1 3374 | micromark-util-symbol: 2.0.1 3375 | micromark-util-types: 2.0.2 3376 | 3377 | micromark-util-combine-extensions@2.0.1: 3378 | dependencies: 3379 | micromark-util-chunked: 2.0.1 3380 | micromark-util-types: 2.0.2 3381 | 3382 | micromark-util-decode-numeric-character-reference@2.0.2: 3383 | dependencies: 3384 | micromark-util-symbol: 2.0.1 3385 | 3386 | micromark-util-decode-string@2.0.1: 3387 | dependencies: 3388 | decode-named-character-reference: 1.1.0 3389 | micromark-util-character: 2.1.1 3390 | micromark-util-decode-numeric-character-reference: 2.0.2 3391 | micromark-util-symbol: 2.0.1 3392 | 3393 | micromark-util-encode@2.0.1: {} 3394 | 3395 | micromark-util-html-tag-name@2.0.1: {} 3396 | 3397 | micromark-util-normalize-identifier@2.0.1: 3398 | dependencies: 3399 | micromark-util-symbol: 2.0.1 3400 | 3401 | micromark-util-resolve-all@2.0.1: 3402 | dependencies: 3403 | micromark-util-types: 2.0.2 3404 | 3405 | micromark-util-sanitize-uri@2.0.1: 3406 | dependencies: 3407 | micromark-util-character: 2.1.1 3408 | micromark-util-encode: 2.0.1 3409 | micromark-util-symbol: 2.0.1 3410 | 3411 | micromark-util-subtokenize@2.1.0: 3412 | dependencies: 3413 | devlop: 1.1.0 3414 | micromark-util-chunked: 2.0.1 3415 | micromark-util-symbol: 2.0.1 3416 | micromark-util-types: 2.0.2 3417 | 3418 | micromark-util-symbol@2.0.1: {} 3419 | 3420 | micromark-util-types@2.0.2: {} 3421 | 3422 | micromark@4.0.2: 3423 | dependencies: 3424 | '@types/debug': 4.1.12 3425 | debug: 4.4.1 3426 | decode-named-character-reference: 1.1.0 3427 | devlop: 1.1.0 3428 | micromark-core-commonmark: 2.0.3 3429 | micromark-factory-space: 2.0.1 3430 | micromark-util-character: 2.1.1 3431 | micromark-util-chunked: 2.0.1 3432 | micromark-util-combine-extensions: 2.0.1 3433 | micromark-util-decode-numeric-character-reference: 2.0.2 3434 | micromark-util-encode: 2.0.1 3435 | micromark-util-normalize-identifier: 2.0.1 3436 | micromark-util-resolve-all: 2.0.1 3437 | micromark-util-sanitize-uri: 2.0.1 3438 | micromark-util-subtokenize: 2.1.0 3439 | micromark-util-symbol: 2.0.1 3440 | micromark-util-types: 2.0.2 3441 | transitivePeerDependencies: 3442 | - supports-color 3443 | 3444 | micromatch@4.0.8: 3445 | dependencies: 3446 | braces: 3.0.3 3447 | picomatch: 2.3.1 3448 | 3449 | min-indent@1.0.1: {} 3450 | 3451 | minimatch@10.0.1: 3452 | dependencies: 3453 | brace-expansion: 2.0.1 3454 | 3455 | minimatch@3.1.2: 3456 | dependencies: 3457 | brace-expansion: 1.1.11 3458 | 3459 | minimatch@9.0.5: 3460 | dependencies: 3461 | brace-expansion: 2.0.1 3462 | 3463 | minimist-options@4.1.0: 3464 | dependencies: 3465 | arrify: 1.0.1 3466 | is-plain-obj: 1.1.0 3467 | kind-of: 6.0.3 3468 | 3469 | minipass@3.3.6: 3470 | dependencies: 3471 | yallist: 4.0.0 3472 | 3473 | minipass@5.0.0: {} 3474 | 3475 | minizlib@2.1.2: 3476 | dependencies: 3477 | minipass: 3.3.6 3478 | yallist: 4.0.0 3479 | 3480 | mkdirp@1.0.4: {} 3481 | 3482 | mlly@1.7.4: 3483 | dependencies: 3484 | acorn: 8.14.1 3485 | pathe: 2.0.3 3486 | pkg-types: 1.3.1 3487 | ufo: 1.6.1 3488 | 3489 | ms@2.1.3: {} 3490 | 3491 | nanoid@3.3.11: {} 3492 | 3493 | napi-postinstall@0.2.4: {} 3494 | 3495 | natural-compare@1.4.0: {} 3496 | 3497 | natural-orderby@5.0.0: {} 3498 | 3499 | node-fetch-native@1.6.6: {} 3500 | 3501 | node-releases@2.0.19: {} 3502 | 3503 | normalize-package-data@2.5.0: 3504 | dependencies: 3505 | hosted-git-info: 2.8.9 3506 | resolve: 1.22.10 3507 | semver: 5.7.2 3508 | validate-npm-package-license: 3.0.4 3509 | 3510 | normalize-package-data@3.0.3: 3511 | dependencies: 3512 | hosted-git-info: 4.1.0 3513 | is-core-module: 2.16.1 3514 | semver: 7.7.2 3515 | validate-npm-package-license: 3.0.4 3516 | 3517 | nth-check@2.1.1: 3518 | dependencies: 3519 | boolbase: 1.0.0 3520 | 3521 | nypm@0.5.4: 3522 | dependencies: 3523 | citty: 0.1.6 3524 | consola: 3.4.2 3525 | pathe: 2.0.3 3526 | pkg-types: 1.3.1 3527 | tinyexec: 0.3.2 3528 | ufo: 1.6.1 3529 | 3530 | ohash@2.0.11: {} 3531 | 3532 | optionator@0.9.4: 3533 | dependencies: 3534 | deep-is: 0.1.4 3535 | fast-levenshtein: 2.0.6 3536 | levn: 0.4.1 3537 | prelude-ls: 1.2.1 3538 | type-check: 0.4.0 3539 | word-wrap: 1.2.5 3540 | 3541 | p-limit@2.3.0: 3542 | dependencies: 3543 | p-try: 2.2.0 3544 | 3545 | p-limit@3.1.0: 3546 | dependencies: 3547 | yocto-queue: 0.1.0 3548 | 3549 | p-locate@4.1.0: 3550 | dependencies: 3551 | p-limit: 2.3.0 3552 | 3553 | p-locate@5.0.0: 3554 | dependencies: 3555 | p-limit: 3.1.0 3556 | 3557 | p-try@2.2.0: {} 3558 | 3559 | package-manager-detector@0.2.11: 3560 | dependencies: 3561 | quansync: 0.2.10 3562 | 3563 | package-manager-detector@1.3.0: {} 3564 | 3565 | parent-module@1.0.1: 3566 | dependencies: 3567 | callsites: 3.1.0 3568 | 3569 | parse-gitignore@2.0.0: {} 3570 | 3571 | parse-imports-exports@0.2.4: 3572 | dependencies: 3573 | parse-statements: 1.0.11 3574 | 3575 | parse-json@5.2.0: 3576 | dependencies: 3577 | '@babel/code-frame': 7.27.1 3578 | error-ex: 1.3.2 3579 | json-parse-even-better-errors: 2.3.1 3580 | lines-and-columns: 1.2.4 3581 | 3582 | parse-statements@1.0.11: {} 3583 | 3584 | path-exists@4.0.0: {} 3585 | 3586 | path-key@3.1.1: {} 3587 | 3588 | path-parse@1.0.7: {} 3589 | 3590 | path-type@4.0.0: {} 3591 | 3592 | pathe@2.0.3: {} 3593 | 3594 | perfect-debounce@1.0.0: {} 3595 | 3596 | picocolors@1.1.1: {} 3597 | 3598 | picomatch@2.3.1: {} 3599 | 3600 | picomatch@4.0.2: {} 3601 | 3602 | pkg-types@1.3.1: 3603 | dependencies: 3604 | confbox: 0.1.8 3605 | mlly: 1.7.4 3606 | pathe: 2.0.3 3607 | 3608 | pkg-types@2.1.0: 3609 | dependencies: 3610 | confbox: 0.2.2 3611 | exsolve: 1.0.5 3612 | pathe: 2.0.3 3613 | 3614 | plur@4.0.0: 3615 | dependencies: 3616 | irregular-plurals: 3.5.0 3617 | 3618 | pluralize@8.0.0: {} 3619 | 3620 | postcss-selector-parser@6.1.2: 3621 | dependencies: 3622 | cssesc: 3.0.0 3623 | util-deprecate: 1.0.2 3624 | 3625 | postcss@8.5.3: 3626 | dependencies: 3627 | nanoid: 3.3.11 3628 | picocolors: 1.1.1 3629 | source-map-js: 1.2.1 3630 | 3631 | prelude-ls@1.2.1: {} 3632 | 3633 | prettier@3.5.3: {} 3634 | 3635 | pretty-format@29.7.0: 3636 | dependencies: 3637 | '@jest/schemas': 29.6.3 3638 | ansi-styles: 5.2.0 3639 | react-is: 18.3.1 3640 | 3641 | prompts@2.4.2: 3642 | dependencies: 3643 | kleur: 3.0.3 3644 | sisteransi: 1.0.5 3645 | 3646 | punycode@2.3.1: {} 3647 | 3648 | quansync@0.2.10: {} 3649 | 3650 | queue-microtask@1.2.3: {} 3651 | 3652 | quick-lru@4.0.1: {} 3653 | 3654 | rc9@2.1.2: 3655 | dependencies: 3656 | defu: 6.1.4 3657 | destr: 2.0.5 3658 | 3659 | react-is@18.3.1: {} 3660 | 3661 | read-pkg-up@7.0.1: 3662 | dependencies: 3663 | find-up: 4.1.0 3664 | read-pkg: 5.2.0 3665 | type-fest: 0.8.1 3666 | 3667 | read-pkg@5.2.0: 3668 | dependencies: 3669 | '@types/normalize-package-data': 2.4.4 3670 | normalize-package-data: 2.5.0 3671 | parse-json: 5.2.0 3672 | type-fest: 0.6.0 3673 | 3674 | readdirp@4.1.2: {} 3675 | 3676 | redent@3.0.0: 3677 | dependencies: 3678 | indent-string: 4.0.0 3679 | strip-indent: 3.0.0 3680 | 3681 | refa@0.12.1: 3682 | dependencies: 3683 | '@eslint-community/regexpp': 4.12.1 3684 | 3685 | regexp-ast-analysis@0.7.1: 3686 | dependencies: 3687 | '@eslint-community/regexpp': 4.12.1 3688 | refa: 0.12.1 3689 | 3690 | regexp-tree@0.1.27: {} 3691 | 3692 | regjsparser@0.10.0: 3693 | dependencies: 3694 | jsesc: 0.5.0 3695 | 3696 | require-directory@2.1.1: {} 3697 | 3698 | resolve-from@4.0.0: {} 3699 | 3700 | resolve-pkg-maps@1.0.0: {} 3701 | 3702 | resolve@1.22.10: 3703 | dependencies: 3704 | is-core-module: 2.16.1 3705 | path-parse: 1.0.7 3706 | supports-preserve-symlinks-flag: 1.0.0 3707 | 3708 | reusify@1.1.0: {} 3709 | 3710 | run-parallel@1.2.0: 3711 | dependencies: 3712 | queue-microtask: 1.2.3 3713 | 3714 | scslre@0.3.0: 3715 | dependencies: 3716 | '@eslint-community/regexpp': 4.12.1 3717 | refa: 0.12.1 3718 | regexp-ast-analysis: 0.7.1 3719 | 3720 | semver@5.7.2: {} 3721 | 3722 | semver@7.7.2: {} 3723 | 3724 | shebang-command@2.0.0: 3725 | dependencies: 3726 | shebang-regex: 3.0.0 3727 | 3728 | shebang-regex@3.0.0: {} 3729 | 3730 | sisteransi@1.0.5: {} 3731 | 3732 | slash@3.0.0: {} 3733 | 3734 | source-map-js@1.2.1: {} 3735 | 3736 | spdx-correct@3.2.0: 3737 | dependencies: 3738 | spdx-expression-parse: 3.0.1 3739 | spdx-license-ids: 3.0.21 3740 | 3741 | spdx-exceptions@2.5.0: {} 3742 | 3743 | spdx-expression-parse@3.0.1: 3744 | dependencies: 3745 | spdx-exceptions: 2.5.0 3746 | spdx-license-ids: 3.0.21 3747 | 3748 | spdx-expression-parse@4.0.0: 3749 | dependencies: 3750 | spdx-exceptions: 2.5.0 3751 | spdx-license-ids: 3.0.21 3752 | 3753 | spdx-license-ids@3.0.21: {} 3754 | 3755 | stable-hash@0.0.5: {} 3756 | 3757 | string-width@4.2.3: 3758 | dependencies: 3759 | emoji-regex: 8.0.0 3760 | is-fullwidth-code-point: 3.0.0 3761 | strip-ansi: 6.0.1 3762 | 3763 | strip-ansi@6.0.1: 3764 | dependencies: 3765 | ansi-regex: 5.0.1 3766 | 3767 | strip-indent@3.0.0: 3768 | dependencies: 3769 | min-indent: 1.0.1 3770 | 3771 | strip-json-comments@3.1.1: {} 3772 | 3773 | supports-color@7.2.0: 3774 | dependencies: 3775 | has-flag: 4.0.0 3776 | 3777 | supports-hyperlinks@2.3.0: 3778 | dependencies: 3779 | has-flag: 4.0.0 3780 | supports-color: 7.2.0 3781 | 3782 | supports-preserve-symlinks-flag@1.0.0: {} 3783 | 3784 | synckit@0.11.6: 3785 | dependencies: 3786 | '@pkgr/core': 0.2.4 3787 | 3788 | tapable@2.2.2: {} 3789 | 3790 | tar@6.2.1: 3791 | dependencies: 3792 | chownr: 2.0.0 3793 | fs-minipass: 2.1.0 3794 | minipass: 5.0.0 3795 | minizlib: 2.1.2 3796 | mkdirp: 1.0.4 3797 | yallist: 4.0.0 3798 | 3799 | tiny-conventional-commits-parser@0.0.1: {} 3800 | 3801 | tinyexec@0.3.2: {} 3802 | 3803 | tinyexec@1.0.1: {} 3804 | 3805 | tinyglobby@0.2.14: 3806 | dependencies: 3807 | fdir: 6.4.5(picomatch@4.0.2) 3808 | picomatch: 4.0.2 3809 | 3810 | to-regex-range@5.0.1: 3811 | dependencies: 3812 | is-number: 7.0.0 3813 | 3814 | toml-eslint-parser@0.10.0: 3815 | dependencies: 3816 | eslint-visitor-keys: 3.4.3 3817 | 3818 | trim-newlines@3.0.1: {} 3819 | 3820 | ts-api-utils@2.1.0(typescript@5.8.3): 3821 | dependencies: 3822 | typescript: 5.8.3 3823 | 3824 | tsd@0.32.0: 3825 | dependencies: 3826 | '@tsd/typescript': 5.8.3 3827 | eslint-formatter-pretty: 4.1.0 3828 | globby: 11.1.0 3829 | jest-diff: 29.7.0 3830 | meow: 9.0.0 3831 | path-exists: 4.0.0 3832 | read-pkg-up: 7.0.1 3833 | 3834 | tslib@2.8.1: {} 3835 | 3836 | type-check@0.4.0: 3837 | dependencies: 3838 | prelude-ls: 1.2.1 3839 | 3840 | type-fest@0.18.1: {} 3841 | 3842 | type-fest@0.20.2: {} 3843 | 3844 | type-fest@0.21.3: {} 3845 | 3846 | type-fest@0.6.0: {} 3847 | 3848 | type-fest@0.8.1: {} 3849 | 3850 | typescript@5.8.3: {} 3851 | 3852 | ufo@1.6.1: {} 3853 | 3854 | unist-util-is@6.0.0: 3855 | dependencies: 3856 | '@types/unist': 3.0.3 3857 | 3858 | unist-util-stringify-position@4.0.0: 3859 | dependencies: 3860 | '@types/unist': 3.0.3 3861 | 3862 | unist-util-visit-parents@6.0.1: 3863 | dependencies: 3864 | '@types/unist': 3.0.3 3865 | unist-util-is: 6.0.0 3866 | 3867 | unist-util-visit@5.0.0: 3868 | dependencies: 3869 | '@types/unist': 3.0.3 3870 | unist-util-is: 6.0.0 3871 | unist-util-visit-parents: 6.0.1 3872 | 3873 | unrs-resolver@1.7.6: 3874 | dependencies: 3875 | napi-postinstall: 0.2.4 3876 | optionalDependencies: 3877 | '@unrs/resolver-binding-darwin-arm64': 1.7.6 3878 | '@unrs/resolver-binding-darwin-x64': 1.7.6 3879 | '@unrs/resolver-binding-freebsd-x64': 1.7.6 3880 | '@unrs/resolver-binding-linux-arm-gnueabihf': 1.7.6 3881 | '@unrs/resolver-binding-linux-arm-musleabihf': 1.7.6 3882 | '@unrs/resolver-binding-linux-arm64-gnu': 1.7.6 3883 | '@unrs/resolver-binding-linux-arm64-musl': 1.7.6 3884 | '@unrs/resolver-binding-linux-ppc64-gnu': 1.7.6 3885 | '@unrs/resolver-binding-linux-riscv64-gnu': 1.7.6 3886 | '@unrs/resolver-binding-linux-riscv64-musl': 1.7.6 3887 | '@unrs/resolver-binding-linux-s390x-gnu': 1.7.6 3888 | '@unrs/resolver-binding-linux-x64-gnu': 1.7.6 3889 | '@unrs/resolver-binding-linux-x64-musl': 1.7.6 3890 | '@unrs/resolver-binding-wasm32-wasi': 1.7.6 3891 | '@unrs/resolver-binding-win32-arm64-msvc': 1.7.6 3892 | '@unrs/resolver-binding-win32-ia32-msvc': 1.7.6 3893 | '@unrs/resolver-binding-win32-x64-msvc': 1.7.6 3894 | 3895 | update-browserslist-db@1.1.3(browserslist@4.24.5): 3896 | dependencies: 3897 | browserslist: 4.24.5 3898 | escalade: 3.2.0 3899 | picocolors: 1.1.1 3900 | 3901 | uri-js@4.4.1: 3902 | dependencies: 3903 | punycode: 2.3.1 3904 | 3905 | util-deprecate@1.0.2: {} 3906 | 3907 | validate-npm-package-license@3.0.4: 3908 | dependencies: 3909 | spdx-correct: 3.2.0 3910 | spdx-expression-parse: 3.0.1 3911 | 3912 | vue-eslint-parser@9.4.3(eslint@9.27.0(jiti@2.4.2)): 3913 | dependencies: 3914 | debug: 4.4.1 3915 | eslint: 9.27.0(jiti@2.4.2) 3916 | eslint-scope: 7.2.2 3917 | eslint-visitor-keys: 3.4.3 3918 | espree: 9.6.1 3919 | esquery: 1.6.0 3920 | lodash: 4.17.21 3921 | semver: 7.7.2 3922 | transitivePeerDependencies: 3923 | - supports-color 3924 | 3925 | which@2.0.2: 3926 | dependencies: 3927 | isexe: 2.0.0 3928 | 3929 | word-wrap@1.2.5: {} 3930 | 3931 | wrap-ansi@7.0.0: 3932 | dependencies: 3933 | ansi-styles: 4.3.0 3934 | string-width: 4.2.3 3935 | strip-ansi: 6.0.1 3936 | 3937 | xml-name-validator@4.0.0: {} 3938 | 3939 | y18n@5.0.8: {} 3940 | 3941 | yallist@4.0.0: {} 3942 | 3943 | yaml-eslint-parser@1.3.0: 3944 | dependencies: 3945 | eslint-visitor-keys: 3.4.3 3946 | yaml: 2.8.0 3947 | 3948 | yaml@2.8.0: {} 3949 | 3950 | yargs-parser@20.2.9: {} 3951 | 3952 | yargs-parser@21.1.1: {} 3953 | 3954 | yargs@17.7.2: 3955 | dependencies: 3956 | cliui: 8.0.1 3957 | escalade: 3.2.0 3958 | get-caller-file: 2.0.5 3959 | require-directory: 2.1.1 3960 | string-width: 4.2.3 3961 | y18n: 5.0.8 3962 | yargs-parser: 21.1.1 3963 | 3964 | yocto-queue@0.1.0: {} 3965 | 3966 | zwitch@2.0.4: {} 3967 | -------------------------------------------------------------------------------- /src/api.d.ts: -------------------------------------------------------------------------------- 1 | export interface KirbyApiResponse { 2 | code: number; 3 | status: string; 4 | result?: T; 5 | } 6 | -------------------------------------------------------------------------------- /src/blocks.d.ts: -------------------------------------------------------------------------------- 1 | export interface KirbyDefaultBlocks { 2 | code: { code: string; language: string }; 3 | gallery: { images: string[] }; 4 | heading: { level: string; text: string }; 5 | image: { 6 | location: string; 7 | image: string[]; 8 | src: string; 9 | alt: string; 10 | caption: string; 11 | link: string; 12 | ratio: string; 13 | crop: boolean; 14 | }; 15 | list: { text: string }; 16 | markdown: { text: string }; 17 | quote: { text: string; citation: string }; 18 | text: { text: string }; 19 | video: { url: string; caption: string }; 20 | } 21 | 22 | export interface KirbyBlock< 23 | T extends string = keyof KirbyDefaultBlocks, 24 | U extends Record | undefined = undefined, 25 | > { 26 | content: U extends Record 27 | ? U 28 | : T extends keyof KirbyDefaultBlocks 29 | ? KirbyDefaultBlocks[T] 30 | : Record; 31 | id: string; 32 | isHidden: boolean; 33 | type: T; 34 | } 35 | 36 | export type KirbyDefaultBlockType = keyof KirbyDefaultBlocks; 37 | -------------------------------------------------------------------------------- /src/kql.d.ts: -------------------------------------------------------------------------------- 1 | import type { KirbyApiResponse } from "./api"; 2 | import type { KirbyQuery } from "./query"; 3 | 4 | export interface KirbyQuerySchema { 5 | query: KirbyQuery; 6 | select?: 7 | | string[] 8 | | Record; 9 | } 10 | 11 | export interface KirbyQueryRequest extends KirbyQuerySchema { 12 | pagination?: { 13 | /** @default 100 */ 14 | limit?: number; 15 | page?: number; 16 | }; 17 | } 18 | 19 | export type KirbyQueryResponse< 20 | T = any, 21 | Pagination extends boolean = false, 22 | > = KirbyApiResponse< 23 | Pagination extends true 24 | ? { 25 | data: T; 26 | pagination: { 27 | page: number; 28 | pages: number; 29 | offset: number; 30 | limit: number; 31 | total: number; 32 | }; 33 | } 34 | : T 35 | >; 36 | -------------------------------------------------------------------------------- /src/layout.d.ts: -------------------------------------------------------------------------------- 1 | import type { KirbyBlock } from "./blocks"; 2 | 3 | export interface KirbyLayoutColumn { 4 | id: string; 5 | width: 6 | | "1/1" 7 | | "1/2" 8 | | "1/3" 9 | | "1/4" 10 | | "1/6" 11 | | "1/12" 12 | | "2/2" 13 | | "2/3" 14 | | "2/4" 15 | | "2/6" 16 | | "2/12" 17 | | "3/3" 18 | | "3/4" 19 | | "3/6" 20 | | "3/12" 21 | | "4/4" 22 | | "4/6" 23 | | "4/12" 24 | | "5/6" 25 | | "5/12" 26 | | "6/6" 27 | | "6/12" 28 | | "7/12" 29 | | "8/12" 30 | | "9/12" 31 | | "10/12" 32 | | "11/12" 33 | | "12/12"; 34 | blocks: KirbyBlock[]; 35 | } 36 | 37 | export interface KirbyLayout { 38 | id: string; 39 | attrs: Record | string[]; 40 | columns: KirbyLayoutColumn[]; 41 | } 42 | -------------------------------------------------------------------------------- /src/query.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Represents all supported model names in Kirby Query Language. 3 | * 4 | * This type includes all built-in Kirby models that can be used as the starting point 5 | * for queries, plus any custom models you define. 6 | * 7 | * Built-in models include: 8 | * - `site` - The site object 9 | * - `page` - A page object 10 | * - `user` - A user object 11 | * - `file` - A file object 12 | * - `collection` - A collection object 13 | * - `kirby` - The Kirby instance 14 | * - `content` - Content field data 15 | * - `item` - Generic item in collections 16 | * - `arrayItem` - An item in an array 17 | * - `structureItem` - An item in a structure field 18 | * - `block` - A block in the blocks field 19 | * 20 | * @example 21 | * ```ts 22 | * // Using built-in models 23 | * const siteModel: KirbyQueryModel = "site"; 24 | * const pageModel: KirbyQueryModel = "page"; 25 | * 26 | * // Using with custom models 27 | * type CustomModels = "product" | "category"; 28 | * const customModel: KirbyQueryModel = "product"; 29 | * ``` 30 | * 31 | * @template CustomModel - Additional custom model names to include 32 | */ 33 | export type KirbyQueryModel = 34 | | "collection" 35 | | "kirby" 36 | | "site" 37 | | "page" 38 | | "user" 39 | | "file" 40 | | "content" 41 | | "item" 42 | | "arrayItem" 43 | | "structureItem" 44 | | "block" 45 | | CustomModel; 46 | 47 | /** 48 | * Helper type for dot notation queries (e.g., `model.property.method`). 49 | * @internal 50 | */ 51 | type DotNotationQuery = 52 | `${KirbyQueryModel}.${string}`; 53 | 54 | /** 55 | * Helper type for function notation queries (e.g., `model(params)` or `model(params).chain`). 56 | * @internal 57 | */ 58 | type FunctionNotationQuery = 59 | | `${KirbyQueryModel}(${string})` 60 | | `${KirbyQueryModel}(${string})${string}`; 61 | 62 | /** 63 | * Represents query chains that extend beyond a simple model name. 64 | * 65 | * This type covers all valid query patterns that start with a model and include 66 | * additional property access or method calls: 67 | * 68 | * - **Dot notation**: `model.property.method()` 69 | * - **Function calls**: `model(params)` 70 | * - **Mixed chains**: `model(params).property.method()` 71 | * 72 | * @example 73 | * ```ts 74 | * // Dot notation queries 75 | * const dotQuery: KirbyQueryChain = "page.children.listed"; 76 | * const methodQuery: KirbyQueryChain = "page.children.filterBy('featured', true)"; 77 | * 78 | * // Function notation queries 79 | * const funcQuery: KirbyQueryChain = 'site("home")'; 80 | * const mixedQuery: KirbyQueryChain = 'page("blog").children.sortBy("date")'; 81 | * 82 | * // With custom models 83 | * type CustomModels = "product" | "category"; 84 | * const customQuery: KirbyQueryChain = "product.price"; 85 | * ``` 86 | * 87 | * @template M - Optional custom model names to include in validation 88 | */ 89 | export type KirbyQueryChain = 90 | | DotNotationQuery 91 | | FunctionNotationQuery; 92 | 93 | /** 94 | * Represents any valid Kirby Query Language (KQL) string. 95 | * 96 | * This is the main type for validating KQL queries. It accepts: 97 | * - Simple model names (e.g., `"site"`, `"page"`) 98 | * - Property chains (e.g., `"page.children.listed"`) 99 | * - Method calls (e.g., `'site("home")'`, `'page.filterBy("status", "published")'`) 100 | * - Complex mixed queries (e.g., `'page("blog").children.filterBy("featured", true).sortBy("date")'`) 101 | * 102 | * Invalid queries (unknown models, malformed syntax) will be rejected at the type level. 103 | * 104 | * @example 105 | * ```ts 106 | * // Valid queries 107 | * const simpleQuery: KirbyQuery = "site"; 108 | * const propertyQuery: KirbyQuery = "page.children.listed"; 109 | * const methodQuery: KirbyQuery = 'page.filterBy("featured", true)'; 110 | * const complexQuery: KirbyQuery = 'site("home").children.sortBy("date", "desc").limit(10)'; 111 | * 112 | * // Custom models 113 | * type MyModels = "product" | "category"; 114 | * const customQuery: KirbyQuery = "product.price"; 115 | * 116 | * // Invalid queries (these will cause TypeScript errors) 117 | * // const invalid: KirbyQuery = "unknownModel"; // ❌ Unknown model 118 | * // const invalid: KirbyQuery = "user"; // ❌ Not in custom models 119 | * ``` 120 | * 121 | * @template CustomModel - Optional custom model names to include alongside built-in models 122 | */ 123 | export type KirbyQuery = 124 | | KirbyQueryModel 125 | | (string extends KirbyQueryChain 126 | ? never 127 | : KirbyQueryChain); 128 | 129 | /** 130 | * Parses a Kirby Query Language (KQL) string into a structured object. 131 | * 132 | * This type breaks down a query string into its constituent parts: 133 | * - `model`: The root model the query starts with (e.g., `site`, `page`, `user`) 134 | * - `chain`: An array of query segments representing the method calls and property accesses 135 | * 136 | * @example 137 | * ```ts 138 | * // Basic model query 139 | * type Basic = ParseKirbyQuery<"site">; 140 | * // Result: { model: "site"; chain: [] } 141 | * 142 | * // Property chain query 143 | * type Props = ParseKirbyQuery<"page.children.listed">; 144 | * // Result: { 145 | * // model: "page"; 146 | * // chain: [ 147 | * // { type: "property"; name: "children" }, 148 | * // { type: "property"; name: "listed" } 149 | * // ] 150 | * // } 151 | * 152 | * // Method call query 153 | * type Method = ParseKirbyQuery<'site("home")'>; 154 | * // Result: { 155 | * // model: "site"; 156 | * // chain: [{ type: "method"; name: "site"; params: '"home"' }] 157 | * // } 158 | * 159 | * // Complex query with mixed property and method calls 160 | * type Complex = ParseKirbyQuery<'page.children.filterBy("featured", true).sortBy("date")'>; 161 | * // Result: { 162 | * // model: "page"; 163 | * // chain: [ 164 | * // { type: "property"; name: "children" }, 165 | * // { type: "method"; name: "filterBy"; params: '"featured", true' }, 166 | * // { type: "method"; name: "sortBy"; params: '"date"' } 167 | * // ] 168 | * // } 169 | * ``` 170 | * 171 | * @template T - The query string to parse 172 | * @template M - Optional custom model names to include in validation 173 | */ 174 | export type ParseKirbyQuery = 175 | // Case 1: Simple model name (e.g., "site", "page") 176 | T extends KirbyQueryModel 177 | ? { model: T; chain: [] } 178 | : // Case 2: Dot notation (e.g., "page.children.listed") 179 | T extends `${infer Model}.${infer Chain}` 180 | ? Model extends KirbyQueryModel 181 | ? { model: Model; chain: ParseQueryChain } 182 | : never 183 | : // Case 3: Method call only (e.g., 'site("home")') 184 | T extends `${infer Model}(${infer Params})` 185 | ? Model extends KirbyQueryModel 186 | ? { model: Model; chain: [ParseQuerySegment] } 187 | : never 188 | : // Case 4: Method call followed by chain (e.g., 'site("home").children') 189 | T extends `${infer Model}(${infer Params})${infer Rest}` 190 | ? Model extends KirbyQueryModel 191 | ? Rest extends `.${infer Chain}` 192 | ? { 193 | model: Model; 194 | chain: [ 195 | ParseQuerySegment<`${Model}(${Params})`>, 196 | ...ParseQueryChain, 197 | ]; 198 | } 199 | : never 200 | : never 201 | : never; 202 | 203 | /** 204 | * Recursively parses a chain of query segments separated by dots. 205 | * 206 | * @example 207 | * ```ts 208 | * type Chain = ParseQueryChain<"children.listed.first">; 209 | * // Result: [ 210 | * // { type: "property"; name: "children" }, 211 | * // { type: "property"; name: "listed" }, 212 | * // { type: "property"; name: "first" } 213 | * // ] 214 | * ``` 215 | * 216 | * @internal 217 | */ 218 | type ParseQueryChain = 219 | T extends `${infer First}.${infer Rest}` 220 | ? [ParseQuerySegment, ...ParseQueryChain] 221 | : [ParseQuerySegment]; 222 | 223 | /** 224 | * Parses a single query segment to determine if it's a property access or method call. 225 | * 226 | * @example 227 | * ```ts 228 | * type Property = ParseQuerySegment<"children">; 229 | * // Result: { type: "property"; name: "children" } 230 | * 231 | * type Method = ParseQuerySegment<'filterBy("status", "published")'>; 232 | * // Result: { type: "method"; name: "filterBy"; params: '"status", "published"' } 233 | * ``` 234 | * 235 | * @internal 236 | */ 237 | type ParseQuerySegment = 238 | T extends `${infer Name}(${infer Params})` 239 | ? { 240 | type: "method"; 241 | name: Name; 242 | params: Params; 243 | } 244 | : { 245 | type: "property"; 246 | name: T; 247 | }; 248 | -------------------------------------------------------------------------------- /test/blocks.test-d.ts: -------------------------------------------------------------------------------- 1 | import type { KirbyBlock, KirbyDefaultBlockType } from "../src/blocks"; 2 | import { expectAssignable, expectNotAssignable, expectType } from "tsd"; 3 | 4 | // ============================================================================= 5 | // KIRBY BLOCK TESTS 6 | // ============================================================================= 7 | 8 | // --- 1. Default Block Types --- 9 | 10 | // Text block 11 | expectAssignable>({ 12 | content: { text: "Hello World" }, 13 | id: "1", 14 | isHidden: false, 15 | type: "text", 16 | }); 17 | 18 | expectAssignable>({ 19 | content: { text: "Another text content" }, 20 | id: "text-2", 21 | isHidden: true, 22 | type: "text", 23 | }); 24 | 25 | // Code block 26 | expectAssignable>({ 27 | content: { code: "console.log('hello')", language: "javascript" }, 28 | id: "code-1", 29 | isHidden: false, 30 | type: "code", 31 | }); 32 | 33 | // Gallery block 34 | expectAssignable>({ 35 | content: { images: ["image1.jpg", "image2.jpg"] }, 36 | id: "gallery-1", 37 | isHidden: false, 38 | type: "gallery", 39 | }); 40 | 41 | // Heading block 42 | expectAssignable>({ 43 | content: { level: "1", text: "Main Title" }, 44 | id: "heading-1", 45 | isHidden: false, 46 | type: "heading", 47 | }); 48 | 49 | // Image block 50 | expectAssignable>({ 51 | content: { 52 | location: "kirby", 53 | image: ["test.jpg"], 54 | src: "test.jpg", 55 | alt: "Test image", 56 | caption: "A test image", 57 | link: "https://example.com", 58 | ratio: "1/1", 59 | crop: true, 60 | }, 61 | id: "image-1", 62 | isHidden: false, 63 | type: "image", 64 | }); 65 | 66 | // List block 67 | expectAssignable>({ 68 | content: { text: "List item content" }, 69 | id: "list-1", 70 | isHidden: false, 71 | type: "list", 72 | }); 73 | 74 | // Markdown block 75 | expectAssignable>({ 76 | content: { text: "# Markdown content\n\nSome **bold** text." }, 77 | id: "markdown-1", 78 | isHidden: false, 79 | type: "markdown", 80 | }); 81 | 82 | // Quote block 83 | expectAssignable>({ 84 | content: { 85 | text: "Life is what happens when you're busy making other plans.", 86 | citation: "John Lennon", 87 | }, 88 | id: "quote-1", 89 | isHidden: false, 90 | type: "quote", 91 | }); 92 | 93 | // Video block (default content) 94 | expectAssignable>({ 95 | content: { url: "https://youtube.com/watch?v=123", caption: "Video caption" }, 96 | id: "video-1", 97 | isHidden: false, 98 | type: "video", 99 | }); 100 | 101 | // --- 2. Custom Content Types --- 102 | 103 | // Overwriting the default content type for same block type 104 | expectAssignable>({ 105 | content: { videoId: 123 }, 106 | id: "1", 107 | isHidden: false, 108 | type: "video", 109 | }); 110 | 111 | // Completely custom block type 112 | expectAssignable>({ 113 | content: { foo: "Hello World" }, 114 | id: "1", 115 | isHidden: false, 116 | type: "custom", 117 | }); 118 | 119 | // --- 3. Type Inference Tests --- 120 | 121 | // Test KirbyDefaultBlockType union 122 | expectType< 123 | | "code" 124 | | "gallery" 125 | | "heading" 126 | | "image" 127 | | "list" 128 | | "markdown" 129 | | "quote" 130 | | "text" 131 | | "video" 132 | >({} as KirbyDefaultBlockType); 133 | 134 | // Test default content types 135 | expectType<{ code: string; language: string }>( 136 | {} as KirbyBlock<"code">["content"], 137 | ); 138 | 139 | expectType<{ images: string[] }>({} as KirbyBlock<"gallery">["content"]); 140 | 141 | expectType<{ text: string }>({} as KirbyBlock<"text">["content"]); 142 | 143 | // Test custom content type override 144 | expectType<{ videoId: number }>( 145 | {} as KirbyBlock<"video", { videoId: number }>["content"], 146 | ); 147 | 148 | expectType<{ customField: boolean }>( 149 | {} as KirbyBlock<"customType", { customField: boolean }>["content"], 150 | ); 151 | 152 | // Test with never content (edge case) 153 | expectType>({} as KirbyBlock<"unknownType">["content"]); 154 | 155 | // ============================================================================= 156 | // NEGATIVE TESTS (INVALID BLOCKS) 157 | // ============================================================================= 158 | 159 | // --- 1. Wrong Content Types --- 160 | 161 | // Wrong content type for default blocks 162 | expectNotAssignable>({ 163 | content: { text: "wrong content" }, // Should be { code: string; language: string } 164 | id: "1", 165 | isHidden: false, 166 | type: "code", 167 | }); 168 | 169 | expectNotAssignable>({ 170 | content: { videos: ["video.mp4"] }, // Should be { images: string[] } 171 | id: "1", 172 | isHidden: false, 173 | type: "gallery", 174 | }); 175 | 176 | // --- 2. Missing Required Fields --- 177 | 178 | expectNotAssignable>({ 179 | content: { text: "Hello" }, 180 | // Missing id, isHidden, type 181 | }); 182 | 183 | expectNotAssignable>({ 184 | content: { text: "Hello" }, 185 | id: "1", 186 | isHidden: false, 187 | // Missing type 188 | }); 189 | 190 | expectNotAssignable>({ 191 | content: { text: "Hello" }, 192 | id: "1", 193 | // Missing isHidden, type 194 | }); 195 | 196 | // --- 3. Wrong Type Field --- 197 | 198 | expectNotAssignable>({ 199 | content: { text: "Hello" }, 200 | id: "1", 201 | isHidden: false, 202 | type: "wrong", // Should be "text" 203 | }); 204 | -------------------------------------------------------------------------------- /test/kql.test-d.ts: -------------------------------------------------------------------------------- 1 | import type { KirbyQueryRequest, KirbyQueryResponse } from "../src/kql"; 2 | import { expectAssignable, expectNotAssignable } from "tsd"; 3 | 4 | // ============================================================================= 5 | // KQL TESTS 6 | // ============================================================================= 7 | 8 | interface KirbySite { 9 | title: string; 10 | children: { 11 | id: string; 12 | title: string; 13 | isListed: boolean; 14 | }[]; 15 | } 16 | 17 | // --- 1. Basic Query Requests --- 18 | 19 | expectAssignable({ 20 | query: "site", 21 | select: { 22 | title: true, 23 | }, 24 | }); 25 | 26 | expectAssignable({ 27 | query: "page.children.listed", 28 | select: ["id", "title", "slug", "content"], 29 | }); 30 | 31 | // --- 2. Nested Query Requests --- 32 | 33 | expectAssignable({ 34 | query: "site", 35 | select: { 36 | children: { 37 | query: "site.children", 38 | select: ["id", "title", "isListed"], 39 | }, 40 | }, 41 | }); 42 | 43 | expectAssignable({ 44 | query: "site", 45 | select: { 46 | children: { 47 | query: "site.children", 48 | select: { 49 | id: true, 50 | title: true, 51 | isListed: "page.isListed", 52 | }, 53 | }, 54 | }, 55 | }); 56 | 57 | // --- 3. Pagination --- 58 | 59 | expectAssignable({ 60 | query: "site.children", 61 | select: { 62 | id: true, 63 | title: true, 64 | }, 65 | pagination: { 66 | limit: 10, 67 | page: 1, 68 | }, 69 | }); 70 | 71 | expectAssignable({ 72 | query: "page.children", 73 | select: ["title", "slug"], 74 | pagination: { 75 | limit: 5, 76 | }, 77 | }); 78 | 79 | // --- 4. Query Response Tests --- 80 | 81 | expectAssignable>({ 82 | code: 200, 83 | status: "OK", 84 | result: { 85 | title: "Site", 86 | children: [ 87 | { 88 | id: "home", 89 | title: "Home", 90 | isListed: true, 91 | }, 92 | ], 93 | }, 94 | }); 95 | 96 | // Error response 97 | expectAssignable>({ 98 | code: 404, 99 | status: "Not Found", 100 | }); 101 | 102 | // ============================================================================= 103 | // NEGATIVE TESTS (INVALID KQL) 104 | // ============================================================================= 105 | 106 | // --- 1. Invalid Query Models --- 107 | 108 | expectNotAssignable({ 109 | query: "site", 110 | select: { 111 | children: { 112 | query: "some.children", // Invalid query model 113 | select: { 114 | id: true, 115 | }, 116 | }, 117 | }, 118 | }); 119 | 120 | // --- 2. Invalid Select Values --- 121 | 122 | expectNotAssignable({ 123 | query: "site", 124 | select: { 125 | children: { 126 | query: "site.children", 127 | select: { 128 | id: null, // null is not allowed 129 | }, 130 | }, 131 | }, 132 | }); 133 | -------------------------------------------------------------------------------- /test/query.test-d.ts: -------------------------------------------------------------------------------- 1 | import type { KirbyQuery, ParseKirbyQuery } from "../src/query"; 2 | import { expectAssignable, expectNotAssignable, expectType } from "tsd"; 3 | 4 | // ============================================================================= 5 | // KIRBY QUERY TESTS 6 | // ============================================================================= 7 | 8 | // --- 1. Basic Model Names --- 9 | 10 | expectAssignable("site"); 11 | expectAssignable("page"); 12 | expectAssignable("user"); 13 | expectAssignable("file"); 14 | expectAssignable("collection"); 15 | expectAssignable("kirby"); 16 | expectAssignable("content"); 17 | expectAssignable("item"); 18 | expectAssignable("arrayItem"); 19 | expectAssignable("structureItem"); 20 | expectAssignable("block"); 21 | 22 | // --- 2. Simple Dot Notation --- 23 | 24 | expectAssignable("site.title"); 25 | expectAssignable("page.slug"); 26 | expectAssignable("user.email"); 27 | expectAssignable("file.url"); 28 | expectAssignable("kirby.version"); 29 | 30 | // --- 3. Basic Function Calls --- 31 | 32 | expectAssignable('page("notes")'); 33 | expectAssignable('site("home")'); 34 | expectAssignable('user("admin")'); 35 | expectAssignable('file("image.jpg")'); 36 | 37 | // --- 4. Complex Query Chains --- 38 | 39 | // Multiple chained methods 40 | expectAssignable('site.children.listed().sortBy("date", "desc")'); 41 | expectAssignable('page.images.template("gallery").first()'); 42 | expectAssignable('collection.filterBy("status", "published")'); 43 | 44 | // Complex parameter combinations 45 | expectAssignable('page.filterBy("date", ">=", "2023-01-01")'); 46 | expectAssignable('collection.sortBy("title", "asc", "num")'); 47 | expectAssignable("page.limit(10, 5)"); 48 | 49 | // Long query chains 50 | expectAssignable( 51 | 'page("blog").children.filterBy("status", "published").sortBy("date").limit(10)', 52 | ); 53 | expectAssignable( 54 | 'site.find("projects").children.listed.filterBy("featured", true).shuffle()', 55 | ); 56 | 57 | // Very long chains (should work) 58 | expectAssignable( 59 | 'site.children.listed().filterBy("template", "article").sortBy("date", "desc").limit(5).first()', 60 | ); 61 | 62 | // Complex nested parameters 63 | expectAssignable( 64 | 'page.children.filterBy("date", ">=", "2023-01-01").filterBy("status", "!=", "draft")', 65 | ); 66 | 67 | // Mixed notation complexity 68 | expectAssignable( 69 | 'page("blog").children.listed().filterBy("featured", true).sortBy("date").limit(10)', 70 | ); 71 | 72 | // --- 5. Advanced Syntax Validation --- 73 | 74 | // Mixed quotes in parameters 75 | expectAssignable('page("title").filterBy(\'status\', "published")'); 76 | expectAssignable("site.find('notes').children"); 77 | 78 | // Numeric and boolean parameters 79 | expectAssignable('page.filterBy("featured", true)'); 80 | expectAssignable('collection.filterBy("count", 5)'); 81 | expectAssignable('page.filterBy("rating", ">=", 4.5)'); 82 | 83 | // Nested parentheses in parameters 84 | expectAssignable('page.filterBy("nested(test)", "value")'); 85 | expectAssignable('site.find("page(with)parens").children'); 86 | 87 | // Complex parameter combinations 88 | expectAssignable( 89 | 'page.filterBy("date", ">=", "2023-01-01 10:00:00")', 90 | ); 91 | expectAssignable( 92 | 'collection.sortBy("title", "asc", "locale", "en_US")', 93 | ); 94 | expectAssignable("page.slice(0, 10)"); 95 | 96 | // Numbers in valid contexts 97 | expectAssignable("page.limit(10)"); 98 | expectAssignable("page.offset(5)"); 99 | expectAssignable('page.filterBy("count", 100)'); 100 | 101 | // --- 6. Custom Models --- 102 | 103 | expectAssignable>("customModel"); 104 | expectAssignable>("customModel.cover"); 105 | 106 | // Union custom models 107 | expectAssignable>("product.price"); 108 | expectAssignable>("category.name"); 109 | expectAssignable>("product"); 110 | expectAssignable>("category"); 111 | expectAssignable>("brand"); 112 | expectAssignable>("product.price"); 113 | expectAssignable>("category.name"); 114 | expectAssignable>("brand.logo"); 115 | 116 | // ============================================================================= 117 | // KIRBY QUERY PARSED TESTS 118 | // ============================================================================= 119 | 120 | // --- 1. Basic Model Parsing --- 121 | 122 | expectType<{ model: "site"; chain: [] }>({} as ParseKirbyQuery<"site">); 123 | 124 | expectType<{ model: "page"; chain: [] }>({} as ParseKirbyQuery<"page">); 125 | 126 | expectType<{ model: "user"; chain: [] }>({} as ParseKirbyQuery<"user">); 127 | 128 | // --- 2. Dot Notation Parsing --- 129 | 130 | expectType<{ 131 | model: "site"; 132 | chain: [{ type: "property"; name: "title" }]; 133 | }>({} as ParseKirbyQuery<"site.title">); 134 | 135 | expectType<{ 136 | model: "page"; 137 | chain: [ 138 | { type: "property"; name: "children" }, 139 | { type: "property"; name: "listed" }, 140 | ]; 141 | }>({} as ParseKirbyQuery<"page.children.listed">); 142 | 143 | // --- 3. Method Call Parsing --- 144 | 145 | expectType<{ 146 | model: "page"; 147 | chain: [{ type: "method"; name: "page"; params: '"notes"' }]; 148 | }>({} as ParseKirbyQuery<'page("notes")'>); 149 | 150 | expectType<{ 151 | model: "site"; 152 | chain: [{ type: "method"; name: "site"; params: '"home"' }]; 153 | }>({} as ParseKirbyQuery<'site("home")'>); 154 | 155 | // --- 4. Complex Chain Parsing --- 156 | 157 | // Simple chain parsing (this works) 158 | expectType<{ 159 | model: "page"; 160 | chain: [ 161 | { type: "property"; name: "children" }, 162 | { type: "method"; name: "filterBy"; params: '"status", "published"' }, 163 | ]; 164 | }>({} as ParseKirbyQuery<'page.children.filterBy("status", "published")'>); 165 | 166 | // --- 5. Custom Model Parsing --- 167 | 168 | expectType<{ model: "customModel"; chain: [] }>( 169 | {} as ParseKirbyQuery<"customModel", "customModel">, 170 | ); 171 | 172 | expectType<{ 173 | model: "customModel"; 174 | chain: [{ type: "property"; name: "cover" }]; 175 | }>({} as ParseKirbyQuery<"customModel.cover", "customModel">); 176 | 177 | // --- 6. Invalid Queries (should return never) --- 178 | 179 | expectType({} as ParseKirbyQuery<"unknown">); 180 | 181 | // Note: Some edge cases still parse but create empty/invalid segments 182 | // The validation happens at the KirbyQuery level, not ParseKirbyQuery level 183 | 184 | // ============================================================================= 185 | // NEGATIVE TESTS (INVALID QUERIES) 186 | // ============================================================================= 187 | 188 | // Note: Complex syntax validation (unmatched quotes, unbalanced parentheses, 189 | // double dots, trailing dots, empty segments) is not feasible with TypeScript's 190 | // template literal type system limitations. We focus on model name validation. 191 | 192 | // --- 1. Invalid Model Names --- 193 | 194 | expectNotAssignable("unknown"); 195 | expectNotAssignable("invalidModel"); 196 | expectNotAssignable("Site"); // Case sensitive 197 | expectNotAssignable(""); // Empty string 198 | 199 | // --- 2. Custom Model Validation --- 200 | 201 | expectNotAssignable>("otherModel"); 202 | expectNotAssignable>("unknownModel"); 203 | expectNotAssignable>("brand"); 204 | expectNotAssignable>("unknown"); 205 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "module": "ESNext", 5 | "moduleResolution": "Bundler", 6 | "resolveJsonModule": true, 7 | "strict": true, 8 | "noEmit": true, 9 | "esModuleInterop": true, 10 | "isolatedModules": true, 11 | "verbatimModuleSyntax": true, 12 | "skipLibCheck": true 13 | } 14 | } 15 | --------------------------------------------------------------------------------