diff --git a/.github/workflows/coverage-diff.yml b/.github/workflows/coverage-diff.yml index 02c95217..34044ea0 100644 --- a/.github/workflows/coverage-diff.yml +++ b/.github/workflows/coverage-diff.yml @@ -10,3 +10,5 @@ jobs: checks: write pull-requests: write uses: fingerprintjs/dx-team-toolkit/.github/workflows/coverage-diff.yml@v1 + with: + testScript: pnpm test:coverage:diff diff --git a/README.md b/README.md index 23748575..097b08a7 100644 --- a/README.md +++ b/README.md @@ -10,8 +10,8 @@

CI badge coverage - Current NPM version - Monthly downloads from NPM + Current NPM version + Monthly downloads from NPM MIT license Discord server Discord server @@ -29,7 +29,7 @@ Fingerprint is a device intelligence platform offering industry-leading accuracy - [Requirements](#requirements) - [Installation](#installation) - [Getting started](#getting-started) - - [1. Wrap your application (or component) in ``.](#1-wrap-your-application-or-component-in-fpjsprovider) + - [1. Wrap your application (or component) in ``.](#1-wrap-your-application-or-component-in-FingerprintProvider) - [2. Use the `useVisitorData()` hook in your components to identify visitors](#2-use-the-usevisitordata-hook-in-your-components-to-identify-visitors) - [Linking and tagging information](#linking-and-tagging-information) - [Caching strategy](#caching-strategy) @@ -46,59 +46,59 @@ Fingerprint is a device intelligence platform offering industry-leading accuracy - For Typescript users: Typescript 4.8 or higher > [!NOTE] -> This package assumes you have a Fingerprint Pro subscription or trial, it is not compatible with the [source-available FingerprintJS](https://github.com/fingerprintjs/fingerprintjs). See our documentation to learn more about the [differences between Fingerprint Pro and FingerprintJS](https://dev.fingerprint.com/docs/identification-vs-fingerprintjs). +> This package assumes you have a Fingerprint Pro subscription or trial, it is not compatible with the [source-available FingerprintJS](https://github.com/fingerprintjs/fingerprintjs). See our documentation to learn more about the [differences between Fingerprint Pro and FingerprintJS](https://docs.fingerprint.com/docs/identification-vs-fingerprintjs). ## Installation Using [npm](https://npmjs.org): ```sh -npm install @fingerprintjs/fingerprintjs-pro-react +npm install @fingerprint/react ``` Using [yarn](https://yarnpkg.com): ```sh -yarn add @fingerprintjs/fingerprintjs-pro-react +yarn add @fingerprint/react ``` Using [pnpm](https://pnpm.js.org): ```sh -pnpm add @fingerprintjs/fingerprintjs-pro-react +pnpm add @fingerprint/react ``` ## Getting started In order to identify visitors, you'll need a Fingerprint Pro account (you can [sign up for free](https://dashboard.fingerprint.com/signup/)). -To get your API key and get started, see the [Fingerprint Pro Quick Start Guide](https://dev.fingerprint.com/docs/quick-start-guide). +To get your API key and get started, see the [Fingerprint Pro Quick Start Guide](https://docs.fingerprint.com/docs/quick-start-guide). -### 1. Wrap your application (or component) in ``. +### 1. Wrap your application (or component) in ``. - Set `apiKey` to your Fingerprint [Public API Key](https://dashboard.fingerprint.com/api-keys). -- Set `region` if you have chosen a non-global [region](https://dev.fingerprint.com/docs/regions) during registration. -- Set `endpoint` and `scriptUrlPattern` if you are using [one of our proxy integrations to increase accuracy](https://dev.fingerprint.com/docs/protecting-the-javascript-agent-from-adblockers) and effectiveness of visitor identification. -- You can use all the [load options](https://dev.fingerprint.com/reference/load-function#load-options) available in the JavaScript agent `load` function. +- Set `region` if you have chosen a non-global [region](https://docs.fingerprint.com/docs/regions) during registration. +- Set `endpoint` if you are using [one of our proxy integrations to increase accuracy](https://docs.fingerprint.com/docs/protecting-the-javascript-agent-from-adblockers) and effectiveness of visitor identification. +- You can use all the [start options](https://docs.fingerprint.com/reference/js-agent-v4-start-function#start-options) available in the JavaScript agent `load` function. ```jsx // src/index.js import React from 'react' import ReactDOM from 'react-dom/client' import { - FpProvider, + FingerprintProvider, FingerprintJSPro, -} from '@fingerprintjs/fingerprintjs-pro-react' +} from '@fingerprint/react' import App from './App' const root = ReactDOM.createRoot(document.getElementById('app')) -// supports the same options as `start()` function. +// supports the same options as `start()` function. root.render( - - + ) ``` @@ -107,7 +107,7 @@ root.render( ```jsx // src/App.js import React from 'react' -import { useVisitorData } from '@fingerprintjs/fingerprintjs-pro-react' +import { useVisitorData } from '@fingerprint/react' function App() { const { isLoading, error, isFetched, data } = useVisitorData() @@ -133,12 +133,12 @@ The `useVisitorData` hook also returns a `getData` method you can use to make an - You can pass `{ immediate: false }` to `useVisitorData` to disable automatic visitor identification on render. -Both `useVisitorData` and `getData` accept all the [get options](https://dev.fingerprint.com/reference/get-function#get-options) available in the JavaScript agent `get` function. +Both `useVisitorData` and `getData` accept all the [get options](https://docs.fingerprint.com/reference/get-function#get-options) available in the JavaScript agent `get` function. ```jsx // src/App.js import React, { useState } from 'react' -import { useVisitorData } from '@fingerprintjs/fingerprintjs-pro-react' +import { useVisitorData } from '@fingerprint/react' function App() { const { isLoading, error, getData } = useVisitorData( @@ -189,7 +189,7 @@ export default App ## Linking and tagging information -The `visitorId` provided by Fingerprint Identification is especially useful when combined with information you already know about your users, for example, account IDs, order IDs, etc. To learn more about various applications of the `linkedId` and `tag`, see [Linking and tagging information](https://dev.fingerprint.com/docs/tagging-information). +The `visitorId` provided by Fingerprint Identification is especially useful when combined with information you already know about your users, for example, account IDs, order IDs, etc. To learn more about various applications of the `linkedId` and `tag`, see [Linking and tagging information](https://docs.fingerprint.com/docs/tagging-information). Associate the visitor ID with your data using the `linkedId` or `tag` parameter of the options object passed into the `useVisitorData()` hook or the `getData` function: @@ -209,7 +209,7 @@ function App() { ## Error handling -The `getData` function throws errors directly from the JS Agent without changing them. See [JS Agent error handling](https://dev.fingerprint.com/reference/error-handling) for more details. +The `getData` function throws errors directly from the JS Agent without changing them. See [JS Agent error handling](https://docs.fingerprint.com/reference/js-agent-v4-error-handling) for more details. ## API Reference diff --git a/__tests__/detect-env.test.ts b/__tests__/detect-env.test.ts index 6d89a5b3..afd706c7 100644 --- a/__tests__/detect-env.test.ts +++ b/__tests__/detect-env.test.ts @@ -1,5 +1,6 @@ import { detectEnvironment } from '../src/detect-env' import { Env } from '../src/env.types' +import { describe, it, expect } from 'vitest' describe('Detect user env', () => { describe('Preact', () => { diff --git a/__tests__/fpjs-provider.test.tsx b/__tests__/fpjs-provider.test.tsx index b5adcfd1..ba301c15 100644 --- a/__tests__/fpjs-provider.test.tsx +++ b/__tests__/fpjs-provider.test.tsx @@ -1,19 +1,16 @@ import { useContext } from 'react' import { renderHook } from '@testing-library/react' -import { FpContext } from '../src' +import { FingerprintContext } from '../src' import { createWrapper, getDefaultLoadOptions } from './helpers' import { version } from '../package.json' +import { describe, it, expect, vi } from 'vitest' +import * as agent from '@fingerprint/agent' -jest.mock('@fingerprint/agent', () => { - return { - ...jest.requireActual('@fingerprint/agent'), - start: jest.fn(), - } -}) +vi.mock('@fingerprint/agent', { spy: true }) -const mockStart = jest.requireMock('@fingerprint/agent').start as jest.Mock +const mockStart = vi.mocked(agent.start) -describe('FpProvider', () => { +describe('FingerprintProvider', () => { it('should configure an instance of the Fp Agent', async () => { const loadOptions = getDefaultLoadOptions() const wrapper = createWrapper({ @@ -23,7 +20,7 @@ describe('FpProvider', () => { duration: 100, }, }) - renderHook(() => useContext(FpContext), { + renderHook(() => useContext(FingerprintContext), { wrapper, }) expect(mockStart).toHaveBeenCalledWith({ diff --git a/__tests__/helpers.tsx b/__tests__/helpers.tsx index 948e211c..d799b015 100644 --- a/__tests__/helpers.tsx +++ b/__tests__/helpers.tsx @@ -1,17 +1,17 @@ import { PropsWithChildren } from 'react' -import { FpProvider, FpProviderOptions } from '../src' -import { act } from 'react-dom/test-utils' +import { FingerprintProvider, FingerprintProviderOptions } from '../src' +import { act } from '@testing-library/react' export const getDefaultLoadOptions = () => ({ apiKey: 'test_api_key', }) export const createWrapper = - (providerProps: Partial = {}) => + (providerProps: Partial = {}) => ({ children }: PropsWithChildren<{}>) => ( - + {children} - + ) export const wait = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms)) diff --git a/__tests__/use-visitor-data.test.tsx b/__tests__/use-visitor-data.test.tsx index 4abd1b02..601342f1 100644 --- a/__tests__/use-visitor-data.test.tsx +++ b/__tests__/use-visitor-data.test.tsx @@ -1,10 +1,11 @@ import { useVisitorData, UseVisitorDataReturn } from '../src' -import { render, renderHook } from '@testing-library/react' -import { actWait, createWrapper } from './helpers' -import { act } from 'react-dom/test-utils' +import { act, render, renderHook } from '@testing-library/react' +import { actWait, createWrapper, wait } from './helpers' import { useEffect, useState } from 'react' import userEvent from '@testing-library/user-event' +import * as agent from '@fingerprint/agent' import { GetResult } from '@fingerprint/agent' +import { beforeEach, describe, expect, it, vi } from 'vitest' const mockGetResult = { visitor_id: 'kOzFgO0kw2Eivvb14mRL', @@ -14,23 +15,19 @@ const mockGetResult = { suspect_score: 0.5, } satisfies GetResult -const mockGet = jest.fn() +const mockGet = vi.fn() const mockAgent = { get: mockGet, + collect: vi.fn(), } -const mockStart = jest.requireMock('@fingerprint/agent').start as jest.Mock +vi.mock('@fingerprint/agent', { spy: true }) -jest.mock('@fingerprint/agent', () => { - return { - ...jest.requireActual('@fingerprint/agent'), - start: jest.fn(), - } -}) +const mockStart = vi.mocked(agent.start) describe('useVisitorData', () => { beforeEach(() => { - jest.resetAllMocks() + vi.resetAllMocks() mockStart.mockReturnValue(mockAgent) }) @@ -71,6 +68,35 @@ describe('useVisitorData', () => { ) }) + it('should avoid duplicate requests if one is already pending', async () => { + mockGet.mockImplementation(async () => { + await wait(250) + return mockGetResult + }) + + const wrapper = createWrapper() + const { result } = renderHook(() => useVisitorData({ immediate: false }), { wrapper }) + expect(result.current).toMatchObject( + expect.objectContaining({ + isLoading: false, + data: undefined, + }) + ) + + await Promise.all([result.current.getData(), result.current.getData()]) + + await actWait(500) + + expect(mockStart).toHaveBeenCalled() + expect(mockGet).toHaveBeenCalledTimes(1) + expect(result.current).toMatchObject( + expect.objectContaining({ + isLoading: false, + data: mockGetResult, + }) + ) + }) + it("shouldn't call getData on mount if 'immediate' option is set to false", async () => { mockGet.mockImplementation(() => mockGetResult) diff --git a/__tests__/with-environment.preact.test.tsx b/__tests__/with-environment.preact.test.tsx index 7bde8a12..c030424c 100644 --- a/__tests__/with-environment.preact.test.tsx +++ b/__tests__/with-environment.preact.test.tsx @@ -1,21 +1,23 @@ import { render as preactRender } from '@testing-library/preact' import { h } from 'preact' +import { describe, expect, it, vi, beforeEach, afterEach } from 'vitest' +import * as compat from 'preact/compat' describe('WithEnvironment', () => { describe('when running within Preact', () => { beforeEach(() => { - jest.doMock('react-dom', () => require('preact/compat')) - jest.doMock('react', () => require('preact/compat')) + vi.doMock('react', () => compat) + vi.doMock('react-dom', () => compat) }) afterEach(() => { - jest.resetModules() + vi.resetModules() }) - - it('should detect env as "preact"', () => { - const { WithEnvironment } = require('../src/components/with-environment') + it('should detect env as "preact"', async () => { + const { WithEnvironment } = await import('../src/components/with-environment') const PrintEnv = (props: any) => h('div', null, props?.env?.name) + // @ts-ignore const { container } = preactRender(h(WithEnvironment, null, h(PrintEnv, null))) expect(container.innerHTML).toContain('preact') diff --git a/__tests__/with-environment.test.tsx b/__tests__/with-environment.test.tsx index 427d0254..f8352c86 100644 --- a/__tests__/with-environment.test.tsx +++ b/__tests__/with-environment.test.tsx @@ -4,10 +4,11 @@ import { WithEnvironment } from '../src/components/with-environment' import { Link, MemoryRouter, Route, Routes } from 'react-router-dom' import userEvent from '@testing-library/user-event' import { actWait } from './helpers' +import { describe, it, expect, vi } from 'vitest' describe('WithEnvironment', () => { it('enhances provided element with `env` prop', () => { - const Mock = jest.fn(() =>

foo
) as FunctionComponent + const Mock = vi.fn(() =>
foo
) as FunctionComponent render( diff --git a/contributing.md b/contributing.md index 01139fc1..d54a17b6 100644 --- a/contributing.md +++ b/contributing.md @@ -16,9 +16,7 @@ There are 4 demo pages for this integration: 4. In `/examples/preact` folder. It is a demo built with Preact. You can find more info about configuration and starting demo in the [readme](examples/preact/README.md). 5. In `/examples/webpack-based` folder. It is a simple demo built with raw webpack. -If you want to test integration with [fingerprintjs-pro-spa](https://github.com/fingerprintjs/fingerprintjs-pro-spa), just [link the package](https://pnpm.io/cli/link#replace-an-installed-package-with-a-local-version-of-it) with the `pnpm link `. - -❗ Build projects before testing integration. First build `fingerprintjs-pro-spa`, then `fingerprintjs-pro-react`, and then start spa example app. +❗ Build projects before testing integration. First build `fingerprintjs-pro-react`, and then start any of the example apps. ### How to build @@ -44,7 +42,7 @@ pnpm lint:fix ### How to test -Tests are located in `__tests__` folder and run by [jest](https://jestjs.io/) in [jsdom](https://github.com/jsdom/jsdom) environment. +Tests are located in `__tests__` folder and run by [vitest](https://vitest.dev/) in [jsdom](https://github.com/jsdom/jsdom) environment. To run tests you can use IDE instruments or just run: diff --git a/examples/create-react-app/package.json b/examples/create-react-app/package.json index a0944e23..c9ffb619 100644 --- a/examples/create-react-app/package.json +++ b/examples/create-react-app/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "dependencies": { - "@fingerprintjs/fingerprintjs-pro-react": "workspace:*", + "@fingerprint/react": "workspace:*", "react-router-dom": "^6.22.3", "react-scripts": "5.0.1" }, diff --git a/examples/create-react-app/src/in_memory_cache/InMemoryCache.tsx b/examples/create-react-app/src/in_memory_cache/InMemoryCache.tsx index eac5950c..0e552a59 100644 --- a/examples/create-react-app/src/in_memory_cache/InMemoryCache.tsx +++ b/examples/create-react-app/src/in_memory_cache/InMemoryCache.tsx @@ -1,11 +1,11 @@ -import { FpProvider } from '@fingerprintjs/fingerprintjs-pro-react' +import { FingerprintProvider } from '@fingerprint/react' import { Outlet } from 'react-router-dom' import { FPJS_API_KEY } from '../shared/utils/env' import { Nav } from '../shared/components/Nav' function InMemoryCache() { return ( - +

Solution with an in-memory cache

@@ -16,7 +16,7 @@ function InMemoryCache() {
-
+ ) } diff --git a/examples/create-react-app/src/local_storage_cache/LocalStorageCache.tsx b/examples/create-react-app/src/local_storage_cache/LocalStorageCache.tsx index 7bf4aa92..0524e684 100644 --- a/examples/create-react-app/src/local_storage_cache/LocalStorageCache.tsx +++ b/examples/create-react-app/src/local_storage_cache/LocalStorageCache.tsx @@ -1,11 +1,11 @@ import { Outlet } from 'react-router-dom' import { Nav } from '../shared/components/Nav' import { FPJS_API_KEY } from '../shared/utils/env' -import { FpProvider } from '@fingerprintjs/fingerprintjs-pro-react' +import { FingerprintProvider } from '@fingerprint/react' function LocalStorageCache() { return ( - - + ) } diff --git a/examples/create-react-app/src/no_cache/WithoutCache.tsx b/examples/create-react-app/src/no_cache/WithoutCache.tsx index 56a5e32d..829e8e2e 100644 --- a/examples/create-react-app/src/no_cache/WithoutCache.tsx +++ b/examples/create-react-app/src/no_cache/WithoutCache.tsx @@ -1,11 +1,11 @@ -import { FpProvider } from '@fingerprintjs/fingerprintjs-pro-react' +import { FingerprintProvider } from '@fingerprint/react' import { Outlet } from 'react-router-dom' import { Nav } from '../shared/components/Nav' import { FPJS_API_KEY } from '../shared/utils/env' function WithoutCache() { return ( - +

Solution without cache

@@ -14,7 +14,7 @@ function WithoutCache() {
-
+ ) } diff --git a/examples/create-react-app/src/session_storage_cache/SessionStorageCache.tsx b/examples/create-react-app/src/session_storage_cache/SessionStorageCache.tsx index 6911835b..f76addca 100644 --- a/examples/create-react-app/src/session_storage_cache/SessionStorageCache.tsx +++ b/examples/create-react-app/src/session_storage_cache/SessionStorageCache.tsx @@ -1,11 +1,11 @@ -import { FpProvider } from '@fingerprintjs/fingerprintjs-pro-react' +import { FingerprintProvider } from '@fingerprint/react' import { Outlet } from 'react-router-dom' import { Nav } from '../shared/components/Nav' import { FPJS_API_KEY } from '../shared/utils/env' function SessionStorageCache() { return ( - +

Solution with a custom implementation of a session storage cache

@@ -14,7 +14,7 @@ function SessionStorageCache() {
-
+ ) } diff --git a/examples/create-react-app/src/shared/components/VisitorDataPresenter.tsx b/examples/create-react-app/src/shared/components/VisitorDataPresenter.tsx index 04d11d18..cf270bac 100644 --- a/examples/create-react-app/src/shared/components/VisitorDataPresenter.tsx +++ b/examples/create-react-app/src/shared/components/VisitorDataPresenter.tsx @@ -1,4 +1,4 @@ -import { GetResult } from '@fingerprintjs/fingerprintjs-pro-react' +import { GetResult } from '@fingerprint/react' function VisitorDataPresenter({ data, isLoading, error }: { data?: GetResult; isLoading?: boolean; error?: Error }) { if (error) { diff --git a/examples/create-react-app/src/shared/pages/HomePage.tsx b/examples/create-react-app/src/shared/pages/HomePage.tsx index f32657c4..15ccd0e1 100644 --- a/examples/create-react-app/src/shared/pages/HomePage.tsx +++ b/examples/create-react-app/src/shared/pages/HomePage.tsx @@ -1,7 +1,7 @@ import Toggler from '../components/Toggler' import VisitorDataPresenter from '../components/VisitorDataPresenter' import { useCallback } from 'react' -import { useVisitorData } from '@fingerprintjs/fingerprintjs-pro-react' +import { useVisitorData } from '@fingerprint/react' function HomePage() { const clearCache = useCallback(() => { diff --git a/examples/create-react-app/src/shared/pages/SignInPage.tsx b/examples/create-react-app/src/shared/pages/SignInPage.tsx index 3b35e758..e62f7092 100644 --- a/examples/create-react-app/src/shared/pages/SignInPage.tsx +++ b/examples/create-react-app/src/shared/pages/SignInPage.tsx @@ -1,5 +1,5 @@ import { useState } from 'react' -import { useVisitorData } from '@fingerprintjs/fingerprintjs-pro-react' +import { useVisitorData } from '@fingerprint/react' import VisitorDataPresenter from '../components/VisitorDataPresenter' function SignInPage() { diff --git a/examples/next-appDir/app/HomePage.tsx b/examples/next-appDir/app/HomePage.tsx index f8f22fe3..46b38a8c 100644 --- a/examples/next-appDir/app/HomePage.tsx +++ b/examples/next-appDir/app/HomePage.tsx @@ -1,7 +1,7 @@ 'use client' import styles from '../styles/Home.module.css' -import { useVisitorData } from '@fingerprintjs/fingerprintjs-pro-react' +import { useVisitorData } from '@fingerprint/react' import { useState } from 'react' const HomePage = () => { diff --git a/examples/next-appDir/app/layout.tsx b/examples/next-appDir/app/layout.tsx index 844552c0..2c913c8a 100644 --- a/examples/next-appDir/app/layout.tsx +++ b/examples/next-appDir/app/layout.tsx @@ -1,5 +1,5 @@ import '../styles/globals.css' -import { FpjsProvider } from '@fingerprintjs/fingerprintjs-pro-react' +import { FingerprintProvider } from '@fingerprint/react' import { PropsWithChildren } from 'react' const fpjsPublicApiKey = process.env.NEXT_PUBLIC_FPJS_PUBLIC_API_KEY as string @@ -8,13 +8,7 @@ function RootLayout({ children }: PropsWithChildren) { return ( - - {children} - + {children} ) diff --git a/examples/next-appDir/next-env.d.ts b/examples/next-appDir/next-env.d.ts index 4f11a03d..40c3d680 100644 --- a/examples/next-appDir/next-env.d.ts +++ b/examples/next-appDir/next-env.d.ts @@ -2,4 +2,4 @@ /// // NOTE: This file should not be edited -// see https://nextjs.org/docs/basic-features/typescript for more information. +// see https://nextjs.org/docs/app/building-your-application/configuring/typescript for more information. diff --git a/examples/next-appDir/package.json b/examples/next-appDir/package.json index a5cc7fda..ce23f84e 100644 --- a/examples/next-appDir/package.json +++ b/examples/next-appDir/package.json @@ -9,7 +9,7 @@ "lint": "next lint" }, "dependencies": { - "@fingerprintjs/fingerprintjs-pro-react": "workspace:*", + "@fingerprint/react": "workspace:*", "next": "14.2.32" }, "peerDependencies": { diff --git a/examples/next/package.json b/examples/next/package.json index c7e79a3d..3d7d35ac 100644 --- a/examples/next/package.json +++ b/examples/next/package.json @@ -9,7 +9,7 @@ "lint": "next lint" }, "dependencies": { - "@fingerprintjs/fingerprintjs-pro-react": "workspace:*", + "@fingerprint/react": "workspace:*", "next": "14.2.32" }, "peerDependencies": { diff --git a/examples/next/pages/_app.tsx b/examples/next/pages/_app.tsx index f1ee9fe7..f7aa0eaa 100644 --- a/examples/next/pages/_app.tsx +++ b/examples/next/pages/_app.tsx @@ -1,14 +1,14 @@ import '../styles/globals.css' import type { AppProps } from 'next/app' -import { FpProvider } from '@fingerprintjs/fingerprintjs-pro-react' +import { FingerprintProvider } from '@fingerprint/react' const fpjsPublicApiKey = process.env.NEXT_PUBLIC_FPJS_PUBLIC_API_KEY as string function MyApp({ Component, pageProps }: AppProps) { return ( - + - + ) } diff --git a/examples/next/pages/index.tsx b/examples/next/pages/index.tsx index 6277346f..53db6973 100644 --- a/examples/next/pages/index.tsx +++ b/examples/next/pages/index.tsx @@ -1,7 +1,7 @@ import type { NextPage } from 'next' import Head from 'next/head' import styles from '../styles/Home.module.css' -import { useVisitorData } from '@fingerprintjs/fingerprintjs-pro-react' +import { useVisitorData } from '@fingerprint/react' const Home: NextPage = () => { const { isLoading, error, data } = useVisitorData({ immediate: true }) diff --git a/examples/preact/package.json b/examples/preact/package.json index 09fad122..83991956 100644 --- a/examples/preact/package.json +++ b/examples/preact/package.json @@ -10,7 +10,7 @@ "lint": "eslint 'src/**/*.{js,jsx,ts,tsx}'" }, "dependencies": { - "@fingerprintjs/fingerprintjs-pro-react": "workspace:*", + "@fingerprint/react": "workspace:*", "preact": "10.19.6", "preact-render-to-string": "^6.4.0" }, diff --git a/examples/preact/src/components/app.tsx b/examples/preact/src/components/app.tsx index 0631af6e..28939f2f 100644 --- a/examples/preact/src/components/app.tsx +++ b/examples/preact/src/components/app.tsx @@ -1,5 +1,5 @@ import { FunctionalComponent } from 'preact' -import { useVisitorData } from '@fingerprintjs/fingerprintjs-pro-react' +import { useVisitorData } from '@fingerprint/react' import { useState } from 'preact/hooks' import { JSX } from 'preact/compat' diff --git a/examples/preact/src/index.tsx b/examples/preact/src/index.tsx index 53fcd2b5..ce1f5c1a 100644 --- a/examples/preact/src/index.tsx +++ b/examples/preact/src/index.tsx @@ -1,14 +1,14 @@ import { FunctionalComponent } from 'preact' import './style/index.css' import App from './components/app' -import { FpProvider } from '@fingerprintjs/fingerprintjs-pro-react' +import { FingerprintProvider } from '@fingerprint/react' const WrappedApp: FunctionalComponent = () => { const apiKey = process.env.PREACT_APP_FPJS_PUBLIC_API_KEY as string return ( - + - + ) } diff --git a/examples/vite/package.json b/examples/vite/package.json index 5f032067..de899391 100644 --- a/examples/vite/package.json +++ b/examples/vite/package.json @@ -10,7 +10,7 @@ "preview": "vite preview" }, "dependencies": { - "@fingerprintjs/fingerprintjs-pro-react": "workspace:*", + "@fingerprint/react": "workspace:*", "react": "^19.2.0", "react-dom": "^19.2.0" }, diff --git a/examples/vite/src/App.tsx b/examples/vite/src/App.tsx index a04398c8..5b9b35e6 100644 --- a/examples/vite/src/App.tsx +++ b/examples/vite/src/App.tsx @@ -1,4 +1,4 @@ -import { useVisitorData } from '@fingerprintjs/fingerprintjs-pro-react' +import { useVisitorData } from '@fingerprint/react' function App() { const { isLoading, error, isFetched, data } = useVisitorData() diff --git a/examples/vite/src/main.tsx b/examples/vite/src/main.tsx index f00ac65a..5d5114bc 100644 --- a/examples/vite/src/main.tsx +++ b/examples/vite/src/main.tsx @@ -2,14 +2,14 @@ import { StrictMode } from 'react' import { createRoot } from 'react-dom/client' import './index.css' import App from './App.tsx' -import { FpProvider } from '@fingerprintjs/fingerprintjs-pro-react' +import { FingerprintProvider } from '@fingerprint/react' const apiKey = import.meta.env.VITE_FPJS_PUBLIC_API_KEY createRoot(document.getElementById('root')!).render( - + - + ) diff --git a/examples/webpack-based/package.json b/examples/webpack-based/package.json index d38d60ed..cb9b429f 100644 --- a/examples/webpack-based/package.json +++ b/examples/webpack-based/package.json @@ -19,7 +19,7 @@ "webpack-dev-server": "^5.0.3" }, "dependencies": { - "@fingerprintjs/fingerprintjs-pro-react": "workspace:*" + "@fingerprint/react": "workspace:*" }, "peerDependencies": { "react": "*", diff --git a/examples/webpack-based/src/App.js b/examples/webpack-based/src/App.js index 02d375a7..b437892f 100644 --- a/examples/webpack-based/src/App.js +++ b/examples/webpack-based/src/App.js @@ -1,4 +1,4 @@ -import { useVisitorData } from '@fingerprintjs/fingerprintjs-pro-react' +import { useVisitorData } from '@fingerprint/react' function App() { const { isLoading, error, data } = useVisitorData() diff --git a/examples/webpack-based/src/index.js b/examples/webpack-based/src/index.js index a9d4fe5d..3ba95769 100644 --- a/examples/webpack-based/src/index.js +++ b/examples/webpack-based/src/index.js @@ -1,6 +1,6 @@ import React from 'react' import { createRoot } from 'react-dom/client' -import { FpProvider } from '@fingerprintjs/fingerprintjs-pro-react' +import { FingerprintProvider } from '@fingerprint/react' import App from './App' const rootElement = document.getElementById('root') @@ -9,8 +9,8 @@ const apiKey = process.env.REACT_APP_FPJS_PUBLIC_API_KEY root.render( - + - + ) diff --git a/jest.config.js b/jest.config.js deleted file mode 100644 index 495b28f8..00000000 --- a/jest.config.js +++ /dev/null @@ -1,8 +0,0 @@ -/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'jsdom', - testRegex: '/__tests__/.+test.tsx?$', - collectCoverageFrom: ['./src/**/**.{ts,tsx}'], - coverageReporters: ['lcov', 'json-summary', ['text', { file: 'coverage.txt', path: './' }]], -} diff --git a/package.json b/package.json index ad065407..0990db8f 100644 --- a/package.json +++ b/package.json @@ -1,16 +1,15 @@ { - "name": "@fingerprintjs/fingerprintjs-pro-react", + "name": "@fingerprint/react", "version": "3.0.0-test.2", "description": "FingerprintJS Pro React SDK", - "main": "dist/fp-pro-react.cjs.js", - "module": "dist/fp-pro-react.esm.js", - "types": "dist/fp-pro-react.d.ts", + "main": "dist/fingerprint-react.js", + "module": "dist/fingerprint-react.mjs", + "types": "dist/fingerprint-react.d.ts", "exports": { ".": { - "types": "./dist/fp-pro-react.d.ts", - "import": "./dist/fp-pro-react.esm.js", - "require": "./dist/fp-pro-react.cjs.js", - "node": "./dist/fp-pro-react.esm.js" + "types": "./dist/fingerprint-react.d.ts", + "import": "./dist/fingerprint-react.mjs", + "require": "./dist/fingerprint-react.js" } }, "keywords": [ @@ -28,14 +27,15 @@ "scripts": { "postinstall": "node scripts/detect-env.js", "prepare": "husky install", - "watch": "rollup -c rollup.config.js -w", - "build": "rimraf dist && rollup -c rollup.config.js --bundleConfigAsCjs", + "watch": "vite build --watch", + "build": "vite build", "start:spa": "pnpm start --prefix=examples/spa", "lint": "eslint --ext .js,.ts,.tsx --ignore-path .gitignore --max-warnings 0 .", "lint:fix": "pnpm lint --fix", - "test": "jest", - "test:coverage": "jest --coverage", - "test:dts": "tsc --noEmit --isolatedModules dist/fp-pro-react.d.ts", + "test": "vitest", + "test:coverage": "vitest run --coverage", + "test:coverage:diff": "vitest run --coverage --reporter json --outputFile.json=report.json", + "test:dts": "tsc --noEmit --isolatedModules dist/fingerprint-react.d.ts", "docs": "typedoc src/index.ts --out docs" }, "files": [ @@ -53,7 +53,7 @@ }, "homepage": "https://github.com/fingerprintjs/fingerprintjs-pro-react#readme", "dependencies": { - "@fingerprint/agent": "4.0.0-beta.5", + "@fingerprint/agent": "^4.0.0", "fast-deep-equal": "3.1.3" }, "devDependencies": { @@ -63,15 +63,13 @@ "@fingerprintjs/eslint-config-dx-team": "^0.1.0", "@fingerprintjs/prettier-config-dx-team": "^0.2.0", "@fingerprintjs/tsconfig-dx-team": "^0.0.2", - "@rollup/plugin-json": "^6.1.0", - "@rollup/plugin-typescript": "^11.1.6", - "@testing-library/preact": "^3.2.3", - "@testing-library/react": "^14.2.1", - "@testing-library/user-event": "^14.5.2", - "@types/jest": "^29.5.12", + "@testing-library/preact": "^3.2.4", + "@testing-library/react": "^16.3.2", + "@testing-library/user-event": "^14.6.1", "@types/node": "^20.11.28", "@types/react": "^18.2.66", "@types/react-dom": "^18.2.22", + "@vitest/coverage-istanbul": "^4.0.18", "commitizen": "^4.3.0", "cz-conventional-changelog": "^3.3.0", "eslint": "8.57.0", @@ -80,23 +78,20 @@ "eslint-plugin-react": "7.34.0", "eslint-plugin-react-hooks": "^4.6.0", "husky": "^9.0.11", - "jest": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", "lint-staged": "^15.2.2", "preact": "^10.19.6", "react": "^18.2.0", "react-dom": "^18.2.0", "react-router-dom": "^6.22.3", "rimraf": "^5.0.5", - "rollup": "^4.43.0", "rollup-plugin-banner2": "^1.3.1", - "rollup-plugin-dts": "^6.2.1", - "rollup-plugin-license": "^3.6.0", - "rollup-plugin-peer-deps-external": "^2.2.4", - "ts-jest": "^29.1.2", "tslib": "^2.6.2", "typedoc": "^0.25.12", - "typescript": "^5.4.2" + "typescript": "^5.4.2", + "vite": "^7.3.0", + "vite-plugin-banner": "^0.8.1", + "vite-plugin-dts": "^4.5.4", + "vitest": "^4.0.18" }, "lint-staged": { "*.ts": "pnpm lint:fix", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9ef20074..02621474 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@fingerprint/agent': - specifier: 4.0.0-beta.5 - version: 4.0.0-beta.5 + specifier: ^4.0.0 + version: 4.0.0 fast-deep-equal: specifier: 3.1.3 version: 3.1.3 @@ -33,24 +33,15 @@ importers: '@fingerprintjs/tsconfig-dx-team': specifier: ^0.0.2 version: 0.0.2 - '@rollup/plugin-json': - specifier: ^6.1.0 - version: 6.1.0(rollup@4.43.0) - '@rollup/plugin-typescript': - specifier: ^11.1.6 - version: 11.1.6(rollup@4.43.0)(tslib@2.6.2)(typescript@5.4.2) '@testing-library/preact': - specifier: ^3.2.3 - version: 3.2.3(preact@10.19.6) + specifier: ^3.2.4 + version: 3.2.4(preact@10.19.6) '@testing-library/react': - specifier: ^14.2.1 - version: 14.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: ^16.3.2 + version: 16.3.2(@testing-library/dom@9.3.4)(@types/react-dom@18.2.22)(@types/react@18.2.66)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@testing-library/user-event': - specifier: ^14.5.2 - version: 14.5.2(@testing-library/dom@9.3.4) - '@types/jest': - specifier: ^29.5.12 - version: 29.5.12 + specifier: ^14.6.1 + version: 14.6.1(@testing-library/dom@9.3.4) '@types/node': specifier: ^20.11.28 version: 20.11.28 @@ -60,6 +51,9 @@ importers: '@types/react-dom': specifier: ^18.2.22 version: 18.2.22 + '@vitest/coverage-istanbul': + specifier: ^4.0.18 + version: 4.0.18(vitest@4.0.18(@types/node@20.11.28)(jiti@1.21.0)(jsdom@16.7.0)(terser@5.43.1)) commitizen: specifier: ^4.3.0 version: 4.3.0(@types/node@20.11.28)(typescript@5.4.2) @@ -74,7 +68,7 @@ importers: version: 14.1.3(eslint@8.57.0)(typescript@5.4.2) eslint-config-preact: specifier: ^1.3.0 - version: 1.3.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@6.19.1(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(jest@27.5.1)(typescript@5.4.2) + version: 1.3.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@6.19.1(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(typescript@5.4.2) eslint-plugin-react: specifier: 7.34.0 version: 7.34.0(eslint@8.57.0) @@ -84,12 +78,6 @@ importers: husky: specifier: ^9.0.11 version: 9.0.11 - jest: - specifier: ^27.5.1 - version: 27.5.1 - jest-environment-jsdom: - specifier: ^27.5.1 - version: 27.5.1 lint-staged: specifier: ^15.2.2 version: 15.2.2 @@ -108,24 +96,9 @@ importers: rimraf: specifier: ^5.0.5 version: 5.0.5 - rollup: - specifier: ^4.43.0 - version: 4.43.0 rollup-plugin-banner2: specifier: ^1.3.1 version: 1.3.1 - rollup-plugin-dts: - specifier: ^6.2.1 - version: 6.2.1(rollup@4.43.0)(typescript@5.4.2) - rollup-plugin-license: - specifier: ^3.6.0 - version: 3.6.0(picomatch@4.0.3)(rollup@4.43.0) - rollup-plugin-peer-deps-external: - specifier: ^2.2.4 - version: 2.2.4(rollup@4.43.0) - ts-jest: - specifier: ^29.1.2 - version: 29.1.2(@babel/core@7.24.0)(@jest/types@29.6.3)(jest@27.5.1)(typescript@5.4.2) tslib: specifier: ^2.6.2 version: 2.6.2 @@ -135,10 +108,22 @@ importers: typescript: specifier: ^5.4.2 version: 5.4.2 + vite: + specifier: ^7.3.0 + version: 7.3.0(@types/node@20.11.28)(jiti@1.21.0)(terser@5.43.1) + vite-plugin-banner: + specifier: ^0.8.1 + version: 0.8.1 + vite-plugin-dts: + specifier: ^4.5.4 + version: 4.5.4(@types/node@20.11.28)(rollup@4.43.0)(typescript@5.4.2)(vite@7.3.0(@types/node@20.11.28)(jiti@1.21.0)(terser@5.43.1)) + vitest: + specifier: ^4.0.18 + version: 4.0.18(@types/node@20.11.28)(jiti@1.21.0)(jsdom@16.7.0)(terser@5.43.1) examples/create-react-app: dependencies: - '@fingerprintjs/fingerprintjs-pro-react': + '@fingerprint/react': specifier: workspace:* version: link:../.. react: @@ -159,7 +144,7 @@ importers: examples/next: dependencies: - '@fingerprintjs/fingerprintjs-pro-react': + '@fingerprint/react': specifier: workspace:* version: link:../.. '@types/node': @@ -186,7 +171,7 @@ importers: examples/next-appDir: dependencies: - '@fingerprintjs/fingerprintjs-pro-react': + '@fingerprint/react': specifier: workspace:* version: link:../.. '@types/node': @@ -213,21 +198,21 @@ importers: examples/preact: dependencies: - '@fingerprintjs/fingerprintjs-pro-react': + '@fingerprint/react': specifier: workspace:* version: link:../.. '@typescript-eslint/eslint-plugin': specifier: '*' - version: 7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(typescript@5.4.2) + version: 7.2.0(@typescript-eslint/parser@7.2.0(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3) '@typescript-eslint/parser': specifier: '*' - version: 7.2.0(eslint@8.57.0)(typescript@5.4.2) + version: 7.2.0(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3) eslint: specifier: '*' - version: 8.57.0 + version: 9.39.2(jiti@1.21.0) eslint-config-preact: specifier: '*' - version: 1.3.0(@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(jest@27.5.1)(typescript@5.4.2) + version: 1.3.0(@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3) preact: specifier: 10.19.6 version: 10.19.6 @@ -236,21 +221,21 @@ importers: version: 6.4.0(preact@10.19.6) typescript: specifier: '*' - version: 5.4.2 + version: 5.9.3 devDependencies: dotenv: specifier: ^16.4.5 version: 16.4.5 preact-cli: specifier: ^3.5.1 - version: 3.5.1(@types/babel__core@7.20.5)(eslint@8.57.0)(preact-render-to-string@6.4.0(preact@10.19.6))(preact@10.19.6)(typescript@5.4.2) + version: 3.5.1(@types/babel__core@7.20.5)(eslint@9.39.2(jiti@1.21.0))(preact-render-to-string@6.4.0(preact@10.19.6))(preact@10.19.6)(typescript@5.9.3) sirv-cli: specifier: ^2.0.2 version: 2.0.2 examples/vite: dependencies: - '@fingerprintjs/fingerprintjs-pro-react': + '@fingerprint/react': specifier: workspace:* version: link:../.. react: @@ -299,7 +284,7 @@ importers: examples/webpack-based: dependencies: - '@fingerprintjs/fingerprintjs-pro-react': + '@fingerprint/react': specifier: workspace:* version: link:../.. react: @@ -1575,8 +1560,8 @@ packages: resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@fingerprint/agent@4.0.0-beta.5': - resolution: {integrity: sha512-XtylYPFIv5lh2x6iXTjOeZmQy1UYFaEhDxwtCk/mPUExOOb/htWt617q9XQb4ShoHta+BTsh63yeFHrWTYFzYQ==} + '@fingerprint/agent@4.0.0': + resolution: {integrity: sha512-GdFdBeaDqLc3hVQLcxPwckk+1217raR/ouxBkGXSykxAswl1xxrt6GLaR93cKY8ehjp7ZFYSjSu4aLKUesgvIg==} '@fingerprintjs/commit-lint-dx-team@0.0.2': resolution: {integrity: sha512-8FDlPI+KhnWsfbf4Lo/TERdiHl9daMhnZb4MsV5nhrta13XXGRSxOvLPUnFmZA0FsxR4HHzpszlr7ZSoPVaLSg==} @@ -1623,6 +1608,14 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} + '@isaacs/balanced-match@4.0.1': + resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} + engines: {node: 20 || >=22} + + '@isaacs/brace-expansion@5.0.0': + resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} + engines: {node: 20 || >=22} + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -1656,10 +1649,6 @@ packages: resolution: {integrity: sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - '@jest/expect-utils@29.7.0': - resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/fake-timers@27.5.1': resolution: {integrity: sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -1681,10 +1670,6 @@ packages: resolution: {integrity: sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/source-map@27.5.1': resolution: {integrity: sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -1713,10 +1698,6 @@ packages: resolution: {integrity: sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - '@jest/types@29.6.3': - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} @@ -1741,12 +1722,6 @@ packages: '@jridgewell/source-map@0.3.6': resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} @@ -1756,6 +1731,9 @@ packages: '@jridgewell/trace-mapping@0.3.30': resolution: {integrity: sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==} + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@jsonjoy.com/base64@1.1.2': resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} engines: {node: '>=10.0'} @@ -1780,6 +1758,19 @@ packages: '@mdn/browser-compat-data@5.5.15': resolution: {integrity: sha512-BWm+TMK60HSepXOZcu39bDs/2sJZVetHO5w0mkuxhpkZvz0G5yGAoyimfaru8g5nK6LXXUIeX6Uk/SWzOfph3g==} + '@microsoft/api-extractor-model@7.32.2': + resolution: {integrity: sha512-Ussc25rAalc+4JJs9HNQE7TuO9y6jpYQX9nWD1DhqUzYPBr3Lr7O9intf+ZY8kD5HnIqeIRJX7ccCT0QyBy2Ww==} + + '@microsoft/api-extractor@7.55.2': + resolution: {integrity: sha512-1jlWO4qmgqYoVUcyh+oXYRztZde/pAi7cSVzBz/rc+S7CoVzDasy8QE13dx6sLG4VRo8SfkkLbFORR6tBw4uGQ==} + hasBin: true + + '@microsoft/tsdoc-config@0.18.0': + resolution: {integrity: sha512-8N/vClYyfOH+l4fLkkr9+myAoR6M7akc8ntBJ4DJdWH2b09uVfr71+LTMpNyG19fNqWDg8KEDZhx5wxuqHyGjw==} + + '@microsoft/tsdoc@0.16.0': + resolution: {integrity: sha512-xgAyonlVVS+q7Vc7qLW0UrJU7rSFcETRWsqdXZtjzRU8dF+6CkozTK4V4y1LwOX7j8r/vHphjDeMeGI4tNGeGA==} + '@next/env@14.2.32': resolution: {integrity: sha512-n9mQdigI6iZ/DF6pCTwMKeWgF2e8lg7qgt5M7HXMLtyhZYMnf/u905M18sSpPmHL9MKp9JHo56C6jrD2EvWxng==} @@ -1803,24 +1794,28 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@next/swc-linux-arm64-musl@14.2.32': resolution: {integrity: sha512-tA6sIKShXtSJBTH88i0DRd6I9n3ZTirmwpwAqH5zdJoQF7/wlJXR8DkPmKwYl5mFWhEKr5IIa3LfpMW9RRwKmQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@next/swc-linux-x64-gnu@14.2.32': resolution: {integrity: sha512-7S1GY4TdnlGVIdeXXKQdDkfDysoIVFMD0lJuVVMeb3eoVjrknQ0JNN7wFlhCvea0hEk0Sd4D1hedVChDKfV2jw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@next/swc-linux-x64-musl@14.2.32': resolution: {integrity: sha512-OHHC81P4tirVa6Awk6eCQ6RBfWl8HpFsZtfEkMpJ5GjPsJ3nhPe6wKAJUZ/piC8sszUkAgv3fLflgzPStIwfWg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@next/swc-win32-arm64-msvc@14.2.32': resolution: {integrity: sha512-rORQjXsAFeX6TLYJrCG5yoIDj+NKq31Rqwn8Wpn/bkPNy5rTHvOXkW8mLFonItS7QC6M+1JIIcLe+vOCTOYpvg==} @@ -1942,15 +1937,6 @@ packages: '@types/babel__core': optional: true - '@rollup/plugin-json@6.1.0': - resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - '@rollup/plugin-node-resolve@11.2.1': resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} engines: {node: '>= 10.0.0'} @@ -1962,27 +1948,14 @@ packages: peerDependencies: rollup: ^1.20.0 || ^2.0.0 - '@rollup/plugin-typescript@11.1.6': - resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.14.0||^3.0.0||^4.0.0 - tslib: '*' - typescript: '>=3.7.0' - peerDependenciesMeta: - rollup: - optional: true - tslib: - optional: true - '@rollup/pluginutils@3.1.0': resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} engines: {node: '>= 8.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0 - '@rollup/pluginutils@5.1.0': - resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + '@rollup/pluginutils@5.3.0': + resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 @@ -2024,56 +1997,67 @@ packages: resolution: {integrity: sha512-gTJ/JnnjCMc15uwB10TTATBEhK9meBIY+gXP4s0sHD1zHOaIh4Dmy1X9wup18IiY9tTNk5gJc4yx9ctj/fjrIw==} cpu: [arm] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.43.0': resolution: {integrity: sha512-ZJ3gZynL1LDSIvRfz0qXtTNs56n5DI2Mq+WACWZ7yGHFUEirHBRt7fyIk0NsCKhmRhn7WAcjgSkSVVxKlPNFFw==} cpu: [arm] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.43.0': resolution: {integrity: sha512-8FnkipasmOOSSlfucGYEu58U8cxEdhziKjPD2FIa0ONVMxvl/hmONtX/7y4vGjdUhjcTHlKlDhw3H9t98fPvyA==} cpu: [arm64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.43.0': resolution: {integrity: sha512-KPPyAdlcIZ6S9C3S2cndXDkV0Bb1OSMsX0Eelr2Bay4EsF9yi9u9uzc9RniK3mcUGCLhWY9oLr6er80P5DE6XA==} cpu: [arm64] os: [linux] + libc: [musl] '@rollup/rollup-linux-loongarch64-gnu@4.43.0': resolution: {integrity: sha512-HPGDIH0/ZzAZjvtlXj6g+KDQ9ZMHfSP553za7o2Odegb/BEfwJcR0Sw0RLNpQ9nC6Gy8s+3mSS9xjZ0n3rhcYg==} cpu: [loong64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-powerpc64le-gnu@4.43.0': resolution: {integrity: sha512-gEmwbOws4U4GLAJDhhtSPWPXUzDfMRedT3hFMyRAvM9Mrnj+dJIFIeL7otsv2WF3D7GrV0GIewW0y28dOYWkmw==} cpu: [ppc64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.43.0': resolution: {integrity: sha512-XXKvo2e+wFtXZF/9xoWohHg+MuRnvO29TI5Hqe9xwN5uN8NKUYy7tXUG3EZAlfchufNCTHNGjEx7uN78KsBo0g==} cpu: [riscv64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-musl@4.43.0': resolution: {integrity: sha512-ruf3hPWhjw6uDFsOAzmbNIvlXFXlBQ4nk57Sec8E8rUxs/AI4HD6xmiiasOOx/3QxS2f5eQMKTAwk7KHwpzr/Q==} cpu: [riscv64] os: [linux] + libc: [musl] '@rollup/rollup-linux-s390x-gnu@4.43.0': resolution: {integrity: sha512-QmNIAqDiEMEvFV15rsSnjoSmO0+eJLoKRD9EAa9rrYNwO/XRCtOGM3A5A0X+wmG+XRrw9Fxdsw+LnyYiZWWcVw==} cpu: [s390x] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.43.0': resolution: {integrity: sha512-jAHr/S0iiBtFyzjhOkAics/2SrXE092qyqEg96e90L3t9Op8OTzS6+IX0Fy5wCt2+KqeHAkti+eitV0wvblEoQ==} cpu: [x64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-musl@4.43.0': resolution: {integrity: sha512-3yATWgdeXyuHtBhrLt98w+5fKurdqvs8B53LaoKD7P7H7FKOONLsBVMNl9ghPQZQuYcceV5CDyPfyfGpMWD9mQ==} cpu: [x64] os: [linux] + libc: [musl] '@rollup/rollup-win32-arm64-msvc@4.43.0': resolution: {integrity: sha512-wVzXp2qDSCOpcBCT5WRWLmpJRIzv23valvcTwMHEobkjippNf+C3ys/+wf07poPkeNix0paTNemB2XrHr2TnGw==} @@ -2093,12 +2077,39 @@ packages: '@rushstack/eslint-patch@1.7.2': resolution: {integrity: sha512-RbhOOTCNoCrbfkRyoXODZp75MlpiHMgbE5MEBZAnnnLyQNgrigEj4p0lzsMDyc1zVsJDLrivB58tgg3emX0eEA==} + '@rushstack/node-core-library@5.19.1': + resolution: {integrity: sha512-ESpb2Tajlatgbmzzukg6zyAhH+sICqJR2CNXNhXcEbz6UGCQfrKCtkxOpJTftWc8RGouroHG0Nud1SJAszvpmA==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + + '@rushstack/problem-matcher@0.1.1': + resolution: {integrity: sha512-Fm5XtS7+G8HLcJHCWpES5VmeMyjAKaWeyZU5qPzZC+22mPlJzAsOxymHiWIfuirtPckX3aptWws+K2d0BzniJA==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + + '@rushstack/rig-package@0.6.0': + resolution: {integrity: sha512-ZQmfzsLE2+Y91GF15c65L/slMRVhF6Hycq04D4TwtdGaUAbIXXg9c5pKA5KFU7M4QMaihoobp9JJYpYcaY3zOw==} + + '@rushstack/terminal@0.19.5': + resolution: {integrity: sha512-6k5tpdB88G0K7QrH/3yfKO84HK9ggftfUZ51p7fePyCE7+RLLHkWZbID9OFWbXuna+eeCFE7AkKnRMHMxNbz7Q==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + + '@rushstack/ts-command-line@5.1.5': + resolution: {integrity: sha512-YmrFTFUdHXblYSa+Xc9OO9FsL/XFcckZy0ycQ6q7VSBsVs5P0uD9vcges5Q9vctGlVdu27w+Ct6IuJ458V0cTQ==} + '@sinclair/typebox@0.24.51': resolution: {integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==} - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - '@sindresorhus/is@0.14.0': resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} engines: {node: '>=6'} @@ -2109,6 +2120,9 @@ packages: '@sinonjs/fake-timers@8.1.0': resolution: {integrity: sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==} + '@standard-schema/spec@1.1.0': + resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + '@surma/rollup-plugin-off-main-thread@2.2.3': resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} @@ -2186,21 +2200,29 @@ packages: resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} engines: {node: '>=14'} - '@testing-library/preact@3.2.3': - resolution: {integrity: sha512-y6Kklp1XK3f1X2fWCbujmJyzkf+1BgLYXNgAx21j9+D4CoqMTz5qC4SQufb1L6q/jxLGACzrQ90ewVOTBvHOfg==} + '@testing-library/preact@3.2.4': + resolution: {integrity: sha512-F+kJ243LP6VmEK1M809unzTE/ijg+bsMNuiRN0JEDIJBELKKDNhdgC/WrUSZ7klwJvtlO3wQZ9ix+jhObG07Fg==} engines: {node: '>= 12'} peerDependencies: preact: '>=10 || ^10.0.0-alpha.0 || ^10.0.0-beta.0' - '@testing-library/react@14.2.1': - resolution: {integrity: sha512-sGdjws32ai5TLerhvzThYFbpnF9XtL65Cjf+gB0Dhr29BGqK+mAeN7SURSdu+eqgET4ANcWoC7FQpkaiGvBr+A==} - engines: {node: '>=14'} + '@testing-library/react@16.3.2': + resolution: {integrity: sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g==} + engines: {node: '>=18'} peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 + '@testing-library/dom': ^10.0.0 + '@types/react': ^18.0.0 || ^19.0.0 + '@types/react-dom': ^18.0.0 || ^19.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@testing-library/user-event@14.5.2': - resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==} + '@testing-library/user-event@14.6.1': + resolution: {integrity: sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==} engines: {node: '>=12', npm: '>=6'} peerDependencies: '@testing-library/dom': '>=7.21.4' @@ -2213,6 +2235,9 @@ packages: resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} + '@types/argparse@1.0.38': + resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} + '@types/aria-query@5.0.4': resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} @@ -2237,6 +2262,9 @@ packages: '@types/bonjour@3.5.13': resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} + '@types/chai@5.2.3': + resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} + '@types/connect-history-api-fallback@1.5.4': resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} @@ -2246,6 +2274,9 @@ packages: '@types/conventional-commits-parser@5.0.0': resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} + '@types/deep-eql@4.0.2': + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + '@types/eslint-scope@3.7.7': resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} @@ -2300,9 +2331,6 @@ packages: '@types/istanbul-reports@3.0.4': resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - '@types/jest@29.5.12': - resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} - '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -2710,6 +2738,69 @@ packages: peerDependencies: vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 + '@vitest/coverage-istanbul@4.0.18': + resolution: {integrity: sha512-0OhjP30owEDihYTZGWuq20rNtV1RjjJs1Mv4MaZIKcFBmiLUXX7HJLX4fU7wE+Mrc3lQxI2HKq6WrSXi5FGuCQ==} + peerDependencies: + vitest: 4.0.18 + + '@vitest/expect@4.0.18': + resolution: {integrity: sha512-8sCWUyckXXYvx4opfzVY03EOiYVxyNrHS5QxX3DAIi5dpJAAkyJezHCP77VMX4HKA2LDT/Jpfo8i2r5BE3GnQQ==} + + '@vitest/mocker@4.0.18': + resolution: {integrity: sha512-HhVd0MDnzzsgevnOWCBj5Otnzobjy5wLBe4EdeeFGv8luMsGcYqDuFRMcttKWZA5vVO8RFjexVovXvAM4JoJDQ==} + peerDependencies: + msw: ^2.4.9 + vite: ^6.0.0 || ^7.0.0-0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + + '@vitest/pretty-format@4.0.18': + resolution: {integrity: sha512-P24GK3GulZWC5tz87ux0m8OADrQIUVDPIjjj65vBXYG17ZeU3qD7r+MNZ1RNv4l8CGU2vtTRqixrOi9fYk/yKw==} + + '@vitest/runner@4.0.18': + resolution: {integrity: sha512-rpk9y12PGa22Jg6g5M3UVVnTS7+zycIGk9ZNGN+m6tZHKQb7jrP7/77WfZy13Y/EUDd52NDsLRQhYKtv7XfPQw==} + + '@vitest/snapshot@4.0.18': + resolution: {integrity: sha512-PCiV0rcl7jKQjbgYqjtakly6T1uwv/5BQ9SwBLekVg/EaYeQFPiXcgrC2Y7vDMA8dM1SUEAEV82kgSQIlXNMvA==} + + '@vitest/spy@4.0.18': + resolution: {integrity: sha512-cbQt3PTSD7P2OARdVW3qWER5EGq7PHlvE+QfzSC0lbwO+xnt7+XH06ZzFjFRgzUX//JmpxrCu92VdwvEPlWSNw==} + + '@vitest/utils@4.0.18': + resolution: {integrity: sha512-msMRKLMVLWygpK3u2Hybgi4MNjcYJvwTb0Ru09+fOyCXIgT5raYP041DRRdiJiI3k/2U6SEbAETB3YtBrUkCFA==} + + '@volar/language-core@2.4.27': + resolution: {integrity: sha512-DjmjBWZ4tJKxfNC1F6HyYERNHPYS7L7OPFyCrestykNdUZMFYzI9WTyvwPcaNaHlrEUwESHYsfEw3isInncZxQ==} + + '@volar/source-map@2.4.27': + resolution: {integrity: sha512-ynlcBReMgOZj2i6po+qVswtDUeeBRCTgDurjMGShbm8WYZgJ0PA4RmtebBJ0BCYol1qPv3GQF6jK7C9qoVc7lg==} + + '@volar/typescript@2.4.27': + resolution: {integrity: sha512-eWaYCcl/uAPInSK2Lze6IqVWaBu/itVqR5InXcHXFyles4zO++Mglt3oxdgj75BDcv1Knr9Y93nowS8U3wqhxg==} + + '@vue/compiler-core@3.5.27': + resolution: {integrity: sha512-gnSBQjZA+//qDZen+6a2EdHqJ68Z7uybrMf3SPjEGgG4dicklwDVmMC1AeIHxtLVPT7sn6sH1KOO+tS6gwOUeQ==} + + '@vue/compiler-dom@3.5.27': + resolution: {integrity: sha512-oAFea8dZgCtVVVTEC7fv3T5CbZW9BxpFzGGxC79xakTr6ooeEqmRuvQydIiDAkglZEAd09LgVf1RoDnL54fu5w==} + + '@vue/compiler-vue2@2.7.16': + resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} + + '@vue/language-core@2.2.0': + resolution: {integrity: sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@vue/shared@3.5.27': + resolution: {integrity: sha512-dXr/3CgqXsJkZ0n9F3I4elY8wM9jMJpP3pvRG52r6m0tu/MsAFIe6JpXVGeNMd/D9F4hQynWT8Rfuj0bdm9kFQ==} + '@webassemblyjs/ast@1.12.1': resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} @@ -2962,6 +3053,14 @@ packages: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} + ajv-draft-04@1.0.0: + resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} + peerDependencies: + ajv: ^8.5.0 + peerDependenciesMeta: + ajv: + optional: true + ajv-errors@1.0.1: resolution: {integrity: sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==} peerDependencies: @@ -2975,6 +3074,14 @@ packages: ajv: optional: true + ajv-formats@3.0.1: + resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + ajv-keywords@3.5.2: resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} peerDependencies: @@ -2991,9 +3098,15 @@ packages: ajv@8.12.0: resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + ajv@8.13.0: + resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} + ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + alien-signals@0.4.14: + resolution: {integrity: sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==} + alphanum-sort@1.0.2: resolution: {integrity: sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ==} @@ -3095,10 +3208,6 @@ packages: array-equal@1.0.2: resolution: {integrity: sha512-gUHx76KtnhEgB3HOuFYiCm3FIdEs6ocM2asHvNTkfu/Y09qQVrrVVaOKENmS2KkSaGoxgXNqC+ZVtR/n0MOkSA==} - array-find-index@1.0.2: - resolution: {integrity: sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==} - engines: {node: '>=0.10.0'} - array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} @@ -3167,6 +3276,10 @@ packages: assert@1.5.1: resolution: {integrity: sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==} + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + assign-symbols@1.0.0: resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} engines: {node: '>=0.10.0'} @@ -3425,10 +3538,6 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - bs-logger@0.2.6: - resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} - engines: {node: '>= 6'} - bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} @@ -3551,6 +3660,10 @@ packages: caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + chai@6.2.2: + resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} + engines: {node: '>=18'} + chalk@2.4.1: resolution: {integrity: sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==} engines: {node: '>=4'} @@ -3758,9 +3871,6 @@ packages: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} - commenting@1.1.0: - resolution: {integrity: sha512-YeNK4tavZwtH7jEgK1ZINXzLKm6DZdEMfsaaieOsCAN0S8vsY7UeuO3Q7d/M018EFgE+IeUAuBOKkFccBZsUZA==} - commitizen@4.3.0: resolution: {integrity: sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==} engines: {node: '>= 12'} @@ -3779,6 +3889,9 @@ packages: compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + compare-versions@6.1.1: + resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} + component-emitter@1.3.1: resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} @@ -3807,6 +3920,12 @@ packages: resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} engines: {'0': node >= 0.8} + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + + confbox@0.2.2: + resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} + configstore@5.0.1: resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} engines: {node: '>=8'} @@ -4167,6 +4286,9 @@ packages: resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==} engines: {node: '>=10'} + de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + debounce@1.2.1: resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} @@ -4333,9 +4455,9 @@ packages: resolution: {integrity: sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + diff@8.0.3: + resolution: {integrity: sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==} + engines: {node: '>=0.3.1'} diffie-hellman@5.0.3: resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} @@ -4521,6 +4643,10 @@ packages: entities@2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + entities@7.0.1: + resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} + engines: {node: '>=0.12'} + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -4566,9 +4692,6 @@ packages: resolution: {integrity: sha512-lh7BsUqelv4KUbR5a/ZTaGGIMLCjPGPqJ6q+Oq24YP0RdyptX1uzm4vvaqzk7Zx3bpl/76YLTTDj9L7uYQ92oQ==} engines: {node: '>= 0.4'} - es-module-lexer@1.4.1: - resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} - es-module-lexer@1.7.0: resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} @@ -4877,6 +5000,9 @@ packages: estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -4918,14 +5044,14 @@ packages: resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} engines: {node: '>=0.10.0'} + expect-type@1.3.0: + resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} + engines: {node: '>=12.0.0'} + expect@27.5.1: resolution: {integrity: sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - expect@29.7.0: - resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - express@4.18.3: resolution: {integrity: sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==} engines: {node: '>= 0.10.0'} @@ -4934,6 +5060,9 @@ packages: resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} engines: {node: '>= 0.10.0'} + exsolve@1.0.8: + resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} + extend-shallow@2.0.1: resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} engines: {node: '>=0.10.0'} @@ -4990,14 +5119,6 @@ packages: fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - fdir@6.4.6: - resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} @@ -5195,6 +5316,10 @@ packages: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} + fs-extra@11.3.3: + resolution: {integrity: sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==} + engines: {node: '>=14.14'} + fs-extra@9.1.0: resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} engines: {node: '>=10'} @@ -5699,6 +5824,10 @@ packages: resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==} engines: {node: '>=4'} + import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} + import-local@3.1.0: resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} engines: {node: '>=8'} @@ -6089,6 +6218,10 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} + istanbul-lib-instrument@6.0.3: + resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} + engines: {node: '>=10'} + istanbul-lib-report@3.0.1: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} @@ -6101,6 +6234,10 @@ packages: resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} engines: {node: '>=8'} + istanbul-reports@3.2.0: + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} + engines: {node: '>=8'} + iterator.prototype@1.1.2: resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} @@ -6144,10 +6281,6 @@ packages: resolution: {integrity: sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-docblock@27.5.1: resolution: {integrity: sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -6168,10 +6301,6 @@ packages: resolution: {integrity: sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-haste-map@27.5.1: resolution: {integrity: sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -6188,10 +6317,6 @@ packages: resolution: {integrity: sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - jest-matcher-utils@29.7.0: - resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-message-util@27.5.1: resolution: {integrity: sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -6200,10 +6325,6 @@ packages: resolution: {integrity: sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - jest-message-util@29.7.0: - resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-mock@27.5.1: resolution: {integrity: sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -6257,10 +6378,6 @@ packages: resolution: {integrity: sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-validate@27.5.1: resolution: {integrity: sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -6305,6 +6422,9 @@ packages: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true + jju@1.4.0: + resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -6445,6 +6565,9 @@ packages: resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} engines: {node: '>= 8'} + kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + language-subtag-registry@0.3.22: resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} @@ -6528,6 +6651,10 @@ packages: resolution: {integrity: sha512-XfegD5pyTAfb+GY6chk283Ox5z8WexG56OvM06RWLpAc/UHozO8X6xAxEkIitZOtsSMM1Yr3DkHgW5W+onLhCw==} engines: {node: '>=6'} + local-pkg@1.1.2: + resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==} + engines: {node: '>=14'} + locate-path@3.0.0: resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} engines: {node: '>=6'} @@ -6640,12 +6767,11 @@ packages: magic-string@0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - magic-string@0.30.17: - resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} - magic-string@0.30.8: - resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} - engines: {node: '>=12'} + magicast@0.5.1: + resolution: {integrity: sha512-xrHS24IxaLrvuo613F719wvOIv9xPHFWQHuvGUBmPnCA/3MQxKI3b+r7n1jAoDHmsbC5bRhTZYR77invLAxVnw==} make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} @@ -6659,9 +6785,6 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} - make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} @@ -6797,6 +6920,10 @@ packages: minimalistic-crypto-utils@1.0.1: resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + minimatch@10.0.3: + resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} + engines: {node: 20 || >=22} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -6869,8 +6996,8 @@ packages: engines: {node: '>=10'} hasBin: true - moment@2.30.1: - resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} + mlly@1.8.0: + resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} move-concurrently@1.0.1: resolution: {integrity: sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==} @@ -6893,6 +7020,9 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + multicast-dns@7.2.5: resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} hasBin: true @@ -6943,6 +7073,7 @@ packages: next@14.2.32: resolution: {integrity: sha512-fg5g0GZ7/nFc09X8wLe6pNSU8cLWbLRG3TZzPJ1BJvi2s9m7eF991se67wliM9kR5yLHRkyGKU49MMx58s3LJg==} engines: {node: '>=18.17.0'} + deprecated: This version has a security vulnerability. Please upgrade to a patched version. See https://nextjs.org/blog/security-update-2025-12-11 for more details. hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 @@ -7097,6 +7228,9 @@ packages: obuf@1.1.2: resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + obug@2.1.1: + resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} + on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -7204,10 +7338,6 @@ packages: resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==} engines: {node: '>=8'} - package-name-regex@2.0.6: - resolution: {integrity: sha512-gFL35q7kbE/zBaPA3UKhp2vSzcPYx2ecbYuwv1ucE9Il6IIgBDweBlH8D68UFGZic2MkllKa2KHCfC1IQBQUYA==} - engines: {node: '>=12'} - pako@1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} @@ -7263,6 +7393,9 @@ packages: path-browserify@0.0.1: resolution: {integrity: sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==} + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + path-dirname@1.0.2: resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} @@ -7307,6 +7440,9 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + pbkdf2@3.1.2: resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} engines: {node: '>=0.12'} @@ -7360,6 +7496,12 @@ packages: resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} engines: {node: '>=14.16'} + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + + pkg-types@2.3.0: + resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} + pkg-up@3.1.0: resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} engines: {node: '>=8'} @@ -8023,10 +8165,6 @@ packages: resolution: {integrity: sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - pretty-format@3.8.0: resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==} @@ -8127,6 +8265,9 @@ packages: resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} engines: {node: '>=0.6'} + quansync@0.2.11: + resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} + querystring-es3@0.2.1: resolution: {integrity: sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==} engines: {node: '>=0.4.x'} @@ -8478,24 +8619,6 @@ packages: resolution: {integrity: sha512-BUxYj2FbSCxgfyvln6f1AWG1n+b1ZUXXb/LkKpClB12CTIjwDFexWw35V/STz7xT+BLat475I204aRzpxRQwKg==} engines: {node: '>=12.13'} - rollup-plugin-dts@6.2.1: - resolution: {integrity: sha512-sR3CxYUl7i2CHa0O7bA45mCrgADyAQ0tVtGSqi3yvH28M+eg1+g5d7kQ9hLvEz5dorK3XVsH5L2jwHLQf72DzA==} - engines: {node: '>=16'} - peerDependencies: - rollup: ^3.29.4 || ^4 - typescript: ^4.5 || ^5.0 - - rollup-plugin-license@3.6.0: - resolution: {integrity: sha512-1ieLxTCaigI5xokIfszVDRoy6c/Wmlot1fDEnea7Q/WXSR8AqOjYljHDLObAx7nFxHC2mbxT3QnTSPhaic2IYw==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 - - rollup-plugin-peer-deps-external@2.2.4: - resolution: {integrity: sha512-AWdukIM1+k5JDdAqV/Cxd+nejvno2FVLVeZ74NKggm3Q5s9cbbcOgUPGdbxPi4BXu7xGaZ8HG12F+thImYu/0g==} - peerDependencies: - rollup: '*' - rollup-plugin-terser@7.0.2: resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser @@ -8639,6 +8762,11 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true + semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + semver@7.6.0: resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} engines: {node: '>=10'} @@ -8748,6 +8876,9 @@ packages: resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -8861,27 +8992,6 @@ packages: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} deprecated: Please use @jridgewell/sourcemap-codec instead - spdx-compare@1.0.0: - resolution: {integrity: sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==} - - spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - - spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - - spdx-expression-validate@2.0.0: - resolution: {integrity: sha512-b3wydZLM+Tc6CFvaRDBOF9d76oGIHNCLYFeHbftFXUWjnfZWganmDmvtM5sm1cRwJc/VDBMLyGGrsLFd1vOxbg==} - - spdx-license-ids@3.0.17: - resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} - - spdx-ranges@2.1.1: - resolution: {integrity: sha512-mcdpQFV7UDAgLpXEE/jOMqvK4LBoO0uTQg0uvXUewmEFhpiZx5yJSZITHB8w1ZahKdhfZqP5GPEOKLyEq5p8XA==} - - spdx-satisfies@5.0.1: - resolution: {integrity: sha512-Nwor6W6gzFp8XX4neaKQ7ChV4wmpSh2sSDemMFSzHxpTw460jxFYeOn+jq4ybnSSw/5sc3pjka9MQPouksQNpw==} - spdy-transport@3.0.0: resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} @@ -8923,6 +9033,9 @@ packages: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + stackframe@1.3.4: resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} @@ -8941,6 +9054,9 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} + std-env@3.10.0: + resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} + stealthy-require@1.1.1: resolution: {integrity: sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==} engines: {node: '>=0.10.0'} @@ -9275,14 +9391,25 @@ packages: timsort@0.3.0: resolution: {integrity: sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==} + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + tinydate@1.3.0: resolution: {integrity: sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w==} engines: {node: '>=4'} + tinyexec@1.0.2: + resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} + engines: {node: '>=18'} + tinyglobby@0.2.15: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} + tinyrainbow@3.0.3: + resolution: {integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==} + engines: {node: '>=14.0.0'} + tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} @@ -9370,27 +9497,6 @@ packages: ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - ts-jest@29.1.2: - resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==} - engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/types': ^29.0.0 - babel-jest: ^29.0.0 - esbuild: '*' - jest: ^29.0.0 - typescript: '>=4.3 <6' - peerDependenciesMeta: - '@babel/core': - optional: true - '@jest/types': - optional: true - babel-jest: - optional: true - esbuild: - optional: true - ts-pnp@1.2.0: resolution: {integrity: sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==} engines: {node: '>=6'} @@ -9500,11 +9606,19 @@ packages: engines: {node: '>=14.17'} hasBin: true + typescript@5.8.2: + resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} + engines: {node: '>=14.17'} + hasBin: true + typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} hasBin: true + ufo@1.6.3: + resolution: {integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==} + uglify-js@3.4.10: resolution: {integrity: sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==} engines: {node: '>=0.8.0'} @@ -9691,6 +9805,18 @@ packages: resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} engines: {'0': node >=0.6.0} + vite-plugin-banner@0.8.1: + resolution: {integrity: sha512-0+gGguHk3MH0HvzMSOCJC6fGgH4+jtY9KlKVZh+hwwE+PBkGVzY8xe657JL74vEgbeUJD37XjVqTrmve8XvZBQ==} + + vite-plugin-dts@4.5.4: + resolution: {integrity: sha512-d4sOM8M/8z7vRXHHq/ebbblfaxENjogAAekcfcDCCwAyvGqnPrc7f4NZbvItS+g4WTgerW0xDwSz5qz11JT3vg==} + peerDependencies: + typescript: '*' + vite: '*' + peerDependenciesMeta: + vite: + optional: true + vite@7.3.0: resolution: {integrity: sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -9731,6 +9857,40 @@ packages: yaml: optional: true + vitest@4.0.18: + resolution: {integrity: sha512-hOQuK7h0FGKgBAas7v0mSAsnvrIgAvWmRFjmzpJ7SwFHH3g1k2u37JtYwOwmEKhK6ZO3v9ggDBBm0La1LCK4uQ==} + engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@opentelemetry/api': ^1.9.0 + '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 + '@vitest/browser-playwright': 4.0.18 + '@vitest/browser-preview': 4.0.18 + '@vitest/browser-webdriverio': 4.0.18 + '@vitest/ui': 4.0.18 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@opentelemetry/api': + optional: true + '@types/node': + optional: true + '@vitest/browser-playwright': + optional: true + '@vitest/browser-preview': + optional: true + '@vitest/browser-webdriverio': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + vm-browserify@1.1.2: resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} @@ -9740,6 +9900,9 @@ packages: vscode-textmate@8.0.0: resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} + vscode-uri@3.1.0: + resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} + w3c-hr-time@1.0.2: resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} deprecated: Use your platform's native performance.now() and performance.timeOrigin. @@ -9927,6 +10090,7 @@ packages: whatwg-encoding@1.0.5: resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==} + deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation whatwg-fetch@3.6.20: resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} @@ -9968,6 +10132,11 @@ packages: engines: {node: '>= 8'} hasBin: true + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + widest-line@3.1.0: resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} engines: {node: '>=8'} @@ -10298,7 +10467,7 @@ snapshots: '@babel/parser': 7.28.5 '@babel/types': 7.28.5 '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 '@babel/helper-annotate-as-pure@7.22.5': @@ -10338,6 +10507,19 @@ snapshots: '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 + '@babel/helper-create-class-features-plugin@7.24.0(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@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.22.20(@babel/core@7.28.5) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -10345,22 +10527,51 @@ snapshots: regexpu-core: 5.3.2 semver: 6.3.1 + '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-annotate-as-pure': 7.22.5 + regexpu-core: 5.3.2 + semver: 6.3.1 + '@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 debug: 4.4.1 lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: - supports-color - '@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.0)': + '@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.28.5 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + debug: 4.4.1 + lodash.debounce: 4.0.8 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.27.1 + debug: 4.4.1 + lodash.debounce: 4.0.8 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.27.1 debug: 4.4.1 lodash.debounce: 4.0.8 resolve: 1.22.8 @@ -10382,7 +10593,7 @@ snapshots: '@babel/helper-member-expression-to-functions@7.23.0': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.28.5 '@babel/helper-module-imports@7.22.15': dependencies: @@ -10404,18 +10615,27 @@ snapshots: '@babel/helper-split-export-declaration': 7.22.6 '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-module-transforms@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color '@babel/helper-optimise-call-expression@7.22.5': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.28.5 '@babel/helper-plugin-utils@7.24.0': {} @@ -10428,6 +10648,13 @@ snapshots: '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 + '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-wrap-function': 7.22.20 + '@babel/helper-replace-supers@7.22.20(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -10435,6 +10662,13 @@ snapshots: '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers@7.22.20(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-simple-access@7.22.5': dependencies: '@babel/types': 7.24.0 @@ -10464,8 +10698,8 @@ snapshots: '@babel/helper-wrap-function@7.22.20': dependencies: '@babel/helper-function-name': 7.23.0 - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 '@babel/helpers@7.24.0': dependencies: @@ -10491,7 +10725,7 @@ snapshots: '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.0.0 + picocolors: 1.1.1 '@babel/parser@7.24.0': dependencies: @@ -10504,20 +10738,38 @@ snapshots: '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.24.0) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.28.5) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.24.0)': dependencies: @@ -10535,13 +10787,13 @@ snapshots: '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) '@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0) '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.24.0)': @@ -10556,7 +10808,7 @@ snapshots: '@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) @@ -10564,39 +10816,63 @@ snapshots: dependencies: '@babel/core': 7.24.0 '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/plugin-proposal-private-property-in-object@7.21.11(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.0) '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-decorators@7.24.0(@babel/core@7.24.0)': dependencies: @@ -10608,15 +10884,25 @@ snapshots: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-flow@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-flow@7.24.1(@babel/core@7.24.0)': dependencies: @@ -10626,22 +10912,42 @@ snapshots: '@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.0)': dependencies: @@ -10651,97 +10957,191 @@ snapshots: '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-async-generator-functions@7.23.9(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.0) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.0) + '@babel/plugin-transform-async-generator-functions@7.23.9(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.28.5) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.5) + '@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.0) + '@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.28.5) + '@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.0) + '@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.5) + '@babel/plugin-transform-classes@7.23.8(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -10749,61 +11149,119 @@ snapshots: '@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-plugin-utils': 7.27.1 '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.0) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 + '@babel/plugin-transform-classes@7.23.8(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@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.27.1 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.28.5) + '@babel/helper-split-export-declaration': 7.22.6 + globals: 11.12.0 + '@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/template': 7.24.0 + + '@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/template': 7.24.0 '@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.24.0) '@babel/plugin-transform-for-of@7.23.6(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + + '@babel/plugin-transform-for-of@7.23.6(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-transform-function-name@7.23.3(@babel/core@7.24.0)': @@ -10811,41 +11269,83 @@ snapshots: '@babel/core': 7.24.0 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-function-name@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-transform-literals@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-literals@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.0) + '@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-simple-access': 7.22.5 + + '@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-simple-access': 7.22.5 '@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.24.0)': @@ -10853,38 +11353,75 @@ snapshots: '@babel/core': 7.24.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-identifier': 7.22.20 + + '@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-identifier': 7.22.20 '@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-new-target@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-new-target@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0) + '@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-transform-object-assign@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 @@ -10895,62 +11432,114 @@ snapshots: '@babel/compat-data': 7.23.5 '@babel/core': 7.24.0 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.0) '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-transform-object-rest-spread@7.24.0(@babel/core@7.28.5)': + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.28.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-object-super@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.0) + '@babel/plugin-transform-object-super@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.28.5) + '@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-transform-parameters@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-parameters@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.0) + '@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.5) + '@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-react-constant-elements@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-react-display-name@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.0)': dependencies: @@ -10980,24 +11569,35 @@ snapshots: dependencies: '@babel/core': 7.24.0 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + regenerator-transform: 0.15.2 + + '@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 regenerator-transform: 0.15.2 '@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-runtime@7.24.0(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.0) babel-plugin-polyfill-corejs3: 0.9.0(@babel/core@7.24.0) babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.24.0) @@ -11008,59 +11608,108 @@ snapshots: '@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-spread@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + + '@babel/plugin-transform-spread@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-typescript@7.23.6(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.24.0) '@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 '@babel/preset-env@7.24.0(@babel/core@7.24.0)': dependencies: @@ -11148,10 +11797,103 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/preset-env@7.24.0(@babel/core@7.28.5)': + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.28.5 + '@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.23.3(@babel/core@7.28.5) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.28.5) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.5) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.5) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.5) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.5) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.5) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.5) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.5) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-async-generator-functions': 7.23.9(@babel/core@7.28.5) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.28.5) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.28.5) + '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.28.5) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.28.5) + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.28.5) + '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.28.5) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.28.5) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.28.5) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-modules-systemjs': 7.23.9(@babel/core@7.28.5) + '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.28.5) + '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.28.5) + '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.28.5) + '@babel/plugin-transform-object-rest-spread': 7.24.0(@babel/core@7.28.5) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.28.5) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.28.5) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.28.5) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.28.5) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.5) + babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.28.5) + babel-plugin-polyfill-corejs3: 0.9.0(@babel/core@7.28.5) + babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.28.5) + core-js-compat: 3.36.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.0)': dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/types': 7.24.0 + esutils: 2.0.3 + + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 '@babel/types': 7.24.0 esutils: 2.0.3 @@ -11202,7 +11944,7 @@ snapshots: '@babel/helper-split-export-declaration': 7.22.6 '@babel/parser': 7.24.0 '@babel/types': 7.24.0 - debug: 4.3.4 + debug: 4.4.1 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -11583,7 +12325,7 @@ snapshots: '@eslint/core': 0.17.0 levn: 0.4.1 - '@fingerprint/agent@4.0.0-beta.5': {} + '@fingerprint/agent@4.0.0': {} '@fingerprintjs/commit-lint-dx-team@0.0.2': dependencies: @@ -11635,6 +12377,12 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} + '@isaacs/balanced-match@4.0.1': {} + + '@isaacs/brace-expansion@5.0.0': + dependencies: + '@isaacs/balanced-match': 4.0.1 + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -11716,10 +12464,6 @@ snapshots: '@types/node': 20.11.28 jest-mock: 27.5.1 - '@jest/expect-utils@29.7.0': - dependencies: - jest-get-type: 29.6.3 - '@jest/fake-timers@27.5.1': dependencies: '@jest/types': 27.5.1 @@ -11769,10 +12513,6 @@ snapshots: dependencies: '@sinclair/typebox': 0.24.51 - '@jest/schemas@29.6.3': - dependencies: - '@sinclair/typebox': 0.27.8 - '@jest/source-map@27.5.1': dependencies: callsites: 3.1.0 @@ -11804,7 +12544,7 @@ snapshots: '@jest/transform@27.5.1': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.28.5 '@jest/types': 27.5.1 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 @@ -11839,30 +12579,21 @@ snapshots: '@types/yargs': 17.0.32 chalk: 4.1.2 - '@jest/types@29.6.3': - dependencies: - '@jest/schemas': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 20.11.28 - '@types/yargs': 17.0.32 - chalk: 4.1.2 - '@jridgewell/gen-mapping@0.3.13': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.30 '@jridgewell/remapping@2.3.5': dependencies: '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/resolve-uri@3.1.2': {} @@ -11875,25 +12606,26 @@ snapshots: '@jridgewell/source-map@0.3.6': dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/sourcemap-codec@1.4.15': {} - - '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.30 '@jridgewell/sourcemap-codec@1.5.5': {} '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.5 '@jridgewell/trace-mapping@0.3.30': dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + '@jsonjoy.com/base64@1.1.2(tslib@2.8.1)': dependencies: tslib: 2.8.1 @@ -11914,6 +12646,42 @@ snapshots: '@mdn/browser-compat-data@5.5.15': {} + '@microsoft/api-extractor-model@7.32.2(@types/node@20.11.28)': + dependencies: + '@microsoft/tsdoc': 0.16.0 + '@microsoft/tsdoc-config': 0.18.0 + '@rushstack/node-core-library': 5.19.1(@types/node@20.11.28) + transitivePeerDependencies: + - '@types/node' + + '@microsoft/api-extractor@7.55.2(@types/node@20.11.28)': + dependencies: + '@microsoft/api-extractor-model': 7.32.2(@types/node@20.11.28) + '@microsoft/tsdoc': 0.16.0 + '@microsoft/tsdoc-config': 0.18.0 + '@rushstack/node-core-library': 5.19.1(@types/node@20.11.28) + '@rushstack/rig-package': 0.6.0 + '@rushstack/terminal': 0.19.5(@types/node@20.11.28) + '@rushstack/ts-command-line': 5.1.5(@types/node@20.11.28) + diff: 8.0.3 + lodash: 4.17.21 + minimatch: 10.0.3 + resolve: 1.22.8 + semver: 7.5.4 + source-map: 0.6.1 + typescript: 5.8.2 + transitivePeerDependencies: + - '@types/node' + + '@microsoft/tsdoc-config@0.18.0': + dependencies: + '@microsoft/tsdoc': 0.16.0 + ajv: 8.12.0 + jju: 1.4.0 + resolve: 1.22.8 + + '@microsoft/tsdoc@0.16.0': {} + '@next/env@14.2.32': {} '@next/eslint-plugin-next@14.1.3': @@ -12024,21 +12792,15 @@ snapshots: '@rolldown/pluginutils@1.0.0-beta.53': {} - '@rollup/plugin-babel@5.3.1(@babel/core@7.24.0)(@types/babel__core@7.20.5)(rollup@2.79.2)': + '@rollup/plugin-babel@5.3.1(@babel/core@7.28.5)(@types/babel__core@7.20.5)(rollup@2.79.2)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.28.5 '@babel/helper-module-imports': 7.22.15 '@rollup/pluginutils': 3.1.0(rollup@2.79.2) rollup: 2.79.2 optionalDependencies: '@types/babel__core': 7.20.5 - '@rollup/plugin-json@6.1.0(rollup@4.43.0)': - dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.43.0) - optionalDependencies: - rollup: 4.43.0 - '@rollup/plugin-node-resolve@11.2.1(rollup@2.79.2)': dependencies: '@rollup/pluginutils': 3.1.0(rollup@2.79.2) @@ -12055,15 +12817,6 @@ snapshots: magic-string: 0.25.9 rollup: 2.79.2 - '@rollup/plugin-typescript@11.1.6(rollup@4.43.0)(tslib@2.6.2)(typescript@5.4.2)': - dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.43.0) - resolve: 1.22.8 - typescript: 5.4.2 - optionalDependencies: - rollup: 4.43.0 - tslib: 2.6.2 - '@rollup/pluginutils@3.1.0(rollup@2.79.2)': dependencies: '@types/estree': 0.0.39 @@ -12071,11 +12824,11 @@ snapshots: picomatch: 2.3.1 rollup: 2.79.2 - '@rollup/pluginutils@5.1.0(rollup@4.43.0)': + '@rollup/pluginutils@5.3.0(rollup@4.43.0)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 - picomatch: 2.3.1 + picomatch: 4.0.3 optionalDependencies: rollup: 4.43.0 @@ -12136,14 +12889,51 @@ snapshots: '@rollup/rollup-win32-ia32-msvc@4.43.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.43.0': - optional: true + '@rollup/rollup-win32-x64-msvc@4.43.0': + optional: true + + '@rushstack/eslint-patch@1.7.2': {} + + '@rushstack/node-core-library@5.19.1(@types/node@20.11.28)': + dependencies: + ajv: 8.13.0 + ajv-draft-04: 1.0.0(ajv@8.13.0) + ajv-formats: 3.0.1(ajv@8.13.0) + fs-extra: 11.3.3 + import-lazy: 4.0.0 + jju: 1.4.0 + resolve: 1.22.8 + semver: 7.5.4 + optionalDependencies: + '@types/node': 20.11.28 + + '@rushstack/problem-matcher@0.1.1(@types/node@20.11.28)': + optionalDependencies: + '@types/node': 20.11.28 + + '@rushstack/rig-package@0.6.0': + dependencies: + resolve: 1.22.8 + strip-json-comments: 3.1.1 - '@rushstack/eslint-patch@1.7.2': {} + '@rushstack/terminal@0.19.5(@types/node@20.11.28)': + dependencies: + '@rushstack/node-core-library': 5.19.1(@types/node@20.11.28) + '@rushstack/problem-matcher': 0.1.1(@types/node@20.11.28) + supports-color: 8.1.1 + optionalDependencies: + '@types/node': 20.11.28 - '@sinclair/typebox@0.24.51': {} + '@rushstack/ts-command-line@5.1.5(@types/node@20.11.28)': + dependencies: + '@rushstack/terminal': 0.19.5(@types/node@20.11.28) + '@types/argparse': 1.0.38 + argparse: 1.0.10 + string-argv: 0.3.2 + transitivePeerDependencies: + - '@types/node' - '@sinclair/typebox@0.27.8': {} + '@sinclair/typebox@0.24.51': {} '@sindresorhus/is@0.14.0': {} @@ -12155,6 +12945,8 @@ snapshots: dependencies: '@sinonjs/commons': 1.8.6 + '@standard-schema/spec@1.1.0': {} + '@surma/rollup-plugin-off-main-thread@2.2.3': dependencies: ejs: 3.1.9 @@ -12199,11 +12991,11 @@ snapshots: '@svgr/hast-util-to-babel-ast@5.5.0': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.28.5 '@svgr/plugin-jsx@5.5.0': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.28.5 '@svgr/babel-preset': 5.5.0 '@svgr/hast-util-to-babel-ast': 5.5.0 svg-parser: 2.0.4 @@ -12242,7 +13034,7 @@ snapshots: '@testing-library/dom@8.20.1': dependencies: - '@babel/code-frame': 7.23.5 + '@babel/code-frame': 7.27.1 '@babel/runtime': 7.24.0 '@types/aria-query': 5.0.4 aria-query: 5.1.3 @@ -12253,7 +13045,7 @@ snapshots: '@testing-library/dom@9.3.4': dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.27.1 '@babel/runtime': 7.24.0 '@types/aria-query': 5.0.4 aria-query: 5.1.3 @@ -12262,20 +13054,22 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/preact@3.2.3(preact@10.19.6)': + '@testing-library/preact@3.2.4(preact@10.19.6)': dependencies: '@testing-library/dom': 8.20.1 preact: 10.19.6 - '@testing-library/react@14.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@testing-library/react@16.3.2(@testing-library/dom@9.3.4)(@types/react-dom@18.2.22)(@types/react@18.2.66)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.24.0 '@testing-library/dom': 9.3.4 - '@types/react-dom': 18.2.22 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) + optionalDependencies: + '@types/react': 18.2.66 + '@types/react-dom': 18.2.22 - '@testing-library/user-event@14.5.2(@testing-library/dom@9.3.4)': + '@testing-library/user-event@14.6.1(@testing-library/dom@9.3.4)': dependencies: '@testing-library/dom': 9.3.4 @@ -12283,28 +13077,30 @@ snapshots: '@trysound/sax@0.2.0': {} + '@types/argparse@1.0.38': {} + '@types/aria-query@5.0.4': {} '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.24.0 - '@babel/types': 7.24.0 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.5 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.28.5 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.24.0 - '@babel/types': 7.24.0 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 '@types/babel__traverse@7.20.5': dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.28.5 '@types/body-parser@1.19.5': dependencies: @@ -12320,6 +13116,11 @@ snapshots: dependencies: '@types/node': 20.11.28 + '@types/chai@5.2.3': + dependencies: + '@types/deep-eql': 4.0.2 + assertion-error: 2.0.1 + '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 4.19.6 @@ -12333,6 +13134,8 @@ snapshots: dependencies: '@types/node': 20.11.28 + '@types/deep-eql@4.0.2': {} + '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 9.6.1 @@ -12403,11 +13206,6 @@ snapshots: dependencies: '@types/istanbul-lib-report': 3.0.3 - '@types/jest@29.5.12': - dependencies: - expect: 29.7.0 - pretty-format: 29.7.0 - '@types/json-schema@7.0.15': {} '@types/json5@0.0.29': {} @@ -12609,23 +13407,23 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(typescript@5.4.2)': + '@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/parser': 7.2.0(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3) '@typescript-eslint/scope-manager': 7.2.0 - '@typescript-eslint/type-utils': 7.2.0(eslint@8.57.0)(typescript@5.4.2) - '@typescript-eslint/utils': 7.2.0(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/type-utils': 7.2.0(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3) + '@typescript-eslint/utils': 7.2.0(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3) '@typescript-eslint/visitor-keys': 7.2.0 debug: 4.3.4 - eslint: 8.57.0 + eslint: 9.39.2(jiti@1.21.0) graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 semver: 7.6.0 - ts-api-utils: 1.3.0(typescript@5.4.2) + ts-api-utils: 1.3.0(typescript@5.9.3) optionalDependencies: - typescript: 5.4.2 + typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -12661,6 +13459,14 @@ snapshots: - supports-color - typescript + '@typescript-eslint/experimental-utils@5.62.0(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3)': + dependencies: + '@typescript-eslint/utils': 5.62.0(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3) + eslint: 9.39.2(jiti@1.21.0) + transitivePeerDependencies: + - supports-color + - typescript + '@typescript-eslint/parser@5.62.0(eslint@9.39.2(jiti@1.21.0))(typescript@5.4.2)': dependencies: '@typescript-eslint/scope-manager': 5.62.0 @@ -12699,16 +13505,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.2)': + '@typescript-eslint/parser@7.2.0(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3)': dependencies: '@typescript-eslint/scope-manager': 7.2.0 '@typescript-eslint/types': 7.2.0 - '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.4.2) + '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.9.3) '@typescript-eslint/visitor-keys': 7.2.0 debug: 4.3.4 - eslint: 8.57.0 + eslint: 9.39.2(jiti@1.21.0) optionalDependencies: - typescript: 5.4.2 + typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -12791,7 +13597,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 6.19.1(typescript@5.4.2) '@typescript-eslint/utils': 6.19.1(eslint@8.56.0)(typescript@5.4.2) - debug: 4.3.4 + debug: 4.4.1 eslint: 8.56.0 ts-api-utils: 1.3.0(typescript@5.4.2) optionalDependencies: @@ -12799,15 +13605,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@7.2.0(eslint@8.57.0)(typescript@5.4.2)': + '@typescript-eslint/type-utils@7.2.0(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3)': dependencies: - '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.4.2) - '@typescript-eslint/utils': 7.2.0(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.9.3) + '@typescript-eslint/utils': 7.2.0(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3) debug: 4.3.4 - eslint: 8.57.0 - ts-api-utils: 1.3.0(typescript@5.4.2) + eslint: 9.39.2(jiti@1.21.0) + ts-api-utils: 1.3.0(typescript@5.9.3) optionalDependencies: - typescript: 5.4.2 + typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -12847,11 +13653,25 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/typescript-estree@5.62.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + debug: 4.4.1 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.6.0 + tsutils: 3.21.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/typescript-estree@6.19.1(typescript@5.4.2)': dependencies: '@typescript-eslint/types': 6.19.1 '@typescript-eslint/visitor-keys': 6.19.1 - debug: 4.3.4 + debug: 4.4.1 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 @@ -12866,7 +13686,7 @@ snapshots: dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.4 + debug: 4.4.1 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 @@ -12877,18 +13697,18 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@7.2.0(typescript@5.4.2)': + '@typescript-eslint/typescript-estree@7.2.0(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 7.2.0 '@typescript-eslint/visitor-keys': 7.2.0 - debug: 4.3.4 + debug: 4.4.1 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 semver: 7.6.0 - ts-api-utils: 1.3.0(typescript@5.4.2) + ts-api-utils: 1.3.0(typescript@5.9.3) optionalDependencies: - typescript: 5.4.2 + typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -12937,6 +13757,21 @@ snapshots: - supports-color - typescript + '@typescript-eslint/utils@5.62.0(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.39.2(jiti@1.21.0)) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.9.3) + eslint: 9.39.2(jiti@1.21.0) + eslint-scope: 5.1.1 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + - typescript + '@typescript-eslint/utils@6.19.1(eslint@8.56.0)(typescript@5.4.2)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) @@ -12951,15 +13786,15 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@7.2.0(eslint@8.57.0)(typescript@5.4.2)': + '@typescript-eslint/utils@7.2.0(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.39.2(jiti@1.21.0)) '@types/json-schema': 7.0.15 '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 7.2.0 '@typescript-eslint/types': 7.2.0 - '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.4.2) - eslint: 8.57.0 + '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.9.3) + eslint: 9.39.2(jiti@1.21.0) semver: 7.6.0 transitivePeerDependencies: - supports-color @@ -13015,6 +13850,106 @@ snapshots: transitivePeerDependencies: - supports-color + '@vitest/coverage-istanbul@4.0.18(vitest@4.0.18(@types/node@20.11.28)(jiti@1.21.0)(jsdom@16.7.0)(terser@5.43.1))': + dependencies: + '@istanbuljs/schema': 0.1.3 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 6.0.3 + istanbul-lib-report: 3.0.1 + istanbul-reports: 3.2.0 + magicast: 0.5.1 + obug: 2.1.1 + tinyrainbow: 3.0.3 + vitest: 4.0.18(@types/node@20.11.28)(jiti@1.21.0)(jsdom@16.7.0)(terser@5.43.1) + transitivePeerDependencies: + - supports-color + + '@vitest/expect@4.0.18': + dependencies: + '@standard-schema/spec': 1.1.0 + '@types/chai': 5.2.3 + '@vitest/spy': 4.0.18 + '@vitest/utils': 4.0.18 + chai: 6.2.2 + tinyrainbow: 3.0.3 + + '@vitest/mocker@4.0.18(vite@7.3.0(@types/node@20.11.28)(jiti@1.21.0)(terser@5.43.1))': + dependencies: + '@vitest/spy': 4.0.18 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 7.3.0(@types/node@20.11.28)(jiti@1.21.0)(terser@5.43.1) + + '@vitest/pretty-format@4.0.18': + dependencies: + tinyrainbow: 3.0.3 + + '@vitest/runner@4.0.18': + dependencies: + '@vitest/utils': 4.0.18 + pathe: 2.0.3 + + '@vitest/snapshot@4.0.18': + dependencies: + '@vitest/pretty-format': 4.0.18 + magic-string: 0.30.21 + pathe: 2.0.3 + + '@vitest/spy@4.0.18': {} + + '@vitest/utils@4.0.18': + dependencies: + '@vitest/pretty-format': 4.0.18 + tinyrainbow: 3.0.3 + + '@volar/language-core@2.4.27': + dependencies: + '@volar/source-map': 2.4.27 + + '@volar/source-map@2.4.27': {} + + '@volar/typescript@2.4.27': + dependencies: + '@volar/language-core': 2.4.27 + path-browserify: 1.0.1 + vscode-uri: 3.1.0 + + '@vue/compiler-core@3.5.27': + dependencies: + '@babel/parser': 7.28.5 + '@vue/shared': 3.5.27 + entities: 7.0.1 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-dom@3.5.27': + dependencies: + '@vue/compiler-core': 3.5.27 + '@vue/shared': 3.5.27 + + '@vue/compiler-vue2@2.7.16': + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + + '@vue/language-core@2.2.0(typescript@5.4.2)': + dependencies: + '@volar/language-core': 2.4.27 + '@vue/compiler-dom': 3.5.27 + '@vue/compiler-vue2': 2.7.16 + '@vue/shared': 3.5.27 + alien-signals: 0.4.14 + minimatch: 9.0.5 + muggle-string: 0.4.1 + path-browserify: 1.0.1 + optionalDependencies: + typescript: 5.4.2 + + '@vue/shared@3.5.27': {} + '@webassemblyjs/ast@1.12.1': dependencies: '@webassemblyjs/helper-numbers': 1.11.6 @@ -13341,6 +14276,10 @@ snapshots: clean-stack: 2.2.0 indent-string: 4.0.0 + ajv-draft-04@1.0.0(ajv@8.13.0): + optionalDependencies: + ajv: 8.13.0 + ajv-errors@1.0.1(ajv@6.12.6): dependencies: ajv: 6.12.6 @@ -13353,6 +14292,10 @@ snapshots: optionalDependencies: ajv: 8.17.1 + ajv-formats@3.0.1(ajv@8.13.0): + optionalDependencies: + ajv: 8.13.0 + ajv-keywords@3.5.2(ajv@6.12.6): dependencies: ajv: 6.12.6 @@ -13381,6 +14324,13 @@ snapshots: require-from-string: 2.0.2 uri-js: 4.4.1 + ajv@8.13.0: + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 @@ -13388,6 +14338,8 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 + alien-signals@0.4.14: {} + alphanum-sort@1.0.2: {} ansi-align@3.0.1: @@ -13472,8 +14424,6 @@ snapshots: array-equal@1.0.2: {} - array-find-index@1.0.2: {} - array-flatten@1.1.1: {} array-ify@1.0.0: {} @@ -13558,7 +14508,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.22.5 es-errors: 1.3.0 - get-intrinsic: 1.2.4 + get-intrinsic: 1.3.0 is-array-buffer: 3.0.4 is-shared-array-buffer: 1.0.3 @@ -13581,6 +14531,8 @@ snapshots: object.assign: 4.1.5 util: 0.10.4 + assertion-error@2.0.1: {} + assign-symbols@1.0.0: {} ast-metadata-inferer@0.8.0: @@ -13656,6 +14608,20 @@ snapshots: transitivePeerDependencies: - supports-color + babel-jest@27.5.1(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + '@jest/transform': 27.5.1 + '@jest/types': 27.5.1 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 27.5.1(@babel/core@7.28.5) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + babel-loader@8.3.0(@babel/core@7.24.0)(webpack@4.47.0): dependencies: '@babel/core': 7.24.0 @@ -13683,7 +14649,7 @@ snapshots: babel-plugin-istanbul@6.1.1: dependencies: - '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-plugin-utils': 7.27.1 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 @@ -13693,8 +14659,8 @@ snapshots: babel-plugin-jest-hoist@27.5.1: dependencies: - '@babel/template': 7.24.0 - '@babel/types': 7.24.0 + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.5 @@ -13717,6 +14683,15 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.28.5): + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.28.5 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.28.5) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + babel-plugin-polyfill-corejs3@0.9.0(@babel/core@7.24.0): dependencies: '@babel/core': 7.24.0 @@ -13725,6 +14700,14 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-corejs3@0.9.0(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.28.5) + core-js-compat: 3.36.0 + transitivePeerDependencies: + - supports-color + babel-plugin-polyfill-regenerator@0.5.5(@babel/core@7.24.0): dependencies: '@babel/core': 7.24.0 @@ -13732,6 +14715,13 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-regenerator@0.5.5(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.28.5) + transitivePeerDependencies: + - supports-color + babel-plugin-transform-react-remove-prop-types@0.4.24: {} babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.0): @@ -13750,12 +14740,34 @@ snapshots: '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.0) + babel-preset-current-node-syntax@1.0.1(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.5) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.5) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.5) + babel-preset-jest@27.5.1(@babel/core@7.24.0): dependencies: '@babel/core': 7.24.0 babel-plugin-jest-hoist: 27.5.1 babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.0) + babel-preset-jest@27.5.1(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + babel-plugin-jest-hoist: 27.5.1 + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.28.5) + babel-preset-react-app@10.0.1: dependencies: '@babel/core': 7.24.0 @@ -13983,10 +14995,6 @@ snapshots: node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.25.4) - bs-logger@0.2.6: - dependencies: - fast-json-stable-stringify: 2.1.0 - bser@2.1.1: dependencies: node-int64: 0.4.0 @@ -14139,7 +15147,7 @@ snapshots: caniuse-api@3.0.0: dependencies: - browserslist: 4.23.0 + browserslist: 4.25.4 caniuse-lite: 1.0.30001737 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 @@ -14152,6 +15160,8 @@ snapshots: caseless@0.12.0: {} + chai@6.2.2: {} + chalk@2.4.1: dependencies: ansi-styles: 3.2.1 @@ -14359,8 +15369,6 @@ snapshots: commander@8.3.0: {} - commenting@1.1.0: {} - commitizen@4.3.0(@types/node@20.11.28)(typescript@5.4.2): dependencies: cachedir: 2.3.0 @@ -14392,6 +15400,8 @@ snapshots: array-ify: 1.0.0 dot-prop: 5.3.0 + compare-versions@6.1.1: {} + component-emitter@1.3.1: {} compressible@2.0.18: @@ -14442,6 +15452,10 @@ snapshots: readable-stream: 2.3.8 typedarray: 0.0.6 + confbox@0.1.8: {} + + confbox@0.2.2: {} + configstore@5.0.1: dependencies: dot-prop: 5.3.0 @@ -14908,6 +15922,8 @@ snapshots: whatwg-mimetype: 2.3.0 whatwg-url: 8.7.0 + de-indent@1.0.2: {} + debounce@1.2.1: {} debug@2.6.9: @@ -14941,7 +15957,7 @@ snapshots: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 es-get-iterator: 1.1.3 - get-intrinsic: 1.2.4 + get-intrinsic: 1.3.0 is-arguments: 1.1.1 is-array-buffer: 3.0.4 is-date-object: 1.0.5 @@ -15047,7 +16063,7 @@ snapshots: diff-sequences@27.5.1: {} - diff-sequences@29.6.3: {} + diff@8.0.3: {} diffie-hellman@5.0.3: dependencies: @@ -15234,6 +16250,8 @@ snapshots: entities@2.2.0: {} + entities@7.0.1: {} + env-paths@2.2.1: {} envinfo@7.11.1: {} @@ -15298,7 +16316,7 @@ snapshots: es-define-property@1.0.0: dependencies: - get-intrinsic: 1.2.4 + get-intrinsic: 1.3.0 es-define-property@1.0.1: {} @@ -15307,8 +16325,8 @@ snapshots: es-get-iterator@1.1.3: dependencies: call-bind: 1.0.7 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 + get-intrinsic: 1.3.0 + has-symbols: 1.1.0 is-arguments: 1.1.1 is-map: 2.0.3 is-set: 2.0.3 @@ -15334,8 +16352,6 @@ snapshots: iterator.prototype: 1.1.2 safe-array-concat: 1.1.2 - es-module-lexer@1.4.1: {} - es-module-lexer@1.7.0: {} es-object-atoms@1.1.1: @@ -15436,7 +16452,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-config-preact@1.3.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@6.19.1(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(jest@27.5.1)(typescript@5.4.2): + eslint-config-preact@1.3.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@6.19.1(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(typescript@5.4.2): dependencies: '@babel/core': 7.24.0 '@babel/eslint-parser': 7.23.10(@babel/core@7.24.0)(eslint@8.57.0) @@ -15445,7 +16461,7 @@ snapshots: '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.0) eslint: 8.57.0 eslint-plugin-compat: 4.2.0(eslint@8.57.0) - eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@6.19.1(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(jest@27.5.1)(typescript@5.4.2) + eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@6.19.1(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(typescript@5.4.2) eslint-plugin-react: 7.34.0(eslint@8.57.0) eslint-plugin-react-hooks: 4.6.0(eslint@8.57.0) transitivePeerDependencies: @@ -15454,18 +16470,18 @@ snapshots: - supports-color - typescript - eslint-config-preact@1.3.0(@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(jest@27.5.1)(typescript@5.4.2): + eslint-config-preact@1.3.0(@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3): dependencies: '@babel/core': 7.24.0 - '@babel/eslint-parser': 7.23.10(@babel/core@7.24.0)(eslint@8.57.0) + '@babel/eslint-parser': 7.23.10(@babel/core@7.24.0)(eslint@9.39.2(jiti@1.21.0)) '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.0) '@babel/plugin-syntax-decorators': 7.24.0(@babel/core@7.24.0) '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.0) - eslint: 8.57.0 - eslint-plugin-compat: 4.2.0(eslint@8.57.0) - eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(jest@27.5.1)(typescript@5.4.2) - eslint-plugin-react: 7.34.0(eslint@8.57.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.57.0) + eslint: 9.39.2(jiti@1.21.0) + eslint-plugin-compat: 4.2.0(eslint@9.39.2(jiti@1.21.0)) + eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3) + eslint-plugin-react: 7.34.0(eslint@9.39.2(jiti@1.21.0)) + eslint-plugin-react-hooks: 4.6.0(eslint@9.39.2(jiti@1.21.0)) transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' - jest @@ -15560,6 +16576,17 @@ snapshots: lodash.memoize: 4.1.2 semver: 7.6.0 + eslint-plugin-compat@4.2.0(eslint@9.39.2(jiti@1.21.0)): + dependencies: + '@mdn/browser-compat-data': 5.5.15 + ast-metadata-inferer: 0.8.0 + browserslist: 4.25.4 + caniuse-lite: 1.0.30001597 + eslint: 9.39.2(jiti@1.21.0) + find-up: 5.0.0 + lodash.memoize: 4.1.2 + semver: 7.6.0 + eslint-plugin-flowtype@8.0.3(@babel/plugin-syntax-flow@7.24.1(@babel/core@7.24.0))(@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.0))(eslint@9.39.2(jiti@1.21.0)): dependencies: '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.0) @@ -15633,24 +16660,22 @@ snapshots: - supports-color - typescript - eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@6.19.1(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(jest@27.5.1)(typescript@5.4.2): + eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@6.19.1(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(typescript@5.4.2): dependencies: '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.57.0)(typescript@5.4.2) eslint: 8.57.0 optionalDependencies: '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@6.19.1(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(typescript@5.4.2) - jest: 27.5.1 transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(jest@27.5.1)(typescript@5.4.2): + eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3): dependencies: - '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.57.0)(typescript@5.4.2) - eslint: 8.57.0 + '@typescript-eslint/experimental-utils': 5.62.0(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3) + eslint: 9.39.2(jiti@1.21.0) optionalDependencies: - '@typescript-eslint/eslint-plugin': 7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(typescript@5.4.2) - jest: 27.5.1 + '@typescript-eslint/eslint-plugin': 7.2.0(@typescript-eslint/parser@7.2.0(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3))(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3) transitivePeerDependencies: - supports-color - typescript @@ -15977,6 +17002,10 @@ snapshots: estree-walker@2.0.2: {} + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.8 + esutils@2.0.3: {} etag@1.8.1: {} @@ -16034,6 +17063,8 @@ snapshots: dependencies: homedir-polyfill: 1.0.3 + expect-type@1.3.0: {} + expect@27.5.1: dependencies: '@jest/types': 27.5.1 @@ -16041,14 +17072,6 @@ snapshots: jest-matcher-utils: 27.5.1 jest-message-util: 27.5.1 - expect@29.7.0: - dependencies: - '@jest/expect-utils': 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - express@4.18.3: dependencies: accepts: 1.3.8 @@ -16121,6 +17144,8 @@ snapshots: transitivePeerDependencies: - supports-color + exsolve@1.0.8: {} + extend-shallow@2.0.1: dependencies: is-extendable: 0.1.1 @@ -16185,10 +17210,6 @@ snapshots: dependencies: bser: 2.1.1 - fdir@6.4.6(picomatch@4.0.3): - optionalDependencies: - picomatch: 4.0.3 - fdir@6.5.0(picomatch@4.0.3): optionalDependencies: picomatch: 4.0.3 @@ -16360,7 +17381,7 @@ snapshots: forever-agent@0.6.1: {} - fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.4.2)(webpack@4.47.0): + fork-ts-checker-webpack-plugin@6.5.3(eslint@9.39.2(jiti@1.21.0))(typescript@5.4.2)(webpack@5.90.3): dependencies: '@babel/code-frame': 7.24.2 '@types/json-schema': 7.0.15 @@ -16376,11 +17397,11 @@ snapshots: semver: 7.6.0 tapable: 1.1.3 typescript: 5.4.2 - webpack: 4.47.0 + webpack: 5.90.3 optionalDependencies: - eslint: 8.57.0 + eslint: 9.39.2(jiti@1.21.0) - fork-ts-checker-webpack-plugin@6.5.3(eslint@9.39.2(jiti@1.21.0))(typescript@5.4.2)(webpack@5.90.3): + fork-ts-checker-webpack-plugin@6.5.3(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3)(webpack@4.47.0): dependencies: '@babel/code-frame': 7.24.2 '@types/json-schema': 7.0.15 @@ -16395,8 +17416,8 @@ snapshots: schema-utils: 2.7.0 semver: 7.6.0 tapable: 1.1.3 - typescript: 5.4.2 - webpack: 5.90.3 + typescript: 5.9.3 + webpack: 4.47.0 optionalDependencies: eslint: 9.39.2(jiti@1.21.0) @@ -16433,6 +17454,12 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 + fs-extra@11.3.3: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + fs-extra@9.1.0: dependencies: at-least-node: 1.0.0 @@ -16535,7 +17562,7 @@ snapshots: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 - get-intrinsic: 1.2.4 + get-intrinsic: 1.3.0 get-tsconfig@4.7.3: dependencies: @@ -16656,7 +17683,7 @@ snapshots: gopd@1.0.1: dependencies: - get-intrinsic: 1.2.4 + get-intrinsic: 1.3.0 gopd@1.2.0: {} @@ -16987,6 +18014,8 @@ snapshots: import-lazy@2.1.0: {} + import-lazy@4.0.0: {} + import-local@3.1.0: dependencies: pkg-dir: 4.2.0 @@ -17065,7 +18094,7 @@ snapshots: is-array-buffer@3.0.4: dependencies: call-bind: 1.0.7 - get-intrinsic: 1.2.4 + get-intrinsic: 1.3.0 is-arrayish@0.2.1: {} @@ -17247,7 +18276,7 @@ snapshots: is-symbol@1.0.4: dependencies: - has-symbols: 1.0.3 + has-symbols: 1.1.0 is-text-path@2.0.0: dependencies: @@ -17272,7 +18301,7 @@ snapshots: is-weakset@2.0.3: dependencies: call-bind: 1.0.7 - get-intrinsic: 1.2.4 + get-intrinsic: 1.3.0 is-windows@1.0.2: {} @@ -17313,14 +18342,24 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.24.0 - '@babel/parser': 7.24.0 + '@babel/core': 7.28.5 + '@babel/parser': 7.28.5 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 transitivePeerDependencies: - supports-color + istanbul-lib-instrument@6.0.3: + dependencies: + '@babel/core': 7.28.5 + '@babel/parser': 7.28.5 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + istanbul-lib-report@3.0.1: dependencies: istanbul-lib-coverage: 3.2.2 @@ -17340,6 +18379,11 @@ snapshots: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 + istanbul-reports@3.2.0: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + iterator.prototype@1.1.2: dependencies: define-properties: 1.2.1 @@ -17414,10 +18458,10 @@ snapshots: jest-config@27.5.1: dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.28.5 '@jest/test-sequencer': 27.5.1 '@jest/types': 27.5.1 - babel-jest: 27.5.1(@babel/core@7.24.0) + babel-jest: 27.5.1(@babel/core@7.28.5) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -17451,13 +18495,6 @@ snapshots: jest-get-type: 27.5.1 pretty-format: 27.5.1 - jest-diff@29.7.0: - dependencies: - chalk: 4.1.2 - diff-sequences: 29.6.3 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - jest-docblock@27.5.1: dependencies: detect-newline: 3.1.0 @@ -17496,8 +18533,6 @@ snapshots: jest-get-type@27.5.1: {} - jest-get-type@29.6.3: {} - jest-haste-map@27.5.1: dependencies: '@jest/types': 27.5.1 @@ -17549,16 +18584,9 @@ snapshots: jest-get-type: 27.5.1 pretty-format: 27.5.1 - jest-matcher-utils@29.7.0: - dependencies: - chalk: 4.1.2 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - jest-message-util@27.5.1: dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.27.1 '@jest/types': 27.5.1 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -17580,18 +18608,6 @@ snapshots: slash: 3.0.0 stack-utils: 2.0.6 - jest-message-util@29.7.0: - dependencies: - '@babel/code-frame': 7.24.2 - '@jest/types': 29.6.3 - '@types/stack-utils': 2.0.3 - chalk: 4.1.2 - graceful-fs: 4.2.11 - micromatch: 4.0.8 - pretty-format: 29.7.0 - slash: 3.0.0 - stack-utils: 2.0.6 - jest-mock@27.5.1: dependencies: '@jest/types': 27.5.1 @@ -17689,16 +18705,16 @@ snapshots: jest-snapshot@27.5.1: dependencies: - '@babel/core': 7.24.0 - '@babel/generator': 7.23.6 - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.24.0) - '@babel/traverse': 7.24.0 - '@babel/types': 7.24.0 + '@babel/core': 7.28.5 + '@babel/generator': 7.28.5 + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.28.5) + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 '@types/babel__traverse': 7.20.5 '@types/prettier': 2.7.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.0) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.28.5) chalk: 4.1.2 expect: 27.5.1 graceful-fs: 4.2.11 @@ -17732,15 +18748,6 @@ snapshots: graceful-fs: 4.2.11 picomatch: 2.3.1 - jest-util@29.7.0: - dependencies: - '@jest/types': 29.6.3 - '@types/node': 20.11.28 - chalk: 4.1.2 - ci-info: 3.9.0 - graceful-fs: 4.2.11 - picomatch: 2.3.1 - jest-validate@27.5.1: dependencies: '@jest/types': 27.5.1 @@ -17814,6 +18821,8 @@ snapshots: jiti@1.21.0: {} + jju@1.4.0: {} + js-tokens@4.0.0: {} js-yaml@3.14.1: @@ -17984,6 +18993,8 @@ snapshots: klona@2.0.6: {} + kolorist@1.8.0: {} + language-subtag-registry@0.3.22: {} language-tags@1.0.9: @@ -18080,6 +19091,12 @@ snapshots: local-access@1.1.0: {} + local-pkg@1.1.2: + dependencies: + mlly: 1.8.0 + pkg-types: 2.3.0 + quansync: 0.2.11 + locate-path@3.0.0: dependencies: p-locate: 3.0.0 @@ -18177,13 +19194,15 @@ snapshots: dependencies: sourcemap-codec: 1.4.8 - magic-string@0.30.17: + magic-string@0.30.21: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 - magic-string@0.30.8: + magicast@0.5.1: dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + source-map-js: 1.2.1 make-dir@2.1.0: dependencies: @@ -18198,8 +19217,6 @@ snapshots: dependencies: semver: 7.6.0 - make-error@1.3.6: {} - makeerror@1.0.12: dependencies: tmpl: 1.0.5 @@ -18327,6 +19344,10 @@ snapshots: minimalistic-crypto-utils@1.0.1: {} + minimatch@10.0.3: + dependencies: + '@isaacs/brace-expansion': 5.0.0 + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -18405,7 +19426,12 @@ snapshots: mkdirp@1.0.4: {} - moment@2.30.1: {} + mlly@1.8.0: + dependencies: + acorn: 8.15.0 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.6.3 move-concurrently@1.0.1: dependencies: @@ -18426,6 +19452,8 @@ snapshots: ms@2.1.3: {} + muggle-string@0.4.1: {} + multicast-dns@7.2.5: dependencies: dns-packet: 5.6.1 @@ -18660,6 +19688,8 @@ snapshots: obuf@1.1.2: {} + obug@2.1.1: {} + on-finished@2.4.1: dependencies: ee-first: 1.1.1 @@ -18788,8 +19818,6 @@ snapshots: registry-url: 5.1.0 semver: 6.3.1 - package-name-regex@2.0.6: {} - pako@1.0.11: {} parallel-transform@1.2.0: @@ -18827,7 +19855,7 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.27.1 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -18851,6 +19879,8 @@ snapshots: path-browserify@0.0.1: {} + path-browserify@1.0.1: {} + path-dirname@1.0.2: optional: true @@ -18879,6 +19909,8 @@ snapshots: path-type@4.0.0: {} + pathe@2.0.3: {} + pbkdf2@3.1.2: dependencies: create-hash: 1.2.0 @@ -18919,15 +19951,27 @@ snapshots: dependencies: find-up: 6.3.0 + pkg-types@1.3.1: + dependencies: + confbox: 0.1.8 + mlly: 1.8.0 + pathe: 2.0.3 + + pkg-types@2.3.0: + dependencies: + confbox: 0.2.2 + exsolve: 1.0.8 + pathe: 2.0.3 + pkg-up@3.1.0: dependencies: find-up: 3.0.0 pn@1.1.0: {} - pnp-webpack-plugin@1.7.0(typescript@5.4.2): + pnp-webpack-plugin@1.7.0(typescript@5.9.3): dependencies: - ts-pnp: 1.2.0(typescript@5.4.2) + ts-pnp: 1.2.0(typescript@5.9.3) transitivePeerDependencies: - typescript @@ -18979,7 +20023,7 @@ snapshots: postcss-colormin@4.0.3: dependencies: - browserslist: 4.23.0 + browserslist: 4.25.4 color: 3.2.1 has: 1.0.4 postcss: 7.0.39 @@ -18987,7 +20031,7 @@ snapshots: postcss-colormin@5.3.1(postcss@8.4.35): dependencies: - browserslist: 4.23.0 + browserslist: 4.25.4 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.4.35 @@ -19000,7 +20044,7 @@ snapshots: postcss-convert-values@5.1.3(postcss@8.4.35): dependencies: - browserslist: 4.23.0 + browserslist: 4.25.4 postcss: 8.4.35 postcss-value-parser: 4.2.0 @@ -19171,7 +20215,7 @@ snapshots: postcss-merge-rules@4.0.3: dependencies: - browserslist: 4.23.0 + browserslist: 4.25.4 caniuse-api: 3.0.0 cssnano-util-same-parent: 4.0.1 postcss: 7.0.39 @@ -19180,7 +20224,7 @@ snapshots: postcss-merge-rules@5.1.4(postcss@8.4.35): dependencies: - browserslist: 4.23.0 + browserslist: 4.25.4 caniuse-api: 3.0.0 cssnano-utils: 3.1.0(postcss@8.4.35) postcss: 8.4.35 @@ -19213,7 +20257,7 @@ snapshots: postcss-minify-params@4.0.2: dependencies: alphanum-sort: 1.0.2 - browserslist: 4.23.0 + browserslist: 4.25.4 cssnano-util-get-arguments: 4.0.0 postcss: 7.0.39 postcss-value-parser: 3.3.1 @@ -19221,7 +20265,7 @@ snapshots: postcss-minify-params@5.1.4(postcss@8.4.35): dependencies: - browserslist: 4.23.0 + browserslist: 4.25.4 cssnano-utils: 3.1.0(postcss@8.4.35) postcss: 8.4.35 postcss-value-parser: 4.2.0 @@ -19337,13 +20381,13 @@ snapshots: postcss-normalize-unicode@4.0.1: dependencies: - browserslist: 4.23.0 + browserslist: 4.25.4 postcss: 7.0.39 postcss-value-parser: 3.3.1 postcss-normalize-unicode@5.1.1(postcss@8.4.35): dependencies: - browserslist: 4.23.0 + browserslist: 4.25.4 postcss: 8.4.35 postcss-value-parser: 4.2.0 @@ -19468,14 +20512,14 @@ snapshots: postcss-reduce-initial@4.0.3: dependencies: - browserslist: 4.23.0 + browserslist: 4.25.4 caniuse-api: 3.0.0 has: 1.0.4 postcss: 7.0.39 postcss-reduce-initial@5.1.2(postcss@8.4.35): dependencies: - browserslist: 4.23.0 + browserslist: 4.25.4 caniuse-api: 3.0.0 postcss: 8.4.35 @@ -19561,7 +20605,7 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - preact-cli@3.5.1(@types/babel__core@7.20.5)(eslint@8.57.0)(preact-render-to-string@6.4.0(preact@10.19.6))(preact@10.19.6)(typescript@5.4.2): + preact-cli@3.5.1(@types/babel__core@7.20.5)(eslint@9.39.2(jiti@1.21.0))(preact-render-to-string@6.4.0(preact@10.19.6))(preact@10.19.6)(typescript@5.9.3): dependencies: '@babel/core': 7.24.0 '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.0) @@ -19593,7 +20637,7 @@ snapshots: envinfo: 7.11.1 esm: 3.2.25 file-loader: 6.2.0(webpack@5.97.0) - fork-ts-checker-webpack-plugin: 6.5.3(eslint@8.57.0)(typescript@5.4.2)(webpack@4.47.0) + fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.39.2(jiti@1.21.0))(typescript@5.9.3)(webpack@4.47.0) get-port: 5.1.1 gittar: 0.1.1 glob: 8.1.0 @@ -19608,7 +20652,7 @@ snapshots: native-url: 0.3.4 optimize-css-assets-webpack-plugin: 6.0.1(webpack@4.47.0) ora: 5.4.1 - pnp-webpack-plugin: 1.7.0(typescript@5.4.2) + pnp-webpack-plugin: 1.7.0(typescript@5.9.3) postcss: 8.4.35 postcss-load-config: 3.1.4(postcss@8.4.35) postcss-loader: 4.3.0(postcss@8.4.35)(webpack@4.47.0) @@ -19645,7 +20689,7 @@ snapshots: workbox-strategies: 6.6.0 workbox-webpack-plugin: 6.6.0(@types/babel__core@7.20.5)(webpack@4.47.0) optionalDependencies: - typescript: 5.4.2 + typescript: 5.9.3 transitivePeerDependencies: - '@types/babel__core' - bluebird @@ -19708,12 +20752,6 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.2.0 - pretty-format@29.7.0: - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.2.0 - pretty-format@3.8.0: {} process-nextick-args@2.0.1: {} @@ -19797,7 +20835,7 @@ snapshots: qs@6.11.0: dependencies: - side-channel: 1.0.6 + side-channel: 1.1.0 qs@6.13.0: dependencies: @@ -19809,6 +20847,8 @@ snapshots: qs@6.5.3: {} + quansync@0.2.11: {} + querystring-es3@0.2.1: {} querystring@0.2.1: {} @@ -20072,7 +21112,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.22.5 es-errors: 1.3.0 - get-intrinsic: 1.2.4 + get-intrinsic: 1.3.0 globalthis: 1.0.3 which-builtin-type: 1.1.3 @@ -20279,35 +21319,9 @@ snapshots: dependencies: magic-string: 0.25.9 - rollup-plugin-dts@6.2.1(rollup@4.43.0)(typescript@5.4.2): - dependencies: - magic-string: 0.30.17 - rollup: 4.43.0 - typescript: 5.4.2 - optionalDependencies: - '@babel/code-frame': 7.27.1 - - rollup-plugin-license@3.6.0(picomatch@4.0.3)(rollup@4.43.0): - dependencies: - commenting: 1.1.0 - fdir: 6.4.6(picomatch@4.0.3) - lodash: 4.17.21 - magic-string: 0.30.8 - moment: 2.30.1 - package-name-regex: 2.0.6 - rollup: 4.43.0 - spdx-expression-validate: 2.0.0 - spdx-satisfies: 5.0.1 - transitivePeerDependencies: - - picomatch - - rollup-plugin-peer-deps-external@2.2.4(rollup@4.43.0): - dependencies: - rollup: 4.43.0 - rollup-plugin-terser@7.0.2(rollup@2.79.2): dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.27.1 jest-worker: 26.6.2 rollup: 2.79.2 serialize-javascript: 4.0.0 @@ -20465,6 +21479,10 @@ snapshots: semver@6.3.1: {} + semver@7.5.4: + dependencies: + lru-cache: 6.0.0 + semver@7.6.0: dependencies: lru-cache: 6.0.0 @@ -20552,7 +21570,7 @@ snapshots: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.4 + get-intrinsic: 1.3.0 gopd: 1.0.1 has-property-descriptors: 1.0.2 @@ -20643,6 +21661,8 @@ snapshots: side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 + siginfo@2.0.0: {} + signal-exit@3.0.7: {} signal-exit@4.1.0: {} @@ -20777,33 +21797,6 @@ snapshots: sourcemap-codec@1.4.8: {} - spdx-compare@1.0.0: - dependencies: - array-find-index: 1.0.2 - spdx-expression-parse: 3.0.1 - spdx-ranges: 2.1.1 - - spdx-exceptions@2.5.0: {} - - spdx-expression-parse@3.0.1: - dependencies: - spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.17 - - spdx-expression-validate@2.0.0: - dependencies: - spdx-expression-parse: 3.0.1 - - spdx-license-ids@3.0.17: {} - - spdx-ranges@2.1.1: {} - - spdx-satisfies@5.0.1: - dependencies: - spdx-compare: 1.0.0 - spdx-expression-parse: 3.0.1 - spdx-ranges: 2.1.1 - spdy-transport@3.0.0: dependencies: debug: 4.4.1 @@ -20861,6 +21854,8 @@ snapshots: dependencies: escape-string-regexp: 2.0.0 + stackback@0.0.2: {} + stackframe@1.3.4: {} static-eval@2.0.2: @@ -20876,6 +21871,8 @@ snapshots: statuses@2.0.1: {} + std-env@3.10.0: {} + stealthy-require@1.1.1: {} stop-iteration-iterator@1.0.0: @@ -21025,19 +22022,19 @@ snapshots: stylehacks@4.0.3: dependencies: - browserslist: 4.23.0 + browserslist: 4.25.4 postcss: 7.0.39 postcss-selector-parser: 3.1.2 stylehacks@5.1.1(postcss@8.4.35): dependencies: - browserslist: 4.23.0 + browserslist: 4.25.4 postcss: 8.4.35 postcss-selector-parser: 6.0.16 sucrase@3.35.0: dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.13 commander: 4.1.1 glob: 10.3.10 lines-and-columns: 1.2.4 @@ -21271,13 +22268,19 @@ snapshots: timsort@0.3.0: {} + tinybench@2.9.0: {} + tinydate@1.3.0: {} + tinyexec@1.0.2: {} + tinyglobby@0.2.15: dependencies: fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 + tinyrainbow@3.0.3: {} + tmp@0.0.33: dependencies: os-tmpdir: 1.0.2 @@ -21348,31 +22351,19 @@ snapshots: dependencies: typescript: 5.4.2 + ts-api-utils@1.3.0(typescript@5.9.3): + dependencies: + typescript: 5.9.3 + ts-api-utils@2.1.0(typescript@5.9.3): dependencies: typescript: 5.9.3 ts-interface-checker@0.1.13: {} - ts-jest@29.1.2(@babel/core@7.24.0)(@jest/types@29.6.3)(jest@27.5.1)(typescript@5.4.2): - dependencies: - bs-logger: 0.2.6 - fast-json-stable-stringify: 2.1.0 - jest: 27.5.1 - jest-util: 29.7.0 - json5: 2.2.3 - lodash.memoize: 4.1.2 - make-error: 1.3.6 - semver: 7.6.0 - typescript: 5.4.2 - yargs-parser: 21.1.1 - optionalDependencies: - '@babel/core': 7.24.0 - '@jest/types': 29.6.3 - - ts-pnp@1.2.0(typescript@5.4.2): + ts-pnp@1.2.0(typescript@5.9.3): optionalDependencies: - typescript: 5.4.2 + typescript: 5.9.3 tsconfig-paths@3.15.0: dependencies: @@ -21392,6 +22383,11 @@ snapshots: tslib: 1.14.1 typescript: 5.4.2 + tsutils@3.21.0(typescript@5.9.3): + dependencies: + tslib: 1.14.1 + typescript: 5.9.3 + tty-browserify@0.0.0: {} tunnel-agent@0.6.0: @@ -21482,8 +22478,12 @@ snapshots: typescript@5.4.2: {} + typescript@5.8.2: {} + typescript@5.9.3: {} + ufo@1.6.3: {} + uglify-js@3.4.10: dependencies: commander: 2.19.0 @@ -21628,7 +22628,7 @@ snapshots: dependencies: define-properties: 1.2.1 es-abstract: 1.22.5 - has-symbols: 1.0.3 + has-symbols: 1.1.0 object.getownpropertydescriptors: 2.1.7 util.promisify@1.1.2: @@ -21677,6 +22677,41 @@ snapshots: core-util-is: 1.0.2 extsprintf: 1.3.0 + vite-plugin-banner@0.8.1: {} + + vite-plugin-dts@4.5.4(@types/node@20.11.28)(rollup@4.43.0)(typescript@5.4.2)(vite@7.3.0(@types/node@20.11.28)(jiti@1.21.0)(terser@5.43.1)): + dependencies: + '@microsoft/api-extractor': 7.55.2(@types/node@20.11.28) + '@rollup/pluginutils': 5.3.0(rollup@4.43.0) + '@volar/typescript': 2.4.27 + '@vue/language-core': 2.2.0(typescript@5.4.2) + compare-versions: 6.1.1 + debug: 4.4.1 + kolorist: 1.8.0 + local-pkg: 1.1.2 + magic-string: 0.30.21 + typescript: 5.4.2 + optionalDependencies: + vite: 7.3.0(@types/node@20.11.28)(jiti@1.21.0)(terser@5.43.1) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + + vite@7.3.0(@types/node@20.11.28)(jiti@1.21.0)(terser@5.43.1): + dependencies: + esbuild: 0.27.2 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.43.0 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 20.11.28 + fsevents: 2.3.3 + jiti: 1.21.0 + terser: 5.43.1 + vite@7.3.0(@types/node@24.10.4)(jiti@1.21.0)(terser@5.43.1): dependencies: esbuild: 0.27.2 @@ -21691,12 +22726,52 @@ snapshots: jiti: 1.21.0 terser: 5.43.1 + vitest@4.0.18(@types/node@20.11.28)(jiti@1.21.0)(jsdom@16.7.0)(terser@5.43.1): + dependencies: + '@vitest/expect': 4.0.18 + '@vitest/mocker': 4.0.18(vite@7.3.0(@types/node@20.11.28)(jiti@1.21.0)(terser@5.43.1)) + '@vitest/pretty-format': 4.0.18 + '@vitest/runner': 4.0.18 + '@vitest/snapshot': 4.0.18 + '@vitest/spy': 4.0.18 + '@vitest/utils': 4.0.18 + es-module-lexer: 1.7.0 + expect-type: 1.3.0 + magic-string: 0.30.21 + obug: 2.1.1 + pathe: 2.0.3 + picomatch: 4.0.3 + std-env: 3.10.0 + tinybench: 2.9.0 + tinyexec: 1.0.2 + tinyglobby: 0.2.15 + tinyrainbow: 3.0.3 + vite: 7.3.0(@types/node@20.11.28)(jiti@1.21.0)(terser@5.43.1) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 20.11.28 + jsdom: 16.7.0 + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - terser + - tsx + - yaml + vm-browserify@1.1.2: {} vscode-oniguruma@1.7.0: {} vscode-textmate@8.0.0: {} + vscode-uri@3.1.0: {} + w3c-hr-time@1.0.2: dependencies: browser-process-hrtime: 1.0.0 @@ -22019,7 +23094,7 @@ snapshots: browserslist: 4.23.0 chrome-trace-event: 1.0.3 enhanced-resolve: 5.16.0 - es-module-lexer: 1.4.1 + es-module-lexer: 1.7.0 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -22138,7 +23213,7 @@ snapshots: available-typed-arrays: 1.0.7 call-bind: 1.0.7 for-each: 0.3.3 - gopd: 1.0.1 + gopd: 1.2.0 has-tostringtag: 1.0.2 which@1.3.1: @@ -22149,6 +23224,11 @@ snapshots: dependencies: isexe: 2.0.0 + why-is-node-running@2.3.0: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + widest-line@3.1.0: dependencies: string-width: 4.2.3 @@ -22169,10 +23249,10 @@ snapshots: workbox-build@6.6.0(@types/babel__core@7.20.5): dependencies: '@apideck/better-ajv-errors': 0.3.6(ajv@8.17.1) - '@babel/core': 7.24.0 - '@babel/preset-env': 7.24.0(@babel/core@7.24.0) + '@babel/core': 7.28.5 + '@babel/preset-env': 7.24.0(@babel/core@7.28.5) '@babel/runtime': 7.24.0 - '@rollup/plugin-babel': 5.3.1(@babel/core@7.24.0)(@types/babel__core@7.20.5)(rollup@2.79.2) + '@rollup/plugin-babel': 5.3.1(@babel/core@7.28.5)(@types/babel__core@7.20.5)(rollup@2.79.2) '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.2) '@rollup/plugin-replace': 2.4.2(rollup@2.79.2) '@surma/rollup-plugin-off-main-thread': 2.2.3 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 84f1fafc..c9e19fa1 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,7 @@ packages: - - "examples/*" - - "./" + - examples/* + - ./ + +onlyBuiltDependencies: + - core-js + - core-js-pure diff --git a/resources/license_banner.txt b/resources/license_banner.txt deleted file mode 100644 index 903f6f6d..00000000 --- a/resources/license_banner.txt +++ /dev/null @@ -1,2 +0,0 @@ -FingerprintJS Pro React v<%= pkg.version %> - Copyright (c) FingerprintJS, Inc, <%= new Date().getFullYear() %> (https://fingerprint.com) -Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license. \ No newline at end of file diff --git a/rollup.config.js b/rollup.config.js deleted file mode 100644 index 6047cffb..00000000 --- a/rollup.config.js +++ /dev/null @@ -1,64 +0,0 @@ -import typescript from '@rollup/plugin-typescript' -import jsonPlugin from '@rollup/plugin-json' -import external from 'rollup-plugin-peer-deps-external' -import { dts } from 'rollup-plugin-dts' -import licensePlugin from 'rollup-plugin-license' -import banner2 from 'rollup-plugin-banner2' -import { join } from 'path' -const { dependencies } = require('./package.json') - -const inputFile = 'src/index.ts' -const outputDirectory = 'dist' - -const commonBanner = licensePlugin({ - banner: { - content: { - file: join(__dirname, 'resources', 'license_banner.txt'), - }, - }, -}) - -const commonInput = { - input: inputFile, - plugins: [jsonPlugin(), typescript(), external(), commonBanner, banner2(() => `'use client';\n`)], -} - -const commonOutput = { - exports: 'named', - sourcemap: true, -} - -const RollupConfig = [ - // NPM bundles. They have all the dependencies excluded for end code size optimization. - { - ...commonInput, - external: Object.keys(dependencies), - output: [ - // CJS for usage with `require()` - { - ...commonOutput, - file: `${outputDirectory}/fp-pro-react.cjs.js`, - format: 'cjs', - }, - - // ESM for usage with `import` - { - ...commonOutput, - file: `${outputDirectory}/fp-pro-react.esm.js`, - format: 'es', - }, - ], - }, - - // TypeScript definition - { - ...commonInput, - plugins: [dts(), commonBanner], - output: { - file: `${outputDirectory}/fp-pro-react.d.ts`, - format: 'es', - }, - }, -] - -export default RollupConfig diff --git a/scripts/detect-env.js b/scripts/detect-env.js index d0469ff8..0be5fe41 100644 --- a/scripts/detect-env.js +++ b/scripts/detect-env.js @@ -32,7 +32,7 @@ function writeDetectedEnv(env, version) { const fullDistPath = path.resolve(__dirname, '../', distPath) const contents = fs.readFileSync(fullDistPath).toString() - const newContents = contents.replace(token, JSON.stringify({ name: env, version })) + const newContents = contents.replace(token, JSON.stringify({ name: env, version }).replace(/"/g, '\\"')) fs.writeFileSync(fullDistPath, newContents) }) diff --git a/src/components/fp-provider.tsx b/src/components/fingerprint-provider.tsx similarity index 77% rename from src/components/fp-provider.tsx rename to src/components/fingerprint-provider.tsx index 510b6205..9d26ad3b 100644 --- a/src/components/fp-provider.tsx +++ b/src/components/fingerprint-provider.tsx @@ -1,12 +1,13 @@ import { PropsWithChildren, useCallback, useEffect, useMemo, useRef } from 'react' -import { FpContext } from '../fp-context' +import { FingerprintContext } from '../fingerprint-context' import { Agent, GetOptions, start, StartOptions } from '@fingerprint/agent' import * as packageInfo from '../../package.json' import { isSSR } from '../ssr' import { WithEnvironment } from './with-environment' import type { EnvDetails } from '../env.types' +import { usePromiseStore } from '../utils/use-promise-store' -export interface FpProviderOptions extends StartOptions { +export interface FingerprintProviderOptions extends StartOptions { /** * If set to `true`, will force the agent to be rebuilt with the new options. Should be used with caution * since it can be triggered too often (e.g. on every render) and negatively affect performance of the JS agent. @@ -17,11 +18,11 @@ export interface FpProviderOptions extends StartOptions { /** * @example * ```jsx - * * - * + * * ``` * * Provides the FpContext to its child components. @@ -30,7 +31,7 @@ export interface FpProviderOptions extends StartOptions { * This is just a wrapper around the actual provider. * For the implementation, see `ProviderWithEnv` component. */ -export function FpProvider(props: PropsWithChildren) { +export function FingerprintProvider(props: PropsWithChildren) { const propsWithEnv = props as PropsWithChildren return ( @@ -40,7 +41,7 @@ export function FpProvider(props: PropsWithChildren) { ) } -interface ProviderWithEnvProps extends FpProviderOptions { +interface ProviderWithEnvProps extends FingerprintProviderOptions { /** * Contains details about the env we're currently running in (e.g. framework, version) */ @@ -76,7 +77,7 @@ function ProviderWithEnv({ const getClient = useCallback(() => { if (isSSR()) { - throw new Error('FpProvider client cannot be used in SSR') + throw new Error('FingerprintProvider client cannot be used in SSR') } if (!clientRef.current) { @@ -86,16 +87,20 @@ function ProviderWithEnv({ return clientRef.current }, [createClient]) + const { doRequest } = usePromiseStore() + const getVisitorData = useCallback( (options?: GetOptions) => { const client = getClient() - return client.get({ + const mergedOptions = { ...getOptions, ...options, - }) + } + + return doRequest(async () => client.get(mergedOptions), mergedOptions) }, - [getClient, getOptions] + [doRequest, getClient, getOptions] ) const contextValue = useMemo(() => { @@ -112,5 +117,5 @@ function ProviderWithEnv({ } }, [forceRebuild, agentOptions, getOptions, createClient]) - return {children} + return {children} } diff --git a/src/env.types.ts b/src/env.types.ts index 62194bb1..95038743 100644 --- a/src/env.types.ts +++ b/src/env.types.ts @@ -9,3 +9,7 @@ export interface EnvDetails { name: Env version?: string } + +export function isEnvDetails(value: unknown): value is EnvDetails { + return typeof value === 'object' && value !== null && 'name' in value +} diff --git a/src/fp-context.ts b/src/fingerprint-context.ts similarity index 62% rename from src/fp-context.ts rename to src/fingerprint-context.ts index 9460d4da..642799bc 100644 --- a/src/fp-context.ts +++ b/src/fingerprint-context.ts @@ -5,7 +5,7 @@ import { QueryResult } from './query' export type VisitorQueryResult = QueryResult const stub = (): never => { - throw new Error('You forgot to wrap your component in .') + throw new Error('You forgot to wrap your component in .') } const initialContext = { @@ -15,8 +15,8 @@ const initialContext = { /** * The Fingerprint Context */ -export interface FpContextInterface { +export interface FingerprintContextInterface { getVisitorData: (config?: GetOptions) => Promise } -export const FpContext = createContext(initialContext) +export const FingerprintContext = createContext(initialContext) diff --git a/src/get-env.ts b/src/get-env.ts index d99a2669..42359cbb 100644 --- a/src/get-env.ts +++ b/src/get-env.ts @@ -1,13 +1,12 @@ import { env } from './env' -import { EnvDetails } from './env.types' +import { EnvDetails, isEnvDetails } from './env.types' import { detectEnvironment, type DetectEnvParams } from './detect-env' -export function getEnvironment(params: DetectEnvParams) { +export function getEnvironment(params: DetectEnvParams): EnvDetails { try { - const parsedEnv = JSON.parse(env) - - if (typeof parsedEnv === 'object') { - return parsedEnv as EnvDetails + const jsonEnv = JSON.parse(env) + if (isEnvDetails(jsonEnv)) { + return jsonEnv } } catch { // Nothing here... diff --git a/src/index.ts b/src/index.ts index f24f92aa..9d8a4a5d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,8 +1,10 @@ -export * from './fp-context' -export * from './components/fp-provider' +import * as Fingerprint from '@fingerprint/agent' + +export * from './fingerprint-context' +export * from './components/fingerprint-provider' export * from './use-visitor-data' -export * from './fp-context' +export * from './fingerprint-context' export * from './query' -export * from '@fingerprint/agent' +export { Fingerprint } diff --git a/src/use-visitor-data.ts b/src/use-visitor-data.ts index 9a6284a1..cf1d917f 100644 --- a/src/use-visitor-data.ts +++ b/src/use-visitor-data.ts @@ -1,4 +1,4 @@ -import { FpContext, FpContextInterface, VisitorQueryResult } from './fp-context' +import { FingerprintContext, FingerprintContextInterface, VisitorQueryResult } from './fingerprint-context' import { useCallback, useContext, useEffect, useMemo, useState } from 'react' import deepEquals from 'fast-deep-equal' import { toError } from './utils/to-error' @@ -35,14 +35,14 @@ export type UseVisitorDataReturn = VisitorQueryResult & { * ``` * Use the `useVisitorData` hook in your components to perform identification requests with the Fingerprint API. The returned object contains information about loading status, errors, and visitor. * - * @param {UseVisitorDataOptions} options for the `fp.get()` request and for hook + * @param {UseVisitorDataOptions} options for the `agent.get()` request and for hook */ export function useVisitorData( { immediate, ...getOptions }: UseVisitorDataOptions = { immediate: true } ): UseVisitorDataReturn { assertIsTruthy(getOptions, 'getOptions') - const { getVisitorData } = useContext(FpContext) + const { getVisitorData } = useContext(FingerprintContext) const [currentGetOptions, setCurrentGetOptions] = useState(getOptions) const [queryState, setQueryState] = useState({ @@ -81,8 +81,6 @@ export function useVisitorData( } catch (unknownError) { const error = toError(unknownError) - error.name = 'FPAgentError' - setQueryState({ isLoading: false, isFetched: false, diff --git a/src/utils/use-const.ts b/src/utils/use-const.ts new file mode 100644 index 00000000..0a6a251a --- /dev/null +++ b/src/utils/use-const.ts @@ -0,0 +1,7 @@ +import { useRef } from 'react' + +export function useConst(initialValue: T | (() => T)): T { + const ref = useRef(typeof initialValue === 'function' ? (initialValue as () => T)() : initialValue) + + return ref.current +} diff --git a/src/utils/use-promise-store.ts b/src/utils/use-promise-store.ts new file mode 100644 index 00000000..b6c9de14 --- /dev/null +++ b/src/utils/use-promise-store.ts @@ -0,0 +1,51 @@ +import { GetOptions, GetResult } from '@fingerprint/agent' +import { useCallback } from 'react' +import { useConst } from './use-const' + +function getCacheKey(options?: GetOptions) { + if (!options) { + return '' + } + + return `${options.tag}-${options.linkedId}-${options.timeout}` +} + +export type UsePromiseStoreReturn = { + /** + * Accepts a callback that returns a promise (`requestCallback`) + * and optional parameters (`options`). Ensures that the same request identified by a cache key is + * only executed once at a time, and returns the stored promise for the request. The promise is + * removed from the store once it is resolved or rejected. + * */ + doRequest: (requestCallback: () => Promise, options?: GetOptions) => Promise +} + +/** + * Manages a store of promises to handle unique asynchronous requests, ensuring that + * requests with the same key are not duplicated while they are still pending. + */ +export function usePromiseStore(): UsePromiseStoreReturn { + const store = useConst(new Map>()) + + const doRequest = useCallback( + (requestCallback: () => Promise, options?: GetOptions) => { + const cacheKey = getCacheKey(options) + let cachedPromise = store.get(cacheKey) + + if (!cachedPromise) { + cachedPromise = requestCallback().finally(() => { + store.delete(cacheKey) + }) + + store.set(cacheKey, cachedPromise) + } + + return cachedPromise + }, + [store] + ) + + return { + doRequest, + } +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 00000000..4f39591e --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,32 @@ +import { defineConfig } from 'vite' +import dts from 'vite-plugin-dts' +import licensePlugin from 'vite-plugin-banner' +import { dependencies, version } from './package.json' +import banner2 from 'rollup-plugin-banner2' + +const licenseContents = `FingerprintJS Pro React v${version} - Copyright (c) FingerprintJS, Inc, ${new Date().getFullYear()} (https://fingerprint.com) +Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.` + +export default defineConfig({ + build: { + // Bundle source maps for easier debugging + sourcemap: true, + lib: { + entry: 'src/index.ts', + fileName: 'fingerprint-react', + formats: ['cjs', 'es'], + }, + rollupOptions: { + plugins: [banner2(() => `'use client';\n`)], + external: ['react', 'react-dom', 'react/jsx-runtime', ...Object.keys(dependencies)], + }, + }, + plugins: [ + licensePlugin({ + content: licenseContents, + }), + dts({ + rollupTypes: true, + }), + ], +}) diff --git a/vitest.config.ts b/vitest.config.ts new file mode 100644 index 00000000..7c369cf4 --- /dev/null +++ b/vitest.config.ts @@ -0,0 +1,14 @@ +import { defineConfig } from 'vitest/config' + +export default defineConfig({ + test: { + environment: 'jsdom', + include: ['__tests__/**/*'], + passWithNoTests: true, + coverage: { + provider: 'istanbul', + reporter: [['text', { file: 'coverage.txt' }], ['json'], ['json-summary'], ['lcov']], + include: ['src/**/*'], + }, + }, +})