From 180accb7ef61b7b7a021c29fe4f86b63f111a1f2 Mon Sep 17 00:00:00 2001 From: Guillaume Date: Sat, 22 Aug 2026 00:29:59 +0000 Subject: [PATCH] [IGNORE] Move from Jest to Vitest Signed-off-by: Guillaume --- .oxlintrc.json | 2 +- alertmanager/jest.config.ts | 24 - alertmanager/package.json | 2 +- .../src/model/alertmanager-client.test.ts | 6 +- .../get-alerts-data.test.ts | 18 +- .../get-silences-data.test.ts | 18 +- alertmanager/src/setup-tests.ts | 4 +- .../vitest.config.ts | 14 +- barchart/jest.config.ts | 24 - barchart/package.json | 2 +- .../BarChartOptionsEditorSettings.test.tsx | 16 +- barchart/src/setup-tests.ts | 4 +- .../vitest.config.ts | 15 +- clickhouse/package.json | 2 +- .../src/model/click-house-client.test.ts | 6 +- .../click-house-log-query-types.test.ts | 17 +- .../click-house-query-types.test.ts | 23 +- clickhouse/src/setup-tests.ts | 4 +- .../vitest.config.ts | 15 +- datasourcevariable/package.json | 2 +- datasourcevariable/vitest.config.ts | 21 + flamechart/package.json | 2 +- flamechart/src/setup-tests.ts | 4 +- flamechart/vitest.config.ts | 21 + gaugechart/jest.config.ts | 24 - gaugechart/package.json | 2 +- .../GaugeChartOptionsEditorSettings.test.tsx | 8 +- gaugechart/src/setup-tests.ts | 4 +- gaugechart/vitest.config.ts | 21 + greptimedb/jest.config.ts | 24 - greptimedb/package.json | 2 +- .../GreptimeDBDatasource.test.ts | 10 +- .../src/model/greptimedb-client.test.ts | 6 +- .../greptimedb-log-query-types.test.ts | 17 +- .../greptimedb-query-types.test.ts | 21 +- .../greptimedb-trace-query.test.ts | 17 +- greptimedb/src/setup-tests.ts | 4 +- greptimedb/vitest.config.ts | 21 + heatmapchart/jest.config.ts | 24 - heatmapchart/package.json | 2 +- ...HeatMapChartOptionsEditorSettings.test.tsx | 8 +- heatmapchart/src/setup-tests.ts | 4 +- heatmapchart/vitest.config.ts | 21 + histogramchart/jest.config.ts | 24 - histogramchart/package.json | 2 +- ...stogramChartOptionsEditorSettings.test.tsx | 12 +- histogramchart/src/setup-tests.ts | 4 +- histogramchart/vitest.config.ts | 21 + jaeger/package.json | 2 +- jaeger/src/model/jaeger-client.test.ts | 2 +- .../plugins/JaegerTraceQueryEditor.test.tsx | 35 +- jaeger/src/plugins/get-trace-data.test.ts | 29 +- jaeger/src/setup-tests.ts | 4 +- jaeger/vitest.config.ts | 21 + jest.shared.ts | 44 - logexplorer/jest.config.ts | 24 - logexplorer/package.json | 2 +- logexplorer/src/setup-tests.ts | 4 +- logexplorer/vitest.config.ts | 22 + logstable/jest.config.ts | 25 - logstable/package.json | 2 +- .../src/LogsTableCsvExportAction.test.ts | 12 +- logstable/src/LogsTablePanel.test.tsx | 14 +- .../src/components/LogRow/LogRow.test.tsx | 12 +- logstable/src/setup-tests.ts | 4 +- logstable/vitest.config.ts | 21 + loki/jest.config.ts | 24 - loki/package.json | 2 +- loki/src/model/loki-client.test.ts | 22 +- .../loki-log-query-types.test.ts | 17 +- .../loki-time-series-query-types.test.ts | 33 +- loki/src/setup-tests.ts | 4 +- loki/vitest.config.ts | 21 + markdown/jest.config.ts | 24 - markdown/package.json | 2 +- markdown/src/setup-tests.ts | 4 +- markdown/vitest.config.ts | 22 + opensearch/jest.config.ts | 32 - opensearch/package.json | 2 +- .../src/model/opensearch-client.test.ts | 10 +- .../OpenSearchLogQueryEditor.test.tsx | 11 +- .../get-opensearch-log-data.test.ts | 23 +- opensearch/src/setup-tests.ts | 4 +- opensearch/vitest.config.ts | 21 + package-lock.json | 13034 ++++++---------- package.json | 8 +- piechart/jest.config.ts | 24 - piechart/package.json | 2 +- piechart/src/setup-tests.ts | 4 +- piechart/vitest.config.ts | 21 + prometheus/jest.config.ts | 24 - prometheus/package.json | 2 +- .../display/list/MetricList.test.tsx | 8 +- .../filter/FilterInputs.test.tsx | 2 +- .../src/plugins/prometheus-datasource.test.ts | 2 +- .../plugin.test.ts | 33 +- prometheus/src/plugins/test/setup-tests.ts | 2 +- prometheus/src/setup-tests.ts | 4 +- prometheus/vitest.config.ts | 21 + pyroscope/jest.config.ts | 24 - pyroscope/package.json | 2 +- pyroscope/src/model/pyroscope-client.test.ts | 2 +- pyroscope/src/setup-tests.ts | 4 +- pyroscope/src/test/setup-tests.ts | 2 +- pyroscope/vitest.config.ts | 21 + scatterchart/jest.config.ts | 24 - scatterchart/package.json | 2 +- scatterchart/src/setup-tests.ts | 4 +- scatterchart/vitest.config.ts | 21 + splunk/jest.config.ts | 24 - splunk/package.json | 2 +- .../splunk-log-query/SplunkLogQuery.test.ts | 14 +- splunk/src/setup-tests.ts | 4 +- splunk/vitest.config.ts | 21 + statchart/jest.config.ts | 24 - statchart/package.json | 2 +- statchart/src/StatChartBase.test.tsx | 4 +- .../StatChartOptionsEditorSettings.test.tsx | 10 +- statchart/src/setup-tests.ts | 4 +- .../src/utils/calculate-font-size.test.ts | 14 +- statchart/vitest.config.ts | 21 + staticlistvariable/package.json | 2 +- staticlistvariable/vitest.config.ts | 21 + statushistorychart/jest.config.ts | 24 - statushistorychart/package.json | 2 +- statushistorychart/src/setup-tests.ts | 4 +- statushistorychart/vitest.config.ts | 21 + table/jest.config.ts | 24 - table/package.json | 2 +- .../components/TableColumnsEditor.test.tsx | 8 +- table/src/components/TablePanel.test.tsx | 18 +- table/src/setup-tests.ts | 4 +- table/vitest.config.ts | 21 + tempo/jest.config.ts | 24 - tempo/package.json | 2 +- tempo/src/model/tempo-client.test.ts | 2 +- tempo/src/plugins/plugin.test.ts | 21 +- .../tempo-trace-query/get-trace-data.test.ts | 31 +- tempo/src/setup-tests.ts | 4 +- tempo/src/test/setup-tests.ts | 2 +- tempo/vitest.config.ts | 21 + timeserieschart/jest.config.ts | 24 - timeserieschart/package.json | 2 +- .../src/TimeSeriesChartPanel.test.tsx | 6 +- .../src/VisualOptionsEditor.test.tsx | 6 +- timeserieschart/src/setup-tests.ts | 4 +- .../src/utils/timezone-formatter.test.ts | 4 +- timeserieschart/vitest.config.ts | 21 + timeseriestable/jest.config.ts | 24 - timeseriestable/package.json | 2 +- timeseriestable/src/setup-tests.ts | 4 +- timeseriestable/vitest.config.ts | 21 + tracetable/jest.config.ts | 24 - tracetable/package.json | 2 +- tracetable/src/setup-tests.ts | 4 +- tracetable/vitest.config.ts | 21 + tracingganttchart/jest.config.ts | 24 - tracingganttchart/package.json | 2 +- .../GanttTable/GanttTable.test.tsx | 2 +- tracingganttchart/src/setup-tests.ts | 4 +- tracingganttchart/vitest.config.ts | 21 + tsconfig.base.json | 1 + turbo.json | 4 +- victorialogs/jest.config.ts | 24 - victorialogs/package.json | 2 +- .../victorialogs-log-query/types.test.ts | 17 +- .../types.test.ts | 19 +- victorialogs/src/setup-tests.ts | 4 +- victorialogs/vitest.config.ts | 21 + stylesMock.js => vitest.setup.ts | 3 +- vitest.shared.ts | 61 + 171 files changed, 6253 insertions(+), 8950 deletions(-) delete mode 100644 alertmanager/jest.config.ts rename jaeger/jest.config.ts => alertmanager/vitest.config.ts (69%) delete mode 100644 barchart/jest.config.ts rename clickhouse/jest.config.ts => barchart/vitest.config.ts (69%) rename flamechart/jest.config.ts => clickhouse/vitest.config.ts (69%) create mode 100644 datasourcevariable/vitest.config.ts create mode 100644 flamechart/vitest.config.ts delete mode 100644 gaugechart/jest.config.ts create mode 100644 gaugechart/vitest.config.ts delete mode 100644 greptimedb/jest.config.ts create mode 100644 greptimedb/vitest.config.ts delete mode 100644 heatmapchart/jest.config.ts create mode 100644 heatmapchart/vitest.config.ts delete mode 100644 histogramchart/jest.config.ts create mode 100644 histogramchart/vitest.config.ts create mode 100644 jaeger/vitest.config.ts delete mode 100644 jest.shared.ts delete mode 100644 logexplorer/jest.config.ts create mode 100644 logexplorer/vitest.config.ts delete mode 100644 logstable/jest.config.ts create mode 100644 logstable/vitest.config.ts delete mode 100644 loki/jest.config.ts create mode 100644 loki/vitest.config.ts delete mode 100644 markdown/jest.config.ts create mode 100644 markdown/vitest.config.ts delete mode 100644 opensearch/jest.config.ts create mode 100644 opensearch/vitest.config.ts delete mode 100644 piechart/jest.config.ts create mode 100644 piechart/vitest.config.ts delete mode 100644 prometheus/jest.config.ts create mode 100644 prometheus/vitest.config.ts delete mode 100644 pyroscope/jest.config.ts create mode 100644 pyroscope/vitest.config.ts delete mode 100644 scatterchart/jest.config.ts create mode 100644 scatterchart/vitest.config.ts delete mode 100644 splunk/jest.config.ts create mode 100644 splunk/vitest.config.ts delete mode 100644 statchart/jest.config.ts create mode 100644 statchart/vitest.config.ts create mode 100644 staticlistvariable/vitest.config.ts delete mode 100644 statushistorychart/jest.config.ts create mode 100644 statushistorychart/vitest.config.ts delete mode 100644 table/jest.config.ts create mode 100644 table/vitest.config.ts delete mode 100644 tempo/jest.config.ts create mode 100644 tempo/vitest.config.ts delete mode 100644 timeserieschart/jest.config.ts create mode 100644 timeserieschart/vitest.config.ts delete mode 100644 timeseriestable/jest.config.ts create mode 100644 timeseriestable/vitest.config.ts delete mode 100644 tracetable/jest.config.ts create mode 100644 tracetable/vitest.config.ts delete mode 100644 tracingganttchart/jest.config.ts create mode 100644 tracingganttchart/vitest.config.ts delete mode 100644 victorialogs/jest.config.ts create mode 100644 victorialogs/vitest.config.ts rename stylesMock.js => vitest.setup.ts (78%) create mode 100644 vitest.shared.ts diff --git a/.oxlintrc.json b/.oxlintrc.json index 9826e6d46..314540119 100644 --- a/.oxlintrc.json +++ b/.oxlintrc.json @@ -10,7 +10,7 @@ "env": { "commonjs": true, "es6": true, - "jest": true, + "vitest": true, "node": true, "browser": true }, diff --git a/alertmanager/jest.config.ts b/alertmanager/jest.config.ts deleted file mode 100644 index 16027133b..000000000 --- a/alertmanager/jest.config.ts +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright The Perses Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import type { Config } from '@jest/types'; - -import shared from '../jest.shared'; - -const jestConfig: Config.InitialOptions = { - ...shared, - - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], -}; - -export default jestConfig; diff --git a/alertmanager/package.json b/alertmanager/package.json index ae4e331da..4dbd0a2de 100644 --- a/alertmanager/package.json +++ b/alertmanager/package.json @@ -19,7 +19,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/alertmanager/src/model/alertmanager-client.test.ts b/alertmanager/src/model/alertmanager-client.test.ts index 8a9c5ec86..15c780701 100644 --- a/alertmanager/src/model/alertmanager-client.test.ts +++ b/alertmanager/src/model/alertmanager-client.test.ts @@ -20,9 +20,9 @@ type FetchResponse = { json: () => Promise; }; -const fetchMock = jest.fn(); -jest.mock('@perses-dev/client', () => ({ - ...jest.requireActual('@perses-dev/client'), +const fetchMock = vi.hoisted(() => vi.fn()); +vi.mock('@perses-dev/client', async (importOriginal) => ({ + ...(await importOriginal()), fetch: (...args: unknown[]): Promise => fetchMock(...args), })); diff --git a/alertmanager/src/plugins/alertmanager-alerts-query/get-alerts-data.test.ts b/alertmanager/src/plugins/alertmanager-alerts-query/get-alerts-data.test.ts index 21235485f..c5929822c 100644 --- a/alertmanager/src/plugins/alertmanager-alerts-query/get-alerts-data.test.ts +++ b/alertmanager/src/plugins/alertmanager-alerts-query/get-alerts-data.test.ts @@ -46,7 +46,7 @@ const mockAlerts: GettableAlert[] = [ const makeClient = (): AlertManagerClient => { const client = AlertManagerDatasource.createClient(datasource, {}); - client.getAlerts = jest.fn(async () => mockAlerts); + client.getAlerts = vi.fn(async () => mockAlerts); return client; }; @@ -54,15 +54,15 @@ function createContext(client: AlertManagerClient): AlertsQueryContext { return { variableState: {}, datasourceStore: { - getDatasource: jest.fn(), - getDatasourceClient: jest.fn(() => + getDatasource: vi.fn(), + getDatasourceClient: vi.fn(() => Promise.resolve(client), ) as AlertsQueryContext['datasourceStore']['getDatasourceClient'], - listDatasourceSelectItems: jest.fn(async () => []), - getLocalDatasources: jest.fn(), - setLocalDatasources: jest.fn(), - getSavedDatasources: jest.fn(), - setSavedDatasources: jest.fn(), + listDatasourceSelectItems: vi.fn(async () => []), + getLocalDatasources: vi.fn(), + setLocalDatasources: vi.fn(), + getSavedDatasources: vi.fn(), + setSavedDatasources: vi.fn(), }, }; } @@ -127,7 +127,7 @@ describe('getAlertsData', () => { it('returns empty alerts array when API returns empty', async () => { const client = makeClient(); - client.getAlerts = jest.fn(async () => []); + client.getAlerts = vi.fn(async () => []); const spec: AlertManagerAlertsQuerySpec = {}; const context = createContext(client); diff --git a/alertmanager/src/plugins/alertmanager-silences-query/get-silences-data.test.ts b/alertmanager/src/plugins/alertmanager-silences-query/get-silences-data.test.ts index a3f4695d9..8a4a37d0a 100644 --- a/alertmanager/src/plugins/alertmanager-silences-query/get-silences-data.test.ts +++ b/alertmanager/src/plugins/alertmanager-silences-query/get-silences-data.test.ts @@ -48,7 +48,7 @@ const mockSilences = [ const makeClient = (): AlertManagerClient => { const client = AlertManagerDatasource.createClient(datasource, {}); - client.getSilences = jest.fn(async () => mockSilences); + client.getSilences = vi.fn(async () => mockSilences); return client; }; @@ -56,15 +56,15 @@ function createContext(client: AlertManagerClient): SilencesQueryContext { return { variableState: {}, datasourceStore: { - getDatasource: jest.fn(), - getDatasourceClient: jest.fn(() => + getDatasource: vi.fn(), + getDatasourceClient: vi.fn(() => Promise.resolve(client), ) as SilencesQueryContext['datasourceStore']['getDatasourceClient'], - listDatasourceSelectItems: jest.fn(async () => []), - getLocalDatasources: jest.fn(), - setLocalDatasources: jest.fn(), - getSavedDatasources: jest.fn(), - setSavedDatasources: jest.fn(), + listDatasourceSelectItems: vi.fn(async () => []), + getLocalDatasources: vi.fn(), + setLocalDatasources: vi.fn(), + getSavedDatasources: vi.fn(), + setSavedDatasources: vi.fn(), }, }; } @@ -118,7 +118,7 @@ describe('getSilencesData', () => { it('returns empty silences array when API returns empty', async () => { const client = makeClient(); - client.getSilences = jest.fn(async () => []); + client.getSilences = vi.fn(async () => []); const spec: AlertManagerSilencesQuerySpec = {}; const context = createContext(client); diff --git a/alertmanager/src/setup-tests.ts b/alertmanager/src/setup-tests.ts index 8cb37242a..69c9e8a60 100644 --- a/alertmanager/src/setup-tests.ts +++ b/alertmanager/src/setup-tests.ts @@ -11,6 +11,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; -jest.mock('echarts/core'); +vi.mock('echarts/core'); diff --git a/jaeger/jest.config.ts b/alertmanager/vitest.config.ts similarity index 69% rename from jaeger/jest.config.ts rename to alertmanager/vitest.config.ts index 89782643e..59830b049 100644 --- a/jaeger/jest.config.ts +++ b/alertmanager/vitest.config.ts @@ -11,13 +11,11 @@ // See the License for the specific language governing permissions and // limitations under the License. -import type { Config } from '@jest/types'; +import { resolve } from 'node:path'; -import shared from '../jest.shared'; +import { definePackageVitestConfig } from '../vitest.shared'; -const jestConfig: Config.InitialOptions = { - ...shared, - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], -}; - -export default jestConfig; +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/barchart/jest.config.ts b/barchart/jest.config.ts deleted file mode 100644 index 16027133b..000000000 --- a/barchart/jest.config.ts +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright The Perses Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import type { Config } from '@jest/types'; - -import shared from '../jest.shared'; - -const jestConfig: Config.InitialOptions = { - ...shared, - - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], -}; - -export default jestConfig; diff --git a/barchart/package.json b/barchart/package.json index a33174756..e462f26e4 100644 --- a/barchart/package.json +++ b/barchart/package.json @@ -18,7 +18,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/barchart/src/BarChartOptionsEditorSettings.test.tsx b/barchart/src/BarChartOptionsEditorSettings.test.tsx index 24f4463e6..85aee1c0e 100644 --- a/barchart/src/BarChartOptionsEditorSettings.test.tsx +++ b/barchart/src/BarChartOptionsEditorSettings.test.tsx @@ -19,7 +19,7 @@ import { BarChartOptions } from './bar-chart-model'; import { BarChartOptionsEditorSettings } from './BarChartOptionsEditorSettings'; describe('BarChartOptionsEditorSettings', () => { - const renderBarChartOptionsEditorSettings = (value?: BarChartOptions, onChange = jest.fn()): void => { + const renderBarChartOptionsEditorSettings = (value?: BarChartOptions, onChange = vi.fn()): void => { render( { }; it('can modify unit', () => { - const onChange = jest.fn(); + const onChange = vi.fn(); renderBarChartOptionsEditorSettings(undefined, onChange); const unitSelector = screen.getByRole('combobox', { name: 'Unit' }); userEvent.click(unitSelector); @@ -58,7 +58,7 @@ describe('BarChartOptionsEditorSettings', () => { }); it('can modify calculation', () => { - const onChange = jest.fn(); + const onChange = vi.fn(); renderBarChartOptionsEditorSettings(undefined, onChange); const calcSelector = screen.getByRole('combobox', { name: 'Calculation' }); userEvent.click(calcSelector); @@ -74,7 +74,7 @@ describe('BarChartOptionsEditorSettings', () => { }); it('can modify sort order', () => { - const onChange = jest.fn(); + const onChange = vi.fn(); renderBarChartOptionsEditorSettings(undefined, onChange); const sortSelector = screen.getByRole('combobox', { name: 'Sort' }); userEvent.click(sortSelector); @@ -90,7 +90,7 @@ describe('BarChartOptionsEditorSettings', () => { }); it('can modify mode', () => { - const onChange = jest.fn(); + const onChange = vi.fn(); renderBarChartOptionsEditorSettings(undefined, onChange); const modeSelector = screen.getByRole('combobox', { name: 'Mode' }); userEvent.click(modeSelector); @@ -136,7 +136,7 @@ describe('BarChartOptionsEditorSettings', () => { }); it('should reset settings to defaults', () => { - const onChange = jest.fn(); + const onChange = vi.fn(); renderBarChartOptionsEditorSettings( { format: { @@ -164,7 +164,7 @@ describe('BarChartOptionsEditorSettings', () => { }); it('can add a color override', () => { - const onChange = jest.fn(); + const onChange = vi.fn(); renderBarChartOptionsEditorSettings(undefined, onChange); const addButton = screen.getByRole('button', { name: 'Add Color Override' }); userEvent.click(addButton); @@ -176,7 +176,7 @@ describe('BarChartOptionsEditorSettings', () => { }); it('can remove a color override', () => { - const onChange = jest.fn(); + const onChange = vi.fn(); renderBarChartOptionsEditorSettings( { format: { diff --git a/barchart/src/setup-tests.ts b/barchart/src/setup-tests.ts index d43de32e0..78af56004 100644 --- a/barchart/src/setup-tests.ts +++ b/barchart/src/setup-tests.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; // Always mock e-charts during tests since we don't have a proper canvas in jsdom -jest.mock('echarts/core'); +vi.mock('echarts/core'); diff --git a/clickhouse/jest.config.ts b/barchart/vitest.config.ts similarity index 69% rename from clickhouse/jest.config.ts rename to barchart/vitest.config.ts index 16027133b..59830b049 100644 --- a/clickhouse/jest.config.ts +++ b/barchart/vitest.config.ts @@ -11,14 +11,11 @@ // See the License for the specific language governing permissions and // limitations under the License. -import type { Config } from '@jest/types'; +import { resolve } from 'node:path'; -import shared from '../jest.shared'; +import { definePackageVitestConfig } from '../vitest.shared'; -const jestConfig: Config.InitialOptions = { - ...shared, - - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], -}; - -export default jestConfig; +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/clickhouse/package.json b/clickhouse/package.json index ba46e1932..d981db570 100644 --- a/clickhouse/package.json +++ b/clickhouse/package.json @@ -10,7 +10,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/clickhouse/src/model/click-house-client.test.ts b/clickhouse/src/model/click-house-client.test.ts index a0b2f04f2..65ac2de3a 100644 --- a/clickhouse/src/model/click-house-client.test.ts +++ b/clickhouse/src/model/click-house-client.test.ts @@ -15,7 +15,7 @@ import { formatClickHouseDateTime, query, replaceTimeRangePlaceholders } from '. describe('ClickHouse client', () => { afterEach(() => { - jest.restoreAllMocks(); + vi.restoreAllMocks(); }); it('should replace time range placeholders', () => { @@ -33,9 +33,9 @@ describe('ClickHouse client', () => { }); it('should send interpolated query to ClickHouse', async () => { - const fetchMock = jest.fn>, [string, RequestInit?]>(async () => ({ + const fetchMock = vi.fn<(url: string, init?: RequestInit) => Promise>>(async () => ({ ok: true, - json: jest.fn(async () => ({ data: [] })), + json: vi.fn(async () => ({ data: [] })), })); global.fetch = fetchMock as unknown as typeof fetch; diff --git a/clickhouse/src/queries/click-house-log-query/click-house-log-query-types.test.ts b/clickhouse/src/queries/click-house-log-query/click-house-log-query-types.test.ts index ef723eec7..c0e8329d9 100644 --- a/clickhouse/src/queries/click-house-log-query/click-house-log-query-types.test.ts +++ b/clickhouse/src/queries/click-house-log-query/click-house-log-query-types.test.ts @@ -12,6 +12,7 @@ // limitations under the License. import { LogQueryContext } from '@perses-dev/plugin-system'; +import type { Mock } from 'vitest'; import { ClickHouseDatasource, ClickHouseDatasourceSpec } from '../../datasources/click-house-datasource'; import { ClickHouseQueryResponse } from '../../model/click-house-client'; @@ -24,7 +25,7 @@ const datasource: ClickHouseDatasourceSpec = { const clickhouseStubClient = ClickHouseDatasource.createClient(datasource, {}); // Mock query -clickhouseStubClient.query = jest.fn(async () => { +clickhouseStubClient.query = vi.fn(async () => { const stubResponse: ClickHouseQueryResponse = { status: 'success', data: [], @@ -32,20 +33,20 @@ clickhouseStubClient.query = jest.fn(async () => { return stubResponse as ClickHouseQueryResponse; }); -const getDatasourceClient: jest.Mock = jest.fn(() => { +const getDatasourceClient: Mock = vi.fn(() => { return clickhouseStubClient; }); const createStubContext = (): LogQueryContext => { const stubLogContext: LogQueryContext = { datasourceStore: { - getDatasource: jest.fn(), + getDatasource: vi.fn(), getDatasourceClient: getDatasourceClient, - listDatasourceSelectItems: jest.fn(), - getLocalDatasources: jest.fn(), - setLocalDatasources: jest.fn(), - getSavedDatasources: jest.fn(), - setSavedDatasources: jest.fn(), + listDatasourceSelectItems: vi.fn(), + getLocalDatasources: vi.fn(), + setLocalDatasources: vi.fn(), + getSavedDatasources: vi.fn(), + setSavedDatasources: vi.fn(), }, timeRange: { end: new Date('2025-01-02T00:00:00.000Z'), diff --git a/clickhouse/src/queries/click-house-time-series-query/click-house-query-types.test.ts b/clickhouse/src/queries/click-house-time-series-query/click-house-query-types.test.ts index c3db093d2..8778cc4bb 100644 --- a/clickhouse/src/queries/click-house-time-series-query/click-house-query-types.test.ts +++ b/clickhouse/src/queries/click-house-time-series-query/click-house-query-types.test.ts @@ -13,10 +13,11 @@ // TODO: This should be fixed globally in the test setup -jest.mock('echarts/core'); +vi.mock('echarts/core'); import { TimeSeriesQueryContext } from '@perses-dev/plugin-system'; import { DatasourceSpec } from '@perses-dev/spec'; +import type { Mock } from 'vitest'; import { ClickHouseDatasource, ClickHouseDatasourceSpec } from '../../datasources'; import { ClickHouseQueryResponse } from '../../model/click-house-client'; @@ -29,7 +30,7 @@ const datasource: ClickHouseDatasourceSpec = { const clickhouseStubClient = ClickHouseDatasource.createClient(datasource, {}); // Mock query to only return ClickHouse "data" -clickhouseStubClient.query = jest.fn(async () => { +clickhouseStubClient.query = vi.fn(async () => { const stubResponse: ClickHouseQueryResponse = { status: 'success', data: [ @@ -40,11 +41,11 @@ clickhouseStubClient.query = jest.fn(async () => { return stubResponse as ClickHouseQueryResponse; }); -const getDatasourceClient: jest.Mock = jest.fn(() => { +const getDatasourceClient: Mock = vi.fn(() => { return clickhouseStubClient; }); -const getDatasource: jest.Mock = jest.fn((): DatasourceSpec => { +const getDatasource: Mock = vi.fn((): DatasourceSpec => { return { default: false, plugin: { @@ -59,11 +60,11 @@ const createStubContext = (): TimeSeriesQueryContext => { datasourceStore: { getDatasource: getDatasource, getDatasourceClient: getDatasourceClient, - listDatasourceSelectItems: jest.fn(), - getLocalDatasources: jest.fn(), - setLocalDatasources: jest.fn(), - getSavedDatasources: jest.fn(), - setSavedDatasources: jest.fn(), + listDatasourceSelectItems: vi.fn(), + getLocalDatasources: vi.fn(), + setLocalDatasources: vi.fn(), + getSavedDatasources: vi.fn(), + setSavedDatasources: vi.fn(), }, timeRange: { end: new Date('2025-01-02T00:00:00.000Z'), @@ -129,7 +130,7 @@ describe('ClickHouseTimeSeriesQuery', () => { }); it('should infer daily query step from returned timestamps', async () => { - (clickhouseStubClient.query as jest.Mock).mockResolvedValueOnce({ + (clickhouseStubClient.query as Mock).mockResolvedValueOnce({ status: 'success', data: [ { time: '2026-01-01 22:00:00', flights: 80 }, @@ -160,7 +161,7 @@ describe('ClickHouseTimeSeriesQuery', () => { }); it('should keep timezone daily buckets daily across daylight saving time changes', async () => { - (clickhouseStubClient.query as jest.Mock).mockResolvedValueOnce({ + (clickhouseStubClient.query as Mock).mockResolvedValueOnce({ status: 'success', data: [ { time: '2026-03-28 22:00:00', flights: 80 }, diff --git a/clickhouse/src/setup-tests.ts b/clickhouse/src/setup-tests.ts index d43de32e0..78af56004 100644 --- a/clickhouse/src/setup-tests.ts +++ b/clickhouse/src/setup-tests.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; // Always mock e-charts during tests since we don't have a proper canvas in jsdom -jest.mock('echarts/core'); +vi.mock('echarts/core'); diff --git a/flamechart/jest.config.ts b/clickhouse/vitest.config.ts similarity index 69% rename from flamechart/jest.config.ts rename to clickhouse/vitest.config.ts index 16027133b..59830b049 100644 --- a/flamechart/jest.config.ts +++ b/clickhouse/vitest.config.ts @@ -11,14 +11,11 @@ // See the License for the specific language governing permissions and // limitations under the License. -import type { Config } from '@jest/types'; +import { resolve } from 'node:path'; -import shared from '../jest.shared'; +import { definePackageVitestConfig } from '../vitest.shared'; -const jestConfig: Config.InitialOptions = { - ...shared, - - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], -}; - -export default jestConfig; +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/datasourcevariable/package.json b/datasourcevariable/package.json index f7d39a04e..85163f32f 100644 --- a/datasourcevariable/package.json +++ b/datasourcevariable/package.json @@ -18,7 +18,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest --passWithNoTests", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/datasourcevariable/vitest.config.ts b/datasourcevariable/vitest.config.ts new file mode 100644 index 000000000..d6b9f6786 --- /dev/null +++ b/datasourcevariable/vitest.config.ts @@ -0,0 +1,21 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { definePackageVitestConfig } from '../vitest.shared'; + +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + passWithNoTests: true, +}); diff --git a/flamechart/package.json b/flamechart/package.json index 0e6a0386e..dbe654906 100644 --- a/flamechart/package.json +++ b/flamechart/package.json @@ -18,7 +18,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/flamechart/src/setup-tests.ts b/flamechart/src/setup-tests.ts index d43de32e0..78af56004 100644 --- a/flamechart/src/setup-tests.ts +++ b/flamechart/src/setup-tests.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; // Always mock e-charts during tests since we don't have a proper canvas in jsdom -jest.mock('echarts/core'); +vi.mock('echarts/core'); diff --git a/flamechart/vitest.config.ts b/flamechart/vitest.config.ts new file mode 100644 index 000000000..59830b049 --- /dev/null +++ b/flamechart/vitest.config.ts @@ -0,0 +1,21 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { definePackageVitestConfig } from '../vitest.shared'; + +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/gaugechart/jest.config.ts b/gaugechart/jest.config.ts deleted file mode 100644 index 16027133b..000000000 --- a/gaugechart/jest.config.ts +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright The Perses Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import type { Config } from '@jest/types'; - -import shared from '../jest.shared'; - -const jestConfig: Config.InitialOptions = { - ...shared, - - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], -}; - -export default jestConfig; diff --git a/gaugechart/package.json b/gaugechart/package.json index c20fc7eaa..4ab576f22 100644 --- a/gaugechart/package.json +++ b/gaugechart/package.json @@ -18,7 +18,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/gaugechart/src/GaugeChartOptionsEditorSettings.test.tsx b/gaugechart/src/GaugeChartOptionsEditorSettings.test.tsx index 4593d21a1..9abfbfc49 100644 --- a/gaugechart/src/GaugeChartOptionsEditorSettings.test.tsx +++ b/gaugechart/src/GaugeChartOptionsEditorSettings.test.tsx @@ -20,7 +20,7 @@ import { GaugeChartOptions } from './gauge-chart-model'; import { GaugeChartOptionsEditorSettings } from './GaugeChartOptionsEditorSettings'; describe('GaugeChartOptionsEditorSettings', () => { - const renderGaugeChartOptionsEditorSettings = (value: GaugeChartOptions, onChange = jest.fn()): void => { + const renderGaugeChartOptionsEditorSettings = (value: GaugeChartOptions, onChange = vi.fn()): void => { render( @@ -29,7 +29,7 @@ describe('GaugeChartOptionsEditorSettings', () => { }; it('can modify unit', () => { - const onChange = jest.fn(); + const onChange = vi.fn(); renderGaugeChartOptionsEditorSettings( { format: { @@ -55,7 +55,7 @@ describe('GaugeChartOptionsEditorSettings', () => { }); it('can modify calculation', () => { - const onChange = jest.fn(); + const onChange = vi.fn(); renderGaugeChartOptionsEditorSettings( { format: { @@ -80,7 +80,7 @@ describe('GaugeChartOptionsEditorSettings', () => { it('can modify max', async () => { let maxValue: number | undefined = undefined; - const onChange = jest.fn((e) => { + const onChange = vi.fn((e) => { maxValue = e.max; }); renderGaugeChartOptionsEditorSettings( diff --git a/gaugechart/src/setup-tests.ts b/gaugechart/src/setup-tests.ts index d43de32e0..78af56004 100644 --- a/gaugechart/src/setup-tests.ts +++ b/gaugechart/src/setup-tests.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; // Always mock e-charts during tests since we don't have a proper canvas in jsdom -jest.mock('echarts/core'); +vi.mock('echarts/core'); diff --git a/gaugechart/vitest.config.ts b/gaugechart/vitest.config.ts new file mode 100644 index 000000000..59830b049 --- /dev/null +++ b/gaugechart/vitest.config.ts @@ -0,0 +1,21 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { definePackageVitestConfig } from '../vitest.shared'; + +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/greptimedb/jest.config.ts b/greptimedb/jest.config.ts deleted file mode 100644 index 16027133b..000000000 --- a/greptimedb/jest.config.ts +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright The Perses Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import type { Config } from '@jest/types'; - -import shared from '../jest.shared'; - -const jestConfig: Config.InitialOptions = { - ...shared, - - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], -}; - -export default jestConfig; diff --git a/greptimedb/package.json b/greptimedb/package.json index 3817900e4..6772e31c6 100644 --- a/greptimedb/package.json +++ b/greptimedb/package.json @@ -10,7 +10,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/greptimedb/src/datasources/greptimedb-datasource/GreptimeDBDatasource.test.ts b/greptimedb/src/datasources/greptimedb-datasource/GreptimeDBDatasource.test.ts index a5ad60414..dbdc41d08 100644 --- a/greptimedb/src/datasources/greptimedb-datasource/GreptimeDBDatasource.test.ts +++ b/greptimedb/src/datasources/greptimedb-datasource/GreptimeDBDatasource.test.ts @@ -11,18 +11,20 @@ // See the License for the specific language governing permissions and // limitations under the License. +import type { MockedFunction } from 'vitest'; + import { greptimedbQuery } from '../../model/greptimedb-client'; import { GreptimeDBDatasource } from './GreptimeDBDatasource'; -jest.mock('../../model/greptimedb-client', () => ({ - greptimedbQuery: jest.fn(), +vi.mock('../../model/greptimedb-client', () => ({ + greptimedbQuery: vi.fn(), })); -const mockedQuery = greptimedbQuery as jest.MockedFunction; +const mockedQuery = greptimedbQuery as MockedFunction; describe('GreptimeDBDatasource.createClient', () => { beforeEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); mockedQuery.mockResolvedValue({ status: 'success', data: { output: [] } }); }); diff --git a/greptimedb/src/model/greptimedb-client.test.ts b/greptimedb/src/model/greptimedb-client.test.ts index 7a10c7222..57a43edfe 100644 --- a/greptimedb/src/model/greptimedb-client.test.ts +++ b/greptimedb/src/model/greptimedb-client.test.ts @@ -11,10 +11,12 @@ // See the License for the specific language governing permissions and // limitations under the License. +import type { MockedFunction } from 'vitest'; + import { greptimedbQuery } from './greptimedb-client'; -global.fetch = jest.fn(); -const mockFetch = fetch as jest.MockedFunction; +global.fetch = vi.fn(); +const mockFetch = fetch as MockedFunction; const queryOptions = { datasourceUrl: 'http://greptimedb.test' }; diff --git a/greptimedb/src/queries/greptimedb-log-query/greptimedb-log-query-types.test.ts b/greptimedb/src/queries/greptimedb-log-query/greptimedb-log-query-types.test.ts index 4896c36f7..e33f7012d 100644 --- a/greptimedb/src/queries/greptimedb-log-query/greptimedb-log-query-types.test.ts +++ b/greptimedb/src/queries/greptimedb-log-query/greptimedb-log-query-types.test.ts @@ -12,6 +12,7 @@ // limitations under the License. import { DatasourceSpec } from '@perses-dev/spec'; +import type { Mock } from 'vitest'; import { GreptimeDBDatasource, GreptimeDBDatasourceSpec } from '../../datasources'; import { GreptimeDBQueryResponse } from '../../model/greptimedb-client'; @@ -24,17 +25,17 @@ const datasource: GreptimeDBDatasourceSpec = { const greptimedbStubClient = GreptimeDBDatasource.createClient(datasource, {}); -const mockedQuery = jest.fn(); +const mockedQuery = vi.fn(); greptimedbStubClient.query = mockedQuery; -const getDatasourceClient: jest.Mock = jest.fn(() => { +const getDatasourceClient: Mock = vi.fn(() => { return greptimedbStubClient; }); const createStubContext = (): GreptimeDBQueryContext => { const stubLogContext: Partial = { datasourceStore: { - getDatasource: jest.fn(async (): Promise => { + getDatasource: vi.fn(async (): Promise => { return Promise.resolve({ default: false, plugin: { @@ -44,11 +45,11 @@ const createStubContext = (): GreptimeDBQueryContext => { } as DatasourceSpec); }), getDatasourceClient: getDatasourceClient, - listDatasourceSelectItems: jest.fn(), - getLocalDatasources: jest.fn(), - setLocalDatasources: jest.fn(), - getSavedDatasources: jest.fn(), - setSavedDatasources: jest.fn(), + listDatasourceSelectItems: vi.fn(), + getLocalDatasources: vi.fn(), + setLocalDatasources: vi.fn(), + getSavedDatasources: vi.fn(), + setSavedDatasources: vi.fn(), }, timeRange: { start: new Date('2025-01-01T00:00:00.000Z'), diff --git a/greptimedb/src/queries/greptimedb-time-series-query/greptimedb-query-types.test.ts b/greptimedb/src/queries/greptimedb-time-series-query/greptimedb-query-types.test.ts index 79188cae7..7fb9ff8fc 100644 --- a/greptimedb/src/queries/greptimedb-time-series-query/greptimedb-query-types.test.ts +++ b/greptimedb/src/queries/greptimedb-time-series-query/greptimedb-query-types.test.ts @@ -13,6 +13,7 @@ import { TimeSeriesQueryContext } from '@perses-dev/plugin-system'; import { DatasourceSpec } from '@perses-dev/spec'; +import type { Mock } from 'vitest'; import { GreptimeDBDatasource, GreptimeDBDatasourceSpec } from '../../datasources'; import { GreptimeDBQueryResponse } from '../../model/greptimedb-client'; @@ -24,7 +25,7 @@ const datasource: GreptimeDBDatasourceSpec = { const greptimedbStubClient = GreptimeDBDatasource.createClient(datasource, {}); -greptimedbStubClient.query = jest.fn(async () => { +greptimedbStubClient.query = vi.fn(async () => { const stubResponse: GreptimeDBQueryResponse = { status: 'success', data: { @@ -43,11 +44,11 @@ greptimedbStubClient.query = jest.fn(async () => { return stubResponse as GreptimeDBQueryResponse; }); -const getDatasourceClient: jest.Mock = jest.fn(() => { +const getDatasourceClient: Mock = vi.fn(() => { return greptimedbStubClient; }); -const getDatasource: jest.Mock = jest.fn((): DatasourceSpec => { +const getDatasource: Mock = vi.fn((): DatasourceSpec => { return { default: false, plugin: { @@ -62,11 +63,11 @@ const createStubContext = (): TimeSeriesQueryContext => { datasourceStore: { getDatasource: getDatasource, getDatasourceClient: getDatasourceClient, - listDatasourceSelectItems: jest.fn(), - getLocalDatasources: jest.fn(), - setLocalDatasources: jest.fn(), - getSavedDatasources: jest.fn(), - setSavedDatasources: jest.fn(), + listDatasourceSelectItems: vi.fn(), + getLocalDatasources: vi.fn(), + setLocalDatasources: vi.fn(), + getSavedDatasources: vi.fn(), + setSavedDatasources: vi.fn(), }, timeRange: { end: new Date('01-01-2025'), @@ -101,7 +102,7 @@ describe('GreptimeDBTimeSeriesQuery', () => { }); it('should support stat query without time column', async () => { - greptimedbStubClient.query = jest.fn(async () => { + greptimedbStubClient.query = vi.fn(async () => { const stubResponse: GreptimeDBQueryResponse = { status: 'success', data: { @@ -133,7 +134,7 @@ describe('GreptimeDBTimeSeriesQuery', () => { }); it('should split rows into multiple series by labels', async () => { - greptimedbStubClient.query = jest.fn(async () => { + greptimedbStubClient.query = vi.fn(async () => { const stubResponse: GreptimeDBQueryResponse = { status: 'success', data: { diff --git a/greptimedb/src/queries/greptimedb-trace-query/greptimedb-trace-query.test.ts b/greptimedb/src/queries/greptimedb-trace-query/greptimedb-trace-query.test.ts index 078fa1670..fe3cc3d72 100644 --- a/greptimedb/src/queries/greptimedb-trace-query/greptimedb-trace-query.test.ts +++ b/greptimedb/src/queries/greptimedb-trace-query/greptimedb-trace-query.test.ts @@ -13,6 +13,7 @@ import { TraceQueryContext } from '@perses-dev/plugin-system'; import { DatasourceSpec } from '@perses-dev/spec'; +import type { Mock } from 'vitest'; import { GreptimeDBDatasource, GreptimeDBDatasourceSpec } from '../../datasources'; import { GreptimeDBQueryResponse } from '../../model/greptimedb-client'; @@ -23,17 +24,17 @@ const datasource: GreptimeDBDatasourceSpec = { }; const greptimedbStubClient = GreptimeDBDatasource.createClient(datasource, {}); -const mockedQuery = jest.fn(); +const mockedQuery = vi.fn(); greptimedbStubClient.query = mockedQuery; -const getDatasourceClient: jest.Mock = jest.fn(() => { +const getDatasourceClient: Mock = vi.fn(() => { return greptimedbStubClient; }); const createStubContext = (variableState: TraceQueryContext['variableState'] = {}): TraceQueryContext => { const stubTraceContext: Partial = { datasourceStore: { - getDatasource: jest.fn(async (): Promise => { + getDatasource: vi.fn(async (): Promise => { return Promise.resolve({ default: false, plugin: { @@ -43,11 +44,11 @@ const createStubContext = (variableState: TraceQueryContext['variableState'] = { } as DatasourceSpec); }), getDatasourceClient: getDatasourceClient, - listDatasourceSelectItems: jest.fn(), - getLocalDatasources: jest.fn(), - setLocalDatasources: jest.fn(), - getSavedDatasources: jest.fn(), - setSavedDatasources: jest.fn(), + listDatasourceSelectItems: vi.fn(), + getLocalDatasources: vi.fn(), + setLocalDatasources: vi.fn(), + getSavedDatasources: vi.fn(), + setSavedDatasources: vi.fn(), }, variableState, }; diff --git a/greptimedb/src/setup-tests.ts b/greptimedb/src/setup-tests.ts index d43de32e0..78af56004 100644 --- a/greptimedb/src/setup-tests.ts +++ b/greptimedb/src/setup-tests.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; // Always mock e-charts during tests since we don't have a proper canvas in jsdom -jest.mock('echarts/core'); +vi.mock('echarts/core'); diff --git a/greptimedb/vitest.config.ts b/greptimedb/vitest.config.ts new file mode 100644 index 000000000..59830b049 --- /dev/null +++ b/greptimedb/vitest.config.ts @@ -0,0 +1,21 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { definePackageVitestConfig } from '../vitest.shared'; + +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/heatmapchart/jest.config.ts b/heatmapchart/jest.config.ts deleted file mode 100644 index 16027133b..000000000 --- a/heatmapchart/jest.config.ts +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright The Perses Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import type { Config } from '@jest/types'; - -import shared from '../jest.shared'; - -const jestConfig: Config.InitialOptions = { - ...shared, - - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], -}; - -export default jestConfig; diff --git a/heatmapchart/package.json b/heatmapchart/package.json index 2181726d8..2ee1b59e2 100644 --- a/heatmapchart/package.json +++ b/heatmapchart/package.json @@ -18,7 +18,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/heatmapchart/src/components/HeatMapChartOptionsEditorSettings.test.tsx b/heatmapchart/src/components/HeatMapChartOptionsEditorSettings.test.tsx index e8d2cfc5a..9006eb51c 100644 --- a/heatmapchart/src/components/HeatMapChartOptionsEditorSettings.test.tsx +++ b/heatmapchart/src/components/HeatMapChartOptionsEditorSettings.test.tsx @@ -20,7 +20,7 @@ import { DEFAULT_FORMAT, HeatMapChartOptions } from '../heat-map-chart-model'; import { HeatMapChartOptionsEditorSettings } from './HeatMapChartOptionsEditorSettings'; describe('HeatMapChartOptionsEditorSettings', () => { - const renderHeatMapChartOptionsEditorSettings = (value: HeatMapChartOptions, onChange = jest.fn()): void => { + const renderHeatMapChartOptionsEditorSettings = (value: HeatMapChartOptions, onChange = vi.fn()): void => { render( @@ -30,7 +30,7 @@ describe('HeatMapChartOptionsEditorSettings', () => { it('can modify visual map', async () => { let showVisualMap: boolean | undefined = false; - const onChange = jest.fn((e) => { + const onChange = vi.fn((e) => { showVisualMap = e.showVisualMap; }); renderHeatMapChartOptionsEditorSettings( @@ -51,7 +51,7 @@ describe('HeatMapChartOptionsEditorSettings', () => { }); it('can modify y-axis log base', async () => { - const onChange = jest.fn(); + const onChange = vi.fn(); renderHeatMapChartOptionsEditorSettings( { yAxisFormat: DEFAULT_FORMAT, @@ -73,7 +73,7 @@ describe('HeatMapChartOptionsEditorSettings', () => { }); it('can clear y-axis log base to none', async () => { - const onChange = jest.fn(); + const onChange = vi.fn(); renderHeatMapChartOptionsEditorSettings( { yAxisFormat: DEFAULT_FORMAT, diff --git a/heatmapchart/src/setup-tests.ts b/heatmapchart/src/setup-tests.ts index d43de32e0..78af56004 100644 --- a/heatmapchart/src/setup-tests.ts +++ b/heatmapchart/src/setup-tests.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; // Always mock e-charts during tests since we don't have a proper canvas in jsdom -jest.mock('echarts/core'); +vi.mock('echarts/core'); diff --git a/heatmapchart/vitest.config.ts b/heatmapchart/vitest.config.ts new file mode 100644 index 000000000..59830b049 --- /dev/null +++ b/heatmapchart/vitest.config.ts @@ -0,0 +1,21 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { definePackageVitestConfig } from '../vitest.shared'; + +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/histogramchart/jest.config.ts b/histogramchart/jest.config.ts deleted file mode 100644 index 16027133b..000000000 --- a/histogramchart/jest.config.ts +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright The Perses Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import type { Config } from '@jest/types'; - -import shared from '../jest.shared'; - -const jestConfig: Config.InitialOptions = { - ...shared, - - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], -}; - -export default jestConfig; diff --git a/histogramchart/package.json b/histogramchart/package.json index 17c65732c..3d501bf58 100644 --- a/histogramchart/package.json +++ b/histogramchart/package.json @@ -18,7 +18,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/histogramchart/src/components/HistogramChartOptionsEditorSettings.test.tsx b/histogramchart/src/components/HistogramChartOptionsEditorSettings.test.tsx index 211a3897d..a0ce4e966 100644 --- a/histogramchart/src/components/HistogramChartOptionsEditorSettings.test.tsx +++ b/histogramchart/src/components/HistogramChartOptionsEditorSettings.test.tsx @@ -19,7 +19,7 @@ import { HistogramChartOptions } from '../histogram-chart-model'; import { HistogramChartOptionsEditorSettings } from './HistogramChartOptionsEditorSettings'; describe('HistogramChartOptionsEditorSettings', () => { - const renderHistogramChartOptionsEditorSettings = (value: HistogramChartOptions, onChange = jest.fn()): void => { + const renderHistogramChartOptionsEditorSettings = (value: HistogramChartOptions, onChange = vi.fn()): void => { render( @@ -28,7 +28,7 @@ describe('HistogramChartOptionsEditorSettings', () => { }; it('can modify unit', () => { - const onChange = jest.fn(); + const onChange = vi.fn(); renderHistogramChartOptionsEditorSettings( { format: { @@ -54,7 +54,7 @@ describe('HistogramChartOptionsEditorSettings', () => { it('can modify min', async () => { let minValue: number | undefined = undefined; - const onChange = jest.fn((e) => { + const onChange = vi.fn((e) => { minValue = e.min; }); renderHistogramChartOptionsEditorSettings( @@ -76,7 +76,7 @@ describe('HistogramChartOptionsEditorSettings', () => { it('can modify max', async () => { let maxValue: number | undefined = undefined; - const onChange = jest.fn((e) => { + const onChange = vi.fn((e) => { maxValue = e.max; }); renderHistogramChartOptionsEditorSettings( @@ -97,7 +97,7 @@ describe('HistogramChartOptionsEditorSettings', () => { }); it('can modify log base', async () => { - const onChange = jest.fn(); + const onChange = vi.fn(); renderHistogramChartOptionsEditorSettings( { format: { @@ -120,7 +120,7 @@ describe('HistogramChartOptionsEditorSettings', () => { }); it('can clear log base to none', async () => { - const onChange = jest.fn(); + const onChange = vi.fn(); renderHistogramChartOptionsEditorSettings( { format: { diff --git a/histogramchart/src/setup-tests.ts b/histogramchart/src/setup-tests.ts index d43de32e0..78af56004 100644 --- a/histogramchart/src/setup-tests.ts +++ b/histogramchart/src/setup-tests.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; // Always mock e-charts during tests since we don't have a proper canvas in jsdom -jest.mock('echarts/core'); +vi.mock('echarts/core'); diff --git a/histogramchart/vitest.config.ts b/histogramchart/vitest.config.ts new file mode 100644 index 000000000..59830b049 --- /dev/null +++ b/histogramchart/vitest.config.ts @@ -0,0 +1,21 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { definePackageVitestConfig } from '../vitest.shared'; + +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/jaeger/package.json b/jaeger/package.json index 3e5856281..0eee20bc9 100644 --- a/jaeger/package.json +++ b/jaeger/package.json @@ -18,7 +18,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/jaeger/src/model/jaeger-client.test.ts b/jaeger/src/model/jaeger-client.test.ts index f7259bf40..f9bae6a28 100644 --- a/jaeger/src/model/jaeger-client.test.ts +++ b/jaeger/src/model/jaeger-client.test.ts @@ -13,7 +13,7 @@ import { getTrace, searchOperations, searchServices, searchTraces } from './jaeger-client'; -const fetchMock = (global.fetch = jest.fn()); +const fetchMock = (global.fetch = vi.fn()); describe('jaeger-client', () => { beforeEach(() => { diff --git a/jaeger/src/plugins/JaegerTraceQueryEditor.test.tsx b/jaeger/src/plugins/JaegerTraceQueryEditor.test.tsx index 89b13108e..36279ab13 100644 --- a/jaeger/src/plugins/JaegerTraceQueryEditor.test.tsx +++ b/jaeger/src/plugins/JaegerTraceQueryEditor.test.tsx @@ -13,21 +13,22 @@ import { useDatasourceClient, useDatasourceSelectValueToSelector } from '@perses-dev/plugin-system'; import { fireEvent, render, screen, waitFor } from '@testing-library/react'; +import type { MockedFunction } from 'vitest'; import { JaegerTraceQueryEditor } from './JaegerTraceQueryEditor'; -jest.mock('@perses-dev/components', () => ({ - useId: jest.fn(() => 'jaeger-datasource-label'), +vi.mock('@perses-dev/components', () => ({ + useId: vi.fn(() => 'jaeger-datasource-label'), })); -jest.mock('@perses-dev/plugin-system', () => ({ - DatasourceSelect: jest.fn(() => null), - useDatasourceClient: jest.fn(), - useDatasourceSelectValueToSelector: jest.fn((value) => value), +vi.mock('@perses-dev/plugin-system', () => ({ + DatasourceSelect: vi.fn(() => null), + useDatasourceClient: vi.fn(), + useDatasourceSelectValueToSelector: vi.fn((value) => value), })); -const mockedUseDatasourceClient = useDatasourceClient as jest.MockedFunction; -const mockedUseDatasourceSelectValueToSelector = useDatasourceSelectValueToSelector as jest.MockedFunction< +const mockedUseDatasourceClient = useDatasourceClient as MockedFunction; +const mockedUseDatasourceSelectValueToSelector = useDatasourceSelectValueToSelector as MockedFunction< typeof useDatasourceSelectValueToSelector >; @@ -44,12 +45,12 @@ describe('JaegerTraceQueryEditor', () => { it('commits typed values on blur instead of each keystroke', async () => { mockedUseDatasourceClient.mockReturnValue({ data: { - searchServices: jest.fn(async () => ({ data: [] })), - searchOperations: jest.fn(async () => ({ data: [] })), + searchServices: vi.fn(async () => ({ data: [] })), + searchOperations: vi.fn(async () => ({ data: [] })), }, } as never); - const onChange = jest.fn(); + const onChange = vi.fn(); render(); const traceIdInput = screen.getByLabelText('Trace ID'); @@ -70,12 +71,12 @@ describe('JaegerTraceQueryEditor', () => { it('normalizes empty and whitespace-only optional fields from the incoming spec', async () => { mockedUseDatasourceClient.mockReturnValue({ data: { - searchServices: jest.fn(async () => ({ data: [] })), - searchOperations: jest.fn(async () => ({ data: [] })), + searchServices: vi.fn(async () => ({ data: [] })), + searchOperations: vi.fn(async () => ({ data: [] })), }, } as never); - const onChange = jest.fn(); + const onChange = vi.fn(); render( { }); it('loads service and operation options from the datasource client', async () => { - const searchServices = jest.fn(async () => ({ data: ['checkout', 'frontend'] })); - const searchOperations = jest.fn(async () => ({ + const searchServices = vi.fn(async () => ({ data: ['checkout', 'frontend'] })); + const searchOperations = vi.fn(async () => ({ data: [ { name: 'GET /api/cart', spanKind: 'server' }, { name: 'GET /api/cart', spanKind: 'client' }, @@ -113,7 +114,7 @@ describe('JaegerTraceQueryEditor', () => { }, } as never); - render(); + render(); await waitFor(() => expect(searchServices).toHaveBeenCalledTimes(1)); await waitFor(() => expect(searchOperations).toHaveBeenCalledWith('frontend')); diff --git a/jaeger/src/plugins/get-trace-data.test.ts b/jaeger/src/plugins/get-trace-data.test.ts index 96d1a8cd5..4f5bb8ea8 100644 --- a/jaeger/src/plugins/get-trace-data.test.ts +++ b/jaeger/src/plugins/get-trace-data.test.ts @@ -13,20 +13,21 @@ import { replaceVariables, TraceQueryContext } from '@perses-dev/plugin-system'; import { DatasourceSpec } from '@perses-dev/spec'; +import type { Mock, MockedFunction } from 'vitest'; import { JaegerClient } from '../model'; import { getTraceData, jaegerTraceToOTLP } from './get-trace-data'; import { JaegerDatasource } from './jaeger-datasource'; -jest.mock('@perses-dev/plugin-system', () => { - const actual = jest.requireActual('@perses-dev/plugin-system'); +vi.mock('@perses-dev/plugin-system', async (importOriginal) => { + const actual = await importOriginal(); return { ...actual, - replaceVariables: jest.fn((query: string) => query), + replaceVariables: vi.fn((query: string) => query), }; }); -const mockedReplaceVariables = replaceVariables as jest.MockedFunction; +const mockedReplaceVariables = replaceVariables as MockedFunction; const datasource = { directUrl: 'http://jaeger.example', @@ -82,12 +83,12 @@ const exampleTrace = { const makeClient = (): JaegerClient => { const client = JaegerDatasource.createClient(datasource, {}); - client.getTrace = jest.fn(async () => ({ data: [exampleTrace] })); - client.searchTraces = jest.fn(async () => ({ data: [exampleTrace] })); + client.getTrace = vi.fn(async () => ({ data: [exampleTrace] })); + client.searchTraces = vi.fn(async () => ({ data: [exampleTrace] })); return client; }; -const getDatasource: jest.Mock = jest.fn( +const getDatasource: Mock = vi.fn( (): DatasourceSpec => ({ default: false, plugin: { @@ -102,12 +103,12 @@ function createContext(client: JaegerClient): TraceQueryContext { variableState: {}, datasourceStore: { getDatasource, - getDatasourceClient: jest.fn(() => Promise.resolve(client)), - listDatasourceSelectItems: jest.fn(async () => []), - getLocalDatasources: jest.fn(), - setLocalDatasources: jest.fn(), - getSavedDatasources: jest.fn(), - setSavedDatasources: jest.fn(), + getDatasourceClient: vi.fn(() => Promise.resolve(client)), + listDatasourceSelectItems: vi.fn(async () => []), + getLocalDatasources: vi.fn(), + setLocalDatasources: vi.fn(), + getSavedDatasources: vi.fn(), + setSavedDatasources: vi.fn(), }, absoluteTimeRange: { start: new Date('2024-06-11T10:00:00.000Z'), @@ -211,7 +212,7 @@ describe('getTraceData', () => { it('keeps one extra search result only to detect additional matches', async () => { const client = makeClient(); - client.searchTraces = jest.fn(async () => ({ + client.searchTraces = vi.fn(async () => ({ data: Array.from({ length: 3 }, (_, index) => ({ ...exampleTrace, traceID: `7d73f3ae841bf59a74cf5b52a328cfc${index}`, diff --git a/jaeger/src/setup-tests.ts b/jaeger/src/setup-tests.ts index 8cb37242a..69c9e8a60 100644 --- a/jaeger/src/setup-tests.ts +++ b/jaeger/src/setup-tests.ts @@ -11,6 +11,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; -jest.mock('echarts/core'); +vi.mock('echarts/core'); diff --git a/jaeger/vitest.config.ts b/jaeger/vitest.config.ts new file mode 100644 index 000000000..59830b049 --- /dev/null +++ b/jaeger/vitest.config.ts @@ -0,0 +1,21 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { definePackageVitestConfig } from '../vitest.shared'; + +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/jest.shared.ts b/jest.shared.ts deleted file mode 100644 index 8d4f4079b..000000000 --- a/jest.shared.ts +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright The Perses Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import { readFileSync } from 'fs'; -import { resolve } from 'path'; - -import type { Config } from '@jest/types'; - -const swcrcPath = resolve(__dirname, './.cjs.swcrc'); -const swcrc = JSON.parse(readFileSync(swcrcPath, 'utf-8')); - -// Common Jest configuration shared across packages -const config: Config.InitialOptions = { - testEnvironment: 'jsdom', - roots: ['/src'], - moduleNameMapper: { - '^echarts/(.*)$': 'echarts', - - // Use polyfill for jsdom environment - '^use-resize-observer$': 'use-resize-observer/polyfilled', - - // Configure Jest to handle stylesheets - '\\.(css|less)$': '/../stylesMock.js', - }, - transformIgnorePatterns: ['node_modules/(?!(lodash-es|yaml|@perses-dev))'], - transform: { - // This does not do type-checking and assumes that's happening elsewhere for TS test files (e.g. as part of the - // build process) - // exclude: [] + swcrc: false => https://github.com/swc-project/jest/issues/62 - '^.+\\.(ts|tsx|js|jsx)$': ['@swc/jest', { ...swcrc, exclude: [], swcrc: false }], - }, -}; - -export default config; diff --git a/logexplorer/jest.config.ts b/logexplorer/jest.config.ts deleted file mode 100644 index 368681296..000000000 --- a/logexplorer/jest.config.ts +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright The Perses Authors -// Licensed under the Apache License, Version 2.0 (the \"License\"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an \"AS IS\" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import type { Config } from '@jest/types'; - -import shared from '../jest.shared'; - -const jestConfig: Config.InitialOptions = { - ...shared, - - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], -}; - -export default jestConfig; diff --git a/logexplorer/package.json b/logexplorer/package.json index 8780e2229..066181ece 100644 --- a/logexplorer/package.json +++ b/logexplorer/package.json @@ -17,7 +17,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest --passWithNoTests", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/logexplorer/src/setup-tests.ts b/logexplorer/src/setup-tests.ts index c4b091083..0d515bcb0 100644 --- a/logexplorer/src/setup-tests.ts +++ b/logexplorer/src/setup-tests.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; // Always mock e-charts during tests since we don't have a proper canvas in jsdom -jest.mock('echarts/core'); +vi.mock('echarts/core'); diff --git a/logexplorer/vitest.config.ts b/logexplorer/vitest.config.ts new file mode 100644 index 000000000..66516c66b --- /dev/null +++ b/logexplorer/vitest.config.ts @@ -0,0 +1,22 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { definePackageVitestConfig } from '../vitest.shared'; + +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + passWithNoTests: true, + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/logstable/jest.config.ts b/logstable/jest.config.ts deleted file mode 100644 index 8e8bcee0d..000000000 --- a/logstable/jest.config.ts +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright The Perses Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import type { Config } from '@jest/types'; - -import shared from '../jest.shared'; - -const jestConfig: Config.InitialOptions = { - ...shared, - - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], - transformIgnorePatterns: ['node_modules/(?!(lodash-es|yaml|ansi_up))'], -}; - -export default jestConfig; diff --git a/logstable/package.json b/logstable/package.json index 68d91c9fb..11c30c3ae 100644 --- a/logstable/package.json +++ b/logstable/package.json @@ -18,7 +18,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/logstable/src/LogsTableCsvExportAction.test.ts b/logstable/src/LogsTableCsvExportAction.test.ts index a8a12eb7b..e31a558bc 100644 --- a/logstable/src/LogsTableCsvExportAction.test.ts +++ b/logstable/src/LogsTableCsvExportAction.test.ts @@ -11,10 +11,14 @@ // See the License for the specific language governing permissions and // limitations under the License. -jest.mock('echarts/core'); -jest.mock('@perses-dev/components', () => ({ InfoTooltip: 'InfoTooltip' })); -jest.mock('@perses-dev/plugin-system', () => { - const csvExport = jest.requireActual('@perses-dev/plugin-system/dist/cjs/utils/csv-export'); +vi.mock('echarts/core'); +vi.mock('@perses-dev/components', () => ({ InfoTooltip: 'InfoTooltip' })); +vi.mock('@perses-dev/plugin-system', async () => { + const csvExport = await vi.importActual<{ + escapeCsvValue: (value: unknown) => string; + formatTimestampISO: (timestamp: number) => string; + sanitizeFilename: (filename: string) => string; + }>('@perses-dev/plugin-system/dist/cjs/utils/csv-export'); return { escapeCsvValue: csvExport.escapeCsvValue, formatTimestampISO: csvExport.formatTimestampISO, diff --git a/logstable/src/LogsTablePanel.test.tsx b/logstable/src/LogsTablePanel.test.tsx index 34d47605b..74a10c476 100644 --- a/logstable/src/LogsTablePanel.test.tsx +++ b/logstable/src/LogsTablePanel.test.tsx @@ -30,7 +30,7 @@ import { MOCK_LOGS_QUERY_DEFINITION, MOCK_LOGS_QUERY_RESULT, MOCK_LOGS_QUERY_RES // Mock clipboard API Object.assign(navigator, { clipboard: { - writeText: jest.fn(() => Promise.resolve()), + writeText: vi.fn(() => Promise.resolve()), }, }); @@ -74,7 +74,7 @@ describe('LogsTablePanel', () => { }; beforeEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); it('should render multi values with timestamps', async () => { @@ -100,20 +100,20 @@ describe('LogsTablePanel', () => { // Get computed background before selection const firstRowInitialBg = window.getComputedStyle(firstRow).backgroundColor; + const secondRowInitialBg = window.getComputedStyle(secondRow).backgroundColor; // Cmd+Click first row fireEvent.mouseDown(firstRow, { metaKey: true }); // Background should change (selected state) - const firstRowSelectedBg = window.getComputedStyle(firstRow).backgroundColor; - expect(firstRowSelectedBg).not.toBe(firstRowInitialBg); + expect(window.getComputedStyle(firstRow).backgroundColor).not.toBe(firstRowInitialBg); // Cmd+Click second row fireEvent.mouseDown(secondRow, { metaKey: true }); // Both should still be selected - expect(window.getComputedStyle(firstRow).backgroundColor).toBe(firstRowSelectedBg); - expect(window.getComputedStyle(secondRow).backgroundColor).toBe(firstRowSelectedBg); + expect(window.getComputedStyle(firstRow).backgroundColor).not.toBe(firstRowInitialBg); + expect(window.getComputedStyle(secondRow).backgroundColor).not.toBe(secondRowInitialBg); }); it('should copy multiple selected rows with Cmd+C', () => { @@ -129,7 +129,7 @@ describe('LogsTablePanel', () => { // Copy with onCopy event const virtuosoScroller = screen.getByTestId('virtuoso-scroller'); const mockClipboardData = { - setData: jest.fn(), + setData: vi.fn(), }; fireEvent.copy(virtuosoScroller, { clipboardData: mockClipboardData }); diff --git a/logstable/src/components/LogRow/LogRow.test.tsx b/logstable/src/components/LogRow/LogRow.test.tsx index 92a2d86cf..a870eea60 100644 --- a/logstable/src/components/LogRow/LogRow.test.tsx +++ b/logstable/src/components/LogRow/LogRow.test.tsx @@ -19,7 +19,7 @@ import { LogRow } from './LogRow'; // Mock clipboard API Object.assign(navigator, { clipboard: { - writeText: jest.fn(() => Promise.resolve()), + writeText: vi.fn(() => Promise.resolve()), }, }); @@ -30,13 +30,13 @@ describe('LogRow', () => { labels: { level: 'info', service: 'foo', region: 'bar' }, }; - const renderLogRow = ({ onSelect = jest.fn(), isSelected = false } = {}): RenderResult => { + const renderLogRow = ({ onSelect = vi.fn(), isSelected = false } = {}): RenderResult => { return render( , @@ -44,7 +44,7 @@ describe('LogRow', () => { }; beforeEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); it('should render log message', () => { @@ -120,7 +120,7 @@ describe('LogRow', () => { }); it('should handle selection click', () => { - const onSelect = jest.fn(); + const onSelect = vi.fn(); const { container } = renderLogRow({ onSelect }); const content = container.querySelector('[data-log-index="0"] > div')!; @@ -136,7 +136,7 @@ describe('LogRow', () => { line: '\x1b[31mERROR\x1b[0m connection refused', labels: { level: 'error' }, }; - render(); + render(); const errorSpan = document.querySelector('.ansi-red-fg'); expect(errorSpan).toBeInTheDocument(); expect(errorSpan).toHaveTextContent('ERROR'); diff --git a/logstable/src/setup-tests.ts b/logstable/src/setup-tests.ts index d43de32e0..78af56004 100644 --- a/logstable/src/setup-tests.ts +++ b/logstable/src/setup-tests.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; // Always mock e-charts during tests since we don't have a proper canvas in jsdom -jest.mock('echarts/core'); +vi.mock('echarts/core'); diff --git a/logstable/vitest.config.ts b/logstable/vitest.config.ts new file mode 100644 index 000000000..59830b049 --- /dev/null +++ b/logstable/vitest.config.ts @@ -0,0 +1,21 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { definePackageVitestConfig } from '../vitest.shared'; + +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/loki/jest.config.ts b/loki/jest.config.ts deleted file mode 100644 index 16027133b..000000000 --- a/loki/jest.config.ts +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright The Perses Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import type { Config } from '@jest/types'; - -import shared from '../jest.shared'; - -const jestConfig: Config.InitialOptions = { - ...shared, - - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], -}; - -export default jestConfig; diff --git a/loki/package.json b/loki/package.json index 728e724e2..2aab69426 100644 --- a/loki/package.json +++ b/loki/package.json @@ -10,7 +10,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/loki/src/model/loki-client.test.ts b/loki/src/model/loki-client.test.ts index f77f4a6b0..82a332ec8 100644 --- a/loki/src/model/loki-client.test.ts +++ b/loki/src/model/loki-client.test.ts @@ -16,9 +16,17 @@ import { AbsoluteTimeRange } from '@perses-dev/spec'; import { toUnixSeconds, getLokiTimeRange, labels, labelValues } from './loki-client'; // Mock global fetch for labels/labelValues tests -const mockFetch = jest.fn(); +const mockFetch = vi.fn(); global.fetch = mockFetch; +function getLastCalledUrl(): URL { + const call = mockFetch.mock.lastCall; + if (!call) { + throw new Error('Expected fetch to have been called'); + } + return new URL(call[0]); +} + beforeEach(() => { mockFetch.mockReset(); mockFetch.mockResolvedValue({ @@ -82,7 +90,7 @@ describe('labels', () => { it('appends query parameter to URL when provided', async () => { await labels({ start: '1000', end: '2000', query: '{job="varlogs"}' }, options); - const calledUrl = new URL(mockFetch.mock.calls[0][0]); + const calledUrl = getLastCalledUrl(); expect(calledUrl.searchParams.get('start')).toBe('1000'); expect(calledUrl.searchParams.get('end')).toBe('2000'); expect(calledUrl.searchParams.get('query')).toBe('{job="varlogs"}'); @@ -91,7 +99,7 @@ describe('labels', () => { it('omits query parameter when undefined', async () => { await labels({ start: '1000', end: '2000' }, options); - const calledUrl = new URL(mockFetch.mock.calls[0][0]); + const calledUrl = getLastCalledUrl(); expect(calledUrl.searchParams.get('start')).toBe('1000'); expect(calledUrl.searchParams.get('end')).toBe('2000'); expect(calledUrl.searchParams.has('query')).toBe(false); @@ -100,7 +108,7 @@ describe('labels', () => { it('works with no optional parameters', async () => { await labels({}, options); - const calledUrl = new URL(mockFetch.mock.calls[0][0]); + const calledUrl = getLastCalledUrl(); expect(calledUrl.searchParams.has('start')).toBe(false); expect(calledUrl.searchParams.has('end')).toBe(false); expect(calledUrl.searchParams.has('query')).toBe(false); @@ -113,7 +121,7 @@ describe('labelValues', () => { it('appends query parameter to URL when provided', async () => { await labelValues({ labelName: 'job', start: '1000', end: '2000', query: '{namespace="prod"}' }, options); - const calledUrl = new URL(mockFetch.mock.calls[0][0]); + const calledUrl = getLastCalledUrl(); expect(calledUrl.pathname).toBe('/loki/api/v1/label/job/values'); expect(calledUrl.searchParams.get('start')).toBe('1000'); expect(calledUrl.searchParams.get('end')).toBe('2000'); @@ -123,7 +131,7 @@ describe('labelValues', () => { it('omits query parameter when undefined', async () => { await labelValues({ labelName: 'job', start: '1000', end: '2000' }, options); - const calledUrl = new URL(mockFetch.mock.calls[0][0]); + const calledUrl = getLastCalledUrl(); expect(calledUrl.searchParams.get('start')).toBe('1000'); expect(calledUrl.searchParams.get('end')).toBe('2000'); expect(calledUrl.searchParams.has('query')).toBe(false); @@ -132,7 +140,7 @@ describe('labelValues', () => { it('works with no optional parameters', async () => { await labelValues({ labelName: 'job' }, options); - const calledUrl = new URL(mockFetch.mock.calls[0][0]); + const calledUrl = getLastCalledUrl(); expect(calledUrl.pathname).toBe('/loki/api/v1/label/job/values'); expect(calledUrl.searchParams.has('start')).toBe(false); expect(calledUrl.searchParams.has('end')).toBe(false); diff --git a/loki/src/queries/loki-log-query/loki-log-query-types.test.ts b/loki/src/queries/loki-log-query/loki-log-query-types.test.ts index 300281acc..f1b50d0f3 100644 --- a/loki/src/queries/loki-log-query/loki-log-query-types.test.ts +++ b/loki/src/queries/loki-log-query/loki-log-query-types.test.ts @@ -12,6 +12,7 @@ // limitations under the License. import { LogQueryContext } from '@perses-dev/plugin-system'; +import type { Mock } from 'vitest'; import { LokiDatasource } from '../../datasources/loki-datasource'; import { LokiDatasourceSpec } from '../../datasources/loki-datasource/loki-datasource-types'; @@ -25,7 +26,7 @@ const datasource: LokiDatasourceSpec = { const lokiStubClient = LokiDatasource.createClient(datasource, {}); // Mock range query -lokiStubClient.queryRange = jest.fn(async () => { +lokiStubClient.queryRange = vi.fn(async () => { const stubResponse: LokiQueryRangeStreamsResponse = { status: 'success', data: { @@ -44,20 +45,20 @@ lokiStubClient.queryRange = jest.fn(async () => { return stubResponse as LokiQueryRangeResponse; }); -const getDatasourceClient: jest.Mock = jest.fn(() => { +const getDatasourceClient: Mock = vi.fn(() => { return lokiStubClient; }); const createStubContext = (): LogQueryContext => { const stubLogContext: LogQueryContext = { datasourceStore: { - getDatasource: jest.fn(), + getDatasource: vi.fn(), getDatasourceClient: getDatasourceClient, - listDatasourceSelectItems: jest.fn(), - getLocalDatasources: jest.fn(), - setLocalDatasources: jest.fn(), - getSavedDatasources: jest.fn(), - setSavedDatasources: jest.fn(), + listDatasourceSelectItems: vi.fn(), + getLocalDatasources: vi.fn(), + setLocalDatasources: vi.fn(), + getSavedDatasources: vi.fn(), + setSavedDatasources: vi.fn(), }, timeRange: { end: new Date('01-01-2025'), diff --git a/loki/src/queries/loki-time-series-query/loki-time-series-query-types.test.ts b/loki/src/queries/loki-time-series-query/loki-time-series-query-types.test.ts index 0191373f6..b211989b8 100644 --- a/loki/src/queries/loki-time-series-query/loki-time-series-query-types.test.ts +++ b/loki/src/queries/loki-time-series-query/loki-time-series-query-types.test.ts @@ -13,10 +13,11 @@ // TODO: This should be fixed globally in the test setup -jest.mock('echarts/core'); +vi.mock('echarts/core'); import { TimeSeriesQueryContext } from '@perses-dev/plugin-system'; import { DatasourceSpec } from '@perses-dev/spec'; +import type { Mock } from 'vitest'; import { LokiDatasource } from '../../datasources/loki-datasource'; import { LokiDatasourceSpec } from '../../datasources/loki-datasource/loki-datasource-types'; @@ -30,7 +31,7 @@ const datasource: LokiDatasourceSpec = { const lokiStubClient = LokiDatasource.createClient(datasource, {}); // Mock range query -lokiStubClient.queryRange = jest.fn(async () => { +lokiStubClient.queryRange = vi.fn(async () => { const stubResponse: LokiQueryRangeMatrixResponse = { status: 'success', data: { @@ -50,7 +51,7 @@ lokiStubClient.queryRange = jest.fn(async () => { }); // Mock instant query -lokiStubClient.query = jest.fn(async () => { +lokiStubClient.query = vi.fn(async () => { const stubResponse: LokiQueryResponse = { status: 'success', data: { @@ -66,11 +67,11 @@ lokiStubClient.query = jest.fn(async () => { return stubResponse; }); -const getDatasourceClient: jest.Mock = jest.fn(() => { +const getDatasourceClient: Mock = vi.fn(() => { return lokiStubClient; }); -const getDatasource: jest.Mock = jest.fn((): DatasourceSpec => { +const getDatasource: Mock = vi.fn((): DatasourceSpec => { return { default: false, plugin: { @@ -85,11 +86,11 @@ const createStubContext = (overrides?: Partial): TimeSer datasourceStore: { getDatasource: getDatasource, getDatasourceClient: getDatasourceClient, - listDatasourceSelectItems: jest.fn(), - getLocalDatasources: jest.fn(), - setLocalDatasources: jest.fn(), - getSavedDatasources: jest.fn(), - setSavedDatasources: jest.fn(), + listDatasourceSelectItems: vi.fn(), + getLocalDatasources: vi.fn(), + setLocalDatasources: vi.fn(), + getSavedDatasources: vi.fn(), + setSavedDatasources: vi.fn(), }, timeRange: { end: new Date('2025-01-01T00:00:00Z'), @@ -120,7 +121,7 @@ describe('LokiTimeSeriesQuery', () => { describe('instant mode', () => { beforeEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); it('should call client.query() with end time as unix seconds and return vector series', async () => { @@ -132,14 +133,18 @@ describe('LokiTimeSeriesQuery', () => { expect(lokiStubClient.query).toHaveBeenCalledTimes(1); expect(lokiStubClient.queryRange).not.toHaveBeenCalled(); - const callArgs = (lokiStubClient.query as jest.Mock).mock.calls[0][0]; + const call = (lokiStubClient.query as Mock).mock.lastCall; + if (!call) { + throw new Error('Expected query to have been called'); + } + const [callArgs] = call; expect(callArgs.time).toBe(Math.floor(context.timeRange.end.getTime() / 1000).toString()); expect(result.series).toHaveLength(1); expect(result.series[0]?.values[0]?.[1]).toBe(99); }); it('should return empty series with warning notice for streams resultType', async () => { - (lokiStubClient.query as jest.Mock).mockResolvedValueOnce({ + (lokiStubClient.query as Mock).mockResolvedValueOnce({ status: 'success', data: { resultType: 'streams', @@ -157,7 +162,7 @@ describe('LokiTimeSeriesQuery', () => { }); it('should use queryRange when mode is not set', async () => { - jest.clearAllMocks(); + vi.clearAllMocks(); const context = createStubContext(); await LokiTimeSeriesQuery.getTimeSeriesData({ query: 'count_over_time({service="api"} [1h])' }, context); diff --git a/loki/src/setup-tests.ts b/loki/src/setup-tests.ts index c4b091083..0d515bcb0 100644 --- a/loki/src/setup-tests.ts +++ b/loki/src/setup-tests.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; // Always mock e-charts during tests since we don't have a proper canvas in jsdom -jest.mock('echarts/core'); +vi.mock('echarts/core'); diff --git a/loki/vitest.config.ts b/loki/vitest.config.ts new file mode 100644 index 000000000..59830b049 --- /dev/null +++ b/loki/vitest.config.ts @@ -0,0 +1,21 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { definePackageVitestConfig } from '../vitest.shared'; + +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/markdown/jest.config.ts b/markdown/jest.config.ts deleted file mode 100644 index 16027133b..000000000 --- a/markdown/jest.config.ts +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright The Perses Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import type { Config } from '@jest/types'; - -import shared from '../jest.shared'; - -const jestConfig: Config.InitialOptions = { - ...shared, - - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], -}; - -export default jestConfig; diff --git a/markdown/package.json b/markdown/package.json index 9d98b8365..918487cad 100644 --- a/markdown/package.json +++ b/markdown/package.json @@ -18,7 +18,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest --passWithNoTests", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/markdown/src/setup-tests.ts b/markdown/src/setup-tests.ts index d43de32e0..78af56004 100644 --- a/markdown/src/setup-tests.ts +++ b/markdown/src/setup-tests.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; // Always mock e-charts during tests since we don't have a proper canvas in jsdom -jest.mock('echarts/core'); +vi.mock('echarts/core'); diff --git a/markdown/vitest.config.ts b/markdown/vitest.config.ts new file mode 100644 index 000000000..66516c66b --- /dev/null +++ b/markdown/vitest.config.ts @@ -0,0 +1,22 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { definePackageVitestConfig } from '../vitest.shared'; + +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + passWithNoTests: true, + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/opensearch/jest.config.ts b/opensearch/jest.config.ts deleted file mode 100644 index f1de9371c..000000000 --- a/opensearch/jest.config.ts +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright The Perses Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import type { Config } from '@jest/types'; - -import shared from '../jest.shared'; - -const jestConfig: Config.InitialOptions = { - ...shared, - - moduleNameMapper: { - ...(shared.moduleNameMapper ?? {}), - '^react$': '/../node_modules/react', - '^react-dom$': '/../node_modules/react-dom', - '^react/jsx-runtime$': '/../node_modules/react/jsx-runtime', - '^react-dom/(.*)$': '/../node_modules/react-dom/$1', - }, - - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], -}; - -export default jestConfig; diff --git a/opensearch/package.json b/opensearch/package.json index cd08beccc..4c5950e8c 100644 --- a/opensearch/package.json +++ b/opensearch/package.json @@ -11,7 +11,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/opensearch/src/model/opensearch-client.test.ts b/opensearch/src/model/opensearch-client.test.ts index e5d30ac79..9d60af651 100644 --- a/opensearch/src/model/opensearch-client.test.ts +++ b/opensearch/src/model/opensearch-client.test.ts @@ -11,6 +11,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +import type { Mock } from 'vitest'; + import { ppl, OpenSearchPPLError } from './opensearch-client'; describe('opensearch-client', () => { @@ -18,17 +20,17 @@ describe('opensearch-client', () => { afterEach(() => { global.fetch = originalFetch; - jest.resetAllMocks(); + vi.resetAllMocks(); }); - function mockFetch(response: { ok: boolean; status: number; body: unknown }): jest.Mock { - const mock = jest.fn(async () => ({ + function mockFetch(response: { ok: boolean; status: number; body: unknown }): Mock { + const mock = vi.fn(async () => ({ ok: response.ok, status: response.status, text: async (): Promise => typeof response.body === 'string' ? response.body : JSON.stringify(response.body), json: async (): Promise => response.body, - })) as unknown as jest.Mock; + })) as unknown as Mock; global.fetch = mock as unknown as typeof fetch; return mock; } diff --git a/opensearch/src/queries/opensearch-log-query/OpenSearchLogQueryEditor.test.tsx b/opensearch/src/queries/opensearch-log-query/OpenSearchLogQueryEditor.test.tsx index ff14c11fc..a38122120 100644 --- a/opensearch/src/queries/opensearch-log-query/OpenSearchLogQueryEditor.test.tsx +++ b/opensearch/src/queries/opensearch-log-query/OpenSearchLogQueryEditor.test.tsx @@ -12,13 +12,14 @@ // limitations under the License. import { render, screen, fireEvent } from '@testing-library/react'; +import type { Mock } from 'vitest'; import { PPL_DOCS_URL } from '../constants'; import { OpenSearchLogQuerySpec } from './opensearch-log-query-types'; import { OpenSearchLogQueryEditor } from './OpenSearchLogQueryEditor'; -jest.mock('@perses-dev/plugin-system', () => ({ - ...jest.requireActual('@perses-dev/plugin-system'), +vi.mock('@perses-dev/plugin-system', async (importOriginal) => ({ + ...(await importOriginal()), DatasourceSelect: (): JSX.Element =>
, useDatasourceSelectValueToSelector: (): undefined => undefined, isVariableDatasource: (): boolean => false, @@ -26,12 +27,12 @@ jest.mock('@perses-dev/plugin-system', () => ({ // Make the Mod+Enter handler call its callback on any keydown, decoupling the test // from the host lib's platform-specific key detection. -jest.mock('@perses-dev/dashboards', () => ({ +vi.mock('@perses-dev/dashboards', () => ({ createModEnterHandler: (cb: () => void) => (): void => cb(), })); -function setup(initial: OpenSearchLogQuerySpec = { query: '' }): { onChange: jest.Mock } { - const onChange = jest.fn(); +function setup(initial: OpenSearchLogQuerySpec = { query: '' }): { onChange: Mock } { + const onChange = vi.fn(); render(); return { onChange }; } diff --git a/opensearch/src/queries/opensearch-log-query/get-opensearch-log-data.test.ts b/opensearch/src/queries/opensearch-log-query/get-opensearch-log-data.test.ts index 59f549004..76f8b8188 100644 --- a/opensearch/src/queries/opensearch-log-query/get-opensearch-log-data.test.ts +++ b/opensearch/src/queries/opensearch-log-query/get-opensearch-log-data.test.ts @@ -12,6 +12,7 @@ // limitations under the License. import { LogQueryContext } from '@perses-dev/plugin-system'; +import type { Mock } from 'vitest'; import { OpenSearchDatasource } from '../../datasources/opensearch-datasource'; import { OpenSearchDatasourceSpec } from '../../datasources/opensearch-datasource/opensearch-datasource-types'; @@ -25,7 +26,7 @@ const datasource: OpenSearchDatasourceSpec = { const stubClient = OpenSearchDatasource.createClient(datasource, {}); -stubClient.ppl = jest.fn(async () => { +stubClient.ppl = vi.fn(async () => { const response: OpenSearchPPLResponse = { schema: [ { name: '@timestamp', type: 'timestamp' }, @@ -42,18 +43,18 @@ stubClient.ppl = jest.fn(async () => { return response; }); -const getDatasourceClient: jest.Mock = jest.fn(() => stubClient); +const getDatasourceClient: Mock = vi.fn(() => stubClient); function createStubContext(): LogQueryContext { return { datasourceStore: { - getDatasource: jest.fn(), + getDatasource: vi.fn(), getDatasourceClient, - listDatasourceSelectItems: jest.fn(), - getLocalDatasources: jest.fn(), - setLocalDatasources: jest.fn(), - getSavedDatasources: jest.fn(), - setSavedDatasources: jest.fn(), + listDatasourceSelectItems: vi.fn(), + getLocalDatasources: vi.fn(), + setLocalDatasources: vi.fn(), + getSavedDatasources: vi.fn(), + setSavedDatasources: vi.fn(), }, timeRange: { start: new Date('2025-01-01T00:00:00.000Z'), @@ -66,7 +67,7 @@ function createStubContext(): LogQueryContext { describe('OpenSearchLogQuery', () => { afterEach(() => { - (stubClient.ppl as jest.Mock).mockClear(); + (stubClient.ppl as Mock).mockClear(); }); it('creates initial options with empty query', () => { @@ -109,7 +110,7 @@ describe('OpenSearchLogQuery', () => { }); it('passes timestampField + messageField through to the bounder and mapper', async () => { - const pplMock = stubClient.ppl as jest.Mock; + const pplMock = stubClient.ppl as Mock; pplMock.mockImplementationOnce(async () => ({ schema: [ { name: 'time', type: 'timestamp' }, @@ -133,7 +134,7 @@ describe('OpenSearchLogQuery', () => { }); it('substitutes a $traceId variable into the PPL before sending', async () => { - const pplMock = stubClient.ppl as jest.Mock; + const pplMock = stubClient.ppl as Mock; pplMock.mockImplementationOnce(async () => ({ schema: [], datarows: [] })); await OpenSearchLogQuery.getLogData( diff --git a/opensearch/src/setup-tests.ts b/opensearch/src/setup-tests.ts index c4b091083..0d515bcb0 100644 --- a/opensearch/src/setup-tests.ts +++ b/opensearch/src/setup-tests.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; // Always mock e-charts during tests since we don't have a proper canvas in jsdom -jest.mock('echarts/core'); +vi.mock('echarts/core'); diff --git a/opensearch/vitest.config.ts b/opensearch/vitest.config.ts new file mode 100644 index 000000000..59830b049 --- /dev/null +++ b/opensearch/vitest.config.ts @@ -0,0 +1,21 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { definePackageVitestConfig } from '../vitest.shared'; + +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/package-lock.json b/package-lock.json index d809e357e..bf59526f6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -52,20 +52,17 @@ "@rsbuild/plugin-react": "^1.4.2", "@swc/cli": "^0.8.1", "@swc/core": "^1.15.3", - "@swc/jest": "^0.2.39", "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.1.0", "@testing-library/user-event": "^13.5.0", "@types/color-hash": "^2.0.0", "@types/express": "^5.0.0", - "@types/jest": "^30.0.0", "@types/lodash": "^4.17.5", "concurrently": "^10.0.3", "cross-env": "^7.0.3", "express": "^4.21.2", - "jest": "^30.4.2", - "jest-environment-jsdom": "^30.4.1", + "jsdom": "^27.0.0", "mdi-material-ui": "^7.9.2", "oxfmt": "0.55.0", "oxlint": "1.70.0", @@ -77,7 +74,8 @@ "rsbuild-plugin-dts": "^0.18.0", "ts-node": "^10.9.2", "turbo": "^2.6.1", - "typescript": "^5.4.2" + "typescript": "^5.4.2", + "vitest": "^4.1.11" }, "peerDependencies": { "@types/react-dom": "^18.3.0", @@ -422,27 +420,72 @@ "use-resize-observer": "^9.0.0" } }, + "node_modules/@acemir/cssom": { + "version": "0.9.31", + "resolved": "https://registry.npmjs.org/@acemir/cssom/-/cssom-0.9.31.tgz", + "integrity": "sha512-ZnR3GSaH+/vJ0YlHau21FjfLYjMpYVIzTD8M8vIEQvIGxeOXyXdzCI140rrCY862p/C/BbzWsjc1dgnM9mkoTA==", + "dev": true, + "license": "MIT" + }, "node_modules/@adobe/css-tools": { "version": "4.5.0", "dev": true, "license": "MIT" }, "node_modules/@asamuzakjp/css-color": { - "version": "3.2.0", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.1.2.tgz", + "integrity": "sha512-NfBUvBaYgKIuq6E/RBLY1m0IohzNHAYyaJGuTK79Z23uNwmz2jl1mPsC5ZxCCxylinKhT1Amn5oNTlx1wN8cQg==", "dev": true, "license": "MIT", "dependencies": { - "@csstools/css-calc": "^2.1.3", - "@csstools/css-color-parser": "^3.0.9", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "lru-cache": "^10.4.3" + "@csstools/css-calc": "^3.0.0", + "@csstools/css-color-parser": "^4.0.1", + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0", + "lru-cache": "^11.2.5" } }, "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { - "version": "10.4.3", + "version": "11.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", + "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", "dev": true, - "license": "ISC" + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@asamuzakjp/dom-selector": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.8.1.tgz", + "integrity": "sha512-MvRz1nCqW0fsy8Qz4dnLIvhOlMzqDVBabZx6lH+YywFDdjXhMY37SmpV1XFX3JzG5GWHn63j6HX6QPr3lZXHvQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@asamuzakjp/nwsapi": "^2.3.9", + "bidi-js": "^1.0.3", + "css-tree": "^3.1.0", + "is-potential-custom-element-name": "^1.0.1", + "lru-cache": "^11.2.6" + } + }, + "node_modules/@asamuzakjp/dom-selector/node_modules/lru-cache": { + "version": "11.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", + "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@asamuzakjp/nwsapi": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz", + "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==", + "dev": true, + "license": "MIT" }, "node_modules/@ast-grep/napi": { "version": "0.37.0", @@ -655,59 +698,10 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/compat-data": { - "version": "7.29.7", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.29.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.29.7", - "@babel/generator": "^7.29.7", - "@babel/helper-compilation-targets": "^7.29.7", - "@babel/helper-module-transforms": "^7.29.7", - "@babel/helpers": "^7.29.7", - "@babel/parser": "^7.29.7", - "@babel/template": "^7.29.7", - "@babel/traverse": "^7.29.7", - "@babel/types": "^7.29.7", - "@jridgewell/remapping": "^2.3.5", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/convert-source-map": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/generator": { "version": "7.29.7", "license": "MIT", + "peer": true, "dependencies": { "@babel/parser": "^7.29.7", "@babel/types": "^7.29.7", @@ -719,32 +713,10 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.29.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.29.7", - "@babel/helper-validator-option": "^7.29.7", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/helper-globals": { "version": "7.29.7", "license": "MIT", + "peer": true, "engines": { "node": ">=6.9.0" } @@ -752,6 +724,7 @@ "node_modules/@babel/helper-module-imports": { "version": "7.29.7", "license": "MIT", + "peer": true, "dependencies": { "@babel/traverse": "^7.29.7", "@babel/types": "^7.29.7" @@ -760,449 +733,202 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-module-transforms": { + "node_modules/@babel/helper-string-parser": { "version": "7.29.7", - "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.29.7", - "@babel/helper-validator-identifier": "^7.29.7", - "@babel/traverse": "^7.29.7" - }, + "peer": true, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-plugin-utils": { + "node_modules/@babel/helper-validator-identifier": { "version": "7.29.7", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-string-parser": { + "node_modules/@babel/parser": { "version": "7.29.7", "license": "MIT", + "peer": true, + "dependencies": { + "@babel/types": "^7.29.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, "engines": { - "node": ">=6.9.0" + "node": ">=6.0.0" } }, - "node_modules/@babel/helper-validator-identifier": { + "node_modules/@babel/runtime": { "version": "7.29.7", "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-validator-option": { + "node_modules/@babel/template": { "version": "7.29.7", - "dev": true, "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" + }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helpers": { + "node_modules/@babel/traverse": { "version": "7.29.7", - "dev": true, "license": "MIT", + "peer": true, "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.7", "@babel/template": "^7.29.7", - "@babel/types": "^7.29.7" + "@babel/types": "^7.29.7", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/parser": { + "node_modules/@babel/types": { "version": "7.29.7", "license": "MIT", + "peer": true, "dependencies": { - "@babel/types": "^7.29.7" - }, - "bin": { - "parser": "bin/babel-parser.js" + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" }, "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=6.9.0" } }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", + "node_modules/@borewit/text-codec": { + "version": "0.2.2", "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" } }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "dev": true, + "node_modules/@codemirror/autocomplete": { + "version": "6.20.3", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.17.0", + "@lezer/common": "^1.0.0" } }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.29.7", - "dev": true, + "node_modules/@codemirror/commands": { + "version": "6.10.4", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.7.0", + "@codemirror/view": "^6.27.0", + "@lezer/common": "^1.1.0" } }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "dev": true, + "node_modules/@codemirror/lang-json": { + "version": "6.0.2", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@codemirror/language": "^6.0.0", + "@lezer/json": "^1.0.0" } }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "dev": true, + "node_modules/@codemirror/language": { + "version": "6.12.4", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.23.0", + "@lezer/common": "^1.5.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0", + "style-mod": "^4.0.0" } }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.29.7", - "dev": true, + "node_modules/@codemirror/lint": { + "version": "6.9.7", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.42.0", + "crelt": "^1.0.5" } }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "dev": true, + "node_modules/@codemirror/search": { + "version": "6.7.1", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.37.0", + "crelt": "^1.0.5" } }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "dev": true, + "node_modules/@codemirror/state": { + "version": "6.7.0", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@marijn/find-cluster-break": "^1.0.0" } }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "dev": true, + "node_modules/@codemirror/theme-one-dark": { + "version": "6.1.3", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "@lezer/highlight": "^1.0.0" } }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "dev": true, + "node_modules/@codemirror/view": { + "version": "6.43.4", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@codemirror/state": "^6.7.0", + "crelt": "^1.0.6", + "style-mod": "^4.1.0", + "w3c-keyname": "^2.2.4" } }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@jridgewell/trace-mapping": "0.3.9" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=12" } }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.29.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.29.7", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.29.7", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.29.7", - "@babel/parser": "^7.29.7", - "@babel/types": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.29.7", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.29.7", - "@babel/generator": "^7.29.7", - "@babel/helper-globals": "^7.29.7", - "@babel/parser": "^7.29.7", - "@babel/template": "^7.29.7", - "@babel/types": "^7.29.7", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.29.7", - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.29.7", - "@babel/helper-validator-identifier": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@borewit/text-codec": { - "version": "0.2.2", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/@codemirror/autocomplete": { - "version": "6.20.3", - "license": "MIT", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.17.0", - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@codemirror/commands": { - "version": "6.10.4", - "license": "MIT", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.7.0", - "@codemirror/view": "^6.27.0", - "@lezer/common": "^1.1.0" - } - }, - "node_modules/@codemirror/lang-json": { - "version": "6.0.2", - "license": "MIT", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@lezer/json": "^1.0.0" - } - }, - "node_modules/@codemirror/language": { - "version": "6.12.4", - "license": "MIT", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.23.0", - "@lezer/common": "^1.5.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0", - "style-mod": "^4.0.0" - } - }, - "node_modules/@codemirror/lint": { - "version": "6.9.7", - "license": "MIT", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.42.0", - "crelt": "^1.0.5" - } - }, - "node_modules/@codemirror/search": { - "version": "6.7.1", - "license": "MIT", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.37.0", - "crelt": "^1.0.5" - } - }, - "node_modules/@codemirror/state": { - "version": "6.7.0", - "license": "MIT", - "dependencies": { - "@marijn/find-cluster-break": "^1.0.0" - } - }, - "node_modules/@codemirror/theme-one-dark": { - "version": "6.1.3", - "license": "MIT", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/highlight": "^1.0.0" - } - }, - "node_modules/@codemirror/view": { - "version": "6.43.4", - "license": "MIT", - "dependencies": { - "@codemirror/state": "^6.7.0", - "crelt": "^1.0.6", - "style-mod": "^4.1.0", - "w3c-keyname": "^2.2.4" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@csstools/color-helpers": { - "version": "5.1.0", + "node_modules/@csstools/color-helpers": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.1.1.tgz", + "integrity": "sha512-gLNsunvwf3mCi5u5o46/Z/JcJMnhbHSaZ69rkgPzNM3J4s8hWwpPUQB6/tt0EDFyCiWzxANlx+2LJwpYj4zS1w==", "dev": true, "funding": [ { @@ -1216,11 +942,13 @@ ], "license": "MIT-0", "engines": { - "node": ">=18" + "node": ">=20.19.0" } }, "node_modules/@csstools/css-calc": { - "version": "2.1.4", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.3.0.tgz", + "integrity": "sha512-c5ihYsPkdG6JCkU2zTMm4+k6r7RXuGxtWYhu5DHMIiF1FHzrfmHL5so11AoFpUv/tu61xfcmT4AmKoFfMPoqdQ==", "dev": true, "funding": [ { @@ -1234,15 +962,17 @@ ], "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20.19.0" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" } }, "node_modules/@csstools/css-color-parser": { - "version": "3.1.0", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.2.0.tgz", + "integrity": "sha512-5+5LEmFuY1AjXdYhmgjTJogtQnP1evJ1zrBZGUNZ0thkpwnnmKxcHdAMn/OtFjAb25zA+jKDVYVRl+5G7rjv1A==", "dev": true, "funding": [ { @@ -1256,19 +986,21 @@ ], "license": "MIT", "dependencies": { - "@csstools/color-helpers": "^5.1.0", - "@csstools/css-calc": "^2.1.4" + "@csstools/color-helpers": "^6.1.1", + "@csstools/css-calc": "^3.3.0" }, "engines": { - "node": ">=18" + "node": ">=20.19.0" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "3.0.5", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.0.tgz", + "integrity": "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==", "dev": true, "funding": [ { @@ -1282,14 +1014,41 @@ ], "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20.19.0" }, "peerDependencies": { - "@csstools/css-tokenizer": "^3.0.4" + "@csstools/css-tokenizer": "^4.0.0" + } + }, + "node_modules/@csstools/css-syntax-patches-for-csstree": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.8.tgz", + "integrity": "sha512-CpMLjAvwQg3BL5S0IeqsZNMH7EQrEWi0kLKOC13ZBF0ZwERiLWlibNPJr8G1kdU3Ms/r2KiNrF81pUh2HwAHdg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "peerDependencies": { + "css-tree": "^3.2.1" + }, + "peerDependenciesMeta": { + "css-tree": { + "optional": true + } } }, "node_modules/@csstools/css-tokenizer": { - "version": "3.0.4", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz", + "integrity": "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==", "dev": true, "funding": [ { @@ -1303,7 +1062,7 @@ ], "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20.19.0" } }, "node_modules/@date-fns/tz": { @@ -1468,6 +1227,24 @@ "license": "MIT", "peer": true }, + "node_modules/@exodus/bytes": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-1.15.1.tgz", + "integrity": "sha512-S6mL0yNB/Abt9Ei4tq8gDhcczc4S3+vQ4ra7vxnAf+YHC02srtqxKKZghx2Dq6p0e66THKwR6r8N6P95wEty7Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "peerDependencies": { + "@noble/hashes": "^1.8.0 || ^2.0.0" + }, + "peerDependenciesMeta": { + "@noble/hashes": { + "optional": true + } + } + }, "node_modules/@fontsource/inter": { "version": "5.2.8", "license": "OFL-1.1", @@ -1497,1198 +1274,1110 @@ "react-hook-form": "^7.0.0" } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "dev": true, - "license": "ISC", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "license": "MIT", + "peer": true, "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.2.2", - "dev": true, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "node": ">=6.0.0" } }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.2.0", - "dev": true, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", "license": "MIT", + "peer": true, "dependencies": { - "ansi-regex": "^6.2.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", + "node_modules/@juggle/resize-observer": { + "version": "3.4.0", + "license": "Apache-2.0" + }, + "node_modules/@keyv/serialize": { + "version": "1.1.1", "dev": true, - "license": "ISC", + "license": "MIT" + }, + "node_modules/@lezer/common": { + "version": "1.5.2", + "license": "MIT" + }, + "node_modules/@lezer/highlight": { + "version": "1.2.3", + "license": "MIT", "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" + "@lezer/common": "^1.3.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "dev": true, + "node_modules/@lezer/json": { + "version": "1.0.3", "license": "MIT", "dependencies": { - "sprintf-js": "~1.0.2" + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "dev": true, + "node_modules/@lezer/lr": { + "version": "1.4.10", "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" + "@lezer/common": "^1.0.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.15.0", + "node_modules/@marijn/find-cluster-break": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/@module-federation/bridge-react-webpack-plugin": { + "version": "2.6.0", "dev": true, "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "@module-federation/sdk": "2.6.0", + "@types/semver": "7.5.8", + "semver": "7.6.3" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", + "node_modules/@module-federation/cli": { + "version": "2.6.0", "dev": true, "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" + "@module-federation/dts-plugin": "2.6.0", + "@module-federation/sdk": "2.6.0", + "commander": "11.1.0", + "jiti": "2.4.2" + }, + "bin": { + "mf": "bin/mf.js" }, "engines": { - "node": ">=8" + "node": ">=16.0.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", + "node_modules/@module-federation/dts-plugin": { + "version": "2.6.0", "dev": true, "license": "MIT", "dependencies": { - "p-try": "^2.0.0" + "@module-federation/error-codes": "2.6.0", + "@module-federation/managers": "2.6.0", + "@module-federation/sdk": "2.6.0", + "@module-federation/third-party-dts-extractor": "2.6.0", + "adm-zip": "0.5.10", + "ansi-colors": "4.1.3", + "isomorphic-ws": "5.0.0", + "node-schedule": "2.1.1", + "undici": "7.28.0", + "ws": "8.21.0" }, - "engines": { - "node": ">=6" + "peerDependencies": { + "typescript": "^4.9.0 || ^5.0.0", + "vue-tsc": ">=1.0.24" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependenciesMeta": { + "vue-tsc": { + "optional": true + } } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", + "node_modules/@module-federation/enhanced": { + "version": "2.6.0", "dev": true, "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" + "@module-federation/bridge-react-webpack-plugin": "2.6.0", + "@module-federation/cli": "2.6.0", + "@module-federation/dts-plugin": "2.6.0", + "@module-federation/error-codes": "2.6.0", + "@module-federation/inject-external-runtime-core-plugin": "2.6.0", + "@module-federation/managers": "2.6.0", + "@module-federation/manifest": "2.6.0", + "@module-federation/rspack": "2.6.0", + "@module-federation/runtime-tools": "2.6.0", + "@module-federation/sdk": "2.6.0", + "@module-federation/webpack-bundler-runtime": "2.6.0", + "schema-utils": "4.3.0", + "tapable": "2.3.0", + "upath": "2.0.1" }, - "engines": { - "node": ">=8" + "bin": { + "mf": "bin/mf.js" + }, + "peerDependencies": { + "typescript": "^4.9.0 || ^5.0.0", + "vue-tsc": ">=1.0.24", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vue-tsc": { + "optional": true + }, + "webpack": { + "optional": true + } } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", + "node_modules/@module-federation/error-codes": { + "version": "2.6.0", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@module-federation/inject-external-runtime-core-plugin": { + "version": "2.6.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "peerDependencies": { + "@module-federation/runtime-tools": "2.6.0" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.6", + "node_modules/@module-federation/managers": { + "version": "2.6.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "@module-federation/sdk": "2.6.0", + "find-pkg": "2.0.0" } }, - "node_modules/@jest/console": { - "version": "30.4.1", + "node_modules/@module-federation/manifest": { + "version": "2.6.0", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.4.1", - "@types/node": "*", - "chalk": "^4.1.2", - "jest-message-util": "30.4.1", - "jest-util": "30.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "@module-federation/dts-plugin": "2.6.0", + "@module-federation/managers": "2.6.0", + "@module-federation/sdk": "2.6.0", + "find-pkg": "2.0.0" } }, - "node_modules/@jest/core": { - "version": "30.4.2", + "node_modules/@module-federation/node": { + "version": "2.7.45", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "30.4.1", - "@jest/pattern": "30.4.0", - "@jest/reporters": "30.4.1", - "@jest/test-result": "30.4.1", - "@jest/transform": "30.4.1", - "@jest/types": "30.4.1", - "@types/node": "*", - "ansi-escapes": "^4.3.2", - "chalk": "^4.1.2", - "ci-info": "^4.2.0", - "exit-x": "^0.2.2", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.11", - "jest-changed-files": "30.4.1", - "jest-config": "30.4.2", - "jest-haste-map": "30.4.1", - "jest-message-util": "30.4.1", - "jest-regex-util": "30.4.0", - "jest-resolve": "30.4.1", - "jest-resolve-dependencies": "30.4.2", - "jest-runner": "30.4.2", - "jest-runtime": "30.4.2", - "jest-snapshot": "30.4.1", - "jest-util": "30.4.1", - "jest-validate": "30.4.1", - "jest-watcher": "30.4.1", - "pretty-format": "30.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "@module-federation/enhanced": "2.6.0", + "@module-federation/runtime": "2.6.0", + "@module-federation/sdk": "2.6.0", + "encoding": "0.1.13", + "node-fetch": "2.7.0", + "tapable": "2.3.0" }, "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + "webpack": "^5.40.0" }, "peerDependenciesMeta": { - "node-notifier": { + "webpack": { "optional": true } } }, - "node_modules/@jest/core/node_modules/ansi-styles": { - "version": "5.2.0", + "node_modules/@module-federation/rsbuild-plugin": { + "version": "2.6.0", "dev": true, "license": "MIT", + "dependencies": { + "@module-federation/enhanced": "2.6.0", + "@module-federation/node": "2.7.45", + "@module-federation/sdk": "2.6.0" + }, "engines": { - "node": ">=10" + "node": ">=16.0.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependencies": { + "@rsbuild/core": "^1.3.21 || ^2.0.0-0" + }, + "peerDependenciesMeta": { + "@rsbuild/core": { + "optional": true + } } }, - "node_modules/@jest/core/node_modules/pretty-format": { - "version": "30.4.1", + "node_modules/@module-federation/rspack": { + "version": "2.6.0", "dev": true, "license": "MIT", "dependencies": { - "@jest/schemas": "30.4.1", - "ansi-styles": "^5.2.0", - "react-is-18": "npm:react-is@^18.3.1", - "react-is-19": "npm:react-is@^19.2.5" + "@module-federation/bridge-react-webpack-plugin": "2.6.0", + "@module-federation/dts-plugin": "2.6.0", + "@module-federation/inject-external-runtime-core-plugin": "2.6.0", + "@module-federation/managers": "2.6.0", + "@module-federation/manifest": "2.6.0", + "@module-federation/runtime-tools": "2.6.0", + "@module-federation/sdk": "2.6.0" }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "peerDependencies": { + "@rspack/core": "^0.7.0 || ^1.0.0 || ^2.0.0-0", + "typescript": "^4.9.0 || ^5.0.0", + "vue-tsc": ">=1.0.24" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vue-tsc": { + "optional": true + } } }, - "node_modules/@jest/create-cache-key-function": { - "version": "30.4.1", - "dev": true, + "node_modules/@module-federation/runtime": { + "version": "2.6.0", + "devOptional": true, "license": "MIT", "dependencies": { - "@jest/types": "30.4.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "@module-federation/error-codes": "2.6.0", + "@module-federation/runtime-core": "2.6.0", + "@module-federation/sdk": "2.6.0" } }, - "node_modules/@jest/diff-sequences": { - "version": "30.4.0", - "dev": true, + "node_modules/@module-federation/runtime-core": { + "version": "2.6.0", + "devOptional": true, "license": "MIT", - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "dependencies": { + "@module-federation/error-codes": "2.6.0", + "@module-federation/sdk": "2.6.0" } }, - "node_modules/@jest/environment": { - "version": "30.4.1", - "dev": true, + "node_modules/@module-federation/runtime-tools": { + "version": "2.6.0", + "devOptional": true, "license": "MIT", "dependencies": { - "@jest/fake-timers": "30.4.1", - "@jest/types": "30.4.1", - "@types/node": "*", - "jest-mock": "30.4.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "@module-federation/runtime": "2.6.0", + "@module-federation/webpack-bundler-runtime": "2.6.0" } }, - "node_modules/@jest/environment-jsdom-abstract": { - "version": "30.4.1", - "dev": true, + "node_modules/@module-federation/sdk": { + "version": "2.6.0", + "devOptional": true, "license": "MIT", - "dependencies": { - "@jest/environment": "30.4.1", - "@jest/fake-timers": "30.4.1", - "@jest/types": "30.4.1", - "@types/jsdom": "^21.1.7", - "@types/node": "*", - "jest-mock": "30.4.1", - "jest-util": "30.4.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - }, "peerDependencies": { - "canvas": "^3.0.0", - "jsdom": "*" + "node-fetch": "^2.7.0 || ^3.3.2" }, "peerDependenciesMeta": { - "canvas": { + "node-fetch": { "optional": true } } }, - "node_modules/@jest/expect": { - "version": "30.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "expect": "30.4.1", - "jest-snapshot": "30.4.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/@jest/expect-utils": { - "version": "30.4.1", + "node_modules/@module-federation/third-party-dts-extractor": { + "version": "2.6.0", "dev": true, "license": "MIT", "dependencies": { - "@jest/get-type": "30.1.0" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "find-pkg": "2.0.0", + "resolve": "1.22.8" } }, - "node_modules/@jest/fake-timers": { - "version": "30.4.1", - "dev": true, + "node_modules/@module-federation/webpack-bundler-runtime": { + "version": "2.6.0", + "devOptional": true, "license": "MIT", "dependencies": { - "@jest/types": "30.4.1", - "@sinonjs/fake-timers": "^15.4.0", - "@types/node": "*", - "jest-message-util": "30.4.1", - "jest-mock": "30.4.1", - "jest-util": "30.4.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "@module-federation/error-codes": "2.6.0", + "@module-federation/runtime": "2.6.0", + "@module-federation/sdk": "2.6.0" } }, - "node_modules/@jest/get-type": { - "version": "30.1.0", - "dev": true, + "node_modules/@mui/core-downloads-tracker": { + "version": "6.5.0", "license": "MIT", - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" } }, - "node_modules/@jest/globals": { - "version": "30.4.1", - "dev": true, + "node_modules/@mui/material": { + "version": "6.5.0", "license": "MIT", + "peer": true, "dependencies": { - "@jest/environment": "30.4.1", - "@jest/expect": "30.4.1", - "@jest/types": "30.4.1", - "jest-mock": "30.4.1" + "@babel/runtime": "^7.26.0", + "@mui/core-downloads-tracker": "^6.5.0", + "@mui/system": "^6.5.0", + "@mui/types": "~7.2.24", + "@mui/utils": "^6.4.9", + "@popperjs/core": "^2.11.8", + "@types/react-transition-group": "^4.4.12", + "clsx": "^2.1.1", + "csstype": "^3.1.3", + "prop-types": "^15.8.1", + "react-is": "^19.0.0", + "react-transition-group": "^4.4.5" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/@jest/pattern": { - "version": "30.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "jest-regex-util": "30.4.0" + "node": ">=14.0.0" }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@mui/material-pigment-css": "^6.5.0", + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@mui/material-pigment-css": { + "optional": true + }, + "@types/react": { + "optional": true + } } }, - "node_modules/@jest/reporters": { - "version": "30.4.1", - "dev": true, + "node_modules/@mui/private-theming": { + "version": "6.4.9", "license": "MIT", + "peer": true, "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "30.4.1", - "@jest/test-result": "30.4.1", - "@jest/transform": "30.4.1", - "@jest/types": "30.4.1", - "@jridgewell/trace-mapping": "^0.3.25", - "@types/node": "*", - "chalk": "^4.1.2", - "collect-v8-coverage": "^1.0.2", - "exit-x": "^0.2.2", - "glob": "^10.5.0", - "graceful-fs": "^4.2.11", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^5.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "30.4.1", - "jest-util": "30.4.1", - "jest-worker": "30.4.1", - "slash": "^3.0.0", - "string-length": "^4.0.2", - "v8-to-istanbul": "^9.0.1" + "@babel/runtime": "^7.26.0", + "@mui/utils": "^6.4.9", + "prop-types": "^15.8.1" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" }, "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { - "node-notifier": { + "@types/react": { "optional": true } } }, - "node_modules/@jest/schemas": { - "version": "30.4.1", - "dev": true, + "node_modules/@mui/styled-engine": { + "version": "6.5.0", "license": "MIT", + "peer": true, "dependencies": { - "@sinclair/typebox": "^0.34.0" + "@babel/runtime": "^7.26.0", + "@emotion/cache": "^11.13.5", + "@emotion/serialize": "^1.3.3", + "@emotion/sheet": "^1.4.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/@jest/snapshot-utils": { - "version": "30.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "30.4.1", - "chalk": "^4.1.2", - "graceful-fs": "^4.2.11", - "natural-compare": "^1.4.0" + "node": ">=14.0.0" }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.4.1", + "@emotion/styled": "^11.3.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } } }, - "node_modules/@jest/source-map": { - "version": "30.0.1", - "dev": true, + "node_modules/@mui/system": { + "version": "6.5.0", "license": "MIT", + "peer": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", - "callsites": "^3.1.0", - "graceful-fs": "^4.2.11" + "@babel/runtime": "^7.26.0", + "@mui/private-theming": "^6.4.9", + "@mui/styled-engine": "^6.5.0", + "@mui/types": "~7.2.24", + "@mui/utils": "^6.4.9", + "clsx": "^2.1.1", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } } }, - "node_modules/@jest/test-result": { - "version": "30.4.1", - "dev": true, + "node_modules/@mui/types": { + "version": "7.2.24", "license": "MIT", - "dependencies": { - "@jest/console": "30.4.1", - "@jest/types": "30.4.1", - "@types/istanbul-lib-coverage": "^2.0.6", - "collect-v8-coverage": "^1.0.2" + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@jest/test-sequencer": { - "version": "30.4.1", - "dev": true, + "node_modules/@mui/utils": { + "version": "6.4.9", "license": "MIT", "dependencies": { - "@jest/test-result": "30.4.1", - "graceful-fs": "^4.2.11", - "jest-haste-map": "30.4.1", - "slash": "^3.0.0" + "@babel/runtime": "^7.26.0", + "@mui/types": "~7.2.24", + "@types/prop-types": "^15.7.14", + "clsx": "^2.1.1", + "prop-types": "^15.8.1", + "react-is": "^19.0.0" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@jest/transform": { - "version": "30.4.1", - "dev": true, + "node_modules/@mui/x-data-grid": { + "version": "7.29.13", "license": "MIT", "dependencies": { - "@babel/core": "^7.27.4", - "@jest/types": "30.4.1", - "@jridgewell/trace-mapping": "^0.3.25", - "babel-plugin-istanbul": "^7.0.1", - "chalk": "^4.1.2", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.11", - "jest-haste-map": "30.4.1", - "jest-regex-util": "30.4.0", - "jest-util": "30.4.1", - "pirates": "^4.0.7", - "slash": "^3.0.0", - "write-file-atomic": "^5.0.1" + "@babel/runtime": "^7.25.7", + "@mui/utils": "^5.16.6 || ^6.0.0 || ^7.0.0", + "@mui/x-internals": "7.29.0", + "clsx": "^2.1.1", + "prop-types": "^15.8.1", + "reselect": "^5.1.1", + "use-sync-external-store": "^1.0.0" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.9.0", + "@emotion/styled": "^11.8.1", + "@mui/material": "^5.15.14 || ^6.0.0 || ^7.0.0", + "@mui/system": "^5.15.14 || ^6.0.0 || ^7.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } } }, - "node_modules/@jest/transform/node_modules/convert-source-map": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@jest/types": { - "version": "30.4.1", - "dev": true, + "node_modules/@mui/x-date-pickers": { + "version": "7.29.4", "license": "MIT", "dependencies": { - "@jest/pattern": "30.4.0", - "@jest/schemas": "30.4.1", - "@types/istanbul-lib-coverage": "^2.0.6", - "@types/istanbul-reports": "^3.0.4", - "@types/node": "*", - "@types/yargs": "^17.0.33", - "chalk": "^4.1.2" + "@babel/runtime": "^7.25.7", + "@mui/utils": "^5.16.6 || ^6.0.0 || ^7.0.0", + "@mui/x-internals": "7.29.0", + "@types/react-transition-group": "^4.4.11", + "clsx": "^2.1.1", + "prop-types": "^15.8.1", + "react-transition-group": "^4.4.5" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.9.0", + "@emotion/styled": "^11.8.1", + "@mui/material": "^5.15.14 || ^6.0.0 || ^7.0.0", + "@mui/system": "^5.15.14 || ^6.0.0 || ^7.0.0", + "date-fns": "^2.25.0 || ^3.2.0 || ^4.0.0", + "date-fns-jalali": "^2.13.0-0 || ^3.2.0-0 || ^4.0.0-0", + "dayjs": "^1.10.7", + "luxon": "^3.0.2", + "moment": "^2.29.4", + "moment-hijri": "^2.1.2 || ^3.0.0", + "moment-jalaali": "^0.7.4 || ^0.8.0 || ^0.9.0 || ^0.10.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "date-fns": { + "optional": true + }, + "date-fns-jalali": { + "optional": true + }, + "dayjs": { + "optional": true + }, + "luxon": { + "optional": true + }, + "moment": { + "optional": true + }, + "moment-hijri": { + "optional": true + }, + "moment-jalaali": { + "optional": true + } } }, - "node_modules/@jridgewell/remapping": { - "version": "2.3.5", - "dev": true, + "node_modules/@mui/x-internals": { + "version": "7.29.0", "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" + "@babel/runtime": "^7.25.7", + "@mui/utils": "^5.16.6 || ^6.0.0 || ^7.0.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", + "node_modules/@napi-rs/nice": { + "version": "1.1.1", + "dev": true, "license": "MIT", + "optional": true, "engines": { - "node": ">=6.0.0" + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "optionalDependencies": { + "@napi-rs/nice-android-arm-eabi": "1.1.1", + "@napi-rs/nice-android-arm64": "1.1.1", + "@napi-rs/nice-darwin-arm64": "1.1.1", + "@napi-rs/nice-darwin-x64": "1.1.1", + "@napi-rs/nice-freebsd-x64": "1.1.1", + "@napi-rs/nice-linux-arm-gnueabihf": "1.1.1", + "@napi-rs/nice-linux-arm64-gnu": "1.1.1", + "@napi-rs/nice-linux-arm64-musl": "1.1.1", + "@napi-rs/nice-linux-ppc64-gnu": "1.1.1", + "@napi-rs/nice-linux-riscv64-gnu": "1.1.1", + "@napi-rs/nice-linux-s390x-gnu": "1.1.1", + "@napi-rs/nice-linux-x64-gnu": "1.1.1", + "@napi-rs/nice-linux-x64-musl": "1.1.1", + "@napi-rs/nice-openharmony-arm64": "1.1.1", + "@napi-rs/nice-win32-arm64-msvc": "1.1.1", + "@napi-rs/nice-win32-ia32-msvc": "1.1.1", + "@napi-rs/nice-win32-x64-msvc": "1.1.1" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", + "node_modules/@napi-rs/nice-android-arm-eabi": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm-eabi/-/nice-android-arm-eabi-1.1.1.tgz", + "integrity": "sha512-kjirL3N6TnRPv5iuHw36wnucNqXAO46dzK9oPb0wj076R5Xm8PfUVA9nAFB5ZNMmfJQJVKACAPd/Z2KYMppthw==", + "cpu": [ + "arm" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@juggle/resize-observer": { - "version": "3.4.0", - "license": "Apache-2.0" - }, - "node_modules/@keyv/serialize": { + "node_modules/@napi-rs/nice-android-arm64": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm64/-/nice-android-arm64-1.1.1.tgz", + "integrity": "sha512-blG0i7dXgbInN5urONoUCNf+DUEAavRffrO7fZSeoRMJc5qD+BJeNcpr54msPF6qfDD6kzs9AQJogZvT2KD5nw==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT" - }, - "node_modules/@lezer/common": { - "version": "1.5.2", - "license": "MIT" - }, - "node_modules/@lezer/highlight": { - "version": "1.2.3", "license": "MIT", - "dependencies": { - "@lezer/common": "^1.3.0" + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@lezer/json": { - "version": "1.0.3", + "node_modules/@napi-rs/nice-darwin-arm64": { + "version": "1.1.1", + "cpu": [ + "arm64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@lezer/lr": { - "version": "1.4.10", + "node_modules/@napi-rs/nice-darwin-x64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-x64/-/nice-darwin-x64-1.1.1.tgz", + "integrity": "sha512-dGoEBnVpsdcC+oHHmW1LRK5eiyzLwdgNQq3BmZIav+9/5WTZwBYX7r5ZkQC07Nxd3KHOCkgbHSh4wPkH1N1LiQ==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@lezer/common": "^1.0.0" + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@marijn/find-cluster-break": { - "version": "1.0.3", - "license": "MIT" - }, - "node_modules/@module-federation/bridge-react-webpack-plugin": { - "version": "2.6.0", + "node_modules/@napi-rs/nice-freebsd-x64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-freebsd-x64/-/nice-freebsd-x64-1.1.1.tgz", + "integrity": "sha512-kHv4kEHAylMYmlNwcQcDtXjklYp4FCf0b05E+0h6nDHsZ+F0bDe04U/tXNOqrx5CmIAth4vwfkjjUmp4c4JktQ==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@module-federation/sdk": "2.6.0", - "@types/semver": "7.5.8", - "semver": "7.6.3" + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@module-federation/cli": { - "version": "2.6.0", + "node_modules/@napi-rs/nice-linux-arm-gnueabihf": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm-gnueabihf/-/nice-linux-arm-gnueabihf-1.1.1.tgz", + "integrity": "sha512-E1t7K0efyKXZDoZg1LzCOLxgolxV58HCkaEkEvIYQx12ht2pa8hoBo+4OB3qh7e+QiBlp1SRf+voWUZFxyhyqg==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "dependencies": { - "@module-federation/dts-plugin": "2.6.0", - "@module-federation/sdk": "2.6.0", - "commander": "11.1.0", - "jiti": "2.4.2" - }, - "bin": { - "mf": "bin/mf.js" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=16.0.0" + "node": ">= 10" } }, - "node_modules/@module-federation/dts-plugin": { - "version": "2.6.0", + "node_modules/@napi-rs/nice-linux-arm64-gnu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-gnu/-/nice-linux-arm64-gnu-1.1.1.tgz", + "integrity": "sha512-CIKLA12DTIZlmTaaKhQP88R3Xao+gyJxNWEn04wZwC2wmRapNnxCUZkVwggInMJvtVElA+D4ZzOU5sX4jV+SmQ==", + "cpu": [ + "arm64" + ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "dependencies": { - "@module-federation/error-codes": "2.6.0", - "@module-federation/managers": "2.6.0", - "@module-federation/sdk": "2.6.0", - "@module-federation/third-party-dts-extractor": "2.6.0", - "adm-zip": "0.5.10", - "ansi-colors": "4.1.3", - "isomorphic-ws": "5.0.0", - "node-schedule": "2.1.1", - "undici": "7.28.0", - "ws": "8.21.0" - }, - "peerDependencies": { - "typescript": "^4.9.0 || ^5.0.0", - "vue-tsc": ">=1.0.24" - }, - "peerDependenciesMeta": { - "vue-tsc": { - "optional": true - } + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@module-federation/enhanced": { - "version": "2.6.0", + "node_modules/@napi-rs/nice-linux-arm64-musl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-musl/-/nice-linux-arm64-musl-1.1.1.tgz", + "integrity": "sha512-+2Rzdb3nTIYZ0YJF43qf2twhqOCkiSrHx2Pg6DJaCPYhhaxbLcdlV8hCRMHghQ+EtZQWGNcS2xF4KxBhSGeutg==", + "cpu": [ + "arm64" + ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", - "dependencies": { - "@module-federation/bridge-react-webpack-plugin": "2.6.0", - "@module-federation/cli": "2.6.0", - "@module-federation/dts-plugin": "2.6.0", - "@module-federation/error-codes": "2.6.0", - "@module-federation/inject-external-runtime-core-plugin": "2.6.0", - "@module-federation/managers": "2.6.0", - "@module-federation/manifest": "2.6.0", - "@module-federation/rspack": "2.6.0", - "@module-federation/runtime-tools": "2.6.0", - "@module-federation/sdk": "2.6.0", - "@module-federation/webpack-bundler-runtime": "2.6.0", - "schema-utils": "4.3.0", - "tapable": "2.3.0", - "upath": "2.0.1" - }, - "bin": { - "mf": "bin/mf.js" - }, - "peerDependencies": { - "typescript": "^4.9.0 || ^5.0.0", - "vue-tsc": ">=1.0.24", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - }, - "vue-tsc": { - "optional": true - }, - "webpack": { - "optional": true - } + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@module-federation/error-codes": { - "version": "2.6.0", - "devOptional": true, - "license": "MIT" - }, - "node_modules/@module-federation/inject-external-runtime-core-plugin": { - "version": "2.6.0", + "node_modules/@napi-rs/nice-linux-ppc64-gnu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-ppc64-gnu/-/nice-linux-ppc64-gnu-1.1.1.tgz", + "integrity": "sha512-4FS8oc0GeHpwvv4tKciKkw3Y4jKsL7FRhaOeiPei0X9T4Jd619wHNe4xCLmN2EMgZoeGg+Q7GY7BsvwKpL22Tg==", + "cpu": [ + "ppc64" + ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "peerDependencies": { - "@module-federation/runtime-tools": "2.6.0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@module-federation/managers": { - "version": "2.6.0", + "node_modules/@napi-rs/nice-linux-riscv64-gnu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-riscv64-gnu/-/nice-linux-riscv64-gnu-1.1.1.tgz", + "integrity": "sha512-HU0nw9uD4FO/oGCCk409tCi5IzIZpH2agE6nN4fqpwVlCn5BOq0MS1dXGjXaG17JaAvrlpV5ZeyZwSon10XOXw==", + "cpu": [ + "riscv64" + ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "dependencies": { - "@module-federation/sdk": "2.6.0", - "find-pkg": "2.0.0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@module-federation/manifest": { - "version": "2.6.0", + "node_modules/@napi-rs/nice-linux-s390x-gnu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-s390x-gnu/-/nice-linux-s390x-gnu-1.1.1.tgz", + "integrity": "sha512-2YqKJWWl24EwrX0DzCQgPLKQBxYDdBxOHot1KWEq7aY2uYeX+Uvtv4I8xFVVygJDgf6/92h9N3Y43WPx8+PAgQ==", + "cpu": [ + "s390x" + ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "dependencies": { - "@module-federation/dts-plugin": "2.6.0", - "@module-federation/managers": "2.6.0", - "@module-federation/sdk": "2.6.0", - "find-pkg": "2.0.0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@module-federation/node": { - "version": "2.7.45", + "node_modules/@napi-rs/nice-linux-x64-gnu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-gnu/-/nice-linux-x64-gnu-1.1.1.tgz", + "integrity": "sha512-/gaNz3R92t+dcrfCw/96pDopcmec7oCcAQ3l/M+Zxr82KT4DljD37CpgrnXV+pJC263JkW572pdbP3hP+KjcIg==", + "cpu": [ + "x64" + ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "dependencies": { - "@module-federation/enhanced": "2.6.0", - "@module-federation/runtime": "2.6.0", - "@module-federation/sdk": "2.6.0", - "encoding": "0.1.13", - "node-fetch": "2.7.0", - "tapable": "2.3.0" - }, - "peerDependencies": { - "webpack": "^5.40.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - } + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@module-federation/rsbuild-plugin": { - "version": "2.6.0", + "node_modules/@napi-rs/nice-linux-x64-musl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-musl/-/nice-linux-x64-musl-1.1.1.tgz", + "integrity": "sha512-xScCGnyj/oppsNPMnevsBe3pvNaoK7FGvMjT35riz9YdhB2WtTG47ZlbxtOLpjeO9SqqQ2J2igCmz6IJOD5JYw==", + "cpu": [ + "x64" + ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", - "dependencies": { - "@module-federation/enhanced": "2.6.0", - "@module-federation/node": "2.7.45", - "@module-federation/sdk": "2.6.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "@rsbuild/core": "^1.3.21 || ^2.0.0-0" - }, - "peerDependenciesMeta": { - "@rsbuild/core": { - "optional": true - } + "node": ">= 10" } }, - "node_modules/@module-federation/rspack": { - "version": "2.6.0", + "node_modules/@napi-rs/nice-openharmony-arm64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-openharmony-arm64/-/nice-openharmony-arm64-1.1.1.tgz", + "integrity": "sha512-6uJPRVwVCLDeoOaNyeiW0gp2kFIM4r7PL2MczdZQHkFi9gVlgm+Vn+V6nTWRcu856mJ2WjYJiumEajfSm7arPQ==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@module-federation/bridge-react-webpack-plugin": "2.6.0", - "@module-federation/dts-plugin": "2.6.0", - "@module-federation/inject-external-runtime-core-plugin": "2.6.0", - "@module-federation/managers": "2.6.0", - "@module-federation/manifest": "2.6.0", - "@module-federation/runtime-tools": "2.6.0", - "@module-federation/sdk": "2.6.0" - }, - "peerDependencies": { - "@rspack/core": "^0.7.0 || ^1.0.0 || ^2.0.0-0", - "typescript": "^4.9.0 || ^5.0.0", - "vue-tsc": ">=1.0.24" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - }, - "vue-tsc": { - "optional": true - } + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@module-federation/runtime": { - "version": "2.6.0", - "devOptional": true, + "node_modules/@napi-rs/nice-win32-arm64-msvc": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-arm64-msvc/-/nice-win32-arm64-msvc-1.1.1.tgz", + "integrity": "sha512-uoTb4eAvM5B2aj/z8j+Nv8OttPf2m+HVx3UjA5jcFxASvNhQriyCQF1OB1lHL43ZhW+VwZlgvjmP5qF3+59atA==", + "cpu": [ + "arm64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@module-federation/error-codes": "2.6.0", - "@module-federation/runtime-core": "2.6.0", - "@module-federation/sdk": "2.6.0" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@module-federation/runtime-core": { - "version": "2.6.0", - "devOptional": true, + "node_modules/@napi-rs/nice-win32-ia32-msvc": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-ia32-msvc/-/nice-win32-ia32-msvc-1.1.1.tgz", + "integrity": "sha512-CNQqlQT9MwuCsg1Vd/oKXiuH+TcsSPJmlAFc5frFyX/KkOh0UpBLEj7aoY656d5UKZQMQFP7vJNa1DNUNORvug==", + "cpu": [ + "ia32" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@module-federation/error-codes": "2.6.0", - "@module-federation/sdk": "2.6.0" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@module-federation/runtime-tools": { - "version": "2.6.0", - "devOptional": true, + "node_modules/@napi-rs/nice-win32-x64-msvc": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-x64-msvc/-/nice-win32-x64-msvc-1.1.1.tgz", + "integrity": "sha512-vB+4G/jBQCAh0jelMTY3+kgFy00Hlx2f2/1zjMoH821IbplbWZOkLiTYXQkygNTzQJTq5cvwBDgn2ppHD+bglQ==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@module-federation/runtime": "2.6.0", - "@module-federation/webpack-bundler-runtime": "2.6.0" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/@module-federation/sdk": { - "version": "2.6.0", - "devOptional": true, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.6", "license": "MIT", - "peerDependencies": { - "node-fetch": "^2.7.0 || ^3.3.2" + "optional": true, + "peer": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.3" }, - "peerDependenciesMeta": { - "node-fetch": { - "optional": true - } + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" } }, - "node_modules/@module-federation/third-party-dts-extractor": { - "version": "2.6.0", + "node_modules/@nexucis/fuzzy": { + "version": "0.5.1", + "license": "MIT" + }, + "node_modules/@oxc-parser/binding-android-arm-eabi": { + "version": "0.143.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm-eabi/-/binding-android-arm-eabi-0.143.0.tgz", + "integrity": "sha512-n9uozULWflPqBtdmI8lAabLqGKNgLVNN0ZH8HfgCwpKGNtzRzauB76jTiW/3YLkcA7N1zskpi9GdVnZuu1SAvg==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "dependencies": { - "find-pkg": "2.0.0", - "resolve": "1.22.8" + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@module-federation/webpack-bundler-runtime": { - "version": "2.6.0", - "devOptional": true, + "node_modules/@oxc-parser/binding-android-arm64": { + "version": "0.143.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm64/-/binding-android-arm64-0.143.0.tgz", + "integrity": "sha512-9BbdjHETk6O3zH/DDid9IgBtF0GlpLabNKN231uraXpRDSfY+iiZxTP5bk1Z63GBownVdhdINFIeddmMz4MzpQ==", + "cpu": [ + "arm64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@module-federation/error-codes": "2.6.0", - "@module-federation/runtime": "2.6.0", - "@module-federation/sdk": "2.6.0" + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@mui/core-downloads-tracker": { - "version": "6.5.0", + "node_modules/@oxc-parser/binding-darwin-arm64": { + "version": "0.143.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-arm64/-/binding-darwin-arm64-0.143.0.tgz", + "integrity": "sha512-gh+6ecoHUy4/sUcolBl/1qPXKBbYNxFY0Pk0ujgQvINTMSftJY7o4yb8gOkDJPeZeB8+a+u7xTe6umoP8N5HFA==", + "cpu": [ + "arm64" + ], + "dev": true, "license": "MIT", - "peer": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@mui/material": { - "version": "6.5.0", + "node_modules/@oxc-parser/binding-darwin-x64": { + "version": "0.143.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-x64/-/binding-darwin-x64-0.143.0.tgz", + "integrity": "sha512-qd1hl2d+lXgHv/VQ/M9qm8TrMC5T4RqDBwtOnl+1D0QMjwcz+8AaB4JSg8STgeag0GP6a6L74XEGAsrTSJWNzQ==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.26.0", - "@mui/core-downloads-tracker": "^6.5.0", - "@mui/system": "^6.5.0", - "@mui/types": "~7.2.24", - "@mui/utils": "^6.4.9", - "@popperjs/core": "^2.11.8", - "@types/react-transition-group": "^4.4.12", - "clsx": "^2.1.1", - "csstype": "^3.1.3", - "prop-types": "^15.8.1", - "react-is": "^19.0.0", - "react-transition-group": "^4.4.5" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@emotion/react": "^11.5.0", - "@emotion/styled": "^11.3.0", - "@mui/material-pigment-css": "^6.5.0", - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - }, - "@mui/material-pigment-css": { - "optional": true - }, - "@types/react": { - "optional": true - } + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@mui/private-theming": { - "version": "6.4.9", + "node_modules/@oxc-parser/binding-freebsd-x64": { + "version": "0.143.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-freebsd-x64/-/binding-freebsd-x64-0.143.0.tgz", + "integrity": "sha512-M5XXcNa7aOqLPKTR41msfghKu2yQ4xWvCm11/gwU0JzOzHNk5sgW//rVEjJ+LO48+VDAMzXTSzurUVxIDKwozw==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.26.0", - "@mui/utils": "^6.4.9", - "prop-types": "^15.8.1" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@mui/styled-engine": { - "version": "6.5.0", + "node_modules/@oxc-parser/binding-linux-arm-gnueabihf": { + "version": "0.143.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.143.0.tgz", + "integrity": "sha512-T/GXusuOkPNQhCQCSBbcU/N8j0rAypuDBl1IyFK+lyYT594XsVz80clPC/OtbSSpBGyJxj8uYEfctxVuxVYoww==", + "cpu": [ + "arm" + ], + "dev": true, "license": "MIT", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.26.0", - "@emotion/cache": "^11.13.5", - "@emotion/serialize": "^1.3.3", - "@emotion/sheet": "^1.4.0", - "csstype": "^3.1.3", - "prop-types": "^15.8.1" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@emotion/react": "^11.4.1", - "@emotion/styled": "^11.3.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - } + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@mui/system": { - "version": "6.5.0", - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.26.0", - "@mui/private-theming": "^6.4.9", - "@mui/styled-engine": "^6.5.0", - "@mui/types": "~7.2.24", - "@mui/utils": "^6.4.9", - "clsx": "^2.1.1", - "csstype": "^3.1.3", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@emotion/react": "^11.5.0", - "@emotion/styled": "^11.3.0", - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - }, - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/types": { - "version": "7.2.24", - "license": "MIT", - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/utils": { - "version": "6.4.9", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.26.0", - "@mui/types": "~7.2.24", - "@types/prop-types": "^15.7.14", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-is": "^19.0.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/x-data-grid": { - "version": "7.29.13", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.25.7", - "@mui/utils": "^5.16.6 || ^6.0.0 || ^7.0.0", - "@mui/x-internals": "7.29.0", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "reselect": "^5.1.1", - "use-sync-external-store": "^1.0.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@emotion/react": "^11.9.0", - "@emotion/styled": "^11.8.1", - "@mui/material": "^5.15.14 || ^6.0.0 || ^7.0.0", - "@mui/system": "^5.15.14 || ^6.0.0 || ^7.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - } - } - }, - "node_modules/@mui/x-date-pickers": { - "version": "7.29.4", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.25.7", - "@mui/utils": "^5.16.6 || ^6.0.0 || ^7.0.0", - "@mui/x-internals": "7.29.0", - "@types/react-transition-group": "^4.4.11", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-transition-group": "^4.4.5" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@emotion/react": "^11.9.0", - "@emotion/styled": "^11.8.1", - "@mui/material": "^5.15.14 || ^6.0.0 || ^7.0.0", - "@mui/system": "^5.15.14 || ^6.0.0 || ^7.0.0", - "date-fns": "^2.25.0 || ^3.2.0 || ^4.0.0", - "date-fns-jalali": "^2.13.0-0 || ^3.2.0-0 || ^4.0.0-0", - "dayjs": "^1.10.7", - "luxon": "^3.0.2", - "moment": "^2.29.4", - "moment-hijri": "^2.1.2 || ^3.0.0", - "moment-jalaali": "^0.7.4 || ^0.8.0 || ^0.9.0 || ^0.10.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - }, - "date-fns": { - "optional": true - }, - "date-fns-jalali": { - "optional": true - }, - "dayjs": { - "optional": true - }, - "luxon": { - "optional": true - }, - "moment": { - "optional": true - }, - "moment-hijri": { - "optional": true - }, - "moment-jalaali": { - "optional": true - } - } - }, - "node_modules/@mui/x-internals": { - "version": "7.29.0", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.25.7", - "@mui/utils": "^5.16.6 || ^6.0.0 || ^7.0.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@napi-rs/nice": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - }, - "optionalDependencies": { - "@napi-rs/nice-android-arm-eabi": "1.1.1", - "@napi-rs/nice-android-arm64": "1.1.1", - "@napi-rs/nice-darwin-arm64": "1.1.1", - "@napi-rs/nice-darwin-x64": "1.1.1", - "@napi-rs/nice-freebsd-x64": "1.1.1", - "@napi-rs/nice-linux-arm-gnueabihf": "1.1.1", - "@napi-rs/nice-linux-arm64-gnu": "1.1.1", - "@napi-rs/nice-linux-arm64-musl": "1.1.1", - "@napi-rs/nice-linux-ppc64-gnu": "1.1.1", - "@napi-rs/nice-linux-riscv64-gnu": "1.1.1", - "@napi-rs/nice-linux-s390x-gnu": "1.1.1", - "@napi-rs/nice-linux-x64-gnu": "1.1.1", - "@napi-rs/nice-linux-x64-musl": "1.1.1", - "@napi-rs/nice-openharmony-arm64": "1.1.1", - "@napi-rs/nice-win32-arm64-msvc": "1.1.1", - "@napi-rs/nice-win32-ia32-msvc": "1.1.1", - "@napi-rs/nice-win32-x64-msvc": "1.1.1" - } - }, - "node_modules/@napi-rs/nice-android-arm-eabi": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm-eabi/-/nice-android-arm-eabi-1.1.1.tgz", - "integrity": "sha512-kjirL3N6TnRPv5iuHw36wnucNqXAO46dzK9oPb0wj076R5Xm8PfUVA9nAFB5ZNMmfJQJVKACAPd/Z2KYMppthw==", + "node_modules/@oxc-parser/binding-linux-arm-musleabihf": { + "version": "0.143.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.143.0.tgz", + "integrity": "sha512-oKu4RcBlXSqo3OC62dp6YTnQaZIurNDpCX3BnAM3+bJxt7s8J2TJKMnC0UYer1qhlRaDCg6wkTaTw+2IlsZ12w==", "cpu": [ "arm" ], @@ -2696,2094 +2385,78 @@ "license": "MIT", "optional": true, "os": [ - "android" + "linux" ], "engines": { - "node": ">= 10" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@napi-rs/nice-android-arm64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-android-arm64/-/nice-android-arm64-1.1.1.tgz", - "integrity": "sha512-blG0i7dXgbInN5urONoUCNf+DUEAavRffrO7fZSeoRMJc5qD+BJeNcpr54msPF6qfDD6kzs9AQJogZvT2KD5nw==", + "node_modules/@oxc-parser/binding-linux-arm64-gnu": { + "version": "0.143.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.143.0.tgz", + "integrity": "sha512-WJBbD186AZmMGaSIhlktC+rPl8L3peCTXAh88Ih9uEvK0en2mPojGyCGYiL6mHtV1RPV3JyfJW5t6n5hh0lXhA==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" + "libc": [ + "glibc" ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-darwin-arm64": { - "version": "1.1.1", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-darwin-x64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-darwin-x64/-/nice-darwin-x64-1.1.1.tgz", - "integrity": "sha512-dGoEBnVpsdcC+oHHmW1LRK5eiyzLwdgNQq3BmZIav+9/5WTZwBYX7r5ZkQC07Nxd3KHOCkgbHSh4wPkH1N1LiQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-freebsd-x64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-freebsd-x64/-/nice-freebsd-x64-1.1.1.tgz", - "integrity": "sha512-kHv4kEHAylMYmlNwcQcDtXjklYp4FCf0b05E+0h6nDHsZ+F0bDe04U/tXNOqrx5CmIAth4vwfkjjUmp4c4JktQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-linux-arm-gnueabihf": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm-gnueabihf/-/nice-linux-arm-gnueabihf-1.1.1.tgz", - "integrity": "sha512-E1t7K0efyKXZDoZg1LzCOLxgolxV58HCkaEkEvIYQx12ht2pa8hoBo+4OB3qh7e+QiBlp1SRf+voWUZFxyhyqg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-linux-arm64-gnu": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-gnu/-/nice-linux-arm64-gnu-1.1.1.tgz", - "integrity": "sha512-CIKLA12DTIZlmTaaKhQP88R3Xao+gyJxNWEn04wZwC2wmRapNnxCUZkVwggInMJvtVElA+D4ZzOU5sX4jV+SmQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-linux-arm64-musl": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-arm64-musl/-/nice-linux-arm64-musl-1.1.1.tgz", - "integrity": "sha512-+2Rzdb3nTIYZ0YJF43qf2twhqOCkiSrHx2Pg6DJaCPYhhaxbLcdlV8hCRMHghQ+EtZQWGNcS2xF4KxBhSGeutg==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-linux-ppc64-gnu": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-ppc64-gnu/-/nice-linux-ppc64-gnu-1.1.1.tgz", - "integrity": "sha512-4FS8oc0GeHpwvv4tKciKkw3Y4jKsL7FRhaOeiPei0X9T4Jd619wHNe4xCLmN2EMgZoeGg+Q7GY7BsvwKpL22Tg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-linux-riscv64-gnu": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-riscv64-gnu/-/nice-linux-riscv64-gnu-1.1.1.tgz", - "integrity": "sha512-HU0nw9uD4FO/oGCCk409tCi5IzIZpH2agE6nN4fqpwVlCn5BOq0MS1dXGjXaG17JaAvrlpV5ZeyZwSon10XOXw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-linux-s390x-gnu": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-s390x-gnu/-/nice-linux-s390x-gnu-1.1.1.tgz", - "integrity": "sha512-2YqKJWWl24EwrX0DzCQgPLKQBxYDdBxOHot1KWEq7aY2uYeX+Uvtv4I8xFVVygJDgf6/92h9N3Y43WPx8+PAgQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-linux-x64-gnu": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-gnu/-/nice-linux-x64-gnu-1.1.1.tgz", - "integrity": "sha512-/gaNz3R92t+dcrfCw/96pDopcmec7oCcAQ3l/M+Zxr82KT4DljD37CpgrnXV+pJC263JkW572pdbP3hP+KjcIg==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-linux-x64-musl": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-linux-x64-musl/-/nice-linux-x64-musl-1.1.1.tgz", - "integrity": "sha512-xScCGnyj/oppsNPMnevsBe3pvNaoK7FGvMjT35riz9YdhB2WtTG47ZlbxtOLpjeO9SqqQ2J2igCmz6IJOD5JYw==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-openharmony-arm64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-openharmony-arm64/-/nice-openharmony-arm64-1.1.1.tgz", - "integrity": "sha512-6uJPRVwVCLDeoOaNyeiW0gp2kFIM4r7PL2MczdZQHkFi9gVlgm+Vn+V6nTWRcu856mJ2WjYJiumEajfSm7arPQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-win32-arm64-msvc": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-arm64-msvc/-/nice-win32-arm64-msvc-1.1.1.tgz", - "integrity": "sha512-uoTb4eAvM5B2aj/z8j+Nv8OttPf2m+HVx3UjA5jcFxASvNhQriyCQF1OB1lHL43ZhW+VwZlgvjmP5qF3+59atA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-win32-ia32-msvc": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-ia32-msvc/-/nice-win32-ia32-msvc-1.1.1.tgz", - "integrity": "sha512-CNQqlQT9MwuCsg1Vd/oKXiuH+TcsSPJmlAFc5frFyX/KkOh0UpBLEj7aoY656d5UKZQMQFP7vJNa1DNUNORvug==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/nice-win32-x64-msvc": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@napi-rs/nice-win32-x64-msvc/-/nice-win32-x64-msvc-1.1.1.tgz", - "integrity": "sha512-vB+4G/jBQCAh0jelMTY3+kgFy00Hlx2f2/1zjMoH821IbplbWZOkLiTYXQkygNTzQJTq5cvwBDgn2ppHD+bglQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.6", - "license": "MIT", - "optional": true, - "dependencies": { - "@tybys/wasm-util": "^0.10.3" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - }, - "peerDependencies": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1" - } - }, - "node_modules/@nexucis/fuzzy": { - "version": "0.5.1", - "license": "MIT" - }, - "node_modules/@oxc-parser/binding-android-arm-eabi": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm-eabi/-/binding-android-arm-eabi-0.143.0.tgz", - "integrity": "sha512-n9uozULWflPqBtdmI8lAabLqGKNgLVNN0ZH8HfgCwpKGNtzRzauB76jTiW/3YLkcA7N1zskpi9GdVnZuu1SAvg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxc-parser/binding-android-arm64": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm64/-/binding-android-arm64-0.143.0.tgz", - "integrity": "sha512-9BbdjHETk6O3zH/DDid9IgBtF0GlpLabNKN231uraXpRDSfY+iiZxTP5bk1Z63GBownVdhdINFIeddmMz4MzpQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxc-parser/binding-darwin-arm64": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-arm64/-/binding-darwin-arm64-0.143.0.tgz", - "integrity": "sha512-gh+6ecoHUy4/sUcolBl/1qPXKBbYNxFY0Pk0ujgQvINTMSftJY7o4yb8gOkDJPeZeB8+a+u7xTe6umoP8N5HFA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxc-parser/binding-darwin-x64": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-x64/-/binding-darwin-x64-0.143.0.tgz", - "integrity": "sha512-qd1hl2d+lXgHv/VQ/M9qm8TrMC5T4RqDBwtOnl+1D0QMjwcz+8AaB4JSg8STgeag0GP6a6L74XEGAsrTSJWNzQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxc-parser/binding-freebsd-x64": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-freebsd-x64/-/binding-freebsd-x64-0.143.0.tgz", - "integrity": "sha512-M5XXcNa7aOqLPKTR41msfghKu2yQ4xWvCm11/gwU0JzOzHNk5sgW//rVEjJ+LO48+VDAMzXTSzurUVxIDKwozw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxc-parser/binding-linux-arm-gnueabihf": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.143.0.tgz", - "integrity": "sha512-T/GXusuOkPNQhCQCSBbcU/N8j0rAypuDBl1IyFK+lyYT594XsVz80clPC/OtbSSpBGyJxj8uYEfctxVuxVYoww==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxc-parser/binding-linux-arm-musleabihf": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.143.0.tgz", - "integrity": "sha512-oKu4RcBlXSqo3OC62dp6YTnQaZIurNDpCX3BnAM3+bJxt7s8J2TJKMnC0UYer1qhlRaDCg6wkTaTw+2IlsZ12w==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxc-parser/binding-linux-arm64-gnu": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.143.0.tgz", - "integrity": "sha512-WJBbD186AZmMGaSIhlktC+rPl8L3peCTXAh88Ih9uEvK0en2mPojGyCGYiL6mHtV1RPV3JyfJW5t6n5hh0lXhA==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxc-parser/binding-linux-arm64-musl": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.143.0.tgz", - "integrity": "sha512-t1AcYOwEzgceadT4v5e+vaCCb0AncCA3v5AyzfBAz/tMq11qzVccXKzNHtkWdjBsgvTKwRkaUF3QvT4kot8vcQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxc-parser/binding-linux-ppc64-gnu": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.143.0.tgz", - "integrity": "sha512-RsnO/NoD8376LMJq8JS8TwI0ieNaFRTuNe2GVJntQg6gwZNMENZsEbknHdVwjpOmxdGLGodcwaGSbAeRr5Bgjw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxc-parser/binding-linux-riscv64-gnu": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.143.0.tgz", - "integrity": "sha512-48fSVfR9TZi5CASZFyv0VC6z6BCoeihFsX031mAD/oSH7d9PYsPgIqza7d9mjP7Z2KTEpTFyH6SIu0Ui6R1vdg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxc-parser/binding-linux-riscv64-musl": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.143.0.tgz", - "integrity": "sha512-T8CpdD+SfE01DnIOD4HpVxu0ZJOfMJ/VhCvikKfaXAxkZ+9veyLM/D2hpi7Y2hFUyPmVQO3FNZHmYzV/WlVR4g==", - "cpu": [ - "riscv64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxc-parser/binding-linux-s390x-gnu": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.143.0.tgz", - "integrity": "sha512-QLdeMsCcacenPEFsfxnBUDF1y6opyz5+fmOz9bfD5Y7fiGCMupUCuB3KTPQhNwshIG1P9fPqar9MHxuBDd4bwQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxc-parser/binding-linux-x64-gnu": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.143.0.tgz", - "integrity": "sha512-659ujfqLy6k7cuH3sbzhd8b+ztSq+i6E2E9pG78Q0BmHjAExfGIdgc8cGgMdwAozDXeZFHkJ+LXYJdWsaGdgyw==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxc-parser/binding-linux-x64-musl": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-musl/-/binding-linux-x64-musl-0.143.0.tgz", - "integrity": "sha512-/Mw/9j4TfZcnKphPrzOE6t4MMknXadcAAuVUlDRTF/ETWB5xOgQvOJV2Mh9We/bWxZdoxaGAdc+hy4GuYwQ2yQ==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxc-parser/binding-openharmony-arm64": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-openharmony-arm64/-/binding-openharmony-arm64-0.143.0.tgz", - "integrity": "sha512-8rIKWR2BFuifbIK/1XB9wTaSdtuJ25dlE7ZQYDnEwj/2xH2vHsxnvIjHT3ZjSVuLLwGGlSslIG/fbOJ8TV8rTw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxc-parser/binding-win32-arm64-msvc": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.143.0.tgz", - "integrity": "sha512-5U9kQYMfRRI6Zq7KDxgbIP0RMnKrfn3gLepRMgJuRkPSUALTiRCk9d/uyhb4lGDjUdzwK7mBkKqhLgzBPCmLpQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxc-parser/binding-win32-ia32-msvc": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.143.0.tgz", - "integrity": "sha512-25P7AaHk4R88Yv2XH4gToDVmh0cOu+bEURQU10CRrmvgabfRArSGAP5osmwUKeSUHj0VS50upbpbRWWW/m7mHA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxc-parser/binding-win32-x64-msvc": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.143.0.tgz", - "integrity": "sha512-ORMh3JE1s6V7ySicdRK7vgaDQnn5o+UHg9ct989PlWHbel8O9ARrmWXM6kZjrBMtNucxNayQ8g69G0VfWzhANw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxc-project/types": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.143.0.tgz", - "integrity": "sha512-u6JZdLBTLotrNC9Vd6vPssINdzcCzleKAH6EJKImQb7GtYvX5keN2dxkoK44stCc4tffE6QQRtZTXVSzsLUlWA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/Boshen" - } - }, - "node_modules/@oxfmt/binding-android-arm-eabi": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm-eabi/-/binding-android-arm-eabi-0.55.0.tgz", - "integrity": "sha512-+rFDOqQe5LOWgxrAJaZgLRudr6GQm0wGI6gtu7vVkrdLGjNMUSGbAlaCr8j7F2H2Er97vYQCU8WDb30onqMM1g==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxfmt/binding-android-arm64": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm64/-/binding-android-arm64-0.55.0.tgz", - "integrity": "sha512-ctulLq8s3x8Zmvw6+iccB09TIKERAklRSmbJ10gk8mlAn05qZxoyo52dj3Hi9IJcmDSwF54fQaTVh2CbL6PInw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxfmt/binding-darwin-arm64": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-arm64/-/binding-darwin-arm64-0.55.0.tgz", - "integrity": "sha512-xDQczLH9pw/RBk1h/GH0qcGMm8hQtmtVHBNLSH3lk1gEIR09hZ4L+mJQl4VqiVAvPK9VG9PYrWWuSQLt7xTbiA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxfmt/binding-darwin-x64": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-x64/-/binding-darwin-x64-0.55.0.tgz", - "integrity": "sha512-JaNoFCkF2CJdGgpPSMbuO9HVyXyoNGIhMHPvp6NYAjeVKw9XEYc0HcUWJLPQa3Q69WV5wMa9m5jPMJPtbLtcRg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxfmt/binding-freebsd-x64": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-freebsd-x64/-/binding-freebsd-x64-0.55.0.tgz", - "integrity": "sha512-DNbszhpg6S2MIzax5azdHFTTBIVkR5xr8yyRZuA4yoDAwOkzIp3tmldgKZM2+VlT+hJIG0xUksA+elISzMEAfA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxfmt/binding-linux-arm-gnueabihf": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.55.0.tgz", - "integrity": "sha512-2snoaoRfFFyGnbOcKUK36rREBYxe/Xgz3uHbiA5zbCB/s6R4DQj4mHqYAaWWhgizCUSDxV8cE9zAZ0XleNpKGw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxfmt/binding-linux-arm-musleabihf": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.55.0.tgz", - "integrity": "sha512-q1aktHF/WRpSK81BX1dE/9vWrS2jGw1Nax2kb4DBLGAewubCLcoNyp4Zl/NSMgbv3vUS46Z33wIQkBVYOP3PYg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxfmt/binding-linux-arm64-gnu": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.55.0.tgz", - "integrity": "sha512-VD0y36aENezl/3tsclA/4G53Cc7iV+7Uoh7gz4yvcOTaEYBtJpQsE6PKDGTtUtOvGS4kv51ybfXY/nWZejO5IA==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxfmt/binding-linux-arm64-musl": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.55.0.tgz", - "integrity": "sha512-r8xlKJFcsRmn0H5jZrdORae6RX9jDBrZVvOoxF+bCQtampQJClv80aZEHsv+NsLsp2KCE5ql79O7DpPVzYWpXA==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxfmt/binding-linux-ppc64-gnu": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.55.0.tgz", - "integrity": "sha512-GRKv/HXHcwIVld/WU61rF0g0R16hl5EJ+ScKdpjevT57lnLnagj/U2YUbXf2mT+2Pg1uCzWC+mvGicPV3CDdLQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxfmt/binding-linux-riscv64-gnu": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.55.0.tgz", - "integrity": "sha512-rdv57enTiPtpSYRMKfAiEbQb0Puw5t9N7isVinDoo5qeLDScro2gznmZqSgSWbVZRzLisTeCTW8Qwgw0bOHv3A==", - "cpu": [ - "riscv64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxfmt/binding-linux-riscv64-musl": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.55.0.tgz", - "integrity": "sha512-7v1nNrlD43VY6+sYQ6efYyb3lE6QY182304PD/768ZxTjOmFd/3dQa3u/nGBUAXYdGSWOQc5N3PnS0QzUXyEIA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxfmt/binding-linux-s390x-gnu": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.55.0.tgz", - "integrity": "sha512-f4lJLUSPOgScjFl9LiflKCTocyNRwE25JmTMbN4XQdDjoZzEHjqf3wA3VESF1/csg7i8m7+EQLbrZyYDqe10UQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxfmt/binding-linux-x64-gnu": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.55.0.tgz", - "integrity": "sha512-MihqiPziJNoWy4MqNSV+jVA1g+07iQDjZiR0vaCaDoPgFEiJpCMsxamktzLV07cEeQsSJ04vQaU4CzCQwIvtDA==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxfmt/binding-linux-x64-musl": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-musl/-/binding-linux-x64-musl-0.55.0.tgz", - "integrity": "sha512-Yqghym7KYAVjP9MmSrNZiDeerMuoejNjo0r3ox5H3GDKk8eAfl8VyJm9i+pWCLDCTnAbcTUMMN2ZKjUYXH1v3g==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxfmt/binding-openharmony-arm64": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-openharmony-arm64/-/binding-openharmony-arm64-0.55.0.tgz", - "integrity": "sha512-s5SDvVVSbyQl1V5UU3Yl12M+XLUQ3rl5SglNqgAA2K4PXUtQhyNSS00wivONPEnNo5W01rCou8WkDNyvI/RGHg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxfmt/binding-win32-arm64-msvc": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.55.0.tgz", - "integrity": "sha512-7p9FB5R32tw2KyyNX3wpQrR2WHwEHvMEiBlGXxeTCaRMCVNx3UtFMAUbaQ/pRNWIrEUZmYhJ6tcUH52uPTRYjQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxfmt/binding-win32-ia32-msvc": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.55.0.tgz", - "integrity": "sha512-ZYqj3fDnOT1IaVGMP5kpmkQl4F3tQIm2ZyAxvqkJYmI0xgWWak4ss4XYwv3VDfM+TWXeC9K4uQ/wW5jm/5XABA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxfmt/binding-win32-x64-msvc": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.55.0.tgz", - "integrity": "sha512-eEYT5tivGnGbPHuOHuQpi6CGLObhh0re/5jcNQHihD2GRYkTM85dyi5a19zjP8Q00t1uqAx+/QGLUGdHeqzWyg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxlint/binding-android-arm-eabi": { - "version": "1.70.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm-eabi/-/binding-android-arm-eabi-1.70.0.tgz", - "integrity": "sha512-zFh0P4cswmRvw6nkyb89dr18rRanuaCPAsEXsFDoQY8WdaquI8Pt4NWFjaMJg6L23cy5NeN8J9cBnREbWzZhaw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxlint/binding-android-arm64": { - "version": "1.70.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm64/-/binding-android-arm64-1.70.0.tgz", - "integrity": "sha512-qI8o4HZjeGiBrWv+pJv4lH0Yi2Gl/JSp/EumBUApezJprIKa5PS4nU0lQsQngtky8k+SplQIOjv6hwu0SSxeyg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxlint/binding-darwin-arm64": { - "version": "1.70.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-arm64/-/binding-darwin-arm64-1.70.0.tgz", - "integrity": "sha512-8KjgVVHI5F9nVwHCRwwA78Ty7zNKP4Wd9OeN5PSv3iu/F/u1RVXoOCgLhWqust6HmwQG6xc8c+RCyaWENy24+w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxlint/binding-darwin-x64": { - "version": "1.70.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-x64/-/binding-darwin-x64-1.70.0.tgz", - "integrity": "sha512-WVydssv5PSUBXFJTdNBWlmGkbNmvPGaFt/2SUT/EZRB6bq6bEOHmMlbnupZD5jmlEvi9+mZJHi8TCw15lyfSfQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxlint/binding-freebsd-x64": { - "version": "1.70.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-freebsd-x64/-/binding-freebsd-x64-1.70.0.tgz", - "integrity": "sha512-hJucmUf8OlinHNb1R7fI4Fw6WsAstOz7i8nmkWQfiHoZXtbufNm+MxiDTIMk1ggh2Ro4vLzgQ+bKvRY54MZoRA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxlint/binding-linux-arm-gnueabihf": { - "version": "1.70.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.70.0.tgz", - "integrity": "sha512-1BnS7wbCYDSXwWzJJ+mc3NURoha6m6m6RT5c6vgAY3oz7C3OVXP+S0awo2mRq97arrJkVvO3qRQfyAHL+76xtQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxlint/binding-linux-arm-musleabihf": { - "version": "1.70.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-1.70.0.tgz", - "integrity": "sha512-yKy/UdbR55+M2yEcuiV5DCNC/gdQAjr/GioUy50QwBzSrKm8ueWADqyRLS9Xk+qjNeCYGg6A8FvUBds56ttfqg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxlint/binding-linux-arm64-gnu": { - "version": "1.70.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.70.0.tgz", - "integrity": "sha512-0A5XJ4alvmqFUFP/4oYSyaO+qLto/HrKEWTSaegiVl+HOufFngK2BjYw9x4RbwBt/du5QG6l5q1zeWiJYYG5yg==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxlint/binding-linux-arm64-musl": { - "version": "1.70.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.70.0.tgz", - "integrity": "sha512-JiylyurlB0CLSedNtx1gzv3FvfWPF1h/2Y3BJszPLNt5XQFlBsH5ke0Jle3iJb3uqu5m2e7A/DwzpuCAHdiU+A==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxlint/binding-linux-ppc64-gnu": { - "version": "1.70.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.70.0.tgz", - "integrity": "sha512-J8VPG7I3/HmgaU4u8pNU2kFx2+0U+vPLS1dXFxXOaR/2TQ0f8AC7DRz0SRGRI1bfphnX2hVYTTtLuhL4nYKL+Q==", - "cpu": [ - "ppc64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxlint/binding-linux-riscv64-gnu": { - "version": "1.70.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-1.70.0.tgz", - "integrity": "sha512-N2+4lV2KLN+oXTIIIwmWDhwkrnvqf5oX7Hw0zPjk+RuIVgiBQSOlJWF7uQoFx2siEYX0ZQ5cfSbEAHm+J3t7Wg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxlint/binding-linux-riscv64-musl": { - "version": "1.70.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-1.70.0.tgz", - "integrity": "sha512-1e2L7cFCvx9QDzq6NPP+0tABKb5z6nWHyddWTNKprEsjO9xNrAtPowuCGpjNXxkTdsMiZ4jc8YQ5SstZd4XK6g==", - "cpu": [ - "riscv64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxlint/binding-linux-s390x-gnu": { - "version": "1.70.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.70.0.tgz", - "integrity": "sha512-Kwu/l/8GcYibCWA9m9N5pRXMIKVSsL/YbgpLzYkqDhWTiqdRfnNJ/+nqIKRKQiFbHWsdlHEhzMwruJK+qcEruA==", - "cpu": [ - "s390x" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxlint/binding-linux-x64-gnu": { - "version": "1.70.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.70.0.tgz", - "integrity": "sha512-tap04CsHYOl0nSAQJfPNIuBxqEPB2HnhQqwaOXLg1jnp2XfRo8Fa814dA4QC4zpvTWXCjAAaCY1W5LOORkEQuQ==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxlint/binding-linux-x64-musl": { - "version": "1.70.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-musl/-/binding-linux-x64-musl-1.70.0.tgz", - "integrity": "sha512-hzJa/WgvtJpbBD9rgfy0qe+MjbxOXNUT0bfR1S6EQQzfTtBFA9xg5q8KSwRrQ2QfSS+TaP4j+4mVPQrfNc6UNg==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxlint/binding-openharmony-arm64": { - "version": "1.70.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-openharmony-arm64/-/binding-openharmony-arm64-1.70.0.tgz", - "integrity": "sha512-xbsaNSNzVSnaJACCUYr1HQMyY/Q/Q1LkePmHG3UvZPvGCYGNxrsZp9OmtA6ick8xH47ltRRbRrPCM1YXYcyC+A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxlint/binding-win32-arm64-msvc": { - "version": "1.70.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.70.0.tgz", - "integrity": "sha512-icAEsUI7JbW1TMRdEXV83mVAInhRVQYuuAlPpxdGwJ95chNdnCzjloRW8GglT0WvzOEZSio6fnYSk2DJ2Hv7LQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxlint/binding-win32-ia32-msvc": { - "version": "1.70.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.70.0.tgz", - "integrity": "sha512-FHMSWbVsPVs/f+Jcl04ws4JJ2wUnauyTzlpxWRG/lSO/8GpX08Fo2gQZqdA6CrRFI+zvkxl+N/KwJGWfUwYVZA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxlint/binding-win32-x64-msvc": { - "version": "1.70.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.70.0.tgz", - "integrity": "sha512-ptOlKwCz7n4AKs5VweMqG6DAg677FmKOK+vBkkL9DMNgFATIQ+upqUYBTOEwRQyRAx1ncGlPlXleV2hIcm3z4g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@perses-dev/alert-manager-plugin": { - "resolved": "alertmanager", - "link": true - }, - "node_modules/@perses-dev/bar-chart-plugin": { - "resolved": "barchart", - "link": true - }, - "node_modules/@perses-dev/clickhouse-plugin": { - "resolved": "clickhouse", - "link": true - }, - "node_modules/@perses-dev/client": { - "version": "0.55.0-beta.1", - "license": "Apache-2.0", - "dependencies": { - "@perses-dev/spec": "0.3.0-beta.1", - "zod": "^3.21.4" - }, - "peerDependencies": { - "react": "^17.0.2 || ^18.0.0" - } - }, - "node_modules/@perses-dev/components": { - "version": "0.55.0-beta.1", - "license": "Apache-2.0", - "dependencies": { - "@atlaskit/pragmatic-drag-and-drop": "^1.4.0", - "@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.0.3", - "@codemirror/lang-json": "^6.0.1", - "@date-fns/tz": "^1.4.1", - "@fontsource/inter": "^5.0.0", - "@mui/x-date-pickers": "^7.23.1", - "@perses-dev/client": "0.55.0-beta.1", - "@perses-dev/spec": "0.3.0-beta.1", - "@tanstack/match-sorter-utils": "^8.19.4", - "@tanstack/react-table": "^8.20.5", - "@uiw/react-codemirror": "^4.19.1", - "date-fns": "^4.1.0", - "echarts": "5.5.0", - "immer": "^10.1.1", - "lodash": "^4.17.21", - "mathjs": "^10.6.4", - "mdi-material-ui": "^7.9.2", - "notistack": "^3.0.2", - "numbro": "^2.3.6", - "react-colorful": "^5.6.1", - "react-error-boundary": "^3.1.4", - "react-virtuoso": "^4.12.2" - }, - "peerDependencies": { - "@emotion/react": "^11.14.0", - "@emotion/styled": "^11.14.1", - "@mui/material": "^6.1.10", - "lodash": "^4.17.21", - "react": "^17.0.2 || ^18.0.0", - "react-dom": "^17.0.2 || ^18.0.0" - } - }, - "node_modules/@perses-dev/core": { - "version": "0.53.0", - "license": "Apache-2.0", - "dependencies": { - "date-fns": "^4.1.0", - "lodash": "^4.17.21", - "mathjs": "^10.6.4", - "numbro": "^2.3.6", - "zod": "^3.21.4" - } - }, - "node_modules/@perses-dev/dashboards": { - "version": "0.55.0-beta.1", - "license": "Apache-2.0", - "dependencies": { - "@perses-dev/client": "0.55.0-beta.1", - "@perses-dev/components": "0.55.0-beta.1", - "@perses-dev/plugin-system": "0.55.0-beta.1", - "@perses-dev/spec": "0.3.0-beta.1", - "@tanstack/hotkeys": "^0.8.0", - "@tanstack/react-hotkeys": "^0.9.1", - "immer": "^10.1.1", - "mdi-material-ui": "^7.9.2", - "react-grid-layout": "^1.3.4", - "react-hook-form": "^7.46.1", - "react-intersection-observer": "^9.4.0", - "use-immer": "^0.11.0", - "use-query-params": "^2.2.1", - "use-resize-observer": "^9.0.0", - "yaml": "^2.7.0", - "zustand": "^4.3.3" - }, - "peerDependencies": { - "@mui/material": "^6.1.10", - "@tanstack/react-query": "^4.39.1", - "react": "^17.0.2 || ^18.0.0", - "react-dom": "^17.0.2 || ^18.0.0" - } - }, - "node_modules/@perses-dev/datasource-variable-plugin": { - "resolved": "datasourcevariable", - "link": true - }, - "node_modules/@perses-dev/explore": { - "version": "0.55.0-beta.1", - "license": "Apache-2.0", - "dependencies": { - "@nexucis/fuzzy": "^0.5.1", - "@perses-dev/components": "0.55.0-beta.1", - "@perses-dev/dashboards": "0.55.0-beta.1", - "@perses-dev/plugin-system": "0.55.0-beta.1", - "mdi-material-ui": "^7.9.2", - "qs": "^6.14.0", - "react-virtuoso": "^4.12.2", - "use-query-params": "^2.2.1", - "use-resize-observer": "^9.0.0" - }, - "peerDependencies": { - "@mui/material": "^6.1.10", - "@tanstack/react-query": "^4.39.1", - "react": "^17.0.2 || ^18.0.0", - "react-dom": "^17.0.2 || ^18.0.0" - } - }, - "node_modules/@perses-dev/flame-chart-plugin": { - "resolved": "flamechart", - "link": true - }, - "node_modules/@perses-dev/gauge-chart-plugin": { - "resolved": "gaugechart", - "link": true - }, - "node_modules/@perses-dev/greptimedb-plugin": { - "resolved": "greptimedb", - "link": true - }, - "node_modules/@perses-dev/heatmap-chart-plugin": { - "resolved": "heatmapchart", - "link": true - }, - "node_modules/@perses-dev/histogram-chart-plugin": { - "resolved": "histogramchart", - "link": true - }, - "node_modules/@perses-dev/jaeger-plugin": { - "resolved": "jaeger", - "link": true - }, - "node_modules/@perses-dev/log-explorer-plugin": { - "resolved": "logexplorer", - "link": true - }, - "node_modules/@perses-dev/logs-table-plugin": { - "resolved": "logstable", - "link": true - }, - "node_modules/@perses-dev/loki-plugin": { - "resolved": "loki", - "link": true - }, - "node_modules/@perses-dev/markdown-plugin": { - "resolved": "markdown", - "link": true - }, - "node_modules/@perses-dev/opensearch-plugin": { - "resolved": "opensearch", - "link": true - }, - "node_modules/@perses-dev/pie-chart-plugin": { - "resolved": "piechart", - "link": true - }, - "node_modules/@perses-dev/plugin-system": { - "version": "0.55.0-beta.1", - "license": "Apache-2.0", - "dependencies": { - "@module-federation/enhanced": "^2.8.0", - "@perses-dev/client": "0.55.0-beta.1", - "@perses-dev/components": "0.55.0-beta.1", - "@perses-dev/core": "0.53.0", - "@perses-dev/spec": "0.3.0-beta.1", - "date-fns": "^4.1.0", - "date-fns-tz": "^3.2.0", - "immer": "^10.1.1", - "react-hook-form": "^7.46.1", - "semver": "^7.8.0", - "use-query-params": "^2.2.1", - "zod": "^3.25.76" - }, - "peerDependencies": { - "@emotion/react": "^11.14.0", - "@emotion/styled": "^11.14.1", - "@hookform/resolvers": "^3.2.0", - "@mui/material": "^6.1.10", - "@tanstack/react-query": "^4.39.1", - "react": "^17.0.2 || ^18.0.0", - "react-dom": "^17.0.2 || ^18.0.0" - } - }, - "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/bridge-react-webpack-plugin": { - "version": "2.8.2", - "license": "MIT", - "dependencies": { - "@module-federation/sdk": "2.8.2" - } - }, - "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/cli": { - "version": "2.8.2", - "license": "MIT", - "dependencies": { - "@module-federation/dts-plugin": "2.8.2", - "@module-federation/sdk": "2.8.2", - "commander": "11.1.0", - "jiti": "2.4.2" - }, - "bin": { - "mf": "bin/mf.js" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/dts-plugin": { - "version": "2.8.2", - "license": "MIT", - "dependencies": { - "@module-federation/error-codes": "2.8.2", - "@module-federation/managers": "2.8.2", - "@module-federation/sdk": "2.8.2", - "@module-federation/third-party-dts-extractor": "2.8.2", - "adm-zip": "0.6.0", - "isomorphic-ws": "5.0.0", - "undici": "7.29.0", - "ws": "8.21.0" - }, - "peerDependencies": { - "typescript": "^4.9.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", - "vue-tsc": ">=1.0.24" - }, - "peerDependenciesMeta": { - "vue-tsc": { - "optional": true - } - } - }, - "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/enhanced": { - "version": "2.8.2", - "license": "MIT", - "dependencies": { - "@module-federation/bridge-react-webpack-plugin": "2.8.2", - "@module-federation/cli": "2.8.2", - "@module-federation/dts-plugin": "2.8.2", - "@module-federation/error-codes": "2.8.2", - "@module-federation/inject-external-runtime-core-plugin": "2.8.2", - "@module-federation/managers": "2.8.2", - "@module-federation/manifest": "2.8.2", - "@module-federation/rspack": "2.8.2", - "@module-federation/runtime-tools": "2.8.2", - "@module-federation/sdk": "2.8.2", - "@module-federation/webpack-bundler-runtime": "2.8.2", - "schema-utils": "4.3.0", - "tapable": "2.3.0" - }, - "bin": { - "mf": "bin/mf.js" - }, - "peerDependencies": { - "typescript": "^4.9.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", - "vue-tsc": ">=1.0.24", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - }, - "vue-tsc": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/error-codes": { - "version": "2.8.2", - "license": "MIT" - }, - "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/inject-external-runtime-core-plugin": { - "version": "2.8.2", - "license": "MIT", - "peerDependencies": { - "@module-federation/runtime-tools": "2.8.2" - } - }, - "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/managers": { - "version": "2.8.2", - "license": "MIT", - "dependencies": { - "@module-federation/sdk": "2.8.2" - } - }, - "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/manifest": { - "version": "2.8.2", - "license": "MIT", - "dependencies": { - "@module-federation/dts-plugin": "2.8.2", - "@module-federation/managers": "2.8.2", - "@module-federation/sdk": "2.8.2" - } - }, - "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/rspack": { - "version": "2.8.2", - "license": "MIT", - "dependencies": { - "@module-federation/bridge-react-webpack-plugin": "2.8.2", - "@module-federation/dts-plugin": "2.8.2", - "@module-federation/inject-external-runtime-core-plugin": "2.8.2", - "@module-federation/managers": "2.8.2", - "@module-federation/manifest": "2.8.2", - "@module-federation/runtime-tools": "2.8.2", - "@module-federation/sdk": "2.8.2" - }, - "peerDependencies": { - "@rspack/core": "^0.7.0 || ^1.0.0 || ^2.0.0-0", - "typescript": "^4.9.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", - "vue-tsc": ">=1.0.24" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - }, - "vue-tsc": { - "optional": true - } - } - }, - "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/runtime": { - "version": "2.8.2", - "license": "MIT", - "dependencies": { - "@module-federation/error-codes": "2.8.2", - "@module-federation/runtime-core": "2.8.2", - "@module-federation/sdk": "2.8.2" - } - }, - "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/runtime-core": { - "version": "2.8.2", - "license": "MIT", - "dependencies": { - "@module-federation/error-codes": "2.8.2", - "@module-federation/sdk": "2.8.2" - } - }, - "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/runtime-tools": { - "version": "2.8.2", - "license": "MIT", - "dependencies": { - "@module-federation/runtime": "2.8.2", - "@module-federation/webpack-bundler-runtime": "2.8.2" - } - }, - "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/sdk": { - "version": "2.8.2", - "license": "MIT" - }, - "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/third-party-dts-extractor": { - "version": "2.8.2", - "license": "MIT" - }, - "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/webpack-bundler-runtime": { - "version": "2.8.2", - "license": "MIT", - "dependencies": { - "@module-federation/error-codes": "2.8.2", - "@module-federation/runtime": "2.8.2", - "@module-federation/sdk": "2.8.2" - } - }, - "node_modules/@perses-dev/plugin-system/node_modules/adm-zip": { - "version": "0.6.0", - "license": "MIT", - "engines": { - "node": ">=14.0" - } - }, - "node_modules/@perses-dev/plugin-system/node_modules/semver": { - "version": "7.8.5", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@perses-dev/plugin-system/node_modules/undici": { - "version": "7.29.0", - "license": "MIT", - "engines": { - "node": ">=20.18.1" - } - }, - "node_modules/@perses-dev/plugins-e2e": { - "resolved": "e2e", - "link": true - }, - "node_modules/@perses-dev/prometheus-plugin": { - "resolved": "prometheus", - "link": true - }, - "node_modules/@perses-dev/pyroscope-plugin": { - "resolved": "pyroscope", - "link": true - }, - "node_modules/@perses-dev/scatter-chart-plugin": { - "resolved": "scatterchart", - "link": true - }, - "node_modules/@perses-dev/spec": { - "version": "0.3.0-beta.1", - "license": "Apache-2.0", - "dependencies": { - "date-fns": "^4.1.0", - "mathjs": "^15.1.1", - "zod": "^3.21.4" - } - }, - "node_modules/@perses-dev/spec/node_modules/fraction.js": { - "version": "5.3.4", - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/@perses-dev/spec/node_modules/mathjs": { - "version": "15.2.0", - "license": "Apache-2.0", - "dependencies": { - "@babel/runtime": "^7.26.10", - "complex.js": "^2.2.5", - "decimal.js": "^10.4.3", - "escape-latex": "^1.2.0", - "fraction.js": "^5.2.1", - "javascript-natural-sort": "^0.7.1", - "seedrandom": "^3.0.5", - "tiny-emitter": "^2.1.0", - "typed-function": "^4.2.1" - }, - "bin": { - "mathjs": "bin/cli.js" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@perses-dev/spec/node_modules/typed-function": { - "version": "4.2.2", - "license": "MIT", - "engines": { - "node": ">= 18" - } - }, - "node_modules/@perses-dev/splunk-plugin": { - "resolved": "splunk", - "link": true - }, - "node_modules/@perses-dev/stat-chart-plugin": { - "resolved": "statchart", - "link": true - }, - "node_modules/@perses-dev/static-list-variable-plugin": { - "resolved": "staticlistvariable", - "link": true - }, - "node_modules/@perses-dev/status-history-chart-plugin": { - "resolved": "statushistorychart", - "link": true - }, - "node_modules/@perses-dev/table-plugin": { - "resolved": "table", - "link": true - }, - "node_modules/@perses-dev/tempo-plugin": { - "resolved": "tempo", - "link": true - }, - "node_modules/@perses-dev/timeseries-chart-plugin": { - "resolved": "timeserieschart", - "link": true - }, - "node_modules/@perses-dev/timeseries-table-plugin": { - "resolved": "timeseriestable", - "link": true - }, - "node_modules/@perses-dev/trace-table-plugin": { - "resolved": "tracetable", - "link": true - }, - "node_modules/@perses-dev/tracing-gantt-chart-plugin": { - "resolved": "tracingganttchart", - "link": true - }, - "node_modules/@perses-dev/victorialogs-plugin": { - "resolved": "victorialogs", - "link": true - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@pkgr/core": { - "version": "0.3.6", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/pkgr" - } - }, - "node_modules/@playwright/test": { - "version": "1.61.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "playwright": "1.61.1" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@popperjs/core": { - "version": "2.11.8", - "license": "MIT", - "peer": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/@prometheus-io/codemirror-promql": { - "version": "0.313.1", - "license": "Apache-2.0", - "dependencies": { - "@prometheus-io/lezer-promql": "0.313.1", - "lru-cache": "^11.5.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@codemirror/autocomplete": "^6.4.0", - "@codemirror/language": "^6.3.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/state": "^6.1.1", - "@codemirror/view": "^6.4.0", - "@lezer/common": "^1.0.1" - } - }, - "node_modules/@prometheus-io/codemirror-promql/node_modules/lru-cache": { - "version": "11.5.2", - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@prometheus-io/lezer-promql": { - "version": "0.313.1", - "license": "Apache-2.0", - "peerDependencies": { - "@lezer/highlight": "^1.1.2", - "@lezer/lr": "^1.2.3" - } - }, - "node_modules/@remix-run/router": { - "version": "1.23.3", - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@rsbuild/core": { - "version": "1.7.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@rspack/core": "~1.7.10", - "@rspack/lite-tapable": "~1.1.0", - "@swc/helpers": "^0.5.20", - "core-js": "~3.47.0", - "jiti": "^2.6.1" - }, - "bin": { - "rsbuild": "bin/rsbuild.js" - }, - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@rsbuild/core/node_modules/@module-federation/error-codes": { - "version": "0.22.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@rsbuild/core/node_modules/@module-federation/runtime": { - "version": "0.22.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@module-federation/error-codes": "0.22.0", - "@module-federation/runtime-core": "0.22.0", - "@module-federation/sdk": "0.22.0" - } - }, - "node_modules/@rsbuild/core/node_modules/@module-federation/runtime-core": { - "version": "0.22.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@module-federation/error-codes": "0.22.0", - "@module-federation/sdk": "0.22.0" - } - }, - "node_modules/@rsbuild/core/node_modules/@module-federation/runtime-tools": { - "version": "0.22.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@module-federation/runtime": "0.22.0", - "@module-federation/webpack-bundler-runtime": "0.22.0" - } - }, - "node_modules/@rsbuild/core/node_modules/@module-federation/sdk": { - "version": "0.22.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@rsbuild/core/node_modules/@module-federation/webpack-bundler-runtime": { - "version": "0.22.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@module-federation/runtime": "0.22.0", - "@module-federation/sdk": "0.22.0" - } - }, - "node_modules/@rsbuild/core/node_modules/@napi-rs/wasm-runtime": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.0.7.tgz", - "integrity": "sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "^1.5.0", - "@emnapi/runtime": "^1.5.0", - "@tybys/wasm-util": "^0.10.1" - } - }, - "node_modules/@rsbuild/core/node_modules/@rspack/binding": { - "version": "1.7.12", - "dev": true, "license": "MIT", - "optionalDependencies": { - "@rspack/binding-darwin-arm64": "1.7.12", - "@rspack/binding-darwin-x64": "1.7.12", - "@rspack/binding-linux-arm64-gnu": "1.7.12", - "@rspack/binding-linux-arm64-musl": "1.7.12", - "@rspack/binding-linux-x64-gnu": "1.7.12", - "@rspack/binding-linux-x64-musl": "1.7.12", - "@rspack/binding-wasm32-wasi": "1.7.12", - "@rspack/binding-win32-arm64-msvc": "1.7.12", - "@rspack/binding-win32-ia32-msvc": "1.7.12", - "@rspack/binding-win32-x64-msvc": "1.7.12" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@rsbuild/core/node_modules/@rspack/binding-darwin-arm64": { - "version": "1.7.12", + "node_modules/@oxc-parser/binding-linux-arm64-musl": { + "version": "0.143.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.143.0.tgz", + "integrity": "sha512-t1AcYOwEzgceadT4v5e+vaCCb0AncCA3v5AyzfBAz/tMq11qzVccXKzNHtkWdjBsgvTKwRkaUF3QvT4kot8vcQ==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ - "darwin" - ] + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rsbuild/core/node_modules/@rspack/binding-darwin-x64": { - "version": "1.7.12", - "resolved": "https://registry.npmjs.org/@rspack/binding-darwin-x64/-/binding-darwin-x64-1.7.12.tgz", - "integrity": "sha512-jnOp+/UXOJa9xqUb8KXH03sysoO2e4Ij6tw6MqDdmdj8n/A8PQENRPUbW9AwXpPtVDJPus9r4fi7b3+6e4B8Hg==", + "node_modules/@oxc-parser/binding-linux-ppc64-gnu": { + "version": "0.143.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.143.0.tgz", + "integrity": "sha512-RsnO/NoD8376LMJq8JS8TwI0ieNaFRTuNe2GVJntQg6gwZNMENZsEbknHdVwjpOmxdGLGodcwaGSbAeRr5Bgjw==", "cpu": [ - "x64" + "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ - "darwin" - ] + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rsbuild/core/node_modules/@rspack/binding-linux-arm64-gnu": { - "version": "1.7.12", - "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.7.12.tgz", - "integrity": "sha512-C8owWG+yvo7X0oVLIXetkoJhIFBP1LYNcAQqtgLmJnQLQDklGuP83dKC+zISGQWpjawHfZ1ER96vLgoTrxKZdw==", + "node_modules/@oxc-parser/binding-linux-riscv64-gnu": { + "version": "0.143.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.143.0.tgz", + "integrity": "sha512-48fSVfR9TZi5CASZFyv0VC6z6BCoeihFsX031mAD/oSH7d9PYsPgIqza7d9mjP7Z2KTEpTFyH6SIu0Ui6R1vdg==", "cpu": [ - "arm64" + "riscv64" ], "dev": true, "libc": [ @@ -4793,14 +2466,17 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rsbuild/core/node_modules/@rspack/binding-linux-arm64-musl": { - "version": "1.7.12", - "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.7.12.tgz", - "integrity": "sha512-i51WWI64aRpsfSki6rN0aepPqXkVfS+vZM7+4bWDcmnhUmdMvhIPcYg0QRk3DtyJnu33jqNLM0WHY78k00NyfA==", + "node_modules/@oxc-parser/binding-linux-riscv64-musl": { + "version": "0.143.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.143.0.tgz", + "integrity": "sha512-T8CpdD+SfE01DnIOD4HpVxu0ZJOfMJ/VhCvikKfaXAxkZ+9veyLM/D2hpi7Y2hFUyPmVQO3FNZHmYzV/WlVR4g==", "cpu": [ - "arm64" + "riscv64" ], "dev": true, "libc": [ @@ -4810,12 +2486,35 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rsbuild/core/node_modules/@rspack/binding-linux-x64-gnu": { - "version": "1.7.12", - "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.7.12.tgz", - "integrity": "sha512-MSos0FuPEefqo9V92ULd5hggKG29EkSNg1zDcypy0OkpsKh5pfjVxTLYFXgTcVyFoUQQbdG8zFBzYbwmJ8V4ew==", + "node_modules/@oxc-parser/binding-linux-s390x-gnu": { + "version": "0.143.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.143.0.tgz", + "integrity": "sha512-QLdeMsCcacenPEFsfxnBUDF1y6opyz5+fmOz9bfD5Y7fiGCMupUCuB3KTPQhNwshIG1P9fPqar9MHxuBDd4bwQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-x64-gnu": { + "version": "0.143.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.143.0.tgz", + "integrity": "sha512-659ujfqLy6k7cuH3sbzhd8b+ztSq+i6E2E9pG78Q0BmHjAExfGIdgc8cGgMdwAozDXeZFHkJ+LXYJdWsaGdgyw==", "cpu": [ "x64" ], @@ -4827,12 +2526,15 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rsbuild/core/node_modules/@rspack/binding-linux-x64-musl": { - "version": "1.7.12", - "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-1.7.12.tgz", - "integrity": "sha512-JcAMVKXOnjfpC3coWjCFPWD3Yl8RBw6a+IXQQ8mfRlHaHMIiOv8IfZqx15XRxMUn49CtP7Z0Na8iiAg2aKrcfw==", + "node_modules/@oxc-parser/binding-linux-x64-musl": { + "version": "0.143.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-musl/-/binding-linux-x64-musl-0.143.0.tgz", + "integrity": "sha512-/Mw/9j4TfZcnKphPrzOE6t4MMknXadcAAuVUlDRTF/ETWB5xOgQvOJV2Mh9We/bWxZdoxaGAdc+hy4GuYwQ2yQ==", "cpu": [ "x64" ], @@ -4844,26 +2546,32 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rsbuild/core/node_modules/@rspack/binding-wasm32-wasi": { - "version": "1.7.12", - "resolved": "https://registry.npmjs.org/@rspack/binding-wasm32-wasi/-/binding-wasm32-wasi-1.7.12.tgz", - "integrity": "sha512-n+ZqP6ZMc0nhOgvadg5VhEs9ojtbES80AcWeFnmGkbzIszvGSO63GKNiRkXtjJ9KFuRzytbbmsCqkUVH+Tywxg==", + "node_modules/@oxc-parser/binding-openharmony-arm64": { + "version": "0.143.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-openharmony-arm64/-/binding-openharmony-arm64-0.143.0.tgz", + "integrity": "sha512-8rIKWR2BFuifbIK/1XB9wTaSdtuJ25dlE7ZQYDnEwj/2xH2vHsxnvIjHT3ZjSVuLLwGGlSslIG/fbOJ8TV8rTw==", "cpu": [ - "wasm32" + "arm64" ], "dev": true, "license": "MIT", "optional": true, - "dependencies": { - "@napi-rs/wasm-runtime": "1.0.7" + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@rsbuild/core/node_modules/@rspack/binding-win32-arm64-msvc": { - "version": "1.7.12", - "resolved": "https://registry.npmjs.org/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.7.12.tgz", - "integrity": "sha512-8+h5fYDXYdmugbdfZ+D1y8IQ3rv2EhSfyGP7vBe+bjNyaMa4jWrpucmZbtxojUL1AzaeuHbvMdj9UO/gelk/+g==", + "node_modules/@oxc-parser/binding-win32-arm64-msvc": { + "version": "0.143.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.143.0.tgz", + "integrity": "sha512-5U9kQYMfRRI6Zq7KDxgbIP0RMnKrfn3gLepRMgJuRkPSUALTiRCk9d/uyhb4lGDjUdzwK7mBkKqhLgzBPCmLpQ==", "cpu": [ "arm64" ], @@ -4872,12 +2580,15 @@ "optional": true, "os": [ "win32" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rsbuild/core/node_modules/@rspack/binding-win32-ia32-msvc": { - "version": "1.7.12", - "resolved": "https://registry.npmjs.org/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.7.12.tgz", - "integrity": "sha512-cDMGwTRSa2p9fNBVe1wTRkF2AEXZ9ARWW36QeC5CkLaI0Ezz8lvhF2+CSOPnhaQ1O1qtn0L0SF+lFnrY+I7xGQ==", + "node_modules/@oxc-parser/binding-win32-ia32-msvc": { + "version": "0.143.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.143.0.tgz", + "integrity": "sha512-25P7AaHk4R88Yv2XH4gToDVmh0cOu+bEURQU10CRrmvgabfRArSGAP5osmwUKeSUHj0VS50upbpbRWWW/m7mHA==", "cpu": [ "ia32" ], @@ -4886,12 +2597,93 @@ "optional": true, "os": [ "win32" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rsbuild/core/node_modules/@rspack/binding-win32-x64-msvc": { - "version": "1.7.12", - "resolved": "https://registry.npmjs.org/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.7.12.tgz", - "integrity": "sha512-wIqFvlgFqrgUyj/6S/FJcvShnkZOmIeXTfqvheLY67MGq8qd8jb1YimQVKAIrmWB3yuJKUFACI3Ag1UBtEedEA==", + "node_modules/@oxc-parser/binding-win32-x64-msvc": { + "version": "0.143.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.143.0.tgz", + "integrity": "sha512-ORMh3JE1s6V7ySicdRK7vgaDQnn5o+UHg9ct989PlWHbel8O9ARrmWXM6kZjrBMtNucxNayQ8g69G0VfWzhANw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.143.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.143.0.tgz", + "integrity": "sha512-u6JZdLBTLotrNC9Vd6vPssINdzcCzleKAH6EJKImQb7GtYvX5keN2dxkoK44stCc4tffE6QQRtZTXVSzsLUlWA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@oxfmt/binding-android-arm-eabi": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm-eabi/-/binding-android-arm-eabi-0.55.0.tgz", + "integrity": "sha512-+rFDOqQe5LOWgxrAJaZgLRudr6GQm0wGI6gtu7vVkrdLGjNMUSGbAlaCr8j7F2H2Er97vYQCU8WDb30onqMM1g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-android-arm64": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm64/-/binding-android-arm64-0.55.0.tgz", + "integrity": "sha512-ctulLq8s3x8Zmvw6+iccB09TIKERAklRSmbJ10gk8mlAn05qZxoyo52dj3Hi9IJcmDSwF54fQaTVh2CbL6PInw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-darwin-arm64": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-arm64/-/binding-darwin-arm64-0.55.0.tgz", + "integrity": "sha512-xDQczLH9pw/RBk1h/GH0qcGMm8hQtmtVHBNLSH3lk1gEIR09hZ4L+mJQl4VqiVAvPK9VG9PYrWWuSQLt7xTbiA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-darwin-x64": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-x64/-/binding-darwin-x64-0.55.0.tgz", + "integrity": "sha512-JaNoFCkF2CJdGgpPSMbuO9HVyXyoNGIhMHPvp6NYAjeVKw9XEYc0HcUWJLPQa3Q69WV5wMa9m5jPMJPtbLtcRg==", "cpu": [ "x64" ], @@ -4899,112 +2691,111 @@ "license": "MIT", "optional": true, "os": [ - "win32" - ] - }, - "node_modules/@rsbuild/core/node_modules/@rspack/core": { - "version": "1.7.12", - "dev": true, - "license": "MIT", - "dependencies": { - "@module-federation/runtime-tools": "0.22.0", - "@rspack/binding": "1.7.12", - "@rspack/lite-tapable": "1.1.0" - }, + "darwin" + ], "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "@swc/helpers": ">=0.5.1" - }, - "peerDependenciesMeta": { - "@swc/helpers": { - "optional": true - } + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@rsbuild/core/node_modules/@rspack/lite-tapable": { - "version": "1.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@rsbuild/core/node_modules/jiti": { - "version": "2.7.0", + "node_modules/@oxfmt/binding-freebsd-x64": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-freebsd-x64/-/binding-freebsd-x64-0.55.0.tgz", + "integrity": "sha512-DNbszhpg6S2MIzax5azdHFTTBIVkR5xr8yyRZuA4yoDAwOkzIp3tmldgKZM2+VlT+hJIG0xUksA+elISzMEAfA==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "bin": { - "jiti": "lib/jiti-cli.mjs" + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@rsbuild/plugin-react": { - "version": "1.4.6", + "node_modules/@oxfmt/binding-linux-arm-gnueabihf": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.55.0.tgz", + "integrity": "sha512-2snoaoRfFFyGnbOcKUK36rREBYxe/Xgz3uHbiA5zbCB/s6R4DQj4mHqYAaWWhgizCUSDxV8cE9zAZ0XleNpKGw==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "dependencies": { - "@rspack/plugin-react-refresh": "^1.6.1", - "react-refresh": "^0.18.0" - }, - "peerDependencies": { - "@rsbuild/core": "^1.0.0 || ^2.0.0-0" - }, - "peerDependenciesMeta": { - "@rsbuild/core": { - "optional": true - } + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@rspack/binding": { - "version": "2.1.2", + "node_modules/@oxfmt/binding-linux-arm-musleabihf": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.55.0.tgz", + "integrity": "sha512-q1aktHF/WRpSK81BX1dE/9vWrS2jGw1Nax2kb4DBLGAewubCLcoNyp4Zl/NSMgbv3vUS46Z33wIQkBVYOP3PYg==", + "cpu": [ + "arm" + ], + "dev": true, "license": "MIT", - "peer": true, - "optionalDependencies": { - "@rspack/binding-darwin-arm64": "2.1.2", - "@rspack/binding-darwin-x64": "2.1.2", - "@rspack/binding-linux-arm64-gnu": "2.1.2", - "@rspack/binding-linux-arm64-musl": "2.1.2", - "@rspack/binding-linux-riscv64-gnu": "2.1.2", - "@rspack/binding-linux-riscv64-musl": "2.1.2", - "@rspack/binding-linux-x64-gnu": "2.1.2", - "@rspack/binding-linux-x64-musl": "2.1.2", - "@rspack/binding-wasm32-wasi": "2.1.2", - "@rspack/binding-win32-arm64-msvc": "2.1.2", - "@rspack/binding-win32-ia32-msvc": "2.1.2", - "@rspack/binding-win32-x64-msvc": "2.1.2" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@rspack/binding-darwin-arm64": { - "version": "2.1.2", + "node_modules/@oxfmt/binding-linux-arm64-gnu": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.55.0.tgz", + "integrity": "sha512-VD0y36aENezl/3tsclA/4G53Cc7iV+7Uoh7gz4yvcOTaEYBtJpQsE6PKDGTtUtOvGS4kv51ybfXY/nWZejO5IA==", "cpu": [ "arm64" ], + "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ - "darwin" + "linux" ], - "peer": true + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rspack/binding-darwin-x64": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@rspack/binding-darwin-x64/-/binding-darwin-x64-2.1.2.tgz", - "integrity": "sha512-aoifkILvx/XEHyvg8yW57xu95nx7f9f/3ah1+RguHSNKcJMcoCep9VX1Ct1N0ftqg8MC0JUObc7xWL5W14hmjA==", + "node_modules/@oxfmt/binding-linux-arm64-musl": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.55.0.tgz", + "integrity": "sha512-r8xlKJFcsRmn0H5jZrdORae6RX9jDBrZVvOoxF+bCQtampQJClv80aZEHsv+NsLsp2KCE5ql79O7DpPVzYWpXA==", "cpu": [ - "x64" + "arm64" + ], + "dev": true, + "libc": [ + "musl" ], "license": "MIT", "optional": true, "os": [ - "darwin" + "linux" ], - "peer": true + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rspack/binding-linux-arm64-gnu": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-2.1.2.tgz", - "integrity": "sha512-My4m40tyJSgiCEf3bB2KIEX710q3nZg99LIjy+8Zxgi3oZTkg1bFmFRusFU5U4eN5408zfSqDDGvjDE3Yv7o4w==", + "node_modules/@oxfmt/binding-linux-ppc64-gnu": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.55.0.tgz", + "integrity": "sha512-GRKv/HXHcwIVld/WU61rF0g0R16hl5EJ+ScKdpjevT57lnLnagj/U2YUbXf2mT+2Pg1uCzWC+mvGicPV3CDdLQ==", "cpu": [ - "arm64" + "ppc64" ], + "dev": true, "libc": [ "glibc" ], @@ -5013,66 +2804,78 @@ "os": [ "linux" ], - "peer": true + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rspack/binding-linux-arm64-musl": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-2.1.2.tgz", - "integrity": "sha512-yt+GGWUH7WPE8K97cRc8OpZhH7Pbj1vU+lkvKbDtF/rR8X9a/bJsA/nBqyUV2oBKOVbrp5I8rFZlnDskMqgvKw==", + "node_modules/@oxfmt/binding-linux-riscv64-gnu": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.55.0.tgz", + "integrity": "sha512-rdv57enTiPtpSYRMKfAiEbQb0Puw5t9N7isVinDoo5qeLDScro2gznmZqSgSWbVZRzLisTeCTW8Qwgw0bOHv3A==", "cpu": [ - "arm64" + "riscv64" ], + "dev": true, "libc": [ - "musl" + "glibc" ], "license": "MIT", "optional": true, "os": [ "linux" ], - "peer": true + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rspack/binding-linux-riscv64-gnu": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@rspack/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-2.1.2.tgz", - "integrity": "sha512-uys8Jyw8Z3ralvICbN/L/nZfy5qELIwpOY72rhIqhoDYwFcL4fmMaY7WsvUcJOjCB2rqOcWPaWKuF2oPvo9iDQ==", + "node_modules/@oxfmt/binding-linux-riscv64-musl": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.55.0.tgz", + "integrity": "sha512-7v1nNrlD43VY6+sYQ6efYyb3lE6QY182304PD/768ZxTjOmFd/3dQa3u/nGBUAXYdGSWOQc5N3PnS0QzUXyEIA==", "cpu": [ "riscv64" ], + "dev": true, "libc": [ - "glibc" + "musl" ], "license": "MIT", "optional": true, "os": [ "linux" ], - "peer": true + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rspack/binding-linux-riscv64-musl": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@rspack/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-2.1.2.tgz", - "integrity": "sha512-JYNVQwqCaRGQWvjHQYzZkIzQiwllMaJwh4Rdu3ww6W2OJcJUqT08sL1pkOtU0iCxT4VUYiRRcp93VGTGpHr8fg==", + "node_modules/@oxfmt/binding-linux-s390x-gnu": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.55.0.tgz", + "integrity": "sha512-f4lJLUSPOgScjFl9LiflKCTocyNRwE25JmTMbN4XQdDjoZzEHjqf3wA3VESF1/csg7i8m7+EQLbrZyYDqe10UQ==", "cpu": [ - "riscv64" + "s390x" ], + "dev": true, "libc": [ - "musl" + "glibc" ], "license": "MIT", "optional": true, "os": [ "linux" ], - "peer": true + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rspack/binding-linux-x64-gnu": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-2.1.2.tgz", - "integrity": "sha512-KDoPy0Msf/JLhxgPPrJQzZeB4Qpqd32em8AP5lSW2s6jR5I35dHgAe9xc2A++EQtnSrU4GTn6DBvFC7q84SihQ==", + "node_modules/@oxfmt/binding-linux-x64-gnu": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.55.0.tgz", + "integrity": "sha512-MihqiPziJNoWy4MqNSV+jVA1g+07iQDjZiR0vaCaDoPgFEiJpCMsxamktzLV07cEeQsSJ04vQaU4CzCQwIvtDA==", "cpu": [ "x64" ], + "dev": true, "libc": [ "glibc" ], @@ -5081,15 +2884,18 @@ "os": [ "linux" ], - "peer": true + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rspack/binding-linux-x64-musl": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-2.1.2.tgz", - "integrity": "sha512-66hWmIGvn4zCKAYXJE9Bp5SNSLYnLFq2Ke/efE+ZtWy43Dd5vk9AAOmThVGBwdwmIxmGtHGCp+cAuS4G0wu0TA==", + "node_modules/@oxfmt/binding-linux-x64-musl": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-musl/-/binding-linux-x64-musl-0.55.0.tgz", + "integrity": "sha512-Yqghym7KYAVjP9MmSrNZiDeerMuoejNjo0r3ox5H3GDKk8eAfl8VyJm9i+pWCLDCTnAbcTUMMN2ZKjUYXH1v3g==", "cpu": [ "x64" ], + "dev": true, "libc": [ "musl" ], @@ -5098,365 +2904,301 @@ "os": [ "linux" ], - "peer": true + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rspack/binding-wasm32-wasi": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@rspack/binding-wasm32-wasi/-/binding-wasm32-wasi-2.1.2.tgz", - "integrity": "sha512-EB4SqH8DW/E/OmqssNQvnIVGQiVUyYNlA/pcc6Ia4MlTNwu6eNDppcNLrToH+kSZpL4CpHSFfSM3eIsSuar2Rw==", + "node_modules/@oxfmt/binding-openharmony-arm64": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-openharmony-arm64/-/binding-openharmony-arm64-0.55.0.tgz", + "integrity": "sha512-s5SDvVVSbyQl1V5UU3Yl12M+XLUQ3rl5SglNqgAA2K4PXUtQhyNSS00wivONPEnNo5W01rCou8WkDNyvI/RGHg==", "cpu": [ - "wasm32" + "arm64" ], + "dev": true, "license": "MIT", "optional": true, - "peer": true, - "dependencies": { - "@emnapi/core": "1.11.1", - "@emnapi/runtime": "1.11.1", - "@napi-rs/wasm-runtime": "1.1.6" + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@rspack/binding-win32-arm64-msvc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-2.1.2.tgz", - "integrity": "sha512-T6Fs/g32MRja/UpCq4AdyPRj8tA0cOkcEa4PrAcn/ztUgK8b/qMVxj5mhMI+n7k+kHZQnpeB1Q4HqdSJi6OocA==", + "node_modules/@oxfmt/binding-win32-arm64-msvc": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.55.0.tgz", + "integrity": "sha512-7p9FB5R32tw2KyyNX3wpQrR2WHwEHvMEiBlGXxeTCaRMCVNx3UtFMAUbaQ/pRNWIrEUZmYhJ6tcUH52uPTRYjQ==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ "win32" ], - "peer": true + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rspack/binding-win32-ia32-msvc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-2.1.2.tgz", - "integrity": "sha512-OtxkFVz14mVL4QK8QriSELn9B6PaYGHw1jGJwVDEzpu2ZxSHCTQPz9dVE1ekYtREEqZUkRU7Fp7VfhJSmjTt2Q==", + "node_modules/@oxfmt/binding-win32-ia32-msvc": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.55.0.tgz", + "integrity": "sha512-ZYqj3fDnOT1IaVGMP5kpmkQl4F3tQIm2ZyAxvqkJYmI0xgWWak4ss4XYwv3VDfM+TWXeC9K4uQ/wW5jm/5XABA==", "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ "win32" ], - "peer": true + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rspack/binding-win32-x64-msvc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-2.1.2.tgz", - "integrity": "sha512-Am+nx9fLF3nzgD/K05Bs1Bb+WO8SFLWAYRbXkymaL1r+RQxjRj7jd5ap2PhGOCcfaNA4yVWkAFvmFP92eRu7bQ==", + "node_modules/@oxfmt/binding-win32-x64-msvc": { + "version": "0.55.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.55.0.tgz", + "integrity": "sha512-eEYT5tivGnGbPHuOHuQpi6CGLObhh0re/5jcNQHihD2GRYkTM85dyi5a19zjP8Q00t1uqAx+/QGLUGdHeqzWyg==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ "win32" ], - "peer": true - }, - "node_modules/@rspack/core": { - "version": "2.1.2", - "license": "MIT", - "peer": true, - "dependencies": { - "@rspack/binding": "2.1.2" - }, "engines": { "node": "^20.19.0 || >=22.12.0" - }, - "peerDependencies": { - "@module-federation/runtime-tools": "^0.24.1 || ^2.0.0", - "@swc/helpers": "^0.5.23" - }, - "peerDependenciesMeta": { - "@module-federation/runtime-tools": { - "optional": true - }, - "@swc/helpers": { - "optional": true - } } }, - "node_modules/@rspack/plugin-react-refresh": { - "version": "1.6.2", + "node_modules/@oxlint/binding-android-arm-eabi": { + "version": "1.70.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm-eabi/-/binding-android-arm-eabi-1.70.0.tgz", + "integrity": "sha512-zFh0P4cswmRvw6nkyb89dr18rRanuaCPAsEXsFDoQY8WdaquI8Pt4NWFjaMJg6L23cy5NeN8J9cBnREbWzZhaw==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "dependencies": { - "error-stack-parser": "^2.1.4" - }, - "peerDependencies": { - "react-refresh": ">=0.10.0 <1.0.0", - "webpack-hot-middleware": "2.x" - }, - "peerDependenciesMeta": { - "webpack-hot-middleware": { - "optional": true - } - } - }, - "node_modules/@sec-ant/readable-stream": { - "version": "0.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@shaderfrog/glsl-parser": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@shaderfrog/glsl-parser/-/glsl-parser-7.0.1.tgz", - "integrity": "sha512-8mpfsoPeRhesY3pOrzNZBL8uG6N5GVX1EHLBYbd4gzKs+c7vaEIqpTNK5VrffU33qQN4cwpP2v3u4aPPBU32sw==", - "dev": true, - "license": "ISC", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=16" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@sinclair/typebox": { - "version": "0.34.49", - "dev": true, - "license": "MIT" - }, - "node_modules/@sindresorhus/is": { - "version": "7.2.0", + "node_modules/@oxlint/binding-android-arm64": { + "version": "1.70.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm64/-/binding-android-arm64-1.70.0.tgz", + "integrity": "sha512-qI8o4HZjeGiBrWv+pJv4lH0Yi2Gl/JSp/EumBUApezJprIKa5PS4nU0lQsQngtky8k+SplQIOjv6hwu0SSxeyg==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@sindresorhus/merge-streams": { - "version": "4.0.0", + "node_modules/@oxlint/binding-darwin-arm64": { + "version": "1.70.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-arm64/-/binding-darwin-arm64-1.70.0.tgz", + "integrity": "sha512-8KjgVVHI5F9nVwHCRwwA78Ty7zNKP4Wd9OeN5PSv3iu/F/u1RVXoOCgLhWqust6HmwQG6xc8c+RCyaWENy24+w==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@sinonjs/commons": { - "version": "3.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "15.4.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@swc/cli": { - "version": "0.8.1", + "node_modules/@oxlint/binding-darwin-x64": { + "version": "1.70.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-x64/-/binding-darwin-x64-1.70.0.tgz", + "integrity": "sha512-WVydssv5PSUBXFJTdNBWlmGkbNmvPGaFt/2SUT/EZRB6bq6bEOHmMlbnupZD5jmlEvi9+mZJHi8TCw15lyfSfQ==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@swc/counter": "^0.1.3", - "@xhmikosr/bin-wrapper": "^14.0.0", - "commander": "^8.3.0", - "minimatch": "^9.0.3", - "piscina": "^4.3.1", - "semver": "^7.3.8", - "slash": "3.0.0", - "source-map": "^0.7.3", - "tinyglobby": "^0.2.13" - }, - "bin": { - "spack": "bin/spack.js", - "swc": "bin/swc.js", - "swcx": "bin/swcx.js" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">= 20.19.0" - }, - "peerDependencies": { - "@swc/core": "^1.2.66", - "chokidar": "^5.0.0" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@swc/cli/node_modules/commander": { - "version": "8.3.0", + "node_modules/@oxlint/binding-freebsd-x64": { + "version": "1.70.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-freebsd-x64/-/binding-freebsd-x64-1.70.0.tgz", + "integrity": "sha512-hJucmUf8OlinHNb1R7fI4Fw6WsAstOz7i8nmkWQfiHoZXtbufNm+MxiDTIMk1ggh2Ro4vLzgQ+bKvRY54MZoRA==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">= 12" - } - }, - "node_modules/@swc/cli/node_modules/source-map": { - "version": "0.7.6", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">= 12" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@swc/core": { - "version": "1.15.43", + "node_modules/@oxlint/binding-linux-arm-gnueabihf": { + "version": "1.70.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.70.0.tgz", + "integrity": "sha512-1BnS7wbCYDSXwWzJJ+mc3NURoha6m6m6RT5c6vgAY3oz7C3OVXP+S0awo2mRq97arrJkVvO3qRQfyAHL+76xtQ==", + "cpu": [ + "arm" + ], "dev": true, - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@swc/counter": "^0.1.3", - "@swc/types": "^0.1.27" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/swc" - }, - "optionalDependencies": { - "@swc/core-darwin-arm64": "1.15.43", - "@swc/core-darwin-x64": "1.15.43", - "@swc/core-linux-arm-gnueabihf": "1.15.43", - "@swc/core-linux-arm64-gnu": "1.15.43", - "@swc/core-linux-arm64-musl": "1.15.43", - "@swc/core-linux-ppc64-gnu": "1.15.43", - "@swc/core-linux-s390x-gnu": "1.15.43", - "@swc/core-linux-x64-gnu": "1.15.43", - "@swc/core-linux-x64-musl": "1.15.43", - "@swc/core-win32-arm64-msvc": "1.15.43", - "@swc/core-win32-ia32-msvc": "1.15.43", - "@swc/core-win32-x64-msvc": "1.15.43" - }, - "peerDependencies": { - "@swc/helpers": ">=0.5.17" - }, - "peerDependenciesMeta": { - "@swc/helpers": { - "optional": true - } + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@swc/core-darwin-arm64": { - "version": "1.15.43", + "node_modules/@oxlint/binding-linux-arm-musleabihf": { + "version": "1.70.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-1.70.0.tgz", + "integrity": "sha512-yKy/UdbR55+M2yEcuiV5DCNC/gdQAjr/GioUy50QwBzSrKm8ueWADqyRLS9Xk+qjNeCYGg6A8FvUBds56ttfqg==", "cpu": [ - "arm64" + "arm" ], "dev": true, - "license": "Apache-2.0 AND MIT", + "license": "MIT", "optional": true, "os": [ - "darwin" + "linux" ], "engines": { - "node": ">=10" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@swc/core-darwin-x64": { - "version": "1.15.43", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.15.43.tgz", - "integrity": "sha512-lp3d4Lamc8dt5huYdGLSR+9hLxmfr1jb0l+4XXG2zPqZwYWRN9R0U2qYoTrggiU2RWW0oV9VbWM3kBnqIc2kdQ==", + "node_modules/@oxlint/binding-linux-arm64-gnu": { + "version": "1.70.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.70.0.tgz", + "integrity": "sha512-0A5XJ4alvmqFUFP/4oYSyaO+qLto/HrKEWTSaegiVl+HOufFngK2BjYw9x4RbwBt/du5QG6l5q1zeWiJYYG5yg==", "cpu": [ - "x64" + "arm64" ], "dev": true, - "license": "Apache-2.0 AND MIT", + "libc": [ + "glibc" + ], + "license": "MIT", "optional": true, "os": [ - "darwin" + "linux" ], "engines": { - "node": ">=10" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.15.43", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.43.tgz", - "integrity": "sha512-JWTQQELtsG5GgphDrr/XqqmM2pDN3cZqbMS0Mrg+iTiXL3F74sn/S2IyYE/5u4h2KLkTf9qQ7dXyxsbx7YzkeA==", + "node_modules/@oxlint/binding-linux-arm64-musl": { + "version": "1.70.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.70.0.tgz", + "integrity": "sha512-JiylyurlB0CLSedNtx1gzv3FvfWPF1h/2Y3BJszPLNt5XQFlBsH5ke0Jle3iJb3uqu5m2e7A/DwzpuCAHdiU+A==", "cpu": [ - "arm" + "arm64" ], "dev": true, - "license": "Apache-2.0", + "libc": [ + "musl" + ], + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=10" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.15.43", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.43.tgz", - "integrity": "sha512-B4otJRdPWIsmiSBf0uG7Z/+vMWmkufjz5MmYxubwKuZazDW14Zd3symga1N62QR4RT+kEFeHEgsXfZGyn/w0hw==", + "node_modules/@oxlint/binding-linux-ppc64-gnu": { + "version": "1.70.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.70.0.tgz", + "integrity": "sha512-J8VPG7I3/HmgaU4u8pNU2kFx2+0U+vPLS1dXFxXOaR/2TQ0f8AC7DRz0SRGRI1bfphnX2hVYTTtLuhL4nYKL+Q==", "cpu": [ - "arm64" + "ppc64" ], "dev": true, "libc": [ "glibc" ], - "license": "Apache-2.0 AND MIT", + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=10" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.15.43", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.43.tgz", - "integrity": "sha512-6zB6OnpViBxYy4tgY3v2i6AZY9fwkcHZ032UOwtwUuW1d19sdT07qF0kZe6/3UR1tUaK6jjg2rmVcUIBCEYVjQ==", + "node_modules/@oxlint/binding-linux-riscv64-gnu": { + "version": "1.70.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-1.70.0.tgz", + "integrity": "sha512-N2+4lV2KLN+oXTIIIwmWDhwkrnvqf5oX7Hw0zPjk+RuIVgiBQSOlJWF7uQoFx2siEYX0ZQ5cfSbEAHm+J3t7Wg==", "cpu": [ - "arm64" + "riscv64" ], "dev": true, "libc": [ - "musl" + "glibc" ], - "license": "Apache-2.0 AND MIT", + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=10" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@swc/core-linux-ppc64-gnu": { - "version": "1.15.43", - "resolved": "https://registry.npmjs.org/@swc/core-linux-ppc64-gnu/-/core-linux-ppc64-gnu-1.15.43.tgz", - "integrity": "sha512-coxE1ZWdB3uSDVNoEtYNrRi/1epvckZx9cTJ8ICUxTMTxGk+yvQ/Twacp3ruZSaMPGCriUjP86C37VhaT6nyRg==", + "node_modules/@oxlint/binding-linux-riscv64-musl": { + "version": "1.70.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-1.70.0.tgz", + "integrity": "sha512-1e2L7cFCvx9QDzq6NPP+0tABKb5z6nWHyddWTNKprEsjO9xNrAtPowuCGpjNXxkTdsMiZ4jc8YQ5SstZd4XK6g==", "cpu": [ - "ppc64" + "riscv64" ], "dev": true, "libc": [ - "glibc" + "musl" ], - "license": "Apache-2.0 AND MIT", + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=10" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@swc/core-linux-s390x-gnu": { - "version": "1.15.43", - "resolved": "https://registry.npmjs.org/@swc/core-linux-s390x-gnu/-/core-linux-s390x-gnu-1.15.43.tgz", - "integrity": "sha512-lXfLhs+LpBsD5inuYx+YDH5WsPPBQ95KPUiy8P5wq9ob9xKDZFqwNfU2QW6bGO8NqRO/H9JQomTSt5Yyh+FGfA==", + "node_modules/@oxlint/binding-linux-s390x-gnu": { + "version": "1.70.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.70.0.tgz", + "integrity": "sha512-Kwu/l/8GcYibCWA9m9N5pRXMIKVSsL/YbgpLzYkqDhWTiqdRfnNJ/+nqIKRKQiFbHWsdlHEhzMwruJK+qcEruA==", "cpu": [ "s390x" ], @@ -5464,19 +3206,19 @@ "libc": [ "glibc" ], - "license": "Apache-2.0 AND MIT", + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=10" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.15.43", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.43.tgz", - "integrity": "sha512-07XnKwTmKy8TGOZG3D9fRnLWGynxPjwQnZLVmBFbo6F+7vHYzBIOuwXEhemrChBWb6yDNZsVCcMWCPX6FDD2xg==", + "node_modules/@oxlint/binding-linux-x64-gnu": { + "version": "1.70.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.70.0.tgz", + "integrity": "sha512-tap04CsHYOl0nSAQJfPNIuBxqEPB2HnhQqwaOXLg1jnp2XfRo8Fa814dA4QC4zpvTWXCjAAaCY1W5LOORkEQuQ==", "cpu": [ "x64" ], @@ -5484,19 +3226,19 @@ "libc": [ "glibc" ], - "license": "Apache-2.0 AND MIT", + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=10" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@swc/core-linux-x64-musl": { - "version": "1.15.43", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.43.tgz", - "integrity": "sha512-TJc+bsSIaBh+hZvZ5GRtW/K1bw66TJ9vsUwvVIsZdiWxU5ObLwZvfcnZ3UpgVfMnFibRes9uriJrQNBHEEogRQ==", + "node_modules/@oxlint/binding-linux-x64-musl": { + "version": "1.70.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-musl/-/binding-linux-x64-musl-1.70.0.tgz", + "integrity": "sha512-hzJa/WgvtJpbBD9rgfy0qe+MjbxOXNUT0bfR1S6EQQzfTtBFA9xg5q8KSwRrQ2QfSS+TaP4j+4mVPQrfNc6UNg==", "cpu": [ "x64" ], @@ -5504,842 +3246,660 @@ "libc": [ "musl" ], - "license": "Apache-2.0 AND MIT", + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=10" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.15.43", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.43.tgz", - "integrity": "sha512-jfd7s2/bUQYkOHLs+LWQNKZdmDa8+sufKLllhpWAhVQ2GDCwsHe3vR/j+OSiItZNtkzFuaawa3+SAKz9y5gYfw==", + "node_modules/@oxlint/binding-openharmony-arm64": { + "version": "1.70.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-openharmony-arm64/-/binding-openharmony-arm64-1.70.0.tgz", + "integrity": "sha512-xbsaNSNzVSnaJACCUYr1HQMyY/Q/Q1LkePmHG3UvZPvGCYGNxrsZp9OmtA6ick8xH47ltRRbRrPCM1YXYcyC+A==", "cpu": [ "arm64" ], "dev": true, - "license": "Apache-2.0 AND MIT", + "license": "MIT", "optional": true, "os": [ - "win32" + "openharmony" ], "engines": { - "node": ">=10" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.15.43", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.43.tgz", - "integrity": "sha512-rLAE8JvucqEW1ZGohxPQrQWPBQeJG4+ypKbWfdlU/qmKScvCkxf9/Jxnzki1dkUQCQ7P5Enp13RlvqOlvx/32g==", + "node_modules/@oxlint/binding-win32-arm64-msvc": { + "version": "1.70.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.70.0.tgz", + "integrity": "sha512-icAEsUI7JbW1TMRdEXV83mVAInhRVQYuuAlPpxdGwJ95chNdnCzjloRW8GglT0WvzOEZSio6fnYSk2DJ2Hv7LQ==", "cpu": [ - "ia32" + "arm64" ], "dev": true, - "license": "Apache-2.0 AND MIT", + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=10" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.15.43", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.43.tgz", - "integrity": "sha512-h8MLDHZcfIukwQWj03rIJZx1I0E81AYj2X7J/nGErG4nz+QAv6G1Z+peotvinL3lqpbo32tLYSMFo32/ySzxKg==", + "node_modules/@oxlint/binding-win32-ia32-msvc": { + "version": "1.70.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.70.0.tgz", + "integrity": "sha512-FHMSWbVsPVs/f+Jcl04ws4JJ2wUnauyTzlpxWRG/lSO/8GpX08Fo2gQZqdA6CrRFI+zvkxl+N/KwJGWfUwYVZA==", "cpu": [ - "x64" + "ia32" ], "dev": true, - "license": "Apache-2.0 AND MIT", + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/@swc/helpers": { - "version": "0.5.23", - "devOptional": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.8.0" - } - }, - "node_modules/@swc/jest": { - "version": "0.2.39", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/create-cache-key-function": "^30.0.0", - "@swc/counter": "^0.1.3", - "jsonc-parser": "^3.2.0" - }, - "engines": { - "npm": ">= 7.0.0" - }, - "peerDependencies": { - "@swc/core": "*" - } - }, - "node_modules/@swc/types": { - "version": "0.1.27", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@swc/counter": "^0.1.3" - } - }, - "node_modules/@tanstack/hotkeys": { - "version": "0.8.0", - "license": "MIT", - "dependencies": { - "@tanstack/store": "^0.11.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@tanstack/match-sorter-utils": { - "version": "8.19.4", - "license": "MIT", - "dependencies": { - "remove-accents": "0.5.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@tanstack/query-core": { - "version": "4.44.0", - "license": "MIT", - "peer": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@tanstack/react-hotkeys": { - "version": "0.9.1", - "license": "MIT", - "dependencies": { - "@tanstack/hotkeys": "0.7.1", - "@tanstack/react-store": "^0.9.3" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@tanstack/react-hotkeys/node_modules/@tanstack/hotkeys": { - "version": "0.7.1", + "node_modules/@oxlint/binding-win32-x64-msvc": { + "version": "1.70.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.70.0.tgz", + "integrity": "sha512-ptOlKwCz7n4AKs5VweMqG6DAg677FmKOK+vBkkL9DMNgFATIQ+upqUYBTOEwRQyRAx1ncGlPlXleV2hIcm3z4g==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", - "dependencies": { - "@tanstack/store": "^0.9.3" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@tanstack/react-hotkeys/node_modules/@tanstack/store": { - "version": "0.9.3", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } + "node_modules/@perses-dev/alert-manager-plugin": { + "resolved": "alertmanager", + "link": true }, - "node_modules/@tanstack/react-query": { - "version": "4.44.0", - "license": "MIT", - "peer": true, + "node_modules/@perses-dev/bar-chart-plugin": { + "resolved": "barchart", + "link": true + }, + "node_modules/@perses-dev/clickhouse-plugin": { + "resolved": "clickhouse", + "link": true + }, + "node_modules/@perses-dev/client": { + "version": "0.55.0-beta.1", + "license": "Apache-2.0", "dependencies": { - "@tanstack/query-core": "4.44.0", - "use-sync-external-store": "^1.6.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" + "@perses-dev/spec": "0.3.0-beta.1", + "zod": "^3.21.4" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-native": "*" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } + "react": "^17.0.2 || ^18.0.0" } }, - "node_modules/@tanstack/react-store": { - "version": "0.9.3", - "license": "MIT", + "node_modules/@perses-dev/components": { + "version": "0.55.0-beta.1", + "license": "Apache-2.0", "dependencies": { - "@tanstack/store": "0.9.3", - "use-sync-external-store": "^1.6.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" + "@atlaskit/pragmatic-drag-and-drop": "^1.4.0", + "@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.0.3", + "@codemirror/lang-json": "^6.0.1", + "@date-fns/tz": "^1.4.1", + "@fontsource/inter": "^5.0.0", + "@mui/x-date-pickers": "^7.23.1", + "@perses-dev/client": "0.55.0-beta.1", + "@perses-dev/spec": "0.3.0-beta.1", + "@tanstack/match-sorter-utils": "^8.19.4", + "@tanstack/react-table": "^8.20.5", + "@uiw/react-codemirror": "^4.19.1", + "date-fns": "^4.1.0", + "echarts": "5.5.0", + "immer": "^10.1.1", + "lodash": "^4.17.21", + "mathjs": "^10.6.4", + "mdi-material-ui": "^7.9.2", + "notistack": "^3.0.2", + "numbro": "^2.3.6", + "react-colorful": "^5.6.1", + "react-error-boundary": "^3.1.4", + "react-virtuoso": "^4.12.2" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + "@emotion/react": "^11.14.0", + "@emotion/styled": "^11.14.1", + "@mui/material": "^6.1.10", + "lodash": "^4.17.21", + "react": "^17.0.2 || ^18.0.0", + "react-dom": "^17.0.2 || ^18.0.0" } }, - "node_modules/@tanstack/react-store/node_modules/@tanstack/store": { - "version": "0.9.3", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" + "node_modules/@perses-dev/core": { + "version": "0.53.0", + "license": "Apache-2.0", + "dependencies": { + "date-fns": "^4.1.0", + "lodash": "^4.17.21", + "mathjs": "^10.6.4", + "numbro": "^2.3.6", + "zod": "^3.21.4" } }, - "node_modules/@tanstack/react-table": { - "version": "8.21.3", - "license": "MIT", + "node_modules/@perses-dev/dashboards": { + "version": "0.55.0-beta.1", + "license": "Apache-2.0", "dependencies": { - "@tanstack/table-core": "8.21.3" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" + "@perses-dev/client": "0.55.0-beta.1", + "@perses-dev/components": "0.55.0-beta.1", + "@perses-dev/plugin-system": "0.55.0-beta.1", + "@perses-dev/spec": "0.3.0-beta.1", + "@tanstack/hotkeys": "^0.8.0", + "@tanstack/react-hotkeys": "^0.9.1", + "immer": "^10.1.1", + "mdi-material-ui": "^7.9.2", + "react-grid-layout": "^1.3.4", + "react-hook-form": "^7.46.1", + "react-intersection-observer": "^9.4.0", + "use-immer": "^0.11.0", + "use-query-params": "^2.2.1", + "use-resize-observer": "^9.0.0", + "yaml": "^2.7.0", + "zustand": "^4.3.3" }, "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" + "@mui/material": "^6.1.10", + "@tanstack/react-query": "^4.39.1", + "react": "^17.0.2 || ^18.0.0", + "react-dom": "^17.0.2 || ^18.0.0" } }, - "node_modules/@tanstack/store": { - "version": "0.11.0", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" + "node_modules/@perses-dev/datasource-variable-plugin": { + "resolved": "datasourcevariable", + "link": true + }, + "node_modules/@perses-dev/explore": { + "version": "0.55.0-beta.1", + "license": "Apache-2.0", + "dependencies": { + "@nexucis/fuzzy": "^0.5.1", + "@perses-dev/components": "0.55.0-beta.1", + "@perses-dev/dashboards": "0.55.0-beta.1", + "@perses-dev/plugin-system": "0.55.0-beta.1", + "mdi-material-ui": "^7.9.2", + "qs": "^6.14.0", + "react-virtuoso": "^4.12.2", + "use-query-params": "^2.2.1", + "use-resize-observer": "^9.0.0" + }, + "peerDependencies": { + "@mui/material": "^6.1.10", + "@tanstack/react-query": "^4.39.1", + "react": "^17.0.2 || ^18.0.0", + "react-dom": "^17.0.2 || ^18.0.0" } }, - "node_modules/@tanstack/table-core": { - "version": "8.21.3", - "license": "MIT", - "engines": { - "node": ">=12" + "node_modules/@perses-dev/flame-chart-plugin": { + "resolved": "flamechart", + "link": true + }, + "node_modules/@perses-dev/gauge-chart-plugin": { + "resolved": "gaugechart", + "link": true + }, + "node_modules/@perses-dev/greptimedb-plugin": { + "resolved": "greptimedb", + "link": true + }, + "node_modules/@perses-dev/heatmap-chart-plugin": { + "resolved": "heatmapchart", + "link": true + }, + "node_modules/@perses-dev/histogram-chart-plugin": { + "resolved": "histogramchart", + "link": true + }, + "node_modules/@perses-dev/jaeger-plugin": { + "resolved": "jaeger", + "link": true + }, + "node_modules/@perses-dev/log-explorer-plugin": { + "resolved": "logexplorer", + "link": true + }, + "node_modules/@perses-dev/logs-table-plugin": { + "resolved": "logstable", + "link": true + }, + "node_modules/@perses-dev/loki-plugin": { + "resolved": "loki", + "link": true + }, + "node_modules/@perses-dev/markdown-plugin": { + "resolved": "markdown", + "link": true + }, + "node_modules/@perses-dev/opensearch-plugin": { + "resolved": "opensearch", + "link": true + }, + "node_modules/@perses-dev/pie-chart-plugin": { + "resolved": "piechart", + "link": true + }, + "node_modules/@perses-dev/plugin-system": { + "version": "0.55.0-beta.1", + "license": "Apache-2.0", + "dependencies": { + "@module-federation/enhanced": "^2.8.0", + "@perses-dev/client": "0.55.0-beta.1", + "@perses-dev/components": "0.55.0-beta.1", + "@perses-dev/core": "0.53.0", + "@perses-dev/spec": "0.3.0-beta.1", + "date-fns": "^4.1.0", + "date-fns-tz": "^3.2.0", + "immer": "^10.1.1", + "react-hook-form": "^7.46.1", + "semver": "^7.8.0", + "use-query-params": "^2.2.1", + "zod": "^3.25.76" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" + "peerDependencies": { + "@emotion/react": "^11.14.0", + "@emotion/styled": "^11.14.1", + "@hookform/resolvers": "^3.2.0", + "@mui/material": "^6.1.10", + "@tanstack/react-query": "^4.39.1", + "react": "^17.0.2 || ^18.0.0", + "react-dom": "^17.0.2 || ^18.0.0" } }, - "node_modules/@testing-library/dom": { - "version": "10.4.1", - "dev": true, + "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/bridge-react-webpack-plugin": { + "version": "2.8.2", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^5.0.1", - "aria-query": "5.3.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.5.0", - "picocolors": "1.1.1", - "pretty-format": "^27.0.2" - }, - "engines": { - "node": ">=18" + "@module-federation/sdk": "2.8.2" } }, - "node_modules/@testing-library/jest-dom": { - "version": "6.9.1", - "dev": true, + "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/cli": { + "version": "2.8.2", "license": "MIT", "dependencies": { - "@adobe/css-tools": "^4.4.0", - "aria-query": "^5.0.0", - "css.escape": "^1.5.1", - "dom-accessibility-api": "^0.6.3", - "picocolors": "^1.1.1", - "redent": "^3.0.0" + "@module-federation/dts-plugin": "2.8.2", + "@module-federation/sdk": "2.8.2", + "commander": "11.1.0", + "jiti": "2.4.2" + }, + "bin": { + "mf": "bin/mf.js" }, "engines": { - "node": ">=14", - "npm": ">=6", - "yarn": ">=1" + "node": ">=16.0.0" } }, - "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { - "version": "0.6.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@testing-library/react": { - "version": "16.3.2", - "dev": true, + "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/dts-plugin": { + "version": "2.8.2", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.12.5" - }, - "engines": { - "node": ">=18" + "@module-federation/error-codes": "2.8.2", + "@module-federation/managers": "2.8.2", + "@module-federation/sdk": "2.8.2", + "@module-federation/third-party-dts-extractor": "2.8.2", + "adm-zip": "0.6.0", + "isomorphic-ws": "5.0.0", + "undici": "7.29.0", + "ws": "8.21.0" }, "peerDependencies": { - "@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" + "typescript": "^4.9.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "vue-tsc": ">=1.0.24" }, "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { + "vue-tsc": { "optional": true } } }, - "node_modules/@testing-library/user-event": { - "version": "13.5.0", - "dev": true, + "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/enhanced": { + "version": "2.8.2", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.12.5" + "@module-federation/bridge-react-webpack-plugin": "2.8.2", + "@module-federation/cli": "2.8.2", + "@module-federation/dts-plugin": "2.8.2", + "@module-federation/error-codes": "2.8.2", + "@module-federation/inject-external-runtime-core-plugin": "2.8.2", + "@module-federation/managers": "2.8.2", + "@module-federation/manifest": "2.8.2", + "@module-federation/rspack": "2.8.2", + "@module-federation/runtime-tools": "2.8.2", + "@module-federation/sdk": "2.8.2", + "@module-federation/webpack-bundler-runtime": "2.8.2", + "schema-utils": "4.3.0", + "tapable": "2.3.0" }, - "engines": { - "node": ">=10", - "npm": ">=6" + "bin": { + "mf": "bin/mf.js" }, "peerDependencies": { - "@testing-library/dom": ">=7.21.4" - } - }, - "node_modules/@tokenizer/inflate": { - "version": "0.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.4.3", - "token-types": "^6.1.1" - }, - "engines": { - "node": ">=18" + "typescript": "^4.9.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "vue-tsc": ">=1.0.24", + "webpack": "^5.0.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vue-tsc": { + "optional": true + }, + "webpack": { + "optional": true + } } }, - "node_modules/@tokenizer/token": { - "version": "0.3.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.12", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "dev": true, + "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/error-codes": { + "version": "2.8.2", "license": "MIT" }, - "node_modules/@turbo/darwin-64": { - "version": "2.10.2", - "resolved": "https://registry.npmjs.org/@turbo/darwin-64/-/darwin-64-2.10.2.tgz", - "integrity": "sha512-wBM3ObqOWnKUDmg7QfUFDkDHPFUAJmrYlYqmEM8jMPAPA/I6wRJIbWimeQUqhOiQ8xPKhzyWM+xaiUP0wz8FEQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@turbo/darwin-arm64": { - "version": "2.10.2", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@turbo/linux-64": { - "version": "2.10.2", - "resolved": "https://registry.npmjs.org/@turbo/linux-64/-/linux-64-2.10.2.tgz", - "integrity": "sha512-mMsf5IIhiKuceEXNstd25IbadjBXZ0amxzFOqliEzJX6HyeeHdBQPVSY583PWqYDyqM/FB8d5ZjkthfBSeuH3Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@turbo/linux-arm64": { - "version": "2.10.2", - "resolved": "https://registry.npmjs.org/@turbo/linux-arm64/-/linux-arm64-2.10.2.tgz", - "integrity": "sha512-Wcng1i2kaKmXutmwxT9MUoYZvdaIekXAdlGr4+0TpgbhGLw7nDuEcRBFrxb5BbRoX1d1q8SpdRxLc45TvDZIdQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@turbo/windows-64": { - "version": "2.10.2", - "resolved": "https://registry.npmjs.org/@turbo/windows-64/-/windows-64-2.10.2.tgz", - "integrity": "sha512-SsNhM7Ho7EpAdwtrJKBOic9Hso23vu6Dp0gAfLOvUFjPzurr/sGQlXZEvr6z89ne4RDOypTwz5CBDrixpMKtXw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@turbo/windows-arm64": { - "version": "2.10.2", - "resolved": "https://registry.npmjs.org/@turbo/windows-arm64/-/windows-arm64-2.10.2.tgz", - "integrity": "sha512-Gf+S7ICAdimT/n02bOuVWKvhHnct/HYjZg3oBNIz5hZ9ZyWHbQim9J3P5Qip8WpX0ksxF7eaBVziJCuLnjhqDg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@tybys/wasm-util": { - "version": "0.10.3", + "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/inject-external-runtime-core-plugin": { + "version": "2.8.2", "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" + "peerDependencies": { + "@module-federation/runtime-tools": "2.8.2" } }, - "node_modules/@types/aria-query": { - "version": "5.0.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "dev": true, + "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/managers": { + "version": "2.8.2", "license": "MIT", "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" + "@module-federation/sdk": "2.8.2" } }, - "node_modules/@types/babel__generator": { - "version": "7.27.0", - "dev": true, + "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/manifest": { + "version": "2.8.2", "license": "MIT", "dependencies": { - "@babel/types": "^7.0.0" + "@module-federation/dts-plugin": "2.8.2", + "@module-federation/managers": "2.8.2", + "@module-federation/sdk": "2.8.2" } }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "dev": true, + "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/rspack": { + "version": "2.8.2", "license": "MIT", "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" + "@module-federation/bridge-react-webpack-plugin": "2.8.2", + "@module-federation/dts-plugin": "2.8.2", + "@module-federation/inject-external-runtime-core-plugin": "2.8.2", + "@module-federation/managers": "2.8.2", + "@module-federation/manifest": "2.8.2", + "@module-federation/runtime-tools": "2.8.2", + "@module-federation/sdk": "2.8.2" + }, + "peerDependencies": { + "@rspack/core": "^0.7.0 || ^1.0.0 || ^2.0.0-0", + "typescript": "^4.9.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "vue-tsc": ">=1.0.24" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vue-tsc": { + "optional": true + } } }, - "node_modules/@types/babel__traverse": { - "version": "7.28.0", - "dev": true, + "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/runtime": { + "version": "2.8.2", "license": "MIT", "dependencies": { - "@babel/types": "^7.28.2" + "@module-federation/error-codes": "2.8.2", + "@module-federation/runtime-core": "2.8.2", + "@module-federation/sdk": "2.8.2" } }, - "node_modules/@types/body-parser": { - "version": "1.19.6", - "dev": true, + "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/runtime-core": { + "version": "2.8.2", "license": "MIT", "dependencies": { - "@types/connect": "*", - "@types/node": "*" + "@module-federation/error-codes": "2.8.2", + "@module-federation/sdk": "2.8.2" } }, - "node_modules/@types/chroma-js": { - "version": "3.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/color-hash": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "dev": true, + "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/runtime-tools": { + "version": "2.8.2", "license": "MIT", "dependencies": { - "@types/node": "*" + "@module-federation/runtime": "2.8.2", + "@module-federation/webpack-bundler-runtime": "2.8.2" } }, - "node_modules/@types/esrecurse": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz", - "integrity": "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==", - "dev": true, + "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/sdk": { + "version": "2.8.2", "license": "MIT" }, - "node_modules/@types/estree": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", - "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", - "dev": true, + "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/third-party-dts-extractor": { + "version": "2.8.2", "license": "MIT" }, - "node_modules/@types/express": { - "version": "5.0.6", - "dev": true, + "node_modules/@perses-dev/plugin-system/node_modules/@module-federation/webpack-bundler-runtime": { + "version": "2.8.2", "license": "MIT", "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^5.0.0", - "@types/serve-static": "^2" + "@module-federation/error-codes": "2.8.2", + "@module-federation/runtime": "2.8.2", + "@module-federation/sdk": "2.8.2" } }, - "node_modules/@types/express-serve-static-core": { - "version": "5.1.1", - "dev": true, + "node_modules/@perses-dev/plugin-system/node_modules/adm-zip": { + "version": "0.6.0", "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" + "engines": { + "node": ">=14.0" } }, - "node_modules/@types/http-cache-semantics": { - "version": "4.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/http-errors": { - "version": "2.0.5", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" + "node_modules/@perses-dev/plugin-system/node_modules/semver": { + "version": "7.8.5", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "dev": true, + "node_modules/@perses-dev/plugin-system/node_modules/undici": { + "version": "7.29.0", "license": "MIT", - "dependencies": { - "@types/istanbul-lib-report": "*" + "engines": { + "node": ">=20.18.1" } }, - "node_modules/@types/jest": { - "version": "30.0.0", - "dev": true, - "license": "MIT", + "node_modules/@perses-dev/plugins-e2e": { + "resolved": "e2e", + "link": true + }, + "node_modules/@perses-dev/prometheus-plugin": { + "resolved": "prometheus", + "link": true + }, + "node_modules/@perses-dev/pyroscope-plugin": { + "resolved": "pyroscope", + "link": true + }, + "node_modules/@perses-dev/scatter-chart-plugin": { + "resolved": "scatterchart", + "link": true + }, + "node_modules/@perses-dev/spec": { + "version": "0.3.0-beta.1", + "license": "Apache-2.0", "dependencies": { - "expect": "^30.0.0", - "pretty-format": "^30.0.0" + "date-fns": "^4.1.0", + "mathjs": "^15.1.1", + "zod": "^3.21.4" } }, - "node_modules/@types/jest/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, + "node_modules/@perses-dev/spec/node_modules/fraction.js": { + "version": "5.3.4", "license": "MIT", "engines": { - "node": ">=10" + "node": "*" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/rawify" } }, - "node_modules/@types/jest/node_modules/pretty-format": { - "version": "30.4.1", - "dev": true, - "license": "MIT", + "node_modules/@perses-dev/spec/node_modules/mathjs": { + "version": "15.2.0", + "license": "Apache-2.0", "dependencies": { - "@jest/schemas": "30.4.1", - "ansi-styles": "^5.2.0", - "react-is-18": "npm:react-is@^18.3.1", - "react-is-19": "npm:react-is@^19.2.5" + "@babel/runtime": "^7.26.10", + "complex.js": "^2.2.5", + "decimal.js": "^10.4.3", + "escape-latex": "^1.2.0", + "fraction.js": "^5.2.1", + "javascript-natural-sort": "^0.7.1", + "seedrandom": "^3.0.5", + "tiny-emitter": "^2.1.0", + "typed-function": "^4.2.1" + }, + "bin": { + "mathjs": "bin/cli.js" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/@types/jsdom": { - "version": "21.1.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/tough-cookie": "*", - "parse5": "^7.0.0" + "node": ">= 18" } }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "license": "MIT" - }, - "node_modules/@types/lodash": { - "version": "4.17.24", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "26.1.0", - "dev": true, + "node_modules/@perses-dev/spec/node_modules/typed-function": { + "version": "4.2.2", "license": "MIT", - "dependencies": { - "undici-types": "~8.3.0" + "engines": { + "node": ">= 18" } }, - "node_modules/@types/parse-json": { - "version": "4.0.2", - "license": "MIT", - "peer": true - }, - "node_modules/@types/prop-types": { - "version": "15.7.15", - "license": "MIT" - }, - "node_modules/@types/qs": { - "version": "6.15.1", - "dev": true, - "license": "MIT" + "node_modules/@perses-dev/splunk-plugin": { + "resolved": "splunk", + "link": true }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "dev": true, - "license": "MIT" + "node_modules/@perses-dev/stat-chart-plugin": { + "resolved": "statchart", + "link": true }, - "node_modules/@types/react": { - "version": "18.3.31", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.2.2" - } + "node_modules/@perses-dev/static-list-variable-plugin": { + "resolved": "staticlistvariable", + "link": true }, - "node_modules/@types/react-dom": { - "version": "18.3.7", - "license": "MIT", - "peer": true, - "peerDependencies": { - "@types/react": "^18.0.0" - } + "node_modules/@perses-dev/status-history-chart-plugin": { + "resolved": "statushistorychart", + "link": true }, - "node_modules/@types/react-transition-group": { - "version": "4.4.12", - "license": "MIT", - "peerDependencies": { - "@types/react": "*" - } + "node_modules/@perses-dev/table-plugin": { + "resolved": "table", + "link": true }, - "node_modules/@types/semver": { - "version": "7.5.8", - "dev": true, - "license": "MIT" + "node_modules/@perses-dev/tempo-plugin": { + "resolved": "tempo", + "link": true }, - "node_modules/@types/send": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } + "node_modules/@perses-dev/timeseries-chart-plugin": { + "resolved": "timeserieschart", + "link": true }, - "node_modules/@types/serve-static": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*" - } + "node_modules/@perses-dev/timeseries-table-plugin": { + "resolved": "timeseriestable", + "link": true }, - "node_modules/@types/stack-utils": { - "version": "2.0.3", - "dev": true, - "license": "MIT" + "node_modules/@perses-dev/trace-table-plugin": { + "resolved": "tracetable", + "link": true }, - "node_modules/@types/tough-cookie": { - "version": "4.0.5", - "dev": true, - "license": "MIT" + "node_modules/@perses-dev/tracing-gantt-chart-plugin": { + "resolved": "tracingganttchart", + "link": true }, - "node_modules/@types/trusted-types": { - "version": "2.0.7", - "license": "MIT", - "optional": true + "node_modules/@perses-dev/victorialogs-plugin": { + "resolved": "victorialogs", + "link": true }, - "node_modules/@types/yargs": { - "version": "17.0.35", + "node_modules/@playwright/test": { + "version": "1.61.1", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "@types/yargs-parser": "*" + "playwright": "1.61.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" } }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@typescript-eslint/types": { - "version": "8.67.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.67.0.tgz", - "integrity": "sha512-sBtgslww8nsMYUjhdPBiSyUqSzT8uR6g93A2QXnQC8+cGdjz0CyaOdqHDRJb1AtORbZCNUJBBeFA/tNR2uQmww==", - "dev": true, + "node_modules/@popperjs/core": { + "version": "2.11.8", "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, + "peer": true, "funding": { "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://opencollective.com/popperjs" } }, - "node_modules/@uiw/codemirror-extensions-basic-setup": { - "version": "4.25.10", - "license": "MIT", + "node_modules/@prometheus-io/codemirror-promql": { + "version": "0.313.1", + "license": "Apache-2.0", "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/commands": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/search": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0" + "@prometheus-io/lezer-promql": "0.313.1", + "lru-cache": "^11.5.1" }, - "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" + "engines": { + "node": ">=12.0.0" }, "peerDependencies": { - "@codemirror/autocomplete": ">=6.0.0", - "@codemirror/commands": ">=6.0.0", - "@codemirror/language": ">=6.0.0", - "@codemirror/lint": ">=6.0.0", - "@codemirror/search": ">=6.0.0", - "@codemirror/state": ">=6.0.0", - "@codemirror/view": ">=6.0.0" + "@codemirror/autocomplete": "^6.4.0", + "@codemirror/language": "^6.3.0", + "@codemirror/lint": "^6.0.0", + "@codemirror/state": "^6.1.1", + "@codemirror/view": "^6.4.0", + "@lezer/common": "^1.0.1" } }, - "node_modules/@uiw/react-codemirror": { - "version": "4.25.10", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.6", - "@codemirror/commands": "^6.1.0", - "@codemirror/state": "^6.1.1", - "@codemirror/theme-one-dark": "^6.0.0", - "@uiw/codemirror-extensions-basic-setup": "4.25.10", - "codemirror": "^6.0.0" - }, - "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" - }, + "node_modules/@prometheus-io/codemirror-promql/node_modules/lru-cache": { + "version": "11.5.2", + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@prometheus-io/lezer-promql": { + "version": "0.313.1", + "license": "Apache-2.0", "peerDependencies": { - "@babel/runtime": ">=7.11.0", - "@codemirror/state": ">=6.0.0", - "@codemirror/theme-one-dark": ">=6.0.0", - "@codemirror/view": ">=6.0.0", - "codemirror": ">=6.0.0", - "react": ">=17.0.0", - "react-dom": ">=17.0.0" + "@lezer/highlight": "^1.1.2", + "@lezer/lr": "^1.2.3" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.3.2", - "dev": true, - "license": "ISC" + "node_modules/@remix-run/router": { + "version": "1.23.3", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } }, - "node_modules/@unrs/resolver-binding-android-arm-eabi": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.12.2.tgz", - "integrity": "sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==", + "node_modules/@rolldown/binding-android-arm-eabi": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.5.tgz", + "integrity": "sha512-DLe/i+l8ynIBY7XEQ191TeZvCoowIGa18R+dIV30GW7DiOtp74i/xX8hs8GUjW5ARV7VZuie3d6AumSmCwbeRA==", "cpu": [ "arm" ], @@ -6348,12 +3908,15 @@ "optional": true, "os": [ "android" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@unrs/resolver-binding-android-arm64": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.12.2.tgz", - "integrity": "sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ==", + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.5.tgz", + "integrity": "sha512-zXcwKlQApYAOELHd8PwKDFkagYF9Wy4e0RJ+0qnzl9Pjnpj75TEG8ufv40p2J7kCEfwZAsNiuzRIyNNMWT38ig==", "cpu": [ "arm64" ], @@ -6362,10 +3925,15 @@ "optional": true, "os": [ "android" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@unrs/resolver-binding-darwin-arm64": { - "version": "1.12.2", + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.5.tgz", + "integrity": "sha512-dK4QakI42nzWgJT5sm4y4y/O//D4OxM75/cH28RLV+nzIN9AY+YsbuUVrUTjlLjXR6vpyxFbSsbmNuJ6BP9sww==", "cpu": [ "arm64" ], @@ -6374,12 +3942,15 @@ "optional": true, "os": [ "darwin" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@unrs/resolver-binding-darwin-x64": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.12.2.tgz", - "integrity": "sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA==", + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.5.tgz", + "integrity": "sha512-fqSALaUu1Wjd1nK2uW2kJDWdLCc8lx1IcY+MTY26Aurfdx19anlzhqXOgCFbBFQnlFDTn4TC1/7Nz4Bl2mLP3A==", "cpu": [ "x64" ], @@ -6388,12 +3959,15 @@ "optional": true, "os": [ "darwin" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@unrs/resolver-binding-freebsd-x64": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.12.2.tgz", - "integrity": "sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg==", + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.5.tgz", + "integrity": "sha512-/vCnNxlkxs9tKxNDcyWUePpJ/PgTzxIaVhoM5SmG8UV+GR/IcPam4VYxi7GIMo7PSDuNqlJqvprqii9NqqVCMw==", "cpu": [ "x64" ], @@ -6402,26 +3976,15 @@ "optional": true, "os": [ "freebsd" - ] - }, - "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.12.2.tgz", - "integrity": "sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A==", - "cpu": [ - "arm" ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.12.2.tgz", - "integrity": "sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g==", + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.5.tgz", + "integrity": "sha512-abk0NLA519LxRCszmbE0jYKuQ9YPocOXTiOXOo6Yr+YAT95VH+PtqYAjOJvGKt3viEd/x4qzabAlwd5bHOOARg==", "cpu": [ "arm" ], @@ -6430,50 +3993,19 @@ "optional": true, "os": [ "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.12.2.tgz", - "integrity": "sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "glibc" ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@unrs/resolver-binding-linux-arm64-musl": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.12.2.tgz", - "integrity": "sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==", + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.5.tgz", + "integrity": "sha512-Y7eALiJ8lr0M2HH103Js+g7V34wf6snlpZLAsHI90uLhr3PVlNsbFVAXJC9d/V6BnPyKtpSwI+NcB/RLxsQxuA==", "cpu": [ "arm64" ], "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-loong64-gnu": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-gnu/-/resolver-binding-linux-loong64-gnu-1.12.2.tgz", - "integrity": "sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==", - "cpu": [ - "loong64" - ], - "dev": true, "libc": [ "glibc" ], @@ -6481,80 +4013,55 @@ "optional": true, "os": [ "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-loong64-musl": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-musl/-/resolver-binding-linux-loong64-musl-1.12.2.tgz", - "integrity": "sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==", - "cpu": [ - "loong64" ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.12.2.tgz", - "integrity": "sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==", + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.5.tgz", + "integrity": "sha512-xMvZgnbZg4YVnR/AX2b3oOPDTFYJvUVaJg5FedA/LuvexAtXibZQej4cnTkw3rjsJ/ggUROB64TdtETiim+FYA==", "cpu": [ - "ppc64" + "arm64" ], "dev": true, "libc": [ - "glibc" + "musl" ], "license": "MIT", "optional": true, "os": [ "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.12.2.tgz", - "integrity": "sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==", - "cpu": [ - "riscv64" - ], - "dev": true, - "libc": [ - "glibc" ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.12.2.tgz", - "integrity": "sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==", + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.5.tgz", + "integrity": "sha512-GRjeqTUDHTo5GwntsLaAMcBahG3nlpjftXWZLN73HiYQlhwEowvarFgQnRnQZtIp4keXX7quXFbG38uPZBa2EA==", "cpu": [ - "riscv64" + "ppc64" ], "dev": true, "libc": [ - "musl" + "glibc" ], "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.12.2.tgz", - "integrity": "sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==", + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.5.tgz", + "integrity": "sha512-vLNTR45F2Uwc8AufkNXPmB4VliaXs+FvcheEogIzOXzO4l+LzieXF5A/TWxLy5HtqpsRCHUfd0lPVrrdgXdLHQ==", "cpu": [ "s390x" ], @@ -6566,12 +4073,15 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@unrs/resolver-binding-linux-x64-gnu": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.12.2.tgz", - "integrity": "sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==", + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.5.tgz", + "integrity": "sha512-Mgj59/HTuYeK9Gz2MA+mBWKnHsAgkBSec15ZMb1st3oIfFbX7gCjOae7GydHhzcyQi9Z/7M1QuN9bR3oFqF0jQ==", "cpu": [ "x64" ], @@ -6583,12 +4093,15 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@unrs/resolver-binding-linux-x64-musl": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.12.2.tgz", - "integrity": "sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==", + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.5.tgz", + "integrity": "sha512-mY8AP0/ichsbhAxGnLa3d3+MwV0EfgrPND2bplI3Ym8T6R2pJ0N87bvrKVwNXmdy3jnr6eQBecdqx/HMknBmpA==", "cpu": [ "x64" ], @@ -6600,12 +4113,15 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@unrs/resolver-binding-openharmony-arm64": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-openharmony-arm64/-/resolver-binding-openharmony-arm64-1.12.2.tgz", - "integrity": "sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==", + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.5.tgz", + "integrity": "sha512-8SLssA2oweAxyRgDp789ACfRb/3P+zNRJpzZxSizxF9m8NUDQ4+3xjo8ttjhVGGw6Qxb70oZiEtIjaKikCO7Yw==", "cpu": [ "arm64" ], @@ -6614,65 +4130,15 @@ "optional": true, "os": [ "openharmony" - ] - }, - "node_modules/@unrs/resolver-binding-wasm32-wasi": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.12.2.tgz", - "integrity": "sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A==", - "cpu": [ - "wasm32" ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "1.10.0", - "@emnapi/runtime": "1.10.0", - "@napi-rs/wasm-runtime": "^1.1.4" - }, "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@unrs/resolver-binding-wasm32-wasi/node_modules/@emnapi/core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", - "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/wasi-threads": "1.2.1", - "tslib": "^2.4.0" - } - }, - "node_modules/@unrs/resolver-binding-wasm32-wasi/node_modules/@emnapi/runtime": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", - "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@unrs/resolver-binding-wasm32-wasi/node_modules/@emnapi/wasi-threads": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", - "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.12.2.tgz", - "integrity": "sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g==", + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.5.tgz", + "integrity": "sha512-vGbruD5zquhoc8D9SViXgN2FBJtNdTyQ4DtG+SWiEGlJiAzoKcZ2xp+xuXCffhubVdt0NJlTZqkeRuERy7g8Cw==", "cpu": [ "arm64" ], @@ -6681,26 +4147,15 @@ "optional": true, "os": [ "win32" - ] - }, - "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.12.2.tgz", - "integrity": "sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g==", - "cpu": [ - "ia32" ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@unrs/resolver-binding-win32-x64-msvc": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.12.2.tgz", - "integrity": "sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA==", + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.5.tgz", + "integrity": "sha512-e/SXpgISz+IoqVcSSI0rx/d/he8zqLex+/rCWpnHpmVfmPIUjag9H6P7zotf0gJHwPUhQxZ/mF8tr6acebT9yw==", "cpu": [ "x64" ], @@ -6709,495 +4164,589 @@ "optional": true, "os": [ "win32" - ] - }, - "node_modules/@xhmikosr/archive-type": { - "version": "8.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "file-type": "^21.3.4" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@xhmikosr/bin-check": { - "version": "8.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "execa": "^9.6.1", - "isexe": "^4.0.0" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@xhmikosr/bin-wrapper": { - "version": "14.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@xhmikosr/bin-check": "^8.2.1", - "@xhmikosr/downloader": "^16.2.0", - "@xhmikosr/os-filter-obj": "^4.1.0", - "binary-version-check": "^6.1.0" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@xhmikosr/decompress": { - "version": "11.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@xhmikosr/decompress-tar": "^9.0.1", - "@xhmikosr/decompress-tarbz2": "^9.0.1", - "@xhmikosr/decompress-targz": "^9.0.1", - "@xhmikosr/decompress-unzip": "^8.1.1", - "graceful-fs": "^4.2.11", - "strip-dirs": "^3.0.0" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@xhmikosr/decompress-tar": { - "version": "9.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "file-type": "^21.3.0", - "is-stream": "^4.0.1", - "tar-stream": "3.1.7" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@xhmikosr/decompress-tarbz2": { - "version": "9.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@xhmikosr/decompress-tar": "^9.0.1", - "file-type": "^21.3.4", - "is-stream": "^4.0.1", - "seek-bzip": "^2.0.0", - "unbzip2-stream": "^1.4.3" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@xhmikosr/decompress-targz": { - "version": "9.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@xhmikosr/decompress-tar": "^9.0.0", - "file-type": "^21.3.0", - "is-stream": "^4.0.1" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@xhmikosr/decompress-unzip": { - "version": "8.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "file-type": "^21.3.4", - "get-stream": "^9.0.1", - "yauzl": "^3.4.0" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@xhmikosr/downloader": { - "version": "16.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@xhmikosr/archive-type": "^8.0.1", - "@xhmikosr/decompress": "^11.1.3", - "content-disposition": "^2.0.1", - "ext-name": "^5.0.0", - "file-type": "^21.3.4", - "filenamify": "^7.0.1", - "got": "^14.6.6" - }, + ], "engines": { - "node": ">=20" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@xhmikosr/os-filter-obj": { - "version": "4.1.0", + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", "dev": true, - "license": "MIT", - "dependencies": { - "system-architecture": "^1.0.0" - }, - "engines": { - "node": ">=20" - } + "license": "MIT" }, - "node_modules/accepts": { - "version": "1.3.8", + "node_modules/@rsbuild/core": { + "version": "1.7.6", "dev": true, "license": "MIT", "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" + "@rspack/core": "~1.7.10", + "@rspack/lite-tapable": "~1.1.0", + "@swc/helpers": "^0.5.20", + "core-js": "~3.47.0", + "jiti": "^2.6.1" }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.17.0", - "dev": true, - "license": "MIT", "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.5", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.11.0" + "rsbuild": "bin/rsbuild.js" }, "engines": { - "node": ">=0.4.0" + "node": ">=18.12.0" } }, - "node_modules/adm-zip": { - "version": "0.5.10", + "node_modules/@rsbuild/core/node_modules/@module-federation/error-codes": { + "version": "0.22.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0" - } + "license": "MIT" }, - "node_modules/agent-base": { - "version": "7.1.4", + "node_modules/@rsbuild/core/node_modules/@module-federation/runtime": { + "version": "0.22.0", "dev": true, "license": "MIT", - "engines": { - "node": ">= 14" + "dependencies": { + "@module-federation/error-codes": "0.22.0", + "@module-federation/runtime-core": "0.22.0", + "@module-federation/sdk": "0.22.0" } }, - "node_modules/ajv-formats": { - "version": "2.1.1", + "node_modules/@rsbuild/core/node_modules/@module-federation/runtime-core": { + "version": "0.22.0", + "dev": true, "license": "MIT", "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } + "@module-federation/error-codes": "0.22.0", + "@module-federation/sdk": "0.22.0" } }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.20.0", + "node_modules/@rsbuild/core/node_modules/@module-federation/runtime-tools": { + "version": "0.22.0", + "dev": true, "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "@module-federation/runtime": "0.22.0", + "@module-federation/webpack-bundler-runtime": "0.22.0" } }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", + "node_modules/@rsbuild/core/node_modules/@module-federation/sdk": { + "version": "0.22.0", + "dev": true, "license": "MIT" }, - "node_modules/ansi_up": { - "version": "6.0.6", + "node_modules/@rsbuild/core/node_modules/@module-federation/webpack-bundler-runtime": { + "version": "0.22.0", + "dev": true, "license": "MIT", - "engines": { - "node": "*" + "dependencies": { + "@module-federation/runtime": "0.22.0", + "@module-federation/sdk": "0.22.0" } }, - "node_modules/ansi-colors": { - "version": "4.1.3", + "node_modules/@rsbuild/core/node_modules/@napi-rs/wasm-runtime": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.0.7.tgz", + "integrity": "sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==", "dev": true, "license": "MIT", - "engines": { - "node": ">=6" + "optional": true, + "dependencies": { + "@emnapi/core": "^1.5.0", + "@emnapi/runtime": "^1.5.0", + "@tybys/wasm-util": "^0.10.1" } }, - "node_modules/ansi-escapes": { - "version": "4.3.2", + "node_modules/@rsbuild/core/node_modules/@rspack/binding": { + "version": "1.7.12", "dev": true, "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "optionalDependencies": { + "@rspack/binding-darwin-arm64": "1.7.12", + "@rspack/binding-darwin-x64": "1.7.12", + "@rspack/binding-linux-arm64-gnu": "1.7.12", + "@rspack/binding-linux-arm64-musl": "1.7.12", + "@rspack/binding-linux-x64-gnu": "1.7.12", + "@rspack/binding-linux-x64-musl": "1.7.12", + "@rspack/binding-wasm32-wasi": "1.7.12", + "@rspack/binding-win32-arm64-msvc": "1.7.12", + "@rspack/binding-win32-ia32-msvc": "1.7.12", + "@rspack/binding-win32-x64-msvc": "1.7.12" } }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", + "node_modules/@rsbuild/core/node_modules/@rspack/binding-darwin-arm64": { + "version": "1.7.12", + "cpu": [ + "arm64" + ], "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/ansi-regex": { - "version": "5.0.1", + "node_modules/@rsbuild/core/node_modules/@rspack/binding-darwin-x64": { + "version": "1.7.12", + "resolved": "https://registry.npmjs.org/@rspack/binding-darwin-x64/-/binding-darwin-x64-1.7.12.tgz", + "integrity": "sha512-jnOp+/UXOJa9xqUb8KXH03sysoO2e4Ij6tw6MqDdmdj8n/A8PQENRPUbW9AwXpPtVDJPus9r4fi7b3+6e4B8Hg==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "engines": { - "node": ">=8" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/@rsbuild/core/node_modules/@rspack/binding-linux-arm64-gnu": { + "version": "1.7.12", + "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.7.12.tgz", + "integrity": "sha512-C8owWG+yvo7X0oVLIXetkoJhIFBP1LYNcAQqtgLmJnQLQDklGuP83dKC+zISGQWpjawHfZ1ER96vLgoTrxKZdw==", + "cpu": [ + "arm64" + ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/anymatch": { - "version": "3.1.3", + "node_modules/@rsbuild/core/node_modules/@rspack/binding-linux-arm64-musl": { + "version": "1.7.12", + "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.7.12.tgz", + "integrity": "sha512-i51WWI64aRpsfSki6rN0aepPqXkVfS+vZM7+4bWDcmnhUmdMvhIPcYg0QRk3DtyJnu33jqNLM0WHY78k00NyfA==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/anymatch/node_modules/picomatch": { - "version": "2.3.2", + "node_modules/@rsbuild/core/node_modules/@rspack/binding-linux-x64-gnu": { + "version": "1.7.12", + "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.7.12.tgz", + "integrity": "sha512-MSos0FuPEefqo9V92ULd5hggKG29EkSNg1zDcypy0OkpsKh5pfjVxTLYFXgTcVyFoUQQbdG8zFBzYbwmJ8V4ew==", + "cpu": [ + "x64" + ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/arg": { - "version": "4.1.3", + "node_modules/@rsbuild/core/node_modules/@rspack/binding-linux-x64-musl": { + "version": "1.7.12", + "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-1.7.12.tgz", + "integrity": "sha512-JcAMVKXOnjfpC3coWjCFPWD3Yl8RBw6a+IXQQ8mfRlHaHMIiOv8IfZqx15XRxMUn49CtP7Z0Na8iiAg2aKrcfw==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT" + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/aria-query": { - "version": "5.3.0", + "node_modules/@rsbuild/core/node_modules/@rspack/binding-wasm32-wasi": { + "version": "1.7.12", + "resolved": "https://registry.npmjs.org/@rspack/binding-wasm32-wasi/-/binding-wasm32-wasi-1.7.12.tgz", + "integrity": "sha512-n+ZqP6ZMc0nhOgvadg5VhEs9ojtbES80AcWeFnmGkbzIszvGSO63GKNiRkXtjJ9KFuRzytbbmsCqkUVH+Tywxg==", + "cpu": [ + "wasm32" + ], "dev": true, - "license": "Apache-2.0", + "license": "MIT", + "optional": true, "dependencies": { - "dequal": "^2.0.3" + "@napi-rs/wasm-runtime": "1.0.7" } }, - "node_modules/array-flatten": { - "version": "1.1.1", + "node_modules/@rsbuild/core/node_modules/@rspack/binding-win32-arm64-msvc": { + "version": "1.7.12", + "resolved": "https://registry.npmjs.org/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.7.12.tgz", + "integrity": "sha512-8+h5fYDXYdmugbdfZ+D1y8IQ3rv2EhSfyGP7vBe+bjNyaMa4jWrpucmZbtxojUL1AzaeuHbvMdj9UO/gelk/+g==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rsbuild/core/node_modules/@rspack/binding-win32-ia32-msvc": { + "version": "1.7.12", + "resolved": "https://registry.npmjs.org/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.7.12.tgz", + "integrity": "sha512-cDMGwTRSa2p9fNBVe1wTRkF2AEXZ9ARWW36QeC5CkLaI0Ezz8lvhF2+CSOPnhaQ1O1qtn0L0SF+lFnrY+I7xGQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rsbuild/core/node_modules/@rspack/binding-win32-x64-msvc": { + "version": "1.7.12", + "resolved": "https://registry.npmjs.org/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.7.12.tgz", + "integrity": "sha512-wIqFvlgFqrgUyj/6S/FJcvShnkZOmIeXTfqvheLY67MGq8qd8jb1YimQVKAIrmWB3yuJKUFACI3Ag1UBtEedEA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/babel-jest": { - "version": "30.4.1", + "node_modules/@rsbuild/core/node_modules/@rspack/core": { + "version": "1.7.12", "dev": true, "license": "MIT", "dependencies": { - "@jest/transform": "30.4.1", - "@types/babel__core": "^7.20.5", - "babel-plugin-istanbul": "^7.0.1", - "babel-preset-jest": "30.4.0", - "chalk": "^4.1.2", - "graceful-fs": "^4.2.11", - "slash": "^3.0.0" + "@module-federation/runtime-tools": "0.22.0", + "@rspack/binding": "1.7.12", + "@rspack/lite-tapable": "1.1.0" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">=18.12.0" }, "peerDependencies": { - "@babel/core": "^7.11.0 || ^8.0.0-0" + "@swc/helpers": ">=0.5.1" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } } }, - "node_modules/babel-plugin-istanbul": { - "version": "7.0.1", + "node_modules/@rsbuild/core/node_modules/@rspack/lite-tapable": { + "version": "1.1.0", "dev": true, - "license": "BSD-3-Clause", - "workspaces": [ - "test/babel-8" - ], - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-instrument": "^6.0.2", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=12" + "license": "MIT" + }, + "node_modules/@rsbuild/core/node_modules/jiti": { + "version": "2.7.0", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" } }, - "node_modules/babel-plugin-jest-hoist": { - "version": "30.4.0", + "node_modules/@rsbuild/plugin-react": { + "version": "1.4.6", "dev": true, "license": "MIT", "dependencies": { - "@types/babel__core": "^7.20.5" + "@rspack/plugin-react-refresh": "^1.6.1", + "react-refresh": "^0.18.0" }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "peerDependencies": { + "@rsbuild/core": "^1.0.0 || ^2.0.0-0" + }, + "peerDependenciesMeta": { + "@rsbuild/core": { + "optional": true + } } }, - "node_modules/babel-plugin-macros": { - "version": "3.1.0", + "node_modules/@rspack/binding": { + "version": "2.1.2", "license": "MIT", "peer": true, - "dependencies": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">=10", - "npm": ">=6" + "optionalDependencies": { + "@rspack/binding-darwin-arm64": "2.1.2", + "@rspack/binding-darwin-x64": "2.1.2", + "@rspack/binding-linux-arm64-gnu": "2.1.2", + "@rspack/binding-linux-arm64-musl": "2.1.2", + "@rspack/binding-linux-riscv64-gnu": "2.1.2", + "@rspack/binding-linux-riscv64-musl": "2.1.2", + "@rspack/binding-linux-x64-gnu": "2.1.2", + "@rspack/binding-linux-x64-musl": "2.1.2", + "@rspack/binding-wasm32-wasi": "2.1.2", + "@rspack/binding-win32-arm64-msvc": "2.1.2", + "@rspack/binding-win32-ia32-msvc": "2.1.2", + "@rspack/binding-win32-x64-msvc": "2.1.2" } }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.2.0", - "dev": true, + "node_modules/@rspack/binding-darwin-arm64": { + "version": "2.1.2", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true + }, + "node_modules/@rspack/binding-darwin-x64": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@rspack/binding-darwin-x64/-/binding-darwin-x64-2.1.2.tgz", + "integrity": "sha512-aoifkILvx/XEHyvg8yW57xu95nx7f9f/3ah1+RguHSNKcJMcoCep9VX1Ct1N0ftqg8MC0JUObc7xWL5W14hmjA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true + }, + "node_modules/@rspack/binding-linux-arm64-gnu": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-2.1.2.tgz", + "integrity": "sha512-My4m40tyJSgiCEf3bB2KIEX710q3nZg99LIjy+8Zxgi3oZTkg1bFmFRusFU5U4eN5408zfSqDDGvjDE3Yv7o4w==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rspack/binding-linux-arm64-musl": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-2.1.2.tgz", + "integrity": "sha512-yt+GGWUH7WPE8K97cRc8OpZhH7Pbj1vU+lkvKbDtF/rR8X9a/bJsA/nBqyUV2oBKOVbrp5I8rFZlnDskMqgvKw==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rspack/binding-linux-riscv64-gnu": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@rspack/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-2.1.2.tgz", + "integrity": "sha512-uys8Jyw8Z3ralvICbN/L/nZfy5qELIwpOY72rhIqhoDYwFcL4fmMaY7WsvUcJOjCB2rqOcWPaWKuF2oPvo9iDQ==", + "cpu": [ + "riscv64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rspack/binding-linux-riscv64-musl": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@rspack/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-2.1.2.tgz", + "integrity": "sha512-JYNVQwqCaRGQWvjHQYzZkIzQiwllMaJwh4Rdu3ww6W2OJcJUqT08sL1pkOtU0iCxT4VUYiRRcp93VGTGpHr8fg==", + "cpu": [ + "riscv64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rspack/binding-linux-x64-gnu": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-2.1.2.tgz", + "integrity": "sha512-KDoPy0Msf/JLhxgPPrJQzZeB4Qpqd32em8AP5lSW2s6jR5I35dHgAe9xc2A++EQtnSrU4GTn6DBvFC7q84SihQ==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rspack/binding-linux-x64-musl": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-2.1.2.tgz", + "integrity": "sha512-66hWmIGvn4zCKAYXJE9Bp5SNSLYnLFq2Ke/efE+ZtWy43Dd5vk9AAOmThVGBwdwmIxmGtHGCp+cAuS4G0wu0TA==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, + "node_modules/@rspack/binding-wasm32-wasi": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@rspack/binding-wasm32-wasi/-/binding-wasm32-wasi-2.1.2.tgz", + "integrity": "sha512-EB4SqH8DW/E/OmqssNQvnIVGQiVUyYNlA/pcc6Ia4MlTNwu6eNDppcNLrToH+kSZpL4CpHSFfSM3eIsSuar2Rw==", + "cpu": [ + "wasm32" + ], "license": "MIT", + "optional": true, + "peer": true, "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-import-attributes": "^7.24.7", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5" - }, - "peerDependencies": { - "@babel/core": "^7.0.0 || ^8.0.0-0" + "@emnapi/core": "1.11.1", + "@emnapi/runtime": "1.11.1", + "@napi-rs/wasm-runtime": "1.1.6" } }, - "node_modules/babel-preset-jest": { - "version": "30.4.0", - "dev": true, + "node_modules/@rspack/binding-win32-arm64-msvc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-2.1.2.tgz", + "integrity": "sha512-T6Fs/g32MRja/UpCq4AdyPRj8tA0cOkcEa4PrAcn/ztUgK8b/qMVxj5mhMI+n7k+kHZQnpeB1Q4HqdSJi6OocA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true + }, + "node_modules/@rspack/binding-win32-ia32-msvc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-2.1.2.tgz", + "integrity": "sha512-OtxkFVz14mVL4QK8QriSELn9B6PaYGHw1jGJwVDEzpu2ZxSHCTQPz9dVE1ekYtREEqZUkRU7Fp7VfhJSmjTt2Q==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true + }, + "node_modules/@rspack/binding-win32-x64-msvc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-2.1.2.tgz", + "integrity": "sha512-Am+nx9fLF3nzgD/K05Bs1Bb+WO8SFLWAYRbXkymaL1r+RQxjRj7jd5ap2PhGOCcfaNA4yVWkAFvmFP92eRu7bQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true + }, + "node_modules/@rspack/core": { + "version": "2.1.2", "license": "MIT", + "peer": true, "dependencies": { - "babel-plugin-jest-hoist": "30.4.0", - "babel-preset-current-node-syntax": "^1.2.0" + "@rspack/binding": "2.1.2" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": "^20.19.0 || >=22.12.0" }, "peerDependencies": { - "@babel/core": "^7.11.0 || ^8.0.0-beta.1" + "@module-federation/runtime-tools": "^0.24.1 || ^2.0.0", + "@swc/helpers": "^0.5.23" + }, + "peerDependenciesMeta": { + "@module-federation/runtime-tools": { + "optional": true + }, + "@swc/helpers": { + "optional": true + } } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/bare-events": { - "version": "2.9.1", + "node_modules/@rspack/plugin-react-refresh": { + "version": "1.6.2", "dev": true, - "license": "Apache-2.0", + "license": "MIT", + "dependencies": { + "error-stack-parser": "^2.1.4" + }, "peerDependencies": { - "bare-abort-controller": "*" + "react-refresh": ">=0.10.0 <1.0.0", + "webpack-hot-middleware": "2.x" }, "peerDependenciesMeta": { - "bare-abort-controller": { + "webpack-hot-middleware": { "optional": true } } }, - "node_modules/base64-js": { - "version": "1.5.1", + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "license": "MIT" }, - "node_modules/baseline-browser-mapping": { - "version": "2.10.40", + "node_modules/@shaderfrog/glsl-parser": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@shaderfrog/glsl-parser/-/glsl-parser-7.0.1.tgz", + "integrity": "sha512-8mpfsoPeRhesY3pOrzNZBL8uG6N5GVX1EHLBYbd4gzKs+c7vaEIqpTNK5VrffU33qQN4cwpP2v3u4aPPBU32sw==", "dev": true, - "license": "Apache-2.0", - "bin": { - "baseline-browser-mapping": "dist/cli.cjs" - }, + "license": "ISC", "engines": { - "node": ">=6.0.0" + "node": ">=16" } }, - "node_modules/bignumber.js": { - "version": "9.3.1", + "node_modules/@sindresorhus/is": { + "version": "7.2.0", + "dev": true, "license": "MIT", "engines": { - "node": "*" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" } }, - "node_modules/binary-version": { - "version": "7.1.0", + "node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "execa": "^8.0.1", - "find-versions": "^6.0.0" - }, "engines": { "node": ">=18" }, @@ -7205,3197 +4754,3299 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/binary-version-check": { - "version": "6.1.0", + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@swc/cli": { + "version": "0.8.1", "dev": true, "license": "MIT", "dependencies": { - "binary-version": "^7.1.0", - "semver": "^7.6.0", - "semver-truncate": "^3.0.0" + "@swc/counter": "^0.1.3", + "@xhmikosr/bin-wrapper": "^14.0.0", + "commander": "^8.3.0", + "minimatch": "^9.0.3", + "piscina": "^4.3.1", + "semver": "^7.3.8", + "slash": "3.0.0", + "source-map": "^0.7.3", + "tinyglobby": "^0.2.13" + }, + "bin": { + "spack": "bin/spack.js", + "swc": "bin/swc.js", + "swcx": "bin/swcx.js" }, "engines": { - "node": ">=18" + "node": ">= 20.19.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@swc/core": "^1.2.66", + "chokidar": "^5.0.0" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } } }, - "node_modules/binary-version/node_modules/execa": { - "version": "8.0.1", + "node_modules/@swc/cli/node_modules/commander": { + "version": "8.3.0", "dev": true, "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/@swc/cli/node_modules/source-map": { + "version": "0.7.6", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/@swc/core": { + "version": "1.15.43", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.27" }, "engines": { - "node": ">=16.17" + "node": ">=10" }, "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.15.43", + "@swc/core-darwin-x64": "1.15.43", + "@swc/core-linux-arm-gnueabihf": "1.15.43", + "@swc/core-linux-arm64-gnu": "1.15.43", + "@swc/core-linux-arm64-musl": "1.15.43", + "@swc/core-linux-ppc64-gnu": "1.15.43", + "@swc/core-linux-s390x-gnu": "1.15.43", + "@swc/core-linux-x64-gnu": "1.15.43", + "@swc/core-linux-x64-musl": "1.15.43", + "@swc/core-win32-arm64-msvc": "1.15.43", + "@swc/core-win32-ia32-msvc": "1.15.43", + "@swc/core-win32-x64-msvc": "1.15.43" + }, + "peerDependencies": { + "@swc/helpers": ">=0.5.17" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } } }, - "node_modules/binary-version/node_modules/get-stream": { - "version": "8.0.1", + "node_modules/@swc/core-darwin-arm64": { + "version": "1.15.43", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10" } }, - "node_modules/binary-version/node_modules/human-signals": { - "version": "5.0.0", + "node_modules/@swc/core-darwin-x64": { + "version": "1.15.43", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.15.43.tgz", + "integrity": "sha512-lp3d4Lamc8dt5huYdGLSR+9hLxmfr1jb0l+4XXG2zPqZwYWRN9R0U2qYoTrggiU2RWW0oV9VbWM3kBnqIc2kdQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.15.43", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.43.tgz", + "integrity": "sha512-JWTQQELtsG5GgphDrr/XqqmM2pDN3cZqbMS0Mrg+iTiXL3F74sn/S2IyYE/5u4h2KLkTf9qQ7dXyxsbx7YzkeA==", + "cpu": [ + "arm" + ], "dev": true, "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.15.43", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.43.tgz", + "integrity": "sha512-B4otJRdPWIsmiSBf0uG7Z/+vMWmkufjz5MmYxubwKuZazDW14Zd3symga1N62QR4RT+kEFeHEgsXfZGyn/w0hw==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.15.43", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.43.tgz", + "integrity": "sha512-6zB6OnpViBxYy4tgY3v2i6AZY9fwkcHZ032UOwtwUuW1d19sdT07qF0kZe6/3UR1tUaK6jjg2rmVcUIBCEYVjQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=16.17.0" + "node": ">=10" } }, - "node_modules/binary-version/node_modules/is-stream": { - "version": "3.0.0", + "node_modules/@swc/core-linux-ppc64-gnu": { + "version": "1.15.43", + "resolved": "https://registry.npmjs.org/@swc/core-linux-ppc64-gnu/-/core-linux-ppc64-gnu-1.15.43.tgz", + "integrity": "sha512-coxE1ZWdB3uSDVNoEtYNrRi/1epvckZx9cTJ8ICUxTMTxGk+yvQ/Twacp3ruZSaMPGCriUjP86C37VhaT6nyRg==", + "cpu": [ + "ppc64" + ], "dev": true, - "license": "MIT", + "libc": [ + "glibc" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10" } }, - "node_modules/binary-version/node_modules/npm-run-path": { - "version": "5.3.0", + "node_modules/@swc/core-linux-s390x-gnu": { + "version": "1.15.43", + "resolved": "https://registry.npmjs.org/@swc/core-linux-s390x-gnu/-/core-linux-s390x-gnu-1.15.43.tgz", + "integrity": "sha512-lXfLhs+LpBsD5inuYx+YDH5WsPPBQ95KPUiy8P5wq9ob9xKDZFqwNfU2QW6bGO8NqRO/H9JQomTSt5Yyh+FGfA==", + "cpu": [ + "s390x" + ], "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^4.0.0" - }, + "libc": [ + "glibc" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10" } }, - "node_modules/binary-version/node_modules/path-key": { - "version": "4.0.0", + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.15.43", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.43.tgz", + "integrity": "sha512-07XnKwTmKy8TGOZG3D9fRnLWGynxPjwQnZLVmBFbo6F+7vHYzBIOuwXEhemrChBWb6yDNZsVCcMWCPX6FDD2xg==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", + "libc": [ + "glibc" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10" } }, - "node_modules/binary-version/node_modules/strip-final-newline": { - "version": "3.0.0", + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.15.43", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.43.tgz", + "integrity": "sha512-TJc+bsSIaBh+hZvZ5GRtW/K1bw66TJ9vsUwvVIsZdiWxU5ObLwZvfcnZ3UpgVfMnFibRes9uriJrQNBHEEogRQ==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", + "libc": [ + "musl" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10" } }, - "node_modules/bind-event-listener": { - "version": "3.0.0", - "license": "MIT" - }, - "node_modules/body-parser": { - "version": "1.20.5", + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.15.43", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.43.tgz", + "integrity": "sha512-jfd7s2/bUQYkOHLs+LWQNKZdmDa8+sufKLllhpWAhVQ2GDCwsHe3vR/j+OSiItZNtkzFuaawa3+SAKz9y5gYfw==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "~3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "~1.2.0", - "http-errors": "~2.0.1", - "iconv-lite": "~0.4.24", - "on-finished": "~2.4.1", - "qs": "~6.15.1", - "raw-body": "~2.5.3", - "type-is": "~1.6.18", - "unpipe": "~1.0.0" - }, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">=10" } }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.15.43", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.43.tgz", + "integrity": "sha512-rLAE8JvucqEW1ZGohxPQrQWPBQeJG4+ypKbWfdlU/qmKScvCkxf9/Jxnzki1dkUQCQ7P5Enp13RlvqOlvx/32g==", + "cpu": [ + "ia32" + ], "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" } }, - "node_modules/body-parser/node_modules/iconv-lite": { - "version": "0.4.24", + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.15.43", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.43.tgz", + "integrity": "sha512-h8MLDHZcfIukwQWj03rIJZx1I0E81AYj2X7J/nGErG4nz+QAv6G1Z+peotvinL3lqpbo32tLYSMFo32/ySzxKg==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "2.1.1", + "node_modules/@swc/counter": { + "version": "0.1.3", "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } + "license": "Apache-2.0" }, - "node_modules/browserslist": { - "version": "4.28.4", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", + "node_modules/@swc/helpers": { + "version": "0.5.23", + "devOptional": true, + "license": "Apache-2.0", "dependencies": { - "baseline-browser-mapping": "^2.10.38", - "caniuse-lite": "^1.0.30001799", - "electron-to-chromium": "^1.5.376", - "node-releases": "^2.0.48", - "update-browserslist-db": "^1.2.3" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "tslib": "^2.8.0" } }, - "node_modules/bser": { - "version": "2.1.1", + "node_modules/@swc/types": { + "version": "0.1.27", "dev": true, "license": "Apache-2.0", "dependencies": { - "node-int64": "^0.4.0" + "@swc/counter": "^0.1.3" } }, - "node_modules/buffer": { - "version": "5.7.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "node_modules/@tanstack/hotkeys": { + "version": "0.8.0", "license": "MIT", "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "@tanstack/store": "^0.11.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" } }, - "node_modules/buffer-from": { - "version": "1.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/byte-counter": { - "version": "0.1.0", - "dev": true, + "node_modules/@tanstack/match-sorter-utils": { + "version": "8.19.4", "license": "MIT", + "dependencies": { + "remove-accents": "0.5.0" + }, "engines": { - "node": ">=20" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" } }, - "node_modules/bytes": { - "version": "3.1.2", - "dev": true, + "node_modules/@tanstack/query-core": { + "version": "4.44.0", "license": "MIT", - "engines": { - "node": ">= 0.8" + "peer": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" } }, - "node_modules/cacheable-lookup": { - "version": "7.0.0", - "dev": true, + "node_modules/@tanstack/react-hotkeys": { + "version": "0.9.1", "license": "MIT", + "dependencies": { + "@tanstack/hotkeys": "0.7.1", + "@tanstack/react-store": "^0.9.3" + }, "engines": { - "node": ">=14.16" + "node": ">=18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" } }, - "node_modules/cacheable-request": { - "version": "13.0.19", - "dev": true, + "node_modules/@tanstack/react-hotkeys/node_modules/@tanstack/hotkeys": { + "version": "0.7.1", "license": "MIT", "dependencies": { - "@types/http-cache-semantics": "^4.2.0", - "get-stream": "^9.0.1", - "http-cache-semantics": "^4.2.0", - "keyv": "^5.6.0", - "mimic-response": "^4.0.0", - "normalize-url": "^8.1.1", - "responselike": "^4.0.2" + "@tanstack/store": "^0.9.3" }, "engines": { "node": ">=18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" } }, - "node_modules/cacheable-request/node_modules/keyv": { - "version": "5.6.0", - "dev": true, + "node_modules/@tanstack/react-hotkeys/node_modules/@tanstack/store": { + "version": "0.9.3", "license": "MIT", - "dependencies": { - "@keyv/serialize": "^1.1.1" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" } }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", + "node_modules/@tanstack/react-query": { + "version": "4.44.0", "license": "MIT", + "peer": true, "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" + "@tanstack/query-core": "4.44.0", + "use-sync-external-store": "^1.6.0" }, - "engines": { - "node": ">= 0.4" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-native": "*" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } } }, - "node_modules/call-bound": { - "version": "1.0.4", + "node_modules/@tanstack/react-store": { + "version": "0.9.3", "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" + "@tanstack/store": "0.9.3", + "use-sync-external-store": "^1.6.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "license": "MIT", - "engines": { - "node": ">=6" + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "node_modules/camelcase": { - "version": "5.3.1", - "dev": true, + "node_modules/@tanstack/react-store/node_modules/@tanstack/store": { + "version": "0.9.3", "license": "MIT", - "engines": { - "node": ">=6" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001800", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/chalk": { - "version": "4.1.2", - "dev": true, + "node_modules/@tanstack/react-table": { + "version": "8.21.3", "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@tanstack/table-core": "8.21.3" }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" } }, - "node_modules/char-regex": { - "version": "1.0.2", - "dev": true, + "node_modules/@tanstack/store": { + "version": "0.11.0", "license": "MIT", - "engines": { - "node": ">=10" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" } }, - "node_modules/chroma-js": { - "version": "3.2.0", - "license": "(BSD-3-Clause AND Apache-2.0)" - }, - "node_modules/ci-info": { - "version": "4.4.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], + "node_modules/@tanstack/table-core": { + "version": "8.21.3", "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" } }, - "node_modules/cjs-module-lexer": { - "version": "2.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/cliui": { - "version": "9.0.1", + "node_modules/@testing-library/dom": { + "version": "10.4.1", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "string-width": "^7.2.0", - "strip-ansi": "^7.1.0", - "wrap-ansi": "^9.0.0" + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "picocolors": "1.1.1", + "pretty-format": "^27.0.2" }, "engines": { - "node": ">=20" + "node": ">=18" } }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "6.2.2", + "node_modules/@testing-library/jest-dom": { + "version": "6.9.1", "dev": true, "license": "MIT", - "engines": { - "node": ">=12" + "dependencies": { + "@adobe/css-tools": "^4.4.0", + "aria-query": "^5.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "picocolors": "^1.1.1", + "redent": "^3.0.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/cliui/node_modules/ansi-styles": { - "version": "6.2.3", - "dev": true, - "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" } }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "10.6.0", + "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { + "version": "0.6.3", "dev": true, "license": "MIT" }, - "node_modules/cliui/node_modules/string-width": { - "version": "7.2.0", + "node_modules/@testing-library/react": { + "version": "16.3.2", "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" + "@babel/runtime": "^7.12.5" }, "engines": { "node": ">=18" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@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 + } } }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "7.2.0", + "node_modules/@testing-library/user-event": { + "version": "13.5.0", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^6.2.2" + "@babel/runtime": "^7.12.5" }, "engines": { - "node": ">=12" + "node": ">=10", + "npm": ">=6" }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" } }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "9.0.2", + "node_modules/@tokenizer/inflate": { + "version": "0.4.1", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" + "debug": "^4.4.3", + "token-types": "^6.1.1" }, "engines": { "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/Borewit" } }, - "node_modules/clsx": { - "version": "2.1.1", + "node_modules/@tokenizer/token": { + "version": "0.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.12", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@turbo/darwin-64": { + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/@turbo/darwin-64/-/darwin-64-2.10.2.tgz", + "integrity": "sha512-wBM3ObqOWnKUDmg7QfUFDkDHPFUAJmrYlYqmEM8jMPAPA/I6wRJIbWimeQUqhOiQ8xPKhzyWM+xaiUP0wz8FEQ==", + "cpu": [ + "x64" + ], + "dev": true, "license": "MIT", - "engines": { - "node": ">=6" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/co": { - "version": "4.6.0", + "node_modules/@turbo/darwin-arm64": { + "version": "2.10.2", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/codemirror": { - "version": "6.0.2", + "node_modules/@turbo/linux-64": { + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/@turbo/linux-64/-/linux-64-2.10.2.tgz", + "integrity": "sha512-mMsf5IIhiKuceEXNstd25IbadjBXZ0amxzFOqliEzJX6HyeeHdBQPVSY583PWqYDyqM/FB8d5ZjkthfBSeuH3Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@turbo/linux-arm64": { + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/@turbo/linux-arm64/-/linux-arm64-2.10.2.tgz", + "integrity": "sha512-Wcng1i2kaKmXutmwxT9MUoYZvdaIekXAdlGr4+0TpgbhGLw7nDuEcRBFrxb5BbRoX1d1q8SpdRxLc45TvDZIdQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@turbo/windows-64": { + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/@turbo/windows-64/-/windows-64-2.10.2.tgz", + "integrity": "sha512-SsNhM7Ho7EpAdwtrJKBOic9Hso23vu6Dp0gAfLOvUFjPzurr/sGQlXZEvr6z89ne4RDOypTwz5CBDrixpMKtXw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@turbo/windows-arm64": { + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/@turbo/windows-arm64/-/windows-arm64-2.10.2.tgz", + "integrity": "sha512-Gf+S7ICAdimT/n02bOuVWKvhHnct/HYjZg3oBNIz5hZ9ZyWHbQim9J3P5Qip8WpX0ksxF7eaBVziJCuLnjhqDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.3", "license": "MIT", + "optional": true, "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/commands": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/search": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0" + "tslib": "^2.4.0" } }, - "node_modules/collect-v8-coverage": { - "version": "1.0.3", + "node_modules/@types/aria-query": { + "version": "5.0.4", "dev": true, "license": "MIT" }, - "node_modules/color-convert": { - "version": "2.0.1", + "node_modules/@types/body-parser": { + "version": "1.19.6", "dev": true, "license": "MIT", "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "@types/connect": "*", + "@types/node": "*" } }, - "node_modules/color-hash": { - "version": "2.0.2", + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } + }, + "node_modules/@types/chroma-js": { + "version": "3.1.2", + "dev": true, "license": "MIT" }, - "node_modules/color-name": { - "version": "1.1.4", + "node_modules/@types/color-hash": { + "version": "2.0.0", "dev": true, "license": "MIT" }, - "node_modules/commander": { - "version": "11.1.0", + "node_modules/@types/connect": { + "version": "3.4.38", + "dev": true, "license": "MIT", - "engines": { - "node": ">=16" + "dependencies": { + "@types/node": "*" } }, - "node_modules/complex.js": { - "version": "2.4.3", - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/rawify" - } + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" }, - "node_modules/concat-map": { - "version": "0.0.1", + "node_modules/@types/esrecurse": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz", + "integrity": "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==", "dev": true, "license": "MIT" }, - "node_modules/concurrently": { - "version": "10.0.3", + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/express": { + "version": "5.0.6", "dev": true, "license": "MIT", "dependencies": { - "chalk": "5.6.2", - "rxjs": "7.8.2", - "shell-quote": "1.8.4", - "supports-color": "10.2.2", - "tree-kill": "1.2.2", - "yargs": "18.0.0" - }, - "bin": { - "conc": "dist/bin/index.js", - "concurrently": "dist/bin/index.js" - }, - "engines": { - "node": ">=22" - }, - "funding": { - "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" + "@types/body-parser": "*", + "@types/express-serve-static-core": "^5.0.0", + "@types/serve-static": "^2" } }, - "node_modules/concurrently/node_modules/chalk": { - "version": "5.6.2", + "node_modules/@types/express-serve-static-core": { + "version": "5.1.1", "dev": true, "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" } }, - "node_modules/concurrently/node_modules/supports-color": { - "version": "10.2.2", + "node_modules/@types/http-cache-semantics": { + "version": "4.2.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } + "license": "MIT" }, - "node_modules/content-disposition": { - "version": "2.0.1", + "node_modules/@types/http-errors": { + "version": "2.0.5", "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } + "license": "MIT" }, - "node_modules/content-type": { - "version": "1.0.5", + "node_modules/@types/json-schema": { + "version": "7.0.15", + "license": "MIT" + }, + "node_modules/@types/lodash": { + "version": "4.17.24", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } + "license": "MIT" }, - "node_modules/convert-hrtime": { - "version": "5.0.0", + "node_modules/@types/node": { + "version": "26.1.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "undici-types": "~8.3.0" } }, - "node_modules/convert-source-map": { - "version": "1.9.0", + "node_modules/@types/parse-json": { + "version": "4.0.2", "license": "MIT", "peer": true }, - "node_modules/cookie": { - "version": "0.7.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } + "node_modules/@types/prop-types": { + "version": "15.7.15", + "license": "MIT" }, - "node_modules/cookie-signature": { - "version": "1.0.7", + "node_modules/@types/qs": { + "version": "6.15.1", "dev": true, "license": "MIT" }, - "node_modules/core-js": { - "version": "3.47.0", + "node_modules/@types/range-parser": { + "version": "1.2.7", "dev": true, - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } + "license": "MIT" }, - "node_modules/cosmiconfig": { - "version": "7.1.0", + "node_modules/@types/react": { + "version": "18.3.31", "license": "MIT", "peer": true, "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" + "@types/prop-types": "*", + "csstype": "^3.2.2" } }, - "node_modules/cosmiconfig/node_modules/yaml": { - "version": "1.10.3", - "license": "ISC", + "node_modules/@types/react-dom": { + "version": "18.3.7", + "license": "MIT", "peer": true, - "engines": { - "node": ">= 6" + "peerDependencies": { + "@types/react": "^18.0.0" } }, - "node_modules/create-require": { - "version": "1.1.1", - "dev": true, - "license": "MIT" + "node_modules/@types/react-transition-group": { + "version": "4.4.12", + "license": "MIT", + "peerDependencies": { + "@types/react": "*" + } }, - "node_modules/crelt": { - "version": "1.0.7", + "node_modules/@types/semver": { + "version": "7.5.8", + "dev": true, "license": "MIT" }, - "node_modules/cron-parser": { - "version": "4.9.0", + "node_modules/@types/send": { + "version": "1.2.1", "dev": true, "license": "MIT", "dependencies": { - "luxon": "^3.2.1" - }, - "engines": { - "node": ">=12.0.0" + "@types/node": "*" } }, - "node_modules/cross-env": { - "version": "7.0.3", + "node_modules/@types/serve-static": { + "version": "2.2.0", "dev": true, "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.1" - }, - "bin": { - "cross-env": "src/bin/cross-env.js", - "cross-env-shell": "src/bin/cross-env-shell.js" - }, - "engines": { - "node": ">=10.14", - "npm": ">=6", - "yarn": ">=1" + "@types/http-errors": "*", + "@types/node": "*" } }, - "node_modules/cross-spawn": { - "version": "7.0.6", + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "license": "MIT", + "optional": true + }, + "node_modules/@typescript-eslint/types": { + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.67.0.tgz", + "integrity": "sha512-sBtgslww8nsMYUjhdPBiSyUqSzT8uR6g93A2QXnQC8+cGdjz0CyaOdqHDRJb1AtORbZCNUJBBeFA/tNR2uQmww==", "dev": true, "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, "engines": { - "node": ">= 8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/css.escape": { - "version": "1.5.1", - "dev": true, - "license": "MIT" - }, - "node_modules/cssstyle": { - "version": "4.6.0", - "dev": true, + "node_modules/@uiw/codemirror-extensions-basic-setup": { + "version": "4.25.10", "license": "MIT", "dependencies": { - "@asamuzakjp/css-color": "^3.2.0", - "rrweb-cssom": "^0.8.0" + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/commands": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/lint": "^6.0.0", + "@codemirror/search": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0" }, - "engines": { - "node": ">=18" + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + }, + "peerDependencies": { + "@codemirror/autocomplete": ">=6.0.0", + "@codemirror/commands": ">=6.0.0", + "@codemirror/language": ">=6.0.0", + "@codemirror/lint": ">=6.0.0", + "@codemirror/search": ">=6.0.0", + "@codemirror/state": ">=6.0.0", + "@codemirror/view": ">=6.0.0" } }, - "node_modules/csstype": { - "version": "3.2.3", - "license": "MIT" - }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "devOptional": true, + "node_modules/@uiw/react-codemirror": { + "version": "4.25.10", "license": "MIT", - "engines": { - "node": ">= 12" + "dependencies": { + "@babel/runtime": "^7.18.6", + "@codemirror/commands": "^6.1.0", + "@codemirror/state": "^6.1.1", + "@codemirror/theme-one-dark": "^6.0.0", + "@uiw/codemirror-extensions-basic-setup": "4.25.10", + "codemirror": "^6.0.0" + }, + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + }, + "peerDependencies": { + "@babel/runtime": ">=7.11.0", + "@codemirror/state": ">=6.0.0", + "@codemirror/theme-one-dark": ">=6.0.0", + "@codemirror/view": ">=6.0.0", + "codemirror": ">=6.0.0", + "react": ">=17.0.0", + "react-dom": ">=17.0.0" } }, - "node_modules/data-urls": { - "version": "5.0.0", + "node_modules/@vitest/expect": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.11.tgz", + "integrity": "sha512-VX2x5vNJXET47KAFzwERI+KRMtTTCSWTfSMKsW7JsUsXV4psq++e3DvZpuTDOpHcxytiDs6p2nhVb2tVDiiUYw==", "dev": true, "license": "MIT", "dependencies": { - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^14.0.0" + "@standard-schema/spec": "^1.1.0", + "@types/chai": "^5.2.2", + "@vitest/spy": "4.1.11", + "@vitest/utils": "4.1.11", + "chai": "^6.2.2", + "tinyrainbow": "^3.1.0" }, - "engines": { - "node": ">=18" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/date-fns": { - "version": "4.4.0", + "node_modules/@vitest/mocker": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.11.tgz", + "integrity": "sha512-2XJVD55d1o5AZous5CCGKS74g/riOj9odEt2bQpCVZeblHyHdnMeFl4jl0XjU21stf4mbjUkew2eXQZt65g5CQ==", + "dev": true, "license": "MIT", + "dependencies": { + "@vitest/spy": "4.1.11", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.21" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/kossnocorp" + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } } }, - "node_modules/date-fns-tz": { - "version": "3.2.0", + "node_modules/@vitest/pretty-format": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.11.tgz", + "integrity": "sha512-yiZzPbGTS9Sr/JpFl8zHrcIkAofNbFV6k21vIgQN/cY/oxZeXhJv5sc/MBJ5jFKWmWs+oJHw0UXLZjmf931+Vw==", + "dev": true, "license": "MIT", - "peerDependencies": { - "date-fns": "^3.0.0 || ^4.0.0" + "dependencies": { + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/debug": { - "version": "4.4.3", + "node_modules/@vitest/runner": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.11.tgz", + "integrity": "sha512-LztvUgdwMNJMIkj3hQnnxiC2Xy1zNxq928W/xhjCLaNCzqTZOudjwbQf6v9IntZGPw132i2Lq2rgTRZHD3JHNw==", + "dev": true, "license": "MIT", "dependencies": { - "ms": "^2.1.3" + "@vitest/utils": "4.1.11", + "pathe": "^2.0.3" }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/decimal.js": { - "version": "10.6.0", - "license": "MIT" - }, - "node_modules/decompress-response": { - "version": "10.0.0", + "node_modules/@vitest/snapshot": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.11.tgz", + "integrity": "sha512-pN7ikn1ON7h8ee4gIAp4AzyK+zBtJPzVbqOgu5LCEh4VaJVbPQcgYQYJIMGQPXVeJJq1fnfazis7a5pFNPahog==", "dev": true, "license": "MIT", "dependencies": { - "mimic-response": "^4.0.0" - }, - "engines": { - "node": ">=20" + "@vitest/pretty-format": "4.1.11", + "@vitest/utils": "4.1.11", + "magic-string": "^0.30.21", + "pathe": "^2.0.3" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/vitest" } }, - "node_modules/dedent": { - "version": "1.7.2", + "node_modules/@vitest/spy": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.11.tgz", + "integrity": "sha512-apNa/prQy2qCeywhnixOHPRCgGNhvg7T4Dapfl1GahLp/R+uhBm5cPyFoNVyqsNd2h1nJxL6BqqdIjiABL60YA==", "dev": true, "license": "MIT", - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/deepmerge": { - "version": "4.3.1", + "node_modules/@vitest/utils": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.11.tgz", + "integrity": "sha512-zTCVGpyFsGWBhllOyKlTw/vnr6D9qxsfSDyfbyZmTyjHw5N/VuvzHpHoQjm2ZJzn4RJgx5w4r7V0er69CmLgPQ==", "dev": true, "license": "MIT", - "engines": { - "node": ">=0.10.0" + "dependencies": { + "@vitest/pretty-format": "4.1.11", + "convert-source-map": "^2.0.0", + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/depd": { + "node_modules/@vitest/utils/node_modules/convert-source-map": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@xhmikosr/archive-type": { + "version": "8.1.0", "dev": true, "license": "MIT", + "dependencies": { + "file-type": "^21.3.4" + }, "engines": { - "node": ">= 0.8" + "node": ">=20" } }, - "node_modules/dequal": { - "version": "2.0.3", + "node_modules/@xhmikosr/bin-check": { + "version": "8.2.2", "dev": true, "license": "MIT", + "dependencies": { + "execa": "^9.6.1", + "isexe": "^4.0.0" + }, "engines": { - "node": ">=6" + "node": ">=20" } }, - "node_modules/destroy": { - "version": "1.2.0", + "node_modules/@xhmikosr/bin-wrapper": { + "version": "14.4.0", "dev": true, "license": "MIT", + "dependencies": { + "@xhmikosr/bin-check": "^8.2.1", + "@xhmikosr/downloader": "^16.2.0", + "@xhmikosr/os-filter-obj": "^4.1.0", + "binary-version-check": "^6.1.0" + }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">=20" } }, - "node_modules/detect-libc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "node_modules/@xhmikosr/decompress": { + "version": "11.1.3", "dev": true, - "license": "Apache-2.0", + "license": "MIT", + "dependencies": { + "@xhmikosr/decompress-tar": "^9.0.1", + "@xhmikosr/decompress-tarbz2": "^9.0.1", + "@xhmikosr/decompress-targz": "^9.0.1", + "@xhmikosr/decompress-unzip": "^8.1.1", + "graceful-fs": "^4.2.11", + "strip-dirs": "^3.0.0" + }, "engines": { - "node": ">=8" + "node": ">=20" } }, - "node_modules/detect-newline": { - "version": "3.1.0", + "node_modules/@xhmikosr/decompress-tar": { + "version": "9.0.1", "dev": true, "license": "MIT", + "dependencies": { + "file-type": "^21.3.0", + "is-stream": "^4.0.1", + "tar-stream": "3.1.7" + }, "engines": { - "node": ">=8" + "node": ">=20" } }, - "node_modules/diff": { - "version": "4.0.4", + "node_modules/@xhmikosr/decompress-tarbz2": { + "version": "9.0.2", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", + "dependencies": { + "@xhmikosr/decompress-tar": "^9.0.1", + "file-type": "^21.3.4", + "is-stream": "^4.0.1", + "seek-bzip": "^2.0.0", + "unbzip2-stream": "^1.4.3" + }, "engines": { - "node": ">=0.3.1" + "node": ">=20" } }, - "node_modules/dom-accessibility-api": { - "version": "0.5.16", + "node_modules/@xhmikosr/decompress-targz": { + "version": "9.0.1", "dev": true, - "license": "MIT" - }, - "node_modules/dom-helpers": { - "version": "5.2.1", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "node_modules/dompurify": { - "version": "3.4.11", - "license": "(MPL-2.0 OR Apache-2.0)", - "optionalDependencies": { - "@types/trusted-types": "^2.0.7" + "@xhmikosr/decompress-tar": "^9.0.0", + "file-type": "^21.3.0", + "is-stream": "^4.0.1" + }, + "engines": { + "node": ">=20" } }, - "node_modules/dunder-proto": { - "version": "1.0.1", + "node_modules/@xhmikosr/decompress-unzip": { + "version": "8.2.1", + "dev": true, "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" + "file-type": "^21.3.4", + "get-stream": "^9.0.1", + "yauzl": "^3.4.0" }, "engines": { - "node": ">= 0.4" + "node": ">=20" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", + "node_modules/@xhmikosr/downloader": { + "version": "16.2.0", "dev": true, - "license": "MIT" - }, - "node_modules/echarts": { - "version": "5.5.0", - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "tslib": "2.3.0", - "zrender": "5.5.0" + "@xhmikosr/archive-type": "^8.0.1", + "@xhmikosr/decompress": "^11.1.3", + "content-disposition": "^2.0.1", + "ext-name": "^5.0.0", + "file-type": "^21.3.4", + "filenamify": "^7.0.1", + "got": "^14.6.6" + }, + "engines": { + "node": ">=20" } }, - "node_modules/echarts/node_modules/tslib": { - "version": "2.3.0", - "license": "0BSD" - }, - "node_modules/ee-first": { - "version": "1.1.1", - "dev": true, - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.5.384", - "dev": true, - "license": "ISC" - }, - "node_modules/emittery": { - "version": "0.13.1", + "node_modules/@xhmikosr/os-filter-obj": { + "version": "4.1.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=12" + "dependencies": { + "system-architecture": "^1.0.0" }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" + "engines": { + "node": ">=20" } }, - "node_modules/emoji-regex": { - "version": "9.2.2", + "node_modules/accepts": { + "version": "1.3.8", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } }, - "node_modules/encodeurl": { - "version": "2.0.0", + "node_modules/acorn": { + "version": "8.17.0", "dev": true, "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, "engines": { - "node": ">= 0.8" + "node": ">=0.4.0" } }, - "node_modules/encoding": { - "version": "0.1.13", + "node_modules/acorn-walk": { + "version": "8.3.5", "dev": true, "license": "MIT", "dependencies": { - "iconv-lite": "^0.6.2" + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" } }, - "node_modules/entities": { - "version": "6.0.1", + "node_modules/adm-zip": { + "version": "0.5.10", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "node": ">=6.0" } }, - "node_modules/error-ex": { - "version": "1.3.4", + "node_modules/agent-base": { + "version": "7.1.4", + "dev": true, "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" + "engines": { + "node": ">= 14" } }, - "node_modules/error-stack-parser": { - "version": "2.1.4", - "dev": true, + "node_modules/ajv-formats": { + "version": "2.1.1", "license": "MIT", "dependencies": { - "stackframe": "^1.3.4" + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } } }, - "node_modules/es-define-property": { - "version": "1.0.1", + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.20.0", "license": "MIT", - "engines": { - "node": ">= 0.4" + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/es-errors": { - "version": "1.3.0", + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/ansi_up": { + "version": "6.0.6", "license": "MIT", "engines": { - "node": ">= 0.4" + "node": "*" } }, - "node_modules/es-object-atoms": { - "version": "1.1.2", + "node_modules/ansi-colors": { + "version": "4.1.3", + "dev": true, "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, "engines": { - "node": ">= 0.4" + "node": ">=6" } }, - "node_modules/escalade": { - "version": "3.2.0", + "node_modules/ansi-regex": { + "version": "5.0.1", "dev": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/escape-html": { - "version": "1.0.3", + "node_modules/arg": { + "version": "4.1.3", "dev": true, "license": "MIT" }, - "node_modules/escape-latex": { - "version": "1.2.0", + "node_modules/aria-query": { + "version": "5.3.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "dev": true, "license": "MIT" }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, "license": "MIT", - "peer": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "node_modules/eslint-scope": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz", - "integrity": "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==", - "dev": true, - "license": "BSD-2-Clause", + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "license": "MIT", + "peer": true, "dependencies": { - "@types/esrecurse": "^4.3.1", - "@types/estree": "^1.0.8", - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" }, "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=10", + "npm": ">=6" } }, - "node_modules/eslint-visitor-keys": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", - "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/bare-events": { + "version": "2.9.1", "dev": true, "license": "Apache-2.0", - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" + "peerDependencies": { + "bare-abort-controller": "*" }, - "funding": { - "url": "https://opencollective.com/eslint" + "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": true + } } }, - "node_modules/esprima": { - "version": "4.0.1", + "node_modules/base64-js": { + "version": "1.5.1", "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "node_modules/bidi-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz", + "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" + "require-from-string": "^2.0.2" } }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", + "node_modules/bignumber.js": { + "version": "9.3.1", + "license": "MIT", "engines": { - "node": ">=4.0" + "node": "*" } }, - "node_modules/etag": { - "version": "1.8.1", + "node_modules/binary-version": { + "version": "7.1.0", "dev": true, "license": "MIT", + "dependencies": { + "execa": "^8.0.1", + "find-versions": "^6.0.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/events-universal": { - "version": "1.0.1", + "node_modules/binary-version-check": { + "version": "6.1.0", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "bare-events": "^2.7.0" + "binary-version": "^7.1.0", + "semver": "^7.6.0", + "semver-truncate": "^3.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/execa": { - "version": "9.6.1", + "node_modules/binary-version/node_modules/execa": { + "version": "8.0.1", "dev": true, "license": "MIT", "dependencies": { - "@sindresorhus/merge-streams": "^4.0.0", - "cross-spawn": "^7.0.6", - "figures": "^6.1.0", - "get-stream": "^9.0.0", - "human-signals": "^8.0.1", - "is-plain-obj": "^4.1.0", - "is-stream": "^4.0.1", - "npm-run-path": "^6.0.0", - "pretty-ms": "^9.2.0", + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", "signal-exit": "^4.1.0", - "strip-final-newline": "^4.0.0", - "yoctocolors": "^2.1.1" + "strip-final-newline": "^3.0.0" }, "engines": { - "node": "^18.19.0 || >=20.5.0" + "node": ">=16.17" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/exit-x": { - "version": "0.2.2", + "node_modules/binary-version/node_modules/get-stream": { + "version": "8.0.1", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expand-tilde": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "homedir-polyfill": "^1.0.1" + "node": ">=16" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/expect": { - "version": "30.4.1", + "node_modules/binary-version/node_modules/human-signals": { + "version": "5.0.0", "dev": true, - "license": "MIT", - "dependencies": { - "@jest/expect-utils": "30.4.1", - "@jest/get-type": "30.1.0", - "jest-matcher-utils": "30.4.1", - "jest-message-util": "30.4.1", - "jest-mock": "30.4.1", - "jest-util": "30.4.1" - }, + "license": "Apache-2.0", "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">=16.17.0" } }, - "node_modules/express": { - "version": "4.22.2", - "dev": true, - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "~1.20.5", - "content-disposition": "~0.5.4", - "content-type": "~1.0.4", - "cookie": "~0.7.1", - "cookie-signature": "~1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.3.1", - "fresh": "~0.5.2", - "http-errors": "~2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "~2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "~0.1.12", - "proxy-addr": "~2.0.7", - "qs": "~6.15.1", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "~0.19.0", - "serve-static": "~1.16.2", - "setprototypeof": "1.2.0", - "statuses": "~2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, + "node_modules/binary-version/node_modules/is-stream": { + "version": "3.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.10.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/express/node_modules/content-disposition": { - "version": "0.5.4", + "node_modules/binary-version/node_modules/npm-run-path": { + "version": "5.3.0", "dev": true, "license": "MIT", "dependencies": { - "safe-buffer": "5.2.1" + "path-key": "^4.0.0" }, "engines": { - "node": ">= 0.6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", + "node_modules/binary-version/node_modules/path-key": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", + "node_modules/binary-version/node_modules/strip-final-newline": { + "version": "3.0.0", "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bind-event-listener": { + "version": "3.0.0", "license": "MIT" }, - "node_modules/ext-list": { - "version": "2.2.2", + "node_modules/body-parser": { + "version": "1.20.5", "dev": true, "license": "MIT", "dependencies": { - "mime-db": "^1.28.0" + "bytes": "~3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.15.1", + "raw-body": "~2.5.3", + "type-is": "~1.6.18", + "unpipe": "~1.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/ext-name": { - "version": "5.0.0", + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", "dev": true, "license": "MIT", "dependencies": { - "ext-list": "^2.0.0", - "sort-keys-length": "^1.0.0" + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "license": "MIT" - }, - "node_modules/fast-equals": { - "version": "4.0.3", - "license": "MIT" - }, - "node_modules/fast-fifo": { - "version": "1.3.2", + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", "dev": true, "license": "MIT" }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", + "node_modules/brace-expansion": { + "version": "2.1.1", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } }, - "node_modules/fast-uri": { - "version": "3.1.3", + "node_modules/buffer": { + "version": "5.7.1", + "dev": true, "funding": [ { "type": "github", - "url": "https://github.com/sponsors/fastify" + "url": "https://github.com/sponsors/feross" }, { - "type": "opencollective", - "url": "https://opencollective.com/fastify" + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" } ], - "license": "BSD-3-Clause" - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "bser": "2.1.1" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "node_modules/fdir": { - "version": "6.5.0", + "node_modules/byte-counter": { + "version": "0.1.0", "dev": true, "license": "MIT", "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" + "node": ">=20" }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "devOptional": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], + "node_modules/bytes": { + "version": "3.1.2", + "dev": true, "license": "MIT", - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, "engines": { - "node": "^12.20 || >= 14.13" + "node": ">= 0.8" } }, - "node_modules/figures": { - "version": "6.1.0", + "node_modules/cacheable-lookup": { + "version": "7.0.0", "dev": true, "license": "MIT", - "dependencies": { - "is-unicode-supported": "^2.0.0" - }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=14.16" } }, - "node_modules/file-type": { - "version": "21.3.4", + "node_modules/cacheable-request": { + "version": "13.0.19", "dev": true, "license": "MIT", "dependencies": { - "@tokenizer/inflate": "^0.4.1", - "strtok3": "^10.3.4", - "token-types": "^6.1.1", - "uint8array-extras": "^1.4.0" + "@types/http-cache-semantics": "^4.2.0", + "get-stream": "^9.0.1", + "http-cache-semantics": "^4.2.0", + "keyv": "^5.6.0", + "mimic-response": "^4.0.0", + "normalize-url": "^8.1.1", + "responselike": "^4.0.2" }, "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sindresorhus/file-type?sponsor=1" + "node": ">=18" } }, - "node_modules/filename-reserved-regex": { - "version": "4.0.0", + "node_modules/cacheable-request/node_modules/keyv": { + "version": "5.6.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=20" + "dependencies": { + "@keyv/serialize": "^1.1.1" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">= 0.4" } }, - "node_modules/filenamify": { - "version": "7.0.2", - "dev": true, + "node_modules/call-bound": { + "version": "1.0.4", "license": "MIT", "dependencies": { - "filename-reserved-regex": "^4.0.0" + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" }, "engines": { - "node": ">=20" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/finalhandler": { - "version": "1.3.2", + "node_modules/callsites": { + "version": "3.1.0", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chai": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", + "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", "dev": true, "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "~2.4.1", - "parseurl": "~1.3.3", - "statuses": "~2.0.2", - "unpipe": "~1.0.0" + "engines": { + "node": ">=18" + } + }, + "node_modules/chroma-js": { + "version": "3.2.0", + "license": "(BSD-3-Clause AND Apache-2.0)" + }, + "node_modules/cliui": { + "version": "9.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^7.2.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">=20" } }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", + "node_modules/cliui/node_modules/ansi-regex": { + "version": "6.2.2", "dev": true, "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/find-file-up": { - "version": "2.0.1", + "node_modules/cliui/node_modules/ansi-styles": { + "version": "6.2.3", "dev": true, "license": "MIT", - "dependencies": { - "resolve-dir": "^1.0.1" - }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/find-pkg": { - "version": "2.0.0", + "node_modules/cliui/node_modules/emoji-regex": { + "version": "10.6.0", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "7.2.0", "dev": true, "license": "MIT", "dependencies": { - "find-file-up": "^2.0.1" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/find-root": { - "version": "1.1.0", - "license": "MIT", - "peer": true - }, - "node_modules/find-versions": { - "version": "6.0.0", + "node_modules/cliui/node_modules/strip-ansi": { + "version": "7.2.0", "dev": true, "license": "MIT", "dependencies": { - "semver-regex": "^4.0.5", - "super-regex": "^1.0.0" + "ansi-regex": "^6.2.2" }, "engines": { - "node": ">=18" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/foreground-child": { - "version": "3.3.1", + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "9.0.2", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=14" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/form-data-encoder": { - "version": "4.1.0", - "dev": true, + "node_modules/clsx": { + "version": "2.1.1", "license": "MIT", "engines": { - "node": ">= 18" + "node": ">=6" } }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "devOptional": true, + "node_modules/codemirror": { + "version": "6.0.2", "license": "MIT", "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/commands": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/lint": "^6.0.0", + "@codemirror/search": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0" } }, - "node_modules/forwarded": { - "version": "0.2.0", - "dev": true, + "node_modules/color-hash": { + "version": "2.0.2", + "license": "MIT" + }, + "node_modules/commander": { + "version": "11.1.0", "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=16" } }, - "node_modules/fraction.js": { - "version": "4.3.7", + "node_modules/complex.js": { + "version": "2.4.3", "license": "MIT", "engines": { "node": "*" }, "funding": { - "type": "patreon", + "type": "github", "url": "https://github.com/sponsors/rawify" } }, - "node_modules/fresh": { - "version": "0.5.2", + "node_modules/concurrently": { + "version": "10.0.3", "dev": true, "license": "MIT", + "dependencies": { + "chalk": "5.6.2", + "rxjs": "7.8.2", + "shell-quote": "1.8.4", + "supports-color": "10.2.2", + "tree-kill": "1.2.2", + "yargs": "18.0.0" + }, + "bin": { + "conc": "dist/bin/index.js", + "concurrently": "dist/bin/index.js" + }, "engines": { - "node": ">= 0.6" + "node": ">=22" + }, + "funding": { + "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.3", + "node_modules/concurrently/node_modules/chalk": { + "version": "5.6.2", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "license": "MIT", + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/function-timeout": { - "version": "1.0.2", + "node_modules/concurrently/node_modules/supports-color": { + "version": "10.2.2", "dev": true, "license": "MIT", "engines": { "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", + "node_modules/content-disposition": { + "version": "2.0.1", "dev": true, "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/get-caller-file": { - "version": "2.0.5", + "node_modules/content-type": { + "version": "1.0.5", "dev": true, - "license": "ISC", + "license": "MIT", "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">= 0.6" } }, - "node_modules/get-east-asian-width": { - "version": "1.6.0", + "node_modules/convert-hrtime": { + "version": "5.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-intrinsic": { - "version": "1.3.0", + "node_modules/convert-source-map": { + "version": "1.9.0", + "license": "MIT", + "peer": true + }, + "node_modules/cookie": { + "version": "0.7.2", + "dev": true, "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.6" } }, - "node_modules/get-package-type": { - "version": "0.1.0", + "node_modules/cookie-signature": { + "version": "1.0.7", + "dev": true, + "license": "MIT" + }, + "node_modules/core-js": { + "version": "3.47.0", "dev": true, + "hasInstallScript": true, "license": "MIT", - "engines": { - "node": ">=8.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "node_modules/get-proto": { - "version": "1.0.1", + "node_modules/cosmiconfig": { + "version": "7.1.0", "license": "MIT", + "peer": true, "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" + } + }, + "node_modules/cosmiconfig/node_modules/yaml": { + "version": "1.10.3", + "license": "ISC", + "peer": true, + "engines": { + "node": ">= 6" } }, - "node_modules/get-stream": { - "version": "9.0.1", + "node_modules/create-require": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/crelt": { + "version": "1.0.7", + "license": "MIT" + }, + "node_modules/cron-parser": { + "version": "4.9.0", "dev": true, "license": "MIT", "dependencies": { - "@sec-ant/readable-stream": "^0.4.1", - "is-stream": "^4.0.1" + "luxon": "^3.2.1" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12.0.0" } }, - "node_modules/glob": { - "version": "10.5.0", + "node_modules/cross-env": { + "version": "7.0.3", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" + "cross-spawn": "^7.0.1" }, "bin": { - "glob": "dist/esm/bin.mjs" + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" } }, - "node_modules/global-modules": { - "version": "1.0.0", + "node_modules/cross-spawn": { + "version": "7.0.6", "dev": true, "license": "MIT", "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 8" } }, - "node_modules/global-prefix": { - "version": "1.0.2", + "node_modules/css-tree": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", + "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", "dev": true, "license": "MIT", "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" + "mdn-data": "2.27.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">=0.10.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" } }, - "node_modules/global-prefix/node_modules/isexe": { - "version": "2.0.0", + "node_modules/css.escape": { + "version": "1.5.1", "dev": true, - "license": "ISC" + "license": "MIT" }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", + "node_modules/cssstyle": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.7.tgz", + "integrity": "sha512-7D2EPVltRrsTkhpQmksIu+LxeWAIEk6wRDMJ1qljlv+CKHJM+cJLlfhWIzNA44eAsHXSNe3+vO6DW1yCYx8SuQ==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "isexe": "^2.0.0" + "@asamuzakjp/css-color": "^4.1.1", + "@csstools/css-syntax-patches-for-csstree": "^1.0.21", + "css-tree": "^3.1.0", + "lru-cache": "^11.2.4" }, - "bin": { - "which": "bin/which" + "engines": { + "node": ">=20" } }, - "node_modules/goober": { - "version": "2.1.19", - "license": "MIT", - "peerDependencies": { - "csstype": "^3.0.10" + "node_modules/cssstyle/node_modules/lru-cache": { + "version": "11.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", + "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" } }, - "node_modules/gopd": { - "version": "1.2.0", + "node_modules/csstype": { + "version": "3.2.3", + "license": "MIT" + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "devOptional": true, "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 12" } }, - "node_modules/got": { - "version": "14.6.6", + "node_modules/data-urls": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-6.0.1.tgz", + "integrity": "sha512-euIQENZg6x8mj3fO6o9+fOW8MimUI4PpD/fZBhJfeioZVy9TUpM4UY7KjQNVZFlqwJ0UdzRDzkycB997HEq1BQ==", "dev": true, "license": "MIT", "dependencies": { - "@sindresorhus/is": "^7.0.1", - "byte-counter": "^0.1.0", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^13.0.12", - "decompress-response": "^10.0.0", - "form-data-encoder": "^4.0.2", - "http2-wrapper": "^2.2.1", - "keyv": "^5.5.3", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^4.0.1", - "responselike": "^4.0.2", - "type-fest": "^4.26.1" + "whatwg-mimetype": "^5.0.0", + "whatwg-url": "^15.1.0" }, "engines": { "node": ">=20" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/got/node_modules/keyv": { - "version": "5.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@keyv/serialize": "^1.1.1" - } - }, - "node_modules/got/node_modules/type-fest": { - "version": "4.41.0", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "license": "ISC" - }, - "node_modules/has-flag": { - "version": "4.0.0", + "node_modules/data-urls/node_modules/whatwg-mimetype": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", + "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=20" } }, - "node_modules/has-symbols": { - "version": "1.1.0", + "node_modules/date-fns": { + "version": "4.4.0", "license": "MIT", - "engines": { - "node": ">= 0.4" - }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" } }, - "node_modules/hasown": { - "version": "2.0.4", + "node_modules/date-fns-tz": { + "version": "3.2.0", "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "license": "BSD-3-Clause", - "peer": true, - "dependencies": { - "react-is": "^16.7.0" + "peerDependencies": { + "date-fns": "^3.0.0 || ^4.0.0" } }, - "node_modules/hoist-non-react-statics/node_modules/react-is": { - "version": "16.13.1", - "license": "MIT", - "peer": true - }, - "node_modules/homedir-polyfill": { - "version": "1.0.3", - "dev": true, + "node_modules/debug": { + "version": "4.4.3", "license": "MIT", "dependencies": { - "parse-passwd": "^1.0.0" + "ms": "^2.1.3" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/html-encoding-sniffer": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-encoding": "^3.1.1" + "node": ">=6.0" }, - "engines": { - "node": ">=18" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/html-escaper": { - "version": "2.0.2", - "dev": true, + "node_modules/decimal.js": { + "version": "10.6.0", "license": "MIT" }, - "node_modules/http-cache-semantics": { - "version": "4.2.0", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/http-errors": { - "version": "2.0.1", + "node_modules/decompress-response": { + "version": "10.0.0", "dev": true, "license": "MIT", "dependencies": { - "depd": "~2.0.0", - "inherits": "~2.0.4", - "setprototypeof": "~1.2.0", - "statuses": "~2.0.2", - "toidentifier": "~1.0.1" + "mimic-response": "^4.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">=20" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", + "node_modules/depd": { + "version": "2.0.0", "dev": true, "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, "engines": { - "node": ">= 14" + "node": ">= 0.8" } }, - "node_modules/http2-wrapper": { - "version": "2.2.1", + "node_modules/dequal": { + "version": "2.0.3", "dev": true, "license": "MIT", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, "engines": { - "node": ">=10.19.0" + "node": ">=6" } }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", + "node_modules/destroy": { + "version": "1.2.0", "dev": true, "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, "engines": { - "node": ">= 14" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/human-signals": { - "version": "8.0.1", + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", "dev": true, "license": "Apache-2.0", "engines": { - "node": ">=18.18.0" + "node": ">=8" } }, - "node_modules/iconv-lite": { - "version": "0.6.3", + "node_modules/diff": { + "version": "4.0.4", "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, + "license": "BSD-3-Clause", "engines": { - "node": ">=0.10.0" + "node": ">=0.3.1" } }, - "node_modules/ieee754": { - "version": "1.2.1", + "node_modules/dom-accessibility-api": { + "version": "0.5.16", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" + "license": "MIT" }, - "node_modules/immer": { - "version": "10.2.0", + "node_modules/dom-helpers": { + "version": "5.2.1", "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" } }, - "node_modules/import-fresh": { - "version": "3.3.1", + "node_modules/dompurify": { + "version": "3.4.11", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", "license": "MIT", - "peer": true, "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.4" } }, - "node_modules/import-local": { - "version": "3.2.0", - "dev": true, - "license": "MIT", + "node_modules/echarts": { + "version": "5.5.0", + "license": "Apache-2.0", "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "tslib": "2.3.0", + "zrender": "5.5.0" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", + "node_modules/echarts/node_modules/tslib": { + "version": "2.3.0", + "license": "0BSD" + }, + "node_modules/ee-first": { + "version": "1.1.1", "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } + "license": "MIT" }, - "node_modules/indent-string": { - "version": "4.0.0", + "node_modules/encodeurl": { + "version": "2.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.8" } }, - "node_modules/inflight": { - "version": "1.0.6", + "node_modules/encoding": { + "version": "0.1.13", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "iconv-lite": "^0.6.2" } }, - "node_modules/inherits": { - "version": "2.0.4", - "dev": true, - "license": "ISC" - }, - "node_modules/ini": { - "version": "1.3.8", - "dev": true, - "license": "ISC" + "node_modules/error-ex": { + "version": "1.3.4", + "license": "MIT", + "peer": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } }, - "node_modules/inspect-with-kind": { - "version": "1.0.5", + "node_modules/error-stack-parser": { + "version": "2.1.4", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "kind-of": "^6.0.2" + "stackframe": "^1.3.4" } }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "dev": true, + "node_modules/es-define-property": { + "version": "1.0.1", "license": "MIT", "engines": { - "node": ">= 0.10" + "node": ">= 0.4" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "license": "MIT" - }, - "node_modules/is-core-module": { - "version": "2.16.2", + "node_modules/es-errors": { + "version": "1.3.0", "license": "MIT", - "dependencies": { - "hasown": "^2.0.3" - }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", + "node_modules/es-module-lexer": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.2.tgz", + "integrity": "sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==", "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.2", "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/is-generator-fn": { - "version": "2.1.0", + "node_modules/escalade": { + "version": "3.2.0", "dev": true, "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/is-plain-obj": { - "version": "4.1.0", + "node_modules/escape-html": { + "version": "1.0.3", "dev": true, + "license": "MIT" + }, + "node_modules/escape-latex": { + "version": "1.2.0", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", "license": "MIT", + "peer": true, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/is-stream": { - "version": "4.0.1", + "node_modules/eslint-scope": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz", + "integrity": "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", + "dependencies": { + "@types/esrecurse": "^4.3.1", + "@types/estree": "^1.0.8", + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, "engines": { - "node": ">=18" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/eslint" } }, - "node_modules/is-unicode-supported": { - "version": "2.1.0", + "node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "engines": { - "node": ">=18" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/eslint" } }, - "node_modules/is-windows": { - "version": "1.0.2", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=4.0" } }, - "node_modules/isexe": { - "version": "4.0.0", + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "license": "BlueOak-1.0.0", + "license": "BSD-2-Clause", "engines": { - "node": ">=20" + "node": ">=4.0" } }, - "node_modules/isomorphic-ws": { - "version": "5.0.0", + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, "license": "MIT", - "peerDependencies": { - "ws": "*" + "dependencies": { + "@types/estree": "^1.0.0" } }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", + "node_modules/etag": { + "version": "1.8.1", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "node_modules/istanbul-lib-instrument": { - "version": "6.0.3", + "node_modules/events-universal": { + "version": "1.0.1", "dev": true, - "license": "BSD-3-Clause", + "license": "Apache-2.0", "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" + "bare-events": "^2.7.0" } }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", + "node_modules/execa": { + "version": "9.6.1", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" + "@sindresorhus/merge-streams": "^4.0.0", + "cross-spawn": "^7.0.6", + "figures": "^6.1.0", + "get-stream": "^9.0.0", + "human-signals": "^8.0.1", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^6.0.0", + "pretty-ms": "^9.2.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^4.0.0", + "yoctocolors": "^2.1.1" }, "engines": { - "node": ">=10" + "node": "^18.19.0 || >=20.5.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/istanbul-lib-source-maps": { - "version": "5.0.6", + "node_modules/expand-tilde": { + "version": "2.0.2", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.23", - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0" + "homedir-polyfill": "^1.0.1" }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/istanbul-reports": { - "version": "3.2.0", + "node_modules/expect-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.4.0.tgz", + "integrity": "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==", "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, + "license": "Apache-2.0", "engines": { - "node": ">=8" + "node": ">=12.0.0" } }, - "node_modules/jackspeak": { - "version": "3.4.3", + "node_modules/express": { + "version": "4.22.2", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", "dependencies": { - "@isaacs/cliui": "^8.0.2" + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "~1.20.5", + "content-disposition": "~0.5.4", + "content-type": "~1.0.4", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "~0.1.12", + "proxy-addr": "~2.0.7", + "qs": "~6.15.1", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "~0.19.0", + "serve-static": "~1.16.2", + "setprototypeof": "1.2.0", + "statuses": "~2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": ">= 0.10.0" }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/javascript-natural-sort": { - "version": "0.7.1", - "license": "MIT" - }, - "node_modules/jest": { - "version": "30.4.2", + "node_modules/express/node_modules/content-disposition": { + "version": "0.5.4", "dev": true, "license": "MIT", "dependencies": { - "@jest/core": "30.4.2", - "@jest/types": "30.4.1", - "import-local": "^3.2.0", - "jest-cli": "30.4.2" - }, - "bin": { - "jest": "bin/jest.js" + "safe-buffer": "5.2.1" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "node": ">= 0.6" } }, - "node_modules/jest-changed-files": { - "version": "30.4.1", + "node_modules/express/node_modules/debug": { + "version": "2.6.9", "dev": true, "license": "MIT", "dependencies": { - "execa": "^5.1.1", - "jest-util": "30.4.1", - "p-limit": "^3.1.0" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "ms": "2.0.0" } }, - "node_modules/jest-changed-files/node_modules/execa": { - "version": "5.1.1", + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ext-list": { + "version": "2.2.2", "dev": true, "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" + "mime-db": "^1.28.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "node": ">=0.10.0" } }, - "node_modules/jest-changed-files/node_modules/get-stream": { - "version": "6.0.1", + "node_modules/ext-name": { + "version": "5.0.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=10" + "dependencies": { + "ext-list": "^2.0.0", + "sort-keys-length": "^1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-changed-files/node_modules/human-signals": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", "engines": { - "node": ">=10.17.0" + "node": ">=4" } }, - "node_modules/jest-changed-files/node_modules/is-stream": { - "version": "2.0.1", + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "license": "MIT" + }, + "node_modules/fast-equals": { + "version": "4.0.3", + "license": "MIT" + }, + "node_modules/fast-fifo": { + "version": "1.3.2", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, - "node_modules/jest-changed-files/node_modules/mimic-fn": { - "version": "2.1.0", + "node_modules/fast-uri": { + "version": "3.1.3", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fdir": { + "version": "6.5.0", "dev": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "node_modules/jest-changed-files/node_modules/npm-run-path": { - "version": "4.0.1", - "dev": true, + "node_modules/fetch-blob": { + "version": "3.2.0", + "devOptional": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], "license": "MIT", "dependencies": { - "path-key": "^3.0.0" + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" }, "engines": { - "node": ">=8" + "node": "^12.20 || >= 14.13" } }, - "node_modules/jest-changed-files/node_modules/onetime": { - "version": "5.1.2", + "node_modules/figures": { + "version": "6.1.0", "dev": true, "license": "MIT", "dependencies": { - "mimic-fn": "^2.1.0" + "is-unicode-supported": "^2.0.0" }, "engines": { - "node": ">=6" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-changed-files/node_modules/signal-exit": { - "version": "3.0.7", - "dev": true, - "license": "ISC" - }, - "node_modules/jest-changed-files/node_modules/strip-final-newline": { - "version": "2.0.0", + "node_modules/file-type": { + "version": "21.3.4", "dev": true, "license": "MIT", + "dependencies": { + "@tokenizer/inflate": "^0.4.1", + "strtok3": "^10.3.4", + "token-types": "^6.1.1", + "uint8array-extras": "^1.4.0" + }, "engines": { - "node": ">=6" + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" } }, - "node_modules/jest-circus": { - "version": "30.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "30.4.1", - "@jest/expect": "30.4.1", - "@jest/test-result": "30.4.1", - "@jest/types": "30.4.1", - "@types/node": "*", - "chalk": "^4.1.2", - "co": "^4.6.0", - "dedent": "^1.6.0", - "is-generator-fn": "^2.1.0", - "jest-each": "30.4.1", - "jest-matcher-utils": "30.4.1", - "jest-message-util": "30.4.1", - "jest-runtime": "30.4.2", - "jest-snapshot": "30.4.1", - "jest-util": "30.4.1", - "p-limit": "^3.1.0", - "pretty-format": "30.4.1", - "pure-rand": "^7.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.6" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-circus/node_modules/ansi-styles": { - "version": "5.2.0", + "node_modules/filename-reserved-regex": { + "version": "4.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=10" + "node": ">=20" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-circus/node_modules/pretty-format": { - "version": "30.4.1", + "node_modules/filenamify": { + "version": "7.0.2", "dev": true, "license": "MIT", "dependencies": { - "@jest/schemas": "30.4.1", - "ansi-styles": "^5.2.0", - "react-is-18": "npm:react-is@^18.3.1", - "react-is-19": "npm:react-is@^19.2.5" + "filename-reserved-regex": "^4.0.0" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-cli": { - "version": "30.4.2", + "node_modules/finalhandler": { + "version": "1.3.2", "dev": true, "license": "MIT", "dependencies": { - "@jest/core": "30.4.2", - "@jest/test-result": "30.4.1", - "@jest/types": "30.4.1", - "chalk": "^4.1.2", - "exit-x": "^0.2.2", - "import-local": "^3.2.0", - "jest-config": "30.4.2", - "jest-util": "30.4.1", - "jest-validate": "30.4.1", - "yargs": "^17.7.2" - }, - "bin": { - "jest": "bin/jest.js" + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "statuses": "~2.0.2", + "unpipe": "~1.0.0" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "node": ">= 0.8" } }, - "node_modules/jest-cli/node_modules/cliui": { - "version": "8.0.1", + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" + "ms": "2.0.0" } }, - "node_modules/jest-cli/node_modules/emoji-regex": { - "version": "8.0.0", + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", "dev": true, "license": "MIT" }, - "node_modules/jest-cli/node_modules/string-width": { - "version": "4.2.3", + "node_modules/find-file-up": { + "version": "2.0.1", "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "resolve-dir": "^1.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/jest-cli/node_modules/wrap-ansi": { - "version": "7.0.0", + "node_modules/find-pkg": { + "version": "2.0.0", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "find-file-up": "^2.0.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=8" } }, - "node_modules/jest-cli/node_modules/yargs": { - "version": "17.7.3", + "node_modules/find-root": { + "version": "1.1.0", + "license": "MIT", + "peer": true + }, + "node_modules/find-versions": { + "version": "6.0.0", "dev": true, "license": "MIT", "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" + "semver-regex": "^4.0.5", + "super-regex": "^1.0.0" }, "engines": { - "node": ">=12" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-cli/node_modules/yargs-parser": { - "version": "21.1.1", + "node_modules/form-data-encoder": { + "version": "4.1.0", "dev": true, - "license": "ISC", + "license": "MIT", "engines": { - "node": ">=12" + "node": ">= 18" } }, - "node_modules/jest-config": { - "version": "30.4.2", - "dev": true, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "devOptional": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.27.4", - "@jest/get-type": "30.1.0", - "@jest/pattern": "30.4.0", - "@jest/test-sequencer": "30.4.1", - "@jest/types": "30.4.1", - "babel-jest": "30.4.1", - "chalk": "^4.1.2", - "ci-info": "^4.2.0", - "deepmerge": "^4.3.1", - "glob": "^10.5.0", - "graceful-fs": "^4.2.11", - "jest-circus": "30.4.2", - "jest-docblock": "30.4.0", - "jest-environment-node": "30.4.1", - "jest-regex-util": "30.4.0", - "jest-resolve": "30.4.1", - "jest-runner": "30.4.2", - "jest-util": "30.4.1", - "jest-validate": "30.4.1", - "parse-json": "^5.2.0", - "pretty-format": "30.4.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "esbuild-register": ">=3.4.0", - "ts-node": ">=9.0.0" + "fetch-blob": "^3.1.2" }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "esbuild-register": { - "optional": true - }, - "ts-node": { - "optional": true - } + "engines": { + "node": ">=12.20.0" } }, - "node_modules/jest-config/node_modules/ansi-styles": { - "version": "5.2.0", + "node_modules/forwarded": { + "version": "0.2.0", "dev": true, "license": "MIT", "engines": { - "node": ">=10" + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "license": "MIT", + "engines": { + "node": "*" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "patreon", + "url": "https://github.com/sponsors/rawify" } }, - "node_modules/jest-config/node_modules/pretty-format": { - "version": "30.4.1", + "node_modules/fresh": { + "version": "0.5.2", "dev": true, "license": "MIT", - "dependencies": { - "@jest/schemas": "30.4.1", - "ansi-styles": "^5.2.0", - "react-is-18": "npm:react-is@^18.3.1", - "react-is-19": "npm:react-is@^19.2.5" - }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">= 0.6" } }, - "node_modules/jest-diff": { - "version": "30.4.1", + "node_modules/fsevents": { + "version": "2.3.3", "dev": true, "license": "MIT", - "dependencies": { - "@jest/diff-sequences": "30.4.0", - "@jest/get-type": "30.1.0", - "chalk": "^4.1.2", - "pretty-format": "30.4.1" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "5.2.0", + "node_modules/function-bind": { + "version": "1.1.2", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function-timeout": { + "version": "1.0.2", "dev": true, "license": "MIT", "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/jest-diff/node_modules/pretty-format": { - "version": "30.4.1", + "node_modules/get-east-asian-width": { + "version": "1.6.0", "dev": true, "license": "MIT", - "dependencies": { - "@jest/schemas": "30.4.1", - "ansi-styles": "^5.2.0", - "react-is-18": "npm:react-is@^18.3.1", - "react-is-19": "npm:react-is@^19.2.5" - }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-docblock": { - "version": "30.4.0", - "dev": true, + "node_modules/get-intrinsic": { + "version": "1.3.0", "license": "MIT", "dependencies": { - "detect-newline": "^3.1.0" + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-each": { - "version": "30.4.1", - "dev": true, + "node_modules/get-proto": { + "version": "1.0.1", "license": "MIT", "dependencies": { - "@jest/get-type": "30.1.0", - "@jest/types": "30.4.1", - "chalk": "^4.1.2", - "jest-util": "30.4.1", - "pretty-format": "30.4.1" + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">= 0.4" } }, - "node_modules/jest-each/node_modules/ansi-styles": { - "version": "5.2.0", + "node_modules/get-stream": { + "version": "9.0.1", "dev": true, "license": "MIT", + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-each/node_modules/pretty-format": { - "version": "30.4.1", + "node_modules/global-modules": { + "version": "1.0.0", "dev": true, "license": "MIT", "dependencies": { - "@jest/schemas": "30.4.1", - "ansi-styles": "^5.2.0", - "react-is-18": "npm:react-is@^18.3.1", - "react-is-19": "npm:react-is@^19.2.5" + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">=0.10.0" } }, - "node_modules/jest-environment-jsdom": { - "version": "30.4.1", + "node_modules/global-prefix": { + "version": "1.0.2", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.4.1", - "@jest/environment-jsdom-abstract": "30.4.1", - "jsdom": "^26.1.0" + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - }, - "peerDependencies": { - "canvas": "^3.0.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } + "node": ">=0.10.0" } }, - "node_modules/jest-environment-node": { - "version": "30.4.1", + "node_modules/global-prefix/node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@jest/environment": "30.4.1", - "@jest/fake-timers": "30.4.1", - "@jest/types": "30.4.1", - "@types/node": "*", - "jest-mock": "30.4.1", - "jest-util": "30.4.1", - "jest-validate": "30.4.1" + "isexe": "^2.0.0" }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/goober": { + "version": "2.1.19", + "license": "MIT", + "peerDependencies": { + "csstype": "^3.0.10" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "license": "MIT", "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-haste-map": { - "version": "30.4.1", + "node_modules/got": { + "version": "14.6.6", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.4.1", - "@types/node": "*", - "anymatch": "^3.1.3", - "fb-watchman": "^2.0.2", - "graceful-fs": "^4.2.11", - "jest-regex-util": "30.4.0", - "jest-util": "30.4.1", - "jest-worker": "30.4.1", - "picomatch": "^4.0.3", - "walker": "^1.0.8" + "@sindresorhus/is": "^7.0.1", + "byte-counter": "^0.1.0", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^13.0.12", + "decompress-response": "^10.0.0", + "form-data-encoder": "^4.0.2", + "http2-wrapper": "^2.2.1", + "keyv": "^5.5.3", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^4.0.1", + "responselike": "^4.0.2", + "type-fest": "^4.26.1" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">=20" }, - "optionalDependencies": { - "fsevents": "^2.3.3" + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" } }, - "node_modules/jest-leak-detector": { - "version": "30.4.1", + "node_modules/got/node_modules/keyv": { + "version": "5.6.0", "dev": true, "license": "MIT", "dependencies": { - "@jest/get-type": "30.1.0", - "pretty-format": "30.4.1" - }, + "@keyv/serialize": "^1.1.1" + } + }, + "node_modules/got/node_modules/type-fest": { + "version": "4.41.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-leak-detector/node_modules/ansi-styles": { - "version": "5.2.0", + "node_modules/graceful-fs": { + "version": "4.2.11", "dev": true, + "license": "ISC" + }, + "node_modules/has-symbols": { + "version": "1.1.0", "license": "MIT", "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-leak-detector/node_modules/pretty-format": { - "version": "30.4.1", - "dev": true, + "node_modules/hasown": { + "version": "2.0.4", "license": "MIT", "dependencies": { - "@jest/schemas": "30.4.1", - "ansi-styles": "^5.2.0", - "react-is-18": "npm:react-is@^18.3.1", - "react-is-19": "npm:react-is@^19.2.5" + "function-bind": "^1.1.2" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">= 0.4" } }, - "node_modules/jest-matcher-utils": { - "version": "30.4.1", - "dev": true, - "license": "MIT", + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "license": "BSD-3-Clause", + "peer": true, "dependencies": { - "@jest/get-type": "30.1.0", - "chalk": "^4.1.2", - "jest-diff": "30.4.1", - "pretty-format": "30.4.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "react-is": "^16.7.0" } }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } + "peer": true }, - "node_modules/jest-matcher-utils/node_modules/pretty-format": { - "version": "30.4.1", + "node_modules/homedir-polyfill": { + "version": "1.0.3", "dev": true, "license": "MIT", "dependencies": { - "@jest/schemas": "30.4.1", - "ansi-styles": "^5.2.0", - "react-is-18": "npm:react-is@^18.3.1", - "react-is-19": "npm:react-is@^19.2.5" + "parse-passwd": "^1.0.0" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">=0.10.0" } }, - "node_modules/jest-message-util": { - "version": "30.4.1", + "node_modules/html-encoding-sniffer": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-6.0.0.tgz", + "integrity": "sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@jest/types": "30.4.1", - "@types/stack-utils": "^2.0.3", - "chalk": "^4.1.2", - "graceful-fs": "^4.2.11", - "jest-util": "30.4.1", - "picomatch": "^4.0.3", - "pretty-format": "30.4.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.6" + "@exodus/bytes": "^1.6.0" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, - "node_modules/jest-message-util/node_modules/ansi-styles": { - "version": "5.2.0", + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/http-errors": { + "version": "2.0.1", "dev": true, "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, "engines": { - "node": ">=10" + "node": ">= 0.8" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/jest-message-util/node_modules/pretty-format": { - "version": "30.4.1", + "node_modules/http-proxy-agent": { + "version": "7.0.2", "dev": true, "license": "MIT", "dependencies": { - "@jest/schemas": "30.4.1", - "ansi-styles": "^5.2.0", - "react-is-18": "npm:react-is@^18.3.1", - "react-is-19": "npm:react-is@^19.2.5" + "agent-base": "^7.1.0", + "debug": "^4.3.4" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">= 14" } }, - "node_modules/jest-mock": { - "version": "30.4.1", + "node_modules/http2-wrapper": { + "version": "2.2.1", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.4.1", - "@types/node": "*", - "jest-util": "30.4.1" + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">=10.19.0" } }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", + "node_modules/https-proxy-agent": { + "version": "7.0.6", "dev": true, "license": "MIT", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } + "engines": { + "node": ">= 14" } }, - "node_modules/jest-regex-util": { - "version": "30.4.0", + "node_modules/human-signals": { + "version": "8.0.1", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">=18.18.0" } }, - "node_modules/jest-resolve": { - "version": "30.4.1", + "node_modules/iconv-lite": { + "version": "0.6.3", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^4.1.2", - "graceful-fs": "^4.2.11", - "jest-haste-map": "30.4.1", - "jest-pnp-resolver": "^1.2.3", - "jest-util": "30.4.1", - "jest-validate": "30.4.1", - "slash": "^3.0.0", - "unrs-resolver": "^1.7.11" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">=0.10.0" } }, - "node_modules/jest-resolve-dependencies": { - "version": "30.4.2", + "node_modules/ieee754": { + "version": "1.2.1", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/immer": { + "version": "10.2.0", "license": "MIT", - "dependencies": { - "jest-regex-util": "30.4.0", - "jest-snapshot": "30.4.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" } }, - "node_modules/jest-runner": { - "version": "30.4.2", - "dev": true, + "node_modules/import-fresh": { + "version": "3.3.1", "license": "MIT", + "peer": true, "dependencies": { - "@jest/console": "30.4.1", - "@jest/environment": "30.4.1", - "@jest/test-result": "30.4.1", - "@jest/transform": "30.4.1", - "@jest/types": "30.4.1", - "@types/node": "*", - "chalk": "^4.1.2", - "emittery": "^0.13.1", - "exit-x": "^0.2.2", - "graceful-fs": "^4.2.11", - "jest-docblock": "30.4.0", - "jest-environment-node": "30.4.1", - "jest-haste-map": "30.4.1", - "jest-leak-detector": "30.4.1", - "jest-message-util": "30.4.1", - "jest-resolve": "30.4.1", - "jest-runtime": "30.4.2", - "jest-util": "30.4.1", - "jest-watcher": "30.4.1", - "jest-worker": "30.4.1", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-runtime": { - "version": "30.4.2", + "node_modules/indent-string": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "@jest/environment": "30.4.1", - "@jest/fake-timers": "30.4.1", - "@jest/globals": "30.4.1", - "@jest/source-map": "30.0.1", - "@jest/test-result": "30.4.1", - "@jest/transform": "30.4.1", - "@jest/types": "30.4.1", - "@types/node": "*", - "chalk": "^4.1.2", - "cjs-module-lexer": "^2.1.0", - "collect-v8-coverage": "^1.0.2", - "glob": "^10.5.0", - "graceful-fs": "^4.2.11", - "jest-haste-map": "30.4.1", - "jest-message-util": "30.4.1", - "jest-mock": "30.4.1", - "jest-regex-util": "30.4.0", - "jest-resolve": "30.4.1", - "jest-snapshot": "30.4.1", - "jest-util": "30.4.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "30.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.27.4", - "@babel/generator": "^7.27.5", - "@babel/plugin-syntax-jsx": "^7.27.1", - "@babel/plugin-syntax-typescript": "^7.27.1", - "@babel/types": "^7.27.3", - "@jest/expect-utils": "30.4.1", - "@jest/get-type": "30.1.0", - "@jest/snapshot-utils": "30.4.1", - "@jest/transform": "30.4.1", - "@jest/types": "30.4.1", - "babel-preset-current-node-syntax": "^1.2.0", - "chalk": "^4.1.2", - "expect": "30.4.1", - "graceful-fs": "^4.2.11", - "jest-diff": "30.4.1", - "jest-matcher-utils": "30.4.1", - "jest-message-util": "30.4.1", - "jest-util": "30.4.1", - "pretty-format": "30.4.1", - "semver": "^7.7.2", - "synckit": "^0.11.8" - }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">=8" } }, - "node_modules/jest-snapshot/node_modules/ansi-styles": { - "version": "5.2.0", + "node_modules/inherits": { + "version": "2.0.4", "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } + "license": "ISC" }, - "node_modules/jest-snapshot/node_modules/pretty-format": { - "version": "30.4.1", + "node_modules/ini": { + "version": "1.3.8", "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "30.4.1", - "ansi-styles": "^5.2.0", - "react-is-18": "npm:react-is@^18.3.1", - "react-is-19": "npm:react-is@^19.2.5" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } + "license": "ISC" }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.8.5", + "node_modules/inspect-with-kind": { + "version": "1.0.5", "dev": true, "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "dependencies": { + "kind-of": "^6.0.2" } }, - "node_modules/jest-util": { - "version": "30.4.1", + "node_modules/ipaddr.js": { + "version": "1.9.1", "dev": true, "license": "MIT", - "dependencies": { - "@jest/types": "30.4.1", - "@types/node": "*", - "chalk": "^4.1.2", - "ci-info": "^4.2.0", - "graceful-fs": "^4.2.11", - "picomatch": "^4.0.3" - }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">= 0.10" } }, - "node_modules/jest-validate": { - "version": "30.4.1", - "dev": true, + "node_modules/is-arrayish": { + "version": "0.2.1", + "license": "MIT", + "peer": true + }, + "node_modules/is-core-module": { + "version": "2.16.2", "license": "MIT", "dependencies": { - "@jest/get-type": "30.1.0", - "@jest/types": "30.4.1", - "camelcase": "^6.3.0", - "chalk": "^4.1.2", - "leven": "^3.1.0", - "pretty-format": "30.4.1" + "hasown": "^2.0.3" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-validate/node_modules/ansi-styles": { - "version": "5.2.0", + "node_modules/is-plain-obj": { + "version": "4.1.0", "dev": true, "license": "MIT", "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/is-stream": { + "version": "4.0.1", "dev": true, "license": "MIT", "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-validate/node_modules/pretty-format": { - "version": "30.4.1", + "node_modules/is-unicode-supported": { + "version": "2.1.0", "dev": true, "license": "MIT", - "dependencies": { - "@jest/schemas": "30.4.1", - "ansi-styles": "^5.2.0", - "react-is-18": "npm:react-is@^18.3.1", - "react-is-19": "npm:react-is@^19.2.5" - }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-watcher": { - "version": "30.4.1", + "node_modules/is-windows": { + "version": "1.0.2", "dev": true, "license": "MIT", - "dependencies": { - "@jest/test-result": "30.4.1", - "@jest/types": "30.4.1", - "@types/node": "*", - "ansi-escapes": "^4.3.2", - "chalk": "^4.1.2", - "emittery": "^0.13.1", - "jest-util": "30.4.1", - "string-length": "^4.0.2" - }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">=0.10.0" } }, - "node_modules/jest-worker": { - "version": "30.4.1", + "node_modules/isexe": { + "version": "4.0.0", "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@ungap/structured-clone": "^1.3.0", - "jest-util": "30.4.1", - "merge-stream": "^2.0.0", - "supports-color": "^8.1.1" - }, + "license": "BlueOak-1.0.0", "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">=20" } }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "dev": true, + "node_modules/isomorphic-ws": { + "version": "5.0.0", "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "peerDependencies": { + "ws": "*" } }, + "node_modules/javascript-natural-sort": { + "version": "0.7.1", + "license": "MIT" + }, "node_modules/jiti": { "version": "2.4.2", "license": "MIT", @@ -10408,46 +8059,75 @@ "license": "MIT" }, "node_modules/jsdom": { - "version": "26.1.0", + "version": "27.4.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.4.0.tgz", + "integrity": "sha512-mjzqwWRD9Y1J1KUi7W97Gja1bwOOM5Ug0EZ6UDK3xS7j7mndrkwozHtSblfomlzyB4NepioNt+B2sOSzczVgtQ==", "dev": true, "license": "MIT", "dependencies": { - "cssstyle": "^4.2.1", - "data-urls": "^5.0.0", - "decimal.js": "^10.5.0", - "html-encoding-sniffer": "^4.0.0", + "@acemir/cssom": "^0.9.28", + "@asamuzakjp/dom-selector": "^6.7.6", + "@exodus/bytes": "^1.6.0", + "cssstyle": "^5.3.4", + "data-urls": "^6.0.0", + "decimal.js": "^10.6.0", + "html-encoding-sniffer": "^6.0.0", "http-proxy-agent": "^7.0.2", "https-proxy-agent": "^7.0.6", "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.16", - "parse5": "^7.2.1", - "rrweb-cssom": "^0.8.0", + "parse5": "^8.0.0", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", - "tough-cookie": "^5.1.1", + "tough-cookie": "^6.0.0", "w3c-xmlserializer": "^5.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^3.1.1", + "webidl-conversions": "^8.0.0", "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^14.1.1", - "ws": "^8.18.0", + "whatwg-url": "^15.1.0", + "ws": "^8.18.3", "xml-name-validator": "^5.0.0" }, "engines": { - "node": ">=18" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "peerDependencies": { + "canvas": "^3.0.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom/node_modules/entities": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-8.0.0.tgz", + "integrity": "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=20.19.0" }, - "peerDependencies": { - "canvas": "^3.0.0" + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/jsdom/node_modules/parse5": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.1.tgz", + "integrity": "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^8.0.0" }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, "node_modules/jsesc": { "version": "3.1.0", "license": "MIT", + "peer": true, "bin": { "jsesc": "bin/jsesc" }, @@ -10457,23 +8137,8 @@ }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "dev": true, "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonc-parser": { - "version": "3.3.1", - "dev": true, - "license": "MIT" + "peer": true }, "node_modules/kind-of": { "version": "6.0.3", @@ -10483,14 +8148,6 @@ "node": ">=0.10.0" } }, - "node_modules/leven": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/lightningcss": { "version": "1.33.0", "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", @@ -10766,7 +8423,8 @@ }, "node_modules/lines-and-columns": { "version": "1.2.4", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/lodash": { "version": "4.18.1", @@ -10798,14 +8456,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lru-cache": { - "version": "5.1.1", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, "node_modules/luxon": { "version": "3.7.2", "devOptional": true, @@ -10822,6 +8472,16 @@ "lz-string": "bin/bin.js" } }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, "node_modules/make-asynchronous": { "version": "1.1.0", "dev": true, @@ -10849,33 +8509,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-dir": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/make-error": { "version": "1.3.6", "dev": true, "license": "ISC" }, - "node_modules/makeerror": { - "version": "1.0.12", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tmpl": "1.0.5" - } - }, "node_modules/marked": { "version": "15.0.12", "license": "MIT", @@ -10922,6 +8560,13 @@ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, + "node_modules/mdn-data": { + "version": "2.27.1", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", + "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", + "dev": true, + "license": "CC0-1.0" + }, "node_modules/media-typer": { "version": "0.3.0", "dev": true, @@ -11033,37 +8678,29 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/minipass": { - "version": "7.1.3", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/ms": { "version": "2.1.3", "license": "MIT" }, - "node_modules/napi-postinstall": { - "version": "0.3.4", + "node_modules/nanoid": { + "version": "3.3.18", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", + "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "bin": { - "napi-postinstall": "lib/cli.js" + "nanoid": "bin/nanoid.cjs" }, "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/napi-postinstall" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, "node_modules/negotiator": { "version": "0.6.3", "dev": true, @@ -11107,19 +8744,6 @@ "url": "https://opencollective.com/node-fetch" } }, - "node_modules/node-int64": { - "version": "0.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/node-releases": { - "version": "2.0.50", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, "node_modules/node-schedule": { "version": "2.1.1", "dev": true, @@ -11133,14 +8757,6 @@ "node": ">=6" } }, - "node_modules/normalize-path": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/normalize-url": { "version": "8.1.1", "dev": true, @@ -11215,11 +8831,6 @@ "node": "*" } }, - "node_modules/nwsapi": { - "version": "2.2.24", - "dev": true, - "license": "MIT" - }, "node_modules/object-assign": { "version": "4.1.1", "license": "MIT", @@ -11237,6 +8848,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/obug": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.4.tgz", + "integrity": "sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT", + "engines": { + "node": ">=12.20.0" + } + }, "node_modules/on-finished": { "version": "2.4.1", "dev": true, @@ -11248,14 +8873,6 @@ "node": ">= 0.8" } }, - "node_modules/once": { - "version": "1.4.0", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, "node_modules/onetime": { "version": "6.0.0", "dev": true, @@ -11448,20 +9065,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-limit": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/p-timeout": { "version": "6.1.4", "dev": true, @@ -11473,19 +9076,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-try": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "dev": true, - "license": "BlueOak-1.0.0" - }, "node_modules/parent-module": { "version": "1.0.1", "license": "MIT", @@ -11500,6 +9090,7 @@ "node_modules/parse-json": { "version": "5.2.0", "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -11532,17 +9123,6 @@ "node": ">=0.10.0" } }, - "node_modules/parse5": { - "version": "7.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "entities": "^6.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, "node_modules/parseurl": { "version": "1.3.3", "dev": true, @@ -11551,22 +9131,6 @@ "node": ">= 0.8" } }, - "node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-key": { "version": "3.1.1", "dev": true, @@ -11579,26 +9143,6 @@ "version": "1.0.7", "license": "MIT" }, - "node_modules/path-scurry": { - "version": "1.11.1", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "dev": true, - "license": "ISC" - }, "node_modules/path-to-regexp": { "version": "0.1.13", "dev": true, @@ -11612,6 +9156,13 @@ "node": ">=8" } }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, "node_modules/pend": { "version": "1.2.0", "dev": true, @@ -11622,7 +9173,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.4", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", "dev": true, "license": "MIT", "engines": { @@ -11632,14 +9185,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pirates": { - "version": "4.0.7", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, "node_modules/piscina": { "version": "4.9.3", "dev": true, @@ -11648,65 +9193,6 @@ "@napi-rs/nice": "^1.0.1" } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/playwright": { "version": "1.61.1", "dev": true, @@ -11744,7 +9230,36 @@ "darwin" ], "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/postcss": { + "version": "8.5.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", + "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.17", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" } }, "node_modules/pretty-format": { @@ -11817,27 +9332,14 @@ }, "node_modules/punycode": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/pure-rand": { - "version": "7.0.1", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ], - "license": "MIT" - }, "node_modules/qs": { "version": "6.15.3", "license": "BSD-3-Clause", @@ -12002,18 +9504,6 @@ "version": "19.2.7", "license": "MIT" }, - "node_modules/react-is-18": { - "name": "react-is", - "version": "18.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/react-is-19": { - "name": "react-is", - "version": "19.2.7", - "dev": true, - "license": "MIT" - }, "node_modules/react-refresh": { "version": "0.18.0", "dev": true, @@ -12100,14 +9590,6 @@ "version": "0.5.0", "license": "MIT" }, - "node_modules/require-directory": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/require-from-string": { "version": "2.0.2", "license": "MIT", @@ -12143,25 +9625,6 @@ "dev": true, "license": "MIT" }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/resolve-dir": { "version": "1.0.1", "dev": true, @@ -12196,10 +9659,49 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/rrweb-cssom": { - "version": "0.8.0", + "node_modules/rolldown": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.5.tgz", + "integrity": "sha512-VD2IE5PUG4Oj8zz2VGykiYd5wbnjdIiSsNQb8Qu5B+noEp+A78mu2iVvpp27g8es14Tk9rofNs5Tku9iQCS4fA==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.146.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm-eabi": "1.2.5", + "@rolldown/binding-android-arm64": "1.2.5", + "@rolldown/binding-darwin-arm64": "1.2.5", + "@rolldown/binding-darwin-x64": "1.2.5", + "@rolldown/binding-freebsd-x64": "1.2.5", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.5", + "@rolldown/binding-linux-arm64-gnu": "1.2.5", + "@rolldown/binding-linux-arm64-musl": "1.2.5", + "@rolldown/binding-linux-ppc64-gnu": "1.2.5", + "@rolldown/binding-linux-s390x-gnu": "1.2.5", + "@rolldown/binding-linux-x64-gnu": "1.2.5", + "@rolldown/binding-linux-x64-musl": "1.2.5", + "@rolldown/binding-openharmony-arm64": "1.2.5", + "@rolldown/binding-win32-arm64-msvc": "1.2.5", + "@rolldown/binding-win32-x64-msvc": "1.2.5" + } + }, + "node_modules/rolldown/node_modules/@oxc-project/types": { + "version": "0.146.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.146.0.tgz", + "integrity": "sha512-XC0QsnnhVe7sLIWmYmdPw7x5P0h4W8vUU3Nv1ySgWXtvCz8NizoAEpGXA0sOYoJQV2Rl13LgURAHQ5cI5ILCSA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } }, "node_modules/rsbuild-plugin-dts": { "version": "0.18.6", @@ -12537,6 +10039,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, "node_modules/signal-exit": { "version": "4.1.0", "dev": true, @@ -12599,46 +10108,22 @@ "node": ">=0.10.0" } }, - "node_modules/source-map-support": { - "version": "0.5.13", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } + "license": "MIT" }, "node_modules/stackframe": { "version": "1.3.4", @@ -12653,6 +10138,13 @@ "node": ">= 0.8" } }, + "node_modules/std-env": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.2.0.tgz", + "integrity": "sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==", + "dev": true, + "license": "MIT" + }, "node_modules/streamx": { "version": "2.28.0", "dev": true, @@ -12663,109 +10155,6 @@ "text-decoder": "^1.1.0" } }, - "node_modules/string-length": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.2.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.2.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/strip-dirs": { "version": "3.0.0", "dev": true, @@ -12805,17 +10194,6 @@ "node": ">=8" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/strtok3": { "version": "10.3.5", "dev": true, @@ -12856,17 +10234,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "license": "MIT", @@ -12882,20 +10249,6 @@ "dev": true, "license": "MIT" }, - "node_modules/synckit": { - "version": "0.11.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@pkgr/core": "^0.3.6" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/synckit" - } - }, "node_modules/system-architecture": { "version": "1.0.0", "dev": true, @@ -12941,58 +10294,6 @@ } } }, - "node_modules/test-exclude": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "1.1.15", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/test-exclude/node_modules/glob": { - "version": "7.2.3", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/test-exclude/node_modules/minimatch": { - "version": "3.1.5", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/text-decoder": { "version": "1.2.7", "dev": true, @@ -13033,10 +10334,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tiny-emitter": { - "version": "2.1.0", - "license": "MIT" - }, + "node_modules/tiny-emitter": { + "version": "2.1.0", + "license": "MIT" + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.3.0.tgz", + "integrity": "sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/tinyglobby": { "version": "0.2.17", "dev": true, @@ -13062,27 +10380,36 @@ "node": "^20.0.0 || >=22.0.0" } }, + "node_modules/tinyrainbow": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.1.tgz", + "integrity": "sha512-yau8yJdTt989Mm0Bd/236QnzEiPf2xLLTqUZRUJOo/3CB078LSwzei343DgtJVmfJKJE3TMINY1u42SQsP6mXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/tldts": { - "version": "6.1.86", + "version": "7.4.10", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.4.10.tgz", + "integrity": "sha512-GgouD1B+sWwvkaEq8vXC15DjQitxbvs12oIXELpconwm+Tg3zfcEv4jgzq3vtKverDXsg3VI8aRgNL2Nra0Iog==", "dev": true, "license": "MIT", "dependencies": { - "tldts-core": "^6.1.86" + "tldts-core": "^7.4.10" }, "bin": { "tldts": "bin/cli.js" } }, "node_modules/tldts-core": { - "version": "6.1.86", + "version": "7.4.10", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.4.10.tgz", + "integrity": "sha512-KnQjp53ZekKgm/r3l+u8kJGGzYgrWdP8+Mql7a4vijh2WE0IrZWspQj/TpTxDho/YxO+AnOZnIjQcCD+q6iJsw==", "dev": true, "license": "MIT" }, - "node_modules/tmpl": { - "version": "1.0.5", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/toidentifier": { "version": "1.0.1", "dev": true, @@ -13109,25 +10436,29 @@ } }, "node_modules/tough-cookie": { - "version": "5.1.2", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.2.tgz", + "integrity": "sha512-exgYmnmL/sJpR3upZfXG5PoatXQii55xAiXGXzY+sROLZ/Y+SLcp9PgJNI9Vz37HpQ74WvDcLT8eqm+kV3FzrA==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "tldts": "^6.1.32" + "tldts": "^7.0.5" }, "engines": { "node": ">=16" } }, "node_modules/tr46": { - "version": "5.1.1", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz", + "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==", "dev": true, "license": "MIT", "dependencies": { "punycode": "^2.3.1" }, "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/tree-kill": { @@ -13201,14 +10532,6 @@ "@turbo/windows-arm64": "2.10.2" } }, - "node_modules/type-detect": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/type-is": { "version": "1.6.18", "dev": true, @@ -13290,42 +10613,6 @@ "node": ">= 0.8" } }, - "node_modules/unrs-resolver": { - "version": "1.12.2", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "napi-postinstall": "^0.3.4" - }, - "funding": { - "url": "https://opencollective.com/unrs-resolver" - }, - "optionalDependencies": { - "@unrs/resolver-binding-android-arm-eabi": "1.12.2", - "@unrs/resolver-binding-android-arm64": "1.12.2", - "@unrs/resolver-binding-darwin-arm64": "1.12.2", - "@unrs/resolver-binding-darwin-x64": "1.12.2", - "@unrs/resolver-binding-freebsd-x64": "1.12.2", - "@unrs/resolver-binding-linux-arm-gnueabihf": "1.12.2", - "@unrs/resolver-binding-linux-arm-musleabihf": "1.12.2", - "@unrs/resolver-binding-linux-arm64-gnu": "1.12.2", - "@unrs/resolver-binding-linux-arm64-musl": "1.12.2", - "@unrs/resolver-binding-linux-loong64-gnu": "1.12.2", - "@unrs/resolver-binding-linux-loong64-musl": "1.12.2", - "@unrs/resolver-binding-linux-ppc64-gnu": "1.12.2", - "@unrs/resolver-binding-linux-riscv64-gnu": "1.12.2", - "@unrs/resolver-binding-linux-riscv64-musl": "1.12.2", - "@unrs/resolver-binding-linux-s390x-gnu": "1.12.2", - "@unrs/resolver-binding-linux-x64-gnu": "1.12.2", - "@unrs/resolver-binding-linux-x64-musl": "1.12.2", - "@unrs/resolver-binding-openharmony-arm64": "1.12.2", - "@unrs/resolver-binding-wasm32-wasi": "1.12.2", - "@unrs/resolver-binding-win32-arm64-msvc": "1.12.2", - "@unrs/resolver-binding-win32-ia32-msvc": "1.12.2", - "@unrs/resolver-binding-win32-x64-msvc": "1.12.2" - } - }, "node_modules/upath": { "version": "2.0.1", "dev": true, @@ -13335,35 +10622,6 @@ "yarn": "*" } }, - "node_modules/update-browserslist-db": { - "version": "1.2.3", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, "node_modules/use-immer": { "version": "0.11.0", "license": "MIT", @@ -13424,30 +10682,180 @@ "dev": true, "license": "MIT" }, - "node_modules/v8-to-istanbul": { - "version": "9.3.0", + "node_modules/vary": { + "version": "1.1.2", "dev": true, - "license": "ISC", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" - }, + "license": "MIT", "engines": { - "node": ">=10.12.0" + "node": ">= 0.8" } }, - "node_modules/v8-to-istanbul/node_modules/convert-source-map": { - "version": "2.0.0", + "node_modules/vite": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.2.tgz", + "integrity": "sha512-cFKLV/PRgAUlIRm5WjMjJ86jrftzpqcgH+Us+DS8mI3CDNiH30Whrz8uHL3+MOLPAgqbMBAqWdAHAphOAM+z/Q==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "lightningcss": "^1.33.0", + "picomatch": "^4.0.5", + "postcss": "^8.5.26", + "rolldown": "~1.2.4", + "tinyglobby": "^0.2.17" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.4.0 || ^0.5.0", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } }, - "node_modules/vary": { - "version": "1.1.2", + "node_modules/vitest": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.11.tgz", + "integrity": "sha512-fhACrNXUidIbGSBr5FlbuBkO7VWC1ZyLl0DO4CU2DrQoAPxX84Ysxs+HeGQpii5lZWV1Q4gBZTTu49mF+A6Edw==", "dev": true, "license": "MIT", + "dependencies": { + "@vitest/expect": "4.1.11", + "@vitest/mocker": "4.1.11", + "@vitest/pretty-format": "4.1.11", + "@vitest/runner": "4.1.11", + "@vitest/snapshot": "4.1.11", + "@vitest/spy": "4.1.11", + "@vitest/utils": "4.1.11", + "es-module-lexer": "^2.0.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": "^4.0.0-rc.1", + "tinybench": "^2.9.0", + "tinyexec": "^1.0.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.1.0", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, "engines": { - "node": ">= 0.8" + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@opentelemetry/api": "^1.9.0", + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", + "@vitest/browser-playwright": "4.1.11", + "@vitest/browser-preview": "4.1.11", + "@vitest/browser-webdriverio": "4.1.11", + "@vitest/coverage-istanbul": "4.1.11", + "@vitest/coverage-v8": "4.1.11", + "@vitest/ui": "4.1.11", + "happy-dom": "*", + "jsdom": "*", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "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/coverage-istanbul": { + "optional": true + }, + "@vitest/coverage-v8": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + }, + "vite": { + "optional": false + } } }, "node_modules/w3c-keyname": { @@ -13465,14 +10873,6 @@ "node": ">=18" } }, - "node_modules/walker": { - "version": "1.0.8", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "makeerror": "1.0.12" - } - }, "node_modules/web-streams-polyfill": { "version": "3.3.3", "devOptional": true, @@ -13487,26 +10887,19 @@ "license": "Apache-2.0" }, "node_modules/webidl-conversions": { - "version": "7.0.0", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.1.tgz", + "integrity": "sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==", "dev": true, "license": "BSD-2-Clause", "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-encoding": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "iconv-lite": "0.6.3" - }, - "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/whatwg-mimetype": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", "dev": true, "license": "MIT", "engines": { @@ -13514,15 +10907,17 @@ } }, "node_modules/whatwg-url": { - "version": "14.2.0", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz", + "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==", "dev": true, "license": "MIT", "dependencies": { - "tr46": "^5.1.0", - "webidl-conversions": "^7.0.0" + "tr46": "^6.0.0", + "webidl-conversions": "^8.0.0" }, "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/which": { @@ -13544,110 +10939,23 @@ "dev": true, "license": "ISC" }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" + "siginfo": "^2.0.0", + "stackback": "0.0.2" }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "bin": { + "why-is-node-running": "cli.js" }, "engines": { "node": ">=8" } }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.2.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.2.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "dev": true, - "license": "ISC" - }, - "node_modules/write-file-atomic": { - "version": "5.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/ws": { "version": "8.21.0", "license": "MIT", @@ -13688,11 +10996,6 @@ "node": ">=10" } }, - "node_modules/yallist": { - "version": "3.1.1", - "dev": true, - "license": "ISC" - }, "node_modules/yaml": { "version": "2.9.0", "license": "ISC", @@ -13795,17 +11098,6 @@ "node": ">=6" } }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/yoctocolors": { "version": "2.1.2", "dev": true, diff --git a/package.json b/package.json index c82c51852..63ae3950c 100644 --- a/package.json +++ b/package.json @@ -65,20 +65,17 @@ "@rsbuild/plugin-react": "^1.4.2", "@swc/cli": "^0.8.1", "@swc/core": "^1.15.3", - "@swc/jest": "^0.2.39", "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.1.0", "@testing-library/user-event": "^13.5.0", "@types/color-hash": "^2.0.0", "@types/express": "^5.0.0", - "@types/jest": "^30.0.0", "@types/lodash": "^4.17.5", "concurrently": "^10.0.3", "cross-env": "^7.0.3", "express": "^4.21.2", - "jest": "^30.4.2", - "jest-environment-jsdom": "^30.4.1", + "jsdom": "^27.0.0", "mdi-material-ui": "^7.9.2", "oxfmt": "0.55.0", "oxlint": "1.70.0", @@ -90,7 +87,8 @@ "rsbuild-plugin-dts": "^0.18.0", "ts-node": "^10.9.2", "turbo": "^2.6.1", - "typescript": "^5.4.2" + "typescript": "^5.4.2", + "vitest": "^4.1.11" }, "overrides": { "@module-federation/rsbuild-plugin": { diff --git a/piechart/jest.config.ts b/piechart/jest.config.ts deleted file mode 100644 index 16027133b..000000000 --- a/piechart/jest.config.ts +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright The Perses Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import type { Config } from '@jest/types'; - -import shared from '../jest.shared'; - -const jestConfig: Config.InitialOptions = { - ...shared, - - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], -}; - -export default jestConfig; diff --git a/piechart/package.json b/piechart/package.json index 03d15b3be..9caad08c5 100644 --- a/piechart/package.json +++ b/piechart/package.json @@ -18,7 +18,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/piechart/src/setup-tests.ts b/piechart/src/setup-tests.ts index d43de32e0..78af56004 100644 --- a/piechart/src/setup-tests.ts +++ b/piechart/src/setup-tests.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; // Always mock e-charts during tests since we don't have a proper canvas in jsdom -jest.mock('echarts/core'); +vi.mock('echarts/core'); diff --git a/piechart/vitest.config.ts b/piechart/vitest.config.ts new file mode 100644 index 000000000..59830b049 --- /dev/null +++ b/piechart/vitest.config.ts @@ -0,0 +1,21 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { definePackageVitestConfig } from '../vitest.shared'; + +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/prometheus/jest.config.ts b/prometheus/jest.config.ts deleted file mode 100644 index 16027133b..000000000 --- a/prometheus/jest.config.ts +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright The Perses Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import type { Config } from '@jest/types'; - -import shared from '../jest.shared'; - -const jestConfig: Config.InitialOptions = { - ...shared, - - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], -}; - -export default jestConfig; diff --git a/prometheus/package.json b/prometheus/package.json index 8b388036f..9e2a95063 100644 --- a/prometheus/package.json +++ b/prometheus/package.json @@ -19,7 +19,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/prometheus/src/explore/PrometheusMetricsFinder/display/list/MetricList.test.tsx b/prometheus/src/explore/PrometheusMetricsFinder/display/list/MetricList.test.tsx index c0162b7d6..45487f753 100644 --- a/prometheus/src/explore/PrometheusMetricsFinder/display/list/MetricList.test.tsx +++ b/prometheus/src/explore/PrometheusMetricsFinder/display/list/MetricList.test.tsx @@ -18,14 +18,14 @@ import { VirtuosoMockContext } from 'react-virtuoso'; import { DEFAULT_PROM } from '../../../../model/prometheus-selectors'; import { MetricList, MetricListProps } from './MetricList'; -jest.mock('../../utils', () => ({ - useMetricMetadata: jest +vi.mock('../../utils', () => ({ + useMetricMetadata: vi .fn() .mockReturnValue({ metadata: { type: 'gauge', help: 'my super metric desc' }, isLoading: false }), })); -jest.mock('@perses-dev/explore', () => ({ - useExplorerQueryParams: jest.fn().mockReturnValue('?explorer=metrics'), +vi.mock('@perses-dev/explore', () => ({ + useExplorerQueryParams: vi.fn().mockReturnValue('?explorer=metrics'), })); describe('MetricList', () => { diff --git a/prometheus/src/explore/PrometheusMetricsFinder/filter/FilterInputs.test.tsx b/prometheus/src/explore/PrometheusMetricsFinder/filter/FilterInputs.test.tsx index 8422243b8..81b301f15 100644 --- a/prometheus/src/explore/PrometheusMetricsFinder/filter/FilterInputs.test.tsx +++ b/prometheus/src/explore/PrometheusMetricsFinder/filter/FilterInputs.test.tsx @@ -39,7 +39,7 @@ describe('FilterInputs', () => { }; it('should set the label name and label value', async () => { - const onChange = jest.fn(); + const onChange = vi.fn(); renderInputs({ onChange }); const nameInput = screen.getByRole('combobox', { name: 'Label Name' }); diff --git a/prometheus/src/plugins/prometheus-datasource.test.ts b/prometheus/src/plugins/prometheus-datasource.test.ts index a1ae54290..b5dc9048b 100644 --- a/prometheus/src/plugins/prometheus-datasource.test.ts +++ b/prometheus/src/plugins/prometheus-datasource.test.ts @@ -48,7 +48,7 @@ describe('PrometheusDatasource query parameters', () => { const client = PrometheusDatasource.createClient(spec, {}); // Mock the global fetch to verify the URL includes query parameters - const mockFetch = jest.fn().mockResolvedValue({ + const mockFetch = vi.fn().mockResolvedValue({ status: 200, json: () => Promise.resolve({ data: [] }), }); diff --git a/prometheus/src/plugins/prometheus-time-series-query/plugin.test.ts b/prometheus/src/plugins/prometheus-time-series-query/plugin.test.ts index 1ffc2e8ad..b20710055 100644 --- a/prometheus/src/plugins/prometheus-time-series-query/plugin.test.ts +++ b/prometheus/src/plugins/prometheus-time-series-query/plugin.test.ts @@ -13,10 +13,11 @@ // TODO: This should be fixed globally in the test setup -jest.mock('echarts/core'); +vi.mock('echarts/core'); import { TimeSeriesQueryContext } from '@perses-dev/plugin-system'; import { DatasourceSpec } from '@perses-dev/spec'; +import type { Mock } from 'vitest'; import { RangeQueryResponse, InstantQueryResponse } from '../../model'; import { PrometheusDatasource } from '../prometheus-datasource'; @@ -31,7 +32,7 @@ const datasource: PrometheusDatasourceSpec = { const promStubClient = PrometheusDatasource.createClient(datasource, {}); // Mock range query -promStubClient.rangeQuery = jest.fn(async () => { +promStubClient.rangeQuery = vi.fn(async () => { const stubRepsonse: RangeQueryResponse = { status: 'success', data: { @@ -50,7 +51,7 @@ promStubClient.rangeQuery = jest.fn(async () => { }); // Mock instant query -promStubClient.instantQuery = jest.fn(async () => { +promStubClient.instantQuery = vi.fn(async () => { const stubResponse: InstantQueryResponse = { status: 'success', data: { @@ -68,11 +69,11 @@ promStubClient.instantQuery = jest.fn(async () => { return stubResponse; }); -const getDatasourceClient: jest.Mock = jest.fn(() => { +const getDatasourceClient: Mock = vi.fn(() => { return promStubClient; }); -const getDatasource: jest.Mock = jest.fn((): DatasourceSpec => { +const getDatasource: Mock = vi.fn((): DatasourceSpec => { return { default: false, plugin: { @@ -87,11 +88,11 @@ const createStubContext = (): TimeSeriesQueryContext => { datasourceStore: { getDatasource: getDatasource, getDatasourceClient: getDatasourceClient, - listDatasourceSelectItems: jest.fn(), - getLocalDatasources: jest.fn(), - setLocalDatasources: jest.fn(), - getSavedDatasources: jest.fn(), - setSavedDatasources: jest.fn(), + listDatasourceSelectItems: vi.fn(), + getLocalDatasources: vi.fn(), + setLocalDatasources: vi.fn(), + getSavedDatasources: vi.fn(), + setSavedDatasources: vi.fn(), }, timeRange: { end: new Date('01-01-2023'), @@ -137,8 +138,8 @@ describe('PrometheusTimeSeriesQuery', () => { it('should use instantQuery when spec.instant is true', async () => { const ctx = createStubContext(); - (promStubClient.instantQuery as jest.Mock).mockClear(); - (promStubClient.rangeQuery as jest.Mock).mockClear(); + (promStubClient.instantQuery as Mock).mockClear(); + (promStubClient.rangeQuery as Mock).mockClear(); await PrometheusTimeSeriesQuery.getTimeSeriesData( { @@ -155,8 +156,8 @@ describe('PrometheusTimeSeriesQuery', () => { it('should use rangeQuery when spec.instant is false even if context mode is instant', async () => { const ctx = createStubContext(); ctx.mode = 'instant'; - (promStubClient.instantQuery as jest.Mock).mockClear(); - (promStubClient.rangeQuery as jest.Mock).mockClear(); + (promStubClient.instantQuery as Mock).mockClear(); + (promStubClient.rangeQuery as Mock).mockClear(); await PrometheusTimeSeriesQuery.getTimeSeriesData( { @@ -173,8 +174,8 @@ describe('PrometheusTimeSeriesQuery', () => { it('should use instantQuery when spec.instant is unset and context mode is instant', async () => { const ctx = createStubContext(); ctx.mode = 'instant'; - (promStubClient.instantQuery as jest.Mock).mockClear(); - (promStubClient.rangeQuery as jest.Mock).mockClear(); + (promStubClient.instantQuery as Mock).mockClear(); + (promStubClient.rangeQuery as Mock).mockClear(); await PrometheusTimeSeriesQuery.getTimeSeriesData( { diff --git a/prometheus/src/plugins/test/setup-tests.ts b/prometheus/src/plugins/test/setup-tests.ts index 7aa179c90..055b01ae9 100644 --- a/prometheus/src/plugins/test/setup-tests.ts +++ b/prometheus/src/plugins/test/setup-tests.ts @@ -11,4 +11,4 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom/extend-expect'; +import '@testing-library/jest-dom/vitest'; diff --git a/prometheus/src/setup-tests.ts b/prometheus/src/setup-tests.ts index d43de32e0..78af56004 100644 --- a/prometheus/src/setup-tests.ts +++ b/prometheus/src/setup-tests.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; // Always mock e-charts during tests since we don't have a proper canvas in jsdom -jest.mock('echarts/core'); +vi.mock('echarts/core'); diff --git a/prometheus/vitest.config.ts b/prometheus/vitest.config.ts new file mode 100644 index 000000000..59830b049 --- /dev/null +++ b/prometheus/vitest.config.ts @@ -0,0 +1,21 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { definePackageVitestConfig } from '../vitest.shared'; + +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/pyroscope/jest.config.ts b/pyroscope/jest.config.ts deleted file mode 100644 index 16027133b..000000000 --- a/pyroscope/jest.config.ts +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright The Perses Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import type { Config } from '@jest/types'; - -import shared from '../jest.shared'; - -const jestConfig: Config.InitialOptions = { - ...shared, - - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], -}; - -export default jestConfig; diff --git a/pyroscope/package.json b/pyroscope/package.json index f824b9639..32d32a433 100644 --- a/pyroscope/package.json +++ b/pyroscope/package.json @@ -18,7 +18,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/pyroscope/src/model/pyroscope-client.test.ts b/pyroscope/src/model/pyroscope-client.test.ts index 98474ad77..0a20655ae 100644 --- a/pyroscope/src/model/pyroscope-client.test.ts +++ b/pyroscope/src/model/pyroscope-client.test.ts @@ -18,7 +18,7 @@ import { } from '../test'; import { searchProfileTypes, searchLabelNames, searchLabelValues } from './pyroscope-client'; -const fetchMock = (global.fetch = jest.fn()); +const fetchMock = (global.fetch = vi.fn()); describe('pyroscope-client', () => { beforeEach(() => { diff --git a/pyroscope/src/setup-tests.ts b/pyroscope/src/setup-tests.ts index d43de32e0..78af56004 100644 --- a/pyroscope/src/setup-tests.ts +++ b/pyroscope/src/setup-tests.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; // Always mock e-charts during tests since we don't have a proper canvas in jsdom -jest.mock('echarts/core'); +vi.mock('echarts/core'); diff --git a/pyroscope/src/test/setup-tests.ts b/pyroscope/src/test/setup-tests.ts index 7aa179c90..055b01ae9 100644 --- a/pyroscope/src/test/setup-tests.ts +++ b/pyroscope/src/test/setup-tests.ts @@ -11,4 +11,4 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom/extend-expect'; +import '@testing-library/jest-dom/vitest'; diff --git a/pyroscope/vitest.config.ts b/pyroscope/vitest.config.ts new file mode 100644 index 000000000..59830b049 --- /dev/null +++ b/pyroscope/vitest.config.ts @@ -0,0 +1,21 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { definePackageVitestConfig } from '../vitest.shared'; + +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/scatterchart/jest.config.ts b/scatterchart/jest.config.ts deleted file mode 100644 index 16027133b..000000000 --- a/scatterchart/jest.config.ts +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright The Perses Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import type { Config } from '@jest/types'; - -import shared from '../jest.shared'; - -const jestConfig: Config.InitialOptions = { - ...shared, - - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], -}; - -export default jestConfig; diff --git a/scatterchart/package.json b/scatterchart/package.json index 8a8c87c1e..767869a7a 100644 --- a/scatterchart/package.json +++ b/scatterchart/package.json @@ -18,7 +18,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/scatterchart/src/setup-tests.ts b/scatterchart/src/setup-tests.ts index d43de32e0..78af56004 100644 --- a/scatterchart/src/setup-tests.ts +++ b/scatterchart/src/setup-tests.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; // Always mock e-charts during tests since we don't have a proper canvas in jsdom -jest.mock('echarts/core'); +vi.mock('echarts/core'); diff --git a/scatterchart/vitest.config.ts b/scatterchart/vitest.config.ts new file mode 100644 index 000000000..59830b049 --- /dev/null +++ b/scatterchart/vitest.config.ts @@ -0,0 +1,21 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { definePackageVitestConfig } from '../vitest.shared'; + +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/splunk/jest.config.ts b/splunk/jest.config.ts deleted file mode 100644 index 16027133b..000000000 --- a/splunk/jest.config.ts +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright The Perses Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import type { Config } from '@jest/types'; - -import shared from '../jest.shared'; - -const jestConfig: Config.InitialOptions = { - ...shared, - - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], -}; - -export default jestConfig; diff --git a/splunk/package.json b/splunk/package.json index c96ac0b0b..817b94b54 100644 --- a/splunk/package.json +++ b/splunk/package.json @@ -18,7 +18,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/splunk/src/queries/splunk-log-query/SplunkLogQuery.test.ts b/splunk/src/queries/splunk-log-query/SplunkLogQuery.test.ts index c25cbb75c..d0ec2b15f 100644 --- a/splunk/src/queries/splunk-log-query/SplunkLogQuery.test.ts +++ b/splunk/src/queries/splunk-log-query/SplunkLogQuery.test.ts @@ -16,13 +16,13 @@ import { SplunkLogQuery } from './SplunkLogQuery'; const createStubContext = (): LogQueryContext => ({ datasourceStore: { - getDatasource: jest.fn(), - getDatasourceClient: jest.fn(), - listDatasourceSelectItems: jest.fn(), - getLocalDatasources: jest.fn(), - setLocalDatasources: jest.fn(), - getSavedDatasources: jest.fn(), - setSavedDatasources: jest.fn(), + getDatasource: vi.fn(), + getDatasourceClient: vi.fn(), + listDatasourceSelectItems: vi.fn(), + getLocalDatasources: vi.fn(), + setLocalDatasources: vi.fn(), + getSavedDatasources: vi.fn(), + setSavedDatasources: vi.fn(), }, timeRange: { end: new Date('01-01-2025'), diff --git a/splunk/src/setup-tests.ts b/splunk/src/setup-tests.ts index d43de32e0..78af56004 100644 --- a/splunk/src/setup-tests.ts +++ b/splunk/src/setup-tests.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; // Always mock e-charts during tests since we don't have a proper canvas in jsdom -jest.mock('echarts/core'); +vi.mock('echarts/core'); diff --git a/splunk/vitest.config.ts b/splunk/vitest.config.ts new file mode 100644 index 000000000..59830b049 --- /dev/null +++ b/splunk/vitest.config.ts @@ -0,0 +1,21 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { definePackageVitestConfig } from '../vitest.shared'; + +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/statchart/jest.config.ts b/statchart/jest.config.ts deleted file mode 100644 index 16027133b..000000000 --- a/statchart/jest.config.ts +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright The Perses Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import type { Config } from '@jest/types'; - -import shared from '../jest.shared'; - -const jestConfig: Config.InitialOptions = { - ...shared, - - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], -}; - -export default jestConfig; diff --git a/statchart/package.json b/statchart/package.json index a699f1eac..df70ba355 100644 --- a/statchart/package.json +++ b/statchart/package.json @@ -18,7 +18,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/statchart/src/StatChartBase.test.tsx b/statchart/src/StatChartBase.test.tsx index ad6dc0f5c..db886999e 100644 --- a/statchart/src/StatChartBase.test.tsx +++ b/statchart/src/StatChartBase.test.tsx @@ -16,8 +16,8 @@ import { render, screen } from '@testing-library/react'; import { StatChartBase, StatChartData } from './StatChartBase'; -jest.mock('./utils/calculate-font-size', () => ({ - useOptimalFontSize: jest.fn().mockImplementation(() => 12), +vi.mock('./utils/calculate-font-size', () => ({ + useOptimalFontSize: vi.fn().mockImplementation(() => 12), })); describe('StatChart', () => { diff --git a/statchart/src/StatChartOptionsEditorSettings.test.tsx b/statchart/src/StatChartOptionsEditorSettings.test.tsx index da251b056..5ed962b09 100644 --- a/statchart/src/StatChartOptionsEditorSettings.test.tsx +++ b/statchart/src/StatChartOptionsEditorSettings.test.tsx @@ -19,7 +19,7 @@ import { StatChartOptions } from './stat-chart-model'; import { StatChartOptionsEditorSettings } from './StatChartOptionsEditorSettings'; describe('StatChartOptionsEditorSettings', () => { - const renderStatChartOptionsEditorSettings = (value: StatChartOptions, onChange = jest.fn()): void => { + const renderStatChartOptionsEditorSettings = (value: StatChartOptions, onChange = vi.fn()): void => { render( @@ -28,7 +28,7 @@ describe('StatChartOptionsEditorSettings', () => { }; it('can modify unit', () => { - const onChange = jest.fn(); + const onChange = vi.fn(); renderStatChartOptionsEditorSettings( { format: { @@ -54,7 +54,7 @@ describe('StatChartOptionsEditorSettings', () => { }); it('can modify calculation', () => { - const onChange = jest.fn(); + const onChange = vi.fn(); renderStatChartOptionsEditorSettings( { format: { @@ -78,7 +78,7 @@ describe('StatChartOptionsEditorSettings', () => { }); it('can enable a sparkline', () => { - const onChange = jest.fn(); + const onChange = vi.fn(); renderStatChartOptionsEditorSettings( { format: { @@ -100,7 +100,7 @@ describe('StatChartOptionsEditorSettings', () => { }); it('can disable a sparkline', () => { - const onChange = jest.fn(); + const onChange = vi.fn(); renderStatChartOptionsEditorSettings( { format: { diff --git a/statchart/src/setup-tests.ts b/statchart/src/setup-tests.ts index d43de32e0..78af56004 100644 --- a/statchart/src/setup-tests.ts +++ b/statchart/src/setup-tests.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; // Always mock e-charts during tests since we don't have a proper canvas in jsdom -jest.mock('echarts/core'); +vi.mock('echarts/core'); diff --git a/statchart/src/utils/calculate-font-size.test.ts b/statchart/src/utils/calculate-font-size.test.ts index bc0d19343..670485111 100644 --- a/statchart/src/utils/calculate-font-size.test.ts +++ b/statchart/src/utils/calculate-font-size.test.ts @@ -13,28 +13,28 @@ import { useOptimalFontSize } from './calculate-font-size'; -jest.mock('@perses-dev/components', () => { - const actual = jest.requireActual('@perses-dev/components'); +vi.mock('@perses-dev/components', async (importOriginal) => { + const actual = await importOriginal(); return { ...actual, - useChartsTheme: jest.fn().mockReturnValue(actual.testChartsTheme), + useChartsTheme: vi.fn().mockReturnValue(actual.testChartsTheme), }; }); describe('useOptimalFontSize', () => { const mockCanvasContext = { font: '', - measureText: jest.fn().mockReturnValue({ width: 100 }), + measureText: vi.fn().mockReturnValue({ width: 100 }), }; beforeEach(() => { - document.createElement = jest.fn().mockReturnValue({ - getContext: jest.fn().mockReturnValue(mockCanvasContext), + document.createElement = vi.fn().mockReturnValue({ + getContext: vi.fn().mockReturnValue(mockCanvasContext), }); }); afterEach(() => { - jest.clearAllMocks(); + vi.clearAllMocks(); }); it('calculates the optimal font size where width is the constraint', () => { diff --git a/statchart/vitest.config.ts b/statchart/vitest.config.ts new file mode 100644 index 000000000..59830b049 --- /dev/null +++ b/statchart/vitest.config.ts @@ -0,0 +1,21 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { definePackageVitestConfig } from '../vitest.shared'; + +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/staticlistvariable/package.json b/staticlistvariable/package.json index d934bddaa..4ff167f87 100644 --- a/staticlistvariable/package.json +++ b/staticlistvariable/package.json @@ -18,7 +18,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest --passWithNoTests", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/staticlistvariable/vitest.config.ts b/staticlistvariable/vitest.config.ts new file mode 100644 index 000000000..d6b9f6786 --- /dev/null +++ b/staticlistvariable/vitest.config.ts @@ -0,0 +1,21 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { definePackageVitestConfig } from '../vitest.shared'; + +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + passWithNoTests: true, +}); diff --git a/statushistorychart/jest.config.ts b/statushistorychart/jest.config.ts deleted file mode 100644 index 16027133b..000000000 --- a/statushistorychart/jest.config.ts +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright The Perses Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import type { Config } from '@jest/types'; - -import shared from '../jest.shared'; - -const jestConfig: Config.InitialOptions = { - ...shared, - - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], -}; - -export default jestConfig; diff --git a/statushistorychart/package.json b/statushistorychart/package.json index d14599731..767f35c57 100644 --- a/statushistorychart/package.json +++ b/statushistorychart/package.json @@ -18,7 +18,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/statushistorychart/src/setup-tests.ts b/statushistorychart/src/setup-tests.ts index d43de32e0..78af56004 100644 --- a/statushistorychart/src/setup-tests.ts +++ b/statushistorychart/src/setup-tests.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; // Always mock e-charts during tests since we don't have a proper canvas in jsdom -jest.mock('echarts/core'); +vi.mock('echarts/core'); diff --git a/statushistorychart/vitest.config.ts b/statushistorychart/vitest.config.ts new file mode 100644 index 000000000..59830b049 --- /dev/null +++ b/statushistorychart/vitest.config.ts @@ -0,0 +1,21 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { definePackageVitestConfig } from '../vitest.shared'; + +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/table/jest.config.ts b/table/jest.config.ts deleted file mode 100644 index 16027133b..000000000 --- a/table/jest.config.ts +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright The Perses Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import type { Config } from '@jest/types'; - -import shared from '../jest.shared'; - -const jestConfig: Config.InitialOptions = { - ...shared, - - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], -}; - -export default jestConfig; diff --git a/table/package.json b/table/package.json index a3e938146..0c19aaa24 100644 --- a/table/package.json +++ b/table/package.json @@ -18,7 +18,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/table/src/components/TableColumnsEditor.test.tsx b/table/src/components/TableColumnsEditor.test.tsx index ddd0f26f6..db6552f94 100644 --- a/table/src/components/TableColumnsEditor.test.tsx +++ b/table/src/components/TableColumnsEditor.test.tsx @@ -17,12 +17,12 @@ import { TableOptions } from '../models'; import { TableColumnsEditor } from './TableColumnsEditor'; describe('TableColumnsEditor', () => { - function renderTableColumnsEditor(value: TableOptions, onChange = jest.fn()): void { + function renderTableColumnsEditor(value: TableOptions, onChange = vi.fn()): void { render(); } it('can add a new column settings', () => { - const onChange = jest.fn(); + const onChange = vi.fn(); renderTableColumnsEditor({ columnSettings: [] }, onChange); const addColumnButton = screen.getByRole('button', { name: /Add Column Settings/i }); fireEvent.click(addColumnButton); @@ -30,7 +30,7 @@ describe('TableColumnsEditor', () => { }); it('can enable column custom width', () => { - const onChange = jest.fn(); + const onChange = vi.fn(); renderTableColumnsEditor({ columnSettings: [{ name: 'column_0' }] }, onChange); // Expand the column settings editor for column_0 @@ -42,7 +42,7 @@ describe('TableColumnsEditor', () => { }); it('can rename a column', () => { - const onChange = jest.fn(); + const onChange = vi.fn(); renderTableColumnsEditor({ columnSettings: [{ name: 'column_0' }] }, onChange); // Expand the column settings editor for column_0 diff --git a/table/src/components/TablePanel.test.tsx b/table/src/components/TablePanel.test.tsx index 3ab865406..3ca3783dd 100644 --- a/table/src/components/TablePanel.test.tsx +++ b/table/src/components/TablePanel.test.tsx @@ -38,12 +38,14 @@ import { import { TablePanel } from './TablePanel'; /* mock all variables */ -const MOCK_VARIABLE_STATE_MAP: VariableStateMap = { - myproject: { loading: false, value: 'my_project' }, - __range: { loading: false, value: '1h' }, -}; -jest.mock('@perses-dev/plugin-system', () => ({ - ...jest.requireActual('@perses-dev/plugin-system'), +const MOCK_VARIABLE_STATE_MAP = vi.hoisted( + (): VariableStateMap => ({ + myproject: { loading: false, value: 'my_project' }, + __range: { loading: false, value: '1h' }, + }), +); +vi.mock('@perses-dev/plugin-system', async (importOriginal) => ({ + ...(await importOriginal()), // Return a stable reference (like the real hook, which memoizes) so consumers // that depend on it in a useMemo/useEffect dependency array don't recompute/rerun on every render. useAllVariableValues: (): VariableStateMap => MOCK_VARIABLE_STATE_MAP, @@ -248,11 +250,11 @@ describe('TablePanel', () => { ); // embedded panel is loaded async - await waitFor(async () => { + await waitFor(() => { // the outer table has two rows // each row has one table in the 'value' column // in total, 3 tables should be visible - expect(await screen.findAllByRole('table')).toHaveLength(3); + expect(screen.getAllByRole('table')).toHaveLength(3); }); }); diff --git a/table/src/setup-tests.ts b/table/src/setup-tests.ts index c20266bf1..c904341c0 100644 --- a/table/src/setup-tests.ts +++ b/table/src/setup-tests.ts @@ -11,10 +11,10 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; // Always mock e-charts during tests since we don't have a proper canvas in jsdom -jest.mock('echarts/core'); +vi.mock('echarts/core'); // jsdom does not implement ResizeObserver globalThis.ResizeObserver = class ResizeObserver { diff --git a/table/vitest.config.ts b/table/vitest.config.ts new file mode 100644 index 000000000..59830b049 --- /dev/null +++ b/table/vitest.config.ts @@ -0,0 +1,21 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { definePackageVitestConfig } from '../vitest.shared'; + +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/tempo/jest.config.ts b/tempo/jest.config.ts deleted file mode 100644 index 16027133b..000000000 --- a/tempo/jest.config.ts +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright The Perses Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import type { Config } from '@jest/types'; - -import shared from '../jest.shared'; - -const jestConfig: Config.InitialOptions = { - ...shared, - - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], -}; - -export default jestConfig; diff --git a/tempo/package.json b/tempo/package.json index 7932c9f87..c3b879b85 100644 --- a/tempo/package.json +++ b/tempo/package.json @@ -18,7 +18,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/tempo/src/model/tempo-client.test.ts b/tempo/src/model/tempo-client.test.ts index 166d4d2ed..b2c50520f 100644 --- a/tempo/src/model/tempo-client.test.ts +++ b/tempo/src/model/tempo-client.test.ts @@ -16,7 +16,7 @@ import { UserFriendlyError } from '@perses-dev/client'; import { MOCK_TRACE_RESPONSE } from '../test'; import { query, search, searchTagValues } from './tempo-client'; -const fetchMock = (global.fetch = jest.fn()); +const fetchMock = (global.fetch = vi.fn()); function mockErrorResponse(status: number, statusText: string, overrides?: Record): unknown { const resp = { diff --git a/tempo/src/plugins/plugin.test.ts b/tempo/src/plugins/plugin.test.ts index c94d5f91b..0101f0b44 100644 --- a/tempo/src/plugins/plugin.test.ts +++ b/tempo/src/plugins/plugin.test.ts @@ -13,27 +13,28 @@ import { TraceQueryContext } from '@perses-dev/plugin-system'; import { DatasourceSpec } from '@perses-dev/spec'; +import type { Mock } from 'vitest'; import { MOCK_SEARCH_RESPONSE_VPARQUET4, MOCK_TRACE_DATA_SEARCHRESULT, MOCK_TRACE_RESPONSE_SMALL } from '../test'; import { TempoDatasource } from './tempo-datasource'; import { TempoDatasourceSpec } from './tempo-datasource-types'; import { TempoTraceQuery } from './tempo-trace-query/TempoTraceQuery'; -jest.mock('echarts/core'); +vi.mock('echarts/core'); const datasource: TempoDatasourceSpec = { directUrl: '/test', }; const tempoStubClient = TempoDatasource.createClient(datasource, {}); -tempoStubClient.query = jest.fn(async () => MOCK_TRACE_RESPONSE_SMALL); -tempoStubClient.search = jest.fn(async () => MOCK_SEARCH_RESPONSE_VPARQUET4); +tempoStubClient.query = vi.fn(async () => MOCK_TRACE_RESPONSE_SMALL); +tempoStubClient.search = vi.fn(async () => MOCK_SEARCH_RESPONSE_VPARQUET4); -const getDatasourceClient: jest.Mock = jest.fn(() => { +const getDatasourceClient: Mock = vi.fn(() => { return tempoStubClient; }); -const getDatasource: jest.Mock = jest.fn((): DatasourceSpec => { +const getDatasource: Mock = vi.fn((): DatasourceSpec => { return { default: false, plugin: { @@ -48,12 +49,12 @@ const stubTempoContext: TraceQueryContext = { datasourceStore: { getDatasource: getDatasource, getDatasourceClient: getDatasourceClient, - listDatasourceSelectItems: jest.fn(), + listDatasourceSelectItems: vi.fn(), - getLocalDatasources: jest.fn(), - setLocalDatasources: jest.fn(), - getSavedDatasources: jest.fn(), - setSavedDatasources: jest.fn(), + getLocalDatasources: vi.fn(), + setLocalDatasources: vi.fn(), + getSavedDatasources: vi.fn(), + setSavedDatasources: vi.fn(), }, absoluteTimeRange: { start: new Date('2023-12-16T21:57:48.057Z'), // last 1 hour diff --git a/tempo/src/plugins/tempo-trace-query/get-trace-data.test.ts b/tempo/src/plugins/tempo-trace-query/get-trace-data.test.ts index 45e509bf6..b69eb39dc 100644 --- a/tempo/src/plugins/tempo-trace-query/get-trace-data.test.ts +++ b/tempo/src/plugins/tempo-trace-query/get-trace-data.test.ts @@ -13,6 +13,7 @@ import { TraceQueryContext, replaceVariables } from '@perses-dev/plugin-system'; import { DatasourceSpec } from '@perses-dev/spec'; +import type { Mock, MockedFunction } from 'vitest'; import { TempoClient } from '../../model'; import { DEFAULT_SEARCH_LIMIT, SearchResponse } from '../../model/api-types'; @@ -20,15 +21,15 @@ import { TempoDatasource } from '../tempo-datasource'; import { TempoDatasourceSpec } from '../tempo-datasource-types'; import { getTraceData } from './get-trace-data'; -jest.mock('@perses-dev/plugin-system', () => { - const actual = jest.requireActual('@perses-dev/plugin-system'); +vi.mock('@perses-dev/plugin-system', async (importOriginal) => { + const actual = await importOriginal(); return { ...actual, - replaceVariables: jest.fn((query: string) => query), + replaceVariables: vi.fn((query: string) => query), }; }); -const mockedReplaceVariables = replaceVariables as jest.MockedFunction; +const mockedReplaceVariables = replaceVariables as MockedFunction; const datasource: TempoDatasourceSpec = { directUrl: '/test', @@ -36,11 +37,11 @@ const datasource: TempoDatasourceSpec = { const createMockClient = (searchResponse: SearchResponse): TempoClient => { const client = TempoDatasource.createClient(datasource, {}); - client.search = jest.fn(async () => searchResponse); + client.search = vi.fn(async () => searchResponse); return client; }; -const getDatasource: jest.Mock = jest.fn((): DatasourceSpec => { +const getDatasource: Mock = vi.fn((): DatasourceSpec => { return { default: false, plugin: { @@ -51,17 +52,17 @@ const getDatasource: jest.Mock = jest.fn((): DatasourceSpec }); const createStubContext = (mockClient: ReturnType): TraceQueryContext => { - const getDatasourceClient = jest.fn(() => Promise.resolve(mockClient)); + const getDatasourceClient = vi.fn(() => Promise.resolve(mockClient)); return { variableState: {}, datasourceStore: { getDatasource, getDatasourceClient, - listDatasourceSelectItems: jest.fn(), - getLocalDatasources: jest.fn(), - setLocalDatasources: jest.fn(), - getSavedDatasources: jest.fn(), - setSavedDatasources: jest.fn(), + listDatasourceSelectItems: vi.fn(), + getLocalDatasources: vi.fn(), + setLocalDatasources: vi.fn(), + getSavedDatasources: vi.fn(), + setSavedDatasources: vi.fn(), }, absoluteTimeRange: { start: new Date('2023-12-16T21:57:48.057Z'), @@ -193,7 +194,7 @@ describe('getTraceData', () => { trace: { resourceSpans: [] }, }; const mockClient = createMockClient({ traces: [] }); - mockClient.query = jest.fn(async () => mockResponse); + mockClient.query = vi.fn(async () => mockResponse); const stubContext = createStubContext(mockClient); stubContext.variableState = { traceId: { value: traceId, loading: false }, @@ -215,7 +216,7 @@ describe('getTraceData', () => { message: 'trace exceeds max size', }; const mockClient = createMockClient({ traces: [] }); - mockClient.query = jest.fn(async () => mockResponse); + mockClient.query = vi.fn(async () => mockResponse); const stubContext = createStubContext(mockClient); const result = await getTraceData({ query: traceId }, stubContext); @@ -229,7 +230,7 @@ describe('getTraceData', () => { trace: { resourceSpans: [] }, }; const mockClient = createMockClient({ traces: [] }); - mockClient.query = jest.fn(async () => mockResponse); + mockClient.query = vi.fn(async () => mockResponse); const stubContext = createStubContext(mockClient); const result = await getTraceData({ query: traceId }, stubContext); diff --git a/tempo/src/setup-tests.ts b/tempo/src/setup-tests.ts index d43de32e0..78af56004 100644 --- a/tempo/src/setup-tests.ts +++ b/tempo/src/setup-tests.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; // Always mock e-charts during tests since we don't have a proper canvas in jsdom -jest.mock('echarts/core'); +vi.mock('echarts/core'); diff --git a/tempo/src/test/setup-tests.ts b/tempo/src/test/setup-tests.ts index 7aa179c90..055b01ae9 100644 --- a/tempo/src/test/setup-tests.ts +++ b/tempo/src/test/setup-tests.ts @@ -11,4 +11,4 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom/extend-expect'; +import '@testing-library/jest-dom/vitest'; diff --git a/tempo/vitest.config.ts b/tempo/vitest.config.ts new file mode 100644 index 000000000..59830b049 --- /dev/null +++ b/tempo/vitest.config.ts @@ -0,0 +1,21 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { definePackageVitestConfig } from '../vitest.shared'; + +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/timeserieschart/jest.config.ts b/timeserieschart/jest.config.ts deleted file mode 100644 index 16027133b..000000000 --- a/timeserieschart/jest.config.ts +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright The Perses Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import type { Config } from '@jest/types'; - -import shared from '../jest.shared'; - -const jestConfig: Config.InitialOptions = { - ...shared, - - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], -}; - -export default jestConfig; diff --git a/timeserieschart/package.json b/timeserieschart/package.json index 5da43354b..9e43fe5c4 100644 --- a/timeserieschart/package.json +++ b/timeserieschart/package.json @@ -18,7 +18,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/timeserieschart/src/TimeSeriesChartPanel.test.tsx b/timeserieschart/src/TimeSeriesChartPanel.test.tsx index 9bfb7cb69..b16a1122d 100644 --- a/timeserieschart/src/TimeSeriesChartPanel.test.tsx +++ b/timeserieschart/src/TimeSeriesChartPanel.test.tsx @@ -25,8 +25,8 @@ import { TimeSeriesChartPanel, TimeSeriesChartProps } from './TimeSeriesChartPan // These tests exercise legend rendering, not annotations. The panel calls usePanelAnnotationsWithData, // which pulls in the full dashboard runtime (plugin registry, datasource store, query client). Mock it to // return no annotations so the panel can render without wiring those providers here. -jest.mock('@perses-dev/dashboards', () => ({ - ...jest.requireActual('@perses-dev/dashboards'), +vi.mock('@perses-dev/dashboards', async (importOriginal) => ({ + ...(await importOriginal()), usePanelAnnotationsWithData: (): AnnotationSpecWithData[] => [], })); @@ -80,7 +80,7 @@ describe('TimeSeriesChartPanel', () => { timeRange: TEST_TIME_RANGE, setTimeRange: (): Record => ({}), absoluteTimeRange: toAbsoluteTimeRange(TEST_TIME_RANGE), - refresh: jest.fn(), + refresh: vi.fn(), }; render( diff --git a/timeserieschart/src/VisualOptionsEditor.test.tsx b/timeserieschart/src/VisualOptionsEditor.test.tsx index 3402e56d2..52add1137 100644 --- a/timeserieschart/src/VisualOptionsEditor.test.tsx +++ b/timeserieschart/src/VisualOptionsEditor.test.tsx @@ -17,7 +17,7 @@ import { TimeSeriesChartVisualOptions, VISUAL_CONFIG } from './time-series-chart import { VisualOptionsEditor } from './VisualOptionsEditor'; describe('VisualOptionsEditor', () => { - const renderVisualOptionsEditor = (value: TimeSeriesChartVisualOptions, onChange = jest.fn()): void => { + const renderVisualOptionsEditor = (value: TimeSeriesChartVisualOptions, onChange = vi.fn()): void => { render(); }; @@ -26,7 +26,7 @@ describe('VisualOptionsEditor', () => { }; it('can update the line width visual option', () => { - const onChange = jest.fn(); + const onChange = vi.fn(); renderVisualOptionsEditor({ display: 'line', lineWidth: 3, pointRadius: 2 }, onChange); expect(screen.getByText(VISUAL_CONFIG.lineWidth.label)).toBeInTheDocument(); @@ -34,7 +34,7 @@ describe('VisualOptionsEditor', () => { const sliderInput = getLineWidthSlider(); // MUI Slider computes the return value based on span elements, mock initial position - sliderInput.getBoundingClientRect = jest.fn(() => { + sliderInput.getBoundingClientRect = vi.fn(() => { return { bottom: 200, height: 30, diff --git a/timeserieschart/src/setup-tests.ts b/timeserieschart/src/setup-tests.ts index d43de32e0..78af56004 100644 --- a/timeserieschart/src/setup-tests.ts +++ b/timeserieschart/src/setup-tests.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; // Always mock e-charts during tests since we don't have a proper canvas in jsdom -jest.mock('echarts/core'); +vi.mock('echarts/core'); diff --git a/timeserieschart/src/utils/timezone-formatter.test.ts b/timeserieschart/src/utils/timezone-formatter.test.ts index 28a15e7f1..79eee677c 100644 --- a/timeserieschart/src/utils/timezone-formatter.test.ts +++ b/timeserieschart/src/utils/timezone-formatter.test.ts @@ -14,8 +14,8 @@ import { createTimezoneAwareAxisFormatter } from './timezone-formatter'; // Mock formatWithTimeZone since it's from @perses-dev/components -jest.mock('@perses-dev/components', () => ({ - formatWithTimeZone: jest.fn((date: Date, format: string, timeZone: string) => { +vi.mock('@perses-dev/components', () => ({ + formatWithTimeZone: vi.fn((date: Date, format: string, timeZone: string) => { // Simple mock that returns format pattern with timezone return `${format}[${timeZone}]`; }), diff --git a/timeserieschart/vitest.config.ts b/timeserieschart/vitest.config.ts new file mode 100644 index 000000000..59830b049 --- /dev/null +++ b/timeserieschart/vitest.config.ts @@ -0,0 +1,21 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { definePackageVitestConfig } from '../vitest.shared'; + +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/timeseriestable/jest.config.ts b/timeseriestable/jest.config.ts deleted file mode 100644 index 16027133b..000000000 --- a/timeseriestable/jest.config.ts +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright The Perses Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import type { Config } from '@jest/types'; - -import shared from '../jest.shared'; - -const jestConfig: Config.InitialOptions = { - ...shared, - - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], -}; - -export default jestConfig; diff --git a/timeseriestable/package.json b/timeseriestable/package.json index b61d38fd8..881dc39b0 100644 --- a/timeseriestable/package.json +++ b/timeseriestable/package.json @@ -18,7 +18,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/timeseriestable/src/setup-tests.ts b/timeseriestable/src/setup-tests.ts index d43de32e0..78af56004 100644 --- a/timeseriestable/src/setup-tests.ts +++ b/timeseriestable/src/setup-tests.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; // Always mock e-charts during tests since we don't have a proper canvas in jsdom -jest.mock('echarts/core'); +vi.mock('echarts/core'); diff --git a/timeseriestable/vitest.config.ts b/timeseriestable/vitest.config.ts new file mode 100644 index 000000000..59830b049 --- /dev/null +++ b/timeseriestable/vitest.config.ts @@ -0,0 +1,21 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { definePackageVitestConfig } from '../vitest.shared'; + +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/tracetable/jest.config.ts b/tracetable/jest.config.ts deleted file mode 100644 index 16027133b..000000000 --- a/tracetable/jest.config.ts +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright The Perses Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import type { Config } from '@jest/types'; - -import shared from '../jest.shared'; - -const jestConfig: Config.InitialOptions = { - ...shared, - - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], -}; - -export default jestConfig; diff --git a/tracetable/package.json b/tracetable/package.json index 8ae000a38..68e384ed2 100644 --- a/tracetable/package.json +++ b/tracetable/package.json @@ -18,7 +18,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/tracetable/src/setup-tests.ts b/tracetable/src/setup-tests.ts index d43de32e0..78af56004 100644 --- a/tracetable/src/setup-tests.ts +++ b/tracetable/src/setup-tests.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; // Always mock e-charts during tests since we don't have a proper canvas in jsdom -jest.mock('echarts/core'); +vi.mock('echarts/core'); diff --git a/tracetable/vitest.config.ts b/tracetable/vitest.config.ts new file mode 100644 index 000000000..59830b049 --- /dev/null +++ b/tracetable/vitest.config.ts @@ -0,0 +1,21 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { definePackageVitestConfig } from '../vitest.shared'; + +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/tracingganttchart/jest.config.ts b/tracingganttchart/jest.config.ts deleted file mode 100644 index 16027133b..000000000 --- a/tracingganttchart/jest.config.ts +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright The Perses Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import type { Config } from '@jest/types'; - -import shared from '../jest.shared'; - -const jestConfig: Config.InitialOptions = { - ...shared, - - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], -}; - -export default jestConfig; diff --git a/tracingganttchart/package.json b/tracingganttchart/package.json index 4e831e892..55b0d6118 100644 --- a/tracingganttchart/package.json +++ b/tracingganttchart/package.json @@ -18,7 +18,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/tracingganttchart/src/TracingGanttChart/GanttTable/GanttTable.test.tsx b/tracingganttchart/src/TracingGanttChart/GanttTable/GanttTable.test.tsx index 8a09ebe91..cad63efe8 100644 --- a/tracingganttchart/src/TracingGanttChart/GanttTable/GanttTable.test.tsx +++ b/tracingganttchart/src/TracingGanttChart/GanttTable/GanttTable.test.tsx @@ -25,7 +25,7 @@ import { GanttTableProvider } from './GanttTableProvider'; describe('GanttTable', () => { const trace = getTraceModel(exampleTrace as otlptracev1.TracesData); const renderComponent = (props: Omit): RenderResult => { - const onSpanClick = jest.fn(); + const onSpanClick = vi.fn(); return render( diff --git a/tracingganttchart/src/setup-tests.ts b/tracingganttchart/src/setup-tests.ts index d43de32e0..78af56004 100644 --- a/tracingganttchart/src/setup-tests.ts +++ b/tracingganttchart/src/setup-tests.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; // Always mock e-charts during tests since we don't have a proper canvas in jsdom -jest.mock('echarts/core'); +vi.mock('echarts/core'); diff --git a/tracingganttchart/vitest.config.ts b/tracingganttchart/vitest.config.ts new file mode 100644 index 000000000..59830b049 --- /dev/null +++ b/tracingganttchart/vitest.config.ts @@ -0,0 +1,21 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { definePackageVitestConfig } from '../vitest.shared'; + +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/tsconfig.base.json b/tsconfig.base.json index aa9dff7c1..c53929126 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -10,6 +10,7 @@ "strict": true, "forceConsistentCasingInFileNames": true, "moduleResolution": "node10", + "types": ["node", "vitest/globals"], "resolveJsonModule": true, "isolatedModules": true, "noUncheckedIndexedAccess": true, diff --git a/turbo.json b/turbo.json index 25122ca1e..ab77821d2 100644 --- a/turbo.json +++ b/turbo.json @@ -2,7 +2,9 @@ "$schema": "https://turbo.build/schema.json", "tasks": { "build": {}, - "test": {}, + "test": { + "inputs": ["$TURBO_DEFAULT$", "$TURBO_ROOT$/vitest.shared.ts", "$TURBO_ROOT$/vitest.setup.ts"] + }, "lint": {}, "//#format:root": { "cache": false, diff --git a/victorialogs/jest.config.ts b/victorialogs/jest.config.ts deleted file mode 100644 index 16027133b..000000000 --- a/victorialogs/jest.config.ts +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright The Perses Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import type { Config } from '@jest/types'; - -import shared from '../jest.shared'; - -const jestConfig: Config.InitialOptions = { - ...shared, - - setupFilesAfterEnv: [...(shared.setupFilesAfterEnv ?? []), '/src/setup-tests.ts'], -}; - -export default jestConfig; diff --git a/victorialogs/package.json b/victorialogs/package.json index 189d140c8..249498c18 100644 --- a/victorialogs/package.json +++ b/victorialogs/package.json @@ -10,7 +10,7 @@ "build:esm": "swc ./src -d dist/lib --strip-leading-paths --config-file ../.swcrc", "build:types": "tsc --project tsconfig.build.json", "lint": "oxlint src", - "test": "cross-env LC_ALL=C TZ=UTC jest", + "test": "cross-env LC_ALL=C TZ=UTC vitest run", "type-check": "tsc --noEmit" }, "main": "lib/cjs/index.js", diff --git a/victorialogs/src/queries/victorialogs-log-query/types.test.ts b/victorialogs/src/queries/victorialogs-log-query/types.test.ts index 3d45f9802..54d2ca8da 100644 --- a/victorialogs/src/queries/victorialogs-log-query/types.test.ts +++ b/victorialogs/src/queries/victorialogs-log-query/types.test.ts @@ -12,6 +12,7 @@ // limitations under the License. import { LogQueryContext } from '@perses-dev/plugin-system'; +import type { Mock } from 'vitest'; import { VictoriaLogsDatasource } from '../../datasources/victorialogs-datasource'; import { VictoriaLogsDatasourceSpec } from '../../datasources/victorialogs-datasource/types'; @@ -25,7 +26,7 @@ const datasource: VictoriaLogsDatasourceSpec = { const victorialogsStubClient = VictoriaLogsDatasource.createClient(datasource, {}); // Mock range query -victorialogsStubClient.streamQueryRange = jest.fn(async () => { +victorialogsStubClient.streamQueryRange = vi.fn(async () => { return [ { service: 'api', @@ -36,20 +37,20 @@ victorialogsStubClient.streamQueryRange = jest.fn(async () => { ] as VictoriaLogsStreamQueryRangeResponse; }); -const getDatasourceClient: jest.Mock = jest.fn(() => { +const getDatasourceClient: Mock = vi.fn(() => { return victorialogsStubClient; }); const createStubContext = (): LogQueryContext => { const stubLogContext: LogQueryContext = { datasourceStore: { - getDatasource: jest.fn(), + getDatasource: vi.fn(), getDatasourceClient: getDatasourceClient, - listDatasourceSelectItems: jest.fn(), - getLocalDatasources: jest.fn(), - setLocalDatasources: jest.fn(), - getSavedDatasources: jest.fn(), - setSavedDatasources: jest.fn(), + listDatasourceSelectItems: vi.fn(), + getLocalDatasources: vi.fn(), + setLocalDatasources: vi.fn(), + getSavedDatasources: vi.fn(), + setSavedDatasources: vi.fn(), }, timeRange: { end: new Date('01-01-2025'), diff --git a/victorialogs/src/queries/victorialogs-time-series-query/types.test.ts b/victorialogs/src/queries/victorialogs-time-series-query/types.test.ts index abd72f06b..b494cb419 100644 --- a/victorialogs/src/queries/victorialogs-time-series-query/types.test.ts +++ b/victorialogs/src/queries/victorialogs-time-series-query/types.test.ts @@ -11,10 +11,11 @@ // See the License for the specific language governing permissions and // limitations under the License. -jest.mock('echarts/core'); +vi.mock('echarts/core'); import { TimeSeriesQueryContext } from '@perses-dev/plugin-system'; import { DatasourceSpec } from '@perses-dev/spec'; +import type { Mock } from 'vitest'; import { VictoriaLogsDatasource } from '../../datasources/victorialogs-datasource'; import { VictoriaLogsDatasourceSpec } from '../../datasources/victorialogs-datasource/types'; @@ -28,7 +29,7 @@ const datasource: VictoriaLogsDatasourceSpec = { const victorialogsStubClient = VictoriaLogsDatasource.createClient(datasource, {}); // Mock range query -victorialogsStubClient.statsQueryRange = jest.fn(async () => { +victorialogsStubClient.statsQueryRange = vi.fn(async () => { return { status: 'success', data: { @@ -46,11 +47,11 @@ victorialogsStubClient.statsQueryRange = jest.fn(async () => { } as VictoriaLogsStatsQueryRangeResponse; }); -const getDatasourceClient: jest.Mock = jest.fn(() => { +const getDatasourceClient: Mock = vi.fn(() => { return victorialogsStubClient; }); -const getDatasource: jest.Mock = jest.fn((): DatasourceSpec => { +const getDatasource: Mock = vi.fn((): DatasourceSpec => { return { default: false, plugin: { @@ -65,11 +66,11 @@ const createStubContext = (): TimeSeriesQueryContext => { datasourceStore: { getDatasource: getDatasource, getDatasourceClient: getDatasourceClient, - listDatasourceSelectItems: jest.fn(), - getLocalDatasources: jest.fn(), - setLocalDatasources: jest.fn(), - getSavedDatasources: jest.fn(), - setSavedDatasources: jest.fn(), + listDatasourceSelectItems: vi.fn(), + getLocalDatasources: vi.fn(), + setLocalDatasources: vi.fn(), + getSavedDatasources: vi.fn(), + setSavedDatasources: vi.fn(), }, timeRange: { end: new Date('01-01-2025'), diff --git a/victorialogs/src/setup-tests.ts b/victorialogs/src/setup-tests.ts index c4b091083..0d515bcb0 100644 --- a/victorialogs/src/setup-tests.ts +++ b/victorialogs/src/setup-tests.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@testing-library/jest-dom'; +import '@testing-library/jest-dom/vitest'; // Always mock e-charts during tests since we don't have a proper canvas in jsdom -jest.mock('echarts/core'); +vi.mock('echarts/core'); diff --git a/victorialogs/vitest.config.ts b/victorialogs/vitest.config.ts new file mode 100644 index 000000000..59830b049 --- /dev/null +++ b/victorialogs/vitest.config.ts @@ -0,0 +1,21 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { definePackageVitestConfig } from '../vitest.shared'; + +export default definePackageVitestConfig({ + packageDir: resolve(__dirname), + setupFiles: ['src/setup-tests.ts'], +}); diff --git a/stylesMock.js b/vitest.setup.ts similarity index 78% rename from stylesMock.js rename to vitest.setup.ts index 18d7854c0..4c1527631 100644 --- a/stylesMock.js +++ b/vitest.setup.ts @@ -11,4 +11,5 @@ // See the License for the specific language governing permissions and // limitations under the License. -module.exports = {}; +// jsdom does not implement the geometry API CodeMirror uses when measuring text. +Range.prototype.getClientRects = (): DOMRectList => [] as unknown as DOMRectList; diff --git a/vitest.shared.ts b/vitest.shared.ts new file mode 100644 index 000000000..6d906a622 --- /dev/null +++ b/vitest.shared.ts @@ -0,0 +1,61 @@ +// Copyright The Perses Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { resolve } from 'node:path'; + +import { defineConfig, mergeConfig } from 'vitest/config'; + +type VitestPackageOptions = { + packageDir: string; + setupFiles?: string[]; + passWithNoTests?: boolean; +}; + +const repoRoot = resolve(__dirname); + +// Common Vitest configuration shared across packages +const sharedConfig = defineConfig({ + resolve: { + alias: [ + { + find: /^@perses-dev\/(client|components|core|dashboards|explore|plugin-system|spec)$/, + replacement: resolve(repoRoot, 'node_modules/@perses-dev/$1/dist/index.js'), + }, + { find: 'use-resize-observer', replacement: 'use-resize-observer/polyfilled' }, + ], + }, + test: { + environment: 'jsdom', + globals: true, + include: ['src/**/*.test.{ts,tsx,js,jsx}', 'src/**/*.spec.{ts,tsx,js,jsx}'], + setupFiles: [resolve(repoRoot, 'vitest.setup.ts')], + testTimeout: 15_000, + }, +}); + +export function definePackageVitestConfig({ + packageDir, + setupFiles = [], + passWithNoTests = false, +}: VitestPackageOptions) { + return mergeConfig( + sharedConfig, + defineConfig({ + test: { + root: packageDir, + passWithNoTests, + setupFiles: setupFiles.map((file) => resolve(packageDir, file)), + }, + }), + ); +}