From ac3c831e2bd3cbad26abd35b4ffae0b9a5c6ac8e Mon Sep 17 00:00:00 2001 From: mutoe Date: Mon, 11 Dec 2023 18:34:08 +0800 Subject: [PATCH] chore: update eslint rules --- .eslintrc.js | 10 - .github/dependabot.yml | 4 +- .github/workflows/codeql-analysis.yml | 50 +- .github/workflows/health-check.yml | 2 +- .github/workflows/pull-request.yml | 6 +- .github/workflows/test.yml | 6 +- FRONTEND_INSTRUCTIONS.md | 6 - README.md | 1 - cypress/.eslintrc.js | 20 - cypress/e2e/article.cy.ts | 2 +- cypress/e2e/auth.cy.ts | 6 +- cypress/e2e/favorite.cy.ts | 2 +- cypress/e2e/follow.cy.ts | 6 +- cypress/e2e/home.cy.ts | 2 +- cypress/e2e/tag.cy.ts | 4 +- cypress/e2e/tsconfig.json | 18 +- cypress/support/e2e.ts | 4 +- eslint.config.js | 24 + package.json | 34 +- pnpm-lock.yaml | 1232 +++++++++-------- src/components/AppNavigation.vue | 1 - src/components/AppPagination.vue | 14 +- src/components/ArticleDetail.vue | 2 +- src/components/ArticleDetailComment.spec.ts | 4 +- src/components/ArticleDetailComment.vue | 11 +- src/components/ArticleDetailComments.vue | 5 +- src/components/ArticleDetailCommentsForm.vue | 12 +- src/components/ArticleDetailMeta.vue | 10 +- src/components/ArticlesList.vue | 1 - src/components/ArticlesListArticlePreview.vue | 11 +- src/components/ArticlesListNavigation.vue | 1 - src/components/PopularTags.vue | 2 +- src/composable/useArticles.ts | 40 +- src/composable/useFavoriteArticle.ts | 2 +- src/composable/useFollowProfile.ts | 4 +- src/composable/useProfile.ts | 10 +- src/composable/useTags.ts | 4 +- src/config.ts | 2 +- src/pages/EditArticle.vue | 20 +- src/pages/Login.spec.ts | 2 +- src/pages/Login.vue | 9 +- src/pages/Profile.vue | 1 - src/pages/Register.spec.ts | 2 +- src/pages/Register.vue | 11 +- src/pages/Settings.vue | 16 +- src/plugins/global-components.ts | 2 +- src/plugins/marked.ts | 12 +- src/plugins/set-authorization-token.ts | 3 +- src/router.ts | 2 +- src/services/index.ts | 6 +- src/setupTests.ts | 1 - src/store/user.ts | 5 +- src/types/global-component.d.ts | 3 - src/utils/filters.ts | 2 +- src/utils/params-to-query.ts | 2 +- src/utils/storage.ts | 13 +- src/utils/test/test.utils.ts | 69 +- src/utils/use-async.ts | 8 +- tsconfig.json | 37 +- tsconfig.node.json | 6 +- vite.config.ts | 4 +- 61 files changed, 942 insertions(+), 869 deletions(-) delete mode 100644 .eslintrc.js delete mode 100644 cypress/.eslintrc.js create mode 100644 eslint.config.js diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 447bfdb..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = { - root: true, - parser: 'vue-eslint-parser', - parserOptions: { - parser: '@typescript-eslint/parser', - sourceType: 'module', - extraFileExtensions: ['.vue'], - }, - extends: '@mutoe/eslint-config-preset-vue', -} diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 2872035..e32da09 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -6,13 +6,13 @@ version: 2 updates: - package-ecosystem: npm - directory: "/" + directory: / schedule: interval: monthly allow: - dependency-type: production - package-ecosystem: github-actions - directory: ".github/workflows" + directory: .github/workflows schedule: interval: monthly diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index cdac51e..6c57496 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -9,14 +9,14 @@ # the `language` matrix defined below to confirm you have the correct set of # supported CodeQL languages. # -name: "CodeQL" +name: CodeQL on: push: - branches: [ master ] + branches: [master] pull_request: # The branches below must be a subset of the branches above - branches: [ master ] + branches: [master] schedule: - cron: '43 3 * * 6' @@ -28,40 +28,40 @@ jobs: strategy: fail-fast: false matrix: - language: [ 'javascript' ] + language: [javascript] # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] # Learn more: # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed steps: - - name: Checkout repository - uses: actions/checkout@v4 + - name: Checkout repository + uses: actions/checkout@v4 - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v2 - with: - languages: ${{ matrix.language }} + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. # By default, queries listed here will override any specified in a config file. # Prefix the list here with "+" to use these queries and those in the config file. # queries: ./path/to/local/query, your-org/your-repo/queries@main - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v2 + # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). + # If this step fails, then you should remove it and run the build manually (see below) + - name: Autobuild + uses: github/codeql-action/autobuild@v2 - # â„šī¸ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl + # â„šī¸ Command-line programs to run using the OS shell. + # 📚 https://git.io/JvXDl - # âœī¸ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language + # âœī¸ If the Autobuild fails above, remove it and uncomment the following three lines + # and modify them (or add more) to build your code if your project + # uses a compiled language - #- run: | - # make bootstrap - # make release + # - run: | + # make bootstrap + # make release - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 diff --git a/.github/workflows/health-check.yml b/.github/workflows/health-check.yml index 6bc601b..ae9b56b 100644 --- a/.github/workflows/health-check.yml +++ b/.github/workflows/health-check.yml @@ -25,7 +25,7 @@ jobs: uses: actions/setup-node@v4 with: node-version: 20.x - cache: 'pnpm' + cache: pnpm - name: Install dependencies run: pnpm install diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 149e277..6957ec1 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -25,7 +25,7 @@ jobs: uses: actions/setup-node@v4 with: node-version: 20.x - cache: 'pnpm' + cache: pnpm - name: Install dependencies run: pnpm install --no-frozen-lockfile @@ -55,7 +55,7 @@ jobs: uses: actions/setup-node@v4 with: node-version: 20.x - cache: 'pnpm' + cache: pnpm - name: Install dependencies run: pnpm install --no-frozen-lockfile @@ -102,7 +102,7 @@ jobs: uses: actions/setup-node@v4 with: node-version: 20.x - cache: 'pnpm' + cache: pnpm - name: Install dependencies run: pnpm install --no-frozen-lockfile diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 30608b7..e54799a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -25,7 +25,7 @@ jobs: uses: actions/setup-node@v4 with: node-version: 20.x - cache: 'pnpm' + cache: pnpm - name: Install dependencies run: pnpm install @@ -55,7 +55,7 @@ jobs: uses: actions/setup-node@v4 with: node-version: 20.x - cache: 'pnpm' + cache: pnpm - name: Install dependencies run: pnpm install @@ -102,7 +102,7 @@ jobs: uses: actions/setup-node@v4 with: node-version: 20.x - cache: 'pnpm' + cache: pnpm - name: Install dependencies run: pnpm install diff --git a/FRONTEND_INSTRUCTIONS.md b/FRONTEND_INSTRUCTIONS.md index 9f39748..7c9e3b4 100644 --- a/FRONTEND_INSTRUCTIONS.md +++ b/FRONTEND_INSTRUCTIONS.md @@ -34,7 +34,6 @@ Instead of having the Bootstrap theme included locally, we recommend loading the Alternatively, if you want to make modifications to the theme, check out the [theme's repo](https://github.com/gothinkster/conduit-bootstrap-template). - # Templates - [Layout](#layout) @@ -48,10 +47,8 @@ Alternatively, if you want to make modifications to the theme, check out the [th - [Create/Edit Article](#createedit-article) - [Article](#article) - ## Layout - ### Header ```html @@ -93,7 +90,6 @@ Alternatively, if you want to make modifications to the theme, check out the [th - ``` ### Footer @@ -319,7 +315,6 @@ Alternatively, if you want to make modifications to the theme, check out the [th - @@ -400,7 +395,6 @@ Alternatively, if you want to make modifications to the theme, check out the [th - ``` ### Article diff --git a/README.md b/README.md index 74f32a9..0629e55 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,6 @@ - [Demo](https://vue3-realworld-example-app-mutoe.vercel.app) - [RealWorld](https://github.com/gothinkster/realworld) - This codebase was created to demonstrate a fully fledged fullstack application built with **Vue3** including CRUD operations, authentication, routing, pagination, and more. We've gone to great lengths to adhere to the **Vue3** community styleguides & best practices. diff --git a/cypress/.eslintrc.js b/cypress/.eslintrc.js deleted file mode 100644 index 3d9bfcc..0000000 --- a/cypress/.eslintrc.js +++ /dev/null @@ -1,20 +0,0 @@ -module.exports = { - root: true, - parser: '@typescript-eslint/parser', - extends: [ - '@mutoe/eslint-config-preset-ts', - 'plugin:cypress/recommended', - ], - env: { - 'cypress/globals': true, - }, - overrides: [ - { - files: ['support/**/*.ts'], - rules: { - '@typescript-eslint/no-namespace': 'off', - '@typescript-eslint/consistent-type-imports': 'error', - }, - }, - ], -} diff --git a/cypress/e2e/article.cy.ts b/cypress/e2e/article.cy.ts index 844d107..7eab310 100644 --- a/cypress/e2e/article.cy.ts +++ b/cypress/e2e/article.cy.ts @@ -1,6 +1,6 @@ import { ROUTES } from './constant' -describe('Article', () => { +describe('article', () => { beforeEach(() => { cy.intercept('GET', /articles\?limit/, { fixture: 'articles.json' }) cy.intercept('GET', /articles\/.+/, { fixture: 'article.json' }) diff --git a/cypress/e2e/auth.cy.ts b/cypress/e2e/auth.cy.ts index 0f426f2..77357d0 100644 --- a/cypress/e2e/auth.cy.ts +++ b/cypress/e2e/auth.cy.ts @@ -1,13 +1,13 @@ import { ROUTES } from './constant' -describe('Auth', () => { +describe('auth', () => { beforeEach(() => { cy.intercept('GET', /users/, { fixture: 'user.json' }).as('getUser') cy.intercept('GET', /tags/, { fixture: 'tags.json' }).as('getTags') cy.intercept('GET', /articles/, { fixture: 'articles.json' }).as('getArticles') }) - describe('Login and logout', () => { + describe('login and logout', () => { it('should login success when submit a valid login form', () => { cy.login() @@ -75,7 +75,7 @@ describe('Auth', () => { }) }) - describe('Register', () => { + describe('register', () => { it('should call register API and jump to home page when submit a valid form', () => { cy.intercept('POST', /users$/, { fixture: 'user.json' }).as('registerRequest') cy.visit(ROUTES.REGISTER) diff --git a/cypress/e2e/favorite.cy.ts b/cypress/e2e/favorite.cy.ts index f53c120..37ab833 100644 --- a/cypress/e2e/favorite.cy.ts +++ b/cypress/e2e/favorite.cy.ts @@ -1,6 +1,6 @@ import { ROUTES } from './constant' -describe('Favorite', () => { +describe('favorite', () => { beforeEach(() => { cy.intercept('GET', /articles\?/, { fixture: 'articles.json' }).as('getArticles') cy.intercept('GET', /tags/, { fixture: 'tags.json' }).as('getTags') diff --git a/cypress/e2e/follow.cy.ts b/cypress/e2e/follow.cy.ts index 2d6f72d..61d16a0 100644 --- a/cypress/e2e/follow.cy.ts +++ b/cypress/e2e/follow.cy.ts @@ -1,11 +1,11 @@ import { ROUTES } from './constant' -describe.only('Follow', () => { +describe.only('follow', () => { beforeEach(() => { cy.intercept('GET', /articles\?/, { fixture: 'articles.json' }).as('getArticles') cy.intercept('GET', /tags/, { fixture: 'tags.json' }).as('getTags') cy.intercept('GET', /profiles\/\S+/, { fixture: 'profile.json' }).as('getProfile') - cy.fixture('article.json').then(article => { + cy.fixture('article.json').then((article) => { article.article.author.username = 'foo' cy.intercept('GET', /articles\/\S+/, { statusCode: 200, body: article }).as('getArticle') }) @@ -21,7 +21,7 @@ describe.only('Follow', () => { }) it('should call follow user api when click follow user button', () => { - cy.fixture('profile.json').then(profile => { + cy.fixture('profile.json').then((profile) => { profile.profile.following = true cy.intercept('POST', /profiles\/\S+\/follow/, { statusCode: 200, body: profile }).as('followUser') }) diff --git a/cypress/e2e/home.cy.ts b/cypress/e2e/home.cy.ts index 043a21e..0c50ef0 100644 --- a/cypress/e2e/home.cy.ts +++ b/cypress/e2e/home.cy.ts @@ -1,6 +1,6 @@ import { ROUTES } from './constant' -describe('Homepage', () => { +describe('homepage', () => { beforeEach(() => { cy.intercept('GET', /articles\?tag=butt/, { fixture: 'articles-of-tag.json' }).as('getArticlesOfTag') cy.intercept('GET', /articles\?limit/, { fixture: 'articles.json' }).as('getArticles') diff --git a/cypress/e2e/tag.cy.ts b/cypress/e2e/tag.cy.ts index 9f7e797..776dd6c 100644 --- a/cypress/e2e/tag.cy.ts +++ b/cypress/e2e/tag.cy.ts @@ -1,6 +1,6 @@ import { ROUTES } from './constant' -describe('Tag', () => { +describe('tag', () => { beforeEach(() => { cy.intercept('GET', /articles\?tag=butt/, { fixture: 'articles-of-tag.json' }).as('getArticlesOfTag') cy.intercept('GET', /articles\?limit/, { fixture: 'articles.json' }).as('getArticles') @@ -31,7 +31,7 @@ describe('Tag', () => { .should('have.class', 'router-link-active') .should('have.class', 'router-link-exact-active') - cy.get('a.tag-pill.tag-default:last').invoke('text').then(tag => { + cy.get('a.tag-pill.tag-default:last').invoke('text').then((tag) => { const path = `#/tag/${tag}` cy.url() diff --git a/cypress/e2e/tsconfig.json b/cypress/e2e/tsconfig.json index 1227d2c..184a6e3 100644 --- a/cypress/e2e/tsconfig.json +++ b/cypress/e2e/tsconfig.json @@ -1,17 +1,19 @@ { "extends": "../../tsconfig.json", + "compilerOptions": { + "target": "ESNext", + "lib": ["ESNext", "DOM"], + "baseUrl": ".", + "types": ["cypress", "@testing-library/cypress"], + "isolatedModules": false + }, "include": [ "./**/*", "../fixtures/**/*", "../support/commands.ts", "../support/e2e.ts" ], - "exclude": ["../../src"], - "compilerOptions": { - "baseUrl": ".", - "isolatedModules": false, - "target": "ESNext", - "lib": ["ESNext", "DOM"], - "types": ["cypress", "@testing-library/cypress"] - } + "exclude": [ + "../../src" + ] } diff --git a/cypress/support/e2e.ts b/cypress/support/e2e.ts index 6faf51a..59e35f8 100644 --- a/cypress/support/e2e.ts +++ b/cypress/support/e2e.ts @@ -1,3 +1,5 @@ +/* eslint-disable ts/no-unsafe-member-access,ts/no-unsafe-assignment */ + // *********************************************************** // This example support/index.js is processed and // loaded automatically before your test files. @@ -27,7 +29,7 @@ declare global { } Cypress.Commands.add('login', (username = 'plumrx') => { - cy.fixture('user.json').then(authResponse => { + cy.fixture('user.json').then((authResponse) => { authResponse.user.username = username cy.intercept('POST', /users\/login$/, { statusCode: 200, body: authResponse }) }) diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..33da503 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,24 @@ +import defineConfig from '@mutoe/eslint-config' + +export default defineConfig({ + typescript: { + tsconfigPath: [ + 'tsconfig.json', + 'tsconfig.node.json', + 'cypress/e2e/tsconfig.json', + ], + }, + vue: { + sfcBlocks: { + defaultLanguage: { + script: 'ts', + }, + }, + }, + test: { + cypress: true, + }, + ignores: [ + 'src/services/api.ts', + ], +}) diff --git a/package.json b/package.json index 45112ba..9158a31 100644 --- a/package.json +++ b/package.json @@ -2,22 +2,29 @@ "name": "vue3-realworld-example-app", "private": true, "license": "MIT", + "type": "module", "scripts": { "prepare": "simple-git-hooks", "dev": "vite", "build": "vite build", "serve": "vite preview --port 4137", - "lint:script": "eslint \"{src/**/*.{ts,vue},cypress/**/*.ts}\"", - "lint:tsc": "vue-tsc --noEmit", - "lint": "concurrently \"npm run lint:tsc\" \"npm run lint:script\"", - "test:unit": "vitest run", - "test:e2e": "npm run build && concurrently -rk -s first \"npm run serve\" \"cypress open --e2e -c baseUrl=http://localhost:4137\"", - "test:e2e:local": "cypress open --e2e -c baseUrl=http://localhost:5173", - "test:e2e:ci": "npm run build && concurrently -rk -s first \"npm run serve\" \"cypress run --e2e -c baseUrl=http://localhost:4137\"", - "test:e2e:prod": "cypress run --e2e -c baseUrl=https://vue3-realworld-example-app-mutoe.vercel.app", + "type-check": "vue-tsc --noEmit", + "lint": "eslint --fix .", "test": "npm run test:unit && npm run test:e2e:ci", + "test:e2e": "npm run build && concurrently -rk -s first \"npm run serve\" \"cypress open --e2e -c baseUrl=http://localhost:4137\"", + "test:e2e:ci": "npm run build && concurrently -rk -s first \"npm run serve\" \"cypress run --e2e -c baseUrl=http://localhost:4137\"", + "test:e2e:local": "cypress open --e2e -c baseUrl=http://localhost:5173", + "test:e2e:prod": "cypress run --e2e -c baseUrl=https://vue3-realworld-example-app-mutoe.vercel.app", + "test:unit": "vitest run", "generate:api": "curl -sL https://raw.githubusercontent.com/gothinkster/realworld/main/api/openapi.yml -o ./src/services/openapi.yml && sta -p ./src/services/openapi.yml -o ./src/services -n api.ts" }, + "simple-git-hooks": { + "pre-commit": "npm exec lint-staged", + "pre-push": "npm run lint && npm run build" + }, + "lint-staged": { + "*": "eslint --fix" + }, "dependencies": { "insane": "^2.6.2", "marked": "^11.0.0", @@ -26,7 +33,8 @@ "vue-router": "^4.2.5" }, "devDependencies": { - "@mutoe/eslint-config-preset-vue": "~3.5.3", + "@eslint/eslintrc": "^2.1.4", + "@mutoe/eslint-config": "^2.4.5", "@pinia/testing": "^0.1.3", "@testing-library/cypress": "^10.0.1", "@testing-library/user-event": "^14.5.1", @@ -48,13 +56,5 @@ "vitest": "^1.0.0-beta.5", "vitest-dom": "^0.1.1", "vue-tsc": "^1.8.22" - }, - "lint-staged": { - "src/**/*.{ts,vue,js}": "eslint --fix", - "cypress/**/*.{ts,js}": "eslint --fix" - }, - "simple-git-hooks": { - "pre-commit": "npm exec lint-staged", - "pre-push": "npm run lint && npm run build" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2c3a662..893736f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,24 +10,27 @@ dependencies: version: 2.6.2 marked: specifier: ^11.0.0 - version: 11.0.0 + version: 11.0.1 pinia: specifier: ^2.1.7 - version: 2.1.7(typescript@5.2.2)(vue@3.3.9) + version: 2.1.7(typescript@5.2.2)(vue@3.3.11) vue: specifier: ^3.3.9 - version: 3.3.9(typescript@5.2.2) + version: 3.3.11(typescript@5.2.2) vue-router: specifier: ^4.2.5 - version: 4.2.5(vue@3.3.9) + version: 4.2.5(vue@3.3.11) devDependencies: - '@mutoe/eslint-config-preset-vue': - specifier: ~3.5.3 - version: 3.5.3(eslint@8.54.0)(typescript@5.2.2)(vue@3.3.9) + '@eslint/eslintrc': + specifier: ^2.1.4 + version: 2.1.4 + '@mutoe/eslint-config': + specifier: ^2.4.5 + version: 2.4.5(@vue/compiler-sfc@3.3.11)(eslint-plugin-cypress@2.15.1)(eslint@8.54.0)(typescript@5.2.2)(vitest@1.0.0-beta.5) '@pinia/testing': specifier: ^0.1.3 - version: 0.1.3(pinia@2.1.7)(vue@3.3.9) + version: 0.1.3(pinia@2.1.7)(vue@3.3.11) '@testing-library/cypress': specifier: ^10.0.1 version: 10.0.1(cypress@13.6.0) @@ -36,10 +39,10 @@ devDependencies: version: 14.5.1(@testing-library/dom@9.3.3) '@testing-library/vue': specifier: ^8.0.1 - version: 8.0.1(@vue/compiler-sfc@3.3.8)(vue@3.3.9) + version: 8.0.1(@vue/compiler-sfc@3.3.11)(vue@3.3.11) '@vitejs/plugin-vue': specifier: ^4.5.0 - version: 4.5.0(vite@5.0.2)(vue@3.3.9) + version: 4.5.0(vite@5.0.2)(vue@3.3.11) '@vitest/coverage-v8': specifier: ^1.0.0-beta.5 version: 1.0.0-beta.5(vitest@1.0.0-beta.5) @@ -104,6 +107,17 @@ packages: '@jridgewell/trace-mapping': 0.3.20 dev: true + /@antfu/eslint-define-config@1.23.0-2: + resolution: {integrity: sha512-LvxY21+ZhpuBf/aHeBUtGQhSEfad4PkNKXKvDOSvukaM3XVTfBhwmHX2EKwAsdq5DlfjbT3qqYyMiueBIO5iDQ==} + engines: {node: '>=18.0.0', npm: '>=9.0.0', pnpm: '>= 8.6.0'} + dev: true + + /@antfu/install-pkg@0.3.1: + resolution: {integrity: sha512-A3zWY9VeTPnxlMiZtsGHw2lSd3ghwvL8s9RiGOtqvDxhhFfZ781ynsGBa/iUnDJ5zBrmTFQrJDud3TGgRISaxw==} + dependencies: + execa: 8.0.1 + dev: true + /@babel/code-frame@7.23.4: resolution: {integrity: sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==} engines: {node: '>=6.9.0'} @@ -135,6 +149,14 @@ packages: hasBin: true dependencies: '@babel/types': 7.23.4 + dev: true + + /@babel/parser@7.23.5: + resolution: {integrity: sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.4 /@babel/runtime@7.23.4: resolution: {integrity: sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==} @@ -213,6 +235,15 @@ packages: - supports-color dev: true + /@es-joy/jsdoccomment@0.41.0: + resolution: {integrity: sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==} + engines: {node: '>=16'} + dependencies: + comment-parser: 1.4.1 + esquery: 1.5.0 + jsdoc-type-pratt-parser: 4.0.0 + dev: true + /@esbuild/android-arm64@0.19.7: resolution: {integrity: sha512-YEDcw5IT7hW3sFKZBkCAQaOCJQLONVcD4bOyTXMZz5fr66pTHnAet46XAtbXAkJRfIn2YVhdC6R9g4xa27jQ1w==} engines: {node: '>=12'} @@ -426,8 +457,20 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.3: - resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} + /@eslint-types/jsdoc@46.8.2-1: + resolution: {integrity: sha512-FwD7V0xX0jyaqj8Ul5ZY+TAAPohDfVqtbuXJNHb+OIv1aTIqZi5+Zn3F2UwQ5O3BnQd2mTduyK0+HjGx3/AMFg==} + dev: true + + /@eslint-types/typescript-eslint@6.12.0: + resolution: {integrity: sha512-N8cbOYjyFl2BFgDhDgHhTGpgiMkFg0CoITG5hdBm9ZGmcEgUvFBnHvHG7qJl3qVEmFnoKUdfSAcr7MRb2/Jxvw==} + dev: true + + /@eslint-types/unicorn@49.0.0: + resolution: {integrity: sha512-NfXSZIsPFRD2fwTDZQj8SaXqS/rXjB5foxMraLovyrYGXiQK2y0780drDKYYSVbqvco29QIYoZNmnKTUkzZMvQ==} + dev: true + + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 @@ -542,60 +585,81 @@ packages: strict-event-emitter: 0.5.1 dev: true - /@mutoe/eslint-config-preset-basic@3.5.3(@typescript-eslint/parser@6.12.0)(eslint@8.54.0): - resolution: {integrity: sha512-N+ozE3BR6ltE0fWddWto8ABg4g8W1IVwz2NJfo9dRprLv+RBqvO11naI2CMe4i4nqSvgq99FpO9ouQQtbZcjoA==} + /@mutoe/eslint-config@2.4.5(@vue/compiler-sfc@3.3.11)(eslint-plugin-cypress@2.15.1)(eslint@8.54.0)(typescript@5.2.2)(vitest@1.0.0-beta.5): + resolution: {integrity: sha512-/dLWPFjXPA3UlNDHS3KGRoNrSPEm87vu7V/BLask3kDwWGzWLz6inTCLrenzrvet2YLWF0Esf7nYadO0CVcj+A==} + hasBin: true peerDependencies: - eslint: ^8 + '@unocss/eslint-plugin': '>=0.50.0' + eslint: '>=8.40.0' + eslint-plugin-cypress: '>=2.0.0' + eslint-plugin-format: '>=0.1.0' + eslint-plugin-react: ^7.33.2 + eslint-plugin-react-hooks: ^4.6.0 + eslint-plugin-react-refresh: ^0.4.4 + peerDependenciesMeta: + '@unocss/eslint-plugin': + optional: true + eslint-plugin-cypress: + optional: true + eslint-plugin-format: + optional: true + eslint-plugin-react: + optional: true + eslint-plugin-react-hooks: + optional: true + eslint-plugin-react-refresh: + optional: true dependencies: + '@antfu/eslint-define-config': 1.23.0-2 + '@antfu/install-pkg': 0.3.1 + '@eslint-types/jsdoc': 46.8.2-1 + '@eslint-types/typescript-eslint': 6.12.0 + '@eslint-types/unicorn': 49.0.0 + '@stylistic/eslint-plugin': 1.5.1(eslint@8.54.0)(typescript@5.2.2) + '@typescript-eslint/eslint-plugin': 6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.54.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.13.2(eslint@8.54.0)(typescript@5.2.2) eslint: 8.54.0 - eslint-plugin-html: 7.1.0 - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0) + eslint-config-flat-gitignore: 0.1.2 + eslint-merge-processors: 0.1.0(eslint@8.54.0) + eslint-parser-plain: 0.1.0 + eslint-plugin-antfu: 2.0.0(eslint@8.54.0) + eslint-plugin-cypress: 2.15.1(eslint@8.54.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.54.0) + eslint-plugin-i: 2.29.0(@typescript-eslint/parser@6.13.2)(eslint@8.54.0) + eslint-plugin-jsdoc: 46.9.0(eslint@8.54.0) eslint-plugin-jsonc: 2.10.0(eslint@8.54.0) - eslint-plugin-n: 16.3.1(eslint@8.54.0) - eslint-plugin-promise: 6.1.1(eslint@8.54.0) - eslint-plugin-unicorn: 48.0.1(eslint@8.54.0) - jsonc-eslint-parser: 2.4.0 - transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - dev: true - - /@mutoe/eslint-config-preset-ts@3.5.3(eslint@8.54.0)(typescript@5.2.2): - resolution: {integrity: sha512-rBZ7oTgr4gGys48NVjJ/XrbrYdzaDQCs7QP9ktqeOTI3i88At4ZNAQtwUlRgJ5ULT5hQSsbeTchE1DFDdHwisA==} - peerDependencies: - eslint: ^8 - typescript: '>=3.9' - dependencies: - '@mutoe/eslint-config-preset-basic': 3.5.3(@typescript-eslint/parser@6.12.0)(eslint@8.54.0) - '@typescript-eslint/eslint-plugin': 6.12.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.2.2) - '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.2.2) - eslint: 8.54.0 - typescript: 5.2.2 - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - dev: true - - /@mutoe/eslint-config-preset-vue@3.5.3(eslint@8.54.0)(typescript@5.2.2)(vue@3.3.9): - resolution: {integrity: sha512-7d6RitTXpgKigbq+Dv9Vvbzcy1h+HwQE9Utb73MqOmpfwDpgElCj8x/bERGOQMWBmc+ZJP16/HWbyr2jhLQpgw==} - peerDependencies: - eslint: ^8 - vue: ^3 - dependencies: - '@mutoe/eslint-config-preset-ts': 3.5.3(eslint@8.54.0)(typescript@5.2.2) - eslint: 8.54.0 - eslint-plugin-vue: 9.18.1(eslint@8.54.0) + eslint-plugin-markdown: 3.0.1(eslint@8.54.0) + eslint-plugin-n: 16.4.0(eslint@8.54.0) + eslint-plugin-no-only-tests: 3.1.0 + eslint-plugin-perfectionist: 2.5.0(eslint@8.54.0)(typescript@5.2.2)(vue-eslint-parser@9.3.2) + eslint-plugin-toml: 0.7.1(eslint@8.54.0) + eslint-plugin-unicorn: 49.0.0(eslint@8.54.0) + eslint-plugin-unused-imports: 3.0.0(@typescript-eslint/eslint-plugin@6.13.2)(eslint@8.54.0) + eslint-plugin-vitest: 0.3.15(@typescript-eslint/eslint-plugin@6.13.2)(eslint@8.54.0)(typescript@5.2.2)(vitest@1.0.0-beta.5) + eslint-plugin-vue: 9.19.2(eslint@8.54.0) eslint-plugin-vuejs-accessibility: 2.2.0(eslint@8.54.0) - vue: 3.3.9(typescript@5.2.2) + eslint-plugin-yml: 1.10.0(eslint@8.54.0) + eslint-processor-vue-blocks: 0.1.1(@vue/compiler-sfc@3.3.11)(eslint@8.54.0) + globals: 13.24.0 + jsonc-eslint-parser: 2.4.0 + local-pkg: 0.5.0 + parse-gitignore: 2.0.0 + picocolors: 1.0.0 + prompts: 2.4.2 + toml-eslint-parser: 0.9.3 vue-eslint-parser: 9.3.2(eslint@8.54.0) + yaml-eslint-parser: 1.2.2 + yargs: 17.7.2 transitivePeerDependencies: + - '@vue/compiler-sfc' + - astro-eslint-parser - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color + - svelte + - svelte-eslint-parser - typescript + - vitest dev: true /@nodelib/fs.scandir@2.1.5: @@ -638,13 +702,13 @@ packages: resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} dev: true - /@pinia/testing@0.1.3(pinia@2.1.7)(vue@3.3.9): + /@pinia/testing@0.1.3(pinia@2.1.7)(vue@3.3.11): resolution: {integrity: sha512-D2Ds2s69kKFaRf2KCcP1NhNZEg5+we59aRyQalwRm7ygWfLM25nDH66267U3hNvRUOTx8ofL24GzodZkOmB5xw==} peerDependencies: pinia: '>=2.1.5' dependencies: - pinia: 2.1.7(typescript@5.2.2)(vue@3.3.9) - vue-demi: 0.14.6(vue@3.3.9) + pinia: 2.1.7(typescript@5.2.2)(vue@3.3.11) + vue-demi: 0.14.6(vue@3.3.11) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -762,6 +826,72 @@ packages: engines: {node: '>=10'} dev: true + /@stylistic/eslint-plugin-js@1.5.1(eslint@8.54.0): + resolution: {integrity: sha512-iZF0rF+uOhAmOJYOJx1Yvmm3CZ1uz9n0SRd9dpBYHA3QAvfABUORh9LADWwZCigjHJkp2QbCZelGFJGwGz7Siw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: '>=8.40.0' + dependencies: + acorn: 8.11.2 + escape-string-regexp: 4.0.0 + eslint: 8.54.0 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + dev: true + + /@stylistic/eslint-plugin-jsx@1.5.1(eslint@8.54.0): + resolution: {integrity: sha512-JuX+jsbVdpZ6EZXkbxYr9ERcGc0ndSMFgOuwEPHhOWPZ+7F8JP/nzpBjrRf7dUPMX7ezTYLZ2a3KRGRNme6rWQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: '>=8.40.0' + dependencies: + '@stylistic/eslint-plugin-js': 1.5.1(eslint@8.54.0) + eslint: 8.54.0 + estraverse: 5.3.0 + dev: true + + /@stylistic/eslint-plugin-plus@1.5.1(eslint@8.54.0)(typescript@5.2.2): + resolution: {integrity: sha512-yxkFHsUgoqEf/j1Og0FGkpEmeQoqx0CMmtgoyZGr34hka0ElCy9fRpsFkLcwx60SfiHXspbvs2YUMXiWIffnjg==} + peerDependencies: + eslint: '*' + dependencies: + '@typescript-eslint/utils': 6.13.2(eslint@8.54.0)(typescript@5.2.2) + eslint: 8.54.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@stylistic/eslint-plugin-ts@1.5.1(eslint@8.54.0)(typescript@5.2.2): + resolution: {integrity: sha512-oXM1V7Jp8G9+udxQTy+Igo79LR2e5HXiWqlA/3v+/PAqWxniR9nJqJSBjtQKJTPsGplDqn/ASpHUOETP4EI/4A==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: '>=8.40.0' + dependencies: + '@stylistic/eslint-plugin-js': 1.5.1(eslint@8.54.0) + '@typescript-eslint/utils': 6.13.2(eslint@8.54.0)(typescript@5.2.2) + eslint: 8.54.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@stylistic/eslint-plugin@1.5.1(eslint@8.54.0)(typescript@5.2.2): + resolution: {integrity: sha512-y7ynUMh5Hq1MhYApAccl1iuQem5Sf2JSEIjV/qsBfmW1WfRDs74V+0kLkcOn1Y600W3t8orIFrrEuWmJSetAgw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: '>=8.40.0' + dependencies: + '@stylistic/eslint-plugin-js': 1.5.1(eslint@8.54.0) + '@stylistic/eslint-plugin-jsx': 1.5.1(eslint@8.54.0) + '@stylistic/eslint-plugin-plus': 1.5.1(eslint@8.54.0)(typescript@5.2.2) + '@stylistic/eslint-plugin-ts': 1.5.1(eslint@8.54.0)(typescript@5.2.2) + eslint: 8.54.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + /@testing-library/cypress@10.0.1(cypress@13.6.0): resolution: {integrity: sha512-e8uswjTZIBhaIXjzEcrQQ8nHRWHgZH7XBxKuIWxZ/T7FxfWhCR48nFhUX5nfPizjVOKSThEfOSv67jquc1ASkw==} engines: {node: '>=12', npm: '>=6'} @@ -796,7 +926,7 @@ packages: '@testing-library/dom': 9.3.3 dev: true - /@testing-library/vue@8.0.1(@vue/compiler-sfc@3.3.8)(vue@3.3.9): + /@testing-library/vue@8.0.1(@vue/compiler-sfc@3.3.11)(vue@3.3.11): resolution: {integrity: sha512-l51ZEpjTQ6glq3wM+asQ1GbKJMGcxwgHEygETx0aCRN4TjFEGvMZy4YdWKs/y7bu4bmLrxcxhbEPP7iPSW/2OQ==} engines: {node: '>=14'} peerDependencies: @@ -805,9 +935,9 @@ packages: dependencies: '@babel/runtime': 7.23.4 '@testing-library/dom': 9.3.3 - '@vue/compiler-sfc': 3.3.8 - '@vue/test-utils': 2.4.2(vue@3.3.9) - vue: 3.3.9(typescript@5.2.2) + '@vue/compiler-sfc': 3.3.11 + '@vue/test-utils': 2.4.2(vue@3.3.11) + vue: 3.3.11(typescript@5.2.2) transitivePeerDependencies: - '@vue/server-renderer' dev: true @@ -832,8 +962,10 @@ packages: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} dev: true - /@types/json5@0.0.29: - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + /@types/mdast@3.0.15: + resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} + dependencies: + '@types/unist': 2.0.10 dev: true /@types/node@18.18.13: @@ -866,6 +998,10 @@ packages: resolution: {integrity: sha512-7yQiX6MWSFSvc/1wW5smJMZTZ4fHOd+hqLr3qr/HONDxHEa2bnYAsOcGBOEqFIjd4yetwMOdEDdeW+udRAQnHA==} dev: true + /@types/unist@2.0.10: + resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} + dev: true + /@types/yauzl@2.10.3: resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} requiresBuild: true @@ -874,8 +1010,8 @@ packages: dev: true optional: true - /@typescript-eslint/eslint-plugin@6.12.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.2.2): - resolution: {integrity: sha512-XOpZ3IyJUIV1b15M7HVOpgQxPPF7lGXgsfcEIu3yDxFPaf/xZKt7s9QO/pbk7vpWQyVulpJbu4E5LwpZiQo4kA==} + /@typescript-eslint/eslint-plugin@6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.54.0)(typescript@5.2.2): + resolution: {integrity: sha512-3+9OGAWHhk4O1LlcwLBONbdXsAhLjyCFogJY/cWy2lxdVJ2JrcTF2pTGMaLl2AE7U1l31n8Py4a8bx5DLf/0dQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -886,11 +1022,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.2.2) - '@typescript-eslint/scope-manager': 6.12.0 - '@typescript-eslint/type-utils': 6.12.0(eslint@8.54.0)(typescript@5.2.2) - '@typescript-eslint/utils': 6.12.0(eslint@8.54.0)(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.12.0 + '@typescript-eslint/parser': 6.13.2(eslint@8.54.0)(typescript@5.2.2) + '@typescript-eslint/scope-manager': 6.13.2 + '@typescript-eslint/type-utils': 6.13.2(eslint@8.54.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.13.2(eslint@8.54.0)(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.13.2 debug: 4.3.4(supports-color@8.1.1) eslint: 8.54.0 graphemer: 1.4.0 @@ -903,8 +1039,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.12.0(eslint@8.54.0)(typescript@5.2.2): - resolution: {integrity: sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg==} + /@typescript-eslint/parser@6.13.2(eslint@8.54.0)(typescript@5.2.2): + resolution: {integrity: sha512-MUkcC+7Wt/QOGeVlM8aGGJZy1XV5YKjTpq9jK6r6/iLsGXhBVaGP5N0UYvFsu9BFlSpwY9kMretzdBH01rkRXg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -913,10 +1049,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.12.0 - '@typescript-eslint/types': 6.12.0 - '@typescript-eslint/typescript-estree': 6.12.0(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.12.0 + '@typescript-eslint/scope-manager': 6.13.2 + '@typescript-eslint/types': 6.13.2 + '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.13.2 debug: 4.3.4(supports-color@8.1.1) eslint: 8.54.0 typescript: 5.2.2 @@ -924,16 +1060,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@6.12.0: - resolution: {integrity: sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw==} + /@typescript-eslint/scope-manager@6.13.2: + resolution: {integrity: sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.12.0 - '@typescript-eslint/visitor-keys': 6.12.0 + '@typescript-eslint/types': 6.13.2 + '@typescript-eslint/visitor-keys': 6.13.2 dev: true - /@typescript-eslint/type-utils@6.12.0(eslint@8.54.0)(typescript@5.2.2): - resolution: {integrity: sha512-WWmRXxhm1X8Wlquj+MhsAG4dU/Blvf1xDgGaYCzfvStP2NwPQh6KBvCDbiOEvaE0filhranjIlK/2fSTVwtBng==} + /@typescript-eslint/type-utils@6.13.2(eslint@8.54.0)(typescript@5.2.2): + resolution: {integrity: sha512-Qr6ssS1GFongzH2qfnWKkAQmMUyZSyOr0W54nZNU1MDfo+U4Mv3XveeLZzadc/yq8iYhQZHYT+eoXJqnACM1tw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -942,8 +1078,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.12.0(typescript@5.2.2) - '@typescript-eslint/utils': 6.12.0(eslint@8.54.0)(typescript@5.2.2) + '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.2.2) + '@typescript-eslint/utils': 6.13.2(eslint@8.54.0)(typescript@5.2.2) debug: 4.3.4(supports-color@8.1.1) eslint: 8.54.0 ts-api-utils: 1.0.3(typescript@5.2.2) @@ -952,13 +1088,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types@6.12.0: - resolution: {integrity: sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q==} + /@typescript-eslint/types@6.13.2: + resolution: {integrity: sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.12.0(typescript@5.2.2): - resolution: {integrity: sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw==} + /@typescript-eslint/typescript-estree@6.13.2(typescript@5.2.2): + resolution: {integrity: sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -966,8 +1102,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.12.0 - '@typescript-eslint/visitor-keys': 6.12.0 + '@typescript-eslint/types': 6.13.2 + '@typescript-eslint/visitor-keys': 6.13.2 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 @@ -978,8 +1114,8 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.12.0(eslint@8.54.0)(typescript@5.2.2): - resolution: {integrity: sha512-LywPm8h3tGEbgfyjYnu3dauZ0U7R60m+miXgKcZS8c7QALO9uWJdvNoP+duKTk2XMWc7/Q3d/QiCuLN9X6SWyQ==} + /@typescript-eslint/utils@6.13.2(eslint@8.54.0)(typescript@5.2.2): + resolution: {integrity: sha512-b9Ptq4eAZUym4idijCRzl61oPCwwREcfDI8xGk751Vhzig5fFZR9CyzDz4Sp/nxSLBYxUPyh4QdIDqWykFhNmQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -987,9 +1123,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.12.0 - '@typescript-eslint/types': 6.12.0 - '@typescript-eslint/typescript-estree': 6.12.0(typescript@5.2.2) + '@typescript-eslint/scope-manager': 6.13.2 + '@typescript-eslint/types': 6.13.2 + '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.2.2) eslint: 8.54.0 semver: 7.5.4 transitivePeerDependencies: @@ -997,11 +1133,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@6.12.0: - resolution: {integrity: sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw==} + /@typescript-eslint/visitor-keys@6.13.2: + resolution: {integrity: sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.12.0 + '@typescript-eslint/types': 6.13.2 eslint-visitor-keys: 3.4.3 dev: true @@ -1009,7 +1145,7 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /@vitejs/plugin-vue@4.5.0(vite@5.0.2)(vue@3.3.9): + /@vitejs/plugin-vue@4.5.0(vite@5.0.2)(vue@3.3.11): resolution: {integrity: sha512-a2WSpP8X8HTEww/U00bU4mX1QpLINNuz/2KMNpLsdu3BzOpak3AGI1CJYBTXcc4SPhaD0eNRUp7IyQK405L5dQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -1017,7 +1153,7 @@ packages: vue: ^3.2.25 dependencies: vite: 5.0.2 - vue: 3.3.9(typescript@5.2.2) + vue: 3.3.11(typescript@5.2.2) dev: true /@vitest/coverage-v8@1.0.0-beta.5(vitest@1.0.0-beta.5): @@ -1099,6 +1235,14 @@ packages: path-browserify: 1.0.1 dev: true + /@vue/compiler-core@3.3.11: + resolution: {integrity: sha512-h97/TGWBilnLuRaj58sxNrsUU66fwdRKLOLQ9N/5iNDfp+DZhYH9Obhe0bXxhedl8fjAgpRANpiZfbgWyruQ0w==} + dependencies: + '@babel/parser': 7.23.5 + '@vue/shared': 3.3.11 + estree-walker: 2.0.2 + source-map-js: 1.0.2 + /@vue/compiler-core@3.3.8: resolution: {integrity: sha512-hN/NNBUECw8SusQvDSqqcVv6gWq8L6iAktUR0UF3vGu2OhzRqcOiAno0FmBJWwxhYEXRlQJT5XnoKsVq1WZx4g==} dependencies: @@ -1108,13 +1252,11 @@ packages: source-map-js: 1.0.2 dev: true - /@vue/compiler-core@3.3.9: - resolution: {integrity: sha512-+/Lf68Vr/nFBA6ol4xOtJrW+BQWv3QWKfRwGSm70jtXwfhZNF4R/eRgyVJYoxFRhdCTk/F6g99BP0ffPgZihfQ==} + /@vue/compiler-dom@3.3.11: + resolution: {integrity: sha512-zoAiUIqSKqAJ81WhfPXYmFGwDRuO+loqLxvXmfUdR5fOitPoUiIeFI9cTTyv9MU5O1+ZZglJVTusWzy+wfk5hw==} dependencies: - '@babel/parser': 7.23.4 - '@vue/shared': 3.3.9 - estree-walker: 2.0.2 - source-map-js: 1.0.2 + '@vue/compiler-core': 3.3.11 + '@vue/shared': 3.3.11 /@vue/compiler-dom@3.3.8: resolution: {integrity: sha512-+PPtv+p/nWDd0AvJu3w8HS0RIm/C6VGBIRe24b9hSyNWOAPEUosFZ5diwawwP8ip5sJ8n0Pe87TNNNHnvjs0FQ==} @@ -1123,53 +1265,25 @@ packages: '@vue/shared': 3.3.8 dev: true - /@vue/compiler-dom@3.3.9: - resolution: {integrity: sha512-nfWubTtLXuT4iBeDSZ5J3m218MjOy42Vp2pmKVuBKo2/BLcrFUX8nCSr/bKRFiJ32R8qbdnnnBgRn9AdU5v0Sg==} + /@vue/compiler-sfc@3.3.11: + resolution: {integrity: sha512-U4iqPlHO0KQeK1mrsxCN0vZzw43/lL8POxgpzcJweopmqtoYy9nljJzWDIQS3EfjiYhfdtdk9Gtgz7MRXnz3GA==} dependencies: - '@vue/compiler-core': 3.3.9 - '@vue/shared': 3.3.9 - - /@vue/compiler-sfc@3.3.8: - resolution: {integrity: sha512-WMzbUrlTjfYF8joyT84HfwwXo+8WPALuPxhy+BZ6R4Aafls+jDBnSz8PDz60uFhuqFbl3HxRfxvDzrUf3THwpA==} - dependencies: - '@babel/parser': 7.23.4 - '@vue/compiler-core': 3.3.8 - '@vue/compiler-dom': 3.3.8 - '@vue/compiler-ssr': 3.3.8 - '@vue/reactivity-transform': 3.3.8 - '@vue/shared': 3.3.8 + '@babel/parser': 7.23.5 + '@vue/compiler-core': 3.3.11 + '@vue/compiler-dom': 3.3.11 + '@vue/compiler-ssr': 3.3.11 + '@vue/reactivity-transform': 3.3.11 + '@vue/shared': 3.3.11 estree-walker: 2.0.2 magic-string: 0.30.5 - postcss: 8.4.31 - source-map-js: 1.0.2 - dev: true - - /@vue/compiler-sfc@3.3.9: - resolution: {integrity: sha512-wy0CNc8z4ihoDzjASCOCsQuzW0A/HP27+0MDSSICMjVIFzk/rFViezkR3dzH+miS2NDEz8ywMdbjO5ylhOLI2A==} - dependencies: - '@babel/parser': 7.23.4 - '@vue/compiler-core': 3.3.9 - '@vue/compiler-dom': 3.3.9 - '@vue/compiler-ssr': 3.3.9 - '@vue/reactivity-transform': 3.3.9 - '@vue/shared': 3.3.9 - estree-walker: 2.0.2 - magic-string: 0.30.5 - postcss: 8.4.31 + postcss: 8.4.32 source-map-js: 1.0.2 - /@vue/compiler-ssr@3.3.8: - resolution: {integrity: sha512-hXCqQL/15kMVDBuoBYpUnSYT8doDNwsjvm3jTefnXr+ytn294ySnT8NlsFHmTgKNjwpuFy7XVV8yTeLtNl/P6w==} + /@vue/compiler-ssr@3.3.11: + resolution: {integrity: sha512-Zd66ZwMvndxRTgVPdo+muV4Rv9n9DwQ4SSgWWKWkPFebHQfVYRrVjeygmmDmPewsHyznCNvJ2P2d6iOOhdv8Qg==} dependencies: - '@vue/compiler-dom': 3.3.8 - '@vue/shared': 3.3.8 - dev: true - - /@vue/compiler-ssr@3.3.9: - resolution: {integrity: sha512-NO5oobAw78R0G4SODY5A502MGnDNiDjf6qvhn7zD7TJGc8XDeIEw4fg6JU705jZ/YhuokBKz0A5a/FL/XZU73g==} - dependencies: - '@vue/compiler-dom': 3.3.9 - '@vue/shared': 3.3.9 + '@vue/compiler-dom': 3.3.11 + '@vue/shared': 3.3.11 /@vue/devtools-api@6.5.1: resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==} @@ -1193,60 +1307,50 @@ packages: vue-template-compiler: 2.7.15 dev: true - /@vue/reactivity-transform@3.3.8: - resolution: {integrity: sha512-49CvBzmZNtcHua0XJ7GdGifM8GOXoUMOX4dD40Y5DxI3R8OUhMlvf2nvgUAcPxaXiV5MQQ1Nwy09ADpnLQUqRw==} + /@vue/reactivity-transform@3.3.11: + resolution: {integrity: sha512-fPGjH0wqJo68A0wQ1k158utDq/cRyZNlFoxGwNScE28aUFOKFEnCBsvyD8jHn+0kd0UKVpuGuaZEQ6r9FJRqCg==} dependencies: - '@babel/parser': 7.23.4 - '@vue/compiler-core': 3.3.8 - '@vue/shared': 3.3.8 - estree-walker: 2.0.2 - magic-string: 0.30.5 - dev: true - - /@vue/reactivity-transform@3.3.9: - resolution: {integrity: sha512-HnUFm7Ry6dFa4Lp63DAxTixUp8opMtQr6RxQCpDI1vlh12rkGIeYqMvJtK+IKyEfEOa2I9oCkD1mmsPdaGpdVg==} - dependencies: - '@babel/parser': 7.23.4 - '@vue/compiler-core': 3.3.9 - '@vue/shared': 3.3.9 + '@babel/parser': 7.23.5 + '@vue/compiler-core': 3.3.11 + '@vue/shared': 3.3.11 estree-walker: 2.0.2 magic-string: 0.30.5 - /@vue/reactivity@3.3.9: - resolution: {integrity: sha512-VmpIqlNp+aYDg2X0xQhJqHx9YguOmz2UxuUJDckBdQCNkipJvfk9yA75woLWElCa0Jtyec3lAAt49GO0izsphw==} + /@vue/reactivity@3.3.11: + resolution: {integrity: sha512-D5tcw091f0nuu+hXq5XANofD0OXnBmaRqMYl5B3fCR+mX+cXJIGNw/VNawBqkjLNWETrFW0i+xH9NvDbTPVh7g==} dependencies: - '@vue/shared': 3.3.9 + '@vue/shared': 3.3.11 - /@vue/runtime-core@3.3.9: - resolution: {integrity: sha512-xxaG9KvPm3GTRuM4ZyU8Tc+pMVzcu6eeoSRQJ9IE7NmCcClW6z4B3Ij6L4EDl80sxe/arTtQ6YmgiO4UZqRc+w==} + /@vue/runtime-core@3.3.11: + resolution: {integrity: sha512-g9ztHGwEbS5RyWaOpXuyIVFTschclnwhqEbdy5AwGhYOgc7m/q3NFwr50MirZwTTzX55JY8pSkeib9BX04NIpw==} dependencies: - '@vue/reactivity': 3.3.9 - '@vue/shared': 3.3.9 + '@vue/reactivity': 3.3.11 + '@vue/shared': 3.3.11 - /@vue/runtime-dom@3.3.9: - resolution: {integrity: sha512-e7LIfcxYSWbV6BK1wQv9qJyxprC75EvSqF/kQKe6bdZEDNValzeRXEVgiX7AHI6hZ59HA4h7WT5CGvm69vzJTQ==} + /@vue/runtime-dom@3.3.11: + resolution: {integrity: sha512-OlhtV1PVpbgk+I2zl+Y5rQtDNcCDs12rsRg71XwaA2/Rbllw6mBLMi57VOn8G0AjOJ4Mdb4k56V37+g8ukShpQ==} dependencies: - '@vue/runtime-core': 3.3.9 - '@vue/shared': 3.3.9 + '@vue/runtime-core': 3.3.11 + '@vue/shared': 3.3.11 csstype: 3.1.2 - /@vue/server-renderer@3.3.9(vue@3.3.9): - resolution: {integrity: sha512-w0zT/s5l3Oa3ZjtLW88eO4uV6AQFqU8X5GOgzq7SkQQu6vVr+8tfm+OI2kDBplS/W/XgCBuFXiPw6T5EdwXP0A==} + /@vue/server-renderer@3.3.11(vue@3.3.11): + resolution: {integrity: sha512-AIWk0VwwxCAm4wqtJyxBylRTXSy1wCLOKbWxHaHiu14wjsNYtiRCSgVuqEPVuDpErOlRdNnuRgipQfXRLjLN5A==} peerDependencies: - vue: 3.3.9 + vue: 3.3.11 dependencies: - '@vue/compiler-ssr': 3.3.9 - '@vue/shared': 3.3.9 - vue: 3.3.9(typescript@5.2.2) + '@vue/compiler-ssr': 3.3.11 + '@vue/shared': 3.3.11 + vue: 3.3.11(typescript@5.2.2) + + /@vue/shared@3.3.11: + resolution: {integrity: sha512-u2G8ZQ9IhMWTMXaWqZycnK4UthG1fA238CD+DP4Dm4WJi5hdUKKLg0RMRaRpDPNMdkTwIDkp7WtD0Rd9BH9fLw==} /@vue/shared@3.3.8: resolution: {integrity: sha512-8PGwybFwM4x8pcfgqEQFy70NaQxASvOC5DJwLQfpArw1UDfUXrJkdxD3BhVTMS+0Lef/TU7YO0Jvr0jJY8T+mw==} dev: true - /@vue/shared@3.3.9: - resolution: {integrity: sha512-ZE0VTIR0LmYgeyhurPTpy4KzKsuDyQbMSdM49eKkMnT5X4VfFBLysMzjIZhLEFQYjjOVVfbvUDHckwjDFiO2eA==} - - /@vue/test-utils@2.4.2(vue@3.3.9): + /@vue/test-utils@2.4.2(vue@3.3.11): resolution: {integrity: sha512-07lLjpG1o9tEBoWQfVOFhDT7+WFCdDeECoeSdzOuVgIi6nxb2JDLGNNOV6+3crPpyg/jMlIocj96UROcgomiGg==} peerDependencies: '@vue/server-renderer': ^3.0.1 @@ -1256,7 +1360,7 @@ packages: optional: true dependencies: js-beautify: 1.14.11 - vue: 3.3.9(typescript@5.2.2) + vue: 3.3.11(typescript@5.2.2) vue-component-type-helpers: 1.8.22 dev: true @@ -1366,6 +1470,11 @@ packages: resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} dev: true + /are-docs-informative@0.0.2: + resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} + engines: {node: '>=14'} + dev: true + /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true @@ -1389,66 +1498,11 @@ packages: is-array-buffer: 3.0.2 dev: true - /array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - is-string: 1.0.7 - dev: true - /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} dev: true - /array.prototype.findlastindex@1.2.3: - resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - es-shim-unscopables: 1.0.2 - get-intrinsic: 1.2.2 - dev: true - - /array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - es-shim-unscopables: 1.0.2 - dev: true - - /array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - es-shim-unscopables: 1.0.2 - dev: true - - /arraybuffer.prototype.slice@1.0.2: - resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} - engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.0 - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - is-array-buffer: 3.0.2 - is-shared-array-buffer: 1.0.2 - dev: true - /asn1@0.2.6: resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} dependencies: @@ -1651,6 +1705,18 @@ packages: engines: {node: '>=10'} dev: true + /character-entities-legacy@1.1.4: + resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} + dev: true + + /character-entities@1.2.4: + resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} + dev: true + + /character-reference-invalid@1.1.4: + resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} + dev: true + /chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: true @@ -1808,6 +1874,11 @@ packages: engines: {node: '>= 6'} dev: true + /comment-parser@1.4.1: + resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} + engines: {node: '>= 12.0.0'} + dev: true + /common-tags@1.8.2: resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} engines: {node: '>=4.0.0'} @@ -2099,33 +2170,6 @@ packages: resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} dev: true - /dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - entities: 4.5.0 - dev: true - - /domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - dev: true - - /domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} - dependencies: - domelementtype: 2.3.0 - dev: true - - /domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} - dependencies: - dom-serializer: 2.0.0 - domelementtype: 2.3.0 - domhandler: 5.0.3 - dev: true - /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true @@ -2189,51 +2233,6 @@ packages: is-arrayish: 0.2.1 dev: true - /es-abstract@1.22.3: - resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} - engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.0 - arraybuffer.prototype.slice: 1.0.2 - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - es-set-tostringtag: 2.0.2 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.6 - get-intrinsic: 1.2.2 - get-symbol-description: 1.0.0 - globalthis: 1.0.3 - gopd: 1.0.1 - has-property-descriptors: 1.0.1 - has-proto: 1.0.1 - has-symbols: 1.0.3 - hasown: 2.0.0 - internal-slot: 1.0.6 - is-array-buffer: 3.0.2 - is-callable: 1.2.7 - is-negative-zero: 2.0.2 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - is-string: 1.0.7 - is-typed-array: 1.1.12 - is-weakref: 1.0.2 - object-inspect: 1.13.1 - object-keys: 1.1.1 - object.assign: 4.1.4 - regexp.prototype.flags: 1.5.1 - safe-array-concat: 1.0.1 - safe-regex-test: 1.0.0 - string.prototype.trim: 1.2.8 - string.prototype.trimend: 1.0.7 - string.prototype.trimstart: 1.0.7 - typed-array-buffer: 1.0.0 - typed-array-byte-length: 1.0.0 - typed-array-byte-offset: 1.0.0 - typed-array-length: 1.0.4 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.13 - dev: true - /es-get-iterator@1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} dependencies: @@ -2248,30 +2247,6 @@ packages: stop-iteration-iterator: 1.0.0 dev: true - /es-set-tostringtag@2.0.2: - resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.2 - has-tostringtag: 1.0.0 - hasown: 2.0.0 - dev: true - - /es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} - dependencies: - hasown: 2.0.0 - dev: true - - /es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} - dependencies: - is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 - dev: true - /es6-promise@3.3.1: resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} dev: true @@ -2330,6 +2305,12 @@ packages: eslint: 8.54.0 dev: true + /eslint-config-flat-gitignore@0.1.2: + resolution: {integrity: sha512-PcBsqtd5QHEZH4ROvpnRN4EP0qcHh9voCCHgtyHxnJZHGspJREcZn7oPqRG/GfWt9m3C0fkC2l5CuBtMig2wXQ==} + dependencies: + parse-gitignore: 2.0.0 + dev: true + /eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: @@ -2340,7 +2321,15 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.12.0)(eslint-import-resolver-node@0.3.9)(eslint@8.54.0): + /eslint-merge-processors@0.1.0(eslint@8.54.0): + resolution: {integrity: sha512-IvRXXtEajLeyssvW4wJcZ2etxkR9mUf4zpNwgI+m/Uac9RfXHskuJefkHUcawVzePnd6xp24enp5jfgdHzjRdQ==} + peerDependencies: + eslint: '*' + dependencies: + eslint: 8.54.0 + dev: true + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint@8.54.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -2361,7 +2350,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.13.2(eslint@8.54.0)(typescript@5.2.2) debug: 3.2.7(supports-color@8.1.1) eslint: 8.54.0 eslint-import-resolver-node: 0.3.9 @@ -2369,6 +2358,18 @@ packages: - supports-color dev: true + /eslint-parser-plain@0.1.0: + resolution: {integrity: sha512-oOeA6FWU0UJT/Rxc3XF5Cq0nbIZbylm7j8+plqq0CZoE6m4u32OXJrR+9iy4srGMmF6v6pmgvP1zPxSRIGh3sg==} + dev: true + + /eslint-plugin-antfu@2.0.0(eslint@8.54.0): + resolution: {integrity: sha512-jbJqri3bDxZ3Eel//ncXI3NXRNYbY0ckckmaWxk4I+nxR5PorOVyLHu/QL69UaPI7qvqAlI0B9GmlAA3hypoHQ==} + peerDependencies: + eslint: '*' + dependencies: + eslint: 8.54.0 + dev: true + /eslint-plugin-cypress@2.15.1(eslint@8.54.0): resolution: {integrity: sha512-eLHLWP5Q+I4j2AWepYq0PgFEei9/s5LvjuSqWrxurkg1YZ8ltxdvMNmdSf0drnsNo57CTgYY/NIHHLRSWejR7w==} peerDependencies: @@ -2378,8 +2379,8 @@ packages: globals: 13.23.0 dev: true - /eslint-plugin-es-x@7.4.0(eslint@8.54.0): - resolution: {integrity: sha512-WJa3RhYzBtl8I37ebY9p76s61UhZyi4KaFOnX2A5r32RPazkXj5yoT6PGnD02dhwzEUj0KwsUdqfKDd/OuvGsw==} + /eslint-plugin-es-x@7.5.0(eslint@8.54.0): + resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' @@ -2390,47 +2391,60 @@ packages: eslint-compat-utils: 0.1.2(eslint@8.54.0) dev: true - /eslint-plugin-html@7.1.0: - resolution: {integrity: sha512-fNLRraV/e6j8e3XYOC9xgND4j+U7b1Rq+OygMlLcMg+wI/IpVbF+ubQa3R78EjKB9njT6TQOlcK5rFKBVVtdfg==} + /eslint-plugin-eslint-comments@3.2.0(eslint@8.54.0): + resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} + engines: {node: '>=6.5.0'} + peerDependencies: + eslint: '>=4.19.1' dependencies: - htmlparser2: 8.0.2 + escape-string-regexp: 1.0.5 + eslint: 8.54.0 + ignore: 5.3.0 dev: true - /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0): - resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} - engines: {node: '>=4'} + /eslint-plugin-i@2.29.0(@typescript-eslint/parser@6.13.2)(eslint@8.54.0): + resolution: {integrity: sha512-slGeTS3GQzx9267wLJnNYNO8X9EHGsc75AKIAFvnvMYEcTJKotPKL1Ru5PIGVHIVet+2DsugePWp8Oxpx8G22w==} + engines: {node: '>=12'} peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true + eslint: ^7.2.0 || ^8 dependencies: - '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.2.2) - array-includes: 3.1.7 - array.prototype.findlastindex: 1.2.3 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 debug: 3.2.7(supports-color@8.1.1) doctrine: 2.1.0 eslint: 8.54.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.12.0)(eslint-import-resolver-node@0.3.9)(eslint@8.54.0) - hasown: 2.0.0 - is-core-module: 2.13.1 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint@8.54.0) + get-tsconfig: 4.7.2 is-glob: 4.0.3 minimatch: 3.1.2 - object.fromentries: 2.0.7 - object.groupby: 1.0.1 - object.values: 1.1.7 - semver: 6.3.1 - tsconfig-paths: 3.14.2 + resolve: 1.22.8 + semver: 7.5.4 transitivePeerDependencies: + - '@typescript-eslint/parser' - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color dev: true + /eslint-plugin-jsdoc@46.9.0(eslint@8.54.0): + resolution: {integrity: sha512-UQuEtbqLNkPf5Nr/6PPRCtr9xypXY+g8y/Q7gPa0YK7eDhh0y2lWprXRnaYbW7ACgIUvpDKy9X2bZqxtGzBG9Q==} + engines: {node: '>=16'} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@es-joy/jsdoccomment': 0.41.0 + are-docs-informative: 0.0.2 + comment-parser: 1.4.1 + debug: 4.3.4(supports-color@8.1.1) + escape-string-regexp: 4.0.0 + eslint: 8.54.0 + esquery: 1.5.0 + is-builtin-module: 3.2.1 + semver: 7.5.4 + spdx-expression-parse: 3.0.1 + transitivePeerDependencies: + - supports-color + dev: true + /eslint-plugin-jsonc@2.10.0(eslint@8.54.0): resolution: {integrity: sha512-9d//o6Jyh4s1RxC9fNSt1+MMaFN2ruFdXPG9XZcb/mR2KkfjADYiNL/hbU6W0Cyxfg3tS/XSFuhl5LgtMD8hmw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2444,8 +2458,20 @@ packages: natural-compare: 1.4.0 dev: true - /eslint-plugin-n@16.3.1(eslint@8.54.0): - resolution: {integrity: sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw==} + /eslint-plugin-markdown@3.0.1(eslint@8.54.0): + resolution: {integrity: sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + eslint: 8.54.0 + mdast-util-from-markdown: 0.8.5 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-n@16.4.0(eslint@8.54.0): + resolution: {integrity: sha512-IkqJjGoWYGskVaJA7WQuN8PINIxc0N/Pk/jLeYT4ees6Fo5lAhpwGsYek6gS9tCUxgDC4zJ+OwY2bY/6/9OMKQ==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' @@ -2453,7 +2479,7 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) builtins: 5.0.1 eslint: 8.54.0 - eslint-plugin-es-x: 7.4.0(eslint@8.54.0) + eslint-plugin-es-x: 7.5.0(eslint@8.54.0) get-tsconfig: 4.7.2 ignore: 5.3.0 is-builtin-module: 3.2.1 @@ -2463,20 +2489,59 @@ packages: semver: 7.5.4 dev: true - /eslint-plugin-promise@6.1.1(eslint@8.54.0): - resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - dependencies: - eslint: 8.54.0 + /eslint-plugin-no-only-tests@3.1.0: + resolution: {integrity: sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==} + engines: {node: '>=5.0.0'} dev: true - /eslint-plugin-unicorn@48.0.1(eslint@8.54.0): - resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==} + /eslint-plugin-perfectionist@2.5.0(eslint@8.54.0)(typescript@5.2.2)(vue-eslint-parser@9.3.2): + resolution: {integrity: sha512-F6XXcq4mKKUe/SREoMGQqzgw6cgCgf3pFzkFfQVIGtqD1yXVpQjnhTepzhBeZfxZwgMzR9HO4yH4CUhIQ2WBcQ==} + peerDependencies: + astro-eslint-parser: ^0.16.0 + eslint: '>=8.0.0' + svelte: '>=3.0.0' + svelte-eslint-parser: ^0.33.0 + vue-eslint-parser: '>=9.0.0' + peerDependenciesMeta: + astro-eslint-parser: + optional: true + svelte: + optional: true + svelte-eslint-parser: + optional: true + vue-eslint-parser: + optional: true + dependencies: + '@typescript-eslint/utils': 6.13.2(eslint@8.54.0)(typescript@5.2.2) + eslint: 8.54.0 + minimatch: 9.0.3 + natural-compare-lite: 1.4.0 + vue-eslint-parser: 9.3.2(eslint@8.54.0) + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /eslint-plugin-toml@0.7.1(eslint@8.54.0): + resolution: {integrity: sha512-0AOZSBZInz0qFeWSlTZgRURD0BzEkJXE627aF0kS5t3PnUjjifPipkjnSYiHOtJYjHmGaoT7WwcTFSEZ/I3Zfg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + debug: 4.3.4(supports-color@8.1.1) + eslint: 8.54.0 + eslint-compat-utils: 0.1.2(eslint@8.54.0) + lodash: 4.17.21 + toml-eslint-parser: 0.9.3 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-unicorn@49.0.0(eslint@8.54.0): + resolution: {integrity: sha512-0fHEa/8Pih5cmzFW5L7xMEfUTvI9WKeQtjmKpTUmY+BiFCDxkxrTdnURJOHKykhtwIeyYsxnecbGvDCml++z4Q==} engines: {node: '>=16'} peerDependencies: - eslint: '>=8.44.0' + eslint: '>=8.52.0' dependencies: '@babel/helper-validator-identifier': 7.22.20 '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) @@ -2487,7 +2552,6 @@ packages: indent-string: 4.0.0 is-builtin-module: 3.2.1 jsesc: 3.0.2 - lodash: 4.17.21 pluralize: 8.0.0 read-pkg-up: 7.0.1 regexp-tree: 0.1.27 @@ -2496,8 +2560,45 @@ packages: strip-indent: 3.0.0 dev: true - /eslint-plugin-vue@9.18.1(eslint@8.54.0): - resolution: {integrity: sha512-7hZFlrEgg9NIzuVik2I9xSnJA5RsmOfueYgsUGUokEDLJ1LHtxO0Pl4duje1BriZ/jDWb+44tcIlC3yi0tdlZg==} + /eslint-plugin-unused-imports@3.0.0(@typescript-eslint/eslint-plugin@6.13.2)(eslint@8.54.0): + resolution: {integrity: sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^6.0.0 + eslint: ^8.0.0 + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.54.0)(typescript@5.2.2) + eslint: 8.54.0 + eslint-rule-composer: 0.3.0 + dev: true + + /eslint-plugin-vitest@0.3.15(@typescript-eslint/eslint-plugin@6.13.2)(eslint@8.54.0)(typescript@5.2.2)(vitest@1.0.0-beta.5): + resolution: {integrity: sha512-ZUUd9ARKR3p0W7zoWg0irmQW9aM+SlJYZOoFOBemmgwQIHLxtdRLodQGP48nYf8jLdCGFDQqPyaltQQKsa9UMw==} + engines: {node: ^18.0.0 || >= 20.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': '*' + eslint: '>=8.0.0' + vitest: '*' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + vitest: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 6.13.2(@typescript-eslint/parser@6.13.2)(eslint@8.54.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.13.2(eslint@8.54.0)(typescript@5.2.2) + eslint: 8.54.0 + vitest: 1.0.0-beta.5(happy-dom@12.10.3) + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /eslint-plugin-vue@9.19.2(eslint@8.54.0): + resolution: {integrity: sha512-CPDqTOG2K4Ni2o4J5wixkLVNwgctKXFu6oBpVJlpNq7f38lh9I80pRTouZSJ2MAebPJlINU/KTFSXyQfBUlymA==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 @@ -2528,6 +2629,37 @@ packages: - supports-color dev: true + /eslint-plugin-yml@1.10.0(eslint@8.54.0): + resolution: {integrity: sha512-53SUwuNDna97lVk38hL/5++WXDuugPM9SUQ1T645R0EHMRCdBIIxGye/oOX2qO3FQ7aImxaUZJU/ju+NMUBrLQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + debug: 4.3.4(supports-color@8.1.1) + eslint: 8.54.0 + eslint-compat-utils: 0.1.2(eslint@8.54.0) + lodash: 4.17.21 + natural-compare: 1.4.0 + yaml-eslint-parser: 1.2.2 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-processor-vue-blocks@0.1.1(@vue/compiler-sfc@3.3.11)(eslint@8.54.0): + resolution: {integrity: sha512-9+dU5lU881log570oBwpelaJmOfOzSniben7IWEDRYQPPWwlvaV7NhOtsTuUWDqpYT+dtKKWPsgz4OkOi+aZnA==} + peerDependencies: + '@vue/compiler-sfc': ^3.3.0 + eslint: ^8.50.0 + dependencies: + '@vue/compiler-sfc': 3.3.11 + eslint: 8.54.0 + dev: true + + /eslint-rule-composer@0.3.0: + resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} + engines: {node: '>=4.0.0'} + dev: true + /eslint-scope@7.2.2: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2548,7 +2680,7 @@ packages: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 2.1.3 + '@eslint/eslintrc': 2.1.4 '@eslint/js': 8.54.0 '@humanwhocodes/config-array': 0.11.13 '@humanwhocodes/module-importer': 1.0.1 @@ -2863,16 +2995,6 @@ packages: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} dev: true - /function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - functions-have-names: 1.2.3 - dev: true - /functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: true @@ -2907,14 +3029,6 @@ packages: engines: {node: '>=16'} dev: true - /get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - dev: true - /get-tsconfig@4.7.2: resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} dependencies: @@ -2984,11 +3098,11 @@ packages: type-fest: 0.20.2 dev: true - /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} dependencies: - define-properties: 1.2.1 + type-fest: 0.20.2 dev: true /globby@11.1.0: @@ -3099,15 +3213,6 @@ packages: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true - /htmlparser2@8.0.2: - resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.1.0 - entities: 4.5.0 - dev: true - /http-signature@1.3.6: resolution: {integrity: sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==} engines: {node: '>=0.10'} @@ -3234,6 +3339,17 @@ packages: side-channel: 1.0.4 dev: true + /is-alphabetical@1.0.4: + resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} + dev: true + + /is-alphanumerical@1.0.4: + resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} + dependencies: + is-alphabetical: 1.0.4 + is-decimal: 1.0.4 + dev: true + /is-arguments@1.1.1: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} @@ -3307,6 +3423,10 @@ packages: has-tostringtag: 1.0.0 dev: true + /is-decimal@1.0.4: + resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} + dev: true + /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -3329,6 +3449,10 @@ packages: is-extglob: 2.1.1 dev: true + /is-hexadecimal@1.0.4: + resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} + dev: true + /is-installed-globally@0.4.0: resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} engines: {node: '>=10'} @@ -3346,11 +3470,6 @@ packages: resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} dev: true - /is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} - engines: {node: '>= 0.4'} - dev: true - /is-node-process@1.2.0: resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} dev: true @@ -3434,12 +3553,6 @@ packages: resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} dev: true - /is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - dependencies: - call-bind: 1.0.5 - dev: true - /is-weakset@2.0.2: resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} dependencies: @@ -3532,6 +3645,11 @@ packages: resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} dev: true + /jsdoc-type-pratt-parser@4.0.0: + resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} + engines: {node: '>=12.0.0'} + dev: true + /jsesc@0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} hasBin: true @@ -3567,13 +3685,6 @@ packages: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} dev: true - /json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - dependencies: - minimist: 1.2.8 - dev: true - /jsonc-eslint-parser@2.4.0: resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3612,6 +3723,11 @@ packages: json-buffer: 3.0.1 dev: true + /kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + dev: true + /lazy-ass@1.6.0: resolution: {integrity: sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==} engines: {node: '> 0.8'} @@ -3796,12 +3912,28 @@ packages: semver: 7.5.4 dev: true - /marked@11.0.0: - resolution: {integrity: sha512-2GsW34uXaFEGTQ/+3rCnNC6vUYTAgFuDLGl70v/aWinA5mIJtTrrFAmfbLOfVvgPyxXuDVL9He/7reCK+6j3Sw==} + /marked@11.0.1: + resolution: {integrity: sha512-P4kDhFEMlvLePBPRwOcMOv6+lYUbhfbSxJFs3Jb4Qx7v6K7l+k8Dxh9CEGfRvK71tL+qIFz5y7Pe4uzt4+/A3A==} engines: {node: '>= 18'} hasBin: true dev: false + /mdast-util-from-markdown@0.8.5: + resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} + dependencies: + '@types/mdast': 3.0.15 + mdast-util-to-string: 2.0.0 + micromark: 2.11.4 + parse-entities: 2.0.0 + unist-util-stringify-position: 2.0.3 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-to-string@2.0.0: + resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} + dev: true + /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: true @@ -3811,6 +3943,15 @@ packages: engines: {node: '>= 8'} dev: true + /micromark@2.11.4: + resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} + dependencies: + debug: 4.3.4(supports-color@8.1.1) + parse-entities: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} @@ -3946,6 +4087,10 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + /natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + dev: true + /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -4109,33 +4254,6 @@ packages: object-keys: 1.1.1 dev: true - /object.fromentries@2.0.7: - resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - - /object.groupby@1.0.1: - resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - dev: true - - /object.values@1.1.7: - resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: @@ -4250,6 +4368,22 @@ packages: callsites: 3.1.0 dev: true + /parse-entities@2.0.0: + resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} + dependencies: + character-entities: 1.2.4 + character-entities-legacy: 1.1.4 + character-reference-invalid: 1.1.4 + is-alphanumerical: 1.0.4 + is-decimal: 1.0.4 + is-hexadecimal: 1.0.4 + dev: true + + /parse-gitignore@2.0.0: + resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==} + engines: {node: '>=14'} + dev: true + /parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} @@ -4340,7 +4474,7 @@ packages: engines: {node: '>=0.10.0'} dev: true - /pinia@2.1.7(typescript@5.2.2)(vue@3.3.9): + /pinia@2.1.7(typescript@5.2.2)(vue@3.3.11): resolution: {integrity: sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==} peerDependencies: '@vue/composition-api': ^1.4.0 @@ -4354,8 +4488,8 @@ packages: dependencies: '@vue/devtools-api': 6.5.1 typescript: 5.2.2 - vue: 3.3.9(typescript@5.2.2) - vue-demi: 0.14.6(vue@3.3.9) + vue: 3.3.11(typescript@5.2.2) + vue-demi: 0.14.6(vue@3.3.11) /pkg-types@1.0.3: resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} @@ -4385,6 +4519,15 @@ packages: nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.0.2 + dev: true + + /postcss@8.4.32: + resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -4425,6 +4568,14 @@ packages: engines: {node: '>= 0.6.0'} dev: true + /prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + dev: true + /proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} dev: true @@ -4651,28 +4802,10 @@ packages: tslib: 2.6.2 dev: true - /safe-array-concat@1.0.1: - resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} - engines: {node: '>=0.4'} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - has-symbols: 1.0.3 - isarray: 2.0.5 - dev: true - /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true - /safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-regex: 1.1.4 - dev: true - /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true @@ -4682,11 +4815,6 @@ packages: hasBin: true dev: true - /semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - dev: true - /semver@7.5.4: resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} @@ -4795,6 +4923,10 @@ packages: requiresBuild: true dev: true + /sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + dev: true + /skin-tone@2.0.0: resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} engines: {node: '>=8'} @@ -4931,31 +5063,6 @@ packages: strip-ansi: 7.1.0 dev: true - /string.prototype.trim@1.2.8: - resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - - /string.prototype.trimend@1.0.7: - resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - - /string.prototype.trimstart@1.0.7: - resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - /string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: @@ -4976,11 +5083,6 @@ packages: ansi-regex: 6.0.1 dev: true - /strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - dev: true - /strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} @@ -5147,6 +5249,13 @@ packages: is-number: 7.0.0 dev: true + /toml-eslint-parser@0.9.3: + resolution: {integrity: sha512-moYoCvkNUAPCxSW9jmHmRElhm4tVJpHL8ItC/+uYD0EpPSFXbck7yREz9tNdJVTSpHVod8+HoipcpbQ0oE6gsw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + eslint-visitor-keys: 3.4.3 + dev: true + /tough-cookie@4.1.3: resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} engines: {node: '>=6'} @@ -5175,15 +5284,6 @@ packages: typescript: 5.2.2 dev: true - /tsconfig-paths@3.14.2: - resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} - dependencies: - '@types/json5': 0.0.29 - json5: 1.0.2 - minimist: 1.2.8 - strip-bom: 3.0.0 - dev: true - /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} dev: true @@ -5240,44 +5340,6 @@ packages: engines: {node: '>=12.20'} dev: true - /typed-array-buffer@1.0.0: - resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-typed-array: 1.1.12 - dev: true - - /typed-array-byte-length@1.0.0: - resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.12 - dev: true - - /typed-array-byte-offset@1.0.0: - resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} - engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.12 - dev: true - - /typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} - dependencies: - call-bind: 1.0.5 - for-each: 0.3.3 - is-typed-array: 1.1.12 - dev: true - /typescript@5.1.6: resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} engines: {node: '>=14.17'} @@ -5293,15 +5355,6 @@ packages: resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} dev: true - /unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - dependencies: - call-bind: 1.0.5 - has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 - dev: true - /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} dev: true @@ -5311,6 +5364,12 @@ packages: engines: {node: '>=4'} dev: true + /unist-util-stringify-position@2.0.3: + resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} + dependencies: + '@types/unist': 2.0.10 + dev: true + /universalify@0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} @@ -5504,7 +5563,7 @@ packages: resolution: {integrity: sha512-LK3wJHs3vJxHG292C8cnsRusgyC5SEZDCzDCD01mdE/AoREFMl2tzLRuzwyuEsOIz13tqgBcnvysN3Lxsa14Fw==} dev: true - /vue-demi@0.14.6(vue@3.3.9): + /vue-demi@0.14.6(vue@3.3.11): resolution: {integrity: sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==} engines: {node: '>=12'} hasBin: true @@ -5516,7 +5575,7 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.3.9(typescript@5.2.2) + vue: 3.3.11(typescript@5.2.2) /vue-eslint-parser@9.3.2(eslint@8.54.0): resolution: {integrity: sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg==} @@ -5536,13 +5595,13 @@ packages: - supports-color dev: true - /vue-router@4.2.5(vue@3.3.9): + /vue-router@4.2.5(vue@3.3.11): resolution: {integrity: sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==} peerDependencies: vue: ^3.2.0 dependencies: '@vue/devtools-api': 6.5.1 - vue: 3.3.9(typescript@5.2.2) + vue: 3.3.11(typescript@5.2.2) dev: false /vue-template-compiler@2.7.15: @@ -5564,19 +5623,19 @@ packages: typescript: 5.2.2 dev: true - /vue@3.3.9(typescript@5.2.2): - resolution: {integrity: sha512-sy5sLCTR8m6tvUk1/ijri3Yqzgpdsmxgj6n6yl7GXXCXqVbmW2RCXe9atE4cEI6Iv7L89v5f35fZRRr5dChP9w==} + /vue@3.3.11(typescript@5.2.2): + resolution: {integrity: sha512-d4oBctG92CRO1cQfVBZp6WJAs0n8AK4Xf5fNjQCBeKCvMI1efGQ5E3Alt1slFJS9fZuPcFoiAiqFvQlv1X7t/w==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@vue/compiler-dom': 3.3.9 - '@vue/compiler-sfc': 3.3.9 - '@vue/runtime-dom': 3.3.9 - '@vue/server-renderer': 3.3.9(vue@3.3.9) - '@vue/shared': 3.3.9 + '@vue/compiler-dom': 3.3.11 + '@vue/compiler-sfc': 3.3.11 + '@vue/runtime-dom': 3.3.11 + '@vue/server-renderer': 3.3.11(vue@3.3.11) + '@vue/shared': 3.3.11 typescript: 5.2.2 /wcwidth@1.0.1: @@ -5710,6 +5769,15 @@ packages: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: true + /yaml-eslint-parser@1.2.2: + resolution: {integrity: sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==} + engines: {node: ^14.17.0 || >=16.0.0} + dependencies: + eslint-visitor-keys: 3.4.3 + lodash: 4.17.21 + yaml: 2.3.4 + dev: true + /yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} diff --git a/src/components/AppNavigation.vue b/src/components/AppNavigation.vue index 80d474b..59e5020 100644 --- a/src/components/AppNavigation.vue +++ b/src/components/AppNavigation.vue @@ -92,5 +92,4 @@ const allNavLinks = computed(() => [ const navLinks = computed(() => allNavLinks.value.filter( l => l.display === displayStatus.value || l.display === 'all', )) - diff --git a/src/components/AppPagination.vue b/src/components/AppPagination.vue index 6d08332..a2a545a 100644 --- a/src/components/AppPagination.vue +++ b/src/components/AppPagination.vue @@ -3,7 +3,8 @@
  • () -const emit = defineEmits() + +const emit = defineEmits<{ + (e: 'pageChange', index: number): void +}>() const { count, page } = toRefs(props) const pagesCount = computed(() => Math.ceil(count.value / limit)) const isActive = (index: number) => page.value === index -const onPageChange = (index: number) => emit('page-change', index) +const onPageChange = (index: number) => emit('pageChange', index) diff --git a/src/components/ArticleDetail.vue b/src/components/ArticleDetail.vue index f9cf8ed..fe2403b 100644 --- a/src/components/ArticleDetail.vue +++ b/src/components/ArticleDetail.vue @@ -55,7 +55,7 @@ const article: Article = reactive(await api.articles.getArticle(slug).then(res = const articleHandledBody = computed(() => marked(article.body)) -const updateArticle = (newArticle: Article) => { +function updateArticle(newArticle: Article) { Object.assign(article, newArticle) } diff --git a/src/components/ArticleDetailComment.spec.ts b/src/components/ArticleDetailComment.spec.ts index 95ef877..6a464fc 100644 --- a/src/components/ArticleDetailComment.spec.ts +++ b/src/components/ArticleDetailComment.spec.ts @@ -26,7 +26,7 @@ describe('# ArticleDetailComment', () => { expect(getByRole('button', { name: 'Delete comment' })).toBeInTheDocument() }) - it('should emit remove comment when click remove comment button', () => { + it('should emit remove comment when click remove comment button', async () => { const onRemoveComment = vi.fn() const { getByRole } = render(ArticleDetailComment, renderOptions({ props: { @@ -36,7 +36,7 @@ describe('# ArticleDetailComment', () => { }, })) - fireEvent.click(getByRole('button', { name: 'Delete comment' })) + await fireEvent.click(getByRole('button', { name: 'Delete comment' })) expect(onRemoveComment).toHaveBeenCalled() }) diff --git a/src/components/ArticleDetailComment.vue b/src/components/ArticleDetailComment.vue index 19e6a2e..1293edf 100644 --- a/src/components/ArticleDetailComment.vue +++ b/src/components/ArticleDetailComment.vue @@ -9,7 +9,7 @@