From d2e8ac91d1d442d6789314498ca69ec30681e950 Mon Sep 17 00:00:00 2001
From: "CanbiZ (MickLesk)" <47820557+MickLesk@users.noreply.github.com>
Date: Tue, 5 May 2026 15:26:13 +0200
Subject: [PATCH] v1.0.0: Major UI/UX Overhaul, Performance & New Features
(#566)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Add GeneratorTab and UI refactor/styles
Introduce a full-featured GeneratorTab component for building and exporting script configuration (script selector, CPU/RAM/Disk sliders, advanced networking/features, generate/copy/export/import, and execute). Apply visual and structural UI refactors: new glass-card styles across ScriptCard, ScriptCardList, ScriptDetailModal, Terminal and Footer; update button variants and interaction classes; add Heart icon and extra footer links; update layout to use Manrope + JetBrains Mono fonts, sticky navbar, ambient backgrounds and metadata tweaks. Wire GeneratorTab into the main page and add related icon imports. Misc: small code-style/formatting adjustments and improved deriveScriptPath / handler signatures for clarity.
* Add script notes, server presets & APT proxy
Add persistent script notes and server presets, plus APT proxy settings and various UI/behavior improvements.
- DB: new migration adds script_notes and server_presets tables and indexes; Prisma schema updated with ScriptNote and ServerPreset models.
- Notes: new client component ScriptNotesPanel with CRUD using a new TRPC router (scriptNotes) and integration into ScriptDetailModal to show/manage private/shared notes.
- APT proxy: new Next.js API route /api/settings/apt-proxy that reads/writes .env vars; GeneralSettingsModal and ConfigurationModal load/save the proxy and pre-fill advanced install vars.
- UX/UI: add copyable install command, version badges on script cards/detail, container ID input in advanced configuration, and styling tweaks (glass-card-static).
- Server/script detection: installedScripts router now attempts to resolve the actual Proxmox node name via SSH and relaxes ID parsing to numeric-only.
- Notifications: appriseService extended to support Gotify endpoints and allow gotify:// scheme, and URL validation adjusted accordingly.
These changes enable user-maintained notes/presets, persistent APT-cacher defaults, improved install UX, better server detection, and additional notification backend support.
* Add server presets and silent batch updates
Introduce server presets and silent batch update support across API, server, and UI. Added a new serverPresets TRPC router and wired it into the API root. ConfigurationModal now lets users save/load/delete presets tied to a server. InstalledScriptsTab adds a "Silent update" option, a sequential "Update All Containers" batch flow that runs updates with PHS_SILENT=1, and passes envVars into update executions. ScriptExecutionHandler (server.js) now accepts envVars for updates and injects export commands into both local and SSH update flows so environment flags (e.g. PHS_SILENT) are honored. Also added "updated" sort handling in ScriptsGrid, DownloadedScriptsTab and FilterBar, and small typing fixes in appriseService.
* Use per-router Prisma client with Better SQLite3
Replace usage of the shared prisma import with per-router PrismaClient instances configured with @prisma/adapter-better-sqlite3. Add getNotesDb/getPresetsDb helpers (with DATABASE_URL fallback) and update scriptNotes and serverPresets to use the new client. Also add error handling in read endpoints to return empty arrays on DB failures and ensure create/update/delete use the new client.
* Icon-only action buttons; use presets DB
Convert HelpButton, ResyncButton, ServerSettingsButton and SettingsButton from labeled outline controls to compact ghost icon-only buttons with aria-labels and smaller icons/spinners for a more compact header UI. Simplify ResyncButton markup (smaller spinner/SVG, removed extra contextual text/lastSync layout) and tweak sync message styling. Add Server icon import in ServerSettingsButton. In serverPresets router, replace direct prisma calls with getPresetsDb() and use the returned db instance for all queries and mutations to support the presets DB connection.
* Add quick filters, Dev/ARM badges, and CSS tweaks
Introduce quick filter support and visual indicators for developer/ARM scripts. Added QuickFilter type and quickFilter to FilterState (getDefaultFilters/mergeFiltersWithDefaults) and a quick-filter UI in FilterBar (All, New, Updated, In Dev, ARM). Implemented filtering logic in ScriptsGrid and added category dev counts to surface per-category "dev" counts in CategorySidebar. Added DevBadge and ArmBadge components, used in ScriptCard and ScriptDetailModal; ScriptCard also gets a subtle violet highlight when script.is_dev is true. Fixed script path generation in GeneratorTab to include a `scripts/` prefix. Minor dark-theme adjustments to .glass-card/.glass-card-static background and border-color for improved contrast.
* Add appearance settings and persist UI prefs
Introduce an Appearance tab in the Settings modal to control theme, text size and layout width (default vs wide). Preferences are saved to localStorage and applied immediately via helper functions (applyTextSize/applyLayoutWidth) and a small inline script injected into
to apply saved settings on first paint. Add CSS utility classes for text-size variants and wire up theme buttons (using lucide icons). Also include minor cleanup: optional chaining fix in CategorySidebar and removal of an unused import in ResyncButton.
* Normalize quotes and format components
Apply consistent formatting across several components: convert single quotes to double quotes, reformat the QuickFilter union type and quick-filters array in FilterBar, adjust JSX prop and className string formatting in HelpButton, ScriptCard, ServerSettingsButton, and SettingsButton. These are cosmetic/formatting changes only and do not alter runtime behavior.
* Refactor Badge & CategorySidebar types/styles
Normalize formatting and strengthen typings for Badge; convert single quotes to double, expand variant/type unions, and tidy JSX/props and helper badge components. Rework CategorySidebar: refactor CategoryIcon SVGs for readability, standardize className usage, improve collapsed-state layout and buttons, and ensure categories are filtered/sorted by count with correct icon mapping and counts display. Overall cleanup improves consistency, readability, and type safety across these components.
* Add modal stacking and portal support
Introduce a modal stacking system and portal to ensure modals escape parent stacking contexts. ModalStackProvider now computes a zIndex for each registered modal and returns an unregister handle; useRegisterModal returns the zIndex. A ModalPortal component (createPortal to document.body) was added and all modal components were updated to: capture the returned zIndex, wrap their markup in , and apply the dynamic zIndex instead of a hardcoded z-50 class. This improves correct layering of multiple modals and avoids backdrop-filter / transform stacking issues.
* Wrap modals in portal and use zIndex
Use ModalPortal and zIndex values from useRegisterModal across modal components to avoid hardcoded z-50 stacking. Updated ExecutionModeModal, LXCSettingsModal, PublicKeyModal, ReleaseNotesModal, SetupModal, StorageSelectionModal, and TextViewer to import ModalPortal, capture the zIndex returned by useRegisterModal, wrap modal markup in , and apply style={{ zIndex }} to backdrops; LXC result overlay uses zIndex + 10 for proper stacking. Also changed LoadingOverlay in VersionDisplay to render with createPortal(document.body) and added the import. These changes centralize stacking behavior and prevent z-index conflicts when multiple modals/overlays are present.
* Use categoryIconColorMap for sidebar icons
Update CategorySidebar.tsx to derive non-selected icon color classes from categoryIconColorMap for both the "template" and per-category icons. Selected icons still use text-primary; fallbacks preserve previous muted and group-hover classes to retain existing styling when a mapping is absent.
* Standardize modal layout and form styles
Refactor modal markup across many components to use a consistent wrapper structure and unified Tailwind utility ordering (moved zIndex to outer container, standardized backdrop and centering). Clean up form layouts: align icons, labels and inputs, normalize spacing, error styling, and button variants (including icon/ghost adjustments). Improve AuthModal and CloneCountInputModal UX (loading/error states, closer placement, validation), and normalize BackupWarningModal and other modal presentations. Update ConfigurationModal advanced UI: reorganize network fields and add/handle extra options (IPv6 static, gateway, MTU, MAC, VLAN, DNS), refine presets save/cancel flow, and apply general formatting/whitespace cleanups.
* Escape env var values; update favicons & logo
Fix shell escaping when building env export commands by escaping backslashes and quotes (prevents broken exported values) in ScriptExecutionHandler (two locations). Update app metadata to point to favicon files under /favicon, add site manifest, and replace the header Package icon with a next/image using the android-chrome PNG (import Image and adjust markup) for consistent asset handling.
* Add favicon set and logo; remove old favicon
Replace legacy root favicon.png with a full favicon set under public/favicon (android-chrome 192/512, apple-touch-icon, favicon-16x16, favicon-32x32, favicon.ico, favicon.png) and add site.webmanifest. Also add public/logo.png. This organizes favicon assets for multiple platforms and adds a webmanifest for PWA/icon declarations.
* Portalize script dropdown and add outside click
Render the script selector dropdown into document.body via createPortal to escape stacking/overflow contexts. Add triggerRef/dropdownRef, compute fixed position from the trigger on open, and attach an outside-click handler to close the dropdown. Also import useRef/useEffect and createPortal; preserve existing search, selection, and reset behaviors while adjusting z-index/positioning.
* Update favicon and logo assets
Replace favicon and logo image files with updated versions to refresh branding. Updated files: public/favicon/android-chrome-192x192.png, public/favicon/android-chrome-512x512.png, public/favicon/apple-touch-icon.png, public/favicon/favicon-16x16.png, public/favicon/favicon-32x32.png, public/favicon/favicon.ico, public/logo.png.
* Add appearance modal & improve script detail UI
Add an AppearanceModal and AppearanceButton to let users change theme, text size and layout width (persisted in localStorage). Enhance FilterBar with category filtering (selectedCategory, dropdown UI, counts, and outside-click handling). Heavily refactor ScriptDetailModal: layout and visual refresh, new icons, better loading/update/delete/install flows, memoized install command, improved copy behavior, keyboard navigation between scripts (using orderedSlugs + onSelectSlug), clearer status/messages, and various performance/UX tweaks. Wire DownloadedScriptsTab to pass orderedSlugs and onSelectSlug into the ScriptDetailModal. Overall small UI/UX and state-management improvements across components.
* Optimize rendering, lazy-load tabs, add sync modal
Performance and UX improvements: memoize computed values in InstalledScriptsTab (scriptsWithStatus, filteredScripts, uniqueServers) and use useCallback/useMemo in ScriptsGrid to avoid unnecessary re-renders. Memoize ScriptCard and ScriptCardList components and tighten their ScriptCard type alias. Introduce a new SyncModal (ResyncButton) component to run/resync scripts with a progress UI and retry/close behavior, and replace the previous ResyncButton import in page.tsx. Lazy-load heavy tab components (Downloaded, Installed, Backups, Generator) with next/dynamic and add a TabSkeleton loader; consolidate tab definitions into a memoized tabs array. Misc: small prop/prop-name fixes and minor JSX formatting adjustments.
* Add Arcane script, status UI, validation & cache
Multiple changes improving UX, reliability, and CI permissions:
- Add scripts/tools/addon/arcane.sh: installer/update/uninstall helper for Arcane (Docker Compose), creates update helper and generates secrets.
- Add ServerStatusIndicator component and integrate into header (src/app/_components/ServerStatusIndicator.tsx, src/app/page.tsx); adjust hero/layout to accommodate inline version + status.
- Enhance GeneratorTab (src/app/_components/GeneratorTab.tsx): fetch full script details by slug, derive and apply default resource values from install_methods, and show an App Defaults info panel.
- Harden repo provider detection (src/server/lib/repositoryUrlValidation.js/.ts): use URL parsing for hostname matching with safe fallback to 'custom'.
- Tune client caching (src/trpc/query-client.ts): increase staleTime to 30min, set gcTime to 1h, and disable automatic refetches on mount/window focus/reconnect.
- Update GitHub Actions permissions: node.js.yml grants contents: read; release-drafter.yml grants contents: write and pull-requests: read.
These changes aim to provide better default resource handling for scripts, visible server reachability, more robust URL parsing, improved client-side cache behavior, and explicit workflow permissions.
* Add suppressHydrationWarning to
Add the React prop suppressHydrationWarning to the element in RootLayout (src/app/layout.tsx) to suppress hydration mismatch warnings. This helps avoid noisy console warnings when server-rendered markup and client rendering differ (e.g., due to dynamic font class injection or other runtime-only differences).
* Refactor GeneratorTab layout and add SSH imports
Rework GeneratorTab rendering and small UI/format fixes: tidy the scriptDetail useMemo formatting and restructure the Script Defaults block so defaults (CPU, RAM, HDD) are always shown and OS/version/variant badges render correctly. Minor formatting change to ServerStatusIndicator's fetch call and a small spacing fix on the home page title. Also add imports for getSSHService and the Server type to servers router in preparation for SSH-related functionality.
* Add explicit typing for servers in indicator
Annotate the `servers` variable with an explicit array type (id, name, ip, online) and cast `data?.servers` to that type, defaulting to an empty array. This clarifies TypeScript inference and prevents `servers` from being undefined for downstream logic without changing runtime behavior.
* perf/cleanup: audit fixes - hoist iconMap, pin Next.js, strip console.log, lighten glass-card, fix dev badge
* Refactor icons, remove debug logs, pin Next
Replace the large inline SVG icon map with a compact iconPaths mapping and fallback path, simplifying CategoryIcon rendering. Tighten the dev-count badge markup/styles for better layout. Remove leftover console.debug/log statements from InstalledScriptsTab and LXCSettingsModal. Pin Next.js version to 16.2.1 in package.json (deps and devDeps). Slightly adjust dark glass-card background opacity/hover values in globals.css.
* refactor: migrate server TS files to structured logger, accessibility improvements
* perf: fix 14s page load - remove SSH from initial query, defer tab-specific data
- getAllInstalledScripts: removed SSH batchDetectContainerTypes, use DB-only
heuristic (lxc_config presence) for VM/LXC detection
- Defer installedScripts + backups queries until their tab is activated
- Initial batch now only fires 3 fast DB queries instead of 7 (incl. SSH)
* perf: split SSH queries from tRPC batch, skip save-on-mount
- Use splitLink to route servers.checkServersStatus through a separate
non-batched httpLink. SSH queries no longer block fast DB queries from
returning (was causing 14s+ batch response holding all data hostage).
- Add initialization refs in ScriptsGrid and DownloadedScriptsTab so
save-filter/view-mode POST effects skip their first fire after load,
eliminating 2-4 unnecessary network requests per tab mount.
* refactor: restore SSH detection for installed scripts, cache badge counts
- Restore batchDetectContainerTypes SSH calls in getAllInstalledScripts
(shows real VM/LXC state, not just DB heuristic)
- Route getAllInstalledScripts through splitLink (non-batched) so SSH
never blocks fast DB queries
- Cache installed/backups badge counts in localStorage so tabs show
last-known counts instantly, updated when fresh data arrives
- Query still deferred until tab is visited (no eager SSH on page load)
* Refactor init checks, footer, and parallel fetch
Make several small refactors and updates across the app:
- Expand single-line early-return checks into multi-line blocks in DownloadedScriptsTab and ScriptsGrid for clarity when skipping initial effect triggers.
- Update Footer links: add separate GitHub (ProxmoxVE-Local) and GitHub (ProxmoxVE) buttons and change the site link to community-scripts.org.
- Minor formatting tweaks in page.tsx (useState initializer and backups ternary) for readability.
- In the scripts API router, fetch script cards and metadata in parallel via Promise.all to reduce latency and return both together.
These changes improve readability and slightly optimize the scripts fetch path.
* Add in-memory PB cache and invalidate on resync
Introduce a simple server-side in-memory cache for PocketBase data with a 10-minute TTL to reduce PB requests for rarely-changing data. Adds getCached/setCache helpers and a shared _cache store, and exports invalidatePbCache() to clear cached entries. Apply caching to getScriptCards, getCategories, and getScriptTypes, and call invalidatePbCache() in the resyncScripts mutation so fresh data is fetched after a resync.
* Update react.tsx
* Show script download flow & per-node server status
GeneratorTab: add detection of locally downloaded scripts (query + mutation), compute a slug set for O(1) lookup, and gate selection/execution on download state. Update script list UI to indicate downloadable items, grayscale/opacity non-downloaded entries, and show a download confirmation modal that triggers loadScript mutation and invalidates cache. Add Loader2 and AlertTriangle icons and disable Execute when the selected script isn't downloaded.
ServerStatusIndicator: change from a single aggregate dot to per-node indicators showing each host name and status (green online with ping animation, red offline). Improve handling of loading vs no-configured-servers states and update tooltip/title text for clarity.
* Improve updater script and minor UI tweaks
Refactor update.sh to make the updater more robust and flexible: add support for specifying a target release (get_release), include tar in dependency checks, strengthen download/extract logic and error logging, improve source-dir detection, and tighten backup/restore, install/build and service start/rollback flows. Also normalize indentation and logging output and add clearer diagnostic messages on failures. Minor UI cleanups in TSX: simplify GeneratorTab conditional formatting and adjust ServerStatusIndicator class ordering.
* Bump deps and add VSCode Next.js prompt setting
Update multiple dependencies to newer patch/minor versions (Prisma, @tanstack/react-query, axios, better-sqlite3, dotenv, lucide-react, next, react, react-dom, vite, vitest tooling, eslint, jsdom, postcss, prettier, prisma, etc.). Replace legacy typescript-eslint package with @typescript-eslint/eslint-plugin and @typescript-eslint/parser. Add .vscode/settings.json to mark WillLuke.nextjs.hasPrompted as true to suppress the Next.js prompt in VS Code.
* Normalize indentation in core scripts
Reformat scripts/core/alpine-install.func and scripts/core/api.func for consistent indentation and whitespace. Changes are formatting-only (no logic changes): converted leading tabs to spaces, aligned multiline blocks, and adjusted a comment reference (error-handler → error_handler) for consistency. Improves readability and maintainability without affecting behavior.
* Show/hide install command UI and service fixes
UI: Add a Terminal icon, show/hide toggle, and display block for the install command in ScriptDetailModal (new showCommand state and button).
Server: installedScripts - default unknown container types to LXC (safe default) and simplify VM/LXC detection comments.
AppriseService: support gotifys:// (HTTPS) and gotify:// formats, select protocol correctly, and update URL regex.
BackupService: include PBS namespace (--ns) when storage.namespace is configured so proxmox-backup-client commands include the namespace.
ScriptDownloader: add fallback to attempt downloading a ct/.sh when install_methods is empty for CT/LXC scripts, improve returned success/message semantics, better 404-aware error messaging, and check for fallback CT script presence when scanning downloaded files.
Other: add /examples to .gitignore and remove restore.log.
These changes improve robustness for missing install metadata, add HTTPS Gotify support, ensure PBS namespace usage, and improve UX for viewing install commands.
* Prefer local install scripts; add envVars & token
Allow using local copies of helper/install scripts during development and forward environment variables and a GitHub token through the UI and websocket layer.
Changes:
- scripts/core/alpine-install.func & scripts/core/install.func: try to load misc/tools.func from the local scripts directory before falling back to downloading from GitHub; improved error messaging on failure.
- scripts/core/build.func: resolve SCRIPT_DIR, prefer local alpine/install function files and export their contents to FUNCTIONS_FILE_PATH; fall back to remote download if local files are missing; use local install scripts for lxc-attach when available (fallback to remote). Adjusted dev MOTD path to source from /tmp.
- src/app/_components/ConfigurationModal.tsx: added a password input for var_github_token (passed as GITHUB_TOKEN to mitigate API rate limits).
- src/server/api/websocket/handler.ts: websocket handler now accepts an envVars object and forwards it into startScriptExecution so environment variables from the client can be supplied to script runs.
Overall this improves local development workflows and enables passing custom env vars and a GitHub token to scripts.
* Replace *_json with install_methods/notes
Adapt code to the updated PocketBase schema by renaming install_methods_json and notes_json to install_methods and notes across services and routers. Update parsing in pbScripts.ts, mappings in scripts.ts, autoSyncService.js, and localScripts.ts, and adjust scriptDownloader fallback comment/logic to reference the new field. Also add new PBScript metadata fields (github_data, deleted_message, disable_message, last_update_commit) so the PBScript type reflects the extended record shape.
* Add InstallCommandBlock and integrate installer UI
Introduce a full InstallCommandBlock React component (new file) that builds, previews, and copies install commands with support for GitHub/Gitea, Alpine/Advanced modes, ARM flag, resource presets, and dev gating. Integrate it into ScriptDetailModal: compute hasAlpine and installDefaults from script.install_methods, remove the old simple install command UI/handlers, and embed the new component for non-misc scripts. Update ScriptsGrid to allow aborting batch downloads, invalidate downloaded-scripts cache after downloads, and adjust orderedSlugs passed to the modal (prefer newest when no active filters). On the server, make ScriptDownloaderService resolve dev scripts to the ProxmoxVED repository (dev-specific repo path) while preserving explicit repository_url and default repo behavior.
* Fix envStr possibly undefined in InstallCommandBlock
* Redesign Install section: inline node picker, remove old modals, drop My Notes
* Remove bash command display, pass envVars to SSH, inline Terminal below Install
* Fix envVars: always pass mode to skip whiptail dialog; fix terminal clipping
* Remove dangerous source envVar, fix View button gating, clean dead onInstallScript prop chains
* Tidy JSX formatting and remove extra whitespace
Clean up minor JSX formatting and stray blank lines across components. Removed extra blank lines in DownloadedScriptsTab and ScriptsGrid modal props, reformatted the terminal container div in InstallCommandBlock for clearer attribute layout, and simplified conditional JSX in page.tsx to single-line renders. No functional changes intended—only stylistic/formatting adjustments to improve readability.
* refactor: comprehensive code quality improvements
- Move Terminal component into GeneratorTab (self-contained)
- Replace all alert()/confirm() with modal dialogs
- Type server prop as Server instead of any
- Fix deprecated onKeyPress -> onKeyDown
- Memoize stat counters + fix O(n^2) scriptCounts with Set lookups
- Remove dead hasActions function (always returned true)
- Decompose InstalledScriptsTab: extract Stats, Filters, StatusMessage
- Add buildServerFromScript helper (deduplicates 5 identical blocks)
- Fix eslint-disable blanket: targeted disables + void floating promises
* fix: resolve LXCSettingsModal rootfs_size TS error blocking build
- Type configData as Record so TS union includes rootfs_size
- Include formatter fixes for extracted sub-components
* feat: bootstrap updater - self-updating update engine
Split update system into two files:
- update.sh: Thin bootstrap (~100 lines) that fetches the latest
update-engine.sh from main branch before executing it
- update-engine.sh: Full update logic (moved from old update.sh)
- UPDATER_VERSION: Version tracker for the engine
How it works:
1. User runs 'bash update.sh' (unchanged workflow)
2. Bootstrap checks UPDATER_VERSION on main vs local
3. If different, downloads latest update-engine.sh from main
4. Hands off to update-engine.sh with all arguments
This ensures bugfixes to the update logic reach users automatically,
without requiring a manual intervention or a new app release.
* fix: widen terminal - collapse sidebar to single column when terminal active
- Add onTerminalChange callback to InstallCommandBlock
- ScriptDetailModal switches from 2-col grid to single column when terminal runs
- Sidebar (ACCESS/DETAILS/INSTALL PROFILES) moves below terminal
- Remove max-w-4xl cap from Terminal.tsx so it fills full container width
- Reset terminalActive state when navigating between scripts
* Release prep: bump to 1.0.0-pre1 + add updater
Update project to pre-release 1.0.0-pre1 and add an interactive updater.
- Bump VERSION and package.json version to 1.0.0-pre1.
- Add pre-release-updater.sh: interactive script to list GitHub prereleases, backup current install, download/extract a selected prerelease, install deps, run migrations, build, and restart the service.
- Minor JSX formatting cleanup in ScriptDetailModal.tsx (split long className into multiple lines for readability; no functional change).
* fix: correct INSTALL_DIR to /opt/ProxmoxVE-Local
* fix(modal): resolve z-index race in ModalStackProvider; refactor(installed-scripts): UI overhaul - stats cards, filters, toolbar, table
* feat(installed-scripts): add Restart/Reboot action; fix orphaned cleanup for missing-server records
* fix(cleanup): delete SSH records with server but no container_id (Pass 1.5); feat(backups): add Create Backup via vzdump in BackupsTab
* fix(generator): await refetch after download; add server selection for SSH execution
- Fix download race condition: await getAllDownloadedScripts.refetch() before
closing dialog and selecting script so isScriptDownloaded returns true
- Add Server type import + state + useEffect to fetch /api/servers on mount
- Add server selection pill buttons above Execute (auto-selects single server)
- Execute button label changes to 'Execute on ' or 'Execute Locally'
- Pass mode + server to Terminal for correct local vs SSH execution
- Add selectedServer to handleExecute useCallback dependencies
* fix(generator): restore missing setTimeout body (syntax error)
* style: auto-format BackupsTab and GeneratorTab
* feat(pre2): ProxmoxVED toggle, floating shell dialog, settings UI polish
- Settings: remove Theme block (use AppearanceButton instead), restyle tabs
to match main nav pill style
- Settings: add ProxmoxVED / Dev Scripts toggle (default: off); persisted in
localStorage; StorageEvent keeps ScriptsGrid in sync without context
- ScriptsGrid: filter is_dev scripts from Newest carousel and full grid when
ProxmoxVED is disabled; add showDevScripts -> FilterBar prop
- FilterBar: hide 'In Dev' quick-filter pill when ProxmoxVED is disabled
- ShellContext: new React context (open/minimize/restore/close) for shell sessions
- FloatingShell: new floating dialog with minimize-to-pill, maximize, close;
persists across tab switches; renders via createPortal
- InstalledScriptsTab: delegate shell open to useShell() context instead of
local inline terminal; remove inline shell JSX
- page.tsx: wrap Home in ShellProvider, render FloatingShell at page level
* feat: implement execute_in container picker for addon scripts
- Add execute_in?: string[] | null to Script type
- Forward execute_in from PocketBase via pbToScript() mapper
- Add listContainersOnServer tRPC query (pct list + qm list via SSH)
- GeneratorTab: show container/VM picker when script has execute_in flags
- lxc, pbs, pmg -> show LXC picker (pbs/pmg pin matching containers)
- vm -> show VM picker
- Passes CTID env var to the script on execution
- Picker resets on server or script change
* fix(generator): move container-reset useEffect after selectedSlug declaration
* feat: add prerelease update channel toggle + bump version to 1.0.0-pre2
- Add ALLOW_PRERELEASE env var to env.js
- Add /api/settings/prerelease GET/POST route (persists to .env)
- version.ts: getVersionStatus + getLatestRelease use /releases (all) when
ALLOW_PRERELEASE=true, otherwise /releases/latest (stable only)
- GitHubRelease interface: add prerelease boolean field
- GeneralSettingsModal: add Update Channel toggle in General tab
- VERSION: bump to 1.0.0-pre2
- page.tsx: destructure isAuthenticated from useAuth()
- GeneratorTab.tsx: move container-reset useEffect after selectedSlug decl
* fix(page): destructure logout from useAuth
* feat: floating terminal for backup + New Backup dialog + fixes
- FloatingShell: support backup task mode (isBackup Terminal when
session.backupStorage is set); adds HardDrive icon, onComplete callback
- ShellContext: extend ShellSession with backupStorage, title, onComplete
- BackupsTab: replace blocking createBackupMutation with FloatingShell backup;
add 'New Backup' dialog (server -> container -> storage selection)
- InstalledScriptsTab: fix fetchStorages to not show blocking error modal
- VERSION: bump to 1.0.0-pre3, fixed UTF-8 BOM encoding
* fix: keep Terminal mounted on minimize, add drag-to-move support
- FloatingShell is now a single always-mounted window instead of
conditional branches — visibility:hidden on minimize keeps the
xterm.js WebSocket alive so 'starting shell session' no longer
appears on restore
- Header acts as drag handle: mouse-drag repositions the floating
window freely so the background remains usable
- Maximize still covers full viewport; restore returns to last
dragged position (or CSS-centered if never dragged)
* fix: Server.host -> Server.ip in BackupsTab new backup dialog
* fix: use lxc/vm fields from listContainersOnServer (no containers/vmid)
* fix: bundle core.func+error-handler.func into FUNCTIONS_FILE_PATH
* fix: typed container list in New Backup dialog (no unsafe any)
* feat: v1.0.0-pre4 - multi-session shell, multi-LXC backup, auto-discover after backup, local generator command, addon execute_in
* feat: add Refresh button to Downloaded Scripts tab
* fix: add executeInContainer to WebSocketMessage typedef
* fix: installationId typedef + verbose logo error logging
* fix: add JSDoc type annotations to implicit any callback params
* fix: guard against undefined results[j] in logo cache loop
* Refactor Backups modal and minor UI cleanups
Refactor the Backups create dialog for clarity and better state handling: reorganized JSX, normalized formatting, extract typed container lists, and ensure closing the dialog clears selected storage. Adjust server/container/storage selection flows and button behaviors to improve readability and UX. Also apply small readability/formatting fixes in DownloadedScriptsTab (expand onClick), FloatingShell (simplify Math.min expression), and GeneratorTab (wrap ternary for containerId). These are mostly non-functional cleanup and UI clarity changes across the mentioned components.
* feat: execute_in container routing + install UI overhaul
- GeneratorTab: remove && !!selectedServer from execInContainer so addon
scripts work in local mode (pct exec works without SSH)
- InstallCommandBlock: add executeIn prop + container picker via tRPC
listContainersOnServer; pass executeInContainer/containerId/containerType
to Terminal so addon scripts run inside the container, not on the host
- InstallCommandBlock: remove GitHub/Gitea source toggle; promote
My Defaults + App Defaults to top-level tabs alongside Default/Alpine/Advanced
- ScriptDetailModal: pass execute_in to InstallCommandBlock; add Runs In
badges to Details panel
* fix: GitHub PAT not applied at runtime + light mode contrast
- route.ts: also set process.env.GITHUB_TOKEN in memory after writing to
.env file - tokens saved via UI now take effect immediately without restart
- github.ts: read process.env.GITHUB_TOKEN directly instead of the frozen
t3-env snapshot (env.GITHUB_TOKEN is captured once at startup)
- github.ts: switch Authorization to 'Bearer' scheme (works for both classic
ghp_ and fine-grained github_pat_ tokens per GitHub docs)
- GeneralSettingsModal: fix text-success-foreground / text-error-foreground
-> text-success / text-error so messages are readable in light mode
(success-foreground is white, which is invisible on bg-success/10)
- GeneralSettingsModal: update PAT description to mention both token types
* fix: unblock pre-release updater TypeScript build + cut pre5
- InstallCommandBlock: fix trpc input type for listContainersOnServer
(serverId now numeric fallback instead of string)
- InstallCommandBlock: align container list mapping to API response shape
(use id/name instead of vmid)
- InstallCommandBlock: narrow running.containerType type to 'lxc' | 'vm'
- VERSION: bump to 1.0.0-pre5
- package.json: bump app version to 1.0.0-pre5 (installer/build logs)
This resolves the pre4 updater build failures reported in PR comments.
* feat: backup dialog UX + generator local-node workflow fixes
Backups:
- render create-backup dialog in portal with full-screen backdrop
- fix multi-select flow: explicit steps (server -> containers -> storage)
- keep container selection until user clicks Continue
- show storage free capacity (GB) from pvesm status
- show estimated max backup size from selected container disk templates
Generator:
- remove 'This machine (local)' execution option
- require node selection; execute over SSH only
- generated command now always uses local script path (scripts/...)
instead of remote curl command
- add install mode tabs: Default / My Defaults / App Defaults / Advanced
- apply mode to command/envVars (mode=default|mydefaults|appdefaults|generated)
- use selected container resources as template defaults (cpu/ram/disk)
API:
- getBackupStorages now enriches storages with available/used/total GB
- add getContainersResourceTemplates for per-container cpu/ram/disk templates
* Add advanced options to generator tab
Expose many new advanced/container, network and feature settings in GeneratorTab: password, tags, timezone, container/template storage, protection, IPv6 method/ip/gateway, search domain, nameserver, TUN, keyctl, mknod, verbose, APT cacher (with IP), mount filesystems and SSH authorized key. Wire these into command overrides, env-vars generation, export/import and reset logic. UI updated with grouped sections, IPv6 selector buttons, new inputs and toggles, and FieldInput now supports input type and hint. Also minor refactor to templateDefaults lookup formatting.
* Format JSX in BackupsTab and GeneralSettingsModal
Apply code style/formatting updates across BackupsTab.tsx and GeneralSettingsModal.tsx: reflow JSX props and elements, add consistent line breaks/commas and minor spacing adjustments (including a spacing fix in the GitHub token text). No logic or behavioral changes.
* feat: filter addon/pve types from sync, display, and script loading
- Add UNSUPPORTED_TYPES constant ['addon', 'pve'] in scripts router
- Filter these types from getScriptCards, getScriptCardsWithCategories
- Block loadScript and loadMultipleScripts for unsupported types
- Remove addon/pve filter options from FilterBar UI
- Remove unused Wrench/Server icon imports from FilterBar
* chore: bump version to 1.0.0-pre6
* fix: add pbs_username to hand-written PBSStorageCredential type
* chore: update dependencies and regenerate lockfile
* feat: hide dev count badge in category sidebar when dev mode is off
* feat: add DHCP/STATIC IPv4 mode pills to generator, show IP/gateway fields only when static
* Fix CategorySidebar JSX and format GeneratorTab
Close a mismatched in CategorySidebar so the inner "dev" badge is properly nested and rendered. Also reformat several single-line conditionals and adjust className ordering/formatting in GeneratorTab for improved readability; these are stylistic changes with no functional behavior changes.
* fix: keep floating shell windows mounted when minimized to preserve session state
Instead of unmounting FloatingShellWindow (which destroyed xterm + WebSocket),
all session windows are now kept in the DOM and hidden via CSS (display: none)
when minimized. This preserves the terminal session, history, and WebSocket
connection across minimize/restore cycles.
* feat: add floating shell access to Scripts, Downloaded, and Detail modal
Shell buttons now appear everywhere an installed container is recognized:
- ScriptDetailModal sidebar: 'Containers' section shows each matching
installed container with a direct Shell button (covers Scripts +
Downloaded tabs via the modal)
- ScriptsGrid / ScriptCard: shell button appears on cards (card and list
view) for scripts that have an installed container
- DownloadedScriptsTab: same shell button on cards and list rows
- ScriptCardList: shell button in the header row alongside website link
Matching is done by normalizing the installed script_name against the
card slug (lowercase, strip extension, replace non-alphanumeric with dash).
Only containers with a valid container_id and non-failed status are shown.
* fix: restore downloaded addon/pve scripts visibility in Downloaded tab
The UNSUPPORTED_TYPES filter was applied at the router level in
getScriptCardsWithCategories and getScriptCards. Since DownloadedScriptsTab
builds its list by cross-referencing local files against the GitHub cards
from this endpoint, addon/pve scripts that were already downloaded locally
were invisibly dropped.
Fix: remove the filter from the router, apply it client-side in
ScriptsGrid's combinedScripts memo instead. This means:
- Scripts grid: still hides addon/pve (can't install them)
- Downloaded tab: shows ALL locally downloaded scripts regardless of type
- loadScript / loadMultipleScripts: still block new addon/pve downloads
* Format imports and object indentation
Reformat code in DownloadedScriptsTab.tsx and ScriptDetailModal.tsx for readability: split the React import across multiple lines, adjust placement/indentation of eslint-disable comments, and reflow object property lines in ScriptDetailModal. These are stylistic changes only and do not modify runtime behavior.
* feat: v1.0.0-pre7 - updater channel fix, configurable detection tag, static IP guard
Fixes:
- fix: updater no longer downgrades prerelease installs to stable
version.ts executeUpdate now uses the v1.0.0 branch when VERSION
contains 'pre', so prerelease users always get the prerelease update.sh
- fix: static IP guard in build.func - if NET is the literal word 'static'
(no CIDR entered), fall back to dhcp with a warning instead of creating
a container with ip=static
- fix: ConfigurationModal no longer sends var_net=static to the script
when no IP address was entered in the static IP field
Features:
- feat: configurable container detection tag (Settings > General)
Users can override 'community-script' with any tag (e.g. 'cs')
Stored in .env as CONTAINER_DETECTION_TAG, used by autoDetectLXCContainers
Version:
- bump VERSION + package.json to 1.0.0-pre7
* fix: preserve downloaded scripts across updates
- pre-release updater now backs up/restores scripts ct/tools/vm/vw
- prevent rsync from overwriting downloaded script directories
- include scripts/vw in update-engine backup/restore/rollback/excludes
This prevents downloaded scripts from disappearing after update and
explains why only bundled defaults (e.g. debian + arcane) remained.
* feat(ui): unify floating terminals and enable addon execution
* chore: bump version to 1.0.0-pre8
* fix(updater): skip engine self-update gracefully when UPDATER_VERSION not on main (pre-release)
* fix: SSH interactive input, suppress rsync output, 4-theme picker, sort containers by ID
* fix(ui): overhaul terminal themes with strong contrast and real preview cards
* feat(pre9): execute_in policy matrix, full type visibility, lxc-only generator
* fix(pre9): make VM/LXC status and type detection server-scoped
---------
Co-authored-by: MickLesk
---
.github/workflows/node.js.yml | 26 +-
.github/workflows/release-drafter.yml | 6 +-
.gitignore | 1 +
.vscode/settings.json | 3 +
ProxmoxVE-Local.code-workspace | 13 +
UPDATER_VERSION | 1 +
VERSION | 2 +-
json/files.txt | 405 --
package-lock.json | 3323 ++++++++---------
package.json | 69 +-
pre-release-updater.sh | 395 ++
.../migration.sql | 37 +
.../migration.sql | 2 +
prisma/schema.prisma | 37 +
public/favicon.png | Bin 65754 -> 0 bytes
public/favicon/android-chrome-192x192.png | Bin 0 -> 59275 bytes
public/favicon/android-chrome-512x512.png | Bin 0 -> 315272 bytes
public/favicon/apple-touch-icon.png | Bin 0 -> 52933 bytes
public/favicon/favicon-16x16.png | Bin 0 -> 969 bytes
public/favicon/favicon-32x32.png | Bin 0 -> 2903 bytes
public/favicon/favicon.ico | Bin 0 -> 15406 bytes
public/favicon/favicon.png | Bin 0 -> 1608 bytes
public/favicon/site.webmanifest | 1 +
public/logo.png | Bin 0 -> 254089 bytes
restore.log | 10 -
scripts/cache-logos.ts | 2 +-
scripts/core/alpine-install.func | 309 +-
scripts/core/api.func | 1668 ++++-----
scripts/core/build.func | 288 +-
scripts/core/core.func | 38 +-
scripts/core/error-handler.func | 18 +-
scripts/core/install.func | 605 +--
scripts/core/tools.func | 92 +-
scripts/tools/addon/arcane.sh | 220 ++
server.js | 216 +-
src/app/_components/AppearanceButton.tsx | 27 +
src/app/_components/AppearanceModal.tsx | 216 ++
src/app/_components/AuthGuard.tsx | 64 +-
src/app/_components/AuthModal.tsx | 183 +-
src/app/_components/AuthProvider.tsx | 27 +
src/app/_components/BackupWarningModal.tsx | 89 +-
src/app/_components/BackupsTab.tsx | 559 ++-
src/app/_components/Badge.tsx | 190 +-
src/app/_components/CategorySidebar.tsx | 490 +--
src/app/_components/CloneCountInputModal.tsx | 179 +-
src/app/_components/ConfigurationModal.tsx | 2044 +++++-----
src/app/_components/ConfirmationModal.tsx | 149 +-
src/app/_components/DiffViewer.tsx | 126 +-
src/app/_components/DownloadedScriptsTab.tsx | 207 +-
src/app/_components/ErrorModal.tsx | 119 +-
src/app/_components/ExecutionModeModal.tsx | 375 +-
src/app/_components/FilterBar.tsx | 169 +-
src/app/_components/FloatingShell.tsx | 323 ++
src/app/_components/Footer.tsx | 73 +-
src/app/_components/GeneralSettingsModal.tsx | 2489 ++++++------
src/app/_components/GeneratorTab.tsx | 1975 ++++++++++
src/app/_components/HelpButton.tsx | 41 +-
src/app/_components/HelpModal.tsx | 122 +-
src/app/_components/InstallCommandBlock.tsx | 758 ++++
src/app/_components/InstalledScriptsTab.tsx | 1818 +++++----
src/app/_components/LXCSettingsModal.tsx | 1199 +++---
src/app/_components/LoadingModal.tsx | 129 +-
src/app/_components/PBSCredentialsModal.tsx | 412 +-
src/app/_components/PublicKeyModal.tsx | 330 +-
src/app/_components/ReleaseNotesModal.tsx | 399 +-
src/app/_components/ResyncButton.tsx | 95 +-
src/app/_components/ScriptCard.tsx | 96 +-
src/app/_components/ScriptCardList.tsx | 81 +-
src/app/_components/ScriptDetailModal.tsx | 1630 ++++----
src/app/_components/ScriptNotesPanel.tsx | 238 ++
src/app/_components/ScriptVersionModal.tsx | 403 +-
src/app/_components/ScriptsGrid.tsx | 281 +-
src/app/_components/ServerSettingsButton.tsx | 53 +-
src/app/_components/ServerStatusIndicator.tsx | 70 +
src/app/_components/ServerStoragesModal.tsx | 375 +-
src/app/_components/SettingsButton.tsx | 35 +-
src/app/_components/SettingsModal.tsx | 198 +-
src/app/_components/SetupModal.tsx | 311 +-
src/app/_components/ShellContext.tsx | 123 +
src/app/_components/StorageSelectionModal.tsx | 277 +-
src/app/_components/SyncModal.tsx | 301 ++
src/app/_components/Terminal.tsx | 300 +-
src/app/_components/TextViewer.tsx | 357 +-
.../_components/UpdateConfirmationModal.tsx | 359 +-
src/app/_components/VersionDisplay.tsx | 315 +-
src/app/_components/filterUtils.ts | 4 +
.../InstalledScriptsFilters.tsx | 73 +
.../InstalledScriptsStats.tsx | 91 +
.../installed-scripts/StatusMessage.tsx | 77 +
.../_components/modal/ModalStackProvider.tsx | 89 +-
src/app/_components/ui/button.tsx | 27 +-
src/app/api/settings/apt-proxy/route.ts | 52 +
src/app/api/settings/detection-tag/route.ts | 48 +
src/app/api/settings/github-token/route.ts | 4 +
src/app/api/settings/prerelease/route.ts | 57 +
src/app/layout.tsx | 46 +-
src/app/page.tsx | 614 +--
src/env.js | 4 +
src/server/api/root.ts | 4 +
src/server/api/routers/backups.ts | 67 +
src/server/api/routers/installedScripts.ts | 467 ++-
src/server/api/routers/pbsCredentials.ts | 6 +-
src/server/api/routers/scriptNotes.ts | 98 +
src/server/api/routers/scripts.ts | 77 +-
src/server/api/routers/serverPresets.ts | 140 +
src/server/api/routers/servers.ts | 45 +
src/server/api/routers/version.ts | 61 +-
src/server/api/websocket/handler.ts | 11 +-
src/server/database-prisma.ts | 4 +
src/server/db.ts | 3 +-
src/server/services/appriseService.js | 51 +-
src/server/services/autoSyncService.js | 4 +-
src/server/services/backupService.ts | 9 +-
src/server/services/github.ts | 22 +-
src/server/services/githubJsonService.ts | 47 +-
src/server/services/localScripts.ts | 8 +-
src/server/services/logoCacheService.ts | 11 +-
src/server/services/pbScripts.ts | 66 +-
src/server/services/repositoryService.ts | 11 +-
src/server/services/scriptDownloader.js | 54 +-
src/server/ssh-execution-service.js | 13 +-
src/styles/globals.css | 395 +-
src/trpc/query-client.ts | 6 +-
src/trpc/react.tsx | 42 +-
src/types/script.ts | 3 +
update-engine.sh | 1134 ++++++
update.sh | 1117 +-----
127 files changed, 21489 insertions(+), 12639 deletions(-)
create mode 100644 .vscode/settings.json
create mode 100644 ProxmoxVE-Local.code-workspace
create mode 100644 UPDATER_VERSION
delete mode 100644 json/files.txt
create mode 100644 pre-release-updater.sh
create mode 100644 prisma/migrations/20260401113636_add_notes_and_presets/migration.sql
create mode 100644 prisma/migrations/20260429000000_add_pbs_username/migration.sql
delete mode 100644 public/favicon.png
create mode 100644 public/favicon/android-chrome-192x192.png
create mode 100644 public/favicon/android-chrome-512x512.png
create mode 100644 public/favicon/apple-touch-icon.png
create mode 100644 public/favicon/favicon-16x16.png
create mode 100644 public/favicon/favicon-32x32.png
create mode 100644 public/favicon/favicon.ico
create mode 100644 public/favicon/favicon.png
create mode 100644 public/favicon/site.webmanifest
create mode 100644 public/logo.png
delete mode 100644 restore.log
create mode 100644 scripts/tools/addon/arcane.sh
create mode 100644 src/app/_components/AppearanceButton.tsx
create mode 100644 src/app/_components/AppearanceModal.tsx
create mode 100644 src/app/_components/FloatingShell.tsx
create mode 100644 src/app/_components/GeneratorTab.tsx
create mode 100644 src/app/_components/InstallCommandBlock.tsx
create mode 100644 src/app/_components/ScriptNotesPanel.tsx
create mode 100644 src/app/_components/ServerStatusIndicator.tsx
create mode 100644 src/app/_components/ShellContext.tsx
create mode 100644 src/app/_components/SyncModal.tsx
create mode 100644 src/app/_components/installed-scripts/InstalledScriptsFilters.tsx
create mode 100644 src/app/_components/installed-scripts/InstalledScriptsStats.tsx
create mode 100644 src/app/_components/installed-scripts/StatusMessage.tsx
create mode 100644 src/app/api/settings/apt-proxy/route.ts
create mode 100644 src/app/api/settings/detection-tag/route.ts
create mode 100644 src/app/api/settings/prerelease/route.ts
create mode 100644 src/server/api/routers/scriptNotes.ts
create mode 100644 src/server/api/routers/serverPresets.ts
create mode 100644 update-engine.sh
diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml
index aafb123..5bd1669 100644
--- a/.github/workflows/node.js.yml
+++ b/.github/workflows/node.js.yml
@@ -5,16 +5,18 @@ name: Node.js CI
on:
push:
- branches: [ "main" ]
+ branches: ["main"]
pull_request:
- branches: [ "main" ]
+ branches: ["main"]
+
+permissions:
+ contents: read
permissions:
contents: read
jobs:
build:
-
runs-on: ubuntu-latest
strategy:
@@ -23,12 +25,12 @@ jobs:
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- - uses: actions/checkout@v4
- - name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4
- with:
- node-version: ${{ matrix.node-version }}
- cache: 'npm'
- - run: npm ci
- - run: npm run build --if-present
- - run: npm test
+ - uses: actions/checkout@v4
+ - name: Use Node.js ${{ matrix.node-version }}
+ uses: actions/setup-node@v4
+ with:
+ node-version: ${{ matrix.node-version }}
+ cache: "npm"
+ - run: npm ci
+ - run: npm run build --if-present
+ - run: npm test
diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml
index ec63c28..6d5d3e4 100644
--- a/.github/workflows/release-drafter.yml
+++ b/.github/workflows/release-drafter.yml
@@ -4,7 +4,11 @@ on:
push:
branches:
- main
- workflow_dispatch:
+ workflow_dispatch:
+
+permissions:
+ contents: write
+ pull-requests: read
permissions:
contents: write
diff --git a/.gitignore b/.gitignore
index dbc949a..dd7c168 100644
--- a/.gitignore
+++ b/.gitignore
@@ -60,3 +60,4 @@ server.log
# idea files
.idea
/generated/prisma
+/examples
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..32e07b4
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+ "WillLuke.nextjs.hasPrompted": true
+}
\ No newline at end of file
diff --git a/ProxmoxVE-Local.code-workspace b/ProxmoxVE-Local.code-workspace
new file mode 100644
index 0000000..013094d
--- /dev/null
+++ b/ProxmoxVE-Local.code-workspace
@@ -0,0 +1,13 @@
+{
+ "folders": [
+ {
+ "path": "."
+ },
+ {
+ "path": "../ProxmoxVE-Frontend"
+ }
+ ],
+ "settings": {
+ "WillLuke.nextjs.hasPrompted": true
+ }
+}
\ No newline at end of file
diff --git a/UPDATER_VERSION b/UPDATER_VERSION
new file mode 100644
index 0000000..3eefcb9
--- /dev/null
+++ b/UPDATER_VERSION
@@ -0,0 +1 @@
+1.0.0
diff --git a/VERSION b/VERSION
index 659914a..3153fa4 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.5.8
+1.0.0-pre9
\ No newline at end of file
diff --git a/json/files.txt b/json/files.txt
deleted file mode 100644
index 651acf6..0000000
--- a/json/files.txt
+++ /dev/null
@@ -1,405 +0,0 @@
-2fauth.json
-actualbudget.json
-add-iptag.json
-add-netbird-lxc.json
-add-tailscale-lxc.json
-adguard.json
-adventurelog.json
-agentdvr.json
-all-templates.json
-alpine-it-tools.json
-alpine-tinyauth.json
-alpine.json
-apache-cassandra.json
-apache-couchdb.json
-apache-guacamole.json
-apache-tika.json
-apache-tomcat.json
-apt-cacher-ng.json
-archivebox.json
-archlinux-vm.json
-argus.json
-aria2.json
-asterisk.json
-audiobookshelf.json
-authelia.json
-autobrr.json
-autocaliweb.json
-babybuddy.json
-backrest.json
-baikal.json
-bar-assistant.json
-barcode-buddy.json
-bazarr.json
-beszel.json
-bitmagnet.json
-blocky.json
-booklore.json
-bookstack.json
-bunkerweb.json
-bytestash.json
-caddy.json
-casaos.json
-changedetection.json
-channels.json
-checkmk.json
-clean-lxcs.json
-clean-orphaned-lvm.json
-cleanuparr.json
-cloudflare-ddns.json
-cloudflared.json
-cloudreve.json
-cockpit.json
-coder-code-server.json
-commafeed.json
-configarr.json
-convertx.json
-copyparty.json
-cosmos.json
-crafty-controller.json
-cron-update-lxcs.json
-cronicle.json
-cross-seed.json
-crowdsec.json
-cryptpad.json
-daemonsync.json
-dashy.json
-debian-13-vm.json
-debian-vm.json
-debian.json
-deconz.json
-deluge.json
-docker-vm.json
-docker.json
-dockge.json
-docmost.json
-documenso.json
-dolibarr.json
-dotnetaspwebapi.json
-duplicati.json
-elementsynapse.json
-emby.json
-emqx.json
-ersatztv.json
-esphome.json
-evcc.json
-excalidraw.json
-execute.json
-fenrus.json
-fhem.json
-filebrowser-quantum.json
-filebrowser.json
-fileflows.json
-firefly.json
-flaresolverr.json
-flowiseai.json
-fluid-calendar.json
-forgejo.json
-freepbx.json
-freshrss.json
-frigate.json.bak
-fstrim.json
-fumadocs.json
-gatus.json
-ghost.json
-ghostfolio.json
-gitea-mirror.json
-gitea.json
-glance.json
-glances.json
-globaleaks.json
-glpi.json
-go2rtc.json
-goaway.json
-gokapi.json
-gotify.json
-grafana.json
-graylog.json
-grist.json
-grocy.json
-guardian.json
-habitica.json
-haos-vm.json
-headscale.json
-healthchecks.json
-heimdall-dashboard.json
-hev-socks5-server.json
-hivemq.json
-homarr.json
-homeassistant.json
-homebox.json
-homebridge.json
-homepage.json
-homer.json
-hortusfox.json
-host-backup.json
-huntarr.json
-hyperhdr.json
-hyperion.json
-immich.json
-influxdb.json
-inspircd.json
-inventree.json
-iobroker.json
-itsm-ng.json
-iventoy.json
-jackett.json
-jeedom.json
-jellyfin.json
-jellyseerr.json
-jenkins.json
-joplin-server.json
-jupyternotebook.json
-kapowarr.json
-karakeep.json
-kasm.json
-kavita.json
-kernel-clean.json
-kernel-pin.json
-keycloak.json
-kimai.json
-koillection.json
-kometa.json
-komga.json
-komodo.json
-kubo.json
-lazylibrarian.json
-leantime.json
-librespeed-rust.json
-libretranslate.json
-lidarr.json
-limesurvey.json
-linkstack.json
-linkwarden.json
-listmonk.json
-litellm.json
-lldap.json
-lubelogger.json
-lxc-delete.json
-lyrionmusicserver.json
-mafl.json
-magicmirror.json
-managemydamnlife.json
-mariadb.json
-matterbridge.json
-mattermost.json
-mealie.json
-mediamanager.json
-mediamtx.json
-medusa.json
-meilisearch.json
-memos.json
-meshcentral.json
-metadata.json
-metube.json
-microcode.json
-mikrotik-routeros.json
-minarca.json
-minio.json
-mongodb.json
-monica.json
-monitor-all.json
-motioneye.json
-mqtt.json
-myip.json
-mylar3.json
-myspeed.json
-mysql.json
-n8n.json
-navidrome.json
-neo4j.json
-netbox.json
-netdata.json
-nextcloud-vm.json
-nextcloudpi.json
-nextpvr.json
-nginxproxymanager.json
-nic-offloading-fix.json
-nocodb.json
-node-red.json
-nodebb.json
-notifiarr.json
-npmplus.json
-ntfy.json
-nxwitness.json
-nzbget.json
-oauth2-proxy.json
-octoprint.json
-odoo.json
-olivetin.json
-ollama.json
-omada.json
-ombi.json
-omv.json
-onedev.json
-onlyoffice.json
-open-archiver.json
-opengist.json
-openhab.json
-openobserve.json
-openproject.json
-openwebui.json
-openwrt-vm.json
-openziti-controller.json
-openziti-tunnel.json
-ots.json
-outline.json
-overseerr.json
-owncast.json
-owncloud-vm.json
-pairdrop.json
-palmr.json
-paperless-ai.json
-paperless-gpt.json
-paperless-ngx.json
-part-db.json
-paymenter.json
-pbs-microcode.json
-pbs4-upgrade.json
-peanut.json
-pelican-panel.json
-pelican-wings.json
-pf2etools.json
-photoprism.json
-phpipam.json
-phpmyadmin.json
-pialert.json
-pihole.json
-pimox-haos-vm.json
-planka.json
-plant-it.json
-plex.json
-pocketbase.json
-pocketid.json
-podman-homeassistant.json
-podman.json
-post-pbs-install.json
-post-pmg-install.json
-post-pve-install.json
-postgresql.json
-privatebin.json
-projectsend.json
-prometheus-alertmanager.json
-prometheus-blackbox-exporter.json
-prometheus-paperless-ngx-exporter.json
-prometheus-pve-exporter.json
-prometheus.json
-prowlarr.json
-proxmox-backup-server.json
-proxmox-datacenter-manager.json
-proxmox-mail-gateway.json
-ps5-mqtt.json
-pterodactyl-panel.json
-pterodactyl-wings.json
-pulse.json
-pve-privilege-converter.json
-pve-scripts-local.json
-qbittorrent.json
-rabbitmq.json
-radarr.json
-radicale.json
-rclone.json
-rdtclient.json
-reactive-resume.json
-readeck.json
-recyclarr.json
-redis.json
-redlib.json
-resiliosync.json
-revealjs.json
-runtipi.json
-rustdeskserver.json
-rwmarkable.json
-sabnzbd.json
-salt.json
-scaling-governor.json
-scraparr.json
-searxng.json
-seelf.json
-semaphore.json
-sftpgo.json
-shinobi.json
-signoz.json
-silverbullet.json
-slskd.json
-smokeping.json
-snipeit.json
-sonarqube.json
-sonarr.json
-spoolman.json
-sqlserver2022.json
-stirling-pdf.json
-streamlink-webui.json
-stylus.json
-suwayomi-server.json
-swizzin.json
-syncthing.json
-tandoor.json
-tasmoadmin.json
-tasmocompiler.json
-tautulli.json
-tdarr.json
-teamspeak-server.json
-technitiumdns.json
-teddycloud.json
-telegraf.json
-the-lounge.json
-threadfin.json
-tianji.json
-traccar.json
-tracktor.json
-traefik.json
-transmission.json
-trilium.json
-tududi.json
-tunarr.json
-turnkey.json
-twingate-connector.json
-typesense.json
-ubuntu.json
-ubuntu2204-vm.json
-ubuntu2404-vm.json
-ubuntu2504-vm.json
-uhf.json
-umami.json
-umbrel-os-vm.json
-umlautadaptarr.json
-unbound.json
-unifi.json
-unmanic.json
-update-lxcs.json
-update-repo.json
-upsnap.json
-uptimekuma.json
-urbackupserver.json
-vaultwarden.json
-verdaccio.json
-versions.json
-victoriametrics.json
-vikunja.json
-wallos.json
-warracker.json
-wastebin.json
-watcharr.json
-watchyourlan.json
-wavelog.json
-wazuh.json
-web-check.json
-webmin.json
-wger.json
-whisparr.json
-wikijs.json
-wireguard.json
-wizarr.json
-wordpress.json
-yt-dlp-webui.json
-yunohost.json
-zabbix.json
-zammad.json
-zerotier-one.json
-zigbee2mqtt.json
-zipline.json
-zitadel.json
-zoraxy.json
-zot-registry.json
-zwave-js-ui.json
diff --git a/package-lock.json b/package-lock.json
index 18a61e0..4bbf33d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,44 +1,44 @@
{
"name": "pve-scripts-local",
- "version": "0.5.7",
+ "version": "1.0.0-pre6",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "pve-scripts-local",
- "version": "0.5.7",
+ "version": "1.0.0-pre6",
"hasInstallScript": true,
"dependencies": {
- "@prisma/adapter-better-sqlite3": "^7.6.0",
- "@prisma/client": "^7.6.0",
+ "@prisma/adapter-better-sqlite3": "^7.8.0",
+ "@prisma/client": "^7.8.0",
"@radix-ui/react-dropdown-menu": "^2.1.16",
"@radix-ui/react-slot": "^1.2.4",
"@t3-oss/env-nextjs": "^0.13.11",
"@tailwindcss/typography": "^0.5.19",
- "@tanstack/react-query": "^5.96.0",
- "@trpc/client": "^11.16.0",
- "@trpc/react-query": "^11.16.0",
- "@trpc/server": "^11.16.0",
+ "@tanstack/react-query": "^5.100.6",
+ "@trpc/client": "^11.17.0",
+ "@trpc/react-query": "^11.17.0",
+ "@trpc/server": "^11.17.0",
"@types/react-syntax-highlighter": "^15.5.13",
"@types/ws": "^8.18.1",
"@xterm/addon-fit": "^0.11.0",
"@xterm/addon-web-links": "^0.12.0",
"@xterm/xterm": "^6.0.0",
- "axios": "^1.14.0",
+ "axios": "^1.15.2",
"bcryptjs": "^3.0.3",
- "better-sqlite3": "^12.8.0",
+ "better-sqlite3": "^12.9.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"cron-validator": "^1.4.0",
- "dotenv": "^17.3.1",
+ "dotenv": "^17.4.2",
"jsonwebtoken": "^9.0.3",
- "lucide-react": "^1.7.0",
- "next": ">=16.2.1",
+ "lucide-react": "^1.14.0",
+ "next": "16.2.4",
"node-cron": "^4.2.1",
"node-pty": "^1.1.0",
"pocketbase": "^0.26.8",
- "react": "^19.2.4",
- "react-dom": "^19.2.4",
+ "react": "^19.2.5",
+ "react-dom": "^19.2.5",
"react-markdown": "^10.1.0",
"react-syntax-highlighter": "^16.1.1",
"refractor": "^5.0.0",
@@ -47,39 +47,40 @@
"strip-ansi": "^7.2.0",
"superjson": "^2.2.6",
"tailwind-merge": "^3.5.0",
- "vite": "^8.0.3",
+ "vite": "^8.0.10",
"ws": "^8.20.0",
"zod": "^4.3.6"
},
"devDependencies": {
- "@tailwindcss/postcss": "^4.2.2",
+ "@tailwindcss/postcss": "^4.2.4",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2",
"@testing-library/user-event": "^14.6.1",
"@types/bcryptjs": "^3.0.0",
"@types/better-sqlite3": "^7.6.13",
"@types/jsonwebtoken": "^9.0.10",
- "@types/node": "^24.10.9",
+ "@types/node": "^25.6.0",
"@types/node-cron": "^3.0.11",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
+ "@typescript-eslint/eslint-plugin": "^8.59.1",
+ "@typescript-eslint/parser": "^8.59.1",
"@vitejs/plugin-react": "^6.0.1",
- "@vitest/coverage-v8": "^4.1.2",
- "@vitest/ui": "^4.1.2",
- "baseline-browser-mapping": "^2.10.13",
- "eslint": "^10.1.0",
- "eslint-config-next": "^16.2.1",
- "jsdom": "^29.0.1",
- "next": ">=16.2.1",
- "postcss": "^8.5.8",
- "prettier": "^3.8.1",
- "prettier-plugin-tailwindcss": "^0.7.2",
- "prisma": "^7.6.0",
- "tailwindcss": "^4.2.2",
+ "@vitest/coverage-v8": "^4.1.5",
+ "@vitest/ui": "^4.1.5",
+ "baseline-browser-mapping": "^2.10.24",
+ "eslint": "^10.2.1",
+ "eslint-config-next": "^16.2.4",
+ "jsdom": "^29.1.0",
+ "next": "16.2.4",
+ "postcss": "^8.5.12",
+ "prettier": "^3.8.3",
+ "prettier-plugin-tailwindcss": "^0.8.0",
+ "prisma": "^7.8.0",
+ "tailwindcss": "^4.2.4",
"tsx": "^4.21.0",
- "typescript": "^6.0.2",
- "typescript-eslint": "^8.58.0",
- "vitest": "^4.1.2"
+ "typescript": "^6.0.3",
+ "vitest": "^4.1.5"
},
"engines": {
"node": ">=24.0.0"
@@ -106,57 +107,47 @@
}
},
"node_modules/@asamuzakjp/css-color": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-5.0.1.tgz",
- "integrity": "sha512-2SZFvqMyvboVV1d15lMf7XiI3m7SDqXUuKaTymJYLN6dSGadqp+fVojqJlVoMlbZnlTmu3S0TLwLTJpvBMO1Aw==",
+ "version": "5.1.11",
+ "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-5.1.11.tgz",
+ "integrity": "sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@csstools/css-calc": "^3.1.1",
- "@csstools/css-color-parser": "^4.0.2",
+ "@asamuzakjp/generational-cache": "^1.0.1",
+ "@csstools/css-calc": "^3.2.0",
+ "@csstools/css-color-parser": "^4.1.0",
"@csstools/css-parser-algorithms": "^4.0.0",
- "@csstools/css-tokenizer": "^4.0.0",
- "lru-cache": "^11.2.6"
+ "@csstools/css-tokenizer": "^4.0.0"
},
"engines": {
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
}
},
- "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": {
- "version": "11.2.7",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz",
- "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "engines": {
- "node": "20 || >=22"
- }
- },
"node_modules/@asamuzakjp/dom-selector": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-7.0.3.tgz",
- "integrity": "sha512-Q6mU0Z6bfj6YvnX2k9n0JxiIwrCFN59x/nWmYQnAqP000ruX/yV+5bp/GRcF5T8ncvfwJQ7fgfP74DlpKExILA==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-7.1.1.tgz",
+ "integrity": "sha512-67RZDnYRc8H/8MLDgQCDE//zoqVFwajkepHZgmXrbwybzXOEwOWGPYGmALYl9J2DOLfFPPs6kKCqmbzV895hTQ==",
"dev": true,
"license": "MIT",
"dependencies": {
+ "@asamuzakjp/generational-cache": "^1.0.1",
"@asamuzakjp/nwsapi": "^2.3.9",
"bidi-js": "^1.0.3",
"css-tree": "^3.2.1",
- "is-potential-custom-element-name": "^1.0.1",
- "lru-cache": "^11.2.7"
+ "is-potential-custom-element-name": "^1.0.1"
},
"engines": {
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
}
},
- "node_modules/@asamuzakjp/dom-selector/node_modules/lru-cache": {
- "version": "11.2.7",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz",
- "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==",
+ "node_modules/@asamuzakjp/generational-cache": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@asamuzakjp/generational-cache/-/generational-cache-1.0.1.tgz",
+ "integrity": "sha512-wajfB8KqzMCN2KGNFdLkReeHncd0AslUSrvHVvvYWuU8ghncRJoA50kT3zP9MVL0+9g4/67H+cdvBskj9THPzg==",
"dev": true,
- "license": "BlueOak-1.0.0",
+ "license": "MIT",
"engines": {
- "node": "20 || >=22"
+ "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
}
},
"node_modules/@asamuzakjp/nwsapi": {
@@ -181,6 +172,13 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@babel/code-frame/node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@babel/compat-data": {
"version": "7.29.0",
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz",
@@ -222,6 +220,16 @@
"url": "https://opencollective.com/babel"
}
},
+ "node_modules/@babel/core/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
"node_modules/@babel/generator": {
"version": "7.29.1",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz",
@@ -256,6 +264,16 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
"node_modules/@babel/helper-globals": {
"version": "7.28.0",
"resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
@@ -359,9 +377,9 @@
}
},
"node_modules/@babel/runtime": {
- "version": "7.28.4",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz",
- "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==",
+ "version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz",
+ "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
@@ -438,29 +456,6 @@
"specificity": "bin/cli.js"
}
},
- "node_modules/@clack/core": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/@clack/core/-/core-0.5.0.tgz",
- "integrity": "sha512-p3y0FIOwaYRUPRcMO7+dlmLh8PSRcrjuTndsiA0WAFbWES0mLZlrjVoBRZ9DzkPFJZG6KGkJmoEAY0ZcVWTkow==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "picocolors": "^1.0.0",
- "sisteransi": "^1.0.5"
- }
- },
- "node_modules/@clack/prompts": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-0.11.0.tgz",
- "integrity": "sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@clack/core": "0.5.0",
- "picocolors": "^1.0.0",
- "sisteransi": "^1.0.5"
- }
- },
"node_modules/@csstools/color-helpers": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.0.2.tgz",
@@ -482,9 +477,9 @@
}
},
"node_modules/@csstools/css-calc": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.1.1.tgz",
- "integrity": "sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.0.tgz",
+ "integrity": "sha512-bR9e6o2BDB12jzN/gIbjHa5wLJ4UjD1CB9pM7ehlc0ddk6EBz+yYS1EV2MF55/HUxrHcB/hehAyt5vhsA3hx7w==",
"dev": true,
"funding": [
{
@@ -506,9 +501,9 @@
}
},
"node_modules/@csstools/css-color-parser": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.0.2.tgz",
- "integrity": "sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.0.tgz",
+ "integrity": "sha512-U0KhLYmy2GVj6q4T3WaAe6NPuFYCPQoE3b0dRGxejWDgcPp8TP7S5rVdM5ZrFaqu4N67X8YaPBw14dQSYx3IyQ==",
"dev": true,
"funding": [
{
@@ -523,7 +518,7 @@
"license": "MIT",
"dependencies": {
"@csstools/color-helpers": "^6.0.2",
- "@csstools/css-calc": "^3.1.1"
+ "@csstools/css-calc": "^3.2.0"
},
"engines": {
"node": ">=20.19.0"
@@ -557,9 +552,9 @@
}
},
"node_modules/@csstools/css-syntax-patches-for-csstree": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.1.tgz",
- "integrity": "sha512-BvqN0AMWNAnLk9G8jnUT77D+mUbY/H2b3uDTvg2isJkHaOufUE2R3AOwxWo7VBQKT1lOdwdvorddo2B/lk64+w==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.3.tgz",
+ "integrity": "sha512-SH60bMfrRCJF3morcdk57WklujF4Jr/EsQUzqkarfHXEFcAR1gg7fS/chAE922Sehgzc1/+Tz5H3Ypa1HiEKrg==",
"dev": true,
"funding": [
{
@@ -632,22 +627,20 @@
}
},
"node_modules/@emnapi/core": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.7.1.tgz",
- "integrity": "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==",
- "dev": true,
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz",
+ "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==",
"license": "MIT",
"optional": true,
"dependencies": {
- "@emnapi/wasi-threads": "1.1.0",
+ "@emnapi/wasi-threads": "1.2.1",
"tslib": "^2.4.0"
}
},
"node_modules/@emnapi/runtime": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.1.tgz",
- "integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==",
- "dev": true,
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz",
+ "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==",
"license": "MIT",
"optional": true,
"dependencies": {
@@ -655,16 +648,457 @@
}
},
"node_modules/@emnapi/wasi-threads": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz",
- "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==",
- "dev": true,
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz",
+ "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==",
"license": "MIT",
"optional": true,
"dependencies": {
"tslib": "^2.4.0"
}
},
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz",
+ "integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz",
+ "integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz",
+ "integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz",
+ "integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz",
+ "integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz",
+ "integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz",
+ "integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz",
+ "integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz",
+ "integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz",
+ "integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz",
+ "integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz",
+ "integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz",
+ "integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz",
+ "integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz",
+ "integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz",
+ "integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz",
+ "integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-arm64": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz",
+ "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz",
+ "integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz",
+ "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz",
+ "integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openharmony-arm64": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz",
+ "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz",
+ "integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz",
+ "integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz",
+ "integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz",
+ "integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
"node_modules/@eslint-community/eslint-utils": {
"version": "4.9.1",
"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz",
@@ -684,19 +1118,6 @@
"eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
}
},
- "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
"node_modules/@eslint-community/regexpp": {
"version": "4.12.2",
"resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz",
@@ -708,13 +1129,13 @@
}
},
"node_modules/@eslint/config-array": {
- "version": "0.23.3",
- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.3.tgz",
- "integrity": "sha512-j+eEWmB6YYLwcNOdlwQ6L2OsptI/LO6lNBuLIqe5R7RetD658HLoF+Mn7LzYmAWWNNzdC6cqP+L6r8ujeYXWLw==",
+ "version": "0.23.5",
+ "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.5.tgz",
+ "integrity": "sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@eslint/object-schema": "^3.0.3",
+ "@eslint/object-schema": "^3.0.5",
"debug": "^4.3.1",
"minimatch": "^10.2.4"
},
@@ -722,62 +1143,23 @@
"node": "^20.19.0 || ^22.13.0 || >=24"
}
},
- "node_modules/@eslint/config-array/node_modules/balanced-match": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
- "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "18 || 20 || >=22"
- }
- },
- "node_modules/@eslint/config-array/node_modules/brace-expansion": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz",
- "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^4.0.2"
- },
- "engines": {
- "node": "18 || 20 || >=22"
- }
- },
- "node_modules/@eslint/config-array/node_modules/minimatch": {
- "version": "10.2.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz",
- "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "brace-expansion": "^5.0.2"
- },
- "engines": {
- "node": "18 || 20 || >=22"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/@eslint/config-helpers": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.3.tgz",
- "integrity": "sha512-lzGN0onllOZCGroKJmRwY6QcEHxbjBw1gwB8SgRSqK8YbbtEXMvKynsXc3553ckIEBxsbMBU7oOZXKIPGZNeZw==",
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.5.tgz",
+ "integrity": "sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@eslint/core": "^1.1.1"
+ "@eslint/core": "^1.2.1"
},
"engines": {
"node": "^20.19.0 || ^22.13.0 || >=24"
}
},
"node_modules/@eslint/core": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.1.1.tgz",
- "integrity": "sha512-QUPblTtE51/7/Zhfv8BDwO0qkkzQL7P/aWWbqcf4xWLEYn1oKjdO0gglQBB4GAsu7u6wjijbCmzsUTy6mnk6oQ==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.2.1.tgz",
+ "integrity": "sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -788,9 +1170,9 @@
}
},
"node_modules/@eslint/object-schema": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.3.tgz",
- "integrity": "sha512-iM869Pugn9Nsxbh/YHRqYiqd23AmIbxJOcpUMOuWCVNdoQJ5ZtwL6h3t0bcZzJUlC3Dq9jCFCESBZnX0GTv7iQ==",
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.5.tgz",
+ "integrity": "sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -798,13 +1180,13 @@
}
},
"node_modules/@eslint/plugin-kit": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.6.1.tgz",
- "integrity": "sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ==",
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.1.tgz",
+ "integrity": "sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@eslint/core": "^1.1.1",
+ "@eslint/core": "^1.2.1",
"levn": "^0.4.1"
},
"engines": {
@@ -830,31 +1212,31 @@
}
},
"node_modules/@floating-ui/core": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz",
- "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz",
+ "integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==",
"license": "MIT",
"dependencies": {
- "@floating-ui/utils": "^0.2.10"
+ "@floating-ui/utils": "^0.2.11"
}
},
"node_modules/@floating-ui/dom": {
- "version": "1.7.4",
- "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz",
- "integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==",
+ "version": "1.7.6",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz",
+ "integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==",
"license": "MIT",
"dependencies": {
- "@floating-ui/core": "^1.7.3",
- "@floating-ui/utils": "^0.2.10"
+ "@floating-ui/core": "^1.7.5",
+ "@floating-ui/utils": "^0.2.11"
}
},
"node_modules/@floating-ui/react-dom": {
- "version": "2.1.6",
- "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.6.tgz",
- "integrity": "sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==",
+ "version": "2.1.8",
+ "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.8.tgz",
+ "integrity": "sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==",
"license": "MIT",
"dependencies": {
- "@floating-ui/dom": "^1.7.4"
+ "@floating-ui/dom": "^1.7.6"
},
"peerDependencies": {
"react": ">=16.8.0",
@@ -862,48 +1244,62 @@
}
},
"node_modules/@floating-ui/utils": {
- "version": "0.2.10",
- "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz",
- "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==",
+ "version": "0.2.11",
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz",
+ "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==",
"license": "MIT"
},
"node_modules/@hono/node-server": {
- "version": "1.19.12",
- "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.12.tgz",
- "integrity": "sha512-txsUW4SQ1iilgE0l9/e9VQWmELXifEFvmdA1j6WFh/aFPj99hIntrSsq/if0UWyGVkmrRPKA1wCeP+UCr1B9Uw==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-2.0.0.tgz",
+ "integrity": "sha512-n3GfHwwCvHCkGmOwKfxUPOlbfzuO64Sbc5XC4NGPIXxkuOnJrdgExdRKmHfF924r914WRJPT397GdqLvdYTeyQ==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=18.14.1"
+ "node": ">=20"
},
"peerDependencies": {
"hono": "^4"
}
},
"node_modules/@humanfs/core": {
- "version": "0.19.1",
- "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
- "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==",
+ "version": "0.19.2",
+ "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz",
+ "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==",
"dev": true,
"license": "Apache-2.0",
+ "dependencies": {
+ "@humanfs/types": "^0.15.0"
+ },
"engines": {
"node": ">=18.18.0"
}
},
"node_modules/@humanfs/node": {
- "version": "0.16.7",
- "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz",
- "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==",
+ "version": "0.16.8",
+ "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz",
+ "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@humanfs/core": "^0.19.1",
+ "@humanfs/core": "^0.19.2",
+ "@humanfs/types": "^0.15.0",
"@humanwhocodes/retry": "^0.4.0"
},
"engines": {
"node": ">=18.18.0"
}
},
+ "node_modules/@humanfs/types": {
+ "version": "0.15.0",
+ "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz",
+ "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=18.18.0"
+ }
+ },
"node_modules/@humanwhocodes/module-importer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
@@ -933,9 +1329,9 @@
}
},
"node_modules/@img/colour": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz",
- "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz",
+ "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==",
"dev": true,
"license": "MIT",
"optional": true,
@@ -1494,16 +1890,16 @@
}
},
"node_modules/@next/env": {
- "version": "16.2.1",
- "resolved": "https://registry.npmjs.org/@next/env/-/env-16.2.1.tgz",
- "integrity": "sha512-n8P/HCkIWW+gVal2Z8XqXJ6aB3J0tuM29OcHpCsobWlChH/SITBs1DFBk/HajgrwDkqqBXPbuUuzgDvUekREPg==",
+ "version": "16.2.4",
+ "resolved": "https://registry.npmjs.org/@next/env/-/env-16.2.4.tgz",
+ "integrity": "sha512-dKkkOzOSwFYe5RX6y26fZgkSpVAlIOJKQHIiydQcrWH6y/97+RceSOAdjZ14Qa3zLduVUy0TXcn+EiM6t4rPgw==",
"dev": true,
"license": "MIT"
},
"node_modules/@next/eslint-plugin-next": {
- "version": "16.2.1",
- "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-16.2.1.tgz",
- "integrity": "sha512-r0epZGo24eT4g08jJlg2OEryBphXqO8aL18oajoTKLzHJ6jVr6P6FI58DLMug04MwD3j8Fj0YK0slyzneKVyzA==",
+ "version": "16.2.4",
+ "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-16.2.4.tgz",
+ "integrity": "sha512-tOX826JJ96gYK/go18sPUgMq9FK1tqxBFfUCEufJb5XIkWFFmpgU7mahJANKGkHs7F41ir3tReJ3Lv5La0RvhA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1511,9 +1907,9 @@
}
},
"node_modules/@next/swc-darwin-arm64": {
- "version": "16.2.1",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.2.1.tgz",
- "integrity": "sha512-BwZ8w8YTaSEr2HIuXLMLxIdElNMPvY9fLqb20LX9A9OMGtJilhHLbCL3ggyd0TwjmMcTxi0XXt+ur1vWUoxj2Q==",
+ "version": "16.2.4",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.2.4.tgz",
+ "integrity": "sha512-OXTFFox5EKN1Ym08vfrz+OXxmCcEjT4SFMbNRsWZE99dMqt2Kcusl5MqPXcW232RYkMLQTy0hqgAMEsfEd/l2A==",
"cpu": [
"arm64"
],
@@ -1528,9 +1924,9 @@
}
},
"node_modules/@next/swc-darwin-x64": {
- "version": "16.2.1",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.2.1.tgz",
- "integrity": "sha512-/vrcE6iQSJq3uL3VGVHiXeaKbn8Es10DGTGRJnRZlkNQQk3kaNtAJg8Y6xuAlrx/6INKVjkfi5rY0iEXorZ6uA==",
+ "version": "16.2.4",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.2.4.tgz",
+ "integrity": "sha512-XhpVnUfmYWvD3YrXu55XdcAkQtOnvaI6wtQa8fuF5fGoKoxIUZ0kWPtcOfqJEWngFF/lOS9l3+O9CcownhiQxQ==",
"cpu": [
"x64"
],
@@ -1545,9 +1941,9 @@
}
},
"node_modules/@next/swc-linux-arm64-gnu": {
- "version": "16.2.1",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.2.1.tgz",
- "integrity": "sha512-uLn+0BK+C31LTVbQ/QU+UaVrV0rRSJQ8RfniQAHPghDdgE+SlroYqcmFnO5iNjNfVWCyKZHYrs3Nl0mUzWxbBw==",
+ "version": "16.2.4",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.2.4.tgz",
+ "integrity": "sha512-Mx/tjlNA3G8kg14QvuGAJ4xBwPk1tUHq56JxZ8CXnZwz1Etz714soCEzGQQzVMz4bEnGPowzkV6Xrp6wAkEWOQ==",
"cpu": [
"arm64"
],
@@ -1562,9 +1958,9 @@
}
},
"node_modules/@next/swc-linux-arm64-musl": {
- "version": "16.2.1",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.2.1.tgz",
- "integrity": "sha512-ssKq6iMRnHdnycGp9hCuGnXJZ0YPr4/wNwrfE5DbmvEcgl9+yv97/Kq3TPVDfYome1SW5geciLB9aiEqKXQjlQ==",
+ "version": "16.2.4",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.2.4.tgz",
+ "integrity": "sha512-iVMMp14514u7Nup2umQS03nT/bN9HurK8ufylC3FZNykrwjtx7V1A7+4kvhbDSCeonTVqV3Txnv0Lu+m2oDXNg==",
"cpu": [
"arm64"
],
@@ -1579,9 +1975,9 @@
}
},
"node_modules/@next/swc-linux-x64-gnu": {
- "version": "16.2.1",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.2.1.tgz",
- "integrity": "sha512-HQm7SrHRELJ30T1TSmT706IWovFFSRGxfgUkyWJZF/RKBMdbdRWJuFrcpDdE5vy9UXjFOx6L3mRdqH04Mmx0hg==",
+ "version": "16.2.4",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.2.4.tgz",
+ "integrity": "sha512-EZOvm1aQWgnI/N/xcWOlnS3RQBk0VtVav5Zo7n4p0A7UKyTDx047k8opDbXgBpHl4CulRqRfbw3QrX2w5UOXMQ==",
"cpu": [
"x64"
],
@@ -1596,9 +1992,9 @@
}
},
"node_modules/@next/swc-linux-x64-musl": {
- "version": "16.2.1",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.2.1.tgz",
- "integrity": "sha512-aV2iUaC/5HGEpbBkE+4B8aHIudoOy5DYekAKOMSHoIYQ66y/wIVeaRx8MS2ZMdxe/HIXlMho4ubdZs/J8441Tg==",
+ "version": "16.2.4",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.2.4.tgz",
+ "integrity": "sha512-h9FxsngCm9cTBf71AR4fGznDEDx1hS7+kSEiIRjq5kO1oXWm07DxVGZjCvk0SGx7TSjlUqhI8oOyz7NfwAdPoA==",
"cpu": [
"x64"
],
@@ -1613,9 +2009,9 @@
}
},
"node_modules/@next/swc-win32-arm64-msvc": {
- "version": "16.2.1",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.2.1.tgz",
- "integrity": "sha512-IXdNgiDHaSk0ZUJ+xp0OQTdTgnpx1RCfRTalhn3cjOP+IddTMINwA7DXZrwTmGDO8SUr5q2hdP/du4DcrB1GxA==",
+ "version": "16.2.4",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.2.4.tgz",
+ "integrity": "sha512-3NdJV5OXMSOeJYijX+bjaLge3mJBlh4ybydbT4GFoB/2hAojWHtMhl3CYlYoMrjPuodp0nzFVi4Tj2+WaMg+Ow==",
"cpu": [
"arm64"
],
@@ -1630,9 +2026,9 @@
}
},
"node_modules/@next/swc-win32-x64-msvc": {
- "version": "16.2.1",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.2.1.tgz",
- "integrity": "sha512-qvU+3a39Hay+ieIztkGSbF7+mccbbg1Tk25hc4JDylf8IHjYmY/Zm64Qq1602yPyQqvie+vf5T/uPwNxDNIoeg==",
+ "version": "16.2.4",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.2.4.tgz",
+ "integrity": "sha512-kMVGgsqhO5YTYODD9IPGGhA6iprWidQckK3LmPeW08PIFENRmgfb4MjXHO+p//d+ts2rpjvK5gXWzXSMrPl9cw==",
"cpu": [
"x64"
],
@@ -1695,9 +2091,9 @@
}
},
"node_modules/@oxc-project/types": {
- "version": "0.122.0",
- "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.122.0.tgz",
- "integrity": "sha512-oLAl5kBpV4w69UtFZ9xqcmTi+GENWOcPF7FCrczTiBbmC0ibXxCwyvZGbO39rCVEuLGAZM84DH0pUIyyv/YJzA==",
+ "version": "0.127.0",
+ "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.127.0.tgz",
+ "integrity": "sha512-aIYXQBo4lCbO4z0R3FHeucQHpF46l2LbMdxRvqvuRuW2OxdnSkcng5B8+K12spgLDj93rtN3+J2Vac/TIO+ciQ==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/Boshen"
@@ -1711,22 +2107,22 @@
"license": "MIT"
},
"node_modules/@prisma/adapter-better-sqlite3": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/@prisma/adapter-better-sqlite3/-/adapter-better-sqlite3-7.6.0.tgz",
- "integrity": "sha512-V0bU2nbFwwqCgzIEFDCmywNoqH9ilCYa6S32hGQxIgRbkgFC2eTl4+AJ6G+jfP0BZs3LXUirreoGNbSY/zbUGQ==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@prisma/adapter-better-sqlite3/-/adapter-better-sqlite3-7.8.0.tgz",
+ "integrity": "sha512-9p0HvQNaRoOaUForDcp1MPIjylmCamYQjQpEogpdesLr14g3NwAsYR3bHL9wFi8tn21TPDVQPzcZi+SxXEokSA==",
"license": "Apache-2.0",
"dependencies": {
- "@prisma/driver-adapter-utils": "7.6.0",
+ "@prisma/driver-adapter-utils": "7.8.0",
"better-sqlite3": "^12.6.0"
}
},
"node_modules/@prisma/client": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/@prisma/client/-/client-7.6.0.tgz",
- "integrity": "sha512-7Pe/1ayh3GgWPEg4mmT4ax77LJ1wC+XlnIFvQ94bLP2DsUnOpnruQQR3Jw7r+Frthk94QqDNxo3FjSg8h9PXeQ==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@prisma/client/-/client-7.8.0.tgz",
+ "integrity": "sha512-HFp3Dawv/3sU3JtlPha90IB+48lS7zHiH4LKZPjmcE8YH5P9DOXGPvo8dqOtO7MqLDd1p2hOWMcFlRT1DMblHw==",
"license": "Apache-2.0",
"dependencies": {
- "@prisma/client-runtime-utils": "7.6.0"
+ "@prisma/client-runtime-utils": "7.8.0"
},
"engines": {
"node": "^20.19 || ^22.12 || >=24.0"
@@ -1745,28 +2141,28 @@
}
},
"node_modules/@prisma/client-runtime-utils": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/@prisma/client-runtime-utils/-/client-runtime-utils-7.6.0.tgz",
- "integrity": "sha512-fD7jlqubsZvVODKvsp9lOpXVecx2aWGxC2l35Ioz2t+teUJ5CfR0SAMsi7UkU1VvaZmmm+DS6BdujF622nY7tQ==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@prisma/client-runtime-utils/-/client-runtime-utils-7.8.0.tgz",
+ "integrity": "sha512-5NQZztQ0oY/ADFkmd9gPuweH5A1/CCY8YQPorLLO0Mu6a87mY5gsnDkzmFmIHs9NFaLnZojzgddFVN4RpKYrdw==",
"license": "Apache-2.0"
},
"node_modules/@prisma/config": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/@prisma/config/-/config-7.6.0.tgz",
- "integrity": "sha512-MuAz1MK4PeG5/03YzfzX3CnFVHQ6qePGwUpQRzPzX5tT0ffJ3Tzi9zJZbBc+VzEGFCM8ghW/gTVDR85Syjt+Yw==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@prisma/config/-/config-7.8.0.tgz",
+ "integrity": "sha512-HFESzd9rx2ZQxlK+TL7tu1HPvCqrHiL6LCxYykI2c34mvaUuIVVl3lYuicJD/MNnzgPnyeBEMlK4WTomJCV5jw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "c12": "3.1.0",
+ "c12": "3.3.4",
"deepmerge-ts": "7.1.5",
"effect": "3.20.0",
"empathic": "2.0.0"
}
},
"node_modules/@prisma/debug": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-7.6.0.tgz",
- "integrity": "sha512-LpHr3qos4lQZ6sxwjStf59YBht7m9/QF7NSQsMH6qGENWZu2w3UkQUGn1h5iRkDjnWRj3VHykOu9qFhps4ADvA==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-7.8.0.tgz",
+ "integrity": "sha512-p+QZReysDUqXC+mk17q9a+Y/qzh4c2KYliDK30buYUyfrGeTGSyfmc0AIrJRhZJrLHhRiJa9Au/J72h3C+szvA==",
"license": "Apache-2.0"
},
"node_modules/@prisma/dev": {
@@ -1795,66 +2191,73 @@
"zeptomatch": "2.1.0"
}
},
+ "node_modules/@prisma/dev/node_modules/std-env": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz",
+ "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@prisma/driver-adapter-utils": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/@prisma/driver-adapter-utils/-/driver-adapter-utils-7.6.0.tgz",
- "integrity": "sha512-D8j3p0RnhLuufMaRLX6QqtGgPC5Ao3l5oFP6Q5AL0rTHi4vna+NzGEipwCsfvcSvaGFCbsH3lsTMbb4WvY+ovA==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@prisma/driver-adapter-utils/-/driver-adapter-utils-7.8.0.tgz",
+ "integrity": "sha512-/Q13o0ZT0rjc1Xk0Q9KhZYwuq2EW/vSbWUBKfgEKkaCuB/Sg6bqnjmTZqC5cD4d6y1vfFAEwBRzfzoSMIVJ55A==",
"license": "Apache-2.0",
"dependencies": {
- "@prisma/debug": "7.6.0"
+ "@prisma/debug": "7.8.0"
}
},
"node_modules/@prisma/engines": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-7.6.0.tgz",
- "integrity": "sha512-Sn5edRzhHqgRV2M+A0eIbY442B4mReWWf3pKs/LKreYgW7oa/up8JtK/s4iv/EQA097cyboZ08mmkpbLp+tZ3w==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-7.8.0.tgz",
+ "integrity": "sha512-jx3rCnNNrt5uzbkKlegtQ2GZHxSlihMCzutgT/BP6UIDF1r9tDI39hV/0T/cHZgzJ3ELbuQPXlVZy+Y1n0pcgw==",
"dev": true,
"hasInstallScript": true,
"license": "Apache-2.0",
"dependencies": {
- "@prisma/debug": "7.6.0",
- "@prisma/engines-version": "7.6.0-1.75cbdc1eb7150937890ad5465d861175c6624711",
- "@prisma/fetch-engine": "7.6.0",
- "@prisma/get-platform": "7.6.0"
+ "@prisma/debug": "7.8.0",
+ "@prisma/engines-version": "7.8.0-6.3c6e192761c0362d496ed980de936e2f3cebcd3a",
+ "@prisma/fetch-engine": "7.8.0",
+ "@prisma/get-platform": "7.8.0"
}
},
"node_modules/@prisma/engines-version": {
- "version": "7.6.0-1.75cbdc1eb7150937890ad5465d861175c6624711",
- "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-7.6.0-1.75cbdc1eb7150937890ad5465d861175c6624711.tgz",
- "integrity": "sha512-r51DLcJ8bDRSrBEJF3J4cinoWyGA7rfP2mG6lD90VqIbGNOkbfcLcXalSVjq5Y6brQS3vcjrq4GbyUb1Cb7vkw==",
+ "version": "7.8.0-6.3c6e192761c0362d496ed980de936e2f3cebcd3a",
+ "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-7.8.0-6.3c6e192761c0362d496ed980de936e2f3cebcd3a.tgz",
+ "integrity": "sha512-fJPQxCkLgA5EayWaW8eArgCvjJ+N+Kz3VyeNKMEeYiQC4alNkxRKFVAGxv/ZUzuJISKqdw+zGeDbS6mn6RCPOA==",
"dev": true,
"license": "Apache-2.0"
},
"node_modules/@prisma/engines/node_modules/@prisma/get-platform": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-7.6.0.tgz",
- "integrity": "sha512-ohZDwXvtmnbzOcutR2D13lDWpZP1wQjmPyztmt0AwXLzQI7q95EE7NYCvS+M6N6SivT+BM0NOqLmTH3wms4L3A==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-7.8.0.tgz",
+ "integrity": "sha512-WlxgRGnolL8VH2EmkH1R/DkKNr/mVdS3G2h42IZFFZ3eUrH9OT6t73kIOSlkkrv50wG123Iq8d96ufv5LlZktw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@prisma/debug": "7.6.0"
+ "@prisma/debug": "7.8.0"
}
},
"node_modules/@prisma/fetch-engine": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-7.6.0.tgz",
- "integrity": "sha512-N575Ni95c3FkduWY/eKTHqNYgNbceZ1tQaSknVtJjpKmiiBXmniESn/GTxsDvICC4ZeiNrXxioGInzQrCdx16w==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-7.8.0.tgz",
+ "integrity": "sha512-gwB0Euiz/DDRyxFRpLXYlK3RfaZUj1c5dAYMuhZYfApg7arknJlcb9bIsOHDppJmbqYaVA+yBIiFMDBfprsNPQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@prisma/debug": "7.6.0",
- "@prisma/engines-version": "7.6.0-1.75cbdc1eb7150937890ad5465d861175c6624711",
- "@prisma/get-platform": "7.6.0"
+ "@prisma/debug": "7.8.0",
+ "@prisma/engines-version": "7.8.0-6.3c6e192761c0362d496ed980de936e2f3cebcd3a",
+ "@prisma/get-platform": "7.8.0"
}
},
"node_modules/@prisma/fetch-engine/node_modules/@prisma/get-platform": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-7.6.0.tgz",
- "integrity": "sha512-ohZDwXvtmnbzOcutR2D13lDWpZP1wQjmPyztmt0AwXLzQI7q95EE7NYCvS+M6N6SivT+BM0NOqLmTH3wms4L3A==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-7.8.0.tgz",
+ "integrity": "sha512-WlxgRGnolL8VH2EmkH1R/DkKNr/mVdS3G2h42IZFFZ3eUrH9OT6t73kIOSlkkrv50wG123Iq8d96ufv5LlZktw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@prisma/debug": "7.6.0"
+ "@prisma/debug": "7.8.0"
}
},
"node_modules/@prisma/get-platform": {
@@ -1899,9 +2302,9 @@
}
},
"node_modules/@prisma/streams-local/node_modules/ajv": {
- "version": "8.18.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
- "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
+ "version": "8.20.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz",
+ "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2556,9 +2959,9 @@
"license": "MIT"
},
"node_modules/@rolldown/binding-android-arm64": {
- "version": "1.0.0-rc.12",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.12.tgz",
- "integrity": "sha512-pv1y2Fv0JybcykuiiD3qBOBdz6RteYojRFY1d+b95WVuzx211CRh+ytI/+9iVyWQ6koTh5dawe4S/yRfOFjgaA==",
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.17.tgz",
+ "integrity": "sha512-s70pVGhw4zqGeFnXWvAzJDlvxhlRollagdCCKRgOsgUOH3N1l0LIxf83AtGzmb5SiVM4Hjl5HyarMRfdfj3DaQ==",
"cpu": [
"arm64"
],
@@ -2572,9 +2975,9 @@
}
},
"node_modules/@rolldown/binding-darwin-arm64": {
- "version": "1.0.0-rc.12",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.12.tgz",
- "integrity": "sha512-cFYr6zTG/3PXXF3pUO+umXxt1wkRK/0AYT8lDwuqvRC+LuKYWSAQAQZjCWDQpAH172ZV6ieYrNnFzVVcnSflAg==",
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.17.tgz",
+ "integrity": "sha512-4ksWc9n0mhlZpZ9PMZgTGjeOPRu8MB1Z3Tz0Mo02eWfWCHMW1zN82Qz/pL/rC+yQa+8ZnutMF0JjJe7PjwasYw==",
"cpu": [
"arm64"
],
@@ -2588,9 +2991,9 @@
}
},
"node_modules/@rolldown/binding-darwin-x64": {
- "version": "1.0.0-rc.12",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.12.tgz",
- "integrity": "sha512-ZCsYknnHzeXYps0lGBz8JrF37GpE9bFVefrlmDrAQhOEi4IOIlcoU1+FwHEtyXGx2VkYAvhu7dyBf75EJQffBw==",
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.17.tgz",
+ "integrity": "sha512-SUSDOI6WwUVNcWxd02QEBjLdY1VPHvlEkw6T/8nYG322iYWCTxRb1vzk4E+mWWYehTp7ERibq54LSJGjmouOsw==",
"cpu": [
"x64"
],
@@ -2604,9 +3007,9 @@
}
},
"node_modules/@rolldown/binding-freebsd-x64": {
- "version": "1.0.0-rc.12",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.12.tgz",
- "integrity": "sha512-dMLeprcVsyJsKolRXyoTH3NL6qtsT0Y2xeuEA8WQJquWFXkEC4bcu1rLZZSnZRMtAqwtrF/Ib9Ddtpa/Gkge9Q==",
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.17.tgz",
+ "integrity": "sha512-hwnz3nw9dbJ05EDO/PvcjaaewqqDy7Y1rn1UO81l8iIK1GjenME75dl16ajbvSSMfv66WXSRCYKIqfgq2KCfxw==",
"cpu": [
"x64"
],
@@ -2620,9 +3023,9 @@
}
},
"node_modules/@rolldown/binding-linux-arm-gnueabihf": {
- "version": "1.0.0-rc.12",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.12.tgz",
- "integrity": "sha512-YqWjAgGC/9M1lz3GR1r1rP79nMgo3mQiiA+Hfo+pvKFK1fAJ1bCi0ZQVh8noOqNacuY1qIcfyVfP6HoyBRZ85Q==",
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.17.tgz",
+ "integrity": "sha512-IS+W7epTcwANmFSQFrS1SivEXHtl1JtuQA9wlxrZTcNi6mx+FDOYrakGevvvTwgj2JvWiK8B29/qD9BELZPyXQ==",
"cpu": [
"arm"
],
@@ -2636,9 +3039,9 @@
}
},
"node_modules/@rolldown/binding-linux-arm64-gnu": {
- "version": "1.0.0-rc.12",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.12.tgz",
- "integrity": "sha512-/I5AS4cIroLpslsmzXfwbe5OmWvSsrFuEw3mwvbQ1kDxJ822hFHIx+vsN/TAzNVyepI/j/GSzrtCIwQPeKCLIg==",
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.17.tgz",
+ "integrity": "sha512-e6usGaHKW5BMNZOymS1UcEYGowQMWcgZ71Z17Sl/h2+ZziNJ1a9n3Zvcz6LdRyIW5572wBCTH/Z+bKuZouGk9Q==",
"cpu": [
"arm64"
],
@@ -2652,9 +3055,9 @@
}
},
"node_modules/@rolldown/binding-linux-arm64-musl": {
- "version": "1.0.0-rc.12",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.12.tgz",
- "integrity": "sha512-V6/wZztnBqlx5hJQqNWwFdxIKN0m38p8Jas+VoSfgH54HSj9tKTt1dZvG6JRHcjh6D7TvrJPWFGaY9UBVOaWPw==",
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.17.tgz",
+ "integrity": "sha512-b/CgbwAJpmrRLp02RPfhbudf5tZnN9nsPWK82znefso832etkem8H7FSZwxrOI9djcdTP7U6YfNhbRnh7djErg==",
"cpu": [
"arm64"
],
@@ -2668,9 +3071,9 @@
}
},
"node_modules/@rolldown/binding-linux-ppc64-gnu": {
- "version": "1.0.0-rc.12",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.12.tgz",
- "integrity": "sha512-AP3E9BpcUYliZCxa3w5Kwj9OtEVDYK6sVoUzy4vTOJsjPOgdaJZKFmN4oOlX0Wp0RPV2ETfmIra9x1xuayFB7g==",
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.17.tgz",
+ "integrity": "sha512-4EII1iNGRUN5WwGbF/kOh/EIkoDN9HsupgLQoXfY+D1oyJm7/F4t5PYU5n8SWZgG0FEwakyM8pGgwcBYruGTlA==",
"cpu": [
"ppc64"
],
@@ -2684,9 +3087,9 @@
}
},
"node_modules/@rolldown/binding-linux-s390x-gnu": {
- "version": "1.0.0-rc.12",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.12.tgz",
- "integrity": "sha512-nWwpvUSPkoFmZo0kQazZYOrT7J5DGOJ/+QHHzjvNlooDZED8oH82Yg67HvehPPLAg5fUff7TfWFHQS8IV1n3og==",
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.17.tgz",
+ "integrity": "sha512-AH8oq3XqQo4IibpVXvPeLDI5pzkpYn0WiZAfT05kFzoJ6tQNzwRdDYQ45M8I/gslbodRZwW8uxLhbSBbkv96rA==",
"cpu": [
"s390x"
],
@@ -2700,9 +3103,9 @@
}
},
"node_modules/@rolldown/binding-linux-x64-gnu": {
- "version": "1.0.0-rc.12",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.12.tgz",
- "integrity": "sha512-RNrafz5bcwRy+O9e6P8Z/OCAJW/A+qtBczIqVYwTs14pf4iV1/+eKEjdOUta93q2TsT/FI0XYDP3TCky38LMAg==",
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.17.tgz",
+ "integrity": "sha512-cLnjV3xfo7KslbU41Z7z8BH/E1y5mzUYzAqih1d1MDaIGZRCMqTijqLv76/P7fyHuvUcfGsIpqCdddbxLLK9rA==",
"cpu": [
"x64"
],
@@ -2716,9 +3119,9 @@
}
},
"node_modules/@rolldown/binding-linux-x64-musl": {
- "version": "1.0.0-rc.12",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.12.tgz",
- "integrity": "sha512-Jpw/0iwoKWx3LJ2rc1yjFrj+T7iHZn2JDg1Yny1ma0luviFS4mhAIcd1LFNxK3EYu3DHWCps0ydXQ5i/rrJ2ig==",
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.17.tgz",
+ "integrity": "sha512-0phclDw1spsL7dUB37sIARuis2tAgomCJXAHZlpt8PXZ4Ba0dRP1e+66lsRqrfhISeN9bEGNjQs+T/Fbd7oYGw==",
"cpu": [
"x64"
],
@@ -2732,9 +3135,9 @@
}
},
"node_modules/@rolldown/binding-openharmony-arm64": {
- "version": "1.0.0-rc.12",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.12.tgz",
- "integrity": "sha512-vRugONE4yMfVn0+7lUKdKvN4D5YusEiPilaoO2sgUWpCvrncvWgPMzK00ZFFJuiPgLwgFNP5eSiUlv2tfc+lpA==",
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.17.tgz",
+ "integrity": "sha512-0ag/hEgXOwgw4t8QyQvUCxvEg+V0KBcA6YuOx9g0r02MprutRF5dyljgm3EmR02O292UX7UeS6HzWHAl6KgyhA==",
"cpu": [
"arm64"
],
@@ -2748,25 +3151,27 @@
}
},
"node_modules/@rolldown/binding-wasm32-wasi": {
- "version": "1.0.0-rc.12",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.12.tgz",
- "integrity": "sha512-ykGiLr/6kkiHc0XnBfmFJuCjr5ZYKKofkx+chJWDjitX+KsJuAmrzWhwyOMSHzPhzOHOy7u9HlFoa5MoAOJ/Zg==",
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.17.tgz",
+ "integrity": "sha512-LEXei6vo0E5wTGwpkJ4KoT3OZJRnglwldt5ziLzOlc6qqb55z4tWNq2A+PFqCJuvWWdP53CVhG1Z9NtToDPJrA==",
"cpu": [
"wasm32"
],
"license": "MIT",
"optional": true,
"dependencies": {
- "@napi-rs/wasm-runtime": "^1.1.1"
+ "@emnapi/core": "1.10.0",
+ "@emnapi/runtime": "1.10.0",
+ "@napi-rs/wasm-runtime": "^1.1.4"
},
"engines": {
- "node": ">=14.0.0"
+ "node": "^20.19.0 || >=22.12.0"
}
},
"node_modules/@rolldown/binding-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.2.tgz",
- "integrity": "sha512-sNXv5oLJ7ob93xkZ1XnxisYhGYXfaG9f65/ZgYuAu3qt7b3NadcOEhLvx28hv31PgX8SZJRYrAIPQilQmFpLVw==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz",
+ "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==",
"license": "MIT",
"optional": true,
"dependencies": {
@@ -2782,9 +3187,9 @@
}
},
"node_modules/@rolldown/binding-win32-arm64-msvc": {
- "version": "1.0.0-rc.12",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.12.tgz",
- "integrity": "sha512-5eOND4duWkwx1AzCxadcOrNeighiLwMInEADT0YM7xeEOOFcovWZCq8dadXgcRHSf3Ulh1kFo/qvzoFiCLOL1Q==",
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.17.tgz",
+ "integrity": "sha512-gUmyzBl3SPMa6hrqFUth9sVfcLBlYsbMzBx5PlexMroZStgzGqlZ26pYG89rBb45Mnia+oil6YAIFeEWGWhoZA==",
"cpu": [
"arm64"
],
@@ -2798,9 +3203,9 @@
}
},
"node_modules/@rolldown/binding-win32-x64-msvc": {
- "version": "1.0.0-rc.12",
- "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.12.tgz",
- "integrity": "sha512-PyqoipaswDLAZtot351MLhrlrh6lcZPo2LSYE+VDxbVk24LVKAGOuE4hb8xZQmrPAuEtTZW8E6D2zc5EUZX4Lw==",
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.17.tgz",
+ "integrity": "sha512-3hkiolcUAvPB9FLb3UZdfjVVNWherN1f/skkGWJP/fgSQhYUZpSIRr0/I8ZK9TkF3F7kxvJAk0+IcKvPHk9qQg==",
"cpu": [
"x64"
],
@@ -2900,9 +3305,9 @@
}
},
"node_modules/@tailwindcss/node": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.2.tgz",
- "integrity": "sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.4.tgz",
+ "integrity": "sha512-Ai7+yQPxz3ddrDQzFfBKdHEVBg0w3Zl83jnjuwxnZOsnH9pGn93QHQtpU0p/8rYWxvbFZHneni6p1BSLK4DkGA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2912,37 +3317,37 @@
"lightningcss": "1.32.0",
"magic-string": "^0.30.21",
"source-map-js": "^1.2.1",
- "tailwindcss": "4.2.2"
+ "tailwindcss": "4.2.4"
}
},
"node_modules/@tailwindcss/oxide": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.2.tgz",
- "integrity": "sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.4.tgz",
+ "integrity": "sha512-9El/iI069DKDSXwTvB9J4BwdO5JhRrOweGaK25taBAvBXyXqJAX+Jqdvs8r8gKpsI/1m0LeJLyQYTf/WLrBT1Q==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">= 20"
},
"optionalDependencies": {
- "@tailwindcss/oxide-android-arm64": "4.2.2",
- "@tailwindcss/oxide-darwin-arm64": "4.2.2",
- "@tailwindcss/oxide-darwin-x64": "4.2.2",
- "@tailwindcss/oxide-freebsd-x64": "4.2.2",
- "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.2",
- "@tailwindcss/oxide-linux-arm64-gnu": "4.2.2",
- "@tailwindcss/oxide-linux-arm64-musl": "4.2.2",
- "@tailwindcss/oxide-linux-x64-gnu": "4.2.2",
- "@tailwindcss/oxide-linux-x64-musl": "4.2.2",
- "@tailwindcss/oxide-wasm32-wasi": "4.2.2",
- "@tailwindcss/oxide-win32-arm64-msvc": "4.2.2",
- "@tailwindcss/oxide-win32-x64-msvc": "4.2.2"
+ "@tailwindcss/oxide-android-arm64": "4.2.4",
+ "@tailwindcss/oxide-darwin-arm64": "4.2.4",
+ "@tailwindcss/oxide-darwin-x64": "4.2.4",
+ "@tailwindcss/oxide-freebsd-x64": "4.2.4",
+ "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.4",
+ "@tailwindcss/oxide-linux-arm64-gnu": "4.2.4",
+ "@tailwindcss/oxide-linux-arm64-musl": "4.2.4",
+ "@tailwindcss/oxide-linux-x64-gnu": "4.2.4",
+ "@tailwindcss/oxide-linux-x64-musl": "4.2.4",
+ "@tailwindcss/oxide-wasm32-wasi": "4.2.4",
+ "@tailwindcss/oxide-win32-arm64-msvc": "4.2.4",
+ "@tailwindcss/oxide-win32-x64-msvc": "4.2.4"
}
},
"node_modules/@tailwindcss/oxide-android-arm64": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.2.tgz",
- "integrity": "sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.4.tgz",
+ "integrity": "sha512-e7MOr1SAn9U8KlZzPi1ZXGZHeC5anY36qjNwmZv9pOJ8E4Q6jmD1vyEHkQFmNOIN7twGPEMXRHmitN4zCMN03g==",
"cpu": [
"arm64"
],
@@ -2957,9 +3362,9 @@
}
},
"node_modules/@tailwindcss/oxide-darwin-arm64": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.2.tgz",
- "integrity": "sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.4.tgz",
+ "integrity": "sha512-tSC/Kbqpz/5/o/C2sG7QvOxAKqyd10bq+ypZNf+9Fi2TvbVbv1zNpcEptcsU7DPROaSbVgUXmrzKhurFvo5eDg==",
"cpu": [
"arm64"
],
@@ -2974,9 +3379,9 @@
}
},
"node_modules/@tailwindcss/oxide-darwin-x64": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.2.tgz",
- "integrity": "sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.4.tgz",
+ "integrity": "sha512-yPyUXn3yO/ufR6+Kzv0t4fCg2qNr90jxXc5QqBpjlPNd0NqyDXcmQb/6weunH/MEDXW5dhyEi+agTDiqa3WsGg==",
"cpu": [
"x64"
],
@@ -2991,9 +3396,9 @@
}
},
"node_modules/@tailwindcss/oxide-freebsd-x64": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.2.tgz",
- "integrity": "sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.4.tgz",
+ "integrity": "sha512-BoMIB4vMQtZsXdGLVc2z+P9DbETkiopogfWZKbWwM8b/1Vinbs4YcUwo+kM/KeLkX3Ygrf4/PsRndKaYhS8Eiw==",
"cpu": [
"x64"
],
@@ -3008,9 +3413,9 @@
}
},
"node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.2.tgz",
- "integrity": "sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.4.tgz",
+ "integrity": "sha512-7pIHBLTHYRAlS7V22JNuTh33yLH4VElwKtB3bwchK/UaKUPpQ0lPQiOWcbm4V3WP2I6fNIJ23vABIvoy2izdwA==",
"cpu": [
"arm"
],
@@ -3025,9 +3430,9 @@
}
},
"node_modules/@tailwindcss/oxide-linux-arm64-gnu": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.2.tgz",
- "integrity": "sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.4.tgz",
+ "integrity": "sha512-+E4wxJ0ZGOzSH325reXTWB48l42i93kQqMvDyz5gqfRzRZ7faNhnmvlV4EPGJU3QJM/3Ab5jhJ5pCRUsKn6OQw==",
"cpu": [
"arm64"
],
@@ -3042,9 +3447,9 @@
}
},
"node_modules/@tailwindcss/oxide-linux-arm64-musl": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.2.tgz",
- "integrity": "sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.4.tgz",
+ "integrity": "sha512-bBADEGAbo4ASnppIziaQJelekCxdMaxisrk+fB7Thit72IBnALp9K6ffA2G4ruj90G9XRS2VQ6q2bCKbfFV82g==",
"cpu": [
"arm64"
],
@@ -3059,9 +3464,9 @@
}
},
"node_modules/@tailwindcss/oxide-linux-x64-gnu": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.2.tgz",
- "integrity": "sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.4.tgz",
+ "integrity": "sha512-7Mx25E4WTfnht0TVRTyC00j3i0M+EeFe7wguMDTlX4mRxafznw0CA8WJkFjWYH5BlgELd1kSjuU2JiPnNZbJDA==",
"cpu": [
"x64"
],
@@ -3076,9 +3481,9 @@
}
},
"node_modules/@tailwindcss/oxide-linux-x64-musl": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.2.tgz",
- "integrity": "sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.4.tgz",
+ "integrity": "sha512-2wwJRF7nyhOR0hhHoChc04xngV3iS+akccHTGtz965FwF0up4b2lOdo6kI1EbDaEXKgvcrFBYcYQQ/rrnWFVfA==",
"cpu": [
"x64"
],
@@ -3093,9 +3498,9 @@
}
},
"node_modules/@tailwindcss/oxide-wasm32-wasi": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.2.tgz",
- "integrity": "sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.4.tgz",
+ "integrity": "sha512-FQsqApeor8Fo6gUEklzmaa9994orJZZDBAlQpK2Mq+DslRKFJeD6AjHpBQ0kZFQohVr8o85PPh8eOy86VlSCmw==",
"bundleDependencies": [
"@napi-rs/wasm-runtime",
"@emnapi/core",
@@ -3187,9 +3592,9 @@
"optional": true
},
"node_modules/@tailwindcss/oxide-win32-arm64-msvc": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.2.tgz",
- "integrity": "sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.4.tgz",
+ "integrity": "sha512-L9BXqxC4ToVgwMFqj3pmZRqyHEztulpUJzCxUtLjobMCzTPsGt1Fa9enKbOpY2iIyVtaHNeNvAK8ERP/64sqGQ==",
"cpu": [
"arm64"
],
@@ -3204,9 +3609,9 @@
}
},
"node_modules/@tailwindcss/oxide-win32-x64-msvc": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.2.tgz",
- "integrity": "sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.4.tgz",
+ "integrity": "sha512-ESlKG0EpVJQwRjXDDa9rLvhEAh0mhP1sF7sap9dNZT0yyl9SAG6T7gdP09EH0vIv0UNTlo6jPWyujD6559fZvw==",
"cpu": [
"x64"
],
@@ -3221,17 +3626,17 @@
}
},
"node_modules/@tailwindcss/postcss": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.2.2.tgz",
- "integrity": "sha512-n4goKQbW8RVXIbNKRB/45LzyUqN451deQK0nzIeauVEqjlI49slUlgKYJM2QyUzap/PcpnS7kzSUmPb1sCRvYQ==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.2.4.tgz",
+ "integrity": "sha512-wgAVj6nUWAolAu8YFvzT2cTBIElWHkjZwFYovF+xsqKsW2ADxM/X2opxj5NsF/qVccAOjRNe8X2IdPzMsWyHTg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@alloc/quick-lru": "^5.2.0",
- "@tailwindcss/node": "4.2.2",
- "@tailwindcss/oxide": "4.2.2",
+ "@tailwindcss/node": "4.2.4",
+ "@tailwindcss/oxide": "4.2.4",
"postcss": "^8.5.6",
- "tailwindcss": "4.2.2"
+ "tailwindcss": "4.2.4"
}
},
"node_modules/@tailwindcss/typography": {
@@ -3247,9 +3652,9 @@
}
},
"node_modules/@tanstack/query-core": {
- "version": "5.96.0",
- "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.96.0.tgz",
- "integrity": "sha512-sfO3uQeol1BU7cRP6NYY7nAiX3GiNY20lI/dtSbKLwcIkYw/X+w/tEsQAkc544AfIhBX/IvH/QYtPHrPhyAKGw==",
+ "version": "5.100.6",
+ "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.100.6.tgz",
+ "integrity": "sha512-Os2CPUr98to98RYm+D4qGqGkiffn7MGSyl2547a4MljVkHE30AMJRqTiyCqBfMwzAx/I91vCkAxp5tHSla6Twg==",
"license": "MIT",
"funding": {
"type": "github",
@@ -3257,12 +3662,12 @@
}
},
"node_modules/@tanstack/react-query": {
- "version": "5.96.0",
- "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.96.0.tgz",
- "integrity": "sha512-6qbjdm1K5kizVKv9TNqhIN3doq2anRhdF2XaFMFSn4m8L22S69RV+FilvlyVT4RoJyMxtPU5rs4RpdFa/PEC7A==",
+ "version": "5.100.6",
+ "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.100.6.tgz",
+ "integrity": "sha512-uVSrps0PV16Cxmcn2rvL+dUhwTpTUtiRW347AEeYxMZXO2pZe9ja7E24PAMGoQ5u2g89DD8u4QhOviBk+RN8RA==",
"license": "MIT",
"dependencies": {
- "@tanstack/query-core": "5.96.0"
+ "@tanstack/query-core": "5.100.6"
},
"funding": {
"type": "github",
@@ -3292,13 +3697,6 @@
"yarn": ">=1"
}
},
- "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz",
- "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/@testing-library/react": {
"version": "16.3.2",
"resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.2.tgz",
@@ -3342,9 +3740,9 @@
}
},
"node_modules/@trpc/client": {
- "version": "11.16.0",
- "resolved": "https://registry.npmjs.org/@trpc/client/-/client-11.16.0.tgz",
- "integrity": "sha512-TxIzm7OoK3baKZ0XCbuMUbI3GhgjcbKHIc4nWVKaRpCRnbSh0T31BT6fTPYwtnA/Nur8pBCGqC2B4J5hEPiPFQ==",
+ "version": "11.17.0",
+ "resolved": "https://registry.npmjs.org/@trpc/client/-/client-11.17.0.tgz",
+ "integrity": "sha512-KpJBFrbKTDeVCFv/3ckL1XBBH5Yssn8hethI/rUy7GIpTj+VzjtPjykDqJpzobuVOz+d26cXCSu1t4I6MYI5Zg==",
"funding": [
"https://trpc.io/sponsor"
],
@@ -3353,30 +3751,30 @@
"intent": "bin/intent.js"
},
"peerDependencies": {
- "@trpc/server": "11.16.0",
+ "@trpc/server": "11.17.0",
"typescript": ">=5.7.2"
}
},
"node_modules/@trpc/react-query": {
- "version": "11.16.0",
- "resolved": "https://registry.npmjs.org/@trpc/react-query/-/react-query-11.16.0.tgz",
- "integrity": "sha512-ah6ULOu4k7lCEFAEoEgqg14YPVu1lnCVVYcz8TP7avPPKwtcB0CbFKYve3ElRP+V5DoBT75Q+G66bRdR+rQ5fg==",
+ "version": "11.17.0",
+ "resolved": "https://registry.npmjs.org/@trpc/react-query/-/react-query-11.17.0.tgz",
+ "integrity": "sha512-AGcl5YAF8NnhBmyJ6PqJqKb1M5VTGSoNRNqJ3orct4o4epdcg0GWhW+qT9q6gPzs/2ImIwYCdfFpgNGdZ9yLHA==",
"funding": [
"https://trpc.io/sponsor"
],
"license": "MIT",
"peerDependencies": {
"@tanstack/react-query": "^5.80.3",
- "@trpc/client": "11.16.0",
- "@trpc/server": "11.16.0",
+ "@trpc/client": "11.17.0",
+ "@trpc/server": "11.17.0",
"react": ">=18.2.0",
"typescript": ">=5.7.2"
}
},
"node_modules/@trpc/server": {
- "version": "11.16.0",
- "resolved": "https://registry.npmjs.org/@trpc/server/-/server-11.16.0.tgz",
- "integrity": "sha512-XgGuUMddrUTd04+za/WE5GFuZ1/YU9XQG0t3VL5WOIu2JspkOlq6k4RYEiqS6HSJt+S0RXaPdIoE2anIP/BBRQ==",
+ "version": "11.17.0",
+ "resolved": "https://registry.npmjs.org/@trpc/server/-/server-11.17.0.tgz",
+ "integrity": "sha512-jbAOUe0PpUTCYqziyu+8vYXZdDXPudZgnEhWCQ2NjKnVEjfE93RqHTt1oycZJv/HNf51YlRXfEEwSIAbb161rw==",
"funding": [
"https://trpc.io/sponsor"
],
@@ -3431,9 +3829,9 @@
}
},
"node_modules/@types/debug": {
- "version": "4.1.12",
- "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz",
- "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
+ "version": "4.1.13",
+ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz",
+ "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==",
"license": "MIT",
"dependencies": {
"@types/ms": "*"
@@ -3518,12 +3916,12 @@
"license": "MIT"
},
"node_modules/@types/node": {
- "version": "24.10.9",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.9.tgz",
- "integrity": "sha512-ne4A0IpG3+2ETuREInjPNhUGis1SFjv1d5asp8MzEAGtOZeTeHVDOYqOgqfhvseqg/iXty2hjBf1zAOb7RNiNw==",
+ "version": "25.6.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.0.tgz",
+ "integrity": "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==",
"license": "MIT",
"dependencies": {
- "undici-types": "~7.16.0"
+ "undici-types": "~7.19.0"
}
},
"node_modules/@types/node-cron": {
@@ -3534,9 +3932,9 @@
"license": "MIT"
},
"node_modules/@types/prismjs": {
- "version": "1.26.5",
- "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.5.tgz",
- "integrity": "sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==",
+ "version": "1.26.6",
+ "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.6.tgz",
+ "integrity": "sha512-vqlvI7qlMvcCBbVe0AKAb4f97//Hy0EBTaiW8AalRnG/xAN5zOiWWyrNqNXeq8+KAuvRewjCVY1+IPxk4RdNYw==",
"license": "MIT"
},
"node_modules/@types/react": {
@@ -3583,17 +3981,17 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.58.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.58.0.tgz",
- "integrity": "sha512-RLkVSiNuUP1C2ROIWfqX+YcUfLaSnxGE/8M+Y57lopVwg9VTYYfhuz15Yf1IzCKgZj6/rIbYTmJCUSqr76r0Wg==",
+ "version": "8.59.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.59.1.tgz",
+ "integrity": "sha512-BOziFIfE+6osHO9FoJG4zjoHUcvI7fTNBSpdAwrNH0/TLvzjsk2oo8XSSOT2HhqUyhZPfHv4UOffoJ9oEEQ7Ag==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/regexpp": "^4.12.2",
- "@typescript-eslint/scope-manager": "8.58.0",
- "@typescript-eslint/type-utils": "8.58.0",
- "@typescript-eslint/utils": "8.58.0",
- "@typescript-eslint/visitor-keys": "8.58.0",
+ "@typescript-eslint/scope-manager": "8.59.1",
+ "@typescript-eslint/type-utils": "8.59.1",
+ "@typescript-eslint/utils": "8.59.1",
+ "@typescript-eslint/visitor-keys": "8.59.1",
"ignore": "^7.0.5",
"natural-compare": "^1.4.0",
"ts-api-utils": "^2.5.0"
@@ -3606,32 +4004,22 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "@typescript-eslint/parser": "^8.58.0",
+ "@typescript-eslint/parser": "^8.59.1",
"eslint": "^8.57.0 || ^9.0.0 || ^10.0.0",
"typescript": ">=4.8.4 <6.1.0"
}
},
- "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": {
- "version": "7.0.5",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
- "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 4"
- }
- },
"node_modules/@typescript-eslint/parser": {
- "version": "8.58.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.58.0.tgz",
- "integrity": "sha512-rLoGZIf9afaRBYsPUMtvkDWykwXwUPL60HebR4JgTI8mxfFe2cQTu3AGitANp4b9B2QlVru6WzjgB2IzJKiCSA==",
+ "version": "8.59.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.59.1.tgz",
+ "integrity": "sha512-HDQH9O/47Dxi1ceDhBXdaldtf/WV9yRYMjbjCuNk3qnaTD564qwv61Y7+gTxwxRKzSrgO5uhtw584igXVuuZkA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/scope-manager": "8.58.0",
- "@typescript-eslint/types": "8.58.0",
- "@typescript-eslint/typescript-estree": "8.58.0",
- "@typescript-eslint/visitor-keys": "8.58.0",
+ "@typescript-eslint/scope-manager": "8.59.1",
+ "@typescript-eslint/types": "8.59.1",
+ "@typescript-eslint/typescript-estree": "8.59.1",
+ "@typescript-eslint/visitor-keys": "8.59.1",
"debug": "^4.4.3"
},
"engines": {
@@ -3647,14 +4035,14 @@
}
},
"node_modules/@typescript-eslint/project-service": {
- "version": "8.58.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.58.0.tgz",
- "integrity": "sha512-8Q/wBPWLQP1j16NxoPNIKpDZFMaxl7yWIoqXWYeWO+Bbd2mjgvoF0dxP2jKZg5+x49rgKdf7Ck473M8PC3V9lg==",
+ "version": "8.59.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.59.1.tgz",
+ "integrity": "sha512-+MuHQlHiEr00Of/IQbE/MmEoi44znZHbR/Pz7Opq4HryUOlRi+/44dro9Ycy8Fyo+/024IWtw8m4JUMCGTYxDg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/tsconfig-utils": "^8.58.0",
- "@typescript-eslint/types": "^8.58.0",
+ "@typescript-eslint/tsconfig-utils": "^8.59.1",
+ "@typescript-eslint/types": "^8.59.1",
"debug": "^4.4.3"
},
"engines": {
@@ -3669,14 +4057,14 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "8.58.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.58.0.tgz",
- "integrity": "sha512-W1Lur1oF50FxSnNdGp3Vs6P+yBRSmZiw4IIjEeYxd8UQJwhUF0gDgDD/W/Tgmh73mxgEU3qX0Bzdl/NGuSPEpQ==",
+ "version": "8.59.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.59.1.tgz",
+ "integrity": "sha512-LwuHQI4pDOYVKvmH2dkaJo6YZCSgouVgnS/z7yBPKBMvgtBvyLqiLy9Z6b7+m/TRcX1NFYUqZetI5Y+aT4GEfg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.58.0",
- "@typescript-eslint/visitor-keys": "8.58.0"
+ "@typescript-eslint/types": "8.59.1",
+ "@typescript-eslint/visitor-keys": "8.59.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3687,9 +4075,9 @@
}
},
"node_modules/@typescript-eslint/tsconfig-utils": {
- "version": "8.58.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.58.0.tgz",
- "integrity": "sha512-doNSZEVJsWEu4htiVC+PR6NpM+pa+a4ClH9INRWOWCUzMst/VA9c4gXq92F8GUD1rwhNvRLkgjfYtFXegXQF7A==",
+ "version": "8.59.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.59.1.tgz",
+ "integrity": "sha512-/0nEyPbX7gRsk0Uwfe4ALwwgxuA66d/l2mhRDNlAvaj4U3juhUtJNq0DsY8M2AYwwb9rEq2hrC3IcIcEt++iJA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3704,15 +4092,15 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "8.58.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.58.0.tgz",
- "integrity": "sha512-aGsCQImkDIqMyx1u4PrVlbi/krmDsQUs4zAcCV6M7yPcPev+RqVlndsJy9kJ8TLihW9TZ0kbDAzctpLn5o+lOg==",
+ "version": "8.59.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.59.1.tgz",
+ "integrity": "sha512-klWPBR2ciQHS3f++ug/mVnWKPjBUo7icEL3FAO1lhAR1Z1i5NQYZ1EannMSRYcq5qCv5wNALlXr6fksRHyYl7w==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.58.0",
- "@typescript-eslint/typescript-estree": "8.58.0",
- "@typescript-eslint/utils": "8.58.0",
+ "@typescript-eslint/types": "8.59.1",
+ "@typescript-eslint/typescript-estree": "8.59.1",
+ "@typescript-eslint/utils": "8.59.1",
"debug": "^4.4.3",
"ts-api-utils": "^2.5.0"
},
@@ -3729,9 +4117,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "8.58.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.58.0.tgz",
- "integrity": "sha512-O9CjxypDT89fbHxRfETNoAnHj/i6IpRK0CvbVN3qibxlLdo5p5hcLmUuCCrHMpxiWSwKyI8mCP7qRNYuOJ0Uww==",
+ "version": "8.59.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.59.1.tgz",
+ "integrity": "sha512-ZDCjgccSdYPw5Bxh+my4Z0lJU96ZDN7jbBzvmEn0FZx3RtU1C7VWl6NbDx94bwY3V5YsgwRzJPOgeY2Q/nLG8A==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3743,16 +4131,16 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.58.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.58.0.tgz",
- "integrity": "sha512-7vv5UWbHqew/dvs+D3e1RvLv1v2eeZ9txRHPnEEBUgSNLx5ghdzjHa0sgLWYVKssH+lYmV0JaWdoubo0ncGYLA==",
+ "version": "8.59.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.59.1.tgz",
+ "integrity": "sha512-OUd+vJS05sSkOip+BkZ/2NS8RMxrAAJemsC6vU3kmfLyeaJT0TftHkV9mcx2107MmsBVXXexhVu4F0TZXyMl4g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/project-service": "8.58.0",
- "@typescript-eslint/tsconfig-utils": "8.58.0",
- "@typescript-eslint/types": "8.58.0",
- "@typescript-eslint/visitor-keys": "8.58.0",
+ "@typescript-eslint/project-service": "8.59.1",
+ "@typescript-eslint/tsconfig-utils": "8.59.1",
+ "@typescript-eslint/types": "8.59.1",
+ "@typescript-eslint/visitor-keys": "8.59.1",
"debug": "^4.4.3",
"minimatch": "^10.2.2",
"semver": "^7.7.3",
@@ -3770,69 +4158,17 @@
"typescript": ">=4.8.4 <6.1.0"
}
},
- "node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
- "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "18 || 20 || >=22"
- }
- },
- "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz",
- "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^4.0.2"
- },
- "engines": {
- "node": "18 || 20 || >=22"
- }
- },
- "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
- "version": "10.2.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz",
- "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "brace-expansion": "^5.0.5"
- },
- "engines": {
- "node": "18 || 20 || >=22"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
- "version": "7.7.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
- "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/@typescript-eslint/utils": {
- "version": "8.58.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.58.0.tgz",
- "integrity": "sha512-RfeSqcFeHMHlAWzt4TBjWOAtoW9lnsAGiP3GbaX9uVgTYYrMbVnGONEfUCiSss+xMHFl+eHZiipmA8WkQ7FuNA==",
+ "version": "8.59.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.59.1.tgz",
+ "integrity": "sha512-3pIeoXhCeYH9FSCBI8P3iNwJlGuzPlYKkTlen2O9T1DSeeg8UG8jstq6BLk+Mda0qup7mgk4z4XL4OzRaxZ8LA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.9.1",
- "@typescript-eslint/scope-manager": "8.58.0",
- "@typescript-eslint/types": "8.58.0",
- "@typescript-eslint/typescript-estree": "8.58.0"
+ "@typescript-eslint/scope-manager": "8.59.1",
+ "@typescript-eslint/types": "8.59.1",
+ "@typescript-eslint/typescript-estree": "8.59.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3847,13 +4183,13 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.58.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.58.0.tgz",
- "integrity": "sha512-XJ9UD9+bbDo4a4epraTwG3TsNPeiB9aShrUneAVXy8q4LuwowN+qu89/6ByLMINqvIMeI9H9hOHQtg/ijrYXzQ==",
+ "version": "8.59.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.59.1.tgz",
+ "integrity": "sha512-LdDNl6C5iJExcM0Yh0PwAIBb9PrSiCsWamF/JyEZawm3kFDnRoaq3LGE4bpyRao/fWeGKKyw7icx0YxrLFC5Cg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.58.0",
+ "@typescript-eslint/types": "8.59.1",
"eslint-visitor-keys": "^5.0.0"
},
"engines": {
@@ -3864,6 +4200,19 @@
"url": "https://opencollective.com/typescript-eslint"
}
},
+ "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz",
+ "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^20.19.0 || ^22.13.0 || >=24"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
"node_modules/@ungap/structured-clone": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
@@ -4166,14 +4515,14 @@
}
},
"node_modules/@vitest/coverage-v8": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.2.tgz",
- "integrity": "sha512-sPK//PHO+kAkScb8XITeB1bf7fsk85Km7+rt4eeuRR3VS1/crD47cmV5wicisJmjNdfeokTZwjMk4Mj2d58Mgg==",
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.5.tgz",
+ "integrity": "sha512-38C0/Ddb7HcRG0Z4/DUem8x57d2p9jYgp18mkaYswEOQBGsI1CG4f/hjm0ZCeaJfWhSZ4k7jgs29V1Zom7Ki9A==",
"dev": true,
"license": "MIT",
"dependencies": {
"@bcoe/v8-coverage": "^1.0.2",
- "@vitest/utils": "4.1.2",
+ "@vitest/utils": "4.1.5",
"ast-v8-to-istanbul": "^1.0.0",
"istanbul-lib-coverage": "^3.2.2",
"istanbul-lib-report": "^3.0.1",
@@ -4187,8 +4536,8 @@
"url": "https://opencollective.com/vitest"
},
"peerDependencies": {
- "@vitest/browser": "4.1.2",
- "vitest": "4.1.2"
+ "@vitest/browser": "4.1.5",
+ "vitest": "4.1.5"
},
"peerDependenciesMeta": {
"@vitest/browser": {
@@ -4196,24 +4545,17 @@
}
}
},
- "node_modules/@vitest/coverage-v8/node_modules/std-env": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.0.0.tgz",
- "integrity": "sha512-zUMPtQ/HBY3/50VbpkupYHbRroTRZJPRLvreamgErJVys0ceuzMkD44J/QjqhHjOzK42GQ3QZIeFG1OYfOtKqQ==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/@vitest/expect": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.2.tgz",
- "integrity": "sha512-gbu+7B0YgUJ2nkdsRJrFFW6X7NTP44WlhiclHniUhxADQJH5Szt9mZ9hWnJPJ8YwOK5zUOSSlSvyzRf0u1DSBQ==",
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.5.tgz",
+ "integrity": "sha512-PWBaRY5JoKuRnHlUHfpV/KohFylaDZTupcXN1H9vYryNLOnitSw60Mw9IAE2r67NbwwzBw/Cc/8q9BK3kIX8Kw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@standard-schema/spec": "^1.1.0",
"@types/chai": "^5.2.2",
- "@vitest/spy": "4.1.2",
- "@vitest/utils": "4.1.2",
+ "@vitest/spy": "4.1.5",
+ "@vitest/utils": "4.1.5",
"chai": "^6.2.2",
"tinyrainbow": "^3.1.0"
},
@@ -4222,13 +4564,13 @@
}
},
"node_modules/@vitest/mocker": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.2.tgz",
- "integrity": "sha512-Ize4iQtEALHDttPRCmN+FKqOl2vxTiNUhzobQFFt/BM1lRUTG7zRCLOykG/6Vo4E4hnUdfVLo5/eqKPukcWW7Q==",
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.5.tgz",
+ "integrity": "sha512-/x2EmFC4mT4NNzqvC3fmesuV97w5FC903KPmey4gsnJiMQ3Be1IlDKVaDaG8iqaLFHqJ2FVEkxZk5VmeLjIItw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@vitest/spy": "4.1.2",
+ "@vitest/spy": "4.1.5",
"estree-walker": "^3.0.3",
"magic-string": "^0.30.21"
},
@@ -4249,9 +4591,9 @@
}
},
"node_modules/@vitest/pretty-format": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.2.tgz",
- "integrity": "sha512-dwQga8aejqeuB+TvXCMzSQemvV9hNEtDDpgUKDzOmNQayl2OG241PSWeJwKRH3CiC+sESrmoFd49rfnq7T4RnA==",
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.5.tgz",
+ "integrity": "sha512-7I3q6l5qr03dVfMX2wCo9FxwSJbPdwKjy2uu/YPpU3wfHvIL4QHwVRp57OfGrDFeUJ8/8QdfBKIV12FTtLn00g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4262,13 +4604,13 @@
}
},
"node_modules/@vitest/runner": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.2.tgz",
- "integrity": "sha512-Gr+FQan34CdiYAwpGJmQG8PgkyFVmARK8/xSijia3eTFgVfpcpztWLuP6FttGNfPLJhaZVP/euvujeNYar36OQ==",
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.5.tgz",
+ "integrity": "sha512-2D+o7Pr82IEO46YPpoA/YU0neeyr6FTerQb5Ro7BUnBuv6NQtT/kmVnczngiMEBhzgqz2UZYl5gArejsyERDSQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@vitest/utils": "4.1.2",
+ "@vitest/utils": "4.1.5",
"pathe": "^2.0.3"
},
"funding": {
@@ -4276,14 +4618,14 @@
}
},
"node_modules/@vitest/snapshot": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.2.tgz",
- "integrity": "sha512-g7yfUmxYS4mNxk31qbOYsSt2F4m1E02LFqO53Xpzg3zKMhLAPZAjjfyl9e6z7HrW6LvUdTwAQR3HHfLjpko16A==",
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.5.tgz",
+ "integrity": "sha512-zypXEt4KH/XgKGPUz4eC2AvErYx0My5hfL8oDb1HzGFpEk1P62bxSohdyOmvz+d9UJwanI68MKwr2EquOaOgMQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@vitest/pretty-format": "4.1.2",
- "@vitest/utils": "4.1.2",
+ "@vitest/pretty-format": "4.1.5",
+ "@vitest/utils": "4.1.5",
"magic-string": "^0.30.21",
"pathe": "^2.0.3"
},
@@ -4292,9 +4634,9 @@
}
},
"node_modules/@vitest/spy": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.2.tgz",
- "integrity": "sha512-DU4fBnbVCJGNBwVA6xSToNXrkZNSiw59H8tcuUspVMsBDBST4nfvsPsEHDHGtWRRnqBERBQu7TrTKskmjqTXKA==",
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.5.tgz",
+ "integrity": "sha512-2lNOsh6+R2Idnf1TCZqSwYlKN2E/iDlD8sgU59kYVl+OMDmvldO1VDk39smRfpUNwYpNRVn3w4YfuC7KfbBnkQ==",
"dev": true,
"license": "MIT",
"funding": {
@@ -4302,13 +4644,13 @@
}
},
"node_modules/@vitest/ui": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-4.1.2.tgz",
- "integrity": "sha512-/irhyeAcKS2u6Zokagf9tqZJ0t8S6kMZq4ZG9BHZv7I+fkRrYfQX4w7geYeC2r6obThz39PDxvXQzZX+qXqGeg==",
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-4.1.5.tgz",
+ "integrity": "sha512-3Z9HNFiV0IF1fk0JPiK+7kE1GcaIPefQQIBYur6PM5yFIq6agys3uqP/0t966e1wXfmjbRCHDe7qW236Xjwnag==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@vitest/utils": "4.1.2",
+ "@vitest/utils": "4.1.5",
"fflate": "^0.8.2",
"flatted": "^3.4.2",
"pathe": "^2.0.3",
@@ -4320,17 +4662,17 @@
"url": "https://opencollective.com/vitest"
},
"peerDependencies": {
- "vitest": "4.1.2"
+ "vitest": "4.1.5"
}
},
"node_modules/@vitest/utils": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.2.tgz",
- "integrity": "sha512-xw2/TiX82lQHA06cgbqRKFb5lCAy3axQ4H4SoUFhUsg+wztiet+co86IAMDtF6Vm1hc7J6j09oh/rgDn+JdKIQ==",
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.5.tgz",
+ "integrity": "sha512-76wdkrmfXfqGjueGgnb45ITPyUi1ycZ4IHgC2bhPDUfWHklY/q3MdLOAB+TF1e6xfl8NxNY0ZYaPCFNWSsw3Ug==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@vitest/pretty-format": "4.1.2",
+ "@vitest/pretty-format": "4.1.5",
"convert-source-map": "^2.0.0",
"tinyrainbow": "^3.1.0"
},
@@ -4383,9 +4725,9 @@
}
},
"node_modules/ajv": {
- "version": "6.14.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz",
- "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==",
+ "version": "6.15.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz",
+ "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4399,6 +4741,18 @@
"url": "https://github.com/sponsors/epoberezkin"
}
},
+ "node_modules/ansi-regex": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
+ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
"node_modules/aria-hidden": {
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz",
@@ -4412,13 +4766,13 @@
}
},
"node_modules/aria-query": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
- "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz",
+ "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==",
"dev": true,
"license": "Apache-2.0",
- "dependencies": {
- "dequal": "^2.0.3"
+ "engines": {
+ "node": ">= 0.4"
}
},
"node_modules/array-buffer-byte-length": {
@@ -4610,13 +4964,6 @@
"js-tokens": "^10.0.0"
}
},
- "node_modules/ast-v8-to-istanbul/node_modules/js-tokens": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-10.0.0.tgz",
- "integrity": "sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/async-function": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz",
@@ -4660,9 +5007,9 @@
}
},
"node_modules/axe-core": {
- "version": "4.11.0",
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.11.0.tgz",
- "integrity": "sha512-ilYanEU8vxxBexpJd8cWM4ElSQq4QctCLKih0TSfjIfCQTeyH/6zVrmIJfLPrKTKJRbiG+cfnZbQIjAlJmF1jQ==",
+ "version": "4.11.3",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.11.3.tgz",
+ "integrity": "sha512-zBQouZixDTbo3jMGqHKyePxYxr1e5W8UdTmBQ7sNtaA9M2bE32daxxPLS/jojhKOHxQ7LWwPjfiwf/fhaJWzlg==",
"dev": true,
"license": "MPL-2.0",
"engines": {
@@ -4670,9 +5017,9 @@
}
},
"node_modules/axios": {
- "version": "1.14.0",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.14.0.tgz",
- "integrity": "sha512-3Y8yrqLSwjuzpXuZ0oIYZ/XGgLwUIBU3uLvbcpb0pidD9ctpShJd43KSlEEkVQg6DS0G9NKyzOvBfUtDKEyHvQ==",
+ "version": "1.15.2",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.15.2.tgz",
+ "integrity": "sha512-wLrXxPtcrPTsNlJmKjkPnNPK2Ihe0hn0wGSaTEiHRPxwjvJwT3hKmXF4dpqxmPO9SoNb2FsYXj/xEo0gHN+D5A==",
"license": "MIT",
"dependencies": {
"follow-redirects": "^1.15.11",
@@ -4701,11 +5048,14 @@
}
},
"node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
+ "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "engines": {
+ "node": "18 || 20 || >=22"
+ }
},
"node_modules/base64-js": {
"version": "1.5.1",
@@ -4728,9 +5078,9 @@
"license": "MIT"
},
"node_modules/baseline-browser-mapping": {
- "version": "2.10.13",
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.13.tgz",
- "integrity": "sha512-BL2sTuHOdy0YT1lYieUxTw/QMtPBC3pmlJC6xk8BBYVv6vcw3SGdKemQ+Xsx9ik2F/lYDO9tqsFQH1r9PFuHKw==",
+ "version": "2.10.24",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.24.tgz",
+ "integrity": "sha512-I2NkZOOrj2XuguvWCK6OVh9GavsNjZjK908Rq3mIBK25+GD8vPX5w2WdxVqnQ7xx3SrZJiCiZFu+/Oz50oSYSA==",
"dev": true,
"license": "Apache-2.0",
"bin": {
@@ -4750,22 +5100,16 @@
}
},
"node_modules/better-result": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/better-result/-/better-result-2.7.0.tgz",
- "integrity": "sha512-7zrmXjAK8u8Z6SOe4R65XObOR5X+Y2I/VVku3t5cPOGQ8/WsBcfFmfnIPiEl5EBMDOzPHRwbiPbMtQBKYdw7RA==",
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/better-result/-/better-result-2.9.0.tgz",
+ "integrity": "sha512-NHwGDGVbRlWDOce3CwcfGIrcNR9zY37ut3SVwQVfv57DZdVhxjhA4mfaHN1n8QwWnRAR4iErpW1X/eaiaUaFYg==",
"dev": true,
- "license": "MIT",
- "dependencies": {
- "@clack/prompts": "^0.11.0"
- },
- "bin": {
- "better-result": "bin/cli.mjs"
- }
+ "license": "MIT"
},
"node_modules/better-sqlite3": {
- "version": "12.8.0",
- "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.8.0.tgz",
- "integrity": "sha512-RxD2Vd96sQDjQr20kdP+F+dK/1OUNiVOl200vKBZY8u0vTwysfolF6Hq+3ZK2+h8My9YvZhHsF+RSGZW2VYrPQ==",
+ "version": "12.9.0",
+ "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.9.0.tgz",
+ "integrity": "sha512-wqUv4Gm3toFpHDQmaKD4QhZm3g1DjUBI0yzS4UBl6lElUmXFYdTQmmEDpAFa5o8FiFiymURypEnfVHzILKaxqQ==",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
@@ -4807,14 +5151,16 @@
}
},
"node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz",
+ "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "balanced-match": "^4.0.2"
+ },
+ "engines": {
+ "node": "18 || 20 || >=22"
}
},
"node_modules/braces": {
@@ -4895,27 +5241,27 @@
"license": "BSD-3-Clause"
},
"node_modules/c12": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/c12/-/c12-3.1.0.tgz",
- "integrity": "sha512-uWoS8OU1MEIsOv8p/5a82c3H31LsWVR5qiyXVfBNOzfffjUWtPnhAb4BYI2uG2HfGmZmFjCtui5XNWaps+iFuw==",
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/c12/-/c12-3.3.4.tgz",
+ "integrity": "sha512-cM0ApFQSBXuourJejzwv/AuPRvAxordTyParRVcHjjtXirtkzM0uK2L9TTn9s0cXZbG7E55jCivRQzoxYmRAlA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "chokidar": "^4.0.3",
- "confbox": "^0.2.2",
- "defu": "^6.1.4",
- "dotenv": "^16.6.1",
- "exsolve": "^1.0.7",
- "giget": "^2.0.0",
- "jiti": "^2.4.2",
+ "chokidar": "^5.0.0",
+ "confbox": "^0.2.4",
+ "defu": "^6.1.6",
+ "dotenv": "^17.3.1",
+ "exsolve": "^1.0.8",
+ "giget": "^3.2.0",
+ "jiti": "^2.6.1",
"ohash": "^2.0.11",
"pathe": "^2.0.3",
- "perfect-debounce": "^1.0.0",
- "pkg-types": "^2.2.0",
- "rc9": "^2.1.2"
+ "perfect-debounce": "^2.1.0",
+ "pkg-types": "^2.3.0",
+ "rc9": "^3.0.1"
},
"peerDependencies": {
- "magicast": "^0.3.5"
+ "magicast": "*"
},
"peerDependenciesMeta": {
"magicast": {
@@ -4923,29 +5269,16 @@
}
}
},
- "node_modules/c12/node_modules/dotenv": {
- "version": "16.6.1",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz",
- "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==",
- "dev": true,
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://dotenvx.com"
- }
- },
"node_modules/call-bind": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
- "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz",
+ "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bind-apply-helpers": "^1.0.0",
- "es-define-property": "^1.0.0",
- "get-intrinsic": "^1.2.4",
+ "call-bind-apply-helpers": "^1.0.2",
+ "es-define-property": "^1.0.1",
+ "get-intrinsic": "^1.3.0",
"set-function-length": "^1.2.2"
},
"engines": {
@@ -4986,9 +5319,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001782",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001782.tgz",
- "integrity": "sha512-dZcaJLJeDMh4rELYFw1tvSn1bhZWYFOt468FcbHHxx/Z/dFidd1I6ciyFdi3iwfQCyOjqo9upF6lGQYtMiJWxw==",
+ "version": "1.0.30001791",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001791.tgz",
+ "integrity": "sha512-yk0l/YSrOnFZk3UROpDLQD9+kC1l4meK/wed583AXrzoarMGJcbRi2Q4RaUYbKxYAsZ8sWmaSa/DsLmdBeI1vQ==",
"dev": true,
"funding": [
{
@@ -5080,16 +5413,16 @@
}
},
"node_modules/chokidar": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
- "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz",
+ "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "readdirp": "^4.0.1"
+ "readdirp": "^5.0.0"
},
"engines": {
- "node": ">= 14.16.0"
+ "node": ">= 20.19.0"
},
"funding": {
"url": "https://paulmillr.com/funding/"
@@ -5101,16 +5434,6 @@
"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
"license": "ISC"
},
- "node_modules/citty": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz",
- "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "consola": "^3.2.3"
- }
- },
"node_modules/class-variance-authority": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz",
@@ -5175,16 +5498,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/consola": {
- "version": "3.4.2",
- "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz",
- "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^14.18.0 || >=16.10.0"
- }
- },
"node_modules/convert-source-map": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
@@ -5367,9 +5680,9 @@
"license": "MIT"
},
"node_modules/decode-named-character-reference": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz",
- "integrity": "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz",
+ "integrity": "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==",
"license": "MIT",
"dependencies": {
"character-entities": "^2.0.0"
@@ -5457,9 +5770,9 @@
}
},
"node_modules/defu": {
- "version": "6.1.4",
- "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz",
- "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==",
+ "version": "6.1.7",
+ "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz",
+ "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==",
"dev": true,
"license": "MIT"
},
@@ -5539,10 +5852,17 @@
"node": ">=0.10.0"
}
},
+ "node_modules/dom-accessibility-api": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz",
+ "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/dotenv": {
- "version": "17.3.1",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.3.1.tgz",
- "integrity": "sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==",
+ "version": "17.4.2",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.2.tgz",
+ "integrity": "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==",
"license": "BSD-2-Clause",
"engines": {
"node": ">=12"
@@ -5586,9 +5906,9 @@
}
},
"node_modules/electron-to-chromium": {
- "version": "1.5.329",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.329.tgz",
- "integrity": "sha512-/4t+AS1l4S3ZC0Ja7PHFIWeBIxGA3QGqV8/yKsP36v7NcyUCl+bIcmw6s5zVuMIECWwBrAK/6QLzTmbJChBboQ==",
+ "version": "1.5.344",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.344.tgz",
+ "integrity": "sha512-4MxfbmNDm+KPh066EZy+eUnkcDPcZ35wNmOWzFuh/ijvHsve6kbLTLURy88uCNK5FbpN+yk2nQY6BYh1GEt+wg==",
"dev": true,
"license": "ISC"
},
@@ -5619,27 +5939,27 @@
}
},
"node_modules/enhanced-resolve": {
- "version": "5.20.1",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.1.tgz",
- "integrity": "sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==",
+ "version": "5.21.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.21.0.tgz",
+ "integrity": "sha512-otxSQPw4lkOZWkHpB3zaEQs6gWYEsmX4xQF68ElXC/TWvGxGMSGOvoNbaLXm6/cS/fSfHtsEdw90y20PCd+sCA==",
"dev": true,
"license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.4",
- "tapable": "^2.3.0"
+ "tapable": "^2.3.3"
},
"engines": {
"node": ">=10.13.0"
}
},
"node_modules/entities": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
- "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-8.0.0.tgz",
+ "integrity": "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==",
"dev": true,
"license": "BSD-2-Clause",
"engines": {
- "node": ">=0.12"
+ "node": ">=20.19.0"
},
"funding": {
"url": "https://github.com/fb55/entities?sponsor=1"
@@ -5659,9 +5979,9 @@
}
},
"node_modules/es-abstract": {
- "version": "1.24.0",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz",
- "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==",
+ "version": "1.24.2",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz",
+ "integrity": "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5746,37 +6066,37 @@
}
},
"node_modules/es-iterator-helpers": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz",
- "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.3.2.tgz",
+ "integrity": "sha512-HVLACW1TppGYjJ8H6/jqH/pqOtKRw6wMlrB23xfExmFWxFquAIWCmwoLsOyN96K4a5KbmOf5At9ZUO3GZbetAw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
+ "call-bind": "^1.0.9",
+ "call-bound": "^1.0.4",
"define-properties": "^1.2.1",
- "es-abstract": "^1.23.6",
+ "es-abstract": "^1.24.2",
"es-errors": "^1.3.0",
- "es-set-tostringtag": "^2.0.3",
+ "es-set-tostringtag": "^2.1.0",
"function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.6",
+ "get-intrinsic": "^1.3.0",
"globalthis": "^1.0.4",
"gopd": "^1.2.0",
"has-property-descriptors": "^1.0.2",
"has-proto": "^1.2.0",
"has-symbols": "^1.1.0",
"internal-slot": "^1.1.0",
- "iterator.prototype": "^1.1.4",
- "safe-array-concat": "^1.1.3"
+ "iterator.prototype": "^1.1.5",
+ "math-intrinsics": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-module-lexer": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz",
- "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.1.0.tgz",
+ "integrity": "sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==",
"dev": true,
"license": "MIT"
},
@@ -5838,6 +6158,48 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/esbuild": {
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz",
+ "integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.27.7",
+ "@esbuild/android-arm": "0.27.7",
+ "@esbuild/android-arm64": "0.27.7",
+ "@esbuild/android-x64": "0.27.7",
+ "@esbuild/darwin-arm64": "0.27.7",
+ "@esbuild/darwin-x64": "0.27.7",
+ "@esbuild/freebsd-arm64": "0.27.7",
+ "@esbuild/freebsd-x64": "0.27.7",
+ "@esbuild/linux-arm": "0.27.7",
+ "@esbuild/linux-arm64": "0.27.7",
+ "@esbuild/linux-ia32": "0.27.7",
+ "@esbuild/linux-loong64": "0.27.7",
+ "@esbuild/linux-mips64el": "0.27.7",
+ "@esbuild/linux-ppc64": "0.27.7",
+ "@esbuild/linux-riscv64": "0.27.7",
+ "@esbuild/linux-s390x": "0.27.7",
+ "@esbuild/linux-x64": "0.27.7",
+ "@esbuild/netbsd-arm64": "0.27.7",
+ "@esbuild/netbsd-x64": "0.27.7",
+ "@esbuild/openbsd-arm64": "0.27.7",
+ "@esbuild/openbsd-x64": "0.27.7",
+ "@esbuild/openharmony-arm64": "0.27.7",
+ "@esbuild/sunos-x64": "0.27.7",
+ "@esbuild/win32-arm64": "0.27.7",
+ "@esbuild/win32-ia32": "0.27.7",
+ "@esbuild/win32-x64": "0.27.7"
+ }
+ },
"node_modules/escalade": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
@@ -5862,18 +6224,18 @@
}
},
"node_modules/eslint": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.1.0.tgz",
- "integrity": "sha512-S9jlY/ELKEUwwQnqWDO+f+m6sercqOPSqXM5Go94l7DOmxHVDgmSFGWEzeE/gwgTAr0W103BWt0QLe/7mabIvA==",
+ "version": "10.2.1",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.2.1.tgz",
+ "integrity": "sha512-wiyGaKsDgqXvF40P8mDwiUp/KQjE1FdrIEJsM8PZ3XCiniTMXS3OHWWUe5FI5agoCnr8x4xPrTDZuxsBlNHl+Q==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.8.0",
"@eslint-community/regexpp": "^4.12.2",
- "@eslint/config-array": "^0.23.3",
- "@eslint/config-helpers": "^0.5.3",
- "@eslint/core": "^1.1.1",
- "@eslint/plugin-kit": "^0.6.1",
+ "@eslint/config-array": "^0.23.5",
+ "@eslint/config-helpers": "^0.5.5",
+ "@eslint/core": "^1.2.1",
+ "@eslint/plugin-kit": "^0.7.1",
"@humanfs/node": "^0.16.6",
"@humanwhocodes/module-importer": "^1.0.1",
"@humanwhocodes/retry": "^0.4.2",
@@ -5918,13 +6280,13 @@
}
},
"node_modules/eslint-config-next": {
- "version": "16.2.1",
- "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-16.2.1.tgz",
- "integrity": "sha512-qhabwjQZ1Mk53XzXvmogf8KQ0tG0CQXF0CZ56+2/lVhmObgmaqj7x5A1DSrWdZd3kwI7GTPGUjFne+krRxYmFg==",
+ "version": "16.2.4",
+ "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-16.2.4.tgz",
+ "integrity": "sha512-A6ekXYFj/YQxBPMl45g3e+U8zJo+X2+ZQwcz34pPKjpc/3S4roBA2Rd9xWB4FKuSxhofo1/95WjzmUY+wHrOhg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@next/eslint-plugin-next": "16.2.1",
+ "@next/eslint-plugin-next": "16.2.4",
"eslint-import-resolver-node": "^0.3.6",
"eslint-import-resolver-typescript": "^3.5.2",
"eslint-plugin-import": "^2.32.0",
@@ -5944,29 +6306,16 @@
}
}
},
- "node_modules/eslint-config-next/node_modules/globals": {
- "version": "16.4.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-16.4.0.tgz",
- "integrity": "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/eslint-import-resolver-node": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
- "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
+ "version": "0.3.10",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.10.tgz",
+ "integrity": "sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"debug": "^3.2.7",
- "is-core-module": "^2.13.0",
- "resolve": "^1.22.4"
+ "is-core-module": "^2.16.1",
+ "resolve": "^2.0.0-next.6"
}
},
"node_modules/eslint-import-resolver-node/node_modules/debug": {
@@ -6076,6 +6425,24 @@
"eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9"
}
},
+ "node_modules/eslint-plugin-import/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/eslint-plugin-import/node_modules/brace-expansion": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz",
+ "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
"node_modules/eslint-plugin-import/node_modules/debug": {
"version": "3.2.7",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
@@ -6086,6 +6453,29 @@
"ms": "^2.1.1"
}
},
+ "node_modules/eslint-plugin-import/node_modules/minimatch": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
"node_modules/eslint-plugin-jsx-a11y": {
"version": "6.10.2",
"resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz",
@@ -6116,14 +6506,35 @@
"eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9"
}
},
- "node_modules/eslint-plugin-jsx-a11y/node_modules/aria-query": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz",
- "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==",
+ "node_modules/eslint-plugin-jsx-a11y/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true,
- "license": "Apache-2.0",
+ "license": "MIT"
+ },
+ "node_modules/eslint-plugin-jsx-a11y/node_modules/brace-expansion": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz",
+ "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/eslint-plugin-jsx-a11y/node_modules/minimatch": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
"engines": {
- "node": ">= 0.4"
+ "node": "*"
}
},
"node_modules/eslint-plugin-react": {
@@ -6160,9 +6571,9 @@
}
},
"node_modules/eslint-plugin-react-hooks": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.0.1.tgz",
- "integrity": "sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.1.1.tgz",
+ "integrity": "sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6176,25 +6587,48 @@
"node": ">=18"
},
"peerDependencies": {
- "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0"
+ "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0"
}
},
- "node_modules/eslint-plugin-react/node_modules/resolve": {
- "version": "2.0.0-next.5",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
- "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
+ "node_modules/eslint-plugin-react/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/eslint-plugin-react/node_modules/brace-expansion": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz",
+ "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "is-core-module": "^2.13.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/eslint-plugin-react/node_modules/minimatch": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
},
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/eslint-plugin-react/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "license": "ISC",
"bin": {
- "resolve": "bin/resolve"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "semver": "bin/semver.js"
}
},
"node_modules/eslint-scope": {
@@ -6217,6 +6651,19 @@
}
},
"node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint/node_modules/eslint-visitor-keys": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz",
"integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==",
@@ -6229,43 +6676,14 @@
"url": "https://opencollective.com/eslint"
}
},
- "node_modules/eslint/node_modules/balanced-match": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
- "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
+ "node_modules/eslint/node_modules/ignore": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
"dev": true,
"license": "MIT",
"engines": {
- "node": "18 || 20 || >=22"
- }
- },
- "node_modules/eslint/node_modules/brace-expansion": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz",
- "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^4.0.2"
- },
- "engines": {
- "node": "18 || 20 || >=22"
- }
- },
- "node_modules/eslint/node_modules/minimatch": {
- "version": "10.2.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz",
- "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "brace-expansion": "^5.0.2"
- },
- "engines": {
- "node": "18 || 20 || >=22"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "node": ">= 4"
}
},
"node_modules/espree": {
@@ -6286,6 +6704,19 @@
"url": "https://opencollective.com/eslint"
}
},
+ "node_modules/espree/node_modules/eslint-visitor-keys": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz",
+ "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^20.19.0 || ^22.13.0 || >=24"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
"node_modules/esquery": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz",
@@ -6498,6 +6929,23 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
"node_modules/fflate": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz",
@@ -6576,9 +7024,9 @@
"license": "ISC"
},
"node_modules/follow-redirects": {
- "version": "1.15.11",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz",
- "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
+ "version": "1.16.0",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz",
+ "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==",
"funding": [
{
"type": "individual",
@@ -6814,9 +7262,9 @@
}
},
"node_modules/get-tsconfig": {
- "version": "4.13.0",
- "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.0.tgz",
- "integrity": "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==",
+ "version": "4.14.0",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.0.tgz",
+ "integrity": "sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6827,19 +7275,11 @@
}
},
"node_modules/giget": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/giget/-/giget-2.0.0.tgz",
- "integrity": "sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/giget/-/giget-3.2.0.tgz",
+ "integrity": "sha512-GvHTWcykIR/fP8cj8dMpuMMkvaeJfPvYnhq0oW+chSeIr+ldX21ifU2Ms6KBoyKZQZmVaUAAhQ2EZ68KJF8a7A==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "citty": "^0.1.6",
- "consola": "^3.4.0",
- "defu": "^6.1.4",
- "node-fetch-native": "^1.6.6",
- "nypm": "^0.6.0",
- "pathe": "^2.0.3"
- },
"bin": {
"giget": "dist/cli.mjs"
}
@@ -6863,6 +7303,19 @@
"node": ">=10.13.0"
}
},
+ "node_modules/globals": {
+ "version": "16.4.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-16.4.0.tgz",
+ "integrity": "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/globalthis": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
@@ -6993,9 +7446,9 @@
}
},
"node_modules/hasown": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz",
+ "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==",
"license": "MIT",
"dependencies": {
"function-bind": "^1.1.2"
@@ -7107,9 +7560,9 @@
"license": "CC0-1.0"
},
"node_modules/hono": {
- "version": "4.12.9",
- "resolved": "https://registry.npmjs.org/hono/-/hono-4.12.9.tgz",
- "integrity": "sha512-wy3T8Zm2bsEvxKZM5w21VdHDDcwVS1yUFFY6i8UobSsKfFceT7TOwhbhfKsDyx7tYQlmRM5FLpIuYvNFyjctiA==",
+ "version": "4.12.15",
+ "resolved": "https://registry.npmjs.org/hono/-/hono-4.12.15.tgz",
+ "integrity": "sha512-qM0jDhFEaCBb4TxoW7f53Qrpv9RBiayUHo0S52JudprkhvpjIrGoU1mnnr29Fvd1U335ZFPZQY1wlkqgfGXyLg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7153,6 +7606,23 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/iconv-lite": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz",
+ "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
"node_modules/ieee754": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
@@ -7174,9 +7644,9 @@
"license": "BSD-3-Clause"
},
"node_modules/ignore": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
- "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
+ "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7341,19 +7811,6 @@
"semver": "^7.7.1"
}
},
- "node_modules/is-bun-module/node_modules/semver": {
- "version": "7.7.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
- "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/is-callable": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
@@ -7815,35 +8272,35 @@
}
},
"node_modules/js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-10.0.0.tgz",
+ "integrity": "sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==",
"dev": true,
"license": "MIT"
},
"node_modules/jsdom": {
- "version": "29.0.1",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-29.0.1.tgz",
- "integrity": "sha512-z6JOK5gRO7aMybVq/y/MlIpKh8JIi68FBKMUtKkK2KH/wMSRlCxQ682d08LB9fYXplyY/UXG8P4XXTScmdjApg==",
+ "version": "29.1.0",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-29.1.0.tgz",
+ "integrity": "sha512-YNUc7fB9QuvSSQWfrH0xF+TyABkxUwx8sswgIDaCrw4Hol8BghdZDkITtZheRJeMtzWlnTfsM3bBBusRvpO1wg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@asamuzakjp/css-color": "^5.0.1",
- "@asamuzakjp/dom-selector": "^7.0.3",
+ "@asamuzakjp/css-color": "^5.1.11",
+ "@asamuzakjp/dom-selector": "^7.1.1",
"@bramus/specificity": "^2.4.2",
- "@csstools/css-syntax-patches-for-csstree": "^1.1.1",
+ "@csstools/css-syntax-patches-for-csstree": "^1.1.3",
"@exodus/bytes": "^1.15.0",
"css-tree": "^3.2.1",
"data-urls": "^7.0.0",
"decimal.js": "^10.6.0",
"html-encoding-sniffer": "^6.0.0",
"is-potential-custom-element-name": "^1.0.1",
- "lru-cache": "^11.2.7",
- "parse5": "^8.0.0",
+ "lru-cache": "^11.3.5",
+ "parse5": "^8.0.1",
"saxes": "^6.0.0",
"symbol-tree": "^3.2.4",
"tough-cookie": "^6.0.1",
- "undici": "^7.24.5",
+ "undici": "^7.25.0",
"w3c-xmlserializer": "^5.0.0",
"webidl-conversions": "^8.0.1",
"whatwg-mimetype": "^5.0.0",
@@ -7863,9 +8320,9 @@
}
},
"node_modules/jsdom/node_modules/lru-cache": {
- "version": "11.2.7",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz",
- "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==",
+ "version": "11.3.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.5.tgz",
+ "integrity": "sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==",
"dev": true,
"license": "BlueOak-1.0.0",
"engines": {
@@ -7941,18 +8398,6 @@
"npm": ">=6"
}
},
- "node_modules/jsonwebtoken/node_modules/semver": {
- "version": "7.7.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
- "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/jsx-ast-utils": {
"version": "3.3.5",
"resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
@@ -8371,6 +8816,13 @@
"loose-envify": "cli.js"
}
},
+ "node_modules/loose-envify/node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/lowlight": {
"version": "1.20.0",
"resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.20.0.tgz",
@@ -8396,9 +8848,9 @@
}
},
"node_modules/lru.min": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/lru.min/-/lru.min-1.1.3.tgz",
- "integrity": "sha512-Lkk/vx6ak3rYkRR0Nhu4lFUT2VDnQSxBe8Hbl7f36358p6ow8Bnvr8lrLt98H8J1aGxfhbX4Fs5tYg2+FTwr5Q==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lru.min/-/lru.min-1.1.4.tgz",
+ "integrity": "sha512-DqC6n3QQ77zdFpCMASA1a3Jlb64Hv2N2DciFGkO/4L9+q/IpIAuRlKOvCXabtRW6cQf8usbmM6BE/TOPysCdIA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -8412,9 +8864,9 @@
}
},
"node_modules/lucide-react": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.7.0.tgz",
- "integrity": "sha512-yI7BeItCLZJTXikmK4KNUGCKoGzSvbKlfCvw44bU4fXAL6v3gYS4uHD1jzsLkfwODYwI6Drw5Tu9Z5ulDe0TSg==",
+ "version": "1.14.0",
+ "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.14.0.tgz",
+ "integrity": "sha512-+1mdWcfSJVUsaTIjN9zoezmUhfXo5l0vP7ekBMPo3jcS/aIkxHnXqAPsByszMZx/Y8oQBRJxJx5xg+RH3urzxA==",
"license": "ISC",
"peerDependencies": {
"react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0"
@@ -8458,19 +8910,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/make-dir/node_modules/semver": {
- "version": "7.7.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
- "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/markdown-table": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz",
@@ -8519,9 +8958,9 @@
}
},
"node_modules/mdast-util-from-markdown": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz",
- "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz",
+ "integrity": "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==",
"license": "MIT",
"dependencies": {
"@types/mdast": "^4.0.0",
@@ -9410,16 +9849,19 @@
}
},
"node_modules/minimatch": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
- "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
+ "version": "10.2.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz",
+ "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==",
"dev": true,
- "license": "ISC",
+ "license": "BlueOak-1.0.0",
"dependencies": {
- "brace-expansion": "^1.1.7"
+ "brace-expansion": "^5.0.5"
},
"engines": {
- "node": "*"
+ "node": "18 || 20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/minimist": {
@@ -9474,44 +9916,17 @@
"node": ">= 8.0"
}
},
- "node_modules/mysql2/node_modules/iconv-lite": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.0.tgz",
- "integrity": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/express"
- }
- },
"node_modules/named-placeholders": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz",
- "integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==",
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.6.tgz",
+ "integrity": "sha512-Tz09sEL2EEuv5fFowm419c1+a/jSMiBjI9gHxVLrVdbUkkNUUfjsVYs9pVZu5oCon/kmRh9TfLEObFtkVxmY0w==",
"dev": true,
"license": "MIT",
"dependencies": {
- "lru-cache": "^7.14.1"
+ "lru.min": "^1.1.0"
},
"engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/named-placeholders/node_modules/lru-cache": {
- "version": "7.18.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
- "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=12"
+ "node": ">=8.0.0"
}
},
"node_modules/nanoid": {
@@ -9562,13 +9977,13 @@
"license": "MIT"
},
"node_modules/next": {
- "version": "16.2.1",
- "resolved": "https://registry.npmjs.org/next/-/next-16.2.1.tgz",
- "integrity": "sha512-VaChzNL7o9rbfdt60HUj8tev4m6d7iC1igAy157526+cJlXOQu5LzsBXNT+xaJnTP/k+utSX5vMv7m0G+zKH+Q==",
+ "version": "16.2.4",
+ "resolved": "https://registry.npmjs.org/next/-/next-16.2.4.tgz",
+ "integrity": "sha512-kPvz56wF5frc+FxlHI5qnklCzbq53HTwORaWBGdT0vNoKh1Aya9XC8aPauH4NJxqtzbWsS5mAbctm4cr+EkQ2Q==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@next/env": "16.2.1",
+ "@next/env": "16.2.4",
"@swc/helpers": "0.5.15",
"baseline-browser-mapping": "^2.9.19",
"caniuse-lite": "^1.0.30001579",
@@ -9582,14 +9997,14 @@
"node": ">=20.9.0"
},
"optionalDependencies": {
- "@next/swc-darwin-arm64": "16.2.1",
- "@next/swc-darwin-x64": "16.2.1",
- "@next/swc-linux-arm64-gnu": "16.2.1",
- "@next/swc-linux-arm64-musl": "16.2.1",
- "@next/swc-linux-x64-gnu": "16.2.1",
- "@next/swc-linux-x64-musl": "16.2.1",
- "@next/swc-win32-arm64-msvc": "16.2.1",
- "@next/swc-win32-x64-msvc": "16.2.1",
+ "@next/swc-darwin-arm64": "16.2.4",
+ "@next/swc-darwin-x64": "16.2.4",
+ "@next/swc-linux-arm64-gnu": "16.2.4",
+ "@next/swc-linux-arm64-musl": "16.2.4",
+ "@next/swc-linux-x64-gnu": "16.2.4",
+ "@next/swc-linux-x64-musl": "16.2.4",
+ "@next/swc-win32-arm64-msvc": "16.2.4",
+ "@next/swc-win32-x64-msvc": "16.2.4",
"sharp": "^0.34.5"
},
"peerDependencies": {
@@ -9645,9 +10060,9 @@
}
},
"node_modules/node-abi": {
- "version": "3.85.0",
- "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.85.0.tgz",
- "integrity": "sha512-zsFhmbkAzwhTft6nd3VxcG0cvJsT70rL+BIGHWVq5fi6MwGrHwzqKaxXE+Hl2GmnGItnDKPPkO5/LQqjVkIdFg==",
+ "version": "3.89.0",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.89.0.tgz",
+ "integrity": "sha512-6u9UwL0HlAl21+agMN3YAMXcKByMqwGx+pq+P76vii5f7hTPtKDp08/H9py6DY+cfDw7kQNTGEj/rly3IgbNQA==",
"license": "MIT",
"dependencies": {
"semver": "^7.3.5"
@@ -9656,18 +10071,6 @@
"node": ">=10"
}
},
- "node_modules/node-abi/node_modules/semver": {
- "version": "7.7.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
- "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/node-addon-api": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
@@ -9683,12 +10086,34 @@
"node": ">=6.0.0"
}
},
- "node_modules/node-fetch-native": {
- "version": "1.6.7",
- "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz",
- "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==",
+ "node_modules/node-exports-info": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.0.tgz",
+ "integrity": "sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==",
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "dependencies": {
+ "array.prototype.flatmap": "^1.3.3",
+ "es-errors": "^1.3.0",
+ "object.entries": "^1.1.9",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/node-exports-info/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
},
"node_modules/node-pty": {
"version": "1.1.0",
@@ -9701,34 +10126,9 @@
}
},
"node_modules/node-releases": {
- "version": "2.0.36",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz",
- "integrity": "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/nypm": {
- "version": "0.6.5",
- "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.6.5.tgz",
- "integrity": "sha512-K6AJy1GMVyfyMXRVB88700BJqNUkByijGJM8kEHpLdcAt+vSQAVfkWWHYzuRXHSY6xA2sNc5RjTj0p9rE2izVQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "citty": "^0.2.0",
- "pathe": "^2.0.3",
- "tinyexec": "^1.0.2"
- },
- "bin": {
- "nypm": "dist/cli.mjs"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/nypm/node_modules/citty": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/citty/-/citty-0.2.1.tgz",
- "integrity": "sha512-kEV95lFBhQgtogAPlQfJJ0WGVSokvLr/UEoFPiKKOXF7pl98HfUVUD0ejsuTCld/9xH9vogSywZ5KqHzXrZpqg==",
+ "version": "2.0.38",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.38.tgz",
+ "integrity": "sha512-3qT/88Y3FbH/Kx4szpQQ4HzUbVrHPKTLVpVocKiLfoYvw9XSGOX2FmD2d6DrXbVYyAQTF2HeF6My8jmzx7/CRw==",
"dev": true,
"license": "MIT"
},
@@ -9976,13 +10376,13 @@
"license": "MIT"
},
"node_modules/parse5": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.0.tgz",
- "integrity": "sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==",
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.1.tgz",
+ "integrity": "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "entities": "^6.0.0"
+ "entities": "^8.0.0"
},
"funding": {
"url": "https://github.com/inikulin/parse5?sponsor=1"
@@ -10023,9 +10423,9 @@
"license": "MIT"
},
"node_modules/perfect-debounce": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz",
- "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.1.0.tgz",
+ "integrity": "sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==",
"dev": true,
"license": "MIT"
},
@@ -10049,14 +10449,14 @@
}
},
"node_modules/pkg-types": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz",
- "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==",
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.1.tgz",
+ "integrity": "sha512-y+ichcgc2LrADuhLNAx8DFjVfgz91pRxfZdI3UDhxHvcVEZsenLO+7XaU5vOp0u/7V/wZ+plyuQxtrDlZJ+yeg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "confbox": "^0.2.2",
- "exsolve": "^1.0.7",
+ "confbox": "^0.2.4",
+ "exsolve": "^1.0.8",
"pathe": "^2.0.3"
}
},
@@ -10077,9 +10477,9 @@
}
},
"node_modules/postcss": {
- "version": "8.5.8",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz",
- "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==",
+ "version": "8.5.12",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.12.tgz",
+ "integrity": "sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA==",
"funding": [
{
"type": "opencollective",
@@ -10135,6 +10535,7 @@
"version": "7.1.3",
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz",
"integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==",
+ "deprecated": "No longer maintained. Please contact the author of the relevant native addon; alternatives are available.",
"license": "MIT",
"dependencies": {
"detect-libc": "^2.0.0",
@@ -10168,9 +10569,9 @@
}
},
"node_modules/prettier": {
- "version": "3.8.1",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.1.tgz",
- "integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==",
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.3.tgz",
+ "integrity": "sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==",
"dev": true,
"license": "MIT",
"bin": {
@@ -10184,9 +10585,9 @@
}
},
"node_modules/prettier-plugin-tailwindcss": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.7.2.tgz",
- "integrity": "sha512-LkphyK3Fw+q2HdMOoiEHWf93fNtYJwfamoKPl7UwtjFQdei/iIBoX11G6j706FzN3ymX9mPVi97qIY8328vdnA==",
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.8.0.tgz",
+ "integrity": "sha512-V8ITGH87yuBDF6JpEZTOVlUz/saAwqb8f3HRgUj8Lh+tGCcrmorhsLpYqzygwFwK0PE2Ib6Mv3M7T/uE2tZV1g==",
"dev": true,
"license": "MIT",
"engines": {
@@ -10263,16 +10664,16 @@
}
},
"node_modules/prisma": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/prisma/-/prisma-7.6.0.tgz",
- "integrity": "sha512-OKJIPT81K3+F+AayIkY/Y3mkF2NWoFh7lZApaaqPYy7EHILKdO0VsmGkP+hDKYTySHsFSyLWXm/JgcR1B8fY1Q==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/prisma/-/prisma-7.8.0.tgz",
+ "integrity": "sha512-yfN4yrw7HV9kEJhoy1+jgah0jafEIQsf7uWouSsM8MvJtlubsk+kM7AIBWZ8+GJl74Yj3c+nbYqBkMOxtsZ3Lw==",
"dev": true,
"hasInstallScript": true,
"license": "Apache-2.0",
"dependencies": {
- "@prisma/config": "7.6.0",
+ "@prisma/config": "7.8.0",
"@prisma/dev": "0.24.3",
- "@prisma/engines": "7.6.0",
+ "@prisma/engines": "7.8.0",
"@prisma/studio-core": "0.27.3",
"mysql2": "3.15.3",
"postgres": "3.4.7"
@@ -10317,13 +10718,6 @@
"react-is": "^16.13.1"
}
},
- "node_modules/prop-types/node_modules/react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/proper-lockfile": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz",
@@ -10363,9 +10757,9 @@
}
},
"node_modules/pump": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz",
- "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==",
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz",
+ "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==",
"license": "MIT",
"dependencies": {
"end-of-stream": "^1.1.0",
@@ -10435,47 +10829,45 @@
"rc": "cli.js"
}
},
- "node_modules/rc/node_modules/strip-json-comments": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/rc9": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/rc9/-/rc9-2.1.2.tgz",
- "integrity": "sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/rc9/-/rc9-3.0.1.tgz",
+ "integrity": "sha512-gMDyleLWVE+i6Sgtc0QbbY6pEKqYs97NGi6isHQPqYlLemPoO8dxQ3uGi0f4NiP98c+jMW6cG1Kx9dDwfvqARQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "defu": "^6.1.4",
- "destr": "^2.0.3"
+ "defu": "^6.1.6",
+ "destr": "^2.0.5"
}
},
"node_modules/react": {
- "version": "19.2.4",
- "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz",
- "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==",
+ "version": "19.2.5",
+ "resolved": "https://registry.npmjs.org/react/-/react-19.2.5.tgz",
+ "integrity": "sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/react-dom": {
- "version": "19.2.4",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz",
- "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==",
+ "version": "19.2.5",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.5.tgz",
+ "integrity": "sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag==",
"license": "MIT",
"dependencies": {
"scheduler": "^0.27.0"
},
"peerDependencies": {
- "react": "^19.2.4"
+ "react": "^19.2.5"
}
},
+ "node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/react-markdown": {
"version": "10.1.0",
"resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-10.1.0.tgz",
@@ -10504,9 +10896,9 @@
}
},
"node_modules/react-remove-scroll": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.1.tgz",
- "integrity": "sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==",
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz",
+ "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==",
"license": "MIT",
"dependencies": {
"react-remove-scroll-bar": "^2.3.7",
@@ -10607,13 +10999,13 @@
}
},
"node_modules/readdirp": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
- "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz",
+ "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">= 14.18.0"
+ "node": ">= 20.19.0"
},
"funding": {
"type": "individual",
@@ -10781,13 +11173,16 @@
}
},
"node_modules/resolve": {
- "version": "1.22.11",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
- "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
+ "version": "2.0.0-next.6",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.6.tgz",
+ "integrity": "sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==",
"dev": true,
"license": "MIT",
"dependencies": {
+ "es-errors": "^1.3.0",
"is-core-module": "^2.16.1",
+ "node-exports-info": "^1.6.0",
+ "object-keys": "^1.1.1",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
},
@@ -10833,13 +11228,13 @@
}
},
"node_modules/rolldown": {
- "version": "1.0.0-rc.12",
- "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.12.tgz",
- "integrity": "sha512-yP4USLIMYrwpPHEFB5JGH1uxhcslv6/hL0OyvTuY+3qlOSJvZ7ntYnoWpehBxufkgN0cvXxppuTu5hHa/zPh+A==",
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.17.tgz",
+ "integrity": "sha512-ZrT53oAKrtA4+YtBWPQbtPOxIbVDbxT0orcYERKd63VJTF13zPcgXTvD4843L8pcsI7M6MErt8QtON6lrB9tyA==",
"license": "MIT",
"dependencies": {
- "@oxc-project/types": "=0.122.0",
- "@rolldown/pluginutils": "1.0.0-rc.12"
+ "@oxc-project/types": "=0.127.0",
+ "@rolldown/pluginutils": "1.0.0-rc.17"
},
"bin": {
"rolldown": "bin/cli.mjs"
@@ -10848,27 +11243,27 @@
"node": "^20.19.0 || >=22.12.0"
},
"optionalDependencies": {
- "@rolldown/binding-android-arm64": "1.0.0-rc.12",
- "@rolldown/binding-darwin-arm64": "1.0.0-rc.12",
- "@rolldown/binding-darwin-x64": "1.0.0-rc.12",
- "@rolldown/binding-freebsd-x64": "1.0.0-rc.12",
- "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.12",
- "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.12",
- "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.12",
- "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.12",
- "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.12",
- "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.12",
- "@rolldown/binding-linux-x64-musl": "1.0.0-rc.12",
- "@rolldown/binding-openharmony-arm64": "1.0.0-rc.12",
- "@rolldown/binding-wasm32-wasi": "1.0.0-rc.12",
- "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.12",
- "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.12"
+ "@rolldown/binding-android-arm64": "1.0.0-rc.17",
+ "@rolldown/binding-darwin-arm64": "1.0.0-rc.17",
+ "@rolldown/binding-darwin-x64": "1.0.0-rc.17",
+ "@rolldown/binding-freebsd-x64": "1.0.0-rc.17",
+ "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.17",
+ "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.17",
+ "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.17",
+ "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.17",
+ "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.17",
+ "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.17",
+ "@rolldown/binding-linux-x64-musl": "1.0.0-rc.17",
+ "@rolldown/binding-openharmony-arm64": "1.0.0-rc.17",
+ "@rolldown/binding-wasm32-wasi": "1.0.0-rc.17",
+ "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.17",
+ "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.17"
}
},
"node_modules/rolldown/node_modules/@rolldown/pluginutils": {
- "version": "1.0.0-rc.12",
- "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.12.tgz",
- "integrity": "sha512-HHMwmarRKvoFsJorqYlFeFRzXZqCt2ETQlEDOb9aqssrnVBB1/+xgTGtuTrIk5vzLNX1MjMtTf7W9z3tsSbrxw==",
+ "version": "1.0.0-rc.17",
+ "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.17.tgz",
+ "integrity": "sha512-n8iosDOt6Ig1UhJ2AYqoIhHWh/isz0xpicHTzpKBeotdVsTEcxsSA/i3EVM7gQAj0rU27OLAxCjzlj15IWY7bg==",
"license": "MIT"
},
"node_modules/run-parallel": {
@@ -10896,15 +11291,15 @@
}
},
"node_modules/safe-array-concat": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz",
- "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.4.tgz",
+ "integrity": "sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.2",
- "get-intrinsic": "^1.2.6",
+ "call-bind": "^1.0.9",
+ "call-bound": "^1.0.4",
+ "get-intrinsic": "^1.3.0",
"has-symbols": "^1.1.0",
"isarray": "^2.0.5"
},
@@ -10997,13 +11392,15 @@
"license": "MIT"
},
"node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
+ "version": "7.7.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
+ "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
}
},
"node_modules/seq-queue": {
@@ -11113,20 +11510,6 @@
"@img/sharp-win32-x64": "0.34.5"
}
},
- "node_modules/sharp/node_modules/semver": {
- "version": "7.7.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
- "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
- "dev": true,
- "license": "ISC",
- "optional": true,
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -11171,14 +11554,14 @@
}
},
"node_modules/side-channel-list": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
- "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz",
+ "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==",
"dev": true,
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
- "object-inspect": "^1.13.3"
+ "object-inspect": "^1.13.4"
},
"engines": {
"node": ">= 0.4"
@@ -11306,13 +11689,6 @@
"node": ">=18"
}
},
- "node_modules/sisteransi": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
- "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/source-map-js": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
@@ -11357,9 +11733,9 @@
"license": "MIT"
},
"node_modules/std-env": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz",
- "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.1.0.tgz",
+ "integrity": "sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==",
"dev": true,
"license": "MIT"
},
@@ -11528,18 +11904,6 @@
"url": "https://github.com/chalk/strip-ansi?sponsor=1"
}
},
- "node_modules/strip-ansi/node_modules/ansi-regex": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
- "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
"node_modules/strip-bom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
@@ -11563,6 +11927,15 @@
"node": ">=8"
}
},
+ "node_modules/strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/style-to-js": {
"version": "1.1.21",
"resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz",
@@ -11661,16 +12034,16 @@
}
},
"node_modules/tailwindcss": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.2.tgz",
- "integrity": "sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.4.tgz",
+ "integrity": "sha512-HhKppgO81FQof5m6TEnuBWCZGgfRAWbaeOaGT00KOy/Pf/j6oUihdvBpA7ltCeAvZpFhW3j0PTclkxsd4IXYDA==",
"dev": true,
"license": "MIT"
},
"node_modules/tapable": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz",
- "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==",
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz",
+ "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==",
"dev": true,
"license": "MIT",
"engines": {
@@ -11717,9 +12090,9 @@
"license": "MIT"
},
"node_modules/tinyexec": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz",
- "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.1.1.tgz",
+ "integrity": "sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -11727,13 +12100,13 @@
}
},
"node_modules/tinyglobby": {
- "version": "0.2.15",
- "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
- "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
+ "version": "0.2.16",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz",
+ "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==",
"license": "MIT",
"dependencies": {
"fdir": "^6.5.0",
- "picomatch": "^4.0.3"
+ "picomatch": "^4.0.4"
},
"engines": {
"node": ">=12.0.0"
@@ -11742,23 +12115,6 @@
"url": "https://github.com/sponsors/SuperchupuDev"
}
},
- "node_modules/tinyglobby/node_modules/fdir": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
- "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
- "license": "MIT",
- "engines": {
- "node": ">=12.0.0"
- },
- "peerDependencies": {
- "picomatch": "^3 || ^4"
- },
- "peerDependenciesMeta": {
- "picomatch": {
- "optional": true
- }
- }
- },
"node_modules/tinyglobby/node_modules/picomatch": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
@@ -11782,22 +12138,22 @@
}
},
"node_modules/tldts": {
- "version": "7.0.26",
- "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.26.tgz",
- "integrity": "sha512-WiGwQjr0qYdNNG8KpMKlSvpxz652lqa3Rd+/hSaDcY4Uo6SKWZq2LAF+hsAhUewTtYhXlorBKgNF3Kk8hnjGoQ==",
+ "version": "7.0.29",
+ "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.29.tgz",
+ "integrity": "sha512-JIXCerhudr/N6OWLwLF1HVsTTUo7ry6qHa5eWZEkiMuxsIiAACL55tGLfqfHfoH7QaMQUW8fngD7u7TxWexYQg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "tldts-core": "^7.0.26"
+ "tldts-core": "^7.0.29"
},
"bin": {
"tldts": "bin/cli.js"
}
},
"node_modules/tldts-core": {
- "version": "7.0.26",
- "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.26.tgz",
- "integrity": "sha512-5WJ2SqFsv4G2Dwi7ZFVRnz6b2H1od39QME1lc2y5Ew3eWiZMAeqOAfWpRP9jHvhUl881406QtZTODvjttJs+ew==",
+ "version": "7.0.29",
+ "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.29.tgz",
+ "integrity": "sha512-W99NuU7b1DcG3uJ3v9k9VztCH3WialNbBkBft5wCs8V8mexu0XQqaZEYb9l9RNNzK8+3EJ9PKWB0/RUtTQ/o+Q==",
"dev": true,
"license": "MIT"
},
@@ -11935,490 +12291,6 @@
"fsevents": "~2.3.3"
}
},
- "node_modules/tsx/node_modules/@esbuild/aix-ppc64": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.0.tgz",
- "integrity": "sha512-KuZrd2hRjz01y5JK9mEBSD3Vj3mbCvemhT466rSuJYeE/hjuBrHfjjcjMdTm/sz7au+++sdbJZJmuBwQLuw68A==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "aix"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/android-arm": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.0.tgz",
- "integrity": "sha512-j67aezrPNYWJEOHUNLPj9maeJte7uSMM6gMoxfPC9hOg8N02JuQi/T7ewumf4tNvJadFkvLZMlAq73b9uwdMyQ==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/android-arm64": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.0.tgz",
- "integrity": "sha512-CC3vt4+1xZrs97/PKDkl0yN7w8edvU2vZvAFGD16n9F0Cvniy5qvzRXjfO1l94efczkkQE6g1x0i73Qf5uthOQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/android-x64": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.0.tgz",
- "integrity": "sha512-wurMkF1nmQajBO1+0CJmcN17U4BP6GqNSROP8t0X/Jiw2ltYGLHpEksp9MpoBqkrFR3kv2/te6Sha26k3+yZ9Q==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/darwin-arm64": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.0.tgz",
- "integrity": "sha512-uJOQKYCcHhg07DL7i8MzjvS2LaP7W7Pn/7uA0B5S1EnqAirJtbyw4yC5jQ5qcFjHK9l6o/MX9QisBg12kNkdHg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/darwin-x64": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.0.tgz",
- "integrity": "sha512-8mG6arH3yB/4ZXiEnXof5MK72dE6zM9cDvUcPtxhUZsDjESl9JipZYW60C3JGreKCEP+p8P/72r69m4AZGJd5g==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/freebsd-arm64": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.0.tgz",
- "integrity": "sha512-9FHtyO988CwNMMOE3YIeci+UV+x5Zy8fI2qHNpsEtSF83YPBmE8UWmfYAQg6Ux7Gsmd4FejZqnEUZCMGaNQHQw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/freebsd-x64": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.0.tgz",
- "integrity": "sha512-zCMeMXI4HS/tXvJz8vWGexpZj2YVtRAihHLk1imZj4efx1BQzN76YFeKqlDr3bUWI26wHwLWPd3rwh6pe4EV7g==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/linux-arm": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.0.tgz",
- "integrity": "sha512-t76XLQDpxgmq2cNXKTVEB7O7YMb42atj2Re2Haf45HkaUpjM2J0UuJZDuaGbPbamzZ7bawyGFUkodL+zcE+jvQ==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/linux-arm64": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.0.tgz",
- "integrity": "sha512-AS18v0V+vZiLJyi/4LphvBE+OIX682Pu7ZYNsdUHyUKSoRwdnOsMf6FDekwoAFKej14WAkOef3zAORJgAtXnlQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/linux-ia32": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.0.tgz",
- "integrity": "sha512-Mz1jxqm/kfgKkc/KLHC5qIujMvnnarD9ra1cEcrs7qshTUSksPihGrWHVG5+osAIQ68577Zpww7SGapmzSt4Nw==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/linux-loong64": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.0.tgz",
- "integrity": "sha512-QbEREjdJeIreIAbdG2hLU1yXm1uu+LTdzoq1KCo4G4pFOLlvIspBm36QrQOar9LFduavoWX2msNFAAAY9j4BDg==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/linux-mips64el": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.0.tgz",
- "integrity": "sha512-sJz3zRNe4tO2wxvDpH/HYJilb6+2YJxo/ZNbVdtFiKDufzWq4JmKAiHy9iGoLjAV7r/W32VgaHGkk35cUXlNOg==",
- "cpu": [
- "mips64el"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/linux-ppc64": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.0.tgz",
- "integrity": "sha512-z9N10FBD0DCS2dmSABDBb5TLAyF1/ydVb+N4pi88T45efQ/w4ohr/F/QYCkxDPnkhkp6AIpIcQKQ8F0ANoA2JA==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/linux-riscv64": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.0.tgz",
- "integrity": "sha512-pQdyAIZ0BWIC5GyvVFn5awDiO14TkT/19FTmFcPdDec94KJ1uZcmFs21Fo8auMXzD4Tt+diXu1LW1gHus9fhFQ==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/linux-s390x": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.0.tgz",
- "integrity": "sha512-hPlRWR4eIDDEci953RI1BLZitgi5uqcsjKMxwYfmi4LcwyWo2IcRP+lThVnKjNtk90pLS8nKdroXYOqW+QQH+w==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/linux-x64": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.0.tgz",
- "integrity": "sha512-1hBWx4OUJE2cab++aVZ7pObD6s+DK4mPGpemtnAORBvb5l/g5xFGk0vc0PjSkrDs0XaXj9yyob3d14XqvnQ4gw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/netbsd-arm64": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.0.tgz",
- "integrity": "sha512-6m0sfQfxfQfy1qRuecMkJlf1cIzTOgyaeXaiVaaki8/v+WB+U4hc6ik15ZW6TAllRlg/WuQXxWj1jx6C+dfy3w==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/netbsd-x64": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.0.tgz",
- "integrity": "sha512-xbbOdfn06FtcJ9d0ShxxvSn2iUsGd/lgPIO2V3VZIPDbEaIj1/3nBBe1AwuEZKXVXkMmpr6LUAgMkLD/4D2PPA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/openbsd-arm64": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.0.tgz",
- "integrity": "sha512-fWgqR8uNbCQ/GGv0yhzttj6sU/9Z5/Sv/VGU3F5OuXK6J6SlriONKrQ7tNlwBrJZXRYk5jUhuWvF7GYzGguBZQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/openbsd-x64": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.0.tgz",
- "integrity": "sha512-aCwlRdSNMNxkGGqQajMUza6uXzR/U0dIl1QmLjPtRbLOx3Gy3otfFu/VjATy4yQzo9yFDGTxYDo1FfAD9oRD2A==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/openharmony-arm64": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.0.tgz",
- "integrity": "sha512-nyvsBccxNAsNYz2jVFYwEGuRRomqZ149A39SHWk4hV0jWxKM0hjBPm3AmdxcbHiFLbBSwG6SbpIcUbXjgyECfA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openharmony"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/sunos-x64": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.0.tgz",
- "integrity": "sha512-Q1KY1iJafM+UX6CFEL+F4HRTgygmEW568YMqDA5UV97AuZSm21b7SXIrRJDwXWPzr8MGr75fUZPV67FdtMHlHA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "sunos"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/win32-arm64": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.0.tgz",
- "integrity": "sha512-W1eyGNi6d+8kOmZIwi/EDjrL9nxQIQ0MiGqe/AWc6+IaHloxHSGoeRgDRKHFISThLmsewZ5nHFvGFWdBYlgKPg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/win32-ia32": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.0.tgz",
- "integrity": "sha512-30z1aKL9h22kQhilnYkORFYt+3wp7yZsHWus+wSKAJR8JtdfI76LJ4SBdMsCopTR3z/ORqVu5L1vtnHZWVj4cQ==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/win32-x64": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.0.tgz",
- "integrity": "sha512-aIitBcjQeyOhMTImhLZmtxfdOcuNRpwlPNmlFKPcHQYPhEssw75Cl1TSXJXpMkzaua9FUetx/4OQKq7eJul5Cg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/esbuild": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.0.tgz",
- "integrity": "sha512-jd0f4NHbD6cALCyGElNpGAOtWxSq46l9X/sWB0Nzd5er4Kz2YTm+Vl0qKFT9KUJvD8+fiO8AvoHhFvEatfVixA==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=18"
- },
- "optionalDependencies": {
- "@esbuild/aix-ppc64": "0.27.0",
- "@esbuild/android-arm": "0.27.0",
- "@esbuild/android-arm64": "0.27.0",
- "@esbuild/android-x64": "0.27.0",
- "@esbuild/darwin-arm64": "0.27.0",
- "@esbuild/darwin-x64": "0.27.0",
- "@esbuild/freebsd-arm64": "0.27.0",
- "@esbuild/freebsd-x64": "0.27.0",
- "@esbuild/linux-arm": "0.27.0",
- "@esbuild/linux-arm64": "0.27.0",
- "@esbuild/linux-ia32": "0.27.0",
- "@esbuild/linux-loong64": "0.27.0",
- "@esbuild/linux-mips64el": "0.27.0",
- "@esbuild/linux-ppc64": "0.27.0",
- "@esbuild/linux-riscv64": "0.27.0",
- "@esbuild/linux-s390x": "0.27.0",
- "@esbuild/linux-x64": "0.27.0",
- "@esbuild/netbsd-arm64": "0.27.0",
- "@esbuild/netbsd-x64": "0.27.0",
- "@esbuild/openbsd-arm64": "0.27.0",
- "@esbuild/openbsd-x64": "0.27.0",
- "@esbuild/openharmony-arm64": "0.27.0",
- "@esbuild/sunos-x64": "0.27.0",
- "@esbuild/win32-arm64": "0.27.0",
- "@esbuild/win32-ia32": "0.27.0",
- "@esbuild/win32-x64": "0.27.0"
- }
- },
"node_modules/tunnel-agent": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
@@ -12523,9 +12395,9 @@
}
},
"node_modules/typescript": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.2.tgz",
- "integrity": "sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz",
+ "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==",
"dev": true,
"license": "Apache-2.0",
"bin": {
@@ -12537,16 +12409,16 @@
}
},
"node_modules/typescript-eslint": {
- "version": "8.58.0",
- "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.58.0.tgz",
- "integrity": "sha512-e2TQzKfaI85fO+F3QywtX+tCTsu/D3WW5LVU6nz8hTFKFZ8yBJ6mSYRpXqdR3mFjPWmO0eWsTa5f+UpAOe/FMA==",
+ "version": "8.59.1",
+ "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.59.1.tgz",
+ "integrity": "sha512-xqDcFVBmlrltH64lklOVp1wYxgJr6LVdg3NamBgH2OOQDLFdTKfIZXF5PfghrnXQKXZGTQs8tr1vL7fJvq8CTQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/eslint-plugin": "8.58.0",
- "@typescript-eslint/parser": "8.58.0",
- "@typescript-eslint/typescript-estree": "8.58.0",
- "@typescript-eslint/utils": "8.58.0"
+ "@typescript-eslint/eslint-plugin": "8.59.1",
+ "@typescript-eslint/parser": "8.59.1",
+ "@typescript-eslint/typescript-estree": "8.59.1",
+ "@typescript-eslint/utils": "8.59.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -12580,9 +12452,9 @@
}
},
"node_modules/undici": {
- "version": "7.24.6",
- "resolved": "https://registry.npmjs.org/undici/-/undici-7.24.6.tgz",
- "integrity": "sha512-Xi4agocCbRzt0yYMZGMA6ApD7gvtUFaxm4ZmeacWI4cZxaF6C+8I8QfofC20NAePiB/IcvZmzkJ7XPa471AEtA==",
+ "version": "7.25.0",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-7.25.0.tgz",
+ "integrity": "sha512-xXnp4kTyor2Zq+J1FfPI6Eq3ew5h6Vl0F/8d9XU5zZQf1tX9s2Su1/3PiMmUANFULpmksxkClamIZcaUqryHsQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -12590,9 +12462,9 @@
}
},
"node_modules/undici-types": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
- "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
+ "version": "7.19.2",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz",
+ "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==",
"license": "MIT"
},
"node_modules/unified": {
@@ -12654,9 +12526,9 @@
}
},
"node_modules/unist-util-visit": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
- "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz",
+ "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==",
"license": "MIT",
"dependencies": {
"@types/unist": "^3.0.0",
@@ -12851,16 +12723,16 @@
}
},
"node_modules/vite": {
- "version": "8.0.3",
- "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.3.tgz",
- "integrity": "sha512-B9ifbFudT1TFhfltfaIPgjo9Z3mDynBTJSUYxTjOQruf/zHH+ezCQKcoqO+h7a9Pw9Nm/OtlXAiGT1axBgwqrQ==",
+ "version": "8.0.10",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.10.tgz",
+ "integrity": "sha512-rZuUu9j6J5uotLDs+cAA4O5H4K1SfPliUlQwqa6YEwSrWDZzP4rhm00oJR5snMewjxF5V/K3D4kctsUTsIU9Mw==",
"license": "MIT",
"dependencies": {
"lightningcss": "^1.32.0",
"picomatch": "^4.0.4",
- "postcss": "^8.5.8",
- "rolldown": "1.0.0-rc.12",
- "tinyglobby": "^0.2.15"
+ "postcss": "^8.5.10",
+ "rolldown": "1.0.0-rc.17",
+ "tinyglobby": "^0.2.16"
},
"bin": {
"vite": "bin/vite.js"
@@ -12877,7 +12749,7 @@
"peerDependencies": {
"@types/node": "^20.19.0 || >=22.12.0",
"@vitejs/devtools": "^0.1.0",
- "esbuild": "^0.27.0",
+ "esbuild": "^0.27.0 || ^0.28.0",
"jiti": ">=1.21.0",
"less": "^4.0.0",
"sass": "^1.70.0",
@@ -12940,19 +12812,19 @@
}
},
"node_modules/vitest": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.2.tgz",
- "integrity": "sha512-xjR1dMTVHlFLh98JE3i/f/WePqJsah4A0FK9cc8Ehp9Udk0AZk6ccpIZhh1qJ/yxVWRZ+Q54ocnD8TXmkhspGg==",
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.5.tgz",
+ "integrity": "sha512-9Xx1v3/ih3m9hN+SbfkUyy0JAs72ap3r7joc87XL6jwF0jGg6mFBvQ1SrwaX+h8BlkX6Hz9shdd1uo6AF+ZGpg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@vitest/expect": "4.1.2",
- "@vitest/mocker": "4.1.2",
- "@vitest/pretty-format": "4.1.2",
- "@vitest/runner": "4.1.2",
- "@vitest/snapshot": "4.1.2",
- "@vitest/spy": "4.1.2",
- "@vitest/utils": "4.1.2",
+ "@vitest/expect": "4.1.5",
+ "@vitest/mocker": "4.1.5",
+ "@vitest/pretty-format": "4.1.5",
+ "@vitest/runner": "4.1.5",
+ "@vitest/snapshot": "4.1.5",
+ "@vitest/spy": "4.1.5",
+ "@vitest/utils": "4.1.5",
"es-module-lexer": "^2.0.0",
"expect-type": "^1.3.0",
"magic-string": "^0.30.21",
@@ -12980,10 +12852,12 @@
"@edge-runtime/vm": "*",
"@opentelemetry/api": "^1.9.0",
"@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0",
- "@vitest/browser-playwright": "4.1.2",
- "@vitest/browser-preview": "4.1.2",
- "@vitest/browser-webdriverio": "4.1.2",
- "@vitest/ui": "4.1.2",
+ "@vitest/browser-playwright": "4.1.5",
+ "@vitest/browser-preview": "4.1.5",
+ "@vitest/browser-webdriverio": "4.1.5",
+ "@vitest/coverage-istanbul": "4.1.5",
+ "@vitest/coverage-v8": "4.1.5",
+ "@vitest/ui": "4.1.5",
"happy-dom": "*",
"jsdom": "*",
"vite": "^6.0.0 || ^7.0.0 || ^8.0.0"
@@ -13007,6 +12881,12 @@
"@vitest/browser-webdriverio": {
"optional": true
},
+ "@vitest/coverage-istanbul": {
+ "optional": true
+ },
+ "@vitest/coverage-v8": {
+ "optional": true
+ },
"@vitest/ui": {
"optional": true
},
@@ -13034,13 +12914,6 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/vitest/node_modules/std-env": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.0.0.tgz",
- "integrity": "sha512-zUMPtQ/HBY3/50VbpkupYHbRroTRZJPRLvreamgErJVys0ceuzMkD44J/QjqhHjOzK42GQ3QZIeFG1OYfOtKqQ==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/w3c-xmlserializer": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
@@ -13173,9 +13046,9 @@
}
},
"node_modules/which-typed-array": {
- "version": "1.1.19",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz",
- "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==",
+ "version": "1.1.20",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz",
+ "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==",
"dev": true,
"license": "MIT",
"dependencies": {
diff --git a/package.json b/package.json
index 7b29b0d..0d2e4d3 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "pve-scripts-local",
- "version": "0.5.8",
+ "version": "1.0.0-pre9",
"private": true,
"type": "module",
"scripts": {
@@ -25,36 +25,36 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
- "@prisma/adapter-better-sqlite3": "^7.6.0",
- "@prisma/client": "^7.6.0",
+ "@prisma/adapter-better-sqlite3": "^7.8.0",
+ "@prisma/client": "^7.8.0",
"@radix-ui/react-dropdown-menu": "^2.1.16",
"@radix-ui/react-slot": "^1.2.4",
"@t3-oss/env-nextjs": "^0.13.11",
"@tailwindcss/typography": "^0.5.19",
- "@tanstack/react-query": "^5.96.0",
- "@trpc/client": "^11.16.0",
- "@trpc/react-query": "^11.16.0",
- "@trpc/server": "^11.16.0",
+ "@tanstack/react-query": "^5.100.9",
+ "@trpc/client": "^11.17.0",
+ "@trpc/react-query": "^11.17.0",
+ "@trpc/server": "^11.17.0",
"@types/react-syntax-highlighter": "^15.5.13",
"@types/ws": "^8.18.1",
"@xterm/addon-fit": "^0.11.0",
"@xterm/addon-web-links": "^0.12.0",
"@xterm/xterm": "^6.0.0",
- "axios": "^1.14.0",
+ "axios": "^1.16.0",
"bcryptjs": "^3.0.3",
- "better-sqlite3": "^12.8.0",
+ "better-sqlite3": "^12.9.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"cron-validator": "^1.4.0",
- "dotenv": "^17.3.1",
+ "dotenv": "^17.4.2",
"jsonwebtoken": "^9.0.3",
- "lucide-react": "^1.7.0",
- "next": ">=16.2.1",
+ "lucide-react": "^1.14.0",
+ "next": "16.2.4",
"node-cron": "^4.2.1",
"node-pty": "^1.1.0",
"pocketbase": "^0.26.8",
- "react": "^19.2.4",
- "react-dom": "^19.2.4",
+ "react": "^19.2.5",
+ "react-dom": "^19.2.5",
"react-markdown": "^10.1.0",
"react-syntax-highlighter": "^16.1.1",
"refractor": "^5.0.0",
@@ -63,39 +63,40 @@
"strip-ansi": "^7.2.0",
"superjson": "^2.2.6",
"tailwind-merge": "^3.5.0",
- "vite": "^8.0.3",
+ "vite": "^8.0.10",
"ws": "^8.20.0",
- "zod": "^4.3.6"
+ "zod": "^4.4.3"
},
"devDependencies": {
- "@tailwindcss/postcss": "^4.2.2",
+ "@tailwindcss/postcss": "^4.2.4",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2",
"@testing-library/user-event": "^14.6.1",
"@types/bcryptjs": "^3.0.0",
"@types/better-sqlite3": "^7.6.13",
"@types/jsonwebtoken": "^9.0.10",
- "@types/node": "^24.10.9",
+ "@types/node": "^25.6.0",
"@types/node-cron": "^3.0.11",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^6.0.1",
- "@vitest/coverage-v8": "^4.1.2",
- "@vitest/ui": "^4.1.2",
- "baseline-browser-mapping": "^2.10.13",
- "eslint": "^10.1.0",
- "eslint-config-next": "^16.2.1",
- "jsdom": "^29.0.1",
- "next": ">=16.2.1",
- "postcss": "^8.5.8",
- "prettier": "^3.8.1",
- "prettier-plugin-tailwindcss": "^0.7.2",
- "prisma": "^7.6.0",
- "tailwindcss": "^4.2.2",
+ "@vitest/coverage-v8": "^4.1.5",
+ "@vitest/ui": "^4.1.5",
+ "baseline-browser-mapping": "^2.10.27",
+ "eslint": "^10.3.0",
+ "eslint-config-next": "^16.2.4",
+ "jsdom": "^29.1.1",
+ "next": "16.2.4",
+ "postcss": "^8.5.14",
+ "prettier": "^3.8.3",
+ "prettier-plugin-tailwindcss": "^0.8.0",
+ "prisma": "^7.8.0",
+ "tailwindcss": "^4.2.4",
"tsx": "^4.21.0",
- "typescript": "^6.0.2",
- "typescript-eslint": "^8.58.0",
- "vitest": "^4.1.2"
+ "typescript": "^6.0.3",
+ "@typescript-eslint/eslint-plugin": "^8.59.2",
+ "@typescript-eslint/parser": "^8.59.2",
+ "vitest": "^4.1.5"
},
"ct3aMetadata": {
"initVersion": "7.39.3"
@@ -110,4 +111,4 @@
"@hono/node-server": ">=1.19.10",
"lodash": "^4.17.23"
}
-}
+}
\ No newline at end of file
diff --git a/pre-release-updater.sh b/pre-release-updater.sh
new file mode 100644
index 0000000..8d9653d
--- /dev/null
+++ b/pre-release-updater.sh
@@ -0,0 +1,395 @@
+#!/bin/bash
+
+# ProxmoxVE-Local Pre-Release Updater
+# ====================================
+# This script allows users to upgrade from stable (e.g. v0.5.8) to pre-release
+# versions (v1.0.0-pre1, v1.0.0-pre2, etc.) for testing purposes.
+#
+# Installation:
+# curl -fsSL https://github.com/community-scripts/ProxmoxVE-Local/releases/download/v1.0.0-pre1/pre-release-updater.sh -o /opt/pve-local-prerelease-updater.sh
+# chmod +x /opt/pve-local-prerelease-updater.sh
+#
+# Usage:
+# bash /opt/pve-local-prerelease-updater.sh
+#
+# The script will:
+# 1. Fetch all available pre-releases from GitHub
+# 2. Display them (newest first) with a numbered menu
+# 3. Let the user pick which pre-release to install
+# 4. Download and install the selected pre-release
+
+set -euo pipefail
+
+# --- Configuration -----------------------------------------------------------
+REPO_OWNER="community-scripts"
+REPO_NAME="ProxmoxVE-Local"
+GITHUB_API="https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}"
+INSTALL_DIR="/opt/ProxmoxVE-Local"
+BACKUP_DIR="/tmp/pve-prerelease-backup-$(date +%Y%m%d-%H%M%S)"
+SERVICE_NAME="pve-scripts-local"
+
+# --- Colors ------------------------------------------------------------------
+RED='\033[0;31m'
+GREEN='\033[0;32m'
+YELLOW='\033[1;33m'
+BLUE='\033[0;34m'
+CYAN='\033[0;36m'
+BOLD='\033[1m'
+NC='\033[0m'
+
+# --- Helper Functions --------------------------------------------------------
+msg() { echo -e "${BLUE}[INFO]${NC} $1"; }
+msg_ok() { echo -e "${GREEN}[OK]${NC} $1"; }
+msg_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
+msg_err() { echo -e "${RED}[ERROR]${NC} $1" >&2; }
+
+header() {
+ echo ""
+ echo -e "${CYAN}╔══════════════════════════════════════════════════════════════╗${NC}"
+ echo -e "${CYAN}║${NC} ${BOLD}ProxmoxVE-Local Pre-Release Updater${NC} ${CYAN}║${NC}"
+ echo -e "${CYAN}║${NC} Test upcoming releases before they go stable ${CYAN}║${NC}"
+ echo -e "${CYAN}╚══════════════════════════════════════════════════════════════╝${NC}"
+ echo ""
+}
+
+# --- Dependency Check --------------------------------------------------------
+check_dependencies() {
+ local missing=()
+ for cmd in curl jq tar node npm; do
+ if ! command -v "$cmd" &>/dev/null; then
+ missing+=("$cmd")
+ fi
+ done
+
+ if [ ${#missing[@]} -ne 0 ]; then
+ msg_err "Missing dependencies: ${missing[*]}"
+ msg_err "Install them with: apt-get install -y ${missing[*]}"
+ exit 1
+ fi
+}
+
+# --- Get Current Version -----------------------------------------------------
+get_current_version() {
+ if [ -f "${INSTALL_DIR}/VERSION" ]; then
+ cat "${INSTALL_DIR}/VERSION" | tr -d '[:space:]'
+ else
+ echo "unknown"
+ fi
+}
+
+# --- Fetch Pre-Releases from GitHub ------------------------------------------
+fetch_prereleases() {
+ msg "Fetching available pre-releases from GitHub..." >&2
+
+ local curl_opts="-fsSL --connect-timeout 15 --max-time 30"
+
+ # Add token if available
+ if [ -n "${GITHUB_TOKEN:-}" ]; then
+ curl_opts="$curl_opts -H \"Authorization: token $GITHUB_TOKEN\""
+ fi
+
+ local releases_json
+ if ! releases_json=$(eval "curl $curl_opts \"${GITHUB_API}/releases?per_page=20\""); then
+ msg_err "Failed to fetch releases from GitHub API"
+ msg_err "Check your internet connection or try again later."
+ exit 1
+ fi
+
+ # Validate JSON
+ if ! echo "$releases_json" | jq empty 2>/dev/null; then
+ msg_err "Invalid response from GitHub API"
+ exit 1
+ fi
+
+ # Filter pre-releases only, sort newest first (already sorted by API)
+ local prereleases
+ prereleases=$(echo "$releases_json" | jq -r '[.[] | select(.prerelease == true)] | sort_by(.published_at) | reverse')
+
+ local count
+ count=$(echo "$prereleases" | jq 'length')
+
+ if [ "$count" -eq 0 ]; then
+ msg_warn "No pre-releases found." >&2
+ msg "There are currently no pre-release versions available for testing." >&2
+ exit 0
+ fi
+
+ echo "$prereleases"
+}
+
+# --- Display Menu ------------------------------------------------------------
+display_menu() {
+ local prereleases="$1"
+ local current_version="$2"
+ local count
+ count=$(echo "$prereleases" | jq 'length')
+
+ echo -e "${BOLD}Currently installed:${NC} v${current_version}"
+ echo ""
+ echo -e "${BOLD}Available Pre-Releases:${NC} (newest first)"
+ echo -e "────────────────────────────────────────────────────"
+ printf " ${BOLD}%-4s %-20s %-12s %s${NC}\n" "#" "Version" "Date" "Notes"
+ echo -e "────────────────────────────────────────────────────"
+
+ for ((i = 0; i < count; i++)); do
+ local tag_name published_at name
+ tag_name=$(echo "$prereleases" | jq -r ".[$i].tag_name")
+ published_at=$(echo "$prereleases" | jq -r ".[$i].published_at // .[$i].created_at" | cut -d'T' -f1)
+ name=$(echo "$prereleases" | jq -r ".[$i].name // .[$i].tag_name" | head -c 30)
+
+ local marker=""
+ if [ "$tag_name" = "v${current_version}" ] || [ "$tag_name" = "${current_version}" ]; then
+ marker=" ${GREEN}← installed${NC}"
+ fi
+
+ printf " ${CYAN}%-4s${NC} %-20s %-12s %s%b\n" "$((i + 1))" "$tag_name" "$published_at" "$name" "$marker"
+ done
+
+ echo -e "────────────────────────────────────────────────────"
+ echo ""
+}
+
+# --- User Selection ----------------------------------------------------------
+get_user_choice() {
+ local count="$1"
+
+ while true; do
+ echo -ne "${BOLD}Select a pre-release to install [1-${count}] (or 'q' to quit): ${NC}" >&2
+ read -r choice
+
+ if [ "$choice" = "q" ] || [ "$choice" = "Q" ]; then
+ msg "Aborted by user." >&2
+ exit 0
+ fi
+
+ # Validate numeric input
+ if [[ "$choice" =~ ^[0-9]+$ ]] && [ "$choice" -ge 1 ] && [ "$choice" -le "$count" ]; then
+ echo "$choice"
+ return 0
+ fi
+
+ msg_warn "Invalid choice. Please enter a number between 1 and ${count}." >&2
+ done
+}
+
+# --- Backup ------------------------------------------------------------------
+backup_current() {
+ if [ ! -d "$INSTALL_DIR" ]; then
+ msg "No existing installation found, skipping backup."
+ return 0
+ fi
+
+ msg "Backing up current installation..."
+ mkdir -p "$BACKUP_DIR"
+
+ # Backup critical data
+ if [ -d "${INSTALL_DIR}/data" ]; then
+ cp -r "${INSTALL_DIR}/data" "$BACKUP_DIR/data"
+ fi
+ if [ -f "${INSTALL_DIR}/.env" ]; then
+ cp "${INSTALL_DIR}/.env" "$BACKUP_DIR/.env"
+ fi
+ if [ -d "${INSTALL_DIR}/prisma" ]; then
+ # Backup the SQLite database if it exists
+ find "${INSTALL_DIR}/prisma" -name "*.db" -exec cp {} "$BACKUP_DIR/" \; 2>/dev/null || true
+ fi
+
+ # Backup downloaded scripts so updates never wipe user downloads
+ for dir in ct tools vm vw; do
+ if [ -d "${INSTALL_DIR}/scripts/${dir}" ]; then
+ cp -r "${INSTALL_DIR}/scripts/${dir}" "$BACKUP_DIR/scripts-${dir}"
+ fi
+ done
+
+ msg_ok "Backup created at: $BACKUP_DIR"
+}
+
+restore_downloaded_scripts() {
+ for dir in ct tools vm vw; do
+ if [ -d "$BACKUP_DIR/scripts-${dir}" ]; then
+ mkdir -p "${INSTALL_DIR}/scripts"
+ rm -rf "${INSTALL_DIR}/scripts/${dir}" 2>/dev/null || true
+ cp -r "$BACKUP_DIR/scripts-${dir}" "${INSTALL_DIR}/scripts/${dir}"
+ msg_ok "Restored downloaded scripts directory: scripts/${dir}"
+ fi
+ done
+}
+
+# --- Install Pre-Release -----------------------------------------------------
+install_prerelease() {
+ local tag_name="$1"
+
+ msg "Installing pre-release: ${tag_name}..."
+
+ local download_url="https://github.com/${REPO_OWNER}/${REPO_NAME}/archive/refs/tags/${tag_name}.tar.gz"
+ local temp_dir="/tmp/pve-prerelease-$$"
+
+ # Create temp directory
+ mkdir -p "$temp_dir"
+ trap "rm -rf $temp_dir" EXIT
+
+ # Download
+ msg "Downloading ${tag_name}..."
+ if ! curl -fsSL --connect-timeout 30 --max-time 300 --retry 3 -o "$temp_dir/release.tar.gz" "$download_url"; then
+ msg_err "Failed to download release. Check that the tag '${tag_name}' exists."
+ exit 1
+ fi
+
+ # Verify download
+ if [ ! -s "$temp_dir/release.tar.gz" ]; then
+ msg_err "Downloaded file is empty."
+ exit 1
+ fi
+
+ msg_ok "Downloaded ($(du -h "$temp_dir/release.tar.gz" | cut -f1))"
+
+ # Extract
+ msg "Extracting..."
+ if ! tar -xzf "$temp_dir/release.tar.gz" -C "$temp_dir"; then
+ msg_err "Failed to extract release archive."
+ exit 1
+ fi
+
+ # Find extracted directory
+ local extracted_dir
+ extracted_dir=$(find "$temp_dir" -maxdepth 1 -type d -name "${REPO_NAME}-*" | head -1)
+ if [ -z "$extracted_dir" ]; then
+ msg_err "Could not find extracted directory."
+ exit 1
+ fi
+
+ # Stop service if running
+ local service_was_running=false
+ if systemctl is-active --quiet "$SERVICE_NAME" 2>/dev/null; then
+ msg "Stopping ${SERVICE_NAME} service..."
+ systemctl stop "$SERVICE_NAME"
+ service_was_running=true
+ fi
+
+ # Install: sync files (preserve data, .env, node_modules)
+ msg "Installing files to ${INSTALL_DIR}..."
+ mkdir -p "$INSTALL_DIR"
+
+ # Use rsync if available, otherwise manual copy
+ if command -v rsync &>/dev/null; then
+ rsync -a --delete \
+ --exclude='data/' \
+ --exclude='.env' \
+ --exclude='node_modules/' \
+ --exclude='scripts/ct/' \
+ --exclude='scripts/tools/' \
+ --exclude='scripts/vm/' \
+ --exclude='scripts/vw/' \
+ --exclude='prisma/*.db' \
+ --exclude='prisma/*.db-journal' \
+ "$extracted_dir/" "$INSTALL_DIR/"
+ else
+ # Manual approach: remove old files (except protected), copy new
+ find "$INSTALL_DIR" -mindepth 1 \
+ ! -path "${INSTALL_DIR}/data*" \
+ ! -path "${INSTALL_DIR}/.env" \
+ ! -path "${INSTALL_DIR}/node_modules*" \
+ ! -name "*.db" \
+ ! -name "*.db-journal" \
+ -delete 2>/dev/null || true
+ cp -r "$extracted_dir/"* "$INSTALL_DIR/"
+ fi
+
+ # Always restore user-downloaded scripts after copying release files
+ restore_downloaded_scripts
+
+ msg_ok "Files installed"
+
+ # Install dependencies (dev deps needed for prisma generate & build)
+ msg "Installing npm dependencies..."
+ cd "$INSTALL_DIR"
+ if ! npm ci 2>/dev/null; then
+ msg_warn "npm ci failed, trying npm install..."
+ npm install
+ fi
+ msg_ok "Dependencies installed"
+
+ # Run prisma migrations
+ msg "Running database migrations..."
+ npx prisma migrate deploy 2>/dev/null || msg_warn "Migration skipped (may already be up to date)"
+ msg_ok "Database ready"
+
+ # Build
+ msg "Building application..."
+ if ! npm run build; then
+ msg_err "Build failed! Check the logs above."
+ msg_warn "Your backup is at: $BACKUP_DIR"
+ exit 1
+ fi
+ msg_ok "Build complete"
+
+ # Restart service if it was running
+ if [ "$service_was_running" = true ]; then
+ msg "Restarting ${SERVICE_NAME} service..."
+ systemctl start "$SERVICE_NAME"
+ msg_ok "Service restarted"
+ fi
+
+ echo ""
+ echo -e "${GREEN}╔══════════════════════════════════════════════════════════════╗${NC}"
+ echo -e "${GREEN}║${NC} ${BOLD}Pre-release ${tag_name} installed successfully!${NC} ${GREEN}║${NC}"
+ echo -e "${GREEN}╚══════════════════════════════════════════════════════════════╝${NC}"
+ echo ""
+ msg "Backup location: $BACKUP_DIR"
+ msg "To rollback, restore the backup and run: systemctl restart ${SERVICE_NAME}"
+ echo ""
+}
+
+# --- Main --------------------------------------------------------------------
+main() {
+ header
+
+ # Must run as root
+ if [ "$(id -u)" -ne 0 ]; then
+ msg_err "This script must be run as root (use sudo)."
+ exit 1
+ fi
+
+ check_dependencies
+
+ local current_version
+ current_version=$(get_current_version)
+
+ # Fetch pre-releases
+ local prereleases
+ prereleases=$(fetch_prereleases)
+
+ local count
+ count=$(echo "$prereleases" | jq 'length')
+
+ # Display menu
+ display_menu "$prereleases" "$current_version"
+
+ # Get user choice
+ local choice
+ choice=$(get_user_choice "$count")
+
+ # Get selected tag
+ local selected_tag
+ selected_tag=$(echo "$prereleases" | jq -r ".[$(($choice - 1))].tag_name")
+
+ # Confirm
+ echo ""
+ echo -e "${YELLOW}You are about to update:${NC}"
+ echo -e " From: ${BOLD}v${current_version}${NC}"
+ echo -e " To: ${BOLD}${selected_tag}${NC}"
+ echo ""
+ echo -ne "${BOLD}Continue? [y/N]: ${NC}"
+ read -r confirm
+
+ if [ "$confirm" != "y" ] && [ "$confirm" != "Y" ]; then
+ msg "Aborted by user."
+ exit 0
+ fi
+
+ # Backup and install
+ backup_current
+ install_prerelease "$selected_tag"
+}
+
+main "$@"
diff --git a/prisma/migrations/20260401113636_add_notes_and_presets/migration.sql b/prisma/migrations/20260401113636_add_notes_and_presets/migration.sql
new file mode 100644
index 0000000..a150b48
--- /dev/null
+++ b/prisma/migrations/20260401113636_add_notes_and_presets/migration.sql
@@ -0,0 +1,37 @@
+-- CreateTable
+CREATE TABLE "script_notes" (
+ "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
+ "script_slug" TEXT NOT NULL,
+ "title" TEXT NOT NULL DEFAULT '',
+ "content" TEXT NOT NULL,
+ "is_shared" BOOLEAN NOT NULL DEFAULT false,
+ "created_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ "updated_at" DATETIME NOT NULL
+);
+
+-- CreateTable
+CREATE TABLE "server_presets" (
+ "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
+ "server_id" INTEGER NOT NULL,
+ "name" TEXT NOT NULL,
+ "cpu" INTEGER,
+ "ram" INTEGER,
+ "disk" INTEGER,
+ "privileged" BOOLEAN NOT NULL DEFAULT false,
+ "bridge" TEXT,
+ "vlan" TEXT,
+ "dns" TEXT,
+ "ssh" BOOLEAN NOT NULL DEFAULT false,
+ "nesting" BOOLEAN NOT NULL DEFAULT true,
+ "fuse" BOOLEAN NOT NULL DEFAULT false,
+ "apt_proxy_addr" TEXT,
+ "apt_proxy_on" BOOLEAN NOT NULL DEFAULT false,
+ "created_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ "updated_at" DATETIME NOT NULL
+);
+
+-- CreateIndex
+CREATE INDEX "script_notes_script_slug_idx" ON "script_notes"("script_slug");
+
+-- CreateIndex
+CREATE INDEX "server_presets_server_id_idx" ON "server_presets"("server_id");
diff --git a/prisma/migrations/20260429000000_add_pbs_username/migration.sql b/prisma/migrations/20260429000000_add_pbs_username/migration.sql
new file mode 100644
index 0000000..5877bb0
--- /dev/null
+++ b/prisma/migrations/20260429000000_add_pbs_username/migration.sql
@@ -0,0 +1,2 @@
+-- AlterTable: add pbs_username to pbs_storage_credentials with default 'root@pam'
+ALTER TABLE "pbs_storage_credentials" ADD COLUMN "pbs_username" TEXT NOT NULL DEFAULT 'root@pam';
diff --git a/prisma/schema.prisma b/prisma/schema.prisma
index de112ad..55fff9f 100644
--- a/prisma/schema.prisma
+++ b/prisma/schema.prisma
@@ -123,6 +123,7 @@ model PBSStorageCredential {
storage_name String
pbs_ip String
pbs_datastore String
+ pbs_username String @default("root@pam")
pbs_password String
pbs_fingerprint String
created_at DateTime @default(now())
@@ -146,3 +147,39 @@ model Repository {
@@map("repositories")
}
+
+model ScriptNote {
+ id Int @id @default(autoincrement())
+ script_slug String
+ title String @default("")
+ content String
+ is_shared Boolean @default(false)
+ created_at DateTime @default(now())
+ updated_at DateTime @updatedAt
+
+ @@index([script_slug])
+ @@map("script_notes")
+}
+
+model ServerPreset {
+ id Int @id @default(autoincrement())
+ server_id Int
+ name String
+ cpu Int?
+ ram Int?
+ disk Int?
+ privileged Boolean @default(false)
+ bridge String?
+ vlan String?
+ dns String?
+ ssh Boolean @default(false)
+ nesting Boolean @default(true)
+ fuse Boolean @default(false)
+ apt_proxy_addr String?
+ apt_proxy_on Boolean @default(false)
+ created_at DateTime @default(now())
+ updated_at DateTime @updatedAt
+
+ @@index([server_id])
+ @@map("server_presets")
+}
diff --git a/public/favicon.png b/public/favicon.png
deleted file mode 100644
index 5e4b11bbe461650d9d8556f24e79ebe7e8cea909..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 65754
zcmV(=lsrEb)ntq1UW!HpnS&ke}I4(+>c=}7}PHvI`|im4=6WlyXhDoA8#}o
z^`{PZW%=hJ@Toz6u(-H@JQk2=)tiI(hfbnzrq=SR)vL1K1GhWk|K(kx326bhVZc
zfusZ=e+E+L>I4P*arwiu8~tT=t4$}$57GnvlFr%)Aa57wN{Af~ayJ0o;|GX*?T{#;
zKma5PpmYSJElHLK_0BI5|5IZ2}`0DF__0UluvOEOWf82;80|hrQ
zl}lt2`{6P3(q~Mf)u2a#3^$2+k$6VrSvmlu%TOPZ5e{xZ+xkH?PP6C+2gGqIQc8Ca
zoD-gAp31uB|AK2X^^|)JgkBk<3KJps3%oolvok7yV3Q(2spHNt%zrQ#VgU3Q0z+ry
zqY61gmv)HRCxF@7!ASY}kt_r!v@%~vO4-Yerga~D+r@1ka
z_Ii7$c86*NL0xTiR38Ybi8w+TR11K=ppM)Lx5$P}lwhz}f5N9|#AB9m^cGH_Cwb-t
z6D_5R>M>?4mNG|=1UCp7EDBM6X1EcmrH&Q}dI?@sgUE#{w>B7L3NW@rZ7yV3JN$
zJuH*XE0j=zz}ys+OwGW*+>okZul(l5lA$o46QF+wTL&4Hf
zG#h1!`0NiS_C!~bmE8p15a@>GKd+a>w<#5e>}R1;+Qw=7#NOk~qN6l10OVa^mYKw+Z239Yni4dz|p;sxAhXq?$!iAU^$PHPh
zyKYG5vye%Zm>Jd4bfTZeP-bKV;SchB)Yl=s9MHH&5DlGuu`?hfxFtF#-5P-fOKhwslvB8d#mp5cD5p$l+YPr+u>A0AQ_
zNIi07SJD8Gy*5CRGdCC{CN=@&2g`)|XD22TlqI!SiZl~UBKusCVQg|xC)PYEf~@Fb
z_#q@;!Q-`vnuj_76v-3VmCi3SA5i<%XdKZ-xd~*dbiT#hOV+nwmP1eRY=h2Z&_BZQ
zOJo8-w0}S&Wu_r{ve|!NJpsA$IZwPH|9sC
zf0w<|+g|*K&J5iF`Dds%>h&NB!*ja`3Isuf3v2uw{1j`?Os#6OXAJL%AiYGqS-+_z`Pewg^pKguKXjC)he|-_aV1(1rTI3`UJtMvrB9
zjz~})^6QW@74(t16^FkVk|SBv^3|@v;hUM?>}Mq(s=Sct#%O?SdL_a~l?BP&LkD3W
z)p=vMZKq7(a3%aI{U+v<^S-HVfIc5{G
z6~dsw?D2dscFL&~^*Sk}%Xd3H3n@|Kgxc|>VjP;Ex%@Z~9g+2RH#2DOV+TQzzN0BfATA(EP6_T>9X2nqDYD
z4w@X7a0>bOvtwS?)(G(r7Q9woD*Y*$@dB6|Ux+XR9y^fUFd5=+f55#JO8
zlZcXY-^~`tjCdIwrMNsup=6XO&KD>s00sgSBoJvp4QZPXVn>F|&a?L&VE_P6L%W^0
z$_8sUBU8{I$@oLH4Ep@VjgfnVlxCI&|BLpVKw+un!FD8AjT8z!2@)`>+0S{qByz#~
zi7ehSB{)QUnWtn$A_0#mRBOVk*K`9&_%2>va%PTw))a$bZfA6l_66wy6um&B%Jkci
zx(-g;k30~qTmiAkbL>bDDMAXy549qJ_^Bu$W`au>-H?mHUuSb6(oW-M9120$U!UfM
zkxUC?Qw15|xf5ka;Sxh?-(N&`9Z0;vMu5xl&T<+ln;B9V6}i~W
zB^Xp+(U19t2h{#$Qai}AjDtd%<{lt3Jq+oB&YkoEDKtmcwpzRip$jM??7I9ZFxPVG
zh<(e-eT%G%)B-wkSc?+=6O*JL9sRo;(_AGOiU_(_y0aTW8lt%&b-U&zBF`PqhPmRfr$2iZVs1m*e<)4@?PQ
z{r6>WbX;Zf?`JgYpMWp2Iji(_FnR#z0@!U|52f{%#g
zbOfC|{?GA)Dl@*hOdp}hQa_f3Fhb!FQOM_ab<
zgY>L|g=*+>*NH6Q5Lkt%L7)_Jv_t3T(&$_{i~$7un4SszmJQN!s<>^`NjY_t$YvL4e^a<)1YXV)UqA+JUyc%sXnz%F4VBtOs2Rf#<
zY4>e<4rEVD=%a}egY2}>i#e;%{)ifvL@8rm2%<}jkWdIS80Q4*5;#WJ&%U#$|Jmfz
z^XW@dJHf*0)Jl-`DcU~+qJXr9&-4?=Ai-u#5(;!ecv^Hv`oGi$YXE)(lKL4msV;T>
zppc|gdC8qOwAtl(3Lr5OrUjQXDh{Cx+g+$kt0T?@z!5G>F>?w~ZY(vSU}0^v!U|L0
zsJV3J7|)OXc_wVjVIBn0Qpg5{RLjbfg0`cT9hT4pNnKl_N3|NsYg%nrCN6`bD0t!t
z^(C=Ncn+4c!nELl)0t@+N@40U=1`U6xK9~=FwgORO4AKinQfgVH=`eyN0Rg-@k)OZuB9^9nLJZ#&*eE%lBcUV~
z86t2Y&~6BnhATv;g1m%xWjPo)=+$}B%)@ecMM4EiiE7{tC{TKl(S^PdDTC{ifwT!z
z5jhHDbw;V8ylfwSmLus%U8IG9mnWGj1D(8}O4b24OLG$BA`pTGX7|K|QASF1xfeuZ
zv#cNNPl{Vr#KGz>pfH&}K(Nprpe;dSf;$HY%R#T~TwT0==)%5N4?Ta+<_Et1nQwV2
z%W`_>T_=Oy+lS1FMQpYlltLB96ME#JY|9(-;gT#yUQJYLHd`$fwdD>K6UB{Yv+1b!
z|MMV7=yba6ekbc?4n;h7tgiTXsHw0tb&W=2YI-^Zp{#EXoxNq62vlkCL*&8Lr^SWE
zOyZRZtzY_(8;~LPY;tmPdc}%hv*%O=11O&dwGY66!n**~H4BT2d=_L#qAGdp=Jz{x
z&tZ(lJvlY0(R04q;g+!!S_@7Kvua*w&!4(_c+c@S-#NDP^pz8xL3``kZAHV`{P2>n$#}<w9S?fh+RMmwgUA=qp}u#N9-fypGEJDNFg%Fr>eW!2$V@<
zCrZZ$D559p;Ee1@#d}3kI6_m1wrPPN`?5&F#i>^5hWz2?%0#a8Oh_vS#MDQb4RP{O
z%B=YAQakEYXVf=^&tE#9+@*bo!gKV%xut9SPVIX0&`Sr;?7y~frH_4yVZQZ>4)mExiFF5qhhqCO`{>DQP%DomKkf#
zNt__jGMA42#X*JO8c4&a;LGhhymqM9|5#
zm|Y@FDUkx}y#!8DPKY9B^aHaZnC^)Gl~kn|C?1N^i`ctVsTq2M?wKpcU)=xHuH&!G
zwP(76ZrnDElkenF#L#1-a!z?JVOfl@z4s$13OmSiuY;uMbr@
zWhn`5&vCzj47cgL6z$KDB3M>4fYaPOwD`^KG$m<1#`7ZKA_fd~6V3_y(6B~-1xLVq
z%+g;}L_tM!s}m*wayDfeJ2SLWLg6uw!^Yc6QR>b);Vz8ON#a^^*Ch`K+>H3@EbI))
zQIJZeGZ(%{+zRyS*jS-9m`pmB33ULMI_(e6zVpJqr}mxR)9x;nk)xv(7cHPN<=>H2
zTXm*c6uvZO*~7&WC1EA^`JVza0|ZgsB;S5Lr$Qh%>w@&iWN+4yo<-3EgvEP;T557J
zx)UKd9vg}QcnNWsXR1=~M-*qvL9Kol7LdiOs;&@*TGtbfi-r!b#q11*Oo)}a5)})x
zW$4Li6pHkkg7C&8+Ji!-k5C`V`5MI|_k-^)nx$dkwNQ##uZqE>MI?u#a>bY5YCn$k|peQ)IHIyF0|n9@(O`%AXPIsOsd?
zI6aAKQjsz&16}Ei*FUw#InyZrNk!Y#hV;R0wgwL_~?`
zAjA@!GqjXTPykM0B+YD7$%ocLrdM)$jQSkv=a<_(YZ!C0mXw3pF5q5e;%iV^Z-TSw
zLpJM;I$R4cxXTQGr2btc2`t5|41>Ng2yW_C&zW&f->K71Z<*lM4$QiRj!V2s_G;68
z)UcJ@<$C8YW#gwZNCsCIFCMwD|D}CTA2_pjskacBwkUMm>Qrd1#km=&$?9T&WqBaf
zX^vsY2&hjkgfL7R)Xb_PQ616zgn)~~K%IDYnPWG1c_xfM+cAm>^ES=YtqsncM1mmh
zod~qB+CQ{MAJtO^d<7QH<7-R{ncbuq
zFqbl&GKsT`C7k69QQMUEt1t8I>wAvB@!Y<@KYac`yW5UWN(p~jeHYmIHENUA0G+jx
z(p|tx(L9hF9Y6b&)g!Wc(mpsZ4J081%qUH3$3J{DQ(AJv5_?|j+h>{WWt$ptFhA+c
z<-VCooSn$21Y-Oz^H9Zs;HEg#n{|Ux01xI)3}1^5=WG5_Py;zwkdnG!B_8@DLl0qe
z7bEb1TNL0_o3TdrG*&J9-O#z=tq10de6x><`?Iq>shd`OM{H}
z7C{pmfkQkh+#mo8Oee>Vb&3VYJ|XKH7rSvM$_?Bo~WZ7ui8G2_+s0WO@oTGAiP?u)u^cR1$=i7hx)?X}i=ZMEk
zR6Qfc8AVi5*9wW}qjUo~Oj@eXTqmzZZI?yO;8?&_16T@0G*=zpm!C$9rzYHq-!dD<
zDeR%fN;T8`)4YtJ6*`FV>Cj}Eg9c$SO36CvGF&p@k!MZXV>TcFaukp-OlHS;#26V2
zMVVIyXLQ64!YwRr(hv0&edf)?9n>6A<>(}lD}iJ@LO|XO1s$Gi-^IW~HKJ3Qh;T7T
zyoC&F6l{Y4ZphLp(m7?>|LOZb{@a~@+VA&~GhgZAGS#01N!Jx@iKlc`0d$6BAfAvc
zmD&!$2Vr#cY9Wi#BXb}0YM;kNv6qZ|nV~=OKoN7*Nb)4Vxxr8)4vk0)44uzv3s_Z%
z!Q_WCLTUKtC~m2!IU^j02Pot)WiU#$JMoD4iV%D%w{eDi}Un?@*bTpURe%gLlEs
zjBr95)}M(
z5PW42HUbK~rKMYx7`-xk{;%HncZ;0`>2Au?CH;W~2SC#=1=a4P5f|)q0~AtUMz0Gg
za}EZ6A%>${PJHf`s3Nmfz43`c8u?%lr-ko1PmKUXCVD&yV-iIno1~F7viU#TrLMc%|<9*>slzobj8aB
z8vJsP@wanq)LRtp3I1}EN1IVdHEjN3upp~N&J=e;bR3DY9Q*^ew#1d7j1*ZY1z*Bt
z2rO7!>2mnO2X7yLo$0H3lC5=)r=ptr%($|DpeiAK8UqkPl9QBtHVm))wB-rO+?`?u
zL}NCwgnTK)jgifrUp5Yk?%!ajI-&{dIvWD$Z!rcnqz`t^eHIC1e!F;a_Qu?%I)noVdJ?RH9Wy2a}S|8QnDK)c%g?sS48BZv{f=V|)|
zC9KdGQjt}4+vT~7^X*wEghsL=2tfQqVTkH~y+QApec$c%JBe37R(t@HQVax6^jlM8
zu_qLl(^xRar>@A*&<#xI0abn0If6f-Gg|Z}Q?K5O(M83hs9l>fcTFKA_=v+vDw5Li
z6GU%_8fIp94&C5KJ&qNo3nBR
z>}5P?jcRV!`k)4hC|YThyDO1Q?Lr3c{8s&mOz*
zVY}C``F
zs$GO%Oq-3MtZ&4iU7bjoJ0S9U@GzKg+q?15Y(KC_mf5AN&+U8a^~29yxPG<*)kdR8
z3|b7ZUzUTwCO6mFrYHJ-Lm#{Q&%Gmhi9#Bj=488!T}H7IxDJ4RW6fF?tkeqCvkB9Q
z?~6ugRR1^07EIJiJw{xa1+A&5gEeH|h>UUtNA(@^8ksXdGu_-&?T>001BWNklq5UA44N~J@sx$&WGCgBv;qtZlD{Q&~6yRoo&KAT&
zv>}}FzXmj;Y)EBHT;5&AW#ZU~R#h}zDlsUEX3>&SmLX)!k*QlHIbXm(>Y{r9Q{^HH
zATB)XDpnw99Hj7#!DOwvr`cXws?Gl}7SniL^b{&M@oZ<80Hmu1MOwwr?%QCg
zy#yM26hXE@)~F7OsMJrGoS1NquCRNe4Z*uInz1;tf^gFv&-OYUdTz6_^E@Pbl4o<`
z1SO531^#`J{)*t6bFqV3JA!YmR!cUz$Qe{yb*02NIo#L6mh7^tLm%VF?R}Nl$@6Dqx
z9l!M9QhPCO3es%K3*!Q?7u9}i&OAt{C4FxFa-|Dh+*UvH^V!&ZPE#PzmFg)H_b732aiE?n{u>&w0Lj)OQK2?3?i!s&?OC2A
z7&?|!<~ewSoP_)ukD`2?SH{6q8(7z@F~)kXQsovHSRm7GD
z{1|=zLumIGPh2_t#*r5eU)(pdbfr7!LU3>G7Plr}*i1tWG&!;D
z=5hqP$h6YEiaJf#n#L1@=OFEYpdrs57i(s!d+3qD&3OiXqLAu6tz)BMg8P!K%(U^M
zPH6zU#YrvaBNXdGkac8e%A5=zWr(Z~!PT5uKtVM%@+zGmjHe^b#DY1D0K2kM-Z=XF
zo5x{6-y;W=V~NLY&U1T{>UWgIr
zQd@(f)f&5Z<3pdlEvWnkqw6#AZ_^xVo~u0*;r
z;?G?^eRB5bis_Ye3)iD?pf3MNT?LE92K&cgT&5^|#33BZYh=^crXVcQvaVI-S;p`o
z=vJ_N-nJ>JfwJQfj3H|8Nbi!HDw4_2k6JXe#JAuTWN9S$oiU#gN1
zB*7Vu7@;L=Yq=yha??2$4As7fvT@+A#4s8tPS>8I1}Ufj36((gmV_6GZ*kD+EgiYI
z|EC}RaNp^7I=xOK?j73TorkDJB)T%0I1o@Kd6K@Oc7Pv6!4cI?rc6|ylZ?>h7HONC
zl3rR~=yU_|8%0mZQmZ6m+xqRl_Q1EcY`CSetlA4R%|>gyHPI+yW~TCXJN<=dRYlJy
z%4ix!QSrK}HWZVn+wDHJJFbDc{ib^!-1hOQ))ei*nv|C?C8acIKP+WICWKMzmX)U2qbdg5DMc(3@l`ka^fD~{7`D76w?A6{mB;;tsp*%uU-riJRxb4ZTOPmFFKGb1ky%E
z@xjyz6kAr``s4$@yJ79-POrW5__Obxdt>9ut-pNtuWwp?Yh}h%&%VAm6Ss6s>{T)W
zp+UBB$;7G}o?D#z{?2bd_152P+jQ4|{=|Q~W!=p>`vRkqPh)=}pEkH5Q`KP*v+Izj
zsu>LOTuqJ()DfsSNVi3h%nu&$h$8@VZgL&6c&S0{@L|S@hD4M5#NJMp+mUX1Zmx4+
z&g(;Ng7w6(#BLD-!m+!VMS`13pt|NM7d!LE&VTsMiPzpax%2Y;g+BH}+L3}pfnuH<
z>$I2T1`c9-5DA<>_PYU7R$l8Tz4=V7-2UBTT05g
z2T&;%$>jNE^i5`syjufGUsY14bLunCh1-oIJxv#T1ke}5rRX!HP$ZlCF;rd@J2pLZ
z+xqQAh})>2pFh(Z^r37F!r;u@iG|MG)Yx=&@v$ohF$~E2qK$ybR-&|Vr{CUp{N2Cb
z`PZi|9Dnql$G`E#f3|VWW?uQl?iyHrqXY@_=1~MT(Hz8mq%l*Q{B*t4IcnI7ekCkH
z1!9@hjD=-ZSyKk|y$d;w>r=6Ox7_Et6)qJxsB?@ph{lg1gYvkU8n)>M*zNVqW>#zA
z9$IJe*yB#WbN1Tt-N#;e@8nzOuAg1(E=F#U1zSLGF-YcE;$?kH5vr%j4XK=qyz%e@
zX0AZc;z+td2O`Fwmu5__Du7t#D0-GtNU6l8`rN2KSN`UjskNWD^|8s;WaT$klDm2O
zwu!N+rFLbV7puqCwi;tqTbE}poVa?V-ya0>D%q$i$=E-8`P9?9zqk9tot1I_^~b;U
z*nMAEIlUUiM$h0s1Oexj2nP(RQ)LCQbFvdff$Y!Vo4IQ-sVaUcny-qm*^55d0
zLT1LZy8E2BQfE(){;^AiY$TBW&MSX{V3hEhuEWfl%Y;w}7F4S9PT3Wi-6B*ODN2+d
zt^CeI=ih%}{|^qHdw;$?8<#DcrJQ_%5~M@XE>8A24Z{K|E{+pKbAddA;h#kgfm|%A
z&IR8c-UJDPGqC7Mguby%3sPN80`-_If@Z7HoN7(u0G6P8|CUeQvUXeLWhOn+*s|*8
zZ#?*)9K5t=tU2-UmPexWX;1j9`Qf3GKEeGk-H0GTtIXbF2maBcH0xV-29Gwelc%hAGHEo!id
z5g|efZa#+eh3c00cW&wWo)fPubnH($muI4R^PwrQ}=9qX!Dw_
z?RMw8`~KfYZhL%UY?7M_vHt1qo9@43!^f(-n~i9WpSg1Kt>Z5bk~|j;qe`VW{^FJY
ztKI9|x8>u%@!4Hm)eK=$p1igZ&@*t?@v3i-Qw9JBIu0+$O
zQ`U~5DQUr$7cVqa%|qAn9Dw>ohR=0A*J!@5QxG@I^*Ntl0c>t==u&T9_%ulfCUyDY
z#m;qC{T>8+E(W)C6;oyun#WMX<+*dOe)y9Y_x;)#6jfHhG220`bT1nuFjY6X=
zG$(%KaeXPs*3uk_Ot0tz$>~OW0o@BkM888Qoysza2GFjgE!5-fp;$G&_BS8?7x&-x
zNYSjIx7>B~ja$~``_9bLRqAdku41{U453fm
z^|>b>`6t_M+Fmq^a!|&X+9huw?OcOe&O?k()?5_4Y_3Acrrk5HQ`8_ptD}YNk3X6O
zfCat$L*LP&wk7M$LU*wYW;>|8B`a)2_Y%8s#DMXVA&@7!P(jUyA>&lWBArHKJwb^;`MZC!DcH6
zz$9)8X>~*Od7xWM@Nb;#NpfGL_mt`ki&~(FWRi^7W}%y5r16w4mX0M)4uW{xJcFvT
zP+k`)`(qRXEGuLB;jNF|we^AY65i15_V-`f^_i_-Y&DxDsf1ev0fAq$QCUO3^3bo}dGn6=F3*0vjo})QV@@*lvM?$TW5_#jkl!D~
zalw2tZCs9X3|xm8o!UvHZ3bs?Nc6%2NT{6W9|EE<1r6=z9D+d>=Ic{~3N@cb(I+`;
zdIWa5S2%!o#SiwY#wCWW6M2v@t{Imse~xbAfk-k($xZBpy|OpozJBQZ{ue&@{-LuU
zbb9R=l`hh|Ud2w()>A}L!by@OcEm!Eic7TdxcOiS)LlrtxB=C6N$aIS8wv%Tnxtk?
zw(KMMC@3&ghVwILpV|BOtEX45pSo#9bM-=de$%R(f!_;?NpD04wTzXL?UPrJJ@di$
zj$b-drqTtGG-6pCB%Gik9$Idl;5@y(&lBHBz_~Gy>0@Msd?JH9Ku{1}&uM4CI0H~UItUU}wZ;mK
zviQ4@19?MFx0^{vW7+O4T)1|2|C!ydA9?P~<&&{I3*?1~MH%@ax|ygRJ?TGS5md=x
zLp8an$?Hq}h72GyFWenu6&u)xAS;06S)*L>htlB-xG8r9PO3F!-D(_EOh!Ycp!S~L
zx&Qpz&1Q3AY-*}Cb`?fL5Ks;SlEtqH5Lkm@-KHHu9^gDrKNc#%-uK?UUBoLeyC
z8UAi(WF{fLqdoYxg)435CB6?bMJiCljG)bTW{+Juxck_vdr!W7b@o!fn%P2C7Ww9dyzUgpJ`lWiD61nk
zF(!)#(b54tITAW(fM*alE^#2JbjH)vgMu?-1P`dpJ&}*Men>`2tU4PYjB@1XvVM
zMX*XL7|ND!W6n83V*o%yZp%fv$r?J;=76E|Bd((vL><2(dkw~H(CGA&C<>2&H6);a
zXO^y2K>pUzmyVo2IJbDMKNzH%Yj&`>u9ma$1*V#vq5}Cehlmn!5Ht~ETB@5gd`b{U
z$$N@TCljDB5vLp~s-&i86-CKz2w^3U)K9s7_N1U)NEugC$D(smu9#f?8xQ`|*`=8u
z9{LZzcHcjH?2cd9b^6uW#kq~EHobpt*STvaFV3Io4!SAOiD>nMsZh~bN5r<3sow2%
z51l@+dgb~~zoS;KXyJ_W)p!xgXDQMQIP>Wm<_kp;&p!l9O$h_3l1DK-7zM4eo@dQR
zA4hO535oDgO&Brg{MNWwXK}bi{#iTjJW;Qcz)raPJoo#Xz{`bdE|hY^s|y!iIsWup
zhhM!ElR*ppv_wBGS4daN6G5YUiGZaL5K*%8==>V5TSffUU~s)l
zY3ukgF5RyU-T|IY6wvF9h%Nc%_{3GyD}UpG-@S9)$G)@o&yHO@`d$2!U%&sGjY0FL
zM}Bnk+HJS5x#y9aAK!K2)#s1=EiFS5no|x^_70|`Y-QM$&7B{-{?4Iy2PHHb%?5?G
zfuf29aMYqqA|{frZW)Bp_&sW5_1V|KdcGI(H5E`%!W!tfgZVOEP|#3-u|3otCoCk6
zrfF)sASkD>K)IKovw1r-AlHP$DfVZAxRu-i=6oMqmpE<>@?Eo(x=E?37z{ZxbA0E~
z=l7m^d#*iOv3QycjCI*%A&RczxVVs*UK}o!fzfg;QqGXMNSEIcfPq>jN^l;EzQ~sx
zQ4NTrCQ{^wbP;{wVkr~@uhnRI%Ax&139Ck$7nK2?s)ZA9QBEH#cKpS=zJA}$c-$XR(E4
zkD;Foj6s+#{cW-vX5i*IPSi|XMO$)xoEbxuw#i=N$r6LU{~7gDY*@zUQ%R;G^gfYF
z|3Izf0EvaW;jt18p4oW}w)#-)F0lyG2pUDV>>WP;{>z7deE9qa{eD*h3xPw~Y3m@8
zn}SP9fSoEahLFV|5EzK%#^nHk8J!?QC?ycji66lfRt#pf05fNi6fjbNuMjba{h1n@
zc5FiwRqKgcX(V2U_*T+>JYRA|yRyyRyZGkEwm$IrJO9z8wdXIl&wk?*zyIQ)r{)&t
zJLSUo_*fI-8vN5&kH(~K$yRwHMHo~gYmlQop!DfrQ2zA&XSQy-^MClA|82{`Jjr}qt@ziHjgW!VpnrX*UVn}T@C8OST8N^~!G9#;Ofv6~79LDdk_1`H%k
z#jqI!!W$aQi~lcpR}n-BPHSA0msO;*?9IJ%?2T6s{p9SmlhvJRrr--pZ>)vG}jH>ta
zUO15k5Mx^Pu%#o|R+P|MKn8G7sUzQ%wH)y6L_S&a9R&8RUD6(`wkiW=&Gfo5*y35?
z2A%}5psFilDHpg@eC$C9OWlQLqw$$-kH0Z^X~%8%URk*C-s!hGo!+&DYfGK>SZlIk
z)8jJ-OM26;?+GUcSYT5QwfLQ1{=MJ&+&8DER}A{m>#csN^kYTPRa5H$#wt_3`d{Ls
z2HG}D5M(dc82kzB=^(v2J08&;lKKh91ddrV86fi_E`zO5Dl&I-#flYr#}KbmCnQWJ
zRzO(}78e&wf;pv`a#Z$cwPp;51*Z6>qS-8lc2E@+#F|7hM)os`6!`HKMPqt;dc>gV
z4$WMq7-FZtcy;#j8%LgfWUp5uvSMPo7&I5=7i75R
zi(AGQAngr?py{Y)e1S&AJ}alEo_OGQ#>Xah9pCxV;isOw>vx|z_(!KM9j&M|vvhT#
zU5P>Kg#%B`b!G-AOh}8lqeCA585B{_U=RbK%~s>{_kMZxs@2sanq$ebim!NI+I#q&
zfBpCWYlYH}-u?Oc_Uz=;*cQO&{rsh#(tcr@5K^zMPz|4&i
zQ1zA*nEp>^`(=M_Y39V`Bd;HM?!BXL&n?Zy?I;=rQ8ulNNG2O)t{HGFYuZQ)8B!XC
zM-N1A-5oRB6qwPn>U<71PwON=O5
zQDCG)(_>PddC4pKQks+A39x0=&7JPt-@f}N@15R#_qvbmJn`Iz7Y|UXsDgv{Pwy(A
zsK_-adSbUSXOiL1zywM7%e0}4*0m({d42BsOM8Cu=gB5GfEQc6(+7;k{tAHB@F3M3uV90lyMOdMf5+
zjd9fq%0XA5Ye=D3pM1}ZpF?KzaKc5+Eiq#PdyWvT(%!|{bNkP{yZiX7M=u;)=qw~l
zo!kZ~xDHfM&cI5`bXXWM$iB5?y>XE)<34TnCWaTufw|BetdNsI0I5_Xt03^E6o$-u
zqNC*1BM2A#mJ8NG30|u|58v_`r3JEE9Mn(>l4ZlRhfA^pQpzTk#8ekuUO4x?cmMeM
z(tPDs9=&|1H|WHtB{R9(@BH}vZ}1vOeVDj;({{rd5`xD=483j{_le
zdhJs)M|U56b?@nSE?hs`=`KYhu#qy6(h-m)L1e2W{;yPDr30Ig@LswPV!D-sva&`?
zDnQ2|3>|dTYI~U)3;6`886%NOy%rrbu*iyKt7|RdpCS~kM(g9ZJ?hl48^3!d2Fmr6
zd^>S`60hq^*OI#(_s&@8&RfsZ|7RAi6lqIC+Uuy4HPg~@%+f5C>rkXk1|VEtn0@h`
zXa4Th?_8O^^yN?f(r;UNnp#R4IdtUbj
zOn%xp2YufNT)pw3se)Ql=$@-OCJ$UVBT>Ju1Xc4nY8qbT3CxWMvYeLP<_x@;3$)F-mq47uy9YPfQL@krW$O
zy;6y0>^LRV3UYH|kz*rmoU!lNore0axs_9^E#WoHX&Ilh
zq!T-(g-fOl(fvWeeqNf6WL~PFKvThfUo(3e4slS%fi9>)lOZa`hcgX%uztV%>@Ak;
zc^<)Kw!94IM3JGO_6I0263a+um#)2c`ps7kK70Dw$x0E&jRsTL4MhE?%A{1-gn<{I
zB>+h98Kq{d+5Frcztk*ROM^BsX?k=K=duXvR&3a^=C(@<=da+o>ieKyrb_Nqqm6^K
zrA3U)MN5E6w*#>bBb9hHjOO0-V*Nyv73GY`#tW59Y6(wu{o~tzsc1A~xPz(VVtA@A
z(5MyposylUz%mI*3M+GM3coe7;26B55@Iuh1Q9`B>`OKbn@X{0VbJ?G-}|3VTsYHc
zPW<{8zVWrs{pQBCH^rR=Y+K9n5<
zl97{myj0I5#cx$KYBb&jw(excmfXV=%_+CMrwV`}sNGvJT-|0_bZP*@%5kk
z*7`LYTFtTGi$wh4$lw$@c|4x;9BT-wA`4rf`XdXAdqaWpTN1%&j<7fCMO7&DGTqA2
ziH0bS^my9iA>&79q-07;+{pZL@iCm48-mPDp(y41Mk9*s)#)sqxbopMd%yS2@txgH
zCsv_Gja$H=azI01{Dy>&MI+F<%D^jo(hp=;&{l+HN&$6xok~Tln_U0cwqKr}SlNi1
z{4^$D{KS>z@yZA1!~4Tn}BdlWa7p|xgW43lb(sRE+5)a!TWmagwT_2vs7eE;y7gO%eSIlAD;
zIE6wI8ezfVI^DTQK2YFIET>q*myGuT_D^3uURfqFKLu609g5p64tfiN*|^#U`<+3%
zH|TAiSQm>s%5d&`SQs5ysgt
zim}7YE+IbdmWZ1~^ubkZgRZL{p|l|Ti_2&>kWqs}eD-T@XJJy;WYqa)V
zdb2y|&9o$Hp)W=I3XpCe|dYx2*isRpV>ov-;R};if8yicm>ORZf(VUIa2TGp@I&MH#0lH
zC!*;`jXC;fC|u;6Mf}^$u0p&)*Ss$B$P4wWw5vtl=lTJ-{BQCohxB&&LVNb`#Sh*%
z^uqgR-o7?}jW&Vcd=NW)V2uP(JQ8yU;U$2^hUqQSV=HNanOqs)idfC&*B<(2tC;AO
zor>2dCsr&hE&S-npa0xVUmb6apSg1K%`4AQo0X_^dh@9V{ku0j7>ilUP7#`Cubpf)
zn-6b%{HHVDpIw+cfBiJuNFj(F?5Ln!qnYwns#zn9`Bhgdjq!^+p4`512dM;`?;P}U
zic-K`qWv~wY!^$szED$@ZB3wcF_}9X$8`Pe1t4{p!*T^W)7)?1lHvy-_q_cJ^8$y#%rP-&k{etT8!=@yP02uRZ8g&S)h7
zgL1GiKllFNt)*Uv_NAcU23x$mnNg7NO5jkB?TZuy%7IHz>7No?#n@-={Nm&H{A#N)
z7Cf+NoJ~F6{5$9lTe6}#s4P)c16h1Q7DE+U_+YF-r4B$)M!yN{rdUN~uqS)&22s7*
z#D?GyQ+eK5biO43f7R#)69YKa!nA4D@ZaHs{~$n^DMuYVkxvBNZZoL4;X(3Hx>6@O
z&6ZdER`JsLnKMuC`Sz~kug@*bBwC7WX~I+=Nib!ds3jvoYp>R=xapk>&wuXrCst3b
zCv{$#`n{$82Qw=xFZ1?Q_uw>6PE0i#%}%#Fx3F+w>0Cv#Zl}9uJ}rnYWg
zamyg8hPdI;VrSvt;+~tQx4~5L;rzZ6i-%&&C!o>Md7GxOC3>p`@*vd-LDPp3>MMC_
zeCm$Rf9(^$Q<+$dSE>-e<|{WkgM|4xW2V&)=-hn}16LzV`bOQ^7u5uuou5H#Y36e3x+Ic@Q+Ja^@5d7GM8e%zl
zruQnrI~qBo2bunq1F6j4_fPKr^H=`x;@r7GjOYoLv1N$7KU>Vx7a)OSNi7;gMDVY0
zs6i81`J4Sqb7$^Z`|0*lyWKe#kUjRYSGGHyig&NKuP!bvO!THECnqYLZjHB|y#1fv
zv~t7QYv*3S^epW`KGVK}GZl*WQt)oDxYVBO%pU3-m~CIH1R$;9N$xsr7{GxI!ID%4
zrraFZ`?1l*GqiU=igH)p(3kFe^2v|?_T*TMz3|I3Opgs2g%~o&)l@(6VxfGV%no`7
zj9FJ~73-#Oz$Oki!K<4n^2cR5yv-dBv)i(VqCgrp1}AF@nNoA3CvPA_P|M)ZEdaJp
zZ*V3g-y%d(4XOb#zC~i1QpQc}uI+%Bf{wkdc2B7R=9<5^i~Hhf+~3PW%2#WB3&EHp`!(~@51hd-a>kbTg-M8@l`@m
zI=Tbej}vE>E>90u!up~&=*%q4J$2;I#*2wgw=*#{74!4OSaoNwT&%FH(SWN9S1v7_
zzkU5Z)ic+wTvst+vpO5MfQFTmt1IZQRMWAGhtigJ4DsY7)8LE1MevN){3aJJ4j5}r
z{Nu-d@5}c+(e3ouc_QQ|o7D3H7@LaQO=e2~u||@$R0e+6mjrv&?n#scgFFpzh;bU|
zp%jP&TUMSf((2-67~MEm=N*g*jh6{1LDLe-GQq^S)~J7~oZ)da^Q&r_L9Rsi1i@*0
zB==l4$Cn=|2ZV;)Y)W&((k6gDBJX;#p4**;zkcJ7ez5y*l06QTtA=EBOJ_L3$uZUj
zNZ6AQ62$gHjWq^}qeYJEf9BRNu3x#i6~o_SShDZZ?+%_l^1bT!dpAF{W8;HyfkUG)
z*PiS5dspYrr@#%|Jh`oErqyU|oWA*{m0PPRulW8%>*#Fn^7eHPjE}XFWXCjW<=xJA
zuHUrs=IV(v3s)m$N)6Sz*-knNW4Ul4T%3+-ywJLJ{q}D?{s;GMeXzQ<*B#J^xuV{X
zLwFkniO{qkuOA5^$f7B>Vk9{wL2I4~{hL0Pq;5beqd~lVq#6f~z0iyxrYvp_t%}bX
zlkq5(NnB_{5R&M^cMCSwxh3aZ@Qq7QPHmXXzEDWk#~M@z9%CrASAs5@%tN&oWehwa
zB&OhEwJOkAN6ATy8^`^{EC1%X_kR%LuCZ)urXXTzTd`9iE2TCHO*QZygK1F(fbKSt
z$`M)fRzlOjE_U8J`D}If7q|Z!rah{tD5_s}c<-MiHMoSQ&*3jy>hzQYQ{hv1$<~Ps8m#2YUni)q##%f
zv~_M}B(>H|Z}{?qPk!m%uT(yCAOw;6z(Q1Okc}p&&fa-2>`DesGtl{hHxUTQ)zyGv
zVsw2eHLzhrGEta7G3yfprMU>STAO4qUN@lE#An<-#9={13)O5E23KTv*NS211#
J;#^MwP*kOjeq~*{-msKDPGa|Y^%;%J^6bosO)GA%E<1GLy)s3cD>J>a!snJ|
z%eW_2BWaApU}ahjTtcd=NEfF6Dx<&K?U$8wBYO{f)*u;e?nP?@m+X+)ly=duP^g&VI@Qvu$cwbERvGbtJYG%r8efh$
z^l6x#qoZl^a|1bnp-)DR+AmB8dvfYFn(h$*5v!7||Ga}s-G!(3eEa1Oo=&AH4V1tM
z2=vkGzyrsBx!exSfd~>)i|=N`f^kkv9=4>4qR}h6XXcJKAifGZUd!c-<@LquX#*76
zoQJnWt)P0WIlgVf_S4sn^`m`KR{h+0`FSL~jd6aenMIC6h}MpG7i4j8Ag`c{iZl?p
zzdD+Y=DL;Z?%I6+qj!Jl-kTp@HMypd*3?j|z(W&yQE(-wuVXG7n40DI%u;*t)cKQF
z=dM7(i3ZskI|%0~{PS{5Q5u02g0BG~$OqjtOO(IbsKy?kEMwpd&UnlE&Pa$hxQq=o
zo<$B@owMt>N$0qgrUV8?Ugnx`UXBwqshwevMvDZ~ABV3x@j;Q7Oh0!O0Zg~wef8k8
zKiT`e?x4e4b+7`ZG6Z=%zxL3SxW08rX+{$US`wiv{DEpN8u#7w$ZY@WUF#l*?}?9Q
zX556Z(^))v`B1vNR4%r7l`aOC|L
z-*|S{-ksyOcgLgnVBG44w=q)4Lb=oCm#3D8r5}Q<29enfa)CNYd1HEjH0cK7J`Pt%
z1=9nbu~q-5Ycw@
z=*}g8Vcdw%l>9zzlSzeBX;&a|^dw|Ph61N=9|MP6ilI
zRBkSke(pv6L&k#q42c=b!)peJ+E!txLE}hwG0=XF*}d5{cBmx;@`h{oRLM||3h-)-
z(TSdT)z(veT*XX(_x7J%nY+NdpU{tm!Z-ODmf_px;OT1d~EXJJ3sx!d%kkphC5eGu4u+p
zZiRGT6oa;oHjL9xSgpyK3DYT!+
zRG>bET?V3WP&-H@GpSBtO=Nb2AYoZzINc*
z184WdWx~uFAc=`=>ph(uJxR-Uh?HoFQlT4g-J_O#M7yCVuFhSYUAP>|V#VaDTkg62
z_~irdpW9U__|;RJt7}?gW9u3l(^{Kmb*x{r{(+l6)oeEU$wL?var1{DFA1Vvr21|!
zQ;xTJiQm)9&eO;Tp?cioJAUyO@Bi9{)tlqnK!pv^8?H7&o)(HvNqaIWOr}`&HYme~
zC-yz{()V85^~%+2GclFRC`|@G{~OANF_zdTw98%!?qCSusYlTrGN3{4(uJ=q0)?)v
zYC?lbqtp0}8(E%mB-PYe2+B=-hSv)c2T{bzN|DiVd)}topOqup>9^+M;zG{n!^Vs|
zA;LL6K2a3j`%p8?7N0N)B@LmDh%hf7o$6?}iLRID&ON>NyS>VOKweQ+hPaUky>B)x
zFD@+Op~*s3gHjo2rVFc^7;`LBE2-X^Ru)$vI;h&~m0|7V+O^Ybr>9q}U$Lbqnw@^X
zh%1AuiEoTGS}Fe$MWs5qW79)ZlPmgzUc0w=;QXG&&I0j_M*0GG)On`-PlVhCG&io?
z@`ZbU`LXT4uzJPX>inR3Sm*~{7-w?KB;uGy(4a=um5GT7ZZHXKRBg>hx6^%d-z(pJ
z;Xmx&`*!s?cB&DBf10f)I7sWJAnpa9^a98;fi^(}DPI@IqXf}by4b7~r;+!_;aH{0
zBn4vHOKqzQ4gzNWaKrUyW8|vQn4X%hIlE5ejW35C0>i^}MWxM_7MAFHvr@#W5^iL(
zqasTzdYWjAa}>-RCU9Lx6;TwugQm#5@I-pV7i3oRQudzP_qSK(E(Y0^RN_`aiV+wRTnKKt6riPepw
zm2^vaVeZVOxeI@}>;J^aLUE&&elHpZ+)WJ&IJ`gx#p-LL)ttC}!}c%T`;`Z7d89H|
zDl2FZO&~K;#SS6lR^!wWO!E`8DMj4J3oD1=%Jr+SzyIR*fBHAaP9KT+fhIOX5%-@g
zLurdkdB`bps!?dNpmk0H+ZykZE1g;5>=NTey56Omvwo$R
zOnUbMo}WGY`k|Mkq9UPh0k%a%0a8*Yc#_vpN`i&VSqjTkI;fJI
zRgMpqXD^?AarX~j
zegCC%7tY1%%mb6l*|-J_%!I6x4?^O
zX)h!ydglu&u`Zh9%_+6Y)ItHvQL$VZn+VrQx?At|oNQJ^U08Rn}89UB?w!y4NSpBK4pgF6v#E>NszVrYwu8Y5vi_{{aTqP29APuxw&@kgA@B+-t*l1N8X*8y_)vTa2wvze+^m$
z9Y?@B#8SmV`mX?aNiGH-093r9xB!og(cNhuwpdeTXK?RkN_;%l9IqVr(HsKVM`~WJ
zG|xaD(n-;|mD${>!d{7ldE+@JbQeaD6N{H|lKC4@}2
zIz>-}#2__6fnbK-lc@DVN*Xd>v^L2KQbFwkHlsOn4!rs^XcR}R5z-)K+VQB=^Z~yK
z1%X^)_Qis1f0gQN8mp(*-hI=(AK&)byEfmydU8#QbH=UtY2;i|Wg!)c8IY=^{ZMOR
z0763O^*g679)IWXo4XJ0Ja+cTQnwvrHVxjSfcL^kZ)c*nuct-gWlZ@OX_q39*^90z
zDWed8U$aD{)_SEB@#G$qIq0)B1)6D16%FyBwBtZn(OMbbqTxAFgU&f`5mRx9zs6b_
zr~|m2Egk&ckk<@PX$sw*)We+#zD>w1t&ik)-+5CfUZ~uM%Je^Y_PuL!m*oedtST;j
zZaS}S3JCvZPenDyv>7BLL9~D*2>I8vQw%wVNetx8iY|0b5~)cokb(u-{r0SW}cxip4-j{6Oo7xetgV|fH90=WR=kS>iUfciTu6=J-
z{!Cmp1zft$3#x+bjH6}=S#AZ(v8qH)T(18?CE@|*f2jEUaM8Jy!v3KWE-&7OZQ3e
z7%74I){&o9_(Yreb11hEoHhhc_c6kAu2SbHT`5IMQeh?#Ds+&rE8!>y>nc7;ujf=m
z*IX3ECP?#ed6V#yuG6fTZLB$Q$Hu#V{+?g`*w*`}$5%9@4g%w&$5Q|Nh{qeG9#XUcZ;Zn)2vUyjkf^D$^o#j};FbB`gw0>D!h#Kc)#I
z>1OFBjT#PYw$}Vf%>pwd7a|g=P;}e+?V!~=Y=NOtahP@Zf+0p?M$pL><#&T)NVo(d
z6PZ&T69l2af|#;Ut5FCc8-V-lIwrPx&glBnVt3*2h5hteV=B5(XGkn4Gzs8Y
zb$?`jC?Eq$UQ)=MUt(_xG%%^a&gn<-!3ZWH+Pi_5=1_}L0f5M1#4=2ct+@Z@Pki~l
zC%0|fUioB!O>H#iA@D6~-3JYI4D5U0HO`4QV+nC{ZsGdt`(OIW+uuKW_HcjD;jB*)
zN)8PM;YY$+s&Ca{baz-u=N(cKzVe)$_DBg=A5{6c#Z7J%f`w{4YtOD0v7R
zzo8*i`=#b>RYTD^6{ZOrX
zEHy3Auht06ndOOB5_EG@6)RRw1FhutW46a-#{g
zxgMQL07^DkgsIbYNH3%YWjFC<34(Bd8&<8q_tu9iiW#2;9Ac_EGl)Rw%L7cG2s8L_
zn}#WtV|jmG`5`_;-mBpoPKYXz8AvoT>KfFv4r}sa6gV}kris9Q%SF}=kPYe
zqF}S&Z#-25O)~{s6HGkB>RTd}VnzvPl8#{IO4)Y0OKiiS)>w3~9=h$5pSbmNw{O_K
zVth4O^@yc9xHNpJi%Nk`P#H|&F=hj@S1?c%FodgfmvP4f6IqSO9=yEk2y)Oy
z8YWF52?ZKk$zry0YSm}&{rQQ?x*DrMXT@tMH&MJn50Kz))Go>_v*^|dpf|jrn4dSg-
z{wx*=2A1@oP5=NP07*naR9W&$F~?Fg1W!hiJA-SE+LV+WE7c;3<)tX)7buz~RXg%p
zrZhDI#jW(6a>?i^+zej{StE)jeHK35b=(I2YFm
z(<}#`a|+?B73vN&2xNY7y%jN&gd}D*x*=9j(?dU`!c-mr23yozd700mXcO0oBS*?b#YjYKqY}
zg;P-Coz#gGR;pOJ-|rnb@%~TV`u@8|-<)qR#LWey-@rBr2tv^LBJEux639NXY&sY8
z{p!kxqB^M7g$7-cwv2BdjYAlui>d0XVA8i&0C7acokJjq*oT}@a;>u%>ittom_k1{>H`%ie4qgrT3XwodjD!C2T
z*oisQ8ilxmsk5~E$m>6N<2xUoI?xaOl)NlyOL!{*q5NVY>WH-raQ>E?Zlnc7QdCe_
zAXPLYa3(aqS~u|MP$sT){{~*;j^x)Shz2QHqkAQoL!6qHUsGemilv}1iAf1%Kh~ao
zYR6+AzvokfJ{H20qDmzbq};AZT{CdVqE&+wWd1VDtp)8pALUm$0F<~6HWiYC2JUGF
z)dUfp;k8UcEwk-@?dm^J911BP&5qz
ztzrhf(`V)Mnor;P`7hu5)omN^YQ#M)*iYm6;Ev0XQN~)>6tRzxM3F8@Z>1?`7O(Hz
z|I%~2e{}lFiMT*yEHui3HsR;ZBud)EKQdrJYA2g3wniNM6{e7xwMEFqQVOLMK%}_@
z<@E^HDTb0T1PU>@OXgsT+7Q|kuoIK>ex%5#2$IDnGM0oNNe0)fTK~;o`WKb&UiP~-
z0uV-1j^uh7j@5zET75p5vmhwwDPrGH7)lu_BVUfw5VSy&UI?$ATu^kkCRh@TV^vVp
zCmK3TI?%I>E)I2rA>ksg9;QM5S$0Giy<%6sNYmJRWLsg+`~HML>&
zO`p5_OONmP5e*fmpw+?!Pj2n%j%87`^
z!pLnfH<>XZcAFt<#=~e=34gK@sqw4wsK%9=V$pgmkw>9>M#cu-9q?+#jVg#$RJVn!
z|EP~v^i)KZT3#<;1PAt%JQFHC@k;|iSf#Sniq$LD-*MADk8c0sL)$*JdTMRlxKUBi
z4G6*BXp)UG2-g!Fm23|6%l_>AwZmsVeD(e3_Z)tEvA5W0H5$z#?F~u7DKD?#7q3*$
zXrRmoAy44t5foWTg@agT@pE1&&p1ByWy=qxWAGZgIN5oM-;vX0EWyUT0=
z(-_JddMy~pXZJH3G+DMlFhTLfxqi%!nX<@iD=B^uaaMc8n=jrHLNTAYP4mMwY$EBr
z!tt#L273%daus%<*A>zrkc|Tv8=Ks;a`QvCed>|B9^1Cz?y0dU5FwH7$g*Li(iJg?
zbb7QXL;Nv%Mz7yFcje5ULvO$J!7E44A8B`&B9J#z6D6isl5uZ1trRzCCyi9lQY=~G
zlg85Eg8L#+))Un!E6YOTQ^J+Nuf{6bK_tRwLQn!1wI>6n;`>%By`
z2X+_-OP-XV@yZ}PFZsesM?G@y&;83M|FiM5*h*>T5w>=K>e_ncq_UXl0tor<%u7&f
z(c!&2sRCiHQL4_D0ZQk*jJHNPN>w_CtZAvd>(4J3pyQyDp*D`QeS1@8bx`|>BDEyOB>Lefq}
zfl{?dQC6#3K`lQ3-Z7MlVNmFh5K}f;Qv8npwWia~t^+dAOS)H0_CV<;*&_SiFHk9WN5&okrQ`Mm4d&z9wpHTF14q9{_7nMp7cAV`1!k#j~j8mSxI
zuV1>i_SQ*N_jQBPK8cMNZm3)J*E#58x&u{j(RbqG=&TNF?Hu<=YTh=-UrqE
zVT?2Q9m-;Oo``WT5Mrh2i(YTSF`@H5jqz;8X&8P`?aO#i6={t-?6BgXsEqTou<%wK
zB%-l!Nx6s|D9(nF`S#NI+vacHyzs%PUDNIUbz$THtH?XAlv3+U|xeWZq%rWiAOqn?S?j;XzT5x|yYiAVX5&DgKEps)0t`bk6
zgc?P*h?Zy!AP!5a(rsO!&8a*cvErN#(
z__9{S1h7LHaB`JMnI|>`)85db1yEv_eFLenP)(4-V}hf`8NkxrFggiYDDokp0l1l!
z%jtZN3W43Yo4X9R=f*R@jMWJ{Wfa+rbT8Xh_!^S)gXQy9{`N2Y{`8)iwt%HA_<_>G
z?)gU$7s}ziMtz}-%9=)uwDe+j^GxM?>1iz3WHH%uoaiKnC7XLdCTZWtsHL^Fxkbur
zsYjGN(Qk%^hjHsb0w54%zIRryc&ZEEB+kua-_+}N%V#WmuMESQz2QoU;H76Ut`*2b
zK_!NIR?otRSAS;B%)1J?mh_iK%`{X+6uWd5QxY=YSTAXZR``_OxKt{p{JL7N9yxRH
zwGUo?^ZnPZ-0anPyTsF?H4LE>F*Kkt07?^-4eS8d;cI$l>5tt5M)Obvw3L-el)|uD
z0Q4#C6R;#Pf{B8IU4QJk!odaP6NMMjV%T?sGCMK(j(k)AvEm|k4GE4W7;-{y3rCJ1
zyaYaW45ZrA!WDDZeB;aiZgSVO%1DKP0gs!{<%)zQ28;`3c(@X=C1#PM(HfsYnqNLrjX%A#WbE@@GIK-DVj{%S
z(TT~xxdI7iwll%sg*!_ihe3J|OBrnaT*x^gw=t?qZKXn(&li@=T=l@JPcNOiIv*Cx
z!)2I+RI5dBM?8_lh9dqV@jY3=CTa9ZeEDkM%kMt_&)c6qeetx)#kpb_U`c1(uZEr*
zZ-G1nnn@
z0|ql>fY;d4@UZqYL2iRWIe_GPpz~T6IwHHM%T{M4^(oZBAi^o`3OkWwl4DGfQhVjt
zgeF?Id1QH;^G~pyH=yX92xvUUC%QH%jo@
ziNW#`CK;(z&RjhC$_LNB^5!d7uU*aM!;}h9K_r|ARs|&i1W0pHA&(|65YbAl93ZK|
zjqg}XXxbh)SUz*rw$+bCDRT^SxhQAQEQbXjiHS!>MxOoPsr_d^v|f`2E+FCZ79>B|
z6_Q}^$Z(wlo%PjeS@exv9p!YsJ+O{;tdV5@36*q#Vc)u8gA|erpmGS7+Ey+3_J{BM
z)K@wc#yWxKa44XfgpCl5D0CET=J;hMK}SV?|-IHLm7|nhfaIDCSzH
zji0%3(S5fq*gU?qTX8^<7!r;Y`9Ao2Pr|SbOoSBAN}-r4_p1Zf4xK#k{M$eN@W7s%
z!#8c#Rz9#Rw*npvGzYD7Jg@=(D4aia-aSjVg6UvJ%C*1W@f{4>CQwC>_m|Wp?N!iP
z8kaWU{nPJE@1DJU#@dtzSx>3m&chZz8`qZ1owDGgGkcY_Yl9?=RYN8xVp4J7(NQ@S
zYs&D7`2e&8AXiL-x+#p$=`ctd#Ku)jF(C>T<2@SQe8Ji;=?rX`LYSX9b>8P6`4@L@
zxEI&d(gWdv_5umvlW}otBsKAD56enrT)l!J;n6gBf;#dmH~^2nYQ_`Uyl?eS0{iIS
z9mE*ZOnb&)MtmDM&?xyIun1gsX9p+{qeP~Ug-WT=vS8}6O$#4fF=K5<>-a!Z!G4}+
znr6I+ZpBY4&1SA5qpD#e(%$|HAMD@p^1Ck{Id!ybO%Vur!cu9b+QK~H`~Vy)f$D7U
zsKk~17xv|Y{IZE_^Tm`H78AQupH(k5W!L)W?44n=r&RD)LLDxix}v?*QH!f#5<+%L
zs*sX;qh_JisH02AP8Pcr5wAxz-Xq{cCzMN0Ln|FA5*inUr;{(zrLKtbrn!14Io=IP
zLSj)=7=vQQsdX{6d)htg@BhSopPk%2nGH1QWzGlTCS*lsljLp!jS+fFCu>0vj~gp<
zIg8oLs4Ek!dCznfuuYRLYC2==m&rbb+zCxbr((!)_wiFkQ-t+p|
zOJ^(9iiJW0YVFeYyNbyJTqOuF(UG27>#OCfJ5RiQrte%zO2RPu?3ynY^QCHiB$d>?
zgT1>?@2WNGsm#vj^wP;|4`0}S;{356$3F~on6iUhm`kn2T$s0|3yoc{5=OzrzFx>R
z322LJCi8Y*BE{ur4Z8vjLqDN!EYM>h*cAD=~lvp+Pz>k>l_a|w?ema@G%SnGfSQ_@_!Ppv`?wl+u9eKnnsKaIj#EHeabf_x52OXgo#3ee#XQSJfN>oi
zp^^?RO~AuhrI@*R*D66#*lX7K5CI|?0BI%f3VxY%gKhkHLtC3<_Y
zqgtz8zIkb0_ma7j<{j%jnxdyQ-@a_pnqwD_c8%-VxZu8&a-?j%R4PV61e-!y3RG*<
zQrmQIxaUm&>3VFd3Bz8k3eyHCyB5nVf-WG?6CDFh1rBw?dJUa5Q7&kikh2dGv+-)k
zKmv1CkxfdhF{NGMq|T`iZQOS6Z4XZAnV!$(ffP|N(J-B$TqUnuYZGB;g1sljM~h^6
zlTl!Z2L}!9NRAdjix|%MCvgdj7h{DtKNZ&XsCSxEmdL{$7{(@119lD?hgn6QNyAD0k(0|I0g{fAWPV
z&R;xd>tWz50H%_p_5km`fOOXQ5?AoTp+p_5zjgi%f*6NIsz)j7Yjb^OlZ
zx7thXbGsMp@7rsml6F?9q1xcS-d#&3Egvcm50nQl4V-J#>#5`(-_rRn@BY`VrPeUS
zw8IF)t5^a_gR36yYx#t3XrU{V2b1tlxk$Vz=_N6;^ukUF+@wrJg&-^iUdpaUsJ(M0E%=R3{=w9Vvt2ODbJ@y_CMjVgx^LuXv>?(kJ9_H)
zb8kHT{PyPtZVrTnkgo$S9&16GWW>hg(LFBek)ojhJ!D5D^#hCz*{7=1%PEmjvA$Uz
z-hXi~ZT6|KR5cK%}jg?cp(Qb2?HI@fpRhdckNt)&B2Q0siIkPGsW&5G2Gq){rC
zPF*~fO8Rsb#IQvk=>6#A#MYA
zjr6}DwTyelPk#9BZ4YjKWcrjDfi=ceO2$|^aS{}E2#=5vFp$WjdTI_Ip7<3NE6mkL
zdInnVBkFmr-Jr{!#dI|xz23TdCO3&MYW-W7pUyTFlq*LPxW(`!frxtcvLVE^WVAWW
zBGXmDihGNLRF+1xFS&w^5NA)C|7)N4{b>_tf$4-XRl2(nN1y8%o>n3+QWOjf4emYs
z{`KvoSy3o^PC>jHsBO5Y!B-T!9oWZM{$JyU0-DHQs$Ffga
zRK~feg~Mn!m=0z%?J`&LVwd=|B3a#z4;+|LEcbsZzMg3_o(?9DpZe8%e{EX#Y$&d5kTA=Hd34kV{6?WV!qBH(Y}eC1
zHJ^{x&saaLbLP{B{wWox>6}W1bUGu}&bobS*Njl-QfaD9^g`uF6T2p?nRDBV`=6fN
zHTCW#59IR&${NFz4G?KZFCC`%4aPM!28;mViNdr9ldu;Bv(;l`C<=-|)A?5GtV-&{
zejt%u<-=lk*QB+}Hf+25Q%mQsC>C4F!$XNDzgeXTGBr&pAGc0S6F(50ot20lRkroGtlxjTPh;q+yJ*r&|qlq2ohYYV;NxN+^q)ejHu-m&MccXq#Z
zsrOQ?QMXr(U_p@5$}!CZ9OM=XNga?4Q_jA@0-qs771^_nn|f)DM}jeFjn^=WQej-(
zbN;=XL&L8geyL+zXJ=d2f=P=ZwOe1jcJ}Jvwd>`Fe53X8V=aUGXe+dgZ_
zwa%F__x4pA@89^)+!^!pxqJ-qC!2+q#9F&lAQ~=`*|z^Z2QiPeUyeTm%O*M^$ktpB0RC-H->J&Mjarn
zIiEXSsbKu3JzZr4QO+0__uN|%MZn%Lewp>@*v{_zxi^8hz5M=<3SMX0kcW2H&bOkUAx2a
z79vf3f~r_@`ZTslPl&Hwdq07Hee~g@UQJU`Yv*WEO8hbY30@4qfmZWdC6A+k8V6{A
zSbOx*4L{pbXr~(n)Taq;3*$*0IH2CBpSp1T2QPf@-Cb{8zSdW5R3Y4#1ZW_0Y6L4b
zSoIZ+oxhlyfKb
z6MaY5%(`vsvQLCTJ{9uCd_ETyPhLK8tpCu}!Tym-IfgWVl&FX4se#=~*yiG;Mq?F(
zI=*m)vmH9v)VBd{b?sa(Kx3>jq?rLdX3weE9QmH^$q#LL=s!o53i2o4-E3y_=;s+p@-b
z2o?LH3B42vZdS
zz6ST@3|OVJO3CyF0Pn#4?;eYyM*oKYs5W_jiw=BQ$UrBZQbHwNXwe
zXPZjz1+s9YQ(KzSH<+kr<}p8)VFd_Z1%^maqBbpgaMAQ-ngavUV`OS*UW}tmyh(sfVw(^qtQ=op)+A6;4=M=&CQ{1Zu>0zz
zqCJ<(ty{7F^N)P#wv~5`8`qg~CiLslu3;HO1072g#Sq-^2ty$!E{~MQC_SX|0Zq|P
zJV7@Br)j!5j~okg??^TcjPRsvV*)xK?Pdb6Vu4CIy&3UsU~e$8dt_2I-`EJO{bqyC
z3aFV{=0Ds<+|!3`j?ed<{x9G9
zqa7c-6GRx)!Fq@qZ5iXr2qZ4t5ul?`W3eh5Mu{P*i^4`wZYaP#yey9iLfAIZF313d
zU^$GTl^HOdtgV};YLj2XBdXga)%_&U8jhbU9Bv%7ZvdCN_f)F%w4f1DcunUZ26AlM*$R5z@RnWH0@hajr+EoPbyOGPM{O8IFvGGq7iwZWGfc$!VV)aA^-p&
z07*naREp!FyaI!YtDq#d6gsq?`EecX58bovQ(HebYwGM&eSq1)`V^&C0;Q;#DtH_O
zI)qlkt{D2gZPZh16IPuAp(uZtQY`+Kz_gXVXghi;TqEfPm-oQNepMU
zCxk2GL5lEX6jKxevqYV210uSs09$82XIKr1evVpTBND+i&luKU6!KF%?-X_$Fk>Sg
z$#gUeh0^^iKgq6h1{rB6Qsd>3!I$2C?$7@EPp=GI4kB_zV?{*dceIVR0F7xCZW1Ju
z)h?86Bq+`S=;$t2bhzd?iiRW^@-@=)AdgXswtmJ1(@@WaGx#x0ma3y;Kc}-auxaR_
zmH9*Ep+h74nUkh!AXN$0m`$66IqbaCG^LMwwozb{Y>d5KYRGo9kDt*q``+6g*tl-<
zr0ywp#S}?gX|6CVK**U(s+9lL%Of5gFkrGHMK)fU*nucnsf2Hi|GAPi7Oos8^jc
z!4q;a(lQkc5513fntw)UImfP8y?9;`$(`Y2p)-Umjo#n1snx=2xViqzbHDHjT0(mw
z7o_Rn?
zvtXLe%&;hLs)^X;?;?j!zNGq?SJRI)cj!h=dl>mc%_Zm?o@X$8oQ|zFEZiv7nf-o1
zZCGtopM3GV-}(Mu3|4N~%n^kthse_5c*^uKmt7MvQa5{gnCNsGbkE!?z4
zTPM|=>GL9qWW`$2ui+kE>Ol9kS#n*=Vk6k=Cp|xlBqy?lu
z{gq{IR|DOJm6viSET#`#Ow*bk4F+ma7bU%R~
z!wROl2sw*&KN95n3O}J8tlboGt#;GTVVO>HliLR_eb4%cg`3Jn`Nh+g!59`&ybHUTTx5K#?D
zeS~@{_a7ix2{b*0t@2{sD+V`aw--v-;DgMV)QB|5YOq$efvhfYf^s2r6!5?XaT|45
z?2ilnjcO^jty-}9{`HS6p0%`V{DeS-rD6+pr6_E#N0o6Km7+ldi%$ca;~3Zb1}^M6
z@y7o1y9b5_KDp`(b0;qpKTIa)M7j4OZxe4C*nZ)?-v#6j0X#r#J^IXn^dbq44BQFN
zM!A9XUjkyjG5dxLcYCJsq@?&hIvN@-vy_tVW1&D;=dbt<>4##W$i;oMQc`kN8Y~Us
zU^0ssRI7}5`(M3Y8&?`PJUm2cgvgN5zr!fBXNG8#gsCKSdW~pqZ6wa`7-c
zL4sP*%}v6!{pezbfVq7iqSr+ToxzX_As=m5`YTdWkp_`8DMQjG!4mOMjD$^hl57do
z`%GvTF$GKOpucd1i6ICX8OFrAATgfQ)i&X-<(uzY|Io}Sv)fwQ1G{*{9yv5TO!qL7
z6vEe_!s$4N*hoz6g}8p<#_9J?Y(LujQMp!bm^jjQOB}n(JBkdiJ56|;9DR0%y_4oj
ziHvoqs5k2AAUaes^heL2F@Dhg4<VsF5$Ss!?RRebpMZRD@}!IJnK1P4o+b
zL&x|3*Khxqay-OZ!MXxdxQDD<$d|&_B*|)&p*ldROt8>4yD_O5Laa7ewZcYBEm5`2
z(J`)@wjE0OGYXGF$2*f^;!v_GhbKDjlO6~_*pij92?q15>|a<=sub%27R?6N?oaQY
z`QW-oHm$xl7364l0;z`J1uO$s+98Fd2+1p_DAJh?nQ(_L?SAv<3umvKHbDYqiD3XE
zqj@1LF#yU8B2wj{0@RX6JQOKkH|B81dK@>f{ybtw;LPOFZ)u%*W&f*Tk}@AI6b=qAeYK(j%Kyu-$TAf*ovW`i2{rvYxQk+0jxC#KRdHxkf>tV3rA611E_h;ttLhtn=j-76H(6xm;VmW9_^<9$5Q{
zdD9k#VT75EXe$#f!xU9WjUnmdvWrOaq?$0XIYQMdH~V%Rd->g?+i#Sw;t`tkcnU4JD|CJ9*OZo8txW`=1OcDZ|~Xu*6!Er!UYik
zns>}FyrTeHmZXeC;s(qPv^xgHJQ6lmN-`7ChzgYS7;Q|ZrPwz01R|Uz6jhT(fp4&Q
zC9cvTu_(3`j-QboLowIZ=t8bAas1?si|^gMV(XNN)59>tC85yBKx{mv#OT40IEx6p
z4;5@RBlY3)SI_J?{@O?9b`6%Vr`;Lm?4mwa3ox5apt(+ykrG?15sVx2(XWhuxe4!V
zrHqM6cMy&cN1wzfz$YXf;&~r#brC0p{XcS!;r}Q#h9^#xy^bIElzwoe#``rdG5NU=yWq<#6J5X;E4eZdxTLp@y$6oAUS
zn3xg=zz@PRK|mv#5#)gmrB}(8%-#KC2q#z8ztxommC}IVd;@S|Rv2odk?G(sEwuO)e$~TT*I=JWT+sFG4
z-Ynm=zeRxu8g^~baHI+@fV8sM;f8(M8DD+#=y{ag{frRKx=c*dG4RPq6IiV(N9391
zQumMD0(Zlo^lPRabbKT?qvsuU8OPIzb{U@FOv4Nb8`lV50cKv_#hZv1jA44kTD|th
z`!63qf7HrWO=2GtURaD9T3*B=))Un{5jf05ZWNa861Ssi<0&J|_43sbcoXq~Wo-f-
zND*NpEKE3tV(ZS+u!_K${+mkf3GF?r=dNEn@6P$t7j?9aM|EY((vrhVB#f59(n7ct
zt9WBQosFd4cm2YF3%d_o+;jfgsY;_vE?Cy!F8E${tnILK)D@y7&`
z9{sg9RotL|{3VQk9{w>t43w`yM&FLFGxo1pa5Wttjk>D#&+%K}eQvU9nw$d46aMUD
z&1wXvC|Fj4D76RnUcLCzJI~hQ3dM>bp@megoQ)_0T^uk#D1s>bL9^5j__j!WBrq)M
zfv$v~{NJ!)&_JS^npuu^T1>oe+6j3e2)JVaU^p>Rkek^vC*>-u=B(=(KRF+j@cG$&
zsR_&qcOjq)D_%_ozZ#)HBgydTOUHJdeB)&Qp@GUk-PD!h>{r8++0c%FxGIaMovjj+
z3Xz_1GiFYlXCy5^By&~(je2Q6=7`
zhou>dipY~#f&u?&!(qk;;XtQc^2RRb}9C{(rZqP7Lx6xgUh!i2y?_ln(
zARr6LaBV8sIx=PHe=2@;7&C}4z$a(iZgz8y_u2Kahv`1W*6xqH!ri>IzAwY0{x
zJDxm>FjJq8ib8Z~@J!VVJ;KAyXhh0|dz!?GhybzGe6#5-$euu(7a;(VN#AfT@fU)go~wYQJFcxA93
zHzp#p*@8GYZO%E4xb*#1|&EP1!hq><y^SS(i3-8^m4?VE-b3v+M9C;dp
zCAeU`8vUa<(K6q8!<`vxlaaX0m_z~#dzUY~n=~tm(R0ZYz$P;VsaGShdzvD?{`s13
zm_ar+h~${KVkwyCT}GyC)1>p~x5g0fzT*b1A)+L39R|_((!@LG+_!f2#!|j?qJRGj`+j)t+L^nTKBCC_
zp#d6G9B009=%dQP_{lH{0-@!r{>+8&JKnm-S0~ztn3Z>|^Ne?ernY#5o5Mg#D|sT{
zRU$se3=H*HpdbC>ql^=v{#m-Io$fRz7#-SEsgpDsJNLh#>^ccWVimnYOkey2CXZgb
zxCAPG&%ne2M2SGmC1~JeVz(5=oM?4}G*EkzpCk(=gG2m1WZMrDw7{8HjEZxoE_`tP
zqZ=0AHGbR#NNB?Yc=VW!8gvaQ(G1)wBhJ&LQmdToKllPnog#)4BDubiyMHCQu6LW_>XXe;*sRu9(R
z6$|Qw}qUV$R%A8tHmo5N@*VCo>-`Ln92s;CfR&>TP845%Pz-Ax&kM16*Tn{4D6?_<1b6~X%3kO69i1$#DYVb
z>8r6KvsI$uGWd1*+wJ5jn63P?2ARA2O^DI{OTlYL^>j_mg*hXUc50AzBftSORN?XvU}=LjNtv1c!SaH9WkxjsaGCnq6HOR;TY
z`()B<4&qIt!_(9kRq~LmjGW~3$M>g)yIk8nn~VChJ(z8huO!{HbMJJv6{y;|K1^oq
ze}-!F3BGjVt}&VHN>A@(EMWno-xZ3x5QLkFri}q&{rV33MP&rbu@YxnhS^W)PE1
zYm?T?C|In4~wT6-5VcL8Qm?28l~~I7n=Hs
zxc9MZq!sLMlPk+qRasE^lhcU9!dXXna>Omy9tcq}W#n?UwH)nb`m1HO8`lmeV*N|#
z<`$wJ9~iuT`T9kaWQLYFqJ7}6SJFZBxC|89-Uf-GkRukyW`Uvm*3mf-c=~HumR!emP7Le4QWvxQ0i`Nyn>@2kN75>
zaT}Zz^`@c68&tEz=iVaExwtIY#)-U0H>yNosWM?%JZqYFZ!tg^l$N$=1~@zpJuitIO_3bPR54_!IR(w|L+si6qX{2-wZ8rmvUssUIFGYlGWe7yJ2
z8%Ll0==2BGxRMap<=C%QoGQSYQIoM9h2gr{o9>*o^`qYR4_w%N;l`Q1fs2i}mPj5C
z)dW%07!`qE>P2YhSHxJ4o;D|cd``3=~_
z%kH(3&_WDjJr!HmZu{((FU*-X5BGyr2R5U49%BkI%qWomv
zG3yPt56h|Uprs&cwsz~K+QrrsA)
zuDDN~%yy1;_oW9bhe7$(HIc=dJK3Xq5u0x+`;YR^m8s4G%qW?Ven?sSoj{HC^_a;v
zi9)ybYtuh?B{sO$nYk7wW8q$KS}<*J({t)!6KEb7DlrNU4xAS3xC*S#9+4Cn;@{YI
z%tnmqD4PWd>op=>nA$z{Q+I#v{@b?obWPUmCO5Jm&tb~bYV7PX@*egrtv9OuH~T&~
z@%p>RU+o*{O)Omw6w`@pN8_ae3eG}s$_D$xARpyhbL}gq-Ff@W`|a+HNqp+c!NKx1
zF}aoJJXWOP?2lMQfx=y}C4Q4SrfpgBFfP_%TuAR~=6s%+hmygKt^fj~Hex7cyqBJ<
zi~)dRO5YJM#{{o0H#$?&Dp@pL@#FC47G3+tB{)Rpd|NTfdraz%B4^mQ8qL(3_?(9nGw?f$4EfS&lJ1Ac}TOq9%_&=MmfhgsSa|vYjPG+_u<9>+V0|+
zqAHh<+Djb^XD)f{zMoyWXw}57$w4S-0AwJNC}Sy#i8yYxBbxyhS4pE>8#>p2`n}`Z
z-#hX8&B~z0?F@WMuIND(&vC2+&okLBUg-W%sy@-6$$
z?krc!BDFXxg9WC6z0P!iiDZV2<(6FOv9&*6jEYI(V8ddNJ~}EQuwgsMXB%P;iIVdL
zU6#YRi?bT$>4VeK6aUVMoE5v?C}$N~RQ
z#OoiO-91#biTHLKCYr)Bh8fccOVk8dYtLpY1Z}0(sU5Rc&$xYF&(bgoFI+ph`}EtV
zt{uN;;kKT(85gdf#p3Fi*ax`^xbK&RPJ;1b7;U6SsXoa^rA-SSTsV1ok|fGUi}v#N
zM0!c;0NYT_9ucE6gNYJZQ`Urb_1T>?bii}-Nr^v{Y-x427#~zfnmX0~o=WkrUWyA8@rgTru(WP~AVNbT
z(gpR>_uXx^$x
zhSw=5c6z6G8L1ARxqSHDW3L{(u=jeo-=bV;TntXx2@;}1HI?Zza03QmYq4$GxY?_w
z-!^yB;&
zTQ)A-`p}BUJ4#))KrBjp;Ber+R5B~Z8asbXGmaCM(}Z3tDYU2Yewr6f4N3~&phut^
zal`AL(HK)os8hCqtcz$8rcWP*AzmXY7K>v%olz=-O%`j!31VAw!<(11c5d4r@cxE__jOplI&!kk(2
zAGznzyEoi3v8$(4YO!Pn@GbT=4rjSM;`Errav+0%%g5TUZAq$>5Od8V5%t?FP&7cH%7`M0^1B|M8P+I-E?s}GVS4(mJ$}V
ziu{<7oK7A+(PoY+;3YJPM>);-go=eJUCsFIgg+v@nP>n@<;58s8$v@5*&hxa7g0h<
zC^-#=WIYB%eV*Vt)B4c^y>juoFK+vVb<1vRZ*5N@rTO#_7BaIVnM4ij$r4j*;J#G#
zk@ll7mj^C=aQe-6kGy)dd?hyZ1S?W2%r=Kh(~cCFMutDS_4A<5g3eOcvdQc2n)hH&
z*R)!ra=7=y-KXEWaN|sQWEeJ@PIyT+?)EFp!zfIK_u>aCU_z?kc5yPkZNkO{Tkl@7
zt-Et_E-YZAiUfy0HqQB{*qh=QTqgdl6jytIlnPGRC#~T4Sr)u<@t{fIH&G;aAUnMj
z)`s;6gL9~6{Z3MjMK0pfdk`&=5-|I`#b-!kDI-?La;`lz7?aL7pUzAI+d%37wj&40
ziPQ!4so}U4tiD0?+h@a6T|?$);I7KiR%^H>npU$Js(q`2=vTk|Z`LeXrT5@y-FxPpt3#Jlc4)V-Q@m@mp%Mf!10OXTSFJ(v0+>j+zLU<)o3eQ8
zvQI3Zep^ea)%skK85sABM#-YSQG+W;a9Abpr;-j+o&`b!>s-)dN`LC|F`(qr2O|lO
zPNgc%1*w&zu)-k~de#K!Mp{R3XAT-=cqo2JgPoy6YSiR5bYW_Mlh*j$5+e3{!$^8x
z_IWABshx+GRSGZr)r@=mArRoB?q-)T)dqFWV5BqvmqtCdODW{k1mOSxAOJ~3K~$0?
z&{AC{qeeOZmMIZGk|NsFNLl#dOM6~D_~TQTkHTiS0V0_ztrLZkv;|o;XlX%eBxt*9
zZyYCbgOruNcV_#Z3vZpda^m{XRRhQ_@SK)6akxiFd$FU%s=wDq-KFlF(*3qQ5*
z!mbZayc%B3yxly<>2In=%zy)KCl7q>^Ifz3~2xF?-{;pZpNdFsN6{if^D(c;MF
zpPd=PX1ep3I<_PPpYB5`Hl|4}a1g<8N4in)3#_uZho5Yb!dhx0zWC7-M=pI-i|e9P
zvwhBkq!~~6RS2H|IH~D&$J~2X&RG`((f+d^q!uT5pP+!dru2Lhi*h!iR}K9iAB%T_
z1U?f4K}T!H{K-r1n!k0~%ysRh4y^7@K{>(*Ne+fE4~Am=G!3TVVrH4~){2z^4y$(P
z^apViK(zm+3GdBEHs!{+5q7e9%u5Ie#7oVMa$vD9R}0Db?8*!%q}L;bkFc4F8RX5nM4l+cCfacWt^SL=qULyiOJ
z7?m99+uPC7z4zRXO08^?26TiIGX@JwvS2fi(VLhk%%$>s+4MCV7Hpc=
zv$(A^PI?yyNwW$S0>JYdADzZlY*R|Ar%5j<2H7+HD5wW?zDRa-#}JIS0y-0yQTT9<
zZY}6zWuLvMlQS+A%A3#7nawrs##9nbEzsVv-XArVcXsTTYXP4TaH(^)IK=wL6a0`J
zVq8l6NMk&OI-UE|dlsG&>Ga!v=tnQ?`$4%fL?s>3wu97P0f8ZPB>2>+
ze7$@ACp(H=+mAofcjLUF4gBK0=iWQodvJK9TuseE)1N|a#ZM1pi2>ttpl
zeZdY)*Hg*|foH`xjqy(l1{RY|(9%u!8so}t_Oif|LyQ|u{3;rKHIjP#Rl>U(kGdh@
zghjuoM-H1f66{*QXl5H#8!?@<*!7YXL!^bcqd|#|&NX|ZfPG%H4qqcjSG??%a$lhA
zI(8kQNwNp9n~B{CT&+$?%%0P4Jh$(AmD&i^`82-vKr0b$V_OwcAKH5abGjBkwBoU1
zp)_1C|MT^KXe1SwI7vOJ*2=X6R)?TX2o6;W7*km!%wIsKLt@BZ1K*p58o5zjFm2_R
zZ~yw#Nz;QU3Unwdv5XsakDG{pzy-5-cxk6I9zG?0b+;DQ!GXnxVY89xF%R=7KGeiE
z#^xSwtcarVWO7u?__+bMyp$Zy@>xW(`>V&^quosgN;)-J4P%_(RVv#Up-8gJ4%e+^
zIj)7#YIiisX&rFCQ5G&cQgDZeL~MVN{F->TaCW3QSTG!x@AG!JYd`
zJL*cMoCx2}aAldQ$*D97R~)n;3!l9%+5sb@(z7HZizp8WM);3r+|ZOY)I_f8m!SZ9
z%)+e)7dJ<)Te%tYVDkwa
z=8)7vrMPS<{(7SS;D3Ahe{0Q+JJEk2wxx#QXdAqTJTEZ&4>H$d(Q2gI
zMuXAgRm?Lr?{6w1S2}{QH|hcmINWN1V>g;xqunLYg2olnj-9B)>vA{ss8!g7O3N<6
znm3Fkc^(+z909o$S#j~28>|V9wyc%zSX{u6OvA17Q2f(mqAP2+cvY!G7d||2;UlOw
z=K>f`R+8|;4WV(tD)$2X6UU8{myZyfLYxH1(_$6`3GIz8!5sFls5r2mL}jjD8tyxO
zqkN;LQ=7PeZcEsHDS%C`RAc)GFYP({!OuMM<;NfRQg>%JX1N%L1+Qb+38NS#?Eht`
zFjr&_AZ{ssByopm90cf0C&4_BI63Bvc99A`wAj_D1dqKIdg6P
zo?%C09yxT67S_!#ufc{5wZJ#o*;MDgrZB%;-!LmyO7N{npNT`A@8ra=VZVwJxlM_z
zGTF66ZpbI5SruvEG6{Xh#Y~v6B%*w{-%_Fe^8O#x3d2*O3EUmY!QGo;zWfFg?&4>Ld>KN;7I
z9qA+9m&}=K@<7l*gjlvVoDW7gLPqtDx|o|4_}58Mu_z;V3GZAp_J_<-7VWU;CF7~~
zA5;2{J-mo^w=#tlH{OC^3W7Yax*SmmLmgpt7cJ2`S{ti{mKvJAQ0O#7R~_!Cj!Qi>
z$WgCbfFNt`MlrC|9zt^&LZ+ZD4bDQD7d+51d3Jbsww576wQH*YFxfny>@2k`i0>}ElwqOkb@*&*=HDy6XiUJL=J=G%*A8>;lKX&?Q8D-
z!Y978Y~hM=?VV8&QCAx()~Y;~ogG?{Kq6OseBp5<);NKZu_sb(G)6>fdov(&+YIV7
zipdP4HQsriPw1AffG?{M->ixGDq3Y~muBuV)`!dwd=<}X)!uLXJVt)dl)~g#mJl`K
zVM>W(KcM^zTF7Jf+f^|qpYn;?B-!BulESWtk8QVEdVR#4WkfbVCUi9s9_~OIJQ2yGZZQVVn`Cq|YTba#hbVLC
z$4{M6?F1KxqA`_eBzjpS8T;uFg+x{4AH&gj$Z>LOk6>>v{3lYWE|2O#BS~ndTWm82
zF=3Tx0M?R?%}_}rw4RitMrf~l`5{Qj7!m`udj0sN!FTBJA#80|LvbWS{S?}=ieUre<=
za{2nDxZW_ZYL2>C1Pu|HrYFHGxD^s~L&I(?%|TiCFNxL7{_@pRgF{!VjXF(Rd<-@U
zafLVdF;O1lUczGi7;crZQw!3YRp>3f;K+
zU1T^rn_*&PFJ-9UUaurKE|mLD3{;0}1aXvKAzqz}NTLGN99u)0WR2GVH{C;{2gVd0
z-)`j&3zMKr($?1E%84__{@_3T$LC&p_Upg&zb;v@y!T4q^KU=*{OiwL8SJgwRQn|D
zB`voQVry7V8{!nc!q2idPjZWt^ofo34jY9U0hJLnYIk{KvKQctUd=s^ionRP9!6>I
z2(#k3r9aNUo~3PBuw#2@D!Rlea`5@{n4E@Ol|}rw&M2f2!_hQYzyzP&I?Q@HrvCCH
zzy8;+{rR_F_|tDZ_V1_n%&Nl+Dn7s}9SG3Gwfbv&o_*`kn-8shw0Gdb{xf?}?2%c8
zWQNTJdK@iAmr}g11vnDzOoE-iz=atoE!j2bRVF79t7`O$Vx}iL%Z-sIOAXfai(0wS
ze`28T74%GpZ#WE|D{4MpU>w)
zD|iDeqTZ-C-rWD%Q#+p6w*JwF)_tP0ZG2qkZCY4uiYJ>nAC{nz4#{os1}
zdc)Y=-(}xP27(R(s^USmfg2YQ*3g@YZ0SW7_@
zMN=8)E)0Q9W5&CQvyw?<_C{KZO;6uzqel50KaR<88*!LvZW(E>5)Om*0{(!N{$-hl
zw`7hg@Dt$)NED*xw}Y4JY+b9?hb!fdah<>P$k%`P=J)>gmB0SQZC~piKhePM1hGj{
zQuD##oj=;~gKZl=ebgVS}(W1$v-3Nr#jz91P1kAek7^t|@S7Ytj(gWY}r8Sy3J~TB+8m
z)elaYb?^|LpxoEb`ai}jpF
zU_OJ5O*=aUii)6Xta`-mZ4eUyF-%IrN12L%X4?j}9|l?j+!32_8|tVSgvAiIR^>sW
z8I8&ob^x&rw$)QHLC4V-MgAtmvYd`ptR5*1n!GfW6KyzvBJ9-{pB^^7emDLvMrD9b
zgceMlM7wTxpk*^QOJEpe{2+-u7X2O>W*hEK-pT$ucN#3uP7=j|4FU<{z&X$}o)1k8
z*234dX(Y+nOQ+x7_xi5=Z)fHUWNW43x!$m^)F6$*sMOl_$eo{hWAAH!^UAj$-}Lzz
zJ+lv-*!Sey-@9k!{kJdPm}05Xr~|?S*!nq8F%BgNC_{yh9IK)(F_K@Y?ILSi!xowf
zQzW6xE!Soq7>zT?(#aQW%bcZCGZhDoI41rg
zv_^m^I2CHHWNd{r7z{v&8wC^#W5hV5`|Q!dDkGLDO~Hx%K