diff --git a/.github/workflows/code-storybook.yml b/.github/workflows/code-storybook.yml new file mode 100644 index 0000000000..c53af49c32 --- /dev/null +++ b/.github/workflows/code-storybook.yml @@ -0,0 +1,246 @@ +name: Storybook visual regression + +# Captures a screenshot of every story (dark + light) and submits them to the +# PostHog Visual Review product, which diffs against the signed baseline +# manifest committed at apps/code/snapshots.yml. Visual changes are reviewed +# and approved at https://us.posthog.com/project/2/visual_review; on approval +# the VR backend commits the updated manifest back to the PR branch. PNGs are +# never committed to this repo. +# +# Until the one-time setup is done (VR repo registration + VR_API_TOKEN secret +# + committed snapshots.yml), the vr step silently no-ops: the job still runs +# the capture, which catches stories that crash or never settle. + +on: + pull_request: + push: + branches: [main] + +concurrency: + group: code-storybook-${{ github.head_ref || github.ref }} + cancel-in-progress: true + +jobs: + changes: + if: github.event_name == 'pull_request' + runs-on: ubuntu-latest + permissions: + pull-requests: read + outputs: + code: ${{ steps.filter.outputs.code }} + baseline_only_push: ${{ steps.baseline_push.outputs.result }} + steps: + - name: Detect relevant changes + id: filter + uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1 + with: + predicate-quantifier: every + filters: | + # Anything that can change a rendered story. The baseline manifest + # is excluded, but note paths-filter diffs the whole PR against + # its base, so once a PR has code changes this filter stays true + # for every later push — the baseline_push step below is what + # skips the VR backend's own approval commits. + code: + - "{apps/code/**,packages/**,pnpm-lock.yaml,.github/workflows/code-storybook.yml}" + - "!apps/code/snapshots.yml" + - "!**/*.md" + + # Visual Review commits the approved baseline back to the PR branch as + # a bot; re-running the suite for that push is pure waste (only the + # manifest changed). Compare the push delta (before...after), not the + # PR diff, so it only matches the bot's own baseline commit. + - name: Detect Visual Review baseline-only push + id: baseline_push + if: github.event_name == 'pull_request' && github.event.action == 'synchronize' + env: + GH_TOKEN: ${{ github.token }} + REPO: ${{ github.repository }} + ACTOR: ${{ github.actor }} + BEFORE: ${{ github.event.before }} + AFTER: ${{ github.event.after }} + run: | + set -euo pipefail + result=false + case "$ACTOR" in + *'[bot]' | posthog-bot) is_bot=true ;; + *) is_bot=false ;; + esac + zero=0000000000000000000000000000000000000000 + if [ "$is_bot" = true ] && [ -n "$BEFORE" ] && [ "$BEFORE" != "$zero" ] && [ -n "$AFTER" ]; then + # compare uses merge-base(before, after), which for an appended + # commit is exactly the push delta; a force-push/rebase widens it + # and won't match. + files=$(gh api "repos/${REPO}/compare/${BEFORE}...${AFTER}" --jq '.files[].filename' || true) + if [ -n "$files" ] && ! grep -qv '^apps/code/snapshots\.yml$' <<<"$files"; then + result=true + fi + fi + echo "result=$result" >>"$GITHUB_OUTPUT" + echo "Visual Review baseline-only push: $result" + + visual-regression: + needs: changes + # Fail closed: if change detection failed (or this is a main push, where + # `changes` is skipped), run instead of skipping — unless the push was + # just the VR bot committing an approved baseline. + if: >- + ${{ !cancelled() && (needs.changes.result != 'success' || needs.changes.outputs.code == 'true') && + needs.changes.outputs.baseline_only_push != 'true' }} + runs-on: ubuntu-latest + timeout-minutes: 30 + permissions: + contents: read + steps: + - name: Checkout + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false + + - name: Setup pnpm + uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9 + + - name: Setup Node.js + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 + with: + node-version: 22 + cache: "pnpm" + + - name: Cache Playwright browsers + uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 + id: playwright-cache + with: + path: ~/.cache/ms-playwright + key: playwright-chromium-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }} + restore-keys: | + playwright-chromium-${{ runner.os }}- + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Install Playwright Chromium + if: steps.playwright-cache.outputs.cache-hit != 'true' + working-directory: apps/code + run: pnpm exec playwright install --with-deps chromium + + - name: Install Playwright system dependencies + # The cache restores browser binaries but not the OS packages they need. + if: steps.playwright-cache.outputs.cache-hit == 'true' + working-directory: apps/code + run: pnpm exec playwright install-deps chromium + + - name: Build workspace packages + # Bare `wait` returns the exit status of only the last job passed to + # it, silently swallowing failures from the others. `wait_all` waits + # on each PID individually and checks its own status so any failed + # build fails the step. + run: | + wait_all() { + status=0 + for pid in "$@"; do + wait "$pid" || status=$? + done + [ "$status" -eq 0 ] + } + + pnpm --filter @posthog/electron-trpc build & + pid1=$! + (pnpm --filter @posthog/shared build && pnpm --filter @posthog/platform build) & + pid2=$! + wait_all "$pid1" "$pid2" + + # @posthog/agent imports @posthog/git's dist, so git must finish + # before the last group starts. + pnpm --filter @posthog/git build + + pnpm --filter @posthog/enricher build & + pid3=$! + pnpm --filter @posthog/agent build & + pid4=$! + wait_all "$pid3" "$pid4" + + - name: Build Storybook + working-directory: apps/code + run: pnpm build-storybook + + - name: Serve Storybook + working-directory: apps/code + run: | + pnpm exec http-server storybook-static --port 6006 --silent & + pnpm exec wait-on http://127.0.0.1:6006/iframe.html --timeout 30000 + + - name: Capture story screenshots + working-directory: apps/code + run: | + rm -rf .storybook/__snapshots__ + pnpm test:visual:ci:update + + # The vr CLI isn't published anywhere; build it from posthog/posthog's + # master, the same way that repo's own CI does. + - name: Checkout Visual Review CLI + if: github.event.pull_request.head.repo.full_name == github.repository || github.event_name == 'push' + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + repository: PostHog/posthog + path: vr-cli + persist-credentials: false + sparse-checkout: | + products/visual_review/cli + products/visual_review/frontend/generated/api.schemas.ts + sparse-checkout-cone-mode: false + + - name: Install Visual Review CLI + if: github.event.pull_request.head.repo.full_name == github.repository || github.event_name == 'push' + run: cd vr-cli/products/visual_review/cli && npm ci && npm run build && npm link + + - name: Submit snapshots to Visual Review + # Fork PRs can't read the token; their captures still ran above, so a + # broken story fails the job either way. + if: github.event.pull_request.head.repo.full_name == github.repository || github.event_name == 'push' + # On main pushes the run is tracking-only ("observe"), but vr submit + # still exits 1 when it detects changes; keep main green regardless. + continue-on-error: ${{ github.event_name == 'push' }} + env: + VR_TOKEN: ${{ secrets.VR_API_TOKEN }} + VR_BRANCH: ${{ github.event.pull_request.head.ref || github.ref_name }} + VR_COMMIT: ${{ github.event.pull_request.head.sha || github.sha }} + VR_PR: ${{ github.event.pull_request.number }} + VR_PURPOSE: ${{ github.event_name == 'push' && 'observe' || 'review' }} + # Lets the VR web UI re-trigger this job via the Actions API. + JOB_CHECK_RUN_ID: ${{ job.check_run_id }} + run: | + if [ -z "$VR_TOKEN" ]; then + echo "::notice::VR_API_TOKEN secret not set - skipping Visual Review submission" + exit 0 + fi + vr submit \ + --type storybook \ + --dir apps/code/.storybook/__snapshots__/ \ + --baseline apps/code/snapshots.yml \ + --branch "$VR_BRANCH" \ + --commit "$VR_COMMIT" \ + ${VR_PR:+--pr "$VR_PR"} \ + --purpose "$VR_PURPOSE" \ + --token "$VR_TOKEN" + + - name: Upload failure screenshots + if: failure() + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v6.0.0 + with: + name: storybook-visual-failures + path: | + apps/code/.storybook/__snapshots__/__diff_output__/ + apps/code/.storybook/__snapshots__/__failures__/ + if-no-files-found: ignore + retention-days: 7 + + - name: Upload test results to Trunk + # Run even when tests fail so flaky/failed results are still reported, + # but never let an upload problem fail the job. + if: ${{ !cancelled() }} + continue-on-error: true + uses: trunk-io/analytics-uploader@385f1ccdf345b4532dc4b6c665dd432b702b8e28 # v2.1.2 + with: + junit-paths: "apps/code/junit.xml" + org-slug: posthog-inc + token: ${{ secrets.TRUNK_API_TOKEN }} diff --git a/.gitignore b/.gitignore index ee3ec7c716..e4ab067fb9 100644 --- a/.gitignore +++ b/.gitignore @@ -83,3 +83,8 @@ apps/mobile/ROADMAP.md # pi project-local config (per-developer MCP servers, prompts, etc.) .pi/ + +# Storybook visual regression: PNGs are never committed. CI uploads captures +# to the PostHog Visual Review product; the committed baseline is the signed +# hash manifest apps/code/snapshots.yml. +apps/code/.storybook/__snapshots__/ diff --git a/apps/code/.storybook/main.ts b/apps/code/.storybook/main.ts index fa5c7f41e9..36e6d03837 100644 --- a/apps/code/.storybook/main.ts +++ b/apps/code/.storybook/main.ts @@ -100,6 +100,19 @@ const config: StorybookConfig = { find: "@posthog/electron-trpc/renderer", replacement: path.resolve(__dirname, "./mocks/electron-trpc.ts"), }, + // The agent dist bundles are Node-targeted: tsup opens every file + // with a createRequire(import.meta.url) shim, and tool-use-to-acp + // imports fs/path. Shim those builtins so the bundles load in the + // browser (see mocks/node-module.ts). + { + find: /^(node:)?module$/, + replacement: path.resolve(__dirname, "./mocks/node-module.ts"), + }, + { + find: /^(node:)?fs$/, + replacement: path.resolve(__dirname, "./mocks/node-fs.ts"), + }, + { find: /^(node:)?path$/, replacement: "pathe" }, // Resolve the remaining @posthog/* workspace packages to source, exactly // like the renderer (vite.shared.mts). Without this, Storybook resolves // them through each package's "./*" exports map, which only falls diff --git a/apps/code/.storybook/mocks/node-fs.ts b/apps/code/.storybook/mocks/node-fs.ts new file mode 100644 index 0000000000..0d9be574c1 --- /dev/null +++ b/apps/code/.storybook/mocks/node-fs.ts @@ -0,0 +1,12 @@ +// Benign fs stub for @posthog/agent dist bundles loaded in Storybook. The +// helpers stories use never touch the filesystem at render time; if one does, +// it gets empty results rather than a crash mid-render. +export function existsSync(): boolean { + return false; +} + +export function readFileSync(): string { + return ""; +} + +export default { existsSync, readFileSync }; diff --git a/apps/code/.storybook/mocks/node-module.ts b/apps/code/.storybook/mocks/node-module.ts new file mode 100644 index 0000000000..c7081430e1 --- /dev/null +++ b/apps/code/.storybook/mocks/node-module.ts @@ -0,0 +1,12 @@ +// The @posthog/agent dist bundles open with tsup's Node shim: +// import { createRequire } from "node:module"; const require = createRequire(import.meta.url); +// In the browser that import resolves to an empty module and every story in +// the chunk dies at load. Stories only use pure helpers from those bundles, so +// a require that throws on use is safe. +export function createRequire(): (id: string) => never { + return (id: string) => { + throw new Error(`require("${id}") is not available in Storybook`); + }; +} + +export default { createRequire }; diff --git a/apps/code/.storybook/preview.tsx b/apps/code/.storybook/preview.tsx index 1d00b7d76c..b6988bec8f 100644 --- a/apps/code/.storybook/preview.tsx +++ b/apps/code/.storybook/preview.tsx @@ -2,9 +2,23 @@ import "./mocks/electron-trpc"; import { Theme } from "@radix-ui/themes"; import "@radix-ui/themes/styles.css"; import type { Preview } from "@storybook/react-vite"; +import MockDate from "mockdate"; import "../../../packages/ui/src/styles/globals.css"; import { withAppProviders } from "./withAppProviders"; +function inStorybookTestRunner(): boolean { + return navigator.userAgent.includes("StorybookTestRunner"); +} + +function seededMathRandom(): void { + let state = 0x9e3779b9; + Math.random = () => { + state = Math.imul(state ^ (state >>> 15), state | 1); + state ^= state + Math.imul(state ^ (state >>> 7), state | 61); + return ((state ^ (state >>> 14)) >>> 0) / 4294967296; + }; +} + const preview: Preview = { parameters: { controls: { @@ -40,6 +54,23 @@ const preview: Preview = { ); }, + // Last in the array = outermost, so it runs before every story render. + // Visual regression snapshots need identical pixels on every render: + // freeze the clock (elapsed-time counters, rendered timestamps) and + // re-seed Math.random (random status verbs), including on the re-renders + // the test runner triggers for theme flips and retries. This must live in + // a decorator, not module scope: the test runner appends its UA marker + // via an injected script AFTER the page (and this module) loads, so a + // module-scope inStorybookTestRunner() check reads false. Story-module + // fixtures evaluated at import time still see the real clock — use fixed + // dates there. + (Story) => { + if (inStorybookTestRunner()) { + MockDate.set("2026-07-01T10:30:00Z"); + seededMathRandom(); + } + return ; + }, ], globalTypes: { diff --git a/apps/code/.storybook/test-runner.ts b/apps/code/.storybook/test-runner.ts new file mode 100644 index 0000000000..886bb82eaf --- /dev/null +++ b/apps/code/.storybook/test-runner.ts @@ -0,0 +1,252 @@ +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import type { TestRunnerConfig } from "@storybook/test-runner"; +import { getStoryContext, waitForPageReady } from "@storybook/test-runner"; +import { toMatchImageSnapshot } from "jest-image-snapshot"; +import type { Page } from "playwright"; +import type { Parameters } from "storybook/internal/types"; + +// Ported from posthog/posthog's common/storybook/.storybook/test-runner.ts, +// trimmed to what this app needs (no MSW, kea, iframes, or webkit). + +declare module "storybook/internal/types" { + interface Parameters { + layout?: "padded" | "fullscreen" | "centered"; + testOptions?: { + /** Wait for spinners/skeletons to disappear before snapshotting. Defaults to true. */ + waitForLoadersToDisappear?: boolean; + /** Extra selector(s) that must be present before snapshotting. */ + waitForSelector?: string | string[]; + /** Screenshot this element instead of #storybook-root. Non-fullscreen stories only. */ + snapshotTargetSelector?: string; + /** Viewport size for this story. Defaults to 1280x720. */ + viewport?: { width: number; height: number }; + /** Themes to snapshot. Defaults to both. */ + themes?: SnapshotTheme[]; + }; + } +} + +type SnapshotTheme = "dark" | "light"; +const THEMES: SnapshotTheme[] = ["dark", "light"]; + +const SNAPSHOTS_DIR = path.join( + path.dirname(fileURLToPath(import.meta.url)), + "__snapshots__", +); +const DEFAULT_VIEWPORT = { width: 1280, height: 720 }; +const JEST_TIMEOUT_MS = 60000; + +const LOADER_SELECTORS = [ + ".quill-spinner", + ".quill-skeleton", + ".quill-button__spinner", + '[aria-busy="true"]', +]; + +// Radix Themes portals dialogs/popovers/tooltips outside #storybook-root, so a +// plain root screenshot would miss them - the snapshot clip is expanded to +// cover any of these that are visible. +const OVERLAY_SELECTORS = [ + "[data-radix-popper-content-wrapper]", + '[role="dialog"]', + '[role="alertdialog"]', + '[role="tooltip"]', +]; + +const config: TestRunnerConfig = { + setup() { + expect.extend({ toMatchImageSnapshot }); + jest.retryTimes(2, { logErrorsBeforeRetry: true }); + jest.setTimeout(JEST_TIMEOUT_MS); + }, + async preVisit(page, context) { + const storyContext = await getStoryContext(page, context); + const viewport = + storyContext.parameters?.testOptions?.viewport ?? DEFAULT_VIEWPORT; + await page.setViewportSize(viewport); + }, + async postVisit(page, context) { + const storyContext = await getStoryContext(page, context); + const { parameters } = storyContext; + const testOptions = parameters?.testOptions ?? {}; + + await waitForPageReady(page); + await page.evaluate(() => document.fonts.ready); + await disableAnimations(page); + + if (testOptions.waitForLoadersToDisappear ?? true) { + await page.waitForSelector(LOADER_SELECTORS.join(","), { + state: "hidden", + timeout: 5000, + }); + } + for (const selector of toArray(testOptions.waitForSelector)) { + await page.waitForSelector(selector); + } + + for (const theme of testOptions.themes ?? THEMES) { + await takeSnapshotWithTheme(page, context.id, theme, parameters); + } + }, + tags: { + skip: ["test-skip"], + }, +}; + +function toArray(value: string | string[] | undefined): string[] { + return value === undefined ? [] : Array.isArray(value) ? value : [value]; +} + +async function disableAnimations(page: Page): Promise { + await page.addStyleTag({ + content: ` + *, *::before, *::after { + transition-duration: 0s !important; + animation-duration: 0s !important; + animation-delay: 0s !important; + caret-color: transparent !important; + } + `, + }); +} + +async function takeSnapshotWithTheme( + page: Page, + storyId: string, + theme: SnapshotTheme, + parameters: Parameters, +): Promise { + // The preview's Theme decorator reads context.globals.theme, so flipping the + // global re-renders the story in the other theme without a page reload. + await page.evaluate((newTheme) => { + (window as any).__STORYBOOK_ADDONS_CHANNEL__.emit("updateGlobals", { + globals: { theme: newTheme, backgrounds: { value: newTheme } }, + }); + }, theme); + await waitForPageReady(page); + await waitForImagesToLoad(page); + await resetScroll(page); + await waitForDomStability(page); + // waitForDomStability only polls scrollWidth/Height, so a theme flip's + // color-only repaint (no layout change) isn't visible to it. Wait for a + // paint, plus a short settle: the theme global lands via a channel event + // and React's commit isn't guaranteed within the next frame under CI load. + await waitForNextPaint(page); + await page.waitForTimeout(250); + + const image = await captureScreenshot(page, parameters); + expect(image).toMatchImageSnapshot({ + customSnapshotsDir: SNAPSHOTS_DIR, + customSnapshotIdentifier: `${storyId}--${theme}`, + comparisonMethod: "ssim", + failureThreshold: 0.01, + failureThresholdType: "percent", + }); +} + +async function captureScreenshot( + page: Page, + parameters: Parameters, +): Promise { + if (parameters?.layout === "fullscreen") { + return page.screenshot(); + } + const targetSelector = parameters?.testOptions?.snapshotTargetSelector; + if (targetSelector) { + return page.locator(targetSelector).screenshot(); + } + const clip = await componentClip(page); + return clip ? page.screenshot({ clip }) : page.screenshot(); +} + +/** Union bounding box of #storybook-root and any portaled overlays, clamped to the viewport. */ +async function componentClip( + page: Page, +): Promise<{ x: number; y: number; width: number; height: number } | null> { + return page.evaluate((overlaySelectors) => { + const elements = [ + document.getElementById("storybook-root"), + ...document.querySelectorAll(overlaySelectors), + ]; + const rects = elements + .filter((el): el is HTMLElement => el instanceof HTMLElement) + .map((el) => el.getBoundingClientRect()) + .filter((rect) => rect.width > 0 && rect.height > 0); + if (rects.length === 0) { + return null; + } + const left = Math.max(0, Math.min(...rects.map((r) => r.left))); + const top = Math.max(0, Math.min(...rects.map((r) => r.top))); + const right = Math.min( + window.innerWidth, + Math.max(...rects.map((r) => r.right)), + ); + const bottom = Math.min( + window.innerHeight, + Math.max(...rects.map((r) => r.bottom)), + ); + if (right <= left || bottom <= top) { + return null; + } + return { x: left, y: top, width: right - left, height: bottom - top }; + }, OVERLAY_SELECTORS.join(",")); +} + +async function waitForImagesToLoad(page: Page): Promise { + await page + .waitForFunction( + () => + Array.from(document.querySelectorAll("img[src]")).every( + (img) => (img as HTMLImageElement).naturalWidth > 0, + ), + undefined, + { timeout: 5000 }, + ) + .catch(() => undefined); +} + +/** Waits for two animation frames so a color-only repaint (no layout change) finishes painting. */ +async function waitForNextPaint(page: Page): Promise { + await page.evaluate( + () => + new Promise((resolve) => { + requestAnimationFrame(() => requestAnimationFrame(() => resolve())); + }), + ); +} + +async function resetScroll(page: Page): Promise { + await page.evaluate(() => { + window.scrollTo(0, 0); + for (const el of document.querySelectorAll( + ".overflow-auto, .overflow-y-auto, .overflow-x-auto", + )) { + el.scrollTop = 0; + el.scrollLeft = 0; + } + }); +} + +/** Wait until the body's scroll size is unchanged across consecutive checks, so late layout shifts don't race the screenshot. */ +async function waitForDomStability(page: Page): Promise { + await page + .waitForFunction( + () => { + const w = window as any; + const size = `${document.body.scrollWidth}x${document.body.scrollHeight}`; + if (w.__vrLastSize === size) { + w.__vrStableCount = (w.__vrStableCount ?? 0) + 1; + } else { + w.__vrStableCount = 0; + w.__vrLastSize = size; + } + return w.__vrStableCount >= 3; + }, + undefined, + { timeout: 3000, polling: 100 }, + ) + .catch(() => undefined); +} + +export default config; diff --git a/apps/code/.storybook/withAppProviders.tsx b/apps/code/.storybook/withAppProviders.tsx index 75707d4768..aa006e31cc 100644 --- a/apps/code/.storybook/withAppProviders.tsx +++ b/apps/code/.storybook/withAppProviders.tsx @@ -7,6 +7,10 @@ import { } from "@posthog/host-router/client"; import { HostTRPCProvider } from "@posthog/host-router/react"; import type { HostRouter } from "@posthog/host-router/router"; +import { + FEATURE_FLAGS, + type FeatureFlags, +} from "@posthog/ui/features/feature-flags/identifiers"; import { DIFF_WORKER_FACTORY } from "@posthog/ui/shell/diffWorkerHost"; import { IMPERATIVE_QUERY_CLIENT } from "@posthog/ui/shell/queryClient"; import type { Decorator } from "@storybook/react-vite"; @@ -93,9 +97,21 @@ function inertServiceStub(): unknown { // A ServiceContainer that resolves the few services stories genuinely need and // falls back to an inert stub for everything else. `isBound` stays truthful so // `useServiceOptional` still returns null for unbound optional services. +// Stubs are cached per service id: hooks use the resolved service as an +// effect/memo dependency (e.g. useFeatureFlag), and a fresh Proxy per `get` +// re-fires those effects every render — an infinite setState loop. function storyContainer(bindings: Container): ServiceContainer { + const stubs = new Map(); + const stubFor = (id: unknown) => { + let stub = stubs.get(id); + if (!stub) { + stub = inertServiceStub(); + stubs.set(id, stub); + } + return stub; + }; return { - get: (id) => (bindings.isBound(id) ? bindings.get(id) : inertServiceStub()), + get: (id) => (bindings.isBound(id) ? bindings.get(id) : stubFor(id)), getAll: (id) => (bindings.isBound(id) ? bindings.getAll(id) : []), isBound: (id) => bindings.isBound(id), bind: (id) => bindings.bind(id), @@ -132,6 +148,12 @@ function createProviderStack(): ProviderStack { .toConstantValue(noopHostClient); bindings.bind(IMPERATIVE_QUERY_CLIENT).toConstantValue(queryClient); bindings.bind(DIFF_WORKER_FACTORY).toConstantValue(() => stubWorker); + // Real (not inert-proxy) flags: isEnabled must return an actual boolean, or + // every flag reads as enabled and useFeatureFlag's state never settles. + bindings.bind(FEATURE_FLAGS).toConstantValue({ + isEnabled: () => false, + onFlagsLoaded: () => () => {}, + }); const container = storyContainer(bindings); setRootContainer(container); diff --git a/apps/code/package.json b/apps/code/package.json index 543b63f79b..5306e84d8b 100644 --- a/apps/code/package.json +++ b/apps/code/package.json @@ -30,6 +30,9 @@ "postinstall": "bash scripts/postinstall.sh", "storybook": "storybook dev -p 6006", "build-storybook": "storybook build", + "test:visual": "test-storybook --ci --browsers chromium --no-index-json", + "test:visual:update": "test-storybook -u --browsers chromium --no-index-json", + "test:visual:ci:update": "test-storybook -u --junit --browsers chromium --no-index-json --maxWorkers=2", "clean": "node ../../scripts/rimraf.mjs .vite .turbo out node_modules/.vite" }, "keywords": [ @@ -47,12 +50,14 @@ "@storybook/addon-a11y": "10.4.1", "@storybook/addon-docs": "10.4.1", "@storybook/react-vite": "10.4.1", + "@storybook/test-runner": "^0.24.4", "@tanstack/devtools-vite": "^0.8.1", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^14.6.1", "@types/better-sqlite3": "^7.6.13", "@types/canvas-confetti": "^1.9.0", + "@types/jest-image-snapshot": "^6.4.1", "@types/node": "^24.0.0", "@types/react": "^19.2.15", "@types/react-dom": "^19.2.3", @@ -63,11 +68,15 @@ "electron": "^42.3.0", "electron-builder": "^26.15.3", "electron-vite": "^4.0.1", + "http-server": "^14.1.1", "husky": "^9.1.7", + "jest-image-snapshot": "^6.5.2", "jimp": "^1.6.1", "jsdom": "^26.0.0", "lint-staged": "^15.5.2", "memfs": "^4.57.3", + "mockdate": "^3.0.5", + "pathe": "^2.0.3", "postcss": "^8.5.15", "storybook": "10.4.1", "tailwindcss": "^4.3.0", @@ -77,6 +86,7 @@ "vite": "^7.0.0", "vite-tsconfig-paths": "^6.0.0", "vitest": "^4.1.8", + "wait-on": "^7.2.0", "yaml": "^2.9.0" }, "dependencies": { diff --git a/apps/code/snapshots.yml b/apps/code/snapshots.yml new file mode 100644 index 0000000000..f006547cc7 --- /dev/null +++ b/apps/code/snapshots.yml @@ -0,0 +1,722 @@ +version: 1 +config: + api: https://us.posthog.com + team: '2' + repo: f4416fac-1816-40b2-a9f1-5c2005f8bfc3 +snapshots: + archive-archivedtasksview--branch-not-found-dialog--dark: + hash: v1.k4693efd2.e96cff68c4f34d389b8cd11870015bf99acdca2dbb39ace8cc51d0e7551e891a.Y_j6ePigJuWFQiciNqn504CKtDXvcZTe6GeEnnP9EmY + archive-archivedtasksview--branch-not-found-dialog--light: + hash: v1.k4693efd2.6e61b2982936aa51f9d5f89f6a8a3eac752921fe45e231a0edad8549f1ca8637.YpLKs7304DnWvEUZ569muavj94whl7YemMlP2Z1V9qM + archive-archivedtasksview--default--dark: + hash: v1.k4693efd2.ba91152c666e7d5e5a4ed7cdcc1020a28374ff7a2a04367eacfe9b42002e270c.zmnuTOfMpSscj2lBlnKO8w7t1cKkRqGttPjxcL1IjQU + archive-archivedtasksview--default--light: + hash: v1.k4693efd2.cef5977a704ad5e8d50439462fe32511d8b6bd9821094f23a178091c6935db1b.WNWMI8O_gYh2isGEIX7A0TKEAgq7F9o01PV4MnwRgQE + archive-archivedtasksview--empty--dark: + hash: v1.k4693efd2.c6acdfd1ef1a2a6144191a701c06f6f16d7b9a5ff90287849ad0b11a26db8007.SKmKu6vwd5POmVLH8CELsPptzbijE9W2wzOoi1OfBlI + archive-archivedtasksview--empty--light: + hash: v1.k4693efd2.5ae7ba9fc89069cc7d7b0ed537e85569106f319b35407dcfa253f7b4537ad792.OViscKl_q51qVpfau3BoGwYeSsouIj-U6X8L3JIdd60 + archive-archivedtasksview--loading--dark: + hash: v1.k4693efd2.4fdb3459b2b18bb78128b6d8631b0df655174ee6d9354b9a417aad0880f76c87.4WLWBK7MlV-xLK9nQKA8WKJSdWnlatwKCz8X039n4G4 + archive-archivedtasksview--loading--light: + hash: v1.k4693efd2.4f377c71902cc230984bf09efe979ca0156f50102c8d6aebc1c8fd0354b09750.oMUOl5DMOHpY-1XBIaixmHyChC2l43eOGNyJwOrcXq0 + archive-archivedtasksview--long-labels--dark: + hash: v1.k4693efd2.f646a056def120913c9675840e3fa2f8cfcfbda3d6746e86a96eb107919406da.dnzG9l7SCHUxuLwfY1jn_ZnPOy_cvHaTP92PpkpP0gk + archive-archivedtasksview--long-labels--light: + hash: v1.k4693efd2.29752b30fe1095a9ea51f85718d80238de8fa3405259aba25ec0b6a9c1719621.cKYkJ_3BAJK067PBn_YtsSpN9eKWD_RWD2WzIECzWyE + archive-archivedtasksview--many-tasks--dark: + hash: v1.k4693efd2.40d24f07a24c6400c32ae68b39fd908a056beb5dc6df8bcb237ec2ab2b494f4a.l2vjfSQDalCPRtDNV7pbfTKGlMsQoI81jI-UdJfLHWE + archive-archivedtasksview--many-tasks--light: + hash: v1.k4693efd2.52ec9963bfe6f248ffcdaa4c26945d2b7e303115825b65d978aa5aefd4af1007.ZLtOfTZUrznhYeB-N2SIHzQWRzF6TDSaipNkfd8uzjM + archive-archivedtasksview--mixed-modes--dark: + hash: v1.k4693efd2.d94039b8cc17a4ad1b720364f41fee58a4843aa9a901443997ba62602f698794.441LWZhT-2WQZJHni4LoOgQsOSr2O103NZOk1pF8ME4 + archive-archivedtasksview--mixed-modes--light: + hash: v1.k4693efd2.ea7094e536fa81651782b309f49b2e73477454a886244178e748ae5815eca149.TIcFxymeOOoJzIrV6Y20PnJ4aD2t-pK5f0butiyiWgA + archive-archivedtasksview--single-task--dark: + hash: v1.k4693efd2.0e99b12642e04b26f992abe9f26719f9ebf4732731a4eab20bba570e9f454060.XHQ3wd4dSlE6VYSMA1uTjyBNMG4zz0ZHwqL9PKY0td4 + archive-archivedtasksview--single-task--light: + hash: v1.k4693efd2.e8c79272f21754cd4db934a8677c7f7b480eda4dfc5b4771fc19649932b475c0.WlV7Y7KjBQMAdXfJVBiSVGp-ylrlCmr2Ov9ABnB0WmY + archive-archivedtasksview--with-missing-task--dark: + hash: v1.k4693efd2.74d9ba343428a3f253685597bad5e07f842a2c0c24ee9f53112eb8bddda8fe49._WsfzSXfmvpyxETWVK6bivVMZ7GZ9y_otB9IVO7VQoo + archive-archivedtasksview--with-missing-task--light: + hash: v1.k4693efd2.648f64ae048e0915a1d0e7907c22fcc8b553630b4e1d538c5537ceb6aa5bbf25.0gmoZwbpniXv2OXkuSD12wLt34aaHBW-8aEmvrT-PqI + autoresearch-configurable-full-dashboard--before-baseline--dark: + hash: v1.k4693efd2.34b322085d4a0cc5723c4cc8b984fd81cf89809714f11de742605666e6979db2.D9JzgYGAuE95x0QkPVy4uBUYgUIkwrCCA08KMKXkKcg + autoresearch-configurable-full-dashboard--before-baseline--light: + hash: v1.k4693efd2.b4b99cafb1e4d7694726e86243910650f8ccb9156a8e81e5497f0705ab4ac383.H1b2sQFL1TV2nIDVf2RDkTSsUoA79-JM_FYlD-DTGzE + autoresearch-configurable-full-dashboard--completed-run--dark: + hash: v1.k4693efd2.2d10fc5b66537e110c096ca6349e1b46beffc2fcc8314e20a08a2c919c392ec7.xK39m0L7j5UNMcu1hrpcg7nPSPV0zwQLIq2UFbmoeaM + autoresearch-configurable-full-dashboard--completed-run--light: + hash: v1.k4693efd2.c03f43fe95a2dd45a722daacb531779cb6ebba5808b9790a4ccabbec8e16150f.95LMNvhl0FSreegkTDvktiIn_Pu47xydgq5KqtUOsCY + autoresearch-configurable-full-dashboard--playground--dark: + hash: v1.k4693efd2.67b1deb79c2c8a600bc77090e45a1586645df4af8a862ae90566583ba74e0c8c.0ae-YcXq7CDAUW5tZWa1nCJ2bK8XzG0U-f_0onDkF_Y + autoresearch-configurable-full-dashboard--playground--light: + hash: v1.k4693efd2.3944a480bec8fc56e71d16b8c44fd6dacb36736dad00c7116b24bb2f56bc3131.V-VD__LGWRlzMVNRv8QxglnuD1i_xHRBZg2fmwfXa70 + autoresearch-observability--active-experiment--dark: + hash: v1.k4693efd2.7635193c423ee44a6f8ac40f1a2c885cec49e9131e187ff164b03b051ea71143.NSfHpkBCo_0DJaaVHP71WGkWASEwHc48GBXF4o4VUhc + autoresearch-observability--active-experiment--light: + hash: v1.k4693efd2.e5c9b0dfc9d814f5022401d9b6c8271165c28a28f74b4708e155c4800e7b690a.8TP9QEzM6yKB-_gt61fVEAsj6DRry5LFAUIsHVINo_8 + autoresearch-observability--waiting-for-plan--dark: + hash: v1.k4693efd2.36e182d9438abfdbda7251f25255a1f6db00192111eaf6dde5c4adf74aa5ed85.jw3FQJBnplmsYY-xEJXq8MulEs2bReiud2xK4eYNVDI + autoresearch-observability--waiting-for-plan--light: + hash: v1.k4693efd2.261edaaca1e0d8b9932ca1af0d79e35365d6e53345252869b3ef79ebb0530d61.ejvug_EfWycvKL5XL93pJFLyxr22HfuK7lV6nqIRAco + autoresearch-research-map--establishing-baseline--dark: + hash: v1.k4693efd2.5162214d6100856e8a233f364cb0035845ae943dcac07afa0267ddc4d07bc53d.sDh8juzfN9gbXqX8suNdCWAEUqhuyRlUy4jEsh2ETlQ + autoresearch-research-map--establishing-baseline--light: + hash: v1.k4693efd2.21a9c5d13c2ca2592e5c73312ffcc39f16868bf38427ede85cba1f2b476d9de5.hJ9ITN88WX-wzhjiDY40OLDd_DBCV4hCq3FPSy-1e8w + autoresearch-research-map--findings-by-code-area--dark: + hash: v1.k4693efd2.24241937b04bc1845e1c0d5d6561f84f32d3512d32628fedb7a8be571d46c4e0._rYrAun17fUqJJEmIuYJQC6svmW2qQmJsSa2zMcpoao + autoresearch-research-map--findings-by-code-area--light: + hash: v1.k4693efd2.db68afd28cd0e204ab0ca02602b66adff99ec157918303a02a8f228d5fa23aeb.0iIfBWYqdNGwka2L3P-qS37Y_T0AWGHwgEDixWQL9X8 + autoresearch-results-and-summary--baseline-just-recorded--dark: + hash: v1.k4693efd2.fd89d5a250d7c9ba75656208f5fa85a1aff2d27f5e7a62d4dbe19c374668b0ed.oM02rII7mDCEH5GFyZ0oJgzizclMQWMb1S7hn0F8vZA + autoresearch-results-and-summary--baseline-just-recorded--light: + hash: v1.k4693efd2.cdb1596e320e7afa01d150626530df417351bbc5562cac2be32d9df77e3ea738.YzCAe389zQW1meP8ie4HfA2qIj65qCz7FX0oWu0daPg + autoresearch-results-and-summary--completed-run--dark: + hash: v1.k4693efd2.9aed29fb95ba712a8a8bb04cbd4c4f704879525c91b57db620cf4a91238d7017.5CT3vEkBAVI1-Ekd8x2WTHoBodZcebTUAeXMa6hdtQE + autoresearch-results-and-summary--completed-run--light: + hash: v1.k4693efd2.c37fe3b4fa73de73dabc3dc8480292bde19d4d84f4820819ec48ad3be3c5d698.ElWCwCPyshrgyzvqTDxx7WuGvtGFzZmnpvusc0LBlAI + autoresearch-rundashboard--maximize-completed--dark: + hash: v1.k4693efd2.80aa97a95ac4830be972d1366b77567b85f935dd368175bcdabe40a76d6b353c.Ne1OrLmuP1SEO4m3fiAcmatww9ivj3JLrDBMr_H5O5Y + autoresearch-rundashboard--maximize-completed--light: + hash: v1.k4693efd2.618b533f0d5e83f66f157deb8d1c4d8175f130c1b21d65a09f0bc3dab1dd0400.qTssqMO2-FgGs4NBvZPVHh7s0qgzkc-YSLCyqSqm9iA + autoresearch-rundashboard--minimize-in-progress--dark: + hash: v1.k4693efd2.d13eebe8c14696a1cd48b6b29097e0d96841b36f2ba9fecc299615d01c256d7f.qjZSf4ehb8NGy72JTAb_PhsCL9EVosZ6UZb6HwQPCNU + autoresearch-rundashboard--minimize-in-progress--light: + hash: v1.k4693efd2.eadc597c9bc11eca735f15c903ae63f09a57e4f781374ca29ea2d3213243889f.ZAeEfQLOMhLC_hwkcoDYpfRVbVIdT4MTskEQscvtJQU + autoresearch-rundashboard--no-iterations-yet--dark: + hash: v1.k4693efd2.a6940dbc2b9658b27b378a9682aa0a620aa9257264dfbd4fcb50171b67ab3bbc.L5nlctLAoM5-lzijBFcR4dZPEcvRBbtE88esDyjxjXA + autoresearch-rundashboard--no-iterations-yet--light: + hash: v1.k4693efd2.1a3a3769b49045c8ff70c895c6a840c8652cd2a34dfe52ddac26a2e27d367400.Wv7VCEDJVF8GYlXQC1j10XznFekbNVR4lXPO8lmd9XA + autoresearch-runtime-stats--before-usage-update--dark: + hash: v1.k4693efd2.f31283c7e391d88a500507127c4bf327b6ba8e47be04ca975b140c07824cf032.Z07es_PMn-0tcNOj5f11fMTbzm_juPqb0PCXjEbrSjY + autoresearch-runtime-stats--before-usage-update--light: + hash: v1.k4693efd2.cdbd6673dad805fd4f5763e2d050c8bb6db7a5b84725dccd9f530d951db920cf.m8ngO8I6Jsb1OcWI_6zltKZdjsK97tF0XcjImqpJS8k + autoresearch-runtime-stats--with-context-usage--dark: + hash: v1.k4693efd2.b76d39ed8142d4449cb5befcde538bb11a6bffcbed66e81bdc3aa8e2746b7e06.GSIfBsgE-3RYuqlLUpluZ87C6-KjBUaTj2eu_a5elZ8 + autoresearch-runtime-stats--with-context-usage--light: + hash: v1.k4693efd2.18889b5eda942cd19b0f7be00a87925d632529ca4111fac180d6339f7d34d1ca.X3s9IXrx2-TdQaJEjf1td3hwvNzeIp3Xq3uQh9Gwt5A + components-permissions-permissionselector--create-new-file--dark: + hash: v1.k4693efd2.c54203a4e636b83b3d24d7ed9c4ace8659db87cd8f231d9dc2ecc03320e31646.epDm7LebiLzlp0uuZBrE-Obt_anAn0xsE8bHFnm5vos + components-permissions-permissionselector--create-new-file--light: + hash: v1.k4693efd2.c697c6d08cfc04c55680af68b39e2da1b9c6c6dce4dfc40c996057473a456ba2.ZsyFy1-2NQeEq4a0NqARGDd42t5Afg2C5DIMuI6Tn9s + components-permissions-permissionselector--default--dark: + hash: v1.k4693efd2.d675e7d17d710714a9f7b14e59ccf6c91b8a763ad7df2b9b786cc4ac5377d23e.Szo0g-Uj1TRixXgcukYJAP1M51cMxFoAtXuxKBMNcbE + components-permissions-permissionselector--default--light: + hash: v1.k4693efd2.f0f93e89a0bde679cde93fc1651aa87ae30515a333cb07bae588c87781bf8e66.SWmyPyWNYXRNtRGLbl0VFEay9wrx8ndU2JR0u5Qkt5k + components-permissions-permissionselector--edit--dark: + hash: v1.k4693efd2.1d4143e0d34a9b412404a4f004d75df2a1664100ff327719569fa869065110a2._O_B96ux48xwgtqaBXlaWSDjIcROb0JJtWe2ihgxrPs + components-permissions-permissionselector--edit--light: + hash: v1.k4693efd2.8b46e548914108378eab510a56f2d73f38253e97a003840de7ecf9d2e5097f16.w_el91ojDAmux_YjYMDIkirUbnZi9RUA9MAuJeWokC8 + components-permissions-permissionselector--execute--dark: + hash: v1.k4693efd2.9ed4b3de0e745243c9e3d5315716236d8a2a0ffc0a1a7304062c095a7ae17423.SipXpgzBkai5LlZO_sAqR-Nwhd9DnzUGXpipRSw4F0M + components-permissions-permissionselector--execute--light: + hash: v1.k4693efd2.43f93b386302fb5a1fb44be036a85f6d9d90ab4e4942ea9354a270c6cbb3edad.ktirpMjDsX-AOq1DKaAZmywxqVWjbBlH0Bi6X34-XxE + components-permissions-permissionselector--exit-plan-mode--dark: + hash: v1.k4693efd2.6becb3097ad3c675dbb7b7c0d06b8a659c2a95c2ab7bbdad19913e4b4958506e.9AfTvCsJO-hocnFDLtI9GRSn7tYqgMRdQRNt1U0V3mc + components-permissions-permissionselector--exit-plan-mode--light: + hash: v1.k4693efd2.8411324a46d5623eb07392d728f4e9ae2fbcc8d9158a4969de712a1d8dd54eb7.C5GeIxi9WvogGJDCYg3Qkzp-nOtVmDpiOkuDHZvKOKc + components-permissions-permissionselector--exit-plan-mode-large--dark: + hash: v1.k4693efd2.6becb3097ad3c675dbb7b7c0d06b8a659c2a95c2ab7bbdad19913e4b4958506e.R5eRjRNzJTwndc_QYMMd3zUbWyMy0YOvGHhAY4jdQ-4 + components-permissions-permissionselector--exit-plan-mode-large--light: + hash: v1.k4693efd2.8411324a46d5623eb07392d728f4e9ae2fbcc8d9158a4969de712a1d8dd54eb7._WNVfucyYy3AIDpr-6g9T1HnB4ogmCcklJ-Gj_MCPqo + components-permissions-permissionselector--fetch-url--dark: + hash: v1.k4693efd2.c4b4f61699d473e4a11f4f479fd933c78ed2a5a4bd8a5cf7a184cbe4f2b416b8.kwwGQ1CAhNCuPmuB9mq-mWdIRTUgklLbp2vvXqTrdz0 + components-permissions-permissionselector--fetch-url--light: + hash: v1.k4693efd2.fadb445c1d6e609f891f0cce1675042cecb79d84399f25f84244b2564a4a7017.C5UVGnjOSh3vbvgSkK-vA9qcDgg-VyWgpWPliX7lSAY + components-permissions-permissionselector--large-edit--dark: + hash: v1.k4693efd2.72d8218a8dc6082ded3c1edbbfeea2643bdd63cd0513f22447f4f5dc03ea6983.EyHhHXpgIaOarSlJToK0z2p-g2MPbjf7pSc6pk_UiRs + components-permissions-permissionselector--large-edit--light: + hash: v1.k4693efd2.ee82cd31c5559ea1b79b6480c1b19e01f6197d407d0dea7c52f1ea22e51a5d92.LlZvVbd4qhUkk1lA2CwkrZYuKDLX-T5ajV9GpvBU1h4 + components-permissions-permissionselector--large-new-file--dark: + hash: v1.k4693efd2.357a39e6c6860b0979acdcacd49c95cde14506785240d8bf3c9af64cdeec4452.CHOUqixSCClXAp-MFyIqMbSLP_BFG1jP2vD-LNgApaM + components-permissions-permissionselector--large-new-file--light: + hash: v1.k4693efd2.15fedfa246627636f8efe8e7b0d91d1541dac4644dd0177f22b363baf0de8bef.UblytE5NiY-I3Bs8PmmSz7VGeHrDZUxG1w4_LIuqiBA + components-permissions-permissionselector--mcp-github-create-issue--dark: + hash: v1.k4693efd2.40fc2b7965978f54b4d91dba9b050a23cba7bceefccfa7e49c7e4c848791f8b9.Rl087R8iR2zb6mTb9duxkvMUSuZfK-zxqp2lmtglTv0 + components-permissions-permissionselector--mcp-github-create-issue--light: + hash: v1.k4693efd2.9d5e29096e199209f2df39dcbb5b2204360238299e22d7d731aafa9ffe56a076.CQC47hyABHQ6iNniF0EzdSPKMphaKzu5bv4K0VjHdMs + components-permissions-permissionselector--mcp-no-args--dark: + hash: v1.k4693efd2.11d98ac6675682e3133d7bc5616bd9a1010354523bf7060641efe78429a4779d.CCmbXCYPi0uHpfVu_uj02ulh05NKy5weaoGETbgH8yU + components-permissions-permissionselector--mcp-no-args--light: + hash: v1.k4693efd2.91e050da89078a4394d70be3369b947992cb9512ccc168145f115b778b2bbd3f.nOQgvLesvZ9p0VV0w0a09ZA87JaB9nsSTqrzoCEVn9E + components-permissions-permissionselector--mcp-post-hog-exec--dark: + hash: v1.k4693efd2.bf828967c4a59a5781e910865bfb713baa69d6cd3aa287308456920c9067a8e2.64Qjd4GS2Q5NpVJEqCvozAtuysE66yekB4VTZVCmrno + components-permissions-permissionselector--mcp-post-hog-exec--light: + hash: v1.k4693efd2.ddeeb10ae6930d1b2b3c4e2bc968a73b27e0e3d72e70d6e0fe1409e779b4c690.br7ZPa94Khn3nHtYPw18XqFWrfOPNpizv8bgD-d_UHg + components-permissions-permissionselector--mcp-post-hog-exec-info--dark: + hash: v1.k4693efd2.276b2cc13e14052a460efc86221bc5b4df41d5468d41b8978389d894ca2ccc89.KePjSQ4mKiIH5UFLmc139aRJrvyo_vf2RJSfTaX-PG8 + components-permissions-permissionselector--mcp-post-hog-exec-info--light: + hash: v1.k4693efd2.fb0a2a0dca34eb7f4a50499cc9bd4ff72952b7e8e78d2d371dc0d635b298a06d.WQd5wGXlykrhsqxYop19BpJJ130BuQc6L9e1tpswvvg + components-permissions-permissionselector--mcp-post-hog-exec-search--dark: + hash: v1.k4693efd2.9a461df317c3db27a8576118ed7adf80eca824e796005f277125f642284040bf.jhGaDkzDMbXkewzrBlP57t6OtbbkBj6L-AmV5fpiGb4 + components-permissions-permissionselector--mcp-post-hog-exec-search--light: + hash: v1.k4693efd2.412325a3b56f74c7407b247713b1570455f67ba17b47f5c0515fa51fbf2855b9.HrulMXrAZbG_5y1Hkix-XQXJcajfdotfnp2EmdX3DwQ + components-permissions-permissionselector--mcp-post-hog-exec-tools--dark: + hash: v1.k4693efd2.9053750f2cda83a696f378fec659ff2fe2fe112de8365cddb4a3cf1400cd646e.nIu_UuqbUcZXb0wwwa1_GrTxJHCxcfP0z3aE3YhAW3M + components-permissions-permissionselector--mcp-post-hog-exec-tools--light: + hash: v1.k4693efd2.330ac908db89432a891b6f1c27abf28b6b0dd12ea646e90f01a47f0fd6c5ab0b.VGA6zoyC1WyDHb0QkuUKIjuHAOP7zEWETPlEX135xgs + components-permissions-permissionselector--question--dark: + hash: v1.k4693efd2.9b7d1180dffaeaee2e89a26b12d2116ff030bb9a8bbeefac31fc664c9651c983.BibMaZhAgvVfE08FVJHpGNNW_E7RIHafjQ-RjGTNYYE + components-permissions-permissionselector--question--light: + hash: v1.k4693efd2.2af6c026c52a9eb9269266ec467244344e9d9fc0dca703bd3687305f903455fb.Ufk5ZYVw9G-3Sb3R8__-xEAV3b2fQnDFaGS1BB-la9w + components-permissions-permissionselector--question-multi-select--dark: + hash: v1.k4693efd2.5340025078d2dbaf11b254a58b80ccb3e19dcea6ec27687c6d39ef3edec713b0.eDo6zeWDFkEmC9gOu6X_HMp_q51RPEuMMg9KTVehrXY + components-permissions-permissionselector--question-multi-select--light: + hash: v1.k4693efd2.419feeac23400e965c199fb78c5f5504be6fe5507e4240562f9c441ef4825e14.tASdPAiYY5_HItwzjPrGBEjwEINtm8xXc2rmt1MCeWo + components-permissions-permissionselector--question-multi-step--dark: + hash: v1.k4693efd2.91d83c31b125f8fcbb066df31d1853ae4a7443ab1f24fd3f5652b5b41fd862c6._jAOJt2E6P4xBPY1E74o_v6Ck2Bt0NpPbyrrD43mkMo + components-permissions-permissionselector--question-multi-step--light: + hash: v1.k4693efd2.ad7e00769c65e374793cf06ad90d62662455a41b15dd3668f171b24cee70b6e7.vUqcMD5j3keJvjRTUiIkoEVGucU4Y5nppUERT7lArHQ + components-permissions-permissionselector--question-multi-step-sync--dark: + hash: v1.k4693efd2.91d83c31b125f8fcbb066df31d1853ae4a7443ab1f24fd3f5652b5b41fd862c6.85MNbDmdwwtyndmbw-b0GQv3sZQUwSSX3zgXmyuxm_k + components-permissions-permissionselector--question-multi-step-sync--light: + hash: v1.k4693efd2.ad7e00769c65e374793cf06ad90d62662455a41b15dd3668f171b24cee70b6e7.xKuh8ruxbPIDUHbyh4sje6heqL9WjfE7lkR5aPyyJ4s + components-permissions-permissionselector--read--dark: + hash: v1.k4693efd2.a1a8697f7ea2752c7a77f5bf01a35697d8e1581ca4183481d5e8c080dd3746fb.ygySlJbhKDE9osbm8VD3zbE9aWjHMEBGmvrjcmAIuxU + components-permissions-permissionselector--read--light: + hash: v1.k4693efd2.6442da1ec861340c8dcd4aa4cf6a0f4f88892889ff9a6b196fdef9995e43d6ac.pyD2EI9cKfnRc-DnNv5xwcG02ld30fy2NCuDND0N0VI + components-permissions-permissionselector--search--dark: + hash: v1.k4693efd2.83d1e2a435bbb1709ecd3fee5e7734fc6b1b6bd7f84a0ff5272451350aca2358.p6UodoDiDX6K5W0vOAlBJnQx8-a5KwWzAmiOaW-fqt4 + components-permissions-permissionselector--search--light: + hash: v1.k4693efd2.fd38d1609b394dc54afc2dad0fdbcf340598f15e1e283d88e16b51358d584d13.CAJF-Cb40BvebEpQltPvxSOexhQ5-zxuybSetQdH2x8 + components-permissions-permissionselector--think--dark: + hash: v1.k4693efd2.6100d904ce7504d5b4c2de6e33053068148a18a4f5347e4731cedd34bc0023d3.SSGzDu7r7frLz0ijdy1btw9Mzry4qSaU9rBgdevyqr8 + components-permissions-permissionselector--think--light: + hash: v1.k4693efd2.d41036f2b6c090ba6523ae3f1dec4b847ddd4b0ef44f5cb18cd03722e17fad5e.j1OYiibE8Qqse0jPQIY36gqhbKD0jFHVMtiUiFfwTfU + components-permissions-permissionselector--web-search--dark: + hash: v1.k4693efd2.18dc5ec095a1f83218c0fe360b3845c8953c308c1f21f21a15f1c65789bc538b.w-R9wKqV1bIP8-KEgQUJ4OQL8bA-RlZuD3R2YlqtTXo + components-permissions-permissionselector--web-search--light: + hash: v1.k4693efd2.72a79c02257f09ec64c25fda911b6be2dc7366cc6ec7001484257d62f9e70a83.WbSMH14QwdxGse1ZfeTSLCouvasm4GrPL7oRBBFXoUQ + components-permissions-planapprovalselector--default--dark: + hash: v1.k4693efd2.6becb3097ad3c675dbb7b7c0d06b8a659c2a95c2ab7bbdad19913e4b4958506e.YevrEnH5nRwKJHV0YrqsfnoQ2h7h-jlX9XM1HpqTpRg + components-permissions-planapprovalselector--default--light: + hash: v1.k4693efd2.8411324a46d5623eb07392d728f4e9ae2fbcc8d9158a4969de712a1d8dd54eb7.luykalnKiAef6kQb1T-cSIObpm6YF6_bvWt3o0BY5n4 + components-permissions-planapprovalselector--with-bypass--dark: + hash: v1.k4693efd2.6becb3097ad3c675dbb7b7c0d06b8a659c2a95c2ab7bbdad19913e4b4958506e.VYkdTauuzKjRfMGd6nAyz7w8gYXcdgu--u0S_gFUAHI + components-permissions-planapprovalselector--with-bypass--light: + hash: v1.k4693efd2.8411324a46d5623eb07392d728f4e9ae2fbcc8d9158a4969de712a1d8dd54eb7.PM7trS82i5BWL4B16BprCVHuCECKO1VyUHRztXwNjAQ + components-ui-combobox--all-sizes--dark: + hash: v1.k4693efd2.6a10c5494a7d1d497d947971fc58e05912b323a0022dd2d1924b4aabde2419ad.zBnr0RMpFi5nk26OEG5yptAL5Hu2aR-IEgyXBCA1sYU + components-ui-combobox--all-sizes--light: + hash: v1.k4693efd2.a030f47934c8e94452eb4c4b22846bce058d7328051f17b5eeec6717ba9aa5ba.Ol_f3a44MMnHouvT8QuwGFuhhpoYOnXBYeLYV_Z0RCo + components-ui-combobox--basic--dark: + hash: v1.k4693efd2.55957e6489dde328f664c9161ab6797258f320e1823d59b72c1748820163a280.thigyH0acWo6UsRxk0NmJ5SSOsENyD_5TLKIKMHTEBg + components-ui-combobox--basic--light: + hash: v1.k4693efd2.6bc34a35a8a9e44ee5d2f48169b3ad2947e49bbbef72c5b400b3a34a95b4258b.UZy9BlOpOT8QNlFuE76d4qlujyajvjzH3xR-g4WoeBk + components-ui-combobox--classic-variant--dark: + hash: v1.k4693efd2.d1faa79115774c7311a87dbe2e23d04241e412e6c18bac73e640afdd011e4e82.bbxxobfDzFFRKCcL9u4Y0yuCiLr18kKLHZGy7rJ_aYA + components-ui-combobox--classic-variant--light: + hash: v1.k4693efd2.2e833833905558b02685a0d6ec092096c107723aad09c63c3952328ad2a2838f.igRphogU2C-p_7EiWIc86g-Qcohsnt4rfceN5g0HL-k + components-ui-combobox--controlled-search--dark: + hash: v1.k4693efd2.bbae772bcd59e545c1816dd0b32d4996b993a7a981691f0710aaaec48d504893.ujp5wtqhuy0_Y-7MtSHSPFKVoDFSIUiV0R3HSdZibsE + components-ui-combobox--controlled-search--light: + hash: v1.k4693efd2.fed2cd543661a6ade6f836465a0ddacada5a2073f537d4b2b824918b57bb30a4.RU4GQhfnZwUXXy0dFRaOpd3WM7FxsqF79EcqPQOAKHU + components-ui-combobox--disabled--dark: + hash: v1.k4693efd2.5fd4fd2babb8ac4bca68faf4a11b909187181a590aced4b0c5d11b06a8ecba11.IDymZYz9QedQ2UgW5Vt3Qu84eAyYlmJiniWZgL_2Fi0 + components-ui-combobox--disabled--light: + hash: v1.k4693efd2.8fa7be82ceca2c6d8259e93d3785d2173371f706b7e4bc1a26650316fc61bdda.N0gQr8nvik1hWDMO6IR4PJwGR2fKmDQU8yg7lw73JCc + components-ui-combobox--disabled-items--dark: + hash: v1.k4693efd2.55957e6489dde328f664c9161ab6797258f320e1823d59b72c1748820163a280.SCqiw9-Ri-oi61ZKZ2aJb-cPjSdsxaVEWtlzvse5gYg + components-ui-combobox--disabled-items--light: + hash: v1.k4693efd2.6bc34a35a8a9e44ee5d2f48169b3ad2947e49bbbef72c5b400b3a34a95b4258b.XRjiDNywtEcRjKr1RJZf4VrClp4gaE2lvr9YuHjHpIA + components-ui-combobox--empty-state--dark: + hash: v1.k4693efd2.bbae772bcd59e545c1816dd0b32d4996b993a7a981691f0710aaaec48d504893.-rMMd7YZu0juSbGJMPPtR6zrRYSk3j9fB-iem6vcISM + components-ui-combobox--empty-state--light: + hash: v1.k4693efd2.fed2cd543661a6ade6f836465a0ddacada5a2073f537d4b2b824918b57bb30a4.4YdCh0pNrSeZQzl_c5nkq8oTyojAe00H2jd8Ecp5yHo + components-ui-combobox--filtered-content--dark: + hash: v1.k4693efd2.bbae772bcd59e545c1816dd0b32d4996b993a7a981691f0710aaaec48d504893.lD8W1tqD8J1BGsxWFYdG8ibefNRtVrrSgj2QfyozD44 + components-ui-combobox--filtered-content--light: + hash: v1.k4693efd2.fed2cd543661a6ade6f836465a0ddacada5a2073f537d4b2b824918b57bb30a4.JA_p4jlvzuPL6xwDHpKifXqEVJhQng76pLHGGeX7IcA + components-ui-combobox--full-featured--dark: + hash: v1.k4693efd2.bbae772bcd59e545c1816dd0b32d4996b993a7a981691f0710aaaec48d504893.jVCbB-val4XC9v_zLy7IQ8t_cartFr3lHeBZCvdpQqc + components-ui-combobox--full-featured--light: + hash: v1.k4693efd2.fed2cd543661a6ade6f836465a0ddacada5a2073f537d4b2b824918b57bb30a4.1ShCaXc-9s4_ZvHKtMUO0lmFl3v8THzWrWp96v_ov34 + components-ui-combobox--ghost-variant--dark: + hash: v1.k4693efd2.6c69679d51e4c7bb2b3471c6fe9df0a75a8b86abbe407d95ded143c83a1140da.tSL0Tac3IiC6fEMWMjLhPaxZRHzXnbFDLqF53Jjg4KA + components-ui-combobox--ghost-variant--light: + hash: v1.k4693efd2.a7bf66d41a2342f7d10db173ee509dcc3875bf3c0f8002762522d55e8f8a358b.tayK4z-MHUm89hix2iEsKDj9tgBZtowTMzL-ujkkiik + components-ui-combobox--soft-variant--dark: + hash: v1.k4693efd2.76de8ff3971b8230cf5c38f07de2b79ddb3e6ade4e4433de7a1f426dda0bcb6d.C9iIoWDMXmjBr-Mzk3_1dD1Ng4ILF_vYq7g6mG14Gn8 + components-ui-combobox--soft-variant--light: + hash: v1.k4693efd2.66cb928db4a7f1686d6a3b02da708e0f749cd68046fdd2f31ef4bacbca8020ac.wbKguOIptqJvPFNmvqQQOtQOOnPNPMTfQk8HHuwYgG8 + components-ui-combobox--solid-content-variant--dark: + hash: v1.k4693efd2.55957e6489dde328f664c9161ab6797258f320e1823d59b72c1748820163a280.eEDzbZXgd2yiE2ivvvAtnUhIV9Cl4SPJ3GQ16SnyEUU + components-ui-combobox--solid-content-variant--light: + hash: v1.k4693efd2.6bc34a35a8a9e44ee5d2f48169b3ad2947e49bbbef72c5b400b3a34a95b4258b.iAoZbvc3Fj8cVekzLJq40F4ELQYMGTa6cBtkCcl3T1U + components-ui-combobox--surface-variant--dark: + hash: v1.k4693efd2.25dec634086dc15d7089fe19111d5e915f7cfabc0b0b9cba043a8e56b9ffe317.JNSX7ikJmsrp4oLx5ix2RlKZsm11Lu5iUImS6aAVw1o + components-ui-combobox--surface-variant--light: + hash: v1.k4693efd2.ccfef1530430a771892bb07cee506da74fc2f3c2713ed2dbf47a9c17a60f3cf5.iVA2CxeNJl6Fp-_tdHzRY-jcKUEDyW9Zmq5knYTI3Vo + components-ui-combobox--with-descriptions--dark: + hash: v1.k4693efd2.c6654de7b2f048e7a5c3a96a4358d16ef45bac46cce20895fbe8801a2b29c8d0.O-UANtjnrcxKp00YOYrNlD8V9FatLum05XywEY-c4sc + components-ui-combobox--with-descriptions--light: + hash: v1.k4693efd2.0a0e551d3e4e648fde7f5ef02894270deb5190efa2e659be432d237ee08dcd04.nsqfmc-2-sD6kFpepCzIASZYUMSGFJOEwxqnSbghyVo + components-ui-combobox--with-footer--dark: + hash: v1.k4693efd2.55957e6489dde328f664c9161ab6797258f320e1823d59b72c1748820163a280.P79K5YE_Q3vQ2gO3fKoC8JpKEBfqrFBdHmuLxppOzbM + components-ui-combobox--with-footer--light: + hash: v1.k4693efd2.6bc34a35a8a9e44ee5d2f48169b3ad2947e49bbbef72c5b400b3a34a95b4258b.S7kt7rMkB-Ker_AuHGir3B9Awy02P-8vW9fh5bvKY2Y + components-ui-combobox--with-groups--dark: + hash: v1.k4693efd2.55957e6489dde328f664c9161ab6797258f320e1823d59b72c1748820163a280.40t87EFehWKJkVlEPe9lmebfA3FeegsCfn1ALuFtl2M + components-ui-combobox--with-groups--light: + hash: v1.k4693efd2.6bc34a35a8a9e44ee5d2f48169b3ad2947e49bbbef72c5b400b3a34a95b4258b.YLq4gRL7GmhSTmKyYIKSGkK3HBK8qux5g7HOJx8S24I + components-ui-combobox--with-search--dark: + hash: v1.k4693efd2.bbae772bcd59e545c1816dd0b32d4996b993a7a981691f0710aaaec48d504893.QeBzMnOZIT7FGv6KuyKrDmo2CaEvyBzKwj9DJluf2UI + components-ui-combobox--with-search--light: + hash: v1.k4693efd2.fed2cd543661a6ade6f836465a0ddacada5a2073f537d4b2b824918b57bb30a4.fpalvRPE3cetQ4_FQarE8PEfhkdCtcViPMsAMriDQDI + features-messageeditor-promptinput--all-chip-types--dark: + hash: v1.k4693efd2.ee4386e086ae73a26460272d6673f2a4a2332b3fffee685474dac3794d4c42b6.-CCWbzKF6yZe9dsI3UrM406v7Ks20advTdOybi17OXk + features-messageeditor-promptinput--all-chip-types--light: + hash: v1.k4693efd2.c65755fee37ea7a9916ac7514d6b3f55eb5caf17533f856bc638a9d68e11fedb.q_OxMTen9RDJG7YNALnwQm7jXEhlJD3x20Pk6EWSXaY + features-messageeditor-promptinput--bash-mode--dark: + hash: v1.k4693efd2.b0d77cc601e0b035ec327cea65b0a47588e1e20bbbb49024f20739a8268a8b1a.UkaacFwtzEwwPBuCML78BLA-IqGOHpYzpw0kmruCO84 + features-messageeditor-promptinput--bash-mode--light: + hash: v1.k4693efd2.187db09e220ea15eb939df9cfc85a23119399fd92a866e3b2bfb8d5854b2d5c8.loVB67VuS0xvc2q_qGlWX7UpvboCfSHmsV9_1oWBjdQ + features-messageeditor-promptinput--default--dark: + hash: v1.k4693efd2.39692dc2db7781919357cf165615aab17121abf658d83df897bded8af33f49b9.tI7lKkDRZKasiZp-0A2x-j58gHmt36NrFj8bWqHctfw + features-messageeditor-promptinput--default--light: + hash: v1.k4693efd2.95f6402c42d2cc509a3ecd0700038eb94a5c0e1d46495c124e248c2aad207e03.JkYVNVJitqMb8zhecFE06CI1ikO5LgtJHLkGejQ9oT4 + features-messageeditor-promptinput--disabled--dark: + hash: v1.k4693efd2.1e70cc36982308809907ccf3a7f0ffd6bd8a84f4b9c347a1485f22af6396a130.rpPF2QWCUEmSXu_xIIp8OJvFto-0iWUfqa-nqbcBvYE + features-messageeditor-promptinput--disabled--light: + hash: v1.k4693efd2.04675bc0e83fc800e445124d291e6e270e83f6e57732ec4fb8b3d923fde48d36.kZIAAJjEG__BxdkqSLcZqWI23Ov_P61GoqrRooS6paY + features-messageeditor-promptinput--loading--dark: + hash: v1.k4693efd2.ce3415ad9a08e1c17d161b5b9d380ce2932a22250c7200fa596b25b1ebe74981.kHYaof1A1JpVaDoUtXBxsRAplrz_AMSigbIumlZGt68 + features-messageeditor-promptinput--loading--light: + hash: v1.k4693efd2.be67b5a5b617f04581c5d5232b9fef077f097ebd25e38f6824efd959d62df319.0LCxN5LGJwWlMPVv0QGBurrUkl-udeo9OPDshGpuKFg + features-messageeditor-promptinput--long-chip-labels--dark: + hash: v1.k4693efd2.938fd743db383e1a07bf51cf92ebeb5302ce2b8d34bedcafc0322abad07d8c1f.byXsnok8SSWTrwXowdCqP0JcCLMPp7UdrxxXCAh4Oqc + features-messageeditor-promptinput--long-chip-labels--light: + hash: v1.k4693efd2.9881b4e87754d24071ce347cecee0a5cde74420a7479185103a72ef47bc6e2fc.LqrVUd-Gut3drXhlNExu0rNKEVloidS8hzpS0beh1s0 + features-messageeditor-promptinput--no-toolbar--dark: + hash: v1.k4693efd2.b4b23e27df33bdd40b8140ddc7ae2cb6e003e4e79b7dbb673ce899bd798d4302.xHv6U1GiLsPX23d1Xsk_iIV_Jo_TwA7ZzLdOE_LDyB4 + features-messageeditor-promptinput--no-toolbar--light: + hash: v1.k4693efd2.4e378168c98df8b05199cc9cd226423e7ee251a634800700259b585b3e7c3146.402zYYfOeofbC3cDrGzkWlx51egbr1pBIJqPZI8AzNw + features-messageeditor-promptinput--with-command-chip--dark: + hash: v1.k4693efd2.e1caba85b6b954a0fd7ee0697103b56827c3f70a989045e55229773fc1907db9.JXGkf5IfFtnhV3VsVBK8E5MN1O6Ap8G6GOmpRb6vnrI + features-messageeditor-promptinput--with-command-chip--light: + hash: v1.k4693efd2.5edfe9ec737b22a5118a81cd06ccda5940f09babb020a62f695b2561e081154d.oV7ZMMCLkLZEYUrQbjyK6G2YtrwRwQw-kgJ0QLzp3as + features-messageeditor-promptinput--with-file-chip--dark: + hash: v1.k4693efd2.a73cc5d7c9cec7ee4e9d3db3c93dcbac13618e80cb5a3c33bd0f12930b11b03b.mHvtzxciw6Uc9RWCWBrwkfyqRa9xaBA4jaagwbcmgQA + features-messageeditor-promptinput--with-file-chip--light: + hash: v1.k4693efd2.d612fa1fec02e6be99dc4fbeb323907a120b4a737a5b2693505c09136d2251ae.GRnbQivbWKqk_40eRQ1B0D4IFlt1yjjFZ2n_hZ7ToAY + features-messageeditor-promptinput--with-multiple-chips--dark: + hash: v1.k4693efd2.eee0b528dd023f5f36fb99965305eab76478deec6f7c3cb1433c2cb6ee1d7980.kz8e5rJ0qIT_rLHKgpf0jH6b6w32XcWe1UEiH_nctYg + features-messageeditor-promptinput--with-multiple-chips--light: + hash: v1.k4693efd2.f844653d745a308116b94546ec6605028e90246b6aa9fa640a1b8f9c579193e1.PkuP-7A0MOZk7V3mpsJDx4pwJA0VoIzMnp4BIgDQ45U + features-sessions-conversationview--all-tool-calls--dark: + hash: v1.k4693efd2.602ee87d6d7a745d4b09d9e49bd12a70e52299b78ca97a48b5ca73a01532d801.Imd_IYgKXb6kcfjhRfBhmc4-AoPoKcfg1QRNXB4NL_I + features-sessions-conversationview--all-tool-calls--light: + hash: v1.k4693efd2.1636dfc3ee0dd9d28065166f2fff0193f2d499692c74749d3afa7585aae898b5.7Ez0SM2DUXepp6Q8SgUyX3zVbdbf2kvglPqJsEc-eB4 + features-sessions-conversationview--empty--dark: + hash: v1.k4693efd2.f7b3396b9c83b952221044d2058df7ddf985fab959dba2c691c321ca528ca2af.0rJM8GT1SXRzo0MFo3OPgV6oL4d8sLPm9vz18-na5iw + features-sessions-conversationview--empty--light: + hash: v1.k4693efd2.8fe9c532387523d9642ec7e9265d88435137aa739cb3763a0024335997697b12.ZtBmVlV92Opv5y4NHYDTPt-xvgcel_Z8JMfgnZJ9ZOE + features-sessions-conversationview--long-conversation--dark: + hash: v1.k4693efd2.34cfdd21ad9f643d7cf82b618f0e8e5c25856bc9675f816159bb0c4e4f67fa23.wrleGZzGujLjrbU_CMCGg30OLjDf63_XJlJ-7QJZS3A + features-sessions-conversationview--long-conversation--light: + hash: v1.k4693efd2.46629a82ba4239edf9d576f46a9696b33e7f63115aa773ada55af910d1cfec0c.c_Dh3-59F1Y3ehdwhro7_ImEILRdDK_42mmHui-shSY + features-sessions-conversationview--markdown-debug--dark: + hash: v1.k4693efd2.a1c2f118c135f553d72f1ed783782a8d9d37de47280c94a01f0aeed764f64d33.kZrv6ZRnKbRkFhgm_QYWvlqjC7VQbBlWCOnfi5pxZyY + features-sessions-conversationview--markdown-debug--light: + hash: v1.k4693efd2.75d098556db1af478095a77c26d7672a17a1651b8630341bd987607254d5cba1.wqcro6zc8l95cDgebzeZt-h5HIxnlwQKCEHiNrlP1v8 + features-sessions-conversationview--markdown-showcase--dark: + hash: v1.k4693efd2.b9901edc583c07111e8f515c557eeb547d767b2f29d61fa9a50523fa5275f6ec.KXz4KANV2VPPLFzt7_A0UTivT__wivJLBJSgJQfy2Es + features-sessions-conversationview--markdown-showcase--light: + hash: v1.k4693efd2.9ad5d2969e031ce98aeff5e9ff527118611ac6aaa73a83424d60acf777a32505.eNCuFlo2qByk8LARAV4cRqKE4UsIiknv920p6AyyfpQ + features-sessions-conversationview--single-turn--dark: + hash: v1.k4693efd2.26b602bfb096c1b19ed2e9ed8d363d3c8c77a21828df32f71a83ff053b759a96.tpvBFAGHOcxqIfCbU49YjzSe0GwuDreM8fFCWhlDs58 + features-sessions-conversationview--single-turn--light: + hash: v1.k4693efd2.20569531952a9f448601f8d0a0ccf5ae79341b904b4f79987142a2574c95e404.8HpLPHXhZpEX9kA5Hn78WskRYFAUev8X7SLPeWGSEbA + features-sessions-conversationview--with-pending-prompt--dark: + hash: v1.k4693efd2.602ee87d6d7a745d4b09d9e49bd12a70e52299b78ca97a48b5ca73a01532d801.F_1XKDzCxzMm_opEt9FvzczBb_2n-vyvOyGFXHGJmTk + features-sessions-conversationview--with-pending-prompt--light: + hash: v1.k4693efd2.1636dfc3ee0dd9d28065166f2fff0193f2d499692c74749d3afa7585aae898b5.YxTPa4CsqI2YuGLUdck8340ITZQrpna_C6z-SgII4Ws + features-sessions-toolcallblock--create-new-file--dark: + hash: v1.k4693efd2.8847f96037682460aba47f0e0f5113037918235fc98596933f2d1d06fd6f8f92.SHetexoVOtozsZGZQMcVbmpBlbk7M5D5Q0R_TJvPnyc + features-sessions-toolcallblock--create-new-file--light: + hash: v1.k4693efd2.b76ee7139696851216dbf6a6b96d3108a74ca0e2ac63cb66b17adf15fb743e2e.ZNfN4KSqhheSBT76I2-SUtZuWUbMe4Wtyc6EVky_2Rg + features-sessions-toolcallblock--delete-file--dark: + hash: v1.k4693efd2.5a34113c389fe81ad6162005ceff726dfcc7a099eadd674fcbd5182a66bf9366.zWH5pcYCTL8SynK4RxYFQghaSYhlso8zLqXUe-X08_8 + features-sessions-toolcallblock--delete-file--light: + hash: v1.k4693efd2.335c67cf3ba233e7a31185c6a634b1a33bb5ba809ee3ef32dd68fc5195db98af.SaD0_B4vn6YTePL6jdMtGuCHJFGZAOx8CAnFaqvgOa0 + features-sessions-toolcallblock--edit-file--dark: + hash: v1.k4693efd2.3c519676c2ad64c6efa4ec84ebd53e94de91474de79cae93a6b1c6f588120a5c.ze12txXqD8FzurKisqmQ-Ssgft12D687aKB7YX-ug8I + features-sessions-toolcallblock--edit-file--light: + hash: v1.k4693efd2.c705011e2dd9b846a772e95e2e1d635daed0e0b3abd23ce8179f9d76de24c644.2ttRi5R2Rz7UPryBWzTZSBnTgLdcb_uvIploiO_t2Ek + features-sessions-toolcallblock--edit-file-large--dark: + hash: v1.k4693efd2.896d9fc89ec7760ec0ae3ceaaf51cae7473160059fc32186911b15cdaaa79cbf.ct1fmoRiT2pSIz6m5hqwaeUXBzyvGry8_55qufW0aK0 + features-sessions-toolcallblock--edit-file-large--light: + hash: v1.k4693efd2.84041d1dafe0fb02c2a755e0d2aac0b061f07a0d35b1f2edb16f1076d454e356.rPvYxArxnkVZ0tEGTYaSk-d70tUeoh4eVW788QrZAyU + features-sessions-toolcallblock--edit-file-loading--dark: + hash: v1.k4693efd2.6f570e1bec6a476366c603e4abba6af6ee21e9cc1bac2e20d836070473def0d3.PNRX_3UOoI2jrD8MBe52sINi6bB0gpnHHn7PTnaKBws + features-sessions-toolcallblock--edit-file-loading--light: + hash: v1.k4693efd2.e02709d749ad805ea4a6ad64d6df292dd63de33eb1669e5248d29df4c2a97ef4.f-IC_SOL0hQpArL_J2gDreb1DTMKIJw5yOg6bfnhJ3M + features-sessions-toolcallblock--execute-command--dark: + hash: v1.k4693efd2.37c388fe74be6f42399027f5586a15c52ce5dc6a19a846328ac0c6edf8e56580.XYvAIEoTfKE-CuuyI2sug--W66gG9HhERkRoSgK0jPE + features-sessions-toolcallblock--execute-command--light: + hash: v1.k4693efd2.a695153241ffd5c4a6d69c77b22f83094485c78e8d978e1e49f998c79af48d9c.Kd-VpnkPONd8GDghAjiR3TJB0VVuI0y6u1FJhw0TRZ0 + features-sessions-toolcallblock--execute-command-loading--dark: + hash: v1.k4693efd2.4a9a2266ff0342dd84782625fdc6fec0e8899691f1154af90adb195f2a37565b.NDqRI-VInR2LqK_jZsBEC5RcTZtmfciYa5k467Lry8Y + features-sessions-toolcallblock--execute-command-loading--light: + hash: v1.k4693efd2.b7d3bd9b8caf352611b81d521dc6d471a6b87ae4bf94ab75382dc92720110e61.zTlfIKty2AOGcIQniLCw78ftqmSpDK6g8WuNJFvlQtA + features-sessions-toolcallblock--execute-command-long-input--dark: + hash: v1.k4693efd2.434dad8969ca15ec9df584a355d2ac715c6c722cedc226a12140b5958d664740.bMkeYfQ9ZH_h5_AIOXjZa_Moqu_4Ve41T3xt6wSQ0Hw + features-sessions-toolcallblock--execute-command-long-input--light: + hash: v1.k4693efd2.f269f87c9241441da52087aa7f5e1aa8876f0fd414a9f155b4c80f171bb2fab0.rN6XDtjiouqkslXBFnWF7Vy0ROYMdvBvz-aZBRfC84c + features-sessions-toolcallblock--execute-command-long-output--dark: + hash: v1.k4693efd2.b139fc321a646b7eab0732f0de4da52058a23a84f4a09406b0de35e18b9eecbf.sfYPLGMyN0dpFttqGRaUSF2fPTnWaU-vx9PsJiZxaIw + features-sessions-toolcallblock--execute-command-long-output--light: + hash: v1.k4693efd2.5263de5f6f06d330522cf39443f74b4c158f2ef69117b02423fb38a47671e1a6._BTpKB5THjlJLIPBPzttZxqWz5vcZiBs8ZKv4hMr_g8 + features-sessions-toolcallblock--fetch-url--dark: + hash: v1.k4693efd2.1ca76e41be114b7aeed13a78ccee9466261064c49385b23735bd9dac4e307335.U0WcP5EmvPgvN25MSnKJ1-zBCy8LreO30kIMGOpUI2s + features-sessions-toolcallblock--fetch-url--light: + hash: v1.k4693efd2.8b8f626b3bc18ab39d00de664f9c27f62087511bc5564aaf82e2d2013bc52c99.VpAB60mym4pr7xa2-Hiq4tBLg8c-NJkE8MlS-fXdf8Y + features-sessions-toolcallblock--fetch-url-loading--dark: + hash: v1.k4693efd2.4683558a6b8d9ef06f24e6a1f51a8f03fe2d7a3215f64aa8edf1bb2fd29e4185.GJU7JO3viJ_ZjZq_vpAClma-40CvnhhTxaJbiTnh5PY + features-sessions-toolcallblock--fetch-url-loading--light: + hash: v1.k4693efd2.0d84568baf785e27a5b08d39f249d9a59058a091fb0c2769890485ccf1f850c0.0q9YAVPPyZ2iKvq2DLlTeUI0UmrOTZhxyljRrZ6WdUM + features-sessions-toolcallblock--move-file--dark: + hash: v1.k4693efd2.13d4ff70accab2690de781a00db35e83f84ccd142905f409f31ae18cd654e371.XpCLcBJuNSLWIZfV4PVM5zb76vK7tR6EBjUEbGfPa9E + features-sessions-toolcallblock--move-file--light: + hash: v1.k4693efd2.7ed1bccf7cdbc03618fa2755114ec5f01f97ade73edd8d941ee9e247723c60e5.Vg7aNqONA7jq_IYsU_tOLmM6h23SiBiJn9tbWKTyaV8 + features-sessions-toolcallblock--plan-approved--dark: + hash: v1.k4693efd2.489ceaf0ae1f21618389bcc5002f89729692417eda5363e102ff6061d95712be.IqoXXry5ZG4UvEVtwzKiq9oK9L7vR2qrZtW1i-nyP0U + features-sessions-toolcallblock--plan-approved--light: + hash: v1.k4693efd2.9d5115ac58b8723db46b799a825167f6b852956efc00afaa3629669a8a1f27a0.xEGHFnxdTCYH8Y3tTA5JOXtxGvVJnTkcTZHD6eW3ZIw + features-sessions-toolcallblock--plan-cancelled--dark: + hash: v1.k4693efd2.a7ea69ed150407a943fa53233f21309faa7cc1d21c4eefe68d68959c4d746ab7.8TWayoULI5TTfq9i9Q8IfpNo5Lx-96pQLUUdWq7tqF4 + features-sessions-toolcallblock--plan-cancelled--light: + hash: v1.k4693efd2.4aa11c8d52db6b123ad00c3f23228276adc1baba612cc0ca400679ee44f9a935.30u0_zRZ1wSMtVEff5gEbKTKE2wXPosxvU8ZwN-LW1Y + features-sessions-toolcallblock--question-answered--dark: + hash: v1.k4693efd2.7630b6534452f5886a4cfee47d00d3679e744f68431f382f783848f240e18ea9.Aa2PXeU9oqsZHXcM57wkwJI9rPiFb_9U-JSbw49SYrc + features-sessions-toolcallblock--question-answered--light: + hash: v1.k4693efd2.6a3be32312ec878f8306c709335a685b1ea7ed0a4271a44720caaeb791b928d8.LgGnG_4qxLgW05W0ICxRoCm7Tu60QQpiJA8PWB9tw1o + features-sessions-toolcallblock--question-pending--dark: + hash: v1.k4693efd2.19f107824aa080e851dfb933e9d9e1147be95837a0f709f7c7a50ac2f4ba347c.VAVbzv_g6bVICbixMfcwLmD4xF849KhN69ohkgehRXQ + features-sessions-toolcallblock--question-pending--light: + hash: v1.k4693efd2.ec3f1830d08105514c8cd57b96bfef0d52ccbba7cf3e726e045b89802e76a675.3saJS0bxRUsAqLZVLdNLVMfakXYcXl_6U38n3nC0oLc + features-sessions-toolcallblock--read-file--dark: + hash: v1.k4693efd2.9785db2c7767c1b13a9dba60384722acb5a2ca8ce59ff23fc22eba5850cfd3b6.exJRHqq2Ouj2R_19vHC8azgDOvP47Xphv7XxnpxFi7g + features-sessions-toolcallblock--read-file--light: + hash: v1.k4693efd2.388d5aa656eac688e4ac6a4088213bc9c9ae9e49cb910457a1f5917e71f9fdd8.qBeEUJ3eXhV3z0l_j5msc_eCXK_9r5jogHluJyvetT8 + features-sessions-toolcallblock--read-file-failed--dark: + hash: v1.k4693efd2.a0dc2eddca5aac8b999fa10cb6560a015343e53c81440f42e088ac2a39c25d4b.ea8h0PTPFIYtz9oshEfrqlpx9cRQqjVZzbjA4RGV5BU + features-sessions-toolcallblock--read-file-failed--light: + hash: v1.k4693efd2.0d1f6b2a9348b1bbd4aefbf74715e5e1308b348a0fca6923d5e8f37e1b3d4a75.-98lvDoWHs0v4sCJdDFndzgzTVlyQMtjniuXOoavaZg + features-sessions-toolcallblock--read-file-loading--dark: + hash: v1.k4693efd2.24109c476267fd2d3fba0d01fa7bdd5df62859152eb70a4da0815e97636d4a16._zJDijNI772LiJObGPApmLiWEJp_zxIKYmExr1PfTrE + features-sessions-toolcallblock--read-file-loading--light: + hash: v1.k4693efd2.f595136e3bc02aa79a0ddb715a9e36dbd36f64008302be2ea612dbdf70a893e3.mKUEVYV9SReyCnE2PYX7gQ7tQ9U3isPXHze2wekJzRI + features-sessions-toolcallblock--read-file-with-offset--dark: + hash: v1.k4693efd2.29dde01994d95ca7a154d40f8be272672b084fcb96b3fe00908194e1f62e383b.KKzSbeeMCHUF2F27WamRlE4KrOooE0QmFHit4n2US3w + features-sessions-toolcallblock--read-file-with-offset--light: + hash: v1.k4693efd2.4238f1e64aba882c859ceffab32a1aabc546d45969f8eb3564922abd42c22baf.8oWn0FZT5IGGOlT0UF6BXT1rK2na8fcD0XGfXPv9gf4 + features-sessions-toolcallblock--search-glob--dark: + hash: v1.k4693efd2.a89f09b9f1532c9fc3e50b62e2aeb8011321f7f9ad8abbbc03ce22a3c5c9d642.CFdXGUMt_UZjQqCXUcmhspQUsO1rd7HIYBKZ3Nyw-3I + features-sessions-toolcallblock--search-glob--light: + hash: v1.k4693efd2.e0cf49f7276e9d0857f51892bd4f5491ab6c2583682764234aafda47a3a13ff0.mIEnyB6GkBOgHa7EirhyifS2lM7SJGPHURQvswR9X_Y + features-sessions-toolcallblock--search-grep--dark: + hash: v1.k4693efd2.782ec6f8a5ea236e7e155232b2f341d3f1a895bc40016b8efc3d135e449bfa3e.MoOxuqoBZwkstrxlPVaxZz4QnxksCB5uNfIdrHyovdA + features-sessions-toolcallblock--search-grep--light: + hash: v1.k4693efd2.cf26ffa37a5f2484b98d0e9d1478080f8aafd97276c71eca048e065aa44894ca.JWhlWpWdnPNyXOt30fl_WXWXSGqE4uAqHeVd4CiXMHE + features-sessions-toolcallblock--search-loading--dark: + hash: v1.k4693efd2.451e8fc3bd7cdbfcb64102aa0140f2f2f1f40ad8990abc76c1facf83a408f65f.J6n4CdrkyrK1e95O-vXsDLYxWhvHlgebuBhXQps1g_M + features-sessions-toolcallblock--search-loading--light: + hash: v1.k4693efd2.892a079afc5f63831be2ee1e1fe06e57f6c445070a18ced35c9efc041e1223f7.7_POVpIGqme239ROtZNlaa6DXeLMAfixfmU28IPQiIs + features-sessions-toolcallblock--think-task--dark: + hash: v1.k4693efd2.045a2c800863782dad8ba4d8f3b4f9c559c208fc47208846def022ca9d39ec76.MsXj3jiEQwcEq8JM7P0weWidKrh0wrAQ2MCZhdxyx1w + features-sessions-toolcallblock--think-task--light: + hash: v1.k4693efd2.05650c2c50c12b10ecfa060e166fb34f96143b14921bf3137695b41b4330efa7.6VZkwOtnkV0LuEJvOFImuIspkYk7_YHBC2ETOiNZtdk + features-sessions-toolcallblock--think-task-loading--dark: + hash: v1.k4693efd2.f458592df0c45d0ddb49ec60e3c240b4d22477d9db65991d203fc812a5311652.R5c35BFwGLlTLdiV8kJK4RO2lrGoP4pdxjvIBuUm_ns + features-sessions-toolcallblock--think-task-loading--light: + hash: v1.k4693efd2.181a77a02c2528140ba6b7bb802a3d5039ac177c098a25681d8f7cb9592b6593.ft4MOF_Km_NVpzETdNv2857JTu7QvUKcHcSO9Lo0Cjw + features-sessions-toolcallblock--unknown-tool--dark: + hash: v1.k4693efd2.4c9a72cde654d0ffb296993481b1149230390bb7ad1f380b16565ab5018bc744.goUv4fqTCZzZKqVg-PgoVs7n8irEGNgB71WVmQaQmBI + features-sessions-toolcallblock--unknown-tool--light: + hash: v1.k4693efd2.8c7a5a085c8ebdd6c1ff2c946ea11393a18a0190d6ec53fbbf7c3ec2e904ea6b.ULnt26_dUmA98MNKhPeZfL5_D9z8rm9dwEXO7CglbKs + features-sessions-toolcallblock--unknown-tool-loading--dark: + hash: v1.k4693efd2.40bb6f92d679401a72788f6fcbec2b68118d154b48f73f3a7f5ac32775128e53.89a0C2Hp6cHWDCmTFwSPymQeMP93LV_jU3_IpwOIeTo + features-sessions-toolcallblock--unknown-tool-loading--light: + hash: v1.k4693efd2.9201de74ddcbbb0c987aa114b62e5beaf68b57b370be239042600c9cd7cd78b5.Ulaaeq8wt3iPszWp62ABAm0Q0w9IsQTiI7vkfHlOoN8 + features-sessions-toolcallblock--web-search--dark: + hash: v1.k4693efd2.ddb9530a95f7a2e1485ab0cb16a4f06fa505747f033cb1d5032216d612727529.I-mIJ_Rh9AwUTCOooTojrXCSElaeWQKTby0H8yYqVwo + features-sessions-toolcallblock--web-search--light: + hash: v1.k4693efd2.05b65e4451696723f60e9acad63db1fcb722b39f116f06304ef573c8f4c169ed.KibKmAM9I46k1hfHULeWwF6k-u3VG2DX9KxdNyHhlgI + git-createprdialog--executing-committing--dark: + hash: v1.k4693efd2.f8ece03195134d03136060ac742eb77dcafbe801de68eb967427a87ed550b1b6.Jm3X-SOKkTyLmOBEec6pdiUcQP8C7181P3GzEbSIUUM + git-createprdialog--executing-committing--light: + hash: v1.k4693efd2.0a416aa90f9a10b1cc03c419f1372c6d7c14af8b4f8ba67eddf30d8bd0dd6558.WY1YM3-yaHvuyTOiEQSWXV29hxn6PiAujVe2UexIF0w + git-createprdialog--executing-creating-branch--dark: + hash: v1.k4693efd2.a4493d91c1b4457314b63fd82eeec672fbb39a04d09bb1cd97d4db7be023d131.qzsQo_816h56fa641C8kVohRnhm98aRSBeMsMv2hq0k + git-createprdialog--executing-creating-branch--light: + hash: v1.k4693efd2.2071a90e41184ca2d77385dbd0d4555df5e4976e1e4f4d576d1d286cc067a2d9.lb3gcHin5y4BP6wr1SLum1yq-hu5cYFkN7F6Jn9foYg + git-createprdialog--executing-creating-pr--dark: + hash: v1.k4693efd2.16b1d97a548cda82458949561a7fbf63e86a867d1ddbc844e02b9555177636fd.Ljf6qAvlJhyc8xxPBze5SsEVeW8WEdlZ6KhTYJzxJw8 + git-createprdialog--executing-creating-pr--light: + hash: v1.k4693efd2.5ef61a0266e25e18889932fc8a450adabc60c3bd720e453fcd27fb2a35874283.3KGxaqs19sIxHFAien3wPb8ROhDW901oc4578Imc81Y + git-createprdialog--executing-error--dark: + hash: v1.k4693efd2.1c038c7524b05351d0ed964b2ce4331c8ebd27130b2c15f292670e635e601ee6.ys5KGqjxzzIySTlu6b4q7a9xHkf2V1WjByA1bI8Sgvo + git-createprdialog--executing-error--light: + hash: v1.k4693efd2.11055f492a29f2a07af10b6e120739b1fd4f1f61840ceab4b4f0a883c2194c19.mntAbA8Cai7E2LEMfsyXgvpaRXvAtZ6seO5mkpGnddw + git-createprdialog--executing-pushing--dark: + hash: v1.k4693efd2.12cd3b5c6c3d60516dd0f303609358a5503c12f6c5cc760a3782806c8c876e6b.2WwiYEAScB3y_w2yDw6uaYh0SwFZ41rNSC8NXItaebg + git-createprdialog--executing-pushing--light: + hash: v1.k4693efd2.8fcb20aa09f8a914ca18f07f6a7951ca23d6c88704e4828a94b6c1e43161b618.rPKes4Z7h5Ga0QnLQK1Z9IFiw8wrS1mdBJOGF83MvDY + git-createprdialog--setup-commit-only--dark: + hash: v1.k4693efd2.1791c46dee1351edfbbb7625663f519bb6df380f50813849d2b106e136796114.fE8XkdYaS1BcGkyCNsIfIPbecJUfCGFYbmLzLjqqWGI + git-createprdialog--setup-commit-only--light: + hash: v1.k4693efd2.d55363ebf82838f014acc41f10664b6ee41dd5d3435655ca91dc75f83e2d1e9e.j9WrcO4p37bUzETXMThDZYuXl57c8sEh_8CEm0QXfFY + git-createprdialog--setup-full--dark: + hash: v1.k4693efd2.1670795ad9223a798cac52d6ab4d3caa4044c7bdfad3f44966f44c7c3ceab092.m_PmstaIfOotjaMsJtF5pczDFF6oNCt-C2fEzrBN2wI + git-createprdialog--setup-full--light: + hash: v1.k4693efd2.d87079c0e9d780446f3850dadb4211d390788f49b4f771d97016fa0dca9e08f4.0_fOgYI2XLh6mcQ_ImMotHkW3thEi0t864ICOKsYVLA + git-createprdialog--setup-generating-commit-message--dark: + hash: v1.k4693efd2.86a3c12a7d6a76ff4efa49eaf72b2cd2197723a6ab4b382b2dab8e1ad5e342a3.G-GTycoZ2Y2H25rvf54d_sHrOdTZQRUWiQ5yo0z2Xg4 + git-createprdialog--setup-generating-commit-message--light: + hash: v1.k4693efd2.2dd68fee870a75ef4fb39d6f403d4d39bfc45dbc0c58c7ec80521512d11763c6.78IB6uZ7kU1B_wB068YaCj3vzioeE16Vl3pYC3OM3aw + git-createprdialog--setup-generating-pr--dark: + hash: v1.k4693efd2.07648fd575d72bff5c6315d0c4c13af6d9f8c82045d4a3c663e91f33ba984bb9.JwxQgApo-Mf-ZLA4NEvLU9HTFwovdwrPG5Vl51vPe0s + git-createprdialog--setup-generating-pr--light: + hash: v1.k4693efd2.464b4e49d1415c8659e4d2a0a52dcdee9e055d2964003376703f4494c29e8c48.-cKQUmxQRituuostFa0gAnQrmdf_ynVeGUNBTtAmjqk + git-createprdialog--setup-push-only--dark: + hash: v1.k4693efd2.914e86edf58582edd3b8ef75d6eff1e5e58a523cfb569154125a5e33b939ceb9.mkwrKczz2MoxQA4qW_P_NC2iSknw3yKwLguP4QGTsTU + git-createprdialog--setup-push-only--light: + hash: v1.k4693efd2.70d3c7c82cfaffcd04f5182124ccb1dfe4f8ad30594a22d2d29bfc8a10d232f4.J08xoK1SAQdOvGmzdsg9ZX-2qpLpme0gcrpHx1Nyfo0 + git-createprdialog--setup-with-draft--dark: + hash: v1.k4693efd2.05de8bbcb21ad64abbed1ecd85ddd6d83674a50f6d5ab83f6fce95c49914b25c.fQZJRx8U3naHgMcxrRGqnT0u5DKLRU1Z-weCtXapRIY + git-createprdialog--setup-with-draft--light: + hash: v1.k4693efd2.1ffd8e9e17ff5a3881b712d4f7f883964c3ae0fb5c2b1a4e49f23823015d796e.8mLl7QBbwHo-xyPbDXFJVVieJu8vv9BfUUdxiAHGAK8 + git-createprdialog--setup-with-error--dark: + hash: v1.k4693efd2.b9963392940347ddcdf36b3d3ff2b21c57da18b6d23708846fb7eea8058d837d.OPswFrwpucVMuHbcNAQk95Qr5Edkm1YEM5_ZUDdjCiQ + git-createprdialog--setup-with-error--light: + hash: v1.k4693efd2.0cda8eb54b9826b964afb2320dcedec220ed7e2b95906ba4c283ec9ccc1f3fa1.e8JcJCS07qPfonTZsth1NSosoupEl3yl6AMLxCb508A + git-dialogs--commit-default--dark: + hash: v1.k4693efd2.a3296bd4af88c0f284379b76873f5e589ed1f81acabda8fa6e5bd25e2f0c4b29.Lsa7Tbaaaj5tLo1GI2LlQfcppJG35rx34AHRUAnl2uk + git-dialogs--commit-default--light: + hash: v1.k4693efd2.53619f54a69322235b428525538218d2e927727d980432430e0297bcadb8cf9e.lUol7hnIhbPCVOnSKlJ0MOr-FiiQBHz7KfhU1-gYheY + git-dialogs--commit-generating--dark: + hash: v1.k4693efd2.c7ad54d8c924deceebbef2a3f3f071cf9cc3e6a605db60b2ce70fafad64361e3.J2UB5-rDCC5G8VctfYO7J1gJon-CMp6KK2Kn5LUnVyI + git-dialogs--commit-generating--light: + hash: v1.k4693efd2.479299825304b51fc7132864452b350421a11fed252766bad0a7792c919a976a.iHXkzSVK1uX3MqREohpfp52dHqHhLD_o-F0ofUHy-ss + git-dialogs--commit-submitting--dark: + hash: v1.k4693efd2.c3a96ce67930c7c1a255beb3701f89477b776eb47da527ec3c461ca457d1fa9f.j_8IJcyoLwtpHDedQt0sT_I659oL-1BOxfBTbs1Alok + git-dialogs--commit-submitting--light: + hash: v1.k4693efd2.43ed152213fdde75e88c40f9aa624c1376dcea494c2a61f6bba8dca815d08b3d.6Jb8vvaiTRpAK9HNQ5IRM5cVGPPydNFJQJKk_iDsZsE + git-dialogs--commit-with-error--dark: + hash: v1.k4693efd2.ddf1bd3fe1dec2bccd9db009ce72b4e6e5f338aa54f6ade8cba006bc15ec4209.13uKBJWTfGN74vcm7WNFUyWzALttV45g_uahjBaKDrw + git-dialogs--commit-with-error--light: + hash: v1.k4693efd2.9e441f5609386ec3feaac4ab0cb00357762e54ef6f850061a8ab42b06dfb3407.8jz4g7TSgl1EtuEfHkjcrEL9ydNbFRrh0ctpRFaTdB0 + git-dialogs--commit-with-long-pre-commit-error--dark: + hash: v1.k4693efd2.693f303372e330df6122681ba7024da8d89e5eca7c6254f97fcd5f9a439f21a2.GDVyejdtT0O7vQs5Np4FImtUjC1A9PCJ4su3IxHBswU + git-dialogs--commit-with-long-pre-commit-error--light: + hash: v1.k4693efd2.cc58bdfd014f28999633c68d84ead9b41fd4f7a0adb5f8e7aa35ac1f3a25af0b.vgOvM7tK2SieKmdYi3AvMkJJIbl3vp7oKRbeul0zI5Y + git-dialogs--commit-with-message--dark: + hash: v1.k4693efd2.988a9f5090f227ac967d17c424f898e2b7e686fd57eb75e1c3c3cae7a80454c7.Vvb3YTnSPSGYNK7h_Mcn-bRKVQ6KmQYlgl_50R2WCkw + git-dialogs--commit-with-message--light: + hash: v1.k4693efd2.a1248f45a8c3553d2038327b002de7c88588b0808cadb9f843fdc2762a7d69a0.SvQX2svh9XcU7_P92sYbSGZKLh2PBm_5ztk-uSlL0PA + git-dialogs--publish-idle--dark: + hash: v1.k4693efd2.dcf4b6785cf445392416b6bc432828305c392cacaa780ad765f8a30f623739b5.4YfecYefLlsY0xUgBZ_wnzRFd9gOvQE2elh6h0CnvzE + git-dialogs--publish-idle--light: + hash: v1.k4693efd2.f85f663f4f59e0aab544b452b56cd374c5c832cfb876e08760745cd182527e10.rmzyanGIol2XmKYa3AKBOdSVJHielKCGrZQfAUC5R-0 + git-dialogs--publish-success--dark: + hash: v1.k4693efd2.bd54eb3b9291fdd25f4d4f0782b4c87716a45a3fb5181eea48fe13cdb22a2432.OEJXKuXBIxC7lP0RSmfblooVHuQK5xEiMJ8WX20BbQs + git-dialogs--publish-success--light: + hash: v1.k4693efd2.a5da13749a68559fd1964a59e2693a62ad890e11aa780e28e747b9d8c04ac6d9.C3l4X43bWS99fpny_YiVw36lODirRXwInI9XqRMZZ1Y + git-dialogs--push-error--dark: + hash: v1.k4693efd2.cb4dbd45cacd6a63e3b10bdaff309572dae6eeb47b940916d44e10d85ad35e0b.rexe5SQOGToFszxcgRVRD2wCiEvrkB5T3faxthNwk08 + git-dialogs--push-error--light: + hash: v1.k4693efd2.089ddf2558b976d42f3b717c3bcef1f46904c5da475f46a70a21ed0bfa2effa7.s4oN_OZyq85-vvz-yv61oyjyYucg_aTpvSF2Djvbj9E + git-dialogs--push-idle--dark: + hash: v1.k4693efd2.0279694ad11f1fe03cad5ebd21c4ff4c33969675e222a1e87884c4093ca8d9d1.BYMkUiaQLgxZhj0HJXAQSaS1OZEGOPJYdcLTLDQtRBs + git-dialogs--push-idle--light: + hash: v1.k4693efd2.a09f48cd9ed24e509fabb6a41067f0c7b190a22ed5e5979ab6e3ca807b4759ca.rDRUg6ejXtzGEqJKRweWGmCDDGCSmYtKYPiyvqQAXY4 + git-dialogs--push-submitting--dark: + hash: v1.k4693efd2.5c7e5f3d841e29c7ff181660f1c616e14589a3caf440dae76a6d683a7a7f252d.29kxi18TQeIygoZ27PuJhLx9nkN4Mj6jC9pvDIPIVUQ + git-dialogs--push-submitting--light: + hash: v1.k4693efd2.7f7f2e813082708024cba55af539a37567b35feddf512140d9967d93573557ec.8ru138A7LTQYcceZlnLUpCUfdYK8xl_PJWZRL6FlXgo + git-dialogs--push-success--dark: + hash: v1.k4693efd2.24175a759eca206eb5db4a7400e65c4270f4c14345d9447f226036ac3feabf7f.AOKIJHMJZDdMVGDvW2FE9P1zFJHXV4eQEfMGMeTN3Z8 + git-dialogs--push-success--light: + hash: v1.k4693efd2.e4f3a8c2b9b309f7deca4c584c0a5163c3ce0cf6917c49dd19c1a285745ce090.jgOGP2BC__iW4XKey68fA9D-S9FMpqSb4vb4mw_M8Rs + git-dialogs--sync-idle--dark: + hash: v1.k4693efd2.dd94ac606042ca445996f6eb6b45a122c5affc1d27e853d26433e026ed1cf0e2.YsGtLou4IRduiZr2E1-NSsfWhpockH-pSmy8WKxFecs + git-dialogs--sync-idle--light: + hash: v1.k4693efd2.a503d609041262a0b9d8e46d4e7734653a6b8576c776983f838b316e0fb82c58.aYCsM9NptHkTD3tRmaNKpLD2Djn2vhK_vGj_XHYaKKk + git-dialogs--sync-success--dark: + hash: v1.k4693efd2.39d47f04f9ee6a6508342a8cddd00169b4b8c6628d1f63d81759e20f6dec136a.XJ6pqjbtYJv9ESWNflv286xYvR2Pn3xg44mLVyWTnv4 + git-dialogs--sync-success--light: + hash: v1.k4693efd2.8d79d77c9338aeaa73734836f0e17fde987f6d3239914f4013889d3110e5088d.Rq-w2o1uhes_a5hUWqMXeiDkfnoPCZPt932LkEQXCco + scouts-scoutsfleetlist--filtered-to-you--dark: + hash: v1.k4693efd2.a3af6e76ef36598eaa347bedc4430878ed62754660166398e0576a9978cd084b.x3Ky-O6HOw0srWdOmnnKJwFNpmGmQVWip0t7CwVaRXY + scouts-scoutsfleetlist--filtered-to-you--light: + hash: v1.k4693efd2.e59a5a2743388bfdf4dc45b6c6ee4444a2e42688d430241705f113f3458f6e3e.kJw72mJqjutyol58ergNXpEkGYMTtzl3usiIpOoRpVQ + scouts-scoutsfleetlist--fleet--dark: + hash: v1.k4693efd2.34aa0a2dc3260dc8698e0ab125d1e471583127541b3463e2aac234916d49f1a7.5Tp06N_aDTJhF8Xh9aRySmoxNzICUOmUWSDDt7Hxwgw + scouts-scoutsfleetlist--fleet--light: + hash: v1.k4693efd2.424bc20359b8d9e07c417ee766921253da32065bc147cce2bfa51cb391df3ee8.DYucDj12noWDBGIoGFwGYPYaQaZigsB93Wsz9rOR_mo + scouts-scoutsfleetlist--nothing-of-yours--dark: + hash: v1.k4693efd2.c2f4f21f671ac0239b6c31f3a7e917801a912ab1f6be5c7e6f671e5e0dc2384f.C4_5btTw-UaL8P3zSrwBmWrHQ-mZCP39dFp_J4kE-sA + scouts-scoutsfleetlist--nothing-of-yours--light: + hash: v1.k4693efd2.f41b3665839b6b4fc35092617536dd679c7dc8905d1be9bd7f67f0cd9a7a4870.TdVEk6SR0Vc5z3x1-3NhiUm0IPMlB2zMfCL4uKjfRl8 + scouts-scoutsfleetlist--without-creator-data--dark: + hash: v1.k4693efd2.e4f6a0cd84d2fcbd992185adaefd87ac22a1ab07d0a598571c170bdc5e2a23b4.DECs22kDqHhWS1wkujXcAiH-zyIxt9L11TWFpxcsdSA + scouts-scoutsfleetlist--without-creator-data--light: + hash: v1.k4693efd2.3a20546127bcaf1dd38a2fbbba8ed17888b1aee29dcd19e7ee21fe0f0f8c2de3._mzCJi-fj1Uk24qmYCF5NiRkPc82R7x1Y6rml0aV21o + sessions-planstatusbar--all-complete--dark: + hash: v1.k4693efd2.5114bd6770b3f496dd3fdfa1537a3d00a05703d08afc2c16259015d402762346.7xcztTW3yhuZcbNa_uR91oT9J8pDCAugsXOxsAuu4d4 + sessions-planstatusbar--all-complete--light: + hash: v1.k4693efd2.669d667a271ed2c60877c189d9eed7735b08d5e032629f6e780fc82612c3225d.r8MpuUUTIVfJsazOB3QJXkG_kQmhxDIfKhQWwpfiZzg + sessions-planstatusbar--in-progress--dark: + hash: v1.k4693efd2.bcb88258e2da3c57e908ae12277af2c27517c1f923cf3c1613bdcb5228afc520.dbV9X0V9-4LaUbkPsYzq5lffynXdRr42DlTPA6Ipcdo + sessions-planstatusbar--in-progress--light: + hash: v1.k4693efd2.12c72b2f46df3974fb96771e18d9dd3b482d0976b8edc43682f18e9083e91f67.1FAKRINek23SFJrpq0DRp_kdsxRGc2atYmDltFNBB48 + sessions-planstatusbar--just-started--dark: + hash: v1.k4693efd2.b69ee539a311b36249e27c94aef3208ea0864d4b2f68b2846b6d1538655877a8.z-l9SvPzhDvRIwV7N15SRw9re9OhKtDo4eWBziWUtYU + sessions-planstatusbar--just-started--light: + hash: v1.k4693efd2.60bd0a6f6dc0d07cc30c3f2182f69cb10aef87381f8a9e23bb1f6a6831346263.M6YDqqAfat1zJJHN4dqNMMOvIY_ntn1gqd9mPSTDYS8 + sessions-planstatusbar--long-task-name--dark: + hash: v1.k4693efd2.67df5a50c8b9db7ee26a740781889c29a09ccb6901f0bb432e28762f2d60bdac.rJWkuL8yw47oieGLt9rabB330mxQxwYCR5xuZDmMhOA + sessions-planstatusbar--long-task-name--light: + hash: v1.k4693efd2.1897f9112e3a5381c9ef3834b8e91ac4e17535e8ee44d4137b218b9a39bf1958.CQ-if7pKmW2jg-LF2yWKXcrbRXU_PdFAKtLaA7gokzI + sessions-planstatusbar--nearly-complete--dark: + hash: v1.k4693efd2.931b323e7c668d1827a74840e02e71a5b29bbf4761a97f59cb5df3c59bfd516a.fldm8csHz-05X5oiHo0j7mgbX6K0MEIsBKz-vkXpN0w + sessions-planstatusbar--nearly-complete--light: + hash: v1.k4693efd2.158e305b95790992ca1ce452351b822885e0d23e087dc818ecece267c28a2c56.cO2GMvLfMk5aljMcI_hLHjle2Exh37uTJ4i9a_ww5F4 + sessions-planstatusbar--no-plan--dark: + hash: v1.k4693efd2.5114bd6770b3f496dd3fdfa1537a3d00a05703d08afc2c16259015d402762346.pOxW3_LYM8RQazUb45ILOSq0KI-SZpy981SNNDPBVoM + sessions-planstatusbar--no-plan--light: + hash: v1.k4693efd2.669d667a271ed2c60877c189d9eed7735b08d5e032629f6e780fc82612c3225d.5n9Sb14Zg72VDLhID4KVvTaqVVHK4QZ4WDtrrMdxmWg + sessions-planstatusbar--with-failure--dark: + hash: v1.k4693efd2.76780328b8800015447f0a7f87e651dd9daf1c52cccff8de6bf987f6d1e6aac2.mT5cibAbLv855Xcf0176AXpC9WVpjdvyFCbjBxCXCNQ + sessions-planstatusbar--with-failure--light: + hash: v1.k4693efd2.b9a42c5ef0245e8dc69f20911617ad4d7292fd444d0d2323c9243fbe48fe60f2.Gwj-_LccAwcztpL22ey7QVdHvw0vJwFmZCiaG5UGKlM + sessions-sessionfooter--awaiting-permission-at-narrow-widths--dark: + hash: v1.k4693efd2.75fe6880bb29bfb21b4f7e5deeaf6cad9a82bfdb25142173e94e0e3d3eb77097.3JNxvqv7w3HNJ4zOVsHLOauZ4BRHhz2tpmsqJin9Zzw + sessions-sessionfooter--awaiting-permission-at-narrow-widths--light: + hash: v1.k4693efd2.10853ff1b39485d47ff35290c5315e05fe6b4bf2d721b512f996609fc28dbbbf.xTcmYqR4y_ylikxi2t_cACOCMkEX467iWwfK5AS5Zqs + sessions-sessionfooter--generating-at-narrow-widths--dark: + hash: v1.k4693efd2.d500f77602c4b24f92a3953f6027c25e05250c49b71c0cf084e6e4f82b3cec0d.aVdsF1ynfPO7RT-LFMYlHBWWaT-vfSule10ZNKcQ1W8 + sessions-sessionfooter--generating-at-narrow-widths--light: + hash: v1.k4693efd2.3f5691d66f9f8bd63fdead97b354251e23952e2d552580ef7aa526014bcea5a8.16-4tKohL88AU9zg2LLRimcy04aRpjBOPqgkmL5SbTs + sessions-sessionfooter--generating-with-queue-at-narrow-widths--dark: + hash: v1.k4693efd2.3355f0215012860b06448a17e8b1be8170682b8fe733a30b5f811201e726c3f3.VfnpSnFx0_D81mebzxW6fLWruH10-QnA1dgkxScG0kQ + sessions-sessionfooter--generating-with-queue-at-narrow-widths--light: + hash: v1.k4693efd2.0b6ca5c26d6133e1ee10d3a8549a970cc8cfff5b1bd7c225977af697c57d0ad6.-Izyhumu6ZimhlT4pARCC3PfNB94zd7nJP758fb43qY + sessions-sessionfooter--idle-at-narrow-widths--dark: + hash: v1.k4693efd2.f1e3cb850e2965003b9a22f7f3b58b8561a098b95e4657e71350b3811d70cff9.uFvMeRb4PHCK0OxTTCM-LZvomRJP2mJSuXRsZ2q3rFk + sessions-sessionfooter--idle-at-narrow-widths--light: + hash: v1.k4693efd2.7c14d7139c5b85a3681a4cbdcd3167a28d5f8ebe4497402c0a49b280778ef84c.q-Jn45vDc8hy8cCigiFGedeetpBZLX91UdO6Hcr4KSM + sessions-sessionresourcesbar--at-chip-limit--dark: + hash: v1.k4693efd2.3cc737da173cda1231aad0325350c7401f03c8ceaf9ff44df0322e9988121c2f.HJTVkhIPcuN41IqGVs84bBBDNNQlVmEw51TNQ16sTd8 + sessions-sessionresourcesbar--at-chip-limit--light: + hash: v1.k4693efd2.c7ea40999a6a4424463c1742a71e29c04f124468b0739dee464d8907627487ee.9dewUU0W9p2uSnJ6Ahyai8NX4hMKTCKf_lokFg9eUlQ + sessions-sessionresourcesbar--few-resources--dark: + hash: v1.k4693efd2.02363d55152d82a89a2e586a023b889c4e884294c9a87f1bd1b5e3263e4cc267.SJSTBgsLPoz-AhOqcJI1Dx9FOQuXxNnDNJQTCjPTch8 + sessions-sessionresourcesbar--few-resources--light: + hash: v1.k4693efd2.cbe10ac18089d19df675eb35d8c2d40656a12af3b07eb47da8b4b1f9e59141b0.ygZfU79gHq21BlTyGB6zUaMRT5sGgiyjeZn6DZ14avA + sessions-sessionresourcesbar--narrow-container--dark: + hash: v1.k4693efd2.ecccc39e6e7123ea54f88a24c0b2e47bcea8e887cc91d44d878a59a04ae57eca.UF-Egg3gpMwUuSK7fdfUbJNDR4gOmsc4DOUrMdw3-W8 + sessions-sessionresourcesbar--narrow-container--light: + hash: v1.k4693efd2.00e8e87df91490fa4e97e620987e1e5d36952ad47bbe07f1c0038c66209d6b59.wUM6a3eqRySsBNIfv9gqNgdxgr9MBdnG6m-nuywt618 + sessions-sessionresourcesbar--no-resources--dark: + hash: v1.k4693efd2.5114bd6770b3f496dd3fdfa1537a3d00a05703d08afc2c16259015d402762346.oslNft5-WtH0X3QJHsu7PrKNd3H_uDY4H1GLj4PC0qg + sessions-sessionresourcesbar--no-resources--light: + hash: v1.k4693efd2.669d667a271ed2c60877c189d9eed7735b08d5e032629f6e780fc82612c3225d.Tw9UbYmwWcpJUfZi9TbfM7DRvlkClgMv78kDfDeW2bY + sessions-sessionresourcesbar--overflow-collapsed--dark: + hash: v1.k4693efd2.85762bb20b689600949f4d9bc7cf03977944170e867de92abd05b3ec1018d9b8.DzAve8hBNe7Y2A2PKk2siDA_asT2g7u3skCKisc1T8U + sessions-sessionresourcesbar--overflow-collapsed--light: + hash: v1.k4693efd2.c803a7c06dbeeb5baf66f1466e6d86a751c776cdfb6c53ccd13b7c964ce6ad4b.enSn7-fQEg3CdOhyvEcQRho0OVm4XOeLmHz5rG3TXdM + sessions-sessionresourcesbar--with-non-clickable-chip--dark: + hash: v1.k4693efd2.652a862f983b5a26fdae2db7ddbeb3a010b40c6aa60838b3d78b1e5bfb34461a.9lntiWhIQkA0nsv4Gv_lCuuaMRv3AT-iSRtLI4_Cmqc + sessions-sessionresourcesbar--with-non-clickable-chip--light: + hash: v1.k4693efd2.078d4821b28831de54cba9c531d9985735a4860b4a5ebbe91e4e4ed25777c9e8.YUdnyHcXhnJ14FbUyBQzQysd6QVAwACJ9b_PO4UyBeQ + settings-personalizationsettings--default--dark: + hash: v1.k4693efd2.83f056d4ca47fa1c4b73848fa2fc5347e9f11511deb8a0fe901df03798d7784b.K4R_ibHfGDOhnHGKn0NqsozWJyjmu6s16QCCzuyUybY + settings-personalizationsettings--default--light: + hash: v1.k4693efd2.5cc30041b20b44ea218fda1b09cd66594cb77a4bd224528b31b6afff333b7513.EncxtA0q6hu_jocSzhF6YrRBingpEzlvdENw9v85Ky4 + settings-personalizationsettings--empty--dark: + hash: v1.k4693efd2.af258feeda254c738f6136562f03679a0ac6e3999386e8dd705b2f9f4621c024.rYzr287qR8Yae-1izLW1HPL49YsCUmc1sL-cw2-NcAY + settings-personalizationsettings--empty--light: + hash: v1.k4693efd2.e435060b15870be2e914062be06e3b494ae018c957786c1a8208d0953ab45958.pRf9CkaNWy9LRL1ruj2xsgTyJ1rSZwFru62jLP502iY + settings-personalizationsettings--sync-on-no-file-found--dark: + hash: v1.k4693efd2.bf72323744dbc334bb3f01a91595faa334b69581f4dad70dc826eb02106e6e22.Rc2hNjnCCkuveCJ6ZdXFNwdNIFGvS5vKiX1ZRTaqknE + settings-personalizationsettings--sync-on-no-file-found--light: + hash: v1.k4693efd2.8a35647775e157dd381c9cfc651c97d56137890ad5139b14582a3453751894bd.uNj0W2NVDHuD_YuO5W-f-xYkVgybb9R-RodwPhcZ3Nk + settings-personalizationsettings--synced-from-agents-md--dark: + hash: v1.k4693efd2.229b092fc82669df01514d90febf3ac4c63d72fd9dfd5d43ee14aacddb0a8385.SGVEZQnOFo5x5gX6FfO27R2KkZ2ibAo3EFPlBaeimX4 + settings-personalizationsettings--synced-from-agents-md--light: + hash: v1.k4693efd2.4525488baf0939ee36d45f148aef8cb87efdcf73b5aca1be9583c344d7ec994c.2dx9J5Nmt8DQM-Zgnd78sJC_9MTr9XF0t18j904jeTY + settings-personalizationsettings--synced-from-claude-md--dark: + hash: v1.k4693efd2.9d8917b42a096cfe973b0bd0f7322a2e5cae444d4d1d83debe9983995b6fdcea.U0nIRH2YRvqOgP5fK6X8v_zVf8ZtETSo9-9oB-ocO1E + settings-personalizationsettings--synced-from-claude-md--light: + hash: v1.k4693efd2.2c81bc852e8489f43ee751098847d5eb3e5b8bc035685036b70b38f992e0493d.THR8oEEroXpc00lRWC7xYiVnV5DCBmksJQ2MjFmHzQI + settings-personalizationsettings--synced-truncated--dark: + hash: v1.k4693efd2.e01a8a548c694761b9f2a575268f420f653ad7eb9d26c2e33dc245ab03415fcf.Z5Ut_gF62xXnxkDgBXxE3yk6UDIAEVX5Sw_rKBPsqps + settings-personalizationsettings--synced-truncated--light: + hash: v1.k4693efd2.3c9f0dfa759b8c174abd8754593f0db9fd1518ff5225cccdcf0c3e83d4cdbe77.BqdmyuIiYJuGmHCQiRVAaBMk-xgycYOgVfwuMqma4LY + skill-buttons-skillbuttonactionmessage--add-analytics--dark: + hash: v1.k4693efd2.6d4ce4fac8e23a50efbbfaf24c2e11f8981f6778af2bfb2ca559749d7bda0eca.OnypKY5jyJSbQUZtTVcUy-eXC2euU-xQ2wFBYJOsKwI + skill-buttons-skillbuttonactionmessage--add-analytics--light: + hash: v1.k4693efd2.f9611d356ec29fdbeaa559fd1fad74ef5240edf099ca6b0c98bb000c8ecebb99.kLrb06q55BNiaXt5IiOa5GMJnSBLEE2XpPlzFclgkyc + skill-buttons-skillbuttonactionmessage--add-error-tracking--dark: + hash: v1.k4693efd2.4d3fb8903585f88035fe7f11bd131fb5469b1bcfa56e850fc872a90965b9a9a8.8wlRUb95tyzSof7imJ7zs_y03dvbRmH4WFjX541w5HE + skill-buttons-skillbuttonactionmessage--add-error-tracking--light: + hash: v1.k4693efd2.cfebda50da261d92f05d65771b89733969966491eae709a7ad0985af7d92b2af.cJib8NTQeUDwiCFGyKZZrzOkYB6wZpzj2lQTKoCoX2M + skill-buttons-skillbuttonactionmessage--add-logging--dark: + hash: v1.k4693efd2.0683c4cb4d3758ccfb3070a73e3f388624949cf359ff5e236e7f644bf8149ebd.nbHO3MGaY0eezUGvbSffJ2mWnwYGcv_Ls5Ftd7TamFc + skill-buttons-skillbuttonactionmessage--add-logging--light: + hash: v1.k4693efd2.089572e8d90c2ce17d03eb0d1f4028f28b0b106c262ffb5aa176efc67aac6961.aE-7mciin1bJeXhS3NO9MIdbA7p1V2yv7I9_av5qiuk + skill-buttons-skillbuttonactionmessage--create-feature-flag--dark: + hash: v1.k4693efd2.9e76cce0670827af38126d82091a1ddbff6fa46851eb5282307562828f33fffe.dLGLJgQ0h7Qbea4TkB_10bM1S7YhP7MtLWly5a8w8pI + skill-buttons-skillbuttonactionmessage--create-feature-flag--light: + hash: v1.k4693efd2.1816aed1a5153e40d66db8ded2823492fb2c6a2119e9dafc2e3e28b78efc0cd3.pWhUy7sCTfgQ-9SOY7Otzb21YPkdPalRmF1LpFaCE7o + skill-buttons-skillbuttonactionmessage--instrument-llm-calls--dark: + hash: v1.k4693efd2.45cd285f3dde88ec3a42d6124267f8b4927d6241ec5e6a32531d6c4d25f62fe4.6KVWQAustG4YSrWUwC8fT6PTTf8s6cRLqOicWuSD61g + skill-buttons-skillbuttonactionmessage--instrument-llm-calls--light: + hash: v1.k4693efd2.7c401e13f085e5fda6fe8b175bea7aba836e35d72ace33fa425893ad703ba874.uKLTlUu1eQrQQ_AroVKlbzvm7W10tJ1O_RqyxSg1aTQ + skill-buttons-skillbuttonactionmessage--run-experiment--dark: + hash: v1.k4693efd2.e747a3b5d0983a7a125335f1d95cc7735dafda73abdb3f63ccfadde0482c5ce9.tjc4lMKeaOJjLLxd9tivmgKLshzHZwuSAa_MbqwN_20 + skill-buttons-skillbuttonactionmessage--run-experiment--light: + hash: v1.k4693efd2.c18264887c67224ea1196646ff27f31ef9d79add87b5e9dfead377fcaf0dc941.MwzR7Yyd4le31Qm7RB2yk-qLk5ujgLkN-cMAB2WQ9_k + skill-buttons-skillbuttonsmenu--default--dark: + hash: v1.k4693efd2.cfff4c6bbb0acef1c9941b21d2f69c24b234c2c206282acf6fcada0cb2bd2386.xILjVPp8ecQmGbPjGDdhbRyi9KFPpA_1nfYF3bfjwuc + skill-buttons-skillbuttonsmenu--default--light: + hash: v1.k4693efd2.eb9bd49b9700641f6f3c90653447c9767c52e997afec9843e8649b90752faad3.VdxEtBwtkU3ioy2evcNbrEKxPjQ1GDUpZAQzFe-Uho4 + task-detail-continueclisessions--importing--dark: + hash: v1.k4693efd2.3196e21b9daa2f183c79eaf2c70a5775365dbee3f1d920c64927e20a0fadcbf9.FjHhjEX3urGbycQiDehA9JQ7H2zfyl1id9rDSVjrtoI + task-detail-continueclisessions--importing--light: + hash: v1.k4693efd2.11ecdd21f0f0d80007b614aa42e5efc68479868b87b06199fe2c1e97064237cc.SQohxscxWoa9cWEFYFKwywS707yhjRF7Lb41ZYlpkOk + task-detail-continueclisessions--long-title--dark: + hash: v1.k4693efd2.4ff4e6c6685de8993e661fadda75006b18238c25d9ecf902e2451b080bda202e.Xwpt4PUCWN7MP1oD559QlTGjojYCxdBp5P9MLlzBlpE + task-detail-continueclisessions--long-title--light: + hash: v1.k4693efd2.099e9b48723e2e1afa0a7bff5f7d8511dd0a52978932f0347bb5113c5d559465.ryERLuaobcpmavCv0tsy3IZ2Rq7scSgQqVdONQOxLrE + task-detail-continueclisessions--no-branch--dark: + hash: v1.k4693efd2.2a25569c076f9bc85e6f4aa934975b3a97d19f52d3320d2ed27544f418d4cde7.H_ghi40v2PcXttMS3ETgBTc1iSOnqpvlssVm8wR2ihw + task-detail-continueclisessions--no-branch--light: + hash: v1.k4693efd2.14b51a1002a3d11165d80468b44be045a74d81714cdef4f60fcabaaf1c11baa9.FU7stQ1PgibzZQqcO2un07XRs8xMYbyRtlgED0W_d2E + task-detail-continueclisessions--one-session--dark: + hash: v1.k4693efd2.0271951daddbb5dd4aaeb3a9f1bf8d8a0736a8aff53e73a87f9b4f0ba61fa447.adaO7eTCnXRZbBruGaT81MJBa-hgOyBl0TQFlSC7oWc + task-detail-continueclisessions--one-session--light: + hash: v1.k4693efd2.f4b6b541ee5d93704f8ddf8c48b5bd0e376f15e5bffddc865d002382f0f6c509.Lw6AblZWQf9TFnweJYKlgVsCwu-wBeRdGqMAkCn3Mak + task-detail-continueclisessions--picker--dark: + hash: v1.k4693efd2.081e82ea1fc1d7d55a2a3b8573590c4335b037db7cfbb51f7db3ba15c46f3a04.4yTdWmvMc4lxMn5rnZqJeaMTb8jvhIksqWoLGrqQE1M + task-detail-continueclisessions--picker--light: + hash: v1.k4693efd2.62b9547edae6b88020af8e32f0bc9399d7f73db13b49d7170973ead6d2810da7.yGWyK_bX9rGGo4--rDXt72ZH046SsAjwjvZ7-OcggrU + task-detail-continueclisessions--title-from-prompt--dark: + hash: v1.k4693efd2.6f08f857f84989f52c0867f203c24426245825ca945d8e244a2056bb61b497ed.wucqOtQYSvJpUVc2oUXDOpEYmhkBFovEibK9Wr1bLJo + task-detail-continueclisessions--title-from-prompt--light: + hash: v1.k4693efd2.6359d45c9bbe7331866abb9e90b4393f38fdbd5eb75edefee05145f1b1b54e42.LrPTKO8qf6Qq_ucAZsO16a38u1rkUBsntCKAIrGAcZU + task-detail-continueclisessions--untitled--dark: + hash: v1.k4693efd2.237390b10bb5597862d49357c4b354129d42ecdc2a8b21896d24d0b8b8a4852a.qt4xTxmmYTOuHthgAJKz02EuVBKdNwxit42rS3Ny9Cs + task-detail-continueclisessions--untitled--light: + hash: v1.k4693efd2.85ddf140f470c4da98e5fd9afd8527fa0eaf593b971883cf69c77bed293a8a52.Bs5V2UV96kqnP-KMe7b8juqM9kQWwcYoyNq_9sBX52A + task-detail-continueclisessions--with-archive--dark: + hash: v1.k4693efd2.4d2d3aa1452d851768ae09438767486175684ff7f91f8fd5ed446b6c9c03cc94.dfTymldhuTaLFHMKHIMapNCGHLlol6INMiLmGeC_rOM + task-detail-continueclisessions--with-archive--light: + hash: v1.k4693efd2.5d88aee448dabadfbfeaff0d6e8b619ed5affc8b3a05cb2d6be7b3eeb08132ab.v_Zh8n2g5lv3pZWg-4EHVL7sU3ORFU12hJjxzgtWh9Q + task-detail-continueclisessions--with-other-suggestions--dark: + hash: v1.k4693efd2.3de78693fa59fa0d89b06635d4e11f73d531b72266e47b8a1b22559398879cca.ffWnGUqCC5JJnBWXr2xlAEPL37WjfPcJi9NO0-Q1K4U + task-detail-continueclisessions--with-other-suggestions--light: + hash: v1.k4693efd2.7e97ce5df7f65b3c0d37af8466700405814e58e7a4fee5f22248f626b494a63e.sK4-cumSbo6xXGN6Nbk25qnKhYIELb-RWxrkeH-g3gM diff --git a/apps/code/test-runner-globals.js b/apps/code/test-runner-globals.js new file mode 100644 index 0000000000..3e47f9a02a --- /dev/null +++ b/apps/code/test-runner-globals.js @@ -0,0 +1,4 @@ +// Storybook 10 loads .storybook/test-runner.ts via its own serverRequire, +// outside Jest's module scope, so the injected `jest` object must be exposed +// on globalThis for the test-runner config's setup() hook to reach it. +globalThis.jest = jest; diff --git a/apps/code/test-runner-jest-environment.mjs b/apps/code/test-runner-jest-environment.mjs new file mode 100644 index 0000000000..c81a043df2 --- /dev/null +++ b/apps/code/test-runner-jest-environment.mjs @@ -0,0 +1,32 @@ +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import BaseEnvironment from "@storybook/test-runner/playwright/custom-environment.js"; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const FAILURES_DIR = path.join( + __dirname, + ".storybook", + "__snapshots__", + "__failures__", +); + +/** Captures a full-page screenshot when a story test fails, for CI artifact upload. */ +class CustomEnvironment extends BaseEnvironment { + async handleTestEvent(event, state) { + if (event.name === "test_done" && event.test.errors.length > 0) { + const parentName = event.test.parent.name + .replace(/\W+/g, "-") + .toLowerCase(); + const specName = event.test.name.replace(/\W+/g, "-").toLowerCase(); + await this.global.page + .screenshot({ + path: path.join(FAILURES_DIR, `${parentName}--${specName}.png`), + timeout: 5000, + }) + .catch(() => undefined); + } + await super.handleTestEvent(event, state); + } +} + +export default CustomEnvironment; diff --git a/apps/code/test-runner-jest.config.js b/apps/code/test-runner-jest.config.js new file mode 100644 index 0000000000..e34e6516fb --- /dev/null +++ b/apps/code/test-runner-jest.config.js @@ -0,0 +1,18 @@ +const path = require("node:path"); +const { getJestConfig } = require("@storybook/test-runner"); + +const baseConfig = getJestConfig(); + +module.exports = { + ...baseConfig, + forceExit: true, + // test-runner-globals.js must come first: Storybook 10 loads test-runner.ts + // outside Jest's module scope, so `jest` has to be reachable via globalThis + // for setup() to call jest.retryTimes / jest.setTimeout. + setupFilesAfterEnv: [ + path.resolve(__dirname, "test-runner-globals.js"), + ...(baseConfig.setupFilesAfterEnv ?? []), + ], + testTimeout: 60000, + testEnvironment: path.resolve(__dirname, "test-runner-jest-environment.mjs"), +}; diff --git a/docs/testing.md b/docs/testing.md index bf9ec05bec..b178a3714a 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -189,6 +189,46 @@ agent-browser snapshot -i # then click/type/screenshot This drives whatever profile is signed into `~/.posthog-code`; do not mutate production data while exploring. See the `test-electron-app` skill. +## Storybook Visual Regression + +Every story is screenshot in Chromium in both themes (`--dark.png` and `--light.png`) using `@storybook/test-runner`, following posthog/posthog's setup. The harness lives in `apps/code/.storybook/test-runner.ts`. + +PNGs are never committed. The `Storybook visual regression` workflow captures every story and submits the images to the [PostHog Visual Review product](https://us.posthog.com/project/2/visual_review) via the `vr` CLI (built from posthog/posthog). VR diffs against the signed hash manifest committed at `apps/code/snapshots.yml`, posts the result on the PR, and — once a human approves the changes in the VR UI — commits the updated manifest back to the PR branch. The next run then matches and goes green. + +One-time setup (not yet done — the vr step no-ops until it is): + +1. Register `PostHog/code` as a repo in Visual Review settings (project 2 on us.posthog.com); this mints the repo UUID. +2. Create a PostHog personal API key with the `visual_review` scope and store it as the `VR_API_TOKEN` Actions secret on this repo. +3. Commit the seeded baseline at `apps/code/snapshots.yml`: + + ```yaml + version: 1 + config: + api: https://us.posthog.com + team: "2" + repo: + snapshots: {} + ``` + +Run locally to debug a story before pushing (local PNGs are gitignored): + +```bash +pnpm --filter code build-storybook +cd apps/code && pnpm exec http-server storybook-static --port 6006 --silent & +pnpm --filter code test:visual:update # capture; rerun with test:visual to spot local flakiness +``` + +Per-story control via story parameters (see the typing in `test-runner.ts`): + +- `testOptions.viewport` — viewport size (default 1280x720) +- `testOptions.waitForSelector` — extra readiness selector(s) +- `testOptions.waitForLoadersToDisappear` — default `true`, waits out quill spinners/skeletons +- `testOptions.snapshotTargetSelector` — screenshot a specific element +- `testOptions.themes` — limit to `["dark"]` or `["light"]` +- `tags: ["test-skip"]` — skip snapshots for a story + +Stories must render deterministically: the preview freezes the clock (`mockdate`) and seeds `Math.random` per render when running under the test runner, but story fixtures should still use fixed dates and stable data. + ## Boundary Checks After touching `@posthog/platform`, rebuild or typecheck its `dist/` before relying on downstream typechecks. diff --git a/packages/ui/src/features/autoresearch/AutoresearchFullDashboard.stories.tsx b/packages/ui/src/features/autoresearch/AutoresearchFullDashboard.stories.tsx index 8931d1cde0..54aa83c194 100644 --- a/packages/ui/src/features/autoresearch/AutoresearchFullDashboard.stories.tsx +++ b/packages/ui/src/features/autoresearch/AutoresearchFullDashboard.stories.tsx @@ -35,7 +35,10 @@ interface FullDashboardStoryProps { approach: string; } -const STORY_NOW = Date.now(); +// Fixed date: module-scope fixtures evaluate at import time, before the +// visual-regression clock freeze, so wall-clock times here would make the +// rendered Time column drift between snapshot runs. +const STORY_NOW = new Date("2026-07-01T10:30:00Z").getTime(); const STARTED_AT = STORY_NOW - 26 * 60_000; function FullDashboardStory(props: FullDashboardStoryProps) { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9321cf92e6..c870173fc6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -213,7 +213,7 @@ importers: version: 5.101.0(react@19.2.6) '@tanstack/router-plugin': specifier: ^1.168.13 - version: 1.168.18(@tanstack/react-router@1.170.15(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.0(esbuild@0.27.2)) + version: 1.168.18(@tanstack/react-router@1.170.15(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.0(@swc/core@1.15.43)(esbuild@0.27.2)) '@trpc/client': specifier: ^11.17.0 version: 11.17.0(@trpc/server@11.17.0(typescript@5.9.3))(typescript@5.9.3) @@ -279,7 +279,7 @@ importers: version: 1.1.0(patch_hash=4dfdf785f5ac51a03f5d6032371cebe89036381acd403621f250a896245647c5) posthog-node: specifier: ^5.35.6 - version: 5.37.0 + version: 5.37.0(rxjs@7.8.2) radix-themes-tw: specifier: 0.2.3 version: 0.2.3 @@ -331,10 +331,13 @@ importers: version: 10.4.1(storybook@10.4.1(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)) '@storybook/addon-docs': specifier: 10.4.1 - version: 10.4.1(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(esbuild@0.27.2)(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0))(rollup@4.57.1)(storybook@10.4.1(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(webpack@5.105.0(esbuild@0.27.2)) + version: 10.4.1(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(esbuild@0.27.2)(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0))(rollup@4.57.1)(storybook@10.4.1(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(webpack@5.105.0(@swc/core@1.15.43)(esbuild@0.27.2)) '@storybook/react-vite': specifier: 10.4.1 - version: 10.4.1(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(esbuild@0.27.2)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0))(rollup@4.57.1)(storybook@10.4.1(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@5.9.3)(webpack@5.105.0(esbuild@0.27.2)) + version: 10.4.1(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(esbuild@0.27.2)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0))(rollup@4.57.1)(storybook@10.4.1(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@5.9.3)(webpack@5.105.0(@swc/core@1.15.43)(esbuild@0.27.2)) + '@storybook/test-runner': + specifier: ^0.24.4 + version: 0.24.4(@types/node@24.12.0)(esbuild-register@3.6.0(esbuild@0.27.2))(storybook@10.4.1(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)) '@tanstack/devtools-vite': specifier: ^0.8.1 version: 0.8.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0)) @@ -353,6 +356,9 @@ importers: '@types/canvas-confetti': specifier: ^1.9.0 version: 1.9.0 + '@types/jest-image-snapshot': + specifier: ^6.4.1 + version: 6.4.1 '@types/node': specifier: ^24.0.0 version: 24.12.0 @@ -382,10 +388,16 @@ importers: version: 26.15.3(electron-builder-squirrel-windows@26.15.3) electron-vite: specifier: ^4.0.1 - version: 4.0.1(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.0.1(@swc/core@1.15.43)(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0)) + http-server: + specifier: ^14.1.1 + version: 14.1.1 husky: specifier: ^9.1.7 version: 9.1.7 + jest-image-snapshot: + specifier: ^6.5.2 + version: 6.5.2(jest@30.4.2(@types/node@24.12.0)(esbuild-register@3.6.0(esbuild@0.27.2))) jimp: specifier: ^1.6.1 version: 1.6.1 @@ -398,6 +410,12 @@ importers: memfs: specifier: ^4.57.3 version: 4.57.7(tslib@2.8.1) + mockdate: + specifier: ^3.0.5 + version: 3.0.5 + pathe: + specifier: ^2.0.3 + version: 2.0.3 postcss: specifier: ^8.5.15 version: 8.5.15 @@ -425,6 +443,9 @@ importers: vitest: specifier: ^4.1.8 version: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@24.12.0)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.8)(jsdom@26.1.0)(msw@2.12.8(@types/node@24.12.0)(typescript@5.9.3))(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0)) + wait-on: + specifier: ^7.2.0 + version: 7.2.0 yaml: specifier: ^2.9.0 version: 2.9.0 @@ -517,7 +538,7 @@ importers: version: 0.32.17(expo@54.0.33)(react-native@0.81.5(@babel/core@7.29.0)(@types/react@19.2.17)(react@19.2.6))(react@19.2.6) expo-router: specifier: ~6.0.17 - version: 6.0.23(5e0e884ce94c85b7fc2691a6f9754827) + version: 6.0.23(d7377593e8774c4353274c7599e842cf) expo-secure-store: specifier: ^15.0.8 version: 15.0.8(expo@54.0.33) @@ -584,7 +605,7 @@ importers: devDependencies: '@testing-library/react-native': specifier: ^13.3.3 - version: 13.3.3(react-native@0.81.5(@babel/core@7.29.0)(@types/react@19.2.17)(react@19.2.6))(react-test-renderer@19.2.6(react@19.2.6))(react@19.2.6) + version: 13.3.3(jest@30.4.2(@types/node@25.2.0)(esbuild-register@3.6.0(esbuild@0.27.2)))(react-native@0.81.5(@babel/core@7.29.0)(@types/react@19.2.17)(react@19.2.6))(react-test-renderer@19.2.6(react@19.2.6))(react@19.2.6) '@types/react': specifier: ^19.2.0 version: 19.2.17 @@ -769,7 +790,7 @@ importers: version: 2.12.8(@types/node@25.2.0)(typescript@5.9.3) tsup: specifier: ^8.5.1 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.15)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(@swc/core@1.15.43)(jiti@2.7.0)(postcss@8.5.15)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) tsx: specifier: ^4.20.6 version: 4.21.0 @@ -926,7 +947,7 @@ importers: version: 0.26.8 tsup: specifier: ^8.5.1 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.15)(tsx@4.22.4)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(@swc/core@1.15.43)(jiti@2.7.0)(postcss@8.5.15)(tsx@4.22.4)(typescript@5.9.3)(yaml@2.9.0) typescript: specifier: ^5.5.0 version: 5.9.3 @@ -991,7 +1012,7 @@ importers: version: 5.0.6 tsup: specifier: ^8.5.1 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.15)(tsx@4.22.4)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(@swc/core@1.15.43)(jiti@2.7.0)(postcss@8.5.15)(tsx@4.22.4)(typescript@5.9.3)(yaml@2.9.0) typescript: specifier: ^5.5.0 version: 5.9.3 @@ -1074,7 +1095,7 @@ importers: devDependencies: tsup: specifier: ^8.5.1 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.15)(tsx@4.22.4)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(@swc/core@1.15.43)(jiti@2.7.0)(postcss@8.5.15)(tsx@4.22.4)(typescript@5.9.3)(yaml@2.9.0) typescript: specifier: ^5.5.0 version: 5.9.3 @@ -1090,7 +1111,7 @@ importers: version: 0.19.0(zod@4.4.3) tsup: specifier: ^8.5.1 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.15)(tsx@4.22.4)(typescript@5.9.3)(yaml@2.9.0) + version: 8.5.1(@swc/core@1.15.43)(jiti@2.7.0)(postcss@8.5.15)(tsx@4.22.4)(typescript@5.9.3)(yaml@2.9.0) typescript: specifier: ^5.5.0 version: 5.9.3 @@ -1570,7 +1591,7 @@ importers: dependencies: tsup: specifier: 'catalog:' - version: 8.5.1(jiti@2.7.0)(postcss@8.5.15)(tsx@4.22.4)(typescript@6.0.3)(yaml@2.9.0) + version: 8.5.1(@swc/core@1.15.43)(jiti@2.7.0)(postcss@8.5.15)(tsx@4.22.4)(typescript@6.0.3)(yaml@2.9.0) tooling/typescript: {} @@ -2446,6 +2467,9 @@ packages: '@types/react': optional: true + '@bcoe/v8-coverage@0.2.3': + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + '@bcoe/v8-coverage@1.0.2': resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} engines: {node: '>=18'} @@ -3541,6 +3565,12 @@ packages: '@modelcontextprotocol/sdk': optional: true + '@hapi/hoek@9.3.0': + resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} + + '@hapi/topo@5.1.0': + resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + '@hono/node-server@1.19.9': resolution: {integrity: sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw==} engines: {node: '>=18.14.1'} @@ -3650,6 +3680,10 @@ packages: resolution: {integrity: sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==} engines: {node: 20 || >=22} + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + '@isaacs/fs-minipass@4.0.1': resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} @@ -3666,10 +3700,27 @@ packages: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} + '@jest/console@30.4.1': + resolution: {integrity: sha512-v3bhyxUh9Hgmo5p6hAOXe14/R3ZxZDOsvHleh4B07z3m/x4/ngPUXEm9XwK4sF4u+f+P2ORb0Ge+MgpaqRMVDA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/core@30.4.2': + resolution: {integrity: sha512-TZJA6cPJUFxoWhxaLo8t0VX/MZX2wPWr0uIDvLSHIvN4gu9h02vSzqI2kBADG1ExqQlC+cY09xKMSreivvrChQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + '@jest/create-cache-key-function@29.7.0': resolution: {integrity: sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/create-cache-key-function@30.4.1': + resolution: {integrity: sha512-R+xGEtzA95NIsvpXJSROG4t01956dDOt17KpamguY4XOnGvdHNFFXE7Er0C1OAsRjOwiIxpKqOvGlznIGZIQlQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/diff-sequences@30.4.0': resolution: {integrity: sha512-zOpzlfUs45l6u7jm39qr87JCHUDsaeCtvL+kQe/Vn9jSnRB4/5IPXISm0h9I1vZW/o00Kn4UTJ2MOlhnUGwv3g==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} @@ -3678,14 +3729,47 @@ packages: resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/environment@30.4.1': + resolution: {integrity: sha512-AK9yNRqgKxiabqMoe4oW+3/TSSeV8vkdC7BGaxZdU0AFXfOpofTLqdru2GXKZghP3sdgwE9XXpnVwfZ8JnFV4w==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/expect-utils@30.4.1': + resolution: {integrity: sha512-ZBn5CglH8fBsQsvs4VWNzD4aWfUYks+IdOOQU3MEK71ol/BcVm+P+rtb1KpiFBpSWSCE27uOahyyf1vfqOVbcQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/expect@30.4.1': + resolution: {integrity: sha512-ginrj6TMgh2GshLUGCjO94Ptx9HhdZA/I6A9iUfyeLKFtdAjnKzHDgzgP9HYQgbxM1lbXScQ2eUBz2lGeVDPWA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/fake-timers@29.7.0': resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/fake-timers@30.4.1': + resolution: {integrity: sha512-iW5umdmfPeWzehrVhugFQZqCchSCud5S1l2YT0O9ZhjRR0ExclANDZkiSBwzqtnlOn0J1JXvO+HZ6rkuyOVOgQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/get-type@30.1.0': resolution: {integrity: sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/globals@30.4.1': + resolution: {integrity: sha512-ZbuY4cmXC8DkxYjfvT2DbcHWL2T6vmsMhXCDcmTB2T0y0gaezBI77ufq5ZAIdcRkYZ7NEQEDg1xFeKbxUJ5v5Q==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/pattern@30.4.0': + resolution: {integrity: sha512-RAWn3+f9u8BsHijKJ71uHcFp6vmyEt6VvoWXkl6hKF3qVIuWNmudVjg12DlBPGup/frIl5UcUlH5HfEuvHpEXg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/reporters@30.4.1': + resolution: {integrity: sha512-/SnkPCzEQpUaBH81kjdEdDdo2WZl5hxw+BmLDGWjRkm8o7XlhjwsU36cqwe5PGBE5WYpBvDzRSdXx9rbGuJtNA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + '@jest/schemas@29.6.3': resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3694,14 +3778,38 @@ packages: resolution: {integrity: sha512-i6b4qw5qnP8c5FEeBJg/uZQ4ddrkN6Ca8qISJh0pr7a5hfn3h3v5x60BEbOC7OYAGZNMs1LfFLwnW2CuK8F57Q==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/snapshot-utils@30.4.1': + resolution: {integrity: sha512-ObY4ljvQ95mt6iwKtVLetR/4yXiAgl3H4nJxhztr0MTjrN97TwDYrnCp/kF60Ec9HdhkWTHSu+Hg05aXfngpOA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/source-map@30.0.1': + resolution: {integrity: sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/test-result@30.4.1': + resolution: {integrity: sha512-/ZG7pgEiOmmWkN9TplKbOu4id2N5lh7FHwRwlkgBVAzGdRH+OkkQ8wX/kIxg4zmd3ZQvAL1RwL2yWsvNYYECTw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/test-sequencer@30.4.1': + resolution: {integrity: sha512-PeYE+4td5rKjoRPxztObrXU+H8hsjZfxKMXOcmrr34JerSyB/ROOxbbicz8B7A5j9R9VayDnVPvBmedqCsFCdw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/transform@29.7.0': resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/transform@30.4.1': + resolution: {integrity: sha512-Wz0LyktlTvRefoymh+n64hQ84KNXsRGcwdoZ8CSa0Ea+fgYcHZlnk+hDP7v2MS7il2bQ5uTEIxf4/NNfhMN4KQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/types@29.6.3': resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/types@30.4.1': + resolution: {integrity: sha512-f1x/vJXIfjOlEmejYpbkbgw1gOqpPECwMvMEtBqe47j7H2Hg8h8w3o3ikhSXq3MI15kg+oQ0exWO0uCtTNJLoQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jimp/core@1.6.1': resolution: {integrity: sha512-+BoKC5G6hkrSy501zcJ2EpfnllP+avPevcBfRcZe/CW+EwEfY6X1EZ8QWyT7NpDIvEEJb1fdJnMMfUnFkxmw9A==} engines: {node: '>=18'} @@ -5479,6 +5587,14 @@ packages: '@pixi/colord@2.9.6': resolution: {integrity: sha512-nezytU2pw587fQstUu1AsJZDVEynjskwOL+kibwcdxsMBFqPsFFNA7xl0ii/gXuDi6M0xj3mfRJj8pBSc2jCfA==} + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@pkgr/core@0.3.6': + resolution: {integrity: sha512-SEeaJLb3qBNF/OaXnaR1NmmBbFYk1zC0ZH/52fATcRPLFg/p791YrcyFFy44Bo9sLaGuSuLp5Q6axbb/O+v/RA==} + engines: {node: ^14.18.0 || >=16.0.0} + '@playwright/test@1.60.0': resolution: {integrity: sha512-O71yZIbAh/PxDMNGns37GHBIfrVkEVyn+AXyIa5dOTfb4/xNvRWV+Vv/NMbNCtODB/pO7vLlF2OTmMVLhmr7Ag==} engines: {node: '>=18'} @@ -6328,8 +6444,8 @@ packages: '@types/react-dom': optional: true - '@react-grab/cli@0.1.47': - resolution: {integrity: sha512-Cc7d8mSwvoV8gpeTQbE8dMPdeXIyO6w+yIhzgi3jY06i03WLNhb/6jIxNBNF1cVRI7ujnFQXZA66BbnBNTpBSw==} + '@react-grab/cli@0.1.48': + resolution: {integrity: sha512-KXRZFN0b78BeVa4Tq1FC9kiXPpC5lS4pQp/mvQ1azy9dZUJ3zfc7Ei84+yvGh+WoYdceMCFxXfBp6qhU/G056g==} hasBin: true '@react-native-async-storage/async-storage@2.2.0': @@ -6764,6 +6880,15 @@ packages: '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + '@sideway/address@4.1.5': + resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} + + '@sideway/formula@3.0.1': + resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} + + '@sideway/pinpoint@2.0.0': + resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + '@silvia-odwyer/photon-node@0.3.4': resolution: {integrity: sha512-bnly4BKB3KDTFxrUIcgCLbaeVVS8lrAkri1pEzskpmxu9MdfGQTy8b8EgcD83ywD3RPMsIulY8xJH5Awa+t9fA==} @@ -6793,6 +6918,9 @@ packages: '@sinonjs/fake-timers@10.3.0': resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + '@sinonjs/fake-timers@15.4.0': + resolution: {integrity: sha512-DsG+8/LscQIQg68J6Ef3dv10u6nVyetYn923s3/sus5eaGfTo1of5WMZSLf0UJc9KDuKPilPH0UDJCjvNbDNCA==} + '@smithy/core@3.26.0': resolution: {integrity: sha512-mLUktFAn+Pa2agl1J7VgtYNFWCX8/b4GMJSK1hCu4YCvtBfM6F8Os3EP4ry+DFFlXOf3wyvlgXhuUdFoy52D3g==} engines: {node: '>=18.0.0'} @@ -6925,6 +7053,13 @@ packages: typescript: optional: true + '@storybook/test-runner@0.24.4': + resolution: {integrity: sha512-xm04bba5N7QyHHc+wD4xmPZx0vKK/PIpmTFypy445HrWOj0nFK4pYg5dE6H4ppqMt7qZAnb5GfHTvBwJtywJ4A==} + engines: {node: '>=20.0.0'} + hasBin: true + peerDependencies: + storybook: ^0.0.0-0 || ^10.0.0 || ^10.0.0-0 || ^10.1.0-0 || ^10.2.0-0 || ^10.3.0-0 || ^10.4.0-0 || ^10.5.0-0 || ^10.6.0-0 + '@svgr/babel-plugin-add-jsx-attribute@8.0.0': resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} engines: {node: '>=14'} @@ -6999,6 +7134,105 @@ packages: peerDependencies: '@svgr/core': '*' + '@swc/core-darwin-arm64@1.15.43': + resolution: {integrity: sha512-v1aVuvXdo/BHxJzco9V2xpHrvwWmhfS8t6gziY5wJxd+Z2h8AeJRnAwPD8itCDaGXVBwJ/CaKfxEzTkG0Va0OA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/core-darwin-x64@1.15.43': + resolution: {integrity: sha512-lp3d4Lamc8dt5huYdGLSR+9hLxmfr1jb0l+4XXG2zPqZwYWRN9R0U2qYoTrggiU2RWW0oV9VbWM3kBnqIc2kdQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/core-linux-arm-gnueabihf@1.15.43': + resolution: {integrity: sha512-JWTQQELtsG5GgphDrr/XqqmM2pDN3cZqbMS0Mrg+iTiXL3F74sn/S2IyYE/5u4h2KLkTf9qQ7dXyxsbx7YzkeA==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/core-linux-arm64-gnu@1.15.43': + resolution: {integrity: sha512-B4otJRdPWIsmiSBf0uG7Z/+vMWmkufjz5MmYxubwKuZazDW14Zd3symga1N62QR4RT+kEFeHEgsXfZGyn/w0hw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@swc/core-linux-arm64-musl@1.15.43': + resolution: {integrity: sha512-6zB6OnpViBxYy4tgY3v2i6AZY9fwkcHZ032UOwtwUuW1d19sdT07qF0kZe6/3UR1tUaK6jjg2rmVcUIBCEYVjQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@swc/core-linux-ppc64-gnu@1.15.43': + resolution: {integrity: sha512-coxE1ZWdB3uSDVNoEtYNrRi/1epvckZx9cTJ8ICUxTMTxGk+yvQ/Twacp3ruZSaMPGCriUjP86C37VhaT6nyRg==} + engines: {node: '>=10'} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@swc/core-linux-s390x-gnu@1.15.43': + resolution: {integrity: sha512-lXfLhs+LpBsD5inuYx+YDH5WsPPBQ95KPUiy8P5wq9ob9xKDZFqwNfU2QW6bGO8NqRO/H9JQomTSt5Yyh+FGfA==} + engines: {node: '>=10'} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@swc/core-linux-x64-gnu@1.15.43': + resolution: {integrity: sha512-07XnKwTmKy8TGOZG3D9fRnLWGynxPjwQnZLVmBFbo6F+7vHYzBIOuwXEhemrChBWb6yDNZsVCcMWCPX6FDD2xg==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@swc/core-linux-x64-musl@1.15.43': + resolution: {integrity: sha512-TJc+bsSIaBh+hZvZ5GRtW/K1bw66TJ9vsUwvVIsZdiWxU5ObLwZvfcnZ3UpgVfMnFibRes9uriJrQNBHEEogRQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@swc/core-win32-arm64-msvc@1.15.43': + resolution: {integrity: sha512-jfd7s2/bUQYkOHLs+LWQNKZdmDa8+sufKLllhpWAhVQ2GDCwsHe3vR/j+OSiItZNtkzFuaawa3+SAKz9y5gYfw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/core-win32-ia32-msvc@1.15.43': + resolution: {integrity: sha512-rLAE8JvucqEW1ZGohxPQrQWPBQeJG4+ypKbWfdlU/qmKScvCkxf9/Jxnzki1dkUQCQ7P5Enp13RlvqOlvx/32g==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/core-win32-x64-msvc@1.15.43': + resolution: {integrity: sha512-h8MLDHZcfIukwQWj03rIJZx1I0E81AYj2X7J/nGErG4nz+QAv6G1Z+peotvinL3lqpbo32tLYSMFo32/ySzxKg==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/core@1.15.43': + resolution: {integrity: sha512-1CuKjFkPxIgGdeHVuNbkxmBxkcbdc08u0aiI43pFq6yY1tTVKmXT9hFEooyyKs/sJ3xf1GPHyEwTtk9Xl8dvQw==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': '>=0.5.17' + peerDependenciesMeta: + '@swc/helpers': + optional: true + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/jest@0.2.39': + resolution: {integrity: sha512-eyokjOwYd0Q8RnMHri+8/FS1HIrIUKK/sRrFp8c1dThUOfNeCWbLmBP1P5VsKdvmkd25JaH+OKYwEYiAYg9YAA==} + engines: {npm: '>= 7.0.0'} + peerDependencies: + '@swc/core': '*' + + '@swc/types@0.1.27': + resolution: {integrity: sha512-K6h3iUlqeM946U4sXFYeahefR1YBbXJvko+hv8WS8/0BNJ4OHiHRywMnQUJCqkR7Y9+hqQ1TvEpiKqUhz7NEFg==} + '@szmarczak/http-timer@4.0.6': resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} engines: {node: '>=10'} @@ -7687,6 +7921,12 @@ packages: '@types/jasmine@3.10.19': resolution: {integrity: sha512-Bz6P2XoeIN13AhvVe0nS7+m2RfxVllETDjFQ/s6lyEwEfIVpPCc1Q8vPdFopFAOU5mzrU1zypXJ1xGDl5EVU9Q==} + '@types/jest-image-snapshot@6.4.1': + resolution: {integrity: sha512-pj3Sdc7Cx5mMLUttPprazSDQCur2cr512Dm38e9aAHI55LDxEhqdyqzK9myC4EmEy7sPAF2nGJ8zifX4qso7sQ==} + + '@types/jest@30.0.0': + resolution: {integrity: sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA==} + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -7733,6 +7973,9 @@ packages: resolution: {integrity: sha512-EULJ8LApcVEPbrfND0cRQqutIOdiIgJ1Mgrhpy755r14xMohPTEpkV/k28SJvuOs9bHRFW8x+KeDAEPiGQPB9Q==} deprecated: This is a stub types definition. parse-path provides its own type definitions, so you do not need this installed. + '@types/pixelmatch@5.2.6': + resolution: {integrity: sha512-wC83uexE5KGuUODn6zkm9gMzTwdY5L0chiK+VrKcDfEjzxh1uadlWTvOmAbCpnM9zx/Ww3f8uKlYQVnO/TrqVg==} + '@types/react-dom@19.2.3': resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} peerDependencies: @@ -7783,6 +8026,9 @@ packages: '@types/validate-npm-package-name@4.0.2': resolution: {integrity: sha512-lrpDziQipxCEeK5kWxvljWYhUvOiB2A9izZd9B2AFarYAkqZshb4lPbRs7zKEic6eGtH8V/2qJW+dPp9OtF6bw==} + '@types/wait-on@5.3.4': + resolution: {integrity: sha512-EBsPjFMrFlMbbUFf9D1Fp+PAB2TwmUn7a3YtHyD9RLuTIk1jDd8SxXVAoez2Ciy+8Jsceo2MYEYZzJ/DvorOKw==} + '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} @@ -7797,6 +8043,126 @@ packages: resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} deprecated: Potential CWE-502 - Update to 1.3.1 or higher + '@unrs/resolver-binding-android-arm-eabi@1.12.2': + resolution: {integrity: sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==} + cpu: [arm] + os: [android] + + '@unrs/resolver-binding-android-arm64@1.12.2': + resolution: {integrity: sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ==} + cpu: [arm64] + os: [android] + + '@unrs/resolver-binding-darwin-arm64@1.12.2': + resolution: {integrity: sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w==} + cpu: [arm64] + os: [darwin] + + '@unrs/resolver-binding-darwin-x64@1.12.2': + resolution: {integrity: sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA==} + cpu: [x64] + os: [darwin] + + '@unrs/resolver-binding-freebsd-x64@1.12.2': + resolution: {integrity: sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg==} + cpu: [x64] + os: [freebsd] + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2': + resolution: {integrity: sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2': + resolution: {integrity: sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-gnu@1.12.2': + resolution: {integrity: sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-arm64-musl@1.12.2': + resolution: {integrity: sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': + resolution: {integrity: sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==} + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-loong64-musl@1.12.2': + resolution: {integrity: sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==} + cpu: [loong64] + os: [linux] + libc: [musl] + + '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': + resolution: {integrity: sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': + resolution: {integrity: sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': + resolution: {integrity: sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': + resolution: {integrity: sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-x64-gnu@1.12.2': + resolution: {integrity: sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-x64-musl@1.12.2': + resolution: {integrity: sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@unrs/resolver-binding-openharmony-arm64@1.12.2': + resolution: {integrity: sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==} + cpu: [arm64] + os: [openharmony] + + '@unrs/resolver-binding-wasm32-wasi@1.12.2': + resolution: {integrity: sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': + resolution: {integrity: sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g==} + cpu: [arm64] + os: [win32] + + '@unrs/resolver-binding-win32-ia32-msvc@1.12.2': + resolution: {integrity: sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g==} + cpu: [ia32] + os: [win32] + + '@unrs/resolver-binding-win32-x64-msvc@1.12.2': + resolution: {integrity: sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA==} + cpu: [x64] + os: [win32] + '@urql/core@5.2.0': resolution: {integrity: sha512-/n0ieD0mvvDnVAXEQgX/7qJiVcvYvNkOHeBvkwtylfjydar123caCXcl58PXFY11oU1oquJocVXHxLAbtv4x1A==} @@ -8050,6 +8416,10 @@ packages: resolution: {integrity: sha512-7NRMZ/ZDz2vHevQTgJsocBFpakB1/Wx5ip19YSJuj4VOXpraWztTerViNtdSyARKZT9e2yVwUUB5JXXCE7mNrA==} hasBin: true + aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + ajv-draft-04@1.0.0: resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} peerDependencies: @@ -8145,6 +8515,13 @@ packages: dmg-builder: 26.15.3 electron-builder-squirrel-windows: 26.15.3 + append-transform@2.0.0: + resolution: {integrity: sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==} + engines: {node: '>=8'} + + archy@1.0.0: + resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} + arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} @@ -8249,14 +8626,28 @@ packages: peerDependencies: '@babel/core': ^7.8.0 + babel-jest@30.4.1: + resolution: {integrity: sha512-fATAbM8piYxkiXQp3RBXmZHxZVNJZAVXXfyeyCN2Tida3+qJ8ea9UxhiJ2y4fLO90ZImKt6k9FlcH2+rLkJGhw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + '@babel/core': ^7.11.0 || ^8.0.0-0 + babel-plugin-istanbul@6.1.1: resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} engines: {node: '>=8'} + babel-plugin-istanbul@7.0.1: + resolution: {integrity: sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==} + engines: {node: '>=12'} + babel-plugin-jest-hoist@29.6.3: resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + babel-plugin-jest-hoist@30.4.0: + resolution: {integrity: sha512-9EdtWM/sSfXLOGLwSn+GS6pIXyBnL07/8gyJlwFXjWy4DxMOyItqyUT29d4lQiS380EZwYlX7/At4PgBS+m2aA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + babel-plugin-polyfill-corejs2@0.4.15: resolution: {integrity: sha512-hR3GwrRwHUfYwGfrisXPIDP3JcYfBrW7wKE7+Au6wDYl7fm/ka1NEII6kORzxNU556JjfidZeBsO10kYvtV1aw==} peerDependencies: @@ -8307,6 +8698,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + babel-preset-jest@30.4.0: + resolution: {integrity: sha512-lBY4jxsNmCnSiu7kquw8ZC9F4+XLMOKypT3RnNHPvU2Kpd4W0xaPuLr5ZkRyOsvLYAY4yaW1ZwTW4xB7NIiZzg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + '@babel/core': ^7.11.0 || ^8.0.0-beta.1 + badgin@1.2.3: resolution: {integrity: sha512-NQGA7LcfCpSzIbGRbkgjgdWkjy7HI+Th5VLxTJfW5EeaAf3fnS+xWQaQOCYiny+q6QSvxqoSO04vCx+4u++EJw==} @@ -8330,6 +8727,10 @@ packages: resolution: {integrity: sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==} hasBin: true + basic-auth@2.0.1: + resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} + engines: {node: '>= 0.8'} + better-opn@3.0.2: resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} engines: {node: '>=12.0.0'} @@ -8361,6 +8762,11 @@ packages: peerDependencies: react: '>=17.0.1' + bippy@0.5.43: + resolution: {integrity: sha512-Tvu7b1M7+d8b9/YHaCeODEsi2CgbuoBql+dWSBrNnCuqJ1gMUeY3i0r+319hvjjl5GVBP6FFWxrKnq3fhZER0w==} + peerDependencies: + react: '>=17.0.1' + bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} @@ -8474,6 +8880,10 @@ packages: resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} engines: {node: '>=8'} + caching-transform@4.0.0: + resolution: {integrity: sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==} + engines: {node: '>=8'} + call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -8534,6 +8944,10 @@ packages: resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} @@ -8608,6 +9022,10 @@ packages: classnames@2.5.1: resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} + clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + cli-cursor@2.1.0: resolution: {integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==} engines: {node: '>=4'} @@ -8635,6 +9053,9 @@ packages: client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -8656,9 +9077,16 @@ packages: react: ^18 || ^19 || ^19.0.0-rc react-dom: ^18 || ^19 || ^19.0.0-rc + co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + code-block-writer@13.0.3: resolution: {integrity: sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==} + collect-v8-coverage@1.0.3: + resolution: {integrity: sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==} + color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -8708,6 +9136,9 @@ packages: commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + commander@3.0.2: + resolution: {integrity: sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==} + commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} @@ -8728,6 +9159,9 @@ packages: resolution: {integrity: sha512-taEtr3ozUmOB7it68Jll7s0Pwm+aoiHyXKrEC8SEodL4rNpdfDLqa7PfBlrgFoCNNdR8ImL+muti5IGvktJAAg==} engines: {node: '>= 6'} + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + compare-version@0.1.2: resolution: {integrity: sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==} engines: {node: '>=0.10.0'} @@ -8773,6 +9207,9 @@ packages: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} + convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} @@ -8808,6 +9245,10 @@ packages: resolution: {integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==} engines: {node: '>= 0.10'} + corser@2.0.1: + resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==} + engines: {node: '>= 0.4.0'} + cosmiconfig@8.3.6: resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} @@ -8884,6 +9325,10 @@ packages: csstype@3.2.3: resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + cwd@0.10.0: + resolution: {integrity: sha512-YGZxdTTL9lmLkCUTpg4j0zQ7IhRB5ZmqNBbGCl3Tg6MP/d5/6sY7L5mmTjzbc6JKgVZYiqTQTNhPFsbXNGlRaA==} + engines: {node: '>=0.8'} + d3-array@3.2.4: resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} engines: {node: '>=12'} @@ -8963,6 +9408,10 @@ packages: supports-color: optional: true + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + decimal.js@10.6.0: resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} @@ -9008,6 +9457,10 @@ packages: resolution: {integrity: sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==} engines: {node: '>=18'} + default-require-extensions@3.0.1: + resolution: {integrity: sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==} + engines: {node: '>=8'} + defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} @@ -9043,8 +9496,8 @@ packages: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} - deslop-js@0.6.2: - resolution: {integrity: sha512-3+wV56jJd4zx6Mob2nQ4B8nIF4J12Xc2iCagNE9kdVTzMbNEIe99vwfaxrgdFC+RQ1NHXfjUkR3C4HVYnLLSfg==} + deslop-js@0.7.1: + resolution: {integrity: sha512-HsEoRI/bzuD0o2OVczYz42SXTCl5of3ax6eiojZbC/7gJsPNxxjPRvBysP88LXsHujYrIGJnGtFRnHwCmKWuxQ==} destroy@1.2.0: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} @@ -9059,6 +9512,10 @@ packages: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} + detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + detect-node-es@1.1.0: resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} @@ -9079,6 +9536,9 @@ packages: resolution: {integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==} engines: {node: '>=0.3.1'} + diffable-html@4.1.0: + resolution: {integrity: sha512-++kyNek+YBLH8cLXS+iTj/Hiy2s5qkRJEJ8kgu/WHbFrVY2vz9xPFUT+fii2zGF0m1CaojDlQJjkfrCt7YWM1g==} + dir-compare@4.2.0: resolution: {integrity: sha512-2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ==} @@ -9098,12 +9558,21 @@ packages: dom-accessibility-api@0.6.3: resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} + dom-serializer@0.2.2: + resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==} + dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + domelementtype@1.3.1: + resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} + domelementtype@2.3.0: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + domhandler@2.4.2: + resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==} + domhandler@5.0.3: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} @@ -9111,6 +9580,9 @@ packages: dompurify@3.4.10: resolution: {integrity: sha512-0xzNv0e7oYC6yyuOGZIABPM4qtg3QxLFniDNPP4ZP90wR8Yq3zgwpRbrNiT4N3IKqDbbYFEJLV+JWEs19aZ//w==} + domutils@1.7.0: + resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} + domutils@3.2.2: resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} @@ -9331,6 +9803,9 @@ packages: earcut@3.0.2: resolution: {integrity: sha512-X7hshQbLyMJ/3RPhyObLARM2sNxxmRALLKx1+NVFFnQ9gKzmCrxm9+uLIAdBcvc8FNLpctqlQ2V6AE92Ol9UDQ==} + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + easy-table@1.1.0: resolution: {integrity: sha512-oq33hWOSSnl2Hoh00tZWaIPi1ievrD9aFG82/IgjlycAnW9hHx5PkJiXpxPsgEE+H7BsbVQXFVFST8TEXS6/pA==} @@ -9394,12 +9869,19 @@ packages: engines: {node: '>= 22.12.0'} hasBin: true + emittery@0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} + engines: {node: '>=12'} + emoji-regex@10.6.0: resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + empathic@2.0.0: resolution: {integrity: sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==} engines: {node: '>=14'} @@ -9426,6 +9908,12 @@ packages: resolution: {integrity: sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ==} engines: {node: '>=10.13.0'} + entities@1.1.2: + resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==} + + entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -9610,6 +10098,9 @@ packages: resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} engines: {node: '>=6'} + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + eventemitter3@5.0.4: resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} @@ -9643,14 +10134,34 @@ packages: exif-parser@0.1.12: resolution: {integrity: sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==} - expand-template@2.0.3: - resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} - engines: {node: '>=6'} + exit-x@0.2.2: + resolution: {integrity: sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==} + engines: {node: '>= 0.8.0'} + + exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + + expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + + expand-tilde@1.2.2: + resolution: {integrity: sha512-rtmc+cjLZqnu9dSYosX9EWmSJhTwpACgJQTfj4hgg2JjOD/6SIQalZrt4a3aQeh++oNxkazcaxrhPUj6+g5G/Q==} + engines: {node: '>=0.10.0'} + + expect-playwright@0.8.0: + resolution: {integrity: sha512-+kn8561vHAY+dt+0gMqqj1oY+g5xWrsuGMk4QGxotT2WS545nVqqjs37z6hrYfIuucwqthzwJfCJUEYqixyljg==} + deprecated: ⚠️ The 'expect-playwright' package is deprecated. The Playwright core assertions (via @playwright/test) now cover the same functionality. Please migrate to built-in expect. See https://playwright.dev/docs/test-assertions for migration. expect-type@1.3.0: resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} engines: {node: '>=12.0.0'} + expect@30.4.1: + resolution: {integrity: sha512-PMARsyh/JtqC20HoGqlFcIlQAyqUtW4PlI1rup1uhYJtKuwAjbvWi3GQMAn+STdHum/dk8xrKfUM1+5SAwpolA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + expo-application@7.0.8: resolution: {integrity: sha512-qFGyxk7VJbrNOQWBbE09XUuGuvkOgFS9QfToaK2FdagM2aQ+x3CvGV2DuVgl/l4ZxPgIf3b/MNh9xHpwSwn74Q==} peerDependencies: @@ -10037,6 +10548,22 @@ packages: resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==} engines: {node: '>= 18.0.0'} + find-cache-dir@3.3.2: + resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} + engines: {node: '>=8'} + + find-file-up@0.1.3: + resolution: {integrity: sha512-mBxmNbVyjg1LQIIpgO8hN+ybWBgDQK8qjht+EbrTCGmmPV/sc7RF1i9stPTD6bpvXZywBdrwRYxhSdJv867L6A==} + engines: {node: '>=0.10.0'} + + find-pkg@0.1.2: + resolution: {integrity: sha512-0rnQWcFwZr7eO0513HahrWafsc3CTFioEB7DRiEYCUM/70QXSY8f3mCST17HXLcPvEhzH/Ty/Bxd72ZZsr/yvw==} + engines: {node: '>=0.10.0'} + + find-process@1.4.11: + resolution: {integrity: sha512-mAOh9gGk9WZ4ip5UjV0o6Vb4SrfnAmtsFNzkMRH9HQiFXVQnDyQFrSHTK5UoG6E+KV+s+cIznbtwpfN41l2nFA==} + hasBin: true + find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -10074,6 +10601,14 @@ packages: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} + foreground-child@2.0.0: + resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} + engines: {node: '>=8.0.0'} + + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + form-data@4.0.5: resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} engines: {node: '>= 6'} @@ -10117,9 +10652,16 @@ packages: resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} engines: {node: '>= 0.8'} + fromentries@1.3.2: + resolution: {integrity: sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==} + fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + fs-exists-sync@0.1.0: + resolution: {integrity: sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg==} + engines: {node: '>=0.10.0'} + fs-extra@10.1.0: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} @@ -10210,6 +10752,10 @@ packages: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} + get-stdin@5.0.1: + resolution: {integrity: sha512-jZV7n6jGE3Gt7fgSTJoz91Ak5MuTLwMwkoYdjxuJ/AmjIsE1UC03y/IWkZCQGEvVNS9qoRNwy5BCqxImv0FVeA==} + engines: {node: '>=0.12.0'} + get-stream@5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} @@ -10265,6 +10811,11 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + glob@10.5.0: + resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} + 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 + glob@13.0.1: resolution: {integrity: sha512-B7U/vJpE3DkJ5WXTgTpTRN63uV42DseiXXKMwG14LQBXmsdeIoHAPbU/MEo6II0k5ED74uc2ZGTC6MwHFQhF6w==} engines: {node: 20 || >=22} @@ -10285,6 +10836,14 @@ packages: resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} engines: {node: '>=4'} + global-modules@0.2.3: + resolution: {integrity: sha512-JeXuCbvYzYXcwE6acL9V2bAOeSIGl4dD+iwLY9iUx2VBJJ80R18HCn+JCwHM9Oegdfya3lEkGCdaRkSyc10hDA==} + engines: {node: '>=0.10.0'} + + global-prefix@0.1.5: + resolution: {integrity: sha512-gOPiyxcD9dJGCEArAhF4Hd0BAqvAe/JzERP7tYumE4yIkmIedPUVXcJFWbV3/p/ovIIvKjkrTk+f1UVkq7vvbw==} + engines: {node: '>=0.10.0'} + globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -10292,6 +10851,9 @@ packages: globrex@0.1.2: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + glur@1.1.2: + resolution: {integrity: sha512-l+8esYHTKOx2G/Aao4lEQ0bnHWg4fWtJbVoZZT9Knxi01pB8C80BR85nONLFwkkQoFRCmXY+BUcGZN3yZ2QsRA==} + goober@2.1.19: resolution: {integrity: sha512-U7veizMqxyKlM58+Z5j2ngJBH/r9siDmxpvNxSw0PylF6WQvrASJEZrxh1hidRBJc2jqoBVSyOban5u8m+6Rxg==} peerDependencies: @@ -10342,6 +10904,10 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} + hasha@5.2.2: + resolution: {integrity: sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==} + engines: {node: '>=8'} + hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -10373,6 +10939,10 @@ packages: hastscript@9.0.1: resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + headers-polyfill@4.0.3: resolution: {integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==} @@ -10401,6 +10971,10 @@ packages: resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==} engines: {node: '>=12.0.0'} + homedir-polyfill@1.0.3: + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} + engines: {node: '>=0.10.0'} + hono@4.11.7: resolution: {integrity: sha512-l7qMiNee7t82bH3SeyUCt9UF15EVmaBvsppY2zQtrbIhl/yzBTny+YUxsVjSjQ6gaqaeVtZmGocom8TzBlA4Yw==} engines: {node: '>=16.9.0'} @@ -10417,6 +10991,10 @@ packages: resolution: {integrity: sha512-Hc+ghLoSt6QaYZUv0WBiIvmMDZuZZ7oaDvdH8MbfOO4lOsxdXLEvuC6ePoGs9H1X9oCLyq6+NVN0MKqD+ydxyg==} engines: {node: ^20.17.0 || >=22.9.0} + html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} + html-encoding-sniffer@4.0.0: resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} engines: {node: '>=18'} @@ -10430,6 +11008,9 @@ packages: html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + htmlparser2@3.10.1: + resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==} + http-cache-semantics@4.2.0: resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} @@ -10441,6 +11022,15 @@ packages: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} + http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} + + http-server@14.1.1: + resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==} + engines: {node: '>=12'} + hasBin: true + http2-wrapper@1.0.3: resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} engines: {node: '>=10.19.0'} @@ -10514,6 +11104,11 @@ packages: resolution: {integrity: sha512-vR2B6HKIhaBjcZr2bLpFiJ1VbzOlRQ7aby4/gw5WPIzToLjqpfWw3VJ4sk1uDchoOODEirvO2jyrSPtUSL5CrQ==} engines: {node: '>=18'} + import-local@3.2.0: + resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} + engines: {node: '>=8'} + hasBin: true + imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -10613,6 +11208,10 @@ packages: resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==} engines: {node: '>=18'} + is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + is-generator-function@1.1.2: resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} engines: {node: '>= 0.4'} @@ -10693,6 +11292,9 @@ packages: resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} + is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + is-unicode-supported@1.3.0: resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} engines: {node: '>=12'} @@ -10705,6 +11307,14 @@ packages: resolution: {integrity: sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw==} engines: {node: '>=18'} + is-windows@0.2.0: + resolution: {integrity: sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q==} + engines: {node: '>=0.10.0'} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} @@ -10746,31 +11356,103 @@ packages: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} + istanbul-lib-hook@3.0.0: + resolution: {integrity: sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==} + engines: {node: '>=8'} + + istanbul-lib-instrument@4.0.3: + resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} + engines: {node: '>=8'} + istanbul-lib-instrument@5.2.1: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} + istanbul-lib-instrument@6.0.3: + resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} + engines: {node: '>=10'} + + istanbul-lib-processinfo@2.0.3: + resolution: {integrity: sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==} + engines: {node: '>=8'} + istanbul-lib-report@3.0.1: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} + istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + + istanbul-lib-source-maps@5.0.6: + resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} + engines: {node: '>=10'} + istanbul-reports@3.2.0: resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} engines: {node: '>=8'} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jake@10.9.4: resolution: {integrity: sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==} engines: {node: '>=10'} hasBin: true + jest-changed-files@30.4.1: + resolution: {integrity: sha512-IuctmYrxi21iOSOaIXpJWalHyPAsVv0GeBHKDn8C1CA4W5htHn7INL+wdnL4Bo0+olEndvAFkmb++tIQJG+vvg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-circus@30.4.2: + resolution: {integrity: sha512-rvHH7VlY6LgbJXJTQ87GW62g1FntOtbhh0zT+v04kC+pgL6aBKyYINXxWukCpj3dcIBMw5/XUbtDS9dU9JTXeQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-cli@30.4.2: + resolution: {integrity: sha512-jfA2ocvVHMXS2QijrJ0d31ektP+d/W0T5RpcTX2Pq+3sVqHlsXVCM2+FmwpL+bdY8OfHpIg9xMxLF17Zg0U49Q==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + jest-config@30.4.2: + resolution: {integrity: sha512-rNHAShJQqQwFNoL0hbf3BphSBOWnpOUAKvidLS/AjNVLPfoj5mSf4jQMfW3cYOs6hXeZC7nF7mDHaBnbxELOzg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + '@types/node': '*' + esbuild-register: '>=3.4.0' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + esbuild-register: + optional: true + ts-node: + optional: true + jest-diff@30.4.1: resolution: {integrity: sha512-CRpFK0RtLriVDGcPPAnR6HMVI8bSR2jnUIgralhauzYQZIb4RH9AtEInTuQr65LmmGggGcRT6HIASxwqsVsmlA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-docblock@30.4.0: + resolution: {integrity: sha512-ZPMabUZCx5MpbZ2eBYSvZ0J8fvo3dR9oM+eeUpb3aKNQFuS2tu3Duw1TNlMoP8k3WQgKGJuhcMFvwcVuq6T7oA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-each@30.4.1: + resolution: {integrity: sha512-/8MJbH6fuj48TstjrMf+u/pd06Qezz5xOXvZA6442heNOWr8bdeoGZX2d9fCn028CoMgYmroH9//zky5GfyYmA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-environment-node@29.7.0: resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-environment-node@30.4.1: + resolution: {integrity: sha512-4FZYVOk85hz2AyT6BbarKy9u37g6DbrDyCdFhsnDdXqyrueYQvB+0zO4f/kqLCRD0BsPRXPMNJeQwihKZV8naw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-get-type@29.6.3: resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10779,6 +11461,27 @@ packages: resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-haste-map@30.4.1: + resolution: {integrity: sha512-rFrcONd8jeFsyw+Z9CrScJgglRf2+NFmNam8dKu7n+SoHqNYT47mn0DdEcVUZJpvh7Iz6/si7f7yUH7GJHVgnw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-image-snapshot@6.5.2: + resolution: {integrity: sha512-frenWThr5ddnnokcX5N4gwi41hA5TiUOdhv/JoGcJrOaktHjrk4/7XbiHKW52lgKX+vei6QkRlgM7fkYQ15nPg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + jest: '>=20 <31' + peerDependenciesMeta: + jest: + optional: true + + jest-junit@16.0.0: + resolution: {integrity: sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ==} + engines: {node: '>=10.12.0'} + + jest-leak-detector@30.4.1: + resolution: {integrity: sha512-IpmyiioeHxiWDhesHnUFmOxcTzwCwKpgACgWajtAP+nYQXiY7DakTxB6Bx9JFiRMljr0AX1PvnQdaU1KFoz6NQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-matcher-utils@30.4.1: resolution: {integrity: sha512-zvYfX5CaeEkFrrLS9suWe9rvJrm9J1Iv3ua8kIBv9GEPzcnsfBf0bob37la7s67fs0nlBC3EuvkOLnXQKxtx4A==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} @@ -10787,22 +11490,88 @@ packages: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-message-util@30.4.1: + resolution: {integrity: sha512-kwCKIvq0MCW1HzLoGola9Te6JUdzgV0loyKJ3Qghrkz9i5/RRIHsL95BMQc2HBBhlBKC4j22K9p11TGHH8RBpQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-mock@29.7.0: resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-mock@30.4.1: + resolution: {integrity: sha512-/i8SVb8/NSB7RfNi8gfqu8gxLV23KaL5EpAttyb9iz8qWRIqXRLflycz/32wXsYkOnaUlx8NAKnJYtpsmXUmfw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-pnp-resolver@1.2.3: + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + + jest-process-manager@0.4.0: + resolution: {integrity: sha512-80Y6snDyb0p8GG83pDxGI/kQzwVTkCxc7ep5FPe/F6JYdvRDhwr6RzRmPSP7SEwuLhxo80lBS/NqOdUIbHIfhw==} + deprecated: ⚠️ The 'jest-process-manager' package is deprecated. Please migrate to Playwright's built-in test runner (@playwright/test) which now includes full Jest-style features and parallel testing. See https://playwright.dev/docs/intro for details. + jest-regex-util@29.6.3: resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-regex-util@30.4.0: + resolution: {integrity: sha512-mWlvLviKIgIQ8VCuM1xRdD0TWp3zlzionlmDBjuXVBs+VkmXq6FgW9T4Emr7oGz/Rk6feDCGyiugolcQEyp3mg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-resolve-dependencies@30.4.2: + resolution: {integrity: sha512-gDiVh1I+GxYzz9oXlyw+1wv6VOYX1WYxMOfjsA3iGKePV2oxmbHhwxfkALxNxYy1ciw6APWwkW2zZONwP97aEQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-resolve@30.4.1: + resolution: {integrity: sha512-Zry8Yq/yJcNAZ7dJ5F2heic8AheXvbFZ7XI5V+h28nrYZ7Qoyy4dItq8OodjnYD270mvX+ZudmrNV9cysqhW5Q==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-runner@30.4.2: + resolution: {integrity: sha512-2dw0PslVYXxffXGpLo+Ejad+KcI1Qkjn7f4X4619gf21oCUmL+SPfjqIa/losUem3yEOvfNZe/F1HWUcNpODcg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-runtime@30.4.2: + resolution: {integrity: sha512-3/5e8iPz2k/VLqlr8DgTftYyLUv8Su3FkCAO2/Od81UsUTpSxOrS6O5x5KkoQwyUjmpYyDJKeyAvg2T2nvpNkQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-serializer-html@7.1.0: + resolution: {integrity: sha512-xYL2qC7kmoYHJo8MYqJkzrl/Fdlx+fat4U1AqYg+kafqwcKPiMkOcjWHPKhueuNEgr+uemhGc+jqXYiwCyRyLA==} + + jest-snapshot@30.4.1: + resolution: {integrity: sha512-tEOkkfOMppUyeiHwjZswOQ3lcnoTnws/q5FnGIaeIh/jmoU0ZlgMYRR8sTlTj+nNGCoJ0RDq6SfxGxCsyMTPmw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-util@29.7.0: resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-util@30.4.1: + resolution: {integrity: sha512-vjQb1sACEiv13DKJMDToJpzVW0joCsIQrmbg0fi7CyOOt+g9jTuQl2A216pWRBYhOVt53XbL/2LbMKg1BECWOw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-validate@29.7.0: resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-validate@30.4.1: + resolution: {integrity: sha512-PDWi4SOwLnwqNDfHZjOcsEFyZ4fc/2W2gVL3DEoyqnB6jCQMLRtfBong8s6omIw3lI0HWOus12xfnFmQtjW3fw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-watch-typeahead@3.0.1: + resolution: {integrity: sha512-SFmHcvdueTswZlVhPCWfLXMazvwZlA2UZTrcE7MC3NwEVeWvEcOx6HUe+igMbnmA6qowuBSW4in8iC6J2EYsgQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + jest: ^30.0.0 + + jest-watcher@30.4.1: + resolution: {integrity: sha512-/l9UonmvCwjHH7d2h3iAwIloLc1H0S8mJZ/LNK3i86hqwPAz8otUJjP9MfYtz9Tt77Su5FD2xGjZn8d31IZHlw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-worker@27.5.1: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} @@ -10811,6 +11580,20 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-worker@30.4.1: + resolution: {integrity: sha512-SHynN/q/QD++iNyvMdy+WMmbCGk8jIsNcRxycXbWubSOhvo6T+j2afcfUSl+3hYsiBebOTo0cT7c2H7CXugu1g==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest@30.4.2: + resolution: {integrity: sha512-Yi1jqNC/Oq0N4hBgNH/YvBpP1P57QqundgytzYqy3yqAa7NZPNjSoi4SGbRAXDMdBzNE6xBCi5U7RgfrvMEUVQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + jimp-compact@0.16.1: resolution: {integrity: sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww==} @@ -10830,6 +11613,9 @@ packages: resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} hasBin: true + joi@17.13.4: + resolution: {integrity: sha512-1RuuER6kmt8K8I3nIWvPZKi5RQCb568ZPyY4Pwjlua+yo+63ZTmIwxLZH0heBmiKN4uxjvCiarDrjaeH84xicQ==} + jose@6.2.1: resolution: {integrity: sha512-jUaKr1yrbfaImV7R2TN/b3IcZzsw38/chqMpo2XJ7i2F8AfM/lA4G1goC3JVEwg0H7UldTmSt3P68nt31W7/mw==} @@ -11226,6 +12012,9 @@ packages: lodash.escaperegexp@4.1.2: resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} + lodash.flattendeep@4.4.0: + resolution: {integrity: sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==} + lodash.includes@4.3.0: resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} @@ -11273,6 +12062,10 @@ packages: resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} engines: {node: '>=18'} + loglevel@1.9.2: + resolution: {integrity: sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==} + engines: {node: '>= 0.6.0'} + long@5.3.2: resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} @@ -11330,6 +12123,10 @@ packages: magicast@0.5.3: resolution: {integrity: sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw==} + make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} @@ -11712,6 +12509,9 @@ packages: mlly@1.8.0: resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} + mockdate@3.0.5: + resolution: {integrity: sha512-iniQP4rj1FhBdBYS/+eQv7j1tadJ9lJtdzgOpvsOHng/GbcDh2Fhdeq+ZRldrPYdXvCyfFUmFeEwEGXZB5I/AQ==} + module-details-from-path@1.0.4: resolution: {integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==} @@ -11766,6 +12566,11 @@ packages: napi-build-utils@2.0.0: resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} + napi-postinstall@0.3.4: + resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + hasBin: true + nativewind@4.2.1: resolution: {integrity: sha512-10uUB2Dlli3MH3NDL5nMHqJHz1A3e/E6mzjTj6cl7hHECClJ7HpE6v+xZL+GXdbwQSnWE+UWMIMsNz7yOQkAJQ==} engines: {node: '>=16'} @@ -11847,6 +12652,10 @@ packages: node-machine-id@1.1.12: resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} + node-preload@0.2.1: + resolution: {integrity: sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==} + engines: {node: '>=8'} + node-pty@1.1.0: resolution: {integrity: sha512-20JqtutY6JPXTUnL0ij1uad7Qe1baT46lyolh2sSENDd4sTzKZ4nmAFkeAARDKwmlLjPx6XKRlwRUxwjOy+lUg==} @@ -11891,6 +12700,11 @@ packages: nwsapi@2.2.23: resolution: {integrity: sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==} + nyc@15.1.0: + resolution: {integrity: sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==} + engines: {node: '>=8.9'} + hasBin: true + ob1@0.83.3: resolution: {integrity: sha512-egUxXCDwoWG06NGCS5s5AdcpnumHKJlfd3HH06P3m9TEMwwScfcY35wpQxbm9oHof+dM/lVH9Rfyu1elTVelSA==} engines: {node: '>=20.19.4'} @@ -12000,6 +12814,10 @@ packages: openapi3-ts@4.5.0: resolution: {integrity: sha512-jaL+HgTq2Gj5jRcfdutgRGLosCy/hT8sQf6VOy+P+g36cZOjI1iukdPnijC+4CmeRzg/jEllJUboEic2FhxhtQ==} + opener@1.5.2: + resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} + hasBin: true + optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -12019,6 +12837,10 @@ packages: orderedmap@2.1.1: resolution: {integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==} + os-homedir@1.0.2: + resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} + engines: {node: '>=0.10.0'} + outvariant@1.4.3: resolution: {integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==} @@ -12049,8 +12871,8 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - oxlint-plugin-react-doctor@0.6.2: - resolution: {integrity: sha512-8+YU8hwSPmS2dglPxLGRTSpaSHA5A2L0x7zU/7G+dp9V779jrpHiYMhJ5Ga9JUa0VtECHfpY+xUOYSt1IEP3YA==} + oxlint-plugin-react-doctor@0.7.1: + resolution: {integrity: sha512-fvARsCESDZYvDIlhuB/JlDeUhTOLHYstoDJCKm0pzh4HQQJVVV6gcrQajBjYo/hdHC1ukl7btKTK3rk4uZwuew==} engines: {node: ^20.19.0 || >=22.13.0} oxlint@1.66.0: @@ -12083,6 +12905,10 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} + p-map@3.0.0: + resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} + engines: {node: '>=8'} + p-map@7.0.4: resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} engines: {node: '>=18'} @@ -12095,6 +12921,10 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + package-hash@4.0.0: + resolution: {integrity: sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==} + engines: {node: '>=8'} + package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} @@ -12128,6 +12958,10 @@ packages: resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} engines: {node: '>=18'} + parse-passwd@1.0.0: + resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} + engines: {node: '>=0.10.0'} + parse-path@7.1.0: resolution: {integrity: sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw==} @@ -12189,6 +13023,10 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + path-scurry@2.0.1: resolution: {integrity: sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==} engines: {node: 20 || >=22} @@ -12264,6 +13102,10 @@ packages: resolution: {integrity: sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==} engines: {node: '>=16.20.0'} + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} @@ -12297,6 +13139,10 @@ packages: resolution: {integrity: sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==} engines: {node: '>=14.19.0'} + portfinder@1.0.38: + resolution: {integrity: sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==} + engines: {node: '>= 10.12'} + possible-typed-array-names@1.1.0: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} @@ -12479,6 +13325,10 @@ packages: process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + process-on-spawn@1.1.0: + resolution: {integrity: sha512-JOnOPQ/8TZgjs1JIH/m9ni7FfimjNa/PRx7y/Wb5qdItsnhO0jE4AT7fC0HjC28DUQWDr50dwSYZLdRMlqDq3Q==} + engines: {node: '>=8'} + progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} @@ -12590,6 +13440,9 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + pure-rand@7.0.1: + resolution: {integrity: sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==} + pvtsutils@1.3.6: resolution: {integrity: sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==} @@ -12665,8 +13518,8 @@ packages: resolution: {integrity: sha512-+NRMYs2DyTP4/tqWz371Oo50JqmWltR1h2gcdgUMAWZJIAvrd0/SqlCfx7tpzpl/s36rzw6qH2MjoNrxtRNYhA==} engines: {node: ^20.9.0 || >=22} - react-doctor@0.6.2: - resolution: {integrity: sha512-uPFyoWhRvAG6vc7uLVbf2wg7ox0R8y+SgOAhAfAcs1soP4sIPwl4gEuWCNbAir/QIGcb5xrwFJvCM30WmgmeUg==} + react-doctor@0.7.1: + resolution: {integrity: sha512-Gmty7Enyrh6GPlz6Paq+UoL2O7YkTzNeHdflbqdp6fspX1UbUem5ejPyIUgo1jf77D6kB+INqsi2K+Mk/K8uBQ==} engines: {node: ^20.19.0 || >=22.13.0} hasBin: true @@ -12684,8 +13537,8 @@ packages: peerDependencies: react: '>=17.0.0' - react-grab@0.1.47: - resolution: {integrity: sha512-1GNy24KMJ4CY1IxorYO9mydItGi0L1HkQB19uYU3t0BMsJB0K+D/QYiaBz+rugRynyY8LzmXIuOcon1TykLlCg==} + react-grab@0.1.48: + resolution: {integrity: sha512-p3WnmK9LLvXE/c4ITPLlXcP1fkXo2VFEQqK94tIfcHIWKNdqdhYYFyNVioO50HR+uyHIwT63Z4txZDqJlVcD/Q==} hasBin: true peerDependencies: react: '>=17.0.0' @@ -12962,6 +13815,10 @@ packages: rehype-sanitize@6.0.0: resolution: {integrity: sha512-CsnhKNsyI8Tub6L4sm5ZFsme4puGfc6pYylvXo1AeqaGbjOYyzNv3qZPwvs0oMJ39eryyeOdmxwUIo94IpEhqg==} + release-zalgo@1.0.0: + resolution: {integrity: sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==} + engines: {node: '>=4'} + remark-gfm@4.0.1: resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} @@ -12986,10 +13843,16 @@ packages: resolution: {integrity: sha512-QT7FVMXfWOYFbeRBF6nu+I6tr2Tf3u0q8RIEjNob/heKY/nh7drD/k7eeMFmSQgnTtCzLDcCu/XEnpW2wk4xCQ==} engines: {node: '>=9.3.0 || >=8.10.0 <9.0.0'} + require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + requireg@0.2.2: resolution: {integrity: sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==} engines: {node: '>= 4.0.0'} + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + resedit@1.7.2: resolution: {integrity: sha512-vHjcY2MlAITJhC0eRD/Vv8Vlgmu9Sd3LX9zZvtGzU5ZImdTN3+d6e/4mnTyV8vEbyf1sgNIrWxhWlrys52OkEA==} engines: {node: '>=12', npm: '>=6'} @@ -13000,6 +13863,14 @@ packages: resolve-alpn@1.2.1: resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + + resolve-dir@0.1.1: + resolution: {integrity: sha512-QxMPqI6le2u0dCLyiGzgy92kjkkL6zO0XyvHzjdTNH3zM6e5Hz3BwG6+aEyNgiQ5Xz6PwTwgQEj3U50dByPKIA==} + engines: {node: '>=0.10.0'} + resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -13149,6 +14020,9 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + rxjs@7.8.2: + resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} + safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} @@ -13183,6 +14057,9 @@ packages: resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} engines: {node: '>= 10.13.0'} + secure-compare@3.0.1: + resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==} + semifies@1.0.0: resolution: {integrity: sha512-xXR3KGeoxTNWPD4aBvL5NUpMTT7WMANr3EWnaS190QVkY52lqqcVRD7Q05UVbBhiWDGWMlJEUam9m7uFFGVScw==} @@ -13262,6 +14139,9 @@ packages: server-only@0.0.1: resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==} + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -13365,6 +14245,10 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + slice-ansi@5.0.0: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} @@ -13395,6 +14279,9 @@ packages: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} + source-map-support@0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} @@ -13413,6 +14300,13 @@ packages: space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + spawn-wrap@2.0.0: + resolution: {integrity: sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==} + engines: {node: '>=8'} + + spawnd@5.0.0: + resolution: {integrity: sha512-28+AJr82moMVWolQvlAIv3JcYDkjkFTEmfDc503wxrF5l2rQ3dFz6DpbXp3kD4zmgGGldfM4xM4v1sFj/ZaIOA==} + split-on-first@1.1.0: resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} engines: {node: '>=6'} @@ -13423,6 +14317,9 @@ packages: sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + ssim.js@3.5.0: + resolution: {integrity: sha512-Aj6Jl2z6oDmgYFFbQqK7fght19bXdOxY7Tj03nF+03M9gCBAjeIiO8/PlEGMfKDwYpw4q6iBqVq2YuREorGg/g==} + stack-utils@2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} @@ -13493,10 +14390,22 @@ packages: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} + string-length@4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} + + string-length@6.0.0: + resolution: {integrity: sha512-1U361pxZHEQ+FeSjzqRpV+cu2vTzYeWeafXFLykiFlv4Vc0n3njgU8HrMbyik5uwm77naWMuVG8fhEF+Ovb1Kg==} + engines: {node: '>=16'} + 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'} @@ -13534,6 +14443,10 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} + strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} @@ -13558,6 +14471,10 @@ packages: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + strip-json-comments@5.0.3: resolution: {integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==} engines: {node: '>=14.16'} @@ -13631,6 +14548,10 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + synckit@0.11.13: + resolution: {integrity: sha512-eNRKgb3z66Yp3D2CixVujOUvXLFUTij/zVnV8KRyvFdQwpz7I5DS8UfRkTeLzb64u+dkzDSdelE24izu+zSSUg==} + engines: {node: ^14.18.0 || >=16.0.0} + tabbable@6.4.0: resolution: {integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==} @@ -13972,6 +14893,10 @@ packages: resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} engines: {node: '>=8'} + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + type-fest@3.13.1: resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} engines: {node: '>=14.16'} @@ -13995,6 +14920,9 @@ packages: resolution: {integrity: sha512-iTDy0V9Wc8kuRBeGxJKNhZk3Gye3kqux4gUrMD0grf9h9TQcJ/EI7EGpyXd7PdbuGrsQcTX2t5q0S+vwlzubsA==} hasBin: true + typedarray-to-buffer@3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} @@ -14068,6 +14996,10 @@ packages: unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + union@0.5.0: + resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==} + engines: {node: '>= 0.8.0'} + unique-string@2.0.0: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} engines: {node: '>=8'} @@ -14107,6 +15039,9 @@ packages: resolution: {integrity: sha512-0Mqk3AT2TZCXWKdcoaufeXNukv2mTrEZExeXlHIOZXdqYoHHr4n51pymnwV8x2BOVxwXbK2HLlI7usrqMpycdg==} engines: {node: ^20.19.0 || >=22.12.0} + unrs-resolver@1.12.2: + resolution: {integrity: sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==} + until-async@3.0.2: resolution: {integrity: sha512-IiSk4HlzAMqTUseHHe3VhIGyuFmN90zMTpD3Z3y8jeQbzLIq500MVM7Jq2vUAnTKAFPJrqwkzr6PoTcPhGcOiw==} @@ -14122,6 +15057,9 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + url-join@4.0.1: + resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} + use-callback-ref@1.3.3: resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} engines: {node: '>=10'} @@ -14181,6 +15119,15 @@ packages: deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). + hasBin: true + + v8-to-istanbul@9.3.0: + resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} + engines: {node: '>=10.12.0'} + validate-npm-package-name@5.0.1: resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -14388,6 +15335,16 @@ packages: resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} engines: {node: '>=18'} + wait-on@7.2.0: + resolution: {integrity: sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==} + engines: {node: '>=12.0.0'} + hasBin: true + + wait-port@0.2.14: + resolution: {integrity: sha512-kIzjWcr6ykl7WFbZd0TMae8xovwqcqbx6FM9l+7agOgUByhzdjfzZBPK2CPufldTOMxbUivss//Sh9MFawmPRQ==} + engines: {node: '>=8'} + hasBin: true + walk-up-path@4.0.0: resolution: {integrity: sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==} engines: {node: 20 || >=22} @@ -14449,6 +15406,11 @@ packages: webpack-cli: optional: true + whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation + whatwg-encoding@3.1.1: resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} engines: {node: '>=18'} @@ -14475,10 +15437,17 @@ packages: when-exit@2.1.5: resolution: {integrity: sha512-VGkKJ564kzt6Ms1dbgPP/yuIoQCrsFAnRbptpC5wOEsDaNsbCB2bnfnaA8i/vRs5tjUSEOtIuvl9/MyVsvQZCg==} + which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + which-typed-array@1.1.20: resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} engines: {node: '>= 0.4'} + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -14519,6 +15488,10 @@ packages: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + wrap-ansi@9.0.2: resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} engines: {node: '>=18'} @@ -14526,10 +15499,17 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + write-file-atomic@3.0.3: + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + write-file-atomic@4.0.2: resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ws@6.2.3: resolution: {integrity: sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==} peerDependencies: @@ -14592,6 +15572,9 @@ packages: resolution: {integrity: sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w==} engines: {node: '>=4.0.0'} + xml@1.0.1: + resolution: {integrity: sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==} + xmlbuilder@11.0.1: resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} engines: {node: '>=4.0'} @@ -14603,6 +15586,9 @@ packages: xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -14622,10 +15608,18 @@ packages: engines: {node: '>= 14.6'} hasBin: true + yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} + yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} @@ -15087,7 +16081,7 @@ snapshots: '@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 @@ -15100,10 +16094,10 @@ snapshots: '@babel/helper-compilation-targets': 7.28.6 '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) '@babel/helpers': 7.28.6 - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.7 '@babel/template': 7.28.6 '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 debug: 4.4.3 @@ -15115,7 +16109,7 @@ snapshots: '@babel/generator@7.29.1': dependencies: - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.7 '@babel/types': 7.29.7 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 @@ -15197,7 +16191,7 @@ snapshots: dependencies: '@babel/core': 7.29.0 '@babel/helper-module-imports': 7.28.6 - '@babel/helper-validator-identifier': 7.28.5 + '@babel/helper-validator-identifier': 7.29.7 '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color @@ -15738,8 +16732,8 @@ snapshots: '@babel/template@7.28.6': dependencies: '@babel/code-frame': 7.29.0 - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 '@babel/traverse@7.29.0': dependencies: @@ -15787,6 +16781,8 @@ snapshots: optionalDependencies: '@types/react': 19.2.17 + '@bcoe/v8-coverage@0.2.3': {} + '@bcoe/v8-coverage@1.0.2': {} '@biomejs/biome@2.2.4': @@ -16742,7 +17738,7 @@ snapshots: wrap-ansi: 7.0.0 ws: 8.19.0 optionalDependencies: - expo-router: 6.0.23(5e0e884ce94c85b7fc2691a6f9754827) + expo-router: 6.0.23(d7377593e8774c4353274c7599e842cf) react-native: 0.81.5(@babel/core@7.29.0)(@types/react@19.2.17)(react@19.2.6) transitivePeerDependencies: - bufferutil @@ -17032,6 +18028,12 @@ snapshots: - supports-color - utf-8-validate + '@hapi/hoek@9.3.0': {} + + '@hapi/topo@5.1.0': + dependencies: + '@hapi/hoek': 9.3.0 + '@hono/node-server@1.19.9(hono@4.11.7)': dependencies: hono: 4.11.7 @@ -17205,6 +18207,15 @@ snapshots: dependencies: '@isaacs/balanced-match': 4.0.1 + '@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/fs-minipass@4.0.1': dependencies: minipass: 7.1.2 @@ -17221,10 +18232,59 @@ snapshots: '@istanbuljs/schema@0.1.3': {} + '@jest/console@30.4.1': + dependencies: + '@jest/types': 30.4.1 + '@types/node': 24.12.0 + chalk: 4.1.2 + jest-message-util: 30.4.1 + jest-util: 30.4.1 + slash: 3.0.0 + + '@jest/core@30.4.2(esbuild-register@3.6.0(esbuild@0.27.2))': + dependencies: + '@jest/console': 30.4.1 + '@jest/pattern': 30.4.0 + '@jest/reporters': 30.4.1 + '@jest/test-result': 30.4.1 + '@jest/transform': 30.4.1 + '@jest/types': 30.4.1 + '@types/node': 24.12.0 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 4.4.0 + exit-x: 0.2.2 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-changed-files: 30.4.1 + jest-config: 30.4.2(@types/node@24.12.0)(esbuild-register@3.6.0(esbuild@0.27.2)) + jest-haste-map: 30.4.1 + jest-message-util: 30.4.1 + jest-regex-util: 30.4.0 + jest-resolve: 30.4.1 + jest-resolve-dependencies: 30.4.2 + jest-runner: 30.4.2 + jest-runtime: 30.4.2 + jest-snapshot: 30.4.1 + jest-util: 30.4.1 + jest-validate: 30.4.1 + jest-watcher: 30.4.1 + pretty-format: 30.4.1 + slash: 3.0.0 + transitivePeerDependencies: + - babel-plugin-macros + - esbuild-register + - supports-color + - ts-node + '@jest/create-cache-key-function@29.7.0': dependencies: '@jest/types': 29.6.3 + '@jest/create-cache-key-function@30.4.1': + dependencies: + '@jest/types': 30.4.1 + '@jest/diff-sequences@30.4.0': {} '@jest/environment@29.7.0': @@ -17234,6 +18294,24 @@ snapshots: '@types/node': 24.12.0 jest-mock: 29.7.0 + '@jest/environment@30.4.1': + dependencies: + '@jest/fake-timers': 30.4.1 + '@jest/types': 30.4.1 + '@types/node': 24.12.0 + jest-mock: 30.4.1 + + '@jest/expect-utils@30.4.1': + dependencies: + '@jest/get-type': 30.1.0 + + '@jest/expect@30.4.1': + dependencies: + expect: 30.4.1 + jest-snapshot: 30.4.1 + transitivePeerDependencies: + - supports-color + '@jest/fake-timers@29.7.0': dependencies: '@jest/types': 29.6.3 @@ -17243,8 +18321,59 @@ snapshots: jest-mock: 29.7.0 jest-util: 29.7.0 + '@jest/fake-timers@30.4.1': + dependencies: + '@jest/types': 30.4.1 + '@sinonjs/fake-timers': 15.4.0 + '@types/node': 24.12.0 + jest-message-util: 30.4.1 + jest-mock: 30.4.1 + jest-util: 30.4.1 + '@jest/get-type@30.1.0': {} + '@jest/globals@30.4.1': + dependencies: + '@jest/environment': 30.4.1 + '@jest/expect': 30.4.1 + '@jest/types': 30.4.1 + jest-mock: 30.4.1 + transitivePeerDependencies: + - supports-color + + '@jest/pattern@30.4.0': + dependencies: + '@types/node': 24.12.0 + jest-regex-util: 30.4.0 + + '@jest/reporters@30.4.1': + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 30.4.1 + '@jest/test-result': 30.4.1 + '@jest/transform': 30.4.1 + '@jest/types': 30.4.1 + '@jridgewell/trace-mapping': 0.3.31 + '@types/node': 24.12.0 + chalk: 4.1.2 + collect-v8-coverage: 1.0.3 + exit-x: 0.2.2 + glob: 10.5.0 + graceful-fs: 4.2.11 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 6.0.3 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 5.0.6 + istanbul-reports: 3.2.0 + jest-message-util: 30.4.1 + jest-util: 30.4.1 + jest-worker: 30.4.1 + slash: 3.0.0 + string-length: 4.0.2 + v8-to-istanbul: 9.3.0 + transitivePeerDependencies: + - supports-color + '@jest/schemas@29.6.3': dependencies: '@sinclair/typebox': 0.27.10 @@ -17253,6 +18382,33 @@ snapshots: dependencies: '@sinclair/typebox': 0.34.49 + '@jest/snapshot-utils@30.4.1': + dependencies: + '@jest/types': 30.4.1 + chalk: 4.1.2 + graceful-fs: 4.2.11 + natural-compare: 1.4.0 + + '@jest/source-map@30.0.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + callsites: 3.1.0 + graceful-fs: 4.2.11 + + '@jest/test-result@30.4.1': + dependencies: + '@jest/console': 30.4.1 + '@jest/types': 30.4.1 + '@types/istanbul-lib-coverage': 2.0.6 + collect-v8-coverage: 1.0.3 + + '@jest/test-sequencer@30.4.1': + dependencies: + '@jest/test-result': 30.4.1 + graceful-fs: 4.2.11 + jest-haste-map: 30.4.1 + slash: 3.0.0 + '@jest/transform@29.7.0': dependencies: '@babel/core': 7.29.0 @@ -17273,6 +18429,25 @@ snapshots: transitivePeerDependencies: - supports-color + '@jest/transform@30.4.1': + dependencies: + '@babel/core': 7.29.0 + '@jest/types': 30.4.1 + '@jridgewell/trace-mapping': 0.3.31 + babel-plugin-istanbul: 7.0.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 30.4.1 + jest-regex-util: 30.4.0 + jest-util: 30.4.1 + pirates: 4.0.7 + slash: 3.0.0 + write-file-atomic: 5.0.1 + transitivePeerDependencies: + - supports-color + '@jest/types@29.6.3': dependencies: '@jest/schemas': 29.6.3 @@ -17282,6 +18457,16 @@ snapshots: '@types/yargs': 17.0.35 chalk: 4.1.2 + '@jest/types@30.4.1': + dependencies: + '@jest/pattern': 30.4.0 + '@jest/schemas': 30.4.1 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 24.12.0 + '@types/yargs': 17.0.35 + chalk: 4.1.2 + '@jimp/core@1.6.1': dependencies: '@jimp/file-ops': 1.6.1 @@ -18729,6 +19914,11 @@ snapshots: '@pixi/colord@2.9.6': {} + '@pkgjs/parseargs@0.11.0': + optional: true + + '@pkgr/core@0.3.6': {} + '@playwright/test@1.60.0': dependencies: playwright: 1.60.0 @@ -19646,7 +20836,7 @@ snapshots: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@react-grab/cli@0.1.47': + '@react-grab/cli@0.1.48': dependencies: agent-install: 0.0.6 commander: 14.0.3 @@ -20077,6 +21267,14 @@ snapshots: '@shikijs/vscode-textmate@10.0.2': {} + '@sideway/address@4.1.5': + dependencies: + '@hapi/hoek': 9.3.0 + + '@sideway/formula@3.0.1': {} + + '@sideway/pinpoint@2.0.0': {} + '@silvia-odwyer/photon-node@0.3.4': {} '@sinclair/typebox-codegen@0.11.1': @@ -20103,6 +21301,10 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 + '@sinonjs/fake-timers@15.4.0': + dependencies: + '@sinonjs/commons': 3.0.1 + '@smithy/core@3.26.0': dependencies: '@aws-crypto/crc32': 5.2.0 @@ -20167,10 +21369,10 @@ snapshots: axe-core: 4.11.1 storybook: 10.4.1(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@storybook/addon-docs@10.4.1(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(esbuild@0.27.2)(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0))(rollup@4.57.1)(storybook@10.4.1(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(webpack@5.105.0(esbuild@0.27.2))': + '@storybook/addon-docs@10.4.1(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(esbuild@0.27.2)(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0))(rollup@4.57.1)(storybook@10.4.1(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(webpack@5.105.0(@swc/core@1.15.43)(esbuild@0.27.2))': dependencies: '@mdx-js/react': 3.1.1(@types/react@19.2.17)(react@19.2.6) - '@storybook/csf-plugin': 10.4.1(esbuild@0.27.2)(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0))(rollup@4.57.1)(storybook@10.4.1(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(webpack@5.105.0(esbuild@0.27.2)) + '@storybook/csf-plugin': 10.4.1(esbuild@0.27.2)(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0))(rollup@4.57.1)(storybook@10.4.1(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(webpack@5.105.0(@swc/core@1.15.43)(esbuild@0.27.2)) '@storybook/icons': 2.0.2(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@storybook/react-dom-shim': 10.4.1(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.4.1(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)) react: 19.2.6 @@ -20186,9 +21388,9 @@ snapshots: - vite - webpack - '@storybook/builder-vite@10.4.1(esbuild@0.27.2)(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0))(rollup@4.57.1)(storybook@10.4.1(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(webpack@5.105.0(esbuild@0.27.2))': + '@storybook/builder-vite@10.4.1(esbuild@0.27.2)(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0))(rollup@4.57.1)(storybook@10.4.1(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(webpack@5.105.0(@swc/core@1.15.43)(esbuild@0.27.2))': dependencies: - '@storybook/csf-plugin': 10.4.1(esbuild@0.27.2)(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0))(rollup@4.57.1)(storybook@10.4.1(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(webpack@5.105.0(esbuild@0.27.2)) + '@storybook/csf-plugin': 10.4.1(esbuild@0.27.2)(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0))(rollup@4.57.1)(storybook@10.4.1(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(webpack@5.105.0(@swc/core@1.15.43)(esbuild@0.27.2)) storybook: 10.4.1(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) ts-dedent: 2.2.0 vite: rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0) @@ -20197,7 +21399,7 @@ snapshots: - rollup - webpack - '@storybook/csf-plugin@10.4.1(esbuild@0.27.2)(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0))(rollup@4.57.1)(storybook@10.4.1(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(webpack@5.105.0(esbuild@0.27.2))': + '@storybook/csf-plugin@10.4.1(esbuild@0.27.2)(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0))(rollup@4.57.1)(storybook@10.4.1(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(webpack@5.105.0(@swc/core@1.15.43)(esbuild@0.27.2))': dependencies: storybook: 10.4.1(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) unplugin: 2.3.11 @@ -20205,7 +21407,7 @@ snapshots: esbuild: 0.27.2 rollup: 4.57.1 vite: rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0) - webpack: 5.105.0(esbuild@0.27.2) + webpack: 5.105.0(@swc/core@1.15.43)(esbuild@0.27.2) '@storybook/global@5.0.0': {} @@ -20223,11 +21425,11 @@ snapshots: '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - '@storybook/react-vite@10.4.1(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(esbuild@0.27.2)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0))(rollup@4.57.1)(storybook@10.4.1(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@5.9.3)(webpack@5.105.0(esbuild@0.27.2))': + '@storybook/react-vite@10.4.1(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(esbuild@0.27.2)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0))(rollup@4.57.1)(storybook@10.4.1(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@5.9.3)(webpack@5.105.0(@swc/core@1.15.43)(esbuild@0.27.2))': dependencies: '@joshwooding/vite-plugin-react-docgen-typescript': 0.7.0(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0))(typescript@5.9.3) '@rollup/pluginutils': 5.3.0(rollup@4.57.1) - '@storybook/builder-vite': 10.4.1(esbuild@0.27.2)(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0))(rollup@4.57.1)(storybook@10.4.1(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(webpack@5.105.0(esbuild@0.27.2)) + '@storybook/builder-vite': 10.4.1(esbuild@0.27.2)(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0))(rollup@4.57.1)(storybook@10.4.1(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(webpack@5.105.0(@swc/core@1.15.43)(esbuild@0.27.2)) '@storybook/react': 10.4.1(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.4.1(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@5.9.3) empathic: 2.0.0 magic-string: 0.30.21 @@ -20263,6 +21465,40 @@ snapshots: transitivePeerDependencies: - supports-color + '@storybook/test-runner@0.24.4(@types/node@24.12.0)(esbuild-register@3.6.0(esbuild@0.27.2))(storybook@10.4.1(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))': + dependencies: + '@babel/core': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/template': 7.28.6 + '@babel/types': 7.29.7 + '@jest/types': 30.4.1 + '@swc/core': 1.15.43 + '@swc/jest': 0.2.39(@swc/core@1.15.43) + expect-playwright: 0.8.0 + jest: 30.4.2(@types/node@24.12.0)(esbuild-register@3.6.0(esbuild@0.27.2)) + jest-circus: 30.4.2 + jest-environment-node: 30.4.1 + jest-junit: 16.0.0 + jest-process-manager: 0.4.0 + jest-runner: 30.4.2 + jest-serializer-html: 7.1.0 + jest-watch-typeahead: 3.0.1(jest@30.4.2(@types/node@24.12.0)(esbuild-register@3.6.0(esbuild@0.27.2))) + nyc: 15.1.0 + playwright: 1.60.0 + playwright-core: 1.60.0 + rimraf: 3.0.2 + storybook: 10.4.1(@testing-library/dom@10.4.1)(@types/react@19.2.17)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + uuid: 8.3.2 + transitivePeerDependencies: + - '@swc/helpers' + - '@types/node' + - babel-plugin-macros + - debug + - esbuild-register + - node-notifier + - supports-color + - ts-node + '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 @@ -20342,6 +21578,73 @@ snapshots: transitivePeerDependencies: - typescript + '@swc/core-darwin-arm64@1.15.43': + optional: true + + '@swc/core-darwin-x64@1.15.43': + optional: true + + '@swc/core-linux-arm-gnueabihf@1.15.43': + optional: true + + '@swc/core-linux-arm64-gnu@1.15.43': + optional: true + + '@swc/core-linux-arm64-musl@1.15.43': + optional: true + + '@swc/core-linux-ppc64-gnu@1.15.43': + optional: true + + '@swc/core-linux-s390x-gnu@1.15.43': + optional: true + + '@swc/core-linux-x64-gnu@1.15.43': + optional: true + + '@swc/core-linux-x64-musl@1.15.43': + optional: true + + '@swc/core-win32-arm64-msvc@1.15.43': + optional: true + + '@swc/core-win32-ia32-msvc@1.15.43': + optional: true + + '@swc/core-win32-x64-msvc@1.15.43': + optional: true + + '@swc/core@1.15.43': + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.27 + optionalDependencies: + '@swc/core-darwin-arm64': 1.15.43 + '@swc/core-darwin-x64': 1.15.43 + '@swc/core-linux-arm-gnueabihf': 1.15.43 + '@swc/core-linux-arm64-gnu': 1.15.43 + '@swc/core-linux-arm64-musl': 1.15.43 + '@swc/core-linux-ppc64-gnu': 1.15.43 + '@swc/core-linux-s390x-gnu': 1.15.43 + '@swc/core-linux-x64-gnu': 1.15.43 + '@swc/core-linux-x64-musl': 1.15.43 + '@swc/core-win32-arm64-msvc': 1.15.43 + '@swc/core-win32-ia32-msvc': 1.15.43 + '@swc/core-win32-x64-msvc': 1.15.43 + + '@swc/counter@0.1.3': {} + + '@swc/jest@0.2.39(@swc/core@1.15.43)': + dependencies: + '@jest/create-cache-key-function': 30.4.1 + '@swc/core': 1.15.43 + '@swc/counter': 0.1.3 + jsonc-parser: 3.3.1 + + '@swc/types@0.1.27': + dependencies: + '@swc/counter': 0.1.3 + '@szmarczak/http-timer@4.0.6': dependencies: defer-to-connect: 2.0.1 @@ -20588,7 +21891,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/router-plugin@1.168.18(@tanstack/react-router@1.170.15(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.0(esbuild@0.27.2))': + '@tanstack/router-plugin@1.168.18(@tanstack/react-router@1.170.15(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0))(webpack@5.105.0(@swc/core@1.15.43)(esbuild@0.27.2))': dependencies: '@babel/core': 7.29.0 '@babel/template': 7.28.6 @@ -20602,7 +21905,7 @@ snapshots: optionalDependencies: '@tanstack/react-router': 1.170.15(react-dom@19.2.6(react@19.2.6))(react@19.2.6) vite: rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0) - webpack: 5.105.0(esbuild@0.27.2) + webpack: 5.105.0(@swc/core@1.15.43)(esbuild@0.27.2) transitivePeerDependencies: - supports-color @@ -20610,7 +21913,7 @@ snapshots: dependencies: '@babel/generator': 7.29.1 '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 ansis: 4.3.1 babel-dead-code-elimination: 1.0.12 diff: 8.0.3 @@ -20645,7 +21948,7 @@ snapshots: picocolors: 1.1.1 redent: 3.0.0 - '@testing-library/react-native@13.3.3(react-native@0.81.5(@babel/core@7.29.0)(@types/react@19.2.17)(react@19.2.6))(react-test-renderer@19.2.6(react@19.2.6))(react@19.2.6)': + '@testing-library/react-native@13.3.3(jest@30.4.2(@types/node@25.2.0)(esbuild-register@3.6.0(esbuild@0.27.2)))(react-native@0.81.5(@babel/core@7.29.0)(@types/react@19.2.17)(react@19.2.6))(react-test-renderer@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: jest-matcher-utils: 30.4.1 picocolors: 1.1.1 @@ -20654,6 +21957,8 @@ snapshots: react-native: 0.81.5(@babel/core@7.29.0)(@types/react@19.2.17)(react@19.2.6) react-test-renderer: 19.2.6(react@19.2.6) redent: 3.0.0 + optionalDependencies: + jest: 30.4.2(@types/node@25.2.0)(esbuild-register@3.6.0(esbuild@0.27.2)) '@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: @@ -21033,6 +22338,17 @@ snapshots: '@types/jasmine@3.10.19': {} + '@types/jest-image-snapshot@6.4.1': + dependencies: + '@types/jest': 30.0.0 + '@types/pixelmatch': 5.2.6 + ssim.js: 3.5.0 + + '@types/jest@30.0.0': + dependencies: + expect: 30.4.1 + pretty-format: 30.4.1 + '@types/json-schema@7.0.15': {} '@types/jsonwebtoken@9.0.10': @@ -21083,6 +22399,10 @@ snapshots: dependencies: parse-path: 7.1.0 + '@types/pixelmatch@5.2.6': + dependencies: + '@types/node': 24.12.0 + '@types/react-dom@19.2.3(@types/react@19.2.17)': dependencies: '@types/react': 19.2.17 @@ -21127,6 +22447,10 @@ snapshots: '@types/validate-npm-package-name@4.0.2': {} + '@types/wait-on@5.3.4': + dependencies: + '@types/node': 24.12.0 + '@types/yargs-parser@21.0.3': {} '@types/yargs@17.0.35': @@ -21137,6 +22461,76 @@ snapshots: '@ungap/structured-clone@1.3.0': {} + '@unrs/resolver-binding-android-arm-eabi@1.12.2': + optional: true + + '@unrs/resolver-binding-android-arm64@1.12.2': + optional: true + + '@unrs/resolver-binding-darwin-arm64@1.12.2': + optional: true + + '@unrs/resolver-binding-darwin-x64@1.12.2': + optional: true + + '@unrs/resolver-binding-freebsd-x64@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-arm64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-arm64-musl@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-loong64-musl@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-x64-gnu@1.12.2': + optional: true + + '@unrs/resolver-binding-linux-x64-musl@1.12.2': + optional: true + + '@unrs/resolver-binding-openharmony-arm64@1.12.2': + optional: true + + '@unrs/resolver-binding-wasm32-wasi@1.12.2': + dependencies: + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@napi-rs/wasm-runtime': 1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + optional: true + + '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': + optional: true + + '@unrs/resolver-binding-win32-ia32-msvc@1.12.2': + optional: true + + '@unrs/resolver-binding-win32-x64-msvc@1.12.2': + optional: true + '@urql/core@5.2.0(graphql@16.12.0)': dependencies: '@0no-co/graphql.web': 1.2.0(graphql@16.12.0) @@ -21348,7 +22742,7 @@ snapshots: sirv: 3.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.1.0 - vitest: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@22.20.0)(@vitest/ui@4.1.8)(jsdom@26.1.0)(msw@2.12.8(@types/node@22.20.0)(typescript@5.9.3))(vite@7.3.5(@types/node@22.20.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0)) + vitest: 4.1.8(@opentelemetry/api@1.9.1)(@types/node@24.12.0)(@vitest/ui@4.1.8)(jsdom@26.1.0)(msw@2.12.8(@types/node@24.12.0)(typescript@5.9.3))(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0)) '@vitest/utils@3.2.4': dependencies: @@ -21550,6 +22944,11 @@ snapshots: prompts: 2.4.2 yaml: 2.9.0 + aggregate-error@3.1.0: + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + ajv-draft-04@1.0.0(ajv@8.20.0): optionalDependencies: ajv: 8.20.0 @@ -21670,6 +23069,12 @@ snapshots: transitivePeerDependencies: - supports-color + append-transform@2.0.0: + dependencies: + default-require-extensions: 3.0.1 + + archy@1.0.0: {} + arg@5.0.2: {} argparse@1.0.10: @@ -21770,7 +23175,7 @@ snapshots: babel-dead-code-elimination@1.0.12: dependencies: '@babel/core': 7.29.0 - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.7 '@babel/traverse': 7.29.0 '@babel/types': 7.29.7 transitivePeerDependencies: @@ -21789,6 +23194,19 @@ snapshots: transitivePeerDependencies: - supports-color + babel-jest@30.4.1(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + '@jest/transform': 30.4.1 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 7.0.1 + babel-preset-jest: 30.4.0(@babel/core@7.29.0) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + babel-plugin-istanbul@6.1.1: dependencies: '@babel/helper-plugin-utils': 7.28.6 @@ -21799,6 +23217,16 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-istanbul@7.0.1: + dependencies: + '@babel/helper-plugin-utils': 7.28.6 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 6.0.3 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + babel-plugin-jest-hoist@29.6.3: dependencies: '@babel/template': 7.28.6 @@ -21806,6 +23234,10 @@ snapshots: '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.28.0 + babel-plugin-jest-hoist@30.4.0: + dependencies: + '@types/babel__core': 7.20.5 + babel-plugin-polyfill-corejs2@0.4.15(@babel/core@7.29.0): dependencies: '@babel/compat-data': 7.29.0 @@ -21903,6 +23335,12 @@ snapshots: babel-plugin-jest-hoist: 29.6.3 babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0) + babel-preset-jest@30.4.0(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + babel-plugin-jest-hoist: 30.4.0 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0) + badgin@1.2.3: {} bail@2.0.2: {} @@ -21921,6 +23359,10 @@ snapshots: baseline-browser-mapping@2.9.19: {} + basic-auth@2.0.1: + dependencies: + safe-buffer: 5.1.2 + better-opn@3.0.2: dependencies: open: 8.4.2 @@ -21949,6 +23391,10 @@ snapshots: dependencies: react: 19.2.6 + bippy@0.5.43(react@19.2.6): + dependencies: + react: 19.2.6 + bl@4.1.0: dependencies: buffer: 5.7.1 @@ -22093,6 +23539,13 @@ snapshots: normalize-url: 6.1.0 responselike: 2.0.1 + caching-transform@4.0.0: + dependencies: + hasha: 5.2.2 + make-dir: 3.1.0 + package-hash: 4.0.0 + write-file-atomic: 3.0.3 + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -22149,6 +23602,8 @@ snapshots: chalk@5.6.2: {} + char-regex@1.0.2: {} + character-entities-html4@2.1.0: {} character-entities-legacy@3.0.0: {} @@ -22224,6 +23679,8 @@ snapshots: classnames@2.5.1: {} + clean-stack@2.2.0: {} + cli-cursor@2.1.0: dependencies: restore-cursor: 2.0.0 @@ -22245,6 +23702,12 @@ snapshots: client-only@0.0.1: {} + cliui@6.0.0: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -22271,8 +23734,12 @@ snapshots: - '@types/react' - '@types/react-dom' + co@4.6.0: {} + code-block-writer@13.0.3: {} + collect-v8-coverage@1.0.3: {} + color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -22313,6 +23780,8 @@ snapshots: commander@2.20.3: {} + commander@3.0.2: {} + commander@4.1.1: {} commander@5.1.0: {} @@ -22328,6 +23797,8 @@ snapshots: core-util-is: 1.0.3 esprima: 4.0.1 + commondir@1.0.1: {} + compare-version@0.1.2: {} compressible@2.0.18: @@ -22383,6 +23854,8 @@ snapshots: content-type@1.0.5: {} + convert-source-map@1.9.0: {} + convert-source-map@2.0.0: {} cookie-es@3.1.1: {} @@ -22410,6 +23883,8 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 + corser@2.0.1: {} + cosmiconfig@8.3.6(typescript@5.9.3): dependencies: import-fresh: 3.3.1 @@ -22491,6 +23966,11 @@ snapshots: csstype@3.2.3: {} + cwd@0.10.0: + dependencies: + find-pkg: 0.1.2 + fs-exists-sync: 0.1.0 + d3-array@3.2.4: dependencies: internmap: 2.0.3 @@ -22552,6 +24032,8 @@ snapshots: dependencies: ms: 2.1.3 + decamelize@1.2.0: {} + decimal.js@10.6.0: {} decode-named-character-reference@1.3.0: @@ -22581,6 +24063,10 @@ snapshots: bundle-name: 4.1.0 default-browser-id: 5.0.1 + default-require-extensions@3.0.1: + dependencies: + strip-bom: 4.0.0 + defaults@1.0.4: dependencies: clone: 1.0.4 @@ -22609,7 +24095,7 @@ snapshots: dequal@2.0.3: {} - deslop-js@0.6.2: + deslop-js@0.7.1: dependencies: '@oxc-project/types': 0.132.0 fast-glob: 3.3.3 @@ -22624,6 +24110,8 @@ snapshots: detect-libc@2.1.2: {} + detect-newline@3.1.0: {} + detect-node-es@1.1.0: {} detect-node@2.1.0: @@ -22639,6 +24127,10 @@ snapshots: diff@8.0.4: {} + diffable-html@4.1.0: + dependencies: + htmlparser2: 3.10.1 + dir-compare@4.2.0: dependencies: minimatch: 3.1.2 @@ -22664,14 +24156,25 @@ snapshots: dom-accessibility-api@0.6.3: {} + dom-serializer@0.2.2: + dependencies: + domelementtype: 2.3.0 + entities: 2.2.0 + dom-serializer@2.0.0: dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 entities: 4.5.0 + domelementtype@1.3.1: {} + domelementtype@2.3.0: {} + domhandler@2.4.2: + dependencies: + domelementtype: 1.3.1 + domhandler@5.0.3: dependencies: domelementtype: 2.3.0 @@ -22680,6 +24183,11 @@ snapshots: optionalDependencies: '@types/trusted-types': 2.0.7 + domutils@1.7.0: + dependencies: + dom-serializer: 0.2.2 + domelementtype: 1.3.1 + domutils@3.2.2: dependencies: dom-serializer: 2.0.0 @@ -22738,6 +24246,8 @@ snapshots: earcut@3.0.2: {} + eastasianwidth@0.2.0: {} + easy-table@1.1.0: optionalDependencies: wcwidth: 1.0.1 @@ -22820,7 +24330,7 @@ snapshots: transitivePeerDependencies: - supports-color - electron-vite@4.0.1(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0)): + electron-vite@4.0.1(@swc/core@1.15.43)(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0)): dependencies: '@babel/core': 7.29.0 '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.29.0) @@ -22829,6 +24339,8 @@ snapshots: magic-string: 0.30.21 picocolors: 1.1.1 vite: rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0) + optionalDependencies: + '@swc/core': 1.15.43 transitivePeerDependencies: - supports-color @@ -22852,10 +24364,14 @@ snapshots: transitivePeerDependencies: - supports-color + emittery@0.13.1: {} + emoji-regex@10.6.0: {} emoji-regex@8.0.0: {} + emoji-regex@9.2.2: {} + empathic@2.0.0: {} encodeurl@1.0.2: {} @@ -22881,6 +24397,10 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.3.3 + entities@1.1.2: {} + + entities@2.2.0: {} + entities@4.5.0: {} entities@6.0.1: {} @@ -22922,8 +24442,7 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 - es6-error@4.1.1: - optional: true + es6-error@4.1.1: {} esbuild-register@3.6.0(esbuild@0.25.12): dependencies: @@ -22932,6 +24451,14 @@ snapshots: transitivePeerDependencies: - supports-color + esbuild-register@3.6.0(esbuild@0.27.2): + dependencies: + debug: 4.4.3 + esbuild: 0.27.2 + transitivePeerDependencies: + - supports-color + optional: true + esbuild@0.18.20: optionalDependencies: '@esbuild/android-arm': 0.18.20 @@ -23156,6 +24683,8 @@ snapshots: event-target-shim@5.0.1: {} + eventemitter3@4.0.7: {} + eventemitter3@5.0.4: {} events@3.3.0: @@ -23210,10 +24739,29 @@ snapshots: exif-parser@0.1.12: {} + exit-x@0.2.2: {} + + exit@0.1.2: {} + expand-template@2.0.3: {} + expand-tilde@1.2.2: + dependencies: + os-homedir: 1.0.2 + + expect-playwright@0.8.0: {} + expect-type@1.3.0: {} + expect@30.4.1: + dependencies: + '@jest/expect-utils': 30.4.1 + '@jest/get-type': 30.1.0 + jest-matcher-utils: 30.4.1 + jest-message-util: 30.4.1 + jest-mock: 30.4.1 + jest-util: 30.4.1 + expo-application@7.0.8(expo@54.0.33): dependencies: expo: 54.0.33(@babel/core@7.29.0)(@expo/metro-runtime@6.1.2)(expo-router@6.0.23)(graphql@16.12.0)(react-native-webview@13.16.0(react-native@0.81.5(@babel/core@7.29.0)(@types/react@19.2.17)(react@19.2.6))(react@19.2.6))(react-native@0.81.5(@babel/core@7.29.0)(@types/react@19.2.17)(react@19.2.6))(react@19.2.6) @@ -23416,7 +24964,7 @@ snapshots: transitivePeerDependencies: - supports-color - expo-router@6.0.23(5e0e884ce94c85b7fc2691a6f9754827): + expo-router@6.0.23(d7377593e8774c4353274c7599e842cf): dependencies: '@expo/metro-runtime': 6.1.2(expo@54.0.33)(react-dom@19.2.6(react@19.2.6))(react-native@0.81.5(@babel/core@7.29.0)(@types/react@19.2.17)(react@19.2.6))(react@19.2.6) '@expo/schema-utils': 0.1.8 @@ -23449,7 +24997,7 @@ snapshots: use-latest-callback: 0.2.6(react@19.2.6) vaul: 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) optionalDependencies: - '@testing-library/react-native': 13.3.3(react-native@0.81.5(@babel/core@7.29.0)(@types/react@19.2.17)(react@19.2.6))(react-test-renderer@19.2.6(react@19.2.6))(react@19.2.6) + '@testing-library/react-native': 13.3.3(jest@30.4.2(@types/node@25.2.0)(esbuild-register@3.6.0(esbuild@0.27.2)))(react-native@0.81.5(@babel/core@7.29.0)(@types/react@19.2.17)(react@19.2.6))(react-test-renderer@19.2.6(react@19.2.6))(react@19.2.6) react-dom: 19.2.6(react@19.2.6) react-native-reanimated: 4.1.6(@babel/core@7.29.0)(react-native-worklets@0.7.2(@babel/core@7.29.0)(react-native@0.81.5(@babel/core@7.29.0)(@types/react@19.2.17)(react@19.2.6))(react@19.2.6))(react-native@0.81.5(@babel/core@7.29.0)(@types/react@19.2.17)(react@19.2.6))(react@19.2.6) react-native-web: 0.21.2(encoding@0.1.13)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) @@ -23699,6 +25247,27 @@ snapshots: transitivePeerDependencies: - supports-color + find-cache-dir@3.3.2: + dependencies: + commondir: 1.0.1 + make-dir: 3.1.0 + pkg-dir: 4.2.0 + + find-file-up@0.1.3: + dependencies: + fs-exists-sync: 0.1.0 + resolve-dir: 0.1.1 + + find-pkg@0.1.2: + dependencies: + find-file-up: 0.1.3 + + find-process@1.4.11: + dependencies: + chalk: 4.1.2 + commander: 12.1.0 + loglevel: 1.9.2 + find-up@4.1.0: dependencies: locate-path: 5.0.0 @@ -23732,6 +25301,16 @@ snapshots: dependencies: is-callable: 1.2.7 + foreground-child@2.0.0: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 3.0.7 + + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + form-data@4.0.5: dependencies: asynckit: 0.4.0 @@ -23765,8 +25344,12 @@ snapshots: fresh@2.0.0: {} + fromentries@1.3.2: {} + fs-constants@1.0.0: {} + fs-exists-sync@0.1.0: {} + fs-extra@10.1.0: dependencies: graceful-fs: 4.2.11 @@ -23862,6 +25445,8 @@ snapshots: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 + get-stdin@5.0.1: {} + get-stream@5.2.0: dependencies: pump: 3.0.3 @@ -23916,6 +25501,15 @@ snapshots: glob-to-regexp@0.4.1: optional: true + glob@10.5.0: + dependencies: + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.3 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + glob@13.0.1: dependencies: minimatch: 10.2.5 @@ -23951,6 +25545,18 @@ snapshots: dependencies: ini: 1.3.8 + global-modules@0.2.3: + dependencies: + global-prefix: 0.1.5 + is-windows: 0.2.0 + + global-prefix@0.1.5: + dependencies: + homedir-polyfill: 1.0.3 + ini: 1.3.8 + is-windows: 0.2.0 + which: 1.3.1 + globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -23959,6 +25565,8 @@ snapshots: globrex@0.1.2: {} + glur@1.1.2: {} + goober@2.1.19(csstype@3.2.3): dependencies: csstype: 3.2.3 @@ -24012,6 +25620,11 @@ snapshots: dependencies: has-symbols: 1.1.0 + hasha@5.2.2: + dependencies: + is-stream: 2.0.1 + type-fest: 0.8.1 + hasown@2.0.2: dependencies: function-bind: 1.1.2 @@ -24109,6 +25722,8 @@ snapshots: property-information: 7.1.0 space-separated-tokens: 2.0.2 + he@1.2.0: {} + headers-polyfill@4.0.3: {} hermes-estree@0.25.1: {} @@ -24133,6 +25748,10 @@ snapshots: highlight.js@11.11.1: {} + homedir-polyfill@1.0.3: + dependencies: + parse-passwd: 1.0.0 + hono@4.11.7: {} hosted-git-info@4.1.0: @@ -24147,6 +25766,10 @@ snapshots: dependencies: lru-cache: 11.2.5 + html-encoding-sniffer@3.0.0: + dependencies: + whatwg-encoding: 2.0.0 + html-encoding-sniffer@4.0.0: dependencies: whatwg-encoding: 3.1.1 @@ -24157,6 +25780,15 @@ snapshots: html-void-elements@3.0.0: {} + htmlparser2@3.10.1: + dependencies: + domelementtype: 1.3.1 + domhandler: 2.4.2 + domutils: 1.7.0 + entities: 1.1.2 + inherits: 2.0.4 + readable-stream: 3.6.2 + http-cache-semantics@4.2.0: {} http-errors@2.0.1: @@ -24174,6 +25806,33 @@ snapshots: transitivePeerDependencies: - supports-color + http-proxy@1.18.1: + dependencies: + eventemitter3: 4.0.7 + follow-redirects: 1.15.11 + requires-port: 1.0.0 + transitivePeerDependencies: + - debug + + http-server@14.1.1: + dependencies: + basic-auth: 2.0.1 + chalk: 4.1.2 + corser: 2.0.1 + he: 1.2.0 + html-encoding-sniffer: 3.0.0 + http-proxy: 1.18.1 + mime: 1.6.0 + minimist: 1.2.8 + opener: 1.5.2 + portfinder: 1.0.38 + secure-compare: 3.0.1 + union: 0.5.0 + url-join: 4.0.1 + transitivePeerDependencies: + - debug + - supports-color + http2-wrapper@1.0.3: dependencies: quick-lru: 5.1.1 @@ -24237,6 +25896,11 @@ snapshots: cjs-module-lexer: 2.2.0 module-details-from-path: 1.0.4 + import-local@3.2.0: + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 + imurmurhash@0.1.4: {} indent-string@4.0.0: {} @@ -24316,6 +25980,8 @@ snapshots: dependencies: get-east-asian-width: 1.6.0 + is-generator-fn@2.1.0: {} + is-generator-function@1.1.2: dependencies: call-bound: 1.0.4 @@ -24380,12 +26046,18 @@ snapshots: dependencies: which-typed-array: 1.1.20 + is-typedarray@1.0.0: {} + is-unicode-supported@1.3.0: {} is-unicode-supported@2.1.0: {} is-what@5.5.0: {} + is-windows@0.2.0: {} + + is-windows@1.0.2: {} + is-wsl@2.2.0: dependencies: is-docker: 2.2.1 @@ -24412,6 +26084,19 @@ snapshots: istanbul-lib-coverage@3.2.2: {} + istanbul-lib-hook@3.0.0: + dependencies: + append-transform: 2.0.0 + + istanbul-lib-instrument@4.0.3: + dependencies: + '@babel/core': 7.29.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + istanbul-lib-instrument@5.2.1: dependencies: '@babel/core': 7.29.0 @@ -24422,23 +26107,200 @@ snapshots: transitivePeerDependencies: - supports-color + istanbul-lib-instrument@6.0.3: + dependencies: + '@babel/core': 7.29.0 + '@babel/parser': 7.29.7 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 7.8.4 + transitivePeerDependencies: + - supports-color + + istanbul-lib-processinfo@2.0.3: + dependencies: + archy: 1.0.0 + cross-spawn: 7.0.6 + istanbul-lib-coverage: 3.2.2 + p-map: 3.0.0 + rimraf: 3.0.2 + uuid: 8.3.2 + istanbul-lib-report@3.0.1: dependencies: istanbul-lib-coverage: 3.2.2 make-dir: 4.0.0 supports-color: 7.2.0 + istanbul-lib-source-maps@4.0.1: + dependencies: + debug: 4.4.3 + istanbul-lib-coverage: 3.2.2 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + + istanbul-lib-source-maps@5.0.6: + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + debug: 4.4.3 + istanbul-lib-coverage: 3.2.2 + transitivePeerDependencies: + - supports-color + istanbul-reports@3.2.0: dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + jake@10.9.4: dependencies: async: 3.2.6 filelist: 1.0.6 picocolors: 1.1.1 + jest-changed-files@30.4.1: + dependencies: + execa: 5.1.1 + jest-util: 30.4.1 + p-limit: 3.1.0 + + jest-circus@30.4.2: + dependencies: + '@jest/environment': 30.4.1 + '@jest/expect': 30.4.1 + '@jest/test-result': 30.4.1 + '@jest/types': 30.4.1 + '@types/node': 24.12.0 + chalk: 4.1.2 + co: 4.6.0 + dedent: 1.7.2 + is-generator-fn: 2.1.0 + jest-each: 30.4.1 + jest-matcher-utils: 30.4.1 + jest-message-util: 30.4.1 + jest-runtime: 30.4.2 + jest-snapshot: 30.4.1 + jest-util: 30.4.1 + p-limit: 3.1.0 + pretty-format: 30.4.1 + pure-rand: 7.0.1 + slash: 3.0.0 + stack-utils: 2.0.6 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-cli@30.4.2(@types/node@24.12.0)(esbuild-register@3.6.0(esbuild@0.27.2)): + dependencies: + '@jest/core': 30.4.2(esbuild-register@3.6.0(esbuild@0.27.2)) + '@jest/test-result': 30.4.1 + '@jest/types': 30.4.1 + chalk: 4.1.2 + exit-x: 0.2.2 + import-local: 3.2.0 + jest-config: 30.4.2(@types/node@24.12.0)(esbuild-register@3.6.0(esbuild@0.27.2)) + jest-util: 30.4.1 + jest-validate: 30.4.1 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - esbuild-register + - supports-color + - ts-node + + jest-cli@30.4.2(@types/node@25.2.0)(esbuild-register@3.6.0(esbuild@0.27.2)): + dependencies: + '@jest/core': 30.4.2(esbuild-register@3.6.0(esbuild@0.27.2)) + '@jest/test-result': 30.4.1 + '@jest/types': 30.4.1 + chalk: 4.1.2 + exit-x: 0.2.2 + import-local: 3.2.0 + jest-config: 30.4.2(@types/node@25.2.0)(esbuild-register@3.6.0(esbuild@0.27.2)) + jest-util: 30.4.1 + jest-validate: 30.4.1 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - esbuild-register + - supports-color + - ts-node + optional: true + + jest-config@30.4.2(@types/node@24.12.0)(esbuild-register@3.6.0(esbuild@0.27.2)): + dependencies: + '@babel/core': 7.29.0 + '@jest/get-type': 30.1.0 + '@jest/pattern': 30.4.0 + '@jest/test-sequencer': 30.4.1 + '@jest/types': 30.4.1 + babel-jest: 30.4.1(@babel/core@7.29.0) + chalk: 4.1.2 + ci-info: 4.4.0 + deepmerge: 4.3.1 + glob: 10.5.0 + graceful-fs: 4.2.11 + jest-circus: 30.4.2 + jest-docblock: 30.4.0 + jest-environment-node: 30.4.1 + jest-regex-util: 30.4.0 + jest-resolve: 30.4.1 + jest-runner: 30.4.2 + jest-util: 30.4.1 + jest-validate: 30.4.1 + parse-json: 5.2.0 + pretty-format: 30.4.1 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 24.12.0 + esbuild-register: 3.6.0(esbuild@0.27.2) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-config@30.4.2(@types/node@25.2.0)(esbuild-register@3.6.0(esbuild@0.27.2)): + dependencies: + '@babel/core': 7.29.0 + '@jest/get-type': 30.1.0 + '@jest/pattern': 30.4.0 + '@jest/test-sequencer': 30.4.1 + '@jest/types': 30.4.1 + babel-jest: 30.4.1(@babel/core@7.29.0) + chalk: 4.1.2 + ci-info: 4.4.0 + deepmerge: 4.3.1 + glob: 10.5.0 + graceful-fs: 4.2.11 + jest-circus: 30.4.2 + jest-docblock: 30.4.0 + jest-environment-node: 30.4.1 + jest-regex-util: 30.4.0 + jest-resolve: 30.4.1 + jest-runner: 30.4.2 + jest-util: 30.4.1 + jest-validate: 30.4.1 + parse-json: 5.2.0 + pretty-format: 30.4.1 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 25.2.0 + esbuild-register: 3.6.0(esbuild@0.27.2) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + optional: true + jest-diff@30.4.1: dependencies: '@jest/diff-sequences': 30.4.0 @@ -24446,6 +26308,18 @@ snapshots: chalk: 4.1.2 pretty-format: 30.4.1 + jest-docblock@30.4.0: + dependencies: + detect-newline: 3.1.0 + + jest-each@30.4.1: + dependencies: + '@jest/get-type': 30.1.0 + '@jest/types': 30.4.1 + chalk: 4.1.2 + jest-util: 30.4.1 + pretty-format: 30.4.1 + jest-environment-node@29.7.0: dependencies: '@jest/environment': 29.7.0 @@ -24455,6 +26329,16 @@ snapshots: jest-mock: 29.7.0 jest-util: 29.7.0 + jest-environment-node@30.4.1: + dependencies: + '@jest/environment': 30.4.1 + '@jest/fake-timers': 30.4.1 + '@jest/types': 30.4.1 + '@types/node': 24.12.0 + jest-mock: 30.4.1 + jest-util: 30.4.1 + jest-validate: 30.4.1 + jest-get-type@29.6.3: {} jest-haste-map@29.7.0: @@ -24473,6 +26357,45 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + jest-haste-map@30.4.1: + dependencies: + '@jest/types': 30.4.1 + '@types/node': 24.12.0 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 30.4.0 + jest-util: 30.4.1 + jest-worker: 30.4.1 + picomatch: 4.0.3 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + + jest-image-snapshot@6.5.2(jest@30.4.2(@types/node@24.12.0)(esbuild-register@3.6.0(esbuild@0.27.2))): + dependencies: + chalk: 4.1.2 + get-stdin: 5.0.1 + glur: 1.1.2 + lodash: 4.17.23 + pixelmatch: 5.3.0 + pngjs: 3.4.0 + ssim.js: 3.5.0 + optionalDependencies: + jest: 30.4.2(@types/node@24.12.0)(esbuild-register@3.6.0(esbuild@0.27.2)) + + jest-junit@16.0.0: + dependencies: + mkdirp: 1.0.4 + strip-ansi: 6.0.1 + uuid: 8.3.2 + xml: 1.0.1 + + jest-leak-detector@30.4.1: + dependencies: + '@jest/get-type': 30.1.0 + pretty-format: 30.4.1 + jest-matcher-utils@30.4.1: dependencies: '@jest/get-type': 30.1.0 @@ -24492,13 +26415,156 @@ snapshots: slash: 3.0.0 stack-utils: 2.0.6 - jest-mock@29.7.0: + jest-message-util@30.4.1: + dependencies: + '@babel/code-frame': 7.29.0 + '@jest/types': 30.4.1 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-util: 30.4.1 + picomatch: 4.0.3 + pretty-format: 30.4.1 + slash: 3.0.0 + stack-utils: 2.0.6 + + jest-mock@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 24.12.0 + jest-util: 29.7.0 + + jest-mock@30.4.1: + dependencies: + '@jest/types': 30.4.1 + '@types/node': 24.12.0 + jest-util: 30.4.1 + + jest-pnp-resolver@1.2.3(jest-resolve@30.4.1): + optionalDependencies: + jest-resolve: 30.4.1 + + jest-process-manager@0.4.0: + dependencies: + '@types/wait-on': 5.3.4 + chalk: 4.1.2 + cwd: 0.10.0 + exit: 0.1.2 + find-process: 1.4.11 + prompts: 2.4.2 + signal-exit: 3.0.7 + spawnd: 5.0.0 + tree-kill: 1.2.2 + wait-on: 7.2.0 + transitivePeerDependencies: + - debug + - supports-color + + jest-regex-util@29.6.3: {} + + jest-regex-util@30.4.0: {} + + jest-resolve-dependencies@30.4.2: + dependencies: + jest-regex-util: 30.4.0 + jest-snapshot: 30.4.1 + transitivePeerDependencies: + - supports-color + + jest-resolve@30.4.1: + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-haste-map: 30.4.1 + jest-pnp-resolver: 1.2.3(jest-resolve@30.4.1) + jest-util: 30.4.1 + jest-validate: 30.4.1 + slash: 3.0.0 + unrs-resolver: 1.12.2 + + jest-runner@30.4.2: + dependencies: + '@jest/console': 30.4.1 + '@jest/environment': 30.4.1 + '@jest/test-result': 30.4.1 + '@jest/transform': 30.4.1 + '@jest/types': 30.4.1 + '@types/node': 24.12.0 + chalk: 4.1.2 + emittery: 0.13.1 + exit-x: 0.2.2 + graceful-fs: 4.2.11 + jest-docblock: 30.4.0 + jest-environment-node: 30.4.1 + jest-haste-map: 30.4.1 + jest-leak-detector: 30.4.1 + jest-message-util: 30.4.1 + jest-resolve: 30.4.1 + jest-runtime: 30.4.2 + jest-util: 30.4.1 + jest-watcher: 30.4.1 + jest-worker: 30.4.1 + p-limit: 3.1.0 + source-map-support: 0.5.13 + transitivePeerDependencies: + - supports-color + + jest-runtime@30.4.2: + dependencies: + '@jest/environment': 30.4.1 + '@jest/fake-timers': 30.4.1 + '@jest/globals': 30.4.1 + '@jest/source-map': 30.0.1 + '@jest/test-result': 30.4.1 + '@jest/transform': 30.4.1 + '@jest/types': 30.4.1 + '@types/node': 24.12.0 + chalk: 4.1.2 + cjs-module-lexer: 2.2.0 + collect-v8-coverage: 1.0.3 + glob: 10.5.0 + graceful-fs: 4.2.11 + jest-haste-map: 30.4.1 + jest-message-util: 30.4.1 + jest-mock: 30.4.1 + jest-regex-util: 30.4.0 + jest-resolve: 30.4.1 + jest-snapshot: 30.4.1 + jest-util: 30.4.1 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color + + jest-serializer-html@7.1.0: dependencies: - '@jest/types': 29.6.3 - '@types/node': 24.12.0 - jest-util: 29.7.0 + diffable-html: 4.1.0 - jest-regex-util@29.6.3: {} + jest-snapshot@30.4.1: + dependencies: + '@babel/core': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) + '@babel/types': 7.29.7 + '@jest/expect-utils': 30.4.1 + '@jest/get-type': 30.1.0 + '@jest/snapshot-utils': 30.4.1 + '@jest/transform': 30.4.1 + '@jest/types': 30.4.1 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0) + chalk: 4.1.2 + expect: 30.4.1 + graceful-fs: 4.2.11 + jest-diff: 30.4.1 + jest-matcher-utils: 30.4.1 + jest-message-util: 30.4.1 + jest-util: 30.4.1 + pretty-format: 30.4.1 + semver: 7.8.4 + synckit: 0.11.13 + transitivePeerDependencies: + - supports-color jest-util@29.7.0: dependencies: @@ -24509,6 +26575,15 @@ snapshots: graceful-fs: 4.2.11 picomatch: 2.3.1 + jest-util@30.4.1: + dependencies: + '@jest/types': 30.4.1 + '@types/node': 24.12.0 + chalk: 4.1.2 + ci-info: 4.4.0 + graceful-fs: 4.2.11 + picomatch: 4.0.3 + jest-validate@29.7.0: dependencies: '@jest/types': 29.6.3 @@ -24518,6 +26593,37 @@ snapshots: leven: 3.1.0 pretty-format: 29.7.0 + jest-validate@30.4.1: + dependencies: + '@jest/get-type': 30.1.0 + '@jest/types': 30.4.1 + camelcase: 6.3.0 + chalk: 4.1.2 + leven: 3.1.0 + pretty-format: 30.4.1 + + jest-watch-typeahead@3.0.1(jest@30.4.2(@types/node@24.12.0)(esbuild-register@3.6.0(esbuild@0.27.2))): + dependencies: + ansi-escapes: 7.2.0 + chalk: 5.6.2 + jest: 30.4.2(@types/node@24.12.0)(esbuild-register@3.6.0(esbuild@0.27.2)) + jest-regex-util: 30.4.0 + jest-watcher: 30.4.1 + slash: 5.1.0 + string-length: 6.0.0 + strip-ansi: 7.1.2 + + jest-watcher@30.4.1: + dependencies: + '@jest/test-result': 30.4.1 + '@jest/types': 30.4.1 + '@types/node': 24.12.0 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.13.1 + jest-util: 30.4.1 + string-length: 4.0.2 + jest-worker@27.5.1: dependencies: '@types/node': 24.12.0 @@ -24532,6 +26638,41 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 + jest-worker@30.4.1: + dependencies: + '@types/node': 24.12.0 + '@ungap/structured-clone': 1.3.0 + jest-util: 30.4.1 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + jest@30.4.2(@types/node@24.12.0)(esbuild-register@3.6.0(esbuild@0.27.2)): + dependencies: + '@jest/core': 30.4.2(esbuild-register@3.6.0(esbuild@0.27.2)) + '@jest/types': 30.4.1 + import-local: 3.2.0 + jest-cli: 30.4.2(@types/node@24.12.0)(esbuild-register@3.6.0(esbuild@0.27.2)) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - esbuild-register + - supports-color + - ts-node + + jest@30.4.2(@types/node@25.2.0)(esbuild-register@3.6.0(esbuild@0.27.2)): + dependencies: + '@jest/core': 30.4.2(esbuild-register@3.6.0(esbuild@0.27.2)) + '@jest/types': 30.4.1 + import-local: 3.2.0 + jest-cli: 30.4.2(@types/node@25.2.0)(esbuild-register@3.6.0(esbuild@0.27.2)) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - esbuild-register + - supports-color + - ts-node + optional: true + jimp-compact@0.16.1: {} jimp@1.6.1: @@ -24572,6 +26713,14 @@ snapshots: jiti@2.7.0: {} + joi@17.13.4: + dependencies: + '@hapi/hoek': 9.3.0 + '@hapi/topo': 5.1.0 + '@sideway/address': 4.1.5 + '@sideway/formula': 3.0.1 + '@sideway/pinpoint': 2.0.0 + jose@6.2.1: {} joycon@3.1.1: {} @@ -24928,6 +27077,8 @@ snapshots: lodash.escaperegexp@4.1.2: {} + lodash.flattendeep@4.4.0: {} + lodash.includes@4.3.0: {} lodash.isboolean@3.0.3: {} @@ -24970,6 +27121,8 @@ snapshots: strip-ansi: 7.1.2 wrap-ansi: 9.0.2 + loglevel@1.9.2: {} + long@5.3.2: {} longest-streak@3.1.0: {} @@ -25020,6 +27173,10 @@ snapshots: '@babel/types': 7.29.7 source-map-js: 1.2.1 + make-dir@3.1.0: + dependencies: + semver: 6.3.1 + make-dir@4.0.0: dependencies: semver: 7.8.4 @@ -25360,7 +27517,7 @@ snapshots: dependencies: '@babel/core': 7.29.0 '@babel/generator': 7.29.1 - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.7 '@babel/types': 7.29.7 flow-enums-runtime: 0.0.6 metro: 0.83.3 @@ -25381,7 +27538,7 @@ snapshots: '@babel/code-frame': 7.29.0 '@babel/core': 7.29.0 '@babel/generator': 7.29.1 - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.7 '@babel/template': 7.28.6 '@babel/traverse': 7.29.0 '@babel/types': 7.29.7 @@ -25698,6 +27855,8 @@ snapshots: pkg-types: 1.3.1 ufo: 1.6.3 + mockdate@3.0.5: {} + module-details-from-path@1.0.4: {} motion-dom@12.30.1: @@ -25830,6 +27989,8 @@ snapshots: napi-build-utils@2.0.0: {} + napi-postinstall@0.3.4: {} + nativewind@4.2.1(react-native-reanimated@4.1.6(@babel/core@7.29.0)(react-native-worklets@0.7.2(@babel/core@7.29.0)(react-native@0.81.5(@babel/core@7.29.0)(@types/react@19.2.17)(react@19.2.6))(react@19.2.6))(react-native@0.81.5(@babel/core@7.29.0)(@types/react@19.2.17)(react@19.2.6))(react@19.2.6))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.29.0)(@types/react@19.2.17)(react@19.2.6))(react@19.2.6))(react-native-svg@15.15.2(react-native@0.81.5(@babel/core@7.29.0)(@types/react@19.2.17)(react@19.2.6))(react@19.2.6))(react-native@0.81.5(@babel/core@7.29.0)(@types/react@19.2.17)(react@19.2.6))(react@19.2.6)(tailwindcss@3.4.19(tsx@4.22.4)(yaml@2.9.0)): dependencies: comment-json: 4.5.1 @@ -25911,6 +28072,10 @@ snapshots: node-machine-id@1.1.12: {} + node-preload@0.2.1: + dependencies: + process-on-spawn: 1.1.0 + node-pty@1.1.0(patch_hash=4dfdf785f5ac51a03f5d6032371cebe89036381acd403621f250a896245647c5): dependencies: node-addon-api: 7.1.1 @@ -25953,6 +28118,38 @@ snapshots: nwsapi@2.2.23: {} + nyc@15.1.0: + dependencies: + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + caching-transform: 4.0.0 + convert-source-map: 1.9.0 + decamelize: 1.2.0 + find-cache-dir: 3.3.2 + find-up: 4.1.0 + foreground-child: 2.0.0 + get-package-type: 0.1.0 + glob: 7.2.3 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-hook: 3.0.0 + istanbul-lib-instrument: 4.0.3 + istanbul-lib-processinfo: 2.0.3 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.2.0 + make-dir: 3.1.0 + node-preload: 0.2.1 + p-map: 3.0.0 + process-on-spawn: 1.1.0 + resolve-from: 5.0.0 + rimraf: 3.0.2 + signal-exit: 3.0.7 + spawn-wrap: 2.0.0 + test-exclude: 6.0.0 + yargs: 15.4.1 + transitivePeerDependencies: + - supports-color + ob1@0.83.3: dependencies: flow-enums-runtime: 0.0.6 @@ -26061,6 +28258,8 @@ snapshots: dependencies: yaml: 2.9.0 + opener@1.5.2: {} + optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -26104,6 +28303,8 @@ snapshots: orderedmap@2.1.1: {} + os-homedir@1.0.2: {} + outvariant@1.4.3: {} oxc-parser@0.120.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0): @@ -26278,7 +28479,7 @@ snapshots: '@oxfmt/binding-win32-ia32-msvc': 0.45.0 '@oxfmt/binding-win32-x64-msvc': 0.45.0 - oxlint-plugin-react-doctor@0.6.2: + oxlint-plugin-react-doctor@0.7.1: dependencies: '@typescript-eslint/types': 8.62.0 eslint-scope: 9.1.2 @@ -26325,6 +28526,10 @@ snapshots: dependencies: p-limit: 3.1.0 + p-map@3.0.0: + dependencies: + aggregate-error: 3.1.0 + p-map@7.0.4: {} p-retry@4.6.2: @@ -26334,6 +28539,13 @@ snapshots: p-try@2.2.0: {} + package-hash@4.0.0: + dependencies: + graceful-fs: 4.2.11 + hasha: 5.2.2 + lodash.flattendeep: 4.4.0 + release-zalgo: 1.0.0 + package-json-from-dist@1.0.1: {} package-manager-detector@1.6.0: {} @@ -26372,6 +28584,8 @@ snapshots: parse-ms@4.0.0: {} + parse-passwd@1.0.0: {} + parse-path@7.1.0: dependencies: protocols: 2.0.2 @@ -26419,6 +28633,11 @@ snapshots: path-parse@1.0.7: {} + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.3 + path-scurry@2.0.1: dependencies: lru-cache: 11.2.5 @@ -26480,6 +28699,10 @@ snapshots: pkce-challenge@5.0.1: {} + pkg-dir@4.2.0: + dependencies: + find-up: 4.1.0 + pkg-types@1.3.1: dependencies: confbox: 0.1.8 @@ -26515,6 +28738,13 @@ snapshots: pngjs@7.0.0: {} + portfinder@1.0.38: + dependencies: + async: 3.2.6 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + possible-typed-array-names@1.1.0: {} postcss-import@15.1.0(postcss@8.5.15): @@ -26596,9 +28826,11 @@ snapshots: query-selector-shadow-dom: 1.0.1 web-vitals: 5.1.0 - posthog-node@5.37.0: + posthog-node@5.37.0(rxjs@7.8.2): dependencies: '@posthog/core': 1.32.3 + optionalDependencies: + rxjs: 7.8.2 posthog-react-native-session-replay@1.6.0(react-native@0.81.5(@babel/core@7.29.0)(@types/react@19.2.17)(react@19.2.6))(react@19.2.6): dependencies: @@ -26682,6 +28914,10 @@ snapshots: process-nextick-args@2.0.1: {} + process-on-spawn@1.1.0: + dependencies: + fromentries: 1.3.2 + progress@2.0.3: {} promise-retry@2.0.1: @@ -26852,6 +29088,8 @@ snapshots: punycode@2.3.1: {} + pure-rand@7.0.1: {} + pvtsutils@1.3.6: dependencies: tslib: 2.8.1 @@ -26994,19 +29232,19 @@ snapshots: transitivePeerDependencies: - supports-color - react-doctor@0.6.2(@opentelemetry/core@2.8.0(@opentelemetry/api@1.9.1))(eslint@10.5.0(jiti@2.7.0)): + react-doctor@0.7.1(@opentelemetry/core@2.8.0(@opentelemetry/api@1.9.1))(eslint@10.5.0(jiti@2.7.0)): dependencies: '@babel/code-frame': 7.29.0 '@sentry/node': 10.61.0(@opentelemetry/core@2.8.0(@opentelemetry/api@1.9.1)) agent-install: 0.0.5 conf: 15.1.0 confbox: 0.2.4 - deslop-js: 0.6.2 + deslop-js: 0.7.1 eslint-plugin-react-hooks: 7.1.1(eslint@10.5.0(jiti@2.7.0)) jiti: 2.7.0 magicast: 0.5.3 oxlint: 1.66.0 - oxlint-plugin-react-doctor: 0.6.2 + oxlint-plugin-react-doctor: 0.7.1 prompts: 2.4.2 typescript: 5.9.3 vscode-languageserver: 9.0.1 @@ -27031,10 +29269,10 @@ snapshots: dependencies: react: 19.2.6 - react-grab@0.1.47(react@19.2.6): + react-grab@0.1.48(react@19.2.6): dependencies: - '@react-grab/cli': 0.1.47 - bippy: 0.5.42(react@19.2.6) + '@react-grab/cli': 0.1.48 + bippy: 0.5.43(react@19.2.6) optionalDependencies: react: 19.2.6 @@ -27276,9 +29514,9 @@ snapshots: preact: 10.29.2 prompts: 2.4.2 react: 19.2.6 - react-doctor: 0.6.2(@opentelemetry/core@2.8.0(@opentelemetry/api@1.9.1))(eslint@10.5.0(jiti@2.7.0)) + react-doctor: 0.7.1(@opentelemetry/core@2.8.0(@opentelemetry/api@1.9.1))(eslint@10.5.0(jiti@2.7.0)) react-dom: 19.2.6(react@19.2.6) - react-grab: 0.1.47(react@19.2.6) + react-grab: 0.1.48(react@19.2.6) optionalDependencies: esbuild: 0.27.2 unplugin: 3.0.0 @@ -27406,6 +29644,10 @@ snapshots: '@types/hast': 3.0.4 hast-util-sanitize: 5.0.2 + release-zalgo@1.0.0: + dependencies: + es6-error: 4.1.1 + remark-gfm@4.0.1: dependencies: '@types/mdast': 4.0.4 @@ -27451,12 +29693,16 @@ snapshots: transitivePeerDependencies: - supports-color + require-main-filename@2.0.0: {} + requireg@0.2.2: dependencies: nested-error-stacks: 2.0.1 rc: 1.2.8 resolve: 1.7.1 + requires-port@1.0.0: {} + resedit@1.7.2: dependencies: pe-library: 0.4.1 @@ -27465,6 +29711,15 @@ snapshots: resolve-alpn@1.2.1: {} + resolve-cwd@3.0.0: + dependencies: + resolve-from: 5.0.0 + + resolve-dir@0.1.1: + dependencies: + expand-tilde: 1.2.2 + global-modules: 0.2.3 + resolve-from@4.0.0: {} resolve-from@5.0.0: {} @@ -27674,6 +29929,10 @@ snapshots: dependencies: queue-microtask: 1.2.3 + rxjs@7.8.2: + dependencies: + tslib: 2.8.1 + safe-buffer@5.1.2: {} safe-buffer@5.2.1: {} @@ -27708,6 +29967,8 @@ snapshots: ajv-keywords: 5.1.0(ajv@8.20.0) optional: true + secure-compare@3.0.1: {} + semifies@1.0.0: {} semver-compare@1.0.0: @@ -27799,6 +30060,8 @@ snapshots: server-only@0.0.1: {} + set-blocking@2.0.0: {} + set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -27958,6 +30221,8 @@ snapshots: slash@3.0.0: {} + slash@5.1.0: {} + slice-ansi@5.0.0: dependencies: ansi-styles: 6.2.3 @@ -27988,6 +30253,11 @@ snapshots: source-map-js@1.2.1: {} + source-map-support@0.5.13: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 @@ -28001,6 +30271,24 @@ snapshots: space-separated-tokens@2.0.2: {} + spawn-wrap@2.0.0: + dependencies: + foreground-child: 2.0.0 + is-windows: 1.0.2 + make-dir: 3.1.0 + rimraf: 3.0.2 + signal-exit: 3.0.7 + which: 2.0.2 + + spawnd@5.0.0: + dependencies: + exit: 0.1.2 + signal-exit: 3.0.7 + tree-kill: 1.2.2 + wait-port: 0.2.14 + transitivePeerDependencies: + - supports-color + split-on-first@1.1.0: {} sprintf-js@1.0.3: {} @@ -28008,6 +30296,8 @@ snapshots: sprintf-js@1.1.3: optional: true + ssim.js@3.5.0: {} + stack-utils@2.0.6: dependencies: escape-string-regexp: 2.0.0 @@ -28072,12 +30362,27 @@ snapshots: string-argv@0.3.2: {} + string-length@4.0.2: + dependencies: + char-regex: 1.0.2 + strip-ansi: 6.0.1 + + string-length@6.0.0: + dependencies: + strip-ansi: 7.1.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 @@ -28122,6 +30427,8 @@ snapshots: strip-bom@3.0.0: {} + strip-bom@4.0.0: {} + strip-final-newline@2.0.0: {} strip-final-newline@3.0.0: {} @@ -28136,6 +30443,8 @@ snapshots: strip-json-comments@2.0.1: {} + strip-json-comments@3.1.1: {} + strip-json-comments@5.0.3: {} strtok3@10.3.5: @@ -28215,6 +30524,10 @@ snapshots: symbol-tree@3.2.4: {} + synckit@0.11.13: + dependencies: + '@pkgr/core': 0.3.6 + tabbable@6.4.0: {} tagged-tag@1.0.0: {} @@ -28307,15 +30620,16 @@ snapshots: ansi-escapes: 4.3.2 supports-hyperlinks: 2.3.0 - terser-webpack-plugin@5.3.16(esbuild@0.27.2)(webpack@5.105.0(esbuild@0.27.2)): + terser-webpack-plugin@5.3.16(@swc/core@1.15.43)(esbuild@0.27.2)(webpack@5.105.0(@swc/core@1.15.43)(esbuild@0.27.2)): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 serialize-javascript: 6.0.2 terser: 5.46.0 - webpack: 5.105.0(esbuild@0.27.2) + webpack: 5.105.0(@swc/core@1.15.43)(esbuild@0.27.2) optionalDependencies: + '@swc/core': 1.15.43 esbuild: 0.27.2 optional: true @@ -28474,7 +30788,7 @@ snapshots: tslib@2.8.1: {} - tsup@8.5.1(jiti@2.7.0)(postcss@8.5.15)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0): + tsup@8.5.1(@swc/core@1.15.43)(jiti@2.7.0)(postcss@8.5.15)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0): dependencies: bundle-require: 5.1.0(esbuild@0.27.2) cac: 6.7.14 @@ -28494,6 +30808,7 @@ snapshots: tinyglobby: 0.2.15 tree-kill: 1.2.2 optionalDependencies: + '@swc/core': 1.15.43 postcss: 8.5.15 typescript: 5.9.3 transitivePeerDependencies: @@ -28502,7 +30817,7 @@ snapshots: - tsx - yaml - tsup@8.5.1(jiti@2.7.0)(postcss@8.5.15)(tsx@4.22.4)(typescript@5.9.3)(yaml@2.9.0): + tsup@8.5.1(@swc/core@1.15.43)(jiti@2.7.0)(postcss@8.5.15)(tsx@4.22.4)(typescript@5.9.3)(yaml@2.9.0): dependencies: bundle-require: 5.1.0(esbuild@0.27.2) cac: 6.7.14 @@ -28522,6 +30837,7 @@ snapshots: tinyglobby: 0.2.15 tree-kill: 1.2.2 optionalDependencies: + '@swc/core': 1.15.43 postcss: 8.5.15 typescript: 5.9.3 transitivePeerDependencies: @@ -28530,7 +30846,7 @@ snapshots: - tsx - yaml - tsup@8.5.1(jiti@2.7.0)(postcss@8.5.15)(tsx@4.22.4)(typescript@6.0.3)(yaml@2.9.0): + tsup@8.5.1(@swc/core@1.15.43)(jiti@2.7.0)(postcss@8.5.15)(tsx@4.22.4)(typescript@6.0.3)(yaml@2.9.0): dependencies: bundle-require: 5.1.0(esbuild@0.27.2) cac: 6.7.14 @@ -28550,6 +30866,7 @@ snapshots: tinyglobby: 0.2.15 tree-kill: 1.2.2 optionalDependencies: + '@swc/core': 1.15.43 postcss: 8.5.15 typescript: 6.0.3 transitivePeerDependencies: @@ -28605,6 +30922,8 @@ snapshots: type-fest@0.7.1: {} + type-fest@0.8.1: {} + type-fest@3.13.1: {} type-fest@5.4.3: @@ -28640,6 +30959,10 @@ snapshots: - supports-color - xstate + typedarray-to-buffer@3.1.5: + dependencies: + is-typedarray: 1.0.0 + typescript@5.9.3: {} typescript@6.0.3: {} @@ -28690,6 +31013,10 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 + union@0.5.0: + dependencies: + qs: 6.15.0 + unique-string@2.0.0: dependencies: crypto-random-string: 2.0.0 @@ -28736,6 +31063,33 @@ snapshots: picomatch: 4.0.3 webpack-virtual-modules: 0.6.2 + unrs-resolver@1.12.2: + dependencies: + napi-postinstall: 0.3.4 + optionalDependencies: + '@unrs/resolver-binding-android-arm-eabi': 1.12.2 + '@unrs/resolver-binding-android-arm64': 1.12.2 + '@unrs/resolver-binding-darwin-arm64': 1.12.2 + '@unrs/resolver-binding-darwin-x64': 1.12.2 + '@unrs/resolver-binding-freebsd-x64': 1.12.2 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.12.2 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.12.2 + '@unrs/resolver-binding-linux-arm64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-arm64-musl': 1.12.2 + '@unrs/resolver-binding-linux-loong64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-loong64-musl': 1.12.2 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-riscv64-musl': 1.12.2 + '@unrs/resolver-binding-linux-s390x-gnu': 1.12.2 + '@unrs/resolver-binding-linux-x64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-x64-musl': 1.12.2 + '@unrs/resolver-binding-openharmony-arm64': 1.12.2 + '@unrs/resolver-binding-wasm32-wasi': 1.12.2 + '@unrs/resolver-binding-win32-arm64-msvc': 1.12.2 + '@unrs/resolver-binding-win32-ia32-msvc': 1.12.2 + '@unrs/resolver-binding-win32-x64-msvc': 1.12.2 + until-async@3.0.2: {} unzipper@0.12.3: @@ -28756,6 +31110,8 @@ snapshots: dependencies: punycode: 2.3.1 + url-join@4.0.1: {} + use-callback-ref@1.3.3(@types/react@19.2.17)(react@19.2.6): dependencies: react: 19.2.6 @@ -28803,6 +31159,14 @@ snapshots: uuid@7.0.3: {} + uuid@8.3.2: {} + + v8-to-istanbul@9.3.0: + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + '@types/istanbul-lib-coverage': 2.0.6 + convert-source-map: 2.0.0 + validate-npm-package-name@5.0.1: {} validate-npm-package-name@7.0.2: {} @@ -29037,6 +31401,36 @@ snapshots: transitivePeerDependencies: - msw + vitest@4.1.8(@opentelemetry/api@1.9.1)(@types/node@24.12.0)(@vitest/ui@4.1.8)(jsdom@26.1.0)(msw@2.12.8(@types/node@24.12.0)(typescript@5.9.3))(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0)): + dependencies: + '@vitest/expect': 4.1.8 + '@vitest/mocker': 4.1.8(msw@2.12.8(@types/node@24.12.0)(typescript@5.9.3))(rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0)) + '@vitest/pretty-format': 4.1.8 + '@vitest/runner': 4.1.8 + '@vitest/snapshot': 4.1.8 + '@vitest/spy': 4.1.8 + '@vitest/utils': 4.1.8 + es-module-lexer: 2.0.0 + expect-type: 1.3.0 + magic-string: 0.30.21 + obug: 2.1.1 + pathe: 2.0.3 + picomatch: 4.0.3 + std-env: 4.1.0 + tinybench: 2.9.0 + tinyexec: 1.0.2 + tinyglobby: 0.2.15 + tinyrainbow: 3.1.0 + vite: rolldown-vite@7.3.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@24.12.0)(esbuild@0.27.2)(jiti@2.7.0)(terser@5.46.0)(tsx@4.22.4)(yaml@2.9.0) + why-is-node-running: 2.3.0 + optionalDependencies: + '@opentelemetry/api': 1.9.1 + '@types/node': 24.12.0 + '@vitest/ui': 4.1.8(vitest@4.1.8) + jsdom: 26.1.0 + transitivePeerDependencies: + - msw + vitest@4.1.8(@opentelemetry/api@1.9.1)(@types/node@25.2.0)(@vitest/ui@4.1.8)(jsdom@26.1.0)(msw@2.12.8(@types/node@25.2.0)(typescript@5.9.3))(vite@7.3.5(@types/node@25.2.0)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.8 @@ -29126,6 +31520,24 @@ snapshots: dependencies: xml-name-validator: 5.0.0 + wait-on@7.2.0: + dependencies: + axios: 1.15.0 + joi: 17.13.4 + lodash: 4.17.23 + minimist: 1.2.8 + rxjs: 7.8.2 + transitivePeerDependencies: + - debug + + wait-port@0.2.14: + dependencies: + chalk: 2.4.2 + commander: 3.0.2 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + walk-up-path@4.0.0: {} walker@1.0.8: @@ -29171,7 +31583,7 @@ snapshots: webpack-virtual-modules@0.6.2: {} - webpack@5.105.0(esbuild@0.27.2): + webpack@5.105.0(@swc/core@1.15.43)(esbuild@0.27.2): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -29195,7 +31607,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.3 - terser-webpack-plugin: 5.3.16(esbuild@0.27.2)(webpack@5.105.0(esbuild@0.27.2)) + terser-webpack-plugin: 5.3.16(@swc/core@1.15.43)(esbuild@0.27.2)(webpack@5.105.0(@swc/core@1.15.43)(esbuild@0.27.2)) watchpack: 2.5.1 webpack-sources: 3.3.3 transitivePeerDependencies: @@ -29204,6 +31616,10 @@ snapshots: - uglify-js optional: true + whatwg-encoding@2.0.0: + dependencies: + iconv-lite: 0.6.3 + whatwg-encoding@3.1.1: dependencies: iconv-lite: 0.6.3 @@ -29230,6 +31646,8 @@ snapshots: when-exit@2.1.5: {} + which-module@2.0.1: {} + which-typed-array@1.1.20: dependencies: available-typed-arrays: 1.0.7 @@ -29240,6 +31658,10 @@ snapshots: gopd: 1.2.0 has-tostringtag: 1.0.2 + which@1.3.1: + dependencies: + isexe: 2.0.0 + which@2.0.2: dependencies: isexe: 2.0.0 @@ -29277,6 +31699,12 @@ snapshots: 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: dependencies: ansi-styles: 6.2.3 @@ -29285,11 +31713,23 @@ snapshots: wrappy@1.0.2: {} + write-file-atomic@3.0.3: + dependencies: + imurmurhash: 0.1.4 + is-typedarray: 1.0.0 + signal-exit: 3.0.7 + typedarray-to-buffer: 3.1.5 + write-file-atomic@4.0.2: dependencies: imurmurhash: 0.1.4 signal-exit: 3.0.7 + write-file-atomic@5.0.1: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 4.1.0 + ws@6.2.3: dependencies: async-limiter: 1.0.1 @@ -29326,12 +31766,16 @@ snapshots: sax: 1.6.0 xmlbuilder: 11.0.1 + xml@1.0.1: {} + xmlbuilder@11.0.1: {} xmlbuilder@15.1.1: {} xmlchars@2.2.0: {} + y18n@4.0.3: {} + y18n@5.0.8: {} yallist@3.1.1: {} @@ -29342,8 +31786,27 @@ snapshots: yaml@2.9.0: {} + yargs-parser@18.1.3: + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + yargs-parser@21.1.1: {} + yargs@15.4.1: + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + yargs@17.7.2: dependencies: cliui: 8.0.1