From 6a0efea64e2966a5b6c3d467dcc6480ee831a8f0 Mon Sep 17 00:00:00 2001 From: Mafia <78799103+kankan-web@users.noreply.github.com> Date: Tue, 9 Apr 2024 21:03:17 +0800 Subject: [PATCH 01/78] docs(components): [table-v2] `minWidth` and `maxWidth` support type typo (#16415) feat(components): [table-v2] `minWidth` and `maxWidth` support type typo --- docs/en-US/component/table-v2.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en-US/component/table-v2.md b/docs/en-US/component/table-v2.md index d275e90cbe6207..e48db85b3af9b6 100644 --- a/docs/en-US/component/table-v2.md +++ b/docs/en-US/component/table-v2.md @@ -386,8 +386,8 @@ Note that these are `JavaScript` Objects, so you **CANNOT USE** kebab-case for t | style | Customized style for column cell, will be merged with grid cell | CSSProperties | - | | sortable | Indicates whether the column is sortable | Boolean | - | | title | The default text rendered in header cell | String | - | -| maxWidth | Maximum width for the column | String | - | -| minWidth | Minimum width for the column | String | - | +| maxWidth | Maximum width for the column | Number | - | +| minWidth | Minimum width for the column | Number | - | | width ^(required) | Width for the column | Number | - | | cellRenderer | Customized Cell renderer | VueComponent/(props: [CellRenderProps](#typings)) => VNode | - | | headerCellRenderer | Customized Header renderer | VueComponent/(props: [HeaderRenderProps](#typings)) => VNode | - | From d0eb6c3d1a1dc9f9ce447cb27381df8f1b8e8642 Mon Sep 17 00:00:00 2001 From: btea <2356281422@qq.com> Date: Thu, 11 Apr 2024 17:48:34 +0800 Subject: [PATCH 02/78] feat: support node 18+ & update tsx and vitest (#16190) * feat: support node 18+ & update tsx and vitest * chore: update * chore: remove * fix: update dep * test: fix autocomplete * test: update * test: update * chore: update * chore: update * chore: update --- .github/workflows/lint-commit-message.yml | 2 +- .github/workflows/pr-docs-build.yml | 4 +- .github/workflows/publish-build-product.yml | 2 +- .../workflows/publish-docs-deploy-manual.yml | 2 +- .github/workflows/publish-docs-deploy.yml | 2 +- .github/workflows/publish-npm-nightly.yml | 4 +- .github/workflows/publish-npm.yml | 4 +- .github/workflows/publish-size-report.yml | 2 +- .github/workflows/staging-docs.yml | 2 +- .github/workflows/test-coverage.yml | 2 +- .github/workflows/test-ssr.yml | 2 +- .github/workflows/test-unit.yml | 6 +- CONTRIBUTING.md | 4 +- internal/metadata/package.json | 14 +- package.json | 13 +- .../__snapshots__/anchor.test.tsx.snap | 34 +- .../__tests__/autocomplete.test.tsx | 5 + .../__snapshots__/watermark.test.tsx.snap | 4 +- packages/hooks/__tests__/use-id.test.tsx | 2 +- packages/utils/__tests__/error.test.ts | 2 +- packages/utils/__tests__/raf.test.ts | 11 +- packages/utils/__tests__/strings.test.ts | 2 +- pnpm-lock.yaml | 4179 +++++++++++++---- vitest.config.ts | 4 +- 24 files changed, 3287 insertions(+), 1021 deletions(-) diff --git a/.github/workflows/lint-commit-message.yml b/.github/workflows/lint-commit-message.yml index dde7c0338b669e..6cef82ffd45e06 100644 --- a/.github/workflows/lint-commit-message.yml +++ b/.github/workflows/lint-commit-message.yml @@ -22,7 +22,7 @@ jobs: - name: Setup node uses: actions/setup-node@v3 with: - node-version: 16 + node-version: 18 - name: Get pnpm store directory id: pnpm-cache diff --git a/.github/workflows/pr-docs-build.yml b/.github/workflows/pr-docs-build.yml index 732027c319704a..9a7e9c6450d325 100644 --- a/.github/workflows/pr-docs-build.yml +++ b/.github/workflows/pr-docs-build.yml @@ -13,10 +13,10 @@ jobs: strategy: matrix: - node-version: [16] + node-version: [18] os: [ubuntu-latest, windows-latest] include: - - node-version: 16 + - node-version: 18 node-name: LTS # - node-version: 18 # node-name: Current diff --git a/.github/workflows/publish-build-product.yml b/.github/workflows/publish-build-product.yml index 4a82d41a051e4a..fc537f07402cd4 100644 --- a/.github/workflows/publish-build-product.yml +++ b/.github/workflows/publish-build-product.yml @@ -25,7 +25,7 @@ jobs: - name: Setup node uses: actions/setup-node@v3 with: - node-version: 16 + node-version: 18 - name: Get pnpm store directory id: pnpm-cache diff --git a/.github/workflows/publish-docs-deploy-manual.yml b/.github/workflows/publish-docs-deploy-manual.yml index fd1c6a63296482..6e00af6d4022eb 100644 --- a/.github/workflows/publish-docs-deploy-manual.yml +++ b/.github/workflows/publish-docs-deploy-manual.yml @@ -16,7 +16,7 @@ jobs: - name: Setup node uses: actions/setup-node@v3 with: - node-version: 16 + node-version: 18 - name: Get pnpm store directory id: pnpm-cache diff --git a/.github/workflows/publish-docs-deploy.yml b/.github/workflows/publish-docs-deploy.yml index 503d45443b2157..f154aadd7cabfa 100644 --- a/.github/workflows/publish-docs-deploy.yml +++ b/.github/workflows/publish-docs-deploy.yml @@ -23,7 +23,7 @@ jobs: - name: Setup node uses: actions/setup-node@v3 with: - node-version: 16 + node-version: 18 - name: Get pnpm store directory id: pnpm-cache diff --git a/.github/workflows/publish-npm-nightly.yml b/.github/workflows/publish-npm-nightly.yml index 305497d232a9c5..a97a1ef63b1d25 100644 --- a/.github/workflows/publish-npm-nightly.yml +++ b/.github/workflows/publish-npm-nightly.yml @@ -22,7 +22,7 @@ jobs: - name: Setup node uses: actions/setup-node@v3 with: - node-version: 16 + node-version: 18 - name: Get pnpm store directory id: pnpm-cache @@ -58,7 +58,7 @@ jobs: - uses: actions/setup-node@v3 with: - node-version: '16' + node-version: '18' registry-url: https://registry.npmjs.com/ - name: Setup pnpm diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml index deace57840a887..fafdedee3037c8 100644 --- a/.github/workflows/publish-npm.yml +++ b/.github/workflows/publish-npm.yml @@ -21,7 +21,7 @@ jobs: - name: Setup node uses: actions/setup-node@v3 with: - node-version: 16 + node-version: 18 registry-url: https://registry.npmjs.com/ - name: Get pnpm store directory @@ -57,7 +57,7 @@ jobs: - uses: actions/setup-node@v3 with: - node-version: 16 + node-version: 18 registry-url: https://registry.npmjs.com/ - name: Setup pnpm diff --git a/.github/workflows/publish-size-report.yml b/.github/workflows/publish-size-report.yml index 0002284ffe726c..d5f1ee596e3b7e 100644 --- a/.github/workflows/publish-size-report.yml +++ b/.github/workflows/publish-size-report.yml @@ -22,7 +22,7 @@ jobs: - name: Setup node uses: actions/setup-node@v3 with: - node-version: 16 + node-version: 18 - name: Get pnpm store directory id: pnpm-cache diff --git a/.github/workflows/staging-docs.yml b/.github/workflows/staging-docs.yml index 065276dd784eee..2a0184fe1774c1 100644 --- a/.github/workflows/staging-docs.yml +++ b/.github/workflows/staging-docs.yml @@ -25,7 +25,7 @@ jobs: - name: Setup node uses: actions/setup-node@v3 with: - node-version: 16 + node-version: 18 - name: Get pnpm store directory id: pnpm-cache diff --git a/.github/workflows/test-coverage.yml b/.github/workflows/test-coverage.yml index 2bcd5dd6dd1962..4f33e4420ea45e 100644 --- a/.github/workflows/test-coverage.yml +++ b/.github/workflows/test-coverage.yml @@ -27,7 +27,7 @@ jobs: - name: Setup node uses: actions/setup-node@v3 with: - node-version: 16 + node-version: 18 - name: Get pnpm store directory id: pnpm-cache diff --git a/.github/workflows/test-ssr.yml b/.github/workflows/test-ssr.yml index 2b1673416f474a..8baf6fa9685331 100644 --- a/.github/workflows/test-ssr.yml +++ b/.github/workflows/test-ssr.yml @@ -25,7 +25,7 @@ jobs: - name: Setup node uses: actions/setup-node@v3 with: - node-version: 16 + node-version: 18 - name: Get pnpm store directory id: pnpm-cache diff --git a/.github/workflows/test-unit.yml b/.github/workflows/test-unit.yml index 167064975e19f5..f37a6c6c27dbc4 100644 --- a/.github/workflows/test-unit.yml +++ b/.github/workflows/test-unit.yml @@ -27,7 +27,7 @@ jobs: - name: Setup node uses: actions/setup-node@v3 with: - node-version: 16 + node-version: 18 - name: Get pnpm store directory id: pnpm-cache @@ -57,9 +57,9 @@ jobs: strategy: matrix: - node-version: [16] + node-version: [18] include: - - node-version: 16 + - node-version: 18 node-name: LTS # - node-version: 18 # node-name: Current diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ee215e943f2be7..9765c078dbf774 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -17,11 +17,11 @@ Next section is for those who wants to help develop Element Plus. You should be having: -NodeJS >= 16 +NodeJS >= 18 Git > v2.20 -Some of our compiling code used syntax that introduced in NodeJS>16.0 so you will be need to install that in advance. +Some of our compiling code used syntax that introduced in NodeJS>18 so you will be need to install that in advance. ## Clone the repository diff --git a/internal/metadata/package.json b/internal/metadata/package.json index 47a672dfea4a10..156e636fe4115c 100644 --- a/internal/metadata/package.json +++ b/internal/metadata/package.json @@ -19,16 +19,16 @@ "dev": "DEV=1 pnpm run build" }, "devDependencies": { - "@element-plus/build": "^0.0.1", - "@element-plus/build-constants": "^0.0.1", - "@element-plus/build-utils": "^0.0.1", + "@element-plus/build": "workspace:*", + "@element-plus/build-constants": "workspace:*", + "@element-plus/build-utils": "workspace:*", "@types/lodash-es": "^4.17.6", - "chalk": "^5.0.1", + "chalk": "^5.3.0", "consola": "^2.15.3", - "fast-glob": "^3.2.11", + "fast-glob": "^3.3.2", "lodash-es": "^4.17.21", "npm-run-all": "^4.1.5", - "octokit": "^2.0.3", - "tsx": "^3.6.0" + "octokit": "^2.1.0", + "tsx": "^4.7.1" } } diff --git a/package.json b/package.json index ffbb155e6ba09c..82a1c5265c5dd5 100644 --- a/package.json +++ b/package.json @@ -80,11 +80,11 @@ "@types/fs-extra": "^9.0.13", "@types/gulp": "^4.0.9", "@types/jsdom": "^16.2.14", - "@types/node": "*", + "@types/node": "^18.19.25", "@types/sass": "^1.43.1", "@vitejs/plugin-vue": "^2.3.3", "@vitejs/plugin-vue-jsx": "^1.3.10", - "@vitest/ui": "0.16.0", + "@vitest/ui": "1.4.0", "@vue/test-utils": "^2.0.0", "@vue/tsconfig": "^0.1.3", "c8": "^7.11.3", @@ -98,6 +98,7 @@ "eslint-define-config": "^1.5.1", "expect-type": "^0.13.0", "fast-glob": "^3.2.11", + "happy-dom": "^14.3.3", "husky": "^9.0.11", "jsdom": "16.4.0", "lint-staged": "^13.0.3", @@ -108,18 +109,18 @@ "rimraf": "^3.0.2", "sass": "^1.53.0", "ts-morph": "^14.0.0", - "tsx": "^3.6.0", + "tsx": "^4.7.1", "type-fest": "^2.14.0", "typescript": "^4.7.4", "unplugin-element-plus": "^0.4.0", - "unplugin-vue-macros": "^0.11.2", - "vitest": "0.12.6", + "unplugin-vue-macros": "^2.7.11", + "vitest": "1.4.0", "vue": "^3.2.37", "vue-router": "^4.0.16", "vue-tsc": "^0.38.2" }, "engines": { - "node": ">= 16" + "node": ">= 18" }, "config": { "commitizen": { diff --git a/packages/components/anchor/__tests__/__snapshots__/anchor.test.tsx.snap b/packages/components/anchor/__tests__/__snapshots__/anchor.test.tsx.snap index fa16cc38283fb5..f1ddc091498a6a 100644 --- a/packages/components/anchor/__tests__/__snapshots__/anchor.test.tsx.snap +++ b/packages/components/anchor/__tests__/__snapshots__/anchor.test.tsx.snap @@ -1,10 +1,10 @@ -// Vitest Snapshot v1 +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`Anchor.vue > snapshot 1`] = ` -"
-
-
-
#anchor-link-0 +"
+
+ @@ -12,10 +12,10 @@ exports[`Anchor.vue > snapshot 1`] = ` `; exports[`Anchor.vue > snapshot 2`] = ` -"
-
-
-
#anchor-link-0 +"
+
+ @@ -23,10 +23,10 @@ exports[`Anchor.vue > snapshot 2`] = ` `; exports[`Anchor.vue > snapshot 3`] = ` -"
-
-
-
#anchor-link-0 +"
+
+ @@ -34,10 +34,10 @@ exports[`Anchor.vue > snapshot 3`] = ` `; exports[`Anchor.vue > snapshot 4`] = ` -"
-
-
-
#anchor-link-0 +"
+
+ diff --git a/packages/components/autocomplete/__tests__/autocomplete.test.tsx b/packages/components/autocomplete/__tests__/autocomplete.test.tsx index e2cb8f82599e6e..04e9464d10c79a 100644 --- a/packages/components/autocomplete/__tests__/autocomplete.test.tsx +++ b/packages/components/autocomplete/__tests__/autocomplete.test.tsx @@ -1,3 +1,7 @@ +/** + * @vitest-environment happy-dom + */ + import { defineComponent, nextTick, reactive } from 'vue' import { mount } from '@vue/test-utils' import { NOOP } from '@vue/shared' @@ -368,6 +372,7 @@ describe('Autocomplete.vue', () => { test('specified id attachment', async () => { const wrapper = mount(() => ( + {/* @ts-ignore */} )) diff --git a/packages/components/watermark/__tests__/__snapshots__/watermark.test.tsx.snap b/packages/components/watermark/__tests__/__snapshots__/watermark.test.tsx.snap index 493e5271ede669..f76c31cd6dce8e 100644 --- a/packages/components/watermark/__tests__/__snapshots__/watermark.test.tsx.snap +++ b/packages/components/watermark/__tests__/__snapshots__/watermark.test.tsx.snap @@ -1,3 +1,3 @@ -// Vitest Snapshot v1 +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`Watermark.vue > create 1`] = `"
Rem is the best girl
"`; +exports[`Watermark.vue > create 1`] = `"
Rem is the best girl
"`; diff --git a/packages/hooks/__tests__/use-id.test.tsx b/packages/hooks/__tests__/use-id.test.tsx index 933f1f74a069a4..65c5a45a1c4be9 100644 --- a/packages/hooks/__tests__/use-id.test.tsx +++ b/packages/hooks/__tests__/use-id.test.tsx @@ -16,7 +16,7 @@ describe('no injection value', () => { template: '
', }) - expect(wrapper.vm.prefix).toMatch(/^\d{0,4}$/) + expect(String(wrapper.vm.prefix)).toMatch(/^\d{0,4}$/) expect(wrapper.vm.current).toBe(0) }) diff --git a/packages/utils/__tests__/error.test.ts b/packages/utils/__tests__/error.test.ts index c3c175d08b040a..581ad8be2c7695 100644 --- a/packages/utils/__tests__/error.test.ts +++ b/packages/utils/__tests__/error.test.ts @@ -5,7 +5,7 @@ describe('error', () => { it('throwError should work', () => { expect(() => throwError('scope', 'message') - ).toThrowErrorMatchingInlineSnapshot('"[scope] message"') + ).toThrowErrorMatchingInlineSnapshot(`[ElementPlusError: [scope] message]`) }) it('debugWarn should work', () => { diff --git a/packages/utils/__tests__/raf.test.ts b/packages/utils/__tests__/raf.test.ts index 4e7bd2acb26d7c..3f5dcfda1710a8 100644 --- a/packages/utils/__tests__/raf.test.ts +++ b/packages/utils/__tests__/raf.test.ts @@ -2,7 +2,6 @@ let isClientMocked = false import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import { cAF, rAF } from '..' vi.mock('@vueuse/core', () => ({ get isClient() { @@ -19,9 +18,10 @@ describe('raf', () => { vi.restoreAllMocks() }) - it('CSR should work', () => { + it('CSR should work', async () => { isClientMocked = true - + const obj = await import('..') + const { cAF, rAF } = obj const fn = vi.fn() rAF(() => fn('first')) vi.runAllTimers() @@ -61,9 +61,10 @@ describe('raf', () => { `) }) - it('SSR should work', () => { + it('SSR should work', async () => { isClientMocked = false - + const obj = await import('..') + const { cAF, rAF } = obj const fn = vi.fn() rAF(() => fn('first')) vi.runAllTimers() diff --git a/packages/utils/__tests__/strings.test.ts b/packages/utils/__tests__/strings.test.ts index 665454deba7396..d0fa42e72943da 100644 --- a/packages/utils/__tests__/strings.test.ts +++ b/packages/utils/__tests__/strings.test.ts @@ -12,7 +12,7 @@ describe('strings', () => { it('escapeStringRegexp should work', () => { expect(escapeStringRegexp('foo')).toMatchInlineSnapshot('"foo"') expect(escapeStringRegexp('**\\//aa^~#$')).toMatchInlineSnapshot( - '"\\\\*\\\\*\\\\\\\\//aa\\\\^~#\\\\$"' + `"\\*\\*\\\\//aa\\^~#\\$"` ) }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3eeff46a9a6257..938ecc87e985a1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -112,8 +112,8 @@ importers: specifier: ^16.2.14 version: 16.2.14 '@types/node': - specifier: '*' - version: 17.0.40 + specifier: ^18.19.25 + version: 18.19.25 '@types/sass': specifier: ^1.43.1 version: 1.43.1 @@ -124,14 +124,14 @@ importers: specifier: ^1.3.10 version: 1.3.10 '@vitest/ui': - specifier: 0.16.0 - version: 0.16.0 + specifier: 1.4.0 + version: 1.4.0(vitest@1.4.0) '@vue/test-utils': specifier: ^2.0.0 version: 2.0.0(vue@3.2.37) '@vue/tsconfig': specifier: ^0.1.3 - version: 0.1.3(@types/node@17.0.40) + version: 0.1.3(@types/node@18.19.25) c8: specifier: ^7.11.3 version: 7.11.3 @@ -165,6 +165,9 @@ importers: fast-glob: specifier: ^3.2.11 version: 3.2.11 + happy-dom: + specifier: ^14.3.3 + version: 14.3.3 husky: specifier: ^9.0.11 version: 9.0.11 @@ -196,8 +199,8 @@ importers: specifier: ^14.0.0 version: 14.0.0 tsx: - specifier: ^3.6.0 - version: 3.6.0 + specifier: ^4.7.1 + version: 4.7.1 type-fest: specifier: ^2.14.0 version: 2.14.0 @@ -208,11 +211,11 @@ importers: specifier: ^0.4.0 version: 0.4.0 unplugin-vue-macros: - specifier: ^0.11.2 - version: 0.11.2(vue@3.2.37) + specifier: ^2.7.11 + version: 2.7.11(@vueuse/core@9.1.0)(typescript@4.7.4)(vue@3.2.37) vitest: - specifier: 0.12.6 - version: 0.12.6(@vitest/ui@0.16.0)(c8@7.11.3)(jsdom@16.4.0)(sass@1.53.0) + specifier: 1.4.0 + version: 1.4.0(@types/node@18.19.25)(@vitest/ui@1.4.0)(happy-dom@14.3.3)(jsdom@16.4.0)(sass@1.53.0) vue: specifier: ^3.2.37 version: 3.2.37 @@ -227,7 +230,7 @@ importers: dependencies: '@docsearch/js': specifier: ^3.1.0 - version: 3.1.0(@types/react@18.2.43) + version: 3.1.0(@types/react@18.2.67) '@element-plus/icons-vue': specifier: ^2.3.1 version: 2.3.1(vue@3.2.37) @@ -270,7 +273,7 @@ importers: version: 3.14.0 '@docsearch/react': specifier: ^3.1.0 - version: 3.1.0(@types/react@18.2.43) + version: 3.1.0(@types/react@18.2.67) '@element-plus/build': specifier: workspace:* version: link:../internal/build @@ -315,13 +318,13 @@ importers: version: 0.33.5(vite@2.9.15) unplugin-icons: specifier: ^0.14.6 - version: 0.14.6(rollup@2.75.7)(vite@2.9.15) + version: 0.14.6(rollup@2.79.1)(vite@2.9.15) unplugin-vue-components: specifier: ^0.20.1 - version: 0.20.1(rollup@2.75.7)(vite@2.9.15)(vue@3.2.37) + version: 0.20.1(rollup@2.79.1)(vite@2.9.15)(vue@3.2.37) unplugin-vue-macros: specifier: ^0.11.2 - version: 0.11.2(rollup@2.75.7)(vite@2.9.15)(vue@3.2.37) + version: 0.11.2(rollup@2.79.1)(vite@2.9.15)(vue@3.2.37) vite: specifier: ^2.9.15 version: 2.9.15(sass@1.53.0) @@ -333,10 +336,10 @@ importers: version: 1.7.2(sass@1.53.0) vite-plugin-pwa: specifier: ^0.12.0 - version: 0.12.0(vite@2.9.15)(workbox-build@6.5.3)(workbox-window@6.5.3) + version: 0.12.0(vite@2.9.15)(workbox-build@6.6.0)(workbox-window@6.6.0) vitepress: specifier: ^0.22.4 - version: 0.22.4(@types/react@18.2.43)(sass@1.53.0) + version: 0.22.4(@types/react@18.2.67)(sass@1.53.0) internal/build: dependencies: @@ -488,26 +491,26 @@ importers: internal/metadata: devDependencies: '@element-plus/build': - specifier: ^0.0.1 + specifier: workspace:* version: link:../build '@element-plus/build-constants': - specifier: ^0.0.1 + specifier: workspace:* version: link:../build-constants '@element-plus/build-utils': - specifier: ^0.0.1 + specifier: workspace:* version: link:../build-utils '@types/lodash-es': specifier: ^4.17.6 version: 4.17.6 chalk: - specifier: ^5.0.1 - version: 5.0.1 + specifier: ^5.3.0 + version: 5.3.0 consola: specifier: ^2.15.3 version: 2.15.3 fast-glob: - specifier: ^3.2.11 - version: 3.2.11 + specifier: ^3.3.2 + version: 3.3.2 lodash-es: specifier: ^4.17.21 version: 4.17.21 @@ -515,11 +518,11 @@ importers: specifier: ^4.1.5 version: 4.1.5 octokit: - specifier: ^2.0.3 - version: 2.0.3 + specifier: ^2.1.0 + version: 2.1.0 tsx: - specifier: ^3.6.0 - version: 3.6.0 + specifier: ^4.7.1 + version: 4.7.1 packages/components: dependencies: @@ -763,6 +766,14 @@ packages: '@jridgewell/gen-mapping': 0.1.1 '@jridgewell/trace-mapping': 0.3.13 + /@ampproject/remapping@2.3.0: + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + dev: true + /@antfu/install-pkg@0.1.0: resolution: {integrity: sha512-VaIJd3d1o7irZfK1U0nvBsHMyjkuyMP3HKYVV53z8DKyulkHKmjhhtccXO51WSPeeSHIeoJEoNOKavYpS7jkZw==} dependencies: @@ -774,15 +785,19 @@ packages: resolution: {integrity: sha512-CQkeV+oJxUazwjlHD0/3ZD08QWKuGQkhnrKo3e6ly5pd48VUpXbb77q0xMU4+vc2CkJnDS02Eq/M9ugyX20XZA==} dev: true - /@apideck/better-ajv-errors@0.3.4(ajv@8.11.0): - resolution: {integrity: sha512-Ic2d8ZT6HJiSikGVQvSklaFyw1OUv4g8sDOxa0PXSlbmN/3gL5IO1WYY9DOwTDqOFmjWoqG1yaaKnPDqYCE9KA==} + /@antfu/utils@0.7.7: + resolution: {integrity: sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==} + dev: true + + /@apideck/better-ajv-errors@0.3.6(ajv@8.12.0): + resolution: {integrity: sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==} engines: {node: '>=10'} peerDependencies: ajv: '>=8' dependencies: - ajv: 8.11.0 + ajv: 8.12.0 json-schema: 0.4.0 - jsonpointer: 5.0.0 + jsonpointer: 5.0.1 leven: 3.1.0 dev: true @@ -792,18 +807,23 @@ packages: dependencies: '@babel/highlight': 7.17.12 - /@babel/code-frame@7.18.6: - resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} + /@babel/code-frame@7.24.2: + resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} engines: {node: '>=6.9.0'} requiresBuild: true dependencies: - '@babel/highlight': 7.18.6 - dev: true + '@babel/highlight': 7.24.2 + picocolors: 1.0.0 /@babel/compat-data@7.17.10: resolution: {integrity: sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==} engines: {node: '>=6.9.0'} + /@babel/compat-data@7.24.1: + resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/core@7.18.2: resolution: {integrity: sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==} engines: {node: '>=6.9.0'} @@ -826,6 +846,29 @@ packages: transitivePeerDependencies: - supports-color + /@babel/core@7.24.3: + resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.1 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) + '@babel/helpers': 7.24.1 + '@babel/parser': 7.24.1 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/generator@7.18.2: resolution: {integrity: sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==} engines: {node: '>=6.9.0'} @@ -834,18 +877,34 @@ packages: '@jridgewell/gen-mapping': 0.3.1 jsesc: 2.5.2 + /@babel/generator@7.24.1: + resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + dev: true + /@babel/helper-annotate-as-pure@7.16.7: resolution: {integrity: sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.18.13 - /@babel/helper-builder-binary-assignment-operator-visitor@7.16.7: - resolution: {integrity: sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==} + /@babel/helper-annotate-as-pure@7.22.5: + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-explode-assignable-expression': 7.16.7 - '@babel/types': 7.18.13 + '@babel/types': 7.24.0 + dev: true + + /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: + resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 dev: true /@babel/helper-compilation-targets@7.18.2(@babel/core@7.18.2): @@ -860,6 +919,17 @@ packages: browserslist: 4.20.4 semver: 6.3.0 + /@babel/helper-compilation-targets@7.23.6: + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.24.1 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.23.0 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + /@babel/helper-create-class-features-plugin@7.18.0(@babel/core@7.18.2): resolution: {integrity: sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==} engines: {node: '>=6.9.0'} @@ -877,31 +947,47 @@ packages: transitivePeerDependencies: - supports-color - /@babel/helper-create-regexp-features-plugin@7.17.12(@babel/core@7.18.2): - resolution: {integrity: sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==} + /@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-annotate-as-pure': 7.16.7 - regexpu-core: 5.0.1 + '@babel/core': 7.24.3 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 dev: true - /@babel/helper-define-polyfill-provider@0.3.1(@babel/core@7.18.2): - resolution: {integrity: sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==} + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.3): + resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} + engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.4.0-0 + '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-compilation-targets': 7.18.2(@babel/core@7.18.2) - '@babel/helper-module-imports': 7.16.7 - '@babel/helper-plugin-utils': 7.17.12 - '@babel/traverse': 7.18.2 + '@babel/core': 7.24.3 + '@babel/helper-annotate-as-pure': 7.22.5 + regexpu-core: 5.3.2 + semver: 6.3.1 + dev: true + + /@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3): + resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.0 debug: 4.3.4 lodash.debounce: 4.0.8 - resolve: 1.22.1 - semver: 6.3.0 + resolve: 1.22.8 transitivePeerDependencies: - supports-color dev: true @@ -910,11 +996,9 @@ packages: resolution: {integrity: sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==} engines: {node: '>=6.9.0'} - /@babel/helper-explode-assignable-expression@7.16.7: - resolution: {integrity: sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==} + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.18.13 dev: true /@babel/helper-function-name@7.17.9: @@ -924,24 +1008,53 @@ packages: '@babel/template': 7.16.7 '@babel/types': 7.18.13 + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 + dev: true + /@babel/helper-hoist-variables@7.16.7: resolution: {integrity: sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.18.13 + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + dev: true + /@babel/helper-member-expression-to-functions@7.17.7: resolution: {integrity: sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.18.13 + /@babel/helper-member-expression-to-functions@7.23.0: + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + dev: true + /@babel/helper-module-imports@7.16.7: resolution: {integrity: sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.18.13 + /@babel/helper-module-imports@7.24.3: + resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + dev: true + /@babel/helper-module-transforms@7.18.0: resolution: {integrity: sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==} engines: {node: '>=6.9.0'} @@ -957,25 +1070,52 @@ packages: transitivePeerDependencies: - supports-color + /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + /@babel/helper-optimise-call-expression@7.16.7: resolution: {integrity: sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.18.13 + /@babel/helper-optimise-call-expression@7.22.5: + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + dev: true + /@babel/helper-plugin-utils@7.17.12: resolution: {integrity: sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==} engines: {node: '>=6.9.0'} - /@babel/helper-remap-async-to-generator@7.16.8: - resolution: {integrity: sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==} + /@babel/helper-plugin-utils@7.24.0: + resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.3): + resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: - '@babel/helper-annotate-as-pure': 7.16.7 - '@babel/helper-wrap-function': 7.16.8 - '@babel/types': 7.18.13 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.3 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-wrap-function': 7.22.20 dev: true /@babel/helper-replace-supers@7.18.2: @@ -990,17 +1130,36 @@ packages: transitivePeerDependencies: - supports-color + /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + dev: true + /@babel/helper-simple-access@7.18.2: resolution: {integrity: sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.18.13 - /@babel/helper-skip-transparent-expression-wrappers@7.16.0: - resolution: {integrity: sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==} + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.18.13 + '@babel/types': 7.24.0 + dev: true + + /@babel/helper-skip-transparent-expression-wrappers@7.22.5: + resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 dev: true /@babel/helper-split-export-declaration@7.16.7: @@ -1009,10 +1168,22 @@ packages: dependencies: '@babel/types': 7.18.13 + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + dev: true + /@babel/helper-string-parser@7.18.10: resolution: {integrity: sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==} engines: {node: '>=6.9.0'} + /@babel/helper-string-parser@7.24.1: + resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/helper-validator-identifier@7.16.7: resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==} engines: {node: '>=6.9.0'} @@ -1022,20 +1193,26 @@ packages: resolution: {integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==} engines: {node: '>=6.9.0'} + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + /@babel/helper-validator-option@7.16.7: resolution: {integrity: sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==} engines: {node: '>=6.9.0'} - /@babel/helper-wrap-function@7.16.8: - resolution: {integrity: sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==} + /@babel/helper-validator-option@7.23.5: + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-wrap-function@7.22.20: + resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-function-name': 7.17.9 - '@babel/template': 7.16.7 - '@babel/traverse': 7.18.2 - '@babel/types': 7.18.13 - transitivePeerDependencies: - - supports-color + '@babel/helper-function-name': 7.23.0 + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 dev: true /@babel/helpers@7.18.2: @@ -1048,6 +1225,17 @@ packages: transitivePeerDependencies: - supports-color + /@babel/helpers@7.24.1: + resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/highlight@7.17.12: resolution: {integrity: sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==} engines: {node: '>=6.9.0'} @@ -1056,15 +1244,14 @@ packages: chalk: 2.4.2 js-tokens: 4.0.0 - /@babel/highlight@7.18.6: - resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + /@babel/highlight@7.24.2: + resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} engines: {node: '>=6.9.0'} - requiresBuild: true dependencies: - '@babel/helper-validator-identifier': 7.18.6 + '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 - dev: true + picocolors: 1.0.0 /@babel/parser@7.18.13: resolution: {integrity: sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg==} @@ -1080,715 +1267,737 @@ packages: dependencies: '@babel/types': 7.18.13 - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.17.12(@babel/core@7.18.2): - resolution: {integrity: sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==} + /@babel/parser@7.24.1: + resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.24.0 + dev: true + + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.17.12(@babel/core@7.18.2): - resolution: {integrity: sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==} + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 - '@babel/helper-skip-transparent-expression-wrappers': 7.16.0 - '@babel/plugin-proposal-optional-chaining': 7.17.12(@babel/core@7.18.2) + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.3) dev: true - /@babel/plugin-proposal-async-generator-functions@7.17.12(@babel/core@7.18.2): - resolution: {integrity: sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==} + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 - '@babel/helper-remap-async-to-generator': 7.16.8 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.18.2) - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.3 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-proposal-class-properties@7.17.12(@babel/core@7.18.2): - resolution: {integrity: sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==} + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3): + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-create-class-features-plugin': 7.18.0(@babel/core@7.18.2) - '@babel/helper-plugin-utils': 7.17.12 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.3 dev: true - /@babel/plugin-proposal-class-static-block@7.18.0(@babel/core@7.18.2): - resolution: {integrity: sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: - '@babel/core': ^7.12.0 + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-create-class-features-plugin': 7.18.0(@babel/core@7.18.2) - '@babel/helper-plugin-utils': 7.17.12 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.18.2) - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-proposal-dynamic-import@7.16.7(@babel/core@7.18.2): - resolution: {integrity: sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.3): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.18.2) + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-proposal-export-namespace-from@7.17.12(@babel/core@7.18.2): - resolution: {integrity: sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==} + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.3): + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.18.2) + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-proposal-json-strings@7.17.12(@babel/core@7.18.2): - resolution: {integrity: sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3): + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.18.2) + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-proposal-logical-assignment-operators@7.17.12(@babel/core@7.18.2): - resolution: {integrity: sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3): + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.18.2) + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-proposal-nullish-coalescing-operator@7.17.12(@babel/core@7.18.2): - resolution: {integrity: sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==} + /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.18.2) + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-proposal-numeric-separator@7.16.7(@babel/core@7.18.2): - resolution: {integrity: sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==} + /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.18.2) + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-proposal-object-rest-spread@7.18.0(@babel/core@7.18.2): - resolution: {integrity: sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.18.2): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.17.10 '@babel/core': 7.18.2 - '@babel/helper-compilation-targets': 7.18.2(@babel/core@7.18.2) '@babel/helper-plugin-utils': 7.17.12 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.18.2) - '@babel/plugin-transform-parameters': 7.17.12(@babel/core@7.18.2) - dev: true - /@babel/plugin-proposal-optional-catch-binding@7.16.7(@babel/core@7.18.2): - resolution: {integrity: sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 + '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.17.12 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.18.2) dev: true - /@babel/plugin-proposal-optional-chaining@7.17.12(@babel/core@7.18.2): - resolution: {integrity: sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.3): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 - '@babel/helper-skip-transparent-expression-wrappers': 7.16.0 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.18.2) + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-proposal-private-methods@7.17.12(@babel/core@7.18.2): - resolution: {integrity: sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==} + /@babel/plugin-syntax-jsx@7.17.12(@babel/core@7.18.2): + resolution: {integrity: sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.2 - '@babel/helper-create-class-features-plugin': 7.18.0(@babel/core@7.18.2) '@babel/helper-plugin-utils': 7.17.12 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/plugin-proposal-private-property-in-object@7.17.12(@babel/core@7.18.2): - resolution: {integrity: sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-annotate-as-pure': 7.16.7 - '@babel/helper-create-class-features-plugin': 7.18.0(@babel/core@7.18.2) - '@babel/helper-plugin-utils': 7.17.12 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.18.2) - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-proposal-unicode-property-regex@7.17.12(@babel/core@7.18.2): - resolution: {integrity: sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==} - engines: {node: '>=4'} + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-create-regexp-features-plugin': 7.17.12(@babel/core@7.18.2) - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.18.2): - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.18.2): - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.18.2): - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.18.2): - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.18.2): - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.3): + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-import-assertions@7.17.12(@babel/core@7.18.2): - resolution: {integrity: sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==} + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.3): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.18.2): - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + /@babel/plugin-syntax-typescript@7.17.12(@babel/core@7.18.2): + resolution: {integrity: sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.18.2 '@babel/helper-plugin-utils': 7.17.12 - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.18.2): - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.3): + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-jsx@7.17.12(@babel/core@7.18.2): - resolution: {integrity: sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==} + /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.18.2): - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + /@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.3): + resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3) dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.18.2): - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3) dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.18.2): - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.18.2): - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + /@babel/plugin-transform-block-scoping@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.18.2): - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.18.2): - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + /@babel/plugin-transform-class-static-block@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.3) + dev: true + + /@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3) + '@babel/helper-split-export-declaration': 7.22.6 + globals: 11.12.0 dev: true - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.18.2): - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/template': 7.24.0 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.18.2): - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + /@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-typescript@7.17.12(@babel/core@7.18.2): - resolution: {integrity: sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==} + /@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) + '@babel/helper-plugin-utils': 7.24.0 + dev: true - /@babel/plugin-transform-arrow-functions@7.17.12(@babel/core@7.18.2): - resolution: {integrity: sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==} + /@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-async-to-generator@7.17.12(@babel/core@7.18.2): - resolution: {integrity: sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==} + /@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-module-imports': 7.16.7 - '@babel/helper-plugin-utils': 7.17.12 - '@babel/helper-remap-async-to-generator': 7.16.8 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.3) dev: true - /@babel/plugin-transform-block-scoped-functions@7.16.7(@babel/core@7.18.2): - resolution: {integrity: sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==} + /@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-block-scoping@7.18.4(@babel/core@7.18.2): - resolution: {integrity: sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw==} + /@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.3) dev: true - /@babel/plugin-transform-classes@7.18.4(@babel/core@7.18.2): - resolution: {integrity: sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==} + /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-annotate-as-pure': 7.16.7 - '@babel/helper-environment-visitor': 7.18.2 - '@babel/helper-function-name': 7.17.9 - '@babel/helper-optimise-call-expression': 7.16.7 - '@babel/helper-plugin-utils': 7.17.12 - '@babel/helper-replace-supers': 7.18.2 - '@babel/helper-split-export-declaration': 7.16.7 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-computed-properties@7.17.12(@babel/core@7.18.2): - resolution: {integrity: sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==} + /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-destructuring@7.18.0(@babel/core@7.18.2): - resolution: {integrity: sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==} + /@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.3) dev: true - /@babel/plugin-transform-dotall-regex@7.16.7(@babel/core@7.18.2): - resolution: {integrity: sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==} + /@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-create-regexp-features-plugin': 7.17.12(@babel/core@7.18.2) - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-duplicate-keys@7.17.12(@babel/core@7.18.2): - resolution: {integrity: sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==} + /@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.3) dev: true - /@babel/plugin-transform-exponentiation-operator@7.16.7(@babel/core@7.18.2): - resolution: {integrity: sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==} + /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.16.7 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-for-of@7.18.1(@babel/core@7.18.2): - resolution: {integrity: sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==} + /@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-function-name@7.16.7(@babel/core@7.18.2): - resolution: {integrity: sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==} + /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-compilation-targets': 7.18.2(@babel/core@7.18.2) - '@babel/helper-function-name': 7.17.9 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-literals@7.17.12(@babel/core@7.18.2): - resolution: {integrity: sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==} + /@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-identifier': 7.22.20 dev: true - /@babel/plugin-transform-member-expression-literals@7.16.7(@babel/core@7.18.2): - resolution: {integrity: sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==} + /@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3): + resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-modules-amd@7.18.0(@babel/core@7.18.2): - resolution: {integrity: sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==} + /@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-module-transforms': 7.18.0 - '@babel/helper-plugin-utils': 7.17.12 - babel-plugin-dynamic-import-node: 2.3.3 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-modules-commonjs@7.18.2(@babel/core@7.18.2): - resolution: {integrity: sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==} + /@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-module-transforms': 7.18.0 - '@babel/helper-plugin-utils': 7.17.12 - '@babel/helper-simple-access': 7.18.2 - babel-plugin-dynamic-import-node: 2.3.3 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.3) dev: true - /@babel/plugin-transform-modules-systemjs@7.18.4(@babel/core@7.18.2): - resolution: {integrity: sha512-lH2UaQaHVOAeYrUUuZ8i38o76J/FnO8vu21OE+tD1MyP9lxdZoSfz+pDbWkq46GogUrdrMz3tiz/FYGB+bVThg==} + /@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-hoist-variables': 7.16.7 - '@babel/helper-module-transforms': 7.18.0 - '@babel/helper-plugin-utils': 7.17.12 - '@babel/helper-validator-identifier': 7.18.6 - babel-plugin-dynamic-import-node: 2.3.3 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.3) dev: true - /@babel/plugin-transform-modules-umd@7.18.0(@babel/core@7.18.2): - resolution: {integrity: sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==} + /@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-module-transforms': 7.18.0 - '@babel/helper-plugin-utils': 7.17.12 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.3 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.3) + '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.3) dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.17.12(@babel/core@7.18.2): - resolution: {integrity: sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==} + /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.0.0 + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-create-regexp-features-plugin': 7.17.12(@babel/core@7.18.2) - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3) dev: true - /@babel/plugin-transform-new-target@7.17.12(@babel/core@7.18.2): - resolution: {integrity: sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w==} + /@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3) dev: true - /@babel/plugin-transform-object-super@7.16.7(@babel/core@7.18.2): - resolution: {integrity: sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==} + /@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 - '@babel/helper-replace-supers': 7.18.2 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3) dev: true - /@babel/plugin-transform-parameters@7.17.12(@babel/core@7.18.2): - resolution: {integrity: sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==} + /@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-property-literals@7.16.7(@babel/core@7.18.2): - resolution: {integrity: sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==} + /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-regenerator@7.18.0(@babel/core@7.18.2): - resolution: {integrity: sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==} + /@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 - regenerator-transform: 0.15.0 + '@babel/core': 7.24.3 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.3) dev: true - /@babel/plugin-transform-reserved-words@7.17.12(@babel/core@7.18.2): - resolution: {integrity: sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==} + /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-shorthand-properties@7.16.7(@babel/core@7.18.2): - resolution: {integrity: sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==} + /@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + regenerator-transform: 0.15.2 dev: true - /@babel/plugin-transform-spread@7.17.12(@babel/core@7.18.2): - resolution: {integrity: sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==} + /@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 - '@babel/helper-skip-transparent-expression-wrappers': 7.16.0 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-sticky-regex@7.16.7(@babel/core@7.18.2): - resolution: {integrity: sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==} + /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-template-literals@7.18.2(@babel/core@7.18.2): - resolution: {integrity: sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==} + /@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-typeof-symbol@7.17.12(@babel/core@7.18.2): - resolution: {integrity: sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==} + /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true /@babel/plugin-transform-typescript@7.18.4(@babel/core@7.18.2): @@ -1804,131 +2013,160 @@ packages: transitivePeerDependencies: - supports-color - /@babel/plugin-transform-unicode-escapes@7.16.7(@babel/core@7.18.2): - resolution: {integrity: sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==} + /@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-unicode-regex@7.16.7(@babel/core@7.18.2): - resolution: {integrity: sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==} + /@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-create-regexp-features-plugin': 7.17.12(@babel/core@7.18.2) - '@babel/helper-plugin-utils': 7.17.12 + '@babel/core': 7.24.3 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/preset-env@7.18.2(@babel/core@7.18.2): - resolution: {integrity: sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==} + /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.17.10 - '@babel/core': 7.18.2 - '@babel/helper-compilation-targets': 7.18.2(@babel/core@7.18.2) - '@babel/helper-plugin-utils': 7.17.12 - '@babel/helper-validator-option': 7.16.7 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.17.12(@babel/core@7.18.2) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.17.12(@babel/core@7.18.2) - '@babel/plugin-proposal-async-generator-functions': 7.17.12(@babel/core@7.18.2) - '@babel/plugin-proposal-class-properties': 7.17.12(@babel/core@7.18.2) - '@babel/plugin-proposal-class-static-block': 7.18.0(@babel/core@7.18.2) - '@babel/plugin-proposal-dynamic-import': 7.16.7(@babel/core@7.18.2) - '@babel/plugin-proposal-export-namespace-from': 7.17.12(@babel/core@7.18.2) - '@babel/plugin-proposal-json-strings': 7.17.12(@babel/core@7.18.2) - '@babel/plugin-proposal-logical-assignment-operators': 7.17.12(@babel/core@7.18.2) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.17.12(@babel/core@7.18.2) - '@babel/plugin-proposal-numeric-separator': 7.16.7(@babel/core@7.18.2) - '@babel/plugin-proposal-object-rest-spread': 7.18.0(@babel/core@7.18.2) - '@babel/plugin-proposal-optional-catch-binding': 7.16.7(@babel/core@7.18.2) - '@babel/plugin-proposal-optional-chaining': 7.17.12(@babel/core@7.18.2) - '@babel/plugin-proposal-private-methods': 7.17.12(@babel/core@7.18.2) - '@babel/plugin-proposal-private-property-in-object': 7.17.12(@babel/core@7.18.2) - '@babel/plugin-proposal-unicode-property-regex': 7.17.12(@babel/core@7.18.2) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.18.2) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.18.2) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.18.2) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.18.2) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.18.2) - '@babel/plugin-syntax-import-assertions': 7.17.12(@babel/core@7.18.2) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.18.2) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.18.2) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.18.2) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.18.2) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.18.2) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.18.2) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.18.2) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.18.2) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.18.2) - '@babel/plugin-transform-arrow-functions': 7.17.12(@babel/core@7.18.2) - '@babel/plugin-transform-async-to-generator': 7.17.12(@babel/core@7.18.2) - '@babel/plugin-transform-block-scoped-functions': 7.16.7(@babel/core@7.18.2) - '@babel/plugin-transform-block-scoping': 7.18.4(@babel/core@7.18.2) - '@babel/plugin-transform-classes': 7.18.4(@babel/core@7.18.2) - '@babel/plugin-transform-computed-properties': 7.17.12(@babel/core@7.18.2) - '@babel/plugin-transform-destructuring': 7.18.0(@babel/core@7.18.2) - '@babel/plugin-transform-dotall-regex': 7.16.7(@babel/core@7.18.2) - '@babel/plugin-transform-duplicate-keys': 7.17.12(@babel/core@7.18.2) - '@babel/plugin-transform-exponentiation-operator': 7.16.7(@babel/core@7.18.2) - '@babel/plugin-transform-for-of': 7.18.1(@babel/core@7.18.2) - '@babel/plugin-transform-function-name': 7.16.7(@babel/core@7.18.2) - '@babel/plugin-transform-literals': 7.17.12(@babel/core@7.18.2) - '@babel/plugin-transform-member-expression-literals': 7.16.7(@babel/core@7.18.2) - '@babel/plugin-transform-modules-amd': 7.18.0(@babel/core@7.18.2) - '@babel/plugin-transform-modules-commonjs': 7.18.2(@babel/core@7.18.2) - '@babel/plugin-transform-modules-systemjs': 7.18.4(@babel/core@7.18.2) - '@babel/plugin-transform-modules-umd': 7.18.0(@babel/core@7.18.2) - '@babel/plugin-transform-named-capturing-groups-regex': 7.17.12(@babel/core@7.18.2) - '@babel/plugin-transform-new-target': 7.17.12(@babel/core@7.18.2) - '@babel/plugin-transform-object-super': 7.16.7(@babel/core@7.18.2) - '@babel/plugin-transform-parameters': 7.17.12(@babel/core@7.18.2) - '@babel/plugin-transform-property-literals': 7.16.7(@babel/core@7.18.2) - '@babel/plugin-transform-regenerator': 7.18.0(@babel/core@7.18.2) - '@babel/plugin-transform-reserved-words': 7.17.12(@babel/core@7.18.2) - '@babel/plugin-transform-shorthand-properties': 7.16.7(@babel/core@7.18.2) - '@babel/plugin-transform-spread': 7.17.12(@babel/core@7.18.2) - '@babel/plugin-transform-sticky-regex': 7.16.7(@babel/core@7.18.2) - '@babel/plugin-transform-template-literals': 7.18.2(@babel/core@7.18.2) - '@babel/plugin-transform-typeof-symbol': 7.17.12(@babel/core@7.18.2) - '@babel/plugin-transform-unicode-escapes': 7.16.7(@babel/core@7.18.2) - '@babel/plugin-transform-unicode-regex': 7.16.7(@babel/core@7.18.2) - '@babel/preset-modules': 0.1.5(@babel/core@7.18.2) - '@babel/types': 7.18.13 - babel-plugin-polyfill-corejs2: 0.3.1(@babel/core@7.18.2) - babel-plugin-polyfill-corejs3: 0.5.2(@babel/core@7.18.2) - babel-plugin-polyfill-regenerator: 0.3.1(@babel/core@7.18.2) - core-js-compat: 3.22.8 - semver: 6.3.0 + '@babel/core': 7.24.3 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/preset-env@7.24.3(@babel/core@7.24.3): + resolution: {integrity: sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.24.1 + '@babel/core': 7.24.3 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.3) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.3) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.3) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.3) + '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.3) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.3) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.3) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.3) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.3) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.3) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.3) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.3) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.3) + '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-async-generator-functions': 7.24.3(@babel/core@7.24.3) + '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-block-scoped-functions': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-block-scoping': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-class-properties': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-class-static-block': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-classes': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-destructuring': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-dotall-regex': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-duplicate-keys': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-dynamic-import': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-exponentiation-operator': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-export-namespace-from': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-for-of': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-json-strings': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-logical-assignment-operators': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-member-expression-literals': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-modules-amd': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-modules-systemjs': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-modules-umd': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.3) + '@babel/plugin-transform-new-target': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-numeric-separator': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-object-rest-spread': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-object-super': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-optional-catch-binding': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-private-property-in-object': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-property-literals': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-regenerator': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-reserved-words': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-template-literals': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-typeof-symbol': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-unicode-escapes': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-unicode-property-regex': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-transform-unicode-sets-regex': 7.24.1(@babel/core@7.24.3) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.3) + babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.3) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.3) + babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.24.3) + core-js-compat: 3.36.1 + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-modules@0.1.5(@babel/core@7.18.2): - resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.3): + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-plugin-utils': 7.17.12 - '@babel/plugin-proposal-unicode-property-regex': 7.17.12(@babel/core@7.18.2) - '@babel/plugin-transform-dotall-regex': 7.16.7(@babel/core@7.18.2) - '@babel/types': 7.18.13 + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/types': 7.24.0 esutils: 2.0.3 dev: true - /@babel/runtime@7.18.3: - resolution: {integrity: sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==} + /@babel/regjsgen@0.8.0: + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + dev: true + + /@babel/runtime@7.24.1: + resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==} engines: {node: '>=6.9.0'} dependencies: - regenerator-runtime: 0.13.9 + regenerator-runtime: 0.14.1 dev: true /@babel/standalone@7.18.4: @@ -1944,6 +2182,15 @@ packages: '@babel/parser': 7.18.13 '@babel/types': 7.18.13 + /@babel/template@7.24.0: + resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/parser': 7.24.1 + '@babel/types': 7.24.0 + dev: true + /@babel/traverse@7.18.2: resolution: {integrity: sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==} engines: {node: '>=6.9.0'} @@ -1961,6 +2208,24 @@ packages: transitivePeerDependencies: - supports-color + /@babel/traverse@7.24.1: + resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.1 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.24.1 + '@babel/types': 7.24.0 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/types@7.18.13: resolution: {integrity: sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ==} engines: {node: '>=6.9.0'} @@ -1977,6 +2242,15 @@ packages: to-fast-properties: 2.0.0 dev: true + /@babel/types@7.24.0: + resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.24.1 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + dev: true + /@bcoe/v8-coverage@0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true @@ -2063,10 +2337,10 @@ packages: '@commitlint/execute-rule': 17.0.0 '@commitlint/resolve-extends': 17.0.3 '@commitlint/types': 17.0.0 - '@types/node': 17.0.40 + '@types/node': 18.19.25 chalk: 4.1.2 cosmiconfig: 7.0.1 - cosmiconfig-typescript-loader: 2.0.1(@types/node@17.0.40)(cosmiconfig@7.0.1)(typescript@4.7.4) + cosmiconfig-typescript-loader: 2.0.1(@types/node@18.19.25)(cosmiconfig@7.0.1)(typescript@4.7.4) lodash: 4.17.21 resolve-from: 5.0.0 typescript: 4.7.4 @@ -2169,17 +2443,17 @@ packages: /@docsearch/css@3.1.0: resolution: {integrity: sha512-bh5IskwkkodbvC0FzSg1AxMykfDl95hebEKwxNoq4e5QaGzOXSBgW8+jnMFZ7JU4sTBiB04vZWoUSzNrPboLZA==} - /@docsearch/js@3.1.0(@types/react@18.2.43): + /@docsearch/js@3.1.0(@types/react@18.2.67): resolution: {integrity: sha512-5XSK+xbP0hcTIp54MECqxkWLs6kf7Ug4nWdxWNtx8cUpLiFNFnKXDxCb35wnyNpjukmrx7Q9DkO5tFFsmNVxng==} dependencies: - '@docsearch/react': 3.1.0(@types/react@18.2.43) + '@docsearch/react': 3.1.0(@types/react@18.2.67) preact: 10.7.3 transitivePeerDependencies: - '@types/react' - react - react-dom - /@docsearch/react@3.1.0(@types/react@18.2.43): + /@docsearch/react@3.1.0(@types/react@18.2.67): resolution: {integrity: sha512-bjB6ExnZzf++5B7Tfoi6UXgNwoUnNOfZ1NyvnvPhWgCMy5V/biAtLL4o7owmZSYdAKeFSvZ5Lxm0is4su/dBWg==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' @@ -2193,7 +2467,7 @@ packages: dependencies: '@algolia/autocomplete-core': 1.6.3 '@docsearch/css': 3.1.0 - '@types/react': 18.2.43 + '@types/react': 18.2.67 algoliasearch: 4.13.1 /@element-plus/icons-vue@2.3.1(vue@3.2.37): @@ -2218,12 +2492,212 @@ packages: source-map-support: 0.5.21 dev: true - /@esbuild-kit/esm-loader@2.3.1: - resolution: {integrity: sha512-CC0H91Oa02cczLswEoiLowTzWxvnS3tIBGkQa1BnieFK7HHV4whrBFGRlUD9rMHfyyoO55IuOqNujycXX+gI8A==} - dependencies: - '@esbuild-kit/core-utils': 2.0.2 - get-tsconfig: 4.0.7 + /@esbuild/aix-ppc64@0.19.12: + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.19.12: + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.19.12: + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.19.12: + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.19.12: + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.19.12: + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.19.12: + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.19.12: + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.19.12: + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.19.12: + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.19.12: + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.19.12: + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.19.12: + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.19.12: + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.19.12: + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.19.12: + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.19.12: + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.19.12: + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.19.12: + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.19.12: + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true dev: true + optional: true + + /@esbuild/win32-arm64@0.19.12: + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.19.12: + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.19.12: + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true /@eslint/eslintrc@1.3.0: resolution: {integrity: sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==} @@ -2292,6 +2766,13 @@ packages: engines: {node: '>=8'} dev: true + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.27.8 + dev: true + /@jridgewell/gen-mapping@0.1.1: resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} engines: {node: '>=6.0.0'} @@ -2307,30 +2788,60 @@ packages: '@jridgewell/sourcemap-codec': 1.4.13 '@jridgewell/trace-mapping': 0.3.13 + /@jridgewell/gen-mapping@0.3.5: + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 + dev: true + /@jridgewell/resolve-uri@3.0.7: resolution: {integrity: sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==} engines: {node: '>=6.0.0'} + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + dev: true + /@jridgewell/set-array@1.1.1: resolution: {integrity: sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==} engines: {node: '>=6.0.0'} - /@jridgewell/source-map@0.3.2: - resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==} + /@jridgewell/set-array@1.2.1: + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/source-map@0.3.6: + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} dependencies: - '@jridgewell/gen-mapping': 0.3.1 - '@jridgewell/trace-mapping': 0.3.13 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 dev: true /@jridgewell/sourcemap-codec@1.4.13: resolution: {integrity: sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==} + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true + /@jridgewell/trace-mapping@0.3.13: resolution: {integrity: sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==} dependencies: '@jridgewell/resolve-uri': 3.0.7 '@jridgewell/sourcemap-codec': 1.4.13 + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + /@jridgewell/trace-mapping@0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: @@ -2371,6 +2882,38 @@ packages: - encoding dev: true + /@octokit/app@13.1.8: + resolution: {integrity: sha512-bCncePMguVyFpdBbnceFKfmPOuUD94T189GuQ0l00ZcQ+mX4hyPqnaWJlsXE2HSdA71eV7p8GPDZ+ErplTkzow==} + engines: {node: '>= 14'} + dependencies: + '@octokit/auth-app': 4.0.13 + '@octokit/auth-unauthenticated': 3.0.1 + '@octokit/core': 4.2.4 + '@octokit/oauth-app': 4.2.4 + '@octokit/plugin-paginate-rest': 6.1.2(@octokit/core@4.2.4) + '@octokit/types': 9.3.2 + '@octokit/webhooks': 10.0.7 + transitivePeerDependencies: + - encoding + dev: true + + /@octokit/auth-app@4.0.13: + resolution: {integrity: sha512-NBQkmR/Zsc+8fWcVIFrwDgNXS7f4XDrkd9LHdi9DPQw1NdGHLviLzRO2ZBwTtepnwHXW5VTrVU9eFGijMUqllg==} + engines: {node: '>= 14'} + dependencies: + '@octokit/auth-oauth-app': 5.0.1 + '@octokit/auth-oauth-user': 2.0.1 + '@octokit/request': 6.0.2 + '@octokit/request-error': 3.0.3 + '@octokit/types': 9.3.2 + deprecation: 2.3.1 + lru-cache: 9.1.2 + universal-github-app-jwt: 1.1.2 + universal-user-agent: 6.0.0 + transitivePeerDependencies: + - encoding + dev: true + /@octokit/auth-app@4.0.4: resolution: {integrity: sha512-s3MK7M9e8TD/ih8lCBTrdZ74XPHMtHV7aycCKNBRQ2QJPdMwqx0mVbmLOIuW4dCwMX7K243+JAvf52tryFHRdQ==} engines: {node: '>= 14'} @@ -2480,6 +3023,21 @@ packages: - encoding dev: true + /@octokit/core@4.2.4: + resolution: {integrity: sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==} + engines: {node: '>= 14'} + dependencies: + '@octokit/auth-token': 3.0.0 + '@octokit/graphql': 5.0.0 + '@octokit/request': 6.0.2 + '@octokit/request-error': 3.0.3 + '@octokit/types': 9.3.2 + before-after-hook: 2.2.2 + universal-user-agent: 6.0.0 + transitivePeerDependencies: + - encoding + dev: true + /@octokit/endpoint@6.0.12: resolution: {integrity: sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==} dependencies: @@ -2537,6 +3095,23 @@ packages: - encoding dev: true + /@octokit/oauth-app@4.2.4: + resolution: {integrity: sha512-iuOVFrmm5ZKNavRtYu5bZTtmlKLc5uVgpqTfMEqYYf2OkieV6VdxKZAb5qLVdEPL8LU2lMWcGpavPBV835cgoA==} + engines: {node: '>= 14'} + dependencies: + '@octokit/auth-oauth-app': 5.0.1 + '@octokit/auth-oauth-user': 2.0.1 + '@octokit/auth-unauthenticated': 3.0.1 + '@octokit/core': 4.2.4 + '@octokit/oauth-authorization-url': 5.0.0 + '@octokit/oauth-methods': 2.0.2 + '@types/aws-lambda': 8.10.98 + fromentries: 1.3.2 + universal-user-agent: 6.0.0 + transitivePeerDependencies: + - encoding + dev: true + /@octokit/oauth-authorization-url@4.3.3: resolution: {integrity: sha512-lhP/t0i8EwTmayHG4dqLXgU+uPVys4WD/qUNvC+HfB1S1dyqULm5Yx9uKc1x79aP66U1Cb4OZeW8QU/RA9A4XA==} dev: true @@ -2583,6 +3158,10 @@ packages: resolution: {integrity: sha512-ydcKLs2KKcxlhpdWLzJxEBDEk/U5MUeqtqkXlrtAUXXFPs6vLl1PEGghFC/BbpleosB7iXs0Z4P2DGe7ZT5ZNg==} dev: true + /@octokit/openapi-types@18.1.1: + resolution: {integrity: sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==} + dev: true + /@octokit/plugin-paginate-rest@2.17.0(@octokit/core@3.6.0): resolution: {integrity: sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw==} peerDependencies: @@ -2602,6 +3181,17 @@ packages: '@octokit/types': 6.39.0 dev: true + /@octokit/plugin-paginate-rest@6.1.2(@octokit/core@4.2.4): + resolution: {integrity: sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==} + engines: {node: '>= 14'} + peerDependencies: + '@octokit/core': '>=4' + dependencies: + '@octokit/core': 4.2.4 + '@octokit/tsconfig': 1.0.2 + '@octokit/types': 9.3.2 + dev: true + /@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0): resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} peerDependencies: @@ -2631,6 +3221,16 @@ packages: deprecation: 2.3.1 dev: true + /@octokit/plugin-rest-endpoint-methods@7.2.3(@octokit/core@4.2.4): + resolution: {integrity: sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA==} + engines: {node: '>= 14'} + peerDependencies: + '@octokit/core': '>=3' + dependencies: + '@octokit/core': 4.2.4 + '@octokit/types': 10.0.0 + dev: true + /@octokit/plugin-retry@3.0.9: resolution: {integrity: sha512-r+fArdP5+TG6l1Rv/C9hVoty6tldw6cE2pRHNGmFPdyfrc696R6JjrQ3d7HdVqGwuzfyrcaLAKD7K8TX8aehUQ==} dependencies: @@ -2638,6 +3238,17 @@ packages: bottleneck: 2.19.5 dev: true + /@octokit/plugin-retry@4.1.6(@octokit/core@4.2.4): + resolution: {integrity: sha512-obkYzIgEC75r8+9Pnfiiqy3y/x1bc3QLE5B7qvv9wi9Kj0R5tGQFC6QMBg1154WQ9lAVypuQDGyp3hNpp15gQQ==} + engines: {node: '>= 14'} + peerDependencies: + '@octokit/core': '>=3' + dependencies: + '@octokit/core': 4.2.4 + '@octokit/types': 9.3.2 + bottleneck: 2.19.5 + dev: true + /@octokit/plugin-throttling@4.0.1(@octokit/core@4.0.4): resolution: {integrity: sha512-CWAM7+3XkkmzwAd4FrI4+ogOd5oAmMJER8/6AYDTb4ErGuvSdSSGeI5jFw6quNj7qNV7TvSWLTnNgRjSdBEE2A==} engines: {node: '>= 14'} @@ -2649,6 +3260,17 @@ packages: bottleneck: 2.19.5 dev: true + /@octokit/plugin-throttling@5.2.3(@octokit/core@4.2.4): + resolution: {integrity: sha512-C9CFg9mrf6cugneKiaI841iG8DOv6P5XXkjmiNNut+swePxQ7RWEdAZRp5rJoE1hjsIqiYcKa/ZkOQ+ujPI39Q==} + engines: {node: '>= 14'} + peerDependencies: + '@octokit/core': ^4.0.0 + dependencies: + '@octokit/core': 4.2.4 + '@octokit/types': 9.3.2 + bottleneck: 2.19.5 + dev: true + /@octokit/request-error@2.1.0: resolution: {integrity: sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==} dependencies: @@ -2666,6 +3288,15 @@ packages: once: 1.4.0 dev: true + /@octokit/request-error@3.0.3: + resolution: {integrity: sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==} + engines: {node: '>= 14'} + dependencies: + '@octokit/types': 9.3.2 + deprecation: 2.3.1 + once: 1.4.0 + dev: true + /@octokit/request@5.6.3: resolution: {integrity: sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==} dependencies: @@ -2704,6 +3335,16 @@ packages: - encoding dev: true + /@octokit/tsconfig@1.0.2: + resolution: {integrity: sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA==} + dev: true + + /@octokit/types@10.0.0: + resolution: {integrity: sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==} + dependencies: + '@octokit/openapi-types': 18.1.1 + dev: true + /@octokit/types@6.34.0: resolution: {integrity: sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw==} dependencies: @@ -2722,6 +3363,12 @@ packages: '@octokit/openapi-types': 12.8.0 dev: true + /@octokit/types@9.3.2: + resolution: {integrity: sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==} + dependencies: + '@octokit/openapi-types': 18.1.1 + dev: true + /@octokit/webhooks-methods@3.0.0: resolution: {integrity: sha512-FAIyAchH9JUKXugKMC17ERAXM/56vVJekwXOON46pmUDYfU7uXB4cFY8yc8nYr5ABqVI7KjRKfFt3mZF7OcyUA==} engines: {node: '>= 14'} @@ -2850,13 +3497,13 @@ packages: resolution: {integrity: sha512-W3zsG9585cKL+FqgcT+IfTgZX5C+CbNkFjOnJN+qbysT1N30+BbvEByCcDMsTy7QDrAk6oS7WU1Rym3U2xlh2Q==} engines: {node: '>=14.6'} dependencies: - execa: /safe-execa@0.1.2 + execa: /safe-execa@0.1.3 /@pnpm/graceful-fs@2.0.0: resolution: {integrity: sha512-ogUZCGf0/UILZt6d8PsO4gA4pXh7f0BumXeFkcCe4AQ65PXPKfAkHC0C30Lheh2EgFOpLZm3twDP1Eiww18gew==} engines: {node: '>=14.19'} dependencies: - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 /@pnpm/lockfile-types@4.2.0: resolution: {integrity: sha512-8/t9YrC8VSJgEJv/m1UQMNPHs3Tu4Ow7shpuIDPD5sqjNw3lICB9ybbPlO+6/bkb9/D8QizbBigbVsDybWR9Hw==} @@ -2911,7 +3558,7 @@ packages: '@pnpm/logger': 4.0.0 '@pnpm/types': 8.4.0 detect-libc: 2.0.1 - execa: /safe-execa@0.1.2 + execa: /safe-execa@0.1.3 mem: 8.1.1 semver: 7.3.7 @@ -2972,6 +3619,10 @@ packages: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: true + /@polka/url@1.0.0-next.25: + resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} + dev: true + /@rollup/plugin-alias@3.1.9(rollup@2.75.6): resolution: {integrity: sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw==} engines: {node: '>=8.0.0'} @@ -2982,7 +3633,7 @@ packages: slash: 3.0.0 dev: true - /@rollup/plugin-babel@5.3.1(@babel/core@7.18.2)(rollup@2.75.7): + /@rollup/plugin-babel@5.3.1(@babel/core@7.24.3)(rollup@2.79.1): resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -2993,10 +3644,10 @@ packages: '@types/babel__core': optional: true dependencies: - '@babel/core': 7.18.2 - '@babel/helper-module-imports': 7.16.7 - '@rollup/pluginutils': 3.1.0(rollup@2.75.7) - rollup: 2.75.7 + '@babel/core': 7.24.3 + '@babel/helper-module-imports': 7.24.3 + '@rollup/pluginutils': 3.1.0(rollup@2.79.1) + rollup: 2.79.1 dev: true /@rollup/plugin-commonjs@21.1.0(rollup@2.75.6): @@ -3040,19 +3691,19 @@ packages: rollup: 2.75.6 dev: true - /@rollup/plugin-node-resolve@11.2.1(rollup@2.75.7): + /@rollup/plugin-node-resolve@11.2.1(rollup@2.79.1): resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} engines: {node: '>= 10.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0 dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.75.7) + '@rollup/pluginutils': 3.1.0(rollup@2.79.1) '@types/resolve': 1.17.1 builtin-modules: 3.3.0 - deepmerge: 4.2.2 + deepmerge: 4.3.1 is-module: 1.0.0 - resolve: 1.22.1 - rollup: 2.75.7 + resolve: 1.22.8 + rollup: 2.79.1 dev: true /@rollup/plugin-node-resolve@13.3.0(rollup@2.75.6): @@ -3085,14 +3736,14 @@ packages: rollup: 2.75.7 dev: false - /@rollup/plugin-replace@2.4.2(rollup@2.75.7): + /@rollup/plugin-replace@2.4.2(rollup@2.79.1): resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} peerDependencies: rollup: ^1.20.0 || ^2.0.0 dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.75.7) + '@rollup/pluginutils': 3.1.0(rollup@2.79.1) magic-string: 0.25.9 - rollup: 2.75.7 + rollup: 2.79.1 dev: true /@rollup/plugin-replace@4.0.0(rollup@2.75.6): @@ -3127,6 +3778,19 @@ packages: estree-walker: 1.0.1 picomatch: 2.3.1 rollup: 2.75.7 + dev: false + + /@rollup/pluginutils@3.1.0(rollup@2.79.1): + resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + '@types/estree': 0.0.39 + estree-walker: 1.0.1 + picomatch: 2.3.1 + rollup: 2.79.1 + dev: true /@rollup/pluginutils@4.2.1: resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} @@ -3135,13 +3799,135 @@ packages: estree-walker: 2.0.2 picomatch: 2.3.1 + /@rollup/pluginutils@5.1.0: + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + + /@rollup/rollup-android-arm-eabi@4.13.0: + resolution: {integrity: sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-android-arm64@4.13.0: + resolution: {integrity: sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-arm64@4.13.0: + resolution: {integrity: sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-x64@4.13.0: + resolution: {integrity: sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.13.0: + resolution: {integrity: sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.13.0: + resolution: {integrity: sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.13.0: + resolution: {integrity: sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.13.0: + resolution: {integrity: sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.13.0: + resolution: {integrity: sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.13.0: + resolution: {integrity: sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.13.0: + resolution: {integrity: sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.13.0: + resolution: {integrity: sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.13.0: + resolution: {integrity: sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true + /@surma/rollup-plugin-off-main-thread@2.2.3: resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} dependencies: - ejs: 3.1.8 - json5: 2.2.1 + ejs: 3.1.9 + json5: 2.2.3 magic-string: 0.25.9 - string.prototype.matchall: 4.0.7 + string.prototype.matchall: 4.0.11 dev: true /@sxzz/popperjs-es@2.11.7: @@ -3156,7 +3942,7 @@ packages: /@ts-morph/common@0.13.0: resolution: {integrity: sha512-fEJ6j7Cu8yiWjA4UmybOBH9Efgb/64ZTWuvCF4KysGu4xz8ettfyaqFt8WZ1btCxXsGZJjZ2/3svOF6rL+UFdQ==} dependencies: - fast-glob: 3.2.11 + fast-glob: 3.3.2 minimatch: 5.1.0 mkdirp: 1.0.4 path-browserify: 1.0.1 @@ -3185,22 +3971,16 @@ packages: resolution: {integrity: sha512-wJsiX1tosQ+J5+bY5LrSahHxr2wT+uME5UDwdN1kg4frt40euqA+wzECkmq4t5QbveHiJepfdThgQrPw6KiSlg==} dev: true - /@types/chai-subset@1.3.3: - resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} - dependencies: - '@types/chai': 4.3.1 - dev: true - - /@types/chai@4.3.1: - resolution: {integrity: sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ==} - dev: true - /@types/estree@0.0.39: resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} /@types/estree@0.0.51: resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + dev: true + /@types/expect@1.20.4: resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==} dev: true @@ -3208,21 +3988,21 @@ packages: /@types/fs-extra@9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 17.0.40 + '@types/node': 18.19.25 dev: true /@types/glob-stream@6.1.1: resolution: {integrity: sha512-AGOUTsTdbPkRS0qDeyeS+6KypmfVpbT5j23SN8UPG63qjKXNKjXn6V9wZUr8Fin0m9l8oGYaPK8b2WUMF8xI1A==} dependencies: '@types/glob': 7.2.0 - '@types/node': 17.0.40 + '@types/node': 18.19.25 dev: true /@types/glob@7.2.0: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 3.0.5 - '@types/node': 17.0.40 + '@types/node': 18.19.25 dev: true /@types/gulp-autoprefixer@0.0.33: @@ -3260,7 +4040,7 @@ packages: /@types/jsdom@16.2.14: resolution: {integrity: sha512-6BAy1xXEmMuHeAJ4Fv4yXKwBDTGTOseExKE3OaHiNycdHdZw59KfYzrt0DkDluvwmik1HRt6QS7bImxUmpSy+w==} dependencies: - '@types/node': 17.0.40 + '@types/node': 18.19.25 '@types/parse5': 6.0.3 '@types/tough-cookie': 4.0.2 dev: true @@ -3279,6 +4059,12 @@ packages: '@types/node': 17.0.40 dev: true + /@types/jsonwebtoken@9.0.6: + resolution: {integrity: sha512-/5hndP5dCjloafCXns6SZyESp3Ldq7YjH3zwzwczYnjxIT0Fqzk5ROSYVGfFyczIue7IUEj8hkvLbPoLQ18vQw==} + dependencies: + '@types/node': 18.19.25 + dev: true + /@types/linkify-it@3.0.2: resolution: {integrity: sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==} dev: true @@ -3333,6 +4119,12 @@ packages: /@types/node@17.0.40: resolution: {integrity: sha512-UXdBxNGqTMtm7hCwh9HtncFVLrXoqA3oJW30j6XWp5BH/wu3mVeaxo7cq5benFdBw34HB3XDT2TRPI7rXZ+mDg==} + /@types/node@18.19.25: + resolution: {integrity: sha512-NrNXHJCexZtcbR9K1hsv1fSbwAwnhv7ql7l331aKvW0sej5H0NY1o64BHe0AA2ZoQuTm7NE6fyNW079MOWXe4Q==} + dependencies: + undici-types: 5.26.5 + dev: true + /@types/normalize-package-data@2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} @@ -3347,8 +4139,8 @@ packages: /@types/prop-types@15.7.11: resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==} - /@types/react@18.2.43: - resolution: {integrity: sha512-nvOV01ZdBdd/KW6FahSbcNplt2jCJfyWdTos61RYHV+FVv5L/g9AOX1bmbVcWcLFL8+KHQfh1zVIQrud6ihyQA==} + /@types/react@18.2.67: + resolution: {integrity: sha512-vkIE2vTIMHQ/xL0rgmuoECBCkZFZeHr49HeWSc24AptMbNRo7pwSBvj73rlJJs9fGKj0koS+V7kQB1jHS0uCgw==} dependencies: '@types/prop-types': 15.7.11 '@types/scheduler': 0.16.8 @@ -3362,7 +4154,7 @@ packages: /@types/sass@1.43.1: resolution: {integrity: sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==} dependencies: - '@types/node': 17.0.40 + '@types/node': 18.19.25 dev: true /@types/scheduler@0.16.8: @@ -3372,8 +4164,8 @@ packages: resolution: {integrity: sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==} dev: true - /@types/trusted-types@2.0.2: - resolution: {integrity: sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==} + /@types/trusted-types@2.0.7: + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} dev: true /@types/undertaker-registry@1.0.1: @@ -3383,7 +4175,7 @@ packages: /@types/undertaker@1.2.8: resolution: {integrity: sha512-gW3PRqCHYpo45XFQHJBhch7L6hytPsIe0QeLujlnFsjHPnXLhJcPdN6a9368d7aIQgH2I/dUTPFBlGeSNA3qOg==} dependencies: - '@types/node': 17.0.40 + '@types/node': 18.19.25 '@types/undertaker-registry': 1.0.1 async-done: 1.3.2 dev: true @@ -3396,7 +4188,7 @@ packages: resolution: {integrity: sha512-LgBpYIWuuGsihnlF+OOWWz4ovwCYlT03gd3DuLwex50cYZLmX3yrW+sFF9ndtmh7zcZpS6Ri47PrIu+fV+sbXw==} dependencies: '@types/glob-stream': 6.1.1 - '@types/node': 17.0.40 + '@types/node': 18.19.25 '@types/vinyl': 2.0.6 dev: true @@ -3409,13 +4201,12 @@ packages: /@types/web-bluetooth@0.0.15: resolution: {integrity: sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA==} - dev: false - /@types/yauzl@2.10.0: - resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==} + /@types/yauzl@2.10.3: + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} requiresBuild: true dependencies: - '@types/node': 17.0.40 + '@types/node': 18.19.25 dev: true optional: true @@ -3557,7 +4348,7 @@ packages: chokidar: 3.5.3 colorette: 2.0.17 consola: 2.15.3 - fast-glob: 3.2.11 + fast-glob: 3.3.2 pathe: 0.3.0 perfect-debounce: 0.1.3 dev: true @@ -3702,10 +4493,58 @@ packages: vite: 2.9.15(sass@1.53.0) vue: 3.2.37 - /@vitest/ui@0.16.0: - resolution: {integrity: sha512-RwXYTFA2tVwUhuuTcdAaK5kIq+I3pnvNQUojPThZPZhS7ttKXkCgWwud0KXwnR04ofKc3HXEuzWPf6s7JD1vgw==} + /@vitest/expect@1.4.0: + resolution: {integrity: sha512-Jths0sWCJZ8BxjKe+p+eKsoqev1/T8lYcrjavEaz8auEJ4jAVY0GwW3JKmdVU4mmNPLPHixh4GNXP7GFtAiDHA==} dependencies: - sirv: 2.0.2 + '@vitest/spy': 1.4.0 + '@vitest/utils': 1.4.0 + chai: 4.4.1 + dev: true + + /@vitest/runner@1.4.0: + resolution: {integrity: sha512-EDYVSmesqlQ4RD2VvWo3hQgTJ7ZrFQ2VSJdfiJiArkCerDAGeyF1i6dHkmySqk573jLp6d/cfqCN+7wUB5tLgg==} + dependencies: + '@vitest/utils': 1.4.0 + p-limit: 5.0.0 + pathe: 1.1.2 + dev: true + + /@vitest/snapshot@1.4.0: + resolution: {integrity: sha512-saAFnt5pPIA5qDGxOHxJ/XxhMFKkUSBJmVt5VgDsAqPTX6JP326r5C/c9UuCMPoXNzuudTPsYDZCoJ5ilpqG2A==} + dependencies: + magic-string: 0.30.8 + pathe: 1.1.2 + pretty-format: 29.7.0 + dev: true + + /@vitest/spy@1.4.0: + resolution: {integrity: sha512-Ywau/Qs1DzM/8Uc+yA77CwSegizMlcgTJuYGAi0jujOteJOUf1ujunHThYo243KG9nAyWT3L9ifPYZ5+As/+6Q==} + dependencies: + tinyspy: 2.2.1 + dev: true + + /@vitest/ui@1.4.0(vitest@1.4.0): + resolution: {integrity: sha512-XC6CMhN1gzYcGbpn6/Oanj4Au2EXwQEX6vpcOeLlZv8dy7g11Ukx8zwtYQbwxs9duK2s9j2o5rbQiCP5DPAcmw==} + peerDependencies: + vitest: 1.4.0 + dependencies: + '@vitest/utils': 1.4.0 + fast-glob: 3.3.2 + fflate: 0.8.2 + flatted: 3.3.1 + pathe: 1.1.2 + picocolors: 1.0.0 + sirv: 2.0.4 + vitest: 1.4.0(@types/node@18.19.25)(@vitest/ui@1.4.0)(happy-dom@14.3.3)(jsdom@16.4.0)(sass@1.53.0) + dev: true + + /@vitest/utils@1.4.0: + resolution: {integrity: sha512-mx3Yd1/6e2Vt/PUC98DcqTirtfxUyAZ32uK82r8rZzbtBeBo+nqgnjx/LvqQdWsrvNtm14VmurNgcf4nqY5gJg==} + dependencies: + diff-sequences: 29.6.3 + estree-walker: 3.0.3 + loupe: 2.3.7 + pretty-format: 29.7.0 dev: true /@volar/code-gen@0.38.2: @@ -3738,6 +4577,52 @@ packages: '@vue/reactivity': 3.2.37 dev: true + /@vue-macros/api@0.9.3(vue@3.2.37): + resolution: {integrity: sha512-Yjq5gxdd97FIBNpxp7E2aRChqN6UVLEkRM6bgdaYDjbZsu6uvO2pkwQFQSx4Z0n8k/69KC4N05UQ1V68XF7I8Q==} + engines: {node: '>=16.14.0'} + dependencies: + '@babel/types': 7.24.0 + '@vue-macros/common': 1.10.1(vue@3.2.37) + resolve.exports: 2.0.2 + transitivePeerDependencies: + - rollup + - vue + dev: true + + /@vue-macros/better-define@1.7.3(vue@3.2.37): + resolution: {integrity: sha512-vw1GemB2WVO2rqXN4e0YXibeaPWud0d88hJvN4FnslZ5oMrr/ne9oo28Dqj1FZWmB7UlOiJIIGrPxZyMrSG6uw==} + engines: {node: '>=16.14.0'} + dependencies: + '@vue-macros/api': 0.9.3(vue@3.2.37) + '@vue-macros/common': 1.10.1(vue@3.2.37) + unplugin: 1.10.0 + transitivePeerDependencies: + - rollup + - vue + dev: true + + /@vue-macros/boolean-prop@0.3.2(vue@3.2.37): + resolution: {integrity: sha512-vdhjfpRsxln/XXiqIa3De3wJsZGRiiGWa6rMO3cp3E5954a8yBlGqdBWFy+wxOMdTnqm73Ag1JvWM2nm7VXNlQ==} + engines: {node: '>=16.14.0'} + dependencies: + '@vue-macros/common': 1.10.1(vue@3.2.37) + '@vue/compiler-core': 3.4.21 + transitivePeerDependencies: + - rollup + - vue + dev: true + + /@vue-macros/chain-call@0.2.2(vue@3.2.37): + resolution: {integrity: sha512-eXmiGd8pNv+6Oy9m8U0rjwa7eY5KjRf0CriU+yZgnzW09G+7+w47gQuVQveLzY+KX1sbhOTOcajyjfhDqNVKfw==} + engines: {node: '>=16.14.0'} + dependencies: + '@vue-macros/common': 1.10.1(vue@3.2.37) + unplugin: 1.10.0 + transitivePeerDependencies: + - rollup + - vue + dev: true + /@vue-macros/common@0.11.2: resolution: {integrity: sha512-z6yKvUL45Sb29QzEDNTwt8mMgcA/ErEZA+BUr6VGiGC0eTXMvkP8E8nwER1q/bVg/R+Xa/m3A6vcJHSUZFodRw==} engines: {node: '>=14.19.0'} @@ -3746,19 +4631,38 @@ packages: '@vue/compiler-sfc': 3.2.39 magic-string: 0.26.3 - /@vue-macros/define-model@0.11.2: - resolution: {integrity: sha512-XYH1zFBWNBjJUTzVuwgGo0Yx4cCtUEDvLMcu6TKVeqq9wrcleof4pwikOc7XrLDNqN5AxPzGFQ7wPl0iUDfb7Q==} - engines: {node: '>=14.19.0'} + /@vue-macros/common@1.10.1(vue@3.2.37): + resolution: {integrity: sha512-uftSpfwdwitcQT2lM8aVxcfe5rKQBzC9jMrtJM5sG4hEuFyfIvnJihpPpnaWxY+X4p64k+YYXtBFv+1O5Bq3dg==} + engines: {node: '>=16.14.0'} + peerDependencies: + vue: ^2.7.0 || ^3.2.25 + peerDependenciesMeta: + vue: + optional: true dependencies: - '@rollup/pluginutils': 4.2.1 - '@vue-macros/common': 0.11.2 - ast-walker-scope: 0.2.3 - unplugin: 0.9.5(esbuild@0.14.47)(rollup@2.75.7) + '@babel/types': 7.24.0 + '@rollup/pluginutils': 5.1.0 + '@vue/compiler-sfc': 3.4.21 + ast-kit: 0.11.3 + local-pkg: 0.5.0 + magic-string-ast: 0.3.0 + vue: 3.2.37 + transitivePeerDependencies: + - rollup + dev: true + + /@vue-macros/define-emit@0.2.3(vue@3.2.37): + resolution: {integrity: sha512-YTkjhQ+7qqb8goYLAgpJGxzR0pOvANYXh+tkhMzywxt0x+4HW+I2xkAQcRtfGNo3M/4FaM7CUXuTsm2vie39Ug==} + engines: {node: '>=16.14.0'} + peerDependencies: + vue: ^2.7.0 || ^3.2.25 + dependencies: + '@vue-macros/api': 0.9.3(vue@3.2.37) + '@vue-macros/common': 1.10.1(vue@3.2.37) + unplugin: 1.10.0 + vue: 3.2.37 transitivePeerDependencies: - - esbuild - rollup - - vite - - webpack dev: true /@vue-macros/define-model@0.11.2(esbuild@0.14.47)(rollup@2.75.7): @@ -3776,14 +4680,14 @@ packages: - webpack dev: false - /@vue-macros/define-model@0.11.2(rollup@2.75.7)(vite@2.9.15): + /@vue-macros/define-model@0.11.2(rollup@2.79.1)(vite@2.9.15): resolution: {integrity: sha512-XYH1zFBWNBjJUTzVuwgGo0Yx4cCtUEDvLMcu6TKVeqq9wrcleof4pwikOc7XrLDNqN5AxPzGFQ7wPl0iUDfb7Q==} engines: {node: '>=14.19.0'} dependencies: '@rollup/pluginutils': 4.2.1 '@vue-macros/common': 0.11.2 ast-walker-scope: 0.2.3 - unplugin: 0.9.5(rollup@2.75.7)(vite@2.9.15) + unplugin: 0.9.5(rollup@2.79.1)(vite@2.9.15) transitivePeerDependencies: - esbuild - rollup @@ -3791,18 +4695,64 @@ packages: - webpack dev: true - /@vue-macros/define-render@0.11.2: - resolution: {integrity: sha512-Q+19LmqNlYNvNLqm8MGKqQej5WJ21ubrrqbNwDsyJl7mEChiv0wfwc0TQTgfHflkxlLomG2+JR0PPwlRT+qoXQ==} - engines: {node: '>=14.19.0'} + /@vue-macros/define-models@1.2.2(@vueuse/core@9.1.0)(vue@3.2.37): + resolution: {integrity: sha512-dLR9pTUR/OOMwIFT5rn116meXv7fqVL5ImD0OA89JdYGxdtaxGDP8UJZV6qtIaBiAF+2KNEf6ZAF72ST250xOA==} + engines: {node: '>=16.14.0'} + peerDependencies: + '@vueuse/core': '>=9.0.0' + peerDependenciesMeta: + '@vueuse/core': + optional: true dependencies: - '@rollup/pluginutils': 4.2.1 - '@vue-macros/common': 0.11.2 - unplugin: 0.9.5(esbuild@0.14.47)(rollup@2.75.7) + '@vue-macros/common': 1.10.1(vue@3.2.37) + '@vueuse/core': 9.1.0(vue@3.2.37) + ast-walker-scope: 0.5.0 + unplugin: 1.10.0 + transitivePeerDependencies: + - rollup + - vue + dev: true + + /@vue-macros/define-prop@0.3.3(vue@3.2.37): + resolution: {integrity: sha512-8W8U89+u5GzahdI5sO61nInXux+yWLGQx0Lq5/4Y2uj8kKj8aJvjie31y2CWREGq8q/jRT0MqT5ODs7JGt0IAQ==} + engines: {node: '>=16.14.0'} + peerDependencies: + vue: ^2.7.0 || ^3.2.25 + dependencies: + '@vue-macros/api': 0.9.3(vue@3.2.37) + '@vue-macros/common': 1.10.1(vue@3.2.37) + unplugin: 1.10.0 + vue: 3.2.37 + transitivePeerDependencies: + - rollup + dev: true + + /@vue-macros/define-props-refs@1.2.2(vue@3.2.37): + resolution: {integrity: sha512-ErqJrN+4mARONiBddT0S7PLINMuFcnN1LbpnEzZujFRgS2/5d9U/cAe/Jb4pvCTYSWecskCFNHk1/4YS/JAk4A==} + engines: {node: '>=16.14.0'} + peerDependencies: + vue: ^2.7.0 || ^3.2.25 + dependencies: + '@vue-macros/common': 1.10.1(vue@3.2.37) + unplugin: 1.10.0 + vue: 3.2.37 + transitivePeerDependencies: + - rollup + dev: true + + /@vue-macros/define-props@2.0.3(@vue-macros/reactivity-transform@0.4.3)(vue@3.2.37): + resolution: {integrity: sha512-OFkdhfEmDfP+ySqoQ8qeSvGxLpJPCaJrcMsiHu5DVqGcWou0RzkmxiQZu/PVZhk0p1DnV1lCCajut3jzhqLRXQ==} + engines: {node: '>=16.14.0'} + peerDependencies: + '@vue-macros/reactivity-transform': ^0.4.3 + vue: ^2.7.0 || ^3.2.25 + dependencies: + '@vue-macros/common': 1.10.1(vue@3.2.37) + '@vue-macros/reactivity-transform': 0.4.3(vue@3.2.37) + unplugin: 1.10.0 + vue: 3.2.37 transitivePeerDependencies: - - esbuild - rollup - - vite - - webpack dev: true /@vue-macros/define-render@0.11.2(esbuild@0.14.47)(rollup@2.75.7): @@ -3819,13 +4769,13 @@ packages: - webpack dev: false - /@vue-macros/define-render@0.11.2(rollup@2.75.7)(vite@2.9.15): + /@vue-macros/define-render@0.11.2(rollup@2.79.1)(vite@2.9.15): resolution: {integrity: sha512-Q+19LmqNlYNvNLqm8MGKqQej5WJ21ubrrqbNwDsyJl7mEChiv0wfwc0TQTgfHflkxlLomG2+JR0PPwlRT+qoXQ==} engines: {node: '>=14.19.0'} dependencies: '@rollup/pluginutils': 4.2.1 '@vue-macros/common': 0.11.2 - unplugin: 0.9.5(rollup@2.75.7)(vite@2.9.15) + unplugin: 0.9.5(rollup@2.79.1)(vite@2.9.15) transitivePeerDependencies: - esbuild - rollup @@ -3833,18 +4783,86 @@ packages: - webpack dev: true - /@vue-macros/hoist-static@0.11.2: - resolution: {integrity: sha512-jswa/5tVFdr2o0zoqGEnzLURaQRY4lrMN0/c1pDXJcFfGXkjqIVc9/AA0IIXInnw4uORsjatjQH4B5wFA8f0OA==} - engines: {node: '>=14.19.0'} + /@vue-macros/define-render@1.5.2(vue@3.2.37): + resolution: {integrity: sha512-wqBDfJQ5JxCc5yhVdLInB6jaqXYBmgMkBD/mjJWJ7qiaj/sVkxq2h3uxjwInWgBH0eb0ZX+rAaYkFwg+uueEXg==} + engines: {node: '>=16.14.0'} + peerDependencies: + vue: ^2.7.0 || ^3.0.0 dependencies: - '@rollup/pluginutils': 4.2.1 - '@vue-macros/common': 0.11.2 - unplugin: 0.9.5(esbuild@0.14.47)(rollup@2.75.7) + '@vue-macros/common': 1.10.1(vue@3.2.37) + unplugin: 1.10.0 + vue: 3.2.37 + transitivePeerDependencies: + - rollup + dev: true + + /@vue-macros/define-slots@1.1.2(vue@3.2.37): + resolution: {integrity: sha512-DYYWkNjIa+XQxGq4PbRyvg7sQUqV5jkOarM7cwf8b4BmybFUPcxbB/2JTf6xr/grHkGUHHRoUlZ7J8z8rhUH8Q==} + engines: {node: '>=16.14.0'} + peerDependencies: + vue: ^2.7.0 || ^3.0.0 + dependencies: + '@vue-macros/common': 1.10.1(vue@3.2.37) + unplugin: 1.10.0 + vue: 3.2.37 + transitivePeerDependencies: + - rollup + dev: true + + /@vue-macros/devtools@0.2.0(typescript@4.7.4): + resolution: {integrity: sha512-jHjvY1bFgQLe/2+5pBOG4fgmL5MPhsqQDj7Barhj8YN+Oe7U2hBImvfAyOGpqd2uucLOWQTP1cWrp3q9b1svsg==} + engines: {node: '>=16.14.0'} + peerDependencies: + vite: ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + vite: + optional: true + dependencies: + sirv: 2.0.4 + vue: 3.4.21(typescript@4.7.4) + transitivePeerDependencies: + - typescript + dev: true + + /@vue-macros/export-expose@0.1.2(vue@3.2.37): + resolution: {integrity: sha512-YQbbDRe133Zpgc0rB5KKJrrQMJvDaK25Ar1zeZDVUEKZ1rVAHWwbeSNbt7Fk4iVaLDzK4fA9dglTCkh7CR/9rg==} + engines: {node: '>=16.14.0'} + peerDependencies: + vue: ^2.7.0 || ^3.2.25 + dependencies: + '@vue-macros/common': 1.10.1(vue@3.2.37) + '@vue/compiler-sfc': 3.4.21 + unplugin: 1.10.0 + vue: 3.2.37 + transitivePeerDependencies: + - rollup + dev: true + + /@vue-macros/export-props@0.4.2(vue@3.2.37): + resolution: {integrity: sha512-BtsWp2gqWHfCk264bT7C4t7FCiNeuYl45x8rQ51eE2uDQPUMnhPQgB8swmR4bhzH1PCU80NwqbGThzB3Mh7mqw==} + engines: {node: '>=16.14.0'} + peerDependencies: + vue: ^2.7.0 || ^3.2.25 + dependencies: + '@vue-macros/common': 1.10.1(vue@3.2.37) + unplugin: 1.10.0 + vue: 3.2.37 + transitivePeerDependencies: + - rollup + dev: true + + /@vue-macros/export-render@0.2.2(vue@3.2.37): + resolution: {integrity: sha512-5E3aJB8umbm5OzsFic1HwNglPM8q/5s+A47o7wcpwOtnAnzwrhVyfZXyRW3mKPKidl4nufj0CemaJngf8soI1g==} + engines: {node: '>=16.14.0'} + peerDependencies: + vue: ^2.7.0 || ^3.2.25 + dependencies: + '@vue-macros/common': 1.10.1(vue@3.2.37) + '@vue/compiler-sfc': 3.4.21 + unplugin: 1.10.0 + vue: 3.2.37 transitivePeerDependencies: - - esbuild - rollup - - vite - - webpack dev: true /@vue-macros/hoist-static@0.11.2(esbuild@0.14.47)(rollup@2.75.7): @@ -3861,13 +4879,13 @@ packages: - webpack dev: false - /@vue-macros/hoist-static@0.11.2(rollup@2.75.7)(vite@2.9.15): + /@vue-macros/hoist-static@0.11.2(rollup@2.79.1)(vite@2.9.15): resolution: {integrity: sha512-jswa/5tVFdr2o0zoqGEnzLURaQRY4lrMN0/c1pDXJcFfGXkjqIVc9/AA0IIXInnw4uORsjatjQH4B5wFA8f0OA==} engines: {node: '>=14.19.0'} dependencies: '@rollup/pluginutils': 4.2.1 '@vue-macros/common': 0.11.2 - unplugin: 0.9.5(rollup@2.75.7)(vite@2.9.15) + unplugin: 0.9.5(rollup@2.79.1)(vite@2.9.15) transitivePeerDependencies: - esbuild - rollup @@ -3875,18 +4893,67 @@ packages: - webpack dev: true - /@vue-macros/setup-component@0.11.2: - resolution: {integrity: sha512-dE8pQfPDKTyJx33uw7f+nY/ErHf2mtW+O8aHWEbc4qi8TEsrsVgT+hHEjEYibTG6Sund5pDpddOnLf6Y6jA3gw==} - engines: {node: '>=14.19.0'} + /@vue-macros/hoist-static@1.5.2(vue@3.2.37): + resolution: {integrity: sha512-XYDtRyXbhLwwXNojii7+wzZOz7Fk7n3uoZCsoFZn6f+Y2joEEmQtJnjE/hRsdc5HFrmpg/qICt8ZuwsE8RIyDw==} + engines: {node: '>=16.14.0'} dependencies: - '@rollup/pluginutils': 4.2.1 - '@vue-macros/common': 0.11.2 - unplugin: 0.9.5(esbuild@0.14.47)(rollup@2.75.7) + '@vue-macros/common': 1.10.1(vue@3.2.37) + unplugin: 1.10.0 + transitivePeerDependencies: + - rollup + - vue + dev: true + + /@vue-macros/jsx-directive@0.8.9(vue@3.2.37): + resolution: {integrity: sha512-wxYU7rB/O6zcgTWnBzGTtUgUqRZr7WfH5Jv3InOD2Rntd8Zw7BOSTOYBfcd7PZDhGIZvLe3ybdYzPawdhI52Rw==} + engines: {node: '>=16.14.0'} + dependencies: + '@vue-macros/common': 1.10.1(vue@3.2.37) + unplugin: 1.10.0 + transitivePeerDependencies: + - rollup + - vue + dev: true + + /@vue-macros/named-template@0.4.2(vue@3.2.37): + resolution: {integrity: sha512-YnKdJLd8KisT6z+RdgyLy0TIvq1HzW3i55hq94eNo4F+9rEo70h2YGmCDOElpvOElMj0R77i175nNiti+hkQfw==} + engines: {node: '>=16.14.0'} + dependencies: + '@vue-macros/common': 1.10.1(vue@3.2.37) + '@vue/compiler-dom': 3.4.21 + unplugin: 1.10.0 + transitivePeerDependencies: + - rollup + - vue + dev: true + + /@vue-macros/reactivity-transform@0.4.3(vue@3.2.37): + resolution: {integrity: sha512-9z/Cf+fAjcPjEfrwLTWux97uJFRxdtWTwAIaDniQP78Jaw8rjlh2C4bxAQm2auAft9R/s24e5rkOf8C//N+o+Q==} + engines: {node: '>=16.14.0'} + peerDependencies: + vue: ^2.7.0 || ^3.2.25 + dependencies: + '@babel/parser': 7.24.1 + '@vue-macros/common': 1.10.1(vue@3.2.37) + '@vue/compiler-core': 3.4.21 + '@vue/shared': 3.4.21 + magic-string: 0.30.8 + unplugin: 1.10.0 + vue: 3.2.37 transitivePeerDependencies: - - esbuild - rollup - - vite - - webpack + dev: true + + /@vue-macros/setup-block@0.3.2(vue@3.2.37): + resolution: {integrity: sha512-iJM9w7QuVj6OGKSFcsuT47VdVv68GI3PE4e7oVIFXVr9Y+0L6dLibhu8Ybeyfh0AP43Y9V46ZnEI49fh8ZmnRQ==} + engines: {node: '>=16.14.0'} + dependencies: + '@vue-macros/common': 1.10.1(vue@3.2.37) + '@vue/compiler-dom': 3.4.21 + unplugin: 1.10.0 + transitivePeerDependencies: + - rollup + - vue dev: true /@vue-macros/setup-component@0.11.2(esbuild@0.14.47)(rollup@2.75.7): @@ -3903,13 +4970,13 @@ packages: - webpack dev: false - /@vue-macros/setup-component@0.11.2(rollup@2.75.7)(vite@2.9.15): + /@vue-macros/setup-component@0.11.2(rollup@2.79.1)(vite@2.9.15): resolution: {integrity: sha512-dE8pQfPDKTyJx33uw7f+nY/ErHf2mtW+O8aHWEbc4qi8TEsrsVgT+hHEjEYibTG6Sund5pDpddOnLf6Y6jA3gw==} engines: {node: '>=14.19.0'} dependencies: '@rollup/pluginutils': 4.2.1 '@vue-macros/common': 0.11.2 - unplugin: 0.9.5(rollup@2.75.7)(vite@2.9.15) + unplugin: 0.9.5(rollup@2.79.1)(vite@2.9.15) transitivePeerDependencies: - esbuild - rollup @@ -3917,18 +4984,15 @@ packages: - webpack dev: true - /@vue-macros/setup-sfc@0.11.2: - resolution: {integrity: sha512-uhYXNR0nFycuQCMUmjPFxXEF8DB8iFCxKrzfMyrKroRYefC5k3KtnzXdGe6bcvy42QpswFTpeXgVgGCyAjQheg==} - engines: {node: '>=14.19.0'} + /@vue-macros/setup-component@0.17.2(vue@3.2.37): + resolution: {integrity: sha512-KfZ2YcfJ5oMFO+BHnmWOClYlce1K7t8c9q4+2hIBc0L2LlCIQEmFnmqmCJAgyzyWai8h89udCD8UdKbnCznwPw==} + engines: {node: '>=16.14.0'} dependencies: - '@rollup/pluginutils': 4.2.1 - '@vue-macros/common': 0.11.2 - unplugin: 0.9.5(esbuild@0.14.47)(rollup@2.75.7) + '@vue-macros/common': 1.10.1(vue@3.2.37) + unplugin: 1.10.0 transitivePeerDependencies: - - esbuild - rollup - - vite - - webpack + - vue dev: true /@vue-macros/setup-sfc@0.11.2(esbuild@0.14.47)(rollup@2.75.7): @@ -3945,13 +5009,13 @@ packages: - webpack dev: false - /@vue-macros/setup-sfc@0.11.2(rollup@2.75.7)(vite@2.9.15): + /@vue-macros/setup-sfc@0.11.2(rollup@2.79.1)(vite@2.9.15): resolution: {integrity: sha512-uhYXNR0nFycuQCMUmjPFxXEF8DB8iFCxKrzfMyrKroRYefC5k3KtnzXdGe6bcvy42QpswFTpeXgVgGCyAjQheg==} engines: {node: '>=14.19.0'} dependencies: '@rollup/pluginutils': 4.2.1 '@vue-macros/common': 0.11.2 - unplugin: 0.9.5(rollup@2.75.7)(vite@2.9.15) + unplugin: 0.9.5(rollup@2.79.1)(vite@2.9.15) transitivePeerDependencies: - esbuild - rollup @@ -3959,6 +5023,50 @@ packages: - webpack dev: true + /@vue-macros/setup-sfc@0.17.2(vue@3.2.37): + resolution: {integrity: sha512-BV2B5M6w2B0jN16Oc10/mQk5WdQASzGe/ZMV9G59ZiGHVzL3m06nsq4JwXln2Gy+j3mdrfnUmaAtj7o70HPiOg==} + engines: {node: '>=16.14.0'} + dependencies: + '@vue-macros/common': 1.10.1(vue@3.2.37) + unplugin: 1.10.0 + transitivePeerDependencies: + - rollup + - vue + dev: true + + /@vue-macros/short-bind@0.2.2(vue@3.2.37): + resolution: {integrity: sha512-dBaZnWfoDcbUA4jMwLqsBa/QTjO0zgQb9TvMS0HDbaAUptBlJfi20g2sqmgdor32ih/SghuJjCtaNLKgTWVNaA==} + engines: {node: '>=16.14.0'} + dependencies: + '@vue-macros/common': 1.10.1(vue@3.2.37) + '@vue/compiler-core': 3.4.21 + transitivePeerDependencies: + - rollup + - vue + dev: true + + /@vue-macros/short-emits@1.5.2(vue@3.2.37): + resolution: {integrity: sha512-p2ePSh2yT2FP0DM6vNuUBStl+jXcYdBkKZ17yqZpPN7f6Jw6A29Lrn+fW95VdqiUdvZckBzFOdT4sLELFlGfpA==} + engines: {node: '>=16.14.0'} + dependencies: + '@vue-macros/common': 1.10.1(vue@3.2.37) + unplugin: 1.10.0 + transitivePeerDependencies: + - rollup + - vue + dev: true + + /@vue-macros/short-vmodel@1.4.2(vue@3.2.37): + resolution: {integrity: sha512-KTkz7/FIaOhdr2uM96nj/wxctirb6czVJIkzAcUJSTsdoF+J3JrRfarr0VzUvtwq5sFRMYPssuQgoOWD4WEpXQ==} + engines: {node: '>=16.14.0'} + dependencies: + '@vue-macros/common': 1.10.1(vue@3.2.37) + '@vue/compiler-core': 3.4.21 + transitivePeerDependencies: + - rollup + - vue + dev: true + /@vue/babel-helper-vue-transform-on@1.0.2: resolution: {integrity: sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==} @@ -3994,6 +5102,16 @@ packages: estree-walker: 2.0.2 source-map: 0.6.1 + /@vue/compiler-core@3.4.21: + resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==} + dependencies: + '@babel/parser': 7.24.1 + '@vue/shared': 3.4.21 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.0 + dev: true + /@vue/compiler-dom@3.2.37: resolution: {integrity: sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==} dependencies: @@ -4006,6 +5124,13 @@ packages: '@vue/compiler-core': 3.2.39 '@vue/shared': 3.2.39 + /@vue/compiler-dom@3.4.21: + resolution: {integrity: sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==} + dependencies: + '@vue/compiler-core': 3.4.21 + '@vue/shared': 3.4.21 + dev: true + /@vue/compiler-sfc@3.2.37: resolution: {integrity: sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==} dependencies: @@ -4034,6 +5159,20 @@ packages: postcss: 8.4.14 source-map: 0.6.1 + /@vue/compiler-sfc@3.4.21: + resolution: {integrity: sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==} + dependencies: + '@babel/parser': 7.24.1 + '@vue/compiler-core': 3.4.21 + '@vue/compiler-dom': 3.4.21 + '@vue/compiler-ssr': 3.4.21 + '@vue/shared': 3.4.21 + estree-walker: 2.0.2 + magic-string: 0.30.8 + postcss: 8.4.38 + source-map-js: 1.2.0 + dev: true + /@vue/compiler-ssr@3.2.37: resolution: {integrity: sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==} dependencies: @@ -4046,6 +5185,13 @@ packages: '@vue/compiler-dom': 3.2.39 '@vue/shared': 3.2.39 + /@vue/compiler-ssr@3.4.21: + resolution: {integrity: sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==} + dependencies: + '@vue/compiler-dom': 3.4.21 + '@vue/shared': 3.4.21 + dev: true + /@vue/devtools-api@6.1.4: resolution: {integrity: sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ==} dev: true @@ -4073,12 +5219,25 @@ packages: dependencies: '@vue/shared': 3.2.37 + /@vue/reactivity@3.4.21: + resolution: {integrity: sha512-UhenImdc0L0/4ahGCyEzc/pZNwVgcglGy9HVzJ1Bq2Mm9qXOpP8RyNTjookw/gOCUlXSEtuZ2fUg5nrHcoqJcw==} + dependencies: + '@vue/shared': 3.4.21 + dev: true + /@vue/runtime-core@3.2.37: resolution: {integrity: sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==} dependencies: '@vue/reactivity': 3.2.37 '@vue/shared': 3.2.37 + /@vue/runtime-core@3.4.21: + resolution: {integrity: sha512-pQthsuYzE1XcGZznTKn73G0s14eCJcjaLvp3/DKeYWoFacD9glJoqlNBxt3W2c5S40t6CCcpPf+jG01N3ULyrA==} + dependencies: + '@vue/reactivity': 3.4.21 + '@vue/shared': 3.4.21 + dev: true + /@vue/runtime-dom@3.2.37: resolution: {integrity: sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==} dependencies: @@ -4086,6 +5245,14 @@ packages: '@vue/shared': 3.2.37 csstype: 2.6.20 + /@vue/runtime-dom@3.4.21: + resolution: {integrity: sha512-gvf+C9cFpevsQxbkRBS1NpU8CqxKw0ebqMvLwcGQrNpx6gqRDodqKqA+A2VZZpQ9RpK2f9yfg8VbW/EpdFUOJw==} + dependencies: + '@vue/runtime-core': 3.4.21 + '@vue/shared': 3.4.21 + csstype: 3.1.3 + dev: true + /@vue/server-renderer@3.2.37(vue@3.2.37): resolution: {integrity: sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==} peerDependencies: @@ -4095,12 +5262,26 @@ packages: '@vue/shared': 3.2.37 vue: 3.2.37 + /@vue/server-renderer@3.4.21(vue@3.4.21): + resolution: {integrity: sha512-aV1gXyKSN6Rz+6kZ6kr5+Ll14YzmIbeuWe7ryJl5muJ4uwSwY/aStXTixx76TwkZFJLm1aAlA/HSWEJ4EyiMkg==} + peerDependencies: + vue: 3.4.21 + dependencies: + '@vue/compiler-ssr': 3.4.21 + '@vue/shared': 3.4.21 + vue: 3.4.21(typescript@4.7.4) + dev: true + /@vue/shared@3.2.37: resolution: {integrity: sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==} /@vue/shared@3.2.39: resolution: {integrity: sha512-D3dl2ZB9qE6mTuWPk9RlhDeP1dgNRUKC3NJxji74A4yL8M2MwlhLKUC/49WHjrNzSPug58fWx/yFbaTzGAQSBw==} + /@vue/shared@3.4.21: + resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==} + dev: true + /@vue/test-utils@2.0.0(vue@3.2.37): resolution: {integrity: sha512-zL5kygNq7hONrO1CzaUGprEAklAX+pH8J1MPMCU3Rd2xtSYkZ+PmKU3oEDRg8VAGdL5lNJHzDgrud5amFPtirw==} peerDependencies: @@ -4109,7 +5290,7 @@ packages: vue: 3.2.37 dev: true - /@vue/tsconfig@0.1.3(@types/node@17.0.40): + /@vue/tsconfig@0.1.3(@types/node@18.19.25): resolution: {integrity: sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg==} peerDependencies: '@types/node': '*' @@ -4117,7 +5298,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 17.0.40 + '@types/node': 18.19.25 dev: true /@vueuse/core@9.1.0(vue@3.2.37): @@ -4130,11 +5311,9 @@ packages: transitivePeerDependencies: - '@vue/composition-api' - vue - dev: false /@vueuse/metadata@9.1.0: resolution: {integrity: sha512-8OEhlog1iaAGTD3LICZ8oBGQdYeMwByvXetOtAOZCJOzyCRSwqwdggTsmVZZ1rkgYIEqgUBk942AsAPwM21s6A==} - dev: false /@vueuse/shared@9.1.0(vue@3.2.37): resolution: {integrity: sha512-pB/3njQu4tfJJ78ajELNda0yMG6lKfpToQW7Soe09CprF1k3QuyoNi1tBNvo75wBDJWD+LOnr+c4B5HZ39jY/Q==} @@ -4143,7 +5322,6 @@ packages: transitivePeerDependencies: - '@vue/composition-api' - vue - dev: false /@zkochan/which@2.0.3: resolution: {integrity: sha512-C1ReN7vt2/2O0fyTsx5xnbQuxBrmG5NMSbcIkPKCCfCTJgpZBsuRYzFXHj3nVq8vTfK7vxHUmzfCpSHgO7j4rg==} @@ -4188,12 +5366,23 @@ packages: engines: {node: '>=0.4.0'} dev: true + /acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} + dev: true + /acorn@7.4.1: resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} engines: {node: '>=0.4.0'} hasBin: true dev: true + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + /acorn@8.7.1: resolution: {integrity: sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==} engines: {node: '>=0.4.0'} @@ -4238,6 +5427,15 @@ packages: uri-js: 4.4.1 dev: true + /ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + /algoliasearch@4.13.1: resolution: {integrity: sha512-dtHUSE0caWTCE7liE1xaL+19AFf6kWEcyn76uhcitWpntqvicFHXKFoZe5JJcv9whQOTRM6+B8qJz6sFj+rDJA==} dependencies: @@ -4320,6 +5518,11 @@ packages: dependencies: color-convert: 2.0.1 + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: true + /ansi-styles@6.1.0: resolution: {integrity: sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==} engines: {node: '>=12'} @@ -4345,6 +5548,14 @@ packages: normalize-path: 3.0.0 picomatch: 2.3.1 + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + /append-buffer@1.0.2: resolution: {integrity: sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==} engines: {node: '>=0.10.0'} @@ -4397,6 +5608,14 @@ packages: resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} engines: {node: '>=0.10.0'} + /array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + is-array-buffer: 3.0.4 + dev: true + /array-each@1.0.1: resolution: {integrity: sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==} engines: {node: '>=0.10.0'} @@ -4465,6 +5684,20 @@ packages: es-shim-unscopables: 1.0.0 dev: false + /arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.2 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 + dev: true + /arrify@1.0.1: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} @@ -4494,6 +5727,28 @@ packages: resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} engines: {node: '>=0.10.0'} + /ast-kit@0.11.3: + resolution: {integrity: sha512-qdwwKEhckRk0XE22/xDdmU3v/60E8Edu4qFhgTLIhGGDs/PAJwLw9pQn8Rj99PitlbBZbYpx0k/lbir4kg0SuA==} + engines: {node: '>=16.14.0'} + dependencies: + '@babel/parser': 7.24.1 + '@rollup/pluginutils': 5.1.0 + pathe: 1.1.2 + transitivePeerDependencies: + - rollup + dev: true + + /ast-kit@0.9.5: + resolution: {integrity: sha512-kbL7ERlqjXubdDd+szuwdlQ1xUxEz9mCz1+m07ftNVStgwRb2RWw+U6oKo08PAvOishMxiqz1mlJyLl8yQx2Qg==} + engines: {node: '>=16.14.0'} + dependencies: + '@babel/parser': 7.24.1 + '@rollup/pluginutils': 5.1.0 + pathe: 1.1.2 + transitivePeerDependencies: + - rollup + dev: true + /ast-walker-scope@0.2.3: resolution: {integrity: sha512-9reB+iYF6jCCDqKDNNQI8iA2MJcy0jCLvEjfya72F7Zai5i2CB8hk9K/kzkZhagja9othQCFPEvQW11LhPKjmg==} engines: {node: '>=14.19.0'} @@ -4501,6 +5756,16 @@ packages: '@babel/parser': 7.18.13 '@babel/types': 7.18.13 + /ast-walker-scope@0.5.0: + resolution: {integrity: sha512-NsyHMxBh4dmdEHjBo1/TBZvCKxffmZxRYhmclfu0PP6Aftre47jOHYaYaNqJcV0bxihxFXhDkzLHUwHc0ocd0Q==} + engines: {node: '>=16.14.0'} + dependencies: + '@babel/parser': 7.24.1 + ast-kit: 0.9.5 + transitivePeerDependencies: + - rollup + dev: true + /astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} @@ -4530,8 +5795,8 @@ packages: resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} dev: false - /async@3.2.4: - resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} + /async@3.2.5: + resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} dev: true /asynckit@0.4.0: @@ -4564,6 +5829,13 @@ packages: postcss-value-parser: 4.2.0 dev: true + /available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + dependencies: + possible-typed-array-names: 1.0.0 + dev: true + /aws-lambda@1.0.7: resolution: {integrity: sha512-9GNFMRrEMG5y3Jvv+V4azWvc+qNWdWLTjDdhf/zgMlz8haaaLWv0xeAIWxz9PuWUBawsVxy0zZotjCdR3Xq+2w==} hasBin: true @@ -4618,44 +5890,38 @@ packages: - debug dev: false - /babel-plugin-dynamic-import-node@2.3.3: - resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} - dependencies: - object.assign: 4.1.2 - dev: true - - /babel-plugin-polyfill-corejs2@0.3.1(@babel/core@7.18.2): - resolution: {integrity: sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==} + /babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.3): + resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==} peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/compat-data': 7.17.10 - '@babel/core': 7.18.2 - '@babel/helper-define-polyfill-provider': 0.3.1(@babel/core@7.18.2) - semver: 6.3.0 + '@babel/compat-data': 7.24.1 + '@babel/core': 7.24.3 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3) + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3@0.5.2(@babel/core@7.18.2): - resolution: {integrity: sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==} + /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.3): + resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-define-polyfill-provider': 0.3.1(@babel/core@7.18.2) - core-js-compat: 3.22.8 + '@babel/core': 7.24.3 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3) + core-js-compat: 3.36.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator@0.3.1(@babel/core@7.18.2): - resolution: {integrity: sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==} + /babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.3): + resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==} peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.18.2 - '@babel/helper-define-polyfill-provider': 0.3.1(@babel/core@7.18.2) + '@babel/core': 7.24.3 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3) transitivePeerDependencies: - supports-color dev: true @@ -4888,6 +6154,11 @@ packages: engines: {node: '>=8'} dev: true + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: true + /cache-base@1.0.1: resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} engines: {node: '>=0.10.0'} @@ -4909,6 +6180,17 @@ packages: function-bind: 1.1.1 get-intrinsic: 1.1.1 + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + dev: true + /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -4962,15 +6244,15 @@ packages: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} dev: true - /chai@4.3.6: - resolution: {integrity: sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==} + /chai@4.4.1: + resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} engines: {node: '>=4'} dependencies: assertion-error: 1.1.0 - check-error: 1.0.2 - deep-eql: 3.0.1 - get-func-name: 2.0.0 - loupe: 2.3.4 + check-error: 1.0.3 + deep-eql: 4.1.3 + get-func-name: 2.0.2 + loupe: 2.3.7 pathval: 1.1.1 type-detect: 4.0.8 dev: true @@ -4994,6 +6276,11 @@ packages: resolution: {integrity: sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + /char-regex@1.0.2: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} @@ -5010,8 +6297,10 @@ packages: resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} dev: false - /check-error@1.0.2: - resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} + /check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + dependencies: + get-func-name: 2.0.2 dev: true /chokidar@2.1.8: @@ -5047,7 +6336,22 @@ packages: normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 + + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true /chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} @@ -5341,6 +6645,10 @@ packages: dependencies: safe-buffer: 5.1.2 + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + dev: true + /copy-descriptor@0.1.1: resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} engines: {node: '>=0.10.0'} @@ -5353,11 +6661,10 @@ packages: is-plain-object: 5.0.0 dev: false - /core-js-compat@3.22.8: - resolution: {integrity: sha512-pQnwg4xtuvc2Bs/5zYQPaEYYSuTxsF7LBWF0SvnVhthZo/Qe+rJpcEekrdNK5DWwDJ0gv0oI9NNX5Mppdy0ctg==} + /core-js-compat@3.36.1: + resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} dependencies: browserslist: 4.23.0 - semver: 7.0.0 dev: true /core-util-is@1.0.2: @@ -5368,7 +6675,7 @@ packages: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: false - /cosmiconfig-typescript-loader@2.0.1(@types/node@17.0.40)(cosmiconfig@7.0.1)(typescript@4.7.4): + /cosmiconfig-typescript-loader@2.0.1(@types/node@18.19.25)(cosmiconfig@7.0.1)(typescript@4.7.4): resolution: {integrity: sha512-B9s6sX/omXq7I6gC6+YgLmrBFMJhPWew7ty/X5Tuwtd2zOSgWaUdXjkuVwbe3qqcdETo60+1nSVMekq//LIXVA==} engines: {node: '>=12', npm: '>=6'} peerDependencies: @@ -5376,9 +6683,9 @@ packages: cosmiconfig: '>=7' typescript: '>=3' dependencies: - '@types/node': 17.0.40 + '@types/node': 18.19.25 cosmiconfig: 7.0.1 - ts-node: 10.8.1(@types/node@17.0.40)(typescript@4.7.4) + ts-node: 10.8.1(@types/node@18.19.25)(typescript@4.7.4) typescript: 4.7.4 transitivePeerDependencies: - '@swc/core' @@ -5610,6 +6917,33 @@ packages: whatwg-url: 8.7.0 dev: true + /data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + /date-fns@2.28.0: resolution: {integrity: sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==} engines: {node: '>=0.11'} @@ -5677,9 +7011,9 @@ packages: engines: {node: '>=0.10'} dev: false - /deep-eql@3.0.1: - resolution: {integrity: sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==} - engines: {node: '>=0.12'} + /deep-eql@4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} dependencies: type-detect: 4.0.8 dev: true @@ -5691,6 +7025,11 @@ packages: resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} engines: {node: '>=0.10.0'} + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + dev: true + /default-compare@1.0.0: resolution: {integrity: sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==} engines: {node: '>=0.10.0'} @@ -5703,6 +7042,15 @@ packages: engines: {node: '>= 0.10'} dev: false + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + dev: true + /define-properties@1.1.4: resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} engines: {node: '>= 0.4'} @@ -5710,6 +7058,15 @@ packages: has-property-descriptors: 1.0.0 object-keys: 1.1.1 + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + dev: true + /define-property@0.2.5: resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} engines: {node: '>=0.10.0'} @@ -5769,6 +7126,11 @@ packages: resolution: {integrity: sha512-0y4f/T8H9lsESV9kKP1HDUXgHxCdniFeJh6Erq+FbdOEvp/Ydp9t8kcAAM5gOd17pMrTDlFWntoHtzzeTUWKNw==} dev: true + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + /diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} @@ -5871,12 +7233,12 @@ packages: safe-buffer: 5.2.1 dev: true - /ejs@3.1.8: - resolution: {integrity: sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==} + /ejs@3.1.9: + resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} engines: {node: '>=0.10.0'} hasBin: true dependencies: - jake: 10.8.5 + jake: 10.8.7 dev: true /electron-to-chromium@1.4.147: @@ -5966,6 +7328,70 @@ packages: string.prototype.trimstart: 1.0.5 unbox-primitive: 1.0.2 + /es-abstract@1.23.2: + resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 + globalthis: 1.0.3 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 + is-callable: 1.2.7 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + is-string: 1.0.7 + is-typed-array: 1.1.13 + is-weakref: 1.0.2 + object-inspect: 1.13.1 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.5 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.15 + dev: true + + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + dev: true + + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + dev: true + /es-module-lexer@0.10.5: resolution: {integrity: sha512-+7IwY/kiGAacQfY+YBhKMvEmyAJnw5grTUgjG85Pe7vcUI/6b7pZjZG8nQ7+48YhzEAEqrEgD2dCz/JIK+AYvw==} dev: true @@ -5973,6 +7399,22 @@ packages: /es-module-lexer@0.9.3: resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} + /es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + dev: true + + /es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + dev: true + /es-shim-unscopables@1.0.0: resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} dependencies: @@ -6576,6 +8018,37 @@ packages: esbuild-windows-64: 0.14.47 esbuild-windows-arm64: 0.14.47 + /esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 + dev: true + /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -6891,6 +8364,12 @@ packages: /estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + /estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + dependencies: + '@types/estree': 1.0.5 + dev: true + /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -6931,6 +8410,21 @@ packages: strip-final-newline: 3.0.0 dev: true + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + dev: true + /expand-brackets@2.1.4: resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} engines: {node: '>=0.10.0'} @@ -7005,7 +8499,7 @@ packages: get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: - '@types/yauzl': 2.10.0 + '@types/yauzl': 2.10.3 transitivePeerDependencies: - supports-color dev: true @@ -7041,6 +8535,16 @@ packages: merge2: 1.4.1 micromatch: 4.0.5 + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -7065,6 +8569,10 @@ packages: pend: 1.2.0 dev: true + /fflate@0.8.2: + resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} + dev: true + /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -7080,7 +8588,7 @@ packages: /filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} dependencies: - minimatch: 5.1.0 + minimatch: 5.1.6 dev: true /fill-range@4.0.0: @@ -7105,7 +8613,7 @@ packages: dependencies: '@pnpm/read-project-manifest': 3.0.6 '@pnpm/types': 8.4.0 - fast-glob: 3.2.11 + fast-glob: 3.3.2 p-filter: 2.1.0 /find-up@1.1.2: @@ -7188,6 +8696,10 @@ packages: /flatted@3.2.5: resolution: {integrity: sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==} + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + dev: true + /flush-write-stream@1.1.1: resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==} dependencies: @@ -7206,6 +8718,12 @@ packages: dependencies: debug: 4.3.4 + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: true + /for-in@1.0.2: resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} engines: {node: '>=0.10.0'} @@ -7280,9 +8798,9 @@ packages: engines: {node: '>=10'} dependencies: at-least-node: 1.0.0 - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 jsonfile: 6.1.0 - universalify: 2.0.0 + universalify: 2.0.1 dev: true /fs-minipass@1.2.7: @@ -7295,7 +8813,7 @@ packages: resolution: {integrity: sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==} engines: {node: '>= 0.10'} dependencies: - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 through2: 2.0.5 dev: false @@ -7310,12 +8828,12 @@ packages: requiresBuild: true dependencies: bindings: 1.5.0 - nan: 2.16.0 + nan: 2.19.0 dev: false optional: true - /fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true @@ -7324,6 +8842,10 @@ packages: /function-bind@1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true + /function.prototype.name@1.1.5: resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} engines: {node: '>= 0.4'} @@ -7333,6 +8855,16 @@ packages: es-abstract: 1.20.1 functions-have-names: 1.2.3 + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.2 + functions-have-names: 1.2.3 + dev: true + /functional-red-black-tree@1.0.1: resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} @@ -7352,8 +8884,8 @@ packages: engines: {node: 6.* || 8.* || >= 10.*} dev: true - /get-func-name@2.0.0: - resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} dev: true /get-intrinsic@1.1.1: @@ -7363,6 +8895,17 @@ packages: has: 1.0.3 has-symbols: 1.0.3 + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + dev: true + /get-own-enumerable-property-symbols@3.0.2: resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} dev: true @@ -7384,6 +8927,11 @@ packages: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + dev: true + /get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} @@ -7391,10 +8939,25 @@ packages: call-bind: 1.0.2 get-intrinsic: 1.1.1 + /get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + dev: true + /get-tsconfig@4.0.7: resolution: {integrity: sha512-hI0ikvRti9TmxszXtfRaVxSU0yQ2HJK03MU14dG/exX/RrELbMTYJW0xOzGR6c2FsddZ3eZHZxDotEIPOw4D+A==} dev: true + /get-tsconfig@4.7.3: + resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} + dependencies: + resolve-pkg-maps: 1.0.0 + dev: true + /get-value@2.0.6: resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} engines: {node: '>=0.10.0'} @@ -7521,13 +9084,20 @@ packages: dependencies: type-fest: 0.20.2 + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.1 + dev: true + /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.2.11 + fast-glob: 3.3.2 ignore: 5.2.0 merge2: 1.4.1 slash: 3.0.0 @@ -7539,9 +9109,18 @@ packages: sparkles: 1.0.1 dev: false + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.4 + dev: true + /graceful-fs@4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + /gulp-autoprefixer@8.0.0: resolution: {integrity: sha512-sVR++PIaXpa81p52dmmA/jt50bw0egmylK5mjagfgOJ8uLDGaF9tHyzvetkY9Uo0gBZUS5sVqN3kX/GlUKOyog==} engines: {node: '>=12'} @@ -7630,6 +9209,15 @@ packages: duplexer: 0.1.2 dev: true + /happy-dom@14.3.3: + resolution: {integrity: sha512-hsecx5SDUUwVW0MK5sxFWA7WHLabvzIEKjf9gah+siJp/LD+bMyFfAO18b9mlc5meMADVUm6O/YF4+CliaMD6g==} + engines: {node: '>=16.0.0'} + dependencies: + entities: 4.5.0 + webidl-conversions: 7.0.0 + whatwg-mimetype: 3.0.0 + dev: true + /har-schema@2.0.0: resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} engines: {node: '>=4'} @@ -7665,6 +9253,17 @@ packages: dependencies: get-intrinsic: 1.1.1 + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + dependencies: + es-define-property: 1.0.0 + dev: true + + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + dev: true + /has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} @@ -7675,6 +9274,13 @@ packages: dependencies: has-symbols: 1.0.3 + /has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + /has-value@0.3.1: resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} engines: {node: '>=0.10.0'} @@ -7715,6 +9321,13 @@ packages: /hash-sum@2.0.0: resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==} + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: true + /homedir-polyfill@1.0.3: resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} engines: {node: '>=0.10.0'} @@ -7779,6 +9392,11 @@ packages: engines: {node: '>=12.20.0'} dev: true + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + dev: true + /husky@9.0.11: resolution: {integrity: sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==} engines: {node: '>=18'} @@ -7792,8 +9410,8 @@ packages: safer-buffer: 2.1.2 dev: true - /idb@6.1.5: - resolution: {integrity: sha512-IJtugpKkiVXQn5Y+LteyBCNk1N8xpGV3wWZk9EVtZWH8DYkjBn0bX1XnGP9RkyZF0sAcywa6unHqSWKe7q4LGw==} + /idb@7.1.1: + resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} dev: true /ieee754@1.1.13: @@ -7851,6 +9469,15 @@ packages: has: 1.0.3 side-channel: 1.0.4 + /internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.0.6 + dev: true + /interpret@1.4.0: resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} engines: {node: '>= 0.10'} @@ -7898,6 +9525,14 @@ packages: is-decimal: 1.0.4 dev: false + /is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + dev: true + /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} @@ -7940,6 +9575,17 @@ packages: resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==} engines: {node: '>= 0.4'} + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true + + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + dependencies: + hasown: 2.0.2 + dev: true + /is-core-module@2.9.0: resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==} dependencies: @@ -7959,6 +9605,13 @@ packages: kind-of: 6.0.3 dev: false + /is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} + dependencies: + is-typed-array: 1.1.13 + dev: true + /is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} @@ -8047,6 +9700,11 @@ packages: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} engines: {node: '>= 0.4'} + /is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + dev: true + /is-number-object@1.0.7: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} @@ -8131,6 +9789,13 @@ packages: dependencies: call-bind: 1.0.2 + /is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + dev: true + /is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} @@ -8165,6 +9830,13 @@ packages: text-extensions: 1.9.0 dev: true + /is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.15 + dev: true + /is-typedarray@1.0.0: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} @@ -8196,6 +9868,10 @@ packages: /isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -8236,12 +9912,12 @@ packages: istanbul-lib-report: 3.0.0 dev: true - /jake@10.8.5: - resolution: {integrity: sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==} + /jake@10.8.7: + resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} engines: {node: '>=10'} hasBin: true dependencies: - async: 3.2.4 + async: 3.2.5 chalk: 4.1.2 filelist: 1.0.4 minimatch: 3.1.2 @@ -8251,7 +9927,7 @@ packages: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 17.0.40 + '@types/node': 18.19.25 merge-stream: 2.0.0 supports-color: 7.2.0 dev: true @@ -8275,6 +9951,10 @@ packages: /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + /js-tokens@8.0.3: + resolution: {integrity: sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==} + dev: true + /js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true @@ -8381,6 +10061,12 @@ packages: engines: {node: '>=6'} hasBin: true + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + dev: true + /jsonc-eslint-parser@2.1.0: resolution: {integrity: sha512-qCRJWlbP2v6HbmKW7R3lFbeiVWHo+oMJ0j+MizwvauqnCV/EvtAeEeuCgoc/ErtsuoKgYB8U4Ih8AxJbXoE6/g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -8394,20 +10080,24 @@ packages: /jsonc-parser@3.0.0: resolution: {integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==} + /jsonc-parser@3.2.1: + resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} + dev: true + /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: universalify: 2.0.0 optionalDependencies: - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 /jsonparse@1.3.1: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} dev: true - /jsonpointer@5.0.0: - resolution: {integrity: sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==} + /jsonpointer@5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} engines: {node: '>=0.10.0'} dev: true @@ -8427,6 +10117,22 @@ packages: semver: 5.7.1 dev: true + /jsonwebtoken@9.0.2: + resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} + engines: {node: '>=12', npm: '>=6'} + dependencies: + jws: 3.2.2 + lodash.includes: 4.3.0 + lodash.isboolean: 3.0.3 + lodash.isinteger: 4.0.4 + lodash.isnumber: 3.0.3 + lodash.isplainobject: 4.0.6 + lodash.isstring: 4.0.1 + lodash.once: 4.1.1 + ms: 2.1.3 + semver: 7.6.0 + dev: true + /jsprim@1.4.2: resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} engines: {node: '>=0.6.0'} @@ -8613,7 +10319,7 @@ packages: resolution: {integrity: sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==} engines: {node: '>=0.10.0'} dependencies: - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 parse-json: 2.2.0 pify: 2.3.0 pinkie-promise: 2.0.1 @@ -8624,7 +10330,7 @@ packages: resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} engines: {node: '>=4'} dependencies: - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 parse-json: 4.0.0 pify: 3.0.0 strip-bom: 3.0.0 @@ -8648,6 +10354,14 @@ packages: resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==} engines: {node: '>=14'} + /local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + dependencies: + mlly: 1.6.1 + pkg-types: 1.0.3 + dev: true + /locate-path@2.0.0: resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} engines: {node: '>=4'} @@ -8748,10 +10462,16 @@ packages: wrap-ansi: 6.2.0 dev: true - /loupe@2.3.4: - resolution: {integrity: sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==} + /loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} dependencies: - get-func-name: 2.0.0 + get-func-name: 2.0.2 + dev: true + + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 dev: true /lru-cache@6.0.0: @@ -8760,6 +10480,18 @@ packages: dependencies: yallist: 4.0.0 + /lru-cache@9.1.2: + resolution: {integrity: sha512-ERJq3FOzJTxBbFjZ7iDs+NiK4VI9Wz+RdrrAB8dio1oV+YvdPzUEE4QNiT2VD51DkIbCYRUUzCRkssXCHqSnKQ==} + engines: {node: 14 || >=16.14} + dev: true + + /magic-string-ast@0.3.0: + resolution: {integrity: sha512-0shqecEPgdFpnI3AP90epXyxZy9g6CRZ+SZ7BcqFwYmtFEnZ1jpevcV5HoyVnlDS9gCnc1UIg3Rsvp3Ci7r8OA==} + engines: {node: '>=16.14.0'} + dependencies: + magic-string: 0.30.8 + dev: true + /magic-string@0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} dependencies: @@ -8778,6 +10510,13 @@ packages: dependencies: sourcemap-codec: 1.4.8 + /magic-string@0.30.8: + resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + /make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} @@ -8998,6 +10737,13 @@ packages: dependencies: brace-expansion: 2.0.1 + /minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + /minimist-options@4.1.0: resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} engines: {node: '>= 6'} @@ -9077,6 +10823,15 @@ packages: pkg-types: 0.3.2 dev: true + /mlly@1.6.1: + resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==} + dependencies: + acorn: 8.11.3 + pathe: 1.1.2 + pkg-types: 1.0.3 + ufo: 1.5.2 + dev: true + /mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -9087,6 +10842,11 @@ packages: engines: {node: '>=10'} dev: true + /mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + dev: true + /ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} dev: false @@ -9102,8 +10862,8 @@ packages: engines: {node: '>= 0.10'} dev: false - /nan@2.16.0: - resolution: {integrity: sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA==} + /nan@2.19.0: + resolution: {integrity: sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==} requiresBuild: true dev: false optional: true @@ -9197,7 +10957,7 @@ packages: dependencies: hosted-git-info: 4.1.0 is-core-module: 2.9.0 - semver: 7.3.7 + semver: 7.6.0 validate-npm-package-license: 3.0.4 dev: true @@ -9298,6 +11058,10 @@ packages: /object-inspect@1.12.2: resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + dev: true + /object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} @@ -9318,6 +11082,16 @@ packages: has-symbols: 1.0.3 object-keys: 1.1.1 + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + /object.defaults@1.1.0: resolution: {integrity: sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==} engines: {node: '>=0.10.0'} @@ -9376,6 +11150,23 @@ packages: - encoding dev: true + /octokit@2.1.0: + resolution: {integrity: sha512-Pxi6uKTjBRZWgAwsw1NgHdRlL+QASCN35OYS7X79o7PtBME0CLXEroZmPtEwlWZbPTP+iDbEy2wCbSOgm0uGIQ==} + engines: {node: '>= 14'} + dependencies: + '@octokit/app': 13.1.8 + '@octokit/core': 4.2.4 + '@octokit/oauth-app': 4.2.4 + '@octokit/plugin-paginate-rest': 6.1.2(@octokit/core@4.2.4) + '@octokit/plugin-rest-endpoint-methods': 7.2.3(@octokit/core@4.2.4) + '@octokit/plugin-retry': 4.1.6(@octokit/core@4.2.4) + '@octokit/plugin-throttling': 5.2.3(@octokit/core@4.2.4) + '@octokit/request-error': 3.0.3 + '@octokit/types': 9.3.2 + transitivePeerDependencies: + - encoding + dev: true + /ohmyfetch@0.4.18: resolution: {integrity: sha512-MslzNrQzBLtZHmiZBI8QMOcMpdNFlK61OJ34nFNFynZ4v+4BonfCQ7VIN4EGXvGGq5zhDzgdJoY3o9S1l2T7KQ==} dependencies: @@ -9469,6 +11260,13 @@ packages: yocto-queue: 0.1.0 dev: true + /p-limit@5.0.0: + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + engines: {node: '>=18'} + dependencies: + yocto-queue: 1.0.0 + dev: true + /p-locate@2.0.0: resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} engines: {node: '>=4'} @@ -9554,7 +11352,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.16.7 + '@babel/code-frame': 7.24.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -9654,7 +11452,7 @@ packages: resolution: {integrity: sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==} engines: {node: '>=0.10.0'} dependencies: - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 pify: 2.3.0 pinkie-promise: 2.0.1 dev: false @@ -9678,6 +11476,10 @@ packages: resolution: {integrity: sha512-3vUjp552BJzCw9vqKsO5sttHkbYqqsZtH0x1PNtItgqx8BXEXzoY1SYRKcL6BTyVh4lGJGLj0tM42elUDMvcYA==} dev: true + /pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + dev: true + /pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} dev: true @@ -9743,6 +11545,14 @@ packages: pathe: 0.2.0 dev: true + /pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + dependencies: + jsonc-parser: 3.2.1 + mlly: 1.6.1 + pathe: 1.1.2 + dev: true + /plugin-error@1.0.1: resolution: {integrity: sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==} engines: {node: '>= 0.10'} @@ -9763,6 +11573,11 @@ packages: engines: {node: '>=0.10.0'} dev: false + /possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + dev: true + /postcss-calc@9.0.1(postcss@8.4.35): resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} engines: {node: ^14 || ^16 || >=18.0} @@ -10082,6 +11897,15 @@ packages: source-map-js: 1.0.2 dev: true + /postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.2.0 + dev: true + /preact@10.7.3: resolution: {integrity: sha512-giqJXP8VbtA1tyGa3f1n9wiN7PrHtONrDyE3T+ifjr/tTkg+2N4d/6sjC9WyJKv8wM7rOYDveqy5ZoFmYlwo4w==} @@ -10115,6 +11939,15 @@ packages: engines: {node: ^14.13.1 || >=16.0.0} dev: true + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: true + /pretty-hrtime@1.0.3: resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==} engines: {node: '>= 0.8'} @@ -10189,6 +12022,11 @@ packages: resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} engines: {node: '>=6'} + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + dev: true + /puppeteer@17.1.3: resolution: {integrity: sha512-tVtvNSOOqlq75rUgwLeDAEQoLIiBqmRg0/zedpI6fuqIocIkuxG23A7FIl1oVSkuSMMLgcOP5kVhNETmsmjvPw==} engines: {node: '>=14.1.0'} @@ -10247,6 +12085,10 @@ packages: safe-buffer: 5.2.1 dev: true + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + dev: true + /read-pkg-up@1.0.1: resolution: {integrity: sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==} engines: {node: '>=0.10.0'} @@ -10321,7 +12163,7 @@ packages: resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==} engines: {node: '>=0.10'} dependencies: - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 micromatch: 3.1.10 readable-stream: 2.3.7 transitivePeerDependencies: @@ -10352,8 +12194,8 @@ packages: strip-indent: 3.0.0 dev: true - /regenerate-unicode-properties@10.0.1: - resolution: {integrity: sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==} + /regenerate-unicode-properties@10.1.1: + resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} engines: {node: '>=4'} dependencies: regenerate: 1.4.2 @@ -10363,14 +12205,14 @@ packages: resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} dev: true - /regenerator-runtime@0.13.9: - resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} dev: true - /regenerator-transform@0.15.0: - resolution: {integrity: sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==} + /regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: - '@babel/runtime': 7.18.3 + '@babel/runtime': 7.24.1 dev: true /regex-not@1.0.2: @@ -10394,28 +12236,34 @@ packages: define-properties: 1.1.4 functions-have-names: 1.2.3 + /regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 + dev: true + /regexpp@3.2.0: resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} engines: {node: '>=8'} - /regexpu-core@5.0.1: - resolution: {integrity: sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==} + /regexpu-core@5.3.2: + resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} engines: {node: '>=4'} dependencies: + '@babel/regjsgen': 0.8.0 regenerate: 1.4.2 - regenerate-unicode-properties: 10.0.1 - regjsgen: 0.6.0 - regjsparser: 0.8.4 + regenerate-unicode-properties: 10.1.1 + regjsparser: 0.9.1 unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.1.0 dev: true - /regjsgen@0.6.0: - resolution: {integrity: sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==} - dev: true - - /regjsparser@0.8.4: - resolution: {integrity: sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==} + /regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} hasBin: true dependencies: jsesc: 0.5.0 @@ -10569,11 +12417,20 @@ packages: value-or-function: 3.0.0 dev: false + /resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + dev: true + /resolve-url@0.2.1: resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} deprecated: https://github.com/lydell/resolve-url#deprecated dev: false + /resolve.exports@2.0.2: + resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} + engines: {node: '>=10'} + dev: true + /resolve@1.22.0: resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==} hasBin: true @@ -10590,6 +12447,15 @@ packages: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + /restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} @@ -10632,7 +12498,7 @@ packages: rollup: 2.75.6 typescript: 4.7.3 optionalDependencies: - '@babel/code-frame': 7.18.6 + '@babel/code-frame': 7.24.2 dev: true /rollup-plugin-esbuild@4.9.1(esbuild@0.14.42)(rollup@2.75.6): @@ -10671,17 +12537,17 @@ packages: - supports-color dev: false - /rollup-plugin-terser@7.0.2(rollup@2.75.7): + /rollup-plugin-terser@7.0.2(rollup@2.79.1): resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser peerDependencies: rollup: ^2.0.0 dependencies: - '@babel/code-frame': 7.18.6 + '@babel/code-frame': 7.24.2 jest-worker: 26.6.2 - rollup: 2.75.7 + rollup: 2.79.1 serialize-javascript: 4.0.0 - terser: 5.14.0 + terser: 5.29.2 dev: true /rollup@2.75.6: @@ -10689,7 +12555,7 @@ packages: engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true /rollup@2.75.7: @@ -10697,7 +12563,38 @@ packages: engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 + + /rollup@2.79.1: + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /rollup@4.13.0: + resolution: {integrity: sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.13.0 + '@rollup/rollup-android-arm64': 4.13.0 + '@rollup/rollup-darwin-arm64': 4.13.0 + '@rollup/rollup-darwin-x64': 4.13.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.13.0 + '@rollup/rollup-linux-arm64-gnu': 4.13.0 + '@rollup/rollup-linux-arm64-musl': 4.13.0 + '@rollup/rollup-linux-riscv64-gnu': 4.13.0 + '@rollup/rollup-linux-x64-gnu': 4.13.0 + '@rollup/rollup-linux-x64-musl': 4.13.0 + '@rollup/rollup-win32-arm64-msvc': 4.13.0 + '@rollup/rollup-win32-ia32-msvc': 4.13.0 + '@rollup/rollup-win32-x64-msvc': 4.13.0 + fsevents: 2.3.3 + dev: true /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -10709,20 +12606,39 @@ packages: dependencies: tslib: 2.4.0 + /safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + /safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - /safe-execa@0.1.2: - resolution: {integrity: sha512-vdTshSQ2JsRCgT8eKZWNJIL26C6bVqy1SOmuCMlKHegVeo8KYRobRrefOdUq9OozSPUUiSxrylteeRmLOMFfWg==} + /safe-execa@0.1.3: + resolution: {integrity: sha512-KuOb5C35fJRrhTfErHX+Bw03PayibKwpmOPHnyWMkwSqeiyjq2/D6E524rtJFrvqoUKH6iTe/NC4nOtgWflU7g==} engines: {node: '>=12'} dependencies: '@zkochan/which': 2.0.3 execa: 5.1.1 path-name: 1.0.0 + /safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-regex: 1.1.4 + dev: true + /safe-regex@1.1.0: resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} dependencies: @@ -10780,8 +12696,8 @@ packages: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true - /semver@7.0.0: - resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==} + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true dev: true @@ -10792,6 +12708,14 @@ packages: dependencies: lru-cache: 6.0.0 + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + /serialize-javascript@4.0.0: resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} dependencies: @@ -10802,6 +12726,28 @@ packages: resolution: {integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc=} dev: false + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + dev: true + + /set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + dev: true + /set-value@2.0.1: resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} engines: {node: '>=0.10.0'} @@ -10855,9 +12801,28 @@ packages: get-intrinsic: 1.1.1 object-inspect: 1.12.2 + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.1 + dev: true + + /siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + dev: true + /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true + /sirv@2.0.2: resolution: {integrity: sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==} engines: {node: '>= 10'} @@ -10867,6 +12832,15 @@ packages: totalist: 3.0.0 dev: true + /sirv@2.0.4: + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} + engines: {node: '>= 10'} + dependencies: + '@polka/url': 1.0.0-next.25 + mrmime: 2.0.0 + totalist: 3.0.0 + dev: true + /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -10939,6 +12913,11 @@ packages: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + dev: true + /source-map-resolve@0.5.3: resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} deprecated: See https://github.com/lydell/source-map-resolve#deprecated @@ -11045,6 +13024,10 @@ packages: resolution: {integrity: sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=} dev: false + /stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + dev: true + /stacktracey@2.1.8: resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} dependencies: @@ -11059,6 +13042,10 @@ packages: object-copy: 0.1.0 dev: false + /std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + dev: true + /stealthy-require@1.1.1: resolution: {integrity: sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=} engines: {node: '>=0.10.0'} @@ -11109,17 +13096,22 @@ packages: strip-ansi: 7.0.1 dev: true - /string.prototype.matchall@4.0.7: - resolution: {integrity: sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==} + /string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.1 - get-intrinsic: 1.1.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.2 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + gopd: 1.0.1 has-symbols: 1.0.3 - internal-slot: 1.0.3 - regexp.prototype.flags: 1.4.3 - side-channel: 1.0.4 + internal-slot: 1.0.7 + regexp.prototype.flags: 1.5.2 + set-function-name: 2.0.2 + side-channel: 1.0.6 dev: true /string.prototype.padend@3.1.3: @@ -11131,6 +13123,16 @@ packages: es-abstract: 1.20.1 dev: true + /string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.2 + es-object-atoms: 1.0.0 + dev: true + /string.prototype.trimend@1.0.5: resolution: {integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==} dependencies: @@ -11138,6 +13140,14 @@ packages: define-properties: 1.1.4 es-abstract: 1.20.1 + /string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + dev: true + /string.prototype.trimstart@1.0.5: resolution: {integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==} dependencies: @@ -11145,6 +13155,14 @@ packages: define-properties: 1.1.4 es-abstract: 1.20.1 + /string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.2 + dev: true + /string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: @@ -11224,6 +13242,12 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + /strip-literal@2.0.0: + resolution: {integrity: sha512-f9vHgsCWBq2ugHAkGMiiYY+AYG0D/cbloKKg0nhaaaSNsujdGIpVXCNsrJpCKr5M0f4aI31mr13UjY6GAuXCKA==} + dependencies: + js-tokens: 8.0.3 + dev: true + /stylehacks@6.0.3(postcss@8.4.35): resolution: {integrity: sha512-KzBqjnqktc8/I0ERCb+lGq06giF/JxDbw2r9kEVhen9noHeIDRtMWUp9r62sOk+/2bbX6sFG1GhsS7ToXG0PEg==} engines: {node: ^14 || ^16 || >=18.0} @@ -11334,13 +13358,13 @@ packages: unique-string: 2.0.0 dev: true - /terser@5.14.0: - resolution: {integrity: sha512-JC6qfIEkPBd9j1SMO3Pfn+A6w2kQV54tv+ABQLgZr7dA3k/DL/OBoYSWxzVpZev3J+bUHXfr55L8Mox7AaNo6g==} + /terser@5.29.2: + resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==} engines: {node: '>=10'} hasBin: true dependencies: - '@jridgewell/source-map': 0.3.2 - acorn: 8.8.0 + '@jridgewell/source-map': 0.3.6 + acorn: 8.11.3 commander: 2.20.3 source-map-support: 0.5.21 dev: true @@ -11389,13 +13413,17 @@ packages: resolution: {integrity: sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=} engines: {node: '>=0.10.0'} - /tinypool@0.1.3: - resolution: {integrity: sha512-2IfcQh7CP46XGWGGbdyO4pjcKqsmVqFAPcXfPxcPXmOWt9cYkTP9HcDmGgsfijYoAEc4z9qcpM/BaBz46Y9/CQ==} + /tinybench@2.6.0: + resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} + dev: true + + /tinypool@0.8.2: + resolution: {integrity: sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==} engines: {node: '>=14.0.0'} dev: true - /tinyspy@0.3.2: - resolution: {integrity: sha512-2+40EP4D3sFYy42UkgkFFB+kiX2Tg3URG/lVvAZFfLxgGpnWl5qQJuBw1gaLttq8UOS+2p3C0WrhJnQigLTT2Q==} + /tinyspy@2.2.1: + resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} engines: {node: '>=14.0.0'} dev: true @@ -11478,7 +13506,7 @@ packages: /tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} dependencies: - punycode: 2.1.1 + punycode: 2.3.1 dev: true /tr46@2.1.0: @@ -11504,7 +13532,7 @@ packages: '@ts-morph/common': 0.13.0 code-block-writer: 11.0.0 - /ts-node@10.8.1(@types/node@17.0.40)(typescript@4.7.4): + /ts-node@10.8.1(@types/node@18.19.25)(typescript@4.7.4): resolution: {integrity: sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==} hasBin: true peerDependencies: @@ -11523,7 +13551,7 @@ packages: '@tsconfig/node12': 1.0.9 '@tsconfig/node14': 1.0.1 '@tsconfig/node16': 1.0.2 - '@types/node': 17.0.40 + '@types/node': 18.19.25 acorn: 8.7.1 acorn-walk: 8.2.0 arg: 4.1.3 @@ -11564,15 +13592,15 @@ packages: typescript: 4.7.4 dev: false - /tsx@3.6.0: - resolution: {integrity: sha512-XzqSxPmyJnI7ZtEX/CLE/CSDkqbL7dK4jwtJRIZpV0EhCxWqtb1OqJPlUc4CVS3/MFdpt8ZxLpvPFohWRTHbzw==} + /tsx@4.7.1: + resolution: {integrity: sha512-8d6VuibXHtlN5E3zFkgY8u4DX7Y3Z27zvvPKVmLon/D4AjuKzarkUBTLDBgj9iTQ0hg5xM7c/mYiRVM+HETf0g==} + engines: {node: '>=18.0.0'} hasBin: true dependencies: - '@esbuild-kit/cjs-loader': 2.2.1 - '@esbuild-kit/core-utils': 2.0.2 - '@esbuild-kit/esm-loader': 2.3.1 + esbuild: 0.19.12 + get-tsconfig: 4.7.3 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true /tunnel-agent@0.6.0: @@ -11643,6 +13671,50 @@ packages: resolution: {integrity: sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==} dev: false + /typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-typed-array: 1.1.13 + dev: true + + /typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + dev: true + + /typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + dev: true + + /typed-array-length@1.0.5: + resolution: {integrity: sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 + dev: true + /typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} dependencies: @@ -11671,6 +13743,10 @@ packages: resolution: {integrity: sha512-/+BmBDe8GvlB2nIflWasLLAInjYG0bC9HRnfEpNi4sw77J2AJNnEVnTDReVrehoh825+Q/evF3THXTAweyam2g==} dev: true + /ufo@1.5.2: + resolution: {integrity: sha512-eiutMaL0J2MKdhcOM1tUy13pIrYnyR87fEd8STJQFrrAwImwvlXkxlZEjaKah8r2viPohld08lt73QfLG1NxMg==} + dev: true + /unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: @@ -11755,6 +13831,10 @@ packages: undertaker-registry: 1.0.1 dev: false + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + dev: true + /undici@5.4.0: resolution: {integrity: sha512-A1SRXysDg7J+mVP46jF+9cKANw0kptqSFZ8tGyL+HBiv0K1spjxPX8Z4EGu+Eu6pjClJUBdnUPlxrOafR668/g==} engines: {node: '>=12.18'} @@ -11770,16 +13850,16 @@ packages: engines: {node: '>=4'} dependencies: unicode-canonical-property-names-ecmascript: 2.0.0 - unicode-property-aliases-ecmascript: 2.0.0 + unicode-property-aliases-ecmascript: 2.1.0 dev: true - /unicode-match-property-value-ecmascript@2.0.0: - resolution: {integrity: sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==} + /unicode-match-property-value-ecmascript@2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} engines: {node: '>=4'} dev: true - /unicode-property-aliases-ecmascript@2.0.0: - resolution: {integrity: sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==} + /unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} dev: true @@ -11819,6 +13899,13 @@ packages: jsonwebtoken: 8.5.1 dev: true + /universal-github-app-jwt@1.1.2: + resolution: {integrity: sha512-t1iB2FmLFE+yyJY9+3wMx0ejB+MQpEVkH0gQv7dR6FZyltyq+ZZO0uDpbopxhrZ3SLEO4dCEkIujOMldEQ2iOA==} + dependencies: + '@types/jsonwebtoken': 9.0.6 + jsonwebtoken: 9.0.2 + dev: true + /universal-user-agent@6.0.0: resolution: {integrity: sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==} dev: true @@ -11827,6 +13914,11 @@ packages: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} + /universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + dev: true + /unocss@0.33.5(vite@2.9.15): resolution: {integrity: sha512-aSWxGP6LHWv9eKc0WrmuLnOG2V8jkYd6zvsvB3LhZtCBWFXHPJ25T+zZP1szLbejPgSVJVVpJhnIAjJOFXRM9g==} engines: {node: '>=14'} @@ -11850,7 +13942,7 @@ packages: - vite dev: true - /unplugin-combine@0.2.2: + /unplugin-combine@0.2.2(esbuild@0.14.47)(rollup@2.75.7): resolution: {integrity: sha512-KkO9B40wjW3ige0a+lYkr1/Q97qZSbtXBTJY5MQdAJCVvSPXtG1mxaSYMoQABN1yF9RHcE9WeOxdl+zdOljeOQ==} engines: {node: '>=14.19.0'} peerDependencies: @@ -11868,10 +13960,12 @@ packages: webpack: optional: true dependencies: + esbuild: 0.14.47 + rollup: 2.75.7 unplugin: 0.9.5(esbuild@0.14.47)(rollup@2.75.7) - dev: true + dev: false - /unplugin-combine@0.2.2(esbuild@0.14.47)(rollup@2.75.7): + /unplugin-combine@0.2.2(rollup@2.79.1)(vite@2.9.15): resolution: {integrity: sha512-KkO9B40wjW3ige0a+lYkr1/Q97qZSbtXBTJY5MQdAJCVvSPXtG1mxaSYMoQABN1yF9RHcE9WeOxdl+zdOljeOQ==} engines: {node: '>=14.19.0'} peerDependencies: @@ -11889,18 +13983,18 @@ packages: webpack: optional: true dependencies: - esbuild: 0.14.47 - rollup: 2.75.7 - unplugin: 0.9.5(esbuild@0.14.47)(rollup@2.75.7) - dev: false + rollup: 2.79.1 + unplugin: 0.9.5(rollup@2.79.1)(vite@2.9.15) + vite: 2.9.15(sass@1.53.0) + dev: true - /unplugin-combine@0.2.2(rollup@2.75.7)(vite@2.9.15): - resolution: {integrity: sha512-KkO9B40wjW3ige0a+lYkr1/Q97qZSbtXBTJY5MQdAJCVvSPXtG1mxaSYMoQABN1yF9RHcE9WeOxdl+zdOljeOQ==} - engines: {node: '>=14.19.0'} + /unplugin-combine@0.8.1: + resolution: {integrity: sha512-m2OSmXXRwCPZx8Ct8eF8WbjgTo8bydim2W1ofu2hDabGdr2pgDAoFjOP1J4MOIwa0OByqk1JX8IGlSdeE6uxVQ==} + engines: {node: '>=16.14.0'} peerDependencies: esbuild: '>=0.13' - rollup: ^2.50.0 - vite: ^2.3.0 || ^3.0.0 + rollup: ^3.2.0 || ^4.0.0 + vite: ^2.3.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 webpack: 4 || 5 peerDependenciesMeta: esbuild: @@ -11912,9 +14006,8 @@ packages: webpack: optional: true dependencies: - rollup: 2.75.7 - unplugin: 0.9.5(rollup@2.75.7)(vite@2.9.15) - vite: 2.9.15(sass@1.53.0) + '@antfu/utils': 0.7.7 + unplugin: 1.10.0 dev: true /unplugin-element-plus@0.4.0: @@ -11932,7 +14025,7 @@ packages: - webpack dev: true - /unplugin-icons@0.14.6(rollup@2.75.7)(vite@2.9.15): + /unplugin-icons@0.14.6(rollup@2.79.1)(vite@2.9.15): resolution: {integrity: sha512-8sxDiL4l+TV4zufZfrskgHZZSDFoGOCBgYsefRMM4inQ3Z6KhgMSuNyew7U7D/xG//rwxgD7bN+Dv+YAZEEfEw==} peerDependencies: '@svgr/core': '>=5.5.0' @@ -11955,7 +14048,7 @@ packages: debug: 4.3.4 kolorist: 1.5.1 local-pkg: 0.4.1 - unplugin: 0.7.0(rollup@2.75.7)(vite@2.9.15) + unplugin: 0.7.0(rollup@2.79.1)(vite@2.9.15) transitivePeerDependencies: - esbuild - rollup @@ -11964,7 +14057,7 @@ packages: - webpack dev: true - /unplugin-vue-components@0.20.1(rollup@2.75.7)(vite@2.9.15)(vue@3.2.37): + /unplugin-vue-components@0.20.1(rollup@2.79.1)(vite@2.9.15)(vue@3.2.37): resolution: {integrity: sha512-I70rKUvnJXxBvvTvKhjMV6jXh48BdiUNn2jcQiTdZjqBA3Xgkze31tdc4KBX46yryIy0y6pVaZ9gVBNPrF785g==} engines: {node: '>=14'} peerDependencies: @@ -11983,7 +14076,7 @@ packages: magic-string: 0.26.2 minimatch: 5.1.0 resolve: 1.22.1 - unplugin: 0.7.0(rollup@2.75.7)(vite@2.9.15) + unplugin: 0.7.0(rollup@2.79.1)(vite@2.9.15) vue: 3.2.37 transitivePeerDependencies: - esbuild @@ -12007,7 +14100,7 @@ packages: '@rollup/pluginutils': 4.2.1 chokidar: 3.5.3 debug: 4.3.4 - fast-glob: 3.2.11 + fast-glob: 3.3.2 local-pkg: 0.4.2 magic-string: 0.26.3 minimatch: 5.1.0 @@ -12022,7 +14115,7 @@ packages: - webpack dev: true - /unplugin-vue-define-options@0.11.2: + /unplugin-vue-define-options@0.11.2(esbuild@0.14.47)(rollup@2.75.7): resolution: {integrity: sha512-Eql/lAih50HLdg6eOGNjPZhLCTW7B297FvKdpfibRMtnlhhrZsRFUs5DyS3tcNBc7Zkc6GcS8mt6HKGNGhaXKg==} engines: {node: '>=14.19.0'} dependencies: @@ -12035,36 +14128,33 @@ packages: - rollup - vite - webpack - dev: true + dev: false - /unplugin-vue-define-options@0.11.2(esbuild@0.14.47)(rollup@2.75.7): + /unplugin-vue-define-options@0.11.2(rollup@2.79.1)(vite@2.9.15): resolution: {integrity: sha512-Eql/lAih50HLdg6eOGNjPZhLCTW7B297FvKdpfibRMtnlhhrZsRFUs5DyS3tcNBc7Zkc6GcS8mt6HKGNGhaXKg==} engines: {node: '>=14.19.0'} dependencies: '@rollup/pluginutils': 4.2.1 '@vue-macros/common': 0.11.2 ast-walker-scope: 0.2.3 - unplugin: 0.9.5(esbuild@0.14.47)(rollup@2.75.7) + unplugin: 0.9.5(rollup@2.79.1)(vite@2.9.15) transitivePeerDependencies: - esbuild - rollup - vite - webpack - dev: false + dev: true - /unplugin-vue-define-options@0.11.2(rollup@2.75.7)(vite@2.9.15): - resolution: {integrity: sha512-Eql/lAih50HLdg6eOGNjPZhLCTW7B297FvKdpfibRMtnlhhrZsRFUs5DyS3tcNBc7Zkc6GcS8mt6HKGNGhaXKg==} - engines: {node: '>=14.19.0'} + /unplugin-vue-define-options@1.4.2(vue@3.2.37): + resolution: {integrity: sha512-jQ3nJ1olC107QUA67UEB1CWJXnbVA7SF4UibKQF+jvME7UZ/XomctISHtAkJSJ9YHn0eqnqqzyNkng/KnLUZBw==} + engines: {node: '>=16.14.0'} dependencies: - '@rollup/pluginutils': 4.2.1 - '@vue-macros/common': 0.11.2 - ast-walker-scope: 0.2.3 - unplugin: 0.9.5(rollup@2.75.7)(vite@2.9.15) + '@vue-macros/common': 1.10.1(vue@3.2.37) + ast-walker-scope: 0.5.0 + unplugin: 1.10.0 transitivePeerDependencies: - - esbuild - rollup - - vite - - webpack + - vue dev: true /unplugin-vue-macros@0.11.2(esbuild@0.14.47)(rollup@2.75.7)(vue@3.2.37): @@ -12091,7 +14181,7 @@ packages: - webpack dev: false - /unplugin-vue-macros@0.11.2(rollup@2.75.7)(vite@2.9.15)(vue@3.2.37): + /unplugin-vue-macros@0.11.2(rollup@2.79.1)(vite@2.9.15)(vue@3.2.37): resolution: {integrity: sha512-DvEFbqyio24pOzSyvzDiCaPXnOwJEd9u1Dr2cshMcnSft6OWBgwbm6IumVBbOSydEpClORcZAouxA9CyjUyMbQ==} engines: {node: '>=14.19.0'} peerDependencies: @@ -12099,14 +14189,14 @@ packages: dependencies: '@rollup/pluginutils': 4.2.1 '@vue-macros/common': 0.11.2 - '@vue-macros/define-model': 0.11.2(rollup@2.75.7)(vite@2.9.15) - '@vue-macros/define-render': 0.11.2(rollup@2.75.7)(vite@2.9.15) - '@vue-macros/hoist-static': 0.11.2(rollup@2.75.7)(vite@2.9.15) - '@vue-macros/setup-component': 0.11.2(rollup@2.75.7)(vite@2.9.15) - '@vue-macros/setup-sfc': 0.11.2(rollup@2.75.7)(vite@2.9.15) + '@vue-macros/define-model': 0.11.2(rollup@2.79.1)(vite@2.9.15) + '@vue-macros/define-render': 0.11.2(rollup@2.79.1)(vite@2.9.15) + '@vue-macros/hoist-static': 0.11.2(rollup@2.79.1)(vite@2.9.15) + '@vue-macros/setup-component': 0.11.2(rollup@2.79.1)(vite@2.9.15) + '@vue-macros/setup-sfc': 0.11.2(rollup@2.79.1)(vite@2.9.15) local-pkg: 0.4.2 - unplugin-combine: 0.2.2(rollup@2.75.7)(vite@2.9.15) - unplugin-vue-define-options: 0.11.2(rollup@2.75.7)(vite@2.9.15) + unplugin-combine: 0.2.2(rollup@2.79.1)(vite@2.9.15) + unplugin-vue-define-options: 0.11.2(rollup@2.79.1)(vite@2.9.15) vue: 3.2.37 transitivePeerDependencies: - esbuild @@ -12115,26 +14205,46 @@ packages: - webpack dev: true - /unplugin-vue-macros@0.11.2(vue@3.2.37): - resolution: {integrity: sha512-DvEFbqyio24pOzSyvzDiCaPXnOwJEd9u1Dr2cshMcnSft6OWBgwbm6IumVBbOSydEpClORcZAouxA9CyjUyMbQ==} - engines: {node: '>=14.19.0'} + /unplugin-vue-macros@2.7.11(@vueuse/core@9.1.0)(typescript@4.7.4)(vue@3.2.37): + resolution: {integrity: sha512-Trfc2nH9LUMdxsAo09dTXI2kCudJS7pIowJQ9mQuJBfIonNfoG0dGJ5x2OLmpm1AwmRuJVrJqkjDcKtrA2/ACw==} + engines: {node: '>=16.14.0'} peerDependencies: vue: ^2.7.0 || ^3.2.25 dependencies: - '@rollup/pluginutils': 4.2.1 - '@vue-macros/common': 0.11.2 - '@vue-macros/define-model': 0.11.2 - '@vue-macros/define-render': 0.11.2 - '@vue-macros/hoist-static': 0.11.2 - '@vue-macros/setup-component': 0.11.2 - '@vue-macros/setup-sfc': 0.11.2 - local-pkg: 0.4.2 - unplugin-combine: 0.2.2 - unplugin-vue-define-options: 0.11.2 + '@vue-macros/better-define': 1.7.3(vue@3.2.37) + '@vue-macros/boolean-prop': 0.3.2(vue@3.2.37) + '@vue-macros/chain-call': 0.2.2(vue@3.2.37) + '@vue-macros/common': 1.10.1(vue@3.2.37) + '@vue-macros/define-emit': 0.2.3(vue@3.2.37) + '@vue-macros/define-models': 1.2.2(@vueuse/core@9.1.0)(vue@3.2.37) + '@vue-macros/define-prop': 0.3.3(vue@3.2.37) + '@vue-macros/define-props': 2.0.3(@vue-macros/reactivity-transform@0.4.3)(vue@3.2.37) + '@vue-macros/define-props-refs': 1.2.2(vue@3.2.37) + '@vue-macros/define-render': 1.5.2(vue@3.2.37) + '@vue-macros/define-slots': 1.1.2(vue@3.2.37) + '@vue-macros/devtools': 0.2.0(typescript@4.7.4) + '@vue-macros/export-expose': 0.1.2(vue@3.2.37) + '@vue-macros/export-props': 0.4.2(vue@3.2.37) + '@vue-macros/export-render': 0.2.2(vue@3.2.37) + '@vue-macros/hoist-static': 1.5.2(vue@3.2.37) + '@vue-macros/jsx-directive': 0.8.9(vue@3.2.37) + '@vue-macros/named-template': 0.4.2(vue@3.2.37) + '@vue-macros/reactivity-transform': 0.4.3(vue@3.2.37) + '@vue-macros/setup-block': 0.3.2(vue@3.2.37) + '@vue-macros/setup-component': 0.17.2(vue@3.2.37) + '@vue-macros/setup-sfc': 0.17.2(vue@3.2.37) + '@vue-macros/short-bind': 0.2.2(vue@3.2.37) + '@vue-macros/short-emits': 1.5.2(vue@3.2.37) + '@vue-macros/short-vmodel': 1.4.2(vue@3.2.37) + unplugin: 1.10.0 + unplugin-combine: 0.8.1 + unplugin-vue-define-options: 1.4.2(vue@3.2.37) vue: 3.2.37 transitivePeerDependencies: + - '@vueuse/core' - esbuild - rollup + - typescript - vite - webpack dev: true @@ -12161,7 +14271,7 @@ packages: webpack-virtual-modules: 0.4.3 dev: true - /unplugin@0.7.0(rollup@2.75.7)(vite@2.9.15): + /unplugin@0.7.0(rollup@2.79.1)(vite@2.9.15): resolution: {integrity: sha512-OsiFrgybmqm5bGuaodvbLYhqUrvGuRHRMZDhddKEXTDbuQ1x+hR7M1WpQguXj03whVYjEYChhFo738cZH5RNig==} peerDependencies: esbuild: '>=0.13' @@ -12180,7 +14290,7 @@ packages: dependencies: acorn: 8.7.1 chokidar: 3.5.3 - rollup: 2.75.7 + rollup: 2.79.1 vite: 2.9.15(sass@1.53.0) webpack-sources: 3.2.3 webpack-virtual-modules: 0.4.3 @@ -12233,8 +14343,9 @@ packages: rollup: 2.75.7 webpack-sources: 3.2.3 webpack-virtual-modules: 0.4.4 + dev: false - /unplugin@0.9.5(rollup@2.75.7)(vite@2.9.15): + /unplugin@0.9.5(rollup@2.79.1)(vite@2.9.15): resolution: {integrity: sha512-luraheyfxwtvkvHpsOvMNv7IjLdORTWKZp0gWYNHGLi2ImON3iIZOj464qEyyEwLA/EMt12fC415HW9zRpOfTg==} peerDependencies: esbuild: '>=0.13' @@ -12253,12 +14364,22 @@ packages: dependencies: acorn: 8.8.0 chokidar: 3.5.3 - rollup: 2.75.7 + rollup: 2.79.1 vite: 2.9.15(sass@1.53.0) webpack-sources: 3.2.3 webpack-virtual-modules: 0.4.4 dev: true + /unplugin@1.10.0: + resolution: {integrity: sha512-CuZtvvO8ua2Wl+9q2jEaqH6m3DoQ38N7pvBYQbbaeNlWGvK2l6GHiKi29aIHDPoSxdUzQ7Unevf1/ugil5X6Pg==} + engines: {node: '>=14.0.0'} + dependencies: + acorn: 8.11.3 + chokidar: 3.6.0 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.6.1 + dev: true + /unset-value@1.0.0: resolution: {integrity: sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=} engines: {node: '>=0.10.0'} @@ -12405,7 +14526,7 @@ packages: dependencies: append-buffer: 1.0.2 convert-source-map: 1.8.0 - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 normalize-path: 2.1.1 now-and-later: 2.0.1 remove-bom-buffer: 3.0.0 @@ -12430,6 +14551,27 @@ packages: replace-ext: 1.0.1 dev: false + /vite-node@1.4.0(@types/node@18.19.25)(sass@1.53.0): + resolution: {integrity: sha512-VZDAseqjrHgNd4Kh8icYHWzTKSCZMhia7GyHfhtzLW33fZlG9SwsB6CEhgyVOWkJfJ2pFLrp/Gj1FSfAiqH9Lw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.4 + pathe: 1.1.2 + picocolors: 1.0.0 + vite: 5.1.6(@types/node@18.19.25)(sass@1.53.0) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + /vite-plugin-inspect@0.5.0(vite@2.9.15): resolution: {integrity: sha512-eArca+5jrNx1hQL+5s79eT5Xq4VXjJcihJhK8GT/+W2GqefVxFO1WO78RnD0HPI+hKSdEFo+B4z2zeaE8DTvWQ==} engines: {node: '>=14'} @@ -12466,7 +14608,7 @@ packages: - supports-color dev: true - /vite-plugin-pwa@0.12.0(vite@2.9.15)(workbox-build@6.5.3)(workbox-window@6.5.3): + /vite-plugin-pwa@0.12.0(vite@2.9.15)(workbox-build@6.6.0)(workbox-window@6.6.0): resolution: {integrity: sha512-KYD+cnS5ExLF3T28NkfzBLZ53ehHlp+qMhHGFNh0zlVGpFHrJkL2v9wd4AMi7ZkBTffgeNatIFiv8rhCsMSxBQ==} peerDependencies: vite: ^2.0.0 @@ -12481,8 +14623,8 @@ packages: pretty-bytes: 6.0.0 rollup: 2.75.6 vite: 2.9.15(sass@1.53.0) - workbox-build: 6.5.3 - workbox-window: 6.5.3 + workbox-build: 6.6.0 + workbox-window: 6.6.0 transitivePeerDependencies: - supports-color dev: true @@ -12509,15 +14651,52 @@ packages: rollup: 2.75.7 sass: 1.53.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 + + /vite@5.1.6(@types/node@18.19.25)(sass@1.53.0): + resolution: {integrity: sha512-yYIAZs9nVfRJ/AiOLCA91zzhjsHUgMjB+EigzFb6W2XTLO8JixBCKCjvhKZaye+NKYHCrkv3Oh50dH9EdLU2RA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 18.19.25 + esbuild: 0.19.12 + postcss: 8.4.35 + rollup: 4.13.0 + sass: 1.53.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true - /vitepress@0.22.4(@types/react@18.2.43)(sass@1.53.0): + /vitepress@0.22.4(@types/react@18.2.67)(sass@1.53.0): resolution: {integrity: sha512-oZUnLO/SpYdThaBKefDeOiVlr0Rie4Ppx3FzMnMyLtJnI5GlBMNjqYqMy/4+umm/iC+ZDJfI+IlDKxv5fZnYzA==} engines: {node: '>=14.0.0'} hasBin: true dependencies: '@docsearch/css': 3.1.0 - '@docsearch/js': 3.1.0(@types/react@18.2.43) + '@docsearch/js': 3.1.0(@types/react@18.2.67) '@vitejs/plugin-vue': 2.3.3(vite@2.9.15)(vue@3.2.37) prismjs: 1.28.0 vite: 2.9.15(sass@1.53.0) @@ -12531,39 +14710,63 @@ packages: - stylus dev: true - /vitest@0.12.6(@vitest/ui@0.16.0)(c8@7.11.3)(jsdom@16.4.0)(sass@1.53.0): - resolution: {integrity: sha512-YWbCTv0XKBuBw5YtuW/iufuguoi8QhGpYyi2g57Oo7akpscMkkWTAaZGgY0ux1oJJtO/pc/8GFt0EF32WFBUUQ==} - engines: {node: '>=v14.16.0'} + /vitest@1.4.0(@types/node@18.19.25)(@vitest/ui@1.4.0)(happy-dom@14.3.3)(jsdom@16.4.0)(sass@1.53.0): + resolution: {integrity: sha512-gujzn0g7fmwf83/WzrDTnncZt2UiXP41mHuFYFrdwaLRVQ6JYQEiME2IfEjU3vcFL3VKa75XhI3lFgn+hfVsQw==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: - '@vitest/ui': '*' - c8: '*' + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 1.4.0 + '@vitest/ui': 1.4.0 happy-dom: '*' jsdom: '*' peerDependenciesMeta: - '@vitest/ui': + '@edge-runtime/vm': optional: true - c8: + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': optional: true happy-dom: optional: true jsdom: optional: true dependencies: - '@types/chai': 4.3.1 - '@types/chai-subset': 1.3.3 - '@vitest/ui': 0.16.0 - c8: 7.11.3 - chai: 4.3.6 + '@types/node': 18.19.25 + '@vitest/expect': 1.4.0 + '@vitest/runner': 1.4.0 + '@vitest/snapshot': 1.4.0 + '@vitest/spy': 1.4.0 + '@vitest/ui': 1.4.0(vitest@1.4.0) + '@vitest/utils': 1.4.0 + acorn-walk: 8.3.2 + chai: 4.4.1 + debug: 4.3.4 + execa: 8.0.1 + happy-dom: 14.3.3 jsdom: 16.4.0 - local-pkg: 0.4.1 - tinypool: 0.1.3 - tinyspy: 0.3.2 - vite: 2.9.15(sass@1.53.0) + local-pkg: 0.5.0 + magic-string: 0.30.8 + pathe: 1.1.2 + picocolors: 1.0.0 + std-env: 3.7.0 + strip-literal: 2.0.0 + tinybench: 2.6.0 + tinypool: 0.8.2 + vite: 5.1.6(@types/node@18.19.25)(sass@1.53.0) + vite-node: 1.4.0(@types/node@18.19.25)(sass@1.53.0) + why-is-node-running: 2.2.2 transitivePeerDependencies: - less + - lightningcss - sass - stylus + - sugarss + - supports-color + - terser dev: true /vue-demi@0.13.1(vue@3.2.37): @@ -12579,7 +14782,6 @@ packages: optional: true dependencies: vue: 3.2.37 - dev: false /vue-eslint-parser@9.0.2(eslint@8.18.0): resolution: {integrity: sha512-uCPQwTGjOtAYrwnU+76pYxalhjsh7iFBsHwBqDHiOPTxtICDaraO4Szw54WFTNZTAEsgHHzqFOu1mmnBOBRzDA==} @@ -12627,6 +14829,22 @@ packages: '@vue/server-renderer': 3.2.37(vue@3.2.37) '@vue/shared': 3.2.37 + /vue@3.4.21(typescript@4.7.4): + resolution: {integrity: sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@vue/compiler-dom': 3.4.21 + '@vue/compiler-sfc': 3.4.21 + '@vue/runtime-dom': 3.4.21 + '@vue/server-renderer': 3.4.21(vue@3.4.21) + '@vue/shared': 3.4.21 + typescript: 4.7.4 + dev: true + /w3c-hr-time@1.0.2: resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} dependencies: @@ -12646,7 +14864,7 @@ packages: requiresBuild: true dependencies: glob-to-regexp: 0.4.1 - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 dev: true optional: true @@ -12668,6 +14886,11 @@ packages: engines: {node: '>=10.4'} dev: true + /webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + dev: true + /webpack-sources@3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} @@ -12679,6 +14902,10 @@ packages: /webpack-virtual-modules@0.4.4: resolution: {integrity: sha512-h9atBP/bsZohWpHnr+2sic8Iecb60GxftXsWNLLLSqewgIsGzByd2gcIID4nXcG+3tNe4GQG3dLcff3kXupdRA==} + /webpack-virtual-modules@0.6.1: + resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} + dev: true + /whatwg-encoding@1.0.5: resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==} dependencies: @@ -12689,6 +14916,11 @@ packages: resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==} dev: true + /whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + dev: true + /whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} dependencies: @@ -12726,6 +14958,17 @@ packages: resolution: {integrity: sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=} dev: false + /which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.2 + dev: true + /which@1.3.1: resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} hasBin: true @@ -12739,6 +14982,15 @@ packages: dependencies: isexe: 2.0.0 + /why-is-node-running@2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + engines: {node: '>=8'} + hasBin: true + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + dev: true + /widest-line@3.1.0: resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} engines: {node: '>=8'} @@ -12749,150 +15001,152 @@ packages: resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} engines: {node: '>=0.10.0'} - /workbox-background-sync@6.5.3: - resolution: {integrity: sha512-0DD/V05FAcek6tWv9XYj2w5T/plxhDSpclIcAGjA/b7t/6PdaRkQ7ZgtAX6Q/L7kV7wZ8uYRJUoH11VjNipMZw==} + /workbox-background-sync@6.6.0: + resolution: {integrity: sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==} dependencies: - idb: 6.1.5 - workbox-core: 6.5.3 + idb: 7.1.1 + workbox-core: 6.6.0 dev: true - /workbox-broadcast-update@6.5.3: - resolution: {integrity: sha512-4AwCIA5DiDrYhlN+Miv/fp5T3/whNmSL+KqhTwRBTZIL6pvTgE4lVuRzAt1JltmqyMcQ3SEfCdfxczuI4kwFQg==} + /workbox-broadcast-update@6.6.0: + resolution: {integrity: sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==} dependencies: - workbox-core: 6.5.3 + workbox-core: 6.6.0 dev: true - /workbox-build@6.5.3: - resolution: {integrity: sha512-8JNHHS7u13nhwIYCDea9MNXBNPHXCs5KDZPKI/ZNTr3f4sMGoD7hgFGecbyjX1gw4z6e9bMpMsOEJNyH5htA/w==} + /workbox-build@6.6.0: + resolution: {integrity: sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==} engines: {node: '>=10.0.0'} dependencies: - '@apideck/better-ajv-errors': 0.3.4(ajv@8.11.0) - '@babel/core': 7.18.2 - '@babel/preset-env': 7.18.2(@babel/core@7.18.2) - '@babel/runtime': 7.18.3 - '@rollup/plugin-babel': 5.3.1(@babel/core@7.18.2)(rollup@2.75.7) - '@rollup/plugin-node-resolve': 11.2.1(rollup@2.75.7) - '@rollup/plugin-replace': 2.4.2(rollup@2.75.7) + '@apideck/better-ajv-errors': 0.3.6(ajv@8.12.0) + '@babel/core': 7.24.3 + '@babel/preset-env': 7.24.3(@babel/core@7.24.3) + '@babel/runtime': 7.24.1 + '@rollup/plugin-babel': 5.3.1(@babel/core@7.24.3)(rollup@2.79.1) + '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.1) + '@rollup/plugin-replace': 2.4.2(rollup@2.79.1) '@surma/rollup-plugin-off-main-thread': 2.2.3 - ajv: 8.11.0 + ajv: 8.12.0 common-tags: 1.8.2 fast-json-stable-stringify: 2.1.0 fs-extra: 9.1.0 glob: 7.2.3 lodash: 4.17.21 pretty-bytes: 5.6.0 - rollup: 2.75.7 - rollup-plugin-terser: 7.0.2(rollup@2.75.7) + rollup: 2.79.1 + rollup-plugin-terser: 7.0.2(rollup@2.79.1) source-map: 0.8.0-beta.0 stringify-object: 3.3.0 strip-comments: 2.0.1 tempy: 0.6.0 upath: 1.2.0 - workbox-background-sync: 6.5.3 - workbox-broadcast-update: 6.5.3 - workbox-cacheable-response: 6.5.3 - workbox-core: 6.5.3 - workbox-expiration: 6.5.3 - workbox-google-analytics: 6.5.3 - workbox-navigation-preload: 6.5.3 - workbox-precaching: 6.5.3 - workbox-range-requests: 6.5.3 - workbox-recipes: 6.5.3 - workbox-routing: 6.5.3 - workbox-strategies: 6.5.3 - workbox-streams: 6.5.3 - workbox-sw: 6.5.3 - workbox-window: 6.5.3 + workbox-background-sync: 6.6.0 + workbox-broadcast-update: 6.6.0 + workbox-cacheable-response: 6.6.0 + workbox-core: 6.6.0 + workbox-expiration: 6.6.0 + workbox-google-analytics: 6.6.0 + workbox-navigation-preload: 6.6.0 + workbox-precaching: 6.6.0 + workbox-range-requests: 6.6.0 + workbox-recipes: 6.6.0 + workbox-routing: 6.6.0 + workbox-strategies: 6.6.0 + workbox-streams: 6.6.0 + workbox-sw: 6.6.0 + workbox-window: 6.6.0 transitivePeerDependencies: - '@types/babel__core' - supports-color dev: true - /workbox-cacheable-response@6.5.3: - resolution: {integrity: sha512-6JE/Zm05hNasHzzAGKDkqqgYtZZL2H06ic2GxuRLStA4S/rHUfm2mnLFFXuHAaGR1XuuYyVCEey1M6H3PdZ7SQ==} + /workbox-cacheable-response@6.6.0: + resolution: {integrity: sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==} + deprecated: workbox-background-sync@6.6.0 dependencies: - workbox-core: 6.5.3 + workbox-core: 6.6.0 dev: true - /workbox-core@6.5.3: - resolution: {integrity: sha512-Bb9ey5n/M9x+l3fBTlLpHt9ASTzgSGj6vxni7pY72ilB/Pb3XtN+cZ9yueboVhD5+9cNQrC9n/E1fSrqWsUz7Q==} + /workbox-core@6.6.0: + resolution: {integrity: sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==} dev: true - /workbox-expiration@6.5.3: - resolution: {integrity: sha512-jzYopYR1zD04ZMdlbn/R2Ik6ixiXbi15c9iX5H8CTi6RPDz7uhvMLZPKEndZTpfgmUk8mdmT9Vx/AhbuCl5Sqw==} + /workbox-expiration@6.6.0: + resolution: {integrity: sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==} dependencies: - idb: 6.1.5 - workbox-core: 6.5.3 + idb: 7.1.1 + workbox-core: 6.6.0 dev: true - /workbox-google-analytics@6.5.3: - resolution: {integrity: sha512-3GLCHotz5umoRSb4aNQeTbILETcrTVEozSfLhHSBaegHs1PnqCmN0zbIy2TjTpph2AGXiNwDrWGF0AN+UgDNTw==} + /workbox-google-analytics@6.6.0: + resolution: {integrity: sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==} + deprecated: It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained dependencies: - workbox-background-sync: 6.5.3 - workbox-core: 6.5.3 - workbox-routing: 6.5.3 - workbox-strategies: 6.5.3 + workbox-background-sync: 6.6.0 + workbox-core: 6.6.0 + workbox-routing: 6.6.0 + workbox-strategies: 6.6.0 dev: true - /workbox-navigation-preload@6.5.3: - resolution: {integrity: sha512-bK1gDFTc5iu6lH3UQ07QVo+0ovErhRNGvJJO/1ngknT0UQ702nmOUhoN9qE5mhuQSrnK+cqu7O7xeaJ+Rd9Tmg==} + /workbox-navigation-preload@6.6.0: + resolution: {integrity: sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==} dependencies: - workbox-core: 6.5.3 + workbox-core: 6.6.0 dev: true - /workbox-precaching@6.5.3: - resolution: {integrity: sha512-sjNfgNLSsRX5zcc63H/ar/hCf+T19fRtTqvWh795gdpghWb5xsfEkecXEvZ8biEi1QD7X/ljtHphdaPvXDygMQ==} + /workbox-precaching@6.6.0: + resolution: {integrity: sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==} dependencies: - workbox-core: 6.5.3 - workbox-routing: 6.5.3 - workbox-strategies: 6.5.3 + workbox-core: 6.6.0 + workbox-routing: 6.6.0 + workbox-strategies: 6.6.0 dev: true - /workbox-range-requests@6.5.3: - resolution: {integrity: sha512-pGCP80Bpn/0Q0MQsfETSfmtXsQcu3M2QCJwSFuJ6cDp8s2XmbUXkzbuQhCUzKR86ZH2Vex/VUjb2UaZBGamijA==} + /workbox-range-requests@6.6.0: + resolution: {integrity: sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==} dependencies: - workbox-core: 6.5.3 + workbox-core: 6.6.0 dev: true - /workbox-recipes@6.5.3: - resolution: {integrity: sha512-IcgiKYmbGiDvvf3PMSEtmwqxwfQ5zwI7OZPio3GWu4PfehA8jI8JHI3KZj+PCfRiUPZhjQHJ3v1HbNs+SiSkig==} + /workbox-recipes@6.6.0: + resolution: {integrity: sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==} dependencies: - workbox-cacheable-response: 6.5.3 - workbox-core: 6.5.3 - workbox-expiration: 6.5.3 - workbox-precaching: 6.5.3 - workbox-routing: 6.5.3 - workbox-strategies: 6.5.3 + workbox-cacheable-response: 6.6.0 + workbox-core: 6.6.0 + workbox-expiration: 6.6.0 + workbox-precaching: 6.6.0 + workbox-routing: 6.6.0 + workbox-strategies: 6.6.0 dev: true - /workbox-routing@6.5.3: - resolution: {integrity: sha512-DFjxcuRAJjjt4T34RbMm3MCn+xnd36UT/2RfPRfa8VWJGItGJIn7tG+GwVTdHmvE54i/QmVTJepyAGWtoLPTmg==} + /workbox-routing@6.6.0: + resolution: {integrity: sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==} dependencies: - workbox-core: 6.5.3 + workbox-core: 6.6.0 dev: true - /workbox-strategies@6.5.3: - resolution: {integrity: sha512-MgmGRrDVXs7rtSCcetZgkSZyMpRGw8HqL2aguszOc3nUmzGZsT238z/NN9ZouCxSzDu3PQ3ZSKmovAacaIhu1w==} + /workbox-strategies@6.6.0: + resolution: {integrity: sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==} dependencies: - workbox-core: 6.5.3 + workbox-core: 6.6.0 dev: true - /workbox-streams@6.5.3: - resolution: {integrity: sha512-vN4Qi8o+b7zj1FDVNZ+PlmAcy1sBoV7SC956uhqYvZ9Sg1fViSbOpydULOssVJ4tOyKRifH/eoi6h99d+sJ33w==} + /workbox-streams@6.6.0: + resolution: {integrity: sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==} dependencies: - workbox-core: 6.5.3 - workbox-routing: 6.5.3 + workbox-core: 6.6.0 + workbox-routing: 6.6.0 dev: true - /workbox-sw@6.5.3: - resolution: {integrity: sha512-BQBzm092w+NqdIEF2yhl32dERt9j9MDGUTa2Eaa+o3YKL4Qqw55W9yQC6f44FdAHdAJrJvp0t+HVrfh8AiGj8A==} + /workbox-sw@6.6.0: + resolution: {integrity: sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==} dev: true - /workbox-window@6.5.3: - resolution: {integrity: sha512-GnJbx1kcKXDtoJBVZs/P7ddP0Yt52NNy4nocjBpYPiRhMqTpJCNrSL+fGHZ/i/oP6p/vhE8II0sA6AZGKGnssw==} + /workbox-window@6.6.0: + resolution: {integrity: sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==} dependencies: - '@types/trusted-types': 2.0.2 - workbox-core: 6.5.3 + '@types/trusted-types': 2.0.7 + workbox-core: 6.6.0 dev: true /wrap-ansi@2.1.0: @@ -13109,3 +15363,8 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} dev: true + + /yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + dev: true diff --git a/vitest.config.ts b/vitest.config.ts index eae09a8e7e6430..1632dffd9939b5 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -22,8 +22,8 @@ export default defineConfig({ environment: 'jsdom', setupFiles: ['./vitest.setup.ts'], reporters: ['json', 'default'], - transformMode: { - web: [/\.[jt]sx$/], + testTransformMode: { + web: ['*.{ts,tsx}'], }, coverage: { reporter: ['text', 'json-summary', 'json'], From 546b21ea8253f463ee00691230063edb77390ea0 Mon Sep 17 00:00:00 2001 From: kooriookami <38392315+kooriookami@users.noreply.github.com> Date: Thu, 11 Apr 2024 18:48:52 +0800 Subject: [PATCH 03/78] feat(components): [segmented] new component (#16258) * feat(components): [segmented] new component * feat(components): [segmented] * feat(components): update * feat(components): update * feat(theme-chalk): update * feat(components): update * feat: update * feat: update * feat(components): add focus-visible * feat(theme-chalk): update * feat(components): fix test * docs: docs * feat(components): update * feat: add icon --- .../crowdin/en-US/pages/component.json | 5 + .../components/overview-icons/index.ts | 2 + .../overview-icons/ov-segmented.vue | 91 +++++++++ docs/components.d.ts | 1 + docs/en-US/component/segmented.md | 102 +++++++++++ docs/examples/form/validation.vue | 14 ++ docs/examples/segmented/basic.vue | 14 ++ docs/examples/segmented/block.vue | 20 ++ docs/examples/segmented/custom-content.vue | 60 ++++++ docs/examples/segmented/custom-style.vue | 20 ++ docs/examples/segmented/disabled.vue | 45 +++++ packages/components/index.ts | 1 + .../segmented/__tests__/segmented.test.tsx | 136 ++++++++++++++ packages/components/segmented/index.ts | 7 + .../components/segmented/src/segmented.ts | 70 +++++++ .../components/segmented/src/segmented.vue | 173 ++++++++++++++++++ packages/components/segmented/src/types.ts | 11 ++ packages/components/segmented/style/css.ts | 2 + packages/components/segmented/style/index.ts | 2 + packages/element-plus/component.ts | 2 + packages/theme-chalk/src/common/var.scss | 19 ++ packages/theme-chalk/src/index.scss | 1 + packages/theme-chalk/src/segmented.scss | 160 ++++++++++++++++ typings/components.d.ts | 1 + 24 files changed, 959 insertions(+) create mode 100644 docs/.vitepress/vitepress/components/overview-icons/ov-segmented.vue create mode 100644 docs/en-US/component/segmented.md create mode 100644 docs/examples/segmented/basic.vue create mode 100644 docs/examples/segmented/block.vue create mode 100644 docs/examples/segmented/custom-content.vue create mode 100644 docs/examples/segmented/custom-style.vue create mode 100644 docs/examples/segmented/disabled.vue create mode 100644 packages/components/segmented/__tests__/segmented.test.tsx create mode 100644 packages/components/segmented/index.ts create mode 100644 packages/components/segmented/src/segmented.ts create mode 100644 packages/components/segmented/src/segmented.vue create mode 100644 packages/components/segmented/src/types.ts create mode 100644 packages/components/segmented/style/css.ts create mode 100644 packages/components/segmented/style/index.ts create mode 100644 packages/theme-chalk/src/segmented.scss diff --git a/docs/.vitepress/crowdin/en-US/pages/component.json b/docs/.vitepress/crowdin/en-US/pages/component.json index 360ae409814b7a..a9ad8276fe8540 100644 --- a/docs/.vitepress/crowdin/en-US/pages/component.json +++ b/docs/.vitepress/crowdin/en-US/pages/component.json @@ -246,6 +246,11 @@ "link": "/statistic", "text": "Statistic", "promotion": "2.2.30" + }, + { + "link": "/segmented", + "text": "Segmented", + "promotion": "2.7.0" } ] }, diff --git a/docs/.vitepress/vitepress/components/overview-icons/index.ts b/docs/.vitepress/vitepress/components/overview-icons/index.ts index 9ecc97f664fd14..66bf3643d577a0 100644 --- a/docs/.vitepress/vitepress/components/overview-icons/index.ts +++ b/docs/.vitepress/vitepress/components/overview-icons/index.ts @@ -49,6 +49,7 @@ import OvTour from './ov-tour.vue' import OvTree from './ov-tree.vue' import OvTreeSelect from './ov-tree-select.vue' import OvStatistic from './ov-statistic.vue' +import OvSegmented from './ov-segmented.vue' import OvAffix from './ov-affix.vue' import OvAnchor from './ov-anchor.vue' import OvBacktop from './ov-backtop.vue' @@ -126,6 +127,7 @@ export default { 'tree-select': OvTreeSelect, 'tree-v2': OvTree, statistic: OvStatistic, + segmented: OvSegmented, affix: OvAffix, anchor: OvAnchor, backtop: OvBacktop, diff --git a/docs/.vitepress/vitepress/components/overview-icons/ov-segmented.vue b/docs/.vitepress/vitepress/components/overview-icons/ov-segmented.vue new file mode 100644 index 00000000000000..7cd6e14f17bad6 --- /dev/null +++ b/docs/.vitepress/vitepress/components/overview-icons/ov-segmented.vue @@ -0,0 +1,91 @@ + diff --git a/docs/components.d.ts b/docs/components.d.ts index aa769b26bf598e..ee20732615a4c5 100644 --- a/docs/components.d.ts +++ b/docs/components.d.ts @@ -92,6 +92,7 @@ declare module '@vue/runtime-core' { OvRate: typeof import('./.vitepress/vitepress/components/overview-icons/ov-rate.vue')['default'] OvResult: typeof import('./.vitepress/vitepress/components/overview-icons/ov-result.vue')['default'] OvScrollbar: typeof import('./.vitepress/vitepress/components/overview-icons/ov-scrollbar.vue')['default'] + OvSegmented: typeof import('./.vitepress/vitepress/components/overview-icons/ov-segmented.vue')['default'] OvSelect: typeof import('./.vitepress/vitepress/components/overview-icons/ov-select.vue')['default'] OvSelectV2: typeof import('./.vitepress/vitepress/components/overview-icons/ov-select-v2.vue')['default'] OvSkeleton: typeof import('./.vitepress/vitepress/components/overview-icons/ov-skeleton.vue')['default'] diff --git a/docs/en-US/component/segmented.md b/docs/en-US/component/segmented.md new file mode 100644 index 00000000000000..daa1591b08d322 --- /dev/null +++ b/docs/en-US/component/segmented.md @@ -0,0 +1,102 @@ +--- +title: Segmented +lang: en-US +--- + +# Segmented + +Display multiple options and allow users to select a single option. + +## Basic Usage + +Set `v-model` to the option value is selected. + +:::demo + +segmented/basic + +::: + +## Disabled + +Set `disabled` of segmented or option to `true` to disable it. + +:::demo + +segmented/disabled + +::: + +## Block + +Set `block` to `true` to fit the width of parent element. + +:::demo + +segmented/block + +::: + +## Custom Content + +Set default slot to render custom content. + +:::demo + +segmented/custom-content + +::: + +## Custom Style + +Set default slot to render custom content. + +:::demo + +segmented/custom-style + +::: + +## API + +### Attributes + +| Name | Description | Type | Default | +|-----------------------|------------------------------------|------------------------------------------------|---------| +| model-value / v-model | binding value | ^[string] / ^[number] | — | +| options | data of the options | ^[array]`Option[]` | [] | +| size | size of component | ^[enum]`'' \| 'large' \| 'default' \| 'small'` | '' | +| block | fit width of parent content | ^[boolean] | — | +| disabled | whether segmented is disabled | ^[boolean] | false | +| validate-event | whether to trigger form validation | ^[boolean] | true | +| name | native `name` attribute | ^[string] | — | +| id | native `id` attribute | ^[string] | — | +| aria-label ^(a11y) | native `aria-label` attribute | ^[string] | — | + +### Events + +| Name | Description | Type | +|--------|-------------------------------------------------------------------------------|---------------------------------| +| change | triggers when the selected value changes, the param is current selected value | ^[Function]`(val: any) => void` | + +### Slots + +| Name | Description | +|---------|-----------------| +| default | option renderer | + +## Type Declarations + +
+ Show declarations + +```ts +type Option = { + label: string + value: string | number | boolean + disabled?: boolean + [key: string]: any +} | string | number | boolean | undefined +``` + +
diff --git a/docs/examples/form/validation.vue b/docs/examples/form/validation.vue index 4e2fe1e7685863..6edd9d97844cc9 100644 --- a/docs/examples/form/validation.vue +++ b/docs/examples/form/validation.vue @@ -54,6 +54,9 @@ + + + @@ -99,6 +102,7 @@ interface RuleForm { date1: string date2: string delivery: boolean + location: string type: string[] resource: string desc: string @@ -113,11 +117,14 @@ const ruleForm = reactive({ date1: '', date2: '', delivery: false, + location: '', type: [], resource: '', desc: '', }) +const locationOptions = ['Home', 'Company', 'School'] + const rules = reactive>({ name: [ { required: true, message: 'Please input Activity name', trigger: 'blur' }, @@ -153,6 +160,13 @@ const rules = reactive>({ trigger: 'change', }, ], + location: [ + { + required: true, + message: 'Please select a location', + trigger: 'change', + }, + ], type: [ { type: 'array', diff --git a/docs/examples/segmented/basic.vue b/docs/examples/segmented/basic.vue new file mode 100644 index 00000000000000..d51dc2f19dc9ec --- /dev/null +++ b/docs/examples/segmented/basic.vue @@ -0,0 +1,14 @@ + + diff --git a/docs/examples/segmented/block.vue b/docs/examples/segmented/block.vue new file mode 100644 index 00000000000000..e8d46781d6ce1e --- /dev/null +++ b/docs/examples/segmented/block.vue @@ -0,0 +1,20 @@ + + diff --git a/docs/examples/segmented/custom-content.vue b/docs/examples/segmented/custom-content.vue new file mode 100644 index 00000000000000..52e9b214e06e21 --- /dev/null +++ b/docs/examples/segmented/custom-content.vue @@ -0,0 +1,60 @@ + + diff --git a/docs/examples/segmented/custom-style.vue b/docs/examples/segmented/custom-style.vue new file mode 100644 index 00000000000000..3d204425d511ee --- /dev/null +++ b/docs/examples/segmented/custom-style.vue @@ -0,0 +1,20 @@ + + + + diff --git a/docs/examples/segmented/disabled.vue b/docs/examples/segmented/disabled.vue new file mode 100644 index 00000000000000..f1d8cbe1ed1418 --- /dev/null +++ b/docs/examples/segmented/disabled.vue @@ -0,0 +1,45 @@ + + + diff --git a/packages/components/index.ts b/packages/components/index.ts index c849cbcfc875a1..8ce350fa3a71f6 100644 --- a/packages/components/index.ts +++ b/packages/components/index.ts @@ -72,6 +72,7 @@ export * from './virtual-list' export * from './watermark' export * from './tour' export * from './anchor' +export * from './segmented' // plugins export * from './infinite-scroll' diff --git a/packages/components/segmented/__tests__/segmented.test.tsx b/packages/components/segmented/__tests__/segmented.test.tsx new file mode 100644 index 00000000000000..05e3a148a93967 --- /dev/null +++ b/packages/components/segmented/__tests__/segmented.test.tsx @@ -0,0 +1,136 @@ +import { nextTick, ref } from 'vue' +import { mount } from '@vue/test-utils' +import { describe, expect, test } from 'vitest' +import Segmented from '../src/segmented.vue' + +describe('Segmented.vue', () => { + test('render test', async () => { + const value = ref('Mon') + const options = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] + const wrapper = mount(() => ( + + )) + await nextTick() + expect(wrapper.find('.is-selected').text()).toEqual('Mon') + }) + + test('render v-model', async () => { + const value = ref('Mon') + const options = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] + const wrapper = mount(() => ( + + )) + expect(wrapper.find('.is-selected').text()).toEqual('Mon') + value.value = 'Tue' + await nextTick() + expect(wrapper.find('.is-selected').text()).toEqual('Tue') + }) + + test('render options', async () => { + const value = ref('Mon') + const options = ref(['a', 'b']) + const wrapper = mount(() => ( + + )) + await nextTick() + expect(wrapper.findAll('.el-segmented__item').length).toEqual(2) + options.value.push('c') + await nextTick() + expect(wrapper.findAll('.el-segmented__item').length).toEqual(3) + }) + + test('render block', async () => { + const value = ref('Mon') + const options = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] + const wrapper = mount(() => ( + + )) + await nextTick() + expect(wrapper.find('.is-block').exists()).toBe(true) + }) + + test('render size', async () => { + const value = ref('Mon') + const options = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] + const wrapper = mount(() => ( + + )) + await nextTick() + expect(wrapper.find('.el-segmented--large').exists()).toBe(true) + }) + + test('render disabled', async () => { + const value = ref('Mon') + const options = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] + const wrapper = mount(() => ( + + )) + await nextTick() + expect(wrapper.findAll('.is-disabled').length).toBe(7) + }) + + test('render option disabled', async () => { + const value = ref('Mon') + const options = [ + { + label: 'Mon', + value: 'Mon', + disabled: true, + }, + { + label: 'Tue', + value: 'Tue', + }, + { + label: 'Wed', + value: 'Wed', + disabled: true, + }, + { + label: 'Thu', + value: 'Thu', + }, + { + label: 'Fri', + value: 'Fri', + disabled: true, + }, + { + label: 'Sat', + value: 'Sat', + }, + { + label: 'Sun', + value: 'Sun', + }, + ] + const wrapper = mount(() => ( + + )) + await nextTick() + expect(wrapper.findAll('.is-disabled').length).toBe(3) + }) + + test('render accessible attributes', async () => { + const value = ref('Mon') + const options = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] + const wrapper = mount(() => ( + + )) + const input = wrapper.find('input') + await nextTick() + expect(wrapper.attributes('id')).toEqual('id') + expect(wrapper.attributes('aria-label')).toEqual('label') + expect(input.attributes('name')).toEqual('name') + }) +}) diff --git a/packages/components/segmented/index.ts b/packages/components/segmented/index.ts new file mode 100644 index 00000000000000..f779a02b03b6d6 --- /dev/null +++ b/packages/components/segmented/index.ts @@ -0,0 +1,7 @@ +import { withInstall } from '@element-plus/utils' +import Segmented from './src/segmented.vue' + +export const ElSegmented = withInstall(Segmented) +export default ElSegmented + +export * from './src/segmented' diff --git a/packages/components/segmented/src/segmented.ts b/packages/components/segmented/src/segmented.ts new file mode 100644 index 00000000000000..2acb40d62b71b3 --- /dev/null +++ b/packages/components/segmented/src/segmented.ts @@ -0,0 +1,70 @@ +import { + buildProps, + definePropType, + isNumber, + isString, +} from '@element-plus/utils' +import { useSizeProp } from '@element-plus/hooks' +import { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants' + +import type { Option } from './types' +import type { ExtractPropTypes } from 'vue' +import type Segmented from './segmented.vue' + +export const segmentedProps = buildProps({ + /** + * @description options of segmented + */ + options: { + type: definePropType(Array), + default: () => [], + }, + /** + * @description binding value + */ + modelValue: { + type: [String, Number, Boolean], + default: undefined, + }, + /** + * @description fit width of parent content + */ + block: Boolean, + /** + * @description size of component + */ + size: useSizeProp, + /** + * @description whether segmented is disabled + */ + disabled: Boolean, + /** + * @description whether to trigger form validation + */ + validateEvent: { + type: Boolean, + default: true, + }, + /** + * @description native input id + */ + id: String, + /** + * @description native `name` attribute + */ + name: String, + /** + * @description native `aria-label` attribute + */ + ariaLabel: String, +}) + +export type SegmentedProps = ExtractPropTypes + +export const segmentedEmits = { + [UPDATE_MODEL_EVENT]: (val: any) => isString(val) || isNumber(val), + [CHANGE_EVENT]: (val: any) => isString(val) || isNumber(val), +} +export type SegmentedEmits = typeof segmentedEmits + +export type SegmentedInstance = InstanceType diff --git a/packages/components/segmented/src/segmented.vue b/packages/components/segmented/src/segmented.vue new file mode 100644 index 00000000000000..b737eb678c4427 --- /dev/null +++ b/packages/components/segmented/src/segmented.vue @@ -0,0 +1,173 @@ + + + diff --git a/packages/components/segmented/src/types.ts b/packages/components/segmented/src/types.ts new file mode 100644 index 00000000000000..e65d35a2cb1ca2 --- /dev/null +++ b/packages/components/segmented/src/types.ts @@ -0,0 +1,11 @@ +export type Option = + | { + label: string + value: string | number | boolean + disabled?: boolean + [key: string]: any + } + | string + | number + | boolean + | undefined diff --git a/packages/components/segmented/style/css.ts b/packages/components/segmented/style/css.ts new file mode 100644 index 00000000000000..1be47118dcb84c --- /dev/null +++ b/packages/components/segmented/style/css.ts @@ -0,0 +1,2 @@ +import '@element-plus/components/base/style/css' +import '@element-plus/theme-chalk/el-segmented.css' diff --git a/packages/components/segmented/style/index.ts b/packages/components/segmented/style/index.ts new file mode 100644 index 00000000000000..01172e6199565d --- /dev/null +++ b/packages/components/segmented/style/index.ts @@ -0,0 +1,2 @@ +import '@element-plus/components/base/style' +import '@element-plus/theme-chalk/src/segmented.scss' diff --git a/packages/element-plus/component.ts b/packages/element-plus/component.ts index 9bd877a0383f2a..9a27b864dc29ba 100644 --- a/packages/element-plus/component.ts +++ b/packages/element-plus/component.ts @@ -105,6 +105,7 @@ import { ElUpload } from '@element-plus/components/upload' import { ElWatermark } from '@element-plus/components/watermark' import { ElTour, ElTourStep } from '@element-plus/components/tour' import { ElAnchor, ElAnchorLink } from '@element-plus/components/anchor' +import { ElSegmented } from '@element-plus/components/segmented' import type { Plugin } from 'vue' @@ -212,4 +213,5 @@ export default [ ElTourStep, ElAnchor, ElAnchorLink, + ElSegmented, ] as Plugin[] diff --git a/packages/theme-chalk/src/common/var.scss b/packages/theme-chalk/src/common/var.scss index 1707293b69d9ab..91f47235659513 100644 --- a/packages/theme-chalk/src/common/var.scss +++ b/packages/theme-chalk/src/common/var.scss @@ -832,6 +832,25 @@ $anchor: map.merge( $anchor ); +// Segmented +// css3 var in packages/theme-chalk/src/segmented.scss +$segmented: () !default; +$segmented: map.merge( + ( + 'color': getCssVar('text-color', 'regular'), + 'bg-color': getCssVar('fill-color', 'light'), + 'padding': 2px, + 'item-selected-color': getCssVar('color-white'), + 'item-selected-bg-color': getCssVar('color-primary'), + 'item-selected-disabled-bg-color': getCssVar('color-primary', 'light-5'), + 'item-hover-color': getCssVar('text-color', 'primary'), + 'item-hover-bg-color': getCssVar('fill-color', 'dark'), + 'item-active-bg-color': getCssVar('fill-color', 'darker'), + 'item-disabled-color': getCssVar('text-color', 'placeholder'), + ), + $segmented +); + // Table // css3 var in packages/theme-chalk/src/table.scss $table: () !default; diff --git a/packages/theme-chalk/src/index.scss b/packages/theme-chalk/src/index.scss index 436d7cb0a75c63..42bc269804dffe 100644 --- a/packages/theme-chalk/src/index.scss +++ b/packages/theme-chalk/src/index.scss @@ -106,3 +106,4 @@ @use './tour.scss'; @use './anchor.scss'; @use './anchor-link.scss'; +@use './segmented.scss'; diff --git a/packages/theme-chalk/src/segmented.scss b/packages/theme-chalk/src/segmented.scss new file mode 100644 index 00000000000000..486e44c08a3f22 --- /dev/null +++ b/packages/theme-chalk/src/segmented.scss @@ -0,0 +1,160 @@ +@use 'sass:map'; + +@use 'mixins/mixins' as *; +@use 'mixins/utils' as *; +@use 'mixins/var' as *; +@use 'common/var' as *; + +$segmented-border-radius: () !default; +$segmented-border-radius: map.merge( + ( + 'large': map.get($button-border-radius, 'large'), + 'default': map.get($button-border-radius, 'default'), + 'small': map.get($button-border-radius, 'small'), + ), + $segmented-border-radius +); + +$segmented-font-size: () !default; +$segmented-font-size: map.merge( + ( + 'large': 16px, + 'default': 14px, + 'small': 14px, + ), + $segmented-font-size +); + +$segmented-item-padding: () !default; +$segmented-item-padding: map.merge( + ( + 'large': 0 11px, + 'default':0 11px, + 'small': 0 7px, + ), + $segmented-item-padding +); + +@include b(segmented) { + @include set-component-css-var('segmented', $segmented); +} + +@include b(segmented) { + display: inline-flex; + align-items: stretch; + min-height: map.get($input-height, 'default'); + background: getCssVar('segmented-bg-color'); + padding: getCssVar('segmented-padding'); + border-radius: map.get($segmented-border-radius, 'default'); + font-size: map.get($segmented-font-size, 'default'); + color: getCssVar('segmented-color'); + box-sizing: border-box; + + @include e(group) { + display: flex; + align-items: stretch; + position: relative; + width: 100%; + } + + @include e(item-selected) { + position: absolute; + top: 0; + left: 0; + background: getCssVar('segmented-item-selected-bg-color'); + height: 100%; + width: 10px; + border-radius: calc(#{map.get($segmented-border-radius, 'default')} - 2px); + transition: all 0.3s; + pointer-events: none; + + @include when(disabled) { + background: getCssVar('segmented-item-selected-disabled-bg-color'); + } + + @include when(focus-visible) { + &:before { + position: absolute; + content: ''; + inset: 0; + border-radius: inherit; + outline: 2px solid getCssVar('segmented-item-selected-bg-color'); + outline-offset: 1px; + } + } + } + + @include e(item) { + display: flex; + align-items: center; + flex: 1; + cursor: pointer; + border-radius: calc(#{map.get($segmented-border-radius, 'default')} - 2px); + padding: map.get($segmented-item-padding, 'default'); + + &:not(.is-disabled):not(.is-selected):hover { + color: getCssVar('segmented-item-hover-color'); + background: getCssVar('segmented-item-hover-bg-color'); + } + + &:not(.is-disabled):not(.is-selected):active { + background: getCssVar('segmented-item-active-bg-color'); + } + + @include when(selected) { + color: getCssVar('segmented-item-selected-color'); + + &.is-disabled { + color: getCssVar('segmented-item-selected-color'); + } + } + + @include when(disabled) { + cursor: not-allowed; + color: getCssVar('segmented-item-disabled-color'); + } + } + + @include e(item-input) { + position: absolute; + margin: 0; + width: 0; + height: 0; + opacity: 0; + pointer-events: none; + } + + @include e(item-label) { + flex: 1; + text-align: center; + line-height: normal; + @include utils-ellipsis; + transition: color 0.3s; + z-index: 1; + } + + @include when(block) { + display: flex; + + .#{$namespace}-segmented__item { + min-width: 0; + } + } + + @each $size in (large, small) { + @include m($size) { + min-height: map.get($input-height, $size); + border-radius: map.get($segmented-border-radius, $size); + font-size: map.get($segmented-font-size, $size); + + @include e(item-selected) { + border-radius: calc(#{map.get($segmented-border-radius, $size)} - 2px); + } + + @include e(item) { + border-radius: calc(#{map.get($segmented-border-radius, $size)} - 2px); + padding: map.get($segmented-item-padding, $size); + } + } + } +} diff --git a/typings/components.d.ts b/typings/components.d.ts index 78607629489b35..d770af1c5d285f 100644 --- a/typings/components.d.ts +++ b/typings/components.d.ts @@ -103,6 +103,7 @@ declare module '@vue/runtime-core' { ElTourStep: typeof import('../packages/element-plus')['ElTourStep'] ElAnchor: typeof import('../packages/element-plus')['ElAnchor'] ElAnchorLink: typeof import('../packages/element-plus')['ElAnchorLink'] + ElSegmented: typeof import('../packages/element-plus')['ElSegmented'] } interface ComponentCustomProperties { From dd2a4f654626c72df1cfc75a0e32a50d3ad9edf3 Mon Sep 17 00:00:00 2001 From: wzc520pyfm <1528857653@qq.com> Date: Thu, 11 Apr 2024 20:38:51 +0800 Subject: [PATCH 04/78] test(hooks): add test for use-intermediate-render (#16395) --- .../__tests__/use-intermediate-render.test.ts | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 packages/hooks/__tests__/use-intermediate-render.test.ts diff --git a/packages/hooks/__tests__/use-intermediate-render.test.ts b/packages/hooks/__tests__/use-intermediate-render.test.ts new file mode 100644 index 00000000000000..fdadcced588f6d --- /dev/null +++ b/packages/hooks/__tests__/use-intermediate-render.test.ts @@ -0,0 +1,98 @@ +import { nextTick, ref } from 'vue' +import { beforeEach, describe, expect, it, vi } from 'vitest' +import { useDelayedRender } from '../use-intermediate-render' +import type { UseDelayedRenderProps } from '../use-intermediate-render' + +describe('useDelayedRender', () => { + let props: UseDelayedRenderProps + let indicator: any + let intermediateIndicator: any + let beforeShow: any + let afterShow: any + let beforeHide: any + let afterHide: any + + beforeEach(() => { + beforeShow = vi.fn() + afterShow = vi.fn() + beforeHide = vi.fn() + afterHide = vi.fn() + + indicator = ref(false) + intermediateIndicator = ref(false) + + props = { + indicator, + intermediateIndicator, + shouldSetIntermediate: vi.fn().mockReturnValue(true), + beforeShow, + afterShow, + beforeHide, + afterHide, + } + }) + + it('triggers beforeShow and afterShow hooks when indicator and intermediateIndicator changes to true', async () => { + useDelayedRender(props) + indicator.value = true + intermediateIndicator.value = true + + await nextTick() + + expect(beforeShow).toHaveBeenCalled() + expect(afterShow).toHaveBeenCalled() + }) + + it('triggers beforeHide and afterHide hooks when indicator and intermediateIndicator changes to false', async () => { + useDelayedRender(props) + indicator.value = true + intermediateIndicator.value = true + await nextTick() + + indicator.value = false + intermediateIndicator.value = false + await nextTick() + + expect(beforeHide).toHaveBeenCalled() + expect(afterHide).toHaveBeenCalled() + }) + + it('does not trigger hooks when indicator and intermediateIndicator changes but remains same value', async () => { + useDelayedRender(props) + indicator.value = true + intermediateIndicator.value = true + await nextTick() + + indicator.value = true + intermediateIndicator.value = true + await nextTick() + + expect(beforeShow).toHaveBeenCalledTimes(1) + expect(afterShow).toHaveBeenCalledTimes(1) + }) + + it('sets intermediateIndicator to true when shouldSetIntermediate returns true on show', async () => { + indicator.value = false + props.shouldSetIntermediate = vi.fn().mockReturnValue(true) + useDelayedRender(props) + await nextTick() + + indicator.value = true + await nextTick() + await nextTick() + + expect(intermediateIndicator.value).toBe(true) + }) + + it('sets intermediateIndicator to false when shouldSetIntermediate returns true on hide', async () => { + props.shouldSetIntermediate = vi.fn().mockReturnValue(true) + useDelayedRender(props) + indicator.value = true + await nextTick() + + indicator.value = false + await nextTick() + + expect(intermediateIndicator.value).toBe(false) + }) +}) From 18fa408391217a5dda2056eaab86da33917f1c9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E6=B7=BB?= <657454579@qq.com> Date: Fri, 12 Apr 2024 09:23:07 +0800 Subject: [PATCH 05/78] fix(components): [select-v2] manually set object type modelValue error (#16473) * fix(components): [select-v2] manually set object type modelValue error * fix: update --- .../select-v2/__tests__/select.test.ts | 41 +++++++++++++++++++ .../components/select-v2/src/useSelect.ts | 9 +++- 2 files changed, 48 insertions(+), 2 deletions(-) diff --git a/packages/components/select-v2/__tests__/select.test.ts b/packages/components/select-v2/__tests__/select.test.ts index 28bc7b77e6b82d..9538191c0dd3dc 100644 --- a/packages/components/select-v2/__tests__/select.test.ts +++ b/packages/components/select-v2/__tests__/select.test.ts @@ -823,6 +823,47 @@ describe('Select', () => { await nextTick() expect(wrapper.find('.el-select__tags-text').text()).toBe('a0') }) + + it('set object modelValue in single select', async () => { + const wrapper = createSelect({ + data: () => { + return { + value: null, + valueKey: 'id', + options: [ + { + label: 'aa', + value: { id: 1, name: 'a1' }, + }, + { + label: 'bb', + value: { id: 2, name: 'b2' }, + }, + { + label: 'cc', + value: { id: 3, name: 'c3' }, + }, + ], + } + }, + }) + await nextTick() + const options = getOptions() + const vm = wrapper.vm as any + const placeholder = wrapper.find(`.${PLACEHOLDER_CLASS_NAME}`) + + expect(vm.value).toBe(null) + expect(placeholder.text()).toBe(DEFAULT_PLACEHOLDER) + options[0].click() + await nextTick() + expect(vm.value).toBe(vm.options[0].value) + expect(placeholder.text()).toBe(vm.options[0].label) + + vm.value = { id: 2, name: 'b2' } + await nextTick() + expect(vm.value).toEqual(vm.options[1].value) + expect(placeholder.text()).toBe(vm.options[1].label) + }) }) describe('event', () => { diff --git a/packages/components/select-v2/src/useSelect.ts b/packages/components/select-v2/src/useSelect.ts index 551b89fdf8209e..2d7c402e8d92f1 100644 --- a/packages/components/select-v2/src/useSelect.ts +++ b/packages/components/select-v2/src/useSelect.ts @@ -446,7 +446,7 @@ const useSelect = (props: ISelectV2Props, emit) => { const update = (val: any) => { emit(UPDATE_MODEL_EVENT, val) emitChange(val) - states.previousValue = String(val) + states.previousValue = props.multiple ? String(val) : val } const getValueIndex = (arr = [], value: unknown) => { @@ -790,7 +790,12 @@ const useSelect = (props: ISelectV2Props, emit) => { watch( () => props.modelValue, (val, oldVal) => { - if (!val || val.toString() !== states.previousValue) { + if ( + !val || + (props.multiple && val.toString() !== states.previousValue) || + (!props.multiple && + getValueKey(val) !== getValueKey(states.previousValue)) + ) { initStates() } if (!isEqual(val, oldVal) && props.validateEvent) { From 1163d27f71abbe1b6827cc5bb96914c4e956720b Mon Sep 17 00:00:00 2001 From: kooriookami <38392315+kooriookami@users.noreply.github.com> Date: Fri, 12 Apr 2024 13:33:21 +0800 Subject: [PATCH 06/78] feat(components): add empty-values and value-on-clear props (#16361) * feat(components): add empty values * feat(hooks): update * feat(components): update * feat(components): update * feat: update * feat(components): update * feat(components): update * feat(components): update * feat: update doc * feat: add doc --- docs/en-US/component/cascader.md | 20 ++--- docs/en-US/component/config-provider.md | 51 +++++++++--- docs/en-US/component/date-picker.md | 66 +++++++-------- docs/en-US/component/datetime-picker.md | 68 ++++++++-------- docs/en-US/component/select-v2.md | 24 ++++-- docs/en-US/component/select.md | 30 +++++-- docs/en-US/component/time-picker.md | 62 +++++++------- docs/en-US/component/time-select.md | 42 +++++----- .../examples/config-provider/empty-values.vue | 69 ++++++++++++++++ docs/examples/select-v2/empty-values.vue | 35 ++++++++ docs/examples/select/empty-values.vue | 56 +++++++++++++ packages/components/cascader/src/cascader.ts | 9 ++- packages/components/cascader/src/cascader.vue | 8 +- .../src/config-provider-props.ts | 3 +- .../src/hooks/use-global-config.ts | 2 +- .../date-picker/__tests__/date-picker.test.ts | 4 +- packages/components/select-v2/src/defaults.ts | 3 +- .../components/select-v2/src/useSelect.ts | 16 ++-- packages/components/select/src/select.ts | 3 +- packages/components/select/src/useSelect.ts | 16 ++-- .../time-picker/src/common/picker.vue | 11 +-- .../time-picker/src/common/props.ts | 3 +- .../components/time-select/src/time-select.ts | 3 +- .../time-select/src/time-select.vue | 2 + .../hooks/__tests__/use-empty-values.test.tsx | 81 +++++++++++++++++++ packages/hooks/index.ts | 1 + packages/hooks/use-empty-values/index.ts | 64 +++++++++++++++ 27 files changed, 564 insertions(+), 188 deletions(-) create mode 100644 docs/examples/config-provider/empty-values.vue create mode 100644 docs/examples/select-v2/empty-values.vue create mode 100644 docs/examples/select/empty-values.vue create mode 100644 packages/hooks/__tests__/use-empty-values.test.tsx create mode 100644 packages/hooks/use-empty-values/index.ts diff --git a/docs/en-US/component/cascader.md b/docs/en-US/component/cascader.md index aacec4e1f22b22..1f7dffad330d6f 100644 --- a/docs/en-US/component/cascader.md +++ b/docs/en-US/component/cascader.md @@ -138,7 +138,7 @@ cascader/panel ### Cascader Attributes | Name | Description | Type | Default | -| ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- | ------- | +|-------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------|---------| | model-value / v-model | binding value | ^[string]/^[number]/^[object]`string[] \| number[] \| any` | — | | options | data of the options, the key of `value` and `label` can be customize by `CascaderProps`. | ^[object]`Record[]` | — | | props | configuration options, see the following `CascaderProps` table. | ^[object]`CascaderProps` | — | @@ -160,11 +160,13 @@ cascader/panel | tag-type | tag type | ^[enum]`'success' \| 'info' \| 'warning' \| 'danger'` | info | | validate-event | whether to trigger form validation | ^[boolean] | true | | max-collapse-tags ^(2.3.10) | The max tags number to be shown. To use this, `collpase-tags` must be true | ^[number] | 1 | +| empty-values ^(2.7.0) | empty values of component, [see config-provider](/en-US/component/config-provider#empty-values-configurations) | ^[array] | — | +| value-on-clear ^(2.7.0) | clear return value, [see config-provider](/en-US/component/config-provider#empty-values-configurations) | ^[string] / ^[number] / ^[boolean] / ^[Function] | — | ### Cascader Events | Name | Description | Type | -| -------------- | --------------------------------------------------- | ----------------------------------------------------------- | +|----------------|-----------------------------------------------------|-------------------------------------------------------------| | change | triggers when the binding value changes | ^[Function]`(value: CascaderValue) => void` | | expand-change | triggers when expand option changes | ^[Function]`(value: CascaderValue) => void` | | blur | triggers when Cascader blurs | ^[Function]`(event: FocusEvent) => void` | @@ -175,14 +177,14 @@ cascader/panel ### Cascader Slots | Name | Description | Scope | -| ------- | ---------------------------------------------------------------------------------------------- | ----------------------------------- | +|---------|------------------------------------------------------------------------------------------------|-------------------------------------| | default | the custom content of cascader node, which are current Node object and node data respectively. | ^[object]`{ node: any, data: any }` | | empty | content when there is no matched options. | — | ### Cascader Exposes | Name | Description | Type | -| ----------------------------- | ----------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- | +|-------------------------------|-------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------| | getCheckedNodes | get an array of currently selected node,(leafOnly) whether only return the leaf checked nodes, default is `false` | ^[Function]`(leafOnly: boolean) => CascaderNode[] \| undefined` | | cascaderPanelRef | cascader panel ref | ^[object]`ComputedRef` | | togglePopperVisible ^(2.2.31) | toggle the visible type of popper | ^[Function]`(visible?: boolean) => void` | @@ -193,7 +195,7 @@ cascader/panel ### CascaderPanel Attributes | Name | Description | Type | Default | -| --------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------- | ------- | +|-----------------------|------------------------------------------------------------------------------------------|------------------------------------------------------------|---------| | model-value / v-model | binding value | ^[string]/^[number]/^[object]`string[] \| number[] \| any` | — | | options | data of the options, the key of `value` and `label` can be customize by `CascaderProps`. | ^[object]`Record[]` | — | | props | configuration options, see the following `CascaderProps` table. | ^[object]`CascaderProps` | — | @@ -201,7 +203,7 @@ cascader/panel ### CascaderPanel Events | Name | Description | Type | -| ------------- | ----------------------------------------------------------------------- | --------------------------------------------------- | +|---------------|-------------------------------------------------------------------------|-----------------------------------------------------| | change | triggers when the binding value changes | ^[Function]`(value: CascaderValue) => void` | | expand-change | triggers when expand option changes | ^[Function]`(value: CascaderNodePathValue) => void` | | close | close panel event, provided to Cascader to put away the panel judgment. | ^[Function]`() => void` | @@ -209,20 +211,20 @@ cascader/panel ### CascaderPanel Slots | Name | Description | Scope | -| ------- | ---------------------------------------------------------------------------------------------- | ----------------------------------- | +|---------|------------------------------------------------------------------------------------------------|-------------------------------------| | default | the custom content of cascader node, which are current Node object and node data respectively. | ^[object]`{ node: any, data: any }` | ### CascaderPanel Exposes | Name | Description | Type | -| ----------------- | ----------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- | +|-------------------|-------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------| | getCheckedNodes | get an array of currently selected node,(leafOnly) whether only return the leaf checked nodes, default is `false` | ^[Function]`(leafOnly: boolean) => CascaderNode[] \| undefined` | | clearCheckedNodes | clear checked nodes | ^[Function]`() => void` | ## CascaderProps | Attribute | Description | Type | Default | -| -------------- | ---------------------------------------------------------------------------------------------------------- | --------------------------------------------------- | -------- | +|----------------|------------------------------------------------------------------------------------------------------------|-----------------------------------------------------|----------| | expandTrigger | trigger mode of expanding options | ^[enum]`'click' \| 'hover'` | click | | multiple | whether multiple selection is enabled | ^[boolean] | false | | checkStrictly | whether checked state of a node not affects its parent and child nodes | ^[boolean] | false | diff --git a/docs/en-US/component/config-provider.md b/docs/en-US/component/config-provider.md index edc9c1fd2d7e45..475d4b0bb435cb 100644 --- a/docs/en-US/component/config-provider.md +++ b/docs/en-US/component/config-provider.md @@ -33,6 +33,31 @@ config-provider/message ::: +## Empty Values Configurations ^(2.7.0) + +
+ Supported components list + +- Cascader +- DatePicker +- Select +- SelectV2 +- TimePicker +- TimeSelect +- TreeSelect + +
+ +Set `empty-values` to support empty values of components. The fallback value is `['', null, undefined]`. If you think the empty string is meaningful, write `[undefined, null]`. + +Set `value-on-clear` to set the return value when cleared. The fallback value is `undefined`. In the date component is `null`. If you want to set `undefined`, use `() => undefined`. + +:::demo + +config-provider/empty-values + +::: + ## Experimental features In this section, you can learn how to use Config Provider to provide experimental features. For now, we haven't added any experimental features, but in the feature roadmap, we will add some experimental features. You can use this config to manage the features you want or not. @@ -43,30 +68,32 @@ In this section, you can learn how to use Config Provider to provide experimenta ### Config Provider Attributes -| Name | Description | Type | Default | -| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| locale | Locale Object | ^[object]`{name: string, el: TranslatePair}`[](https://github.com/element-plus/element-plus/blob/a98ff9b40c0c3d2b9959f99919bd8363e3e3c25a/packages/locale/index.ts#L5) [languages](https://github.com/element-plus/element-plus/tree/dev/packages/locale/lang) | [en](https://github.com/element-plus/element-plus/blob/dev/packages/locale/lang/en.ts) | -| size | global component size | ^[enum]`'large' \| 'default' \| 'small'` | default | -| zIndex | global Initial zIndex | ^[number] | — | -| namespace | global component className prefix (cooperated with [$namespace](https://github.com/element-plus/element-plus/blob/dev/packages/theme-chalk/src/mixins/config.scss#L1)) | ^[string] | el | -| button | button related configuration, [see the following table](#button-attribute) | ^[object]`{autoInsertSpace?: boolean}` | see the following table | -| message | message related configuration, [see the following table](#message-attribute) | ^[object]`{max?: number}` | see the following table | -| experimental-features | features at experimental stage to be added, all features are default to be set to false | ^[object] | — | +| Name | Description | Type | Default | +|-------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------| +| locale | Locale Object | ^[object]`{name: string, el: TranslatePair}`[](https://github.com/element-plus/element-plus/blob/a98ff9b40c0c3d2b9959f99919bd8363e3e3c25a/packages/locale/index.ts#L5) [languages](https://github.com/element-plus/element-plus/tree/dev/packages/locale/lang) | [en](https://github.com/element-plus/element-plus/blob/dev/packages/locale/lang/en.ts) | +| size | global component size | ^[enum]`'large' \| 'default' \| 'small'` | default | +| zIndex | global Initial zIndex | ^[number] | — | +| namespace | global component className prefix (cooperated with [$namespace](https://github.com/element-plus/element-plus/blob/dev/packages/theme-chalk/src/mixins/config.scss#L1)) | ^[string] | el | +| button | button related configuration, [see the following table](#button-attribute) | ^[object]`{autoInsertSpace?: boolean}` | see the following table | +| message | message related configuration, [see the following table](#message-attribute) | ^[object]`{max?: number}` | see the following table | +| experimental-features | features at experimental stage to be added, all features are default to be set to false | ^[object] | — | +| empty-values ^(2.7.0) | global empty values of components | ^[array] | — | +| value-on-clear ^(2.7.0) | global clear return value | ^[string] / ^[number] / ^[boolean] / ^[Function] | — | ### Button Attribute | Attribute | Description | Type | Default | -| --------------- | ----------------------------------------------------------- | ---------- | ------- | +|-----------------|-------------------------------------------------------------|------------|---------| | autoInsertSpace | automatically insert a space between two chinese characters | ^[boolean] | false | ### Message Attribute | Attribute | Description | Type | Default | -| --------- | --------------------------------------------------------------------- | --------- | ------- | +|-----------|-----------------------------------------------------------------------|-----------|---------| | max | the maximum number of messages that can be displayed at the same time | ^[number] | — | ### Config Provider Slots | Name | Description | Scope | -| ------- | ------------------------- | ------------------------------------------------------- | +|---------|---------------------------|---------------------------------------------------------| | default | customize default content | config: provided global config (inherited from the top) | diff --git a/docs/en-US/component/date-picker.md b/docs/en-US/component/date-picker.md index 8480bb0a8448af..e297647bdee916 100644 --- a/docs/en-US/component/date-picker.md +++ b/docs/en-US/component/date-picker.md @@ -147,40 +147,42 @@ Note, date time locale (month name, first day of the week ...) are also configur ### Attributes -| Name | Description | Type | Default | -| --------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------------- | -| model-value / v-model | binding value, if it is an array, the length should be 2 | ^[number] / ^[string] / ^[object]`Date \| [Date, Date] \| [string, string]` | '' | -| readonly | whether DatePicker is read only | ^[boolean] | false | -| disabled | whether DatePicker is disabled | ^[boolean] | false | -| size | size of Input | ^[enum]`'' \| 'large' \| 'default' \| 'small'` | — | -| editable | whether the input is editable | ^[boolean] | true | -| clearable | whether to show clear button | ^[boolean] | true | -| placeholder | placeholder in non-range mode | ^[string] | '' | -| start-placeholder | placeholder for the start date in range mode | ^[string] | — | -| end-placeholder | placeholder for the end date in range mode | ^[string] | — | -| type | type of the picker | ^[enum]`'year' \| 'years' \|'month' \| 'date' \| 'dates' \| 'datetime' \| 'week' \| 'datetimerange' \| 'daterange' \| 'monthrange'` | date | -| format | format of the displayed value in the input box | ^[string] see [date formats](/en-US/component/date-picker#date-formats) | YYYY-MM-DD | -| popper-class | custom class name for DatePicker's dropdown | ^[string] | — | -| popper-options | Customized popper option see more at [popper.js](https://popper.js.org/docs/v2/) | ^[object]`Partial` | {} | -| range-separator | range separator | ^[string] | '-' | -| default-value | optional, default date of the calendar | ^[object]`Date \| [Date, Date]` | — | -| default-time | optional, the time value to use when selecting date range | ^[object]`Date \| [Date, Date]` | — | -| value-format | optional, format of binding value. If not specified, the binding value will be a Date object | ^[string] see [date formats](/en-US/component/date-picker#date-formats) | — | -| id | same as `id` in native input | ^[string] / ^[object]`[string, string]` | — | -| name | same as `name` in native input | ^[string] / ^[object]`[string, string]` | '' | -| unlink-panels | unlink two date-panels in range-picker | ^[boolean] | false | -| prefix-icon | custom prefix icon component. By default, if the value of `type` is `TimeLikeType`, the value is `Clock`, else is `Calendar` | ^[string] / ^[object]`Component` | '' | -| clear-icon | custom clear icon component | ^[string] / ^[object]`Component` | `CircleClose` | -| validate-event | whether to trigger form validation | ^[boolean] | true | -| disabled-date | a function determining if a date is disabled with that date as its parameter. Should return a Boolean | ^[Function]`(data: Date) => boolean` | — | -| shortcuts | an object array to set shortcut options | ^[object]`Array<{ text: string, value: Date \| Function }>` | [] | -| cell-class-name | set custom className | ^[Function]`(data: Date) => string` | — | -| teleported | whether date-picker dropdown is teleported to the body | ^[boolean] | true | +| Name | Description | Type | Default | +|-------------------------|------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------|---------------| +| model-value / v-model | binding value, if it is an array, the length should be 2 | ^[number] / ^[string] / ^[object]`Date \| [Date, Date] \| [string, string]` | '' | +| readonly | whether DatePicker is read only | ^[boolean] | false | +| disabled | whether DatePicker is disabled | ^[boolean] | false | +| size | size of Input | ^[enum]`'' \| 'large' \| 'default' \| 'small'` | — | +| editable | whether the input is editable | ^[boolean] | true | +| clearable | whether to show clear button | ^[boolean] | true | +| placeholder | placeholder in non-range mode | ^[string] | '' | +| start-placeholder | placeholder for the start date in range mode | ^[string] | — | +| end-placeholder | placeholder for the end date in range mode | ^[string] | — | +| type | type of the picker | ^[enum]`'year' \| 'years' \|'month' \| 'date' \| 'dates' \| 'datetime' \| 'week' \| 'datetimerange' \| 'daterange' \| 'monthrange'` | date | +| format | format of the displayed value in the input box | ^[string] see [date formats](/en-US/component/date-picker#date-formats) | YYYY-MM-DD | +| popper-class | custom class name for DatePicker's dropdown | ^[string] | — | +| popper-options | Customized popper option see more at [popper.js](https://popper.js.org/docs/v2/) | ^[object]`Partial` | {} | +| range-separator | range separator | ^[string] | '-' | +| default-value | optional, default date of the calendar | ^[object]`Date \| [Date, Date]` | — | +| default-time | optional, the time value to use when selecting date range | ^[object]`Date \| [Date, Date]` | — | +| value-format | optional, format of binding value. If not specified, the binding value will be a Date object | ^[string] see [date formats](/en-US/component/date-picker#date-formats) | — | +| id | same as `id` in native input | ^[string] / ^[object]`[string, string]` | — | +| name | same as `name` in native input | ^[string] / ^[object]`[string, string]` | '' | +| unlink-panels | unlink two date-panels in range-picker | ^[boolean] | false | +| prefix-icon | custom prefix icon component. By default, if the value of `type` is `TimeLikeType`, the value is `Clock`, else is `Calendar` | ^[string] / ^[object]`Component` | '' | +| clear-icon | custom clear icon component | ^[string] / ^[object]`Component` | `CircleClose` | +| validate-event | whether to trigger form validation | ^[boolean] | true | +| disabled-date | a function determining if a date is disabled with that date as its parameter. Should return a Boolean | ^[Function]`(data: Date) => boolean` | — | +| shortcuts | an object array to set shortcut options | ^[object]`Array<{ text: string, value: Date \| Function }>` | [] | +| cell-class-name | set custom className | ^[Function]`(data: Date) => string` | — | +| teleported | whether date-picker dropdown is teleported to the body | ^[boolean] | true | +| empty-values ^(2.7.0) | empty values of component, [see config-provider](/en-US/component/config-provider#empty-values-configurations) | ^[array] | — | +| value-on-clear ^(2.7.0) | clear return value, [see config-provider](/en-US/component/config-provider#empty-values-configurations) | ^[string] / ^[number] / ^[boolean] / ^[Function] | — | ### Events | Name | Description | Type | -| --------------- | ---------------------------------------------------------- | ----------------------------------------------------------------------------------------- | +|-----------------|------------------------------------------------------------|-------------------------------------------------------------------------------------------| | change | triggers when user confirms the value | ^[Function]`(val: typeof v-model) => void` | | blur | triggers when Input blurs | ^[Function]`(e: FocusEvent) => void` | | focus | triggers when Input focuses | ^[Function]`(e: FocusEvent) => void` | @@ -191,14 +193,14 @@ Note, date time locale (month name, first day of the week ...) are also configur ### Slots | Name | Description | -| --------------- | ------------------------------ | +|-----------------|--------------------------------| | default | custom cell content | | range-separator | custom range separator content | ### Exposes | Name | Description | Type | -| --------------------- | --------------------------- | ------------------------------------------------------------------------------ | +|-----------------------|-----------------------------|--------------------------------------------------------------------------------| | focus | focus the Input component | ^[Function]`(focusStartInput?: boolean, isIgnoreFocusEvent?: boolean) => void` | | handleOpen ^(2.2.16) | open the DatePicker popper | ^[Function]`() => void` | | handleClose ^(2.2.16) | close the DatePicker popper | ^[Function]`() => void` | diff --git a/docs/en-US/component/datetime-picker.md b/docs/en-US/component/datetime-picker.md index 82d1e4fda279bc..9d1b15bd92ad16 100644 --- a/docs/en-US/component/datetime-picker.md +++ b/docs/en-US/component/datetime-picker.md @@ -75,41 +75,43 @@ datetime-picker/default-time ## Attributes -| Name | Description | Type | Accepted Values | Default | -| --------------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------ | ------------------------------------------------------------- | ------------------- | -| model-value / v-model | binding value, if it is an array, the length should be 2 | Date / number / string / Array | — | — | -| readonly | whether DatePicker is read only | boolean | — | false | -| disabled | whether DatePicker is disabled | boolean | — | false | -| editable | whether the input is editable | boolean | — | true | -| clearable | whether to show clear button | boolean | — | true | -| size | size of Input | string | large/default/small | default | -| placeholder | placeholder in non-range mode | string | — | — | -| start-placeholder | placeholder for the start date in range mode | string | — | — | -| end-placeholder | placeholder for the end date in range mode | string | — | — | -| arrow-control | whether to pick time using arrow buttons | boolean | — | false | -| type | type of the picker | string | year/month/date/datetime/ week/datetimerange/daterange | date | -| format | format of the displayed value in the input box | string | see [date formats](/en-US/component/date-picker#date-formats) | YYYY-MM-DD HH:mm:ss | -| popper-class | custom class name for DateTimePicker's dropdown | string | — | — | -| range-separator | range separator | string | — | '-' | -| default-value | optional, default date of the calendar | Date / [Date, Date] | | — | -| default-time | the default time value after picking a date. Time `00:00:00` will be used if not specified | Date / [Date, Date] | — | — | -| value-format | optional, format of binding value. If not specified, the binding value will be a Date object | string | see [date formats](https://day.js.org/docs/en/display/format) | — | -| date-format ^(2.4.0) | optional, format of the date displayed value in TimePicker's dropdown | string | see [date formats](https://day.js.org/docs/en/display/format) | — | -| time-format ^(2.4.0) | optional, format of the time displayed value in TimePicker's dropdown | string | see [date formats](https://day.js.org/docs/en/display/format) | — | -| id | same as `id` in native input | string / [string, string] | — | — | -| name | same as `name` in native input | string | — | — | -| unlink-panels | unlink two date-panels in range-picker | boolean | — | false | -| prefix-icon | Custom prefix icon component | `string \| Component` | — | Date | -| clear-icon | Custom clear icon component | `string \| Component` | — | CircleClose | -| shortcuts | an object array to set shortcut options | object[{ text: string, value: date / function }] | — | — | -| disabled-date | a function determining if a date is disabled with that date as its parameter. Should return a Boolean | function(Date) | — | — | -| cell-class-name | set custom className | Function(Date) | — | — | -| teleported | whether datetime-picker dropdown is teleported to the body | boolean | true / false | true | +| Name | Description | Type | Accepted Values | Default | +|-------------------------|----------------------------------------------------------------------------------------------------------------|--------------------------------------------------|---------------------------------------------------------------|---------------------| +| model-value / v-model | binding value, if it is an array, the length should be 2 | Date / number / string / Array | — | — | +| readonly | whether DatePicker is read only | boolean | — | false | +| disabled | whether DatePicker is disabled | boolean | — | false | +| editable | whether the input is editable | boolean | — | true | +| clearable | whether to show clear button | boolean | — | true | +| size | size of Input | string | large/default/small | default | +| placeholder | placeholder in non-range mode | string | — | — | +| start-placeholder | placeholder for the start date in range mode | string | — | — | +| end-placeholder | placeholder for the end date in range mode | string | — | — | +| arrow-control | whether to pick time using arrow buttons | boolean | — | false | +| type | type of the picker | string | year/month/date/datetime/ week/datetimerange/daterange | date | +| format | format of the displayed value in the input box | string | see [date formats](/en-US/component/date-picker#date-formats) | YYYY-MM-DD HH:mm:ss | +| popper-class | custom class name for DateTimePicker's dropdown | string | — | — | +| range-separator | range separator | string | — | '-' | +| default-value | optional, default date of the calendar | Date / [Date, Date] | | — | +| default-time | the default time value after picking a date. Time `00:00:00` will be used if not specified | Date / [Date, Date] | — | — | +| value-format | optional, format of binding value. If not specified, the binding value will be a Date object | string | see [date formats](https://day.js.org/docs/en/display/format) | — | +| date-format ^(2.4.0) | optional, format of the date displayed value in TimePicker's dropdown | string | see [date formats](https://day.js.org/docs/en/display/format) | — | +| time-format ^(2.4.0) | optional, format of the time displayed value in TimePicker's dropdown | string | see [date formats](https://day.js.org/docs/en/display/format) | — | +| id | same as `id` in native input | string / [string, string] | — | — | +| name | same as `name` in native input | string | — | — | +| unlink-panels | unlink two date-panels in range-picker | boolean | — | false | +| prefix-icon | Custom prefix icon component | `string \| Component` | — | Date | +| clear-icon | Custom clear icon component | `string \| Component` | — | CircleClose | +| shortcuts | an object array to set shortcut options | object[{ text: string, value: date / function }] | — | — | +| disabled-date | a function determining if a date is disabled with that date as its parameter. Should return a Boolean | function(Date) | — | — | +| cell-class-name | set custom className | Function(Date) | — | — | +| teleported | whether datetime-picker dropdown is teleported to the body | boolean | true / false | true | +| empty-values ^(2.7.0) | empty values of component, [see config-provider](/en-US/component/config-provider#empty-values-configurations) | ^[array] | — | +| value-on-clear ^(2.7.0) | clear return value, [see config-provider](/en-US/component/config-provider#empty-values-configurations) | ^[string] / ^[number] / ^[boolean] / ^[Function] | — | ## Events | Name | Description | Parameters | -| --------------- | ----------------------------------------------------------------------------- | ----------------------------------------- | +|-----------------|-------------------------------------------------------------------------------|-------------------------------------------| | change | triggers when user confirms the value | component's binding value | | blur | triggers when Input blurs | `(e: FocusEvent)` | | focus | triggers when Input focuses | `(e: FocusEvent)` | @@ -119,12 +121,12 @@ datetime-picker/default-time ## Methods | Method | Description | Parameters | -| ------ | ------------------------- | ---------- | +|--------|---------------------------|------------| | focus | focus the Input component | — | ## Slots | Name | Description | -| --------------- | ------------------------------ | +|-----------------|--------------------------------| | default | custom cell content | | range-separator | custom range separator content | diff --git a/docs/en-US/component/select-v2.md b/docs/en-US/component/select-v2.md index ccd13b7d07f176..383520029a32b9 100644 --- a/docs/en-US/component/select-v2.md +++ b/docs/en-US/component/select-v2.md @@ -197,12 +197,24 @@ select-v2/custom-loading ::: +## Empty Values ^(2.7.0) + +If you want to support empty string, please set `empty-values` to `[null, undefined]`. + +If you want to change the clear value to `null`, please set `value-on-clear` to `null`. + +:::demo + +select-v2/empty-values + +::: + ## API ### Attributes | Name | Description | Type | Default | -| ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------- | +|-------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------| | model-value / v-model | binding value | ^[string] / ^[number] / ^[boolean] / ^[object] / ^[array] | — | | options | data of the options, the key of `value` and `label` can be customize by `props` | ^[array] | — | | props ^(2.4.2) | configuration options, see the following table | ^[object] | — | @@ -244,11 +256,13 @@ select-v2/custom-loading | max-collapse-tags ^(2.3.0) | The max tags number to be shown. To use this, `collapse-tags` must be true | ^[number] | 1 | | tag-type ^(2.5.0) | tag type | ^[enum]`'' \| 'success' \| 'info' \| 'warning' \| 'danger'` | info | | aria-label ^(a11y) ^(2.5.0) | same as `aria-label` in native input | ^[string] | — | +| empty-values ^(2.7.0) | empty values of component, [see config-provider](/en-US/component/config-provider#empty-values-configurations) | ^[array] | — | +| value-on-clear ^(2.7.0) | clear return value, [see config-provider](/en-US/component/config-provider#empty-values-configurations) | ^[string] / ^[number] / ^[boolean] / ^[Function] | — | ### props | Attribute | Description | Type | Default | -| --------- | --------------------------------------------------------------- | --------- | -------- | +|-----------|-----------------------------------------------------------------|-----------|----------| | value | specify which key of node object is used as the node's value | ^[string] | value | | label | specify which key of node object is used as the node's label | ^[string] | label | | options | specify which key of node object is used as the node's children | ^[string] | options | @@ -257,7 +271,7 @@ select-v2/custom-loading ### Events | Name | Description | Type | -| -------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------- | +|----------------|------------------------------------------------------------------------------------------------------------|------------------------------------------| | change | triggers when the selected value changes, the param is current selected value | ^[Function]`(val: any) => void` | | visible-change | triggers when the dropdown appears/disappears, the param will be true when it appears, and false otherwise | ^[Function]`(visible: boolean) => void` | | remove-tag | triggers when a tag is removed in multiple mode, the param is removed tag value | ^[Function]`(tagValue: any) => void` | @@ -268,7 +282,7 @@ select-v2/custom-loading ### Slots | Name | Description | -| ---------------- | ------------------------------------- | +|------------------|---------------------------------------| | default | Option renderer | | header ^(2.5.2) | content at the top of the dropdown | | footer ^(2.5.2) | content at the bottom of the dropdown | @@ -280,6 +294,6 @@ select-v2/custom-loading ### Exposes | Method | Description | Type | -| ------ | ----------------------------------------------- | ----------------------- | +|--------|-------------------------------------------------|-------------------------| | focus | focus the Input component | ^[Function]`() => void` | | blur | blur the Input component, and hide the dropdown | ^[Function]`() => void` | diff --git a/docs/en-US/component/select.md b/docs/en-US/component/select.md index a4aaddac83575a..82bd933f8b4c2f 100644 --- a/docs/en-US/component/select.md +++ b/docs/en-US/component/select.md @@ -165,12 +165,24 @@ select/custom-loading ::: +## Empty Values ^(2.7.0) + +If you want to support empty string, please set `empty-values` to `[null, undefined]`. + +If you want to change the clear value to `null`, please set `value-on-clear` to `null`. + +:::demo + +select/empty-values + +::: + ## Select API ### Select Attributes | Name | Description | Type | Default | -| ------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------- | +|---------------------------------|-----------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------| | model-value / v-model | binding value | ^[string] / ^[number] / ^[boolean] / ^[object] / ^[array] | — | | multiple | whether multiple-select is activated | ^[boolean] | false | | disabled | whether Select is disabled | ^[boolean] | false | @@ -211,6 +223,8 @@ select/custom-loading | max-collapse-tags ^(2.3.0) | the max tags number to be shown. To use this, `collapse-tags` must be true | ^[number] | 1 | | popper-options | [popper.js](https://popper.js.org/docs/v2/) parameters | ^[object]refer to [popper.js](https://popper.js.org/docs/v2/) doc | {} | | aria-label ^(a11y) | same as `aria-label` in native input | ^[string] | — | +| empty-values ^(2.7.0) | empty values of component, [see config-provider](/en-US/component/config-provider#empty-values-configurations) | ^[array] | — | +| value-on-clear ^(2.7.0) | clear return value, [see config-provider](/en-US/component/config-provider#empty-values-configurations) | ^[string] / ^[number] / ^[boolean] / ^[Function] | — | :::warning @@ -221,7 +235,7 @@ select/custom-loading ### Select Events | Name | Description | Type | -| -------------- | ------------------------------------------------------------- | ---------------------------------------- | +|----------------|---------------------------------------------------------------|------------------------------------------| | change | triggers when the selected value changes | ^[Function]`(value: any) => void` | | visible-change | triggers when the dropdown appears/disappears | ^[Function]`(visible: boolean) => void` | | remove-tag | triggers when a tag is removed in multiple mode | ^[Function]`(tagValue: any) => void` | @@ -232,7 +246,7 @@ select/custom-loading ### Select Slots | Name | Description | Subtags | -| ---------------- | ------------------------------------- | --------------------- | +|------------------|---------------------------------------|-----------------------| | default | option component list | Option Group / Option | | header ^(2.4.3) | content at the top of the dropdown | — | | footer ^(2.4.3) | content at the bottom of the dropdown | — | @@ -244,7 +258,7 @@ select/custom-loading ### Select Exposes | Method | Description | Type | -| ------ | ----------------------------------------------- | ----------------------- | +|--------|-------------------------------------------------|-------------------------| | focus | focus the Input component | ^[Function]`() => void` | | blur | blur the Input component, and hide the dropdown | ^[Function]`() => void` | @@ -253,14 +267,14 @@ select/custom-loading ### Option Group Attributes | Name | Description | Type | Default | -| -------- | -------------------------------------------- | ---------- | ------- | +|----------|----------------------------------------------|------------|---------| | label | name of the group | ^[string] | — | | disabled | whether to disable all options in this group | ^[boolean] | false | ### Option Group Slots | Name | Description | Subtags | -| ------- | ------------------------- | ------- | +|---------|---------------------------|---------| | default | customize default content | Option | ## Option API @@ -268,7 +282,7 @@ select/custom-loading ### Option Attributes | Name | Description | Type | Default | -| -------- | ------------------------------------------- | ---------------------------------------------- | ------- | +|----------|---------------------------------------------|------------------------------------------------|---------| | value | value of option | ^[string] / ^[number] / ^[boolean] / ^[object] | — | | label | label of option, same as `value` if omitted | ^[string] / ^[number] | — | | disabled | whether option is disabled | ^[boolean] | false | @@ -276,5 +290,5 @@ select/custom-loading ### Option Slots | Name | Description | -| ------- | ------------------------- | +|---------|---------------------------| | default | customize default content | diff --git a/docs/en-US/component/time-picker.md b/docs/en-US/component/time-picker.md index 6cde1626159c88..76cd60b6ec2471 100644 --- a/docs/en-US/component/time-picker.md +++ b/docs/en-US/component/time-picker.md @@ -47,39 +47,41 @@ time-picker/range ### Attributes -| Name | Description | Type | Default | -| --------------------- | -------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------- | -| model-value / v-model | binding value, if it is an array, the length should be 2 | ^[number] / ^[string] / ^[object]`Date \| [Date, Date] \| [number, number] \| [string, string]` | '' | -| readonly | whether TimePicker is read only | ^[boolean] | false | -| disabled | whether TimePicker is disabled | ^[boolean] | false | -| editable | whether the input is editable | ^[boolean] | true | -| clearable | whether to show clear button | ^[boolean] | true | -| size | size of Input | ^[enum]`'large' \| 'default' \| 'small'` | — | -| placeholder | placeholder in non-range mode | ^[string] | '' | -| start-placeholder | placeholder for the start time in range mode | ^[string] | — | -| end-placeholder | placeholder for the end time in range mode | ^[string] | — | -| is-range | whether to pick a time range | ^[boolean] | false | -| arrow-control | whether to pick time using arrow buttons | ^[boolean] | false | -| popper-class | custom class name for TimePicker's dropdown | ^[string] | '' | -| range-separator | range separator | ^[string] | '-' | -| format | format of the displayed value in the input box | ^[string] see [date formats](/en-US/component/date-picker#date-formats) | — | -| default-value | optional, default date of the calendar | ^[Date] / ^[object]`[Date, Date]` | — | -| value-format | optional, format of binding value. If not specified, the binding value will be a Date object | ^[string] see [date formats](/en-US/component/date-picker#date-formats) | — | -| id | same as `id` in native input | ^[string] / ^[object]`[string, string]` | — | -| name | same as `name` in native input | ^[string] | '' | -| label ^(a11y) | same as `aria-label` in native input | ^[string] | — | -| prefix-icon | Custom prefix icon component | ^[string] / ^[Component] | Clock | -| clear-icon | Custom clear icon component | ^[string] / ^[Component] | CircleClose | -| disabled-hours | To specify the array of hours that cannot be selected | ^[Function]`(role: string, comparingDate?: Dayjs) => number[]` | — | -| disabled-minutes | To specify the array of minutes that cannot be selected | ^[Function]`(hour: number, role: string, comparingDate?: Dayjs) => number[]` | — | -| disabled-seconds | To specify the array of seconds that cannot be selected | ^[Function]`(hour: number, minute: number, role: string, comparingDate?: Dayjs) => number[]` | — | -| teleported | whether time-picker dropdown is teleported to the body | ^[boolean] | true | -| tabindex | input tabindex | ^[string] / ^[number] | 0 | +| Name | Description | Type | Default | +|-------------------------|----------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|-------------| +| model-value / v-model | binding value, if it is an array, the length should be 2 | ^[number] / ^[string] / ^[object]`Date \| [Date, Date] \| [number, number] \| [string, string]` | '' | +| readonly | whether TimePicker is read only | ^[boolean] | false | +| disabled | whether TimePicker is disabled | ^[boolean] | false | +| editable | whether the input is editable | ^[boolean] | true | +| clearable | whether to show clear button | ^[boolean] | true | +| size | size of Input | ^[enum]`'large' \| 'default' \| 'small'` | — | +| placeholder | placeholder in non-range mode | ^[string] | '' | +| start-placeholder | placeholder for the start time in range mode | ^[string] | — | +| end-placeholder | placeholder for the end time in range mode | ^[string] | — | +| is-range | whether to pick a time range | ^[boolean] | false | +| arrow-control | whether to pick time using arrow buttons | ^[boolean] | false | +| popper-class | custom class name for TimePicker's dropdown | ^[string] | '' | +| range-separator | range separator | ^[string] | '-' | +| format | format of the displayed value in the input box | ^[string] see [date formats](/en-US/component/date-picker#date-formats) | — | +| default-value | optional, default date of the calendar | ^[Date] / ^[object]`[Date, Date]` | — | +| value-format | optional, format of binding value. If not specified, the binding value will be a Date object | ^[string] see [date formats](/en-US/component/date-picker#date-formats) | — | +| id | same as `id` in native input | ^[string] / ^[object]`[string, string]` | — | +| name | same as `name` in native input | ^[string] | '' | +| label ^(a11y) | same as `aria-label` in native input | ^[string] | — | +| prefix-icon | Custom prefix icon component | ^[string] / ^[Component] | Clock | +| clear-icon | Custom clear icon component | ^[string] / ^[Component] | CircleClose | +| disabled-hours | To specify the array of hours that cannot be selected | ^[Function]`(role: string, comparingDate?: Dayjs) => number[]` | — | +| disabled-minutes | To specify the array of minutes that cannot be selected | ^[Function]`(hour: number, role: string, comparingDate?: Dayjs) => number[]` | — | +| disabled-seconds | To specify the array of seconds that cannot be selected | ^[Function]`(hour: number, minute: number, role: string, comparingDate?: Dayjs) => number[]` | — | +| teleported | whether time-picker dropdown is teleported to the body | ^[boolean] | true | +| tabindex | input tabindex | ^[string] / ^[number] | 0 | +| empty-values ^(2.7.0) | empty values of component, [see config-provider](/en-US/component/config-provider#empty-values-configurations) | ^[array] | — | +| value-on-clear ^(2.7.0) | clear return value, [see config-provider](/en-US/component/config-provider#empty-values-configurations) | ^[string] / ^[number] / ^[boolean] / ^[Function] | — | ### Events | Name | Description | Type | -| -------------- | ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | +|----------------|------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------| | change | triggers when user confirms the value | ^[Function]`(val: number \| string \| Date \| [number, number] \| [string, string] \| [Date, Date]) => void` | | blur | triggers when Input blurs | ^[Function]`(e: FocusEvent) => void` | | focus | triggers when Input focuses | ^[Function]`(e: FocusEvent) => void` | @@ -88,7 +90,7 @@ time-picker/range ### Exposes | Name | Description | Type | -| --------------------- | --------------------------- | ------------------------------------------------- | +|-----------------------|-----------------------------|---------------------------------------------------| | focus | focus the Input component | ^[Function]`(e: FocusEvent \| undefined) => void` | | blur | blur the Input component | ^[Function]`(e: FocusEvent \| undefined) => void` | | handleOpen ^(2.2.16) | open the TimePicker popper | ^[Function]`() => void` | diff --git a/docs/en-US/component/time-select.md b/docs/en-US/component/time-select.md index 3f3c7c6aba6c0c..e5b7ef27cd3159 100644 --- a/docs/en-US/component/time-select.md +++ b/docs/en-US/component/time-select.md @@ -57,29 +57,31 @@ time-select/time-range ### Attributes -| Name | Description | Type | Default | -| --------------------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ----------- | -| model-value / v-model | binding value | ^[string] | — | -| disabled | whether TimeSelect is disabled | ^[boolean] | false | -| editable | whether the input is editable | ^[boolean] | true | -| clearable | whether to show clear button | ^[boolean] | true | -| size | size of Input | ^[enum]`'large' \| 'default' \| 'small'` | default | -| placeholder | placeholder in non-range mode | ^[string] | — | -| name | same as `name` in native input | ^[string] | — | -| effect | Tooltip theme, built-in theme: `dark` / `light` | ^[string] / ^[enum]`'dark' \| 'light'` | light | -| prefix-icon | custom prefix icon component | ^[string] / ^[Component] | Clock | -| clear-icon | custom clear icon component | ^[string] / ^[Component] | CircleClose | -| start | start time | ^[string] | 09:00 | -| end | end time | ^[string] | 18:00 | -| step | time step | ^[string] | 00:30 | -| min-time | minimum time, any time before this time will be disabled | ^[string] | — | -| max-time | maximum time, any time after this time will be disabled | ^[string] | — | -| format | set format of time | ^[string] see [formats](https://day.js.org/docs/en/display/format#list-of-all-available-formats) | HH:mm | +| Name | Description | Type | Default | +|-------------------------|----------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------|-------------| +| model-value / v-model | binding value | ^[string] | — | +| disabled | whether TimeSelect is disabled | ^[boolean] | false | +| editable | whether the input is editable | ^[boolean] | true | +| clearable | whether to show clear button | ^[boolean] | true | +| size | size of Input | ^[enum]`'large' \| 'default' \| 'small'` | default | +| placeholder | placeholder in non-range mode | ^[string] | — | +| name | same as `name` in native input | ^[string] | — | +| effect | Tooltip theme, built-in theme: `dark` / `light` | ^[string] / ^[enum]`'dark' \| 'light'` | light | +| prefix-icon | custom prefix icon component | ^[string] / ^[Component] | Clock | +| clear-icon | custom clear icon component | ^[string] / ^[Component] | CircleClose | +| start | start time | ^[string] | 09:00 | +| end | end time | ^[string] | 18:00 | +| step | time step | ^[string] | 00:30 | +| min-time | minimum time, any time before this time will be disabled | ^[string] | — | +| max-time | maximum time, any time after this time will be disabled | ^[string] | — | +| format | set format of time | ^[string] see [formats](https://day.js.org/docs/en/display/format#list-of-all-available-formats) | HH:mm | +| empty-values ^(2.7.0) | empty values of component, [see config-provider](/en-US/component/config-provider#empty-values-configurations) | ^[array] | — | +| value-on-clear ^(2.7.0) | clear return value, [see config-provider](/en-US/component/config-provider#empty-values-configurations) | ^[string] / ^[number] / ^[boolean] / ^[Function] | — | ### Events | Name | Description | Type | -| ------ | ------------------------------------- | ---------------------------------------- | +|--------|---------------------------------------|------------------------------------------| | change | triggers when user confirms the value | ^[Function]`(value: string) => void` | | blur | triggers when Input blurs | ^[Function]`(event: FocusEvent) => void` | | focus | triggers when Input focuses | ^[Function]`(event: FocusEvent) => void` | @@ -87,6 +89,6 @@ time-select/time-range ### Exposes | Method | Description | Type | -| ------ | ------------------------- | ----------------------- | +|--------|---------------------------|-------------------------| | focus | focus the Input component | ^[Function]`() => void` | | blur | blur the Input component | ^[Function]`() => void` | diff --git a/docs/examples/config-provider/empty-values.vue b/docs/examples/config-provider/empty-values.vue new file mode 100644 index 00000000000000..b126ae7de4b46a --- /dev/null +++ b/docs/examples/config-provider/empty-values.vue @@ -0,0 +1,69 @@ + + + diff --git a/docs/examples/select-v2/empty-values.vue b/docs/examples/select-v2/empty-values.vue new file mode 100644 index 00000000000000..52382e96269afb --- /dev/null +++ b/docs/examples/select-v2/empty-values.vue @@ -0,0 +1,35 @@ + + + diff --git a/docs/examples/select/empty-values.vue b/docs/examples/select/empty-values.vue new file mode 100644 index 00000000000000..f0bc2f4ea17386 --- /dev/null +++ b/docs/examples/select/empty-values.vue @@ -0,0 +1,56 @@ + + + diff --git a/packages/components/cascader/src/cascader.ts b/packages/components/cascader/src/cascader.ts index a5ff67ab4730e9..9f7f0ac54e3cdd 100644 --- a/packages/components/cascader/src/cascader.ts +++ b/packages/components/cascader/src/cascader.ts @@ -1,6 +1,6 @@ import { CommonProps } from '@element-plus/components/cascader-panel' import { buildProps, definePropType, isBoolean } from '@element-plus/utils' -import { useSizeProp } from '@element-plus/hooks' +import { useEmptyValuesProps, useSizeProp } from '@element-plus/hooks' import { useTooltipContentProps } from '@element-plus/components/tooltip' import { tagProps } from '@element-plus/components/tag' import { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants' @@ -110,11 +110,14 @@ export const cascaderProps = buildProps({ type: Boolean, default: true, }, + ...useEmptyValuesProps, }) export const cascaderEmits = { - [UPDATE_MODEL_EVENT]: (val: CascaderValue) => !!val || val === null, - [CHANGE_EVENT]: (val: CascaderValue) => !!val || val === null, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [UPDATE_MODEL_EVENT]: (_: CascaderValue) => true, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [CHANGE_EVENT]: (_: CascaderValue) => true, focus: (evt: FocusEvent) => evt instanceof FocusEvent, blur: (evt: FocusEvent) => evt instanceof FocusEvent, visibleChange: (val: boolean) => isBoolean(val), diff --git a/packages/components/cascader/src/cascader.vue b/packages/components/cascader/src/cascader.vue index d684cfc601fa60..31ef7455ad0847 100644 --- a/packages/components/cascader/src/cascader.vue +++ b/packages/components/cascader/src/cascader.vue @@ -207,7 +207,7 @@ import ElTag from '@element-plus/components/tag' import ElIcon from '@element-plus/components/icon' import { useFormItem, useFormSize } from '@element-plus/components/form' import { ClickOutside as vClickoutside } from '@element-plus/directives' -import { useLocale, useNamespace } from '@element-plus/hooks' +import { useEmptyValues, useLocale, useNamespace } from '@element-plus/hooks' import { debugWarn, focusNode, @@ -268,6 +268,7 @@ const nsInput = useNamespace('input') const { t } = useLocale() const { form, formItem } = useFormItem() +const { valueOnClear } = useEmptyValues(props) const tooltipRef: Ref = ref(null) const input: Ref = ref(null) @@ -340,8 +341,9 @@ const checkedValue = computed({ return cloneDeep(props.modelValue) as CascaderValue }, set(val) { - emit(UPDATE_MODEL_EVENT, val) - emit(CHANGE_EVENT, val) + const value = val || valueOnClear.value + emit(UPDATE_MODEL_EVENT, value) + emit(CHANGE_EVENT, value) if (props.validateEvent) { formItem?.validate('change').catch((err) => debugWarn(err)) } diff --git a/packages/components/config-provider/src/config-provider-props.ts b/packages/components/config-provider/src/config-provider-props.ts index 6e2d0ad9dfe3f7..c0e4890847af0a 100644 --- a/packages/components/config-provider/src/config-provider-props.ts +++ b/packages/components/config-provider/src/config-provider-props.ts @@ -1,5 +1,5 @@ import { buildProps, definePropType } from '@element-plus/utils' -import { useSizeProp } from '@element-plus/hooks' +import { useEmptyValuesProps, useSizeProp } from '@element-plus/hooks' import type { ExtractPropTypes } from 'vue' import type { Language } from '@element-plus/locale' @@ -64,5 +64,6 @@ export const configProviderProps = buildProps({ type: String, default: 'el', }, + ...useEmptyValuesProps, } as const) export type ConfigProviderProps = ExtractPropTypes diff --git a/packages/components/config-provider/src/hooks/use-global-config.ts b/packages/components/config-provider/src/hooks/use-global-config.ts index fa8c6d05c023e3..87a0231d90f91f 100644 --- a/packages/components/config-provider/src/hooks/use-global-config.ts +++ b/packages/components/config-provider/src/hooks/use-global-config.ts @@ -124,7 +124,7 @@ const mergeConfig = ( const keys = [...new Set([...keysOf(a), ...keysOf(b)])] const obj: Record = {} for (const key of keys) { - obj[key] = b[key] ?? a[key] + obj[key] = b[key] !== undefined ? b[key] : a[key] } return obj } diff --git a/packages/components/date-picker/__tests__/date-picker.test.ts b/packages/components/date-picker/__tests__/date-picker.test.ts index 1e41efd4c15453..c1c87576d9b056 100644 --- a/packages/components/date-picker/__tests__/date-picker.test.ts +++ b/packages/components/date-picker/__tests__/date-picker.test.ts @@ -178,7 +178,7 @@ describe('DatePicker', () => { ;(picker.vm as any).showClose = true await nextTick() ;(document.querySelector('.clear-icon') as HTMLElement).click() - expect(vm.value).toBeNull() + expect(vm.value).toBe(null) }) it('defaultValue', async () => { @@ -207,7 +207,7 @@ describe('DatePicker', () => { ;(picker.vm as any).showClose = true await nextTick() document.querySelector('.clear-icon').click() - expect(vm.value).toBeNull() + expect(vm.value).toBe(null) vm.defaultValue = new Date(2031, 5, 1) input.trigger('blur') diff --git a/packages/components/select-v2/src/defaults.ts b/packages/components/select-v2/src/defaults.ts index 5f22ebc85f3509..ed02bb093d3652 100644 --- a/packages/components/select-v2/src/defaults.ts +++ b/packages/components/select-v2/src/defaults.ts @@ -1,5 +1,5 @@ import { placements } from '@popperjs/core' -import { useSizeProp } from '@element-plus/hooks' +import { useEmptyValuesProps, useSizeProp } from '@element-plus/hooks' import { buildProps, definePropType, iconPropType } from '@element-plus/utils' import { useTooltipContentProps } from '@element-plus/components/tooltip' import { CircleClose } from '@element-plus/icons-vue' @@ -247,6 +247,7 @@ export const SelectProps = buildProps({ type: String, default: undefined, }, + ...useEmptyValuesProps, } as const) export const OptionProps = buildProps({ diff --git a/packages/components/select-v2/src/useSelect.ts b/packages/components/select-v2/src/useSelect.ts index 2d7c402e8d92f1..ecb7d82bc014d5 100644 --- a/packages/components/select-v2/src/useSelect.ts +++ b/packages/components/select-v2/src/useSelect.ts @@ -13,11 +13,11 @@ import { findLastIndex, get, isEqual, - isNil, debounce as lodashDebounce, } from 'lodash-unified' import { useResizeObserver } from '@vueuse/core' import { + useEmptyValues, useFocusController, useLocale, useNamespace, @@ -59,6 +59,7 @@ const useSelect = (props: ISelectV2Props, emit) => { formItemContext: elFormItem, }) const { getLabel, getValue, getDisabled, getOptions } = useProps(props) + const { valueOnClear, isEmptyValue } = useEmptyValues(props) const states = reactive({ inputValue: '', @@ -127,24 +128,19 @@ const useSelect = (props: ISelectV2Props, emit) => { return totalHeight > props.height ? props.height : totalHeight }) - const hasEmptyStringOption = computed(() => - allOptions.value.some((option) => getValue(option) === '') - ) - const hasModelValue = computed(() => { return props.multiple ? isArray(props.modelValue) && props.modelValue.length > 0 - : !isNil(props.modelValue) && - (props.modelValue !== '' || hasEmptyStringOption.value) + : !isEmptyValue(props.modelValue) }) const showClearBtn = computed(() => { - const criteria = + return ( props.clearable && !selectDisabled.value && states.inputHovering && hasModelValue.value - return criteria + ) }) const iconComponent = computed(() => @@ -600,7 +596,7 @@ const useSelect = (props: ISelectV2Props, emit) => { if (isArray(props.modelValue)) { emptyValue = [] } else { - emptyValue = undefined + emptyValue = valueOnClear.value } if (props.multiple) { diff --git a/packages/components/select/src/select.ts b/packages/components/select/src/select.ts index ca1b8ce2dba69e..a8085690c9d44d 100644 --- a/packages/components/select/src/select.ts +++ b/packages/components/select/src/select.ts @@ -1,5 +1,5 @@ import { placements } from '@popperjs/core' -import { useSizeProp } from '@element-plus/hooks' +import { useEmptyValuesProps, useSizeProp } from '@element-plus/hooks' import { buildProps, definePropType, iconPropType } from '@element-plus/utils' import { useTooltipContentProps } from '@element-plus/components/tooltip' import { ArrowDown, CircleClose } from '@element-plus/icons-vue' @@ -219,4 +219,5 @@ export const SelectProps = buildProps({ type: String, default: undefined, }, + ...useEmptyValuesProps, }) diff --git a/packages/components/select/src/useSelect.ts b/packages/components/select/src/useSelect.ts index dc09df258c15d0..8dc2dc32b4236d 100644 --- a/packages/components/select/src/useSelect.ts +++ b/packages/components/select/src/useSelect.ts @@ -14,7 +14,6 @@ import { findLastIndex, get, isEqual, - isNil, debounce as lodashDebounce, } from 'lodash-unified' import { useResizeObserver } from '@vueuse/core' @@ -33,6 +32,7 @@ import { scrollIntoView, } from '@element-plus/utils' import { + useEmptyValues, useFocusController, useId, useLocale, @@ -120,27 +120,23 @@ export const useSelect = (props: ISelectProps, emit) => { const { inputId } = useFormItemInputId(props, { formItemContext: formItem, }) + const { valueOnClear, isEmptyValue } = useEmptyValues(props) const selectDisabled = computed(() => props.disabled || form?.disabled) - const hasEmptyStringOption = computed(() => - optionsArray.value.some((option) => option.value === '') - ) - const hasModelValue = computed(() => { return props.multiple ? isArray(props.modelValue) && props.modelValue.length > 0 - : !isNil(props.modelValue) && - (props.modelValue !== '' || hasEmptyStringOption.value) + : !isEmptyValue(props.modelValue) }) const showClose = computed(() => { - const criteria = + return ( props.clearable && !selectDisabled.value && states.inputHovering && hasModelValue.value - return criteria + ) }) const iconComponent = computed(() => props.remote && props.filterable && !props.remoteShowSuffix @@ -527,7 +523,7 @@ export const useSelect = (props: ISelectProps, emit) => { const deleteSelected = (event) => { event.stopPropagation() - const value: string | any[] = props.multiple ? [] : undefined + const value: string | any[] = props.multiple ? [] : valueOnClear.value if (props.multiple) { for (const item of states.selected) { if (item.isDisabled) value.push(item.value) diff --git a/packages/components/time-picker/src/common/picker.vue b/packages/components/time-picker/src/common/picker.vue index 09be004938ae72..eade05ef9ef6ac 100644 --- a/packages/components/time-picker/src/common/picker.vue +++ b/packages/components/time-picker/src/common/picker.vue @@ -173,7 +173,7 @@ import { } from 'vue' import { isEqual } from 'lodash-unified' import { onClickOutside } from '@vueuse/core' -import { useLocale, useNamespace } from '@element-plus/hooks' +import { useEmptyValues, useLocale, useNamespace } from '@element-plus/hooks' import { useFormItem, useFormSize } from '@element-plus/components/form' import ElInput from '@element-plus/components/input' import ElIcon from '@element-plus/components/icon' @@ -225,6 +225,7 @@ const nsRange = useNamespace('range') const { form, formItem } = useFormItem() const elPopperOptions = inject('ElPopperOptions', {} as Options) +const { valueOnClear } = useEmptyValues(props, null) const refPopper = ref() const inputRef = ref() @@ -502,8 +503,8 @@ const onClearIconClick = (event: MouseEvent) => { if (showClose.value) { event.stopPropagation() focusOnInputBox() - emitInput(null) - emitChange(null, true) + emitInput(valueOnClear.value) + emitChange(valueOnClear.value, true) showClose.value = false pickerVisible.value = false pickerOptions.value.handleClear && pickerOptions.value.handleClear() @@ -590,8 +591,8 @@ const handleChange = () => { } } if (userInput.value === '') { - emitInput(null) - emitChange(null) + emitInput(valueOnClear.value) + emitChange(valueOnClear.value) userInput.value = null } } diff --git a/packages/components/time-picker/src/common/props.ts b/packages/components/time-picker/src/common/props.ts index 97bc0de42c3538..ed442138f98407 100644 --- a/packages/components/time-picker/src/common/props.ts +++ b/packages/components/time-picker/src/common/props.ts @@ -1,5 +1,5 @@ import { buildProps, definePropType } from '@element-plus/utils' -import { useSizeProp } from '@element-plus/hooks' +import { useEmptyValuesProps, useSizeProp } from '@element-plus/hooks' import { CircleClose } from '@element-plus/icons-vue' import { disabledTimeListsProps } from '../props/shared' @@ -211,6 +211,7 @@ export const timePickerDefaultProps = buildProps({ * @description unlink two date-panels in range-picker */ unlinkPanels: Boolean, + ...useEmptyValuesProps, } as const) export type TimePickerDefaultProps = ExtractPropTypes< diff --git a/packages/components/time-select/src/time-select.ts b/packages/components/time-select/src/time-select.ts index 67b62c575fd105..499f0b333d0409 100644 --- a/packages/components/time-select/src/time-select.ts +++ b/packages/components/time-select/src/time-select.ts @@ -1,6 +1,6 @@ import { buildProps, definePropType } from '@element-plus/utils' import { CircleClose, Clock } from '@element-plus/icons-vue' -import { useSizeProp } from '@element-plus/hooks' +import { useEmptyValuesProps, useSizeProp } from '@element-plus/hooks' import type TimeSelect from './time-select.vue' import type { Component, ExtractPropTypes, PropType } from 'vue' @@ -96,6 +96,7 @@ export const timeSelectProps = buildProps({ type: definePropType([String, Object]), default: () => CircleClose, }, + ...useEmptyValuesProps, } as const) export type TimeSelectProps = ExtractPropTypes diff --git a/packages/components/time-select/src/time-select.vue b/packages/components/time-select/src/time-select.vue index a4bff1cc63b6cb..9e9a2b54254189 100644 --- a/packages/components/time-select/src/time-select.vue +++ b/packages/components/time-select/src/time-select.vue @@ -10,6 +10,8 @@ :placeholder="placeholder" default-first-option :filterable="editable" + :empty-values="emptyValues" + :value-on-clear="valueOnClear" @update:model-value="(event) => $emit('update:modelValue', event)" @change="(event) => $emit('change', event)" @blur="(event) => $emit('blur', event)" diff --git a/packages/hooks/__tests__/use-empty-values.test.tsx b/packages/hooks/__tests__/use-empty-values.test.tsx new file mode 100644 index 00000000000000..2fbce5c791b6ca --- /dev/null +++ b/packages/hooks/__tests__/use-empty-values.test.tsx @@ -0,0 +1,81 @@ +import { reactive } from 'vue' +import { describe, expect, it } from 'vitest' +import { + DEFAULT_EMPTY_VALUES, + DEFAULT_VALUE_ON_CLEAR, + useEmptyValues, +} from '../use-empty-values' + +describe('useEmptyValues', () => { + it('should return default value', async () => { + const props = reactive({}) as any + + const { emptyValues, valueOnClear } = useEmptyValues(props) + + expect(emptyValues.value).toEqual(DEFAULT_EMPTY_VALUES) + expect(valueOnClear.value).toEqual(DEFAULT_VALUE_ON_CLEAR) + }) + + it('should return default value prop', async () => { + const props = reactive({}) as any + + const { valueOnClear } = useEmptyValues(props, null) + + expect(valueOnClear.value).toEqual(null) + }) + + it('should return props value', async () => { + const props = reactive({ + emptyValues: [null, undefined], + valueOnClear: null, + }) as any + + const { emptyValues, valueOnClear } = useEmptyValues(props) + + expect(emptyValues.value).toEqual([null, undefined]) + expect(valueOnClear.value).toEqual(null) + + props.emptyValues = [''] + props.valueOnClear = '' + + expect(emptyValues.value).toEqual(['']) + expect(valueOnClear.value).toEqual('') + + props.emptyValues = [null] + props.valueOnClear = null + + expect(emptyValues.value).toEqual([null]) + expect(valueOnClear.value).toEqual(null) + + props.emptyValues = [undefined] + props.valueOnClear = () => undefined + + expect(emptyValues.value).toEqual([undefined]) + expect(valueOnClear.value).toEqual(undefined) + }) + + it('should judge empty value', async () => { + const props = reactive({}) as any + + const { isEmptyValue } = useEmptyValues(props) + + expect(isEmptyValue('')).toBe(true) + expect(isEmptyValue(undefined)).toBe(true) + expect(isEmptyValue(null)).toBe(true) + expect(isEmptyValue('null')).toBe(false) + expect(isEmptyValue(Number.NaN)).toBe(false) + expect(isEmptyValue(false)).toBe(false) + expect(isEmptyValue(0)).toBe(false) + + props.emptyValues = ['', Number.NaN, 'null', false, 0] + props.valueOnClear = '' + + expect(isEmptyValue('')).toBe(true) + expect(isEmptyValue(undefined)).toBe(false) + expect(isEmptyValue(null)).toBe(false) + expect(isEmptyValue('null')).toBe(true) + expect(isEmptyValue(Number.NaN)).toBe(true) + expect(isEmptyValue(false)).toBe(true) + expect(isEmptyValue(0)).toBe(true) + }) +}) diff --git a/packages/hooks/index.ts b/packages/hooks/index.ts index 1ae3a087952620..0712d5aa37588a 100644 --- a/packages/hooks/index.ts +++ b/packages/hooks/index.ts @@ -27,3 +27,4 @@ export * from './use-cursor' export * from './use-ordered-children' export * from './use-size' export * from './use-focus-controller' +export * from './use-empty-values' diff --git a/packages/hooks/use-empty-values/index.ts b/packages/hooks/use-empty-values/index.ts new file mode 100644 index 00000000000000..0818716cd5d720 --- /dev/null +++ b/packages/hooks/use-empty-values/index.ts @@ -0,0 +1,64 @@ +import { computed } from 'vue' +import { useGlobalConfig } from '@element-plus/components/config-provider' +import { buildProps, debugWarn, isFunction } from '@element-plus/utils' + +import type { ExtractPropTypes } from 'vue' + +export const SCOPE = 'use-empty-values' +export const DEFAULT_EMPTY_VALUES = ['', undefined, null] +export const DEFAULT_VALUE_ON_CLEAR = undefined + +export const useEmptyValuesProps = buildProps({ + /** + * @description empty values supported by the component + */ + emptyValues: Array, + /** + * @description return value when cleared, if you want to set `undefined`, use `() => undefined` + */ + valueOnClear: { + type: [String, Number, Boolean, Function], + default: undefined, + validator: (val: any) => (isFunction(val) ? !val() : !val), + }, +} as const) + +export const useEmptyValues = ( + props: ExtractPropTypes, + defaultValue?: null | undefined +) => { + const config = useGlobalConfig() + config.value = config.value || {} + + const emptyValues = computed( + () => props.emptyValues || config.value.emptyValues || DEFAULT_EMPTY_VALUES + ) + + const valueOnClear = computed(() => { + // function is used for undefined cause undefined can't be a value of prop + if (isFunction(props.valueOnClear)) { + return props.valueOnClear() + } else if (props.valueOnClear !== undefined) { + return props.valueOnClear + } else if (isFunction(config.value.valueOnClear)) { + return config.value.valueOnClear() + } else if (config.value.valueOnClear !== undefined) { + return config.value.valueOnClear + } + return defaultValue !== undefined ? defaultValue : DEFAULT_VALUE_ON_CLEAR + }) + + const isEmptyValue = (value: any) => { + return emptyValues.value.includes(value) + } + + if (!emptyValues.value.includes(valueOnClear.value)) { + debugWarn(SCOPE, 'value-on-clear should be a value of empty-values') + } + + return { + emptyValues, + valueOnClear, + isEmptyValue, + } +} From ff9771bca8e11a1bbac304ac9d2c5c1b0bc7bd29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E6=B7=BB?= <657454579@qq.com> Date: Fri, 12 Apr 2024 13:49:40 +0800 Subject: [PATCH 07/78] fix(components): [select & select-v2] fix filterable double click error (#16456) * fix(components): [select & select-v2] fix filterable double click error * fix: test error --- packages/components/select-v2/src/useSelect.ts | 1 + packages/components/select/src/useSelect.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/components/select-v2/src/useSelect.ts b/packages/components/select-v2/src/useSelect.ts index ecb7d82bc014d5..6fcec61a81312d 100644 --- a/packages/components/select-v2/src/useSelect.ts +++ b/packages/components/select-v2/src/useSelect.ts @@ -705,6 +705,7 @@ const useSelect = (props: ISelectV2Props, emit) => { } const handleMenuEnter = () => { + states.isBeforeHide = false return nextTick(() => { if (~indexRef.value) { scrollToItem(states.hoveringIndex) diff --git a/packages/components/select/src/useSelect.ts b/packages/components/select/src/useSelect.ts index 8dc2dc32b4236d..8c36029798f641 100644 --- a/packages/components/select/src/useSelect.ts +++ b/packages/components/select/src/useSelect.ts @@ -631,6 +631,7 @@ export const useSelect = (props: ISelectProps, emit) => { }) const handleMenuEnter = () => { + states.isBeforeHide = false nextTick(() => scrollToOption(states.selected)) } From cc4089c0108d6852931187eff4817759f1e57612 Mon Sep 17 00:00:00 2001 From: Liao-js <43257608+Liao-js@users.noreply.github.com> Date: Fri, 12 Apr 2024 13:52:40 +0800 Subject: [PATCH 08/78] fix(components): [table] fixed hover on colSpan > 2 background is error (#16443) * fix(components): [table] fixed hover on colSpan > 2 (#16439) * fix(components): [table] fixed background highlighting when hover * Update packages/components/table/src/table-body/index.ts Co-authored-by: btea <2356281422@qq.com> --------- Co-authored-by: btea <2356281422@qq.com> --- packages/components/table/src/table-body/index.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/components/table/src/table-body/index.ts b/packages/components/table/src/table-body/index.ts index fa80c25102fc9d..265eb869978593 100644 --- a/packages/components/table/src/table-body/index.ts +++ b/packages/components/table/src/table-body/index.ts @@ -39,13 +39,16 @@ export default defineComponent({ let rowNum = newVal const childNodes = rows[rowNum]?.childNodes if (childNodes?.length) { + let control = 0 const indexes = Array.from(childNodes).reduce((acc, item, index) => { // drop colsSpan - const pre = childNodes[index - 1]?.colSpan > 1 - const next = childNodes[index + 1]?.colSpan > 1 - if (item.nodeName !== 'TD' && !pre && !next) { + if (childNodes[index]?.colSpan > 1) { + control = childNodes[index]?.colSpan + } + if (item.nodeName !== 'TD' && control === 0) { acc.push(index) } + control > 0 && control-- return acc }, []) @@ -55,7 +58,8 @@ export default defineComponent({ const preChildNodes = rows[rowNum - 1]?.childNodes if ( preChildNodes[rowIndex] && - preChildNodes[rowIndex].nodeName === 'TD' + preChildNodes[rowIndex].nodeName === 'TD' && + preChildNodes[rowIndex].rowSpan > 1 ) { addClass(preChildNodes[rowIndex], 'hover-cell') hoveredCellList.push(preChildNodes[rowIndex]) From dc6972916102626528a0527a125c9bbfc70c7fcc Mon Sep 17 00:00:00 2001 From: bhwa23 <404174262@qq.com> Date: Fri, 12 Apr 2024 14:35:55 +0800 Subject: [PATCH 09/78] =?UTF-8?q?feat(components):=20[badge]=20add=20dotCl?= =?UTF-8?q?ass=E3=80=81dotStyle=E3=80=81offset=20props=20(#16434)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: 🎸 [badge] add color prop add color prop to set badge background color * feat: 🎸 [badge] add dotClass dotStyle offset props * docs: ✏️ [badge] add dotClass dotStyle offset props * feat: 🎸 [badge] unify style * style: 💄 [badge] format * docs: ✏️ update badge.md * docs: ✏️ update badge props desc * Update docs/en-US/component/badge.md Co-authored-by: kooriookami <38392315+kooriookami@users.noreply.github.com> * refactor: 💡 [badge] refactor style * fix: 🐛 [badge] dotStyle has higher precedence than color --------- Co-authored-by: kooriookami <38392315+kooriookami@users.noreply.github.com> --- docs/en-US/component/badge.md | 29 +++++++++++++++++-------- docs/examples/badge/offset.vue | 12 ++++++++++ packages/components/badge/src/badge.ts | 25 ++++++++++++++++++--- packages/components/badge/src/badge.vue | 16 ++++++++++++-- 4 files changed, 68 insertions(+), 14 deletions(-) create mode 100644 docs/examples/badge/offset.vue diff --git a/docs/en-US/component/badge.md b/docs/en-US/component/badge.md index 5a8f3c4f28f436..e4a2c5e632834e 100644 --- a/docs/en-US/component/badge.md +++ b/docs/en-US/component/badge.md @@ -47,19 +47,30 @@ badge/dot ::: +## Offset ^(2.7.0) + +:::demo Set offset of the badge dot, the format is [left, top], which represents the offset of the status dot from the left and top of the default position. + +badge/offset + +::: + ## API ### Attributes -| Name | Description | Type | Default | -| ------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------- | -| value | display value. | ^[string] / ^[number] | '' | -| max | maximum value, shows `{max}+` when exceeded. Only works if value is a number. | ^[number] | 99 | -| is-dot | if a little dot is displayed. | ^[boolean] | false | -| hidden | hidden badge. | ^[boolean] | false | -| type | badge type. | ^[enum]`'primary' \| 'success' \| 'warning' \| 'danger' \| 'info'` | danger | -| show-zero ^(2.6.0) | Whether to show badge when value is zero. | ^[boolean] | true | -| color ^(2.6.3) | background color of the dot | ^[string] | | +| Name | Description | Type | Default | +| ------------------ | ----------------------------------------------------------------------------- | ------------------------------------------------------------------ | ------- | +| value | display value. | ^[string] / ^[number] | '' | +| max | maximum value, shows `{max}+` when exceeded. Only works if value is a number. | ^[number] | 99 | +| is-dot | if a little dot is displayed. | ^[boolean] | false | +| hidden | hidden badge. | ^[boolean] | false | +| type | badge type. | ^[enum]`'primary' \| 'success' \| 'warning' \| 'danger' \| 'info'` | danger | +| show-zero ^(2.6.0) | Whether to show badge when value is zero. | ^[boolean] | true | +| color ^(2.6.3) | background color of the dot | ^[string] | | +| offset ^(2.7.0) | Set offset of dot | [ `number` , `number` ] | — | +| dot-style ^(2.7.0) | CSS style of dot | ^[object]`CSSProperties` | — | +| dot-class ^(2.7.0) | custom class name of dot | ^[string] | — | ### Slots diff --git a/docs/examples/badge/offset.vue b/docs/examples/badge/offset.vue new file mode 100644 index 00000000000000..98eb0327937c7b --- /dev/null +++ b/docs/examples/badge/offset.vue @@ -0,0 +1,12 @@ + + + diff --git a/packages/components/badge/src/badge.ts b/packages/components/badge/src/badge.ts index dc167cab9bf8ba..8b44a9eaecc488 100644 --- a/packages/components/badge/src/badge.ts +++ b/packages/components/badge/src/badge.ts @@ -1,5 +1,5 @@ -import { buildProps } from '@element-plus/utils' -import type { ExtractPropTypes } from 'vue' +import { buildProps, definePropType } from '@element-plus/utils' +import type { ExtractPropTypes, StyleValue } from 'vue' export const badgeProps = buildProps({ /** @@ -40,8 +40,27 @@ export const badgeProps = buildProps({ default: true, }, /** - * @description background color of the Badge + * @description customize dot background color */ color: String, + /** + * @description CSS style of dot + */ + dotStyle: { + type: definePropType([String, Object, Array]), + }, + /** + * @description set offset of the badge dot + */ + offset: { + type: definePropType<[number, number]>(Array), + default: [0, 0], + }, + /** + * @description custom class name of badge dot + */ + dotClass: { + type: String, + }, } as const) export type BadgeProps = ExtractPropTypes diff --git a/packages/components/badge/src/badge.vue b/packages/components/badge/src/badge.vue index bef16a6285bef5..ac480deabeed98 100644 --- a/packages/components/badge/src/badge.vue +++ b/packages/components/badge/src/badge.vue @@ -9,8 +9,9 @@ ns.em('content', type), ns.is('fixed', !!$slots.default), ns.is('dot', isDot), + dotClass, ]" - :style="{ backgroundColor: color }" + :style="style" v-text="content" /> @@ -20,8 +21,9 @@ diff --git a/docs/examples/layout/column-offset.vue b/docs/examples/layout/column-offset.vue index 913ac4c44f9d22..7b9c97851a92c1 100644 --- a/docs/examples/layout/column-offset.vue +++ b/docs/examples/layout/column-offset.vue @@ -1,22 +1,22 @@ diff --git a/docs/examples/message-box/customization.vue b/docs/examples/message-box/customization.vue index 5008245b1a0330..3f4e78c0403e8f 100644 --- a/docs/examples/message-box/customization.vue +++ b/docs/examples/message-box/customization.vue @@ -5,6 +5,7 @@ + diff --git a/docs/.vitepress/vitepress/components/sponsors/right-logo-small-list.vue b/docs/.vitepress/vitepress/components/sponsors/right-logo-small-list.vue index 70bcacb6f67e95..9443d582de04f5 100644 --- a/docs/.vitepress/vitepress/components/sponsors/right-logo-small-list.vue +++ b/docs/.vitepress/vitepress/components/sponsors/right-logo-small-list.vue @@ -8,7 +8,7 @@ const onItemClick = (item: any) => { + + diff --git a/docs/.vitepress/vitepress/components/sponsors/right-richtext-list.vue b/docs/.vitepress/vitepress/components/sponsors/right-richtext-list.vue index 243c7941bb2833..4890598f48adfe 100644 --- a/docs/.vitepress/vitepress/components/sponsors/right-richtext-list.vue +++ b/docs/.vitepress/vitepress/components/sponsors/right-richtext-list.vue @@ -13,7 +13,7 @@ const onItemClick = (item: any) => { + + diff --git a/docs/.vitepress/vitepress/components/vp-sponsors.vue b/docs/.vitepress/vitepress/components/vp-sponsors.vue index a8d52d239f14b8..9f6affe93fdd25 100644 --- a/docs/.vitepress/vitepress/components/vp-sponsors.vue +++ b/docs/.vitepress/vitepress/components/vp-sponsors.vue @@ -10,7 +10,7 @@ const sponsor = computed(() => sponsorLocale[lang.value])