diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 0c4a7daf3..12cd4a416 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -1,6 +1,6 @@
-### 在提交PR之前,请确保您执行以下操作:
+### 在提交PR之前,请确保你执行以下操作:
- [ ] 曾阅读过[翻译须知](https://github.com/vitest-dev/docs-cn/issues/391)。
- [ ] 检查是否已经有PR以同样的方式解决问题,以避免创建重复。
- [ ] 在此PR中描述正在解决的问题,或引用它解决的问题(例如:`fixes #123`)。
@@ -8,7 +8,7 @@
---
### 描述
-
+
### 附加上下文
diff --git a/.github/workflows/autofix.yml b/.github/workflows/autofix.yml
index 64eab75a6..e6e8d01d0 100644
--- a/.github/workflows/autofix.yml
+++ b/.github/workflows/autofix.yml
@@ -11,10 +11,10 @@ jobs:
timeout-minutes: 10
steps:
- - uses: actions/checkout@v5
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Use Node.js lts/*
- uses: actions/setup-node@v4
+ uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: lts/*
diff --git a/.vitepress/components/Advanced.vue b/.vitepress/components/Advanced.vue
index de842162c..58ef886d6 100644
--- a/.vitepress/components/Advanced.vue
+++ b/.vitepress/components/Advanced.vue
@@ -1,6 +1,6 @@
-
- 可以复用 Vite 的配置和插件,使得应用和测试保持一致。但是使用 Vitest 并不需要使用 Vite!
+ >Vite 的配置和插件,使得应用和测试之间保持一致。但是使用 Vitest 并不强制使用 Vite!
Jest
- 迁移过来非常简单。
+ 迁移过来也很顺手。
- 只重新运行相关的更改,就像测试的热模块重载一样! + 只重新运行相关变更,让测试也拥有 HMR 般的体验!
- 内置 ESM、TypeScript 和 JSX 支持,由
+ 开箱即用的 ESM、TypeScript 和 JSX 支持,由
Oxc
驱动。
- 一个原生支持 Vite 的测试框架。非常快速! + 一个原生支持 Vite 的测试框架。快得惊人!
+ +Select a step to see the reconstructed page at that moment with the interacted element highlighted, and Vitest opens the source location in the editor panel. Failed actions and assertions are highlighted in red. Trace view also supports keyboard navigation and live updates in watch mode. + +::: code-group +```ts [vitest.config.ts] +import { defineConfig } from 'vitest/config' + +export default defineConfig({ + test: { + browser: { + traceView: true, + }, + }, +}) +``` +```bash [CLI] +vitest --browser.traceView +``` +::: + +Unlike [Playwright Traces](/guide/browser/playwright-traces), trace view does not depend on the provider and does not require a separate viewer. + +## Nested Projects and Config Inheritance + +Inline projects now [inherit the root config](/guide/projects#configuration) by default, including Vite options like `plugins` and `resolve.alias`. In Vitest 4, you had to set `extends: true` on every project to get this behavior: + +```ts [vitest.config.ts] +import { defineConfig } from 'vitest/config' +import react from '@vitejs/plugin-react' + +export default defineConfig({ + plugins: [react()], + test: { + projects: [ + { + extends: true, // [!code --] + test: { + name: 'unit', + include: ['**/*.unit.test.ts'], + }, + }, + ], + }, +}) +``` + +A config file referenced in `test.projects` can now declare its own `projects`. Such a config acts as a container, exactly like the root config, and provides [nested projects](/guide/projects#nested-projects) named `app (unit)`, `app (e2e)`, and so on. This makes it possible to reference a package that already defines its own projects without duplicating them at the root: + +```ts [packages/app/vitest.config.ts] +import { defineConfig } from 'vitest/config' + +export default defineConfig({ + test: { + projects: ['./packages/*/vitest.config.ts'], + }, +}) +``` + +The `--project` filter is aware of the hierarchy, and it now has a `-p` shorthand: + +```bash +vitest -p app +``` + +## `vi.when` + +Defining different return values for different arguments used to require a manual `mockImplementation` with argument checks. The new [`vi.when`](/api/vi#vi-when) API defines per-argument behaviors on a spy. Arguments are matched with deep equality and support asymmetric matchers like `expect.any()`: + +```ts +import { expect, test, vi } from 'vitest' + +test('returns user data', async () => { + const findById = vi.fn() + + vi.when(findById) + .calledWith(1) + .thenResolve({ id: 1, name: 'Ella' }) + .calledWith(2) + .thenResolve({ id: 2, name: 'Gracie' }) + .calledWith(expect.any(Number)) + .thenReject(new Error('not found')) + + await expect(findById(1)).resolves.toEqual({ id: 1, name: 'Ella' }) + await expect(findById(3)).rejects.toThrow('not found') +}) +``` + +Behaviors can be limited with `thenReturnOnce` or a `times` option, and the new [`toHaveBeenExhausted`](/api/expect#tohavebeenexhausted) assertion checks that every registered behavior was consumed. Read more in the [Conditional Mocking](/guide/recipes/conditional-mocking) recipe. + +## Benchmarking Rewrite + +The benchmarking API was rewritten. `bench` is no longer a top-level import; it is a [test-context fixture](/guide/test-context#bench) available inside regular `test()` calls in benchmark files. This gives benchmarks access to everything the test runner offers: fixtures, lifecycle hooks, retries, filtering, and assertions. + +```ts [parse.bench.ts] +import { expect, test } from 'vitest' + +test('compare parsers', async ({ bench }) => { + const result = await bench.compare( + bench('JSON.parse', () => { + JSON.parse('{"key":"value"}') + }), + bench('custom parser', () => { + customParse('{"key":"value"}') + }), + ) + + expect(result.get('JSON.parse')).toBeFasterThan(result.get('custom parser')) +}) +``` + +Results can be stored with `writeResult` and replayed with `bench.from()` to compare against a baseline, and the built-in Tinybench provider can be replaced with a custom [benchmark provider](/config/benchmark#benchmark-provider). Benchmark output is now part of the `default` and `json` reporters. See the [Benchmarking guide](/guide/benchmarking) for the full API. + +## Locator Errors Show the ARIA Tree + +When a locator cannot find an element in Browser Mode, Vitest now prints the [ARIA snapshot](/guide/browser/aria-snapshots) of the searched subtree next to the HTML output. The accessibility tree is usually much shorter than the raw HTML and shows exactly the roles and names that `getByRole` and `getByLabelText` match against. The output is controlled by the new [`browser.locators.errorFormat`](/config/browser/locators#browser-locators-errorformat) option: + +```ts +export default defineConfig({ + test: { + browser: { + locators: { + errorFormat: 'aria', // 'html' | 'aria' | 'all' + }, + }, + }, +}) +``` + +Locators are also [strict by default](/guide/migration/#locators-are-strict-by-default): `locators.exact` is enabled, so `getByText('Item')` no longer matches `Item 1` by accident. + +## Mocking `Temporal` + +Fake timers now mock the [`Temporal`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal) API alongside `Date`, thanks to the `@sinonjs/fake-timers` v15.4 update. This applies both to [`vi.useFakeTimers()`](/api/vi#vi-usefaketimers) and to [`vi.setSystemTime()`](/api/vi#vi-setsystemtime) used without fake timers: + +```ts +vi.setSystemTime(0) +Temporal.Now.instant().epochMilliseconds // 0 +``` + +`Temporal` is part of the default set of faked APIs. To avoid faking it, add it to `toNotFake` in the [config](/config/faketimers#faketimers-tonotfake) or when invoking `vi.setSystemTime()`. + +## Stricter Assertions + +Asynchronous assertions like `resolves`, `rejects`, and `toMatchFileSnapshot` now fail the test when they are not awaited. Before, Vitest awaited them at the end of the test and only printed a warning. The test still passed even though the assertion never ran at the point where it was written. + +```ts +test('unawaited assertion', async () => { + expect(promise).resolves.toBe(1) // [!code --] + await expect(promise).resolves.toBe(1) // [!code ++] +}) +``` + +[`expect.poll`](/api/expect#poll) now rejects when it does not settle within `timeout`, and the callback receives an `AbortSignal` so you can cancel in-flight work: + +```ts +await expect.poll(async ({ signal }) => { + const response = await fetch('/api/status', { signal }) + return response.status +}, { timeout: 1000 }).toBe(200) +``` + +Assertion types now expose both the return type and the received type. When you [extend matchers](/guide/extending-matchers), the `Matchers` interface now takes the return type as its first parameter: + +```ts +import 'vitest' + +declare module 'vitest' { + interface Matchers
+
+
+
+
+
+
+请注意,如果文件路径太长,Vitest 会从开头截断它,最多显示 45 个字符。
+
+### experimental.importDurations.print {#experimental-importdurationsprint}
+
+- **类型:** `boolean | 'on-warn'`
+- **默认值:** `false`
+
+控制测试结束后何时在 CLI 打印导入耗时分析。该功能仅适用于 [`default`](/guide/reporters#default)、[`verbose`](/guide/reporters#verbose) 或 [`tree`](/guide/reporters#tree) 报告器。
+
+- `false`: 从不打印分析结果
+- `true`: 总是打印分析结果
+- `'on-warn'`: 仅当任何导入耗时超过 `thresholds.warn` 阈值时打印
+
+### experimental.importDurations.failOnDanger {#experimental-importdurationsfailondanger}
+
+- **类型:** `boolean`
+- **默认值:** `false`
+
+当任何导入操作耗时超过 `thresholds.danger` 阈值时,测试将会运行失败。启用该选项且超过阈值时,无论 `print` 如何设置,始终会打印性能分析报告。
+
+该功能适用于在 CI 环境中确保导入操作符合性能预期:
+
+```bash
+vitest --experimental.importDurations.failOnDanger
+```
+
+### experimental.importDurations.limit {#experimental-importdurationslimit}
+
+- **类型:** `number`
+- **默认值:** `0`(如果启用 `print`、`failOnDanger` 或 UI 模式时默认为`10`)
+
+在 CLI 输出、[UI 模式](/guide/ui#import-breakdown) 及第三方报告器中收集和显示的导入操作最大数量限制。
+
+### experimental.importDurations.thresholds {#experimental-importdurationsthresholds}
+
+- **类型:** `{ warn?: number; danger?: number }`
+- **默认值:** `{ warn: 100, danger: 500 }`
+
+用于着色和警告的耗时阈值(单位:毫秒):
+
+- `warn`:触发黄色/警告颜色的阈值(默认值:100毫秒)
+- `danger`:触发红色/危险颜色及 `failOnDanger` 的阈值(默认值:500毫秒)
+
+::: info
+[UI 模式](/guide/ui#import-breakdown) 会在至少一个文件的加载时间超过 `danger` 阈值时,自动显示导入耗时分析。
+:::
+
+## experimental.viteModuleRunner
+### experimental.diagnostics.transform {#experimental-diagnostics-transform}
-Note that if the file path is too long, Vitest will truncate it at the start until it fits 45 character limit.
+- **Type:** `boolean`
+- **Default:** `true`
-::: info
-[Vitest UI](/guide/ui#import-breakdown) shows a breakdown of imports automatically if at least one file took longer than 500 milliseconds to load. You can manually set this option to `false` to disable this.
-:::
+Hint when transforming modules dominates the run. Without a persistent cache every `vitest run` transforms the whole module graph from scratch; [`fsModuleCache`](/config/fsmodulecache) stores the results on disk so repeated runs skip them. The hint estimates the time the next run would save. On CI the hint includes a note that the cache directory must be persisted between runs for the cache to take effect.
diff --git a/config/faketimers.md b/config/faketimers.md
index a389b4510..5ed774c4c 100644
--- a/config/faketimers.md
+++ b/config/faketimers.md
@@ -1,56 +1,69 @@
---
-title: fakeTimers | Config
+title: fakeTimers | 配置
outline: deep
---
# fakeTimers
-- **Type:** `FakeTimerInstallOpts`
+- **类型:** `FakeTimerConfig`
-Options that Vitest will pass down to [`@sinon/fake-timers`](https://www.npmjs.com/package/@sinonjs/fake-timers) when using [`vi.useFakeTimers()`](/api/vi#vi-usefaketimers).
+当使用 [`vi.useFakeTimers()`](/api/vi#vi-usefaketimers) 时,Vitest 会将此选项传递给 [`@sinon/fake-timers`](https://npmx.dev/package/@sinonjs/fake-timers)。
## fakeTimers.now
-- **Type:** `number | Date`
-- **Default:** `Date.now()`
+- **类型:** `number | Date`
+- **默认值:** `Date.now()`
-Installs fake timers with the specified Unix epoch.
+使用指定的 Unix 时间戳安装假计时器。
## fakeTimers.toFake
-- **Type:** `('setTimeout' | 'clearTimeout' | 'setImmediate' | 'clearImmediate' | 'setInterval' | 'clearInterval' | 'Date' | 'nextTick' | 'hrtime' | 'requestAnimationFrame' | 'cancelAnimationFrame' | 'requestIdleCallback' | 'cancelIdleCallback' | 'performance' | 'queueMicrotask')[]`
-- **Default:** everything available globally except `nextTick` and `queueMicrotask`
+- **类型:** `('setTimeout' | 'clearTimeout' | 'setImmediate' | 'clearImmediate' | 'setInterval' | 'clearInterval' | 'Date' | 'nextTick' | 'hrtime' | 'requestAnimationFrame' | 'cancelAnimationFrame' | 'requestIdleCallback' | 'cancelIdleCallback' | 'performance' | 'queueMicrotask' | 'Intl' | 'Temporal')[]`
+- **默认值:** 全局可用的所有方法,除了 `nextTick` 和 `queueMicrotask`
-An array with names of global methods and APIs to fake.
+需要模拟的全局方法和 API 名称数组。例如仅需模拟 `setTimeout()` 和 `nextTick()`,可将此属性指定为 `['setTimeout', 'nextTick']`。
+
+`Temporal` is only faked when it is available on the global object: natively (Node.js >= 26 by default, behind `--harmony-temporal` on older versions, and supporting browsers) or through a globally installed polyfill such as `import 'temporal-polyfill/global'`.
-To only mock `setTimeout()` and `nextTick()`, specify this property as `['setTimeout', 'nextTick']`.
+当使用 `--pool=forks` 在 `node:child_process` 中运行 Vitest 时,不支持模拟 `nextTick`。NodeJS 会在 `node:child_process` 内部使用 `process.nextTick`,模拟后会导致进程挂起。使用 `--pool=threads` 运行 Vitest 时支持模拟 `nextTick`。
-Mocking `nextTick` is not supported when running Vitest inside `node:child_process` by using `--pool=forks`. NodeJS uses `process.nextTick` internally in `node:child_process` and hangs when it is mocked. Mocking `nextTick` is supported when running Vitest with `--pool=threads`.
+## fakeTimers.toNotFake
+
+- **类型:** `('setTimeout' | 'clearTimeout' | 'setImmediate' | 'clearImmediate' | 'setInterval' | 'clearInterval' | 'Date' | 'nextTick' | 'hrtime' | 'requestAnimationFrame' | 'cancelAnimationFrame' | 'requestIdleCallback' | 'cancelIdleCallback' | 'performance' | 'queueMicrotask' | 'Intl' | 'Temporal')[]`
+- **默认值:** `[]`
+
+一个包含要保留为原生方法的全局方法和 API 名称的数组。其他所有可用的定时器都会被模拟。例如,要保留 `setInterval()` 为原生实现,同时模拟其他所有定时器,请将此属性指定为 `['setInterval']`。
+
+当通过 `--pool=forks` 在 `node:child_process` 中运行 Vitest 时,不支持模拟 `nextTick`。使用 `--pool=forks` 运行时,Vitest 会自动将 `nextTick` 添加到 `toNotFake` 数组中。
+
+::: warning
+不支持同时使用 `toFake` 和 `toNotFake`。
+:::
## fakeTimers.loopLimit
-- **Type:** `number`
-- **Default:** `10_000`
+- **类型:** `number`
+- **默认值:** `10_000`
-The maximum number of timers that will be run when calling [`vi.runAllTimers()`](/api/vi#vi-runalltimers).
+调用 [`vi.runAllTimers()`](/api/vi#vi-runalltimers) 时将运行的最大计时器数量。
## fakeTimers.shouldAdvanceTime
-- **Type:** `boolean`
-- **Default:** `false`
+- **类型:** `boolean`
+- **默认值:** `false`
-Tells @sinonjs/fake-timers to increment mocked time automatically based on the real system time shift (e.g. the mocked time will be incremented by 20ms for every 20ms change in the real system time).
+告诉 @sinonjs/fake-timers 根据真实系统时间的变化自动递增模拟时间(例如,真实系统时间变化 20ms 时,模拟时间也会递增 20ms)。
## fakeTimers.advanceTimeDelta
-- **Type:** `number`
-- **Default:** `20`
+- **类型:** `number`
+- **默认值:** `20`
-Relevant only when using with `shouldAdvanceTime: true`. increment mocked time by advanceTimeDelta ms every advanceTimeDelta ms change in the real system time.
+仅在使用 `shouldAdvanceTime: true` 时相关。真实系统时间每变化 advanceTimeDelta 毫秒,模拟时间就会递增 advanceTimeDelta 毫秒。
## fakeTimers.shouldClearNativeTimers
-- **Type:** `boolean`
-- **Default:** `true`
+- **类型:** `boolean`
+- **默认值:** `true`
-Tells fake timers to clear "native" (i.e. not fake) timers by delegating to their respective handlers. When disabled, it can lead to potentially unexpected behavior if timers existed prior to starting fake timers session.
+指示假计时器通过委托给它们各自的处理函数来清除 “原生”(即非假)计时器。如果禁用此功能,当伪计时器会话启动前已存在计时器时,可能导致意外行为。
diff --git a/config/file.md b/config/file.md
index bc4a239a9..83e4c89d3 100644
--- a/config/file.md
+++ b/config/file.md
@@ -25,7 +25,7 @@ export default defineConfig({
})
```
-`
+Line 1
+Line 2
Line 3
+Line 4
+
Hello world
+``` + +```yaml +- paragraph: Hello world +``` + +### 属性 {#attributes} + +ARIA 状态和属性显示在方括号中: + +| HTML | 快照 | +| ---------------------------------------------------------------------- | ----------------------------------------- | +| `` | `- checkbox "Agree" [checked]` | +| `` | `- checkbox "Select all" [checked=mixed]` | +| `` | `- button "Submit" [disabled]` | +| `` | `- button "Menu" [expanded]` | +| `
+
+
+## 源码位置 {#source-location}
+
+打开追踪后,你会注意到 Vitest 会将浏览器交互分组,并将它们链接回触发这些交互的测试代码确切行号。以下情况会自动发生:
+
+- `expect.element(...)` 断言
+- 交互式操作,如 `click`、`fill`、`type`、`hover`、`selectOptions`、`upload`、`dragAndDrop`、`tab`、`keyboard`、`wheel` 和截图
+
+在底层,Playwright 仍然像往常一样记录其自己的底层操作事件。Vitest 用源码位置组包装它们,这样你可以直接从追踪时间线跳转到测试中的相关行。
+
+对于未自动覆盖的内容,你可以使用 `page.mark()` 或 `locator.mark()` 添加自己的追踪组,详情请参阅上文 [追踪标记](#trace-markers)。
diff --git a/guide/browser/retry-ability.md b/guide/browser/retry-ability.md
index f64b34f6d..8c971235e 100644
--- a/guide/browser/retry-ability.md
+++ b/guide/browser/retry-ability.md
@@ -1,8 +1,8 @@
---
-title: Retry-ability | 浏览器模式
+title: 重试机制 | 浏览器模式
---
-# Retry-ability
+# 重试机制 {#retry-ability}
浏览器中的测试由于其异步特性,可能会不一致地失败。因此,即使条件延迟(如超时、网络请求或动画),也必须有办法保证断言成功。为此,Vitest 通过 [`expect.poll`](/api/expect#poll)和 `expect.element` API 提供了可重试的断言:
@@ -13,14 +13,14 @@ import { expect, test } from 'vitest'
test('error banner is rendered', async () => {
triggerError()
- // @testing-library provides queries with built-in retry-ability
- // It will try to find the banner until it's rendered
+ // @testing-library 提供具备内置重试能力的查询方法
+ // 将持续尝试查找 banner 直到其渲染完成
const banner = await screen.findByRole('alert', {
name: /error/i,
})
- // Vitest provides `expect.element` with built-in retry-ability
- // It will check `element.textContent` until it's equal to "Error!"
+ // Vitest 提供具备内置重试能力的 `expect.element`
+ // 将持续检查 `element.textContent` 直到其等于 "Error!"
await expect.element(banner).toHaveTextContent('Error!')
})
```
@@ -31,7 +31,7 @@ test('error banner is rendered', async () => {
`toHaveTextContent` 和所有其他 [`@testing-library/jest-dom`](https://github.com/testing-library/jest-dom)断言在没有内置重试机制的常规`expect`中仍然可用:
```ts
-// will fail immediately if .textContent is not `'Error!'`
+// 如果 .textContent 不是 `'Error!'` 将立即失败
expect(banner).toHaveTextContent('Error!')
```
:::
diff --git a/guide/browser/trace-view.md b/guide/browser/trace-view.md
index 68ecaf547..1748b7b4b 100644
--- a/guide/browser/trace-view.md
+++ b/guide/browser/trace-view.md
@@ -1,74 +1,188 @@
-# 追踪视图 {#trace-view}
+# Trace View
+
+
+Example replay uses [Vuetify's](https://github.com/vuetifyjs/vuetify) `VDateInput` component.
+
+## Common Setups
+
+
+
+`browser.traceView` records traces. The browser mode, UI, and reporter options determine where you inspect them.
+
+| Goal | Configuration | Result |
+| --- | --- | --- |
+| Add trace replay to the normal local browser UI | `vitest --browser.traceView` | Uses the default local headed browser UI and adds trace replay for recorded tests. |
+| Debug locally with a headless browser | `vitest --browser.traceView --browser.headless --ui` | The browser runs headless, while Vitest UI shows recorded trace steps and snapshots. |
+| Debug locally with a visible browser window and Vitest UI | `vitest --browser.traceView --browser.headless=false --browser.ui=false --ui` | Vitest UI shows recorded trace steps and snapshots, while tests run in a separate headed browser window. |
+| Generate a static report for CI or run mode | `vitest run --browser.traceView --reporter=html` | The HTML report includes the trace viewer for recorded tests. |
+
+## Relation to Playwright Traces
+
+`browser.traceView` and [`browser.trace`](/config/browser/trace) are independent features:
+
+| | `browser.traceView` | `browser.trace` |
+| ---------------------- | --------------------------------------------------------- | ---------------------------------------------- |
+| Provider support | All providers (playwright, webdriverio, preview) | Playwright only |
+| Viewer | Browser UI / Vitest UI / HTML reporter | Playwright Trace Viewer / trace.playwright.dev |
+| Format | [rrweb](https://github.com/rrweb-io/rrweb) DOM snapshots | Playwright `.trace.zip` |
+| Requires external tool | No | Yes (`npx playwright show-trace`) |
+
+You can enable both at the same time. See [Playwright Traces](./playwright-traces) for the `browser.trace` workflow.
+## Recorded Steps
+
+Trace entries are recorded automatically for:
+
+- `expect.element(...)` assertions
+- Interactive actions like `click`, `dblClick`, `tripleClick`, `fill`, `clear`, `type`, `hover`, `selectOptions`, `upload`, `dragAndDrop`, `tab`, `keyboard`, `wheel`, and screenshots
+- Test runner lifecycle event (e.g. `vitest:onAfterRetryTask` is recorded after each test and retry run)
+
+Each entry captures the DOM state at that point, along with timing information, the selector, and the source location that triggered it.
+
+In Vitest UI, trace entries are streamed as the test runs, so you can inspect recorded steps before the test finishes. Long-running actions, `expect.element(...)` assertions, and callback `page.mark()` entries appear as in-progress steps first, then update with their final status and duration.
+
+## Custom Trace Entries
+
+You can insert your own named entries with `page.mark()` and `locator.mark()`:
+
+```ts
+import { page } from 'vitest/browser'
+
+await page.mark('content rendered')
+
+await page.getByRole('button', { name: 'Sign in' }).mark('sign in button')
```
-chromium-my-test-0-0.trace.zip
-^^^^^^^^ 项目名称
- ^^^^^^ 测试名称
- ^ 重复次数
- ^ 重试次数
+
+You can also pass a callback to `page.mark()`. Note that grouping is not currently supported — each inner action is recorded individually, and the mark entry appears at the end:
+
+```ts
+await page.mark('sign in flow', async () => {
+ await page.getByRole('textbox', { name: 'Email' }).fill('john@example.com')
+ await page.getByRole('textbox', { name: 'Password' }).fill('secret')
+ await page.getByRole('button', { name: 'Sign in' }).click()
+})
```
-要更改输出目录,可以在 `test.browser.trace` 配置中设置 `tracesDir` 选项。这样所有追踪文件将按测试文件分组存储在同一目录中。
+Use [`vi.defineHelper()`](/api/vi#vi-defineHelper) to make entries from reusable helpers point to the call site rather than the helper's internals:
+
+```ts
+import { vi } from 'vitest'
+import { page } from 'vitest/browser'
-```ts [vitest.config.js]
+const renderContent = vi.defineHelper(async (html: string) => {
+ document.body.innerHTML = html
+ await page.elementLocator(document.body).mark('render')
+})
+
+test('shows button', async () => {
+ await renderContent('') // trace entry points here
+})
+```
+
+## Retries and Repeats
+
+Each attempt — retry or repeat — is recorded as a separate trace. When a test has multiple attempts, the viewer opens the most recent one by default. You can switch between attempts in the Report tab.
+
+## Snapshot Fidelity
+
+By default, trace view captures the DOM tree, attributes, form values, same-origin readable CSS, element scroll positions, viewport size, and window scroll position. Images and canvas pixels are not inlined by default.
+
+Stylesheets are captured through the browser's CSSOM. Readable `
diff --git a/guide/learn/matchers.md b/guide/learn/matchers.md
new file mode 100644
index 000000000..de561fe18
--- /dev/null
+++ b/guide/learn/matchers.md
@@ -0,0 +1,287 @@
+---
+title: 使用匹配器 | 指南
+prev:
+ text: 编写测试
+ link: /guide/learn/writing-tests
+next:
+ text: 测试异步代码
+ link: /guide/learn/async
+---
+
+# 使用匹配器 {#using-matchers}
+
+Vitest 使用 `expect` 配合 “匹配器” 来断言值是否满足特定条件。本章介绍最常用的匹配器。完整列表请参阅 [Expect API](/api/expect)。
+
+## 常见匹配器 {#common-matchers}
+
+测试一个值时,最简单的方法是检查它是否精确相等。当你编写 `expect(2 + 2).toBe(4)` 时,[`toBe`](/api/expect#tobe) 匹配器使用 [`Object.is`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is) 检查值是否完全等于 `4`。
+
+```js
+import { expect, test } from 'vitest'
+
+test('two plus two is four', () => {
+ expect(2 + 2).toBe(4)
+})
+```
+
+这种方式适用于检查数字、字符串和布尔值等原始值。但在比较对象时,`toBe` 检查的是 **恒等性**(它们是否是内存中的同一个对象),而不是它们是否具有相同的结构。这时就需要用到 [`toEqual`](/api/expect#toequal)。它会递归地比较对象或数组的每个字段或元素,忽略对象恒等性:
+
+```js
+test('object assignment', () => {
+ const data = { one: 1 }
+ data.two = 2
+
+ expect(data).toEqual({ one: 1, two: 2 })
+})
+```
+
+下面这个例子更清楚地展示了两者之间的差异。两个内容相同的对象 `toEqual` 会通过,但 `toBe` 会失败:
+
+```js
+test('toBe vs toEqual', () => {
+ const a = { name: 'Alice' }
+ const b = { name: 'Alice' }
+
+ // 它们在内存中是不同的对象
+ expect(a).not.toBe(b)
+
+ // 但结构相同
+ expect(a).toEqual(b)
+})
+```
+
+还有 [`toStrictEqual`](/api/expect#tostrictequal),它在三个方面比 `toEqual` 更严格:检查 `undefined` 属性、区分稀疏数组和 `undefined` 值,以及验证对象是否具有相同的类型(不仅仅是相同的结构):
+
+```js
+test('toEqual vs toStrictEqual', () => {
+ // toEqual 忽略 undefined 属性
+ expect({ a: 1 }).toEqual({ a: 1, b: undefined })
+
+ // toStrictEqual 会捕获它们
+ expect({ a: 1 }).not.toStrictEqual({ a: 1, b: undefined })
+
+ // toEqual 不检查对象类型
+ class User {
+ constructor(name) {
+ this.name = name
+ }
+ }
+ expect(new User('Alice')).toEqual({ name: 'Alice' })
+ expect(new User('Alice')).not.toStrictEqual({ name: 'Alice' })
+})
+```
+
+::: tip
+一个好的经验法则是:对原始值类型(数字、字符串、布尔值)使用 `toBe`,比较结构时使用 `toEqual`,当你还关心类型和显式的 `undefined` 值时使用 `toStrictEqual`。
+:::
+
+你可以在任何匹配器前插入 `.not` 来否定它。适用于验证某些 _不成立_ 情况:
+
+```js
+test('adding positive numbers is not zero', () => {
+ expect(1 + 2).not.toBe(0)
+})
+```
+
+## 真值 {#truthiness}
+
+在测试中,有时你需要区分 `undefined`、`null` 和 `false`。其他时候你不关心确切的值,只想知道具体是真值还是假值。Vitest 为这两种情况提供了相应的匹配器:
+
+- [`toBeNull`](/api/expect#tobenull) 仅匹配 `null`
+- [`toBeUndefined`](/api/expect#tobeundefined) 仅匹配 `undefined`
+- [`toBeDefined`](/api/expect#tobedefined) 是 `toBeUndefined` 的反义。任何非 `undefined` 的值都会通过
+- [`toBeTruthy`](/api/expect#tobetruthy) 匹配任何 `if` 语句会视为 true 的值
+- [`toBeFalsy`](/api/expect#tobefalsy) 匹配任何 `if` 语句会视为 false 的值
+
+你应该选择最能精确描述你检查内容的匹配器。当你实际意思是 `toBeDefined` 时使用 `toBeTruthy` 可能会掩盖 bug,因为 `0` 和 `""` 都是已定义的但却是假值。
+
+```js
+test('null checks', () => {
+ const n = null
+
+ expect(n).toBeNull()
+ expect(n).toBeDefined()
+ expect(n).toBeFalsy()
+ expect(n).not.toBeTruthy()
+ expect(n).not.toBeUndefined()
+})
+
+test('zero', () => {
+ const z = 0
+
+ expect(z).toBeDefined() // 通过:0 已定义
+ expect(z).toBeFalsy() // 通过:0 是假值
+ expect(z).not.toBeNull() // 通过:0 不是 null
+})
+```
+
+## 数字 {#numbers}
+
+大多数数字比较都很直接。Vitest 提供了大于、小于和相等检查的匹配器:
+
+```js
+test('number comparisons', () => {
+ const value = 2 + 2
+
+ expect(value).toBeGreaterThan(3)
+ expect(value).toBeGreaterThanOrEqual(3.5)
+ expect(value).toBeLessThan(5)
+ expect(value).toBeLessThanOrEqual(4.5)
+
+ // 对于精确相等,toBe 和 toEqual 对数字的效果相同
+ expect(value).toBe(4)
+ expect(value).toEqual(4)
+})
+```
+
+浮点数运算有一个常见的陷阱。在 JavaScript 中,`0.1 + 0.2` 并不完全等于 `0.3`(它是 `0.30000000000000004`)。这意味着 `toBe(0.3)` 检查会失败。请改用 [`toBeCloseTo`](/api/expect#tobecloseto),它会在较小的舍入误差范围内比较数字:
+
+```js
+test('adding floating point numbers', () => {
+ const value = 0.1 + 0.2
+
+ // 由于浮点数舍入,这不会通过
+ // expect(value).toBe(0.3)
+
+ // 这个可以
+ expect(value).toBeCloseTo(0.3)
+})
+```
+
+## 字符串 {#strings}
+
+你可以使用 [`toMatch`](/api/expect#tomatch) 根据正则表达式测试字符串。当你关心形式而非确切值时,这特别方便,例如检查错误消息是否包含某个单词,或者 URL 是否符合特定格式:
+
+```js
+test('there is no I in team', () => {
+ expect('team').not.toMatch(/I/)
+})
+
+test('version string matches semver format', () => {
+ expect('vitest@1.0.0').toMatch(/vitest@\d+\.\d+\.\d+/)
+})
+```
+
+## 数组和可迭代对象 {#arrays-and-iterables}
+
+[`toContain`](/api/expect#tocontain) 检查数组(或任何可迭代对象,如 `Set`)是否包含特定项。它使用 `===` 进行比较,因此对原始类型效果很好:
+
+```js
+test('the shopping list has milk in it', () => {
+ const shoppingList = ['milk', 'bread', 'eggs', 'butter']
+
+ expect(shoppingList).toContain('milk')
+ expect(new Set(shoppingList)).toContain('milk')
+})
+```
+
+如果你需要检查数组是否包含具有特定结构的对象,请改用 [`toContainEqual`](/api/expect#tocontainequal)。它的工作原理类似于 `toEqual`,但用于数组中的单个元素。
+
+## 对象 {#objects}
+
+测试对象时,你通常只想检查几个重要的字段,而不是检查每个属性。[`toMatchObject`](/api/expect#tomatchobject) 正是为此而设计。它验证对象至少包含你指定的属性,并忽略任何额外的属性:
+
+```js
+test('user has expected fields', () => {
+ const user = {
+ id: 1,
+ name: 'Alice',
+ email: 'alice@example.com',
+ createdAt: '2024-01-01'
+ }
+
+ // 这里我们只关心 name 和 email
+ expect(user).toMatchObject({
+ name: 'Alice',
+ email: 'alice@example.com',
+ })
+})
+```
+
+对于检查单个属性,特别是嵌套属性,[`toHaveProperty`](/api/expect#tohaveproperty) 更具可读性。你传递一个点分隔的路径,并可选择性地传递一个期望值:
+
+```js
+test('object has property', () => {
+ const user = {
+ name: 'Alice',
+ address: { city: 'Paris', zip: '75001' }
+ }
+
+ expect(user).toHaveProperty('name')
+ expect(user).toHaveProperty('name', 'Alice')
+ expect(user).toHaveProperty('address.city', 'Paris')
+ expect(user).toHaveProperty('address.zip')
+})
+```
+
+## 非对称匹配器 {#asymmetric-matchers}
+
+有时你不知道确切的值,但知道它的类型或结构。非对称匹配器让你可以描述值应该 _看起来应该是什么样_,而无需确定确切内容。它们可以在任何进行深度比较的匹配器内部工作,例如 `toEqual` 或 `toMatchObject`:
+
+```js
+test('user has the right shape', () => {
+ const user = createUser('Alice')
+
+ expect(user).toEqual({
+ id: expect.any(Number),
+ name: 'Alice',
+ email: expect.stringContaining('@'),
+ roles: expect.arrayContaining(['viewer']),
+ })
+})
+```
+
+最常用的非对称匹配器有:
+
+- [`expect.any(Constructor)`](/api/expect#expect-any) 匹配使用给定构造函数创建的任何值(例如 `Number`、`String`、`Array`)
+- [`expect.stringContaining(str)`](/api/expect#expect-stringcontaining) 匹配包含给定子字符串的字符串
+- [`expect.stringMatching(regex)`](/api/expect#expect-stringmatching) 根据正则表达式匹配字符串
+- [`expect.arrayContaining(arr)`](/api/expect#expect-arraycontaining) 匹配包含预期数组中所有项的数组(顺序无关紧要,允许额外项)
+- [`expect.objectContaining(obj)`](/api/expect#expect-objectcontaining) 匹配至少包含指定属性的对象
+
+## 异常 {#exceptions}
+
+要验证函数是否抛出错误,请使用 [`toThrow`](/api/expect#tothrow)。你需要将调用包装在另一个函数中,以便 Vitest 可以捕获错误而不是让它导致测试崩溃:
+
+```js
+function compileCode(code) {
+ if (code === '') {
+ throw new Error('Cannot compile empty string')
+ }
+ return code
+}
+
+test('compiling an empty string throws', () => {
+ // 检查它是否抛出异常
+ expect(() => compileCode('')).toThrow()
+
+ // 检查错误信息
+ expect(() => compileCode('')).toThrow('Cannot compile empty string')
+
+ // 使用正则表达式检查错误信息
+ expect(() => compileCode('')).toThrow(/empty string/)
+})
+```
+
+::: tip
+包装函数 `() => compileCode('')` 很重要。如果你写成 `expect(compileCode('')).toThrow()`,错误会在 `expect` 有机会捕获它 _之前_ 就被抛出,测试将因未处理的错误而失败。
+:::
+
+## 软断言 {#soft-assertions}
+
+通常,失败的断言会立即停止测试。这适用大多数情况,但有时你想检查多个独立项并一次性看到所有失败,而不是逐个修复。
+
+[`expect.soft`](/api/expect#soft) 正是为此而设计。它会记录失败,但让测试继续运行:
+
+```js
+test('check multiple fields', () => {
+ const user = { name: 'Alice', age: 30, role: 'admin' }
+
+ expect.soft(user.name).toBe('Alice')
+ expect.soft(user.age).toBe(25) // 这个会失败,但执行会继续
+ expect.soft(user.role).toBe('admin')
+ // 测试报告将显示 age 不匹配
+})
+```
+
+这对于验证 API 响应或复杂对象的结构特别有用,因为多个字段可能同时出错。
diff --git a/guide/learn/mock-functions.md b/guide/learn/mock-functions.md
new file mode 100644
index 000000000..8b551a7c6
--- /dev/null
+++ b/guide/learn/mock-functions.md
@@ -0,0 +1,291 @@
+---
+title: 模拟函数 | 指南
+prev:
+ text: 初始化与清理
+ link: /guide/learn/setup-teardown
+next:
+ text: 快照测试
+ link: /guide/learn/snapshots
+---
+
+# 模拟函数 {#mock-functions}
+
+在编写测试时,你经常需要用一个可控的版本来替换真实的函数或模块。这被称为 **模拟**。这样做通常有几个原因:比如真实函数会发起网络请求,从而拖慢测试速度,或者你需要模拟一种难以通过真实代码触发的错误。模拟函数可以让你控制依赖项的返回值、观察它是如何被调用的,并将被测代码与副作用隔离开来。
+
+Vitest 通过 [`vi`](/api/vi) 对象提供模拟工具函数。
+
+## 创建 Mock 函数 {#creating-mock-functions}
+
+创建模拟最简单的方法是使用 [`vi.fn()`](/api/vi#vi-fn)。这会得到一个默认什么都不做(仅返回 `undefined`)的函数,但它会追踪每一次调用:
+
+```js
+import { expect, test, vi } from 'vitest'
+
+test('mock function basics', () => {
+ const getApples = vi.fn()
+
+ // 调用它
+ getApples()
+
+ // 检查它是否被调用过
+ expect(getApples).toHaveBeenCalled()
+ expect(getApples).toHaveBeenCalledTimes(1)
+
+ // 默认情况下,模拟函数返回 undefined
+ expect(getApples()).toBeUndefined()
+})
+```
+
+## 模拟返回值 {#mock-return-values}
+
+一个总是返回 `undefined` 的模拟函数本身并没有太大用处。通常你会希望控制它的返回值,这样就可以测试你的代码在面对不同返回结果时会如何响应:
+
+```js
+import { expect, test, vi } from 'vitest'
+
+test('mock return values', () => {
+ const getApples = vi.fn()
+
+ // 总是返回这个值
+ getApples.mockReturnValue(10)
+ expect(getApples()).toBe(10)
+
+ // 仅返回此值一次,然后回退到默认值
+ getApples.mockReturnValueOnce(20)
+ expect(getApples()).toBe(20) // 20(一次性)
+ expect(getApples()).toBe(10) // 回到默认值
+})
+```
+
+如果你模拟的函数是异步的,请使用 [`mockResolvedValue`](/api/mock#mockresolvedvalue) 和 [`mockRejectedValue`](/api/mock#mockrejectedvalue) 来控制 Promise 的结果:
+
+```js
+test('mock async return values', async () => {
+ const fetchUser = vi.fn()
+
+ fetchUser.mockResolvedValue({ name: 'Alice' })
+ const user = await fetchUser()
+ expect(user.name).toBe('Alice')
+
+ fetchUser.mockRejectedValue(new Error('Not found'))
+ await expect(fetchUser()).rejects.toThrow('Not found')
+})
+```
+
+::: tip
+无论模拟函数接收到什么参数,`mockReturnValue` 始终返回相同的值。如果需要根据参数返回不同的结果,可以使用 [`vi.when`](/api/vi#vi-when) 为不同的参数组合指定相应行为,无须自行编写 `if/else` 逻辑。详情请参阅 [条件模拟](/guide/recipes/conditional-mocking) 示例。
+:::
+
+## 模拟实现 {#mock-implementation}
+
+有时你需要的不只是一个固定的返回值。而是希望模拟函数能根据传入的参数真正执行一些逻辑。[`mockImplementation`](/api/mock#mockimplementation) 允许你提供一个完整的替代函数:
+
+```js
+import { expect, test, vi } from 'vitest'
+
+test('mock with custom implementation', () => {
+ const add = vi.fn()
+ add.mockImplementation((a, b) => a + b)
+
+ expect(add(1, 2)).toBe(3)
+ expect(add(10, 20)).toBe(30)
+})
+```
+
+作为快捷方式,你可以直接将实现传递给 `vi.fn()`:
+
+```js
+const add = vi.fn((a, b) => a + b)
+```
+
+## 检查调用 {#inspecting-calls}
+
+模拟函数最强大的功能之一是它们能记住每一次调用。你可以断言函数被调用了多少次、接收了什么参数以及返回了什么:
+
+```js
+import { expect, test, vi } from 'vitest'
+
+test('inspecting mock calls', () => {
+ const greet = vi.fn()
+
+ greet('Alice')
+ greet('Bob', 'Charlie')
+
+ // 调用次数
+ expect(greet).toHaveBeenCalledTimes(2)
+
+ // 检查特定参数
+ expect(greet).toHaveBeenCalledWith('Alice')
+ expect(greet).toHaveBeenCalledWith('Bob', 'Charlie')
+
+ // 按位置检查特定调用的参数
+ expect(greet).toHaveBeenNthCalledWith(1, 'Alice')
+ expect(greet).toHaveBeenLastCalledWith('Bob', 'Charlie')
+
+ // 访问原始调用数据
+ expect(greet.mock.calls).toEqual([
+ ['Alice'],
+ ['Bob', 'Charlie'],
+ ])
+})
+```
+
+`.mock` 属性让你能完全访问调用历史。除了 `.mock.calls`,你还可以检查 `.mock.results` 来查看模拟函数每次调用返回了什么或抛出了什么:
+
+```js
+const double = vi.fn(x => x * 2)
+
+double(5)
+double(10)
+
+expect(double.mock.results).toEqual([
+ { type: 'return', value: 10 },
+ { type: 'return', value: 20 },
+])
+```
+
+::: warning
+`.mock.calls` 存储的是对参数的引用,而不是副本。如果你将一个对象传递给模拟函数,之后又修改了它,那么记录的调用将反映修改后的状态,而不是调用时的状态:
+
+```js
+const fn = vi.fn()
+const obj = { count: 1 }
+
+fn(obj)
+obj.count = 2
+
+// ❌ 这会失败!mock.calls[0][0].count 现在是 2,而不是 1
+expect(fn).toHaveBeenCalledWith({ count: 1 })
+```
+
+如果你需要对原始值进行断言,可以使用 `mockImplementation` 在调用时捕获一个克隆:
+
+```js
+const calls = []
+const fn = vi.fn((obj) => {
+ calls.push(structuredClone(obj))
+})
+
+const obj = { count: 1 }
+fn(obj)
+obj.count = 2
+
+expect(calls[0]).toEqual({ count: 1 }) // ✅ 通过
+```
+
+或者,你可以在修改发生之前进行断言。
+:::
+
+## 监听方法 {#spying-on-methods}
+
+[`vi.spyOn`](/api/vi#vi-spyon) 与 `vi.fn()` 有一个重要区别。它不是创建一个全新的函数,而是包装对象上 _现有方法_。默认情况下原始实现仍然会正常执行,但你可以观察每次调用,并且在需要时选择覆盖它的行为:
+
+```js
+import { expect, test, vi } from 'vitest'
+
+const calculator = {
+ add(a, b) {
+ return a + b
+ },
+}
+
+test('spy on a method', () => {
+ const spy = vi.spyOn(calculator, 'add')
+
+ // 原始实现仍然工作
+ expect(calculator.add(1, 2)).toBe(3)
+
+ // 但我们可以观察调用
+ expect(spy).toHaveBeenCalledWith(1, 2)
+ expect(spy).toHaveBeenCalledTimes(1)
+})
+
+test('spy can override implementation', () => {
+ const spy = vi.spyOn(calculator, 'add')
+ spy.mockReturnValue(42)
+
+ expect(calculator.add(1, 2)).toBe(42)
+})
+```
+
+适用于你想验证你的代码正确调用了某个方法,而不是完全替换该方法的行为。
+
+## 重置模拟 {#resetting-mocks}
+
+模拟函数随着测试运行会积累状态。它们会记住每次调用、每个返回值以及你设置的任何自定义实现。如果你不在测试之间重置它们,这种状态可能会泄漏并导致难以理解的失败。Vitest 提供了三个级别的清理函数:
+
+- **[`mockClear()`](/api/mock#mockclear)** 清除记录的调用历史和返回值,但保留你设置的任何自定义实现
+- **[`mockReset()`](/api/mock#mockreset)** 执行 `mockClear` 的所有操作,并且还会移除所有自定义实现,将模拟恢复到其默认状态
+- **[`mockRestore()`](/api/mock#mockrestore)** 专门用于通过 `vi.spyOn` 创建的 spy。它会恢复对象的原始方法,有效地撤销 spy。对于 `vi.fn()` 创建的模拟,其行为与 `mockReset` 相同
+
+在实践中,最简单的方法是在每个测试后自动恢复所有模拟:
+
+```js
+import { afterEach, expect, test, vi } from 'vitest'
+
+const calculator = {
+ add: (a, b) => a + b,
+}
+
+afterEach(() => {
+ vi.restoreAllMocks()
+})
+
+test('spy is restored after the test', () => {
+ const spy = vi.spyOn(calculator, 'add').mockReturnValue(42)
+ expect(calculator.add(1, 2)).toBe(42)
+ // afterEach 会将 calculator.add 恢复到原始实现
+})
+```
+
+更好的做法是,你可以通过 [`restoreMocks`](/config/restoremocks) 选项全局配置此功能,这样你完全不需要 `afterEach`:
+
+```js [vitest.config.js]
+import { defineConfig } from 'vitest/config'
+
+export default defineConfig({
+ test: {
+ restoreMocks: true,
+ },
+})
+```
+
+## 模拟模块 {#mocking-modules}
+
+有时你需要替换不是单个函数,而是 [整个模块](/guide/mocking/modules)。例如,一个你不想在测试期间运行的数据库客户端或日志记录器。[`vi.mock`](/api/vi#vi-mock) 允许你用模拟实现替换模块的导出:
+
+```js
+import { expect, test, vi } from 'vitest'
+import { getUser } from './db.js'
+
+vi.mock(import('./db.js'), () => ({
+ getUser: vi.fn(),
+}))
+
+test('mock a module', () => {
+ vi.mocked(getUser).mockReturnValue({ name: 'Alice' })
+
+ const user = getUser(1)
+ expect(user.name).toBe('Alice')
+ expect(getUser).toHaveBeenCalledWith(1)
+})
+```
+
+::: warning
+[`vi.mock`](/api/vi#vi-mock) 调用会被提升到文件顶部。它们在所有导入之前运行。这意味着 mock 版本会在你的测试代码运行时就已经就位。
+:::
+
+::: warning
+始终传递 `import('./db.js')` 而不是纯字符串 `'./db.js'`。当你使用 `import()` 时,TypeScript 可以推断模块的类型,因此工厂函数的返回值会进行类型检查,并且 `importOriginal` 会返回正确类型的模块。此外,如果你在 IDE 中重命名或移动文件,导入路径会自动更新。如果使用字符串,你将失去类型安全和自动重构能力。
+:::
+
+Vitest 为特定的模拟场景提供了全方面的指南:
+
+- [模拟函数](/guide/mocking/functions)
+- [模拟模块](/guide/mocking/modules)
+- [模拟计时器](/guide/mocking/timers)
+- [模拟日期](/guide/mocking/dates)
+- [模拟全局对象](/guide/mocking/globals)
+- [模拟请求](/guide/mocking/requests)
+- [模拟文件系统](/guide/mocking/file-system)
+- [模拟类](/guide/mocking/classes)
diff --git a/guide/learn/setup-teardown.md b/guide/learn/setup-teardown.md
new file mode 100644
index 000000000..1efd6e2fd
--- /dev/null
+++ b/guide/learn/setup-teardown.md
@@ -0,0 +1,253 @@
+---
+title: 初始化与清理 | 指南
+prev:
+ text: 测试异步代码
+ link: /guide/learn/async
+next:
+ text: 模拟函数
+ link: /guide/learn/mock-functions
+---
+
+# 初始化与清理 {#setup-and-teardown}
+
+在编写测试时,经常需要在测试运行前进行一些准备工作(例如初始化数据、连接数据库、启动服务器),并在测试结束后进行清理。为了避免在每个测试中重复这些代码,Vitest 提供了生命周期钩子,它们会在恰当的时机自动执行。
+
+## 为每个测试重复初始化 {#repeating-setup-for-each-test}
+
+最常用的钩子是 [`beforeEach`](/api/hooks#beforeeach) 和 [`afterEach`](/api/hooks#aftereach)。顾名思义,`beforeEach` 会在文件中的每个测试之前运行,而 `afterEach` 会在每个测试之后运行,即使测试失败也是如此。这使得它们非常适合确保每个测试都从一个已知的初始状态开始。
+
+```js
+import { afterEach, beforeEach, expect, test } from 'vitest'
+
+let items
+
+beforeEach(() => {
+ items = ['apple', 'banana', 'cherry']
+})
+
+afterEach(() => {
+ items = []
+})
+
+test('items starts with 3 fruits', () => {
+ expect(items).toHaveLength(3)
+})
+
+test('can remove an item', () => {
+ items.pop()
+ expect(items).toHaveLength(2)
+})
+
+test('can add an item', () => {
+ items.push('date')
+ expect(items).toHaveLength(4)
+ // 运行此测试前,beforeEach 会将数组重置为 3 项,
+ // 由此可见,上一个测试对数组的修改不会影响当前测试。
+})
+```
+
+如果没有这些钩子,先前测试中的 `pop` 或 `push` 等操作会影响后续测试,这也是测试结果不稳定的常见原因。使用这些钩子,可以确保每个测试开始时都处于干净的状态。
+
+## 一次性初始化 {#one-time-setup}
+
+有些初始化过于耗时,不适合为每个测试重复执行。如果你需要连接数据库、启动服务器或加载大型文件,在每个测试前都做这些操作会显著拖慢测试套件的速度。这正是 [`beforeAll`](/api/hooks#beforeall) 和 [`afterAll`](/api/hooks#afterall) 的用武之地。它们在整个文件运行期间只执行一次:
+
+```js
+import { afterAll, beforeAll, expect, test } from 'vitest'
+
+let db
+
+beforeAll(async () => {
+ db = await connectToDatabase()
+})
+
+afterAll(async () => {
+ await db.close()
+})
+
+test('can query users', async () => {
+ const users = await db.query('SELECT * FROM users')
+ expect(users.length).toBeGreaterThan(0)
+})
+
+test('can query products', async () => {
+ const products = await db.query('SELECT * FROM products')
+ expect(products.length).toBeGreaterThan(0)
+})
+```
+
+数据库连接只创建一次,在所有测试间共享,并在文件运行结束时关闭。
+
+## 使用 `describe` 进行作用域划分 {#scoping-with-describe}
+
+在 `describe` 块内定义的钩子仅适用于该块内的测试。顶层的钩子则适用于文件中的每个测试。这让你可以为不同的测试组初始化不同的状态:
+
+```js
+import { beforeEach, describe, expect, test } from 'vitest'
+
+describe('math operations', () => {
+ let value
+
+ beforeEach(() => {
+ value = 0
+ })
+
+ test('can add', () => {
+ value += 5
+ expect(value).toBe(5)
+ })
+
+ test('can subtract', () => {
+ value -= 3
+ expect(value).toBe(-3) // value 被 beforeEach 重置为 0
+ })
+})
+
+describe('string operations', () => {
+ let text
+
+ beforeEach(() => {
+ text = 'hello'
+ })
+
+ test('can uppercase', () => {
+ expect(text.toUpperCase()).toBe('HELLO')
+ })
+})
+```
+
+每个 `describe` 块都有其自己的 `beforeEach` 钩子,该钩子仅影响其内部的测试。字符串测试不知道也不关心 `value` 变量,反之亦然。
+
+## 执行顺序 {#execution-order}
+
+当你在多个层级上设置钩子时,了解它们的执行顺序会很有用。顶层钩子包裹着内层钩子,形成一种嵌套结构:
+
+```js
+import { afterAll, afterEach, beforeAll, beforeEach, describe, test } from 'vitest'
+
+beforeAll(() => console.log('1 - beforeAll'))
+afterAll(() => console.log('8 - afterAll'))
+beforeEach(() => console.log('2 - beforeEach'))
+afterEach(() => console.log('5 - afterEach'))
+
+describe('suite', () => {
+ beforeEach(() => console.log('3 - inner beforeEach'))
+ afterEach(() => console.log('4 - inner afterEach'))
+
+ test('first test', () => {
+ console.log(' first test')
+ })
+
+ test('second test', () => {
+ console.log(' second test')
+ })
+})
+```
+
+这会产生以下输出:
+
+```
+1 - beforeAll
+2 - beforeEach
+3 - inner beforeEach
+ first test
+4 - inner afterEach
+5 - afterEach
+2 - beforeEach
+3 - inner beforeEach
+ second test
+4 - inner afterEach
+5 - afterEach
+8 - afterAll
+```
+
+注意这里的执行顺序:`beforeAll` 和 `afterAll` 在整个测试套件中只运行一次,而 `beforeEach` 和 `afterEach` 则为每个测试重复执行。在每个测试内部,外层的 `beforeEach` 首先运行(初始化最宽泛的上下文),然后内层的 `beforeEach` 运行(缩小上下文范围)。测试结束后,顺序则相反:内层的 `afterEach` 先清理较窄的上下文,然后外层的 `afterEach` 处理更宽泛的清理工作。
+
+## 使用 `onTestFinished` 进行清理 {#cleanup-with-ontestfinished}
+
+```js
+import { expect, onTestFinished, test } from 'vitest'
+
+test('creates a temporary file', () => {
+ const file = createTempFile()
+ onTestFinished(() => {
+ deleteTempFile(file)
+ })
+
+ expect(file.exists()).toBe(true)
+})
+```
+
+类似的模式也适用于 `beforeEach`。你可以返回一个清理函数,Vitest 会在每个测试后调用它。当初始化和清理操作紧密相关时,这种方式极其方便:
+
+```js
+import { beforeEach } from 'vitest'
+
+beforeEach(() => {
+ const server = startServer()
+ return () => {
+ server.close()
+ }
+})
+```
+
+## 使用 `test.extend` 的 Fixtures {#fixtures-with-test-extend}
+
+上述示例使用 `let` 变量和 `beforeEach` 来初始化共享状态。这种方式可行,但存在一些缺点:变量声明与初始化是分离的,类型需要显式注解,并且容易忘记清理。
+
+Vitest 通过 [`test.extend`](/guide/test-context#extend-test-context) 提供了一个更好的形式。你可以定义可复用的 **fixtures**,它们会自动为每个测试创建并在之后清理:
+
+```js [my-test.js]
+import { test as baseTest } from 'vitest'
+
+export const test = baseTest
+ .extend('db', async ({}, { onCleanup }) => {
+ const db = await createDatabase()
+ onCleanup(() => db.close())
+ return db
+ })
+ .extend('user', async ({ db }) => {
+ return await db.createUser({ name: 'Alice' })
+ })
+```
+
+```js [my-test.test.js]
+import { expect } from 'vitest'
+import { test } from './my-test.js'
+
+test('user is created', ({ db, user }) => {
+ expect(user.name).toBe('Alice')
+})
+```
+
+Fixtures 仅在测试实际使用它们时(通过从上下文中解构)才会初始化,并且它们可以相互依赖。对于大多数初始化和清理形式,这是 `beforeEach`/`afterEach` 的一个很好的替代方案。
+
+有关 fixtures、作用域和覆盖的完整详细信息,请参阅 [测试上下文](/guide/test-context)。
+
+## 初始化文件 {#setup-files}
+
+如果你有一些初始化代码需要在项目中的每个测试文件运行前执行(例如 polyfills、全局配置或自定义匹配器),你可以将其放入一个初始化文件中,并通过 [`setupFiles`](/config/setupfiles) 配置选项指向它:
+
+```js [vitest.config.js]
+import { defineConfig } from 'vitest/config'
+
+export default defineConfig({
+ test: {
+ setupFiles: ['./test/setup.js'],
+ },
+})
+```
+
+```js [test/setup.js]
+// 这会在每个测试文件之前运行
+import { expect } from 'vitest'
+import { customMatchers } from './custom-matchers.js'
+
+expect.extend(customMatchers)
+```
+
+与每个文件运行一次的 `beforeAll` 不同,初始化文件在测试文件甚至开始收集之前,在一个独立的阶段运行。这使得它们非常适合扩展 `expect` API 或配置全局 polyfills 等操作。
+
+::: tip
+对于需要在包装上下文(例如数据库事务或跟踪范围)_内部_ 运行测试的高级场景,请参阅 [`aroundEach`](/api/hooks#aroundeach) 和 [`aroundAll`](/api/hooks#aroundall) 钩子。有关完整的生命周期图,请参阅 [测试运行生命周期](/guide/lifecycle)。
+:::
diff --git a/guide/learn/snapshots.md b/guide/learn/snapshots.md
new file mode 100644
index 000000000..1c703fa30
--- /dev/null
+++ b/guide/learn/snapshots.md
@@ -0,0 +1,176 @@
+---
+title: 快照测试 | 指南
+prev:
+ text: 模拟函数
+ link: /guide/learn/mock-functions
+next:
+ text: 测试实操
+ link: /guide/learn/testing-in-practice
+---
+
+# 快照测试 {#snapshot-testing}
+
+快照测试会捕获一段代码的输出并将其保存到文件中。在后续运行时,将输出结果与已保存的快照进行比较。如果输出发生变化,测试就会失败。这种变化可能是 bug,也可能是快照需要更新。
+
+这种方法特别适合测试会产生结构化输出的场景:例如返回复杂对象的函数、渲染 HTML 的组件,或是生成多行消息的错误格式化器。为每个字段或每行代码手动编写断言既繁琐又脆弱。相反,你可以一次性捕获整个输出,然后由 Vitest 来告诉你输出是否发生了变化。
+
+## 你的第一个快照 {#your-first-snapshot}
+
+要创建快照测试,只需将值传递给 [`toMatchSnapshot()`](/api/expect#tomatchsnapshot) 方法即可:
+
+```js
+import { expect, test } from 'vitest'
+
+function generateGreeting(name) {
+ return {
+ message: `Hello, ${name}!`,
+ timestamp: null,
+ version: 2,
+ }
+}
+
+test('generates a greeting', () => {
+ expect(generateGreeting('Alice')).toMatchSnapshot()
+})
+```
+
+首次运行此测试时,由于不存在可比较的现有快照,Vitest 会自动创建一个。它会将快照存储在与测试文件相邻的 `__snapshots__` 目录中:
+
+```
+__snapshots__/
+ example.test.js.snap
+```
+
+如果打开该文件,你会看到该值的序列化表示:
+
+```js
+exports['generates a greeting 1'] = `
+{
+ "message": "Hello, Alice!",
+ "timestamp": null,
+ "version": 2,
+}
+`
+```
+
+从此以后,每次运行此测试时,Vitest 都会将 `generateGreeting('Alice')` 的输出序列化,并与存储的快照进行逐字符比较。如果输出发生变化(比如有人修改了消息格式或更新了版本号),测试就会失败,并清晰地显示变更的差异。
+
+::: tip
+请将快照文件提交到版本控制系统。它们作为预期输出的记录,应该像其他测试断言一样在代码审查中进行检查。
+:::
+
+## 内联快照 {#inline-snapshots}
+
+外部快照文件虽然好用,但意味着你必须跳转到另一个文件才能查看预期输出的实际内容。对于较小的值,使用 [`toMatchInlineSnapshot()`](/api/expect#tomatchinlinesnapshot) 将快照直接保留在测试文件中通常更为方便。
+
+首先,在没有任何参数的情况下编写断言:
+
+```js
+test('generates a greeting', () => {
+ expect(generateGreeting('Alice')).toMatchInlineSnapshot()
+})
+```
+
+当你运行测试时,Vitest 将 **自动填充** 快照作为字符串参数:
+
+```js
+test('generates a greeting', () => {
+ expect(generateGreeting('Alice')).toMatchInlineSnapshot(`
+ {
+ "message": "Hello, Alice!",
+ "timestamp": null,
+ "version": 2,
+ }
+ `)
+})
+```
+
+现在,预期输出就紧挨着生成它的代码。你可以阅读测试并立即理解 `generateGreeting` 应该返回什么。当输出发生变化时,Vitest 会原地更新字符串,因此你无需管理单独的快照文件。
+
+内联快照非常适合小型、关注点明确。对于大型输出(如完整的 HTML 页面),外部快照或文件快照更为合适。
+
+::: tip
+与外部快照不同,内联快照不会创建单独的 `.snap` 文件。预期值直接作为 `toMatchInlineSnapshot()` 的参数存储在测试文件中,因此无需额外提交任何内容。
+:::
+
+## 更新快照 {#updating-snapshots}
+
+当你故意更改代码的输出时,现有的快照将过时,测试也会失败。这是设计使然;这正是快照测试的全部意义所在。但一旦你确认新输出是正确的,就需要更新快照。
+
+有几种方法可以做到这一点:
+
+- **在 watch 模式下**:在终端中按 `u` 键更新所有失败的快照
+- **通过命令行界面**:运行 `vitest -u` 或 `vitest --update` 来更新快照并退出
+- **在 VS Code 中**:使用 [Vitest 扩展](https://vitest.dev/vscode) 在测试面板上选择 “更新快照” 命令
+
+```bash
+vitest -u
+```
+
+对于内联快照,Vitest 会直接用新值修改你的测试文件。对于外部快照,它会重写 `.snap` 文件。
+
+::: warning
+更新快照时要小心。务必仔细检查差异,以确认更改是有意为之,而非缺陷。盲目按 `u` 键很容易意外接受一个错误的输出。
+:::
+
+## 文件快照 {#file-snapshots}
+
+有时你测试的输出非常大,以至于即使是外部的 `.snap` 文件也显得笨拙,或者你希望在编辑器中以正确的语法高亮查看快照。[`toMatchFileSnapshot()`](/api/expect#tomatchfilesnapshot) 允许你将快照保存为任意扩展名的文件:
+
+```js
+test('renders the component', async () => {
+ const html = renderComponent()
+ await expect(html).toMatchFileSnapshot('./fixtures/component.html')
+})
+```
+
+快照以普通的 `.html` 文件形式存储,你可以用浏览器打开、以语法高亮查看,或用标准工具进行差异对比。对于 HTML、SVG、CSS、生成代码等这类可读性很重要的输出格式,这种方式都很有效。
+
+## 何时使用快照 {#when-to-use-snapshots}
+
+当你处理结构化、可序列化的输出,并且手动断言会非常痛苦时,快照测试就可以大放异彩。一些常见的用例包括:
+
+- 返回具有许多嵌套字段的复杂配置对象的函数
+- 由渲染函数或模板引擎生成的 HTML 或标记
+- 包含格式化堆栈跟踪或上下文信息的错误消息
+- 具有特定格式的 CLI 输出或日志消息
+- JSON API 响应,你希望捕获所有意外的字段更改
+
+另一方面,快照并不总是最佳工具。如果输出频繁变化(例如,包含时间戳或随机 ID),你花在更新快照上的时间将比它们为你节省的时间更多。如果你只关心一两个特定字段,像 [`toMatchObject`](/api/expect#tomatchobject) 或 [`toHaveProperty`](/api/expect#tohaveproperty) 这样的针对性断言,比捕获所有内容的快照更能清晰地表达你的意图。
+
+一般的规则是:当你希望防止输出发生 _任何_ 变化时,使用快照;当你只关心 _特定_ 属性时,使用针对性断言。
+
+## 处理动态值 {#handling-dynamic-values}
+
+如果你的输出包含每次运行都会变化的值(如时间戳或 ID),你可以使用属性匹配器来固定结构,同时忽略易变字段。将一个包含非对称匹配器的对象作为第一个参数传递给 `toMatchSnapshot()` 或 `toMatchInlineSnapshot()`:
+
+```js
+test('user snapshot with dynamic fields', () => {
+ const user = createUser('Alice')
+
+ expect(user).toMatchSnapshot({
+ id: expect.any(Number),
+ createdAt: expect.any(Date),
+ })
+})
+```
+
+`id` 和 `createdAt` 字段将根据匹配器(任意数字、任意日期)进行检查,而不是与存储的值进行比较。其他字段则像往常一样进行快照对比。
+
+## 错误快照 {#error-snapshots}
+
+内联快照的一个常见用法是捕获错误消息。[`toThrowErrorMatchingInlineSnapshot`](/api/expect#tothrowerrormatchinginlinesnapshot) 将 `toThrow` 与 `toMatchInlineSnapshot` 结合,这样你就可以在不使用单独 `.snap` 文件的情况下对错误消息进行快照:
+
+```js
+test('throws on invalid input', () => {
+ expect(() => parse('')).toThrowErrorMatchingInlineSnapshot(
+ `[Error: Unexpected end of input at position 0]`
+ )
+})
+```
+
+这对于验证错误消息是否清晰且不会意外更改非常方便。与其他内联快照一样,Vitest 在首次运行时填充字符串,并在你按下 `u` 时更新它。
+
+::: tip
+关于自定义快照序列化器、快照匹配器和高级配置,请参阅 [快照](/guide/snapshot)。
+:::
diff --git a/guide/learn/snippets/debug-output-fail.ansi b/guide/learn/snippets/debug-output-fail.ansi
new file mode 100644
index 000000000..2275c0e27
--- /dev/null
+++ b/guide/learn/snippets/debug-output-fail.ansi
@@ -0,0 +1,19 @@
+[31mFAIL[39m src/user.test.js [2m>[22m createUser [2m>[22m sets the default role
+[31mAssertionError: expected { name: 'Alice', role: 'viewer' } to deeply equal { name: 'Alice', role: 'member' }[39m
+
+[31m- Expected[39m
+[32m+ Received[39m
+
+ {
+ "name": "Alice",
+[31m- "role": "member",[39m
+[32m+ "role": "viewer",[39m
+ }
+
+ [2m❯[22m [36msrc/user.test.js[39m[2m:8:22[22m
+[2m 6|[22m [34mtest[39m([32m'sets the default role'[39m, () => {
+[2m 7|[22m [35mconst[39m user = [34mcreateUser[39m([32m'Alice'[39m)
+[2m 8|[22m [34mexpect[39m(user).[34mtoEqual[39m({ name: [32m'Alice'[39m, role: [32m'member'[39m })
+ [31m^[39m
+[2m 9|[22m })
+[2m 10|[22m })
diff --git a/guide/learn/snippets/test-output-fail.ansi b/guide/learn/snippets/test-output-fail.ansi
new file mode 100644
index 000000000..88fef3428
--- /dev/null
+++ b/guide/learn/snippets/test-output-fail.ansi
@@ -0,0 +1,16 @@
+[31mFAIL[39m src/utils.test.js [2m>[22m Math.sqrt [2m>[22m returns the square root of perfect squares
+[31mAssertionError: expected 3 to be 2[39m
+
+[31m- Expected[39m
+[32m+ Received[39m
+
+ [31m2[39m
+ [32m3[39m
+
+ [2m❯[22m [36msrc/utils.test.js[39m[2m:5:28[22m
+[2m 3|[22m [34mtest[39m([32m'returns the square root of perfect squares'[39m, () => {
+[2m 4|[22m [34mexpect[39m(Math.[34msqrt[39m([34m4[39m)).[34mtoBe[39m([34m2[39m)
+[2m 5|[22m [34mexpect[39m(Math.[34msqrt[39m([34m9[39m)).[34mtoBe[39m([34m2[39m)
+ [31m^[39m
+[2m 6|[22m })
+[2m 7|[22m
diff --git a/guide/learn/snippets/test-output-multiple.ansi b/guide/learn/snippets/test-output-multiple.ansi
new file mode 100644
index 000000000..8cb7961aa
--- /dev/null
+++ b/guide/learn/snippets/test-output-multiple.ansi
@@ -0,0 +1,6 @@
+ [32m✓[39m src/utils.test.js [90m(3 tests)[39m [32m5ms[39m
+ [32m✓[39m src/math.test.js [90m(2 tests)[39m [32m3ms[39m
+ [32m✓[39m src/strings.test.js [90m(4 tests)[39m [32m7ms[39m
+
+ [1mTest Files[22m [32m3 passed[39m (3)
+ [1m Tests[22m [32m9 passed[39m (9)
diff --git a/guide/learn/snippets/test-output-single.ansi b/guide/learn/snippets/test-output-single.ansi
new file mode 100644
index 000000000..934b32f82
--- /dev/null
+++ b/guide/learn/snippets/test-output-single.ansi
@@ -0,0 +1,8 @@
+ [32m✓[39m src/utils.test.js [90m(3 tests)[39m [32m5ms[39m
+ [32m✓[39m Math.sqrt [32m4ms[39m
+ [32m✓[39m returns the square root of perfect squares [32m2ms[39m
+ [32m✓[39m returns NaN for negative numbers [32m1ms[39m
+ [32m✓[39m returns 0 for 0 [32m1ms[39m
+
+ [1mTest Files[22m [32m1 passed[39m (1)
+ [1m Tests[22m [32m3 passed[39m (3)
diff --git a/guide/learn/testing-in-practice.md b/guide/learn/testing-in-practice.md
new file mode 100644
index 000000000..828e63212
--- /dev/null
+++ b/guide/learn/testing-in-practice.md
@@ -0,0 +1,440 @@
+---
+title: 测试实操 | 指南
+prev:
+ text: 快照测试
+ link: /guide/learn/snapshots
+next:
+ text: 调试测试
+ link: /guide/learn/debugging-tests
+---
+
+# 测试实践 {#testing-in-practice}
+
+前面的章节介绍了 Vitest API:断言、模拟、快照和测试生命周期钩子。本章重点介绍如何将这些工具应用到实际代码中,包括如何确定测试内容、如何组织测试结构,以及如何在项目增长时有效组织测试文件。
+
+## 哪些需要测试 {#what-to-test}
+
+当你开始为函数或模块编写测试时,首先要思考它的 **约定**:它对调用方作出了哪些保证?约定由其输入(参数、配置)和输出(返回值、副作用、错误)定义。这些正是你的测试需要验证的内容。
+
+以 `formatPrice` 函数为例:
+
+```js [formatPrice.js]
+export function formatPrice(amount, currency) {
+ return new Intl.NumberFormat('en-US', {
+ style: 'currency',
+ currency,
+ }).format(amount)
+}
+```
+
+这里的约定是:给定金额和货币代码,返回格式化的价格字符串。针对此函数的良好测试应涵盖:
+
+```js [formatPrice.test.js]
+import { expect, test } from 'vitest'
+import { formatPrice } from './formatPrice.js'
+
+test('formats USD prices', () => {
+ expect(formatPrice(10, 'USD')).toBe('$10.00')
+})
+
+test('formats EUR prices', () => {
+ expect(formatPrice(10, 'EUR')).toBe('€10.00')
+})
+
+test('handles zero', () => {
+ expect(formatPrice(0, 'USD')).toBe('$0.00')
+})
+
+test('handles negative amounts', () => {
+ expect(formatPrice(-5.5, 'USD')).toBe('-$5.50')
+})
+
+test('rounds to two decimal places', () => {
+ expect(formatPrice(10.999, 'USD')).toBe('$11.00')
+})
+```
+
+请注意这些测试 _不做什么_。它们不检查传递了哪些内部的 `Intl.NumberFormat` 选项,或者是否设置了中间变量。它们只检查输出。
+
+::: tip
+一个好的做法:如果有人重构了内部实现但输出保持不变,测试应该失败吗?如果会失败,那么你很可能是在测试实现细节而非行为。
+:::
+
+## 测试结构 {#structuring-a-test}
+
+大多数测试遵循一个自然的三段式结构,有时被称为“准备、执行、断言”:
+
+1. **初始化** 测试所需的数据
+2. **调用** 要测试的函数或执行操作
+3. **检查** 结果是否符合预期
+
+```js
+test('removes an item from the list', () => {
+ // 初始化
+ const list = new ShoppingList()
+ list.add('milk')
+ list.add('bread')
+
+ // 调用
+ list.remove('milk')
+
+ // 检查
+ expect(list.getItems()).toEqual(['bread'])
+})
+```
+
+你不需要用注释标注每个部分。写过几个测试后,这种结构就会变得很自然。重要的是让每个测试专注于一个行为。
+
+### 每个测试一个行为 {#one-behavior-per-test}
+
+如果你发现自己在测试名中写 “和”(例如 “格式化价格并处理错误并记录结果”),这表明你应该将其拆分为多个独立的测试。
+
+### 描述性测试名 {#descriptive-names}
+
+编写描述行为而非实现的测试名。“返回 USD 的格式化价格” 比 “使用正确选项调用 Intl.NumberFormat” 更好。当测试失败时,名称应该能告诉你哪里出了问题,而无需阅读测试体。
+
+## 测试边界情况 {#testing-edge-cases}
+
+覆盖主要行为后,考虑边界情况。在边界处会发生什么?哪些输入不常见但有效?出错时应该发生什么?
+
+以下是一个 `parseAge` 函数的示例,它接收用户输入并返回一个数字:
+
+```js [parseAge.js]
+export function parseAge(input) {
+ const age = Number(input)
+ if (Number.isNaN(age) || age < 0 || age > 150) {
+ throw new Error(`Invalid age: ${input}`)
+ }
+ return Math.floor(age)
+}
+```
+
+主要流程是显而易见的,但边界情况才是真正隐藏错误的地方:
+
+```js [parseAge.test.js]
+import { expect, test } from 'vitest'
+import { parseAge } from './parseAge.js'
+
+test('parses a valid age', () => {
+ expect(parseAge('25')).toBe(25)
+})
+
+test('rounds down decimal ages', () => {
+ expect(parseAge('25.9')).toBe(25)
+})
+
+test('handles zero', () => {
+ expect(parseAge('0')).toBe(0)
+})
+
+test('handles the upper boundary', () => {
+ expect(parseAge('150')).toBe(150)
+})
+
+test('throws for negative numbers', () => {
+ expect(() => parseAge('-1')).toThrow('Invalid age: -1')
+})
+
+test('throws for numbers above 150', () => {
+ expect(() => parseAge('151')).toThrow('Invalid age: 151')
+})
+
+test('throws for non-numeric strings', () => {
+ expect(() => parseAge('abc')).toThrow('Invalid age: abc')
+})
+
+test('throws for empty string', () => {
+ expect(() => parseAge('')).toThrow('Invalid age: ')
+})
+```
+
+你不需要测试所有可能的输入。重点关注边界值(0、150、151、-1)、错误路径,以及你的函数可能实际接收到的输入类型。
+
+::: tip
+如果你不确定某个边界情况是否重要,可以问自己一句:真实用户或真实调用方是否可能触发它?如果答案是肯定的,那就应该为它编写测试。
+:::
+
+### 基于属性的测试 {#property-based-testing}
+
+对于那些有效输入范围很广的函数,手动挑选边界情况终究是有限的。**基于属性的测试** 是一种技术,你描述任何输入都应该成立的 _属性_,测试框架会生成数百个随机输入,尝试找到破坏这些属性的情况。
+
+例如,你可以描述 “对于任何有效的年龄字符串,`parseAge` 都应返回一个非负整数”,然后让工具寻找反例。[fast-check](https://fast-check.dev/) 是一款流行的基于属性测试库,并且能很好地与 Vitest 集成。这是一种更进阶的技术,但随着你的测试需求增长,它非常值得了解。
+
+## 何时使用模拟 {#when-to-mock}
+
+模拟是一个强大的工具,但很容易被过度使用。
+
+### 慢速依赖项 {#slow-dependencies}
+
+网络请求、文件系统操作和数据库调用可能使你的测试需要数秒而非毫秒完成。使用模拟替换它们以保持快速反馈循环。
+
+特别是对于 HTTP 请求,考虑使用 [Mock Service Worker](https://mswjs.io/) 而不是直接模拟 fetch。有关设置说明,请参阅 [模拟请求](/guide/mocking/requests)。
+
+### 非确定性值 {#non-deterministic-values}
+
+如果你的代码依赖于当前日期、随机数或 UUID 生成器,模拟这些值以使测试可预测。Vitest 提供了 [`vi.useFakeTimers()`](/api/vi#vi-usefaketimers) 和 [`vi.setSystemTime()`](/api/vi#vi-setsystemtime) 用于在测试中控制时间。
+
+### 不应模拟的内容 {#what-not-to-mock}
+
+不要模拟你正在测试的对象。如果你正在测试 `UserService`,不要模拟 `UserService`。模拟它的 _依赖项_(数据库、邮件发送器)并让服务本身真实运行。
+
+此外,当真实实现快速且可靠时,应优先使用真实实现。如果依赖项是简单的内存数据结构或纯函数,则没有理由模拟它。你的测试越接近真实使用场景,它们给你的底气就越足。
+
+::: tip
+仅当真实对象速度慢、不稳定或具有你无法在测试中控制的副作用时,才使用模拟。
+:::
+
+## 通过测试修复错误 {#fixing-bugs-with-tests}
+
+当你发现一个 bug 时,很容易直接跳入代码并修复它。更好的方法是先编写一个能重现该 bug 的失败用例,然后修复代码并观察测试变为通过状态。
+
+这样做有几个好处。测试证明了错误是真实存在的,而不仅仅是误解。它准确记录了哪里出了问题。并且它防止了同一错误以后再次出现,因为如果有人不小心重新引入了相同问题,测试会捕获它。
+
+以下是实际操作的示例。假设用户报告 `parseAge` 在接收带有前导空格的字符串(如 `" 25"`)时崩溃。首先,编写一个重现问题的测试:
+
+```js
+test('handles leading spaces', () => {
+ expect(parseAge(' 25')).toBe(25)
+})
+```
+
+运行它并确认失败。现在你确切知道哪里出了问题,并有了明确的目标。修复实现:
+
+```js
+export function parseAge(input) {
+ const age = Number(input.trim())
+ // ...
+}
+```
+
+再次运行测试。它通过了。bug 已修复,并且你有了一个回归测试,如果以后有人移除 `.trim()` 调用,它将捕获该 bug。
+
+::: tip
+如果你使用智能体来修复错误,请配置它们遵循相同原则:先用失败测试重现问题,然后修复代码。这可以防止智能体通过更改测试而非代码来 “修复” bug,并让你确信修复确实有效。
+:::
+
+## 组织测试文件 {#organizing-test-files}
+
+没有唯一正确的组织测试方式,但某些形式比其他形式更具扩展性。
+
+### 文件布局 {#file-layout}
+
+最简单的起点是为每个源文件创建一个测试文件。对于每个 `utils.js`,旁边都有一个 `utils.test.js`。这使得查找任何给定代码的测试变得容易,并且大多数编辑器会在文件树中并排显示它们:
+
+```
+src/
+ utils.js
+ utils.test.js
+ formatPrice.js
+ formatPrice.test.js
+```
+
+有些团队更喜欢使用单独的 `__tests__` 或 `test` 目录。两种方法都有效。重要的是项目内的一致性。Vitest 的 [`include`](/config/include) 默认匹配这两种布局。
+
+### 使用 `describe` 进行分组 {#grouping-with-describe}
+
+当一个模块导出多个函数时,使用 `describe` 块来分组每个函数的测试。这使测试输出保持有序,并清楚表明失败测试属于哪个函数:
+
+```js
+describe('formatPrice', () => {
+ test('formats USD prices', () => { /* ... */ })
+ test('handles zero', () => { /* ... */ })
+})
+
+describe('parseAmount', () => {
+ test('parses valid amounts', () => { /* ... */ })
+ test('throws for invalid input', () => { /* ... */ })
+})
+```
+
+避免嵌套 `describe` 块超过一或两层深度。深度嵌套的测试树难以阅读,通常意味着源模块一次做了太多事情。
+
+### 拆分大文件 {#splitting-large-files}
+
+随着项目增长,一些测试文件不可避免地会变得很长。如果一个测试文件超过几百行,考虑按主题或功能区域拆分它。例如,`userService.test.js` 可能变成 `userService.creation.test.js` 和 `userService.auth.test.js`。这也使得在开发过程中运行测试子集更快。
+
+### 命名测试 {#naming-tests}
+
+测试名称比你想象的更重要。当测试在 CI 中失败时,名称往往是有人阅读的第一件事。像 “正常工作” 或 “处理边界情况” 这样的名称无法告诉你哪里出了问题。
+
+优先使用描述特定行为的名称:“空购物车返回 0”、“电子邮件格式无效时抛出错误”、“添加新项目时保留现有项目”。测试输出应该像模块功能的规范说明一样可读。
+
+## 完整示例 {#a-worked-example}
+
+让我们把所有内容整合起来。以下是一个小的 `TodoList` 模块:
+
+```js [todoList.js]
+let nextId = 1
+
+export function createTodoList() {
+ const items = []
+
+ return {
+ add(text) {
+ if (!text.trim()) {
+ throw new Error('Todo text cannot be empty')
+ }
+ const todo = { id: nextId++, text, completed: false }
+ items.push(todo)
+ return todo
+ },
+
+ remove(id) {
+ const index = items.findIndex(item => item.id === id)
+ if (index === -1) {
+ throw new Error(`Todo with id ${id} not found`)
+ }
+ items.splice(index, 1)
+ },
+
+ toggle(id) {
+ const todo = items.find(item => item.id === id)
+ if (!todo) {
+ throw new Error(`Todo with id ${id} not found`)
+ }
+ todo.completed = !todo.completed
+ },
+
+ getAll() {
+ return items
+ },
+
+ getCompleted() {
+ return items.filter(item => item.completed)
+ },
+ }
+}
+```
+
+查看这段代码,我们可以识别出需要测试的行为:
+
+- 添加项目(主要目的)
+- 添加空项目(应该失败)
+- 按 ID 移除项目
+- 移除不存在的项目(应该失败)
+- 切换完成状态
+- 获取所有项目与已完成项目
+
+以下是测试文件可能的样子:
+
+```js [todoList.test.js]
+import { describe, expect, test } from 'vitest'
+import { createTodoList } from './todoList.js'
+
+describe('add', () => {
+ test('adds a new todo', () => {
+ const list = createTodoList()
+ const todo = list.add('Buy groceries')
+
+ expect(todo.text).toBe('Buy groceries')
+ expect(todo.completed).toBe(false)
+ expect(list.getAll()).toHaveLength(1)
+ })
+
+ test('assigns unique IDs to each todo', () => {
+ const list = createTodoList()
+ const first = list.add('First')
+ const second = list.add('Second')
+
+ expect(first.id).not.toBe(second.id)
+ })
+
+ test('throws when text is empty', () => {
+ const list = createTodoList()
+ expect(() => list.add('')).toThrow('Todo text cannot be empty')
+ })
+
+ test('throws when text is only whitespace', () => {
+ const list = createTodoList()
+ expect(() => list.add(' ')).toThrow('Todo text cannot be empty')
+ })
+})
+
+describe('remove', () => {
+ test('removes a todo by ID', () => {
+ const list = createTodoList()
+ const todo = list.add('Buy groceries')
+
+ list.remove(todo.id)
+
+ expect(list.getAll()).toHaveLength(0)
+ })
+
+ test('keeps other items when removing one', () => {
+ const list = createTodoList()
+ const first = list.add('First')
+ list.add('Second')
+
+ list.remove(first.id)
+
+ expect(list.getAll()).toHaveLength(1)
+ expect(list.getAll()[0].text).toBe('Second')
+ })
+
+ test('throws when ID does not exist', () => {
+ const list = createTodoList()
+ expect(() => list.remove(999)).toThrow('Todo with id 999 not found')
+ })
+})
+
+describe('toggle', () => {
+ test('marks a todo as completed', () => {
+ const list = createTodoList()
+ const todo = list.add('Buy groceries')
+
+ list.toggle(todo.id)
+
+ expect(list.getAll()[0].completed).toBe(true)
+ })
+
+ test('toggles back to incomplete', () => {
+ const list = createTodoList()
+ const todo = list.add('Buy groceries')
+
+ list.toggle(todo.id)
+ list.toggle(todo.id)
+
+ expect(list.getAll()[0].completed).toBe(false)
+ })
+
+ test('throws when ID does not exist', () => {
+ const list = createTodoList()
+ expect(() => list.toggle(999)).toThrow('Todo with id 999 not found')
+ })
+})
+
+describe('getCompleted', () => {
+ test('returns only completed todos', () => {
+ const list = createTodoList()
+ const buy = list.add('Buy groceries')
+ list.add('Clean house')
+ list.toggle(buy.id)
+
+ const completed = list.getCompleted()
+
+ expect(completed).toHaveLength(1)
+ expect(completed[0].text).toBe('Buy groceries')
+ })
+
+ test('returns empty array when nothing is completed', () => {
+ const list = createTodoList()
+ list.add('Buy groceries')
+
+ expect(list.getCompleted()).toHaveLength(0)
+ })
+})
+```
+
+每个 `describe` 块专注于一个方法。每个测试验证一个特定的行为。测试名称读起来就像模块功能的规范说明。如果其中任何一个测试失败,名称和断言会准确告诉你哪里出了问题。
+
+::: tip
+注意我们在每个测试中都创建一个新的 `createTodoList()`。这保持了测试的独立性,意味着它们可以按任意顺序运行而不会相互影响。如果你发现自己在每个测试中重复相同的设置,那可能是使用 [`beforeEach`](/api/hooks#beforeeach) 或 [`test.extend`](/guide/test-context#extend-test-context) fixture 的好时机。
+:::
+
+::: details `nextId` 怎么办?
+模块顶部的 `nextId` 计数器在所有对 `createTodoList()` 的调用中共享,包括跨测试。这意味着 ID 不可预测:一个测试可能获得 ID 1 和 2,而另一个测试获得 3 和 4,具体取决于执行顺序。这在这里没问题,因为测试只检查 _相对_ 唯一性(`first.id !== second.id`),而不是特定的 ID 值。如果测试断言了 `expect(todo.id).toBe(1)`,那么根据之前运行了哪些测试,它可能会失败。当你有像这样的共享模块级状态时,请确保你的测试不依赖于其具体值。
+:::
+
+---
+
+如果你正在构建 Web 应用程序,并希望在真实的浏览器环境中测试组件,请查看 [组件测试](/guide/browser/component-testing),了解如何测试 React、Vue、Svelte 和其他 UI 框架。
diff --git a/guide/learn/writing-tests-with-ai.md b/guide/learn/writing-tests-with-ai.md
new file mode 100644
index 000000000..39701cf7d
--- /dev/null
+++ b/guide/learn/writing-tests-with-ai.md
@@ -0,0 +1,137 @@
+---
+title: 使用 AI 编写测试 | 指南
+prev:
+ text: 调试测试
+ link: /guide/learn/debugging-tests
+next:
+ text: 什么是浏览器模式?
+ link: /guide/browser/why
+---
+
+# 使用 AI 编写测试 {#writing-tests-with-ai}
+
+AI 编码助手能帮助你更快地编写测试,但输出质量很大程度上取决于你的输入。模糊的提示词会产生模糊的测试。提供正确上下文的具体提示词才能生成真正值得保留的测试。
+
+本章将介绍如何从 AI 工具生成优质的测试代码,以及在审查结果时需要关注哪些要点。
+
+## 提供足够的上下文 {#providing-context}
+
+你能做的最重要的一件事,就是给 AI 提供足够的上下文,让它理解自己正在测试什么。
+
+首先从源码本身开始。AI 需要看到具体的实现,而不仅仅是函数功能的描述。提供完整文件,或者至少提供你想测试的函数,以及它相关的导入和类型定义。
+
+共享同一项目中现有的测试文件。这有助于 AI 遵循你的约定:是使用 `test` 还是 `it`、如何组织 `describe` 块、是更偏好使用 `test.extend` 的 fixture,还是 `beforeEach`,以及如何命名测试。AI 工具擅长遵循约定,但它们需要有可遵循的约定。
+
+提供你的 Vitest 配置,特别是如果你启用了 [`globals`](/config/globals)、设置了自定义 [`environment`](/config/environment) 或配置了 [`setupFiles`](/config/setupfiles)。没有这些上下文,AI 可能会生成不必要的导入、使用错误的测试环境,或者遗漏测试依赖的初始化。
+
+如果被测试的代码有需要模拟的依赖项,也要共享这些文件(或至少它们的类型签名)。AI 无法为它从未见过的数据库客户端编写有效的模拟。
+
+::: tip
+如果你的项目有 `AGENTS.md` 或包含编码约定的类似文件,也提供进去。许多 AI 工具会自动识别这些文件并遵循其中定义的约定。
+:::
+
+## 编写优质提示词 {#writing-good-prompts}
+
+具体的提示词比泛泛的提示词能生成更好的测试。比较以下两个示例:
+
+**模糊提示词:**“为 `userService.js` 编写测试”
+
+这很可能会生成很粗略的测试:每个函数一个成功路径测试,边缘情况覆盖最少,测试名称也很通用。
+
+**优质提示词:**“为 `userService.js` 中的 `createUser` 函数编写测试。覆盖验证错误(缺失姓名、无效邮箱格式、重复邮箱)、成功创建路径,并验证密码在存储前是否经过哈希处理。”
+
+这明确告诉 AI 要关注哪个函数、哪些场景重要、需要验证什么行为。输出结果会更全面、更有关联性。
+
+### 编写优质提示词的技巧 {#tips-for-better-prompts}
+
+- 明确要求边缘情况测试。“包含对空输入、边界值和错误处理的测试” 比让 AI 自行判断能产生更全面的覆盖。没有这个提示,大多数工具只会生成少量成功路径测试就停止。
+- 提及你希望使用的特定 Vitest 功能。“使用 `toMatchInlineSnapshot` 处理错误信息” 或 “使用 `test.for` 处理不同的货币格式”,引导 AI 使用正确的工具,而不是让它退回到重复的复制粘贴测试。
+- 如果测试异步代码,请明确说明。“该函数返回 Promise” 或 “这会调用外部 API” 有助于 AI 使用 `async`/`await` 和合适的匹配器,如 `.resolves` 和 `.rejects`。
+- 告诉 AI _不要做_ 什么。“针对真实实现进行测试,不要模拟任何模块” 或 “不要使用快照测试”,可以避免你不想要的常见默认设置。AI 工具倾向于过度模拟,明确的约束可以防止这种情况。
+- 描述你想要的测试结构。“使用 `describe` 块按方法分组测试” 或 “对数据库连接使用 `test.extend` fixture 而不是 `beforeEach`”,可以省去你事后重构的麻烦。
+- 在要求添加测试时参考现有测试。“遵循 `auth.test.js` 中测试的相同风格” 比从头描述风格更有效。AI 会从示例中学习命名约定、断言形式和导入风格。
+- 如果第一次结果不理想,请迭代优化。“这些测试过于关注实现细节。重写它们,只对返回值和抛出的错误进行断言” 是一个有效的后续提示。通过对话逐步完善通常比试图一次性写出完美提示词能产生更好的结果。
+
+## 审查 AI 生成的测试 {#reviewing-ai-generated-tests}
+
+AI 生成的测试乍一看可能很令人信服,但仍然存在问题。在提交之前,请检查以下内容。
+
+### 测试是否真正断言了有意义的内容? {#do-the-tests-actually-assert-something-meaningful}
+
+注意那些调用函数但只检查它是否没有抛出异常的测试,或者断言模拟对象本身而不是行为的测试。这样的测试会给你虚假的信心:
+
+```js
+test('creates a user', () => {
+ const user = createUser('Alice', 'alice@example.com')
+ expect(user).toBeDefined() // 这对几乎所有情况都会通过
+})
+```
+
+更好的做法是断言实际属性:
+
+```js
+test('creates a user with the correct fields', () => {
+ const user = createUser('Alice', 'alice@example.com')
+ expect(user).toMatchObject({
+ name: 'Alice',
+ email: 'alice@example.com',
+ })
+ expect(user.id).toBeTypeOf('string')
+})
+```
+
+### 它们是在测试行为还是具体实现? {#are-they-testing-behavior-or-implementation}
+
+AI 倾向于过度模拟。如果你看到一个测试模拟了每个依赖项,然后断言特定的内部方法以特定顺序被调用,那是在测试实现细节。即使行为保持不变,这些测试在你每次重构时都会失败。
+
+问问自己:如果有人改变了内部实现但函数仍然返回正确结果,这个测试会失败吗?如果答案是肯定的,那它可能过于耦合到实现细节了。关于这个区别的更多信息,请参阅 [测试实践](/guide/learn/testing-in-practice#what-to-test)。
+
+### 测试真的能运行吗? {#do-the-tests-actually-run}
+
+在提交之前,一定要运行测试。AI 生成的测试可能存在导入错误、引用不存在的函数或 API 使用不当的问题。在聊天窗口中看起来正确的测试,在实际执行时可能立即失败:
+
+```bash
+vitest run src/userService.test.js
+```
+
+### 是否包含真正的边缘情况? {#are-there-real-edge-cases}
+
+AI 工具往往倾向于生成 “理想路径” 的测试,而跳过那些棘手的情况。在审查生成的测试后,问问自己:空输入会发生什么?输入 `null` 或 `undefined` 呢?网络请求失败怎么办?列表为空的情况呢?
+
+如果这些场景没有被覆盖,请要求 AI 添加这些情况,或者自己手动编写。
+
+## 迭代优化输出 {#iterating-on-the-output}
+
+将 AI 生成的测试视为初稿,而非成品。一个良好的工作流程如下:
+
+1. 使用具体的提示词和良好的上下文 **生成** 初版测试
+2. 立即 **运行** 测试以发现错误
+3. 针对上述问题 **审查** 每个测试
+4. 如果整个部分需要改进,**提出修改建议**(“这些测试模拟过多,重写它们以测试与数据库模块的实际集成”)
+5. 对于小修改进行 **手动编辑**,而不是为每个细节重新写提示词
+
+随着时间的推移,当 AI 看到更多你的代码库和测试范例后,其输出质量会提高。在项目中早期,值得花时间为后续所有测试内容设定好约定。
+
+## 常见陷阱 {#common-pitfalls}
+
+### 错误的 API {#wrong-apis}
+
+AI 生成的 Vitest 测试最常见的问题是使用了错误的 API。AI 模型基于大量 Jest 代码进行训练,因此有时会生成 `jest.fn()` 而不是 `vi.fn()`,或者 `jest.mock` 而不是 `vi.mock`。这些会立即失败。
+
+导入相关问题:如果你的配置有 `globals: true`,AI 可能仍然会添加 `import { test, expect } from 'vitest'`(无害但没必要),或者反过来,在全局变量未启用时生成没有导入语句。如果你一直看到 Jest API,请引导 AI 查看 [Vitest API](/api/vi) 或将其包含在上下文中。
+
+### 模拟清理 {#mock-cleanup}
+
+AI 生成的测试经常使用 `vi.spyOn` 设置 spy 或使用 `vi.mock` 替换模块,但从不恢复它们。如果你的配置没有设置 [`restoreMocks: true`](/config/restoremocks),这些模拟会在测试之间泄漏并导致难以理解的失败。最简单的修复方法是在全局启用该配置选项。
+
+相关说明:AI 工具倾向于使用字符串路径(`vi.mock('./module.js')`)来模拟模块,而 `import()` 形式(`vi.mock(import('./module.js'))`)更受青睐,因为它提供类型安全和自动重构。请参阅 [模拟函数](/guide/learn/mock-functions#mocking-modules) 了解为什么这么重要。
+
+### 冗长的测试名称 {#verbose-test-names}
+
+AI 倾向于生成像 “当给定有效的正数和支持的货币代码时,应正确返回格式化的价格字符串” 这样的名称。当你有几十个测试时,这些名称很难快速浏览。描述行为的简短名称效果更好:“格式化美元价格”、“对负数金额抛出错误”、“无匹配项时返回空数组”。
+
+### 监视 (Watch) 模式 {#watch-mode}
+
+Vitest 默认在 watch 模式下运行,等待文件更改并交互式地重新运行测试。Vitest 尝试检测 CI 和非交互或 Agent 环境并自动禁用监视模式,但这种检测机制可能不够可靠。
+
+当告诉智能体运行测试时,始终使用 `vitest run` 或 `vitest --no-watch` 以确保测试完成后进程退出。
diff --git a/guide/learn/writing-tests.md b/guide/learn/writing-tests.md
new file mode 100644
index 000000000..a7e59acdc
--- /dev/null
+++ b/guide/learn/writing-tests.md
@@ -0,0 +1,241 @@
+---
+title: 编写测试用例 | 指南
+prev:
+ text: 快速起步
+ link: /guide/
+next:
+ text: 使用匹配器
+ link: /guide/learn/matchers
+---
+
+# 编写测试 {#writing-tests}
+
+在 [入门指南](/guide/) 中,你安装了 Vitest 并运行了第一个测试。本章将深入探讨如何在 Vitest 中编写和组织测试。
+
+## 你的第一个测试 {#your-first-test}
+
+测试用于验证某段代码是否产生预期结果。在 Vitest 中,你使用 [`test`](/api/test) 函数来定义测试,使用 [`expect`](/api/expect) 来进行断言。每个测试都有一个名称(描述其检查内容的字符串)和一个包含一个或多个断言的函数。如果任何断言失败,则该测试失败。
+
+```js
+import { expect, test } from 'vitest'
+
+test('Math.sqrt works for perfect squares', () => {
+ expect(Math.sqrt(4)).toBe(2)
+ expect(Math.sqrt(144)).toBe(12)
+ expect(Math.sqrt(0)).toBe(0)
+})
+```
+
+::: details 使用 `test` 还是 `it`?
+你可能也会看到使用 [`it`](/api/test) 而非 `test` 编写的测试。它们的行为完全相同。`it` 只是一个别名,有些人更喜欢它,因为它在配合描述性名称时读起来更自然:
+
+```js
+import { expect, it } from 'vitest'
+
+it('should compute square roots', () => {
+ expect(Math.sqrt(4)).toBe(2)
+})
+```
+
+两者的工作方式相同,使用你喜欢的那个。你可以在项目中自由混合使用它们。如果你想在代码库中强制执行一致的选择,[`consistent-test-it`](https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/consistent-test-it.md) ESLint 规则(在 [oxlint](https://oxc.rs/docs/guide/usage/linter/rules/jest/consistent-test-it.html) 中也可用)可以提供帮助。
+:::
+
+## 使用 `describe` 分组测试 {#grouping-tests-with-describe}
+
+随着测试文件的增长,你会希望将相关的测试组织在一起。[`describe`](/api/describe) 创建一个测试套件,这是一个命名的测试组:
+
+```js
+import { describe, expect, test } from 'vitest'
+
+describe('Math.sqrt', () => {
+ test('returns the square root of perfect squares', () => {
+ expect(Math.sqrt(4)).toBe(2)
+ expect(Math.sqrt(9)).toBe(3)
+ })
+
+ test('returns NaN for negative numbers', () => {
+ expect(Math.sqrt(-1)).toBeNaN()
+ })
+
+ test('returns 0 for 0', () => {
+ expect(Math.sqrt(0)).toBe(0)
+ })
+})
+```
+
+你可以嵌套 `describe` 块以进一步组织,但请保持嵌套层次较浅。深层嵌套的测试更难阅读。对于简单模块,一个扁平的测试列表通常就足够了,`describe` 适用于当文件测试多个函数或方法且每个都需要自己的分组。
+
+## 测试文件 {#test-files}
+
+默认情况下,Vitest 会查找文件名中包含 `.test.` 或 `.spec.` 的任何文件,例如 `utils.test.js`、`app.spec.js` 或 `math.test.jsx`。它会在所有子目录中搜索,因此你将它们放在哪里并不重要。
+
+确切的匹配规则是:
+
+- `**/*.test.{ts,js,mjs,cjs,tsx,jsx}`
+- `**/*.spec.{ts,js,mjs,cjs,tsx,jsx}`
+
+组织测试文件没有单一的 “正确” 方法。有些团队喜欢将测试放在它们所测试的源代码旁边,而另一些团队则将它们保存在一个专用目录中。这两种方式 Vitest 都能找到:
+
+```
+src/
+ utils.js
+ utils.test.js # 与源代码放在一起
+ __tests__/
+ utils.test.js # 在测试目录中
+```
+
+如果默认匹配规则不适合你的项目,你可以使用 [`include`](/config/include) 和 [`exclude`](/config/exclude) 配置选项来自定义包含哪些文件。
+
+## 测试 TypeScript {#testing-typescript}
+
+由于 Vitest 构建于 Vite 之上,TypeScript 可以开箱即用。无需安装额外的编译器,无需配置 `ts-jest`,也无需为测试进行单独的构建步骤。只需将测试文件命名为 `.test.ts` 而不是 `.test.js`,然后开始编写:
+
+```ts
+import { expect, test } from 'vitest'
+
+interface User {
+ name: string
+ age: number
+}
+
+function createUser(name: string, age: number): User {
+ return { name, age }
+}
+
+test('creates a user with the correct fields', () => {
+ const user = createUser('Alice', 30)
+
+ expect(user).toEqual({ name: 'Alice', age: 30 })
+ expect(user.name).toBe('Alice')
+})
+```
+
+你可以像在代码库的其他部分一样,导入类型、使用泛型并编写类型化的测试工具。Vite 会即时转换 TypeScript,即使在大型项目中测试也能快速启动。
+
+::: tip
+Vitest 会转换 TypeScript 以供执行,但在测试运行期间 **不会** 对你的测试进行类型检查。你在终端中能够快速获得反馈,这是 Vite 为速度所做的权衡。当你需要完整的类型检查时,可以单独运行 `tsc` 或 `vitest typecheck`。更多详情请参阅 [测试类型](/guide/testing-types) 指南。
+:::
+
+## 阅读测试输出 {#reading-test-output}
+
+当你运行 `vitest` 且只有一个测试文件匹配时,输出会以树状结构展开显示,显示 `describe` 分组、各个测试及其耗时:
+
+<<< ./snippets/test-output-single.ansi
+
+当多个测试文件运行时,Vitest 会将每个文件折叠为单行,以保持输出可控:
+
+<<< ./snippets/test-output-multiple.ansi
+
+当测试失败时,Vitest 会准确地告诉你问题出在哪里。你将看到期望值、实际值、突出显示差异的差异对比,以及包含失败断言的周围行代码片段。它还包括文件和行号,以便你可以直接跳转到源代码:
+
+<<< ./snippets/test-output-fail.ansi
+
+通过差异对比和代码片段,你通常就能看出问题出在哪里,而无需添加额外的 `console.log` 语句或自己打开文件。
+
+## 跳过和聚焦测试 {#skipping-and-focusing-tests}
+
+在开发过程中,你通常只想运行一部分测试。Vitest 为此提供了修饰符:
+
+[`.only`](/api/test#only) 告诉 Vitest 只运行此测试(或套件),并跳过文件中的所有其他测试。适用于正在处理特定测试并且不想等待整个套件完成的场景:
+
+```js
+test.only('focus on this test', () => {
+ // 文件中只运行此测试
+})
+```
+
+[`.skip`](/api/test#skip) 则相反。它跳过一个测试而不删除它,适用于测试暂时损坏或你在处理其他事情时想要忽略它的场景:
+
+```js
+test.skip('not ready yet', () => {
+ // 此测试被跳过
+})
+```
+
+[`.todo`](/api/test#todo) 让你为尚未编写的测试标记一个占位符。Vitest 会在输出中列出它,这样你就不会忘记:
+
+```js
+test.todo('implement validation later')
+```
+
+这些修饰符非常适合开发过程中的快速本地更改。对于更永久的测试过滤方式(按文件名、行号或标签),请参阅 [测试过滤](/guide/filtering) 指南。
+
+## 参数化测试 {#parameterized-tests}
+
+当你有多个测试用例,仅输入和预期输出不同时,为每个用例编写单独的 `test` 会显得重复。[`test.for`](/api/test#test-for) 允许你将用例定义为数据,并为所有用例运行相同的测试逻辑:
+
+```js
+import { expect, test } from 'vitest'
+
+test.for([
+ [1, 1, 2],
+ [1, 2, 3],
+ [2, 1, 3],
+])('add(%i, %i) -> %i', ([a, b, expected]) => {
+ expect(a + b).toBe(expected)
+})
+```
+
+在上面的例子中,`%i` 占位符会被每个数据行中的整数值替换。Vitest 还支持其他类型的占位符,例如用于字符串的 `%s` 和用于浮点数的 `%f`。因此,测试运行器会生成诸如 `add(1, 1) -> 2`、`add(1, 2) -> 3` 和 `add(2, 1) -> 3` 这样的测试名称。
+
+如果你的用例包含两个或三个以上的值,传递对象更具可读性。在名称中使用 `$property` 来插入字段:
+
+```js
+test.for([
+ { a: 1, b: 1, expected: 2 },
+ { a: 1, b: 2, expected: 3 },
+ { a: 2, b: 1, expected: 3 },
+])('add($a, $b) -> $expected', ({ a, b, expected }) => {
+ expect(a + b).toBe(expected)
+})
+```
+
+测试函数的第二个参数是 [测试上下文](/guide/test-context),它让你可以访问 fixtures、每个测试的 `expect` 和其他工具函数。[`test.concurrent`](/api/test#concurrent) 适用于并发测试,因为并发测试会并行运行,而全局的 `expect` 无法可靠地将快照与正确的测试关联起来。上下文作用域的 `expect` 正好解决了这个问题:
+
+```js
+test.concurrent.for([
+ [1, 1],
+ [1, 2],
+ [2, 1],
+])('add(%i, %i)', ([a, b], { expect }) => {
+ expect(a + b).toMatchSnapshot()
+})
+```
+
+[`describe.for`](/api/describe#describe-for) 的工作方式相同,但会为每组参数创建一个套件。适用于多个测试共享相同的参数化设置。
+
+::: tip
+Vitest 还提供了 [`test.each`](/api/test#each),熟悉 Jest 的用户可能会认出它。它的工作方式类似,但会将数组参数展开传递,而不是作为单个值传递,并且不提供对测试上下文的访问。它主要为了与 Jest 兼容而存在。在新代码中,建议优先使用 `test.for`。
+:::
+
+## 使用全局导入 {#using-global-imports}
+
+默认情况下,你需要在每个测试文件的顶部从 `vitest` 导入 `test`、`expect`、`describe` 和其他函数。如果你希望将它们作为全局变量使用而无需导入(类似于 Jest 的工作方式),可以在配置中启用 [`globals`](/config/globals) 选项:
+
+```js [vitest.config.js]
+import { defineConfig } from 'vitest/config'
+
+export default defineConfig({
+ test: {
+ globals: true,
+ },
+})
+```
+
+启用此选项后,你可以在没有导入的情况下直接编写测试:
+
+```js
+test('no import needed', () => {
+ expect(1 + 1).toBe(2)
+})
+```
+
+::: tip
+如果你使用 TypeScript,请在 `tsconfig.json` 的 `compilerOptions` 中添加 `"types": ["vitest/globals"]` 以获得正确的类型支持。
+:::
+
+## 运行测试 {#running-tests}
+
+Vitest 默认使用 [子进程](/config/pool) **并行** 运行所有测试文件。每个测试文件都在其独立的上下文中运行,因此你的测试文件不会彼此共享状态。这可以防止不同文件中的测试意外相互干扰。
+
+同一个文件内的测试默认按顺序运行。由于同一文件中的测试往往共享初始化代码,这种按顺序执行通常是合理的。如果你的测试是真正独立的,你可以选择使用 [`test.concurrent`](/api/test#concurrent) 并发运行它们以加快速度。有关控制测试执行的更多详情,请参阅 [并行性](/guide/parallelism) 指南。
diff --git a/guide/lifecycle.md b/guide/lifecycle.md
index 90fc65630..c576c8522 100644
--- a/guide/lifecycle.md
+++ b/guide/lifecycle.md
@@ -1,208 +1,275 @@
---
-title: Test Run Lifecycle | Guide
+title: 测试运行生命周期 | 指南
outline: deep
---
-# Test Run Lifecycle
+# 测试运行生命周期 {#test-run-lifecycle}
-Understanding the test run lifecycle is essential for writing effective tests, debugging issues, and optimizing your test suite. This guide explains when and in what order different lifecycle phases occur in Vitest, from initialization to teardown.
+::: tip
+想快速掌握 `beforeEach`、`afterEach` 等钩子函数的实战用法?推荐学习 [初始化和清理](/guide/learn/setup-teardown) 教程,该教程通过典型场景演示如何优雅地管理测试生命周期。
+:::
-## Overview
+理解测试运行的生命周期,对于编写高效测试、调试问题以及优化测试套件至关重要。本指南说明 Vitest 中各个生命周期阶段的发生时机与执行顺序,从初始化到清理的全过程。
-A typical Vitest test run goes through these main phases:
+## 概述 {#overview}
-1. **Initialization** - Configuration loading and project setup
-2. **Global Setup** - One-time setup before any tests run
-3. **Worker Creation** - Test workers are spawned based on the [pool](/config/pool) configuration
-4. **Test File Collection** - Test files are discovered and organized
-5. **Test Execution** - Tests run with their hooks and assertions
-6. **Reporting** - Results are collected and reported
-7. **Global Teardown** - Final cleanup after all tests complete
+一次完整的 Vitest 测试运行通常经历以下几个主要阶段:
-Phases 4–6 run once for each test file, so across your test suite they will execute multiple times and may also run in parallel across different files when you use more than [1 worker](/config/maxworkers).
+1. **初始化:** 加载配置并初始化项目
+2. **全局初始化:** 在所有测试运行之前执行一次初始化
+3. **创建 Worker:** 根据 [pool](/config/pool) 配置创建测试 Worker
+4. **收集测试文件:** 发现并整理测试文件
+5. **执行测试:** 运行测试及其钩子和断言
+6. **报告:** 收集并输出测试结果
+7. **全局清理:** 所有测试完成后执行最终清理
-## Detailed Lifecycle Phases
+第 4–6 阶段针对每个测试文件各执行一次,因此在整个测试套件中会执行多次;如果你使用了多于 [1 个 worker](/config/maxworkers),这些阶段还会在不同文件间并行执行。
-### 1. Initialization Phase
+## 详细生命周期阶段 {#detailed-lifecycle-phases}
-When you run `vitest`, the framework first loads your configuration and prepares the test environment.
+### 1. 初始化阶段 {#_1-initialization-phase}
-**What happens:**
-- [Command-line](/guide/cli) arguments are parsed
-- [Configuration file](/config/) is loaded
-- Project structure is validated
+运行 `vitest` 时,框架首先加载配置并准备测试环境。
-This phase can run again if the config file or one of its imports changes.
+**发生了什么:**
+- 解析 [命令行](/guide/cli) 参数
+- 加载 [配置文件](/config/)
+- 验证项目结构
-**Scope:** Main process (before any test workers are created)
+如果配置文件或其导入的文件发生变更,此阶段可能会重新执行。
-### 2. Global Setup Phase
+**作用域:** 主进程(在任何测试 Worker 创建之前)
-If you have configured [`globalSetup`](/config/globalsetup) files, they run once before any test workers are created.
+### 2. 全局初始化阶段 {#_2-global-setup-phase}
-**What happens:**
-- `setup()` functions (or exported `default` function) from global setup files execute sequentially
-- Multiple global setup files run in the order they are defined
+如果你配置了 [`globalSetup`](/config/globalsetup) 文件,它们会在任何测试 Worker 创建之前执行一次。
-**Scope:** Main process (separate from test workers)
+**发生了什么:**
+- 全局 setup 文件中的 `setup()` 函数(或导出的 `default` 函数)按顺序依次执行
+- 多个全局 setup 文件按定义顺序执行
-**Important notes:**
-- Global setup runs in a **different global scope** from your tests
-- Tests cannot access variables defined in global setup (use [`provide`/`inject`](/config/provide) instead)
-- Global setup only runs if there is at least one test queued
+**作用域:** 主进程(与测试 Worker 相互独立)
+
+**注意事项:**
+- 全局初始化与测试在 **不同的全局作用域** 中运行
+- 测试无法访问全局 setup 中定义的变量(请改用 [`provide`/`inject`](/config/provide))
+- 只有至少有一个测试排队时,全局 setup 才会执行
```ts [globalSetup.ts]
export function setup(project) {
- // Runs once before all tests
+ // 在所有测试前运行一次
console.log('Global setup')
- // Share data with tests
+ // 与测试共享数据
project.provide('apiUrl', 'http://localhost:3000')
}
export function teardown() {
- // Runs once after all tests
+ // 在所有测试后运行一次
console.log('Global teardown')
}
```
-### 3. Worker Creation Phase
+### 3. Worker 创建阶段 {#_3-worker-creation-phase}
-After global setup completes, Vitest creates test workers based on your [pool configuration](/config/pool).
+全局初始化完成后,Vitest 根据你的 [pool 配置](/config/pool) 创建测试 Worker。
-**What happens:**
-- Workers are spawned according to the `browser.enabled` or `pool` setting (`threads`, `forks`, `vmThreads`, or `vmForks`)
-- Each worker gets its own isolated environment (unless [isolation](/config/isolate) is disabled)
-- By default, workers are not reused to provide isolation. Workers are reused only if:
- - [isolation](/config/isolate) is disabled
- - OR pool is `vmThreads` or `vmForks` because [VM](https://nodejs.org/api/vm.html) provides enough isolation
+**发生了什么:**
+- 根据 `browser.enabled` 或 `pool` 配置(`threads`、`forks`、`vmThreads` 或 `vmForks`)创建 Worker
+- 每个 Worker 拥有独立的隔离环境(除非禁用了 [隔离](/config/isolate))
+- 默认情况下,Worker 为了保证隔离性不会复用。只有在以下情况才会复用:
+ - 禁用了 [隔离](/config/isolate)
+ - 或 pool 为 `vmThreads`、`vmForks`,因为 [VM](https://nodejs.org/api/vm.html) 已提供足够的隔离环境
-**Scope:** Worker processes/threads
+**作用域:** Worker 进程/线程
-### 4. Test File Setup Phase
+### 4. 测试文件初始化阶段 {#_4-test-file-setup-phase}
-Before each test file runs, [setup files](/config/setupfiles) are executed.
+每个测试文件运行之前,会先执行 [setup 文件](/config/setupfiles)。
-**What happens:**
-- Setup files run in the same process as your tests
-- By default, setup files run in **parallel** (configurable via [`sequence.setupFiles`](/config/sequence#sequence-setupfiles))
-- Setup files execute before **each test file**
-- Any global _state_ or configuration can be initialized here
+**发生了什么:**
+- setup 文件与测试运行在同一进程中
+- 默认情况下,setup 文件 **并行** 执行(可通过 [`sequence.setupFiles`](/config/sequence#sequence-setupfiles) 配置)
+- setup 文件在 **每个测试文件** 之前执行
+- 可在此处初始化任何全局 _状态_ 或配置
-**Scope:** Worker process (same as your tests)
+**作用域:** Worker 进程(与测试相同)
-**Important notes:**
-- If [isolation](/config/isolate) is disabled, setup files still rerun before each test file to trigger side effects, but imported modules are cached
-- Editing a setup file triggers a rerun of all tests in watch mode
+**注意事项:**
+- 如果禁用了 [isolation](/config/isolate),setup 文件仍会在每个测试文件之前重新执行以触发副作用,但导入的模块会被缓存
+- 在 watch 模式下,编辑 setup 文件会触发所有测试重新运行
```ts [setupFile.ts]
import { afterEach } from 'vitest'
-// Runs before each test file
+// 在每个测试文件之前执行
console.log('Setup file executing')
-// Register hooks that apply to all tests
+// 注册适用于所有测试的钩子
afterEach(() => {
cleanup()
})
```
-### 5. Test Collection and Execution Phase
+### 5. 测试收集与执行阶段 {#_5-test-collection-and-execution-phase}
-This is the main phase where your tests actually run.
+这是测试实际运行的主要阶段。
-#### Test File Execution Order
+#### 测试文件执行顺序 {#test-file-execution-order}
-Test files are executed based on your configuration:
+测试文件的执行顺序取决于你的配置:
-- **Sequential by default** within a worker
-- Files will run in **parallel** across different workers, configured by [`maxWorkers`](/config/maxworkers)
-- Order can be randomized with [`sequence.shuffle`](/config/sequence#sequence-shuffle) or fine-tuned with [`sequence.sequencer`](/config/sequence#sequence-sequencer)
-- Long-running tests typically start earlier (based on cache) unless shuffle is enabled
+- 在同一个 Worker 内,**默认串行执行**
+- 不同 Worker 之间,文件会 **并行执行**,可通过 [`maxWorkers`](/config/maxworkers) 进行配置
+- 可通过 [`sequence.shuffle`](/config/sequence#sequence-shuffle) 随机执行顺序,或通过 [`sequence.sequencer`](/config/sequence#sequence-sequencer) 精细控制执行顺序
+- 耗时较长的测试通常会优先启动(基于缓存),除非启用了随机化
-#### Within Each Test File
+#### 每个测试文件内部 {#within-each-test-file}
-The execution follows this order:
+执行顺序如下:
-1. **File-level code** - All code outside `describe` blocks runs immediately
-2. **Test collection** - `describe` blocks are processed, and tests are registered as side effects of importing the test file
-3. **`beforeAll` hooks** - Run once before any tests in the suite
-4. **For each test:**
- - `beforeEach` hooks execute (in order defined, or based on [`sequence.hooks`](/config/sequence#sequence-hooks))
- - Test function executes
- - `afterEach` hooks execute (reverse order by default with `sequence.hooks: 'stack'`)
- - [`onTestFinished`](/api/#ontestfinished) callbacks run (always in reverse order)
- - If test failed: [`onTestFailed`](/api/#ontestfailed) callbacks run
- - Note: if `repeats` or `retry` are set, all of these steps are executed again
-5. **`afterAll` hooks** - Run once after all tests in the suite complete
+1. **文件级代码:** `describe` 块外的所有代码立即执行
+2. **测试收集:** 处理 `describe` 块,导入测试文件时以副作用的形式注册测试
+3. **[`aroundAll`](/api/hooks#aroundall) 钩子:** 包裹套件中的所有测试(须调用 `runSuite()`)
+4. **[`beforeAll`](/api/hooks#beforeall) 钩子:** 在套件中任何测试运行之前执行一次
+5. **对于每个测试:**:
+ - [`aroundEach`](/api/hooks#aroundeach) 钩子包裹该测试(须调用 `runTest()`)
+ - `beforeEach` 钩子执行(按定义顺序,或基于 [`sequence.hooks`](/config/sequence#sequence-hooks))
+ - 测试函数执行
+ - `afterEach` 钩子执行(默认以 `sequence.hooks: 'stack'` 倒序执行)
+ - 执行 `beforeEach` 钩子返回的清理函数(默认以 `sequence.hooks: 'stack'` 倒序执行)
+ - [`onTestFinished`](/api/hooks#ontestfinished) 回调执行(始终倒序)
+ - 如果测试失败:[`onTestFailed`](/api/hooks#ontestfailed) 回调执行
+ - 注意:如果设置了 `repeats` 或 `retry`,上述所有步骤会再次执行
+6. **[`afterAll`](/api/hooks#afterall) 钩子:** 套件中所有测试完成后执行一次
+7. **`beforeAll` 钩子返回的清理函数:** 套件中的所有测试完成后执行一次
-**Example execution flow:**
+**执行流程示例:**
```ts
-// This runs immediately (collection phase)
+// 立即执行(收集阶段)
console.log('File loaded')
describe('User API', () => {
- // This runs immediately (collection phase)
+ // 立即执行(收集阶段)
console.log('Suite defined')
+ aroundAll(async (runSuite) => {
+ // 包裹套件中的所有测试
+ console.log('aroundAll before')
+ await runSuite()
+ console.log('aroundAll after')
+ })
+
beforeAll(() => {
- // Runs once before all tests in this suite
+ // 在套件所有测试前运行一次
console.log('beforeAll')
+
+ return function beforeAllCleanup() {
+ // 在 afterAll 钩子执行后运行一次
+ console.log('beforeAllCleanup')
+ }
+ })
+
+ aroundEach(async (runTest) => {
+ // 包裹每个测试用例
+ console.log('aroundEach before')
+ await runTest()
+ console.log('aroundEach after')
})
beforeEach(() => {
- // Runs before each test
+ // 每个测试用例前运行
console.log('beforeEach')
+
+ return function beforeEachCleanup() {
+ // 在 afterEach 钩子执行后运行
+ console.log('beforeEachCleanup')
+ }
})
test('creates user', () => {
- // Test executes
+ // 测试执行
console.log('test 1')
})
test('updates user', () => {
- // Test executes
+ // 测试执行
console.log('test 2')
})
afterEach(() => {
- // Runs after each test
+ // 每个测试用例后运行
console.log('afterEach')
})
afterAll(() => {
- // Runs once after all tests in this suite
+ // 在套件所有测试后运行一次
console.log('afterAll')
})
})
-// Output:
+// 输出顺序:
// File loaded
// Suite defined
-// beforeAll
-// beforeEach
-// test 1
-// afterEach
-// beforeEach
-// test 2
-// afterEach
-// afterAll
+// aroundAll before
+// beforeAll
+// aroundEach before
+// beforeEach
+// test 1
+// afterEach
+// beforeEachCleanup
+// aroundEach after
+// aroundEach before
+// beforeEach
+// test 2
+// afterEach
+// beforeEachCleanup
+// aroundEach after
+// afterAll
+// beforeAllCleanup
+// aroundAll after
```
-#### Nested Suites
+#### 嵌套套件 {#nested-suites}
-When using nested `describe` blocks, hooks follow a hierarchical pattern:
+使用嵌套 `describe` 块时,钩子遵循层级模式。`aroundAll` 和 `aroundEach` 钩子包裹各自的作用域,父级钩子包裹子级钩子:
```ts
describe('outer', () => {
+ aroundAll(async (runSuite) => {
+ console.log('outer aroundAll before')
+ await runSuite()
+ console.log('outer aroundAll after')
+ })
+
beforeAll(() => console.log('outer beforeAll'))
+
+ aroundEach(async (runTest) => {
+ console.log('outer aroundEach before')
+ await runTest()
+ console.log('outer aroundEach after')
+ })
+
beforeEach(() => console.log('outer beforeEach'))
test('outer test', () => console.log('outer test'))
describe('inner', () => {
+ aroundAll(async (runSuite) => {
+ console.log('inner aroundAll before')
+ await runSuite()
+ console.log('inner aroundAll after')
+ })
+
beforeAll(() => console.log('inner beforeAll'))
+
+ aroundEach(async (runTest) => {
+ console.log('inner aroundEach before')
+ await runTest()
+ console.log('inner aroundEach after')
+ })
+
beforeEach(() => console.log('inner beforeEach'))
test('inner test', () => console.log('inner test'))
@@ -215,106 +282,118 @@ describe('outer', () => {
afterAll(() => console.log('outer afterAll'))
})
-// Output:
-// outer beforeAll
-// outer beforeEach
-// outer test
-// outer afterEach
-// inner beforeAll
-// outer beforeEach
-// inner beforeEach
-// inner test
-// inner afterEach (with stack mode)
-// outer afterEach (with stack mode)
-// inner afterAll
-// outer afterAll
+// 输出顺序:
+// outer aroundAll before
+// outer beforeAll
+// outer aroundEach before
+// outer beforeEach
+// outer test
+// outer afterEach
+// outer aroundEach after
+// inner aroundAll before
+// inner beforeAll
+// outer aroundEach before
+// inner aroundEach before
+// outer beforeEach
+// inner beforeEach
+// inner test
+// inner afterEach
+// outer afterEach
+// inner aroundEach after
+// outer aroundEach after
+// inner afterAll
+// inner aroundAll after
+// outer afterAll
+// outer aroundAll after
```
-#### Concurrent Tests
+#### 并发测试 {#concurrent-tests}
-When using `test.concurrent` or [`sequence.concurrent`](/config/sequence#sequence-concurrent):
+使用 `test.concurrent` 或 [`sequence.concurrent`](/config/sequence#sequence-concurrent) 时:
-- Tests within the same file can run in parallel
-- Each concurrent test still runs its own `beforeEach` and `afterEach` hooks
-- Use [test context](/guide/test-context) for concurrent snapshots: `test.concurrent('name', async ({ expect }) => {})`
+- 同一文件内的测试可并行运行
+- 每个并发测试仍会各自执行 `beforeEach` 和 `afterEach` 钩子
+- 并发快照须使用 [测试上下文](/guide/test-context):`test.concurrent('name', async ({ expect }) => {})`
-### 6. Reporting Phase
+### 6. 报告阶段 {#_6-reporting-phase}
-Throughout the test run, reporters receive lifecycle events and display results.
+在整个测试运行过程中,报告器持续接收生命周期事件并展示结果。
-**What happens:**
-- Reporters receive events as tests progress
-- Results are collected and formatted
-- Test summaries are generated
-- Coverage reports are generated (if enabled)
+**发生了什么:**
+- 报告器随测试进度接收事件
+- 收集并格式化测试结果
+- 生成测试摘要
+- 如已启用,生成覆盖率报告
-For detailed information about the reporter lifecycle, see the [Reporters](/api/advanced/reporters) guide.
+报告器生命周期的详细信息,请参阅 [报告器](/api/advanced/reporters) 指南。
-### 7. Global Teardown Phase
+### 7. 全局清理阶段 {#_7-global-teardown-phase}
-After all tests complete, global teardown functions execute.
+所有测试完成后,全局清理函数开始执行。
-**What happens:**
-- `teardown()` functions from [`globalSetup`](/config/globalsetup) files run
-- Multiple teardown functions run in **reverse order** of their setup
-- In watch mode, teardown runs before process exit, not between test reruns
+**发生了什么:**
+- [`globalSetup`](/config/globalsetup) 文件中的 `teardown()` 函数执行
+- 多个清理函数以初始化 **相反的顺序** 执行
+- 在 watch 模式下,清理在进程退出前执行,而非在每次重新运行之间执行
-**Scope:** Main process
+**作用域:** 主进程
```ts [globalSetup.ts]
export function teardown() {
- // Clean up global resources
+ // 清理全局资源
console.log('Global teardown complete')
}
```
-## Lifecycle in Different Scopes
+## 不同作用域中的生命周期 {#lifecycle-in-different-scopes}
-Understanding where code executes is crucial for avoiding common pitfalls:
+理解代码在何处执行对于避免常见问题至关重要:
-| Phase | Scope | Access to Test Context | Runs |
+| 阶段 | 作用域 | 可访问测试上下文 | 执行次数 |
|-------|-------|----------------------|------|
-| Config File | Main process | ❌ No | Once per Vitest run |
-| Global Setup | Main process | ❌ No (use `provide`/`inject`) | Once per Vitest run |
-| Setup Files | Worker (same as tests) | ✅ Yes | Before each test file |
-| File-level code | Worker | ✅ Yes | Once per test file |
-| `beforeAll` / `afterAll` | Worker | ✅ Yes | Once per suite |
-| `beforeEach` / `afterEach` | Worker | ✅ Yes | Per test |
-| Test function | Worker | ✅ Yes | Once (or more with retries/repeats) |
-| Global Teardown | Main process | ❌ No | Once per Vitest run |
-
-## Watch Mode Lifecycle
-
-In watch mode, the lifecycle repeats with some differences:
-
-1. **Initial run** - Full lifecycle as described above
-2. **On file change:**
- - New [test run](/api/advanced/reporters#ontestrunstart) starts
- - Only affected test files are re-run
- - [Setup files](/config/setupfiles) run again for those test files
- - [Global setup](/config/globalsetup) does **not** re-run (use [`project.onTestsRerun`](/config/globalsetup#handling-test-reruns) for rerun-specific logic)
-3. **On exit:**
- - Global teardown executes
- - Process terminates
-
-## Performance Considerations
-
-Understanding the lifecycle helps optimize test performance:
-
-- **Global setup** is ideal for expensive one-time operations (database seeding, server startup)
-- **Setup files** run before each test file - avoid heavy operations here if you have many test files
-- **`beforeAll`** is better than `beforeEach` for expensive setup that doesn't need isolation
-- **Disabling [isolation](/config/isolate)** improves performance, but setup files still execute before each file
-- **[Pool configuration](/config/pool)** affects parallelization and available APIs
-
-For tips on how to improve performance, read the [Improving Performance](/guide/improving-performance) guide.
-
-## Related Documentation
-
-- [Global Setup Configuration](/config/globalsetup)
-- [Setup Files Configuration](/config/setupfiles)
-- [Test Sequencing Options](/config/sequence)
-- [Isolation Configuration](/config/isolate)
-- [Pool Configuration](/config/pool)
-- [Extending Reporters](/guide/advanced/reporters) - for reporter lifecycle events
-- [Test API Reference](/api/) - for hook APIs and test functions
+| 配置文件 | 主进程 | ❌ 否 | 每次运行 Vitest 执行一次 |
+| 全局初始化 | 主进程 | ❌ 否 (使用 `provide`/`inject`) | 每次运行 Vitest 执行一次 |
+| Setup 文件 | Worker(与测试相同) | ✅ 是 | 运行每个测试文件之前执行一次 |
+| 文件级代码 | Worker | ✅ 是 | 运行每个测试文件执行一次 |
+| `aroundAll` | Worker | ✅ 是 | 运行每个套件执行一次(包裹所有测试) |
+| `beforeAll` / `afterAll` | Worker | ✅ 是 | 运行每个套件执行一次 |
+| `aroundEach` | Worker | ✅ 是 | 运行每个测试执行一次(包裹每个测试) |
+| `beforeEach` / `afterEach` | Worker | ✅ 是 | 每个测试执行一次 |
+| 测试函数 | Worker | ✅ 是 | 一次(重试/重复时更多)|
+| 全局清理 | 主进程 | ❌ 否 | 每次运行 Vitest 执行一次 |
+
+## Watch 模式下的生命周期 {#watch-mode-lifecycle}
+
+在 watch 模式下,生命周期会重复执行,但有一些差异:
+
+1. **首次运行:** 完整生命周期如上所述
+2. **文件变更时:**
+ - 启动新的 [测试运行器](/api/advanced/reporters#ontestrunstart)
+ - 只有受影响的测试文件会重新运行
+ - 受影响测试文件的 [setup 文件](/config/setupfiles) 会重新执行
+ - [全局 setup](/config/globalsetup) 不会重新运行(如需在重新运行时执行特定逻辑,请使用 [`project.onTestsRerun`](/config/globalsetup#handling-test-reruns))
+3. **退出时:**
+ - 执行全局清理
+ - 进程终止
+
+## 性能注意事项 {#performance-considerations}
+
+理解生命周期有助于优化测试性能:
+
+- **全局初始化:** 适用于昂贵的一次性操作(数据库初始化、服务器启动)
+- **Setup 文件:** 在每个测试文件之前运行,如果测试文件较多,避免在此处执行耗时操作
+- **`beforeAll`:** 对于不需要隔离的昂贵初始化,`beforeAll` 优于 `beforeEach`
+- **禁用 [隔离](/config/isolate):** 可提升性能,但 setup 文件仍会在每个文件之前执行
+- **[自定义运行池配置](/config/pool):** 影响并行化程度和可用的 API
+
+更多性能优化技巧,请参阅 [性能优化](/guide/improving-performance) 指南。
+
+## 相关文档 {#related-documentation}
+
+- [全局初始化配置](/config/globalsetup)
+- [setup 文件配置](/config/setupfiles)
+- [测试排序配置项](/config/sequence)
+- [隔离配置](/config/isolate)
+- [自定义运行池配置](/config/pool)
+- [扩展报告器](/guide/advanced/reporters): 报告器生命周期事件
+- [Test API](/api/hooks): 钩子 API
diff --git a/guide/migration.md b/guide/migration.md
deleted file mode 100644
index 895862d63..000000000
--- a/guide/migration.md
+++ /dev/null
@@ -1,815 +0,0 @@
----
-title: 迁移指南 | 指南
-outline: deep
----
-
-# 迁移指南 {#migration-guide}
-
-## 迁移到 Vitest 4.0 {#vitest-4}
-
-### V8 Code Coverage Major Changes {#v8-code-coverage-major-changes}
-
-Vitest 的 V8 覆盖率提供器现在使用了更精准的结果映射逻辑,从 Vitest v3 升级后,你可能会看到覆盖率报告的内容有变化。
-
-之前 Vitest 使用 [`v8-to-istanbul`](https://github.com/istanbuljs/v8-to-istanbul) 将 V8 覆盖率结果映射到源码文件,但这种方式不够准确,报告中常常会出现误报。现在我们开发了基于 AST 分析的新方法,使 V8 报告的准确度与 `@vitest/coverage-istanbul` 一致。
-
-- 覆盖率忽略提示已更新,详见 [覆盖率 | 忽略代码](/guide/coverage.html#ignoring-code)。
-- 已移除 `coverage.ignoreEmptyLines` 选项。没有可执行代码的行将不再出现在报告中。
-- 已移除 `coverage.experimentalAstAwareRemapping` 选项。此功能现已默认启用,并成为唯一的映射方式。
-- 现在 V8 提供器也支持 `coverage.ignoreClassMethods`。
-
-### 移除 `coverage.all` 和 `coverage.extensions` 选项 {#removed-options-coverage-all-and-coverage-extensions}
-
-在之前的版本中,Vitest 会默认把所有未覆盖的文件包含到报告中。这是因为 `coverage.all` 默认为 `true`,`coverage.include` 默认为 `**`。这样设计是因为测试工具无法准确判断用户源码所在位置。
-
-然而,这导致 Vitest 覆盖率工具会处理很多意料之外的文件(例如压缩 JS 文件),造成报告生成速度很慢甚至卡死。在 Vitest v4 中,我们彻底移除了 `coverage.all`,并将默认行为改为**只在报告中包含被测试覆盖的文件**。
-
-When upgrading to v4 it is recommended to define `coverage.include` in your configuration, and then start applying simple `coverage.exclude` patterns if needed.
-
-```ts [vitest.config.ts]
-export default defineConfig({
- test: {
- coverage: {
- // 包含匹配此模式的被覆盖和未覆盖文件:
- include: ['packages/**/src/**.{js,jsx,ts,tsx}'], // [!code ++]
-
- // 对上述 include 匹配到的文件应用排除规则:
- exclude: ['**/some-pattern/**'], // [!code ++]
-
- // 以下选项已移除
- all: true, // [!code --]
- extensions: ['js', 'ts'], // [!code --]
- }
- }
-})
-```
-
-如果未定义 `coverage.include`,报告将只包含测试运行中被加载的文件:
-
-```ts [vitest.config.ts]
-export default defineConfig({
- test: {
- coverage: {
- // 未设置 include,只包含运行时加载的文件
- include: undefined, // [!code ++]
-
- // 匹配此模式的已加载文件将被排除:
- exclude: ['**/some-pattern/**'], // [!code ++]
- }
- }
-})
-```
-
-更多示例请参考:
-- [覆盖率报告中的文件包含与排除](/guide/coverage.html#including-and-excluding-files-from-coverage-report)
-- [性能分析 | 代码覆盖率](/guide/profiling-test-performance.html#code-coverage) 了解调试覆盖率生成的方法
-
-
-### Simplified `exclude`
-
-By default, Vitest now only excludes tests from `node_modules` and `.git` folders. This means that Vitest no longer excludes:
-
-- `dist` and `cypress` folders
-- `.idea`, `.cache`, `.output`, `.temp` folders
-- config files like `rollup.config.js`, `prettier.config.js`, `ava.config.js` and so on
-
-If you need to limit the directory where your tests files are located, use the [`test.dir`](/config/dir) option instead because it is more performant than excluding files:
-
-```ts
-import { configDefaults, defineConfig } from 'vitest/config'
-
-export default defineConfig({
- test: {
- dir: './frontend/tests', // [!code ++]
- },
-})
-```
-
-To restore the previous behaviour, specify old `excludes` manually:
-
-```ts
-import { configDefaults, defineConfig } from 'vitest/config'
-
-export default defineConfig({
- test: {
- exclude: [
- ...configDefaults.exclude,
- '**/dist/**', // [!code ++]
- '**/cypress/**', // [!code ++]
- '**/.{idea,git,cache,output,temp}/**', // [!code ++]
- '**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build,eslint,prettier}.config.*' // [!code ++]
- ],
- },
-})
-```
-
-### `spyOn` and `fn` Support Constructors
-
-Previously, if you tried to spy on a constructor with `vi.spyOn`, you would get an error like `Constructor
+
-## `@opentelemetry/api`
+## `@opentelemetry/api` {#opentelemetry-api}
-Vitest declares `@opentelemetry/api` as an optional peer dependency, which it uses internally to generate spans. When trace collection is not enabled, Vitest will not attempt to use this dependency.
+Vitest 将 `@opentelemetry/api` 声明为可选的对等依赖项,内部使用该库生成跨度。当未启用追踪收集功能时,Vitest 不会尝试使用此依赖项。
-When configuring Vitest to use OpenTelemetry, you will typically install `@opentelemetry/sdk-node`, which includes `@opentelemetry/api` as a transitive dependency, thereby satisfying Vitest's peer dependency requirement. If you encounter an error indicating that `@opentelemetry/api` cannot be found, this typically means trace collection has not been enabled. If the error persists after proper configuration, you may need to install `@opentelemetry/api` explicitly.
+在配置 Vitest 使用 OpenTelemetry 时,你通常会安装 `@opentelemetry/sdk-node`,它包含 `@opentelemetry/api` 作为传递依赖项,从而满足 Vitest 的对等依赖项要求。如果出现 `@opentelemetry/api` 未找到的错误,通常意味着未启用追踪收集功能。若正确配置后问题仍然存在,可能需要显式安装 `@opentelemetry/api`。
-## Inter-Process Context Propagation
+## 进程间上下文传播 {#inter-process-context-propagation}
-Vitest supports automatic context propagation from parent processes via the `TRACEPARENT` and `TRACESTATE` environment variables as defined in the [OpenTelemetry specification](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/context/env-carriers.md). This is particularly useful when running Vitest as part of a larger distributed tracing system (e.g., CI/CD pipelines with OpenTelemetry instrumentation).
+Vitest 支持通过 `TRACEPARENT` 和 `TRACESTATE` 环境变量从父进程的自动上下文传播,其遵循 [OpenTelemetry 规范](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/context/env-carriers.md) 中所定义。这在将 Vitest 作为大型分布式追踪系统的一部分运行时尤为实用(例如,具有 OpenTelemetry 检测的 CI/CD 管道)。
diff --git a/guide/parallelism.md b/guide/parallelism.md
index f46ed7c5d..d577dc7af 100644
--- a/guide/parallelism.md
+++ b/guide/parallelism.md
@@ -1,31 +1,55 @@
---
-title: 并行性 | Guide
+title: 并行性 | 指南
outline: deep
---
# 并行性 {#parallelism}
+Vitest 有两个层级的并行机制:它可以同时运行多个 _测试文件_,也可以在单个文件内同时运行多个 _测试_。理解这两者之间的区别至关重要,因为它们的工作方式不同,权衡内容也不同。
+
## 文件级并行 {#file-parallelism}
-默认情况下,Vitest 会并行运行 _测试文件_。根据指定的 `pool`,Vitest 会采用不同的并行化机制:
+默认情况下,Vitest 会在多个 worker 中并行运行测试文件。每个文件都拥有独立的隔离环境,因此不同文件中的测试不会相互干扰。
+
+Vitest 创建 worker 的机制取决于配置的 [`pool`](/config/pool):
-- `forks`(默认)和 `vmForks` 会在不同的 [child processes](https://nodejs.org/api/child_process.html) 中执行测试
-- `threads` 和 `vmThreads` 则会在不同的 [worker threads](https://nodejs.org/api/worker_threads.html) 中运行
+- `forks`(默认值)和 `vmForks` 在单独的 [子进程](https://nodejs.org/api/child_process.html) 中运行每个文件
+- `threads` 和 `vmThreads` 在单独的 [工作线程](https://nodejs.org/api/worker_threads.html) 中运行每个文件
-
-Both "child processes" and "worker threads" are refered to as "workers". You can configure the number of running workers with [`maxWorkers`](/config/#maxworkers) option.
+你可以通过 [`maxWorkers`](/config/maxworkers) 选项控制同时运行的 worker 数量。更多的 worker 意味着可以并行运行更多文件,但也会占用更多内存和 CPU。具体的数量取决于你的机器性能和测试的负载情况。
-如果项目包含大量测试文件,通常并行执行会大幅提升速度。但具体效果还要看项目本身、运行环境以及是否启用了 [隔离](/config/#isolate)。若需要关闭文件级并行化,可以将 [`fileParallelism`](/config/#fileparallelism) 设为 `false` 。更多性能优化技巧,请参考 [性能指南](/guide/improving-performance) 。
+对于大多数项目而言,文件级并行是影响测试套件速度的最主要因素。然而,在某些情况下,你可能需要禁用它:例如,当你的测试共享一个无法处理并发访问的外部资源(如数据库)时。你可以将 [`fileParallelism`](/config/fileparallelism) 设置为 `false` 来逐个顺序运行文件。
+
+要了解更多关于性能优化的信息,请参阅 [性能指南](/guide/improving-performance)。
## 测试级并行 {#test-parallelism}
-与 _测试文件_ 不同, Vitest 在同一个文件中会顺序执行 _测试用例_ 。也就是说,同一个文件里的测试会按定义顺序一个接一个地执行。
+在单个文件内部,Vitest 默认按顺序运行测试。测试按照定义的顺序依次执行。这是最安全的默认设置,因为同一文件内的测试通常通过 `beforeEach` 等生命周期钩子共享初始化和状态。
+
+如果文件中的测试是相互独立的,你可以选择使用 [`concurrent`](/api/test#test-concurrent) 修饰符来并发运行它们:
-如果希望让同一文件中的多个测试并行执行,可以使用 [`concurrent`](/api/#test-concurrent) 选项。启用后, Vitest 会将同一文件中的并发测试分组,并基于 maxConcurrency 控制并行度,然后通过 [`Promise.all`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all) 一起执行。
+```ts
+import { expect, test } from 'vitest'
-Vitest 不会自动分析你的测试是否可以并行,也不会为了并发而额外创建工作者。这意味着,只有在测试中有大量异步操作时,使用并发才能提升性能。例如,以下示例即便指定了 concurrent ,也会顺序执行,因为它们是同步的:
+test.concurrent('fetches user profile', async () => {
+ const user = await fetchUser(1)
+ expect(user.name).toBe('Alice')
+})
+
+test.concurrent('fetches user posts', async () => {
+ const posts = await fetchPosts(1)
+ expect(posts).toHaveLength(3)
+})
+```
+
+当测试被标记为 `concurrent` 时,Vitest 会将它们分组,并使用 [`Promise.all`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all) 运行它们。同时运行的测试数量受 [`maxConcurrency`](/config/maxconcurrency) 参数限制。
+
+::: tip `concurrent` 何时真正有效?
+Vitest 不会为并发测试创建额外的 worker,它们都会在所属文件的同一个 worker 中运行。这意味着,只有当测试会花时间 “等待”(例如等待网络请求、定时器、文件 I/O 等)时,`concurrent` 才能带来提速。纯同步测试不会因此受益,因为它们仍然会阻塞单个 JavaScript 线程:
```ts
+// 尽管使用了 `concurrent`,这些测试仍会依次运行,
+// 因为没有任何需要等待的内容
test.concurrent('the first test', () => {
expect(1).toBe(1)
})
@@ -35,4 +59,43 @@ test.concurrent('the second test', () => {
})
```
-如果希望所有测试用例都并发执行,可以将 [`sequence.concurrent`](/config/#sequence-concurrent) 配置项设为 `true` 。
+:::
+
+你也可以将 `concurrent` 应用于整个测试套件:
+
+```ts
+import { describe, expect, test } from 'vitest'
+
+describe.concurrent('user API', () => {
+ test('fetches profile', async () => {
+ const user = await fetchUser(1)
+ expect(user.name).toBe('Alice')
+ })
+
+ test('fetches posts', async () => {
+ const posts = await fetchPosts(1)
+ expect(posts).toHaveLength(3)
+ })
+})
+```
+
+如果你希望项目中的 _所有_ 测试默认并发运行,可以在配置中将 [`sequence.concurrent`](/config/sequence#sequence-concurrent) 设置为 `true`。
+
+你可以通过 `concurrent: false` 让单个测试或测试套件退出继承的并发设置:
+
+```ts
+test('uses a shared resource', { concurrent: false }, async () => {
+ // ...
+})
+
+describe('shared resource suite', { concurrent: false }, () => {
+ test('step 1', async () => { /* ... */ })
+ test('step 2', async () => { /* ... */ })
+})
+```
+
+### 并发测试中的钩子 {#hooks-with-concurrent-tests}
+
+当测试并发运行时,生命周期钩子的行为会有所不同。`beforeAll` 和 `afterAll` 仍然会为整个组运行一次,但 `beforeEach` 和 `afterEach` 会为每个测试分别运行,而且由于测试本身会重叠执行,它们可能会在同一时间发生。
+
+钩子的执行顺序由 [`sequence.hooks`](/config/sequence#sequence-hooks) 控制。当 `sequence.hooks` 设置为 `'parallel'` 时,钩子同样受 [`maxConcurrency`](/config/maxconcurrency) 限制。
diff --git a/guide/profiling-test-performance.md b/guide/profiling-test-performance.md
index 4cae9f3cf..018b0e0f7 100644
--- a/guide/profiling-test-performance.md
+++ b/guide/profiling-test-performance.md
@@ -14,12 +14,12 @@
> Duration 4.80s (transform 44ms, setup 0ms, import 35ms, tests 4.52s, environment 0ms)
> # Time metrics ^^
> ```
-
-- Transform: How much time was spent transforming the files. See [File Transform](#file-transform).
-- Setup: Time spent for running the [`setupFiles`](/config/setupfiles) files.
-- Import: Time it took to import your test files and their dependencies. This also includes the time spent collecting all tests. Note that this doesn't include dynamic imports inside of tests.
-- Tests: Time spent for actually running the test cases.
-- Environment: Time spent for setting up the test [`environment`](/config/#environment), for example JSDOM.
+
+- Transform:转换文件所用的时间。详情请参阅 [文件转换](#file-transform)。
+- Setup:执行 [`setupFiles`](/config/setupfiles) 文件所花费的时间。
+- Import:导入测试文件及其依赖项所花费的时间。这也包括收集所有测试所花费的时间。注意,这不包括测试内部的动态导入。
+- Tests:实际执行测试用例所用的时间。
+- Environment:[`配置测试`](/config/environment) 环境(比如 JSDOM)所需的时间。
## 测试运行器 {#test-runner}
@@ -30,11 +30,10 @@
- [`--prof`](https://nodejs.org/api/cli.html#--prof)
:::warning
-由于 `node:worker_threads` 的限制, `--prof` 不能与 `pool: 'threads'` 一起使用。
+由于 `node:worker_threads` 的限制,`--prof` 不能与 `pool: 'threads'` 一起使用。
:::
-
-To pass these options to Vitest's test runner, define `execArgv` in your Vitest configuration:
+要将这些选项传递给 Vitest 的测试运行器,请在 Vitest 配置中定义 `execArgv`:
```ts
import { defineConfig } from 'vitest/config'
@@ -54,11 +53,11 @@ export default defineConfig({
测试运行后,应该会生成 `test-runner-profile/*.cpuprofile` 和 `test-runner-profile/*.heapprofile` 文件。想要知道如何分析这些文件,可以仔细查看 [性能分析记录](#inspecting-profiling-records)。
-也可以看看 [性能分析 | 示例](https://github.com/vitest-dev/vitest/tree/main/examples/profiling) 。
+也可以看看 [性能分析 | 示例](https://github.com/vitest-dev/vitest/tree/main/examples/profiling)。
## 主线程 {#main-thread}
-对主线程进行性能分析有助于调试 Vitest 的 Vite 使用情况和 [`globalSetup`](/config/#globalsetup) 文件。
+对主线程进行性能分析有助于调试 Vitest 的 Vite 使用情况和 [`globalSetup`](/config/globalsetup) 文件。
这也是 Vite 插件运行的地方。
:::tip
@@ -75,18 +74,18 @@ $ node --cpu-prof --cpu-prof-dir=main-profile ./node_modules/vitest/vitest.mjs -
# NodeJS arguments Vitest arguments
```
-测试运行后会生成一个 `main-profile/*.cpuprofile` 文件。有关如何分析这些文件的说明,可以查看[检查分析记录](#inspecting-profiling-records)。
+测试运行后会生成一个 `main-profile/*.cpuprofile` 文件。有关如何分析这些文件的说明,可以查看 [检查分析记录](#inspecting-profiling-records)。
## 文件转换 {#file-transform}
-This profiling strategy is a good way to identify unnecessary transforms caused by [barrel files](https://vitejs.dev/guide/performance.html#avoid-barrel-files).
-If these logs contain files that should not be loaded when your test is run, you might have barrel files that are importing files unnecessarily.
+种分析策略有助于识别由 [桶文件](https://cn.vitejs.dev/guide/performance.html#avoid-barrel-files) 引起的不必要转换。如果这些日志包含在运行测试时不应加载的文件,你可能有一些桶文件在导入不必要的文件。
-也可以使用 [Vitest UI](/guide/ui) 来调试由打包文件引起的缓慢问题。
-下面的例子展示了不使用打包文件导入文件可以减少约85%的转换文件数量。
+也可以使用 [UI 模式](/guide/ui) 来调试由打包文件引起的缓慢问题。
+下面的例子展示了不使用打包文件导入文件可以减少约 85% 的转换文件数量。
::: code-group
-``` [File tree]
+
+```[File tree]
├── src
│ └── utils
│ ├── currency.ts
@@ -100,6 +99,7 @@ If these logs contain files that should not be loaded when your test is run, you
│ └── formatters.test.ts
└── vitest.config.ts
```
+
```ts [example.test.ts]
import { expect, test } from 'vitest'
import { formatter } from '../src/utils' // [!code --]
@@ -109,27 +109,109 @@ test('formatter works', () => {
expect(formatter).not.toThrow()
})
```
+
:::
-
+
+
+要查看文件是如何被转换的,你可以在 UI 模式 中打开 "模块信息" 视图:
+
+
+
-To see how files are transformed, you can use `VITEST_DEBUG_DUMP` environment variable to write transformed files in the file system:
+## 文件导入 {#file-import}
+
+有些模块加载时间较长。要识别哪些模块最慢,请在配置中启用 [`experimental.importDurations`](/config/experimental#experimental-importdurations):
+
+```ts [vitest.config.ts]
+import { defineConfig } from 'vitest/config'
+
+export default defineConfig({
+ test: {
+ experimental: {
+ importDurations: {
+ print: true,
+ },
+ },
+ },
+})
+```
+
+这将在测试完成后打印最慢导入的详情:
```bash
-$ VITEST_DEBUG_DUMP=true vitest --run
+Import Duration Breakdown (Top 10)
+
+Module Self Total
+my-test.test.ts 5ms 620ms [████████████████████]
+date-fns/index.js 500ms 500ms [████████████████░░░░] # [!code error]
+src/utils/helpers.ts 10ms 120ms [████████░░░░░░░░░░░░]
+```
+
+你也可以在不更改配置的情况下,在 CLI 传递 `--experimental.importDurations.print` 参数:
+
+```bash
+vitest --experimental.importDurations.print
+```
+
+一旦识别出慢速模块,有几种策略可以加速导入:
- RUN v2.1.1 /x/vitest/examples/profiling
-...
+### 使用特定入口 {#use-specific-entry-points}
-$ ls .vitest-dump/
-_x_examples_profiling_global-setup_ts-1292904907.js
-_x_examples_profiling_test_prime-number_test_ts-1413378098.js
-_src_prime-number_ts-525172412.js
+许多库提供了多个入口点。导入主入口点(通常是 [桶文件](https://cn.vitejs.dev/guide/performance.html#avoid-barrel-files))可能会引入比你所需多得多的代码。
+
+例如,`date-fns` 从其主入口点重新导出了数百个函数。与其从顶层模块导入,不如直接从特定入口导入:
+
+```ts
+import { format } from 'date-fns' // [!code --]
+import { format } from 'date-fns/format' // [!code ++]
+```
+
+### 使用 `resolve.alias` 重定向导入 {#use-resolve-alias-to-redirect-imports}
+
+如果一个依赖没有提供细粒度的入口,或者第三方代码导入了重量级入口点,你可以使用 [`resolve.alias`](https://cn.vite.dev/config/shared-options#resolve-alias) 将导入重定向到更轻量的替代方案:
+
+```ts [vitest.config.ts]
+import { defineConfig } from 'vitest/config'
+
+export default defineConfig({
+ resolve: {
+ alias: [
+ {
+ find: /^date-fns$/,
+ replacement: join(dirname(require.resolve('date-fns/package.json')), 'index.cjs'),
+ },
+ ]
+ },
+})
```
+### 使用依赖优化器 {#use-the-dependency-optimizer}
+
+Vitest 可以使用 [`deps.optimizer`](/config/deps#deps-optimizer) 将外部库打包到单个文件中,这减少了导入具有许多内部模块的包的开销:
+
+```ts [vitest.config.ts]
+import { defineConfig } from 'vitest/config'
+
+export default defineConfig({
+ test: {
+ deps: {
+ optimizer: {
+ ssr: {
+ enabled: true,
+ include: ['date-fns'],
+ },
+ },
+ },
+ },
+})
+```
+
+这对于 UI 库和具有深层导入树的包极其有效。对于 `node`/`edge` 环境使用 `optimizer.ssr`,对于 `jsdom`/`happy-dom` 环境使用 `optimizer.client`。
+
## 代码覆盖率 {#code-coverage}
-如果你的项目中代码覆盖率生成较慢,您可以使用 `DEBUG=vitest:coverage` 环境变量来启用性能日志记录。
+如果你的项目中代码覆盖率生成较慢,你可以使用 `DEBUG=vitest:coverage` 环境变量来启用性能日志记录。
```bash
$ DEBUG=vitest:coverage vitest --run --coverage
@@ -151,7 +233,7 @@ $ DEBUG=vitest:coverage vitest --run --coverage
这种性能分析方法非常适合检测被覆盖率提供程序意外包含的大文件。
例如,如果你的配置意外地将大型构建压缩后的 JavaScript 文件包含在代码覆盖率中,这些文件应该会出现在日志中。
-在这种情况下,你可能需要调整 [`coverage.include`](/config/#coverage-include) 和 [`coverage.exclude`](/config/#coverage-exclude) 选项。
+在这种情况下,你可能需要调整 [`coverage.include`](/config/coverage#coverage-include) 和 [`coverage.exclude`](/config/coverage#coverage-exclude) 选项。
## 性能记录分析 {#inspecting-profiling-records}
diff --git a/guide/projects.md b/guide/projects.md
index 4cc8e860b..c88d5a13e 100644
--- a/guide/projects.md
+++ b/guide/projects.md
@@ -5,9 +5,7 @@ title: 测试项目 | 指南
# 测试项目 {#test-projects}
::: tip 示例项目
-
[GitHub](https://github.com/vitest-dev/vitest/tree/main/examples/projects) - [在线演示](https://stackblitz.com/fork/github/vitest-dev/vitest/tree/main/examples/projects?initialPath=__vitest__/)
-
:::
::: warning
@@ -42,11 +40,17 @@ export default defineConfig({
})
```
-Vitest 会将 `packages` 中的每个文件夹视为独立项目,即使其中没有配置文件。如果 glob 模式匹配到文件,它将验证文件名是否以 `vitest.config`/`vite.config` 开头,或匹配 `(vite|vitest).*.config.*` 模式,以确保它是 Vitest 配置文件。例如,以下配置文件是有效的:
+即使其中没有配置文件,Vitest 也会将 `packages` 目录下的每个文件夹视为独立项目。当项目入口解析为文件时(无论是通过 glob 模式还是直接文件路径),Vitest 会验证文件名是否符合以下规则之一:
+
+- 以 `vitest.config` 或 `vite.config` 开头(例如 `vitest.config.unit.ts`)
+- 匹配 `vitest.
+
+
+任务摘要默认启用,并写入 `$GITHUB_STEP_SUMMARY` 指定的路径。你可以使用 `jobSummary.outputPath` 选项来覆盖它:
+
+```ts
+export default defineConfig({
+ test: {
+ reporters: [
+ ['github-actions', {
+ jobSummary: {
+ outputPath: '/home/runner/jobs/summary/step',
+ },
+ }],
+ ],
+ },
+})
+```
+
+要禁用任务摘要:
+
+```ts
+export default defineConfig({
+ test: {
+ reporters: [
+ ['github-actions', { jobSummary: { enabled: false } }],
+ ],
+ },
+})
+```
+
+当设置了 [`test.name`](/config/name) 时,任务摘要标题默认为 `Vitest Test Report` 或 `(${test.name}) Vitest Test Report`。
+
+你可以通过设置 `jobSummary.title` 来自定义标题,以区分追加到同一任务摘要的多个 Vitest 调用。请注意,使用自定义标题时,`test.name` 将不再显示。
+
+```ts
+export default defineConfig({
+ test: {
+ reporters: [
+ ['github-actions', {
+ jobSummary: {
+ title: 'My Test Report',
+ },
+ }],
+ ],
+ },
+})
+```
+
+摘要中的容易失败测试部分会包含永久 URL 链接,可将测试名称直接链接到 GitHub 上对应的源码行。这些链接会利用 GitHubActions 提供的环境变量(`$GITHUB_REPOSITORY`、`$GITHUB_SHA` 和 `$GITHUB_WORKSPACE`)自动生成,因此在大多数情况下无需额外配置。
+
+如果你需要覆盖这些值:例如,在容器或自定义环境中运行时——可以通过 `fileLinks` 选项进行自定义:
+
+- `repository`:GitHub 仓库,格式为 `owner/repo`。默认为 `process.env.GITHUB_REPOSITORY`。
+- `commitHash`:用于永久链接 URL 的提交 SHA。默认为 `process.env.GITHUB_SHA`。
+- `workspacePath`:磁盘上仓库根目录的绝对路径。用于计算永久链接 URL 的相对文件路径。默认为 `process.env.GITHUB_WORKSPACE`。
+
+这三个值都必填可用才能生成链接。
+
+```ts
+export default defineConfig({
+ test: {
+ reporters: [
+ ['github-actions', {
+ jobSummary: {
+ fileLinks: {
+ repository: 'owner/repo',
+ commitHash: 'abcdefg',
+ workspacePath: '/home/runner/work/repo/',
+ },
+ },
+ }],
+ ],
+ },
+})
+```
+
+### 精简报告器 {#minimal-reporter}
+
+- **别名:** `agent`
+
+输出一份精简报告,只包含失败的测试及其错误信息。通过测试的控制台日志和摘要部分也会被一并隐藏。
+
+::: tip 智能体报告器
+此报告器针对 AI 编程助手和基于 LLM 的工作流程进行了优化,以减少词元使用量。当 Vitest 检测到它在 AI 智能体编程内部运行时,它会 [自动启用](#default-configuration)。
+
+:::code-group
+
+```bash [CLI]
+npx vitest --reporter=minimal
+```
+
+```ts [vitest.config.ts]
+export default defineConfig({
+ test: {
+ reporters: ['minimal']
+ },
+})
+```
+
+:::
+
+### Blob 报告器 {#blob-reporter}
将测试结果存储在计算机上,以便以后可以使用 [`--merge-reports`](/guide/cli#merge-reports) 命令进行合并。
-默认情况下,将所有结果存储在 `.vitest-reports` 文件夹中,但可以用 `--outputFile` 或 `--outputFile.blob` 标志覆盖。
+默认情况下,将所有结果存储在 `.vitest/blob/` 文件夹中,但可以用 `--outputFile` 或 `--outputFile.blob` 参数覆盖。
```bash
npx vitest --reporter=blob --outputFile=reports/blob-1.json
```
-如果你在带有 [`--shard`](/guide/cli#shard) 标志的不同机器上运行 Vitest,我们建议你使用此报告程序。
-使用 CI 管道末尾的 `--merge-reports` 命令,可以将所有 blob 报告合并到任何报告中:
+如果你在不同的机器上使用 [`--shard`](/guide/cli#shard) 参数运行 Vitest,或者跨多个环境(例如,linux/macos/windows)运行,我们建议使用此报告器。所有 blob 报告都可以在 CI 流水线结束时使用 `--merge-reports` 命令合并到任何报告中:
```bash
npx vitest --merge-reports=reports --reporter=json --reporter=default
```
+在多个环境中运行相同的测试时,使用 `VITEST_BLOB_LABEL` 环境变量来区分每个环境的 blob。Vitest 在合并时读取标签并分别显示结果:
+
+```bash
+VITEST_BLOB_LABEL=linux vitest run --reporter=blob
+```
+
+你也可以通过 blob 报告器参数传递标签。这比 `VITEST_BLOB_LABEL` 具有更高的优先级。
+
+```ts [vitest.config.ts]
+import { defineConfig } from 'vitest/config'
+
+export default defineConfig({
+ test: {
+ reporters: [
+ ['blob', { label: 'linux' }],
+ ],
+ },
+})
+```
+
+Blob 报告器输出不包含基于文件的 [附件](/api/advanced/artifacts.html#testattachment)。
+在使用此功能时,请确保在 CI 中合并 blob 报告的同时,一并处理 [`attachmentsDir`](/config/attachmentsdir)。
+
::: tip
`--reporter=blob` 和 `--merge-reports` 这两个选项在监听模式下均不可用。
:::
diff --git a/guide/snapshot.md b/guide/snapshot.md
index 23884ab08..c7bfe08ae 100644
--- a/guide/snapshot.md
+++ b/guide/snapshot.md
@@ -4,15 +4,19 @@ title: 测试快照 | 指南
# 测试快照 {#snapshot}
-当你希望确保函数的输出不会意外更改时,快照测试是一个非常有用的工具。
+::: tip
+想轻松上手快照测试?推荐从 [快照测试](/guide/learn/snapshots) 教程开始学习,该教程采用渐进式教学方式,特别适合初学者掌握核心概念。
+:::
+
+
+如果你使用编程式 API,可将 `tagsFilter` 参数传递给 [`startVitest`](/guide/advanced/#startvitest) 或 [`createVitest`](/guide/advanced/#createvitest):
+
+```ts
+import { startVitest } from 'vitest/node'
+
+await startVitest([], {
+ tagsFilter: ['frontend and backend'],
+})
+```
+
+也可创建包含自定义筛选器的 [test specification](/api/advanced/test-specification):
+
+```ts
+const specification = vitest.getRootProject().createSpecification(
+ '/path-to-file.js',
+ {
+ testTagsFilter: ['frontend and backend'],
+ },
+)
+```
+
+### 语法 {#syntax}
+
+可通过多种方式组合标签。Vitest 支持以下关键字:
+
+- `and` 或 `&&` 表示同时满足两个表达式
+- `or` 或 `||` 表示至少满足一个表达式
+- `not` 或 `!` 表示排除指定表达式
+- `*` 表示匹配任意数量字符(0 个或多个)
+- `()` 表示分组表达式并提升优先级
+
+解析器将遵循标准 [运算符优先级](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_precedence):`not`/`!` 优先级最高,其次是 `and`/`&&`,最后是 `or`/`||`。使用括号将提升优先级。
+
+::: warning 保留字
+标签名称不能为 `and`, `or`, 或 `not`(不区分大小写),这些都是保留字。标签名称也不能包含特殊字符(`(`, `)`, `&`, `|`, `!`, `*`,空格),这些字符已经被表达式解析器占用。
+:::
+
+### 通配符 {#wildcards}
+
+使用(`*`)可以匹配任意数量字符:
+
+```shell
+vitest --tags-filter="unit/*"
+```
+
+将会匹配到类似 `unit/components`, `unit/utils` 等标签。
+
+### 排除标签 {#excluding-tags}
+
+在标签前添加感叹号(`!`)或使用 “not” 关键字可排除指定标签的测试:
+
+```shell
+vitest --tags-filter="!slow and not flaky"
+```
+
+### 示例 {#examples}
+
+以下是常见的筛选命令示例:
+
+```shell
+# 仅运行 unit 的测试
+vitest --tags-filter="unit"
+
+# 运行同时满足 frontend 和 fast 的测试
+vitest --tags-filter="frontend and fast"
+
+# 运行 unit 测试或 e2e 测试
+vitest --tags-filter="unit or e2e"
+
+# 运行除 slow 测试外的所有测试
+vitest --tags-filter="!slow"
+
+# 运行 frontend 且非不稳定的测试
+vitest --tags-filter="frontend && !flaky"
+
+# 运行匹配通配符模式的测试
+vitest --tags-filter="api/*"
+
+# 带括号的复杂表达式
+vitest --tags-filter="(unit || e2e) && !slow"
+
+# 运行数据库测试(PostgreSQL 或 MySQL)且非慢速的测试
+vitest --tags-filter="db && (postgres || mysql) && !slow"
+```
+
+支持传递多个 `--tags-filter` 参数,它们会使用 AND 逻辑相组合:
+
+```shell
+# 运行(unit 或 e2e 测试)且非慢速的测试
+vitest --tags-filter="unit || e2e" --tags-filter="!slow"
+```
+
+### 运行时检查标签过滤器 {#checking-tags-filter-at-runtime}
+
+你可以使用 `TestRunner.matchesTags` 方法来检查当前标签过滤器是否匹配一组标签。该特性特别适用于按需执行高开销的初始化逻辑,当相关测试的标签被包含时才运行:
+
+```ts
+import { beforeAll, TestRunner } from 'vitest'
+
+beforeAll(async () => {
+ // 当使用 "vitest --tags-filter db" 时初始化数据库
+ if (TestRunner.matchesTags(['db'])) {
+ await seedDatabase()
+ }
+})
+```
+
+该方法接收一个标签数组作为参数,如果当前 `--tags-filter` 会包含带有这些标签的测试,则返回 `true`。如果未启用标签过滤器,则始终返回 `true`。
+
+## 另请参阅 {#see-also}
+
+- [按文件隔离](/guide/recipes/disable-isolation) 和 [并行与顺序测试文件](/guide/recipes/parallel-sequential) 都是通过测试项目参数按文件划分测试。对于需要使用不同运行器配置,而不是仅调整不同超时时间或重试次数的测试分类,适合使用测试项目参数。
+- [测试过滤](/guide/filtering) 覆盖了 `-t`、`--include` 以及其他 CLI 过滤器。
+- 参考 [`tags`](/config/tags) 和 [`strictTags`](/config/stricttags) 配置。
diff --git a/guide/testing-types.md b/guide/testing-types.md
index 76ed2612d..d83ecb23a 100644
--- a/guide/testing-types.md
+++ b/guide/testing-types.md
@@ -10,19 +10,19 @@ title: 类型测试 | 指南
:::
-Vitest 允许你使用 `expectTypeOf` 或 `assertType` 语法为你的类型编写测试。默认情况下,`*.test-d.ts` 文件中的所有测试都被视为类型测试,但你可以使用 [`typecheck.include`](/config/#typecheck-include) 配置选项更改它。
+Vitest 允许你使用 `expectTypeOf` 或 `assertType` 语法为你的类型编写测试。默认情况下,`*.test-d.ts` 文件中的所有测试都被视为类型测试,但你可以使用 [`typecheck.include`](/config/typecheck#typecheck-include) 配置选项更改它。
-在这里,Vitest 调用 `tsc` 或 `vue-tsc`,具体取决于你的配置,并解析结果。如果发现任何类型错误,Vitest 还会在你的源代码中打印出类型错误。你可以使用 [`typecheck.ignoreSourceErrors`](/config/#typecheck-ignoresourceerrors) 配置选项禁用它。
+在这里,Vitest 调用 `tsc` 或 `vue-tsc`,具体取决于你的配置,并解析结果。如果发现任何类型错误,Vitest 还会在你的源代码中打印出类型错误。你可以使用 [`typecheck.ignoreSourceErrors`](/config/typecheck#typecheck-ignoresourceerrors) 配置选项禁用它。
-请记住,Vitest 不会运行这些文件,编译器只会对它们进行静态分析。也就是说,如果您使用动态名称或 `test.each` 或 `test.for`,测试名称将不会被评估,它将原样显示。
+请记住,Vitest 不会运行这些文件,编译器只会对它们进行静态分析。也就是说,如果你使用动态名称或 `test.each` 或 `test.for`,测试名称将不会被评估,它将原样显示。
::: warning
-在 Vitest 2.1 之前,您的 `typecheck.include` 覆盖了 `include` 模式,因此您的运行时测试并没有实际运行;它们只是被类型检查。
+在 Vitest 2.1 之前,你的 `typecheck.include` 覆盖了 `include` 模式,因此你的运行时测试并没有实际运行;它们只是被类型检查。
-自 Vitest 2.1 起,如果您的 `include` 和 `typecheck.include` 重叠,Vitest 将分别报告类型测试和运行时测试。
+自 Vitest 2.1 起,如果你的 `include` 和 `typecheck.include` 重叠,Vitest 将分别报告类型测试和运行时测试。
:::
-使用 CLI 标志,如 `--allowOnly` 和 `-t` 也支持类型检查。
+使用 CLI 参数,如 `--allowOnly` 和 `-t` 也支持类型检查。
```ts [mount.test-d.ts]
import { assertType, expectTypeOf } from 'vitest'
@@ -39,7 +39,7 @@ test('my types work properly', () => {
在测试文件中触发的任何类型错误都将被视为测试错误,因此你可以使用任何类型技巧来测试项目中的类型。
-你可以在 [API 部分](/api/#expecttypeof) 中查看所有可用的匹配器列表。
+你可以在 [API 部分](/api/expect-typeof) 中查看所有可用的匹配器列表。
## 读取错误 {#reading-errors}
@@ -77,7 +77,7 @@ test/test.ts:999:999 - error TS2349: This expression is not callable.
如果 TypeScript 添加了对 ["throw" 类型](https://github.com/microsoft/TypeScript/pull/40468) 的支持,这些错误消息将会显著改进。在那之前,它们需要一定程度的仔细观察。
-#### 具体的 "expected " 对象与类型参数 {#concrete-expected-objects-vs-typeargs}
+### 具体的 "expected " 对象与类型参数 {#concrete-expected-objects-vs-typeargs}
像这样的断言的错误消息:
@@ -111,7 +111,7 @@ assertType
-此视图分为上下两部分。顶部显示完整的模块 ID 和一些关于模块的诊断信息。如果启用了 [`experimental.fsModuleCache`](/config/experimental#experimental-fsmodulecache),将会显示 "cached" 或 "not cached" 的徽章。在右侧你可以看到时间诊断信息:
+此视图分为上下两部分。顶部显示完整的模块 ID 和一些关于模块的诊断信息。如果启用了 [`fsModuleCache`](/config/fsmodulecache),将会显示 "cached" 或 "not cached" 的徽章。在右侧你可以看到时间诊断信息:
- 自身时间:导入模块所花费的时间,不包括静态导入。
- 总耗时:导入模块所花费的时间,包括静态导入。请注意,这不包括当前模块的 `transform` 时间。
@@ -107,7 +139,7 @@ npx vite preview --outDir ./html
"Source" 窗口中的所有静态导入显示当前模块评估它们的总耗时。如果导入已在模块图中被评估过,它将显示 `0ms`,因为此时已被缓存。
-如果模块加载时间超过 500 毫秒,时间将以红色显示。如果模块加载时间超过 100 毫秒,时间将以橙色显示。
+如果某个模块的加载时间超过 [`danger` 阈值](/config/experimental#experimental-importdurations-thresholds)(默认:500ms),耗时将以红色显示。如果超过 [`warn` 阈值](/config/experimental#experimental-importdurations-thresholds)(默认:100ms),耗时将以橙色显示。
你可以点击导入源代码跳转到该模块并进一步遍历图表(注意下面的 `./support/assertions/index.ts`)。
@@ -133,7 +165,7 @@ npx vite preview --outDir ./html
请将关于此功能反馈提交至 [GitHub Discussion](https://github.com/vitest-dev/vitest/discussions/9224)。
:::
-模块图选项卡还会提供导入耗时分析功能,默认显示加载时间最长的10个模块(点击"显示更多"可追加10个),按总耗时排序。
+模块依赖图标签还提供了导入耗时分析功能,默认显示加载耗时最长的前 10 个模块列表(按总耗时排序)。
@@ -142,6 +174,6 @@ npx vite preview --outDir ./html
分析列表包含自用耗时、总耗时以及相对于加载整个测试文件所花费时间的百分比。
-如果至少有一个文件加载时间超过 500 毫秒,"Show Import Breakdown" 图标将显示红色;如果至少有一个文件加载时间超过 100 毫秒,它将显示橙色。
+当存在至少一个文件加载时间超过 [`danger` 阈值](/config/experimental#experimental-importdurations-thresholds)(默认值:500 毫秒)时,“显示导入耗时分析” 图标将呈现红色;如果存在至少一个文件加载时间超过 [`warn`阈值](/config/experimental#experimental-importdurations-thresholds)(默认值:100 毫秒),则图标显示为橙色。
-默认情况下,如果至少有一个模块加载时间超过 500 毫秒,Vitest 会自动显示分析结果。你可以通过设置 [`experimental.printImportBreakdown`](/config/experimental#experimental-printimportbreakdown) 选项来控制此行为。
+你可以使用 [`experimental.importDurations.limit`](/config/experimental#experimental-importdurationslimit) 配置项控制显示的导入项数量上限。
diff --git a/guide/using-plugins.md b/guide/using-plugins.md
index bcc15ba8a..759f02f81 100644
--- a/guide/using-plugins.md
+++ b/guide/using-plugins.md
@@ -6,4 +6,4 @@ title: 使用插件 | 指南
Vitest 可以使用插件进行扩展,类似于 Vite 插件的工作方式。这允许你使用相同的 API 和 Vite 插件概念来增强和自定义 Vitest 的功能。
-有关如何编写插件的详细指导,你可以参考 [Vite 插件文档](https://vitejs.dev/guide/api-plugin).
+有关如何编写插件的详细指导,你可以参考 [Vite 插件文档](https://cn.vitejs.dev/guide/api-plugin).
diff --git a/guide/why.md b/guide/why.md
index 696c17151..92115e409 100644
--- a/guide/why.md
+++ b/guide/why.md
@@ -4,8 +4,8 @@ title: 为什么是 Vitest | 指南
# 为什么是 Vitest {#why-vitest}
-:::tip 提示
-该文档假设你是熟悉 Vite 的。开始阅读之前建议先浏览 [为什么选 Vite](https://cn.vitejs.dev/guide/why.html) 和 [下一代前端工具 ViteJS](https://www.bilibili.com/video/BV1kh411Q7WN) ,在视频中 [尤雨溪](https://bsky.app/profile/evanyou.me) 做了一个示范来解释 Vite 的主要概念。
+:::tip 警告
+Vitest 基于 Vite 构建。虽然使用 Vitest 并不要求掌握 Vite 知识,但理解 Vite 能帮助你更好地认识 Vitest 的独特优势。如需深入了解 Vite,请阅读 [为什么选择 Vite](https://cn.vitejs.dev/guide/why.html) 或观看 [尤雨溪](https://bsky.app/profile/evanyou.me) 的演讲视频 [新一代前端工具链 ViteJS](https://www.youtube.com/watch?v=UJypSr8IhKY)。
:::
## Vite 原生测试运行器的必要性 {#the-need-for-a-vite-native-test-runner}
diff --git a/package.json b/package.json
index a68795821..7300901b7 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "docs-cn",
"type": "module",
- "version": "4.0.17",
+ "version": "5.0.0",
"private": true,
"packageManager": "pnpm@9.7.1",
"scripts": {
@@ -18,39 +18,39 @@
"prepare": "simple-git-hooks"
},
"dependencies": {
- "@vueuse/core": "^14.1.0",
- "vue": "^3.5.26"
+ "@vueuse/core": "^14.4.0",
+ "vue": "^3.5.40"
},
"devDependencies": {
- "@antfu/eslint-config": "^6.7.3",
- "@antfu/ni": "^28.1.0",
- "@iconify-json/carbon": "^1.2.16",
- "@iconify-json/logos": "^1.2.10",
- "@shikijs/transformers": "^3.21.0",
- "@shikijs/vitepress-twoslash": "^3.21.0",
- "@types/node": "^25.0.3",
- "@unocss/reset": "^66.5.12",
+ "@antfu/eslint-config": "^9.2.0",
+ "@antfu/ni": "^30.3.0",
+ "@iconify-json/carbon": "^1.2.25",
+ "@iconify-json/logos": "^1.2.11",
+ "@iconify/vue": "^5.0.1",
+ "@shikijs/transformers": "^4.3.1",
+ "@shikijs/vitepress-twoslash": "^4.3.1",
+ "@types/node": "^26.1.2",
+ "@unocss/reset": "^66.7.5",
"@vite-pwa/assets-generator": "^1.0.2",
"@vite-pwa/vitepress": "^1.1.0",
- "@vitejs/plugin-vue": "^6.0.3",
- "eslint": "^9.39.2",
- "@iconify/vue": "^5.0.0",
- "@voidzero-dev/vitepress-theme": "^4.0.4",
+ "@vitejs/plugin-vue": "^6.0.8",
+ "@voidzero-dev/vitepress-theme": "^5.0.6",
+ "eslint": "^10.8.0",
+ "eslint-factory": "^0.1.2",
"https-localhost": "^4.7.1",
- "lint-staged": "^16.2.7",
+ "lint-staged": "^17.3.0",
"pathe": "^2.0.3",
"simple-git-hooks": "^2.13.1",
- "tinyglobby": "^0.2.15",
- "tsx": "^4.21.0",
- "unocss": "^66.5.12",
- "vite": "^7.3.1",
- "vite-plugin-pwa": "^1.2.0",
- "vitepress": "2.0.0-alpha.15",
- "vitepress-plugin-group-icons": "^1.6.5",
- "vitepress-plugin-llms": "^1.10.0",
- "vitepress-plugin-tabs": "^0.7.3",
- "vitest": "^4.0.17",
- "workbox-window": "^7.4.0"
+ "tinyglobby": "^0.2.17",
+ "tsx": "^4.23.4",
+ "unocss": "^66.7.5",
+ "vite": "^8.2.0",
+ "vite-plugin-pwa": "^1.3.0",
+ "vitepress": "2.0.0-alpha.19",
+ "vitepress-plugin-group-icons": "^1.7.6",
+ "vitepress-plugin-tabs": "^0.9.1",
+ "vitest": "^4.1.10",
+ "workbox-window": "^7.4.1"
},
"simple-git-hooks": {
"pre-commit": "pnpm lint-staged"
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 10e69be13..23570cbcb 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -9,60 +9,63 @@ importers:
.:
dependencies:
'@vueuse/core':
- specifier: ^14.1.0
- version: 14.1.0(vue@3.5.26(typescript@5.9.3))
+ specifier: ^14.4.0
+ version: 14.4.0(vue@3.5.40(typescript@5.9.3))
vue:
- specifier: ^3.5.26
- version: 3.5.26(typescript@5.9.3)
+ specifier: ^3.5.40
+ version: 3.5.40(typescript@5.9.3)
devDependencies:
'@antfu/eslint-config':
- specifier: ^6.7.3
- version: 6.7.3(@vue/compiler-sfc@3.5.26)(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)(vitest@4.0.17(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))
+ specifier: ^9.2.0
+ version: 9.2.0(@typescript-eslint/typescript-estree@8.65.0(typescript@5.9.3))(@typescript-eslint/utils@8.65.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3))(@vue/compiler-sfc@3.5.40)(eslint@10.8.0(jiti@2.6.1))(ts-declaration-location@1.0.7(typescript@5.9.3))(typescript@5.9.3)(vitest@4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0)))
'@antfu/ni':
- specifier: ^28.1.0
- version: 28.1.0
+ specifier: ^30.3.0
+ version: 30.3.0
'@iconify-json/carbon':
- specifier: ^1.2.16
- version: 1.2.16
+ specifier: ^1.2.25
+ version: 1.2.25
'@iconify-json/logos':
- specifier: ^1.2.10
- version: 1.2.10
+ specifier: ^1.2.11
+ version: 1.2.11
'@iconify/vue':
- specifier: ^5.0.0
- version: 5.0.0(vue@3.5.26(typescript@5.9.3))
+ specifier: ^5.0.1
+ version: 5.0.1(vue@3.5.40(typescript@5.9.3))
'@shikijs/transformers':
- specifier: ^3.21.0
- version: 3.21.0
+ specifier: ^4.3.1
+ version: 4.4.1
'@shikijs/vitepress-twoslash':
- specifier: ^3.21.0
- version: 3.21.0(typescript@5.9.3)
+ specifier: ^4.3.1
+ version: 4.4.1(typescript@5.9.3)
'@types/node':
- specifier: ^25.0.3
- version: 25.0.3
+ specifier: ^26.1.2
+ version: 26.1.2
'@unocss/reset':
- specifier: ^66.5.12
- version: 66.5.12
+ specifier: ^66.7.5
+ version: 66.7.5
'@vite-pwa/assets-generator':
specifier: ^1.0.2
version: 1.0.2
'@vite-pwa/vitepress':
specifier: ^1.1.0
- version: 1.1.0(@vite-pwa/assets-generator@1.0.2)(vite-plugin-pwa@1.2.0(@vite-pwa/assets-generator@1.0.2)(vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(workbox-build@7.4.0)(workbox-window@7.4.0))
+ version: 1.1.0(@vite-pwa/assets-generator@1.0.2)(vite-plugin-pwa@1.3.0(@vite-pwa/assets-generator@1.0.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0))(workbox-build@7.4.0)(workbox-window@7.4.1))
'@vitejs/plugin-vue':
- specifier: ^6.0.3
- version: 6.0.3(vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))
+ specifier: ^6.0.8
+ version: 6.0.8(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3))
'@voidzero-dev/vitepress-theme':
- specifier: ^4.0.4
- version: 4.1.0(@algolia/client-search@5.46.2)(change-case@5.4.4)(focus-trap@7.7.1)(react@19.2.3)(search-insights@2.17.3)(typescript@5.9.3)(vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vitepress@2.0.0-alpha.15(@algolia/client-search@5.46.2)(@types/node@25.0.3)(change-case@5.4.4)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react@19.2.3)(search-insights@2.17.3)(terser@5.44.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))
+ specifier: ^5.0.6
+ version: 5.0.6(change-case@5.4.4)(focus-trap@8.2.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0))(vitepress@2.0.0-alpha.19(@types/node@26.1.2)(change-case@5.4.4)(esbuild@0.28.1)(jiti@2.6.1)(postcss@8.5.25)(terser@5.46.1)(tsx@4.23.4)(typescript@5.9.3)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3))
eslint:
- specifier: ^9.39.2
- version: 9.39.2(jiti@2.6.1)
+ specifier: ^10.8.0
+ version: 10.8.0(jiti@2.6.1)
+ eslint-factory:
+ specifier: ^0.1.2
+ version: 0.1.2(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3)
https-localhost:
specifier: ^4.7.1
version: 4.7.1
lint-staged:
- specifier: ^16.2.7
- version: 16.2.7
+ specifier: ^17.3.0
+ version: 17.3.0
pathe:
specifier: ^2.0.3
version: 2.0.3
@@ -70,152 +73,55 @@ importers:
specifier: ^2.13.1
version: 2.13.1
tinyglobby:
- specifier: ^0.2.15
- version: 0.2.15
+ specifier: ^0.2.17
+ version: 0.2.17
tsx:
- specifier: ^4.21.0
- version: 4.21.0
+ specifier: ^4.23.4
+ version: 4.23.4
unocss:
- specifier: ^66.5.12
- version: 66.5.12(postcss@8.5.6)(vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))
+ specifier: ^66.7.5
+ version: 66.7.5(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0))
vite:
- specifier: ^7.3.1
- version: 7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)
+ specifier: ^8.2.0
+ version: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0)
vite-plugin-pwa:
- specifier: ^1.2.0
- version: 1.2.0(@vite-pwa/assets-generator@1.0.2)(vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(workbox-build@7.4.0)(workbox-window@7.4.0)
+ specifier: ^1.3.0
+ version: 1.3.0(@vite-pwa/assets-generator@1.0.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0))(workbox-build@7.4.0)(workbox-window@7.4.1)
vitepress:
- specifier: 2.0.0-alpha.15
- version: 2.0.0-alpha.15(@algolia/client-search@5.46.2)(@types/node@25.0.3)(change-case@5.4.4)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react@19.2.3)(search-insights@2.17.3)(terser@5.44.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
+ specifier: 2.0.0-alpha.19
+ version: 2.0.0-alpha.19(@types/node@26.1.2)(change-case@5.4.4)(esbuild@0.28.1)(jiti@2.6.1)(postcss@8.5.25)(terser@5.46.1)(tsx@4.23.4)(typescript@5.9.3)(yaml@2.9.0)
vitepress-plugin-group-icons:
- specifier: ^1.6.5
- version: 1.6.5(vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))
- vitepress-plugin-llms:
- specifier: ^1.10.0
- version: 1.10.0
+ specifier: ^1.7.6
+ version: 1.7.6(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0))
vitepress-plugin-tabs:
- specifier: ^0.7.3
- version: 0.7.3(vitepress@2.0.0-alpha.15(@algolia/client-search@5.46.2)(@types/node@25.0.3)(change-case@5.4.4)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react@19.2.3)(search-insights@2.17.3)(terser@5.44.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))
+ specifier: ^0.9.1
+ version: 0.9.1(vitepress@2.0.0-alpha.19(@types/node@26.1.2)(change-case@5.4.4)(esbuild@0.28.1)(jiti@2.6.1)(postcss@8.5.25)(terser@5.46.1)(tsx@4.23.4)(typescript@5.9.3)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3))
vitest:
- specifier: ^4.0.17
- version: 4.0.17(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)
+ specifier: ^4.1.10
+ version: 4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0))
workbox-window:
- specifier: ^7.4.0
- version: 7.4.0
+ specifier: ^7.4.1
+ version: 7.4.1
packages:
- '@ai-sdk/gateway@2.0.24':
- resolution: {integrity: sha512-mflk80YF8hj8vrF9e1IHhovGKC1ubX+sY88pesSk3pUiXfH5VPO8dgzNnxjwsqsCZrnkHcztxS5cSl4TzSiEuA==}
- engines: {node: '>=18'}
- peerDependencies:
- zod: ^3.25.76 || ^4.1.8
-
- '@ai-sdk/provider-utils@3.0.20':
- resolution: {integrity: sha512-iXHVe0apM2zUEzauqJwqmpC37A5rihrStAih5Ks+JE32iTe4LZ58y17UGBjpQQTCRw9YxMeo2UFLxLpBluyvLQ==}
- engines: {node: '>=18'}
- peerDependencies:
- zod: ^3.25.76 || ^4.1.8
-
- '@ai-sdk/provider@2.0.1':
- resolution: {integrity: sha512-KCUwswvsC5VsW2PWFqF8eJgSCu5Ysj7m1TxiHTVA6g7k360bk0RNQENT8KTMAYEs+8fWPD3Uu4dEmzGHc+jGng==}
- engines: {node: '>=18'}
-
- '@ai-sdk/react@2.0.120':
- resolution: {integrity: sha512-x7Oa2LDRURc8uRnAdcEfydbHLSXGYjNaFlQrGuxZAMfqhLJQ+7x4K8Z6O5vnLt414mrPaVvgirfRqsP/nsxtnw==}
- engines: {node: '>=18'}
- peerDependencies:
- react: ^18 || ~19.0.1 || ~19.1.2 || ^19.2.1
- zod: ^3.25.76 || ^4.1.8
- peerDependenciesMeta:
- zod:
- optional: true
-
- '@algolia/abtesting@1.12.2':
- resolution: {integrity: sha512-oWknd6wpfNrmRcH0vzed3UPX0i17o4kYLM5OMITyMVM2xLgaRbIafoxL0e8mcrNNb0iORCJA0evnNDKRYth5WQ==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/autocomplete-core@1.19.2':
- resolution: {integrity: sha512-mKv7RyuAzXvwmq+0XRK8HqZXt9iZ5Kkm2huLjgn5JoCPtDy+oh9yxUMfDDaVCw0oyzZ1isdJBc7l9nuCyyR7Nw==}
-
- '@algolia/autocomplete-plugin-algolia-insights@1.19.2':
- resolution: {integrity: sha512-TjxbcC/r4vwmnZaPwrHtkXNeqvlpdyR+oR9Wi2XyfORkiGkLTVhX2j+O9SaCCINbKoDfc+c2PB8NjfOnz7+oKg==}
- peerDependencies:
- search-insights: '>= 1 < 3'
-
- '@algolia/autocomplete-shared@1.19.2':
- resolution: {integrity: sha512-jEazxZTVD2nLrC+wYlVHQgpBoBB5KPStrJxLzsIFl6Kqd1AlG9sIAGl39V5tECLpIQzB3Qa2T6ZPJ1ChkwMK/w==}
- peerDependencies:
- '@algolia/client-search': '>= 4.9.1 < 6'
- algoliasearch: '>= 4.9.1 < 6'
-
- '@algolia/client-abtesting@5.46.2':
- resolution: {integrity: sha512-oRSUHbylGIuxrlzdPA8FPJuwrLLRavOhAmFGgdAvMcX47XsyM+IOGa9tc7/K5SPvBqn4nhppOCEz7BrzOPWc4A==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/client-analytics@5.46.2':
- resolution: {integrity: sha512-EPBN2Oruw0maWOF4OgGPfioTvd+gmiNwx0HmD9IgmlS+l75DatcBkKOPNJN+0z3wBQWUO5oq602ATxIfmTQ8bA==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/client-common@5.46.2':
- resolution: {integrity: sha512-Hj8gswSJNKZ0oyd0wWissqyasm+wTz1oIsv5ZmLarzOZAp3vFEda8bpDQ8PUhO+DfkbiLyVnAxsPe4cGzWtqkg==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/client-insights@5.46.2':
- resolution: {integrity: sha512-6dBZko2jt8FmQcHCbmNLB0kCV079Mx/DJcySTL3wirgDBUH7xhY1pOuUTLMiGkqM5D8moVZTvTdRKZUJRkrwBA==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/client-personalization@5.46.2':
- resolution: {integrity: sha512-1waE2Uqh/PHNeDXGn/PM/WrmYOBiUGSVxAWqiJIj73jqPqvfzZgzdakHscIVaDl6Cp+j5dwjsZ5LCgaUr6DtmA==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/client-query-suggestions@5.46.2':
- resolution: {integrity: sha512-EgOzTZkyDcNL6DV0V/24+oBJ+hKo0wNgyrOX/mePBM9bc9huHxIY2352sXmoZ648JXXY2x//V1kropF/Spx83w==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/client-search@5.46.2':
- resolution: {integrity: sha512-ZsOJqu4HOG5BlvIFnMU0YKjQ9ZI6r3C31dg2jk5kMWPSdhJpYL9xa5hEe7aieE+707dXeMI4ej3diy6mXdZpgA==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/ingestion@1.46.2':
- resolution: {integrity: sha512-1Uw2OslTWiOFDtt83y0bGiErJYy5MizadV0nHnOoHFWMoDqWW0kQoMFI65pXqRSkVvit5zjXSLik2xMiyQJDWQ==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/monitoring@1.46.2':
- resolution: {integrity: sha512-xk9f+DPtNcddWN6E7n1hyNNsATBCHIqAvVGG2EAGHJc4AFYL18uM/kMTiOKXE/LKDPyy1JhIerrh9oYb7RBrgw==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/recommend@5.46.2':
- resolution: {integrity: sha512-NApbTPj9LxGzNw4dYnZmj2BoXiAc8NmbbH6qBNzQgXklGklt/xldTvu+FACN6ltFsTzoNU6j2mWNlHQTKGC5+Q==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/requester-browser-xhr@5.46.2':
- resolution: {integrity: sha512-ekotpCwpSp033DIIrsTpYlGUCF6momkgupRV/FA3m62SreTSZUKjgK6VTNyG7TtYfq9YFm/pnh65bATP/ZWJEg==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/requester-fetch@5.46.2':
- resolution: {integrity: sha512-gKE+ZFi/6y7saTr34wS0SqYFDcjHW4Wminv8PDZEi0/mE99+hSrbKgJWxo2ztb5eqGirQTgIh1AMVacGGWM1iw==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/requester-node-http@5.46.2':
- resolution: {integrity: sha512-ciPihkletp7ttweJ8Zt+GukSVLp2ANJHU+9ttiSxsJZThXc4Y2yJ8HGVWesW5jN1zrsZsezN71KrMx/iZsOYpg==}
- engines: {node: '>= 14.0.0'}
-
- '@antfu/eslint-config@6.7.3':
- resolution: {integrity: sha512-0tYYzY59uLnxWgbP9xpuxpvodTcWDacj439kTAJZB3sn7O0BnPfVxTnRvleGYaKCEALBZkzdC/wCho9FD7ICLw==}
+ '@antfu/eslint-config@9.2.0':
+ resolution: {integrity: sha512-v/j0Pjn6Sj9CxHT8n4nIKI8lg4O/+P4G+Zdbg7u/3J6JaLayxRXsX2Twx0fjpUtoyxW5mdYd67QycVfr1ahirA==}
hasBin: true
peerDependencies:
- '@eslint-react/eslint-plugin': ^2.0.1
+ '@angular-eslint/eslint-plugin': ^21.1.0
+ '@angular-eslint/eslint-plugin-template': ^21.1.0
+ '@angular-eslint/template-parser': ^21.1.0
+ '@eslint-react/eslint-plugin': ^5.6.0
'@next/eslint-plugin-next': '>=15.0.0'
'@prettier/plugin-xml': ^3.4.1
'@unocss/eslint-plugin': '>=0.50.0'
- astro-eslint-parser: ^1.0.2
- eslint: ^9.10.0
- eslint-plugin-astro: ^1.2.0
+ astro-eslint-parser: '>=1.0.2'
+ eslint: ^9.10.0 || ^10.0.0
+ eslint-plugin-astro: '>=1.2.0'
eslint-plugin-format: '>=0.1.0'
eslint-plugin-jsx-a11y: '>=6.10.2'
- eslint-plugin-react-hooks: ^7.0.0
- eslint-plugin-react-refresh: ^0.4.19
+ eslint-plugin-react-refresh: ^0.5.0
eslint-plugin-solid: ^0.14.3
eslint-plugin-svelte: '>=2.35.1'
eslint-plugin-vuejs-accessibility: ^2.4.1
@@ -223,6 +129,12 @@ packages:
prettier-plugin-slidev: ^1.0.5
svelte-eslint-parser: '>=0.37.0'
peerDependenciesMeta:
+ '@angular-eslint/eslint-plugin':
+ optional: true
+ '@angular-eslint/eslint-plugin-template':
+ optional: true
+ '@angular-eslint/template-parser':
+ optional: true
'@eslint-react/eslint-plugin':
optional: true
'@next/eslint-plugin-next':
@@ -239,8 +151,6 @@ packages:
optional: true
eslint-plugin-jsx-a11y:
optional: true
- eslint-plugin-react-hooks:
- optional: true
eslint-plugin-react-refresh:
optional: true
eslint-plugin-solid:
@@ -259,9 +169,9 @@ packages:
'@antfu/install-pkg@1.1.0':
resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==}
- '@antfu/ni@28.1.0':
- resolution: {integrity: sha512-CwNepqzcItyoRDlZyQXFzgSPbPoek7Udb5URvhIS3fWVZwfXiwYcgrfsFBGWQLylVSPC6S47gTjBLbt/OzC2Vw==}
- engines: {node: '>=20'}
+ '@antfu/ni@30.3.0':
+ resolution: {integrity: sha512-KkYFVPA1IvC3m+WBKUuY5oxYc4OdXr83jvnlOn8a+bJM10yQMu+slFN/1pDzAw2JZVi+FYP9IYjo4KaPIccMmA==}
+ engines: {node: '>=20.19.0'}
hasBin: true
'@apideck/better-ajv-errors@0.3.6':
@@ -270,32 +180,32 @@ packages:
peerDependencies:
ajv: '>=8'
- '@babel/code-frame@7.27.1':
- resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
+ '@babel/code-frame@7.29.0':
+ resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==}
engines: {node: '>=6.9.0'}
- '@babel/compat-data@7.28.5':
- resolution: {integrity: sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==}
+ '@babel/compat-data@7.29.0':
+ resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==}
engines: {node: '>=6.9.0'}
- '@babel/core@7.28.5':
- resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==}
+ '@babel/core@7.29.0':
+ resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==}
engines: {node: '>=6.9.0'}
- '@babel/generator@7.28.5':
- resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==}
+ '@babel/generator@7.29.1':
+ resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==}
engines: {node: '>=6.9.0'}
'@babel/helper-annotate-as-pure@7.27.3':
resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==}
engines: {node: '>=6.9.0'}
- '@babel/helper-compilation-targets@7.27.2':
- resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==}
+ '@babel/helper-compilation-targets@7.28.6':
+ resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==}
engines: {node: '>=6.9.0'}
- '@babel/helper-create-class-features-plugin@7.28.5':
- resolution: {integrity: sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==}
+ '@babel/helper-create-class-features-plugin@7.28.6':
+ resolution: {integrity: sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
@@ -306,8 +216,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/helper-define-polyfill-provider@0.6.5':
- resolution: {integrity: sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==}
+ '@babel/helper-define-polyfill-provider@0.6.8':
+ resolution: {integrity: sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==}
peerDependencies:
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
@@ -319,12 +229,12 @@ packages:
resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==}
engines: {node: '>=6.9.0'}
- '@babel/helper-module-imports@7.27.1':
- resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==}
+ '@babel/helper-module-imports@7.28.6':
+ resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==}
engines: {node: '>=6.9.0'}
- '@babel/helper-module-transforms@7.28.3':
- resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==}
+ '@babel/helper-module-transforms@7.28.6':
+ resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
@@ -333,8 +243,8 @@ packages:
resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==}
engines: {node: '>=6.9.0'}
- '@babel/helper-plugin-utils@7.27.1':
- resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==}
+ '@babel/helper-plugin-utils@7.28.6':
+ resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==}
engines: {node: '>=6.9.0'}
'@babel/helper-remap-async-to-generator@7.27.1':
@@ -343,8 +253,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/helper-replace-supers@7.27.1':
- resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==}
+ '@babel/helper-replace-supers@7.28.6':
+ resolution: {integrity: sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
@@ -357,29 +267,37 @@ packages:
resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-string-parser@7.29.7':
+ resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-validator-identifier@7.28.5':
resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-validator-identifier@7.29.7':
+ resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-validator-option@7.27.1':
resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==}
engines: {node: '>=6.9.0'}
- '@babel/helper-wrap-function@7.28.3':
- resolution: {integrity: sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==}
+ '@babel/helper-wrap-function@7.28.6':
+ resolution: {integrity: sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==}
engines: {node: '>=6.9.0'}
- '@babel/helpers@7.28.4':
- resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==}
+ '@babel/helpers@7.29.2':
+ resolution: {integrity: sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==}
engines: {node: '>=6.9.0'}
- '@babel/parser@7.27.7':
- resolution: {integrity: sha512-qnzXzDXdr/po3bOTbTIQZ7+TxNKxpkN5IifVLXS+r7qwynkZfPyjZfE7hCXbo7IoO9TNcSyibgONsf2HauUd3Q==}
+ '@babel/parser@7.29.2':
+ resolution: {integrity: sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==}
engines: {node: '>=6.0.0'}
hasBin: true
- '@babel/parser@7.28.5':
- resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==}
+ '@babel/parser@7.29.8':
+ resolution: {integrity: sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==}
engines: {node: '>=6.0.0'}
hasBin: true
@@ -407,8 +325,8 @@ packages:
peerDependencies:
'@babel/core': ^7.13.0
- '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3':
- resolution: {integrity: sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==}
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.6':
+ resolution: {integrity: sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
@@ -419,14 +337,14 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-syntax-import-assertions@7.27.1':
- resolution: {integrity: sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==}
+ '@babel/plugin-syntax-import-assertions@7.28.6':
+ resolution: {integrity: sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-syntax-import-attributes@7.27.1':
- resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==}
+ '@babel/plugin-syntax-import-attributes@7.28.6':
+ resolution: {integrity: sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -443,14 +361,14 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-async-generator-functions@7.28.0':
- resolution: {integrity: sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==}
+ '@babel/plugin-transform-async-generator-functions@7.29.0':
+ resolution: {integrity: sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-async-to-generator@7.27.1':
- resolution: {integrity: sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==}
+ '@babel/plugin-transform-async-to-generator@7.28.6':
+ resolution: {integrity: sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -461,32 +379,32 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-block-scoping@7.28.5':
- resolution: {integrity: sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g==}
+ '@babel/plugin-transform-block-scoping@7.28.6':
+ resolution: {integrity: sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-class-properties@7.27.1':
- resolution: {integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==}
+ '@babel/plugin-transform-class-properties@7.28.6':
+ resolution: {integrity: sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-class-static-block@7.28.3':
- resolution: {integrity: sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==}
+ '@babel/plugin-transform-class-static-block@7.28.6':
+ resolution: {integrity: sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.12.0
- '@babel/plugin-transform-classes@7.28.4':
- resolution: {integrity: sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==}
+ '@babel/plugin-transform-classes@7.28.6':
+ resolution: {integrity: sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-computed-properties@7.27.1':
- resolution: {integrity: sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==}
+ '@babel/plugin-transform-computed-properties@7.28.6':
+ resolution: {integrity: sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -497,8 +415,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-dotall-regex@7.27.1':
- resolution: {integrity: sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==}
+ '@babel/plugin-transform-dotall-regex@7.28.6':
+ resolution: {integrity: sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -509,8 +427,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1':
- resolution: {integrity: sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==}
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.0':
+ resolution: {integrity: sha512-zBPcW2lFGxdiD8PUnPwJjag2J9otbcLQzvbiOzDxpYXyCuYX9agOwMPGn1prVH0a4qzhCKu24rlH4c1f7yA8rw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
@@ -521,14 +439,14 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-explicit-resource-management@7.28.0':
- resolution: {integrity: sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==}
+ '@babel/plugin-transform-explicit-resource-management@7.28.6':
+ resolution: {integrity: sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-exponentiation-operator@7.28.5':
- resolution: {integrity: sha512-D4WIMaFtwa2NizOp+dnoFjRez/ClKiC2BqqImwKd1X28nqBtZEyCYJ2ozQrrzlxAFrcrjxo39S6khe9RNDlGzw==}
+ '@babel/plugin-transform-exponentiation-operator@7.28.6':
+ resolution: {integrity: sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -551,8 +469,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-json-strings@7.27.1':
- resolution: {integrity: sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==}
+ '@babel/plugin-transform-json-strings@7.28.6':
+ resolution: {integrity: sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -563,8 +481,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-logical-assignment-operators@7.28.5':
- resolution: {integrity: sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA==}
+ '@babel/plugin-transform-logical-assignment-operators@7.28.6':
+ resolution: {integrity: sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -581,14 +499,14 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-modules-commonjs@7.27.1':
- resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==}
+ '@babel/plugin-transform-modules-commonjs@7.28.6':
+ resolution: {integrity: sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-modules-systemjs@7.28.5':
- resolution: {integrity: sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew==}
+ '@babel/plugin-transform-modules-systemjs@7.29.0':
+ resolution: {integrity: sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -599,8 +517,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-named-capturing-groups-regex@7.27.1':
- resolution: {integrity: sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==}
+ '@babel/plugin-transform-named-capturing-groups-regex@7.29.0':
+ resolution: {integrity: sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
@@ -611,20 +529,20 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-nullish-coalescing-operator@7.27.1':
- resolution: {integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==}
+ '@babel/plugin-transform-nullish-coalescing-operator@7.28.6':
+ resolution: {integrity: sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-numeric-separator@7.27.1':
- resolution: {integrity: sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==}
+ '@babel/plugin-transform-numeric-separator@7.28.6':
+ resolution: {integrity: sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-object-rest-spread@7.28.4':
- resolution: {integrity: sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==}
+ '@babel/plugin-transform-object-rest-spread@7.28.6':
+ resolution: {integrity: sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -635,14 +553,14 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-optional-catch-binding@7.27.1':
- resolution: {integrity: sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==}
+ '@babel/plugin-transform-optional-catch-binding@7.28.6':
+ resolution: {integrity: sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-optional-chaining@7.28.5':
- resolution: {integrity: sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ==}
+ '@babel/plugin-transform-optional-chaining@7.28.6':
+ resolution: {integrity: sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -653,14 +571,14 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-private-methods@7.27.1':
- resolution: {integrity: sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==}
+ '@babel/plugin-transform-private-methods@7.28.6':
+ resolution: {integrity: sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-private-property-in-object@7.27.1':
- resolution: {integrity: sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==}
+ '@babel/plugin-transform-private-property-in-object@7.28.6':
+ resolution: {integrity: sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -671,14 +589,14 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-regenerator@7.28.4':
- resolution: {integrity: sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==}
+ '@babel/plugin-transform-regenerator@7.29.0':
+ resolution: {integrity: sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-regexp-modifiers@7.27.1':
- resolution: {integrity: sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==}
+ '@babel/plugin-transform-regexp-modifiers@7.28.6':
+ resolution: {integrity: sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
@@ -695,8 +613,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-spread@7.27.1':
- resolution: {integrity: sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==}
+ '@babel/plugin-transform-spread@7.28.6':
+ resolution: {integrity: sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -725,8 +643,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-unicode-property-regex@7.27.1':
- resolution: {integrity: sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==}
+ '@babel/plugin-transform-unicode-property-regex@7.28.6':
+ resolution: {integrity: sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -737,14 +655,14 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-unicode-sets-regex@7.27.1':
- resolution: {integrity: sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==}
+ '@babel/plugin-transform-unicode-sets-regex@7.28.6':
+ resolution: {integrity: sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/preset-env@7.28.5':
- resolution: {integrity: sha512-S36mOoi1Sb6Fz98fBfE+UZSpYw5mJm0NUHtIKrOuNcqeFauy1J6dIvXm2KRVKobOSaGq4t/hBXdN4HGU3wL9Wg==}
+ '@babel/preset-env@7.29.2':
+ resolution: {integrity: sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -754,244 +672,260 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0
- '@babel/runtime@7.28.4':
- resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==}
+ '@babel/runtime@7.29.2':
+ resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==}
engines: {node: '>=6.9.0'}
- '@babel/template@7.27.2':
- resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==}
+ '@babel/template@7.28.6':
+ resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==}
engines: {node: '>=6.9.0'}
- '@babel/traverse@7.27.7':
- resolution: {integrity: sha512-X6ZlfR/O/s5EQ/SnUSLzr+6kGnkg8HXGMzpgsMsrJVcfDtH1vIp6ctCN4eZ1LS5c0+te5Cb6Y514fASjMRJ1nw==}
+ '@babel/traverse@7.29.0':
+ resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==}
engines: {node: '>=6.9.0'}
- '@babel/traverse@7.28.5':
- resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==}
+ '@babel/types@7.29.0':
+ resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==}
engines: {node: '>=6.9.0'}
- '@babel/types@7.28.5':
- resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==}
+ '@babel/types@7.29.8':
+ resolution: {integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==}
engines: {node: '>=6.9.0'}
'@canvas/image-data@1.1.0':
resolution: {integrity: sha512-QdObRRjRbcXGmM1tmJ+MrHcaz1MftF2+W7YI+MsphnsCrmtyfS0d5qJbk0MeSbUeyM/jCb0hmnkXPsy026L7dA==}
- '@clack/core@0.5.0':
- resolution: {integrity: sha512-p3y0FIOwaYRUPRcMO7+dlmLh8PSRcrjuTndsiA0WAFbWES0mLZlrjVoBRZ9DzkPFJZG6KGkJmoEAY0ZcVWTkow==}
+ '@clack/core@1.4.3':
+ resolution: {integrity: sha512-/kr3UWNtdJfxZtPgDqUOmG2pvwlmcLGheex5yiZKdwbzZJxhV+HMNR9QNmyY5cGwTNV6LrR7Jtp+KjhUAP1qBQ==}
+ engines: {node: '>= 20.12.0'}
- '@clack/prompts@0.11.0':
- resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==}
+ '@clack/prompts@1.7.0':
+ resolution: {integrity: sha512-y7/yvZ2TPAnR9+jnc00klvNNLkJiXFFrQA/hlLCcxA9a2A4zQIOimyFQ9XfwYKiGD1fb5GY8vbKIIgO8d5Tb2A==}
+ engines: {node: '>= 20.12.0'}
- '@docsearch/core@4.4.0':
- resolution: {integrity: sha512-kiwNo5KEndOnrf5Kq/e5+D9NBMCFgNsDoRpKQJ9o/xnSlheh6b8AXppMuuUVVdAUIhIfQFk/07VLjjk/fYyKmw==}
- peerDependencies:
- '@types/react': '>= 16.8.0 < 20.0.0'
- react: '>= 16.8.0 < 20.0.0'
- react-dom: '>= 16.8.0 < 20.0.0'
- peerDependenciesMeta:
- '@types/react':
- optional: true
- react:
- optional: true
- react-dom:
- optional: true
+ '@docsearch/css@4.6.0':
+ resolution: {integrity: sha512-YlcAimkXclvqta47g47efzCM5CFxDwv2ClkDfEs/fC/Ak0OxPH2b3czwa4o8O1TRBf+ujFF2RiUwszz2fPVNJQ==}
+
+ '@docsearch/css@4.7.0':
+ resolution: {integrity: sha512-Sk5xkdRFeE7PeWjG9l4AfTwdvMfr9wHiwNNCpHXT4v4SNyNMKdHGvEILc31BgaVFGDDNbv5u/a73tofRiwbEZw==}
- '@docsearch/css@4.4.0':
- resolution: {integrity: sha512-e9vPgtih6fkawakmYo0Y6V4BKBmDV7Ykudn7ADWXUs5b6pmtBRwDbpSG/WiaUG63G28OkJDEnsMvgIAnZgGwYw==}
+ '@docsearch/js@4.6.0':
+ resolution: {integrity: sha512-9/rbgkm/BgTq46cwxIohvSAz3koOFjnPpg0mwkJItAfzKbQIj+310PvwtgUY1YITDuGCag6yOL50GW2DBkaaBw==}
- '@docsearch/js@4.4.0':
- resolution: {integrity: sha512-vCiKzjYD54bugUIMZA6YzuLDilkD3TNH/kfbvqsnzxiLTMu8F13psD+hdMSEOn7j+dFJOaf49fZ+gwr+rXctMw==}
+ '@docsearch/js@4.7.0':
+ resolution: {integrity: sha512-x5lCqu1tetgsJFkjQ6VSocbHldsRkGEgwg5N98Vx21sq/V5wcmj4u226PY9k+TEpIgQ772zlYbPLTPicWyGnpA==}
- '@docsearch/react@4.4.0':
- resolution: {integrity: sha512-z12zeg1mV7WD4Ag4pKSuGukETJLaucVFwszDXL/qLaEgRqxEaVacO9SR1qqnCXvZztlvz2rt7cMqryi/7sKfjA==}
+ '@docsearch/sidepanel-js@4.6.0':
+ resolution: {integrity: sha512-lFT5KLwlzUmpoGArCScNoK41l9a22JYsEPwBzMrz+/ILVR5Ax87UphCuiyDFQWEvEmbwzn/kJx5W/O5BUlN1Rw==}
+
+ '@docsearch/sidepanel-js@4.7.0':
+ resolution: {integrity: sha512-A8r34jCU8kcIk2viECEn2msA28ojUF1BLi/3v5OWWc5G2N3jOuuumBXoeYjfr8dA0UxgFSy5R2bt12dnFJQSyA==}
+
+ '@e18e/eslint-plugin@0.5.1':
+ resolution: {integrity: sha512-mqUozeyNI9xvJbjrOO7y765dT7Kud3bwCm/DHwctxdEngPdJWQaS9BNGgpM1wCCzZfOtlKQh4ZRhm3VRomT9KA==}
peerDependencies:
- '@types/react': '>= 16.8.0 < 20.0.0'
- react: '>= 16.8.0 < 20.0.0'
- react-dom: '>= 16.8.0 < 20.0.0'
- search-insights: '>= 1 < 3'
+ eslint: ^9.0.0 || ^10.0.0
+ oxlint: ^1.68.0
peerDependenciesMeta:
- '@types/react':
- optional: true
- react:
- optional: true
- react-dom:
+ eslint:
optional: true
- search-insights:
+ oxlint:
optional: true
- '@emnapi/runtime@1.8.1':
- resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==}
+ '@emnapi/core@1.10.0':
+ resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==}
- '@es-joy/jsdoccomment@0.78.0':
- resolution: {integrity: sha512-rQkU5u8hNAq2NVRzHnIUUvR6arbO0b6AOlvpTNS48CkiKSn/xtNfOzBK23JE4SiW89DgvU7GtxLVgV4Vn2HBAw==}
- engines: {node: '>=20.11.0'}
+ '@emnapi/core@2.0.0-alpha.3':
+ resolution: {integrity: sha512-AZypUeJ/yByuxyS7BlSNRDOMLMlROYtjYdIAuBmJssVz1UJDSeYxLrdizhXCFYhedC5bqd/ASy8EuNXbVVXp9g==}
+
+ '@emnapi/runtime@1.10.0':
+ resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==}
+
+ '@emnapi/runtime@1.9.0':
+ resolution: {integrity: sha512-QN75eB0IH2ywSpRpNddCRfQIhmJYBCJ1x5Lb3IscKAL8bMnVAKnRg8dCoXbHzVLLH7P38N2Z3mtulB7W0J0FKw==}
+
+ '@emnapi/runtime@2.0.0-alpha.3':
+ resolution: {integrity: sha512-hFPAhMUjJD9BSyCANEISPOogeXC9Zo9ZQl7L6vKnaVsMkCtzznaW/naYypeyl0Gv5rYfWYsZbpixTMpjDJzQeA==}
+
+ '@emnapi/wasi-threads@1.2.1':
+ resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==}
+
+ '@emnapi/wasi-threads@2.0.1':
+ resolution: {integrity: sha512-9DsSk+o5NBX0CCJT8s0EROGSGxjR/tKu6aBTaVyq+SjAEQH4XcdcRxPBRzsBLizTTJ49MJjF+jgu3qnO9GLQcQ==}
+
+ '@es-joy/jsdoccomment@0.88.0':
+ resolution: {integrity: sha512-GK/HL/claLLNo5KG705auIlZMwEtmn88ofSGuLsmVZwKBqMPJhW9DiznYNq07QEqz9BPtA3LBfYImtZmhVvRAw==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
+ '@es-joy/jsdoccomment@0.91.0':
+ resolution: {integrity: sha512-vgqlMGNNhZxwDYbUNIHj3Hskb4R28iqdXx90ufHyt/NeuTQkeqjTDslAs9I0/GCAfbxP5BpH5WsL1R1fht5Lxg==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
'@es-joy/resolve.exports@1.2.0':
resolution: {integrity: sha512-Q9hjxWI5xBM+qW2enxfe8wDKdFWMfd0Z29k5ZJnuBqD/CasY5Zryj09aCA6owbGATWz+39p5uIdaHXpopOcG8g==}
engines: {node: '>=10'}
- '@esbuild/aix-ppc64@0.27.2':
- resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==}
+ '@esbuild/aix-ppc64@0.28.1':
+ resolution: {integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [aix]
- '@esbuild/android-arm64@0.27.2':
- resolution: {integrity: sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==}
+ '@esbuild/android-arm64@0.28.1':
+ resolution: {integrity: sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [android]
- '@esbuild/android-arm@0.27.2':
- resolution: {integrity: sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==}
+ '@esbuild/android-arm@0.28.1':
+ resolution: {integrity: sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==}
engines: {node: '>=18'}
cpu: [arm]
os: [android]
- '@esbuild/android-x64@0.27.2':
- resolution: {integrity: sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==}
+ '@esbuild/android-x64@0.28.1':
+ resolution: {integrity: sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==}
engines: {node: '>=18'}
cpu: [x64]
os: [android]
- '@esbuild/darwin-arm64@0.27.2':
- resolution: {integrity: sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==}
+ '@esbuild/darwin-arm64@0.28.1':
+ resolution: {integrity: sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==}
engines: {node: '>=18'}
cpu: [arm64]
os: [darwin]
- '@esbuild/darwin-x64@0.27.2':
- resolution: {integrity: sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==}
+ '@esbuild/darwin-x64@0.28.1':
+ resolution: {integrity: sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==}
engines: {node: '>=18'}
cpu: [x64]
os: [darwin]
- '@esbuild/freebsd-arm64@0.27.2':
- resolution: {integrity: sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==}
+ '@esbuild/freebsd-arm64@0.28.1':
+ resolution: {integrity: sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==}
engines: {node: '>=18'}
cpu: [arm64]
os: [freebsd]
- '@esbuild/freebsd-x64@0.27.2':
- resolution: {integrity: sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==}
+ '@esbuild/freebsd-x64@0.28.1':
+ resolution: {integrity: sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==}
engines: {node: '>=18'}
cpu: [x64]
os: [freebsd]
- '@esbuild/linux-arm64@0.27.2':
- resolution: {integrity: sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==}
+ '@esbuild/linux-arm64@0.28.1':
+ resolution: {integrity: sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==}
engines: {node: '>=18'}
cpu: [arm64]
os: [linux]
- '@esbuild/linux-arm@0.27.2':
- resolution: {integrity: sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==}
+ '@esbuild/linux-arm@0.28.1':
+ resolution: {integrity: sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==}
engines: {node: '>=18'}
cpu: [arm]
os: [linux]
- '@esbuild/linux-ia32@0.27.2':
- resolution: {integrity: sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==}
+ '@esbuild/linux-ia32@0.28.1':
+ resolution: {integrity: sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==}
engines: {node: '>=18'}
cpu: [ia32]
os: [linux]
- '@esbuild/linux-loong64@0.27.2':
- resolution: {integrity: sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==}
+ '@esbuild/linux-loong64@0.28.1':
+ resolution: {integrity: sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==}
engines: {node: '>=18'}
cpu: [loong64]
os: [linux]
- '@esbuild/linux-mips64el@0.27.2':
- resolution: {integrity: sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==}
+ '@esbuild/linux-mips64el@0.28.1':
+ resolution: {integrity: sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==}
engines: {node: '>=18'}
cpu: [mips64el]
os: [linux]
- '@esbuild/linux-ppc64@0.27.2':
- resolution: {integrity: sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==}
+ '@esbuild/linux-ppc64@0.28.1':
+ resolution: {integrity: sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [linux]
- '@esbuild/linux-riscv64@0.27.2':
- resolution: {integrity: sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==}
+ '@esbuild/linux-riscv64@0.28.1':
+ resolution: {integrity: sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==}
engines: {node: '>=18'}
cpu: [riscv64]
os: [linux]
- '@esbuild/linux-s390x@0.27.2':
- resolution: {integrity: sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==}
+ '@esbuild/linux-s390x@0.28.1':
+ resolution: {integrity: sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==}
engines: {node: '>=18'}
cpu: [s390x]
os: [linux]
- '@esbuild/linux-x64@0.27.2':
- resolution: {integrity: sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==}
+ '@esbuild/linux-x64@0.28.1':
+ resolution: {integrity: sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==}
engines: {node: '>=18'}
cpu: [x64]
os: [linux]
- '@esbuild/netbsd-arm64@0.27.2':
- resolution: {integrity: sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==}
+ '@esbuild/netbsd-arm64@0.28.1':
+ resolution: {integrity: sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==}
engines: {node: '>=18'}
cpu: [arm64]
os: [netbsd]
- '@esbuild/netbsd-x64@0.27.2':
- resolution: {integrity: sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==}
+ '@esbuild/netbsd-x64@0.28.1':
+ resolution: {integrity: sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==}
engines: {node: '>=18'}
cpu: [x64]
os: [netbsd]
- '@esbuild/openbsd-arm64@0.27.2':
- resolution: {integrity: sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==}
+ '@esbuild/openbsd-arm64@0.28.1':
+ resolution: {integrity: sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==}
engines: {node: '>=18'}
cpu: [arm64]
os: [openbsd]
- '@esbuild/openbsd-x64@0.27.2':
- resolution: {integrity: sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==}
+ '@esbuild/openbsd-x64@0.28.1':
+ resolution: {integrity: sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==}
engines: {node: '>=18'}
cpu: [x64]
os: [openbsd]
- '@esbuild/openharmony-arm64@0.27.2':
- resolution: {integrity: sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==}
+ '@esbuild/openharmony-arm64@0.28.1':
+ resolution: {integrity: sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [openharmony]
- '@esbuild/sunos-x64@0.27.2':
- resolution: {integrity: sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==}
+ '@esbuild/sunos-x64@0.28.1':
+ resolution: {integrity: sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==}
engines: {node: '>=18'}
cpu: [x64]
os: [sunos]
- '@esbuild/win32-arm64@0.27.2':
- resolution: {integrity: sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==}
+ '@esbuild/win32-arm64@0.28.1':
+ resolution: {integrity: sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==}
engines: {node: '>=18'}
cpu: [arm64]
os: [win32]
- '@esbuild/win32-ia32@0.27.2':
- resolution: {integrity: sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==}
+ '@esbuild/win32-ia32@0.28.1':
+ resolution: {integrity: sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==}
engines: {node: '>=18'}
cpu: [ia32]
os: [win32]
- '@esbuild/win32-x64@0.27.2':
- resolution: {integrity: sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==}
+ '@esbuild/win32-x64@0.28.1':
+ resolution: {integrity: sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==}
engines: {node: '>=18'}
cpu: [x64]
os: [win32]
- '@eslint-community/eslint-plugin-eslint-comments@4.5.0':
- resolution: {integrity: sha512-MAhuTKlr4y/CE3WYX26raZjy+I/kS2PLKSzvfmDCGrBLTFHOYwqROZdr4XwPgXwX3K9rjzMr4pSmUWGnzsUyMg==}
+ '@eslint-community/eslint-plugin-eslint-comments@4.7.2':
+ resolution: {integrity: sha512-LF03qURSwEWm2dz5wtdDCzNk+7Opl0X7q6I3undsaIuNsEiNvRV3BCtqu14Q/6Pzg1tBj44LcxpW2EpSLZStZw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
- eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0
'@eslint-community/eslint-utils@4.9.1':
resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==}
@@ -1003,61 +937,65 @@ packages:
resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
- '@eslint/compat@1.4.1':
- resolution: {integrity: sha512-cfO82V9zxxGBxcQDr1lfaYB7wykTa0b00mGa36FrJl7iTFd0Z2cHfEYuxcBRP/iNijCsWsEkA+jzT8hGYmv33w==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@eslint/compat@2.0.3':
+ resolution: {integrity: sha512-SjIJhGigp8hmd1YGIBwh7Ovri7Kisl42GYFjrOyHhtfYGGoLW6teYi/5p8W50KSsawUPpuLOSmsq1bD0NGQLBw==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
peerDependencies:
- eslint: ^8.40 || 9
+ eslint: ^8.40 || 9 || 10
peerDependenciesMeta:
eslint:
optional: true
- '@eslint/config-array@0.21.1':
- resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@eslint/config-array@0.23.5':
+ resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- '@eslint/config-helpers@0.4.2':
- resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@eslint/config-helpers@0.5.5':
+ resolution: {integrity: sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- '@eslint/core@0.17.0':
- resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@eslint/config-helpers@0.7.0':
+ resolution: {integrity: sha512-DObd/KKUsU+FaFv4PLxSRenpXfQWmPXXP3pPZ6/K1PCrMu2vQpMDMuQe/BqYeoLcz8ro0bVDF1RxOJgfVEdhUw==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- '@eslint/eslintrc@3.3.3':
- resolution: {integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@eslint/core@1.1.1':
+ resolution: {integrity: sha512-QUPblTtE51/7/Zhfv8BDwO0qkkzQL7P/aWWbqcf4xWLEYn1oKjdO0gglQBB4GAsu7u6wjijbCmzsUTy6mnk6oQ==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- '@eslint/js@9.39.2':
- resolution: {integrity: sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@eslint/core@1.2.1':
+ resolution: {integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- '@eslint/markdown@7.5.1':
- resolution: {integrity: sha512-R8uZemG9dKTbru/DQRPblbJyXpObwKzo8rv1KYGGuPUPtjM4LXBYM9q5CIZAComzZupws3tWbDwam5AFpPLyJQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@eslint/css-tree@4.0.5':
+ resolution: {integrity: sha512-iPmijIAq4hlIJB86PYmY/fcZORHtjphSqICDbwuw32A/JmkhZQ/K/6TjHE03zqf3n5yABpVcbRAMG8Mi9ojy8g==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- '@eslint/object-schema@2.1.7':
- resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@eslint/markdown@8.0.3':
+ resolution: {integrity: sha512-rBTSSShrq7e4O+PWfeE4azH4/CWPNrC+VGxBXiW00o3vYVJnznsZiDayj3KC9JztIMVRZxZHn2nrDIUau/4j7A==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- '@eslint/plugin-kit@0.4.1':
- resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@eslint/object-schema@3.0.5':
+ resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
+ '@eslint/plugin-kit@0.7.2':
+ resolution: {integrity: sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- '@floating-ui/core@1.7.3':
- resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==}
+ '@floating-ui/core@1.7.5':
+ resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==}
'@floating-ui/dom@1.1.1':
resolution: {integrity: sha512-TpIO93+DIujg3g7SykEAGZMDtbJRrmnYRCNYSjJlvIbGhBjRSNTLVbNeDQBrzy9qDgUbiWdc7KA0uZHZ2tJmiw==}
- '@floating-ui/dom@1.7.4':
- resolution: {integrity: sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==}
+ '@floating-ui/dom@1.7.6':
+ resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==}
- '@floating-ui/utils@0.2.10':
- resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==}
+ '@floating-ui/utils@0.2.11':
+ resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==}
- '@floating-ui/vue@1.1.9':
- resolution: {integrity: sha512-BfNqNW6KA83Nexspgb9DZuz578R7HT8MZw1CfK9I6Ah4QReNWEJsXWHN+SdmOVLNGmTPDi+fDT535Df5PzMLbQ==}
+ '@floating-ui/vue@1.1.11':
+ resolution: {integrity: sha512-HzHKCNVxnGS35r9fCHBc3+uCnjw9IWIlCPL683cGgM9Kgj2BiAl8x1mS7vtvP6F9S/e/q4O6MApwSHj8hNLGfw==}
'@humanfs/core@0.19.1':
resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
@@ -1075,28 +1013,28 @@ packages:
resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
engines: {node: '>=18.18'}
- '@iconify-json/carbon@1.2.16':
- resolution: {integrity: sha512-R50UiC4NgPdnoSI3OzaZ/PzKYFVHAsAi3tENWgxvTxjYND3WHiUiG0qfJ0dPuaxwIW/l/2TnZwMPbbedd/+qIQ==}
+ '@iconify-json/carbon@1.2.25':
+ resolution: {integrity: sha512-7GLgXnmi47Skh8DcPPiP8U3vgm3rOVziEe+flCdG/kwiVaeb649U3Eqt/ej4f3NvlZK8BrOxpR3xQlWFLZYblQ==}
- '@iconify-json/logos@1.2.10':
- resolution: {integrity: sha512-qxaXKJ6fu8jzTMPQdHtNxlfx6tBQ0jXRbHZIYy5Ilh8Lx9US9FsAdzZWUR8MXV8PnWTKGDFO4ZZee9VwerCyMA==}
+ '@iconify-json/logos@1.2.11':
+ resolution: {integrity: sha512-fOo4pGEatuyuCFNL+cwquYMa2Im0oJHRHV7lt/Qqs5Ode/lPImHCQcfTtPzZj7qYMPb/h8YHN3TG54uEowrjNQ==}
- '@iconify-json/simple-icons@1.2.65':
- resolution: {integrity: sha512-v/O0UeqrDz6ASuRVE5g2Puo5aWyej4M/CxX6WYDBARgswwxK0mp3VQbGgPFEAAUU9QN02IjTgjMuO021gpWf2w==}
+ '@iconify-json/simple-icons@1.2.94':
+ resolution: {integrity: sha512-l8UWzVxKaqZd9ABsE/M/9p6NyGkQnmCnOoZyhQmjlXCtY5PuL2rcWxOFk2l9pk7ux3ERMPkTLE4jl6kQpTkwxA==}
- '@iconify-json/vscode-icons@1.2.37':
- resolution: {integrity: sha512-HLRdU6nZks4N8x3JYz6j+b3+hcUCvYvlTLwGzM3xyXfTJyDSA2cAdWcEXfoA4hQMJGA+zCDSPAWFelFptH5Kbw==}
+ '@iconify-json/vscode-icons@1.2.68':
+ resolution: {integrity: sha512-AG8aMOGv+dzQI50oOD9zMqvh/pnlhb8F2HR2FcKDN7qIZt4wFaUTxKAOtt49EskGdOl8z8Ll1vteUI060jCbDw==}
'@iconify/types@2.0.0':
resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
- '@iconify/utils@3.1.0':
- resolution: {integrity: sha512-Zlzem1ZXhI1iHeeERabLNzBHdOa4VhQbqAcOQaMKuTuyZCpwKbC2R4Dd0Zo3g9EAc+Y4fiarO8HIHRAth7+skw==}
+ '@iconify/utils@3.1.4':
+ resolution: {integrity: sha512-b1S7B1k9ohZ+iNTi2ATxbRYG9fTrJmUT0rc46bvVnNxqNRGW7dyo/vRREwyniI5IRN2RSJHDcm+s3BjWrSAjHw==}
- '@iconify/vue@5.0.0':
- resolution: {integrity: sha512-C+KuEWIF5nSBrobFJhT//JS87OZ++QDORB6f2q2Wm6fl2mueSTpFBeBsveK0KW9hWiZ4mNiPjsh6Zs4jjdROSg==}
+ '@iconify/vue@5.0.1':
+ resolution: {integrity: sha512-aumwwooJlFJ5H5qYWB6ZTAyM0C8hpfcSVLB9/a3qnH1GGvIJ+FEbpEs4s/HfErYe/M5qZeLjwmESR5fFm3lXEw==}
peerDependencies:
- vue: '>=3'
+ vue: '>=3.0.0'
'@img/sharp-darwin-arm64@0.33.5':
resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==}
@@ -1203,23 +1141,15 @@ packages:
cpu: [x64]
os: [win32]
- '@internationalized/date@3.10.1':
- resolution: {integrity: sha512-oJrXtQiAXLvT9clCf1K4kxp3eKsQhIaZqxEyowkBcsvZDdZkbWrVmnGknxs5flTD0VGsxrxKgBCZty1EzoiMzA==}
+ '@internationalized/date@3.12.0':
+ resolution: {integrity: sha512-/PyIMzK29jtXaGU23qTvNZxvBXRtKbNnGDFD+PY6CZw/Y8Ex8pFUzkuCJCG9aOqmShjqhS9mPqP6Dk5onQY8rQ==}
'@internationalized/number@3.6.5':
resolution: {integrity: sha512-6hY4Kl4HPBvtfS62asS/R22JzNNy8vi/Ssev7x6EobfCp+9QIB2hKvI2EtbdJ0VSQacxVNtqhE/NmF/NZ0gm6g==}
- '@isaacs/balanced-match@4.0.1':
- resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==}
- engines: {node: 20 || >=22}
-
- '@isaacs/brace-expansion@5.0.0':
- resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==}
- engines: {node: 20 || >=22}
-
- '@isaacs/cliui@8.0.2':
- resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
- engines: {node: '>=12'}
+ '@isaacs/cliui@9.0.0':
+ resolution: {integrity: sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==}
+ engines: {node: '>=18'}
'@jridgewell/gen-mapping@0.3.13':
resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
@@ -1240,228 +1170,336 @@ packages:
'@jridgewell/trace-mapping@0.3.31':
resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
- '@opentelemetry/api@1.9.0':
- resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==}
- engines: {node: '>=8.0.0'}
-
- '@pkgr/core@0.2.9':
- resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==}
- engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
-
- '@polka/url@1.0.0-next.29':
- resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==}
-
- '@quansync/fs@1.0.0':
- resolution: {integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==}
-
- '@rive-app/canvas-lite@2.34.0':
- resolution: {integrity: sha512-ZM7wmvOwka37o1woG4E9QOLLUAeuVI8QDPdzqI/rik89dqNCSnMUbfP3DvG9lWofmmujbHCIExmXCyWqXqDHTw==}
-
- '@rolldown/pluginutils@1.0.0-beta.53':
- resolution: {integrity: sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ==}
-
- '@rollup/plugin-babel@5.3.1':
- resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==}
- engines: {node: '>= 10.0.0'}
- peerDependencies:
- '@babel/core': ^7.0.0
- '@types/babel__core': ^7.1.9
- rollup: ^1.20.0||^2.0.0
- peerDependenciesMeta:
- '@types/babel__core':
- optional: true
-
- '@rollup/plugin-node-resolve@15.3.1':
- resolution: {integrity: sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==}
- engines: {node: '>=14.0.0'}
- peerDependencies:
- rollup: ^2.78.0||^3.0.0||^4.0.0
- peerDependenciesMeta:
- rollup:
- optional: true
-
- '@rollup/plugin-replace@2.4.2':
- resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==}
- peerDependencies:
- rollup: ^1.20.0 || ^2.0.0
-
- '@rollup/plugin-terser@0.4.4':
- resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==}
- engines: {node: '>=14.0.0'}
+ '@napi-rs/wasm-runtime@1.2.2':
+ resolution: {integrity: sha512-JfB4kuJQjaoHuCTseIINHtHWeJnvgEcxjwA5t/Y00ZgaOO1Crz3fjT/p8kT28zA/Caz7oiUMn3d6H2yOVCVwuw==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=23.5.0}
peerDependencies:
- rollup: ^2.0.0||^3.0.0||^4.0.0
- peerDependenciesMeta:
- rollup:
- optional: true
+ '@emnapi/core': ^1.7.1 || ^2.0.0-alpha.3
+ '@emnapi/runtime': ^1.7.1 || ^2.0.0-alpha.3
- '@rollup/pluginutils@3.1.0':
- resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==}
- engines: {node: '>= 8.0.0'}
- peerDependencies:
- rollup: ^1.20.0||^2.0.0
-
- '@rollup/pluginutils@5.3.0':
- resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==}
- engines: {node: '>=14.0.0'}
- peerDependencies:
- rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
- peerDependenciesMeta:
- rollup:
- optional: true
+ '@ota-meshi/ast-token-store@0.3.0':
+ resolution: {integrity: sha512-XRO0zi2NIUKq2lUk3T1ecFSld1fMWRKE6naRFGkgkdeosx7IslyUKNv5Dcb5PJTja9tHJoFu0v/7yEpAkrkrTg==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- '@rollup/rollup-android-arm-eabi@4.55.1':
- resolution: {integrity: sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==}
+ '@oxc-parser/binding-android-arm-eabi@0.131.0':
+ resolution: {integrity: sha512-t2xicr9pfzkSRYx5aPqZqlLaayIwJTqgQ81Jor31Xep2nGyL2Aq3d0K5wOfeR7VevaSdxaS9dzSQP9xDwn8fDg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [android]
- '@rollup/rollup-android-arm64@4.55.1':
- resolution: {integrity: sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==}
+ '@oxc-parser/binding-android-arm64@0.131.0':
+ resolution: {integrity: sha512-nlGIod6gw75x1aEDgLS+srj+JRGY0HHm9MI9YgzE/B64l6d6+H3MSP9NOgp0+HTg8tp4vV9rVfgQGgd+TfVZcA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [android]
- '@rollup/rollup-darwin-arm64@4.55.1':
- resolution: {integrity: sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==}
+ '@oxc-parser/binding-darwin-arm64@0.131.0':
+ resolution: {integrity: sha512-jukuV6xe5RbQKFo7QD34NDCLDZp4PSOm8rmckhNdH/60ymG5zXbDzGBEyc+nTkuLQNama2aSGCt+CPfpjNTqyw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [darwin]
- '@rollup/rollup-darwin-x64@4.55.1':
- resolution: {integrity: sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ==}
+ '@oxc-parser/binding-darwin-x64@0.131.0':
+ resolution: {integrity: sha512-g3JOo4khe9rslHm5WYaVDWb0HS/M1MLR3I9S8560MkKIcC96VQY00QjOlsuRyfSj/JDXj8i9T7ryPO2RidiXVg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [darwin]
- '@rollup/rollup-freebsd-arm64@4.55.1':
- resolution: {integrity: sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==}
- cpu: [arm64]
- os: [freebsd]
-
- '@rollup/rollup-freebsd-x64@4.55.1':
- resolution: {integrity: sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==}
+ '@oxc-parser/binding-freebsd-x64@0.131.0':
+ resolution: {integrity: sha512-1hziITDTxjMePnX+dR9ocVT+EuZkQ8wm4FPAbmbEiKG+Phbo73J1ZnPAA6Y/aGsWF3McOFnQuZIktAFwalkfJQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [freebsd]
- '@rollup/rollup-linux-arm-gnueabihf@4.55.1':
- resolution: {integrity: sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==}
+ '@oxc-parser/binding-linux-arm-gnueabihf@0.131.0':
+ resolution: {integrity: sha512-9uRxfXwyKG9+MwmGQBo2ncPNwZH5HTmCETFM2WiuDBNDCW4NC5ttSQkwCAMrTAWgwMzVBH1CP8pM0v7nebCWXQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm-musleabihf@4.55.1':
- resolution: {integrity: sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==}
+ '@oxc-parser/binding-linux-arm-musleabihf@0.131.0':
+ resolution: {integrity: sha512-mgbLvzRShXOLBdWGInf08Af4q+pfj1xD8hSgLClDZ9of/BXkB6+LIhTH7fihiDUipqB3yoSkKBWaZ3Ejlf5Yag==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm64-gnu@4.55.1':
- resolution: {integrity: sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==}
+ '@oxc-parser/binding-linux-arm64-gnu@0.131.0':
+ resolution: {integrity: sha512-OPT8++4aN6j2GJ8+3IZHS/byXoZP4aSBn+FoG6rgBJ2fKwPKXWF3MqrFMNW7NKHM28FLY579xYLxJSfgobEqPA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-arm64-musl@4.55.1':
- resolution: {integrity: sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==}
+ '@oxc-parser/binding-linux-arm64-musl@0.131.0':
+ resolution: {integrity: sha512-vtPiwmfVTAXzaxDKsOXG+LwgRAA7WEnaeHzhS5z0GE89gAK18KSXnly7Z6saXXq6L3dVMyK44uoTI03zKxrpmw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-loong64-gnu@4.55.1':
- resolution: {integrity: sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==}
- cpu: [loong64]
- os: [linux]
-
- '@rollup/rollup-linux-loong64-musl@4.55.1':
- resolution: {integrity: sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==}
- cpu: [loong64]
- os: [linux]
-
- '@rollup/rollup-linux-ppc64-gnu@4.55.1':
- resolution: {integrity: sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==}
- cpu: [ppc64]
- os: [linux]
-
- '@rollup/rollup-linux-ppc64-musl@4.55.1':
- resolution: {integrity: sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==}
+ '@oxc-parser/binding-linux-ppc64-gnu@0.131.0':
+ resolution: {integrity: sha512-8AW8L7w5cGHSdZPcyZX2yR0+GUODsT15rbRjfdD54rv6DMbtuEB19ysLOpKJlRGfH6UNYNpCHaU1uJWgTWf1/w==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ppc64]
os: [linux]
- '@rollup/rollup-linux-riscv64-gnu@4.55.1':
- resolution: {integrity: sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==}
+ '@oxc-parser/binding-linux-riscv64-gnu@0.131.0':
+ resolution: {integrity: sha512-vvpjkjEOUsPcsYf8evE4MO3aGx9+3wodXEBOicGNnOwTuAik8eBONNkgSdhkGsAblQmfVHJyanRnpxglddTXIA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [riscv64]
os: [linux]
- '@rollup/rollup-linux-riscv64-musl@4.55.1':
- resolution: {integrity: sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==}
+ '@oxc-parser/binding-linux-riscv64-musl@0.131.0':
+ resolution: {integrity: sha512-AqmcNC3fClXX+fxQ6VGEN1667xVFiRBkY0CZmDMSiaeFUsv1+UkBPYYi48IUKcA9/ivvoKNRzQl2I4//kT9F/w==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [riscv64]
os: [linux]
- '@rollup/rollup-linux-s390x-gnu@4.55.1':
- resolution: {integrity: sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==}
+ '@oxc-parser/binding-linux-s390x-gnu@0.131.0':
+ resolution: {integrity: sha512-7d3jOMKy7RSQCcDLIci+ySll2FgsOMl/GiRux4q2JNv0zg4EdhFISa9idvrdN/HEUIQQJNg6dmveUeJl2YErGA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [s390x]
os: [linux]
- '@rollup/rollup-linux-x64-gnu@4.55.1':
- resolution: {integrity: sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg==}
+ '@oxc-parser/binding-linux-x64-gnu@0.131.0':
+ resolution: {integrity: sha512-JHK/h95qVqVQ+ITER837kcTdwBDFpFaNnOTYGCP0zdUSX/mLKC7tXOoyrTb6vG7iRPwGlcgBil3v2IjYw1FqJA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
- '@rollup/rollup-linux-x64-musl@4.55.1':
- resolution: {integrity: sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==}
+ '@oxc-parser/binding-linux-x64-musl@0.131.0':
+ resolution: {integrity: sha512-b2BO82O8azXAyf7EUgOPKu145nWypbNyk07HbU09fkzhm9lEA5oPvaN/M8Nlo7tOErVTa2WOgS4QbOnxAPXdDQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
- '@rollup/rollup-openbsd-x64@4.55.1':
- resolution: {integrity: sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==}
- cpu: [x64]
- os: [openbsd]
-
- '@rollup/rollup-openharmony-arm64@4.55.1':
- resolution: {integrity: sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==}
+ '@oxc-parser/binding-openharmony-arm64@0.131.0':
+ resolution: {integrity: sha512-GHO9glZaX7LkX/OGfluEPf1yjg+ehiFbUdowbX6uNWOQhmwKWU4m4+nZ9FJkrHNKuxyI1KKertMdGjVKCApKWA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [openharmony]
- '@rollup/rollup-win32-arm64-msvc@4.55.1':
- resolution: {integrity: sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==}
+ '@oxc-parser/binding-wasm32-wasi@0.131.0':
+ resolution: {integrity: sha512-3SkikPaEFoih1N83qLVEDLRLeY4nYsf6JT9SnWiMCQ5lGQdKup6bEuKCqkRiG9dD1IIaFeYz9RjlciPmYoFIWA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [wasm32]
+
+ '@oxc-parser/binding-win32-arm64-msvc@0.131.0':
+ resolution: {integrity: sha512-Os5bEhryeA2jkH+ZrnZyAC1EP5gs+X4YB1Fjqml7UPD5kU7ecsK1MPEVMfCrdt/GDNpDbavYXiOXOdyJ5b3OPw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [win32]
- '@rollup/rollup-win32-ia32-msvc@4.55.1':
- resolution: {integrity: sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==}
+ '@oxc-parser/binding-win32-ia32-msvc@0.131.0':
+ resolution: {integrity: sha512-m+jNz9EuF0NXoiptc6B9h5yompZQVW/a5MJeOu5zojfH5yWk82tvF2ccrHkfhgtrS9h9DD5l1Qv8dWlfY7Nz8g==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ia32]
os: [win32]
- '@rollup/rollup-win32-x64-gnu@4.55.1':
- resolution: {integrity: sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==}
+ '@oxc-parser/binding-win32-x64-msvc@0.131.0':
+ resolution: {integrity: sha512-o14Hk8dAyiEUMFEWEgmAwFZvBt1RzAYLM3xeQ+5315JXgVYhoemivgYcbYVRbsFkS71ShMGlAFE0kPnr460rww==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [win32]
+
+ '@oxc-project/types@0.131.0':
+ resolution: {integrity: sha512-PgnWDfV0h+b16XNKbXU7Daib/BFSt/J2mEzfYIBu6JB/wNdlU+kVYXCkGA1A9fWkTbOgbjh4e6NhPeQOYvFhEA==}
+
+ '@oxc-project/types@0.142.0':
+ resolution: {integrity: sha512-7W+2q5AKQVU36fkaryontrHn3YDt1RyUYXatw9i5H8ocYe2sPKSFB6eS8WNPeRKiN1qAWWZUPm7gwFzJGrccqQ==}
+
+ '@pkgr/core@0.2.9':
+ resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==}
+ engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
+
+ '@polka/url@1.0.0-next.29':
+ resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==}
+
+ '@quansync/fs@1.0.0':
+ resolution: {integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==}
+
+ '@rive-app/canvas-lite@2.35.3':
+ resolution: {integrity: sha512-C4xU4v0G2sXbtQnv0D01I1+mb4JaQ0atb5QiKxq5gnxH9ZeJzaBbf3xZuuJhnDycdHbIc6RHUIuvIaUKzyA63w==}
+
+ '@rolldown/binding-android-arm64@1.2.1':
+ resolution: {integrity: sha512-02hOeOSryYxVrOIphmLAsqnCJWxwlzFk+pEt/N/i6OgT3lShHO7xGCU5cpgchRDHboAEbSjzgGh+O/u1GswQmA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [android]
+
+ '@rolldown/binding-darwin-arm64@1.2.1':
+ resolution: {integrity: sha512-fMsTOnN0OjFm3CyppWPitKnc8UlliVARUULW6cfU6AIqjdtgmSFWSk9vecHzZduv/yMWIHDlRhM1e8Iff9uAfA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@rolldown/binding-darwin-x64@1.2.1':
+ resolution: {integrity: sha512-1wjKdz/XLGKHaTNHjQveQ/B23TKx4ItAqm1JbyVuvNPc4Ze0Fb48s49TAd/2zcplPl8okE/UbTgmlVfwT7eFeQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [darwin]
+
+ '@rolldown/binding-freebsd-x64@1.2.1':
+ resolution: {integrity: sha512-Fa0jHR07E7YBN4vOEsbVf2briYNsuOowfLJaXULZM0ldMlaCaj2LJgLMbMe4iacRyZmvR8efFhgR9wKuGclQUg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@rolldown/binding-linux-arm-gnueabihf@1.2.1':
+ resolution: {integrity: sha512-pzkgu1SSHGgRRyRZ4fbmSgmajbVt+epaLP99NDjFft69v/ypfTi6swBMiVdh2EkQ0OSnHE1lZDM7DRGkyAzUpA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm]
+ os: [linux]
+
+ '@rolldown/binding-linux-arm64-gnu@1.2.1':
+ resolution: {integrity: sha512-QI5SEDY8cbiYWHx0VO4vIc3UlS6a32vXHjU8Qy/17adEmZIPuByJg13UEvo9c/UCiUkdcVWY83C+b+JrwnNyUg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [linux]
+
+ '@rolldown/binding-linux-arm64-musl@1.2.1':
+ resolution: {integrity: sha512-Sm41FyCeXqmYcERoYOCbGIL5hNfd8w9LQ7Y61Bev48HkcjaJqV/iiVOaiDxjVTRMS+QKrZmD8cfPt4uMVnvM+A==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [linux]
+
+ '@rolldown/binding-linux-ppc64-gnu@1.2.1':
+ resolution: {integrity: sha512-2x+WhXTGl9yJYPbltW/BSEPTVz9OIWQyER4N+gJEDWkkn904eRcBzELqh/Hf7K0w/ubGbKNMv0ZC+94QK/IFEg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@rolldown/binding-linux-s390x-gnu@1.2.1':
+ resolution: {integrity: sha512-eEjmQpuRQayHPWWnywaWHkFT3ToPbP3RYy42VVd/B9aBGDA+Ol25EIWHxKQST3IiWJjikCWUF7KtbfqwZrzVwQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [s390x]
+ os: [linux]
+
+ '@rolldown/binding-linux-x64-gnu@1.2.1':
+ resolution: {integrity: sha512-/Orga1fZYkLc/56jBICcHrKchl8Z2UKdDSr3LG9ToWO1lQ6a4Livk9Xz+9WN91zsz5QR3XQz2NNoSDEvP6qadw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [x64]
+ os: [linux]
+
+ '@rolldown/binding-linux-x64-musl@1.2.1':
+ resolution: {integrity: sha512-xxBJRL+0q0Kce7orznGWLuylHDY65vuARXZRpX+hPdv+DqK2c3NlCsVA98tlWzWNEE7yPqA/1NQ5nnCrj49Y5A==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
+ os: [linux]
+
+ '@rolldown/binding-openharmony-arm64@1.2.1':
+ resolution: {integrity: sha512-M6AdXIXw3s+/8XpKMzdGDEXGS1S7kwUsy+rcTIUIOx5Ge4nXKCtAFHFV9YKkXvGcC5WMoTjAteLzlsQROVI0Yw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [openharmony]
+
+ '@rolldown/binding-wasm32-wasi@1.2.1':
+ resolution: {integrity: sha512-/TX0SoRGojHzSAHpfVBbavRVSazg5U3h3Y3VXfcc0cdugq6kxdqw8LPGFiPr+/7gE/60zRcsOY2Vi9b9eT0jww==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=23.5.0}
+
+ '@rolldown/binding-win32-arm64-msvc@1.2.1':
+ resolution: {integrity: sha512-EvRrivJieyHG+AO9lleZWgq+g0+S7oV2C51yuqlcyU/R9net+sI4Pj0F+lUoP2bEr6TWX3SqFaaS0SzfLxSzkw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
os: [win32]
- '@rollup/rollup-win32-x64-msvc@4.55.1':
- resolution: {integrity: sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==}
+ '@rolldown/binding-win32-x64-msvc@1.2.1':
+ resolution: {integrity: sha512-Z4eCmn5QJ/5+azF9knpLWKfVd9aidn0mAe9TpJgvBLId9Ax3t0+JVxBmT25Bv7NBbVW1TZyKjQjQReouMeH5UQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [win32]
- '@shikijs/core@3.21.0':
- resolution: {integrity: sha512-AXSQu/2n1UIQekY8euBJlvFYZIw0PHY63jUzGbrOma4wPxzznJXTXkri+QcHeBNaFxiiOljKxxJkVSoB3PjbyA==}
+ '@rolldown/pluginutils@1.0.1':
+ resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==}
- '@shikijs/engine-javascript@3.21.0':
- resolution: {integrity: sha512-ATwv86xlbmfD9n9gKRiwuPpWgPENAWCLwYCGz9ugTJlsO2kOzhOkvoyV/UD+tJ0uT7YRyD530x6ugNSffmvIiQ==}
+ '@rollup/plugin-babel@5.3.1':
+ resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==}
+ engines: {node: '>= 10.0.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ '@types/babel__core': ^7.1.9
+ rollup: ^1.20.0||^2.0.0
+ peerDependenciesMeta:
+ '@types/babel__core':
+ optional: true
+
+ '@rollup/plugin-node-resolve@15.3.1':
+ resolution: {integrity: sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^2.78.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+
+ '@rollup/plugin-replace@2.4.2':
+ resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==}
+ peerDependencies:
+ rollup: ^1.20.0 || ^2.0.0
+
+ '@rollup/plugin-terser@0.4.4':
+ resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+
+ '@rollup/pluginutils@3.1.0':
+ resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==}
+ engines: {node: '>= 8.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0
+
+ '@rollup/pluginutils@5.3.0':
+ resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
- '@shikijs/engine-oniguruma@3.21.0':
- resolution: {integrity: sha512-OYknTCct6qiwpQDqDdf3iedRdzj6hFlOPv5hMvI+hkWfCKs5mlJ4TXziBG9nyabLwGulrUjHiCq3xCspSzErYQ==}
+ '@shikijs/core@4.4.1':
+ resolution: {integrity: sha512-VeR2CY6Nn9/WbisoYLOQZ7HZOnwTrpBuOw4wExjqLnBCi62BNWynBUO6K2uPIASPFJwAv7cX1fUu+LrPlSstcw==}
+ engines: {node: '>=20'}
- '@shikijs/langs@3.21.0':
- resolution: {integrity: sha512-g6mn5m+Y6GBJ4wxmBYqalK9Sp0CFkUqfNzUy2pJglUginz6ZpWbaWjDB4fbQ/8SHzFjYbtU6Ddlp1pc+PPNDVA==}
+ '@shikijs/engine-javascript@4.4.1':
+ resolution: {integrity: sha512-6U4lJBh8LTvIkEVqRHv/rr3ruwtO6IweFQt1ME1ntHJMGHS+6N86vfYGO1o8c/DtOCTia2lfhdQBtBrps1sDfQ==}
+ engines: {node: '>=20'}
- '@shikijs/themes@3.21.0':
- resolution: {integrity: sha512-BAE4cr9EDiZyYzwIHEk7JTBJ9CzlPuM4PchfcA5ao1dWXb25nv6hYsoDiBq2aZK9E3dlt3WB78uI96UESD+8Mw==}
+ '@shikijs/engine-oniguruma@4.4.1':
+ resolution: {integrity: sha512-p23RugMKss0r5DAtRJW1yAXUDl60JvhQYV20yuxei//26JyDSJefV3umyWzzwep2weblMnJGDYahuti6XkcMgA==}
+ engines: {node: '>=20'}
- '@shikijs/transformers@3.21.0':
- resolution: {integrity: sha512-CZwvCWWIiRRiFk9/JKzdEooakAP8mQDtBOQ1TKiCaS2E1bYtyBCOkUzS8akO34/7ufICQ29oeSfkb3tT5KtrhA==}
+ '@shikijs/langs@4.4.1':
+ resolution: {integrity: sha512-xb2kCMloBCIraIy2fS5MW0t/BxVY3q2nDyQKBoeSeq6KNrQbShHetCFlw2n35fGIJ6t3+hXDLQogP5ir9O9bvA==}
+ engines: {node: '>=20'}
- '@shikijs/twoslash@3.21.0':
- resolution: {integrity: sha512-iH360udAYON2JwfIldoCiMZr9MljuQA5QRBivKLpEuEpmVCSwrR+0WTQ0eS1ptgGBdH9weFiIsA5wJDzsEzTYg==}
+ '@shikijs/primitive@4.4.1':
+ resolution: {integrity: sha512-ko2OfDoG89YuQ7xL5LtcQiWKb7NIv1Ephb7g48TVU198OzAMLC8lXVEwaJGHK4sUMYrfAGJDqYmNLOLiW/Kz8w==}
+ engines: {node: '>=20'}
+
+ '@shikijs/themes@4.4.1':
+ resolution: {integrity: sha512-wudOaoFro+/Zl9gQv2W1Ur5XlVduqvTuYLI483Xi0wgc1A+cy1hfB2r6ac6ufBgF+ID7KJEW7L41MHrzQ4wH+w==}
+ engines: {node: '>=20'}
+
+ '@shikijs/transformers@4.4.1':
+ resolution: {integrity: sha512-Sb9Eehas+5EhClpFgNuklwY3aWf354FLaKRCiAWmjdNbHAjoQUpv6WmSj+N19eTXO6GLIWh1dIOH9dxyauhVWw==}
+ engines: {node: '>=20'}
+
+ '@shikijs/twoslash@4.4.1':
+ resolution: {integrity: sha512-FDv09P7ZYrJpzrJ8LnoT8KZa8ZuWZqAsqWzkVkqExuce9ZsgRZ1966KgniSZM2YJMWudKgNIeadl1TsuBFrVhg==}
+ engines: {node: '>=20'}
peerDependencies:
typescript: '>=5.5.0'
- '@shikijs/types@3.21.0':
- resolution: {integrity: sha512-zGrWOxZ0/+0ovPY7PvBU2gIS9tmhSUUt30jAcNV0Bq0gb2S98gwfjIs1vxlmH5zM7/4YxLamT6ChlqqAJmPPjA==}
+ '@shikijs/types@4.4.1':
+ resolution: {integrity: sha512-GOwCLQDHM5EjGUWNPrhzJbr6JP8V/Dx/CDVkWvbZ1Avw5JFnNUckrgbLmE07qtg4WlW7Q7QFndhjIkeU9XMPvw==}
+ engines: {node: '>=20'}
- '@shikijs/vitepress-twoslash@3.21.0':
- resolution: {integrity: sha512-R9qylCClKnLlPlWloY9SGdvr5X6smanxdPq7O1bxe7SL89j4/v9fMUUAWM6yPHf4jmGZuRGm/9IFRBdaAmm5Rw==}
+ '@shikijs/vitepress-twoslash@4.4.1':
+ resolution: {integrity: sha512-8mclYzjBm5hRUjbvq6g3cjLCITqAd8+Eac/cefYCwwqdClyBEqJmilNkJ7ZG2ndYS/P14STTU2TED1ZdzpbG0g==}
+ engines: {node: '>=20'}
'@shikijs/vscode-textmate@10.0.2':
resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==}
@@ -1473,77 +1511,77 @@ packages:
'@standard-schema/spec@1.1.0':
resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==}
- '@stylistic/eslint-plugin@5.7.0':
- resolution: {integrity: sha512-PsSugIf9ip1H/mWKj4bi/BlEoerxXAda9ByRFsYuwsmr6af9NxJL0AaiNXs8Le7R21QR5KMiD/KdxZZ71LjAxQ==}
+ '@stylistic/eslint-plugin@5.10.0':
+ resolution: {integrity: sha512-nPK52ZHvot8Ju/0A4ucSX1dcPV2/1clx0kLcH5wDmrE4naKso7TUC/voUyU1O9OTKTrR6MYip6LP0ogEMQ9jPQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- eslint: '>=9.0.0'
+ eslint: ^9.0.0 || ^10.0.0
'@surma/rollup-plugin-off-main-thread@2.2.3':
resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==}
- '@swc/helpers@0.5.18':
- resolution: {integrity: sha512-TXTnIcNJQEKwThMMqBXsZ4VGAza6bvN4pa41Rkqoio6QBKMvo+5lexeTMScGCIxtzgQJzElcvIltani+adC5PQ==}
+ '@swc/helpers@0.5.19':
+ resolution: {integrity: sha512-QamiFeIK3txNjgUTNppE6MiG3p7TdninpZu0E0PbqVh1a9FNLT2FRhisaa4NcaX52XVhA5l7Pk58Ft7Sqi/2sA==}
- '@tailwindcss/node@4.1.18':
- resolution: {integrity: sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ==}
+ '@tailwindcss/node@4.2.1':
+ resolution: {integrity: sha512-jlx6sLk4EOwO6hHe1oCGm1Q4AN/s0rSrTTPBGPM0/RQ6Uylwq17FuU8IeJJKEjtc6K6O07zsvP+gDO6MMWo7pg==}
- '@tailwindcss/oxide-android-arm64@4.1.18':
- resolution: {integrity: sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-android-arm64@4.2.1':
+ resolution: {integrity: sha512-eZ7G1Zm5EC8OOKaesIKuw77jw++QJ2lL9N+dDpdQiAB/c/B2wDh0QPFHbkBVrXnwNugvrbJFk1gK2SsVjwWReg==}
+ engines: {node: '>= 20'}
cpu: [arm64]
os: [android]
- '@tailwindcss/oxide-darwin-arm64@4.1.18':
- resolution: {integrity: sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-darwin-arm64@4.2.1':
+ resolution: {integrity: sha512-q/LHkOstoJ7pI1J0q6djesLzRvQSIfEto148ppAd+BVQK0JYjQIFSK3JgYZJa+Yzi0DDa52ZsQx2rqytBnf8Hw==}
+ engines: {node: '>= 20'}
cpu: [arm64]
os: [darwin]
- '@tailwindcss/oxide-darwin-x64@4.1.18':
- resolution: {integrity: sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-darwin-x64@4.2.1':
+ resolution: {integrity: sha512-/f/ozlaXGY6QLbpvd/kFTro2l18f7dHKpB+ieXz+Cijl4Mt9AI2rTrpq7V+t04nK+j9XBQHnSMdeQRhbGyt6fw==}
+ engines: {node: '>= 20'}
cpu: [x64]
os: [darwin]
- '@tailwindcss/oxide-freebsd-x64@4.1.18':
- resolution: {integrity: sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-freebsd-x64@4.2.1':
+ resolution: {integrity: sha512-5e/AkgYJT/cpbkys/OU2Ei2jdETCLlifwm7ogMC7/hksI2fC3iiq6OcXwjibcIjPung0kRtR3TxEITkqgn0TcA==}
+ engines: {node: '>= 20'}
cpu: [x64]
os: [freebsd]
- '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18':
- resolution: {integrity: sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.1':
+ resolution: {integrity: sha512-Uny1EcVTTmerCKt/1ZuKTkb0x8ZaiuYucg2/kImO5A5Y/kBz41/+j0gxUZl+hTF3xkWpDmHX+TaWhOtba2Fyuw==}
+ engines: {node: '>= 20'}
cpu: [arm]
os: [linux]
- '@tailwindcss/oxide-linux-arm64-gnu@4.1.18':
- resolution: {integrity: sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-linux-arm64-gnu@4.2.1':
+ resolution: {integrity: sha512-CTrwomI+c7n6aSSQlsPL0roRiNMDQ/YzMD9EjcR+H4f0I1SQ8QqIuPnsVp7QgMkC1Qi8rtkekLkOFjo7OlEFRQ==}
+ engines: {node: '>= 20'}
cpu: [arm64]
os: [linux]
- '@tailwindcss/oxide-linux-arm64-musl@4.1.18':
- resolution: {integrity: sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-linux-arm64-musl@4.2.1':
+ resolution: {integrity: sha512-WZA0CHRL/SP1TRbA5mp9htsppSEkWuQ4KsSUumYQnyl8ZdT39ntwqmz4IUHGN6p4XdSlYfJwM4rRzZLShHsGAQ==}
+ engines: {node: '>= 20'}
cpu: [arm64]
os: [linux]
- '@tailwindcss/oxide-linux-x64-gnu@4.1.18':
- resolution: {integrity: sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-linux-x64-gnu@4.2.1':
+ resolution: {integrity: sha512-qMFzxI2YlBOLW5PhblzuSWlWfwLHaneBE0xHzLrBgNtqN6mWfs+qYbhryGSXQjFYB1Dzf5w+LN5qbUTPhW7Y5g==}
+ engines: {node: '>= 20'}
cpu: [x64]
os: [linux]
- '@tailwindcss/oxide-linux-x64-musl@4.1.18':
- resolution: {integrity: sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-linux-x64-musl@4.2.1':
+ resolution: {integrity: sha512-5r1X2FKnCMUPlXTWRYpHdPYUY6a1Ar/t7P24OuiEdEOmms5lyqjDRvVY1yy9Rmioh+AunQ0rWiOTPE8F9A3v5g==}
+ engines: {node: '>= 20'}
cpu: [x64]
os: [linux]
- '@tailwindcss/oxide-wasm32-wasi@4.1.18':
- resolution: {integrity: sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA==}
+ '@tailwindcss/oxide-wasm32-wasi@4.2.1':
+ resolution: {integrity: sha512-MGFB5cVPvshR85MTJkEvqDUnuNoysrsRxd6vnk1Lf2tbiqNlXpHYZqkqOQalydienEWOHHFyyuTSYRsLfxFJ2Q==}
engines: {node: '>=14.0.0'}
cpu: [wasm32]
bundledDependencies:
@@ -1554,40 +1592,43 @@ packages:
- '@emnapi/wasi-threads'
- tslib
- '@tailwindcss/oxide-win32-arm64-msvc@4.1.18':
- resolution: {integrity: sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-win32-arm64-msvc@4.2.1':
+ resolution: {integrity: sha512-YlUEHRHBGnCMh4Nj4GnqQyBtsshUPdiNroZj8VPkvTZSoHsilRCwXcVKnG9kyi0ZFAS/3u+qKHBdDc81SADTRA==}
+ engines: {node: '>= 20'}
cpu: [arm64]
os: [win32]
- '@tailwindcss/oxide-win32-x64-msvc@4.1.18':
- resolution: {integrity: sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-win32-x64-msvc@4.2.1':
+ resolution: {integrity: sha512-rbO34G5sMWWyrN/idLeVxAZgAKWrn5LiR3/I90Q9MkA67s6T1oB0xtTe+0heoBvHSpbU9Mk7i6uwJnpo4u21XQ==}
+ engines: {node: '>= 20'}
cpu: [x64]
os: [win32]
- '@tailwindcss/oxide@4.1.18':
- resolution: {integrity: sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide@4.2.1':
+ resolution: {integrity: sha512-yv9jeEFWnjKCI6/T3Oq50yQEOqmpmpfzG1hcZsAOaXFQPfzWprWrlHSdGPEF3WQTi8zu8ohC9Mh9J470nT5pUw==}
+ engines: {node: '>= 20'}
'@tailwindcss/typography@0.5.19':
resolution: {integrity: sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg==}
peerDependencies:
tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1'
- '@tailwindcss/vite@4.1.18':
- resolution: {integrity: sha512-jVA+/UpKL1vRLg6Hkao5jldawNmRo7mQYrZtNHMIVpLfLhDml5nMRUo/8MwoX2vNXvnaXNNMedrMfMugAVX1nA==}
+ '@tailwindcss/vite@4.2.1':
+ resolution: {integrity: sha512-TBf2sJjYeb28jD2U/OhwdW0bbOsxkWPwQ7SrqGf9sVcoYwZj7rkXljroBO9wKBut9XnmQLXanuDUeqQK0lGg/w==}
peerDependencies:
vite: ^5.2.0 || ^6 || ^7
- '@tanstack/virtual-core@3.13.18':
- resolution: {integrity: sha512-Mx86Hqu1k39icq2Zusq+Ey2J6dDWTjDvEv43PJtRCoEYTLyfaPnxIQ6iy7YAOK0NV/qOEmZQ/uCufrppZxTgcg==}
+ '@tanstack/virtual-core@3.13.23':
+ resolution: {integrity: sha512-zSz2Z2HNyLjCplANTDyl3BcdQJc2k1+yyFoKhNRmCr7V7dY8o8q5m8uFTI1/Pg1kL+Hgrz6u3Xo6eFUB7l66cg==}
- '@tanstack/vue-virtual@3.13.18':
- resolution: {integrity: sha512-6pT8HdHtTU5Z+t906cGdCroUNA5wHjFXsNss9gwk7QAr1VNZtz9IQCs2Nhx0gABK48c+OocHl2As+TMg8+Hy4A==}
+ '@tanstack/vue-virtual@3.13.23':
+ resolution: {integrity: sha512-b5jPluAR6U3eOq6GWAYSpj3ugnAIZgGR0e6aGAgyRse0Yu6MVQQ0ZWm9SArSXWtageogn6bkVD8D//c4IjW3xQ==}
peerDependencies:
vue: ^2.7.0 || ^3.0.0
+ '@tybys/wasm-util@0.10.3':
+ resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==}
+
'@types/chai@5.2.3':
resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==}
@@ -1597,18 +1638,30 @@ packages:
'@types/deep-eql@4.0.2':
resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==}
+ '@types/esrecurse@4.3.1':
+ resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==}
+
'@types/estree@0.0.39':
resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==}
'@types/estree@1.0.8':
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
+ '@types/estree@1.0.9':
+ resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==}
+
'@types/hast@3.0.4':
resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
+ '@types/hast@3.0.5':
+ resolution: {integrity: sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==}
+
'@types/json-schema@7.0.15':
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
+ '@types/katex@0.16.8':
+ resolution: {integrity: sha512-trgaNyfU+Xh2Tc+ABIb44a5AYUpicB3uwirOioeOkNPPbmgRNtcWyDeeFRzjPZENO9Vq8gvVqfhaaXWLlevVwg==}
+
'@types/linkify-it@5.0.0':
resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==}
@@ -1624,8 +1677,8 @@ packages:
'@types/ms@2.1.0':
resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
- '@types/node@25.0.3':
- resolution: {integrity: sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==}
+ '@types/node@26.1.2':
+ resolution: {integrity: sha512-Vu4a5UFA9rIIFJ7rB/Vaafh9lrCQszopTCx6KjFboXTGQbPNasehVR5TEiithSDGyd1DEiUByggTZsg8jukeIg==}
'@types/resolve@1.20.2':
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
@@ -1639,162 +1692,179 @@ packages:
'@types/web-bluetooth@0.0.21':
resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==}
- '@typescript-eslint/eslint-plugin@8.52.0':
- resolution: {integrity: sha512-okqtOgqu2qmZJ5iN4TWlgfF171dZmx2FzdOv2K/ixL2LZWDStL8+JgQerI2sa8eAEfoydG9+0V96m7V+P8yE1Q==}
+ '@typescript-eslint/eslint-plugin@8.65.0':
+ resolution: {integrity: sha512-IEgob78X12rHpUmtcwFsXhZdVGJtwTVP8FiCLZkR6GlYVrl2PcuB+KhCE5BlVC/eQpQnu8WXRtkHZuPar+gCRA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ '@typescript-eslint/parser': ^8.65.0
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+ typescript: '>=4.8.4 <6.1.0'
+
+ '@typescript-eslint/parser@8.65.0':
+ resolution: {integrity: sha512-CZ4nMxWwgu1HEEFNkeaCptra9QCtkmKdgf3sWh1rl1trIhmxLilgTV4cwcbQ4wemnT4sWQN8CaKOmdYx+g2gMA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+ typescript: '>=4.8.4 <6.1.0'
+
+ '@typescript-eslint/project-service@8.57.1':
+ resolution: {integrity: sha512-vx1F37BRO1OftsYlmG9xay1TqnjNVlqALymwWVuYTdo18XuKxtBpCj1QlzNIEHlvlB27osvXFWptYiEWsVdYsg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- '@typescript-eslint/parser': ^8.52.0
- eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/parser@8.52.0':
- resolution: {integrity: sha512-iIACsx8pxRnguSYhHiMn2PvhvfpopO9FXHyn1mG5txZIsAaB6F0KwbFnUQN3KCiG3Jcuad/Cao2FAs1Wp7vAyg==}
+ '@typescript-eslint/project-service@8.65.0':
+ resolution: {integrity: sha512-SxnPhbTsGahizDgbu7oqFH/xVtzIqMd/s+WtnSxNxJZJpLbdT5IPdzg8EZxO3+PoKahXmwJLeNQOpKJb3/bi7Q==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <6.0.0'
+ typescript: '>=4.8.4 <6.1.0'
+
+ '@typescript-eslint/scope-manager@8.57.1':
+ resolution: {integrity: sha512-hs/QcpCwlwT2L5S+3fT6gp0PabyGk4Q0Rv2doJXA0435/OpnSR3VRgvrp8Xdoc3UAYSg9cyUjTeFXZEPg/3OKg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/project-service@8.52.0':
- resolution: {integrity: sha512-xD0MfdSdEmeFa3OmVqonHi+Cciab96ls1UhIF/qX/O/gPu5KXD0bY9lu33jj04fjzrXHcuvjBcBC+D3SNSadaw==}
+ '@typescript-eslint/scope-manager@8.65.0':
+ resolution: {integrity: sha512-Esbl8OSYiVxBokYgWPf7VVWg/BE798wXhimnn9ML9Pt5qoDf8bfQlgjlKXR/k98+AcNzlLKYrpCcrcuZ9DZLgg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/tsconfig-utils@8.57.1':
+ resolution: {integrity: sha512-0lgOZB8cl19fHO4eI46YUx2EceQqhgkPSuCGLlGi79L2jwYY1cxeYc1Nae8Aw1xjgW3PKVDLlr3YJ6Bxx8HkWg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/scope-manager@8.52.0':
- resolution: {integrity: sha512-ixxqmmCcc1Nf8S0mS0TkJ/3LKcC8mruYJPOU6Ia2F/zUUR4pApW7LzrpU3JmtePbRUTes9bEqRc1Gg4iyRnDzA==}
+ '@typescript-eslint/tsconfig-utils@8.65.0':
+ resolution: {integrity: sha512-j6GzGqCiRdA7Qhur2VVmKZAkBLfnHFQfx4TaJGL9RMveZqCo48jSHHO0DTgizEnGhtWnqmbtCUSrqSkdiY/0Hg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <6.1.0'
- '@typescript-eslint/tsconfig-utils@8.52.0':
- resolution: {integrity: sha512-jl+8fzr/SdzdxWJznq5nvoI7qn2tNYV/ZBAEcaFMVXf+K6jmXvAFrgo/+5rxgnL152f//pDEAYAhhBAZGrVfwg==}
+ '@typescript-eslint/type-utils@8.65.0':
+ resolution: {integrity: sha512-YjaZ7PRI5qY7ax2L3PbvX0rRyGtipAReCWs0mhhDBHjH/vl0g0BonaGXrKdKpMbIIsMIwDgbk/xzkBTyAltS5g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- typescript: '>=4.8.4 <6.0.0'
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+ typescript: '>=4.8.4 <6.1.0'
- '@typescript-eslint/type-utils@8.52.0':
- resolution: {integrity: sha512-JD3wKBRWglYRQkAtsyGz1AewDu3mTc7NtRjR/ceTyGoPqmdS5oCdx/oZMWD5Zuqmo6/MpsYs0wp6axNt88/2EQ==}
+ '@typescript-eslint/types@8.57.1':
+ resolution: {integrity: sha512-S29BOBPJSFUiblEl6RzPPjJt6w25A6XsBqRVDt53tA/tlL8q7ceQNZHTjPeONt/3S7KRI4quk+yP9jK2WjBiPQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/types@8.65.0':
+ resolution: {integrity: sha512-JSSwWNy+H0E/01jJEM+hrX6N0OFDzFzeIhHFSAS01tlVaevpG8cFyYRPhS5yjGOvBUx3sqQHVMjCL1CAZZMxBg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/typescript-estree@8.57.1':
+ resolution: {integrity: sha512-ybe2hS9G6pXpqGtPli9Gx9quNV0TWLOmh58ADlmZe9DguLq0tiAKVjirSbtM1szG6+QH6rVXyU6GTLQbWnMY+g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/types@8.52.0':
- resolution: {integrity: sha512-LWQV1V4q9V4cT4H5JCIx3481iIFxH1UkVk+ZkGGAV1ZGcjGI9IoFOfg3O6ywz8QqCDEp7Inlg6kovMofsNRaGg==}
+ '@typescript-eslint/typescript-estree@8.65.0':
+ resolution: {integrity: sha512-JboAE2swaYt4tb1fHhHTABE2K+OLy09XfcTbhnk4Pw96f9dd2e9iYsJ28gBggHlo5z5x1rkyWvcPoTuNTd4oGg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <6.1.0'
- '@typescript-eslint/typescript-estree@8.52.0':
- resolution: {integrity: sha512-XP3LClsCc0FsTK5/frGjolyADTh3QmsLp6nKd476xNI9CsSsLnmn4f0jrzNoAulmxlmNIpeXuHYeEQv61Q6qeQ==}
+ '@typescript-eslint/utils@8.57.1':
+ resolution: {integrity: sha512-XUNSJ/lEVFttPMMoDVA2r2bwrl8/oPx8cURtczkSEswY5T3AeLmCy+EKWQNdL4u0MmAHOjcWrqJp2cdvgjn8dQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/utils@8.52.0':
- resolution: {integrity: sha512-wYndVMWkweqHpEpwPhwqE2lnD2DxC6WVLupU/DOt/0/v+/+iQbbzO3jOHjmBMnhu0DgLULvOaU4h4pwHYi2oRQ==}
+ '@typescript-eslint/utils@8.65.0':
+ resolution: {integrity: sha512-gXiwIHsYreboxeJucHKPvgwl7dXt50mF8s1/c00cP/WoVTyWKFdtfhRWwZiXYFU5H2O8vVoSLNrexFZjYS/SGA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <6.0.0'
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+ typescript: '>=4.8.4 <6.1.0'
+
+ '@typescript-eslint/visitor-keys@8.57.1':
+ resolution: {integrity: sha512-YWnmJkXbofiz9KbnbbwuA2rpGkFPLbAIetcCNO6mJ8gdhdZ/v7WDXsoGFAJuM6ikUFKTlSQnjWnVO4ux+UzS6A==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/visitor-keys@8.52.0':
- resolution: {integrity: sha512-ink3/Zofus34nmBsPjow63FP5M7IGff0RKAgqR6+CFpdk22M7aLwC9gOcLGYqr7MczLPzZVERW9hRog3O4n1sQ==}
+ '@typescript-eslint/visitor-keys@8.65.0':
+ resolution: {integrity: sha512-8C71BQkGjiMmXtop7pHVJu1l2NNShFdkCyD6a2ezzs5vU/L3LRtb69EtcteFwz0mYMPzIgOw0n6OV4VBUWZd7A==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript/vfs@1.6.2':
- resolution: {integrity: sha512-hoBwJwcbKHmvd2QVebiytN1aELvpk9B74B4L1mFm/XT1Q/VOYAWl2vQ9AWRFtQq8zmz6enTpfTV8WRc4ATjW/g==}
+ '@typescript/vfs@1.6.4':
+ resolution: {integrity: sha512-PJFXFS4ZJKiJ9Qiuix6Dz/OwEIqHD7Dme1UwZhTK11vR+5dqW2ACbdndWQexBzCx+CPuMe5WBYQWCsFyGlQLlQ==}
peerDependencies:
typescript: '*'
'@ungap/structured-clone@1.3.0':
resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
+ deprecated: Potential CWE-502 - Update to 1.3.1 or higher
- '@unocss/astro@66.5.12':
- resolution: {integrity: sha512-ynhlljsTGTHAcQHbpqxe3IXEDXjPm9IdeDWAhPet7UiGXhW230vEZ+1/OoARqLysVSVz4pPb81MDgS167Oo4Nw==}
- peerDependencies:
- vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 || ^8.0.0-0
- peerDependenciesMeta:
- vite:
- optional: true
-
- '@unocss/cli@66.5.12':
- resolution: {integrity: sha512-aqjhYSiYneGfzXH6iYCY4StVN1QyeRKLhuBPkJO7gzad+1RNeqH2se1l4c5Fnvf+1rU9xRM8cw1CUSIn9UOxYQ==}
- engines: {node: '>=14'}
+ '@unocss/cli@66.7.5':
+ resolution: {integrity: sha512-fgWkECRn2LGVo9sEpmjk/KJ3NSKUDitaZCNrJcEYM93DG+ELriTHcL+VWBlF4rcZf9fdGlq1nKbbRHUZirFCHQ==}
hasBin: true
- '@unocss/config@66.5.12':
- resolution: {integrity: sha512-rgV7Jj1nBZsLgk/FIFMDzKVLzIZlbKT5T0SB+odo9xZUsN5xwZZMl7I8TfZj5VxQaYqFEgSpS/Y4QCWlZ+7scQ==}
- engines: {node: '>=14'}
-
- '@unocss/core@66.5.12':
- resolution: {integrity: sha512-/m6su0OXcCYRwIMf8sobBjZTC25iBLUnQVcfyvHOJwLJzOMr8dtNmZbqTs7+Kouz40jlPF7pR+ufFrN+s5ZD7g==}
+ '@unocss/config@66.7.5':
+ resolution: {integrity: sha512-dkPl9glhEahJ+Xoja5ZseKKnH+vZaeaKQzg8b0otcKcPPNrHQgu1nu3QgfeOjnXOGrjZIotHwUeVtt4ZA2Skgg==}
- '@unocss/extractor-arbitrary-variants@66.5.12':
- resolution: {integrity: sha512-UGzHhLaaSu/YT0rmXtdoE1ttLvwWsI/RVTwNNy3QnL/y4Hvmo7T1MtG5Ri5btfqfDWPzrQLQiTvI8loGCD8lFQ==}
+ '@unocss/core@66.7.5':
+ resolution: {integrity: sha512-UdJb8MiMywcau8QrWEVgUAz0kvoFHyR+sACwYCgmBh/BpKJGyR/zw/Ys3wvysbm0f+i/20VGBex/QQxYVlzdyQ==}
- '@unocss/inspector@66.5.12':
- resolution: {integrity: sha512-X8Ygo842Yy0g46JNlgUGvqDhvr5BuVfFwMJeWSFJBYHzPKsZFxTU29aGxNDNDascTnNdWjZZqerPpG5esa+K2Q==}
+ '@unocss/extractor-arbitrary-variants@66.7.5':
+ resolution: {integrity: sha512-5zOkbnLIJc8E749qNjLXfPHl3FdHloop12h706/ojr6idK4ix0KLm43R//uLnphixCehdHJRuHnavnM4C/kQbA==}
- '@unocss/postcss@66.5.12':
- resolution: {integrity: sha512-fTGrn19I45jzoP9Jsxty9/PXix3PFftj3tgrIsYjZ0R4tpCffW0s7X/iEl3GwfR45kpe5NlQ5ghskd3CFHUp+Q==}
- engines: {node: '>=14'}
- peerDependencies:
- postcss: ^8.4.21
+ '@unocss/inspector@66.7.5':
+ resolution: {integrity: sha512-WmTJMnj8bmRxvw/wGeShmL2eEHr2/L0BdGTXSxhfzwcO8y5XZEbBmVciLcM7pqaTXQ6JY4+KnITrDUf1urjZxQ==}
- '@unocss/preset-attributify@66.5.12':
- resolution: {integrity: sha512-9h/Zgiztzjp1Zf/c/DHAgm1bvzh5oLxAHhPMHmEFjNO335vEjd+PUZBzXXymKM+VoBlMz5DADpAVlTvq1N1aJA==}
+ '@unocss/preset-attributify@66.7.5':
+ resolution: {integrity: sha512-1Oi1Cp81pqYJwG3h4+OlP5A0FKyaa07MFBXaXc4Yr3faiTbsI8SKj2TqnZCb+NQvBsEqslEd+jKXGZ3lKzCVOQ==}
- '@unocss/preset-icons@66.5.12':
- resolution: {integrity: sha512-3bgkN8tTrcOSGuBcJSDrtDfBt7WU3chFjfw7zo4ign+Z0L6qANB2O62AOdOMJOxKjlppJ6a8AceHthhPZP2PDA==}
+ '@unocss/preset-icons@66.7.5':
+ resolution: {integrity: sha512-ZsxadWnGGtHdANTikuMnjkQaT1qwUFJHZBF4fzVsPMnUiiKGs8rzXukwM9w3Gi9ontM7nbG2FYi9clWETSlpFg==}
- '@unocss/preset-mini@66.5.12':
- resolution: {integrity: sha512-JEyhb0vKIguaZnrGw0CXcgU6/9cWubVL8BTiLl26hsC+6vFHVSnaDHIWOJ8sTShzEQjPSxKDlAj/lGQCC2+88Q==}
+ '@unocss/preset-mini@66.7.5':
+ resolution: {integrity: sha512-o37TSl4ecT0dKu+3/TYuTYht75h82SEwDNl476m9ve0KW4Pv1O2tT/9TWd7N5cutEpySr8/YtjMwtWBD+drxBg==}
- '@unocss/preset-tagify@66.5.12':
- resolution: {integrity: sha512-gzQ+986lNxpqMeGxeYlDRpfrzcRt2DFjVpfmuNYD6daK4AFRbetQbhynnZyf8zwf++2YUDGf6xI9TfTTSG2QQA==}
+ '@unocss/preset-tagify@66.7.5':
+ resolution: {integrity: sha512-/8YB1tXVi+WmNKPhsCdtO1xnQKEkshSnWDp6AbvVP3f6qOF7adlMYpAt3kpWCoVUBsfOQ06ZQlnfricMjObyoQ==}
- '@unocss/preset-typography@66.5.12':
- resolution: {integrity: sha512-ckOD1coTCLXhO3oDCINqm0W292dgtYWtUYeQneNARJz3jjdNqANFPOP/y9Kpfe7WGNegVySRlDizi/L6VSdqJQ==}
+ '@unocss/preset-typography@66.7.5':
+ resolution: {integrity: sha512-2dxC8LT9KYa29UZT4muDFl7DbIXvKktTfeSMbUGMdZKbHcuMtKSP2U52wti1PL5I9duqp4v+8G33EeVutGTUaQ==}
- '@unocss/preset-uno@66.5.12':
- resolution: {integrity: sha512-jTLhDeRqhTrCSbEgCQIg0K0PLFDtukG4eeOH5ff7Q4CtmkmsCUK0pqeXegi6ZCyatDwm72qc2WABMSqDMBdhtw==}
+ '@unocss/preset-uno@66.7.5':
+ resolution: {integrity: sha512-zaUlYgNngbt50fZA/LbtsEnmPKojPqeiXCyUUiKQMv2uJQhncR32xhLZXVQ+TJD7hlfZ+6FAqlco1NIiAcub9w==}
- '@unocss/preset-web-fonts@66.5.12':
- resolution: {integrity: sha512-NSUf+H5X0jZ1PLWW6D5ldBERERpbH8VvkpJJhxNTCS54Lj5vJiZ1S06UYxBB57vuUOaHpQOGTbKUSc204LCqdw==}
+ '@unocss/preset-web-fonts@66.7.5':
+ resolution: {integrity: sha512-OLLTK7kswdSu51qxEm6O+AehecgCfS08Ivqo+280lKzFW7V1jXr5okeJ1ty+85oHCprJqzcD9iG1khxNRLomcA==}
- '@unocss/preset-wind3@66.5.12':
- resolution: {integrity: sha512-SUzX12aQcM1ikzfv4rqwd/xuXtK5GKvhV0/JjvtG/kDTMGaKv161F2ytduj+2pBHtpJO5fUmreCD5ycTUIkxhQ==}
+ '@unocss/preset-wind3@66.7.5':
+ resolution: {integrity: sha512-atFe/7Qein+oMdyZs0hEo+3EjV99Av2LVxDbzpCungxIfbS3TnQt70EIuHXMPNCVWLYwrMV+/P1n9Ntb0E3mow==}
- '@unocss/preset-wind4@66.5.12':
- resolution: {integrity: sha512-JVddnLJ6NOk7hOXA0Y8SYbQEu+JpURbE9o/IHVCkRClVRkE81b9KgJf7WQa/8KIr1O20wRRFdt9QRH4m3pZJ/A==}
+ '@unocss/preset-wind4@66.7.5':
+ resolution: {integrity: sha512-n3jIvQv8x1jXpmWfvNFBIqHNARki4mKZXfxAA31gekpXsRRTg16u1+yC1+PBBJgoEDFEnnmKnG7EZP88S8LVXA==}
- '@unocss/preset-wind@66.5.12':
- resolution: {integrity: sha512-wp1/8JqQriv1AqpxskKbZYD9TNqZLQ9VBr7nNN6OkiPXBE1egEwnyb/fY+sS7IpEgwi4N9uehwQgk0/xs84SWg==}
+ '@unocss/preset-wind@66.7.5':
+ resolution: {integrity: sha512-LVKgGr0A9Lc7F85xGXrrb71DDXMlHGA8bcj/Kht8BCsuRdBZadNbLlnv5qnSJiHYhi3/blzcgVoaeRor6L9yNA==}
- '@unocss/reset@66.5.12':
- resolution: {integrity: sha512-wGTMu1sXVdxnzAonzHk/yUsyDyGrr8OiXCDSC7pVNep6eXhhf0g85v/Gx9FoAjZRyCppm6ePDWXtWYS8zglfCQ==}
+ '@unocss/reset@66.7.5':
+ resolution: {integrity: sha512-z3wbt2cuQPjtT6w5xzRYZYFIIlUPzhVKz8yIcE9fvu7BgR3hO7uVsg/5mzDoGwQ96Ya3Sk68rpmI/gLYl4bJag==}
- '@unocss/rule-utils@66.5.12':
- resolution: {integrity: sha512-2UQvdjS6nD3QHLEwcXlDhXFNiOUQDuOC+itX4tjqvnjP/hj5A99WEUHemb8WEHAlHAt7khe9591+BkHHo3BX/w==}
- engines: {node: '>=14'}
+ '@unocss/rule-utils@66.7.5':
+ resolution: {integrity: sha512-/AKHBRF6ZOexE3EDDv8ZEYh40P5e2Eha41IYUbE1wjigW7++ssmvimSTdufJzZvU5DGP++E3B3WEsFPprZMjAg==}
- '@unocss/transformer-attributify-jsx@66.5.12':
- resolution: {integrity: sha512-h88voRNzSDDBf8In9A/wT0x7IlpRSnOnS62hBIcWk3Ci6w2+I/5eMFP+Rl1kY3zAz4hJ1/Ei6d9Rup3eS5037w==}
+ '@unocss/transformer-attributify-jsx@66.7.5':
+ resolution: {integrity: sha512-r8qDwNSt0eGSwWws3xsuIHb3PZYR2embFdYoE67hD/xlYgLjX1uPy/HUlGCSSh4uLc4vVYjurr0Oq5xF/B8YiA==}
- '@unocss/transformer-compile-class@66.5.12':
- resolution: {integrity: sha512-EV9LCrIfwUrevHOAhcQD/4HO5NdDzd1ALXNSDbaRxPjDVquWIRs/DujUmihyV2wqu2qEnkOumC+kyDPfZ7/u3w==}
+ '@unocss/transformer-compile-class@66.7.5':
+ resolution: {integrity: sha512-KuECgsGF7tGe808vIvKViEjI0UCUgYgneJfK+/TWBkjC7s8dLVaUtJzzcP9/r6OfGlgyn/x1YTdRqTaCENa7Xg==}
- '@unocss/transformer-directives@66.5.12':
- resolution: {integrity: sha512-oRTqR2a5du6b1md549JUX8doXcXY0XNTkiar7R0HZInF4ic0BbjG+nflifd1UtTbI1TUOtcZLQHm+/4tQqM4MA==}
+ '@unocss/transformer-directives@66.7.5':
+ resolution: {integrity: sha512-VMJApXXOwlDubkW+cNMmOkfxLefFupJr+yU23gGYUB2NPsuVltc8H5CDM0gfVebpeL5CUW05evxzEAk2wsju+Q==}
- '@unocss/transformer-variant-group@66.5.12':
- resolution: {integrity: sha512-iNHzliFCIVjbbmM9PVexqFhPa1t6C/6Ma3ZtkQRMq9KD2YsLvxdabvESEbjHA3iooR+bjPkiROC9whyRLWnyqQ==}
+ '@unocss/transformer-variant-group@66.7.5':
+ resolution: {integrity: sha512-iDmP3mM8J+IxuQf5Uh33zsi528xnGxTpKRJ0c+LCrqBTTkR2tZr4aCzNmJ0g29Js2yEOsyNXRRc8BNTuvgn0AA==}
- '@unocss/vite@66.5.12':
- resolution: {integrity: sha512-BSbUmUCLF3303Cu0y+gbhibXkXPpcR6lVFNN2g06EXTDNJEoS/1VKvZEUBU8RP8d1mLkv5mqN4FzdltZ+vA3uw==}
+ '@unocss/vite@66.7.5':
+ resolution: {integrity: sha512-1z1TBCNJCR2WzjPtjzmCHr8rtzXHosMjLdsCNe6Mzsfwiw044gzzLVuiEZO9vIjkI50lvQ+gIOxOiVQG0hGAeA==}
peerDependencies:
- vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 || ^8.0.0-0
-
- '@vercel/oidc@3.0.5':
- resolution: {integrity: sha512-fnYhv671l+eTTp48gB4zEsTW/YtRgRPnkI2nT7x6qw5rkI1Lq2hTmQIpHPgyThI0znLK+vX2n9XxKdXZ7BUbbw==}
- engines: {node: '>= 20'}
+ vite: ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 || ^8.0.0-0
'@vite-pwa/assets-generator@1.0.2':
resolution: {integrity: sha512-MCbrb508JZHqe7bUibmZj/lyojdhLRnfkmyXnkrCM2zVrjTgL89U8UEfInpKTvPeTnxsw2hmyZxnhsdNR6yhwg==}
@@ -1810,124 +1880,178 @@ packages:
'@vite-pwa/assets-generator':
optional: true
- '@vitejs/plugin-vue@6.0.3':
- resolution: {integrity: sha512-TlGPkLFLVOY3T7fZrwdvKpjprR3s4fxRln0ORDo1VQ7HHyxJwTlrjKU3kpVWTlaAjIEuCTokmjkZnr8Tpc925w==}
+ '@vitejs/plugin-vue@6.0.8':
+ resolution: {integrity: sha512-0ZjgOg7oO6farnNGup7yvoM/YXZV84OZxHAwtflItNa/6zzQyVb5LNxyea3FEKEX2XlagIKzrlH7wwxkKgtiew==}
engines: {node: ^20.19.0 || >=22.12.0}
peerDependencies:
- vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
+ vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0
vue: ^3.2.25
- '@vitest/eslint-plugin@1.6.6':
- resolution: {integrity: sha512-bwgQxQWRtnTVzsUHK824tBmHzjV0iTx3tZaiQIYDjX3SA7TsQS8CuDVqxXrRY3FaOUMgbGavesCxI9MOfFLm7Q==}
+ '@vitest/eslint-plugin@1.6.25':
+ resolution: {integrity: sha512-ylqFL2TYRgtTewl5Kr2NCL3fnLOMNo91XEyniB4tA1zlnZs0GbrNj6ER6ldR9J3r5RSL0dQ7EeMUiXsbfHrvpg==}
engines: {node: '>=18'}
peerDependencies:
+ '@typescript-eslint/eslint-plugin': '*'
eslint: '>=8.57.0'
typescript: '>=5.0.0'
vitest: '*'
peerDependenciesMeta:
+ '@typescript-eslint/eslint-plugin':
+ optional: true
typescript:
optional: true
vitest:
optional: true
- '@vitest/expect@4.0.17':
- resolution: {integrity: sha512-mEoqP3RqhKlbmUmntNDDCJeTDavDR+fVYkSOw8qRwJFaW/0/5zA9zFeTrHqNtcmwh6j26yMmwx2PqUDPzt5ZAQ==}
+ '@vitest/expect@4.1.10':
+ resolution: {integrity: sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA==}
- '@vitest/mocker@4.0.17':
- resolution: {integrity: sha512-+ZtQhLA3lDh1tI2wxe3yMsGzbp7uuJSWBM1iTIKCbppWTSBN09PUC+L+fyNlQApQoR+Ps8twt2pbSSXg2fQVEQ==}
+ '@vitest/mocker@4.1.10':
+ resolution: {integrity: sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow==}
peerDependencies:
msw: ^2.4.9
- vite: ^6.0.0 || ^7.0.0-0
+ vite: ^6.0.0 || ^7.0.0 || ^8.0.0
peerDependenciesMeta:
msw:
optional: true
vite:
optional: true
- '@vitest/pretty-format@4.0.17':
- resolution: {integrity: sha512-Ah3VAYmjcEdHg6+MwFE17qyLqBHZ+ni2ScKCiW2XrlSBV4H3Z7vYfPfz7CWQ33gyu76oc0Ai36+kgLU3rfF4nw==}
+ '@vitest/pretty-format@4.1.10':
+ resolution: {integrity: sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q==}
- '@vitest/runner@4.0.17':
- resolution: {integrity: sha512-JmuQyf8aMWoo/LmNFppdpkfRVHJcsgzkbCA+/Bk7VfNH7RE6Ut2qxegeyx2j3ojtJtKIbIGy3h+KxGfYfk28YQ==}
+ '@vitest/runner@4.1.10':
+ resolution: {integrity: sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg==}
- '@vitest/snapshot@4.0.17':
- resolution: {integrity: sha512-npPelD7oyL+YQM2gbIYvlavlMVWUfNNGZPcu0aEUQXt7FXTuqhmgiYupPnAanhKvyP6Srs2pIbWo30K0RbDtRQ==}
+ '@vitest/snapshot@4.1.10':
+ resolution: {integrity: sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw==}
- '@vitest/spy@4.0.17':
- resolution: {integrity: sha512-I1bQo8QaP6tZlTomQNWKJE6ym4SHf3oLS7ceNjozxxgzavRAgZDc06T7kD8gb9bXKEgcLNt00Z+kZO6KaJ62Ew==}
+ '@vitest/spy@4.1.10':
+ resolution: {integrity: sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw==}
- '@vitest/utils@4.0.17':
- resolution: {integrity: sha512-RG6iy+IzQpa9SB8HAFHJ9Y+pTzI+h8553MrciN9eC6TFBErqrQaTas4vG+MVj8S4uKk8uTT2p0vgZPnTdxd96w==}
+ '@vitest/utils@4.1.10':
+ resolution: {integrity: sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==}
- '@voidzero-dev/vitepress-theme@4.1.0':
- resolution: {integrity: sha512-OT7GA7rX1G9+if7QtmaUuVavOVFeJsTIGRG2Nx86PWpMmvlKzp4Dl1VZzbe4ckcX82nfwltJj2pw3Q8cZpxO7w==}
+ '@voidzero-dev/vitepress-theme@5.0.6':
+ resolution: {integrity: sha512-pzACA3+D564tulGW5XSWSaJ8YwghPJCKYJdZtGuMDkqji6xH/TDhvlHr35b1s9fCLeN/ksGTjBaWO9S5uwTvtA==}
peerDependencies:
- vitepress: ^2.0.0-alpha.15
+ vitepress: ^2.0.0-alpha.16
vue: ^3.5.0
- '@volar/language-core@2.4.27':
- resolution: {integrity: sha512-DjmjBWZ4tJKxfNC1F6HyYERNHPYS7L7OPFyCrestykNdUZMFYzI9WTyvwPcaNaHlrEUwESHYsfEw3isInncZxQ==}
+ '@volar/language-core@2.4.28':
+ resolution: {integrity: sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==}
- '@volar/source-map@2.4.27':
- resolution: {integrity: sha512-ynlcBReMgOZj2i6po+qVswtDUeeBRCTgDurjMGShbm8WYZgJ0PA4RmtebBJ0BCYol1qPv3GQF6jK7C9qoVc7lg==}
+ '@volar/source-map@2.4.28':
+ resolution: {integrity: sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==}
- '@vue/compiler-core@3.5.26':
- resolution: {integrity: sha512-vXyI5GMfuoBCnv5ucIT7jhHKl55Y477yxP6fc4eUswjP8FG3FFVFd41eNDArR+Uk3QKn2Z85NavjaxLxOC19/w==}
+ '@vue/compiler-core@3.5.30':
+ resolution: {integrity: sha512-s3DfdZkcu/qExZ+td75015ljzHc6vE+30cFMGRPROYjqkroYI5NV2X1yAMX9UeyBNWB9MxCfPcsjpLS11nzkkw==}
- '@vue/compiler-dom@3.5.26':
- resolution: {integrity: sha512-y1Tcd3eXs834QjswshSilCBnKGeQjQXB6PqFn/1nxcQw4pmG42G8lwz+FZPAZAby6gZeHSt/8LMPfZ4Rb+Bd/A==}
+ '@vue/compiler-core@3.5.40':
+ resolution: {integrity: sha512-39E8IgOhTbVDnoJFMKc2DvYnypcZwUqgUhQkccva/0m6FUwtIKSGV7n1hpVmYcFaoRAwf9pBcwnKlCEsN63ZEQ==}
- '@vue/compiler-sfc@3.5.26':
- resolution: {integrity: sha512-egp69qDTSEZcf4bGOSsprUr4xI73wfrY5oRs6GSgXFTiHrWj4Y3X5Ydtip9QMqiCMCPVwLglB9GBxXtTadJ3mA==}
+ '@vue/compiler-dom@3.5.30':
+ resolution: {integrity: sha512-eCFYESUEVYHhiMuK4SQTldO3RYxyMR/UQL4KdGD1Yrkfdx4m/HYuZ9jSfPdA+nWJY34VWndiYdW/wZXyiPEB9g==}
- '@vue/compiler-ssr@3.5.26':
- resolution: {integrity: sha512-lZT9/Y0nSIRUPVvapFJEVDbEXruZh2IYHMk2zTtEgJSlP5gVOqeWXH54xDKAaFS4rTnDeDBQUYDtxKyoW9FwDw==}
+ '@vue/compiler-dom@3.5.40':
+ resolution: {integrity: sha512-pwkx4vqlqOspFstrcmzwkKLePVMD3PT65imRzLhanU2V1Fj4K13g6OXjanOyzw3aTAuRk84BOmY8f3rEHqPaVA==}
- '@vue/devtools-api@8.0.5':
- resolution: {integrity: sha512-DgVcW8H/Nral7LgZEecYFFYXnAvGuN9C3L3DtWekAncFBedBczpNW8iHKExfaM559Zm8wQWrwtYZ9lXthEHtDw==}
+ '@vue/compiler-sfc@3.5.40':
+ resolution: {integrity: sha512-gIf497P4kpuALcvs5n3AEg1Vdn0pSY4XbjASIfHNYF1/MP3T2Mf2STERTubysBxCRxzJGJYtF/O7vwJrxFB3Vw==}
- '@vue/devtools-kit@8.0.5':
- resolution: {integrity: sha512-q2VV6x1U3KJMTQPUlRMyWEKVbcHuxhqJdSr6Jtjz5uAThAIrfJ6WVZdGZm5cuO63ZnSUz0RCsVwiUUb0mDV0Yg==}
+ '@vue/compiler-ssr@3.5.40':
+ resolution: {integrity: sha512-rrE5xiXG663+vHCHa3J9p2z5OcBRjXmoqenprJxAFQxg5pSshzeBiCE6pu46axapRJ2Adk0YDA2BRZVjiHXnhg==}
- '@vue/devtools-shared@8.0.5':
- resolution: {integrity: sha512-bRLn6/spxpmgLk+iwOrR29KrYnJjG9DGpHGkDFG82UM21ZpJ39ztUT9OXX3g+usW7/b2z+h46I9ZiYyB07XMXg==}
+ '@vue/devtools-api@8.2.1':
+ resolution: {integrity: sha512-6u4vXBlIBAC1wMplIZgpyPn7uh/s4Bf6F5bMzvLv+EdJ0aHs/+4B7Ygv864EStQSjRbsRzTko/kUG1A1IejQ3A==}
- '@vue/language-core@3.2.2':
- resolution: {integrity: sha512-5DAuhxsxBN9kbriklh3Q5AMaJhyOCNiQJvCskN9/30XOpdLiqZU9Q+WvjArP17ubdGEyZtBzlIeG5nIjEbNOrQ==}
+ '@vue/devtools-kit@8.2.1':
+ resolution: {integrity: sha512-FIGIuq3AWReEpbAHY/cRGeHDfI0qOb8OCQ3YjbEAX04uaxIDbGc9rhkbVcG7rnfHPXE3RsU5KrWOu9V/okd8AQ==}
- '@vue/reactivity@3.5.26':
- resolution: {integrity: sha512-9EnYB1/DIiUYYnzlnUBgwU32NNvLp/nhxLXeWRhHUEeWNTn1ECxX8aGO7RTXeX6PPcxe3LLuNBFoJbV4QZ+CFQ==}
+ '@vue/devtools-shared@8.2.1':
+ resolution: {integrity: sha512-Fkac7lUdGReh6pVOi3AYPRGe82LQqRmAfThW7RRligOAP0ZA/Z1z9XLHDM9dv34pV2HRc79DK8uKPeG2fLnA/g==}
- '@vue/runtime-core@3.5.26':
- resolution: {integrity: sha512-xJWM9KH1kd201w5DvMDOwDHYhrdPTrAatn56oB/LRG4plEQeZRQLw0Bpwih9KYoqmzaxF0OKSn6swzYi84e1/Q==}
+ '@vue/language-core@3.2.6':
+ resolution: {integrity: sha512-xYYYX3/aVup576tP/23sEUpgiEnujrENaoNRbaozC1/MA9I6EGFQRJb4xrt/MmUCAGlxTKL2RmT8JLTPqagCkg==}
- '@vue/runtime-dom@3.5.26':
- resolution: {integrity: sha512-XLLd/+4sPC2ZkN/6+V4O4gjJu6kSDbHAChvsyWgm1oGbdSO3efvGYnm25yCjtFm/K7rrSDvSfPDgN1pHgS4VNQ==}
+ '@vue/reactivity@3.5.40':
+ resolution: {integrity: sha512-B7ot9UlUZOi1zbq61/LvE88ZLTV8IlajTdiZTAEiDQgrnIMIZoPr9kGw0Zw46ObW62O9+H/Be3kMbfb7kYPQZA==}
- '@vue/server-renderer@3.5.26':
- resolution: {integrity: sha512-TYKLXmrwWKSodyVuO1WAubucd+1XlLg4set0YoV+Hu8Lo79mp/YMwWV5mC5FgtsDxX3qo1ONrxFaTP1OQgy1uA==}
- peerDependencies:
- vue: 3.5.26
+ '@vue/runtime-core@3.5.40':
+ resolution: {integrity: sha512-KAZLweuZ6uUJPK1PMSQPgBU5gCjgrrfjUhSglmU9NhH+Zjepa8cnwSydPWDWHDwOgY4g3VcZ+PljbiHlURNCbw==}
- '@vue/shared@3.5.26':
- resolution: {integrity: sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A==}
+ '@vue/runtime-dom@3.5.40':
+ resolution: {integrity: sha512-ZfrX8ssZQds900L9pr8AuK05ddnMsR4MPMZr8cPN9GoqoPWcXLhjvvbIA2SMv+7a97sJ1vv9pj/zxK0Cq/eEFQ==}
- '@vueuse/core@12.8.2':
- resolution: {integrity: sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ==}
+ '@vue/server-renderer@3.5.40':
+ resolution: {integrity: sha512-XNJym9WpevhTVt1HuwOrCRJ5Q+9z4BjTMrDtjTrvx74SmUll8spNTw6whWJa9mEkO4PKn5TihI/bm/8ds2QVJw==}
- '@vueuse/core@14.1.0':
- resolution: {integrity: sha512-rgBinKs07hAYyPF834mDTigH7BtPqvZ3Pryuzt1SD/lg5wEcWqvwzXXYGEDb2/cP0Sj5zSvHl3WkmMELr5kfWw==}
+ '@vue/shared@3.5.30':
+ resolution: {integrity: sha512-YXgQ7JjaO18NeK2K9VTbDHaFy62WrObMa6XERNfNOkAhD1F1oDSf3ZJ7K6GqabZ0BvSDHajp8qfS5Sa2I9n8uQ==}
+
+ '@vue/shared@3.5.40':
+ resolution: {integrity: sha512-WxnBtruIqOoV3rA4jeKDWzrYI5h7Cp4+pjwDi8kWGHz+IslhiN+wguLVVhtv2l8VoU02rzDCVfDjgCl1lNpZVg==}
+
+ '@vueuse/core@14.2.1':
+ resolution: {integrity: sha512-3vwDzV+GDUNpdegRY6kzpLm4Igptq+GA0QkJ3W61Iv27YWwW/ufSlOfgQIpN6FZRMG0mkaz4gglJRtq5SeJyIQ==}
+ peerDependencies:
+ vue: ^3.5.0
+
+ '@vueuse/core@14.4.0':
+ resolution: {integrity: sha512-X4WHz1HlCzCBoYXesUkifzzWBAcZgXG8Fi5iNPQg/epdzOB3gu8Fawj3hvuwYR1nGcXGnvxwYYcUC/71++svtQ==}
+ peerDependencies:
+ vue: ^3.5.0
+
+ '@vueuse/integrations@14.2.1':
+ resolution: {integrity: sha512-2LIUpBi/67PoXJGqSDQUF0pgQWpNHh7beiA+KG2AbybcNm+pTGWT6oPGlBgUoDWmYwfeQqM/uzOHqcILpKL7nA==}
peerDependencies:
+ async-validator: ^4
+ axios: ^1
+ change-case: ^5
+ drauu: ^0.4
+ focus-trap: ^7 || ^8
+ fuse.js: ^7
+ idb-keyval: ^6
+ jwt-decode: ^4
+ nprogress: ^0.2
+ qrcode: ^1.5
+ sortablejs: ^1
+ universal-cookie: ^7 || ^8
vue: ^3.5.0
+ peerDependenciesMeta:
+ async-validator:
+ optional: true
+ axios:
+ optional: true
+ change-case:
+ optional: true
+ drauu:
+ optional: true
+ focus-trap:
+ optional: true
+ fuse.js:
+ optional: true
+ idb-keyval:
+ optional: true
+ jwt-decode:
+ optional: true
+ nprogress:
+ optional: true
+ qrcode:
+ optional: true
+ sortablejs:
+ optional: true
+ universal-cookie:
+ optional: true
- '@vueuse/integrations@14.1.0':
- resolution: {integrity: sha512-eNQPdisnO9SvdydTIXnTE7c29yOsJBD/xkwEyQLdhDC/LKbqrFpXHb3uS//7NcIrQO3fWVuvMGp8dbK6mNEMCA==}
+ '@vueuse/integrations@14.4.0':
+ resolution: {integrity: sha512-oJz9qTgczvA7L1nXQFRU7h8tQbOCoiceqvMMhT9XYMyOGTqLJ2rEa09PON+nD2t48sZUfeOmg4eaWJXV4sZb/w==}
peerDependencies:
async-validator: ^4
axios: ^1
change-case: ^5
drauu: ^0.4
- focus-trap: ^7
+ focus-trap: ^7 || ^8
fuse.js: ^7
idb-keyval: ^6
jwt-decode: ^4
@@ -1962,17 +2086,19 @@ packages:
universal-cookie:
optional: true
- '@vueuse/metadata@12.8.2':
- resolution: {integrity: sha512-rAyLGEuoBJ/Il5AmFHiziCPdQzRt88VxR+Y/A/QhJ1EWtWqPBBAxTAFaSkviwEuOEZNtW8pvkPgoCZQ+HxqW1A==}
+ '@vueuse/metadata@14.2.1':
+ resolution: {integrity: sha512-1ButlVtj5Sb/HDtIy1HFr1VqCP4G6Ypqt5MAo0lCgjokrk2mvQKsK2uuy0vqu/Ks+sHfuHo0B9Y9jn9xKdjZsw==}
- '@vueuse/metadata@14.1.0':
- resolution: {integrity: sha512-7hK4g015rWn2PhKcZ99NyT+ZD9sbwm7SGvp7k+k+rKGWnLjS/oQozoIZzWfCewSUeBmnJkIb+CNr7Zc/EyRnnA==}
+ '@vueuse/metadata@14.4.0':
+ resolution: {integrity: sha512-swx/255R6JyHZFJhx845iz5CRWDZdCfvkZOpACWc5+c5WHcG24mv8gUT1WIdFQaHt6dq79rvILd9QnCWiyVm9g==}
- '@vueuse/shared@12.8.2':
- resolution: {integrity: sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w==}
+ '@vueuse/shared@14.2.1':
+ resolution: {integrity: sha512-shTJncjV9JTI4oVNyF1FQonetYAiTBd+Qj7cY89SWbXSkx7gyhrgtEdF2ZAVWS1S3SHlaROO6F2IesJxQEkZBw==}
+ peerDependencies:
+ vue: ^3.5.0
- '@vueuse/shared@14.1.0':
- resolution: {integrity: sha512-EcKxtYvn6gx1F8z9J5/rsg3+lTQnvOruQd8fUecW99DCK04BkWD7z5KQ/wTAx+DazyoEE9dJt/zV8OIEQbM6kw==}
+ '@vueuse/shared@14.4.0':
+ resolution: {integrity: sha512-JRgY90Sz8DDtPMsaDflvPMp9xYk69JZAmbuDvAquUVXKr2gEjqtzGNTTthLfckH0BzBqvnu31gb4a8TGLRe79g==}
peerDependencies:
vue: ^3.5.0
@@ -1985,52 +2111,22 @@ packages:
peerDependencies:
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
- acorn@8.15.0:
- resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==}
+ acorn@8.16.0:
+ resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==}
engines: {node: '>=0.4.0'}
hasBin: true
- ai@5.0.118:
- resolution: {integrity: sha512-sKJHfhJkvAyq5NC3yJJ4R8Z3tn4pSHF760/jInKAtmLwPLWTHfGo293DSO4un8QUAgJOagHd09VSXOXv+STMNQ==}
- engines: {node: '>=18'}
- peerDependencies:
- zod: ^3.25.76 || ^4.1.8
-
- ajv@6.12.6:
- resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
-
- ajv@8.17.1:
- resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
+ ajv@6.14.0:
+ resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==}
- algoliasearch@5.46.2:
- resolution: {integrity: sha512-qqAXW9QvKf2tTyhpDA4qXv1IfBwD2eduSW6tUEBFIfCeE9gn9HQ9I5+MaKoenRuHrzk5sQoNh1/iof8mY7uD6Q==}
- engines: {node: '>= 14.0.0'}
+ ajv@8.18.0:
+ resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==}
alien-signals@3.1.2:
resolution: {integrity: sha512-d9dYqZTS90WLiU0I5c6DHj/HcKkF8ZyGN3G5x8wSbslulz70KOxaqCT0hQCo9KOyhVqzqGojvNdJXoTumZOtcw==}
- ansi-escapes@7.2.0:
- resolution: {integrity: sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==}
- engines: {node: '>=18'}
-
- ansi-regex@5.0.1:
- resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
- engines: {node: '>=8'}
-
- ansi-regex@6.2.2:
- resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==}
- engines: {node: '>=12'}
-
- ansi-styles@4.3.0:
- resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
- engines: {node: '>=8'}
-
- ansi-styles@6.2.3:
- resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==}
- engines: {node: '>=12'}
-
- ansis@4.2.0:
- resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==}
+ ansis@4.3.1:
+ resolution: {integrity: sha512-BJ8/l4R5LRE7hW9WdSuGYrLSHi2ynxeFpDFbH0K/CgNeY/tyhk+vO6TYxXC5r5CpUhNVX310xzPsN/H9lCdfOA==}
engines: {node: '>=14'}
appdata-path@1.0.0:
@@ -2040,9 +2136,6 @@ packages:
resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==}
engines: {node: '>=14'}
- argparse@1.0.10:
- resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
-
argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
@@ -2080,29 +2173,31 @@ packages:
resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
engines: {node: '>= 0.4'}
- babel-plugin-polyfill-corejs2@0.4.14:
- resolution: {integrity: sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==}
+ babel-plugin-polyfill-corejs2@0.4.17:
+ resolution: {integrity: sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==}
peerDependencies:
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
- babel-plugin-polyfill-corejs3@0.13.0:
- resolution: {integrity: sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==}
+ babel-plugin-polyfill-corejs3@0.14.2:
+ resolution: {integrity: sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==}
peerDependencies:
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
- babel-plugin-polyfill-regenerator@0.6.5:
- resolution: {integrity: sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==}
+ babel-plugin-polyfill-regenerator@0.6.8:
+ resolution: {integrity: sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==}
peerDependencies:
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
- bail@2.0.2:
- resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
-
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
- baseline-browser-mapping@2.9.13:
- resolution: {integrity: sha512-WhtvB2NG2wjr04+h77sg3klAIwrgOqnjS49GGudnUPGFFgg7G17y7Qecqp+2Dr5kUDxNRBca0SK7cG8JwzkWDQ==}
+ balanced-match@4.0.4:
+ resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
+ engines: {node: 18 || 20 || >=22}
+
+ baseline-browser-mapping@2.11.11:
+ resolution: {integrity: sha512-/yImnXwyTvgMkhgekLHok/Rx5vO6E0BmStWlSqKWMVm2a2ITuZ1Tn+9bgLS+gZRdZmWtd8nxuhHpdmCUOWsTQQ==}
+ engines: {node: '>=6.0.0'}
hasBin: true
birpc@2.9.0:
@@ -2115,18 +2210,19 @@ packages:
boolbase@1.0.0:
resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
- brace-expansion@1.1.12:
- resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==}
-
brace-expansion@2.0.2:
resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==}
- braces@3.0.3:
- resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
- engines: {node: '>=8'}
+ brace-expansion@5.0.4:
+ resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==}
+ engines: {node: 18 || 20 || >=22}
+
+ brace-expansion@5.0.9:
+ resolution: {integrity: sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==}
+ engines: {node: 20 || >=22}
- browserslist@4.28.1:
- resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==}
+ browserslist@4.28.7:
+ resolution: {integrity: sha512-JxV13hNrFxqjOc8alRbq9dK1MM79NEXYpma2B2J4wAtpWS5zIEIKqWPGCl7N4o7Uc7B7itylh7SuDujATRyyTw==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
@@ -2145,6 +2241,10 @@ packages:
resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
engines: {node: '>=8'}
+ cac@7.0.0:
+ resolution: {integrity: sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==}
+ engines: {node: '>=20.19.0'}
+
call-bind-apply-helpers@1.0.2:
resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
engines: {node: '>= 0.4'}
@@ -2157,12 +2257,8 @@ packages:
resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
engines: {node: '>= 0.4'}
- callsites@3.1.0:
- resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
- engines: {node: '>=6'}
-
- caniuse-lite@1.0.30001763:
- resolution: {integrity: sha512-mh/dGtq56uN98LlNX9qdbKnzINhX0QzhiWBFEkFfsFO4QyCvL8YegrJAazCwXIeqkIob8BlZPGM3xdnY+sgmvQ==}
+ caniuse-lite@1.0.30001806:
+ resolution: {integrity: sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw==}
ccount@2.0.1:
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
@@ -2171,10 +2267,6 @@ packages:
resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==}
engines: {node: '>=18'}
- chalk@4.1.2:
- resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
- engines: {node: '>=10'}
-
change-case@5.4.4:
resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==}
@@ -2191,26 +2283,10 @@ packages:
resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==}
engines: {node: '>= 20.19.0'}
- ci-info@4.3.1:
- resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==}
+ ci-info@4.4.0:
+ resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==}
engines: {node: '>=8'}
- clean-regexp@1.0.0:
- resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
- engines: {node: '>=4'}
-
- cli-cursor@5.0.0:
- resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==}
- engines: {node: '>=18'}
-
- cli-truncate@5.1.1:
- resolution: {integrity: sha512-SroPvNHxUnk+vIW/dOSfNqdy1sPEFkrTk6TUtqLCnBlo3N7TNYYkzzN7uSD6+jVjrdO4+p8nH7JzH6cIvUem6A==}
- engines: {node: '>=20'}
-
- cliui@8.0.1:
- resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
- engines: {node: '>=12'}
-
color-convert@2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
engines: {node: '>=7.0.0'}
@@ -2231,15 +2307,19 @@ packages:
comma-separated-tokens@2.0.3:
resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
- commander@14.0.2:
- resolution: {integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==}
- engines: {node: '>=20'}
-
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
- comment-parser@1.4.1:
- resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==}
+ commander@8.3.0:
+ resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
+ engines: {node: '>= 12'}
+
+ comment-parser@1.4.5:
+ resolution: {integrity: sha512-aRDkn3uyIlCFfk5NUA+VdwMmMsh8JGhc4hapfV4yxymHGQ3BVskMQfoXGpCo5IoBuQ9tS5iiVKhCpTcB4pW4qw==}
+ engines: {node: '>= 12.0.0'}
+
+ comment-parser@1.4.7:
+ resolution: {integrity: sha512-0h+uSNtQGW3D98eQt3jJ8L06Fves8hncB4V/PKdw/Qb8Hnk19VaKuTr55UNRYiSoVa7WwrFls+rh3ux9agmkeQ==}
engines: {node: '>= 12.0.0'}
common-tags@1.8.2:
@@ -2254,14 +2334,11 @@ packages:
resolution: {integrity: sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==}
engines: {node: '>= 0.8.0'}
- concat-map@0.0.1:
- resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
-
confbox@0.1.8:
resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==}
- confbox@0.2.2:
- resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==}
+ confbox@0.2.4:
+ resolution: {integrity: sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==}
consola@3.4.2:
resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==}
@@ -2275,6 +2352,10 @@ packages:
resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
engines: {node: '>= 0.6'}
+ convert-hrtime@5.0.0:
+ resolution: {integrity: sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==}
+ engines: {node: '>=12'}
+
convert-source-map@2.0.0:
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
@@ -2285,18 +2366,14 @@ packages:
resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==}
engines: {node: '>= 0.6'}
- copy-anything@4.0.5:
- resolution: {integrity: sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA==}
- engines: {node: '>=18'}
-
- core-js-compat@3.47.0:
- resolution: {integrity: sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==}
+ core-js-compat@3.49.0:
+ resolution: {integrity: sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==}
core-util-is@1.0.3:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
- cors@2.8.5:
- resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==}
+ cors@2.8.6:
+ resolution: {integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==}
engines: {node: '>= 0.10'}
cross-spawn@7.0.6:
@@ -2307,8 +2384,8 @@ packages:
resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
engines: {node: '>=8'}
- css-tree@3.1.0:
- resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==}
+ css-tree@3.2.1:
+ resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
cssesc@3.0.0:
@@ -2356,8 +2433,8 @@ packages:
resolution: {integrity: sha512-69NZfbKIzux1vBOd31al3XnMnH+2mqDhEgLdpygErm4d60N+UwA5Sq5WFjmEDQzumgB9fElojGwWG0vybVfFmA==}
engines: {node: '>=8.6'}
- decode-named-character-reference@1.2.0:
- resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==}
+ decode-named-character-reference@1.3.0:
+ resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==}
deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
@@ -2392,6 +2469,10 @@ packages:
resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
+ detect-indent@7.0.2:
+ resolution: {integrity: sha512-y+8xyqdGLL+6sh0tVeHcfP/QDd8gUgbasolJJpY7NgeQGSZ739bDtSiaiDgtoicy+mtYB81dKLxO9xRhCyIB3A==}
+ engines: {node: '>=12.20'}
+
detect-libc@2.1.2:
resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
engines: {node: '>=8'}
@@ -2402,9 +2483,9 @@ packages:
devlop@1.1.0:
resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
- diff-sequences@27.5.1:
- resolution: {integrity: sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==}
- engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+ diff-sequences@29.6.3:
+ resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dunder-proto@1.0.1:
resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
@@ -2413,9 +2494,6 @@ packages:
duplexer@0.1.2:
resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
- eastasianwidth@0.2.0:
- resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
-
ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
@@ -2424,42 +2502,29 @@ packages:
engines: {node: '>=0.10.0'}
hasBin: true
- electron-to-chromium@1.5.267:
- resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==}
-
- emoji-regex@10.6.0:
- resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==}
-
- emoji-regex@8.0.0:
- resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+ electron-to-chromium@1.5.399:
+ resolution: {integrity: sha512-lEcqhErbHjXRvd41rnWLpzbyU/IXfIYo7QwaFWmxGeLiLyY2TBCdHnWY88vB+p3ubnihRypDm66panXl7TylLA==}
- emoji-regex@9.2.2:
- resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
-
- empathic@2.0.0:
- resolution: {integrity: sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==}
+ empathic@2.0.1:
+ resolution: {integrity: sha512-YGRs8knHhKHVShLkFET/rWAU8kmHbOV5LwN938RHI0pljAJ1Gf6SzXsSmRaEzcXTtOOmVqJ5+WtQPL5uigY50Q==}
engines: {node: '>=14'}
encodeurl@2.0.0:
resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
engines: {node: '>= 0.8'}
- enhanced-resolve@5.18.4:
- resolution: {integrity: sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==}
+ enhanced-resolve@5.20.1:
+ resolution: {integrity: sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==}
engines: {node: '>=10.13.0'}
entities@4.5.0:
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
engines: {node: '>=0.12'}
- entities@7.0.0:
- resolution: {integrity: sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ==}
+ entities@7.0.1:
+ resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==}
engines: {node: '>=0.12'}
- environment@1.1.0:
- resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==}
- engines: {node: '>=18'}
-
es-abstract@1.24.1:
resolution: {integrity: sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==}
engines: {node: '>= 0.4'}
@@ -2472,8 +2537,8 @@ packages:
resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
engines: {node: '>= 0.4'}
- es-module-lexer@1.7.0:
- resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==}
+ es-module-lexer@2.0.0:
+ resolution: {integrity: sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==}
es-object-atoms@1.1.1:
resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
@@ -2487,8 +2552,8 @@ packages:
resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
engines: {node: '>= 0.4'}
- esbuild@0.27.2:
- resolution: {integrity: sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==}
+ esbuild@0.28.1:
+ resolution: {integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==}
engines: {node: '>=18'}
hasBin: true
@@ -2499,10 +2564,6 @@ packages:
escape-html@1.0.3:
resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
- escape-string-regexp@1.0.5:
- resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
- engines: {node: '>=0.8.0'}
-
escape-string-regexp@4.0.0:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: '>=10'}
@@ -2517,27 +2578,26 @@ packages:
peerDependencies:
eslint: '>=6.0.0'
- eslint-compat-utils@0.6.5:
- resolution: {integrity: sha512-vAUHYzue4YAa2hNACjB8HvUQj5yehAZgiClyFVVom9cP8z5NSFq3PwB/TtJslN2zAMgRX6FCFCjYBbQh71g5RQ==}
- engines: {node: '>=12'}
+ eslint-config-flat-gitignore@2.3.0:
+ resolution: {integrity: sha512-bg4ZLGgoARg1naWfsINUUb/52Ksw/K22K+T16D38Y8v+/sGwwIYrGvH/JBjOin+RQtxxC9tzNNiy4shnGtGyyQ==}
peerDependencies:
- eslint: '>=6.0.0'
+ eslint: ^9.5.0 || ^10.0.0
- eslint-config-flat-gitignore@2.1.0:
- resolution: {integrity: sha512-cJzNJ7L+psWp5mXM7jBX+fjHtBvvh06RBlcweMhKD8jWqQw0G78hOW5tpVALGHGFPsBV+ot2H+pdDGJy6CV8pA==}
+ eslint-factory@0.1.2:
+ resolution: {integrity: sha512-0APUA89aVVxJ0BnP84Wbg1dx9co9ZixotdKjO0S0jz6uq51ev2JBNXpeu5do9oasEc9dn+v7wywUA2WBbmB/RA==}
peerDependencies:
- eslint: ^9.5.0
+ eslint: ^9.0.0
- eslint-flat-config-utils@2.1.4:
- resolution: {integrity: sha512-bEnmU5gqzS+4O+id9vrbP43vByjF+8KOs+QuuV4OlqAuXmnRW2zfI/Rza1fQvdihQ5h4DUo0NqFAiViD4mSrzQ==}
+ eslint-flat-config-utils@3.2.0:
+ resolution: {integrity: sha512-PHgo1X5uqIorJONLVD9BIaOSdoYFD3z/AeJljdqDPlWVRpeCYkDbK9k0AXoYVqqNJr6FEYIEr5Rm2TSktLQcHw==}
- eslint-json-compat-utils@0.2.1:
- resolution: {integrity: sha512-YzEodbDyW8DX8bImKhAcCeu/L31Dd/70Bidx2Qex9OFUtgzXLqtfWL4Hr5fM/aCCB8QUZLuJur0S9k6UfgFkfg==}
+ eslint-json-compat-utils@0.2.3:
+ resolution: {integrity: sha512-RbBmDFyu7FqnjE8F0ZxPNzx5UaptdeS9Uu50r7A+D7s/+FCX+ybiyViYEgFUaFIFqSWJgZRTpL5d8Kanxxl2lQ==}
engines: {node: '>=12'}
peerDependencies:
'@eslint/json': '*'
eslint: '*'
- jsonc-eslint-parser: ^2.4.0
+ jsonc-eslint-parser: ^2.4.0 || ^3.0.0
peerDependenciesMeta:
'@eslint/json':
optional: true
@@ -2547,14 +2607,16 @@ packages:
peerDependencies:
eslint: '*'
- eslint-plugin-antfu@3.1.3:
- resolution: {integrity: sha512-Az1QuqQJ/c2efWCxVxF249u3D4AcAu1Y3VCGAlJm+x4cgnn1ybUAnCT5DWVcogeaWduQKeVw07YFydVTOF4xDw==}
+ eslint-plugin-antfu@3.2.3:
+ resolution: {integrity: sha512-U2fnz/H0gFPxpuC7QpaHa0Jv2AgCZ5hunp36SOP/yWo8yFzgvMh8X4pZ4uN4IKoqtBhk7G3HuVa93Urf51+sZg==}
peerDependencies:
eslint: '*'
- eslint-plugin-command@3.4.0:
- resolution: {integrity: sha512-EW4eg/a7TKEhG0s5IEti72kh3YOTlnhfFNuctq5WnB1fst37/IHTd5OkD+vnlRf3opTvUcSRihAateP6bT5ZcA==}
+ eslint-plugin-command@3.5.3:
+ resolution: {integrity: sha512-JIhmUOW2K2Dw1K+p4mtj5potkqTZ4ZaicrTkgCygPZCWErP2+O2F46n7ZwGKapeEjiwcVqoY8u01SxNUUXWPeQ==}
peerDependencies:
+ '@typescript-eslint/typescript-estree': '*'
+ '@typescript-eslint/utils': '*'
eslint: '*'
eslint-plugin-es-x@7.8.0:
@@ -2563,95 +2625,98 @@ packages:
peerDependencies:
eslint: '>=8'
- eslint-plugin-import-lite@0.4.0:
- resolution: {integrity: sha512-My0ReAg8WbHXYECIHVJkWB8UxrinZn3m72yonOYH6MFj40ZN1vHYQj16iq2Fd8Wrt/vRZJwDX2xm/BzDk1FzTg==}
+ eslint-plugin-import-lite@0.6.0:
+ resolution: {integrity: sha512-80vevx2A7i3H7n1/6pqDO8cc5wRz6OwLDvIyVl9UflBV1N1f46e9Ihzi65IOLYoSxM6YykK2fTw1xm0Ixx6aTQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- eslint: '>=9.0.0'
- typescript: '>=4.5'
- peerDependenciesMeta:
- typescript:
- optional: true
+ eslint: ^9.0.0 || ^10.0.0
- eslint-plugin-jsdoc@61.7.1:
- resolution: {integrity: sha512-36DpldF95MlTX//n3/naULFVt8d1cV4jmSkx7ZKrE9ikkKHAgMLesuWp1SmwpVwAs5ndIM6abKd6PeOYZUgdWg==}
- engines: {node: '>=20.11.0'}
+ eslint-plugin-jsdoc@63.3.2:
+ resolution: {integrity: sha512-5B3oO23iqbNJC/ru7uqIY80wmY66De1Q0+5kXQGHuLrGze/rL0Zw/YktMcqgYQ+kdHmgvY1q5TpRgl3yZMLmhQ==}
+ engines: {node: ^22.13.0 || >=24}
peerDependencies:
- eslint: ^7.0.0 || ^8.0.0 || ^9.0.0
+ eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0
- eslint-plugin-jsonc@2.21.0:
- resolution: {integrity: sha512-HttlxdNG5ly3YjP1cFMP62R4qKLxJURfBZo2gnMY+yQojZxkLyOpY1H1KRTKBmvQeSG9pIpSGEhDjE17vvYosg==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ eslint-plugin-jsonc@3.3.0:
+ resolution: {integrity: sha512-CsTR8aDcShDg6A71ZppLaWiPoSo2J1Ivjm5/c4Mnb9sxgwWq+WG2PgeoAnj7SwzDPJB75tlHvLrGy6ntooIitg==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
peerDependencies:
- eslint: '>=6.0.0'
+ eslint: '>=9.38.0'
- eslint-plugin-n@17.23.1:
- resolution: {integrity: sha512-68PealUpYoHOBh332JLLD9Sj7OQUDkFpmcfqt8R9sySfFSeuGJjMTJQvCRRB96zO3A/PELRLkPrzsHmzEFQQ5A==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ eslint-plugin-n@18.2.2:
+ resolution: {integrity: sha512-gOO0lIqwEjZ750kv9/SptCWArUoAZXJoBr0vYWTO2dCBxctHUXlBIigiC8xuxxr/NKqgIT6Ehz1xRcilj8a5cA==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
peerDependencies:
- eslint: '>=8.23.0'
+ eslint: '>=8.57.1'
+ ts-declaration-location: ^1.0.6
+ typescript: '>=5.0.0'
+ peerDependenciesMeta:
+ ts-declaration-location:
+ optional: true
+ typescript:
+ optional: true
- eslint-plugin-no-only-tests@3.3.0:
- resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==}
+ eslint-plugin-no-only-tests@3.4.0:
+ resolution: {integrity: sha512-4S3/9Nb7A2tiMcpzEQE9bQSlpeOz6WJkgryBuou/SA8W2x2c8Zf4j0NvTKBjv6qNhF9T79tmkecm/0CHqV0UGg==}
engines: {node: '>=5.0.0'}
- eslint-plugin-perfectionist@4.15.1:
- resolution: {integrity: sha512-MHF0cBoOG0XyBf7G0EAFCuJJu4I18wy0zAoT1OHfx2o6EOx1EFTIzr2HGeuZa1kDcusoX0xJ9V7oZmaeFd773Q==}
- engines: {node: ^18.0.0 || >=20.0.0}
+ eslint-plugin-perfectionist@5.10.0:
+ resolution: {integrity: sha512-HiqpDrUDbGrMC6iHQbemgDyHJ0366Vyz/qRWmxQcSAkmG25cXr8BdRgx8yAhOKhEfBXn8Rnf/mTCsV4EqUJSxg==}
+ engines: {node: ^20.0.0 || >=22.0.0}
peerDependencies:
- eslint: '>=8.45.0'
+ eslint: ^8.45.0 || ^9.0.0 || ^10.0.0
- eslint-plugin-pnpm@1.4.3:
- resolution: {integrity: sha512-wdWrkWN5mxRgEADkQvxwv0xA+0++/hYDD5OyXTL6UqPLUPdcCFQJO61NO7IKhEqb3GclWs02OoFs1METN+a3zQ==}
+ eslint-plugin-pnpm@1.7.0:
+ resolution: {integrity: sha512-SZaPARN1+NMqAjQOlQjHu59SnN/o299N5Z4HTyhwWYnfkQkjdiydayHBegwXER3VecRF/Rf7eHw3sGcTF+uLOQ==}
peerDependencies:
- eslint: ^9.0.0
+ eslint: ^9.0.0 || ^10.0.0
- eslint-plugin-regexp@2.10.0:
- resolution: {integrity: sha512-ovzQT8ESVn5oOe5a7gIDPD5v9bCSjIFJu57sVPDqgPRXicQzOnYfFN21WoQBQF18vrhT5o7UMKFwJQVVjyJ0ng==}
- engines: {node: ^18 || >=20}
+ eslint-plugin-regexp@3.1.1:
+ resolution: {integrity: sha512-MxR5nqoQCtVWmJwia0D2+NlXX1xzdpkslsVOZLEYQ4PQWEaL65PCZXURxaBc3lPnkNFpNxzMIRmYVxdl8giXRA==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
peerDependencies:
- eslint: '>=8.44.0'
+ eslint: '>=9.38.0'
- eslint-plugin-toml@0.12.0:
- resolution: {integrity: sha512-+/wVObA9DVhwZB1nG83D2OAQRrcQZXy+drqUnFJKymqnmbnbfg/UPmEMCKrJNcEboUGxUjYrJlgy+/Y930mURQ==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ eslint-plugin-toml@1.5.0:
+ resolution: {integrity: sha512-qBjRywEkKxO2uYOjus//6GVF1r+Hg5QDkRO8RTY6XcaXgWfBU0DhwpFmJa2Ljf0Sz49r7DdZlpKwwHmJ4nmH1Q==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
peerDependencies:
- eslint: '>=6.0.0'
+ eslint: '>=9.38.0'
- eslint-plugin-unicorn@62.0.0:
- resolution: {integrity: sha512-HIlIkGLkvf29YEiS/ImuDZQbP12gWyx5i3C6XrRxMvVdqMroCI9qoVYCoIl17ChN+U89pn9sVwLxhIWj5nEc7g==}
- engines: {node: ^20.10.0 || >=21.0.0}
+ eslint-plugin-unicorn@72.0.0:
+ resolution: {integrity: sha512-hqO6ksoOHO+ZhdseTuKRVQbx9U7PRO/cv8qAR1mctwzdVO2hYud8uS9luAhp43RJgziYgHAph8eHyipT8GL0ng==}
+ engines: {node: '>=22'}
peerDependencies:
- eslint: '>=9.38.0'
+ eslint: '>=10.4'
- eslint-plugin-unused-imports@4.3.0:
- resolution: {integrity: sha512-ZFBmXMGBYfHttdRtOG9nFFpmUvMtbHSjsKrS20vdWdbfiVYsO3yA2SGYy9i9XmZJDfMGBflZGBCm70SEnFQtOA==}
+ eslint-plugin-unused-imports@4.4.1:
+ resolution: {integrity: sha512-oZGYUz1X3sRMGUB+0cZyK2VcvRX5lm/vB56PgNNcU+7ficUCKm66oZWKUubXWnOuPjQ8PvmXtCViXBMONPe7tQ==}
peerDependencies:
'@typescript-eslint/eslint-plugin': ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0
- eslint: ^9.0.0 || ^8.0.0
+ eslint: ^10.0.0 || ^9.0.0 || ^8.0.0
peerDependenciesMeta:
'@typescript-eslint/eslint-plugin':
optional: true
- eslint-plugin-vue@10.6.2:
- resolution: {integrity: sha512-nA5yUs/B1KmKzvC42fyD0+l9Yd+LtEpVhWRbXuDj0e+ZURcTtyRbMDWUeJmTAh2wC6jC83raS63anNM2YT3NPw==}
+ eslint-plugin-vue@10.10.0:
+ resolution: {integrity: sha512-dL9x9rBHqqNcByWiLOHK6L0SB97V82/NC0cZRn9cXPjM7pCuWlpQQP9bFH4vjBv80ej1ZpzAkuD8zWH1o9bZbA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
'@stylistic/eslint-plugin': ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0
'@typescript-eslint/parser': ^7.0.0 || ^8.0.0
- eslint: ^8.57.0 || ^9.0.0
- vue-eslint-parser: ^10.0.0
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+ vue-eslint-parser: ^10.3.0
peerDependenciesMeta:
'@stylistic/eslint-plugin':
optional: true
'@typescript-eslint/parser':
optional: true
- eslint-plugin-yml@1.19.1:
- resolution: {integrity: sha512-bYkOxyEiXh9WxUhVYPELdSHxGG5pOjCSeJOVkfdIyj6tuiHDxrES2WAW1dBxn3iaZQey57XflwLtCYRcNPOiOg==}
- engines: {node: ^14.17.0 || >=16.0.0}
+ eslint-plugin-yml@3.7.0:
+ resolution: {integrity: sha512-cLkVHdBHyRifThJA3ufuEW+imPRO7rHBQXdWgthouY6qEapUw8/0zW6V8NcMEGWzuMykc/ITYl6AuhZLPzI+fw==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24.0.0}
peerDependencies:
- eslint: '>=6.0.0'
+ eslint: '>=9.38.0'
eslint-processor-vue-blocks@2.0.0:
resolution: {integrity: sha512-u4W0CJwGoWY3bjXAuFpc/b6eK3NQEI8MoeW7ritKj3G3z/WtHrKjkqf+wk8mPEy5rlMGS+k6AZYOw2XBoN/02Q==}
@@ -2659,9 +2724,9 @@ packages:
'@vue/compiler-sfc': ^3.3.0
eslint: '>=9.0.0'
- eslint-scope@8.4.0:
- resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ eslint-scope@9.1.2:
+ resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
eslint-visitor-keys@3.4.3:
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
@@ -2671,13 +2736,13 @@ packages:
resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- eslint-visitor-keys@5.0.0:
- resolution: {integrity: sha512-A0XeIi7CXU7nPlfHS9loMYEKxUaONu/hTEzHTGba9Huu94Cq1hPivf+DE5erJozZOky0LfvXAyrV/tcswpLI0Q==}
+ eslint-visitor-keys@5.0.1:
+ resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- eslint@9.39.2:
- resolution: {integrity: sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ eslint@10.8.0:
+ resolution: {integrity: sha512-nuKKvN+oIBO0koN7Tm7dlkmnkc21mtt0QJLwAKzjLq14y6lRTdVG36MZHJ8eQHwdJMwZbQNMlPOYedMq/oVJvQ==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
hasBin: true
peerDependencies:
jiti: '*'
@@ -2689,19 +2754,10 @@ packages:
resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- espree@11.0.0:
- resolution: {integrity: sha512-+gMeWRrIh/NsG+3NaLeWHuyeyk70p2tbvZIWBYcqQ4/7Xvars6GYTZNhF1sIeLcc6Wb11He5ffz3hsHyXFrw5A==}
+ espree@11.2.0:
+ resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- espree@9.6.1:
- resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-
- esprima@4.0.1:
- resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
- engines: {node: '>=4'}
- hasBin: true
-
esquery@1.7.0:
resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==}
engines: {node: '>=0.10'}
@@ -2731,13 +2787,6 @@ packages:
resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
engines: {node: '>= 0.6'}
- eventemitter3@5.0.1:
- resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
-
- eventsource-parser@3.0.6:
- resolution: {integrity: sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==}
- engines: {node: '>=18.0.0'}
-
expect-type@1.3.0:
resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==}
engines: {node: '>=12.0.0'}
@@ -2749,13 +2798,6 @@ packages:
exsolve@1.0.8:
resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==}
- extend-shallow@2.0.1:
- resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
- engines: {node: '>=0.10.0'}
-
- extend@3.0.2:
- resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
-
fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
@@ -2765,9 +2807,18 @@ packages:
fast-levenshtein@2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+ fast-string-truncated-width@3.0.3:
+ resolution: {integrity: sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==}
+
+ fast-string-width@3.0.2:
+ resolution: {integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==}
+
fast-uri@3.1.0:
resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==}
+ fast-wrap-ansi@0.2.2:
+ resolution: {integrity: sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==}
+
fault@2.0.1:
resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==}
@@ -2784,12 +2835,8 @@ packages:
resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
engines: {node: '>=16.0.0'}
- filelist@1.0.4:
- resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
-
- fill-range@7.1.1:
- resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
- engines: {node: '>=8'}
+ filelist@1.0.6:
+ resolution: {integrity: sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==}
finalhandler@1.3.2:
resolution: {integrity: sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==}
@@ -2807,8 +2854,8 @@ packages:
resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
engines: {node: '>=16'}
- flatted@3.3.3:
- resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
+ flatted@3.4.2:
+ resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==}
floating-vue@5.2.2:
resolution: {integrity: sha512-afW+h2CFafo+7Y9Lvw/xsqjaQlKLdJV7h1fCHfcYQ1C4SVMlu7OAekqWgu5d4SgvkBVU0pVpLlVsrSTBURFRkg==}
@@ -2819,8 +2866,8 @@ packages:
'@nuxt/kit':
optional: true
- focus-trap@7.7.1:
- resolution: {integrity: sha512-Pkp8m55GjxBLnhBoT6OXdMvfRr4TjMAKLvFM566zlIryq5plbhaTmLAJWTGR0EkRwLjEte1lCOG9MxF1ipJrOg==}
+ focus-trap@8.2.2:
+ resolution: {integrity: sha512-qV0g8hRYBqgACcFOH3f9wXc4zPKhr/0z9RI2a6ZijZ72EeBi4g8oBy8zAWuUR1TsMpOzwpUMFvjdasrC41Joug==}
for-each@0.3.5:
resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
@@ -2854,6 +2901,10 @@ packages:
function-bind@1.1.2:
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+ function-timeout@1.0.2:
+ resolution: {integrity: sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA==}
+ engines: {node: '>=18'}
+
function.prototype.name@1.1.8:
resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==}
engines: {node: '>= 0.4'}
@@ -2872,14 +2923,6 @@ packages:
resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
engines: {node: '>=6.9.0'}
- get-caller-file@2.0.5:
- resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
- engines: {node: 6.* || 8.* || >= 10.*}
-
- get-east-asian-width@1.4.0:
- resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==}
- engines: {node: '>=18'}
-
get-intrinsic@1.3.0:
resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
engines: {node: '>= 0.4'}
@@ -2895,8 +2938,8 @@ packages:
resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
engines: {node: '>= 0.4'}
- get-tsconfig@4.13.0:
- resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==}
+ get-tsconfig@4.13.6:
+ resolution: {integrity: sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==}
github-slugger@2.0.0:
resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==}
@@ -2908,22 +2951,15 @@ packages:
glob@11.1.0:
resolution: {integrity: sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==}
engines: {node: 20 || >=22}
+ deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
hasBin: true
- globals@11.12.0:
- resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
- engines: {node: '>=4'}
-
- globals@14.0.0:
- resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
- engines: {node: '>=18'}
-
globals@15.15.0:
resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==}
engines: {node: '>=18'}
- globals@16.5.0:
- resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==}
+ globals@17.9.0:
+ resolution: {integrity: sha512-m/MvAW61QVU5VDNF1Vj8axt016h8w7L5TU1e9zlab7XIttAT2YAlCwl75K1fOqvMM9apmD7lbCIRhpfkhmxhCg==}
engines: {node: '>=18'}
globalthis@1.0.4:
@@ -2940,13 +2976,6 @@ packages:
graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
- graphemer@1.4.0:
- resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
-
- gray-matter@4.0.3:
- resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==}
- engines: {node: '>=6.0'}
-
gzip-size@6.0.0:
resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
engines: {node: '>=10'}
@@ -2958,10 +2987,6 @@ packages:
resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==}
engines: {node: '>= 0.4'}
- has-flag@4.0.0:
- resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
- engines: {node: '>=8'}
-
has-property-descriptors@1.0.2:
resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
@@ -2993,9 +3018,6 @@ packages:
hpack.js@2.1.6:
resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==}
- htm@3.1.1:
- resolution: {integrity: sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ==}
-
html-entities@2.6.0:
resolution: {integrity: sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==}
@@ -3023,6 +3045,10 @@ packages:
idb@7.1.1:
resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==}
+ identifier-regex@1.1.0:
+ resolution: {integrity: sha512-SLX4H/vtcYlYnL7XqnuJKHU7Z8517TgsW9nmQiGOgMCjQ8V/deLYu6bEmbGoXe7WMMhc9+EUGyFFneHja8KabA==}
+ engines: {node: '>=18'}
+
ignore@5.3.2:
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
engines: {node: '>= 4'}
@@ -3031,9 +3057,8 @@ packages:
resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
engines: {node: '>= 4'}
- import-fresh@3.3.1:
- resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
- engines: {node: '>=6'}
+ import-meta-resolve@4.2.0:
+ resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==}
imurmurhash@0.1.4:
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
@@ -3093,10 +3118,6 @@ packages:
resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==}
engines: {node: '>= 0.4'}
- is-extendable@0.1.1:
- resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
- engines: {node: '>=0.10.0'}
-
is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
@@ -3105,14 +3126,6 @@ packages:
resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==}
engines: {node: '>= 0.4'}
- is-fullwidth-code-point@3.0.0:
- resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
- engines: {node: '>=8'}
-
- is-fullwidth-code-point@5.1.0:
- resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==}
- engines: {node: '>=18'}
-
is-generator-function@1.1.2:
resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==}
engines: {node: '>= 0.4'}
@@ -3121,6 +3134,10 @@ packages:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
+ is-identifier@1.1.0:
+ resolution: {integrity: sha512-NhOds0mDx9lJu+1lBRO0xbwFo5nobA7GCk/0e5xjr6+6XugX985+0OyGX35BNrTkPAsdLcIKg02HUQJOK8D8kw==}
+ engines: {node: '>=18'}
+
is-map@2.0.3:
resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
engines: {node: '>= 0.4'}
@@ -3136,18 +3153,10 @@ packages:
resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==}
engines: {node: '>= 0.4'}
- is-number@7.0.0:
- resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
- engines: {node: '>=0.12.0'}
-
is-obj@1.0.1:
resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==}
engines: {node: '>=0.10.0'}
- is-plain-obj@4.1.0:
- resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
- engines: {node: '>=12'}
-
is-regex@1.2.1:
resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
engines: {node: '>= 0.4'}
@@ -3192,10 +3201,6 @@ packages:
resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==}
engines: {node: '>= 0.4'}
- is-what@5.5.0:
- resolution: {integrity: sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw==}
- engines: {node: '>=18'}
-
isarray@1.0.0:
resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
@@ -3205,8 +3210,8 @@ packages:
isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
- jackspeak@4.1.1:
- resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==}
+ jackspeak@4.2.3:
+ resolution: {integrity: sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==}
engines: {node: 20 || >=22}
jake@10.9.4:
@@ -3221,20 +3226,16 @@ packages:
js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
- js-yaml@3.14.2:
- resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==}
- hasBin: true
-
- js-yaml@4.1.1:
- resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==}
- hasBin: true
+ jsdoc-type-pratt-parser@7.1.1:
+ resolution: {integrity: sha512-/2uqY7x6bsrpi3i9LVU6J89352C0rpMk0as8trXxCtvd4kPk1ke/Eyif6wqfSLvoNJqcDG9Vk4UsXgygzCt2xA==}
+ engines: {node: '>=20.0.0'}
- jsdoc-type-pratt-parser@4.8.0:
- resolution: {integrity: sha512-iZ8Bdb84lWRuGHamRXFyML07r21pcwBrLkHEuHgEY5UbCouBwv7ECknDRKzsQIXMiqpPymqtIf8TC/shYKB5rw==}
- engines: {node: '>=12.0.0'}
+ jsdoc-type-pratt-parser@7.2.0:
+ resolution: {integrity: sha512-dh140MMgjyg3JhJZY/+iEzW+NO5xR2gpbDFKHqotCmexElVntw7GjWjt511+C/Ef02RU5TKYrJo/Xlzk+OLaTw==}
+ engines: {node: '>=20.0.0'}
- jsdoc-type-pratt-parser@7.0.0:
- resolution: {integrity: sha512-c7YbokssPOSHmqTbSAmTtnVgAVa/7lumWNYqomgd5KOMyPrRve2anx6lonfOsXEQacqF9FKVUj7bLg4vRSvdYA==}
+ jsdoc-type-pratt-parser@8.0.0:
+ resolution: {integrity: sha512-uQu/fXVqVaMg6gM8/E5G5+eygVcZ1NV0Z51CvqhNa2bDWxvHMl484ETr6vph4oPyC+KUcbP/w2W2pewfCiR9aQ==}
engines: {node: '>=20.0.0'}
jsesc@3.1.0:
@@ -3262,9 +3263,9 @@ packages:
engines: {node: '>=6'}
hasBin: true
- jsonc-eslint-parser@2.4.2:
- resolution: {integrity: sha512-1e4qoRgnn448pRuMvKGsFFymUCquZV0mpGgOyIKNgD3JVDTsVJyRBGH/Fm0tBb8WsWGgmB1mDe6/yJMQM37DUA==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ jsonc-eslint-parser@3.1.0:
+ resolution: {integrity: sha512-75EA7EWZExL/j+MDKQrRbdzcRI2HOkRlmUw8fZJc1ioqFEOvBsq7Rt+A6yCxOt9w/TYNpkt52gC6nm/g5tFIng==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
jsonfile@6.2.0:
resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==}
@@ -3273,13 +3274,13 @@ packages:
resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==}
engines: {node: '>=0.10.0'}
+ katex@0.16.47:
+ resolution: {integrity: sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg==}
+ hasBin: true
+
keyv@4.5.4:
resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
- kind-of@6.0.3:
- resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
- engines: {node: '>=0.10.0'}
-
leven@3.1.0:
resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
engines: {node: '>=6'}
@@ -3288,90 +3289,156 @@ packages:
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
engines: {node: '>= 0.8.0'}
- lightningcss-android-arm64@1.30.2:
- resolution: {integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==}
+ lightningcss-android-arm64@1.31.1:
+ resolution: {integrity: sha512-HXJF3x8w9nQ4jbXRiNppBCqeZPIAfUo8zE/kOEGbW5NZvGc/K7nMxbhIr+YlFlHW5mpbg/YFPdbnCh1wAXCKFg==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [android]
- lightningcss-darwin-arm64@1.30.2:
- resolution: {integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==}
+ lightningcss-android-arm64@1.33.0:
+ resolution: {integrity: sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [android]
+
+ lightningcss-darwin-arm64@1.31.1:
+ resolution: {integrity: sha512-02uTEqf3vIfNMq3h/z2cJfcOXnQ0GRwQrkmPafhueLb2h7mqEidiCzkE4gBMEH65abHRiQvhdcQ+aP0D0g67sg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ lightningcss-darwin-arm64@1.33.0:
+ resolution: {integrity: sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [darwin]
- lightningcss-darwin-x64@1.30.2:
- resolution: {integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==}
+ lightningcss-darwin-x64@1.31.1:
+ resolution: {integrity: sha512-1ObhyoCY+tGxtsz1lSx5NXCj3nirk0Y0kB/g8B8DT+sSx4G9djitg9ejFnjb3gJNWo7qXH4DIy2SUHvpoFwfTA==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [darwin]
- lightningcss-freebsd-x64@1.30.2:
- resolution: {integrity: sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==}
+ lightningcss-darwin-x64@1.33.0:
+ resolution: {integrity: sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ lightningcss-freebsd-x64@1.31.1:
+ resolution: {integrity: sha512-1RINmQKAItO6ISxYgPwszQE1BrsVU5aB45ho6O42mu96UiZBxEXsuQ7cJW4zs4CEodPUioj/QrXW1r9pLUM74A==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+
+ lightningcss-freebsd-x64@1.33.0:
+ resolution: {integrity: sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [freebsd]
- lightningcss-linux-arm-gnueabihf@1.30.2:
- resolution: {integrity: sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==}
+ lightningcss-linux-arm-gnueabihf@1.31.1:
+ resolution: {integrity: sha512-OOCm2//MZJ87CdDK62rZIu+aw9gBv4azMJuA8/KB74wmfS3lnC4yoPHm0uXZ/dvNNHmnZnB8XLAZzObeG0nS1g==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm]
+ os: [linux]
+
+ lightningcss-linux-arm-gnueabihf@1.33.0:
+ resolution: {integrity: sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm]
+ os: [linux]
+
+ lightningcss-linux-arm64-gnu@1.31.1:
+ resolution: {integrity: sha512-WKyLWztD71rTnou4xAD5kQT+982wvca7E6QoLpoawZ1gP9JM0GJj4Tp5jMUh9B3AitHbRZ2/H3W5xQmdEOUlLg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+
+ lightningcss-linux-arm64-gnu@1.33.0:
+ resolution: {integrity: sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+
+ lightningcss-linux-arm64-musl@1.31.1:
+ resolution: {integrity: sha512-mVZ7Pg2zIbe3XlNbZJdjs86YViQFoJSpc41CbVmKBPiGmC4YrfeOyz65ms2qpAobVd7WQsbW4PdsSJEMymyIMg==}
engines: {node: '>= 12.0.0'}
- cpu: [arm]
+ cpu: [arm64]
os: [linux]
- lightningcss-linux-arm64-gnu@1.30.2:
- resolution: {integrity: sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==}
+ lightningcss-linux-arm64-musl@1.33.0:
+ resolution: {integrity: sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [linux]
- lightningcss-linux-arm64-musl@1.30.2:
- resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==}
+ lightningcss-linux-x64-gnu@1.31.1:
+ resolution: {integrity: sha512-xGlFWRMl+0KvUhgySdIaReQdB4FNudfUTARn7q0hh/V67PVGCs3ADFjw+6++kG1RNd0zdGRlEKa+T13/tQjPMA==}
engines: {node: '>= 12.0.0'}
- cpu: [arm64]
+ cpu: [x64]
+ os: [linux]
+
+ lightningcss-linux-x64-gnu@1.33.0:
+ resolution: {integrity: sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
os: [linux]
- lightningcss-linux-x64-gnu@1.30.2:
- resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==}
+ lightningcss-linux-x64-musl@1.31.1:
+ resolution: {integrity: sha512-eowF8PrKHw9LpoZii5tdZwnBcYDxRw2rRCyvAXLi34iyeYfqCQNA9rmUM0ce62NlPhCvof1+9ivRaTY6pSKDaA==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [linux]
- lightningcss-linux-x64-musl@1.30.2:
- resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==}
+ lightningcss-linux-x64-musl@1.33.0:
+ resolution: {integrity: sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [linux]
- lightningcss-win32-arm64-msvc@1.30.2:
- resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==}
+ lightningcss-win32-arm64-msvc@1.31.1:
+ resolution: {integrity: sha512-aJReEbSEQzx1uBlQizAOBSjcmr9dCdL3XuC/6HLXAxmtErsj2ICo5yYggg1qOODQMtnjNQv2UHb9NpOuFtYe4w==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [win32]
- lightningcss-win32-x64-msvc@1.30.2:
- resolution: {integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==}
+ lightningcss-win32-arm64-msvc@1.33.0:
+ resolution: {integrity: sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
+ lightningcss-win32-x64-msvc@1.31.1:
+ resolution: {integrity: sha512-I9aiFrbd7oYHwlnQDqr1Roz+fTz61oDDJX7n9tYF9FJymH1cIN1DtKw3iYt6b8WZgEjoNwVSncwF4wx/ZedMhw==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [win32]
- lightningcss@1.30.2:
- resolution: {integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==}
+ lightningcss-win32-x64-msvc@1.33.0:
+ resolution: {integrity: sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==}
engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [win32]
- linkify-it@5.0.0:
- resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==}
+ lightningcss@1.31.1:
+ resolution: {integrity: sha512-l51N2r93WmGUye3WuFoN5k10zyvrVs0qfKBhyC5ogUQ6Ew6JUSswh78mbSO+IU3nTWsyOArqPCcShdQSadghBQ==}
+ engines: {node: '>= 12.0.0'}
- lint-staged@16.2.7:
- resolution: {integrity: sha512-lDIj4RnYmK7/kXMya+qJsmkRFkGolciXjrsZ6PC25GdTfWOAWetR0ZbsNXRAj1EHHImRSalc+whZFg56F5DVow==}
- engines: {node: '>=20.17'}
- hasBin: true
+ lightningcss@1.33.0:
+ resolution: {integrity: sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==}
+ engines: {node: '>= 12.0.0'}
- listr2@9.0.5:
- resolution: {integrity: sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==}
- engines: {node: '>=20.0.0'}
+ linkify-it@5.0.2:
+ resolution: {integrity: sha512-ONTm2jCMAVZjgQa/Fy1kScXsuOoF5NPTsoFBdE1KVIZ2vAh/r9+Bqo+0jINCBYnavTPQZz38QzFTme79ENoN3Q==}
+
+ lint-staged@17.3.0:
+ resolution: {integrity: sha512-woZS3vNe3UKqBaLPvbLOtKRY4tLANpWQhom12MGWqC8Mh1lCOO+WgSwmX2amjJAqTY9BkXYW87fCUH5H9Ph6xw==}
+ engines: {node: '>=22.22.1'}
+ hasBin: true
- local-pkg@1.1.2:
- resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==}
+ local-pkg@1.2.1:
+ resolution: {integrity: sha512-++gUqRDEvcnN6Zhqrr+y/CkVEHhlrR96vZn3nZZPYzMcBUyBtTKzB9NadClFIsIVSsu+3i9tfk/erqy9kAmt7Q==}
engines: {node: '>=14'}
locate-path@6.0.0:
@@ -3381,24 +3448,17 @@ packages:
lodash.debounce@4.0.8:
resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
- lodash.merge@4.6.2:
- resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
-
lodash.sortby@4.7.0:
resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==}
- lodash@4.17.21:
- resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
-
- log-update@6.1.0:
- resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==}
- engines: {node: '>=18'}
+ lodash@4.17.23:
+ resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==}
longest-streak@3.1.0:
resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
- lru-cache@11.2.4:
- resolution: {integrity: sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==}
+ lru-cache@11.2.7:
+ resolution: {integrity: sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==}
engines: {node: 20 || >=22}
lru-cache@5.1.1:
@@ -3408,31 +3468,32 @@ packages:
resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
hasBin: true
+ magic-regexp@0.10.0:
+ resolution: {integrity: sha512-Uly1Bu4lO1hwHUW0CQeSWuRtzCMNO00CmXtS8N6fyvB3B979GOEEeAkiTUDsmbYLAbvpUS/Kt5c4ibosAzVyVg==}
+
magic-string@0.25.9:
resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==}
magic-string@0.30.21:
resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
+ magic-string@1.1.0:
+ resolution: {integrity: sha512-kS3VHe0nEPST2saQV4Rbkchcd3UBRkVTQHo1D3h/ZTwFDhai/mfKkmtPAtD129EOI7K3HlHIsFOt0WrI2/oU9g==}
+
+ make-asynchronous@1.1.0:
+ resolution: {integrity: sha512-ayF7iT+44LXdxJLTrTd3TLQpFDDvPCBxXxbv+pMUSuHA5Q8zyAfwkRP6aHHwNVFBUFWtxAHqwNJxF8vMZLAbVg==}
+ engines: {node: '>=18'}
+
mark.js@8.11.1:
resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==}
- markdown-it@14.1.0:
- resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==}
+ markdown-it@14.3.0:
+ resolution: {integrity: sha512-RCEsPjR+sr0x+AuYp601tKTkgFG4YEPLCzHST3cQ/fhlJkqAkz1L2/Qbp1j9qw5SBwQHFBoW8+hoN5xssOF0Tw==}
hasBin: true
markdown-table@3.0.4:
resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==}
- markdown-title@1.0.2:
- resolution: {integrity: sha512-MqIQVVkz+uGEHi3TsHx/czcxxCbRIL7sv5K5DnYw/tI+apY54IbPefV/cmgxp6LoJSEx/TqcHdLs/298afG5QQ==}
- engines: {node: '>=6'}
-
- marked@16.4.2:
- resolution: {integrity: sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==}
- engines: {node: '>= 20'}
- hasBin: true
-
math-intrinsics@1.1.0:
resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
engines: {node: '>= 0.4'}
@@ -3440,8 +3501,8 @@ packages:
mdast-util-find-and-replace@3.0.2:
resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==}
- mdast-util-from-markdown@2.0.2:
- resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==}
+ mdast-util-from-markdown@2.0.3:
+ resolution: {integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==}
mdast-util-frontmatter@2.0.1:
resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==}
@@ -3464,6 +3525,9 @@ packages:
mdast-util-gfm@3.1.0:
resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==}
+ mdast-util-math@3.0.0:
+ resolution: {integrity: sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==}
+
mdast-util-phrasing@4.1.0:
resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
@@ -3476,8 +3540,11 @@ packages:
mdast-util-to-string@4.0.0:
resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
- mdn-data@2.12.2:
- resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==}
+ mdn-data@2.27.1:
+ resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==}
+
+ mdn-data@2.29.0:
+ resolution: {integrity: sha512-pVxQFCcaYUEAH853+v7yoI/qzhxXSq1bTb9obMYGYAN1c3Hen+XDCEvr296XhstrwlSTNgOR7mCSD4JPjbJe5A==}
mdurl@2.0.0:
resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==}
@@ -3520,6 +3587,9 @@ packages:
micromark-extension-gfm@3.0.0:
resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
+ micromark-extension-math@3.1.0:
+ resolution: {integrity: sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==}
+
micromark-factory-destination@2.0.1:
resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==}
@@ -3580,14 +3650,6 @@ packages:
micromark@4.0.2:
resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==}
- micromatch@4.0.8:
- resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
- engines: {node: '>=8.6'}
-
- millify@6.1.0:
- resolution: {integrity: sha512-H/E3J6t+DQs/F2YgfDhxUVZz/dF8JXPPKTLHL/yHCcLZLtCXJDUaqvhJXQwqOVBvbyNn4T0WjLpIHd7PAw7fBA==}
- hasBin: true
-
mime-db@1.52.0:
resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
engines: {node: '>= 0.6'}
@@ -3605,40 +3667,33 @@ packages:
engines: {node: '>=4'}
hasBin: true
- mimic-function@5.0.1:
- resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==}
- engines: {node: '>=18'}
-
minimalistic-assert@1.0.1:
resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
- minimatch@10.1.1:
- resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==}
- engines: {node: 20 || >=22}
+ minimatch@10.2.4:
+ resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==}
+ engines: {node: 18 || 20 || >=22}
- minimatch@3.1.2:
- resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+ minimatch@10.2.6:
+ resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==}
+ engines: {node: 18 || 20 || >=22}
- minimatch@5.1.6:
- resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
+ minimatch@5.1.9:
+ resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==}
engines: {node: '>=10'}
- minimatch@9.0.5:
- resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
- engines: {node: '>=16 || 14 >=14.17'}
-
- minipass@7.1.2:
- resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
+ minipass@7.1.3:
+ resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==}
engines: {node: '>=16 || 14 >=14.17'}
minisearch@7.2.0:
resolution: {integrity: sha512-dqT2XBYUOZOiC5t2HRnwADjhNS2cecp9u+TJRiJ1Qp/f5qjkeT5APcGPjHw+bz89Ms8Jp+cG4AlE+QZ/QnDglg==}
- mitt@3.0.1:
- resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==}
+ mlly@1.8.1:
+ resolution: {integrity: sha512-SnL6sNutTwRWWR/vcmCYHSADjiEesp5TGQQ0pXyLhW5IoeibRlF/CbSLailbB3CNqJUk9cVJ9dUDnbD7GrcHBQ==}
- mlly@1.8.0:
- resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==}
+ module-replacements@3.1.0:
+ resolution: {integrity: sha512-MSTNGqlp2q0seRlrAA/FK3SUkGnmPeexeKWuCjeJ7HobD2RCjk4f8ry8lJ+nUQFDVBAHSdC4TdjyJSaocnR7Uw==}
mrmime@2.0.1:
resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==}
@@ -3653,12 +3708,8 @@ packages:
muggle-string@0.4.1:
resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==}
- nano-spawn@2.0.0:
- resolution: {integrity: sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw==}
- engines: {node: '>=20.17'}
-
- nanoid@3.3.11:
- resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
+ nanoid@3.3.16:
+ resolution: {integrity: sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
@@ -3680,8 +3731,9 @@ packages:
node-fetch-native@1.6.7:
resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==}
- node-releases@2.0.27:
- resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==}
+ node-releases@2.0.51:
+ resolution: {integrity: sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ==}
+ engines: {node: '>=18'}
nth-check@2.1.1:
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
@@ -3690,8 +3742,8 @@ packages:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines: {node: '>=0.10.0'}
- object-deep-merge@2.0.0:
- resolution: {integrity: sha512-3DC3UMpeffLTHiuXSy/UG4NOIYTLlY9u3V82+djSCLYClWobZiS4ivYzpIUWrRY/nfsJ8cWsKyG3QfyLePmhvg==}
+ object-deep-merge@2.0.1:
+ resolution: {integrity: sha512-aKttDKcU3pyZqKcCkDhsMn70WmZFG2JGDQLP9EcLyTSIFQRCPWLAmBZRLJnrVUrhPG1jETEEbfdgbNtJf1LyMg==}
object-inspect@1.13.4:
resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
@@ -3725,15 +3777,11 @@ packages:
resolution: {integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==}
engines: {node: '>= 0.8'}
- onetime@7.0.0:
- resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==}
- engines: {node: '>=18'}
-
- oniguruma-parser@0.12.1:
- resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==}
+ oniguruma-parser@0.12.2:
+ resolution: {integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==}
- oniguruma-to-es@4.3.4:
- resolution: {integrity: sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA==}
+ oniguruma-to-es@4.3.6:
+ resolution: {integrity: sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==}
optionator@0.9.4:
resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
@@ -3743,6 +3791,19 @@ packages:
resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==}
engines: {node: '>= 0.4'}
+ oxc-parser@0.131.0:
+ resolution: {integrity: sha512-SJ3/7ZPbgie8dr5Z9BI/M51zZbpXba+hRSG0MDzVwMW5CRQg2fjYE0jHGlLX4eeiibGgC/mzoDFKSDHwVZEHRQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+
+ oxc-walker@0.7.0:
+ resolution: {integrity: sha512-54B4KUhrzbzc4sKvKwVYm7E2PgeROpGba0/2nlNZMqfDyca+yOor5IMb4WLGBatGDT0nkzYdYuzylg7n3YfB7A==}
+ peerDependencies:
+ oxc-parser: '>=0.98.0'
+
+ p-event@6.0.1:
+ resolution: {integrity: sha512-Q6Bekk5wpzW5qIyUP4gdMEujObYstZl6DMMOSenwBvV0BlE5LkDwkjs5yHbZmdCEq2o4RJx4tE1vwxFVf2FG1w==}
+ engines: {node: '>=16.17'}
+
p-limit@3.1.0:
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
engines: {node: '>=10'}
@@ -3751,15 +3812,18 @@ packages:
resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
engines: {node: '>=10'}
+ p-timeout@6.1.4:
+ resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==}
+ engines: {node: '>=14.16'}
+
package-json-from-dist@1.0.1:
resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
package-manager-detector@1.6.0:
resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==}
- parent-module@1.0.1:
- resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
- engines: {node: '>=6'}
+ package-manager-detector@1.8.0:
+ resolution: {integrity: sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A==}
parse-gitignore@2.0.0:
resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==}
@@ -3789,21 +3853,18 @@ packages:
path-parse@1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
- path-scurry@2.0.1:
- resolution: {integrity: sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==}
- engines: {node: 20 || >=22}
+ path-scurry@2.0.2:
+ resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==}
+ engines: {node: 18 || 20 || >=22}
path-to-regexp@0.1.12:
resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==}
- path-to-regexp@6.3.0:
- resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==}
-
pathe@2.0.3:
resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
- perfect-debounce@2.0.0:
- resolution: {integrity: sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow==}
+ perfect-debounce@2.1.0:
+ resolution: {integrity: sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==}
picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
@@ -3816,10 +3877,9 @@ packages:
resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
engines: {node: '>=12'}
- pidtree@0.6.0:
- resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==}
- engines: {node: '>=0.10'}
- hasBin: true
+ picomatch@4.0.5:
+ resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==}
+ engines: {node: '>=12'}
pkg-types@1.3.1:
resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
@@ -3831,8 +3891,8 @@ packages:
resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
engines: {node: '>=4'}
- pnpm-workspace-yaml@1.4.3:
- resolution: {integrity: sha512-Q8B3SWuuISy/Ciag4DFP7MCrJX07wfaekcqD2o/msdIj4x8Ql3bZ/NEKOXV7mTVh7m1YdiFWiMi9xH+0zuEGHw==}
+ pnpm-workspace-yaml@1.7.0:
+ resolution: {integrity: sha512-cgjaozHkjWL4H8oKZydEWE4mg31XydK3/1cLKjHvwnFAXutp45yAlMKljpOdZEq4TtLuzYAMvy9j05wRm3aoPw==}
possible-typed-array-names@1.1.0:
resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
@@ -3842,12 +3902,12 @@ packages:
resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==}
engines: {node: '>=4'}
- postcss-selector-parser@7.1.1:
- resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==}
+ postcss-selector-parser@7.1.4:
+ resolution: {integrity: sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==}
engines: {node: '>=4'}
- postcss@8.5.6:
- resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
+ postcss@8.5.25:
+ resolution: {integrity: sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw==}
engines: {node: ^10 || ^12 || >=14}
prelude-ls@1.2.1:
@@ -3862,10 +3922,6 @@ packages:
resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==}
engines: {node: ^14.13.1 || >=16.0.0}
- pretty-bytes@7.1.0:
- resolution: {integrity: sha512-nODzvTiYVRGRqAOvE84Vk5JDPyyxsVk0/fbA/bq7RqlnhksGpset09XTxbpvLTIjoaF7K8Z8DG8yHtKGTPSYRw==}
- engines: {node: '>=20'}
-
process-nextick-args@2.0.1:
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
@@ -3884,8 +3940,8 @@ packages:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
- qs@6.14.1:
- resolution: {integrity: sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==}
+ qs@6.14.2:
+ resolution: {integrity: sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==}
engines: {node: '>=0.6'}
quansync@0.2.11:
@@ -3894,6 +3950,10 @@ packages:
quansync@1.0.0:
resolution: {integrity: sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA==}
+ quote-js-string@0.1.0:
+ resolution: {integrity: sha512-Y3NoRtprEEZQD8RfxMCfS0ZTqc4e+i18OrXEXAvpM6TfC/3y+0L5rNbZiSnbBBEkDfFzbpd8o+cE8q3/anjMGA==}
+ engines: {node: '>=22'}
+
randombytes@2.1.0:
resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
@@ -3905,10 +3965,6 @@ packages:
resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==}
engines: {node: '>= 0.8'}
- react@19.2.3:
- resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==}
- engines: {node: '>=0.10.0'}
-
readable-stream@2.3.8:
resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
@@ -3963,30 +4019,14 @@ packages:
regjsgen@0.8.0:
resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==}
- regjsparser@0.13.0:
- resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==}
+ regjsparser@0.13.2:
+ resolution: {integrity: sha512-NgRBy2Nx/bE+9F27nVHnqcN5HjyLmecqsqx2PJHu3/IEtADD4WuxuXIVExD5PoSDFVrl78dOonfcOe5O+5nbzQ==}
hasBin: true
- reka-ui@2.7.0:
- resolution: {integrity: sha512-m+XmxQN2xtFzBP3OAdIafKq7C8OETo2fqfxcIIxYmNN2Ch3r5oAf6yEYCIJg5tL/yJU2mHqF70dCCekUkrAnXA==}
+ reka-ui@2.9.2:
+ resolution: {integrity: sha512-/t4e6y1hcG+uDuRfpg6tbMz3uUEvRzNco6NeYTufoJeUghy5Iosxos5YL/p+ieAsid84sdMX9OrgDqpEuCJhBw==}
peerDependencies:
- vue: '>= 3.2.0'
-
- remark-frontmatter@5.0.0:
- resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==}
-
- remark-parse@11.0.0:
- resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
-
- remark-stringify@11.0.0:
- resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==}
-
- remark@15.0.1:
- resolution: {integrity: sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==}
-
- require-directory@2.1.1:
- resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
- engines: {node: '>=0.10.0'}
+ vue: '>= 3.4.0'
require-from-string@2.0.2:
resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
@@ -3996,10 +4036,6 @@ packages:
resolution: {integrity: sha512-yE7KUfFvaBFzGPs5H3Ops1RevfUEsDc5Iz65rOwWg4lE8HJSYtle77uul3+573457oHvBKuHYDl/xqUkKpEEdw==}
engines: {node: '>=18'}
- resolve-from@4.0.0:
- resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
- engines: {node: '>=4'}
-
resolve-pkg-maps@1.0.0:
resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
@@ -4008,21 +4044,14 @@ packages:
engines: {node: '>= 0.4'}
hasBin: true
- restore-cursor@5.1.0:
- resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==}
- engines: {node: '>=18'}
-
- rfdc@1.4.1:
- resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==}
-
- rollup@2.79.2:
- resolution: {integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==}
- engines: {node: '>=10.0.0'}
+ rolldown@1.2.1:
+ resolution: {integrity: sha512-4FKJhg8d3OiyQOA6Q1Q0hoFFpW9/OoX+VsHzpECsdsIZoOArrAK90gl59YK/Z+gnDel45bgJZK03ozH/9bCqEw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
- rollup@4.55.1:
- resolution: {integrity: sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A==}
- engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+ rollup@2.80.0:
+ resolution: {integrity: sha512-cIFJOD1DESzpjOBl763Kp1AH7UE/0fcdHe6rZXUdQ9c50uvgigvW97u3IcSeBwOkgqL/PXPBktBCh0KEu5L8XQ==}
+ engines: {node: '>=10.0.0'}
hasBin: true
safe-array-concat@1.1.3:
@@ -4050,13 +4079,6 @@ packages:
resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==}
engines: {node: ^14.0.0 || >=16.0.0}
- search-insights@2.17.3:
- resolution: {integrity: sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==}
-
- section-matter@1.0.0:
- resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
- engines: {node: '>=4'}
-
select-hose@2.0.0:
resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==}
@@ -4064,8 +4086,13 @@ packages:
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
hasBin: true
- semver@7.7.3:
- resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==}
+ semver@7.7.4:
+ resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ semver@7.8.5:
+ resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==}
engines: {node: '>=10'}
hasBin: true
@@ -4110,8 +4137,9 @@ packages:
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
engines: {node: '>=8'}
- shiki@3.21.0:
- resolution: {integrity: sha512-N65B/3bqL/TI2crrXr+4UivctrAGEjmsib5rPMMPpFp1xAx/w03v8WZ9RDDFYteXoEgY7qZ4HGgl5KBIu1153w==}
+ shiki@4.4.1:
+ resolution: {integrity: sha512-rFP+iYKzjLEIqiMiKANhARqiAbk4deDhWnBtnUO/K0D0dPxMGDH4N0FVfBY/VeI+lPrV4wNGCHQZp7EOr7NNBw==}
+ engines: {node: '>=20'}
side-channel-list@1.0.0:
resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
@@ -4150,12 +4178,9 @@ packages:
sisteransi@1.0.5:
resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
- slice-ansi@7.1.2:
- resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==}
- engines: {node: '>=18'}
-
- smob@1.5.0:
- resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==}
+ smob@1.6.1:
+ resolution: {integrity: sha512-KAkBqZl3c2GvNgNhcoyJae1aKldDW0LO279wF9bk1PnluRTETKBq0WyzRXxEhoQLk56yHaOY4JCBEKDuJIET5g==}
+ engines: {node: '>=20.0.0'}
source-map-js@1.2.1:
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
@@ -4183,11 +4208,11 @@ packages:
spdx-exceptions@2.5.0:
resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
- spdx-expression-parse@4.0.0:
- resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==}
+ spdx-expression-parse@5.0.0:
+ resolution: {integrity: sha512-vngmw3Rgn+o2arXNbnZaj5UtOEBuWBfvaI+Wc8GFfykIhA5/vdK9/Sp/XkLv63dykz2rxKDvKEHupF5P0FORcQ==}
- spdx-license-ids@3.0.22:
- resolution: {integrity: sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==}
+ spdx-license-ids@3.0.23:
+ resolution: {integrity: sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==}
spdy-transport@3.0.0:
resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==}
@@ -4196,13 +4221,6 @@ packages:
resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==}
engines: {node: '>=6.0.0'}
- speakingurl@14.0.1:
- resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==}
- engines: {node: '>=0.10.0'}
-
- sprintf-js@1.0.3:
- resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
-
stackback@0.0.2:
resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
@@ -4210,8 +4228,8 @@ packages:
resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==}
engines: {node: '>= 0.8'}
- std-env@3.10.0:
- resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==}
+ std-env@4.0.0:
+ resolution: {integrity: sha512-zUMPtQ/HBY3/50VbpkupYHbRroTRZJPRLvreamgErJVys0ceuzMkD44J/QjqhHjOzK42GQ3QZIeFG1OYfOtKqQ==}
stop-iteration-iterator@1.1.0:
resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==}
@@ -4221,22 +4239,6 @@ packages:
resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
engines: {node: '>=0.6.19'}
- string-width@4.2.3:
- resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
- engines: {node: '>=8'}
-
- string-width@5.1.2:
- resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
- engines: {node: '>=12'}
-
- string-width@7.2.0:
- resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==}
- engines: {node: '>=18'}
-
- string-width@8.1.0:
- resolution: {integrity: sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==}
- engines: {node: '>=20'}
-
string.prototype.matchall@4.0.12:
resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==}
engines: {node: '>= 0.4'}
@@ -4266,18 +4268,6 @@ packages:
resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==}
engines: {node: '>=4'}
- strip-ansi@6.0.1:
- resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
- engines: {node: '>=8'}
-
- strip-ansi@7.1.2:
- resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==}
- engines: {node: '>=12'}
-
- strip-bom-string@1.0.0:
- resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==}
- engines: {node: '>=0.10.0'}
-
strip-comments@2.0.1:
resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==}
engines: {node: '>=10'}
@@ -4286,36 +4276,23 @@ packages:
resolution: {integrity: sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==}
engines: {node: '>=12'}
- strip-json-comments@3.1.1:
- resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
- engines: {node: '>=8'}
-
- superjson@2.2.6:
- resolution: {integrity: sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA==}
- engines: {node: '>=16'}
-
- supports-color@7.2.0:
- resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
- engines: {node: '>=8'}
+ super-regex@1.1.0:
+ resolution: {integrity: sha512-WHkws2ZflZe41zj6AolvvmaTrWds/VuyeYr9iPVv/oQeaIoVxMKaushfFWpOGDT+GuBrM/sVqF8KUCYQlSSTdQ==}
+ engines: {node: '>=18'}
supports-preserve-symlinks-flag@1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
- swr@2.3.8:
- resolution: {integrity: sha512-gaCPRVoMq8WGDcWj9p4YWzCMPHzE0WNl6W8ADIx9c3JBEIdMkJGMzW+uzXvxHMltwcYACr9jP+32H8/hgwMR7w==}
- peerDependencies:
- react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
-
- synckit@0.11.11:
- resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==}
+ synckit@0.11.12:
+ resolution: {integrity: sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==}
engines: {node: ^14.18.0 || >=16.0.0}
- tabbable@6.4.0:
- resolution: {integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==}
+ tabbable@6.5.0:
+ resolution: {integrity: sha512-wieBHXygIm7OyQOu5hQlkk62/WyCFYGlWg7L6/ZCUZwx0o398Zkn4pVmMyfYhfMG8kGrj/Krt8eIk6UKC6VzwA==}
- tailwindcss@4.1.18:
- resolution: {integrity: sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==}
+ tailwindcss@4.2.1:
+ resolution: {integrity: sha512-/tBrSQ36vCleJkAOsy9kbNTgaxvGbyOamC30PRePTQe/o1MFwEKHQk4Cn7BNGaPtjp+PuUrByJehM1hgxfq4sw==}
tapable@2.3.0:
resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==}
@@ -4329,37 +4306,37 @@ packages:
resolution: {integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==}
engines: {node: '>=10'}
- terser@5.44.1:
- resolution: {integrity: sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==}
+ terser@5.46.1:
+ resolution: {integrity: sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==}
engines: {node: '>=10'}
hasBin: true
- throttleit@2.1.0:
- resolution: {integrity: sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==}
- engines: {node: '>=18'}
+ time-span@5.1.0:
+ resolution: {integrity: sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==}
+ engines: {node: '>=12'}
tinybench@2.9.0:
resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
- tinyexec@1.0.2:
- resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==}
+ tinyexec@1.0.4:
+ resolution: {integrity: sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==}
engines: {node: '>=18'}
- tinyglobby@0.2.15:
- resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
+ tinyexec@1.3.0:
+ resolution: {integrity: sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ==}
+ engines: {node: '>=18'}
+
+ tinyglobby@0.2.17:
+ resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==}
engines: {node: '>=12.0.0'}
- tinyrainbow@3.0.3:
- resolution: {integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==}
+ tinyrainbow@3.1.0:
+ resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==}
engines: {node: '>=14.0.0'}
to-data-view@1.1.0:
resolution: {integrity: sha512-1eAdufMg6mwgmlojAx3QeMnzB/BTVp7Tbndi3U7ftcT2zCZadjxkkmLmd97zmaxWi+sgGcgWrokmpEoy0Dn0vQ==}
- to-regex-range@5.0.1:
- resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
- engines: {node: '>=8.0'}
-
to-valid-identifier@1.0.0:
resolution: {integrity: sha512-41wJyvKep3yT2tyPqX/4blcfybknGB4D+oETKLs7Q76UiPqRpUJK3hr1nxelyYO0PHKVzJwlu0aCeEAsGI6rpw==}
engines: {node: '>=20'}
@@ -4368,12 +4345,9 @@ packages:
resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
engines: {node: '>=0.6'}
- tokenx@1.2.1:
- resolution: {integrity: sha512-lVhFIhR2qh3uUyUA8Ype+HGzcokUJbHmRSN1TJKOe4Y26HkawQuLiGkUCkR5LD9dx+Rtp+njrwzPL8AHHYQSYA==}
-
- toml-eslint-parser@0.10.1:
- resolution: {integrity: sha512-9mjy3frhioGIVGcwamlVlUyJ9x+WHw/TXiz9R4YOlmsIuBN43r9Dp8HZ35SF9EKjHrn3BUZj04CF+YqZ2oJ+7w==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ toml-eslint-parser@1.0.3:
+ resolution: {integrity: sha512-A5F0cM6+mDleacLIEUkmfpkBbnHJFV1d2rprHU2MXNk7mlxHq2zGojA+SRvQD1RoMo9gqjZPWEaKG4v1BQ48lw==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
totalist@3.0.1:
resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
@@ -4385,15 +4359,18 @@ packages:
trim-lines@3.0.1:
resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
- trough@2.2.0:
- resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==}
-
ts-api-utils@2.4.0:
resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==}
engines: {node: '>=18.12'}
peerDependencies:
typescript: '>=4.8.4'
+ ts-api-utils@2.5.0:
+ resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==}
+ engines: {node: '>=18.12'}
+ peerDependencies:
+ typescript: '>=4.8.4'
+
ts-declaration-location@1.0.7:
resolution: {integrity: sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==}
peerDependencies:
@@ -4402,23 +4379,23 @@ packages:
tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
- tsx@4.21.0:
- resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==}
+ tsx@4.23.4:
+ resolution: {integrity: sha512-ZiUQ8oT/KzN51mJUWPqARYqwFLFJZtGZipRkw1ynHMr9vy3eU77m5yfF3Gzm6meEg/beW+lUu3fHYgskTN2oVQ==}
engines: {node: '>=18.0.0'}
hasBin: true
- twoslash-protocol@0.3.6:
- resolution: {integrity: sha512-FHGsJ9Q+EsNr5bEbgG3hnbkvEBdW5STgPU824AHUjB4kw0Dn4p8tABT7Ncg1Ie6V0+mDg3Qpy41VafZXcQhWMA==}
+ twoslash-protocol@0.3.9:
+ resolution: {integrity: sha512-9/iwp+CXOnjFMPQuPL5PkuRbZnDoNpBvtJCLs9t8kDYkL3YHujbvnHfZA1i5fApDftVEdBw+T/4F+dH5kIzpYQ==}
- twoslash-vue@0.3.6:
- resolution: {integrity: sha512-HXYxU+Y7jZiMXJN4980fQNMYflLD8uqKey1qVW5ri8bqYTm2t5ILmOoCOli7esdCHlMq4/No3iQUWBWDhZNs9w==}
+ twoslash-vue@0.3.9:
+ resolution: {integrity: sha512-2zO1u4iPhZz9k7ysuDaJL1FUn4SHzm78ZF6/0Q4yFR2VP3NW0JwRpw/4cWqEM6ye3pDf8Zr9lVPBvsX4uK315A==}
peerDependencies:
- typescript: ^5.5.0
+ typescript: ^5.5.0 || ^6.0.0
- twoslash@0.3.6:
- resolution: {integrity: sha512-VuI5OKl+MaUO9UIW3rXKoPgHI3X40ZgB/j12VY6h98Ae1mCBihjPvhOPeJWlxCYcmSbmeZt5ZKkK0dsVtp+6pA==}
+ twoslash@0.3.9:
+ resolution: {integrity: sha512-rDclk+OtzuTX+tnea7DYLCkqGQ3eP0IyfD+kzUJ7t46X/NzlaxwrhecmEBNuSCuEn3V+n1PhcjUUQQ7gUJzX5Q==}
peerDependencies:
- typescript: ^5.5.0
+ typescript: ^5.5.0 || ^6.0.0
type-check@0.4.0:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
@@ -4428,10 +4405,17 @@ packages:
resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==}
engines: {node: '>=10'}
+ type-fest@4.41.0:
+ resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==}
+ engines: {node: '>=16'}
+
type-is@1.6.18:
resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
engines: {node: '>= 0.6'}
+ type-level-regexp@0.1.17:
+ resolution: {integrity: sha512-wTk4DH3cxwk196uGLK/E9pE45aLfeKJacKmcEgEOA/q5dnPGNxXt0cfYdFxb57L+sEpf1oJH4Dnx/pnRcku9jg==}
+
typed-array-buffer@1.0.3:
resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==}
engines: {node: '>= 0.4'}
@@ -4456,8 +4440,8 @@ packages:
uc.micro@2.1.0:
resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==}
- ufo@1.6.2:
- resolution: {integrity: sha512-heMioaxBcG9+Znsda5Q8sQbWnLJSl98AFDXTO80wELWEzX3hordXsTdxrIfMQoO9IY1MEnoGoPjpoKpMj+Yx0Q==}
+ ufo@1.6.3:
+ resolution: {integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==}
uglify-js@3.19.3:
resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==}
@@ -4468,14 +4452,14 @@ packages:
resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
engines: {node: '>= 0.4'}
- unconfig-core@7.4.2:
- resolution: {integrity: sha512-VgPCvLWugINbXvMQDf8Jh0mlbvNjNC6eSUziHsBCMpxR05OPrNrvDnyatdMjRgcHaaNsCqz+wjNXxNw1kRLHUg==}
+ unconfig-core@7.5.0:
+ resolution: {integrity: sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w==}
- unconfig@7.4.2:
- resolution: {integrity: sha512-nrMlWRQ1xdTjSnSUqvYqJzbTBFugoqHobQj58B2bc8qxHKBBHMNNsWQFP3Cd3/JZK907voM2geYPWqD4VK3MPQ==}
+ unconfig@7.5.0:
+ resolution: {integrity: sha512-oi8Qy2JV4D3UQ0PsopR28CzdQ3S/5A1zwsUwp/rosSbfhJ5z7b90bIyTwi/F7hCLD4SGcZVjDzd4XoUQcEanvA==}
- undici-types@7.16.0:
- resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==}
+ undici-types@8.3.0:
+ resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==}
unicode-canonical-property-names-ecmascript@2.0.1:
resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==}
@@ -4493,9 +4477,6 @@ packages:
resolution: {integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==}
engines: {node: '>=4'}
- unified@11.0.5:
- resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==}
-
unique-string@2.0.0:
resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==}
engines: {node: '>=8'}
@@ -4506,8 +4487,8 @@ packages:
unist-util-position@5.0.0:
resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
- unist-util-remove@4.0.0:
- resolution: {integrity: sha512-b4gokeGId57UVRX/eVKej5gXqGlc9+trkORhFJpu9raqZkZhU0zm8Doi05+HaiBsMEIJowL+2WtQ5ItjsngPXg==}
+ unist-util-remove-position@5.0.0:
+ resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==}
unist-util-stringify-position@4.0.0:
resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
@@ -4515,23 +4496,25 @@ packages:
unist-util-visit-parents@6.0.2:
resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==}
- unist-util-visit@5.0.0:
- resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
+ unist-util-visit@5.1.0:
+ resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==}
universalify@2.0.1:
resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
engines: {node: '>= 10.0.0'}
- unocss@66.5.12:
- resolution: {integrity: sha512-3WdSuM+SOjVpXDtffTuSvYTMuufpFzBehu2b4Tr7DcoIUxGouZn3mdxCLx3PiEuK0ih40Fo7Sjm+J4mccHfwLg==}
- engines: {node: '>=14'}
+ unocss@66.7.5:
+ resolution: {integrity: sha512-nAdmU8TwnQoiLnQjZ6Hm1GmHy9lTexKsAZNEJtZnxN9wyFRc1eLjQgmh9r7UEGxBQMQLD8OZOgmk5HpwObbh0Q==}
peerDependencies:
- '@unocss/webpack': 66.5.12
- vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 || ^8.0.0-0
+ '@unocss/astro': 66.7.5
+ '@unocss/postcss': 66.7.5
+ '@unocss/webpack': 66.7.5
peerDependenciesMeta:
- '@unocss/webpack':
+ '@unocss/astro':
optional: true
- vite:
+ '@unocss/postcss':
+ optional: true
+ '@unocss/webpack':
optional: true
unpipe@1.0.0:
@@ -4542,6 +4525,10 @@ packages:
resolution: {integrity: sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==}
engines: {node: '>=20.19.0'}
+ unplugin@2.3.11:
+ resolution: {integrity: sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==}
+ engines: {node: '>=18.12.0'}
+
upath@1.2.0:
resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==}
engines: {node: '>=4'}
@@ -4555,11 +4542,6 @@ packages:
uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
- use-sync-external-store@1.6.0:
- resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
-
util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
@@ -4577,27 +4559,28 @@ packages:
vfile@6.0.3:
resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
- vite-plugin-pwa@1.2.0:
- resolution: {integrity: sha512-a2xld+SJshT9Lgcv8Ji4+srFJL4k/1bVbd1x06JIkvecpQkwkvCncD1+gSzcdm3s+owWLpMJerG3aN5jupJEVw==}
+ vite-plugin-pwa@1.3.0:
+ resolution: {integrity: sha512-c5kMgN+ITrOtHXp8PAtk2uOIEea6XjP/unCGxOWWBzQ6qa65qj/awHg0wf+QF9E/2u9vh86LqxPwzEPNbM2r5A==}
engines: {node: '>=16.0.0'}
peerDependencies:
'@vite-pwa/assets-generator': ^1.0.0
- vite: ^3.1.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0
- workbox-build: ^7.4.0
- workbox-window: ^7.4.0
+ vite: ^3.1.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0
+ workbox-build: ^7.4.1
+ workbox-window: ^7.4.1
peerDependenciesMeta:
'@vite-pwa/assets-generator':
optional: true
- vite@7.3.1:
- resolution: {integrity: sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==}
+ vite@8.2.0:
+ resolution: {integrity: sha512-pn+CFpM0lwDeKwmOq1ZaBK/9sjorZcgqxki6MbY/jPEVd9vichIlmlD4HmQ5wdP5EgqQCFRaACBxMC7uEGc6lQ==}
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
peerDependencies:
'@types/node': ^20.19.0 || >=22.12.0
+ '@vitejs/devtools': ^0.4.0
+ esbuild: ^0.27.0 || ^0.28.0
jiti: '>=1.21.0'
less: ^4.0.0
- lightningcss: ^1.21.0
sass: ^1.70.0
sass-embedded: ^1.70.0
stylus: '>=0.54.8'
@@ -4608,12 +4591,14 @@ packages:
peerDependenciesMeta:
'@types/node':
optional: true
+ '@vitejs/devtools':
+ optional: true
+ esbuild:
+ optional: true
jiti:
optional: true
less:
optional: true
- lightningcss:
- optional: true
sass:
optional: true
sass-embedded:
@@ -4629,52 +4614,49 @@ packages:
yaml:
optional: true
- vitepress-plugin-group-icons@1.6.5:
- resolution: {integrity: sha512-+pg4+GKDq2fLqKb1Sat5p1p4SuIZ5tEPxu8HjpwoeecZ/VaXKy6Bdf0wyjedjaTAyZQzXbvyavJegqAcQ+B0VA==}
+ vitepress-plugin-group-icons@1.7.6:
+ resolution: {integrity: sha512-fXSpQAYHpFpEsZLKWQAwbRx/+0uRSHmY58YNAQcz0AVirGsM6w22jtSmQhOGLEj8ZKyeRtTJrpx6otUI6wvoaQ==}
peerDependencies:
vite: '>=3'
peerDependenciesMeta:
vite:
optional: true
- vitepress-plugin-llms@1.10.0:
- resolution: {integrity: sha512-dgD5KV8D9vXlQtAf/KUjSgr3QymH1fHT7XkQ/UuIqvIjnKdzZI+0gT3puGxUBuqgvlFjYWA6f8k80tXl6gwWkw==}
-
- vitepress-plugin-tabs@0.7.3:
- resolution: {integrity: sha512-CkUz49UrTLcVOszuiHIA7ZBvfsg9RluRkFjRG1KvCg/NwuOTLZwcBRv7vBB3vMlDp0bWXIFOIwdI7bE93cV3Hw==}
+ vitepress-plugin-tabs@0.9.1:
+ resolution: {integrity: sha512-cRys9pWhyl5YnxXZ3BAdSDW8DriuXBewYhmUu4bBlnzksEDjzbKUwbNi30T74Vi1UXnY1a19Ap6DJDTOWJWdzA==}
peerDependencies:
- vitepress: ^1.0.0
+ vitepress: ^1.0.0 || ^2.0.0-alpha.17
vue: ^3.5.0
- vitepress@2.0.0-alpha.15:
- resolution: {integrity: sha512-jhjSYd10Z6RZiKOa7jy0xMVf5NB5oSc/lS3bD/QoUc6V8PrvQR5JhC9104NEt6+oTGY/ftieVWxY9v7YI+1IjA==}
+ vitepress@2.0.0-alpha.19:
+ resolution: {integrity: sha512-WnBsb0Bwr43kXKyiis+lld/7ri3hnMbthS8N3hpFtjjwsdLO4IRmiAE08D7aud4q6oMDf9uwRowxzNqRFe/amw==}
hasBin: true
peerDependencies:
markdown-it-mathjax3: ^4
- oxc-minify: '*'
postcss: ^8
peerDependenciesMeta:
markdown-it-mathjax3:
optional: true
- oxc-minify:
- optional: true
postcss:
optional: true
- vitest@4.0.17:
- resolution: {integrity: sha512-FQMeF0DJdWY0iOnbv466n/0BudNdKj1l5jYgl5JVTwjSsZSlqyXFt/9+1sEyhR6CLowbZpV7O1sCHrzBhucKKg==}
+ vitest@4.1.10:
+ resolution: {integrity: sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw==}
engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0}
hasBin: true
peerDependencies:
'@edge-runtime/vm': '*'
'@opentelemetry/api': ^1.9.0
'@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0
- '@vitest/browser-playwright': 4.0.17
- '@vitest/browser-preview': 4.0.17
- '@vitest/browser-webdriverio': 4.0.17
- '@vitest/ui': 4.0.17
+ '@vitest/browser-playwright': 4.1.10
+ '@vitest/browser-preview': 4.1.10
+ '@vitest/browser-webdriverio': 4.1.10
+ '@vitest/coverage-istanbul': 4.1.10
+ '@vitest/coverage-v8': 4.1.10
+ '@vitest/ui': 4.1.10
happy-dom: '*'
jsdom: '*'
+ vite: ^6.0.0 || ^7.0.0 || ^8.0.0
peerDependenciesMeta:
'@edge-runtime/vm':
optional: true
@@ -4688,6 +4670,10 @@ packages:
optional: true
'@vitest/browser-webdriverio':
optional: true
+ '@vitest/coverage-istanbul':
+ optional: true
+ '@vitest/coverage-v8':
+ optional: true
'@vitest/ui':
optional: true
happy-dom:
@@ -4706,22 +4692,19 @@ packages:
'@vue/composition-api':
optional: true
- vue-eslint-parser@10.2.0:
- resolution: {integrity: sha512-CydUvFOQKD928UzZhTp4pr2vWz1L+H99t7Pkln2QSPdvmURT0MoC4wUccfCnuEaihNsu9aYYyk+bep8rlfkUXw==}
+ vue-eslint-parser@10.4.1:
+ resolution: {integrity: sha512-Gk6gRDj0n/fkRa3C3l0bBheoBckUq/Rs0F/TvMWIS6nzzx67amAViMe9CkNgsP2tXyQONvGiHQESHwFtZ3aYDA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- eslint: ^8.57.0 || ^9.0.0
-
- vue-flow-layout@0.2.0:
- resolution: {integrity: sha512-zKgsWWkXq0xrus7H4Mc+uFs1ESrmdTXlO0YNbR6wMdPaFvosL3fMB8N7uTV308UhGy9UvTrGhIY7mVz9eN+L0Q==}
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
vue-resize@2.0.0-alpha.1:
resolution: {integrity: sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==}
peerDependencies:
vue: ^3.0.0
- vue@3.5.26:
- resolution: {integrity: sha512-SJ/NTccVyAoNUJmkM9KUqPcYlY+u8OVL1X5EW9RIs3ch5H2uERxyyIUI4MRxVCSOiEcupX9xNGde1tL9ZKpimA==}
+ vue@3.5.40:
+ resolution: {integrity: sha512-+8PJ4SJXdn/cHGImF4CKdxlWHIN5Dkt7DoufRREM6h6uVCx2m7QxgcEQmmzyOK8A9mcafg7sFbJFYsdFVubTig==}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
@@ -4731,9 +4714,15 @@ packages:
wbuf@1.7.3:
resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==}
+ web-worker@1.5.0:
+ resolution: {integrity: sha512-RiMReJrTAiA+mBjGONMnjVDP2u3p9R1vkcGz6gDIrOMT3oGuYwX2WRMYI9ipkphSuE5XKEhydbhNEJh4NY9mlw==}
+
webidl-conversions@4.0.2:
resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==}
+ webpack-virtual-modules@0.6.2:
+ resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==}
+
whatwg-url@7.1.0:
resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==}
@@ -4749,8 +4738,8 @@ packages:
resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
engines: {node: '>= 0.4'}
- which-typed-array@1.1.19:
- resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==}
+ which-typed-array@1.1.20:
+ resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==}
engines: {node: '>= 0.4'}
which@2.0.2:
@@ -4783,6 +4772,9 @@ packages:
workbox-core@7.4.0:
resolution: {integrity: sha512-6BMfd8tYEnN4baG4emG9U0hdXM4gGuDU3ectXuVHnj71vwxTFI7WOpQJC4siTOlVtGqCUtj0ZQNsrvi6kZZTAQ==}
+ workbox-core@7.4.1:
+ resolution: {integrity: sha512-DT+vu46eh/2vRsSHTY4Xmc32Z1rr9PRlQUXr1Dx30ZuXRWwOsvZgGgcwxcasubQLQmbTNYZjv44LkBAQ4tT5tQ==}
+
workbox-expiration@7.4.0:
resolution: {integrity: sha512-V50p4BxYhtA80eOvulu8xVfPBgZbkxJ1Jr8UUn0rvqjGhLDqKNtfrDfjJKnLz2U8fO2xGQJTx/SKXNTzHOjnHw==}
@@ -4816,277 +4808,127 @@ packages:
workbox-window@7.4.0:
resolution: {integrity: sha512-/bIYdBLAVsNR3v7gYGaV4pQW3M3kEPx5E8vDxGvxo6khTrGtSSCS7QiFKv9ogzBgZiy0OXLP9zO28U/1nF1mfw==}
- wrap-ansi@7.0.0:
- resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
- engines: {node: '>=10'}
-
- wrap-ansi@8.1.0:
- resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
- engines: {node: '>=12'}
+ workbox-window@7.4.1:
+ resolution: {integrity: sha512-notZDH2u8VXaqyuD7xaqIfEFi6SRM4SUSd7ewe9PDsVqADuepxX2ZMY3uvuZGxzY5ZOsGC/vD3A/3smFtJt4/A==}
- wrap-ansi@9.0.2:
- resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==}
+ xml-name-validator@5.0.0:
+ resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==}
engines: {node: '>=18'}
- xml-name-validator@4.0.0:
- resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
- engines: {node: '>=12'}
-
- y18n@5.0.8:
- resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
- engines: {node: '>=10'}
-
yallist@3.1.1:
resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
- yaml-eslint-parser@1.3.2:
- resolution: {integrity: sha512-odxVsHAkZYYglR30aPYRY4nUGJnoJ2y1ww2HDvZALo0BDETv9kWbi16J52eHs+PWRNmF4ub6nZqfVOeesOvntg==}
- engines: {node: ^14.17.0 || >=16.0.0}
+ yaml-eslint-parser@2.1.0:
+ resolution: {integrity: sha512-1zo9KRfp6vIAXBEhWAz09ex3hUwh3T+/6dGbGteHvNseA0Uk4FgQnPES55klZ6cDzSy9FpgKS0D/CoLUvCCj4w==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
yaml@2.8.2:
resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==}
engines: {node: '>= 14.6'}
hasBin: true
- yargs-parser@21.1.1:
- resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
- engines: {node: '>=12'}
-
- yargs@17.7.2:
- resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
- engines: {node: '>=12'}
+ yaml@2.9.0:
+ resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==}
+ engines: {node: '>= 14.6'}
+ hasBin: true
yocto-queue@0.1.0:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
- zod@4.3.5:
- resolution: {integrity: sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g==}
-
zwitch@2.0.4:
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
snapshots:
- '@ai-sdk/gateway@2.0.24(zod@4.3.5)':
- dependencies:
- '@ai-sdk/provider': 2.0.1
- '@ai-sdk/provider-utils': 3.0.20(zod@4.3.5)
- '@vercel/oidc': 3.0.5
- zod: 4.3.5
-
- '@ai-sdk/provider-utils@3.0.20(zod@4.3.5)':
- dependencies:
- '@ai-sdk/provider': 2.0.1
- '@standard-schema/spec': 1.1.0
- eventsource-parser: 3.0.6
- zod: 4.3.5
-
- '@ai-sdk/provider@2.0.1':
- dependencies:
- json-schema: 0.4.0
-
- '@ai-sdk/react@2.0.120(react@19.2.3)(zod@4.3.5)':
- dependencies:
- '@ai-sdk/provider-utils': 3.0.20(zod@4.3.5)
- ai: 5.0.118(zod@4.3.5)
- react: 19.2.3
- swr: 2.3.8(react@19.2.3)
- throttleit: 2.1.0
- optionalDependencies:
- zod: 4.3.5
-
- '@algolia/abtesting@1.12.2':
- dependencies:
- '@algolia/client-common': 5.46.2
- '@algolia/requester-browser-xhr': 5.46.2
- '@algolia/requester-fetch': 5.46.2
- '@algolia/requester-node-http': 5.46.2
-
- '@algolia/autocomplete-core@1.19.2(@algolia/client-search@5.46.2)(algoliasearch@5.46.2)(search-insights@2.17.3)':
- dependencies:
- '@algolia/autocomplete-plugin-algolia-insights': 1.19.2(@algolia/client-search@5.46.2)(algoliasearch@5.46.2)(search-insights@2.17.3)
- '@algolia/autocomplete-shared': 1.19.2(@algolia/client-search@5.46.2)(algoliasearch@5.46.2)
- transitivePeerDependencies:
- - '@algolia/client-search'
- - algoliasearch
- - search-insights
-
- '@algolia/autocomplete-plugin-algolia-insights@1.19.2(@algolia/client-search@5.46.2)(algoliasearch@5.46.2)(search-insights@2.17.3)':
- dependencies:
- '@algolia/autocomplete-shared': 1.19.2(@algolia/client-search@5.46.2)(algoliasearch@5.46.2)
- search-insights: 2.17.3
- transitivePeerDependencies:
- - '@algolia/client-search'
- - algoliasearch
-
- '@algolia/autocomplete-shared@1.19.2(@algolia/client-search@5.46.2)(algoliasearch@5.46.2)':
- dependencies:
- '@algolia/client-search': 5.46.2
- algoliasearch: 5.46.2
-
- '@algolia/client-abtesting@5.46.2':
- dependencies:
- '@algolia/client-common': 5.46.2
- '@algolia/requester-browser-xhr': 5.46.2
- '@algolia/requester-fetch': 5.46.2
- '@algolia/requester-node-http': 5.46.2
-
- '@algolia/client-analytics@5.46.2':
- dependencies:
- '@algolia/client-common': 5.46.2
- '@algolia/requester-browser-xhr': 5.46.2
- '@algolia/requester-fetch': 5.46.2
- '@algolia/requester-node-http': 5.46.2
-
- '@algolia/client-common@5.46.2': {}
-
- '@algolia/client-insights@5.46.2':
- dependencies:
- '@algolia/client-common': 5.46.2
- '@algolia/requester-browser-xhr': 5.46.2
- '@algolia/requester-fetch': 5.46.2
- '@algolia/requester-node-http': 5.46.2
-
- '@algolia/client-personalization@5.46.2':
- dependencies:
- '@algolia/client-common': 5.46.2
- '@algolia/requester-browser-xhr': 5.46.2
- '@algolia/requester-fetch': 5.46.2
- '@algolia/requester-node-http': 5.46.2
-
- '@algolia/client-query-suggestions@5.46.2':
- dependencies:
- '@algolia/client-common': 5.46.2
- '@algolia/requester-browser-xhr': 5.46.2
- '@algolia/requester-fetch': 5.46.2
- '@algolia/requester-node-http': 5.46.2
-
- '@algolia/client-search@5.46.2':
- dependencies:
- '@algolia/client-common': 5.46.2
- '@algolia/requester-browser-xhr': 5.46.2
- '@algolia/requester-fetch': 5.46.2
- '@algolia/requester-node-http': 5.46.2
-
- '@algolia/ingestion@1.46.2':
- dependencies:
- '@algolia/client-common': 5.46.2
- '@algolia/requester-browser-xhr': 5.46.2
- '@algolia/requester-fetch': 5.46.2
- '@algolia/requester-node-http': 5.46.2
-
- '@algolia/monitoring@1.46.2':
- dependencies:
- '@algolia/client-common': 5.46.2
- '@algolia/requester-browser-xhr': 5.46.2
- '@algolia/requester-fetch': 5.46.2
- '@algolia/requester-node-http': 5.46.2
-
- '@algolia/recommend@5.46.2':
- dependencies:
- '@algolia/client-common': 5.46.2
- '@algolia/requester-browser-xhr': 5.46.2
- '@algolia/requester-fetch': 5.46.2
- '@algolia/requester-node-http': 5.46.2
-
- '@algolia/requester-browser-xhr@5.46.2':
- dependencies:
- '@algolia/client-common': 5.46.2
-
- '@algolia/requester-fetch@5.46.2':
- dependencies:
- '@algolia/client-common': 5.46.2
-
- '@algolia/requester-node-http@5.46.2':
- dependencies:
- '@algolia/client-common': 5.46.2
-
- '@antfu/eslint-config@6.7.3(@vue/compiler-sfc@3.5.26)(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)(vitest@4.0.17(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))':
+ '@antfu/eslint-config@9.2.0(@typescript-eslint/typescript-estree@8.65.0(typescript@5.9.3))(@typescript-eslint/utils@8.65.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3))(@vue/compiler-sfc@3.5.40)(eslint@10.8.0(jiti@2.6.1))(ts-declaration-location@1.0.7(typescript@5.9.3))(typescript@5.9.3)(vitest@4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0)))':
dependencies:
'@antfu/install-pkg': 1.1.0
- '@clack/prompts': 0.11.0
- '@eslint-community/eslint-plugin-eslint-comments': 4.5.0(eslint@9.39.2(jiti@2.6.1))
- '@eslint/markdown': 7.5.1
- '@stylistic/eslint-plugin': 5.7.0(eslint@9.39.2(jiti@2.6.1))
- '@typescript-eslint/eslint-plugin': 8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/parser': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
- '@vitest/eslint-plugin': 1.6.6(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)(vitest@4.0.17(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))
- ansis: 4.2.0
- cac: 6.7.14
- eslint: 9.39.2(jiti@2.6.1)
- eslint-config-flat-gitignore: 2.1.0(eslint@9.39.2(jiti@2.6.1))
- eslint-flat-config-utils: 2.1.4
- eslint-merge-processors: 2.0.0(eslint@9.39.2(jiti@2.6.1))
- eslint-plugin-antfu: 3.1.3(eslint@9.39.2(jiti@2.6.1))
- eslint-plugin-command: 3.4.0(eslint@9.39.2(jiti@2.6.1))
- eslint-plugin-import-lite: 0.4.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
- eslint-plugin-jsdoc: 61.7.1(eslint@9.39.2(jiti@2.6.1))
- eslint-plugin-jsonc: 2.21.0(eslint@9.39.2(jiti@2.6.1))
- eslint-plugin-n: 17.23.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
- eslint-plugin-no-only-tests: 3.3.0
- eslint-plugin-perfectionist: 4.15.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
- eslint-plugin-pnpm: 1.4.3(eslint@9.39.2(jiti@2.6.1))
- eslint-plugin-regexp: 2.10.0(eslint@9.39.2(jiti@2.6.1))
- eslint-plugin-toml: 0.12.0(eslint@9.39.2(jiti@2.6.1))
- eslint-plugin-unicorn: 62.0.0(eslint@9.39.2(jiti@2.6.1))
- eslint-plugin-unused-imports: 4.3.0(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))
- eslint-plugin-vue: 10.6.2(@stylistic/eslint-plugin@5.7.0(eslint@9.39.2(jiti@2.6.1)))(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@2.6.1)))
- eslint-plugin-yml: 1.19.1(eslint@9.39.2(jiti@2.6.1))
- eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.26)(eslint@9.39.2(jiti@2.6.1))
- globals: 16.5.0
- jsonc-eslint-parser: 2.4.2
- local-pkg: 1.1.2
+ '@clack/prompts': 1.7.0
+ '@e18e/eslint-plugin': 0.5.1(eslint@10.8.0(jiti@2.6.1))
+ '@eslint-community/eslint-plugin-eslint-comments': 4.7.2(eslint@10.8.0(jiti@2.6.1))
+ '@eslint/markdown': 8.0.3
+ '@stylistic/eslint-plugin': 5.10.0(eslint@10.8.0(jiti@2.6.1))
+ '@typescript-eslint/eslint-plugin': 8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/parser': 8.65.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3)
+ '@vitest/eslint-plugin': 1.6.25(@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3)(vitest@4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0)))
+ ansis: 4.3.1
+ cac: 7.0.0
+ eslint: 10.8.0(jiti@2.6.1)
+ eslint-config-flat-gitignore: 2.3.0(eslint@10.8.0(jiti@2.6.1))
+ eslint-flat-config-utils: 3.2.0
+ eslint-merge-processors: 2.0.0(eslint@10.8.0(jiti@2.6.1))
+ eslint-plugin-antfu: 3.2.3(eslint@10.8.0(jiti@2.6.1))
+ eslint-plugin-command: 3.5.3(@typescript-eslint/typescript-estree@8.65.0(typescript@5.9.3))(@typescript-eslint/utils@8.65.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.8.0(jiti@2.6.1))
+ eslint-plugin-import-lite: 0.6.0(eslint@10.8.0(jiti@2.6.1))
+ eslint-plugin-jsdoc: 63.3.2(eslint@10.8.0(jiti@2.6.1))
+ eslint-plugin-jsonc: 3.3.0(eslint@10.8.0(jiti@2.6.1))
+ eslint-plugin-n: 18.2.2(eslint@10.8.0(jiti@2.6.1))(ts-declaration-location@1.0.7(typescript@5.9.3))(typescript@5.9.3)
+ eslint-plugin-no-only-tests: 3.4.0
+ eslint-plugin-perfectionist: 5.10.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3)
+ eslint-plugin-pnpm: 1.7.0(eslint@10.8.0(jiti@2.6.1))
+ eslint-plugin-regexp: 3.1.1(eslint@10.8.0(jiti@2.6.1))
+ eslint-plugin-toml: 1.5.0(eslint@10.8.0(jiti@2.6.1))
+ eslint-plugin-unicorn: 72.0.0(eslint@10.8.0(jiti@2.6.1))
+ eslint-plugin-unused-imports: 4.4.1(@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.8.0(jiti@2.6.1))
+ eslint-plugin-vue: 10.10.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.6.1)))(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.8.0(jiti@2.6.1))(vue-eslint-parser@10.4.1(eslint@10.8.0(jiti@2.6.1)))
+ eslint-plugin-yml: 3.7.0(eslint@10.8.0(jiti@2.6.1))
+ eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.40)(eslint@10.8.0(jiti@2.6.1))
+ globals: 17.9.0
+ local-pkg: 1.2.1
parse-gitignore: 2.0.0
- toml-eslint-parser: 0.10.1
- vue-eslint-parser: 10.2.0(eslint@9.39.2(jiti@2.6.1))
- yaml-eslint-parser: 1.3.2
+ toml-eslint-parser: 1.0.3
+ vue-eslint-parser: 10.4.1(eslint@10.8.0(jiti@2.6.1))
+ yaml-eslint-parser: 2.1.0
transitivePeerDependencies:
- '@eslint/json'
+ - '@typescript-eslint/typescript-estree'
+ - '@typescript-eslint/utils'
- '@vue/compiler-sfc'
+ - oxlint
- supports-color
+ - ts-declaration-location
- typescript
- vitest
'@antfu/install-pkg@1.1.0':
dependencies:
package-manager-detector: 1.6.0
- tinyexec: 1.0.2
+ tinyexec: 1.0.4
- '@antfu/ni@28.1.0':
+ '@antfu/ni@30.3.0':
dependencies:
- ansis: 4.2.0
fzf: 0.5.2
- package-manager-detector: 1.6.0
- tinyexec: 1.0.2
- tinyglobby: 0.2.15
+ package-manager-detector: 1.8.0
+ tinyexec: 1.3.0
+ tinyglobby: 0.2.17
- '@apideck/better-ajv-errors@0.3.6(ajv@8.17.1)':
+ '@apideck/better-ajv-errors@0.3.6(ajv@8.18.0)':
dependencies:
- ajv: 8.17.1
+ ajv: 8.18.0
json-schema: 0.4.0
jsonpointer: 5.0.1
leven: 3.1.0
- '@babel/code-frame@7.27.1':
+ '@babel/code-frame@7.29.0':
dependencies:
- '@babel/helper-validator-identifier': 7.28.5
+ '@babel/helper-validator-identifier': 7.29.7
js-tokens: 4.0.0
picocolors: 1.1.1
- '@babel/compat-data@7.28.5': {}
+ '@babel/compat-data@7.29.0': {}
- '@babel/core@7.28.5':
+ '@babel/core@7.29.0':
dependencies:
- '@babel/code-frame': 7.27.1
- '@babel/generator': 7.28.5
- '@babel/helper-compilation-targets': 7.27.2
- '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5)
- '@babel/helpers': 7.28.4
- '@babel/parser': 7.28.5
- '@babel/template': 7.27.2
- '@babel/traverse': 7.28.5
- '@babel/types': 7.28.5
+ '@babel/code-frame': 7.29.0
+ '@babel/generator': 7.29.1
+ '@babel/helper-compilation-targets': 7.28.6
+ '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0)
+ '@babel/helpers': 7.29.2
+ '@babel/parser': 7.29.8
+ '@babel/template': 7.28.6
+ '@babel/traverse': 7.29.0
+ '@babel/types': 7.29.8
'@jridgewell/remapping': 2.3.5
convert-source-map: 2.0.0
debug: 4.4.3
@@ -5096,51 +4938,51 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/generator@7.28.5':
+ '@babel/generator@7.29.1':
dependencies:
- '@babel/parser': 7.28.5
- '@babel/types': 7.28.5
+ '@babel/parser': 7.29.8
+ '@babel/types': 7.29.8
'@jridgewell/gen-mapping': 0.3.13
'@jridgewell/trace-mapping': 0.3.31
jsesc: 3.1.0
'@babel/helper-annotate-as-pure@7.27.3':
dependencies:
- '@babel/types': 7.28.5
+ '@babel/types': 7.29.8
- '@babel/helper-compilation-targets@7.27.2':
+ '@babel/helper-compilation-targets@7.28.6':
dependencies:
- '@babel/compat-data': 7.28.5
+ '@babel/compat-data': 7.29.0
'@babel/helper-validator-option': 7.27.1
- browserslist: 4.28.1
+ browserslist: 4.28.7
lru-cache: 5.1.1
semver: 6.3.1
- '@babel/helper-create-class-features-plugin@7.28.5(@babel/core@7.28.5)':
+ '@babel/helper-create-class-features-plugin@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
+ '@babel/core': 7.29.0
'@babel/helper-annotate-as-pure': 7.27.3
'@babel/helper-member-expression-to-functions': 7.28.5
'@babel/helper-optimise-call-expression': 7.27.1
- '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5)
+ '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0)
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
- '@babel/traverse': 7.28.5
+ '@babel/traverse': 7.29.0
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.28.5)':
+ '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
+ '@babel/core': 7.29.0
'@babel/helper-annotate-as-pure': 7.27.3
regexpu-core: 6.4.0
semver: 6.3.1
- '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.5)':
+ '@babel/helper-define-polyfill-provider@0.6.8(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-compilation-targets': 7.27.2
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-compilation-targets': 7.28.6
+ '@babel/helper-plugin-utils': 7.28.6
debug: 4.4.3
lodash.debounce: 4.0.8
resolve: 1.22.11
@@ -5151,824 +4993,848 @@ snapshots:
'@babel/helper-member-expression-to-functions@7.28.5':
dependencies:
- '@babel/traverse': 7.28.5
- '@babel/types': 7.28.5
+ '@babel/traverse': 7.29.0
+ '@babel/types': 7.29.8
transitivePeerDependencies:
- supports-color
- '@babel/helper-module-imports@7.27.1':
+ '@babel/helper-module-imports@7.28.6':
dependencies:
- '@babel/traverse': 7.28.5
- '@babel/types': 7.28.5
+ '@babel/traverse': 7.29.0
+ '@babel/types': 7.29.8
transitivePeerDependencies:
- supports-color
- '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)':
+ '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-module-imports': 7.27.1
- '@babel/helper-validator-identifier': 7.28.5
- '@babel/traverse': 7.28.5
+ '@babel/core': 7.29.0
+ '@babel/helper-module-imports': 7.28.6
+ '@babel/helper-validator-identifier': 7.29.7
+ '@babel/traverse': 7.29.0
transitivePeerDependencies:
- supports-color
'@babel/helper-optimise-call-expression@7.27.1':
dependencies:
- '@babel/types': 7.28.5
+ '@babel/types': 7.29.8
- '@babel/helper-plugin-utils@7.27.1': {}
+ '@babel/helper-plugin-utils@7.28.6': {}
- '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.5)':
+ '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
+ '@babel/core': 7.29.0
'@babel/helper-annotate-as-pure': 7.27.3
- '@babel/helper-wrap-function': 7.28.3
- '@babel/traverse': 7.28.5
+ '@babel/helper-wrap-function': 7.28.6
+ '@babel/traverse': 7.29.0
transitivePeerDependencies:
- supports-color
- '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.5)':
+ '@babel/helper-replace-supers@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
+ '@babel/core': 7.29.0
'@babel/helper-member-expression-to-functions': 7.28.5
'@babel/helper-optimise-call-expression': 7.27.1
- '@babel/traverse': 7.28.5
+ '@babel/traverse': 7.29.0
transitivePeerDependencies:
- supports-color
'@babel/helper-skip-transparent-expression-wrappers@7.27.1':
dependencies:
- '@babel/traverse': 7.28.5
- '@babel/types': 7.28.5
+ '@babel/traverse': 7.29.0
+ '@babel/types': 7.29.8
transitivePeerDependencies:
- supports-color
'@babel/helper-string-parser@7.27.1': {}
+ '@babel/helper-string-parser@7.29.7': {}
+
'@babel/helper-validator-identifier@7.28.5': {}
+ '@babel/helper-validator-identifier@7.29.7': {}
+
'@babel/helper-validator-option@7.27.1': {}
- '@babel/helper-wrap-function@7.28.3':
+ '@babel/helper-wrap-function@7.28.6':
dependencies:
- '@babel/template': 7.27.2
- '@babel/traverse': 7.28.5
- '@babel/types': 7.28.5
+ '@babel/template': 7.28.6
+ '@babel/traverse': 7.29.0
+ '@babel/types': 7.29.8
transitivePeerDependencies:
- supports-color
- '@babel/helpers@7.28.4':
+ '@babel/helpers@7.29.2':
dependencies:
- '@babel/template': 7.27.2
- '@babel/types': 7.28.5
+ '@babel/template': 7.28.6
+ '@babel/types': 7.29.8
- '@babel/parser@7.27.7':
+ '@babel/parser@7.29.2':
dependencies:
- '@babel/types': 7.28.5
+ '@babel/types': 7.29.0
- '@babel/parser@7.28.5':
+ '@babel/parser@7.29.8':
dependencies:
- '@babel/types': 7.28.5
+ '@babel/types': 7.29.8
- '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.28.5)':
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
- '@babel/traverse': 7.28.5
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
+ '@babel/traverse': 7.29.0
transitivePeerDependencies:
- supports-color
- '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
- '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.5)
+ '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3(@babel/core@7.28.5)':
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
- '@babel/traverse': 7.28.5
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
+ '@babel/traverse': 7.29.0
transitivePeerDependencies:
- supports-color
- '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.5)':
+ '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
+ '@babel/core': 7.29.0
- '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-syntax-import-assertions@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-syntax-import-attributes@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.5)':
+ '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5)
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0)
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.5)':
+ '@babel/plugin-transform-async-generator-functions@7.29.0(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
- '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.5)
- '@babel/traverse': 7.28.5
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
+ '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0)
+ '@babel/traverse': 7.29.0
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-async-to-generator@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-module-imports': 7.27.1
- '@babel/helper-plugin-utils': 7.27.1
- '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.5)
+ '@babel/core': 7.29.0
+ '@babel/helper-module-imports': 7.28.6
+ '@babel/helper-plugin-utils': 7.28.6
+ '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-block-scoping@7.28.5(@babel/core@7.28.5)':
+ '@babel/plugin-transform-block-scoping@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-class-properties@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5)
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0)
+ '@babel/helper-plugin-utils': 7.28.6
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.28.5)':
+ '@babel/plugin-transform-class-static-block@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5)
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0)
+ '@babel/helper-plugin-utils': 7.28.6
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-classes@7.28.4(@babel/core@7.28.5)':
+ '@babel/plugin-transform-classes@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
+ '@babel/core': 7.29.0
'@babel/helper-annotate-as-pure': 7.27.3
- '@babel/helper-compilation-targets': 7.27.2
+ '@babel/helper-compilation-targets': 7.28.6
'@babel/helper-globals': 7.28.0
- '@babel/helper-plugin-utils': 7.27.1
- '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5)
- '@babel/traverse': 7.28.5
+ '@babel/helper-plugin-utils': 7.28.6
+ '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0)
+ '@babel/traverse': 7.29.0
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-computed-properties@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
- '@babel/template': 7.27.2
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
+ '@babel/template': 7.28.6
- '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.28.5)':
+ '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
- '@babel/traverse': 7.28.5
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
+ '@babel/traverse': 7.29.0
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-dotall-regex@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5)
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0)
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.0(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5)
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0)
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.5)':
+ '@babel/plugin-transform-explicit-resource-management@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5)
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
+ '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-exponentiation-operator@7.28.5(@babel/core@7.28.5)':
+ '@babel/plugin-transform-exponentiation-operator@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-compilation-targets': 7.27.2
- '@babel/helper-plugin-utils': 7.27.1
- '@babel/traverse': 7.28.5
+ '@babel/core': 7.29.0
+ '@babel/helper-compilation-targets': 7.28.6
+ '@babel/helper-plugin-utils': 7.28.6
+ '@babel/traverse': 7.29.0
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-json-strings@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-literals@7.27.1(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-logical-assignment-operators@7.28.5(@babel/core@7.28.5)':
+ '@babel/plugin-transform-logical-assignment-operators@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5)
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0)
+ '@babel/helper-plugin-utils': 7.28.6
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-modules-commonjs@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5)
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0)
+ '@babel/helper-plugin-utils': 7.28.6
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-modules-systemjs@7.28.5(@babel/core@7.28.5)':
+ '@babel/plugin-transform-modules-systemjs@7.29.0(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5)
- '@babel/helper-plugin-utils': 7.27.1
- '@babel/helper-validator-identifier': 7.28.5
- '@babel/traverse': 7.28.5
+ '@babel/core': 7.29.0
+ '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0)
+ '@babel/helper-plugin-utils': 7.28.6
+ '@babel/helper-validator-identifier': 7.29.7
+ '@babel/traverse': 7.29.0
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5)
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0)
+ '@babel/helper-plugin-utils': 7.28.6
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-named-capturing-groups-regex@7.29.0(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5)
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0)
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-nullish-coalescing-operator@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-numeric-separator@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.28.5)':
+ '@babel/plugin-transform-object-rest-spread@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-compilation-targets': 7.27.2
- '@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5)
- '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5)
- '@babel/traverse': 7.28.5
+ '@babel/core': 7.29.0
+ '@babel/helper-compilation-targets': 7.28.6
+ '@babel/helper-plugin-utils': 7.28.6
+ '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0)
+ '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0)
+ '@babel/traverse': 7.29.0
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
- '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5)
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
+ '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0)
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-optional-catch-binding@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-optional-chaining@7.28.5(@babel/core@7.28.5)':
+ '@babel/plugin-transform-optional-chaining@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.5)':
+ '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-private-methods@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5)
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0)
+ '@babel/helper-plugin-utils': 7.28.6
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-private-property-in-object@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
+ '@babel/core': 7.29.0
'@babel/helper-annotate-as-pure': 7.27.3
- '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5)
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0)
+ '@babel/helper-plugin-utils': 7.28.6
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.28.5)':
+ '@babel/plugin-transform-regenerator@7.29.0(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-regexp-modifiers@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5)
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0)
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-spread@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-unicode-property-regex@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5)
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0)
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5)
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0)
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.5)':
+ '@babel/plugin-transform-unicode-sets-regex@7.28.6(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5)
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/core': 7.29.0
+ '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0)
+ '@babel/helper-plugin-utils': 7.28.6
- '@babel/preset-env@7.28.5(@babel/core@7.28.5)':
+ '@babel/preset-env@7.29.2(@babel/core@7.29.0)':
dependencies:
- '@babel/compat-data': 7.28.5
- '@babel/core': 7.28.5
- '@babel/helper-compilation-targets': 7.27.2
- '@babel/helper-plugin-utils': 7.27.1
+ '@babel/compat-data': 7.29.0
+ '@babel/core': 7.29.0
+ '@babel/helper-compilation-targets': 7.28.6
+ '@babel/helper-plugin-utils': 7.28.6
'@babel/helper-validator-option': 7.27.1
- '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.28.5)
- '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.3(@babel/core@7.28.5)
- '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.5)
- '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.5)
- '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.5)
- '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-block-scoping': 7.28.5(@babel/core@7.28.5)
- '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.28.5)
- '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.5)
- '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5)
- '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.28.5)
- '@babel/plugin-transform-exponentiation-operator': 7.28.5(@babel/core@7.28.5)
- '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-logical-assignment-operators': 7.28.5(@babel/core@7.28.5)
- '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-modules-systemjs': 7.28.5(@babel/core@7.28.5)
- '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.28.5)
- '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.5)
- '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5)
- '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-regenerator': 7.28.4(@babel/core@7.28.5)
- '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.5)
- '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.5)
- babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.5)
- babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.5)
- babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.5)
- core-js-compat: 3.47.0
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.29.0)
+ '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.29.0)
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.29.0)
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.29.0)
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0)
+ '@babel/plugin-syntax-import-assertions': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-syntax-import-attributes': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.29.0)
+ '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.29.0)
+ '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.0)
+ '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.29.0)
+ '@babel/plugin-transform-block-scoping': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-transform-class-static-block': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-transform-classes': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-transform-computed-properties': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0)
+ '@babel/plugin-transform-dotall-regex': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.29.0)
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0)
+ '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.29.0)
+ '@babel/plugin-transform-explicit-resource-management': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-transform-exponentiation-operator': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.29.0)
+ '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.29.0)
+ '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.29.0)
+ '@babel/plugin-transform-json-strings': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.29.0)
+ '@babel/plugin-transform-logical-assignment-operators': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.29.0)
+ '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.29.0)
+ '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-transform-modules-systemjs': 7.29.0(@babel/core@7.29.0)
+ '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.29.0)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0)
+ '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.29.0)
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-transform-numeric-separator': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.29.0)
+ '@babel/plugin-transform-optional-catch-binding': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0)
+ '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.29.0)
+ '@babel/plugin-transform-regenerator': 7.29.0(@babel/core@7.29.0)
+ '@babel/plugin-transform-regexp-modifiers': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.29.0)
+ '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.29.0)
+ '@babel/plugin-transform-spread': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.29.0)
+ '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.29.0)
+ '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.29.0)
+ '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.29.0)
+ '@babel/plugin-transform-unicode-property-regex': 7.28.6(@babel/core@7.29.0)
+ '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0)
+ '@babel/plugin-transform-unicode-sets-regex': 7.28.6(@babel/core@7.29.0)
+ '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.29.0)
+ babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.0)
+ babel-plugin-polyfill-corejs3: 0.14.2(@babel/core@7.29.0)
+ babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.0)
+ core-js-compat: 3.49.0
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.5)':
+ '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.0)':
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
- '@babel/types': 7.28.5
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
+ '@babel/types': 7.29.8
esutils: 2.0.3
- '@babel/runtime@7.28.4': {}
-
- '@babel/template@7.27.2':
- dependencies:
- '@babel/code-frame': 7.27.1
- '@babel/parser': 7.27.7
- '@babel/types': 7.28.5
+ '@babel/runtime@7.29.2': {}
- '@babel/traverse@7.27.7':
+ '@babel/template@7.28.6':
dependencies:
- '@babel/code-frame': 7.27.1
- '@babel/generator': 7.28.5
- '@babel/parser': 7.27.7
- '@babel/template': 7.27.2
- '@babel/types': 7.28.5
- debug: 4.4.3
- globals: 11.12.0
- transitivePeerDependencies:
- - supports-color
+ '@babel/code-frame': 7.29.0
+ '@babel/parser': 7.29.8
+ '@babel/types': 7.29.8
- '@babel/traverse@7.28.5':
+ '@babel/traverse@7.29.0':
dependencies:
- '@babel/code-frame': 7.27.1
- '@babel/generator': 7.28.5
+ '@babel/code-frame': 7.29.0
+ '@babel/generator': 7.29.1
'@babel/helper-globals': 7.28.0
- '@babel/parser': 7.28.5
- '@babel/template': 7.27.2
- '@babel/types': 7.28.5
+ '@babel/parser': 7.29.8
+ '@babel/template': 7.28.6
+ '@babel/types': 7.29.8
debug: 4.4.3
transitivePeerDependencies:
- supports-color
- '@babel/types@7.28.5':
+ '@babel/types@7.29.0':
dependencies:
'@babel/helper-string-parser': 7.27.1
'@babel/helper-validator-identifier': 7.28.5
+ '@babel/types@7.29.8':
+ dependencies:
+ '@babel/helper-string-parser': 7.29.7
+ '@babel/helper-validator-identifier': 7.29.7
+
'@canvas/image-data@1.1.0': {}
- '@clack/core@0.5.0':
+ '@clack/core@1.4.3':
dependencies:
- picocolors: 1.1.1
+ fast-wrap-ansi: 0.2.2
sisteransi: 1.0.5
- '@clack/prompts@0.11.0':
+ '@clack/prompts@1.7.0':
dependencies:
- '@clack/core': 0.5.0
- picocolors: 1.1.1
+ '@clack/core': 1.4.3
+ fast-string-width: 3.0.2
+ fast-wrap-ansi: 0.2.2
sisteransi: 1.0.5
- '@docsearch/core@4.4.0(react@19.2.3)':
- optionalDependencies:
- react: 19.2.3
+ '@docsearch/css@4.6.0': {}
+
+ '@docsearch/css@4.7.0': {}
- '@docsearch/css@4.4.0': {}
+ '@docsearch/js@4.6.0': {}
- '@docsearch/js@4.4.0(@algolia/client-search@5.46.2)(react@19.2.3)(search-insights@2.17.3)':
+ '@docsearch/js@4.7.0': {}
+
+ '@docsearch/sidepanel-js@4.6.0': {}
+
+ '@docsearch/sidepanel-js@4.7.0': {}
+
+ '@e18e/eslint-plugin@0.5.1(eslint@10.8.0(jiti@2.6.1))':
dependencies:
- '@docsearch/react': 4.4.0(@algolia/client-search@5.46.2)(react@19.2.3)(search-insights@2.17.3)
- htm: 3.1.1
- transitivePeerDependencies:
- - '@algolia/client-search'
- - '@types/react'
- - react
- - react-dom
- - search-insights
-
- '@docsearch/react@4.4.0(@algolia/client-search@5.46.2)(react@19.2.3)(search-insights@2.17.3)':
- dependencies:
- '@ai-sdk/react': 2.0.120(react@19.2.3)(zod@4.3.5)
- '@algolia/autocomplete-core': 1.19.2(@algolia/client-search@5.46.2)(algoliasearch@5.46.2)(search-insights@2.17.3)
- '@docsearch/core': 4.4.0(react@19.2.3)
- '@docsearch/css': 4.4.0
- ai: 5.0.118(zod@4.3.5)
- algoliasearch: 5.46.2
- marked: 16.4.2
- zod: 4.3.5
+ empathic: 2.0.1
+ module-replacements: 3.1.0
+ semver: 7.8.5
optionalDependencies:
- react: 19.2.3
- search-insights: 2.17.3
- transitivePeerDependencies:
- - '@algolia/client-search'
+ eslint: 10.8.0(jiti@2.6.1)
+
+ '@emnapi/core@1.10.0':
+ dependencies:
+ '@emnapi/wasi-threads': 1.2.1
+ tslib: 2.8.1
+ optional: true
+
+ '@emnapi/core@2.0.0-alpha.3':
+ dependencies:
+ '@emnapi/wasi-threads': 2.0.1
+ tslib: 2.8.1
+ optional: true
+
+ '@emnapi/runtime@1.10.0':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
+ '@emnapi/runtime@1.9.0':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
+ '@emnapi/runtime@2.0.0-alpha.3':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
+ '@emnapi/wasi-threads@1.2.1':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
- '@emnapi/runtime@1.8.1':
+ '@emnapi/wasi-threads@2.0.1':
dependencies:
tslib: 2.8.1
optional: true
- '@es-joy/jsdoccomment@0.78.0':
+ '@es-joy/jsdoccomment@0.88.0':
dependencies:
- '@types/estree': 1.0.8
- '@typescript-eslint/types': 8.52.0
- comment-parser: 1.4.1
+ '@types/estree': 1.0.9
+ '@typescript-eslint/types': 8.65.0
+ comment-parser: 1.4.7
+ esquery: 1.7.0
+ jsdoc-type-pratt-parser: 7.2.0
+
+ '@es-joy/jsdoccomment@0.91.0':
+ dependencies:
+ '@types/estree': 1.0.9
+ '@typescript-eslint/types': 8.65.0
+ comment-parser: 1.4.7
esquery: 1.7.0
- jsdoc-type-pratt-parser: 7.0.0
+ jsdoc-type-pratt-parser: 8.0.0
'@es-joy/resolve.exports@1.2.0': {}
- '@esbuild/aix-ppc64@0.27.2':
+ '@esbuild/aix-ppc64@0.28.1':
optional: true
- '@esbuild/android-arm64@0.27.2':
+ '@esbuild/android-arm64@0.28.1':
optional: true
- '@esbuild/android-arm@0.27.2':
+ '@esbuild/android-arm@0.28.1':
optional: true
- '@esbuild/android-x64@0.27.2':
+ '@esbuild/android-x64@0.28.1':
optional: true
- '@esbuild/darwin-arm64@0.27.2':
+ '@esbuild/darwin-arm64@0.28.1':
optional: true
- '@esbuild/darwin-x64@0.27.2':
+ '@esbuild/darwin-x64@0.28.1':
optional: true
- '@esbuild/freebsd-arm64@0.27.2':
+ '@esbuild/freebsd-arm64@0.28.1':
optional: true
- '@esbuild/freebsd-x64@0.27.2':
+ '@esbuild/freebsd-x64@0.28.1':
optional: true
- '@esbuild/linux-arm64@0.27.2':
+ '@esbuild/linux-arm64@0.28.1':
optional: true
- '@esbuild/linux-arm@0.27.2':
+ '@esbuild/linux-arm@0.28.1':
optional: true
- '@esbuild/linux-ia32@0.27.2':
+ '@esbuild/linux-ia32@0.28.1':
optional: true
- '@esbuild/linux-loong64@0.27.2':
+ '@esbuild/linux-loong64@0.28.1':
optional: true
- '@esbuild/linux-mips64el@0.27.2':
+ '@esbuild/linux-mips64el@0.28.1':
optional: true
- '@esbuild/linux-ppc64@0.27.2':
+ '@esbuild/linux-ppc64@0.28.1':
optional: true
- '@esbuild/linux-riscv64@0.27.2':
+ '@esbuild/linux-riscv64@0.28.1':
optional: true
- '@esbuild/linux-s390x@0.27.2':
+ '@esbuild/linux-s390x@0.28.1':
optional: true
- '@esbuild/linux-x64@0.27.2':
+ '@esbuild/linux-x64@0.28.1':
optional: true
- '@esbuild/netbsd-arm64@0.27.2':
+ '@esbuild/netbsd-arm64@0.28.1':
optional: true
- '@esbuild/netbsd-x64@0.27.2':
+ '@esbuild/netbsd-x64@0.28.1':
optional: true
- '@esbuild/openbsd-arm64@0.27.2':
+ '@esbuild/openbsd-arm64@0.28.1':
optional: true
- '@esbuild/openbsd-x64@0.27.2':
+ '@esbuild/openbsd-x64@0.28.1':
optional: true
- '@esbuild/openharmony-arm64@0.27.2':
+ '@esbuild/openharmony-arm64@0.28.1':
optional: true
- '@esbuild/sunos-x64@0.27.2':
+ '@esbuild/sunos-x64@0.28.1':
optional: true
- '@esbuild/win32-arm64@0.27.2':
+ '@esbuild/win32-arm64@0.28.1':
optional: true
- '@esbuild/win32-ia32@0.27.2':
+ '@esbuild/win32-ia32@0.28.1':
optional: true
- '@esbuild/win32-x64@0.27.2':
+ '@esbuild/win32-x64@0.28.1':
optional: true
- '@eslint-community/eslint-plugin-eslint-comments@4.5.0(eslint@9.39.2(jiti@2.6.1))':
+ '@eslint-community/eslint-plugin-eslint-comments@4.7.2(eslint@10.8.0(jiti@2.6.1))':
dependencies:
escape-string-regexp: 4.0.0
- eslint: 9.39.2(jiti@2.6.1)
- ignore: 5.3.2
+ eslint: 10.8.0(jiti@2.6.1)
+ ignore: 7.0.5
- '@eslint-community/eslint-utils@4.9.1(eslint@9.39.2(jiti@2.6.1))':
+ '@eslint-community/eslint-utils@4.9.1(eslint@10.8.0(jiti@2.6.1))':
dependencies:
- eslint: 9.39.2(jiti@2.6.1)
+ eslint: 10.8.0(jiti@2.6.1)
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.12.2': {}
- '@eslint/compat@1.4.1(eslint@9.39.2(jiti@2.6.1))':
+ '@eslint/compat@2.0.3(eslint@10.8.0(jiti@2.6.1))':
dependencies:
- '@eslint/core': 0.17.0
+ '@eslint/core': 1.1.1
optionalDependencies:
- eslint: 9.39.2(jiti@2.6.1)
+ eslint: 10.8.0(jiti@2.6.1)
- '@eslint/config-array@0.21.1':
+ '@eslint/config-array@0.23.5':
dependencies:
- '@eslint/object-schema': 2.1.7
+ '@eslint/object-schema': 3.0.5
debug: 4.4.3
- minimatch: 3.1.2
+ minimatch: 10.2.6
transitivePeerDependencies:
- supports-color
- '@eslint/config-helpers@0.4.2':
+ '@eslint/config-helpers@0.5.5':
+ dependencies:
+ '@eslint/core': 1.2.1
+
+ '@eslint/config-helpers@0.7.0':
dependencies:
- '@eslint/core': 0.17.0
+ '@eslint/core': 1.2.1
- '@eslint/core@0.17.0':
+ '@eslint/core@1.1.1':
dependencies:
'@types/json-schema': 7.0.15
- '@eslint/eslintrc@3.3.3':
+ '@eslint/core@1.2.1':
dependencies:
- ajv: 6.12.6
- debug: 4.4.3
- espree: 10.4.0
- globals: 14.0.0
- ignore: 5.3.2
- import-fresh: 3.3.1
- js-yaml: 4.1.1
- minimatch: 3.1.2
- strip-json-comments: 3.1.1
- transitivePeerDependencies:
- - supports-color
+ '@types/json-schema': 7.0.15
- '@eslint/js@9.39.2': {}
+ '@eslint/css-tree@4.0.5':
+ dependencies:
+ mdn-data: 2.29.0
+ source-map-js: 1.2.1
- '@eslint/markdown@7.5.1':
+ '@eslint/markdown@8.0.3':
dependencies:
- '@eslint/core': 0.17.0
- '@eslint/plugin-kit': 0.4.1
+ '@eslint/core': 1.2.1
+ '@eslint/plugin-kit': 0.7.2
github-slugger: 2.0.0
- mdast-util-from-markdown: 2.0.2
+ mdast-util-from-markdown: 2.0.3
mdast-util-frontmatter: 2.0.1
mdast-util-gfm: 3.1.0
+ mdast-util-math: 3.0.0
micromark-extension-frontmatter: 2.0.0
micromark-extension-gfm: 3.0.0
+ micromark-extension-math: 3.1.0
micromark-util-normalize-identifier: 2.0.1
transitivePeerDependencies:
- supports-color
- '@eslint/object-schema@2.1.7': {}
+ '@eslint/object-schema@3.0.5': {}
- '@eslint/plugin-kit@0.4.1':
+ '@eslint/plugin-kit@0.7.2':
dependencies:
- '@eslint/core': 0.17.0
+ '@eslint/core': 1.2.1
levn: 0.4.1
- '@floating-ui/core@1.7.3':
+ '@floating-ui/core@1.7.5':
dependencies:
- '@floating-ui/utils': 0.2.10
+ '@floating-ui/utils': 0.2.11
'@floating-ui/dom@1.1.1':
dependencies:
- '@floating-ui/core': 1.7.3
+ '@floating-ui/core': 1.7.5
- '@floating-ui/dom@1.7.4':
+ '@floating-ui/dom@1.7.6':
dependencies:
- '@floating-ui/core': 1.7.3
- '@floating-ui/utils': 0.2.10
+ '@floating-ui/core': 1.7.5
+ '@floating-ui/utils': 0.2.11
- '@floating-ui/utils@0.2.10': {}
+ '@floating-ui/utils@0.2.11': {}
- '@floating-ui/vue@1.1.9(vue@3.5.26(typescript@5.9.3))':
+ '@floating-ui/vue@1.1.11(vue@3.5.40(typescript@5.9.3))':
dependencies:
- '@floating-ui/dom': 1.7.4
- '@floating-ui/utils': 0.2.10
- vue-demi: 0.14.10(vue@3.5.26(typescript@5.9.3))
+ '@floating-ui/dom': 1.7.6
+ '@floating-ui/utils': 0.2.11
+ vue-demi: 0.14.10(vue@3.5.40(typescript@5.9.3))
transitivePeerDependencies:
- '@vue/composition-api'
- vue
@@ -5984,34 +5850,34 @@ snapshots:
'@humanwhocodes/retry@0.4.3': {}
- '@iconify-json/carbon@1.2.16':
+ '@iconify-json/carbon@1.2.25':
dependencies:
'@iconify/types': 2.0.0
- '@iconify-json/logos@1.2.10':
+ '@iconify-json/logos@1.2.11':
dependencies:
'@iconify/types': 2.0.0
- '@iconify-json/simple-icons@1.2.65':
+ '@iconify-json/simple-icons@1.2.94':
dependencies:
'@iconify/types': 2.0.0
- '@iconify-json/vscode-icons@1.2.37':
+ '@iconify-json/vscode-icons@1.2.68':
dependencies:
'@iconify/types': 2.0.0
'@iconify/types@2.0.0': {}
- '@iconify/utils@3.1.0':
+ '@iconify/utils@3.1.4':
dependencies:
'@antfu/install-pkg': 1.1.0
'@iconify/types': 2.0.0
- mlly: 1.8.0
+ import-meta-resolve: 4.2.0
- '@iconify/vue@5.0.0(vue@3.5.26(typescript@5.9.3))':
+ '@iconify/vue@5.0.1(vue@3.5.40(typescript@5.9.3))':
dependencies:
'@iconify/types': 2.0.0
- vue: 3.5.26(typescript@5.9.3)
+ vue: 3.5.40(typescript@5.9.3)
'@img/sharp-darwin-arm64@0.33.5':
optionalDependencies:
@@ -6079,7 +5945,7 @@ snapshots:
'@img/sharp-wasm32@0.33.5':
dependencies:
- '@emnapi/runtime': 1.8.1
+ '@emnapi/runtime': 1.9.0
optional: true
'@img/sharp-win32-ia32@0.33.5':
@@ -6088,28 +5954,15 @@ snapshots:
'@img/sharp-win32-x64@0.33.5':
optional: true
- '@internationalized/date@3.10.1':
+ '@internationalized/date@3.12.0':
dependencies:
- '@swc/helpers': 0.5.18
+ '@swc/helpers': 0.5.19
'@internationalized/number@3.6.5':
dependencies:
- '@swc/helpers': 0.5.18
-
- '@isaacs/balanced-match@4.0.1': {}
-
- '@isaacs/brace-expansion@5.0.0':
- dependencies:
- '@isaacs/balanced-match': 4.0.1
+ '@swc/helpers': 0.5.19
- '@isaacs/cliui@8.0.2':
- dependencies:
- string-width: 5.1.2
- string-width-cjs: string-width@4.2.3
- strip-ansi: 7.1.2
- strip-ansi-cjs: strip-ansi@6.0.1
- wrap-ansi: 8.1.0
- wrap-ansi-cjs: wrap-ansi@7.0.0
+ '@isaacs/cliui@9.0.0': {}
'@jridgewell/gen-mapping@0.3.13':
dependencies:
@@ -6135,203 +5988,266 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.5
- '@opentelemetry/api@1.9.0': {}
+ '@napi-rs/wasm-runtime@1.2.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)':
+ dependencies:
+ '@emnapi/core': 1.10.0
+ '@emnapi/runtime': 1.10.0
+ '@tybys/wasm-util': 0.10.3
+ optional: true
- '@pkgr/core@0.2.9': {}
+ '@napi-rs/wasm-runtime@1.2.2(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3)':
+ dependencies:
+ '@emnapi/core': 2.0.0-alpha.3
+ '@emnapi/runtime': 2.0.0-alpha.3
+ '@tybys/wasm-util': 0.10.3
+ optional: true
- '@polka/url@1.0.0-next.29': {}
+ '@ota-meshi/ast-token-store@0.3.0': {}
- '@quansync/fs@1.0.0':
- dependencies:
- quansync: 1.0.0
+ '@oxc-parser/binding-android-arm-eabi@0.131.0':
+ optional: true
+
+ '@oxc-parser/binding-android-arm64@0.131.0':
+ optional: true
- '@rive-app/canvas-lite@2.34.0': {}
+ '@oxc-parser/binding-darwin-arm64@0.131.0':
+ optional: true
- '@rolldown/pluginutils@1.0.0-beta.53': {}
+ '@oxc-parser/binding-darwin-x64@0.131.0':
+ optional: true
- '@rollup/plugin-babel@5.3.1(@babel/core@7.28.5)(rollup@2.79.2)':
- dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-module-imports': 7.27.1
- '@rollup/pluginutils': 3.1.0(rollup@2.79.2)
- rollup: 2.79.2
- transitivePeerDependencies:
- - supports-color
+ '@oxc-parser/binding-freebsd-x64@0.131.0':
+ optional: true
- '@rollup/plugin-node-resolve@15.3.1(rollup@2.79.2)':
- dependencies:
- '@rollup/pluginutils': 5.3.0(rollup@2.79.2)
- '@types/resolve': 1.20.2
- deepmerge: 4.3.1
- is-module: 1.0.0
- resolve: 1.22.11
- optionalDependencies:
- rollup: 2.79.2
+ '@oxc-parser/binding-linux-arm-gnueabihf@0.131.0':
+ optional: true
- '@rollup/plugin-replace@2.4.2(rollup@2.79.2)':
- dependencies:
- '@rollup/pluginutils': 3.1.0(rollup@2.79.2)
- magic-string: 0.25.9
- rollup: 2.79.2
+ '@oxc-parser/binding-linux-arm-musleabihf@0.131.0':
+ optional: true
- '@rollup/plugin-terser@0.4.4(rollup@2.79.2)':
- dependencies:
- serialize-javascript: 6.0.2
- smob: 1.5.0
- terser: 5.44.1
- optionalDependencies:
- rollup: 2.79.2
+ '@oxc-parser/binding-linux-arm64-gnu@0.131.0':
+ optional: true
- '@rollup/pluginutils@3.1.0(rollup@2.79.2)':
- dependencies:
- '@types/estree': 0.0.39
- estree-walker: 1.0.1
- picomatch: 2.3.1
- rollup: 2.79.2
+ '@oxc-parser/binding-linux-arm64-musl@0.131.0':
+ optional: true
- '@rollup/pluginutils@5.3.0(rollup@2.79.2)':
- dependencies:
- '@types/estree': 1.0.8
- estree-walker: 2.0.2
- picomatch: 4.0.3
- optionalDependencies:
- rollup: 2.79.2
+ '@oxc-parser/binding-linux-ppc64-gnu@0.131.0':
+ optional: true
- '@rollup/rollup-android-arm-eabi@4.55.1':
+ '@oxc-parser/binding-linux-riscv64-gnu@0.131.0':
optional: true
- '@rollup/rollup-android-arm64@4.55.1':
+ '@oxc-parser/binding-linux-riscv64-musl@0.131.0':
optional: true
- '@rollup/rollup-darwin-arm64@4.55.1':
+ '@oxc-parser/binding-linux-s390x-gnu@0.131.0':
optional: true
- '@rollup/rollup-darwin-x64@4.55.1':
+ '@oxc-parser/binding-linux-x64-gnu@0.131.0':
optional: true
- '@rollup/rollup-freebsd-arm64@4.55.1':
+ '@oxc-parser/binding-linux-x64-musl@0.131.0':
optional: true
- '@rollup/rollup-freebsd-x64@4.55.1':
+ '@oxc-parser/binding-openharmony-arm64@0.131.0':
optional: true
- '@rollup/rollup-linux-arm-gnueabihf@4.55.1':
+ '@oxc-parser/binding-wasm32-wasi@0.131.0':
+ dependencies:
+ '@emnapi/core': 1.10.0
+ '@emnapi/runtime': 1.10.0
+ '@napi-rs/wasm-runtime': 1.2.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)
optional: true
- '@rollup/rollup-linux-arm-musleabihf@4.55.1':
+ '@oxc-parser/binding-win32-arm64-msvc@0.131.0':
optional: true
- '@rollup/rollup-linux-arm64-gnu@4.55.1':
+ '@oxc-parser/binding-win32-ia32-msvc@0.131.0':
optional: true
- '@rollup/rollup-linux-arm64-musl@4.55.1':
+ '@oxc-parser/binding-win32-x64-msvc@0.131.0':
optional: true
- '@rollup/rollup-linux-loong64-gnu@4.55.1':
+ '@oxc-project/types@0.131.0': {}
+
+ '@oxc-project/types@0.142.0': {}
+
+ '@pkgr/core@0.2.9': {}
+
+ '@polka/url@1.0.0-next.29': {}
+
+ '@quansync/fs@1.0.0':
+ dependencies:
+ quansync: 1.0.0
+
+ '@rive-app/canvas-lite@2.35.3': {}
+
+ '@rolldown/binding-android-arm64@1.2.1':
optional: true
- '@rollup/rollup-linux-loong64-musl@4.55.1':
+ '@rolldown/binding-darwin-arm64@1.2.1':
optional: true
- '@rollup/rollup-linux-ppc64-gnu@4.55.1':
+ '@rolldown/binding-darwin-x64@1.2.1':
optional: true
- '@rollup/rollup-linux-ppc64-musl@4.55.1':
+ '@rolldown/binding-freebsd-x64@1.2.1':
optional: true
- '@rollup/rollup-linux-riscv64-gnu@4.55.1':
+ '@rolldown/binding-linux-arm-gnueabihf@1.2.1':
optional: true
- '@rollup/rollup-linux-riscv64-musl@4.55.1':
+ '@rolldown/binding-linux-arm64-gnu@1.2.1':
optional: true
- '@rollup/rollup-linux-s390x-gnu@4.55.1':
+ '@rolldown/binding-linux-arm64-musl@1.2.1':
optional: true
- '@rollup/rollup-linux-x64-gnu@4.55.1':
+ '@rolldown/binding-linux-ppc64-gnu@1.2.1':
optional: true
- '@rollup/rollup-linux-x64-musl@4.55.1':
+ '@rolldown/binding-linux-s390x-gnu@1.2.1':
optional: true
- '@rollup/rollup-openbsd-x64@4.55.1':
+ '@rolldown/binding-linux-x64-gnu@1.2.1':
optional: true
- '@rollup/rollup-openharmony-arm64@4.55.1':
+ '@rolldown/binding-linux-x64-musl@1.2.1':
optional: true
- '@rollup/rollup-win32-arm64-msvc@4.55.1':
+ '@rolldown/binding-openharmony-arm64@1.2.1':
optional: true
- '@rollup/rollup-win32-ia32-msvc@4.55.1':
+ '@rolldown/binding-wasm32-wasi@1.2.1':
+ dependencies:
+ '@emnapi/core': 2.0.0-alpha.3
+ '@emnapi/runtime': 2.0.0-alpha.3
+ '@napi-rs/wasm-runtime': 1.2.2(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3)
optional: true
- '@rollup/rollup-win32-x64-gnu@4.55.1':
+ '@rolldown/binding-win32-arm64-msvc@1.2.1':
optional: true
- '@rollup/rollup-win32-x64-msvc@4.55.1':
+ '@rolldown/binding-win32-x64-msvc@1.2.1':
optional: true
- '@shikijs/core@3.21.0':
+ '@rolldown/pluginutils@1.0.1': {}
+
+ '@rollup/plugin-babel@5.3.1(@babel/core@7.29.0)(rollup@2.80.0)':
+ dependencies:
+ '@babel/core': 7.29.0
+ '@babel/helper-module-imports': 7.28.6
+ '@rollup/pluginutils': 3.1.0(rollup@2.80.0)
+ rollup: 2.80.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@rollup/plugin-node-resolve@15.3.1(rollup@2.80.0)':
+ dependencies:
+ '@rollup/pluginutils': 5.3.0(rollup@2.80.0)
+ '@types/resolve': 1.20.2
+ deepmerge: 4.3.1
+ is-module: 1.0.0
+ resolve: 1.22.11
+ optionalDependencies:
+ rollup: 2.80.0
+
+ '@rollup/plugin-replace@2.4.2(rollup@2.80.0)':
+ dependencies:
+ '@rollup/pluginutils': 3.1.0(rollup@2.80.0)
+ magic-string: 0.25.9
+ rollup: 2.80.0
+
+ '@rollup/plugin-terser@0.4.4(rollup@2.80.0)':
+ dependencies:
+ serialize-javascript: 6.0.2
+ smob: 1.6.1
+ terser: 5.46.1
+ optionalDependencies:
+ rollup: 2.80.0
+
+ '@rollup/pluginutils@3.1.0(rollup@2.80.0)':
dependencies:
- '@shikijs/types': 3.21.0
+ '@types/estree': 0.0.39
+ estree-walker: 1.0.1
+ picomatch: 2.3.1
+ rollup: 2.80.0
+
+ '@rollup/pluginutils@5.3.0(rollup@2.80.0)':
+ dependencies:
+ '@types/estree': 1.0.9
+ estree-walker: 2.0.2
+ picomatch: 4.0.5
+ optionalDependencies:
+ rollup: 2.80.0
+
+ '@shikijs/core@4.4.1':
+ dependencies:
+ '@shikijs/primitive': 4.4.1
+ '@shikijs/types': 4.4.1
'@shikijs/vscode-textmate': 10.0.2
- '@types/hast': 3.0.4
+ '@types/hast': 3.0.5
hast-util-to-html: 9.0.5
- '@shikijs/engine-javascript@3.21.0':
+ '@shikijs/engine-javascript@4.4.1':
dependencies:
- '@shikijs/types': 3.21.0
+ '@shikijs/types': 4.4.1
'@shikijs/vscode-textmate': 10.0.2
- oniguruma-to-es: 4.3.4
+ oniguruma-to-es: 4.3.6
- '@shikijs/engine-oniguruma@3.21.0':
+ '@shikijs/engine-oniguruma@4.4.1':
dependencies:
- '@shikijs/types': 3.21.0
+ '@shikijs/types': 4.4.1
'@shikijs/vscode-textmate': 10.0.2
- '@shikijs/langs@3.21.0':
+ '@shikijs/langs@4.4.1':
+ dependencies:
+ '@shikijs/types': 4.4.1
+
+ '@shikijs/primitive@4.4.1':
dependencies:
- '@shikijs/types': 3.21.0
+ '@shikijs/types': 4.4.1
+ '@shikijs/vscode-textmate': 10.0.2
+ '@types/hast': 3.0.5
- '@shikijs/themes@3.21.0':
+ '@shikijs/themes@4.4.1':
dependencies:
- '@shikijs/types': 3.21.0
+ '@shikijs/types': 4.4.1
- '@shikijs/transformers@3.21.0':
+ '@shikijs/transformers@4.4.1':
dependencies:
- '@shikijs/core': 3.21.0
- '@shikijs/types': 3.21.0
+ '@shikijs/core': 4.4.1
+ '@shikijs/types': 4.4.1
- '@shikijs/twoslash@3.21.0(typescript@5.9.3)':
+ '@shikijs/twoslash@4.4.1(typescript@5.9.3)':
dependencies:
- '@shikijs/core': 3.21.0
- '@shikijs/types': 3.21.0
- twoslash: 0.3.6(typescript@5.9.3)
+ '@shikijs/core': 4.4.1
+ '@shikijs/types': 4.4.1
+ twoslash: 0.3.9(typescript@5.9.3)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@shikijs/types@3.21.0':
+ '@shikijs/types@4.4.1':
dependencies:
'@shikijs/vscode-textmate': 10.0.2
- '@types/hast': 3.0.4
+ '@types/hast': 3.0.5
- '@shikijs/vitepress-twoslash@3.21.0(typescript@5.9.3)':
+ '@shikijs/vitepress-twoslash@4.4.1(typescript@5.9.3)':
dependencies:
- '@shikijs/twoslash': 3.21.0(typescript@5.9.3)
- floating-vue: 5.2.2(vue@3.5.26(typescript@5.9.3))
+ '@shikijs/twoslash': 4.4.1(typescript@5.9.3)
+ floating-vue: 5.2.2(vue@3.5.40(typescript@5.9.3))
lz-string: 1.5.0
- magic-string: 0.30.21
- markdown-it: 14.1.0
- mdast-util-from-markdown: 2.0.2
+ magic-string: 1.1.0
+ markdown-it: 14.3.0
+ mdast-util-from-markdown: 2.0.3
mdast-util-gfm: 3.1.0
mdast-util-to-hast: 13.2.1
ohash: 2.0.11
- shiki: 3.21.0
- twoslash: 0.3.6(typescript@5.9.3)
- twoslash-vue: 0.3.6(typescript@5.9.3)
- vue: 3.5.26(typescript@5.9.3)
+ shiki: 4.4.1
+ twoslash: 0.3.9(typescript@5.9.3)
+ twoslash-vue: 0.3.9(typescript@5.9.3)
+ vue: 3.5.40(typescript@5.9.3)
transitivePeerDependencies:
- '@nuxt/kit'
- supports-color
@@ -6343,13 +6259,13 @@ snapshots:
'@standard-schema/spec@1.1.0': {}
- '@stylistic/eslint-plugin@5.7.0(eslint@9.39.2(jiti@2.6.1))':
+ '@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.6.1))':
dependencies:
- '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1))
- '@typescript-eslint/types': 8.52.0
- eslint: 9.39.2(jiti@2.6.1)
- eslint-visitor-keys: 5.0.0
- espree: 11.0.0
+ '@eslint-community/eslint-utils': 4.9.1(eslint@10.8.0(jiti@2.6.1))
+ '@typescript-eslint/types': 8.57.1
+ eslint: 10.8.0(jiti@2.6.1)
+ eslint-visitor-keys: 4.2.1
+ espree: 10.4.0
estraverse: 5.3.0
picomatch: 4.0.3
@@ -6360,89 +6276,94 @@ snapshots:
magic-string: 0.25.9
string.prototype.matchall: 4.0.12
- '@swc/helpers@0.5.18':
+ '@swc/helpers@0.5.19':
dependencies:
tslib: 2.8.1
- '@tailwindcss/node@4.1.18':
+ '@tailwindcss/node@4.2.1':
dependencies:
'@jridgewell/remapping': 2.3.5
- enhanced-resolve: 5.18.4
+ enhanced-resolve: 5.20.1
jiti: 2.6.1
- lightningcss: 1.30.2
+ lightningcss: 1.31.1
magic-string: 0.30.21
source-map-js: 1.2.1
- tailwindcss: 4.1.18
+ tailwindcss: 4.2.1
- '@tailwindcss/oxide-android-arm64@4.1.18':
+ '@tailwindcss/oxide-android-arm64@4.2.1':
optional: true
- '@tailwindcss/oxide-darwin-arm64@4.1.18':
+ '@tailwindcss/oxide-darwin-arm64@4.2.1':
optional: true
- '@tailwindcss/oxide-darwin-x64@4.1.18':
+ '@tailwindcss/oxide-darwin-x64@4.2.1':
optional: true
- '@tailwindcss/oxide-freebsd-x64@4.1.18':
+ '@tailwindcss/oxide-freebsd-x64@4.2.1':
optional: true
- '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18':
+ '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.1':
optional: true
- '@tailwindcss/oxide-linux-arm64-gnu@4.1.18':
+ '@tailwindcss/oxide-linux-arm64-gnu@4.2.1':
optional: true
- '@tailwindcss/oxide-linux-arm64-musl@4.1.18':
+ '@tailwindcss/oxide-linux-arm64-musl@4.2.1':
optional: true
- '@tailwindcss/oxide-linux-x64-gnu@4.1.18':
+ '@tailwindcss/oxide-linux-x64-gnu@4.2.1':
optional: true
- '@tailwindcss/oxide-linux-x64-musl@4.1.18':
+ '@tailwindcss/oxide-linux-x64-musl@4.2.1':
optional: true
- '@tailwindcss/oxide-wasm32-wasi@4.1.18':
+ '@tailwindcss/oxide-wasm32-wasi@4.2.1':
optional: true
- '@tailwindcss/oxide-win32-arm64-msvc@4.1.18':
+ '@tailwindcss/oxide-win32-arm64-msvc@4.2.1':
optional: true
- '@tailwindcss/oxide-win32-x64-msvc@4.1.18':
+ '@tailwindcss/oxide-win32-x64-msvc@4.2.1':
optional: true
- '@tailwindcss/oxide@4.1.18':
+ '@tailwindcss/oxide@4.2.1':
optionalDependencies:
- '@tailwindcss/oxide-android-arm64': 4.1.18
- '@tailwindcss/oxide-darwin-arm64': 4.1.18
- '@tailwindcss/oxide-darwin-x64': 4.1.18
- '@tailwindcss/oxide-freebsd-x64': 4.1.18
- '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.18
- '@tailwindcss/oxide-linux-arm64-gnu': 4.1.18
- '@tailwindcss/oxide-linux-arm64-musl': 4.1.18
- '@tailwindcss/oxide-linux-x64-gnu': 4.1.18
- '@tailwindcss/oxide-linux-x64-musl': 4.1.18
- '@tailwindcss/oxide-wasm32-wasi': 4.1.18
- '@tailwindcss/oxide-win32-arm64-msvc': 4.1.18
- '@tailwindcss/oxide-win32-x64-msvc': 4.1.18
-
- '@tailwindcss/typography@0.5.19(tailwindcss@4.1.18)':
+ '@tailwindcss/oxide-android-arm64': 4.2.1
+ '@tailwindcss/oxide-darwin-arm64': 4.2.1
+ '@tailwindcss/oxide-darwin-x64': 4.2.1
+ '@tailwindcss/oxide-freebsd-x64': 4.2.1
+ '@tailwindcss/oxide-linux-arm-gnueabihf': 4.2.1
+ '@tailwindcss/oxide-linux-arm64-gnu': 4.2.1
+ '@tailwindcss/oxide-linux-arm64-musl': 4.2.1
+ '@tailwindcss/oxide-linux-x64-gnu': 4.2.1
+ '@tailwindcss/oxide-linux-x64-musl': 4.2.1
+ '@tailwindcss/oxide-wasm32-wasi': 4.2.1
+ '@tailwindcss/oxide-win32-arm64-msvc': 4.2.1
+ '@tailwindcss/oxide-win32-x64-msvc': 4.2.1
+
+ '@tailwindcss/typography@0.5.19(tailwindcss@4.2.1)':
dependencies:
postcss-selector-parser: 6.0.10
- tailwindcss: 4.1.18
+ tailwindcss: 4.2.1
- '@tailwindcss/vite@4.1.18(vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))':
+ '@tailwindcss/vite@4.2.1(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0))':
dependencies:
- '@tailwindcss/node': 4.1.18
- '@tailwindcss/oxide': 4.1.18
- tailwindcss: 4.1.18
- vite: 7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)
+ '@tailwindcss/node': 4.2.1
+ '@tailwindcss/oxide': 4.2.1
+ tailwindcss: 4.2.1
+ vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0)
+
+ '@tanstack/virtual-core@3.13.23': {}
- '@tanstack/virtual-core@3.13.18': {}
+ '@tanstack/vue-virtual@3.13.23(vue@3.5.40(typescript@5.9.3))':
+ dependencies:
+ '@tanstack/virtual-core': 3.13.23
+ vue: 3.5.40(typescript@5.9.3)
- '@tanstack/vue-virtual@3.13.18(vue@3.5.26(typescript@5.9.3))':
+ '@tybys/wasm-util@0.10.3':
dependencies:
- '@tanstack/virtual-core': 3.13.18
- vue: 3.5.26(typescript@5.9.3)
+ tslib: 2.8.1
+ optional: true
'@types/chai@5.2.3':
dependencies:
@@ -6455,16 +6376,26 @@ snapshots:
'@types/deep-eql@4.0.2': {}
+ '@types/esrecurse@4.3.1': {}
+
'@types/estree@0.0.39': {}
'@types/estree@1.0.8': {}
+ '@types/estree@1.0.9': {}
+
'@types/hast@3.0.4':
dependencies:
'@types/unist': 3.0.3
+ '@types/hast@3.0.5':
+ dependencies:
+ '@types/unist': 3.0.3
+
'@types/json-schema@7.0.15': {}
+ '@types/katex@0.16.8': {}
+
'@types/linkify-it@5.0.0': {}
'@types/markdown-it@14.1.2':
@@ -6480,9 +6411,9 @@ snapshots:
'@types/ms@2.1.0': {}
- '@types/node@25.0.3':
+ '@types/node@26.1.2':
dependencies:
- undici-types: 7.16.0
+ undici-types: 8.3.0
'@types/resolve@1.20.2': {}
@@ -6492,254 +6423,287 @@ snapshots:
'@types/web-bluetooth@0.0.21': {}
- '@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)':
+ '@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
'@eslint-community/regexpp': 4.12.2
- '@typescript-eslint/parser': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/scope-manager': 8.52.0
- '@typescript-eslint/type-utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/visitor-keys': 8.52.0
- eslint: 9.39.2(jiti@2.6.1)
+ '@typescript-eslint/parser': 8.65.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/scope-manager': 8.65.0
+ '@typescript-eslint/type-utils': 8.65.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.65.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.65.0
+ eslint: 10.8.0(jiti@2.6.1)
ignore: 7.0.5
natural-compare: 1.4.0
- ts-api-utils: 2.4.0(typescript@5.9.3)
+ ts-api-utils: 2.5.0(typescript@5.9.3)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/scope-manager': 8.65.0
+ '@typescript-eslint/types': 8.65.0
+ '@typescript-eslint/typescript-estree': 8.65.0(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.65.0
+ debug: 4.4.3
+ eslint: 10.8.0(jiti@2.6.1)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)':
+ '@typescript-eslint/project-service@8.57.1(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/scope-manager': 8.52.0
- '@typescript-eslint/types': 8.52.0
- '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3)
- '@typescript-eslint/visitor-keys': 8.52.0
+ '@typescript-eslint/tsconfig-utils': 8.57.1(typescript@5.9.3)
+ '@typescript-eslint/types': 8.57.1
debug: 4.4.3
- eslint: 9.39.2(jiti@2.6.1)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/project-service@8.52.0(typescript@5.9.3)':
+ '@typescript-eslint/project-service@8.65.0(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.9.3)
- '@typescript-eslint/types': 8.52.0
+ '@typescript-eslint/tsconfig-utils': 8.65.0(typescript@5.9.3)
+ '@typescript-eslint/types': 8.65.0
debug: 4.4.3
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/scope-manager@8.52.0':
+ '@typescript-eslint/scope-manager@8.57.1':
+ dependencies:
+ '@typescript-eslint/types': 8.57.1
+ '@typescript-eslint/visitor-keys': 8.57.1
+
+ '@typescript-eslint/scope-manager@8.65.0':
dependencies:
- '@typescript-eslint/types': 8.52.0
- '@typescript-eslint/visitor-keys': 8.52.0
+ '@typescript-eslint/types': 8.65.0
+ '@typescript-eslint/visitor-keys': 8.65.0
- '@typescript-eslint/tsconfig-utils@8.52.0(typescript@5.9.3)':
+ '@typescript-eslint/tsconfig-utils@8.57.1(typescript@5.9.3)':
dependencies:
typescript: 5.9.3
- '@typescript-eslint/type-utils@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)':
+ '@typescript-eslint/tsconfig-utils@8.65.0(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/types': 8.52.0
- '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3)
- '@typescript-eslint/utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
+ typescript: 5.9.3
+
+ '@typescript-eslint/type-utils@8.65.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/types': 8.65.0
+ '@typescript-eslint/typescript-estree': 8.65.0(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.65.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3)
debug: 4.4.3
- eslint: 9.39.2(jiti@2.6.1)
- ts-api-utils: 2.4.0(typescript@5.9.3)
+ eslint: 10.8.0(jiti@2.6.1)
+ ts-api-utils: 2.5.0(typescript@5.9.3)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/types@8.52.0': {}
+ '@typescript-eslint/types@8.57.1': {}
- '@typescript-eslint/typescript-estree@8.52.0(typescript@5.9.3)':
+ '@typescript-eslint/types@8.65.0': {}
+
+ '@typescript-eslint/typescript-estree@8.57.1(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/project-service': 8.52.0(typescript@5.9.3)
- '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.9.3)
- '@typescript-eslint/types': 8.52.0
- '@typescript-eslint/visitor-keys': 8.52.0
+ '@typescript-eslint/project-service': 8.57.1(typescript@5.9.3)
+ '@typescript-eslint/tsconfig-utils': 8.57.1(typescript@5.9.3)
+ '@typescript-eslint/types': 8.57.1
+ '@typescript-eslint/visitor-keys': 8.57.1
debug: 4.4.3
- minimatch: 9.0.5
- semver: 7.7.3
- tinyglobby: 0.2.15
+ minimatch: 10.2.4
+ semver: 7.7.4
+ tinyglobby: 0.2.17
ts-api-utils: 2.4.0(typescript@5.9.3)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)':
+ '@typescript-eslint/typescript-estree@8.65.0(typescript@5.9.3)':
dependencies:
- '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1))
- '@typescript-eslint/scope-manager': 8.52.0
- '@typescript-eslint/types': 8.52.0
- '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3)
- eslint: 9.39.2(jiti@2.6.1)
+ '@typescript-eslint/project-service': 8.65.0(typescript@5.9.3)
+ '@typescript-eslint/tsconfig-utils': 8.65.0(typescript@5.9.3)
+ '@typescript-eslint/types': 8.65.0
+ '@typescript-eslint/visitor-keys': 8.65.0
+ debug: 4.4.3
+ minimatch: 10.2.4
+ semver: 7.7.4
+ tinyglobby: 0.2.17
+ ts-api-utils: 2.5.0(typescript@5.9.3)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/visitor-keys@8.52.0':
+ '@typescript-eslint/utils@8.57.1(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/types': 8.52.0
- eslint-visitor-keys: 4.2.1
+ '@eslint-community/eslint-utils': 4.9.1(eslint@10.8.0(jiti@2.6.1))
+ '@typescript-eslint/scope-manager': 8.57.1
+ '@typescript-eslint/types': 8.57.1
+ '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3)
+ eslint: 10.8.0(jiti@2.6.1)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
- '@typescript/vfs@1.6.2(typescript@5.9.3)':
+ '@typescript-eslint/utils@8.65.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
- debug: 4.4.3
+ '@eslint-community/eslint-utils': 4.9.1(eslint@10.8.0(jiti@2.6.1))
+ '@typescript-eslint/scope-manager': 8.65.0
+ '@typescript-eslint/types': 8.65.0
+ '@typescript-eslint/typescript-estree': 8.65.0(typescript@5.9.3)
+ eslint: 10.8.0(jiti@2.6.1)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@ungap/structured-clone@1.3.0': {}
+ '@typescript-eslint/visitor-keys@8.57.1':
+ dependencies:
+ '@typescript-eslint/types': 8.57.1
+ eslint-visitor-keys: 5.0.1
- '@unocss/astro@66.5.12(vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))':
+ '@typescript-eslint/visitor-keys@8.65.0':
dependencies:
- '@unocss/core': 66.5.12
- '@unocss/reset': 66.5.12
- '@unocss/vite': 66.5.12(vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))
- optionalDependencies:
- vite: 7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)
+ '@typescript-eslint/types': 8.65.0
+ eslint-visitor-keys: 5.0.1
+
+ '@typescript/vfs@1.6.4(typescript@5.9.3)':
+ dependencies:
+ debug: 4.4.3
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
- '@unocss/cli@66.5.12':
+ '@ungap/structured-clone@1.3.0': {}
+
+ '@unocss/cli@66.7.5':
dependencies:
'@jridgewell/remapping': 2.3.5
- '@unocss/config': 66.5.12
- '@unocss/core': 66.5.12
- '@unocss/preset-uno': 66.5.12
- cac: 6.7.14
+ '@unocss/config': 66.7.5
+ '@unocss/core': 66.7.5
+ '@unocss/preset-wind3': 66.7.5
+ '@unocss/preset-wind4': 66.7.5
+ '@unocss/transformer-directives': 66.7.5
+ cac: 7.0.0
chokidar: 5.0.0
colorette: 2.0.20
consola: 3.4.2
magic-string: 0.30.21
pathe: 2.0.3
- perfect-debounce: 2.0.0
- tinyglobby: 0.2.15
+ perfect-debounce: 2.1.0
+ tinyglobby: 0.2.17
unplugin-utils: 0.3.1
- '@unocss/config@66.5.12':
+ '@unocss/config@66.7.5':
dependencies:
- '@unocss/core': 66.5.12
- unconfig: 7.4.2
+ '@unocss/core': 66.7.5
+ colorette: 2.0.20
+ consola: 3.4.2
+ unconfig: 7.5.0
- '@unocss/core@66.5.12': {}
+ '@unocss/core@66.7.5': {}
- '@unocss/extractor-arbitrary-variants@66.5.12':
+ '@unocss/extractor-arbitrary-variants@66.7.5':
dependencies:
- '@unocss/core': 66.5.12
+ '@unocss/core': 66.7.5
- '@unocss/inspector@66.5.12':
+ '@unocss/inspector@66.7.5':
dependencies:
- '@unocss/core': 66.5.12
- '@unocss/rule-utils': 66.5.12
+ '@unocss/core': 66.7.5
+ '@unocss/rule-utils': 66.7.5
colorette: 2.0.20
gzip-size: 6.0.0
sirv: 3.0.2
- vue-flow-layout: 0.2.0
-
- '@unocss/postcss@66.5.12(postcss@8.5.6)':
- dependencies:
- '@unocss/config': 66.5.12
- '@unocss/core': 66.5.12
- '@unocss/rule-utils': 66.5.12
- css-tree: 3.1.0
- postcss: 8.5.6
- tinyglobby: 0.2.15
- '@unocss/preset-attributify@66.5.12':
+ '@unocss/preset-attributify@66.7.5':
dependencies:
- '@unocss/core': 66.5.12
+ '@unocss/core': 66.7.5
- '@unocss/preset-icons@66.5.12':
+ '@unocss/preset-icons@66.7.5':
dependencies:
- '@iconify/utils': 3.1.0
- '@unocss/core': 66.5.12
+ '@iconify/utils': 3.1.4
+ '@unocss/core': 66.7.5
ofetch: 1.5.1
- '@unocss/preset-mini@66.5.12':
+ '@unocss/preset-mini@66.7.5':
dependencies:
- '@unocss/core': 66.5.12
- '@unocss/extractor-arbitrary-variants': 66.5.12
- '@unocss/rule-utils': 66.5.12
+ '@unocss/core': 66.7.5
+ '@unocss/extractor-arbitrary-variants': 66.7.5
+ '@unocss/rule-utils': 66.7.5
- '@unocss/preset-tagify@66.5.12':
+ '@unocss/preset-tagify@66.7.5':
dependencies:
- '@unocss/core': 66.5.12
+ '@unocss/core': 66.7.5
- '@unocss/preset-typography@66.5.12':
+ '@unocss/preset-typography@66.7.5':
dependencies:
- '@unocss/core': 66.5.12
- '@unocss/rule-utils': 66.5.12
+ '@unocss/core': 66.7.5
+ '@unocss/rule-utils': 66.7.5
- '@unocss/preset-uno@66.5.12':
+ '@unocss/preset-uno@66.7.5':
dependencies:
- '@unocss/core': 66.5.12
- '@unocss/preset-wind3': 66.5.12
+ '@unocss/core': 66.7.5
+ '@unocss/preset-wind3': 66.7.5
- '@unocss/preset-web-fonts@66.5.12':
+ '@unocss/preset-web-fonts@66.7.5':
dependencies:
- '@unocss/core': 66.5.12
+ '@unocss/core': 66.7.5
ofetch: 1.5.1
- '@unocss/preset-wind3@66.5.12':
+ '@unocss/preset-wind3@66.7.5':
dependencies:
- '@unocss/core': 66.5.12
- '@unocss/preset-mini': 66.5.12
- '@unocss/rule-utils': 66.5.12
+ '@unocss/core': 66.7.5
+ '@unocss/preset-mini': 66.7.5
+ '@unocss/rule-utils': 66.7.5
- '@unocss/preset-wind4@66.5.12':
+ '@unocss/preset-wind4@66.7.5':
dependencies:
- '@unocss/core': 66.5.12
- '@unocss/extractor-arbitrary-variants': 66.5.12
- '@unocss/rule-utils': 66.5.12
+ '@unocss/core': 66.7.5
+ '@unocss/extractor-arbitrary-variants': 66.7.5
+ '@unocss/rule-utils': 66.7.5
- '@unocss/preset-wind@66.5.12':
+ '@unocss/preset-wind@66.7.5':
dependencies:
- '@unocss/core': 66.5.12
- '@unocss/preset-wind3': 66.5.12
+ '@unocss/core': 66.7.5
+ '@unocss/preset-wind3': 66.7.5
- '@unocss/reset@66.5.12': {}
+ '@unocss/reset@66.7.5': {}
- '@unocss/rule-utils@66.5.12':
+ '@unocss/rule-utils@66.7.5':
dependencies:
- '@unocss/core': 66.5.12
+ '@unocss/core': 66.7.5
magic-string: 0.30.21
- '@unocss/transformer-attributify-jsx@66.5.12':
+ '@unocss/transformer-attributify-jsx@66.7.5':
dependencies:
- '@babel/parser': 7.27.7
- '@babel/traverse': 7.27.7
- '@unocss/core': 66.5.12
- transitivePeerDependencies:
- - supports-color
+ '@unocss/core': 66.7.5
+ oxc-parser: 0.131.0
+ oxc-walker: 0.7.0(oxc-parser@0.131.0)
- '@unocss/transformer-compile-class@66.5.12':
+ '@unocss/transformer-compile-class@66.7.5':
dependencies:
- '@unocss/core': 66.5.12
+ '@unocss/core': 66.7.5
- '@unocss/transformer-directives@66.5.12':
+ '@unocss/transformer-directives@66.7.5':
dependencies:
- '@unocss/core': 66.5.12
- '@unocss/rule-utils': 66.5.12
- css-tree: 3.1.0
+ '@unocss/core': 66.7.5
+ '@unocss/rule-utils': 66.7.5
+ css-tree: 3.2.1
- '@unocss/transformer-variant-group@66.5.12':
+ '@unocss/transformer-variant-group@66.7.5':
dependencies:
- '@unocss/core': 66.5.12
+ '@unocss/core': 66.7.5
- '@unocss/vite@66.5.12(vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))':
+ '@unocss/vite@66.7.5(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0))':
dependencies:
'@jridgewell/remapping': 2.3.5
- '@unocss/config': 66.5.12
- '@unocss/core': 66.5.12
- '@unocss/inspector': 66.5.12
+ '@unocss/config': 66.7.5
+ '@unocss/core': 66.7.5
+ '@unocss/inspector': 66.7.5
chokidar: 5.0.0
magic-string: 0.30.21
pathe: 2.0.3
- tinyglobby: 0.2.15
+ tinyglobby: 0.2.17
unplugin-utils: 0.3.1
- vite: 7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)
-
- '@vercel/oidc@3.0.5': {}
+ vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0)
'@vite-pwa/assets-generator@1.0.2':
dependencies:
@@ -6748,90 +6712,93 @@ snapshots:
consola: 3.4.2
sharp: 0.33.5
sharp-ico: 0.1.5
- unconfig: 7.4.2
+ unconfig: 7.5.0
- '@vite-pwa/vitepress@1.1.0(@vite-pwa/assets-generator@1.0.2)(vite-plugin-pwa@1.2.0(@vite-pwa/assets-generator@1.0.2)(vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(workbox-build@7.4.0)(workbox-window@7.4.0))':
+ '@vite-pwa/vitepress@1.1.0(@vite-pwa/assets-generator@1.0.2)(vite-plugin-pwa@1.3.0(@vite-pwa/assets-generator@1.0.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0))(workbox-build@7.4.0)(workbox-window@7.4.1))':
dependencies:
- vite-plugin-pwa: 1.2.0(@vite-pwa/assets-generator@1.0.2)(vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(workbox-build@7.4.0)(workbox-window@7.4.0)
+ vite-plugin-pwa: 1.3.0(@vite-pwa/assets-generator@1.0.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0))(workbox-build@7.4.0)(workbox-window@7.4.1)
optionalDependencies:
'@vite-pwa/assets-generator': 1.0.2
- '@vitejs/plugin-vue@6.0.3(vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))':
+ '@vitejs/plugin-vue@6.0.8(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3))':
dependencies:
- '@rolldown/pluginutils': 1.0.0-beta.53
- vite: 7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)
- vue: 3.5.26(typescript@5.9.3)
+ '@rolldown/pluginutils': 1.0.1
+ vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0)
+ vue: 3.5.40(typescript@5.9.3)
- '@vitest/eslint-plugin@1.6.6(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)(vitest@4.0.17(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))':
+ '@vitest/eslint-plugin@1.6.25(@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3)(vitest@4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0)))':
dependencies:
- '@typescript-eslint/scope-manager': 8.52.0
- '@typescript-eslint/utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
- eslint: 9.39.2(jiti@2.6.1)
+ '@typescript-eslint/scope-manager': 8.65.0
+ '@typescript-eslint/utils': 8.65.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3)
+ eslint: 10.8.0(jiti@2.6.1)
optionalDependencies:
+ '@typescript-eslint/eslint-plugin': 8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3)
typescript: 5.9.3
- vitest: 4.0.17(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)
+ vitest: 4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0))
transitivePeerDependencies:
- supports-color
- '@vitest/expect@4.0.17':
+ '@vitest/expect@4.1.10':
dependencies:
'@standard-schema/spec': 1.1.0
'@types/chai': 5.2.3
- '@vitest/spy': 4.0.17
- '@vitest/utils': 4.0.17
+ '@vitest/spy': 4.1.10
+ '@vitest/utils': 4.1.10
chai: 6.2.2
- tinyrainbow: 3.0.3
+ tinyrainbow: 3.1.0
- '@vitest/mocker@4.0.17(vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))':
+ '@vitest/mocker@4.1.10(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0))':
dependencies:
- '@vitest/spy': 4.0.17
+ '@vitest/spy': 4.1.10
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
- vite: 7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0)
- '@vitest/pretty-format@4.0.17':
+ '@vitest/pretty-format@4.1.10':
dependencies:
- tinyrainbow: 3.0.3
+ tinyrainbow: 3.1.0
- '@vitest/runner@4.0.17':
+ '@vitest/runner@4.1.10':
dependencies:
- '@vitest/utils': 4.0.17
+ '@vitest/utils': 4.1.10
pathe: 2.0.3
- '@vitest/snapshot@4.0.17':
+ '@vitest/snapshot@4.1.10':
dependencies:
- '@vitest/pretty-format': 4.0.17
+ '@vitest/pretty-format': 4.1.10
+ '@vitest/utils': 4.1.10
magic-string: 0.30.21
pathe: 2.0.3
- '@vitest/spy@4.0.17': {}
-
- '@vitest/utils@4.0.17':
- dependencies:
- '@vitest/pretty-format': 4.0.17
- tinyrainbow: 3.0.3
+ '@vitest/spy@4.1.10': {}
- '@voidzero-dev/vitepress-theme@4.1.0(@algolia/client-search@5.46.2)(change-case@5.4.4)(focus-trap@7.7.1)(react@19.2.3)(search-insights@2.17.3)(typescript@5.9.3)(vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vitepress@2.0.0-alpha.15(@algolia/client-search@5.46.2)(@types/node@25.0.3)(change-case@5.4.4)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react@19.2.3)(search-insights@2.17.3)(terser@5.44.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))':
+ '@vitest/utils@4.1.10':
dependencies:
- '@docsearch/css': 4.4.0
- '@docsearch/js': 4.4.0(@algolia/client-search@5.46.2)(react@19.2.3)(search-insights@2.17.3)
- '@rive-app/canvas-lite': 2.34.0
- '@tailwindcss/typography': 0.5.19(tailwindcss@4.1.18)
- '@tailwindcss/vite': 4.1.18(vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))
- '@vue/shared': 3.5.26
- '@vueuse/core': 14.1.0(vue@3.5.26(typescript@5.9.3))
- '@vueuse/integrations': 14.1.0(change-case@5.4.4)(focus-trap@7.7.1)(vue@3.5.26(typescript@5.9.3))
- '@vueuse/shared': 14.1.0(vue@3.5.26(typescript@5.9.3))
+ '@vitest/pretty-format': 4.1.10
+ convert-source-map: 2.0.0
+ tinyrainbow: 3.1.0
+
+ '@voidzero-dev/vitepress-theme@5.0.6(change-case@5.4.4)(focus-trap@8.2.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0))(vitepress@2.0.0-alpha.19(@types/node@26.1.2)(change-case@5.4.4)(esbuild@0.28.1)(jiti@2.6.1)(postcss@8.5.25)(terser@5.46.1)(tsx@4.23.4)(typescript@5.9.3)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3))':
+ dependencies:
+ '@docsearch/css': 4.6.0
+ '@docsearch/js': 4.6.0
+ '@docsearch/sidepanel-js': 4.6.0
+ '@iconify/vue': 5.0.1(vue@3.5.40(typescript@5.9.3))
+ '@rive-app/canvas-lite': 2.35.3
+ '@tailwindcss/typography': 0.5.19(tailwindcss@4.2.1)
+ '@tailwindcss/vite': 4.2.1(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0))
+ '@vue/shared': 3.5.40
+ '@vueuse/core': 14.4.0(vue@3.5.40(typescript@5.9.3))
+ '@vueuse/integrations': 14.2.1(change-case@5.4.4)(focus-trap@8.2.2)(vue@3.5.40(typescript@5.9.3))
+ '@vueuse/shared': 14.4.0(vue@3.5.40(typescript@5.9.3))
mark.js: 8.11.1
minisearch: 7.2.0
- reka-ui: 2.7.0(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3))
- tailwindcss: 4.1.18
- vitepress: 2.0.0-alpha.15(@algolia/client-search@5.46.2)(@types/node@25.0.3)(change-case@5.4.4)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react@19.2.3)(search-insights@2.17.3)(terser@5.44.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
- vue: 3.5.26(typescript@5.9.3)
+ reka-ui: 2.9.2(vue@3.5.40(typescript@5.9.3))
+ tailwindcss: 4.2.1
+ vitepress: 2.0.0-alpha.19(@types/node@26.1.2)(change-case@5.4.4)(esbuild@0.28.1)(jiti@2.6.1)(postcss@8.5.25)(terser@5.46.1)(tsx@4.23.4)(typescript@5.9.3)(yaml@2.9.0)
+ vue: 3.5.40(typescript@5.9.3)
transitivePeerDependencies:
- - '@algolia/client-search'
- - '@types/react'
- '@vue/composition-api'
- async-validator
- axios
@@ -6843,217 +6810,185 @@ snapshots:
- jwt-decode
- nprogress
- qrcode
- - react
- - react-dom
- - search-insights
- sortablejs
- - typescript
- universal-cookie
- vite
- '@volar/language-core@2.4.27':
+ '@volar/language-core@2.4.28':
dependencies:
- '@volar/source-map': 2.4.27
+ '@volar/source-map': 2.4.28
- '@volar/source-map@2.4.27': {}
+ '@volar/source-map@2.4.28': {}
+
+ '@vue/compiler-core@3.5.30':
+ dependencies:
+ '@babel/parser': 7.29.2
+ '@vue/shared': 3.5.30
+ entities: 7.0.1
+ estree-walker: 2.0.2
+ source-map-js: 1.2.1
- '@vue/compiler-core@3.5.26':
+ '@vue/compiler-core@3.5.40':
dependencies:
- '@babel/parser': 7.28.5
- '@vue/shared': 3.5.26
- entities: 7.0.0
+ '@babel/parser': 7.29.8
+ '@vue/shared': 3.5.40
+ entities: 7.0.1
estree-walker: 2.0.2
source-map-js: 1.2.1
- '@vue/compiler-dom@3.5.26':
+ '@vue/compiler-dom@3.5.30':
+ dependencies:
+ '@vue/compiler-core': 3.5.30
+ '@vue/shared': 3.5.30
+
+ '@vue/compiler-dom@3.5.40':
dependencies:
- '@vue/compiler-core': 3.5.26
- '@vue/shared': 3.5.26
+ '@vue/compiler-core': 3.5.40
+ '@vue/shared': 3.5.40
- '@vue/compiler-sfc@3.5.26':
+ '@vue/compiler-sfc@3.5.40':
dependencies:
- '@babel/parser': 7.28.5
- '@vue/compiler-core': 3.5.26
- '@vue/compiler-dom': 3.5.26
- '@vue/compiler-ssr': 3.5.26
- '@vue/shared': 3.5.26
+ '@babel/parser': 7.29.8
+ '@vue/compiler-core': 3.5.40
+ '@vue/compiler-dom': 3.5.40
+ '@vue/compiler-ssr': 3.5.40
+ '@vue/shared': 3.5.40
estree-walker: 2.0.2
magic-string: 0.30.21
- postcss: 8.5.6
+ postcss: 8.5.25
source-map-js: 1.2.1
- '@vue/compiler-ssr@3.5.26':
+ '@vue/compiler-ssr@3.5.40':
dependencies:
- '@vue/compiler-dom': 3.5.26
- '@vue/shared': 3.5.26
+ '@vue/compiler-dom': 3.5.40
+ '@vue/shared': 3.5.40
- '@vue/devtools-api@8.0.5':
+ '@vue/devtools-api@8.2.1':
dependencies:
- '@vue/devtools-kit': 8.0.5
+ '@vue/devtools-kit': 8.2.1
- '@vue/devtools-kit@8.0.5':
+ '@vue/devtools-kit@8.2.1':
dependencies:
- '@vue/devtools-shared': 8.0.5
+ '@vue/devtools-shared': 8.2.1
birpc: 2.9.0
hookable: 5.5.3
- mitt: 3.0.1
- perfect-debounce: 2.0.0
- speakingurl: 14.0.1
- superjson: 2.2.6
+ perfect-debounce: 2.1.0
- '@vue/devtools-shared@8.0.5':
- dependencies:
- rfdc: 1.4.1
+ '@vue/devtools-shared@8.2.1': {}
- '@vue/language-core@3.2.2':
+ '@vue/language-core@3.2.6':
dependencies:
- '@volar/language-core': 2.4.27
- '@vue/compiler-dom': 3.5.26
- '@vue/shared': 3.5.26
+ '@volar/language-core': 2.4.28
+ '@vue/compiler-dom': 3.5.30
+ '@vue/shared': 3.5.40
alien-signals: 3.1.2
muggle-string: 0.4.1
path-browserify: 1.0.1
picomatch: 4.0.3
- '@vue/reactivity@3.5.26':
+ '@vue/reactivity@3.5.40':
dependencies:
- '@vue/shared': 3.5.26
+ '@vue/shared': 3.5.40
- '@vue/runtime-core@3.5.26':
+ '@vue/runtime-core@3.5.40':
dependencies:
- '@vue/reactivity': 3.5.26
- '@vue/shared': 3.5.26
+ '@vue/reactivity': 3.5.40
+ '@vue/shared': 3.5.40
- '@vue/runtime-dom@3.5.26':
+ '@vue/runtime-dom@3.5.40':
dependencies:
- '@vue/reactivity': 3.5.26
- '@vue/runtime-core': 3.5.26
- '@vue/shared': 3.5.26
+ '@vue/reactivity': 3.5.40
+ '@vue/runtime-core': 3.5.40
+ '@vue/shared': 3.5.40
csstype: 3.2.3
- '@vue/server-renderer@3.5.26(vue@3.5.26(typescript@5.9.3))':
+ '@vue/server-renderer@3.5.40':
dependencies:
- '@vue/compiler-ssr': 3.5.26
- '@vue/shared': 3.5.26
- vue: 3.5.26(typescript@5.9.3)
+ '@vue/compiler-ssr': 3.5.40
+ '@vue/runtime-dom': 3.5.40
+ '@vue/shared': 3.5.40
+
+ '@vue/shared@3.5.30': {}
- '@vue/shared@3.5.26': {}
+ '@vue/shared@3.5.40': {}
- '@vueuse/core@12.8.2(typescript@5.9.3)':
+ '@vueuse/core@14.2.1(vue@3.5.40(typescript@5.9.3))':
dependencies:
'@types/web-bluetooth': 0.0.21
- '@vueuse/metadata': 12.8.2
- '@vueuse/shared': 12.8.2(typescript@5.9.3)
- vue: 3.5.26(typescript@5.9.3)
- transitivePeerDependencies:
- - typescript
+ '@vueuse/metadata': 14.2.1
+ '@vueuse/shared': 14.2.1(vue@3.5.40(typescript@5.9.3))
+ vue: 3.5.40(typescript@5.9.3)
- '@vueuse/core@14.1.0(vue@3.5.26(typescript@5.9.3))':
+ '@vueuse/core@14.4.0(vue@3.5.40(typescript@5.9.3))':
dependencies:
'@types/web-bluetooth': 0.0.21
- '@vueuse/metadata': 14.1.0
- '@vueuse/shared': 14.1.0(vue@3.5.26(typescript@5.9.3))
- vue: 3.5.26(typescript@5.9.3)
+ '@vueuse/metadata': 14.4.0
+ '@vueuse/shared': 14.4.0(vue@3.5.40(typescript@5.9.3))
+ vue: 3.5.40(typescript@5.9.3)
- '@vueuse/integrations@14.1.0(change-case@5.4.4)(focus-trap@7.7.1)(vue@3.5.26(typescript@5.9.3))':
+ '@vueuse/integrations@14.2.1(change-case@5.4.4)(focus-trap@8.2.2)(vue@3.5.40(typescript@5.9.3))':
dependencies:
- '@vueuse/core': 14.1.0(vue@3.5.26(typescript@5.9.3))
- '@vueuse/shared': 14.1.0(vue@3.5.26(typescript@5.9.3))
- vue: 3.5.26(typescript@5.9.3)
+ '@vueuse/core': 14.2.1(vue@3.5.40(typescript@5.9.3))
+ '@vueuse/shared': 14.2.1(vue@3.5.40(typescript@5.9.3))
+ vue: 3.5.40(typescript@5.9.3)
optionalDependencies:
change-case: 5.4.4
- focus-trap: 7.7.1
+ focus-trap: 8.2.2
- '@vueuse/metadata@12.8.2': {}
+ '@vueuse/integrations@14.4.0(change-case@5.4.4)(focus-trap@8.2.2)(vue@3.5.40(typescript@5.9.3))':
+ dependencies:
+ '@vueuse/core': 14.4.0(vue@3.5.40(typescript@5.9.3))
+ '@vueuse/shared': 14.4.0(vue@3.5.40(typescript@5.9.3))
+ vue: 3.5.40(typescript@5.9.3)
+ optionalDependencies:
+ change-case: 5.4.4
+ focus-trap: 8.2.2
+
+ '@vueuse/metadata@14.2.1': {}
- '@vueuse/metadata@14.1.0': {}
+ '@vueuse/metadata@14.4.0': {}
- '@vueuse/shared@12.8.2(typescript@5.9.3)':
+ '@vueuse/shared@14.2.1(vue@3.5.40(typescript@5.9.3))':
dependencies:
- vue: 3.5.26(typescript@5.9.3)
- transitivePeerDependencies:
- - typescript
+ vue: 3.5.40(typescript@5.9.3)
- '@vueuse/shared@14.1.0(vue@3.5.26(typescript@5.9.3))':
+ '@vueuse/shared@14.4.0(vue@3.5.40(typescript@5.9.3))':
dependencies:
- vue: 3.5.26(typescript@5.9.3)
+ vue: 3.5.40(typescript@5.9.3)
accepts@1.3.8:
dependencies:
mime-types: 2.1.35
negotiator: 0.6.3
- acorn-jsx@5.3.2(acorn@8.15.0):
+ acorn-jsx@5.3.2(acorn@8.16.0):
dependencies:
- acorn: 8.15.0
+ acorn: 8.16.0
- acorn@8.15.0: {}
-
- ai@5.0.118(zod@4.3.5):
- dependencies:
- '@ai-sdk/gateway': 2.0.24(zod@4.3.5)
- '@ai-sdk/provider': 2.0.1
- '@ai-sdk/provider-utils': 3.0.20(zod@4.3.5)
- '@opentelemetry/api': 1.9.0
- zod: 4.3.5
+ acorn@8.16.0: {}
- ajv@6.12.6:
+ ajv@6.14.0:
dependencies:
fast-deep-equal: 3.1.3
fast-json-stable-stringify: 2.1.0
json-schema-traverse: 0.4.1
uri-js: 4.4.1
- ajv@8.17.1:
+ ajv@8.18.0:
dependencies:
fast-deep-equal: 3.1.3
fast-uri: 3.1.0
json-schema-traverse: 1.0.0
require-from-string: 2.0.2
- algoliasearch@5.46.2:
- dependencies:
- '@algolia/abtesting': 1.12.2
- '@algolia/client-abtesting': 5.46.2
- '@algolia/client-analytics': 5.46.2
- '@algolia/client-common': 5.46.2
- '@algolia/client-insights': 5.46.2
- '@algolia/client-personalization': 5.46.2
- '@algolia/client-query-suggestions': 5.46.2
- '@algolia/client-search': 5.46.2
- '@algolia/ingestion': 1.46.2
- '@algolia/monitoring': 1.46.2
- '@algolia/recommend': 5.46.2
- '@algolia/requester-browser-xhr': 5.46.2
- '@algolia/requester-fetch': 5.46.2
- '@algolia/requester-node-http': 5.46.2
-
alien-signals@3.1.2: {}
- ansi-escapes@7.2.0:
- dependencies:
- environment: 1.1.0
-
- ansi-regex@5.0.1: {}
-
- ansi-regex@6.2.2: {}
-
- ansi-styles@4.3.0:
- dependencies:
- color-convert: 2.0.1
-
- ansi-styles@6.2.3: {}
-
- ansis@4.2.0: {}
+ ansis@4.3.1: {}
appdata-path@1.0.0: {}
are-docs-informative@0.0.2: {}
- argparse@1.0.10:
- dependencies:
- sprintf-js: 1.0.3
-
argparse@2.0.1: {}
aria-hidden@1.2.6:
@@ -7089,35 +7024,35 @@ snapshots:
dependencies:
possible-typed-array-names: 1.1.0
- babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.5):
+ babel-plugin-polyfill-corejs2@0.4.17(@babel/core@7.29.0):
dependencies:
- '@babel/compat-data': 7.28.5
- '@babel/core': 7.28.5
- '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5)
+ '@babel/compat-data': 7.29.0
+ '@babel/core': 7.29.0
+ '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0)
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.5):
+ babel-plugin-polyfill-corejs3@0.14.2(@babel/core@7.29.0):
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5)
- core-js-compat: 3.47.0
+ '@babel/core': 7.29.0
+ '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0)
+ core-js-compat: 3.49.0
transitivePeerDependencies:
- supports-color
- babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.5):
+ babel-plugin-polyfill-regenerator@0.6.8(@babel/core@7.29.0):
dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5)
+ '@babel/core': 7.29.0
+ '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0)
transitivePeerDependencies:
- supports-color
- bail@2.0.2: {}
-
balanced-match@1.0.2: {}
- baseline-browser-mapping@2.9.13: {}
+ balanced-match@4.0.4: {}
+
+ baseline-browser-mapping@2.11.11: {}
birpc@2.9.0: {}
@@ -7131,7 +7066,7 @@ snapshots:
http-errors: 2.0.1
iconv-lite: 0.4.24
on-finished: 2.4.1
- qs: 6.14.1
+ qs: 6.14.2
raw-body: 2.5.3
type-is: 1.6.18
unpipe: 1.0.0
@@ -7140,26 +7075,25 @@ snapshots:
boolbase@1.0.0: {}
- brace-expansion@1.1.12:
+ brace-expansion@2.0.2:
dependencies:
balanced-match: 1.0.2
- concat-map: 0.0.1
- brace-expansion@2.0.2:
+ brace-expansion@5.0.4:
dependencies:
- balanced-match: 1.0.2
+ balanced-match: 4.0.4
- braces@3.0.3:
+ brace-expansion@5.0.9:
dependencies:
- fill-range: 7.1.1
+ balanced-match: 4.0.4
- browserslist@4.28.1:
+ browserslist@4.28.7:
dependencies:
- baseline-browser-mapping: 2.9.13
- caniuse-lite: 1.0.30001763
- electron-to-chromium: 1.5.267
- node-releases: 2.0.27
- update-browserslist-db: 1.2.3(browserslist@4.28.1)
+ baseline-browser-mapping: 2.11.11
+ caniuse-lite: 1.0.30001806
+ electron-to-chromium: 1.5.399
+ node-releases: 2.0.51
+ update-browserslist-db: 1.2.3(browserslist@4.28.7)
buffer-from@1.1.2: {}
@@ -7169,6 +7103,8 @@ snapshots:
cac@6.7.14: {}
+ cac@7.0.0: {}
+
call-bind-apply-helpers@1.0.2:
dependencies:
es-errors: 1.3.0
@@ -7186,19 +7122,12 @@ snapshots:
call-bind-apply-helpers: 1.0.2
get-intrinsic: 1.3.0
- callsites@3.1.0: {}
-
- caniuse-lite@1.0.30001763: {}
+ caniuse-lite@1.0.30001806: {}
ccount@2.0.1: {}
chai@6.2.2: {}
- chalk@4.1.2:
- dependencies:
- ansi-styles: 4.3.0
- supports-color: 7.2.0
-
change-case@5.4.4: {}
character-entities-html4@2.1.0: {}
@@ -7211,26 +7140,7 @@ snapshots:
dependencies:
readdirp: 5.0.0
- ci-info@4.3.1: {}
-
- clean-regexp@1.0.0:
- dependencies:
- escape-string-regexp: 1.0.5
-
- cli-cursor@5.0.0:
- dependencies:
- restore-cursor: 5.1.0
-
- cli-truncate@5.1.1:
- dependencies:
- slice-ansi: 7.1.2
- string-width: 8.1.0
-
- cliui@8.0.1:
- dependencies:
- string-width: 4.2.3
- strip-ansi: 6.0.1
- wrap-ansi: 7.0.0
+ ci-info@4.4.0: {}
color-convert@2.0.1:
dependencies:
@@ -7252,11 +7162,13 @@ snapshots:
comma-separated-tokens@2.0.3: {}
- commander@14.0.2: {}
-
commander@2.20.3: {}
- comment-parser@1.4.1: {}
+ commander@8.3.0: {}
+
+ comment-parser@1.4.5: {}
+
+ comment-parser@1.4.7: {}
common-tags@1.8.2: {}
@@ -7276,11 +7188,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- concat-map@0.0.1: {}
-
confbox@0.1.8: {}
- confbox@0.2.2: {}
+ confbox@0.2.4: {}
consola@3.4.2: {}
@@ -7290,23 +7200,21 @@ snapshots:
content-type@1.0.5: {}
+ convert-hrtime@5.0.0: {}
+
convert-source-map@2.0.0: {}
cookie-signature@1.0.7: {}
cookie@0.7.2: {}
- copy-anything@4.0.5:
- dependencies:
- is-what: 5.5.0
-
- core-js-compat@3.47.0:
+ core-js-compat@3.49.0:
dependencies:
- browserslist: 4.28.1
+ browserslist: 4.28.7
core-util-is@1.0.3: {}
- cors@2.8.5:
+ cors@2.8.6:
dependencies:
object-assign: 4.1.1
vary: 1.1.2
@@ -7319,9 +7227,9 @@ snapshots:
crypto-random-string@2.0.0: {}
- css-tree@3.1.0:
+ css-tree@3.2.1:
dependencies:
- mdn-data: 2.12.2
+ mdn-data: 2.27.1
source-map-js: 1.2.1
cssesc@3.0.0: {}
@@ -7365,7 +7273,7 @@ snapshots:
decode-bmp: 0.2.1
to-data-view: 1.1.0
- decode-named-character-reference@1.2.0:
+ decode-named-character-reference@1.3.0:
dependencies:
character-entities: 2.0.2
@@ -7395,6 +7303,8 @@ snapshots:
destroy@1.2.0: {}
+ detect-indent@7.0.2: {}
+
detect-libc@2.1.2: {}
detect-node@2.1.0: {}
@@ -7403,7 +7313,7 @@ snapshots:
dependencies:
dequal: 2.0.3
- diff-sequences@27.5.1: {}
+ diff-sequences@29.6.3: {}
dunder-proto@1.0.1:
dependencies:
@@ -7413,36 +7323,26 @@ snapshots:
duplexer@0.1.2: {}
- eastasianwidth@0.2.0: {}
-
ee-first@1.1.1: {}
ejs@3.1.10:
dependencies:
jake: 10.9.4
- electron-to-chromium@1.5.267: {}
-
- emoji-regex@10.6.0: {}
-
- emoji-regex@8.0.0: {}
-
- emoji-regex@9.2.2: {}
+ electron-to-chromium@1.5.399: {}
- empathic@2.0.0: {}
+ empathic@2.0.1: {}
encodeurl@2.0.0: {}
- enhanced-resolve@5.18.4:
+ enhanced-resolve@5.20.1:
dependencies:
graceful-fs: 4.2.11
tapable: 2.3.0
entities@4.5.0: {}
- entities@7.0.0: {}
-
- environment@1.1.0: {}
+ entities@7.0.1: {}
es-abstract@1.24.1:
dependencies:
@@ -7499,13 +7399,13 @@ snapshots:
typed-array-byte-offset: 1.0.4
typed-array-length: 1.0.7
unbox-primitive: 1.1.0
- which-typed-array: 1.1.19
+ which-typed-array: 1.1.20
es-define-property@1.0.1: {}
es-errors@1.3.0: {}
- es-module-lexer@1.7.0: {}
+ es-module-lexer@2.0.0: {}
es-object-atoms@1.1.1:
dependencies:
@@ -7524,251 +7424,256 @@ snapshots:
is-date-object: 1.1.0
is-symbol: 1.1.1
- esbuild@0.27.2:
+ esbuild@0.28.1:
optionalDependencies:
- '@esbuild/aix-ppc64': 0.27.2
- '@esbuild/android-arm': 0.27.2
- '@esbuild/android-arm64': 0.27.2
- '@esbuild/android-x64': 0.27.2
- '@esbuild/darwin-arm64': 0.27.2
- '@esbuild/darwin-x64': 0.27.2
- '@esbuild/freebsd-arm64': 0.27.2
- '@esbuild/freebsd-x64': 0.27.2
- '@esbuild/linux-arm': 0.27.2
- '@esbuild/linux-arm64': 0.27.2
- '@esbuild/linux-ia32': 0.27.2
- '@esbuild/linux-loong64': 0.27.2
- '@esbuild/linux-mips64el': 0.27.2
- '@esbuild/linux-ppc64': 0.27.2
- '@esbuild/linux-riscv64': 0.27.2
- '@esbuild/linux-s390x': 0.27.2
- '@esbuild/linux-x64': 0.27.2
- '@esbuild/netbsd-arm64': 0.27.2
- '@esbuild/netbsd-x64': 0.27.2
- '@esbuild/openbsd-arm64': 0.27.2
- '@esbuild/openbsd-x64': 0.27.2
- '@esbuild/openharmony-arm64': 0.27.2
- '@esbuild/sunos-x64': 0.27.2
- '@esbuild/win32-arm64': 0.27.2
- '@esbuild/win32-ia32': 0.27.2
- '@esbuild/win32-x64': 0.27.2
+ '@esbuild/aix-ppc64': 0.28.1
+ '@esbuild/android-arm': 0.28.1
+ '@esbuild/android-arm64': 0.28.1
+ '@esbuild/android-x64': 0.28.1
+ '@esbuild/darwin-arm64': 0.28.1
+ '@esbuild/darwin-x64': 0.28.1
+ '@esbuild/freebsd-arm64': 0.28.1
+ '@esbuild/freebsd-x64': 0.28.1
+ '@esbuild/linux-arm': 0.28.1
+ '@esbuild/linux-arm64': 0.28.1
+ '@esbuild/linux-ia32': 0.28.1
+ '@esbuild/linux-loong64': 0.28.1
+ '@esbuild/linux-mips64el': 0.28.1
+ '@esbuild/linux-ppc64': 0.28.1
+ '@esbuild/linux-riscv64': 0.28.1
+ '@esbuild/linux-s390x': 0.28.1
+ '@esbuild/linux-x64': 0.28.1
+ '@esbuild/netbsd-arm64': 0.28.1
+ '@esbuild/netbsd-x64': 0.28.1
+ '@esbuild/openbsd-arm64': 0.28.1
+ '@esbuild/openbsd-x64': 0.28.1
+ '@esbuild/openharmony-arm64': 0.28.1
+ '@esbuild/sunos-x64': 0.28.1
+ '@esbuild/win32-arm64': 0.28.1
+ '@esbuild/win32-ia32': 0.28.1
+ '@esbuild/win32-x64': 0.28.1
escalade@3.2.0: {}
escape-html@1.0.3: {}
- escape-string-regexp@1.0.5: {}
-
escape-string-regexp@4.0.0: {}
escape-string-regexp@5.0.0: {}
- eslint-compat-utils@0.5.1(eslint@9.39.2(jiti@2.6.1)):
+ eslint-compat-utils@0.5.1(eslint@10.8.0(jiti@2.6.1)):
dependencies:
- eslint: 9.39.2(jiti@2.6.1)
- semver: 7.7.3
+ eslint: 10.8.0(jiti@2.6.1)
+ semver: 7.7.4
- eslint-compat-utils@0.6.5(eslint@9.39.2(jiti@2.6.1)):
+ eslint-config-flat-gitignore@2.3.0(eslint@10.8.0(jiti@2.6.1)):
dependencies:
- eslint: 9.39.2(jiti@2.6.1)
- semver: 7.7.3
+ '@eslint/compat': 2.0.3(eslint@10.8.0(jiti@2.6.1))
+ eslint: 10.8.0(jiti@2.6.1)
- eslint-config-flat-gitignore@2.1.0(eslint@9.39.2(jiti@2.6.1)):
+ eslint-factory@0.1.2(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3):
dependencies:
- '@eslint/compat': 1.4.1(eslint@9.39.2(jiti@2.6.1))
- eslint: 9.39.2(jiti@2.6.1)
+ '@typescript-eslint/utils': 8.57.1(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3)
+ eslint: 10.8.0(jiti@2.6.1)
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
- eslint-flat-config-utils@2.1.4:
+ eslint-flat-config-utils@3.2.0:
dependencies:
+ '@eslint/config-helpers': 0.5.5
pathe: 2.0.3
- eslint-json-compat-utils@0.2.1(eslint@9.39.2(jiti@2.6.1))(jsonc-eslint-parser@2.4.2):
+ eslint-json-compat-utils@0.2.3(eslint@10.8.0(jiti@2.6.1))(jsonc-eslint-parser@3.1.0):
dependencies:
- eslint: 9.39.2(jiti@2.6.1)
+ eslint: 10.8.0(jiti@2.6.1)
esquery: 1.7.0
- jsonc-eslint-parser: 2.4.2
+ jsonc-eslint-parser: 3.1.0
- eslint-merge-processors@2.0.0(eslint@9.39.2(jiti@2.6.1)):
+ eslint-merge-processors@2.0.0(eslint@10.8.0(jiti@2.6.1)):
dependencies:
- eslint: 9.39.2(jiti@2.6.1)
+ eslint: 10.8.0(jiti@2.6.1)
- eslint-plugin-antfu@3.1.3(eslint@9.39.2(jiti@2.6.1)):
+ eslint-plugin-antfu@3.2.3(eslint@10.8.0(jiti@2.6.1)):
dependencies:
- eslint: 9.39.2(jiti@2.6.1)
+ eslint: 10.8.0(jiti@2.6.1)
- eslint-plugin-command@3.4.0(eslint@9.39.2(jiti@2.6.1)):
+ eslint-plugin-command@3.5.3(@typescript-eslint/typescript-estree@8.65.0(typescript@5.9.3))(@typescript-eslint/utils@8.65.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.8.0(jiti@2.6.1)):
dependencies:
- '@es-joy/jsdoccomment': 0.78.0
- eslint: 9.39.2(jiti@2.6.1)
+ '@es-joy/jsdoccomment': 0.88.0
+ '@typescript-eslint/typescript-estree': 8.65.0(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.65.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3)
+ eslint: 10.8.0(jiti@2.6.1)
- eslint-plugin-es-x@7.8.0(eslint@9.39.2(jiti@2.6.1)):
+ eslint-plugin-es-x@7.8.0(eslint@10.8.0(jiti@2.6.1)):
dependencies:
- '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1))
+ '@eslint-community/eslint-utils': 4.9.1(eslint@10.8.0(jiti@2.6.1))
'@eslint-community/regexpp': 4.12.2
- eslint: 9.39.2(jiti@2.6.1)
- eslint-compat-utils: 0.5.1(eslint@9.39.2(jiti@2.6.1))
+ eslint: 10.8.0(jiti@2.6.1)
+ eslint-compat-utils: 0.5.1(eslint@10.8.0(jiti@2.6.1))
- eslint-plugin-import-lite@0.4.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3):
+ eslint-plugin-import-lite@0.6.0(eslint@10.8.0(jiti@2.6.1)):
dependencies:
- eslint: 9.39.2(jiti@2.6.1)
- optionalDependencies:
- typescript: 5.9.3
+ eslint: 10.8.0(jiti@2.6.1)
- eslint-plugin-jsdoc@61.7.1(eslint@9.39.2(jiti@2.6.1)):
+ eslint-plugin-jsdoc@63.3.2(eslint@10.8.0(jiti@2.6.1)):
dependencies:
- '@es-joy/jsdoccomment': 0.78.0
+ '@es-joy/jsdoccomment': 0.91.0
'@es-joy/resolve.exports': 1.2.0
are-docs-informative: 0.0.2
- comment-parser: 1.4.1
+ comment-parser: 1.4.7
debug: 4.4.3
escape-string-regexp: 4.0.0
- eslint: 9.39.2(jiti@2.6.1)
- espree: 11.0.0
+ eslint: 10.8.0(jiti@2.6.1)
+ espree: 11.2.0
esquery: 1.7.0
html-entities: 2.6.0
- object-deep-merge: 2.0.0
+ object-deep-merge: 2.0.1
parse-imports-exports: 0.2.4
- semver: 7.7.3
- spdx-expression-parse: 4.0.0
+ semver: 7.8.5
+ spdx-expression-parse: 5.0.0
to-valid-identifier: 1.0.0
transitivePeerDependencies:
- supports-color
- eslint-plugin-jsonc@2.21.0(eslint@9.39.2(jiti@2.6.1)):
+ eslint-plugin-jsonc@3.3.0(eslint@10.8.0(jiti@2.6.1)):
dependencies:
- '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1))
- diff-sequences: 27.5.1
- eslint: 9.39.2(jiti@2.6.1)
- eslint-compat-utils: 0.6.5(eslint@9.39.2(jiti@2.6.1))
- eslint-json-compat-utils: 0.2.1(eslint@9.39.2(jiti@2.6.1))(jsonc-eslint-parser@2.4.2)
- espree: 10.4.0
- graphemer: 1.4.0
- jsonc-eslint-parser: 2.4.2
+ '@eslint-community/eslint-utils': 4.9.1(eslint@10.8.0(jiti@2.6.1))
+ '@eslint/core': 1.1.1
+ '@eslint/plugin-kit': 0.7.2
+ '@ota-meshi/ast-token-store': 0.3.0
+ diff-sequences: 29.6.3
+ eslint: 10.8.0(jiti@2.6.1)
+ eslint-json-compat-utils: 0.2.3(eslint@10.8.0(jiti@2.6.1))(jsonc-eslint-parser@3.1.0)
+ jsonc-eslint-parser: 3.1.0
natural-compare: 1.4.0
- synckit: 0.11.11
+ synckit: 0.11.12
transitivePeerDependencies:
- '@eslint/json'
- eslint-plugin-n@17.23.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3):
+ eslint-plugin-n@18.2.2(eslint@10.8.0(jiti@2.6.1))(ts-declaration-location@1.0.7(typescript@5.9.3))(typescript@5.9.3):
dependencies:
- '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1))
- enhanced-resolve: 5.18.4
- eslint: 9.39.2(jiti@2.6.1)
- eslint-plugin-es-x: 7.8.0(eslint@9.39.2(jiti@2.6.1))
- get-tsconfig: 4.13.0
+ '@eslint-community/eslint-utils': 4.9.1(eslint@10.8.0(jiti@2.6.1))
+ enhanced-resolve: 5.20.1
+ eslint: 10.8.0(jiti@2.6.1)
+ eslint-plugin-es-x: 7.8.0(eslint@10.8.0(jiti@2.6.1))
+ get-tsconfig: 4.13.6
globals: 15.15.0
globrex: 0.1.2
ignore: 5.3.2
- semver: 7.7.3
+ semver: 7.7.4
+ optionalDependencies:
ts-declaration-location: 1.0.7(typescript@5.9.3)
- transitivePeerDependencies:
- - typescript
+ typescript: 5.9.3
- eslint-plugin-no-only-tests@3.3.0: {}
+ eslint-plugin-no-only-tests@3.4.0: {}
- eslint-plugin-perfectionist@4.15.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3):
+ eslint-plugin-perfectionist@5.10.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3):
dependencies:
- '@typescript-eslint/types': 8.52.0
- '@typescript-eslint/utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
- eslint: 9.39.2(jiti@2.6.1)
+ '@typescript-eslint/utils': 8.65.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3)
+ eslint: 10.8.0(jiti@2.6.1)
natural-orderby: 5.0.0
transitivePeerDependencies:
- supports-color
- typescript
- eslint-plugin-pnpm@1.4.3(eslint@9.39.2(jiti@2.6.1)):
+ eslint-plugin-pnpm@1.7.0(eslint@10.8.0(jiti@2.6.1)):
dependencies:
- empathic: 2.0.0
- eslint: 9.39.2(jiti@2.6.1)
- jsonc-eslint-parser: 2.4.2
+ empathic: 2.0.1
+ eslint: 10.8.0(jiti@2.6.1)
+ jsonc-eslint-parser: 3.1.0
pathe: 2.0.3
- pnpm-workspace-yaml: 1.4.3
- tinyglobby: 0.2.15
- yaml: 2.8.2
- yaml-eslint-parser: 1.3.2
+ pnpm-workspace-yaml: 1.7.0
+ tinyglobby: 0.2.17
+ yaml: 2.9.0
+ yaml-eslint-parser: 2.1.0
- eslint-plugin-regexp@2.10.0(eslint@9.39.2(jiti@2.6.1)):
+ eslint-plugin-regexp@3.1.1(eslint@10.8.0(jiti@2.6.1)):
dependencies:
- '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1))
+ '@eslint-community/eslint-utils': 4.9.1(eslint@10.8.0(jiti@2.6.1))
'@eslint-community/regexpp': 4.12.2
- comment-parser: 1.4.1
- eslint: 9.39.2(jiti@2.6.1)
- jsdoc-type-pratt-parser: 4.8.0
+ comment-parser: 1.4.5
+ eslint: 10.8.0(jiti@2.6.1)
+ jsdoc-type-pratt-parser: 7.1.1
refa: 0.12.1
regexp-ast-analysis: 0.7.1
scslre: 0.3.0
- eslint-plugin-toml@0.12.0(eslint@9.39.2(jiti@2.6.1)):
+ eslint-plugin-toml@1.5.0(eslint@10.8.0(jiti@2.6.1)):
dependencies:
+ '@eslint/core': 1.1.1
+ '@eslint/plugin-kit': 0.7.2
+ '@ota-meshi/ast-token-store': 0.3.0
debug: 4.4.3
- eslint: 9.39.2(jiti@2.6.1)
- eslint-compat-utils: 0.6.5(eslint@9.39.2(jiti@2.6.1))
- lodash: 4.17.21
- toml-eslint-parser: 0.10.1
+ eslint: 10.8.0(jiti@2.6.1)
+ toml-eslint-parser: 1.0.3
transitivePeerDependencies:
- supports-color
- eslint-plugin-unicorn@62.0.0(eslint@9.39.2(jiti@2.6.1)):
+ eslint-plugin-unicorn@72.0.0(eslint@10.8.0(jiti@2.6.1)):
dependencies:
- '@babel/helper-validator-identifier': 7.28.5
- '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1))
- '@eslint/plugin-kit': 0.4.1
+ '@eslint-community/eslint-utils': 4.9.1(eslint@10.8.0(jiti@2.6.1))
+ '@eslint/css-tree': 4.0.5
+ browserslist: 4.28.7
change-case: 5.4.4
- ci-info: 4.3.1
- clean-regexp: 1.0.0
- core-js-compat: 3.47.0
- eslint: 9.39.2(jiti@2.6.1)
- esquery: 1.7.0
+ ci-info: 4.4.0
+ core-js-compat: 3.49.0
+ detect-indent: 7.0.2
+ entities: 4.5.0
+ eslint: 10.8.0(jiti@2.6.1)
find-up-simple: 1.0.1
- globals: 16.5.0
+ globals: 17.9.0
indent-string: 5.0.0
is-builtin-module: 5.0.0
- jsesc: 3.1.0
+ is-identifier: 1.1.0
pluralize: 8.0.0
- regexp-tree: 0.1.27
- regjsparser: 0.13.0
- semver: 7.7.3
+ quote-js-string: 0.1.0
+ regjsparser: 0.13.2
+ reserved-identifiers: 1.2.0
+ semver: 7.8.5
strip-indent: 4.1.1
+ yaml: 2.9.0
- eslint-plugin-unused-imports@4.3.0(@typescript-eslint/eslint-plugin@8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)):
+ eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.8.0(jiti@2.6.1)):
dependencies:
- eslint: 9.39.2(jiti@2.6.1)
+ eslint: 10.8.0(jiti@2.6.1)
optionalDependencies:
- '@typescript-eslint/eslint-plugin': 8.52.0(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/eslint-plugin': 8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3)
- eslint-plugin-vue@10.6.2(@stylistic/eslint-plugin@5.7.0(eslint@9.39.2(jiti@2.6.1)))(@typescript-eslint/parser@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@2.6.1))):
+ eslint-plugin-vue@10.10.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.6.1)))(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.8.0(jiti@2.6.1))(vue-eslint-parser@10.4.1(eslint@10.8.0(jiti@2.6.1))):
dependencies:
- '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1))
- eslint: 9.39.2(jiti@2.6.1)
+ '@eslint-community/eslint-utils': 4.9.1(eslint@10.8.0(jiti@2.6.1))
+ eslint: 10.8.0(jiti@2.6.1)
natural-compare: 1.4.0
nth-check: 2.1.1
- postcss-selector-parser: 7.1.1
- semver: 7.7.3
- vue-eslint-parser: 10.2.0(eslint@9.39.2(jiti@2.6.1))
- xml-name-validator: 4.0.0
+ postcss-selector-parser: 7.1.4
+ semver: 7.8.5
+ vue-eslint-parser: 10.4.1(eslint@10.8.0(jiti@2.6.1))
+ xml-name-validator: 5.0.0
optionalDependencies:
- '@stylistic/eslint-plugin': 5.7.0(eslint@9.39.2(jiti@2.6.1))
- '@typescript-eslint/parser': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
+ '@stylistic/eslint-plugin': 5.10.0(eslint@10.8.0(jiti@2.6.1))
+ '@typescript-eslint/parser': 8.65.0(eslint@10.8.0(jiti@2.6.1))(typescript@5.9.3)
- eslint-plugin-yml@1.19.1(eslint@9.39.2(jiti@2.6.1)):
+ eslint-plugin-yml@3.7.0(eslint@10.8.0(jiti@2.6.1)):
dependencies:
- debug: 4.4.3
- diff-sequences: 27.5.1
- escape-string-regexp: 4.0.0
- eslint: 9.39.2(jiti@2.6.1)
- eslint-compat-utils: 0.6.5(eslint@9.39.2(jiti@2.6.1))
+ '@eslint/core': 1.1.1
+ '@eslint/plugin-kit': 0.7.2
+ '@ota-meshi/ast-token-store': 0.3.0
+ diff-sequences: 29.6.3
+ escape-string-regexp: 5.0.0
+ eslint: 10.8.0(jiti@2.6.1)
natural-compare: 1.4.0
- yaml-eslint-parser: 1.3.2
- transitivePeerDependencies:
- - supports-color
+ yaml-eslint-parser: 2.1.0
- eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.26)(eslint@9.39.2(jiti@2.6.1)):
+ eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.40)(eslint@10.8.0(jiti@2.6.1)):
dependencies:
- '@vue/compiler-sfc': 3.5.26
- eslint: 9.39.2(jiti@2.6.1)
+ '@vue/compiler-sfc': 3.5.40
+ eslint: 10.8.0(jiti@2.6.1)
- eslint-scope@8.4.0:
+ eslint-scope@9.1.2:
dependencies:
+ '@types/esrecurse': 4.3.1
+ '@types/estree': 1.0.8
esrecurse: 4.3.0
estraverse: 5.3.0
@@ -7776,30 +7681,27 @@ snapshots:
eslint-visitor-keys@4.2.1: {}
- eslint-visitor-keys@5.0.0: {}
+ eslint-visitor-keys@5.0.1: {}
- eslint@9.39.2(jiti@2.6.1):
+ eslint@10.8.0(jiti@2.6.1):
dependencies:
- '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1))
+ '@eslint-community/eslint-utils': 4.9.1(eslint@10.8.0(jiti@2.6.1))
'@eslint-community/regexpp': 4.12.2
- '@eslint/config-array': 0.21.1
- '@eslint/config-helpers': 0.4.2
- '@eslint/core': 0.17.0
- '@eslint/eslintrc': 3.3.3
- '@eslint/js': 9.39.2
- '@eslint/plugin-kit': 0.4.1
+ '@eslint/config-array': 0.23.5
+ '@eslint/config-helpers': 0.7.0
+ '@eslint/core': 1.2.1
+ '@eslint/plugin-kit': 0.7.2
'@humanfs/node': 0.16.7
'@humanwhocodes/module-importer': 1.0.1
'@humanwhocodes/retry': 0.4.3
'@types/estree': 1.0.8
- ajv: 6.12.6
- chalk: 4.1.2
+ ajv: 6.14.0
cross-spawn: 7.0.6
debug: 4.4.3
escape-string-regexp: 4.0.0
- eslint-scope: 8.4.0
- eslint-visitor-keys: 4.2.1
- espree: 10.4.0
+ eslint-scope: 9.1.2
+ eslint-visitor-keys: 5.0.1
+ espree: 11.2.0
esquery: 1.7.0
esutils: 2.0.3
fast-deep-equal: 3.1.3
@@ -7810,8 +7712,7 @@ snapshots:
imurmurhash: 0.1.4
is-glob: 4.0.3
json-stable-stringify-without-jsonify: 1.0.1
- lodash.merge: 4.6.2
- minimatch: 3.1.2
+ minimatch: 10.2.6
natural-compare: 1.4.0
optionator: 0.9.4
optionalDependencies:
@@ -7821,23 +7722,15 @@ snapshots:
espree@10.4.0:
dependencies:
- acorn: 8.15.0
- acorn-jsx: 5.3.2(acorn@8.15.0)
+ acorn: 8.16.0
+ acorn-jsx: 5.3.2(acorn@8.16.0)
eslint-visitor-keys: 4.2.1
- espree@11.0.0:
- dependencies:
- acorn: 8.15.0
- acorn-jsx: 5.3.2(acorn@8.15.0)
- eslint-visitor-keys: 5.0.0
-
- espree@9.6.1:
- dependencies:
- acorn: 8.15.0
- acorn-jsx: 5.3.2(acorn@8.15.0)
- eslint-visitor-keys: 3.4.3
-
- esprima@4.0.1: {}
+ espree@11.2.0:
+ dependencies:
+ acorn: 8.16.0
+ acorn-jsx: 5.3.2(acorn@8.16.0)
+ eslint-visitor-keys: 5.0.1
esquery@1.7.0:
dependencies:
@@ -7861,10 +7754,6 @@ snapshots:
etag@1.8.1: {}
- eventemitter3@5.0.1: {}
-
- eventsource-parser@3.0.6: {}
-
expect-type@1.3.0: {}
express@4.22.1:
@@ -7890,7 +7779,7 @@ snapshots:
parseurl: 1.3.3
path-to-regexp: 0.1.12
proxy-addr: 2.0.7
- qs: 6.14.1
+ qs: 6.14.2
range-parser: 1.2.1
safe-buffer: 5.2.1
send: 0.19.2
@@ -7905,39 +7794,39 @@ snapshots:
exsolve@1.0.8: {}
- extend-shallow@2.0.1:
- dependencies:
- is-extendable: 0.1.1
-
- extend@3.0.2: {}
-
fast-deep-equal@3.1.3: {}
fast-json-stable-stringify@2.1.0: {}
fast-levenshtein@2.0.6: {}
+ fast-string-truncated-width@3.0.3: {}
+
+ fast-string-width@3.0.2:
+ dependencies:
+ fast-string-truncated-width: 3.0.3
+
fast-uri@3.1.0: {}
+ fast-wrap-ansi@0.2.2:
+ dependencies:
+ fast-string-width: 3.0.2
+
fault@2.0.1:
dependencies:
format: 0.2.2
- fdir@6.5.0(picomatch@4.0.3):
+ fdir@6.5.0(picomatch@4.0.5):
optionalDependencies:
- picomatch: 4.0.3
+ picomatch: 4.0.5
file-entry-cache@8.0.0:
dependencies:
flat-cache: 4.0.1
- filelist@1.0.4:
+ filelist@1.0.6:
dependencies:
- minimatch: 5.1.6
-
- fill-range@7.1.1:
- dependencies:
- to-regex-range: 5.0.1
+ minimatch: 5.1.9
finalhandler@1.3.2:
dependencies:
@@ -7960,20 +7849,20 @@ snapshots:
flat-cache@4.0.1:
dependencies:
- flatted: 3.3.3
+ flatted: 3.4.2
keyv: 4.5.4
- flatted@3.3.3: {}
+ flatted@3.4.2: {}
- floating-vue@5.2.2(vue@3.5.26(typescript@5.9.3)):
+ floating-vue@5.2.2(vue@3.5.40(typescript@5.9.3)):
dependencies:
'@floating-ui/dom': 1.1.1
- vue: 3.5.26(typescript@5.9.3)
- vue-resize: 2.0.0-alpha.1(vue@3.5.26(typescript@5.9.3))
+ vue: 3.5.40(typescript@5.9.3)
+ vue-resize: 2.0.0-alpha.1(vue@3.5.40(typescript@5.9.3))
- focus-trap@7.7.1:
+ focus-trap@8.2.2:
dependencies:
- tabbable: 6.4.0
+ tabbable: 6.5.0
for-each@0.3.5:
dependencies:
@@ -8002,6 +7891,8 @@ snapshots:
function-bind@1.1.2: {}
+ function-timeout@1.0.2: {}
+
function.prototype.name@1.1.8:
dependencies:
call-bind: 1.0.8
@@ -8019,10 +7910,6 @@ snapshots:
gensync@1.0.0-beta.2: {}
- get-caller-file@2.0.5: {}
-
- get-east-asian-width@1.4.0: {}
-
get-intrinsic@1.3.0:
dependencies:
call-bind-apply-helpers: 1.0.2
@@ -8049,7 +7936,7 @@ snapshots:
es-errors: 1.3.0
get-intrinsic: 1.3.0
- get-tsconfig@4.13.0:
+ get-tsconfig@4.13.6:
dependencies:
resolve-pkg-maps: 1.0.0
@@ -8062,19 +7949,15 @@ snapshots:
glob@11.1.0:
dependencies:
foreground-child: 3.3.1
- jackspeak: 4.1.1
- minimatch: 10.1.1
- minipass: 7.1.2
+ jackspeak: 4.2.3
+ minimatch: 10.2.6
+ minipass: 7.1.3
package-json-from-dist: 1.0.1
- path-scurry: 2.0.1
-
- globals@11.12.0: {}
-
- globals@14.0.0: {}
+ path-scurry: 2.0.2
globals@15.15.0: {}
- globals@16.5.0: {}
+ globals@17.9.0: {}
globalthis@1.0.4:
dependencies:
@@ -8087,15 +7970,6 @@ snapshots:
graceful-fs@4.2.11: {}
- graphemer@1.4.0: {}
-
- gray-matter@4.0.3:
- dependencies:
- js-yaml: 3.14.2
- kind-of: 6.0.3
- section-matter: 1.0.0
- strip-bom-string: 1.0.0
-
gzip-size@6.0.0:
dependencies:
duplexer: 0.1.2
@@ -8104,8 +7978,6 @@ snapshots:
has-bigints@1.1.0: {}
- has-flag@4.0.0: {}
-
has-property-descriptors@1.0.2:
dependencies:
es-define-property: 1.0.1
@@ -8151,8 +8023,6 @@ snapshots:
readable-stream: 2.3.8
wbuf: 1.7.3
- htm@3.1.1: {}
-
html-entities@2.6.0: {}
html-void-elements@3.0.0: {}
@@ -8171,7 +8041,7 @@ snapshots:
dependencies:
appdata-path: 1.0.0
compression: 1.8.1
- cors: 2.8.5
+ cors: 2.8.6
express: 4.22.1
spdy: 4.0.2
uglify-js: 3.19.3
@@ -8186,14 +8056,15 @@ snapshots:
idb@7.1.1: {}
+ identifier-regex@1.1.0:
+ dependencies:
+ reserved-identifiers: 1.2.0
+
ignore@5.3.2: {}
ignore@7.0.5: {}
- import-fresh@3.3.1:
- dependencies:
- parent-module: 1.0.1
- resolve-from: 4.0.0
+ import-meta-resolve@4.2.0: {}
imurmurhash@0.1.4: {}
@@ -8255,20 +8126,12 @@ snapshots:
call-bound: 1.0.4
has-tostringtag: 1.0.2
- is-extendable@0.1.1: {}
-
is-extglob@2.1.1: {}
is-finalizationregistry@1.1.1:
dependencies:
call-bound: 1.0.4
- is-fullwidth-code-point@3.0.0: {}
-
- is-fullwidth-code-point@5.1.0:
- dependencies:
- get-east-asian-width: 1.4.0
-
is-generator-function@1.1.2:
dependencies:
call-bound: 1.0.4
@@ -8281,6 +8144,11 @@ snapshots:
dependencies:
is-extglob: 2.1.1
+ is-identifier@1.1.0:
+ dependencies:
+ identifier-regex: 1.1.0
+ super-regex: 1.1.0
+
is-map@2.0.3: {}
is-module@1.0.0: {}
@@ -8292,12 +8160,8 @@ snapshots:
call-bound: 1.0.4
has-tostringtag: 1.0.2
- is-number@7.0.0: {}
-
is-obj@1.0.1: {}
- is-plain-obj@4.1.0: {}
-
is-regex@1.2.1:
dependencies:
call-bound: 1.0.4
@@ -8328,7 +8192,7 @@ snapshots:
is-typed-array@1.1.15:
dependencies:
- which-typed-array: 1.1.19
+ which-typed-array: 1.1.20
is-weakmap@2.0.2: {}
@@ -8341,40 +8205,31 @@ snapshots:
call-bound: 1.0.4
get-intrinsic: 1.3.0
- is-what@5.5.0: {}
-
isarray@1.0.0: {}
isarray@2.0.5: {}
isexe@2.0.0: {}
- jackspeak@4.1.1:
+ jackspeak@4.2.3:
dependencies:
- '@isaacs/cliui': 8.0.2
+ '@isaacs/cliui': 9.0.0
jake@10.9.4:
dependencies:
async: 3.2.6
- filelist: 1.0.4
+ filelist: 1.0.6
picocolors: 1.1.1
jiti@2.6.1: {}
js-tokens@4.0.0: {}
- js-yaml@3.14.2:
- dependencies:
- argparse: 1.0.10
- esprima: 4.0.1
-
- js-yaml@4.1.1:
- dependencies:
- argparse: 2.0.1
+ jsdoc-type-pratt-parser@7.1.1: {}
- jsdoc-type-pratt-parser@4.8.0: {}
+ jsdoc-type-pratt-parser@7.2.0: {}
- jsdoc-type-pratt-parser@7.0.0: {}
+ jsdoc-type-pratt-parser@8.0.0: {}
jsesc@3.1.0: {}
@@ -8390,12 +8245,11 @@ snapshots:
json5@2.2.3: {}
- jsonc-eslint-parser@2.4.2:
+ jsonc-eslint-parser@3.1.0:
dependencies:
- acorn: 8.15.0
- eslint-visitor-keys: 3.4.3
- espree: 9.6.1
- semver: 7.7.3
+ acorn: 8.16.0
+ eslint-visitor-keys: 5.0.1
+ semver: 7.7.4
jsonfile@6.2.0:
dependencies:
@@ -8405,12 +8259,14 @@ snapshots:
jsonpointer@5.0.1: {}
+ katex@0.16.47:
+ dependencies:
+ commander: 8.3.0
+
keyv@4.5.4:
dependencies:
json-buffer: 3.0.1
- kind-of@6.0.3: {}
-
leven@3.1.0: {}
levn@0.4.1:
@@ -8418,81 +8274,119 @@ snapshots:
prelude-ls: 1.2.1
type-check: 0.4.0
- lightningcss-android-arm64@1.30.2:
+ lightningcss-android-arm64@1.31.1:
+ optional: true
+
+ lightningcss-android-arm64@1.33.0:
+ optional: true
+
+ lightningcss-darwin-arm64@1.31.1:
+ optional: true
+
+ lightningcss-darwin-arm64@1.33.0:
+ optional: true
+
+ lightningcss-darwin-x64@1.31.1:
+ optional: true
+
+ lightningcss-darwin-x64@1.33.0:
+ optional: true
+
+ lightningcss-freebsd-x64@1.31.1:
+ optional: true
+
+ lightningcss-freebsd-x64@1.33.0:
+ optional: true
+
+ lightningcss-linux-arm-gnueabihf@1.31.1:
+ optional: true
+
+ lightningcss-linux-arm-gnueabihf@1.33.0:
+ optional: true
+
+ lightningcss-linux-arm64-gnu@1.31.1:
+ optional: true
+
+ lightningcss-linux-arm64-gnu@1.33.0:
optional: true
- lightningcss-darwin-arm64@1.30.2:
+ lightningcss-linux-arm64-musl@1.31.1:
optional: true
- lightningcss-darwin-x64@1.30.2:
+ lightningcss-linux-arm64-musl@1.33.0:
optional: true
- lightningcss-freebsd-x64@1.30.2:
+ lightningcss-linux-x64-gnu@1.31.1:
optional: true
- lightningcss-linux-arm-gnueabihf@1.30.2:
+ lightningcss-linux-x64-gnu@1.33.0:
optional: true
- lightningcss-linux-arm64-gnu@1.30.2:
+ lightningcss-linux-x64-musl@1.31.1:
optional: true
- lightningcss-linux-arm64-musl@1.30.2:
+ lightningcss-linux-x64-musl@1.33.0:
optional: true
- lightningcss-linux-x64-gnu@1.30.2:
+ lightningcss-win32-arm64-msvc@1.31.1:
optional: true
- lightningcss-linux-x64-musl@1.30.2:
+ lightningcss-win32-arm64-msvc@1.33.0:
optional: true
- lightningcss-win32-arm64-msvc@1.30.2:
+ lightningcss-win32-x64-msvc@1.31.1:
optional: true
- lightningcss-win32-x64-msvc@1.30.2:
+ lightningcss-win32-x64-msvc@1.33.0:
optional: true
- lightningcss@1.30.2:
+ lightningcss@1.31.1:
+ dependencies:
+ detect-libc: 2.1.2
+ optionalDependencies:
+ lightningcss-android-arm64: 1.31.1
+ lightningcss-darwin-arm64: 1.31.1
+ lightningcss-darwin-x64: 1.31.1
+ lightningcss-freebsd-x64: 1.31.1
+ lightningcss-linux-arm-gnueabihf: 1.31.1
+ lightningcss-linux-arm64-gnu: 1.31.1
+ lightningcss-linux-arm64-musl: 1.31.1
+ lightningcss-linux-x64-gnu: 1.31.1
+ lightningcss-linux-x64-musl: 1.31.1
+ lightningcss-win32-arm64-msvc: 1.31.1
+ lightningcss-win32-x64-msvc: 1.31.1
+
+ lightningcss@1.33.0:
dependencies:
detect-libc: 2.1.2
optionalDependencies:
- lightningcss-android-arm64: 1.30.2
- lightningcss-darwin-arm64: 1.30.2
- lightningcss-darwin-x64: 1.30.2
- lightningcss-freebsd-x64: 1.30.2
- lightningcss-linux-arm-gnueabihf: 1.30.2
- lightningcss-linux-arm64-gnu: 1.30.2
- lightningcss-linux-arm64-musl: 1.30.2
- lightningcss-linux-x64-gnu: 1.30.2
- lightningcss-linux-x64-musl: 1.30.2
- lightningcss-win32-arm64-msvc: 1.30.2
- lightningcss-win32-x64-msvc: 1.30.2
-
- linkify-it@5.0.0:
+ lightningcss-android-arm64: 1.33.0
+ lightningcss-darwin-arm64: 1.33.0
+ lightningcss-darwin-x64: 1.33.0
+ lightningcss-freebsd-x64: 1.33.0
+ lightningcss-linux-arm-gnueabihf: 1.33.0
+ lightningcss-linux-arm64-gnu: 1.33.0
+ lightningcss-linux-arm64-musl: 1.33.0
+ lightningcss-linux-x64-gnu: 1.33.0
+ lightningcss-linux-x64-musl: 1.33.0
+ lightningcss-win32-arm64-msvc: 1.33.0
+ lightningcss-win32-x64-msvc: 1.33.0
+
+ linkify-it@5.0.2:
dependencies:
uc.micro: 2.1.0
- lint-staged@16.2.7:
+ lint-staged@17.3.0:
dependencies:
- commander: 14.0.2
- listr2: 9.0.5
- micromatch: 4.0.8
- nano-spawn: 2.0.0
- pidtree: 0.6.0
+ picomatch: 4.0.5
string-argv: 0.3.2
- yaml: 2.8.2
-
- listr2@9.0.5:
- dependencies:
- cli-truncate: 5.1.1
- colorette: 2.0.20
- eventemitter3: 5.0.1
- log-update: 6.1.0
- rfdc: 1.4.1
- wrap-ansi: 9.0.2
+ tinyexec: 1.3.0
+ optionalDependencies:
+ yaml: 2.9.0
- local-pkg@1.1.2:
+ local-pkg@1.2.1:
dependencies:
- mlly: 1.8.0
+ mlly: 1.8.1
pkg-types: 2.3.0
quansync: 0.2.11
@@ -8502,23 +8396,13 @@ snapshots:
lodash.debounce@4.0.8: {}
- lodash.merge@4.6.2: {}
-
lodash.sortby@4.7.0: {}
- lodash@4.17.21: {}
-
- log-update@6.1.0:
- dependencies:
- ansi-escapes: 7.2.0
- cli-cursor: 5.0.0
- slice-ansi: 7.1.2
- strip-ansi: 7.1.2
- wrap-ansi: 9.0.2
+ lodash@4.17.23: {}
longest-streak@3.1.0: {}
- lru-cache@11.2.4: {}
+ lru-cache@11.2.7: {}
lru-cache@5.1.1:
dependencies:
@@ -8526,6 +8410,16 @@ snapshots:
lz-string@1.5.0: {}
+ magic-regexp@0.10.0:
+ dependencies:
+ estree-walker: 3.0.3
+ magic-string: 0.30.21
+ mlly: 1.8.1
+ regexp-tree: 0.1.27
+ type-level-regexp: 0.1.17
+ ufo: 1.6.3
+ unplugin: 2.3.11
+
magic-string@0.25.9:
dependencies:
sourcemap-codec: 1.4.8
@@ -8534,23 +8428,29 @@ snapshots:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
+ magic-string@1.1.0:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.5
+
+ make-asynchronous@1.1.0:
+ dependencies:
+ p-event: 6.0.1
+ type-fest: 4.41.0
+ web-worker: 1.5.0
+
mark.js@8.11.1: {}
- markdown-it@14.1.0:
+ markdown-it@14.3.0:
dependencies:
argparse: 2.0.1
entities: 4.5.0
- linkify-it: 5.0.0
+ linkify-it: 5.0.2
mdurl: 2.0.0
punycode.js: 2.3.1
uc.micro: 2.1.0
markdown-table@3.0.4: {}
- markdown-title@1.0.2: {}
-
- marked@16.4.2: {}
-
math-intrinsics@1.1.0: {}
mdast-util-find-and-replace@3.0.2:
@@ -8560,11 +8460,11 @@ snapshots:
unist-util-is: 6.0.1
unist-util-visit-parents: 6.0.2
- mdast-util-from-markdown@2.0.2:
+ mdast-util-from-markdown@2.0.3:
dependencies:
'@types/mdast': 4.0.4
'@types/unist': 3.0.3
- decode-named-character-reference: 1.2.0
+ decode-named-character-reference: 1.3.0
devlop: 1.1.0
mdast-util-to-string: 4.0.0
micromark: 4.0.2
@@ -8582,7 +8482,7 @@ snapshots:
'@types/mdast': 4.0.4
devlop: 1.1.0
escape-string-regexp: 5.0.0
- mdast-util-from-markdown: 2.0.2
+ mdast-util-from-markdown: 2.0.3
mdast-util-to-markdown: 2.1.2
micromark-extension-frontmatter: 2.0.0
transitivePeerDependencies:
@@ -8600,7 +8500,7 @@ snapshots:
dependencies:
'@types/mdast': 4.0.4
devlop: 1.1.0
- mdast-util-from-markdown: 2.0.2
+ mdast-util-from-markdown: 2.0.3
mdast-util-to-markdown: 2.1.2
micromark-util-normalize-identifier: 2.0.1
transitivePeerDependencies:
@@ -8609,7 +8509,7 @@ snapshots:
mdast-util-gfm-strikethrough@2.0.0:
dependencies:
'@types/mdast': 4.0.4
- mdast-util-from-markdown: 2.0.2
+ mdast-util-from-markdown: 2.0.3
mdast-util-to-markdown: 2.1.2
transitivePeerDependencies:
- supports-color
@@ -8619,7 +8519,7 @@ snapshots:
'@types/mdast': 4.0.4
devlop: 1.1.0
markdown-table: 3.0.4
- mdast-util-from-markdown: 2.0.2
+ mdast-util-from-markdown: 2.0.3
mdast-util-to-markdown: 2.1.2
transitivePeerDependencies:
- supports-color
@@ -8628,14 +8528,14 @@ snapshots:
dependencies:
'@types/mdast': 4.0.4
devlop: 1.1.0
- mdast-util-from-markdown: 2.0.2
+ mdast-util-from-markdown: 2.0.3
mdast-util-to-markdown: 2.1.2
transitivePeerDependencies:
- supports-color
mdast-util-gfm@3.1.0:
dependencies:
- mdast-util-from-markdown: 2.0.2
+ mdast-util-from-markdown: 2.0.3
mdast-util-gfm-autolink-literal: 2.0.1
mdast-util-gfm-footnote: 2.1.0
mdast-util-gfm-strikethrough: 2.0.0
@@ -8645,6 +8545,18 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ mdast-util-math@3.0.0:
+ dependencies:
+ '@types/hast': 3.0.4
+ '@types/mdast': 4.0.4
+ devlop: 1.1.0
+ longest-streak: 3.1.0
+ mdast-util-from-markdown: 2.0.3
+ mdast-util-to-markdown: 2.1.2
+ unist-util-remove-position: 5.0.0
+ transitivePeerDependencies:
+ - supports-color
+
mdast-util-phrasing@4.1.0:
dependencies:
'@types/mdast': 4.0.4
@@ -8659,7 +8571,7 @@ snapshots:
micromark-util-sanitize-uri: 2.0.1
trim-lines: 3.0.1
unist-util-position: 5.0.0
- unist-util-visit: 5.0.0
+ unist-util-visit: 5.1.0
vfile: 6.0.3
mdast-util-to-markdown@2.1.2:
@@ -8671,14 +8583,16 @@ snapshots:
mdast-util-to-string: 4.0.0
micromark-util-classify-character: 2.0.1
micromark-util-decode-string: 2.0.1
- unist-util-visit: 5.0.0
+ unist-util-visit: 5.1.0
zwitch: 2.0.4
mdast-util-to-string@4.0.0:
dependencies:
'@types/mdast': 4.0.4
- mdn-data@2.12.2: {}
+ mdn-data@2.27.1: {}
+
+ mdn-data@2.29.0: {}
mdurl@2.0.0: {}
@@ -8690,7 +8604,7 @@ snapshots:
micromark-core-commonmark@2.0.3:
dependencies:
- decode-named-character-reference: 1.2.0
+ decode-named-character-reference: 1.3.0
devlop: 1.1.0
micromark-factory-destination: 2.0.1
micromark-factory-label: 2.0.1
@@ -8772,6 +8686,16 @@ snapshots:
micromark-util-combine-extensions: 2.0.1
micromark-util-types: 2.0.2
+ micromark-extension-math@3.1.0:
+ dependencies:
+ '@types/katex': 0.16.8
+ devlop: 1.1.0
+ katex: 0.16.47
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
micromark-factory-destination@2.0.1:
dependencies:
micromark-util-character: 2.1.1
@@ -8830,7 +8754,7 @@ snapshots:
micromark-util-decode-string@2.0.1:
dependencies:
- decode-named-character-reference: 1.2.0
+ decode-named-character-reference: 1.3.0
micromark-util-character: 2.1.1
micromark-util-decode-numeric-character-reference: 2.0.2
micromark-util-symbol: 2.0.1
@@ -8868,7 +8792,7 @@ snapshots:
dependencies:
'@types/debug': 4.1.12
debug: 4.4.3
- decode-named-character-reference: 1.2.0
+ decode-named-character-reference: 1.3.0
devlop: 1.1.0
micromark-core-commonmark: 2.0.3
micromark-factory-space: 2.0.1
@@ -8886,15 +8810,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- micromatch@4.0.8:
- dependencies:
- braces: 3.0.3
- picomatch: 2.3.1
-
- millify@6.1.0:
- dependencies:
- yargs: 17.7.2
-
mime-db@1.52.0: {}
mime-db@1.54.0: {}
@@ -8905,38 +8820,32 @@ snapshots:
mime@1.6.0: {}
- mimic-function@5.0.1: {}
-
minimalistic-assert@1.0.1: {}
- minimatch@10.1.1:
- dependencies:
- '@isaacs/brace-expansion': 5.0.0
-
- minimatch@3.1.2:
+ minimatch@10.2.4:
dependencies:
- brace-expansion: 1.1.12
+ brace-expansion: 5.0.4
- minimatch@5.1.6:
+ minimatch@10.2.6:
dependencies:
- brace-expansion: 2.0.2
+ brace-expansion: 5.0.9
- minimatch@9.0.5:
+ minimatch@5.1.9:
dependencies:
brace-expansion: 2.0.2
- minipass@7.1.2: {}
+ minipass@7.1.3: {}
minisearch@7.2.0: {}
- mitt@3.0.1: {}
-
- mlly@1.8.0:
+ mlly@1.8.1:
dependencies:
- acorn: 8.15.0
+ acorn: 8.16.0
pathe: 2.0.3
pkg-types: 1.3.1
- ufo: 1.6.2
+ ufo: 1.6.3
+
+ module-replacements@3.1.0: {}
mrmime@2.0.1: {}
@@ -8946,9 +8855,7 @@ snapshots:
muggle-string@0.4.1: {}
- nano-spawn@2.0.0: {}
-
- nanoid@3.3.11: {}
+ nanoid@3.3.16: {}
natural-compare@1.4.0: {}
@@ -8960,7 +8867,7 @@ snapshots:
node-fetch-native@1.6.7: {}
- node-releases@2.0.27: {}
+ node-releases@2.0.51: {}
nth-check@2.1.1:
dependencies:
@@ -8968,7 +8875,7 @@ snapshots:
object-assign@4.1.1: {}
- object-deep-merge@2.0.0: {}
+ object-deep-merge@2.0.1: {}
object-inspect@1.13.4: {}
@@ -8991,7 +8898,7 @@ snapshots:
dependencies:
destr: 2.0.5
node-fetch-native: 1.6.7
- ufo: 1.6.2
+ ufo: 1.6.3
ohash@2.0.11: {}
@@ -9001,15 +8908,11 @@ snapshots:
on-headers@1.1.0: {}
- onetime@7.0.0:
- dependencies:
- mimic-function: 5.0.1
-
- oniguruma-parser@0.12.1: {}
+ oniguruma-parser@0.12.2: {}
- oniguruma-to-es@4.3.4:
+ oniguruma-to-es@4.3.6:
dependencies:
- oniguruma-parser: 0.12.1
+ oniguruma-parser: 0.12.2
regex: 6.1.0
regex-recursion: 6.0.2
@@ -9028,6 +8931,40 @@ snapshots:
object-keys: 1.1.1
safe-push-apply: 1.0.0
+ oxc-parser@0.131.0:
+ dependencies:
+ '@oxc-project/types': 0.131.0
+ optionalDependencies:
+ '@oxc-parser/binding-android-arm-eabi': 0.131.0
+ '@oxc-parser/binding-android-arm64': 0.131.0
+ '@oxc-parser/binding-darwin-arm64': 0.131.0
+ '@oxc-parser/binding-darwin-x64': 0.131.0
+ '@oxc-parser/binding-freebsd-x64': 0.131.0
+ '@oxc-parser/binding-linux-arm-gnueabihf': 0.131.0
+ '@oxc-parser/binding-linux-arm-musleabihf': 0.131.0
+ '@oxc-parser/binding-linux-arm64-gnu': 0.131.0
+ '@oxc-parser/binding-linux-arm64-musl': 0.131.0
+ '@oxc-parser/binding-linux-ppc64-gnu': 0.131.0
+ '@oxc-parser/binding-linux-riscv64-gnu': 0.131.0
+ '@oxc-parser/binding-linux-riscv64-musl': 0.131.0
+ '@oxc-parser/binding-linux-s390x-gnu': 0.131.0
+ '@oxc-parser/binding-linux-x64-gnu': 0.131.0
+ '@oxc-parser/binding-linux-x64-musl': 0.131.0
+ '@oxc-parser/binding-openharmony-arm64': 0.131.0
+ '@oxc-parser/binding-wasm32-wasi': 0.131.0
+ '@oxc-parser/binding-win32-arm64-msvc': 0.131.0
+ '@oxc-parser/binding-win32-ia32-msvc': 0.131.0
+ '@oxc-parser/binding-win32-x64-msvc': 0.131.0
+
+ oxc-walker@0.7.0(oxc-parser@0.131.0):
+ dependencies:
+ magic-regexp: 0.10.0
+ oxc-parser: 0.131.0
+
+ p-event@6.0.1:
+ dependencies:
+ p-timeout: 6.1.4
+
p-limit@3.1.0:
dependencies:
yocto-queue: 0.1.0
@@ -9036,13 +8973,13 @@ snapshots:
dependencies:
p-limit: 3.1.0
+ p-timeout@6.1.4: {}
+
package-json-from-dist@1.0.1: {}
package-manager-detector@1.6.0: {}
- parent-module@1.0.1:
- dependencies:
- callsites: 3.1.0
+ package-manager-detector@1.8.0: {}
parse-gitignore@2.0.0: {}
@@ -9062,18 +8999,16 @@ snapshots:
path-parse@1.0.7: {}
- path-scurry@2.0.1:
+ path-scurry@2.0.2:
dependencies:
- lru-cache: 11.2.4
- minipass: 7.1.2
+ lru-cache: 11.2.7
+ minipass: 7.1.3
path-to-regexp@0.1.12: {}
- path-to-regexp@6.3.0: {}
-
pathe@2.0.3: {}
- perfect-debounce@2.0.0: {}
+ perfect-debounce@2.1.0: {}
picocolors@1.1.1: {}
@@ -9081,25 +9016,25 @@ snapshots:
picomatch@4.0.3: {}
- pidtree@0.6.0: {}
+ picomatch@4.0.5: {}
pkg-types@1.3.1:
dependencies:
confbox: 0.1.8
- mlly: 1.8.0
+ mlly: 1.8.1
pathe: 2.0.3
pkg-types@2.3.0:
dependencies:
- confbox: 0.2.2
+ confbox: 0.2.4
exsolve: 1.0.8
pathe: 2.0.3
pluralize@8.0.0: {}
- pnpm-workspace-yaml@1.4.3:
+ pnpm-workspace-yaml@1.7.0:
dependencies:
- yaml: 2.8.2
+ yaml: 2.9.0
possible-typed-array-names@1.1.0: {}
@@ -9108,14 +9043,14 @@ snapshots:
cssesc: 3.0.0
util-deprecate: 1.0.2
- postcss-selector-parser@7.1.1:
+ postcss-selector-parser@7.1.4:
dependencies:
cssesc: 3.0.0
util-deprecate: 1.0.2
- postcss@8.5.6:
+ postcss@8.5.25:
dependencies:
- nanoid: 3.3.11
+ nanoid: 3.3.16
picocolors: 1.1.1
source-map-js: 1.2.1
@@ -9125,8 +9060,6 @@ snapshots:
pretty-bytes@6.1.1: {}
- pretty-bytes@7.1.0: {}
-
process-nextick-args@2.0.1: {}
property-information@7.1.0: {}
@@ -9140,7 +9073,7 @@ snapshots:
punycode@2.3.1: {}
- qs@6.14.1:
+ qs@6.14.2:
dependencies:
side-channel: 1.1.0
@@ -9148,6 +9081,8 @@ snapshots:
quansync@1.0.0: {}
+ quote-js-string@0.1.0: {}
+
randombytes@2.1.0:
dependencies:
safe-buffer: 5.2.1
@@ -9161,8 +9096,6 @@ snapshots:
iconv-lite: 0.4.24
unpipe: 1.0.0
- react@19.2.3: {}
-
readable-stream@2.3.8:
dependencies:
core-util-is: 1.0.3
@@ -9233,74 +9166,36 @@ snapshots:
regenerate: 1.4.2
regenerate-unicode-properties: 10.2.2
regjsgen: 0.8.0
- regjsparser: 0.13.0
+ regjsparser: 0.13.2
unicode-match-property-ecmascript: 2.0.0
unicode-match-property-value-ecmascript: 2.2.1
regjsgen@0.8.0: {}
- regjsparser@0.13.0:
+ regjsparser@0.13.2:
dependencies:
jsesc: 3.1.0
- reka-ui@2.7.0(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3)):
+ reka-ui@2.9.2(vue@3.5.40(typescript@5.9.3)):
dependencies:
- '@floating-ui/dom': 1.7.4
- '@floating-ui/vue': 1.1.9(vue@3.5.26(typescript@5.9.3))
- '@internationalized/date': 3.10.1
+ '@floating-ui/dom': 1.7.6
+ '@floating-ui/vue': 1.1.11(vue@3.5.40(typescript@5.9.3))
+ '@internationalized/date': 3.12.0
'@internationalized/number': 3.6.5
- '@tanstack/vue-virtual': 3.13.18(vue@3.5.26(typescript@5.9.3))
- '@vueuse/core': 12.8.2(typescript@5.9.3)
- '@vueuse/shared': 12.8.2(typescript@5.9.3)
+ '@tanstack/vue-virtual': 3.13.23(vue@3.5.40(typescript@5.9.3))
+ '@vueuse/core': 14.4.0(vue@3.5.40(typescript@5.9.3))
+ '@vueuse/shared': 14.4.0(vue@3.5.40(typescript@5.9.3))
aria-hidden: 1.2.6
defu: 6.1.4
ohash: 2.0.11
- vue: 3.5.26(typescript@5.9.3)
+ vue: 3.5.40(typescript@5.9.3)
transitivePeerDependencies:
- '@vue/composition-api'
- - typescript
-
- remark-frontmatter@5.0.0:
- dependencies:
- '@types/mdast': 4.0.4
- mdast-util-frontmatter: 2.0.1
- micromark-extension-frontmatter: 2.0.0
- unified: 11.0.5
- transitivePeerDependencies:
- - supports-color
-
- remark-parse@11.0.0:
- dependencies:
- '@types/mdast': 4.0.4
- mdast-util-from-markdown: 2.0.2
- micromark-util-types: 2.0.2
- unified: 11.0.5
- transitivePeerDependencies:
- - supports-color
-
- remark-stringify@11.0.0:
- dependencies:
- '@types/mdast': 4.0.4
- mdast-util-to-markdown: 2.1.2
- unified: 11.0.5
-
- remark@15.0.1:
- dependencies:
- '@types/mdast': 4.0.4
- remark-parse: 11.0.0
- remark-stringify: 11.0.0
- unified: 11.0.5
- transitivePeerDependencies:
- - supports-color
-
- require-directory@2.1.1: {}
require-from-string@2.0.2: {}
reserved-identifiers@1.2.0: {}
- resolve-from@4.0.0: {}
-
resolve-pkg-maps@1.0.0: {}
resolve@1.22.11:
@@ -9309,46 +9204,29 @@ snapshots:
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
- restore-cursor@5.1.0:
+ rolldown@1.2.1:
dependencies:
- onetime: 7.0.0
- signal-exit: 4.1.0
-
- rfdc@1.4.1: {}
-
- rollup@2.79.2:
+ '@oxc-project/types': 0.142.0
+ '@rolldown/pluginutils': 1.0.1
optionalDependencies:
- fsevents: 2.3.3
-
- rollup@4.55.1:
- dependencies:
- '@types/estree': 1.0.8
+ '@rolldown/binding-android-arm64': 1.2.1
+ '@rolldown/binding-darwin-arm64': 1.2.1
+ '@rolldown/binding-darwin-x64': 1.2.1
+ '@rolldown/binding-freebsd-x64': 1.2.1
+ '@rolldown/binding-linux-arm-gnueabihf': 1.2.1
+ '@rolldown/binding-linux-arm64-gnu': 1.2.1
+ '@rolldown/binding-linux-arm64-musl': 1.2.1
+ '@rolldown/binding-linux-ppc64-gnu': 1.2.1
+ '@rolldown/binding-linux-s390x-gnu': 1.2.1
+ '@rolldown/binding-linux-x64-gnu': 1.2.1
+ '@rolldown/binding-linux-x64-musl': 1.2.1
+ '@rolldown/binding-openharmony-arm64': 1.2.1
+ '@rolldown/binding-wasm32-wasi': 1.2.1
+ '@rolldown/binding-win32-arm64-msvc': 1.2.1
+ '@rolldown/binding-win32-x64-msvc': 1.2.1
+
+ rollup@2.80.0:
optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.55.1
- '@rollup/rollup-android-arm64': 4.55.1
- '@rollup/rollup-darwin-arm64': 4.55.1
- '@rollup/rollup-darwin-x64': 4.55.1
- '@rollup/rollup-freebsd-arm64': 4.55.1
- '@rollup/rollup-freebsd-x64': 4.55.1
- '@rollup/rollup-linux-arm-gnueabihf': 4.55.1
- '@rollup/rollup-linux-arm-musleabihf': 4.55.1
- '@rollup/rollup-linux-arm64-gnu': 4.55.1
- '@rollup/rollup-linux-arm64-musl': 4.55.1
- '@rollup/rollup-linux-loong64-gnu': 4.55.1
- '@rollup/rollup-linux-loong64-musl': 4.55.1
- '@rollup/rollup-linux-ppc64-gnu': 4.55.1
- '@rollup/rollup-linux-ppc64-musl': 4.55.1
- '@rollup/rollup-linux-riscv64-gnu': 4.55.1
- '@rollup/rollup-linux-riscv64-musl': 4.55.1
- '@rollup/rollup-linux-s390x-gnu': 4.55.1
- '@rollup/rollup-linux-x64-gnu': 4.55.1
- '@rollup/rollup-linux-x64-musl': 4.55.1
- '@rollup/rollup-openbsd-x64': 4.55.1
- '@rollup/rollup-openharmony-arm64': 4.55.1
- '@rollup/rollup-win32-arm64-msvc': 4.55.1
- '@rollup/rollup-win32-ia32-msvc': 4.55.1
- '@rollup/rollup-win32-x64-gnu': 4.55.1
- '@rollup/rollup-win32-x64-msvc': 4.55.1
fsevents: 2.3.3
safe-array-concat@1.1.3:
@@ -9382,18 +9260,13 @@ snapshots:
refa: 0.12.1
regexp-ast-analysis: 0.7.1
- search-insights@2.17.3: {}
-
- section-matter@1.0.0:
- dependencies:
- extend-shallow: 2.0.1
- kind-of: 6.0.3
-
select-hose@2.0.0: {}
semver@6.3.1: {}
- semver@7.7.3: {}
+ semver@7.7.4: {}
+
+ semver@7.8.5: {}
send@0.19.2:
dependencies:
@@ -9460,7 +9333,7 @@ snapshots:
dependencies:
color: 4.2.3
detect-libc: 2.1.2
- semver: 7.7.3
+ semver: 7.7.4
optionalDependencies:
'@img/sharp-darwin-arm64': 0.33.5
'@img/sharp-darwin-x64': 0.33.5
@@ -9488,16 +9361,16 @@ snapshots:
shebang-regex@3.0.0: {}
- shiki@3.21.0:
+ shiki@4.4.1:
dependencies:
- '@shikijs/core': 3.21.0
- '@shikijs/engine-javascript': 3.21.0
- '@shikijs/engine-oniguruma': 3.21.0
- '@shikijs/langs': 3.21.0
- '@shikijs/themes': 3.21.0
- '@shikijs/types': 3.21.0
+ '@shikijs/core': 4.4.1
+ '@shikijs/engine-javascript': 4.4.1
+ '@shikijs/engine-oniguruma': 4.4.1
+ '@shikijs/langs': 4.4.1
+ '@shikijs/themes': 4.4.1
+ '@shikijs/types': 4.4.1
'@shikijs/vscode-textmate': 10.0.2
- '@types/hast': 3.0.4
+ '@types/hast': 3.0.5
side-channel-list@1.0.0:
dependencies:
@@ -9545,12 +9418,7 @@ snapshots:
sisteransi@1.0.5: {}
- slice-ansi@7.1.2:
- dependencies:
- ansi-styles: 6.2.3
- is-fullwidth-code-point: 5.1.0
-
- smob@1.5.0: {}
+ smob@1.6.1: {}
source-map-js@1.2.1: {}
@@ -9571,12 +9439,12 @@ snapshots:
spdx-exceptions@2.5.0: {}
- spdx-expression-parse@4.0.0:
+ spdx-expression-parse@5.0.0:
dependencies:
spdx-exceptions: 2.5.0
- spdx-license-ids: 3.0.22
+ spdx-license-ids: 3.0.23
- spdx-license-ids@3.0.22: {}
+ spdx-license-ids@3.0.23: {}
spdy-transport@3.0.0:
dependencies:
@@ -9599,15 +9467,11 @@ snapshots:
transitivePeerDependencies:
- supports-color
- speakingurl@14.0.1: {}
-
- sprintf-js@1.0.3: {}
-
stackback@0.0.2: {}
statuses@2.0.2: {}
- std-env@3.10.0: {}
+ std-env@4.0.0: {}
stop-iteration-iterator@1.1.0:
dependencies:
@@ -9616,29 +9480,6 @@ snapshots:
string-argv@0.3.2: {}
- string-width@4.2.3:
- dependencies:
- emoji-regex: 8.0.0
- is-fullwidth-code-point: 3.0.0
- strip-ansi: 6.0.1
-
- string-width@5.1.2:
- dependencies:
- eastasianwidth: 0.2.0
- emoji-regex: 9.2.2
- strip-ansi: 7.1.2
-
- string-width@7.2.0:
- dependencies:
- emoji-regex: 10.6.0
- get-east-asian-width: 1.4.0
- strip-ansi: 7.1.2
-
- string-width@8.1.0:
- dependencies:
- get-east-asian-width: 1.4.0
- strip-ansi: 7.1.2
-
string.prototype.matchall@4.0.12:
dependencies:
call-bind: 1.0.8
@@ -9697,45 +9538,25 @@ snapshots:
is-obj: 1.0.1
is-regexp: 1.0.0
- strip-ansi@6.0.1:
- dependencies:
- ansi-regex: 5.0.1
-
- strip-ansi@7.1.2:
- dependencies:
- ansi-regex: 6.2.2
-
- strip-bom-string@1.0.0: {}
-
strip-comments@2.0.1: {}
strip-indent@4.1.1: {}
- strip-json-comments@3.1.1: {}
-
- superjson@2.2.6:
- dependencies:
- copy-anything: 4.0.5
-
- supports-color@7.2.0:
+ super-regex@1.1.0:
dependencies:
- has-flag: 4.0.0
+ function-timeout: 1.0.2
+ make-asynchronous: 1.1.0
+ time-span: 5.1.0
supports-preserve-symlinks-flag@1.0.0: {}
- swr@2.3.8(react@19.2.3):
- dependencies:
- dequal: 2.0.3
- react: 19.2.3
- use-sync-external-store: 1.6.0(react@19.2.3)
-
- synckit@0.11.11:
+ synckit@0.11.12:
dependencies:
'@pkgr/core': 0.2.9
- tabbable@6.4.0: {}
+ tabbable@6.5.0: {}
- tailwindcss@4.1.18: {}
+ tailwindcss@4.2.1: {}
tapable@2.3.0: {}
@@ -9748,32 +9569,32 @@ snapshots:
type-fest: 0.16.0
unique-string: 2.0.0
- terser@5.44.1:
+ terser@5.46.1:
dependencies:
'@jridgewell/source-map': 0.3.11
- acorn: 8.15.0
+ acorn: 8.16.0
commander: 2.20.3
source-map-support: 0.5.21
- throttleit@2.1.0: {}
+ time-span@5.1.0:
+ dependencies:
+ convert-hrtime: 5.0.0
tinybench@2.9.0: {}
- tinyexec@1.0.2: {}
+ tinyexec@1.0.4: {}
- tinyglobby@0.2.15:
+ tinyexec@1.3.0: {}
+
+ tinyglobby@0.2.17:
dependencies:
- fdir: 6.5.0(picomatch@4.0.3)
- picomatch: 4.0.3
+ fdir: 6.5.0(picomatch@4.0.5)
+ picomatch: 4.0.5
- tinyrainbow@3.0.3: {}
+ tinyrainbow@3.1.0: {}
to-data-view@1.1.0: {}
- to-regex-range@5.0.1:
- dependencies:
- is-number: 7.0.0
-
to-valid-identifier@1.0.0:
dependencies:
'@sindresorhus/base62': 1.0.0
@@ -9781,11 +9602,9 @@ snapshots:
toidentifier@1.0.1: {}
- tokenx@1.2.1: {}
-
- toml-eslint-parser@0.10.1:
+ toml-eslint-parser@1.0.3:
dependencies:
- eslint-visitor-keys: 3.4.3
+ eslint-visitor-keys: 5.0.1
totalist@3.0.1: {}
@@ -9795,41 +9614,43 @@ snapshots:
trim-lines@3.0.1: {}
- trough@2.2.0: {}
-
ts-api-utils@2.4.0(typescript@5.9.3):
dependencies:
typescript: 5.9.3
+ ts-api-utils@2.5.0(typescript@5.9.3):
+ dependencies:
+ typescript: 5.9.3
+
ts-declaration-location@1.0.7(typescript@5.9.3):
dependencies:
- picomatch: 4.0.3
+ picomatch: 4.0.5
typescript: 5.9.3
+ optional: true
tslib@2.8.1: {}
- tsx@4.21.0:
+ tsx@4.23.4:
dependencies:
- esbuild: 0.27.2
- get-tsconfig: 4.13.0
+ esbuild: 0.28.1
optionalDependencies:
fsevents: 2.3.3
- twoslash-protocol@0.3.6: {}
+ twoslash-protocol@0.3.9: {}
- twoslash-vue@0.3.6(typescript@5.9.3):
+ twoslash-vue@0.3.9(typescript@5.9.3):
dependencies:
- '@vue/language-core': 3.2.2
- twoslash: 0.3.6(typescript@5.9.3)
- twoslash-protocol: 0.3.6
+ '@vue/language-core': 3.2.6
+ twoslash: 0.3.9(typescript@5.9.3)
+ twoslash-protocol: 0.3.9
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- twoslash@0.3.6(typescript@5.9.3):
+ twoslash@0.3.9(typescript@5.9.3):
dependencies:
- '@typescript/vfs': 1.6.2(typescript@5.9.3)
- twoslash-protocol: 0.3.6
+ '@typescript/vfs': 1.6.4(typescript@5.9.3)
+ twoslash-protocol: 0.3.9
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@@ -9840,11 +9661,15 @@ snapshots:
type-fest@0.16.0: {}
+ type-fest@4.41.0: {}
+
type-is@1.6.18:
dependencies:
media-typer: 0.3.0
mime-types: 2.1.35
+ type-level-regexp@0.1.17: {}
+
typed-array-buffer@1.0.3:
dependencies:
call-bound: 1.0.4
@@ -9882,7 +9707,7 @@ snapshots:
uc.micro@2.1.0: {}
- ufo@1.6.2: {}
+ ufo@1.6.3: {}
uglify-js@3.19.3: {}
@@ -9893,20 +9718,20 @@ snapshots:
has-symbols: 1.1.0
which-boxed-primitive: 1.1.1
- unconfig-core@7.4.2:
+ unconfig-core@7.5.0:
dependencies:
'@quansync/fs': 1.0.0
quansync: 1.0.0
- unconfig@7.4.2:
+ unconfig@7.5.0:
dependencies:
'@quansync/fs': 1.0.0
defu: 6.1.4
jiti: 2.6.1
quansync: 1.0.0
- unconfig-core: 7.4.2
+ unconfig-core: 7.5.0
- undici-types@7.16.0: {}
+ undici-types@8.3.0: {}
unicode-canonical-property-names-ecmascript@2.0.1: {}
@@ -9919,16 +9744,6 @@ snapshots:
unicode-property-aliases-ecmascript@2.2.0: {}
- unified@11.0.5:
- dependencies:
- '@types/unist': 3.0.3
- bail: 2.0.2
- devlop: 1.1.0
- extend: 3.0.2
- is-plain-obj: 4.1.0
- trough: 2.2.0
- vfile: 6.0.3
-
unique-string@2.0.0:
dependencies:
crypto-random-string: 2.0.0
@@ -9941,11 +9756,10 @@ snapshots:
dependencies:
'@types/unist': 3.0.3
- unist-util-remove@4.0.0:
+ unist-util-remove-position@5.0.0:
dependencies:
'@types/unist': 3.0.3
- unist-util-is: 6.0.1
- unist-util-visit-parents: 6.0.2
+ unist-util-visit: 5.1.0
unist-util-stringify-position@4.0.0:
dependencies:
@@ -9956,7 +9770,7 @@ snapshots:
'@types/unist': 3.0.3
unist-util-is: 6.0.1
- unist-util-visit@5.0.0:
+ unist-util-visit@5.1.0:
dependencies:
'@types/unist': 3.0.3
unist-util-is: 6.0.1
@@ -9964,32 +9778,27 @@ snapshots:
universalify@2.0.1: {}
- unocss@66.5.12(postcss@8.5.6)(vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)):
- dependencies:
- '@unocss/astro': 66.5.12(vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))
- '@unocss/cli': 66.5.12
- '@unocss/core': 66.5.12
- '@unocss/postcss': 66.5.12(postcss@8.5.6)
- '@unocss/preset-attributify': 66.5.12
- '@unocss/preset-icons': 66.5.12
- '@unocss/preset-mini': 66.5.12
- '@unocss/preset-tagify': 66.5.12
- '@unocss/preset-typography': 66.5.12
- '@unocss/preset-uno': 66.5.12
- '@unocss/preset-web-fonts': 66.5.12
- '@unocss/preset-wind': 66.5.12
- '@unocss/preset-wind3': 66.5.12
- '@unocss/preset-wind4': 66.5.12
- '@unocss/transformer-attributify-jsx': 66.5.12
- '@unocss/transformer-compile-class': 66.5.12
- '@unocss/transformer-directives': 66.5.12
- '@unocss/transformer-variant-group': 66.5.12
- '@unocss/vite': 66.5.12(vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))
- optionalDependencies:
- vite: 7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)
+ unocss@66.7.5(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0)):
+ dependencies:
+ '@unocss/cli': 66.7.5
+ '@unocss/core': 66.7.5
+ '@unocss/preset-attributify': 66.7.5
+ '@unocss/preset-icons': 66.7.5
+ '@unocss/preset-mini': 66.7.5
+ '@unocss/preset-tagify': 66.7.5
+ '@unocss/preset-typography': 66.7.5
+ '@unocss/preset-uno': 66.7.5
+ '@unocss/preset-web-fonts': 66.7.5
+ '@unocss/preset-wind': 66.7.5
+ '@unocss/preset-wind3': 66.7.5
+ '@unocss/preset-wind4': 66.7.5
+ '@unocss/transformer-attributify-jsx': 66.7.5
+ '@unocss/transformer-compile-class': 66.7.5
+ '@unocss/transformer-directives': 66.7.5
+ '@unocss/transformer-variant-group': 66.7.5
+ '@unocss/vite': 66.7.5(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0))
transitivePeerDependencies:
- - postcss
- - supports-color
+ - vite
unpipe@1.0.0: {}
@@ -9998,11 +9807,18 @@ snapshots:
pathe: 2.0.3
picomatch: 4.0.3
+ unplugin@2.3.11:
+ dependencies:
+ '@jridgewell/remapping': 2.3.5
+ acorn: 8.16.0
+ picomatch: 4.0.3
+ webpack-virtual-modules: 0.6.2
+
upath@1.2.0: {}
- update-browserslist-db@1.2.3(browserslist@4.28.1):
+ update-browserslist-db@1.2.3(browserslist@4.28.7):
dependencies:
- browserslist: 4.28.1
+ browserslist: 4.28.7
escalade: 3.2.0
picocolors: 1.1.1
@@ -10010,10 +9826,6 @@ snapshots:
dependencies:
punycode: 2.3.1
- use-sync-external-store@1.6.0(react@19.2.3):
- dependencies:
- react: 19.2.3
-
util-deprecate@1.0.2: {}
utils-merge@1.0.1: {}
@@ -10030,111 +9842,88 @@ snapshots:
'@types/unist': 3.0.3
vfile-message: 4.0.3
- vite-plugin-pwa@1.2.0(@vite-pwa/assets-generator@1.0.2)(vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(workbox-build@7.4.0)(workbox-window@7.4.0):
+ vite-plugin-pwa@1.3.0(@vite-pwa/assets-generator@1.0.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0))(workbox-build@7.4.0)(workbox-window@7.4.1):
dependencies:
debug: 4.4.3
pretty-bytes: 6.1.1
- tinyglobby: 0.2.15
- vite: 7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)
+ tinyglobby: 0.2.17
+ vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0)
workbox-build: 7.4.0
- workbox-window: 7.4.0
+ workbox-window: 7.4.1
optionalDependencies:
'@vite-pwa/assets-generator': 1.0.2
transitivePeerDependencies:
- supports-color
- vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2):
+ vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0):
dependencies:
- esbuild: 0.27.2
- fdir: 6.5.0(picomatch@4.0.3)
- picomatch: 4.0.3
- postcss: 8.5.6
- rollup: 4.55.1
- tinyglobby: 0.2.15
+ lightningcss: 1.33.0
+ picomatch: 4.0.5
+ postcss: 8.5.25
+ rolldown: 1.2.1
+ tinyglobby: 0.2.17
optionalDependencies:
- '@types/node': 25.0.3
+ '@types/node': 26.1.2
+ esbuild: 0.28.1
fsevents: 2.3.3
jiti: 2.6.1
- lightningcss: 1.30.2
- terser: 5.44.1
- tsx: 4.21.0
- yaml: 2.8.2
+ terser: 5.46.1
+ tsx: 4.23.4
+ yaml: 2.9.0
- vitepress-plugin-group-icons@1.6.5(vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)):
+ vitepress-plugin-group-icons@1.7.6(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0)):
dependencies:
- '@iconify-json/logos': 1.2.10
- '@iconify-json/vscode-icons': 1.2.37
- '@iconify/utils': 3.1.0
+ '@iconify-json/logos': 1.2.11
+ '@iconify-json/vscode-icons': 1.2.68
+ '@iconify/utils': 3.1.4
optionalDependencies:
- vite: 7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)
-
- vitepress-plugin-llms@1.10.0:
- dependencies:
- gray-matter: 4.0.3
- markdown-it: 14.1.0
- markdown-title: 1.0.2
- mdast-util-from-markdown: 2.0.2
- millify: 6.1.0
- minimatch: 10.1.1
- path-to-regexp: 6.3.0
- picocolors: 1.1.1
- pretty-bytes: 7.1.0
- remark: 15.0.1
- remark-frontmatter: 5.0.0
- tokenx: 1.2.1
- unist-util-remove: 4.0.0
- unist-util-visit: 5.0.0
- transitivePeerDependencies:
- - supports-color
+ vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0)
- vitepress-plugin-tabs@0.7.3(vitepress@2.0.0-alpha.15(@algolia/client-search@5.46.2)(@types/node@25.0.3)(change-case@5.4.4)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react@19.2.3)(search-insights@2.17.3)(terser@5.44.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3)):
+ vitepress-plugin-tabs@0.9.1(vitepress@2.0.0-alpha.19(@types/node@26.1.2)(change-case@5.4.4)(esbuild@0.28.1)(jiti@2.6.1)(postcss@8.5.25)(terser@5.46.1)(tsx@4.23.4)(typescript@5.9.3)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)):
dependencies:
- vitepress: 2.0.0-alpha.15(@algolia/client-search@5.46.2)(@types/node@25.0.3)(change-case@5.4.4)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react@19.2.3)(search-insights@2.17.3)(terser@5.44.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
- vue: 3.5.26(typescript@5.9.3)
+ vitepress: 2.0.0-alpha.19(@types/node@26.1.2)(change-case@5.4.4)(esbuild@0.28.1)(jiti@2.6.1)(postcss@8.5.25)(terser@5.46.1)(tsx@4.23.4)(typescript@5.9.3)(yaml@2.9.0)
+ vue: 3.5.40(typescript@5.9.3)
- vitepress@2.0.0-alpha.15(@algolia/client-search@5.46.2)(@types/node@25.0.3)(change-case@5.4.4)(jiti@2.6.1)(lightningcss@1.30.2)(postcss@8.5.6)(react@19.2.3)(search-insights@2.17.3)(terser@5.44.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2):
+ vitepress@2.0.0-alpha.19(@types/node@26.1.2)(change-case@5.4.4)(esbuild@0.28.1)(jiti@2.6.1)(postcss@8.5.25)(terser@5.46.1)(tsx@4.23.4)(typescript@5.9.3)(yaml@2.9.0):
dependencies:
- '@docsearch/css': 4.4.0
- '@docsearch/js': 4.4.0(@algolia/client-search@5.46.2)(react@19.2.3)(search-insights@2.17.3)
- '@iconify-json/simple-icons': 1.2.65
- '@shikijs/core': 3.21.0
- '@shikijs/transformers': 3.21.0
- '@shikijs/types': 3.21.0
+ '@docsearch/css': 4.7.0
+ '@docsearch/js': 4.7.0
+ '@docsearch/sidepanel-js': 4.7.0
+ '@iconify-json/simple-icons': 1.2.94
+ '@shikijs/core': 4.4.1
+ '@shikijs/transformers': 4.4.1
+ '@shikijs/types': 4.4.1
'@types/markdown-it': 14.1.2
- '@vitejs/plugin-vue': 6.0.3(vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))
- '@vue/devtools-api': 8.0.5
- '@vue/shared': 3.5.26
- '@vueuse/core': 14.1.0(vue@3.5.26(typescript@5.9.3))
- '@vueuse/integrations': 14.1.0(change-case@5.4.4)(focus-trap@7.7.1)(vue@3.5.26(typescript@5.9.3))
- focus-trap: 7.7.1
+ '@vitejs/plugin-vue': 6.0.8(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3))
+ '@vue/devtools-api': 8.2.1
+ '@vue/shared': 3.5.40
+ '@vueuse/core': 14.4.0(vue@3.5.40(typescript@5.9.3))
+ '@vueuse/integrations': 14.4.0(change-case@5.4.4)(focus-trap@8.2.2)(vue@3.5.40(typescript@5.9.3))
+ focus-trap: 8.2.2
mark.js: 8.11.1
minisearch: 7.2.0
- shiki: 3.21.0
- vite: 7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)
- vue: 3.5.26(typescript@5.9.3)
+ shiki: 4.4.1
+ vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0)
+ vue: 3.5.40(typescript@5.9.3)
optionalDependencies:
- postcss: 8.5.6
+ postcss: 8.5.25
transitivePeerDependencies:
- - '@algolia/client-search'
- '@types/node'
- - '@types/react'
+ - '@vitejs/devtools'
- async-validator
- axios
- change-case
- drauu
+ - esbuild
- fuse.js
- idb-keyval
- jiti
- jwt-decode
- less
- - lightningcss
- nprogress
- qrcode
- - react
- - react-dom
- sass
- sass-embedded
- - search-insights
- sortablejs
- stylus
- sugarss
@@ -10144,73 +9933,60 @@ snapshots:
- universal-cookie
- yaml
- vitest@4.0.17(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2):
+ vitest@4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0)):
dependencies:
- '@vitest/expect': 4.0.17
- '@vitest/mocker': 4.0.17(vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))
- '@vitest/pretty-format': 4.0.17
- '@vitest/runner': 4.0.17
- '@vitest/snapshot': 4.0.17
- '@vitest/spy': 4.0.17
- '@vitest/utils': 4.0.17
- es-module-lexer: 1.7.0
+ '@vitest/expect': 4.1.10
+ '@vitest/mocker': 4.1.10(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0))
+ '@vitest/pretty-format': 4.1.10
+ '@vitest/runner': 4.1.10
+ '@vitest/snapshot': 4.1.10
+ '@vitest/spy': 4.1.10
+ '@vitest/utils': 4.1.10
+ 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: 3.10.0
+ std-env: 4.0.0
tinybench: 2.9.0
- tinyexec: 1.0.2
- tinyglobby: 0.2.15
- tinyrainbow: 3.0.3
- vite: 7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)
+ tinyexec: 1.0.4
+ tinyglobby: 0.2.17
+ tinyrainbow: 3.1.0
+ vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.6.1)(terser@5.46.1)(tsx@4.23.4)(yaml@2.9.0)
why-is-node-running: 2.3.0
optionalDependencies:
- '@opentelemetry/api': 1.9.0
- '@types/node': 25.0.3
+ '@types/node': 26.1.2
transitivePeerDependencies:
- - jiti
- - less
- - lightningcss
- msw
- - sass
- - sass-embedded
- - stylus
- - sugarss
- - terser
- - tsx
- - yaml
- vue-demi@0.14.10(vue@3.5.26(typescript@5.9.3)):
+ vue-demi@0.14.10(vue@3.5.40(typescript@5.9.3)):
dependencies:
- vue: 3.5.26(typescript@5.9.3)
+ vue: 3.5.40(typescript@5.9.3)
- vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@2.6.1)):
+ vue-eslint-parser@10.4.1(eslint@10.8.0(jiti@2.6.1)):
dependencies:
debug: 4.4.3
- eslint: 9.39.2(jiti@2.6.1)
- eslint-scope: 8.4.0
- eslint-visitor-keys: 4.2.1
- espree: 10.4.0
+ eslint: 10.8.0(jiti@2.6.1)
+ eslint-scope: 9.1.2
+ eslint-visitor-keys: 5.0.1
+ espree: 11.2.0
esquery: 1.7.0
- semver: 7.7.3
+ semver: 7.7.4
transitivePeerDependencies:
- supports-color
- vue-flow-layout@0.2.0: {}
-
- vue-resize@2.0.0-alpha.1(vue@3.5.26(typescript@5.9.3)):
+ vue-resize@2.0.0-alpha.1(vue@3.5.40(typescript@5.9.3)):
dependencies:
- vue: 3.5.26(typescript@5.9.3)
+ vue: 3.5.40(typescript@5.9.3)
- vue@3.5.26(typescript@5.9.3):
+ vue@3.5.40(typescript@5.9.3):
dependencies:
- '@vue/compiler-dom': 3.5.26
- '@vue/compiler-sfc': 3.5.26
- '@vue/runtime-dom': 3.5.26
- '@vue/server-renderer': 3.5.26(vue@3.5.26(typescript@5.9.3))
- '@vue/shared': 3.5.26
+ '@vue/compiler-dom': 3.5.40
+ '@vue/compiler-sfc': 3.5.40
+ '@vue/runtime-dom': 3.5.40
+ '@vue/server-renderer': 3.5.40
+ '@vue/shared': 3.5.40
optionalDependencies:
typescript: 5.9.3
@@ -10218,8 +9994,12 @@ snapshots:
dependencies:
minimalistic-assert: 1.0.1
+ web-worker@1.5.0: {}
+
webidl-conversions@4.0.2: {}
+ webpack-virtual-modules@0.6.2: {}
+
whatwg-url@7.1.0:
dependencies:
lodash.sortby: 4.7.0
@@ -10248,7 +10028,7 @@ snapshots:
isarray: 2.0.5
which-boxed-primitive: 1.1.1
which-collection: 1.0.2
- which-typed-array: 1.1.19
+ which-typed-array: 1.1.20
which-collection@1.0.2:
dependencies:
@@ -10257,7 +10037,7 @@ snapshots:
is-weakmap: 2.0.2
is-weakset: 2.0.4
- which-typed-array@1.1.19:
+ which-typed-array@1.1.20:
dependencies:
available-typed-arrays: 1.0.7
call-bind: 1.0.8
@@ -10289,23 +10069,23 @@ snapshots:
workbox-build@7.4.0:
dependencies:
- '@apideck/better-ajv-errors': 0.3.6(ajv@8.17.1)
- '@babel/core': 7.28.5
- '@babel/preset-env': 7.28.5(@babel/core@7.28.5)
- '@babel/runtime': 7.28.4
- '@rollup/plugin-babel': 5.3.1(@babel/core@7.28.5)(rollup@2.79.2)
- '@rollup/plugin-node-resolve': 15.3.1(rollup@2.79.2)
- '@rollup/plugin-replace': 2.4.2(rollup@2.79.2)
- '@rollup/plugin-terser': 0.4.4(rollup@2.79.2)
+ '@apideck/better-ajv-errors': 0.3.6(ajv@8.18.0)
+ '@babel/core': 7.29.0
+ '@babel/preset-env': 7.29.2(@babel/core@7.29.0)
+ '@babel/runtime': 7.29.2
+ '@rollup/plugin-babel': 5.3.1(@babel/core@7.29.0)(rollup@2.80.0)
+ '@rollup/plugin-node-resolve': 15.3.1(rollup@2.80.0)
+ '@rollup/plugin-replace': 2.4.2(rollup@2.80.0)
+ '@rollup/plugin-terser': 0.4.4(rollup@2.80.0)
'@surma/rollup-plugin-off-main-thread': 2.2.3
- ajv: 8.17.1
+ ajv: 8.18.0
common-tags: 1.8.2
fast-json-stable-stringify: 2.1.0
fs-extra: 9.1.0
glob: 11.1.0
- lodash: 4.17.21
+ lodash: 4.17.23
pretty-bytes: 5.6.0
- rollup: 2.79.2
+ rollup: 2.80.0
source-map: 0.8.0-beta.0
stringify-object: 3.3.0
strip-comments: 2.0.1
@@ -10336,6 +10116,8 @@ snapshots:
workbox-core@7.4.0: {}
+ workbox-core@7.4.1: {}
+
workbox-expiration@7.4.0:
dependencies:
idb: 7.1.1
@@ -10391,51 +10173,24 @@ snapshots:
'@types/trusted-types': 2.0.7
workbox-core: 7.4.0
- wrap-ansi@7.0.0:
- dependencies:
- ansi-styles: 4.3.0
- string-width: 4.2.3
- strip-ansi: 6.0.1
-
- wrap-ansi@8.1.0:
- dependencies:
- ansi-styles: 6.2.3
- string-width: 5.1.2
- strip-ansi: 7.1.2
-
- wrap-ansi@9.0.2:
+ workbox-window@7.4.1:
dependencies:
- ansi-styles: 6.2.3
- string-width: 7.2.0
- strip-ansi: 7.1.2
-
- xml-name-validator@4.0.0: {}
+ '@types/trusted-types': 2.0.7
+ workbox-core: 7.4.1
- y18n@5.0.8: {}
+ xml-name-validator@5.0.0: {}
yallist@3.1.1: {}
- yaml-eslint-parser@1.3.2:
+ yaml-eslint-parser@2.1.0:
dependencies:
- eslint-visitor-keys: 3.4.3
+ eslint-visitor-keys: 5.0.1
yaml: 2.8.2
yaml@2.8.2: {}
- yargs-parser@21.1.1: {}
-
- yargs@17.7.2:
- dependencies:
- cliui: 8.0.1
- escalade: 3.2.0
- get-caller-file: 2.0.5
- require-directory: 2.1.1
- string-width: 4.2.3
- y18n: 5.0.8
- yargs-parser: 21.1.1
+ yaml@2.9.0: {}
yocto-queue@0.1.0: {}
- zod@4.3.5: {}
-
zwitch@2.0.4: {}
diff --git a/public/aerius.png b/public/aerius.png
new file mode 100644
index 000000000..5a05a6372
Binary files /dev/null and b/public/aerius.png differ
diff --git a/public/annotation-api-cute-puppy-example.png b/public/annotation-api-cute-puppy-example.png
index d354ca760..9b9043017 100644
Binary files a/public/annotation-api-cute-puppy-example.png and b/public/annotation-api-cute-puppy-example.png differ
diff --git a/public/annotations-html-dark.png b/public/annotations-html-dark.png
index 3b9d5bf41..f6a3bad54 100644
Binary files a/public/annotations-html-dark.png and b/public/annotations-html-dark.png differ
diff --git a/public/annotations-html-light.png b/public/annotations-html-light.png
index aac94de92..76b42ad64 100644
Binary files a/public/annotations-html-light.png and b/public/annotations-html-light.png differ
diff --git a/public/browser/trace-view-dark.png b/public/browser/trace-view-dark.png
new file mode 100644
index 000000000..dd425a085
Binary files /dev/null and b/public/browser/trace-view-dark.png differ
diff --git a/public/browser/trace-view-light.png b/public/browser/trace-view-light.png
new file mode 100644
index 000000000..7ad865045
Binary files /dev/null and b/public/browser/trace-view-light.png differ
diff --git a/public/docs-api-dark.png b/public/docs-api-dark.png
index eaa973edb..9080d3e51 100644
Binary files a/public/docs-api-dark.png and b/public/docs-api-dark.png differ
diff --git a/public/docs-api-light.png b/public/docs-api-light.png
index 9edc6c26e..e60aa608e 100644
Binary files a/public/docs-api-light.png and b/public/docs-api-light.png differ
diff --git a/public/github-actions-job-summary-dark.png b/public/github-actions-job-summary-dark.png
new file mode 100644
index 000000000..d1d40d1b1
Binary files /dev/null and b/public/github-actions-job-summary-dark.png differ
diff --git a/public/github-actions-job-summary-light.png b/public/github-actions-job-summary-light.png
new file mode 100644
index 000000000..5c9bc0780
Binary files /dev/null and b/public/github-actions-job-summary-light.png differ
diff --git a/public/ide/vitest-jb-dark.png b/public/ide/vitest-jb-dark.png
new file mode 100644
index 000000000..340f7f06f
Binary files /dev/null and b/public/ide/vitest-jb-dark.png differ
diff --git a/public/ide/vitest-jb-light.png b/public/ide/vitest-jb-light.png
new file mode 100644
index 000000000..d9dc2dadf
Binary files /dev/null and b/public/ide/vitest-jb-light.png differ
diff --git a/public/ide/vitest-wallaby-dark.png b/public/ide/vitest-wallaby-dark.png
new file mode 100644
index 000000000..7a0bdd799
Binary files /dev/null and b/public/ide/vitest-wallaby-dark.png differ
diff --git a/public/ide/vitest-wallaby-light.png b/public/ide/vitest-wallaby-light.png
new file mode 100644
index 000000000..a4646a258
Binary files /dev/null and b/public/ide/vitest-wallaby-light.png differ
diff --git a/public/kraken.svg b/public/kraken.svg
new file mode 100644
index 000000000..ff77083cc
--- /dev/null
+++ b/public/kraken.svg
@@ -0,0 +1,62 @@
+
+
\ No newline at end of file
diff --git a/public/latitude.svg b/public/latitude.svg
new file mode 100644
index 000000000..add2cf5ce
--- /dev/null
+++ b/public/latitude.svg
@@ -0,0 +1,14 @@
+
diff --git a/public/logo-shadow.svg b/public/logo-shadow.svg
deleted file mode 100644
index e5b59bb82..000000000
--- a/public/logo-shadow.svg
+++ /dev/null
@@ -1,24 +0,0 @@
-
diff --git a/public/module-graph-barrel-file.png b/public/module-graph-barrel-file.png
index dae0382b5..013c92a3b 100644
Binary files a/public/module-graph-barrel-file.png and b/public/module-graph-barrel-file.png differ
diff --git a/public/nuxtlabs.svg b/public/nuxtlabs.svg
deleted file mode 100644
index d2935645c..000000000
--- a/public/nuxtlabs.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/public/og-vitest-4-1.jpg b/public/og-vitest-4-1.jpg
new file mode 100644
index 000000000..42e39ee9b
Binary files /dev/null and b/public/og-vitest-4-1.jpg differ
diff --git a/public/og-vitest-5.jpg b/public/og-vitest-5.jpg
new file mode 100644
index 000000000..86f6e3fdd
Binary files /dev/null and b/public/og-vitest-5.jpg differ
diff --git a/public/otel-jaeger.png b/public/otel-jaeger.png
index 2ad90d575..d6c6f5679 100644
Binary files a/public/otel-jaeger.png and b/public/otel-jaeger.png differ
diff --git a/public/reporter-import-breakdown-light.png b/public/reporter-import-breakdown-light.png
new file mode 100644
index 000000000..01aaa33ac
Binary files /dev/null and b/public/reporter-import-breakdown-light.png differ
diff --git a/public/reporter-import-breakdown.png b/public/reporter-import-breakdown.png
index b1d851d88..944ba67df 100644
Binary files a/public/reporter-import-breakdown.png and b/public/reporter-import-breakdown.png differ
diff --git a/public/testmuai.svg b/public/testmuai.svg
new file mode 100644
index 000000000..6fe088574
--- /dev/null
+++ b/public/testmuai.svg
@@ -0,0 +1,22 @@
+
diff --git a/public/trace-view.webm b/public/trace-view.webm
new file mode 100644
index 000000000..234ece472
Binary files /dev/null and b/public/trace-view.webm differ
diff --git a/public/trace-viewer-dark.png b/public/trace-viewer-dark.png
new file mode 100644
index 000000000..b62e6968d
Binary files /dev/null and b/public/trace-viewer-dark.png differ
diff --git a/public/trace-viewer-light.png b/public/trace-viewer-light.png
new file mode 100644
index 000000000..965708c00
Binary files /dev/null and b/public/trace-viewer-light.png differ
diff --git a/public/ui-1-dark.png b/public/ui-1-dark.png
index 6626b9b29..f41327dee 100644
Binary files a/public/ui-1-dark.png and b/public/ui-1-dark.png differ
diff --git a/public/ui-1-light.png b/public/ui-1-light.png
index 85309b8b7..efec8ad72 100644
Binary files a/public/ui-1-light.png and b/public/ui-1-light.png differ
diff --git a/public/ui-browser-1-dark.png b/public/ui-browser-1-dark.png
index 5a30a9413..630990c1f 100644
Binary files a/public/ui-browser-1-dark.png and b/public/ui-browser-1-dark.png differ
diff --git a/public/ui-browser-1-light.png b/public/ui-browser-1-light.png
index 900304ec1..1bacd6281 100644
Binary files a/public/ui-browser-1-light.png and b/public/ui-browser-1-light.png differ
diff --git a/public/ui-coverage-1-dark.png b/public/ui-coverage-1-dark.png
index 1566e1037..ab7d59f9f 100644
Binary files a/public/ui-coverage-1-dark.png and b/public/ui-coverage-1-dark.png differ
diff --git a/public/ui/dark-import-breakdown.png b/public/ui/dark-import-breakdown.png
index feb413788..a3f1ebc8c 100644
Binary files a/public/ui/dark-import-breakdown.png and b/public/ui/dark-import-breakdown.png differ
diff --git a/public/ui/dark-module-graph.png b/public/ui/dark-module-graph.png
index 23a99b250..6962c116b 100644
Binary files a/public/ui/dark-module-graph.png and b/public/ui/dark-module-graph.png differ
diff --git a/public/ui/dark-module-info-external.png b/public/ui/dark-module-info-external.png
index c569dcd5a..60df2de16 100644
Binary files a/public/ui/dark-module-info-external.png and b/public/ui/dark-module-info-external.png differ
diff --git a/public/ui/dark-module-info-shadow.png b/public/ui/dark-module-info-shadow.png
index bd788fd37..93d5a4bb2 100644
Binary files a/public/ui/dark-module-info-shadow.png and b/public/ui/dark-module-info-shadow.png differ
diff --git a/public/ui/dark-module-info-traverse.png b/public/ui/dark-module-info-traverse.png
index a68df1038..fb8815cb1 100644
Binary files a/public/ui/dark-module-info-traverse.png and b/public/ui/dark-module-info-traverse.png differ
diff --git a/public/ui/dark-module-info.png b/public/ui/dark-module-info.png
index 506333d3b..7941b71de 100644
Binary files a/public/ui/dark-module-info.png and b/public/ui/dark-module-info.png differ
diff --git a/public/ui/dark-ui-details-bottom.png b/public/ui/dark-ui-details-bottom.png
new file mode 100644
index 000000000..017bd6f32
Binary files /dev/null and b/public/ui/dark-ui-details-bottom.png differ
diff --git a/public/ui/dark-ui-details-right.png b/public/ui/dark-ui-details-right.png
new file mode 100644
index 000000000..25a97c2db
Binary files /dev/null and b/public/ui/dark-ui-details-right.png differ
diff --git a/public/ui/dark-ui-tags.png b/public/ui/dark-ui-tags.png
new file mode 100644
index 000000000..de2074744
Binary files /dev/null and b/public/ui/dark-ui-tags.png differ
diff --git a/public/ui/light-import-breakdown.png b/public/ui/light-import-breakdown.png
index b263f5805..26df34ac9 100644
Binary files a/public/ui/light-import-breakdown.png and b/public/ui/light-import-breakdown.png differ
diff --git a/public/ui/light-module-graph.png b/public/ui/light-module-graph.png
index 36c074865..29d88fd84 100644
Binary files a/public/ui/light-module-graph.png and b/public/ui/light-module-graph.png differ
diff --git a/public/ui/light-module-info-external.png b/public/ui/light-module-info-external.png
index 643f413ca..c8e7287de 100644
Binary files a/public/ui/light-module-info-external.png and b/public/ui/light-module-info-external.png differ
diff --git a/public/ui/light-module-info-shadow.png b/public/ui/light-module-info-shadow.png
index dcbd4728e..098b20c3f 100644
Binary files a/public/ui/light-module-info-shadow.png and b/public/ui/light-module-info-shadow.png differ
diff --git a/public/ui/light-module-info-traverse.png b/public/ui/light-module-info-traverse.png
index 778838d93..9fa251150 100644
Binary files a/public/ui/light-module-info-traverse.png and b/public/ui/light-module-info-traverse.png differ
diff --git a/public/ui/light-module-info.png b/public/ui/light-module-info.png
index 3a58685f5..afe36c227 100644
Binary files a/public/ui/light-module-info.png and b/public/ui/light-module-info.png differ
diff --git a/public/ui/light-ui-details-bottom.png b/public/ui/light-ui-details-bottom.png
new file mode 100644
index 000000000..a982cd1a2
Binary files /dev/null and b/public/ui/light-ui-details-bottom.png differ
diff --git a/public/ui/light-ui-details-right.png b/public/ui/light-ui-details-right.png
new file mode 100644
index 000000000..83607e96e
Binary files /dev/null and b/public/ui/light-ui-details-right.png differ
diff --git a/public/ui/light-ui-tags.png b/public/ui/light-ui-tags.png
new file mode 100644
index 000000000..baa27d4a8
Binary files /dev/null and b/public/ui/light-ui-tags.png differ
diff --git a/public/v3-2-custom-colors.png b/public/v3-2-custom-colors.png
index 74c178e85..2519ebd1e 100644
Binary files a/public/v3-2-custom-colors.png and b/public/v3-2-custom-colors.png differ
diff --git a/public/vercel.svg b/public/vercel.svg
new file mode 100644
index 000000000..81de44e4b
--- /dev/null
+++ b/public/vercel.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/visual-regression/diff-view-dark.avif b/public/visual-regression/diff-view-dark.avif
new file mode 100644
index 000000000..4bf961cb1
Binary files /dev/null and b/public/visual-regression/diff-view-dark.avif differ
diff --git a/public/visual-regression/diff-view-light.avif b/public/visual-regression/diff-view-light.avif
new file mode 100644
index 000000000..4e3f08bca
Binary files /dev/null and b/public/visual-regression/diff-view-light.avif differ
diff --git a/public/vite.svg b/public/vite.svg
deleted file mode 100644
index de4aeddc1..000000000
--- a/public/vite.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
diff --git a/public/voidzero.svg b/public/voidzero.svg
deleted file mode 100644
index 1bdd69a30..000000000
--- a/public/voidzero.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
diff --git a/public/vscode-import-breakdown.png b/public/vscode-import-breakdown.png
new file mode 100644
index 000000000..941ac297b
Binary files /dev/null and b/public/vscode-import-breakdown.png differ
diff --git a/releases.md b/releases.md
new file mode 100644
index 000000000..6046626b4
--- /dev/null
+++ b/releases.md
@@ -0,0 +1,57 @@
+
+
+# Releases
+
+Vitest releases follow [Semantic Versioning](https://semver.org/). You can see the latest stable version of Vitest in the [Vitest npm package page](https://www.npmjs.com/package/vite).
+
+A full changelog of past releases is [available on GitHub](https://github.com/vitest-dev/vitest/releases).
+
+## Release Cycle
+
+Vitest does not have a fixed release cycle.
+
+- **Patch** releases are released as needed (usually every week).
+- **Minor** releases always contain new features and are released as needed. Minor releases always have a beta pre-release phase (usually every two months).
+- **Major** releases generally align with [Vite](https://vite.dev/releases) and [Node.js EOL schedule](https://endoflife.date/nodejs), and will be announced ahead of time. These releases will have a long beta pre-release phases (usually every year).
+
+## Supported Versions
+
+In summary, the current supported Vitest versions are:
+
+