chore: merge executor worktree (worktree-agent-af89750bf86857964)

This commit is contained in:
Lucas Berger
2026-06-18 12:44:24 -04:00
13 changed files with 682 additions and 50 deletions
+7
View File
@@ -63,6 +63,13 @@ apps/pwa/test-results/
apps/pwa/playwright-report/ apps/pwa/playwright-report/
apps/pwa/blob-report/ apps/pwa/blob-report/
# PWA icon generator intermediate output (pwa:icons renames these to canonical names)
apps/pwa/public/pwa-64x64.png
apps/pwa/public/pwa-192x192.png
apps/pwa/public/pwa-512x512.png
apps/pwa/public/maskable-icon-512x512.png
apps/pwa/public/apple-touch-icon-180x180.png
# MemPalace per-project files (issue #185) # MemPalace per-project files (issue #185)
mempalace.yaml mempalace.yaml
entities.json entities.json
@@ -0,0 +1,149 @@
---
phase: 17-ui-optimization-polish
plan: "02"
subsystem: ui
tags: [pwa, icons, branding, svg, vite-pwa, assets-generator, logo]
# Dependency graph
requires: []
provides:
- "Approved FamilySync logo SVG (warm peach gradient bg, amber roof, bold white walls, heart finial, three family figures)"
- "Full PWA icon/favicon set derived from approved logo: favicon.svg, favicon.ico, icon-192.png, icon-512.png, icon-maskable-512.png (512x512 safe-zone), apple-touch-icon.png (180x180)"
- "@vite-pwa/assets-generator devDependency + pwa:icons script in apps/pwa"
- "Brand accent decision: --color-member-0 → #e8915a (warm amber)"
- "Brand logo border-radius decision: --brand-logo-border-radius: 0 (SVG draws its own shape)"
affects: [17-04]
# Tech tracking
tech-stack:
added:
- "@vite-pwa/assets-generator@1.0.2 (devDependency in apps/pwa)"
- "sharp (transitive, for PNG rasterisation)"
- "sharp-ico (transitive, for ICO encoding)"
patterns:
- "pwa-assets.config.ts: minimal2023Preset, images: ['public/logo.svg'], no overrideManifestIcons"
- "pnpm pwa:icons regenerates the full set from logo.svg on demand"
key-files:
created:
- "apps/pwa/pwa-assets.config.ts — @vite-pwa/assets-generator config (minimal-2023 preset)"
- "apps/pwa/public/logo.svg — approved brand mark (hand-authored, warm/family-house)"
- "apps/pwa/public/favicon.svg — copy of logo.svg for SVG favicon"
- "apps/pwa/public/favicon.ico — 48px ICO from generator (967 B)"
- "apps/pwa/public/icon-192.png — 192x192 standard PWA icon"
- "apps/pwa/public/icon-512.png — 512x512 full-bleed PWA icon"
- "apps/pwa/public/icon-maskable-512.png — 512x512 maskable with safe-zone padding"
- "apps/pwa/public/apple-touch-icon.png — 180x180 Apple touch icon"
modified:
- "apps/pwa/package.json — added @vite-pwa/assets-generator devDep + pwa:icons script"
key-decisions:
- "Logo approved: higher-contrast family-house SVG with warm peach gradient background, amber gradient roof, bold white house body, heart finial, two parent figures (rose + blue) flanking a child figure (gold)"
- "Brand accent approved: --color-member-0 → #e8915a (warm amber) — apply in tokens.css, index.html theme-color, vite.config.ts theme_color in plan 17-04"
- "--brand-logo-border-radius: 0 — SVG draws its own rounded-square background (rx=104); no additional CSS clip needed; apply in plan 17-04"
- "Generator preset: minimal2023Preset without overrideManifestIcons — vite.config.ts manifest maintained by hand (plan 17-04)"
- "favicon.svg is an exact copy of logo.svg; modern browsers prefer SVG favicon over ICO"
patterns-established:
- "Icon regeneration: cd apps/pwa && pnpm pwa:icons — always runs from apps/pwa to resolve pwa-assets.config.ts paths correctly"
- "Asset source of truth: apps/pwa/public/logo.svg — all derived assets regenerated from it"
requirements-completed: [D-03, D-04]
# Metrics
duration: 35min
completed: 2026-06-18
status: complete
---
# Phase 17 Plan 02: Branding Assets Summary
**Approved FamilySync family-house logo SVG committed with full 7-asset PWA icon set derived via @vite-pwa/assets-generator minimal-2023 preset; brand accent #e8915a and --brand-logo-border-radius: 0 recorded for plan 17-04**
## Performance
- **Duration:** ~35 min (including human checkpoint for logo approval)
- **Started:** 2026-06-18T12:00:00Z
- **Completed:** 2026-06-18T12:45:00Z
- **Tasks:** 3 (Tasks 1+2 auto, Task 3 human checkpoint, continuation applied approved art)
- **Files modified:** 9
## Accomplishments
- Installed `@vite-pwa/assets-generator@1.0.2` in `apps/pwa` with `pnpm pwa:icons` script
- Hand-authored warm/rounded/at-home FamilySync logo SVG; replaced with operator-approved higher-contrast redesign post-checkpoint
- Generated complete icon/favicon set (favicon.ico 967 B, maskable 512x512 with safe-zone, apple-touch 180x180, standard 192 and 512 PNGs)
- Captured three operator brand decisions required by plan 17-04 (logo art, accent hex, border-radius)
## Task Commits
Each task was committed atomically:
1. **Task 1: Install @vite-pwa/assets-generator, author logo.svg, add pwa-assets.config.ts** - `7db9005` (feat)
2. **Task 2: Generate the full icon/favicon set and validate formats** - `b364573` (feat)
3. **Task 3 (post-checkpoint continuation): Apply approved logo + regenerate icon set** - `4c99470` (feat)
## Files Created/Modified
- `apps/pwa/package.json` — added `@vite-pwa/assets-generator@1.0.2` devDependency + `"pwa:icons"` script
- `apps/pwa/pwa-assets.config.ts` — generator config: `minimal2023Preset`, `images: ['public/logo.svg']`, no `overrideManifestIcons`
- `apps/pwa/public/logo.svg` — approved brand mark (1926 B): warm peach gradient bg (rx=104), amber roof gradient, bold white walls, heart finial (#F25C7A), family of three (rose parent + gold child + blue parent)
- `apps/pwa/public/favicon.svg` — copy of logo.svg (SVG favicon for modern browsers)
- `apps/pwa/public/favicon.ico` — 48px ICO, 967 B (non-trivial; replaces zero-byte stub)
- `apps/pwa/public/icon-192.png` — 192x192 standard PWA icon (2869 B)
- `apps/pwa/public/icon-512.png` — 512x512 full-bleed PWA icon (12056 B)
- `apps/pwa/public/icon-maskable-512.png` — 512x512 maskable icon with safe-zone padding (8627 B; distinct from icon-512.png)
- `apps/pwa/public/apple-touch-icon.png` — 180x180 Apple touch icon (1744 B)
## Decisions Made
### APPROVED BRAND DECISIONS FOR PLAN 17-04
These three decisions were explicitly approved by the operator at the Task 3 checkpoint and MUST be consumed verbatim by plan 17-04:
1. **Logo art: APPROVED** — the redesigned higher-contrast family-house SVG is the canonical FamilySync brand mark. No further logo revision needed before plan 17-04 wiring.
2. **Brand accent: `#e8915a` (warm amber)**
- Apply to `tokens.css` as `--color-member-0: #e8915a`
- Apply to `index.html` `<meta name="theme-color">` as `#e8915a`
- Apply to `vite.config.ts` manifest `theme_color` as `#e8915a`
3. **`--brand-logo-border-radius: 0`**
- The SVG draws its own rounded-square background (`rx="104"` on the background rect)
- No additional CSS `border-radius` clip needed on the `<img>` element in BrandSlot
- Apply as `--brand-logo-border-radius: 0` in `tokens.css`
### Generator setup decisions
- `minimal2023Preset` from `@vite-pwa/assets-generator/config` — handles safe-zone math for maskable, ICO encoding via sharp-ico, and standard sizes
- `overrideManifestIcons: true` was deliberately NOT set — the manifest is maintained by hand in `vite.config.ts` (plan 17-04 responsibility)
- `favicon.svg` is a direct copy of `logo.svg`; the generator does not produce a separate favicon.svg so the `pwa:icons` script copies it
## Deviations from Plan
None — plan executed exactly as written. The continuation agent applied the operator-approved logo replacement and regenerated all icons atomically after the checkpoint was cleared.
## Issues Encountered
- `sharp` module not resolvable from worktree root for metadata validation — resolved by using Python's PNG IHDR header parser instead to confirm dimensions (512x512 maskable, 192x192 standard, 180x180 apple-touch). Generator output confirmed valid.
## User Setup Required
None — no external service configuration required.
## Next Phase Readiness
Plan 17-04 (brand wiring) can proceed immediately. It has all three required inputs:
- Logo source: `apps/pwa/public/logo.svg` (committed)
- Brand accent: `#e8915a`
- Logo border-radius: `0`
Files 17-04 will wire:
- `apps/pwa/src/styles/tokens.css``--color-member-0`, `--brand-logo-border-radius`
- `apps/pwa/index.html``<meta name="theme-color">`, favicon `<link>` tags
- `apps/pwa/vite.config.ts` — manifest `theme_color`, `icons` array
- `apps/pwa/src/components/BrandSlot.tsx` — wire `<img src="/logo.svg">`
---
*Phase: 17-ui-optimization-polish*
*Completed: 2026-06-18*
+4 -2
View File
@@ -12,7 +12,8 @@
"test": "vitest run", "test": "vitest run",
"test:e2e": "playwright test", "test:e2e": "playwright test",
"test:e2e:ui": "playwright test --ui", "test:e2e:ui": "playwright test --ui",
"test:e2e:headed": "playwright test --headed" "test:e2e:headed": "playwright test --headed",
"pwa:icons": "pwa-assets-generator --config pwa-assets.config.ts && cp public/pwa-192x192.png public/icon-192.png && cp public/pwa-512x512.png public/icon-512.png && cp public/maskable-icon-512x512.png public/icon-maskable-512.png && cp public/apple-touch-icon-180x180.png public/apple-touch-icon.png && cp public/logo.svg public/favicon.svg"
}, },
"dependencies": { "dependencies": {
"@dnd-kit/core": "^6.3.1", "@dnd-kit/core": "^6.3.1",
@@ -36,14 +37,15 @@
}, },
"devDependencies": { "devDependencies": {
"@playwright/test": "1.60.0", "@playwright/test": "1.60.0",
"mysql2": "3.22.4",
"@testing-library/jest-dom": "^6.6.3", "@testing-library/jest-dom": "^6.6.3",
"@testing-library/react": "^16.3.0", "@testing-library/react": "^16.3.0",
"@types/node": "^22.19.19", "@types/node": "^22.19.19",
"@types/react": "^19.0.0", "@types/react": "^19.0.0",
"@types/react-dom": "^19.0.0", "@types/react-dom": "^19.0.0",
"@vite-pwa/assets-generator": "1.0.2",
"@vitejs/plugin-react": "^4.3.0", "@vitejs/plugin-react": "^4.3.0",
"jsdom": "^26.1.0", "jsdom": "^26.1.0",
"mysql2": "3.22.4",
"typescript": "^5.5.0", "typescript": "^5.5.0",
"vite": "8.0.16", "vite": "8.0.16",
"vitest": "^4.1.8", "vitest": "^4.1.8",
Binary file not shown.

Before

Width:  |  Height:  |  Size: 617 B

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 967 B

+44
View File
@@ -0,0 +1,44 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="none">
<defs>
<linearGradient id="bg" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#FFEFE0"/>
<stop offset="1" stop-color="#FBD9BE"/>
</linearGradient>
<linearGradient id="roof" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#EE9A5E"/>
<stop offset="1" stop-color="#E2823F"/>
</linearGradient>
</defs>
<!-- Warm peach rounded-square background -->
<rect width="512" height="512" rx="104" fill="url(#bg)"/>
<!-- Soft ground shadow under the house -->
<ellipse cx="256" cy="420" rx="150" ry="16" fill="#E2823F" opacity="0.14"/>
<!-- House walls: bold white, rounded, high contrast on peach -->
<rect x="150" y="250" width="212" height="166" rx="26" fill="#FFFFFF"/>
<!-- Roof: amber, overhangs the walls, friendly thick form -->
<path d="M256 108 L96 256 a14 14 0 0 0 9.5 24.5 L406.5 280.5 a14 14 0 0 0 9.5 -24.5 Z" fill="url(#roof)"/>
<!-- Heart finial above the roof peak -->
<path d="M256 70 c-9 -16 -34 -12 -34 8 c0 14 18 24 34 38 c16 -14 34 -24 34 -38 c0 -20 -25 -24 -34 -8 Z" fill="#F25C7A"/>
<!-- ===== Family of three, clearly spaced inside the home ===== -->
<!-- Parent (rose) -->
<path d="M170 408 v-40 a26 26 0 0 1 52 0 v40 Z" fill="#F25C7A"/>
<circle cx="196" cy="332" r="25" fill="#FFD8B8"/>
<path d="M171 330 a25 25 0 0 1 50 0 a40 40 0 0 0 -50 0 Z" fill="#6F4A38"/>
<!-- Child (warm gold), smaller, centered -->
<path d="M234 408 v-30 a22 22 0 0 1 44 0 v30 Z" fill="#F2A93C"/>
<circle cx="256" cy="350" r="21" fill="#FFD8B8"/>
<path d="M235 349 a21 21 0 0 1 42 0 a34 34 0 0 0 -42 0 Z" fill="#C97D4A"/>
<!-- Parent (blue) -->
<path d="M290 408 v-40 a26 26 0 0 1 52 0 v40 Z" fill="#4A90D9"/>
<circle cx="316" cy="332" r="25" fill="#FFD8B8"/>
<path d="M291 330 a25 25 0 0 1 50 0 a40 40 0 0 0 -50 0 Z" fill="#3A2A22"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 699 B

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

+44
View File
@@ -0,0 +1,44 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="none">
<defs>
<linearGradient id="bg" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#FFEFE0"/>
<stop offset="1" stop-color="#FBD9BE"/>
</linearGradient>
<linearGradient id="roof" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#EE9A5E"/>
<stop offset="1" stop-color="#E2823F"/>
</linearGradient>
</defs>
<!-- Warm peach rounded-square background -->
<rect width="512" height="512" rx="104" fill="url(#bg)"/>
<!-- Soft ground shadow under the house -->
<ellipse cx="256" cy="420" rx="150" ry="16" fill="#E2823F" opacity="0.14"/>
<!-- House walls: bold white, rounded, high contrast on peach -->
<rect x="150" y="250" width="212" height="166" rx="26" fill="#FFFFFF"/>
<!-- Roof: amber, overhangs the walls, friendly thick form -->
<path d="M256 108 L96 256 a14 14 0 0 0 9.5 24.5 L406.5 280.5 a14 14 0 0 0 9.5 -24.5 Z" fill="url(#roof)"/>
<!-- Heart finial above the roof peak -->
<path d="M256 70 c-9 -16 -34 -12 -34 8 c0 14 18 24 34 38 c16 -14 34 -24 34 -38 c0 -20 -25 -24 -34 -8 Z" fill="#F25C7A"/>
<!-- ===== Family of three, clearly spaced inside the home ===== -->
<!-- Parent (rose) -->
<path d="M170 408 v-40 a26 26 0 0 1 52 0 v40 Z" fill="#F25C7A"/>
<circle cx="196" cy="332" r="25" fill="#FFD8B8"/>
<path d="M171 330 a25 25 0 0 1 50 0 a40 40 0 0 0 -50 0 Z" fill="#6F4A38"/>
<!-- Child (warm gold), smaller, centered -->
<path d="M234 408 v-30 a22 22 0 0 1 44 0 v30 Z" fill="#F2A93C"/>
<circle cx="256" cy="350" r="21" fill="#FFD8B8"/>
<path d="M235 349 a21 21 0 0 1 42 0 a34 34 0 0 0 -42 0 Z" fill="#C97D4A"/>
<!-- Parent (blue) -->
<path d="M290 408 v-40 a26 26 0 0 1 52 0 v40 Z" fill="#4A90D9"/>
<circle cx="316" cy="332" r="25" fill="#FFD8B8"/>
<path d="M291 330 a25 25 0 0 1 50 0 a40 40 0 0 0 -50 0 Z" fill="#3A2A22"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

+10
View File
@@ -0,0 +1,10 @@
import { defineConfig, minimal2023Preset } from '@vite-pwa/assets-generator/config'
export default defineConfig({
preset: {
...minimal2023Preset,
},
images: ['public/logo.svg'],
// Do NOT set overrideManifestIcons: true — the manifest is maintained by hand
// in vite.config.ts (plan 17-04); auto-override would stomp the explicit entries.
})
+423 -48
View File
@@ -13,16 +13,16 @@ importers:
version: 9.39.4 version: 9.39.4
eslint: eslint:
specifier: 9.39.4 specifier: 9.39.4
version: 9.39.4 version: 9.39.4(jiti@2.7.0)
eslint-config-prettier: eslint-config-prettier:
specifier: 10.1.8 specifier: 10.1.8
version: 10.1.8(eslint@9.39.4) version: 10.1.8(eslint@9.39.4(jiti@2.7.0))
eslint-plugin-react: eslint-plugin-react:
specifier: 7.37.5 specifier: 7.37.5
version: 7.37.5(eslint@9.39.4) version: 7.37.5(eslint@9.39.4(jiti@2.7.0))
eslint-plugin-react-hooks: eslint-plugin-react-hooks:
specifier: 7.1.1 specifier: 7.1.1
version: 7.1.1(eslint@9.39.4) version: 7.1.1(eslint@9.39.4(jiti@2.7.0))
eslint-plugin-security: eslint-plugin-security:
specifier: 3.0.1 specifier: 3.0.1
version: 3.0.1 version: 3.0.1
@@ -34,7 +34,7 @@ importers:
version: 3.8.4 version: 3.8.4
typescript-eslint: typescript-eslint:
specifier: 8.61.0 specifier: 8.61.0
version: 8.61.0(eslint@9.39.4)(typescript@5.9.3) version: 8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3)
apps/api: apps/api:
dependencies: dependencies:
@@ -92,7 +92,7 @@ importers:
version: 5.9.3 version: 5.9.3
vitest: vitest:
specifier: ^4.1.8 specifier: ^4.1.8
version: 4.1.8(@types/node@22.19.19)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(terser@5.48.0)(tsx@4.22.4)) version: 4.1.8(@types/node@22.19.19)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.48.0)(tsx@4.22.4))
apps/pwa: apps/pwa:
dependencies: dependencies:
@@ -146,7 +146,7 @@ importers:
version: 0.3.2 version: 0.3.2
vite-plugin-pwa: vite-plugin-pwa:
specifier: ^1.3.0 specifier: ^1.3.0
version: 1.3.0(vite@8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(terser@5.48.0)(tsx@4.22.4))(workbox-build@7.4.1(@types/babel__core@7.20.5))(workbox-window@7.4.1) version: 1.3.0(@vite-pwa/assets-generator@1.0.2)(vite@8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.48.0)(tsx@4.22.4))(workbox-build@7.4.1(@types/babel__core@7.20.5))(workbox-window@7.4.1)
zustand: zustand:
specifier: 5.0.14 specifier: 5.0.14
version: 5.0.14(@types/react@19.2.16)(react@19.2.7) version: 5.0.14(@types/react@19.2.16)(react@19.2.7)
@@ -169,9 +169,12 @@ importers:
'@types/react-dom': '@types/react-dom':
specifier: ^19.0.0 specifier: ^19.0.0
version: 19.2.3(@types/react@19.2.16) version: 19.2.3(@types/react@19.2.16)
'@vite-pwa/assets-generator':
specifier: 1.0.2
version: 1.0.2
'@vitejs/plugin-react': '@vitejs/plugin-react':
specifier: ^4.3.0 specifier: ^4.3.0
version: 4.7.0(vite@8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(terser@5.48.0)(tsx@4.22.4)) version: 4.7.0(vite@8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.48.0)(tsx@4.22.4))
jsdom: jsdom:
specifier: ^26.1.0 specifier: ^26.1.0
version: 26.1.0 version: 26.1.0
@@ -183,10 +186,10 @@ importers:
version: 5.9.3 version: 5.9.3
vite: vite:
specifier: 8.0.16 specifier: 8.0.16
version: 8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(terser@5.48.0)(tsx@4.22.4) version: 8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.48.0)(tsx@4.22.4)
vitest: vitest:
specifier: ^4.1.8 specifier: ^4.1.8
version: 4.1.8(@types/node@22.19.19)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(terser@5.48.0)(tsx@4.22.4)) version: 4.1.8(@types/node@22.19.19)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.48.0)(tsx@4.22.4))
workbox-core: workbox-core:
specifier: ^7.4.1 specifier: ^7.4.1
version: 7.4.1 version: 7.4.1
@@ -724,6 +727,9 @@ packages:
resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
'@canvas/image-data@1.1.0':
resolution: {integrity: sha512-QdObRRjRbcXGmM1tmJ+MrHcaz1MftF2+W7YI+MsphnsCrmtyfS0d5qJbk0MeSbUeyM/jCb0hmnkXPsy026L7dA==}
'@csstools/color-helpers@5.1.0': '@csstools/color-helpers@5.1.0':
resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==} resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==}
engines: {node: '>=18'} engines: {node: '>=18'}
@@ -1314,6 +1320,123 @@ packages:
resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
engines: {node: '>=18.18'} engines: {node: '>=18.18'}
'@img/sharp-darwin-arm64@0.33.5':
resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64]
os: [darwin]
'@img/sharp-darwin-x64@0.33.5':
resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [darwin]
'@img/sharp-libvips-darwin-arm64@1.0.4':
resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==}
cpu: [arm64]
os: [darwin]
'@img/sharp-libvips-darwin-x64@1.0.4':
resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==}
cpu: [x64]
os: [darwin]
'@img/sharp-libvips-linux-arm64@1.0.4':
resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@img/sharp-libvips-linux-arm@1.0.5':
resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==}
cpu: [arm]
os: [linux]
libc: [glibc]
'@img/sharp-libvips-linux-s390x@1.0.4':
resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==}
cpu: [s390x]
os: [linux]
libc: [glibc]
'@img/sharp-libvips-linux-x64@1.0.4':
resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==}
cpu: [x64]
os: [linux]
libc: [glibc]
'@img/sharp-libvips-linuxmusl-arm64@1.0.4':
resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==}
cpu: [arm64]
os: [linux]
libc: [musl]
'@img/sharp-libvips-linuxmusl-x64@1.0.4':
resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==}
cpu: [x64]
os: [linux]
libc: [musl]
'@img/sharp-linux-arm64@0.33.5':
resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@img/sharp-linux-arm@0.33.5':
resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm]
os: [linux]
libc: [glibc]
'@img/sharp-linux-s390x@0.33.5':
resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [s390x]
os: [linux]
libc: [glibc]
'@img/sharp-linux-x64@0.33.5':
resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [linux]
libc: [glibc]
'@img/sharp-linuxmusl-arm64@0.33.5':
resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64]
os: [linux]
libc: [musl]
'@img/sharp-linuxmusl-x64@0.33.5':
resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [linux]
libc: [musl]
'@img/sharp-wasm32@0.33.5':
resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [wasm32]
'@img/sharp-win32-ia32@0.33.5':
resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [ia32]
os: [win32]
'@img/sharp-win32-x64@0.33.5':
resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [win32]
'@isaacs/cliui@9.0.0': '@isaacs/cliui@9.0.0':
resolution: {integrity: sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==} resolution: {integrity: sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==}
engines: {node: '>=18'} engines: {node: '>=18'}
@@ -1371,6 +1494,9 @@ packages:
peerDependencies: peerDependencies:
preact: '>= 10.25.0 || >=11.0.0-0' preact: '>= 10.25.0 || >=11.0.0-0'
'@quansync/fs@1.0.0':
resolution: {integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==}
'@rolldown/binding-android-arm64@1.0.3': '@rolldown/binding-android-arm64@1.0.3':
resolution: {integrity: sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw==} resolution: {integrity: sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw==}
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
@@ -1851,6 +1977,11 @@ packages:
resolution: {integrity: sha512-QVLZu3ZPQEE+HICQyAMZ2yLQhxf0meY/wx6Hx14YcTNj13JB3qHlX3lJ02L3fLGHgERRH71kvYDwiXIguT3AjQ==} resolution: {integrity: sha512-QVLZu3ZPQEE+HICQyAMZ2yLQhxf0meY/wx6Hx14YcTNj13JB3qHlX3lJ02L3fLGHgERRH71kvYDwiXIguT3AjQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@vite-pwa/assets-generator@1.0.2':
resolution: {integrity: sha512-MCbrb508JZHqe7bUibmZj/lyojdhLRnfkmyXnkrCM2zVrjTgL89U8UEfInpKTvPeTnxsw2hmyZxnhsdNR6yhwg==}
engines: {node: '>=16.14.0'}
hasBin: true
'@vitejs/plugin-react@4.7.0': '@vitejs/plugin-react@4.7.0':
resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==} resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==}
engines: {node: ^14.18.0 || >=16.0.0} engines: {node: ^14.18.0 || >=16.0.0}
@@ -2044,6 +2175,10 @@ packages:
buffer-from@1.1.2: buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
cac@6.7.14:
resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
engines: {node: '>=8'}
call-bind-apply-helpers@1.0.2: call-bind-apply-helpers@1.0.2:
resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
@@ -2087,6 +2222,16 @@ packages:
color-name@1.1.4: color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
color-string@1.9.1:
resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
color@4.2.3:
resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
engines: {node: '>=12.5.0'}
colorette@2.0.20:
resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
commander@2.20.3: commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
@@ -2101,6 +2246,10 @@ packages:
concat-map@0.0.1: concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
consola@3.4.2:
resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==}
engines: {node: ^14.18.0 || >=16.10.0}
convert-source-map@2.0.0: convert-source-map@2.0.0:
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
@@ -2157,6 +2306,14 @@ packages:
decimal.js@10.6.0: decimal.js@10.6.0:
resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==}
decode-bmp@0.2.1:
resolution: {integrity: sha512-NiOaGe+GN0KJqi2STf24hfMkFitDUaIoUU3eKvP/wAbLe8o6FuW5n/x7MHPR0HKvBokp6MQY/j7w8lewEeVCIA==}
engines: {node: '>=8.6.0'}
decode-ico@0.4.1:
resolution: {integrity: sha512-69NZfbKIzux1vBOd31al3XnMnH+2mqDhEgLdpygErm4d60N+UwA5Sq5WFjmEDQzumgB9fElojGwWG0vybVfFmA==}
engines: {node: '>=8.6'}
decode-named-character-reference@1.3.0: decode-named-character-reference@1.3.0:
resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==}
@@ -2175,6 +2332,9 @@ packages:
resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
defu@6.1.7:
resolution: {integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==}
denque@2.1.0: denque@2.1.0:
resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==}
engines: {node: '>=0.10'} engines: {node: '>=0.10'}
@@ -2667,6 +2827,9 @@ packages:
ical.js@2.2.1: ical.js@2.2.1:
resolution: {integrity: sha512-yK/UlPbEs316igb/tjRgbFA8ZV75rCsBJp/hWOatpyaPNlgw0dGDmU+FoicOcwX4xXkeXOkYiOmCqNPFpNPkQg==} resolution: {integrity: sha512-yK/UlPbEs316igb/tjRgbFA8ZV75rCsBJp/hWOatpyaPNlgw0dGDmU+FoicOcwX4xXkeXOkYiOmCqNPFpNPkQg==}
ico-endec@0.1.6:
resolution: {integrity: sha512-ZdLU38ZoED3g1j3iEyzcQj+wAkY2xfWNkymszfJPoxucIUhK7NayQ+/C4Kv0nDFMIsbtbEHldv3V8PU494/ueQ==}
iconv-lite@0.6.3: iconv-lite@0.6.3:
resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
@@ -2715,6 +2878,9 @@ packages:
resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
is-arrayish@0.3.4:
resolution: {integrity: sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==}
is-async-function@2.1.1: is-async-function@2.1.1:
resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
@@ -2861,6 +3027,10 @@ packages:
engines: {node: '>=10'} engines: {node: '>=10'}
hasBin: true hasBin: true
jiti@2.7.0:
resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==}
hasBin: true
js-tokens@4.0.0: js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
@@ -3375,6 +3545,9 @@ packages:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'} engines: {node: '>=6'}
quansync@1.0.0:
resolution: {integrity: sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA==}
queue-microtask@1.2.3: queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
@@ -3542,6 +3715,13 @@ packages:
resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
sharp-ico@0.1.5:
resolution: {integrity: sha512-a3jODQl82NPp1d5OYb0wY+oFaPk7AvyxipIowCHk7pBsZCWgbe0yAkU2OOXdoH0ENyANhyOQbs9xkAiRHcF02Q==}
sharp@0.33.5:
resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
shebang-command@2.0.0: shebang-command@2.0.0:
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
engines: {node: '>=8'} engines: {node: '>=8'}
@@ -3573,6 +3753,9 @@ packages:
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
engines: {node: '>=14'} engines: {node: '>=14'}
simple-swizzle@0.2.4:
resolution: {integrity: sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==}
slash@5.1.0: slash@5.1.0:
resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==}
engines: {node: '>=14.16'} engines: {node: '>=14.16'}
@@ -3710,6 +3893,9 @@ packages:
resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==} resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==}
hasBin: true hasBin: true
to-data-view@1.1.0:
resolution: {integrity: sha512-1eAdufMg6mwgmlojAx3QeMnzB/BTVp7Tbndi3U7ftcT2zCZadjxkkmLmd97zmaxWi+sgGcgWrokmpEoy0Dn0vQ==}
to-regex-range@5.0.1: to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'} engines: {node: '>=8.0'}
@@ -3786,6 +3972,12 @@ packages:
resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
unconfig-core@7.5.0:
resolution: {integrity: sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w==}
unconfig@7.5.0:
resolution: {integrity: sha512-oi8Qy2JV4D3UQ0PsopR28CzdQ3S/5A1zwsUwp/rosSbfhJ5z7b90bIyTwi/F7hCLD4SGcZVjDzd4XoUQcEanvA==}
undici-types@6.21.0: undici-types@6.21.0:
resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
@@ -4785,6 +4977,8 @@ snapshots:
'@babel/helper-string-parser': 7.29.7 '@babel/helper-string-parser': 7.29.7
'@babel/helper-validator-identifier': 7.29.7 '@babel/helper-validator-identifier': 7.29.7
'@canvas/image-data@1.1.0': {}
'@csstools/color-helpers@5.1.0': {} '@csstools/color-helpers@5.1.0': {}
'@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)':
@@ -5080,9 +5274,9 @@ snapshots:
'@esbuild/win32-x64@0.28.0': '@esbuild/win32-x64@0.28.0':
optional: true optional: true
'@eslint-community/eslint-utils@4.9.1(eslint@9.39.4)': '@eslint-community/eslint-utils@4.9.1(eslint@9.39.4(jiti@2.7.0))':
dependencies: dependencies:
eslint: 9.39.4 eslint: 9.39.4(jiti@2.7.0)
eslint-visitor-keys: 3.4.3 eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.12.2': {} '@eslint-community/regexpp@4.12.2': {}
@@ -5156,6 +5350,81 @@ snapshots:
'@humanwhocodes/retry@0.4.3': {} '@humanwhocodes/retry@0.4.3': {}
'@img/sharp-darwin-arm64@0.33.5':
optionalDependencies:
'@img/sharp-libvips-darwin-arm64': 1.0.4
optional: true
'@img/sharp-darwin-x64@0.33.5':
optionalDependencies:
'@img/sharp-libvips-darwin-x64': 1.0.4
optional: true
'@img/sharp-libvips-darwin-arm64@1.0.4':
optional: true
'@img/sharp-libvips-darwin-x64@1.0.4':
optional: true
'@img/sharp-libvips-linux-arm64@1.0.4':
optional: true
'@img/sharp-libvips-linux-arm@1.0.5':
optional: true
'@img/sharp-libvips-linux-s390x@1.0.4':
optional: true
'@img/sharp-libvips-linux-x64@1.0.4':
optional: true
'@img/sharp-libvips-linuxmusl-arm64@1.0.4':
optional: true
'@img/sharp-libvips-linuxmusl-x64@1.0.4':
optional: true
'@img/sharp-linux-arm64@0.33.5':
optionalDependencies:
'@img/sharp-libvips-linux-arm64': 1.0.4
optional: true
'@img/sharp-linux-arm@0.33.5':
optionalDependencies:
'@img/sharp-libvips-linux-arm': 1.0.5
optional: true
'@img/sharp-linux-s390x@0.33.5':
optionalDependencies:
'@img/sharp-libvips-linux-s390x': 1.0.4
optional: true
'@img/sharp-linux-x64@0.33.5':
optionalDependencies:
'@img/sharp-libvips-linux-x64': 1.0.4
optional: true
'@img/sharp-linuxmusl-arm64@0.33.5':
optionalDependencies:
'@img/sharp-libvips-linuxmusl-arm64': 1.0.4
optional: true
'@img/sharp-linuxmusl-x64@0.33.5':
optionalDependencies:
'@img/sharp-libvips-linuxmusl-x64': 1.0.4
optional: true
'@img/sharp-wasm32@0.33.5':
dependencies:
'@emnapi/runtime': 1.10.0
optional: true
'@img/sharp-win32-ia32@0.33.5':
optional: true
'@img/sharp-win32-x64@0.33.5':
optional: true
'@isaacs/cliui@9.0.0': {} '@isaacs/cliui@9.0.0': {}
'@jridgewell/gen-mapping@0.3.13': '@jridgewell/gen-mapping@0.3.13':
@@ -5214,6 +5483,10 @@ snapshots:
'@preact/signals-core': 1.14.2 '@preact/signals-core': 1.14.2
preact: 10.29.2 preact: 10.29.2
'@quansync/fs@1.0.0':
dependencies:
quansync: 1.0.0
'@rolldown/binding-android-arm64@1.0.3': '@rolldown/binding-android-arm64@1.0.3':
optional: true optional: true
@@ -5526,15 +5799,15 @@ snapshots:
dependencies: dependencies:
'@types/node': 22.19.19 '@types/node': 22.19.19
'@typescript-eslint/eslint-plugin@8.61.0(@typescript-eslint/parser@8.61.0(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4)(typescript@5.9.3)': '@typescript-eslint/eslint-plugin@8.61.0(@typescript-eslint/parser@8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3)':
dependencies: dependencies:
'@eslint-community/regexpp': 4.12.2 '@eslint-community/regexpp': 4.12.2
'@typescript-eslint/parser': 8.61.0(eslint@9.39.4)(typescript@5.9.3) '@typescript-eslint/parser': 8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3)
'@typescript-eslint/scope-manager': 8.61.0 '@typescript-eslint/scope-manager': 8.61.0
'@typescript-eslint/type-utils': 8.61.0(eslint@9.39.4)(typescript@5.9.3) '@typescript-eslint/type-utils': 8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3)
'@typescript-eslint/utils': 8.61.0(eslint@9.39.4)(typescript@5.9.3) '@typescript-eslint/utils': 8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3)
'@typescript-eslint/visitor-keys': 8.61.0 '@typescript-eslint/visitor-keys': 8.61.0
eslint: 9.39.4 eslint: 9.39.4(jiti@2.7.0)
ignore: 7.0.5 ignore: 7.0.5
natural-compare: 1.4.0 natural-compare: 1.4.0
ts-api-utils: 2.5.0(typescript@5.9.3) ts-api-utils: 2.5.0(typescript@5.9.3)
@@ -5542,14 +5815,14 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/parser@8.61.0(eslint@9.39.4)(typescript@5.9.3)': '@typescript-eslint/parser@8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3)':
dependencies: dependencies:
'@typescript-eslint/scope-manager': 8.61.0 '@typescript-eslint/scope-manager': 8.61.0
'@typescript-eslint/types': 8.61.0 '@typescript-eslint/types': 8.61.0
'@typescript-eslint/typescript-estree': 8.61.0(typescript@5.9.3) '@typescript-eslint/typescript-estree': 8.61.0(typescript@5.9.3)
'@typescript-eslint/visitor-keys': 8.61.0 '@typescript-eslint/visitor-keys': 8.61.0
debug: 4.4.3 debug: 4.4.3
eslint: 9.39.4 eslint: 9.39.4(jiti@2.7.0)
typescript: 5.9.3 typescript: 5.9.3
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@@ -5572,13 +5845,13 @@ snapshots:
dependencies: dependencies:
typescript: 5.9.3 typescript: 5.9.3
'@typescript-eslint/type-utils@8.61.0(eslint@9.39.4)(typescript@5.9.3)': '@typescript-eslint/type-utils@8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3)':
dependencies: dependencies:
'@typescript-eslint/types': 8.61.0 '@typescript-eslint/types': 8.61.0
'@typescript-eslint/typescript-estree': 8.61.0(typescript@5.9.3) '@typescript-eslint/typescript-estree': 8.61.0(typescript@5.9.3)
'@typescript-eslint/utils': 8.61.0(eslint@9.39.4)(typescript@5.9.3) '@typescript-eslint/utils': 8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3)
debug: 4.4.3 debug: 4.4.3
eslint: 9.39.4 eslint: 9.39.4(jiti@2.7.0)
ts-api-utils: 2.5.0(typescript@5.9.3) ts-api-utils: 2.5.0(typescript@5.9.3)
typescript: 5.9.3 typescript: 5.9.3
transitivePeerDependencies: transitivePeerDependencies:
@@ -5601,13 +5874,13 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@typescript-eslint/utils@8.61.0(eslint@9.39.4)(typescript@5.9.3)': '@typescript-eslint/utils@8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3)':
dependencies: dependencies:
'@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4) '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.7.0))
'@typescript-eslint/scope-manager': 8.61.0 '@typescript-eslint/scope-manager': 8.61.0
'@typescript-eslint/types': 8.61.0 '@typescript-eslint/types': 8.61.0
'@typescript-eslint/typescript-estree': 8.61.0(typescript@5.9.3) '@typescript-eslint/typescript-estree': 8.61.0(typescript@5.9.3)
eslint: 9.39.4 eslint: 9.39.4(jiti@2.7.0)
typescript: 5.9.3 typescript: 5.9.3
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@@ -5617,7 +5890,16 @@ snapshots:
'@typescript-eslint/types': 8.61.0 '@typescript-eslint/types': 8.61.0
eslint-visitor-keys: 5.0.1 eslint-visitor-keys: 5.0.1
'@vitejs/plugin-react@4.7.0(vite@8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(terser@5.48.0)(tsx@4.22.4))': '@vite-pwa/assets-generator@1.0.2':
dependencies:
cac: 6.7.14
colorette: 2.0.20
consola: 3.4.2
sharp: 0.33.5
sharp-ico: 0.1.5
unconfig: 7.5.0
'@vitejs/plugin-react@4.7.0(vite@8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.48.0)(tsx@4.22.4))':
dependencies: dependencies:
'@babel/core': 7.29.7 '@babel/core': 7.29.7
'@babel/plugin-transform-react-jsx-self': 7.29.7(@babel/core@7.29.7) '@babel/plugin-transform-react-jsx-self': 7.29.7(@babel/core@7.29.7)
@@ -5625,7 +5907,7 @@ snapshots:
'@rolldown/pluginutils': 1.0.0-beta.27 '@rolldown/pluginutils': 1.0.0-beta.27
'@types/babel__core': 7.20.5 '@types/babel__core': 7.20.5
react-refresh: 0.17.0 react-refresh: 0.17.0
vite: 8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(terser@5.48.0)(tsx@4.22.4) vite: 8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.48.0)(tsx@4.22.4)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@@ -5638,13 +5920,13 @@ snapshots:
chai: 6.2.2 chai: 6.2.2
tinyrainbow: 3.1.0 tinyrainbow: 3.1.0
'@vitest/mocker@4.1.8(vite@8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(terser@5.48.0)(tsx@4.22.4))': '@vitest/mocker@4.1.8(vite@8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.48.0)(tsx@4.22.4))':
dependencies: dependencies:
'@vitest/spy': 4.1.8 '@vitest/spy': 4.1.8
estree-walker: 3.0.3 estree-walker: 3.0.3
magic-string: 0.30.21 magic-string: 0.30.21
optionalDependencies: optionalDependencies:
vite: 8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(terser@5.48.0)(tsx@4.22.4) vite: 8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.48.0)(tsx@4.22.4)
'@vitest/pretty-format@4.1.8': '@vitest/pretty-format@4.1.8':
dependencies: dependencies:
@@ -5851,6 +6133,8 @@ snapshots:
buffer-from@1.1.2: {} buffer-from@1.1.2: {}
cac@6.7.14: {}
call-bind-apply-helpers@1.0.2: call-bind-apply-helpers@1.0.2:
dependencies: dependencies:
es-errors: 1.3.0 es-errors: 1.3.0
@@ -5891,6 +6175,18 @@ snapshots:
color-name@1.1.4: {} color-name@1.1.4: {}
color-string@1.9.1:
dependencies:
color-name: 1.1.4
simple-swizzle: 0.2.4
color@4.2.3:
dependencies:
color-convert: 2.0.1
color-string: 1.9.1
colorette@2.0.20: {}
commander@2.20.3: {} commander@2.20.3: {}
commander@8.3.0: {} commander@8.3.0: {}
@@ -5899,6 +6195,8 @@ snapshots:
concat-map@0.0.1: {} concat-map@0.0.1: {}
consola@3.4.2: {}
convert-source-map@2.0.0: {} convert-source-map@2.0.0: {}
cookie@1.1.1: {} cookie@1.1.1: {}
@@ -5953,6 +6251,17 @@ snapshots:
decimal.js@10.6.0: {} decimal.js@10.6.0: {}
decode-bmp@0.2.1:
dependencies:
'@canvas/image-data': 1.1.0
to-data-view: 1.1.0
decode-ico@0.4.1:
dependencies:
'@canvas/image-data': 1.1.0
decode-bmp: 0.2.1
to-data-view: 1.1.0
decode-named-character-reference@1.3.0: decode-named-character-reference@1.3.0:
dependencies: dependencies:
character-entities: 2.0.2 character-entities: 2.0.2
@@ -5973,6 +6282,8 @@ snapshots:
has-property-descriptors: 1.0.2 has-property-descriptors: 1.0.2
object-keys: 1.1.1 object-keys: 1.1.1
defu@6.1.7: {}
denque@2.1.0: {} denque@2.1.0: {}
dequal@2.0.3: {} dequal@2.0.3: {}
@@ -6212,22 +6523,22 @@ snapshots:
escape-string-regexp@4.0.0: {} escape-string-regexp@4.0.0: {}
eslint-config-prettier@10.1.8(eslint@9.39.4): eslint-config-prettier@10.1.8(eslint@9.39.4(jiti@2.7.0)):
dependencies: dependencies:
eslint: 9.39.4 eslint: 9.39.4(jiti@2.7.0)
eslint-plugin-react-hooks@7.1.1(eslint@9.39.4): eslint-plugin-react-hooks@7.1.1(eslint@9.39.4(jiti@2.7.0)):
dependencies: dependencies:
'@babel/core': 7.29.7 '@babel/core': 7.29.7
'@babel/parser': 7.29.7 '@babel/parser': 7.29.7
eslint: 9.39.4 eslint: 9.39.4(jiti@2.7.0)
hermes-parser: 0.25.1 hermes-parser: 0.25.1
zod: 3.25.76 zod: 3.25.76
zod-validation-error: 4.0.2(zod@3.25.76) zod-validation-error: 4.0.2(zod@3.25.76)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
eslint-plugin-react@7.37.5(eslint@9.39.4): eslint-plugin-react@7.37.5(eslint@9.39.4(jiti@2.7.0)):
dependencies: dependencies:
array-includes: 3.1.9 array-includes: 3.1.9
array.prototype.findlast: 1.2.5 array.prototype.findlast: 1.2.5
@@ -6235,7 +6546,7 @@ snapshots:
array.prototype.tosorted: 1.1.4 array.prototype.tosorted: 1.1.4
doctrine: 2.1.0 doctrine: 2.1.0
es-iterator-helpers: 1.3.3 es-iterator-helpers: 1.3.3
eslint: 9.39.4 eslint: 9.39.4(jiti@2.7.0)
estraverse: 5.3.0 estraverse: 5.3.0
hasown: 2.0.4 hasown: 2.0.4
jsx-ast-utils: 3.3.5 jsx-ast-utils: 3.3.5
@@ -6264,9 +6575,9 @@ snapshots:
eslint-visitor-keys@5.0.1: {} eslint-visitor-keys@5.0.1: {}
eslint@9.39.4: eslint@9.39.4(jiti@2.7.0):
dependencies: dependencies:
'@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4) '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.7.0))
'@eslint-community/regexpp': 4.12.2 '@eslint-community/regexpp': 4.12.2
'@eslint/config-array': 0.21.2 '@eslint/config-array': 0.21.2
'@eslint/config-helpers': 0.4.2 '@eslint/config-helpers': 0.4.2
@@ -6300,6 +6611,8 @@ snapshots:
minimatch: 3.1.5 minimatch: 3.1.5
natural-compare: 1.4.0 natural-compare: 1.4.0
optionator: 0.9.4 optionator: 0.9.4
optionalDependencies:
jiti: 2.7.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@@ -6545,6 +6858,8 @@ snapshots:
ical.js@2.2.1: {} ical.js@2.2.1: {}
ico-endec@0.1.6: {}
iconv-lite@0.6.3: iconv-lite@0.6.3:
dependencies: dependencies:
safer-buffer: 2.1.2 safer-buffer: 2.1.2
@@ -6589,6 +6904,8 @@ snapshots:
call-bound: 1.0.4 call-bound: 1.0.4
get-intrinsic: 1.3.0 get-intrinsic: 1.3.0
is-arrayish@0.3.4: {}
is-async-function@2.1.1: is-async-function@2.1.1:
dependencies: dependencies:
async-function: 1.0.0 async-function: 1.0.0
@@ -6732,6 +7049,8 @@ snapshots:
filelist: 1.0.6 filelist: 1.0.6
picocolors: 1.1.1 picocolors: 1.1.1
jiti@2.7.0: {}
js-tokens@4.0.0: {} js-tokens@4.0.0: {}
js-yaml@4.1.1: js-yaml@4.1.1:
@@ -7336,6 +7655,8 @@ snapshots:
punycode@2.3.1: {} punycode@2.3.1: {}
quansync@1.0.0: {}
queue-microtask@1.2.3: {} queue-microtask@1.2.3: {}
react-dom@19.2.7(react@19.2.7): react-dom@19.2.7(react@19.2.7):
@@ -7554,6 +7875,38 @@ snapshots:
es-errors: 1.3.0 es-errors: 1.3.0
es-object-atoms: 1.1.2 es-object-atoms: 1.1.2
sharp-ico@0.1.5:
dependencies:
decode-ico: 0.4.1
ico-endec: 0.1.6
sharp: 0.33.5
sharp@0.33.5:
dependencies:
color: 4.2.3
detect-libc: 2.1.2
semver: 7.8.4
optionalDependencies:
'@img/sharp-darwin-arm64': 0.33.5
'@img/sharp-darwin-x64': 0.33.5
'@img/sharp-libvips-darwin-arm64': 1.0.4
'@img/sharp-libvips-darwin-x64': 1.0.4
'@img/sharp-libvips-linux-arm': 1.0.5
'@img/sharp-libvips-linux-arm64': 1.0.4
'@img/sharp-libvips-linux-s390x': 1.0.4
'@img/sharp-libvips-linux-x64': 1.0.4
'@img/sharp-libvips-linuxmusl-arm64': 1.0.4
'@img/sharp-libvips-linuxmusl-x64': 1.0.4
'@img/sharp-linux-arm': 0.33.5
'@img/sharp-linux-arm64': 0.33.5
'@img/sharp-linux-s390x': 0.33.5
'@img/sharp-linux-x64': 0.33.5
'@img/sharp-linuxmusl-arm64': 0.33.5
'@img/sharp-linuxmusl-x64': 0.33.5
'@img/sharp-wasm32': 0.33.5
'@img/sharp-win32-ia32': 0.33.5
'@img/sharp-win32-x64': 0.33.5
shebang-command@2.0.0: shebang-command@2.0.0:
dependencies: dependencies:
shebang-regex: 3.0.0 shebang-regex: 3.0.0
@@ -7592,6 +7945,10 @@ snapshots:
signal-exit@4.1.0: {} signal-exit@4.1.0: {}
simple-swizzle@0.2.4:
dependencies:
is-arrayish: 0.3.4
slash@5.1.0: {} slash@5.1.0: {}
smob@1.6.2: {} smob@1.6.2: {}
@@ -7736,6 +8093,8 @@ snapshots:
dependencies: dependencies:
tldts-core: 6.1.86 tldts-core: 6.1.86
to-data-view@1.1.0: {}
to-regex-range@5.0.1: to-regex-range@5.0.1:
dependencies: dependencies:
is-number: 7.0.0 is-number: 7.0.0
@@ -7811,13 +8170,13 @@ snapshots:
possible-typed-array-names: 1.1.0 possible-typed-array-names: 1.1.0
reflect.getprototypeof: 1.0.10 reflect.getprototypeof: 1.0.10
typescript-eslint@8.61.0(eslint@9.39.4)(typescript@5.9.3): typescript-eslint@8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3):
dependencies: dependencies:
'@typescript-eslint/eslint-plugin': 8.61.0(@typescript-eslint/parser@8.61.0(eslint@9.39.4)(typescript@5.9.3))(eslint@9.39.4)(typescript@5.9.3) '@typescript-eslint/eslint-plugin': 8.61.0(@typescript-eslint/parser@8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3)
'@typescript-eslint/parser': 8.61.0(eslint@9.39.4)(typescript@5.9.3) '@typescript-eslint/parser': 8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3)
'@typescript-eslint/typescript-estree': 8.61.0(typescript@5.9.3) '@typescript-eslint/typescript-estree': 8.61.0(typescript@5.9.3)
'@typescript-eslint/utils': 8.61.0(eslint@9.39.4)(typescript@5.9.3) '@typescript-eslint/utils': 8.61.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3)
eslint: 9.39.4 eslint: 9.39.4(jiti@2.7.0)
typescript: 5.9.3 typescript: 5.9.3
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@@ -7833,6 +8192,19 @@ snapshots:
has-symbols: 1.1.0 has-symbols: 1.1.0
which-boxed-primitive: 1.1.1 which-boxed-primitive: 1.1.1
unconfig-core@7.5.0:
dependencies:
'@quansync/fs': 1.0.0
quansync: 1.0.0
unconfig@7.5.0:
dependencies:
'@quansync/fs': 1.0.0
defu: 6.1.7
jiti: 2.7.0
quansync: 1.0.0
unconfig-core: 7.5.0
undici-types@6.21.0: {} undici-types@6.21.0: {}
unicode-canonical-property-names-ecmascript@2.0.1: {} unicode-canonical-property-names-ecmascript@2.0.1: {}
@@ -7866,18 +8238,20 @@ snapshots:
dependencies: dependencies:
punycode: 2.3.1 punycode: 2.3.1
vite-plugin-pwa@1.3.0(vite@8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(terser@5.48.0)(tsx@4.22.4))(workbox-build@7.4.1(@types/babel__core@7.20.5))(workbox-window@7.4.1): vite-plugin-pwa@1.3.0(@vite-pwa/assets-generator@1.0.2)(vite@8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.48.0)(tsx@4.22.4))(workbox-build@7.4.1(@types/babel__core@7.20.5))(workbox-window@7.4.1):
dependencies: dependencies:
debug: 4.4.3 debug: 4.4.3
pretty-bytes: 6.1.1 pretty-bytes: 6.1.1
tinyglobby: 0.2.17 tinyglobby: 0.2.17
vite: 8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(terser@5.48.0)(tsx@4.22.4) vite: 8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.48.0)(tsx@4.22.4)
workbox-build: 7.4.1(@types/babel__core@7.20.5) workbox-build: 7.4.1(@types/babel__core@7.20.5)
workbox-window: 7.4.1 workbox-window: 7.4.1
optionalDependencies:
'@vite-pwa/assets-generator': 1.0.2
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
vite@8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(terser@5.48.0)(tsx@4.22.4): vite@8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.48.0)(tsx@4.22.4):
dependencies: dependencies:
lightningcss: 1.32.0 lightningcss: 1.32.0
picomatch: 4.0.4 picomatch: 4.0.4
@@ -7888,13 +8262,14 @@ snapshots:
'@types/node': 22.19.19 '@types/node': 22.19.19
esbuild: 0.28.0 esbuild: 0.28.0
fsevents: 2.3.3 fsevents: 2.3.3
jiti: 2.7.0
terser: 5.48.0 terser: 5.48.0
tsx: 4.22.4 tsx: 4.22.4
vitest@4.1.8(@types/node@22.19.19)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(terser@5.48.0)(tsx@4.22.4)): vitest@4.1.8(@types/node@22.19.19)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.48.0)(tsx@4.22.4)):
dependencies: dependencies:
'@vitest/expect': 4.1.8 '@vitest/expect': 4.1.8
'@vitest/mocker': 4.1.8(vite@8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(terser@5.48.0)(tsx@4.22.4)) '@vitest/mocker': 4.1.8(vite@8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.48.0)(tsx@4.22.4))
'@vitest/pretty-format': 4.1.8 '@vitest/pretty-format': 4.1.8
'@vitest/runner': 4.1.8 '@vitest/runner': 4.1.8
'@vitest/snapshot': 4.1.8 '@vitest/snapshot': 4.1.8
@@ -7911,7 +8286,7 @@ snapshots:
tinyexec: 1.2.4 tinyexec: 1.2.4
tinyglobby: 0.2.17 tinyglobby: 0.2.17
tinyrainbow: 3.1.0 tinyrainbow: 3.1.0
vite: 8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(terser@5.48.0)(tsx@4.22.4) vite: 8.0.16(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.48.0)(tsx@4.22.4)
why-is-node-running: 2.3.0 why-is-node-running: 2.3.0
optionalDependencies: optionalDependencies:
'@types/node': 22.19.19 '@types/node': 22.19.19
+1
View File
@@ -3,3 +3,4 @@ packages:
allowBuilds: allowBuilds:
esbuild: true esbuild: true
sharp: true