(null);
const [bookmarkTitle, setBookmarkTitle] = useState("");
const [bookmarkUrl, setBookmarkUrl] = useState("");
+ const { allBookmarks, deleteBookmark } = useBookmarks();
+ const isDark = theme === "dark";
+ const { effectiveLanguage, preferredLanguage, t } = useI18n();
useEffect(() => {
- // Get app version
- window.electronAPI?.getAppVersion().then((version: string) => {
- setAppVersion(version);
- });
-
- // Set app icon path from imported image
+ window.electronAPI?.getAppVersion().then(setAppVersion);
setAppIconPath(appIcon);
-
- // Load hidden default bookmarks from localStorage
- try {
- const hidden = localStorage.getItem("hiddenDefaultBookmarks");
- if (hidden) {
- setHiddenDefaultBookmarks(new Set(JSON.parse(hidden)));
- }
- } catch (error) {
- console.error("Failed to load hidden bookmarks:", error);
- }
-
- // Load bookmarks
- loadBookmarks();
-
- // Listen for bookmark updates
- const unsubscribe = window.electronAPI?.bookmarks?.onUpdate(() => {
- loadBookmarks();
- });
-
- return () => {
- if (unsubscribe) unsubscribe();
- };
}, []);
- const loadBookmarks = async () => {
- try {
- const allBookmarks = await window.electronAPI?.bookmarks?.getAll();
-
- // Load cached favicons for bookmarks that don't have data URLs
- if (allBookmarks) {
- const bookmarksWithFavicons = await Promise.all(
- allBookmarks.map(async (bookmark) => {
- // If favicon exists and is not a data URL, try to get cached version
- if (bookmark.favicon && !bookmark.favicon.startsWith('data:')) {
- try {
- const cachedFavicon = await window.electronAPI?.favicon?.getWithFallback(bookmark.url);
- if (cachedFavicon) {
- return { ...bookmark, favicon: cachedFavicon };
- }
- } catch (error) {
- console.error("Failed to load cached favicon:", error);
- }
- }
- return bookmark;
- })
- );
- setBookmarks(bookmarksWithFavicons);
- } else {
- setBookmarks([]);
- }
- } catch (error) {
- console.error("Failed to load bookmarks:", error);
- setBookmarks([]);
- }
- };
-
- // Get all bookmarks (user + visible default bookmarks)
- const getAllBookmarks = (): Bookmark[] => {
- const visibleDefaults = defaultBookmarks.filter(
- (bookmark) => !hiddenDefaultBookmarks.has(bookmark.id)
- );
-
- console.log("[Settings] User bookmarks:", bookmarks.length, bookmarks);
- console.log("[Settings] Visible defaults:", visibleDefaults.length, visibleDefaults);
- console.log("[Settings] Hidden defaults:", Array.from(hiddenDefaultBookmarks));
-
- // Show user bookmarks + visible default bookmarks
- // User bookmarks first, then default bookmarks
- const allBookmarks = [...bookmarks, ...visibleDefaults];
- console.log("[Settings] Total bookmarks:", allBookmarks.length, allBookmarks);
-
- return allBookmarks;
- };
-
- const handleDeleteBookmark = async (id: string) => {
- try {
- // Check if it's a default bookmark
- if (id.startsWith("default-")) {
- // Hide default bookmark
- const newHidden = new Set(hiddenDefaultBookmarks);
- newHidden.add(id);
- setHiddenDefaultBookmarks(newHidden);
-
- // Save to localStorage
- localStorage.setItem(
- "hiddenDefaultBookmarks",
- JSON.stringify(Array.from(newHidden))
- );
- } else {
- // Remove user bookmark
- await window.electronAPI?.bookmarks?.remove(id);
- // Bookmarks will be reloaded via onUpdate listener
- }
- } catch (error) {
- console.error("Failed to delete bookmark:", error);
- }
- };
+ const settingsSections: SettingsSection[] = [
+ {
+ id: "general",
+ title: t("general"),
+ items: [
+ {
+ id: "bookmarks",
+ label: t("favorites"),
+ value: t("favoritesCount", { count: allBookmarks.length }),
+ icon: ,
+ hasDetail: true,
+ onClick: () => setCurrentView("bookmarks"),
+ },
+ {
+ id: "language",
+ label: t("language"),
+ value:
+ preferredLanguage === "system"
+ ? t("systemDefault")
+ : effectiveLanguage.toUpperCase(),
+ icon: ,
+ hasDetail: true,
+ onClick: () => setCurrentView("language"),
+ },
+ {
+ id: "about",
+ label: t("about"),
+ value: "Aka Browser",
+ icon: ,
+ hasDetail: true,
+ onClick: () => setCurrentView("about"),
+ },
+ ],
+ },
+ ];
- const handleAddBookmark = () => {
+ const openAddBookmarkDialog = () => {
setEditingBookmark(null);
setBookmarkTitle("");
setBookmarkUrl("");
setShowBookmarkDialog(true);
};
- const handleEditBookmark = (bookmark: Bookmark) => {
- // Don't allow editing default bookmarks
- if (bookmark.id.startsWith("default-")) {
- return;
- }
-
+ const openEditBookmarkDialog = (bookmark: Bookmark) => {
+ if (bookmark.id.startsWith("default-")) return;
+
setEditingBookmark(bookmark);
setBookmarkTitle(bookmark.title);
setBookmarkUrl(bookmark.url);
setShowBookmarkDialog(true);
};
- const handleSaveBookmark = async () => {
- if (!bookmarkTitle.trim() || !bookmarkUrl.trim()) {
- return;
- }
+ const closeBookmarkDialog = () => {
+ setShowBookmarkDialog(false);
+ setEditingBookmark(null);
+ setBookmarkTitle("");
+ setBookmarkUrl("");
+ };
+
+ const saveBookmark = async () => {
+ if (!bookmarkTitle.trim() || !bookmarkUrl.trim()) return;
try {
if (editingBookmark) {
- // Update existing bookmark
await window.electronAPI?.bookmarks?.update(editingBookmark.id, {
title: bookmarkTitle.trim(),
url: bookmarkUrl.trim(),
});
} else {
- // Add new bookmark
await window.electronAPI?.bookmarks?.add(
bookmarkTitle.trim(),
bookmarkUrl.trim()
);
}
- setShowBookmarkDialog(false);
- setEditingBookmark(null);
- setBookmarkTitle("");
- setBookmarkUrl("");
+ closeBookmarkDialog();
} catch (error) {
console.error("Failed to save bookmark:", error);
}
};
- const handleCancelBookmarkDialog = () => {
- setShowBookmarkDialog(false);
- setEditingBookmark(null);
- setBookmarkTitle("");
- setBookmarkUrl("");
- };
-
- const isDark = theme === "dark";
-
- const settingsSections: SettingsSection[] = [
- {
- id: "general",
- title: "General",
- items: [
- {
- id: "bookmarks",
- label: "Favorites",
- value: `${getAllBookmarks().length} items`,
- icon: ,
- hasDetail: true,
- onClick: () => setCurrentView("bookmarks"),
- },
- {
- id: "about",
- label: "About",
- value: "Aka Browser",
- icon: ,
- hasDetail: true,
- onClick: () => setCurrentView("about"),
- },
- ],
- },
- ];
-
- const renderMainView = () => (
- <>
- {/* Header */}
-
-
- Settings
-
-
-
-
- {/* Settings List */}
-
-
- {settingsSections.map((section) => (
-
- {/* Section Title */}
-
- {section.title}
-
-
- {/* Section Items */}
-
- {section.items.map((item, index) => (
-
- {index > 0 && (
-
- )}
-
-
- ))}
-
-
- ))}
-
-
- >
- );
-
- const renderAboutView = () => (
- <>
- {/* Header */}
-
-
-
- About
-
-
-
-
- {/* About Content */}
-
-
- {/* App Icon and Name */}
-
-
- {appIconPath ? (
-

- ) : (
-
-
-
- )}
-
-
- Aka Browser
-
-
- Version {appVersion}
-
-
-
- {/* Info Section */}
-
-
- Information
-
-
-
-
-
- Name
-
-
- Aka Browser
-
-
-
-
-
-
-
- Version
-
-
- {appVersion}
-
-
-
-
-
-
-
- Description
-
-
- A lightweight, elegant web browser
-
-
-
-
-
-
-
- >
- );
-
- const renderBookmarksView = () => (
- <>
- {/* Header */}
-
-
-
- Favorites
-
-
-
-
- {/* Bookmarks Content */}
-
- {getAllBookmarks().length === 0 ? (
-
-
-
- No favorites yet.
- Add your favorite sites from the menu.
-
-
- ) : (
-
- {getAllBookmarks().map((bookmark) => (
-
-
- {bookmark.favicon ? (
-

{
- const target = e.target as HTMLImageElement;
- target.style.display = "none";
- const parent = target.parentElement;
- if (parent) {
- parent.textContent = bookmark.title.charAt(0).toUpperCase();
- }
- }}
- />
- ) : (
-
- {bookmark.title.charAt(0).toUpperCase()}
-
- )}
-
-
-
- {bookmark.title}
-
-
- {(() => {
- try {
- return new URL(bookmark.url).hostname;
- } catch {
- return bookmark.url;
- }
- })()}
-
-
-
- {!bookmark.id.startsWith("default-") && (
-
- )}
-
-
-
- ))}
-
- )}
-
- >
- );
-
return (
{
- // Only close if clicking the background
- if (e.target === e.currentTarget) {
- onClose();
- }
+ data-orientation={orientation}
+ onClick={(event) => {
+ if (event.target === event.currentTarget) onClose();
}}
>
- {currentView === "main"
- ? renderMainView()
- : currentView === "about"
- ? renderAboutView()
- : renderBookmarksView()}
+ {currentView === "main" && (
+
+ )}
+ {currentView === "about" && (
+
setCurrentView("main")}
+ />
+ )}
+ {currentView === "bookmarks" && (
+ setCurrentView("main")}
+ onDelete={deleteBookmark}
+ onEdit={openEditBookmarkDialog}
+ />
+ )}
+ {currentView === "language" && (
+ setCurrentView("main")} />
+ )}
- {/* Bookmark Add/Edit Dialog */}
{showBookmarkDialog && (
-
-
e.stopPropagation()}
- >
- {/* Dialog Header */}
-
-
- {editingBookmark ? "Edit Favorite" : "Add Favorite"}
-
-
-
-
- {/* Dialog Content */}
-
-
- {/* Dialog Footer */}
-
-
-
-
-
-
+
)}
);
diff --git a/apps/browser/src/renderer/components/settings/about-view.tsx b/apps/browser/src/renderer/components/settings/about-view.tsx
new file mode 100644
index 0000000..ef8704c
--- /dev/null
+++ b/apps/browser/src/renderer/components/settings/about-view.tsx
@@ -0,0 +1,150 @@
+import { ChevronLeft, Info } from "lucide-react";
+import { useI18n } from "../../i18n/i18n-context";
+
+interface AboutViewProps {
+ appIconPath: string;
+ appVersion: string;
+ isDark: boolean;
+ onBack: () => void;
+}
+
+export function AboutView({
+ appIconPath,
+ appVersion,
+ isDark,
+ onBack,
+}: AboutViewProps) {
+ const { t } = useI18n();
+
+ return (
+ <>
+
+
+
+ {t("about")}
+
+
+
+
+
+
+
+
+ {appIconPath ? (
+

+ ) : (
+
+
+
+ )}
+
+
+ Aka Browser
+
+
+ {t("version")} {appVersion}
+
+
+
+
+
+ {t("information")}
+
+
+
+
+
+ >
+ );
+}
+
+function Divider({ isDark }: { isDark: boolean }) {
+ return (
+
+ );
+}
+
+function InfoRow({
+ isDark,
+ label,
+ value,
+ wrap,
+}: {
+ isDark: boolean;
+ label: string;
+ value: string;
+ wrap?: boolean;
+}) {
+ return (
+
+
+
+ {label}
+
+
+ {value}
+
+
+
+ );
+}
diff --git a/apps/browser/src/renderer/components/settings/bookmark-dialog.tsx b/apps/browser/src/renderer/components/settings/bookmark-dialog.tsx
new file mode 100644
index 0000000..136504f
--- /dev/null
+++ b/apps/browser/src/renderer/components/settings/bookmark-dialog.tsx
@@ -0,0 +1,155 @@
+import { X } from "lucide-react";
+import { useI18n } from "../../i18n/i18n-context";
+import { Bookmark } from "./types";
+
+interface BookmarkDialogProps {
+ editingBookmark: Bookmark | null;
+ isDark: boolean;
+ onCancel: () => void;
+ onSave: () => void;
+ setTitle: (title: string) => void;
+ setUrl: (url: string) => void;
+ title: string;
+ url: string;
+}
+
+export function BookmarkDialog({
+ editingBookmark,
+ isDark,
+ onCancel,
+ onSave,
+ setTitle,
+ setUrl,
+ title,
+ url,
+}: BookmarkDialogProps) {
+ const isDisabled = !title.trim() || !url.trim();
+ const { t } = useI18n();
+
+ return (
+
+
event.stopPropagation()}
+ >
+
+
+ {editingBookmark ? t("editFavorite") : t("addFavorite")}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+function Field({
+ autoFocus,
+ isDark,
+ label,
+ onChange,
+ placeholder,
+ type,
+ value,
+}: {
+ autoFocus?: boolean;
+ isDark: boolean;
+ label: string;
+ onChange: (value: string) => void;
+ placeholder: string;
+ type: string;
+ value: string;
+}) {
+ return (
+
+
+ onChange(event.target.value)}
+ placeholder={placeholder}
+ className={`w-full px-4 py-2 rounded-lg border ${
+ isDark
+ ? "bg-zinc-700 border-zinc-600 text-white placeholder-zinc-400"
+ : "bg-white border-zinc-300 text-zinc-900 placeholder-zinc-500"
+ } focus:outline-none focus:ring-2 focus:ring-blue-500`}
+ autoFocus={autoFocus}
+ />
+
+ );
+}
diff --git a/apps/browser/src/renderer/components/settings/bookmarks-view.tsx b/apps/browser/src/renderer/components/settings/bookmarks-view.tsx
new file mode 100644
index 0000000..96376c1
--- /dev/null
+++ b/apps/browser/src/renderer/components/settings/bookmarks-view.tsx
@@ -0,0 +1,212 @@
+import { ChevronLeft, Edit2, Plus, Star, Trash2 } from "lucide-react";
+import { useI18n } from "../../i18n/i18n-context";
+import { Bookmark } from "./types";
+
+interface BookmarksViewProps {
+ bookmarks: Bookmark[];
+ isDark: boolean;
+ onAdd: () => void;
+ onBack: () => void;
+ onDelete: (id: string) => void;
+ onEdit: (bookmark: Bookmark) => void;
+}
+
+export function BookmarksView({
+ bookmarks,
+ isDark,
+ onAdd,
+ onBack,
+ onDelete,
+ onEdit,
+}: BookmarksViewProps) {
+ const { t } = useI18n();
+
+ return (
+ <>
+
+
+
+ {t("favorites")}
+
+
+
+
+
+ {bookmarks.length === 0 ? (
+
+ ) : (
+
+ {bookmarks.map((bookmark) => (
+
+ ))}
+
+ )}
+
+ >
+ );
+}
+
+function EmptyState({ isDark }: { isDark: boolean }) {
+ const { t } = useI18n();
+
+ return (
+
+
+
+ {t("noFavorites")}
+
+ {t("noFavoritesHint")}
+
+
+ );
+}
+
+function BookmarkRow({
+ bookmark,
+ isDark,
+ onDelete,
+ onEdit,
+}: {
+ bookmark: Bookmark;
+ isDark: boolean;
+ onDelete: (id: string) => void;
+ onEdit: (bookmark: Bookmark) => void;
+}) {
+ const isDefault = bookmark.id.startsWith("default-");
+ const { t } = useI18n();
+
+ return (
+
+
+
+
+ {bookmark.title}
+
+
+ {formatBookmarkHost(bookmark.url)}
+
+
+
+ {!isDefault && (
+
+ )}
+
+
+
+ );
+}
+
+function BookmarkIcon({
+ bookmark,
+ isDark,
+}: {
+ bookmark: Bookmark;
+ isDark: boolean;
+}) {
+ return (
+
+ {bookmark.favicon ? (
+

{
+ const target = event.target as HTMLImageElement;
+ target.style.display = "none";
+ const parent = target.parentElement;
+ if (parent) parent.textContent = bookmark.title.charAt(0).toUpperCase();
+ }}
+ />
+ ) : (
+
+ {bookmark.title.charAt(0).toUpperCase()}
+
+ )}
+
+ );
+}
+
+function formatBookmarkHost(url: string): string {
+ try {
+ return new URL(url).hostname;
+ } catch {
+ return url;
+ }
+}
diff --git a/apps/browser/src/renderer/components/settings/language-view.tsx b/apps/browser/src/renderer/components/settings/language-view.tsx
new file mode 100644
index 0000000..82d126b
--- /dev/null
+++ b/apps/browser/src/renderer/components/settings/language-view.tsx
@@ -0,0 +1,82 @@
+import { ChevronLeft, Check } from "lucide-react";
+import { languageOptions, useI18n } from "../../i18n/i18n-context";
+
+interface LanguageViewProps {
+ isDark: boolean;
+ onBack: () => void;
+}
+
+export function LanguageView({ isDark, onBack }: LanguageViewProps) {
+ const { preferredLanguage, setPreferredLanguage, t } = useI18n();
+
+ return (
+ <>
+
+
+
+ {t("language")}
+
+
+
+
+
+
+ {languageOptions.map((option, index) => (
+
+ {index > 0 && (
+
+ )}
+
+
+ ))}
+
+
+
+ {t("contributionHelp")}
+
+
+ >
+ );
+}
diff --git a/apps/browser/src/renderer/components/settings/main-view.tsx b/apps/browser/src/renderer/components/settings/main-view.tsx
new file mode 100644
index 0000000..71be21d
--- /dev/null
+++ b/apps/browser/src/renderer/components/settings/main-view.tsx
@@ -0,0 +1,123 @@
+import { ChevronRight } from "lucide-react";
+import { useI18n } from "../../i18n/i18n-context";
+import { SettingsSection } from "./types";
+
+interface MainViewProps {
+ isDark: boolean;
+ onClose: () => void;
+ sections: SettingsSection[];
+}
+
+export function MainView({ isDark, onClose, sections }: MainViewProps) {
+ const { t } = useI18n();
+
+ return (
+ <>
+
+
+ {t("settings")}
+
+
+
+
+
+
+ {sections.map((section) => (
+
+
+ {section.title}
+
+
+
+ {section.items.map((item, index) => (
+
+ {index > 0 && (
+
+ )}
+
+
+ ))}
+
+
+ ))}
+
+
+ >
+ );
+}
diff --git a/apps/browser/src/renderer/components/settings/types.ts b/apps/browser/src/renderer/components/settings/types.ts
new file mode 100644
index 0000000..42cf0c0
--- /dev/null
+++ b/apps/browser/src/renderer/components/settings/types.ts
@@ -0,0 +1,62 @@
+import type { ReactNode } from "react";
+
+export type SettingsView = "main" | "about" | "bookmarks" | "language";
+
+export interface SettingsSection {
+ id: string;
+ title: string;
+ items: SettingsItem[];
+}
+
+export interface SettingsItem {
+ id: string;
+ label: string;
+ value?: string;
+ icon?: ReactNode;
+ hasDetail?: boolean;
+ onClick?: () => void;
+}
+
+export interface Bookmark {
+ id: string;
+ title: string;
+ url: string;
+ favicon?: string;
+ createdAt: number;
+ updatedAt: number;
+}
+
+export const defaultBookmarks: Bookmark[] = [
+ {
+ id: "default-google",
+ title: "Google",
+ url: "https://www.google.com",
+ favicon: "https://www.google.com/s2/favicons?domain=google.com&sz=128",
+ createdAt: 0,
+ updatedAt: 0,
+ },
+ {
+ id: "default-youtube",
+ title: "YouTube",
+ url: "https://www.youtube.com",
+ favicon: "https://www.google.com/s2/favicons?domain=youtube.com&sz=128",
+ createdAt: 0,
+ updatedAt: 0,
+ },
+ {
+ id: "default-netflix",
+ title: "Netflix",
+ url: "https://www.netflix.com",
+ favicon: "https://www.google.com/s2/favicons?domain=netflix.com&sz=128",
+ createdAt: 0,
+ updatedAt: 0,
+ },
+ {
+ id: "default-x",
+ title: "X",
+ url: "https://x.com",
+ favicon: "https://www.google.com/s2/favicons?domain=x.com&sz=128",
+ createdAt: 0,
+ updatedAt: 0,
+ },
+];
diff --git a/apps/browser/src/renderer/components/settings/use-bookmarks.ts b/apps/browser/src/renderer/components/settings/use-bookmarks.ts
new file mode 100644
index 0000000..9d208b5
--- /dev/null
+++ b/apps/browser/src/renderer/components/settings/use-bookmarks.ts
@@ -0,0 +1,93 @@
+import { useEffect, useMemo, useState } from "react";
+import { Bookmark, defaultBookmarks } from "./types";
+
+const hiddenDefaultsKey = "hiddenDefaultBookmarks";
+
+export function useBookmarks() {
+ const [bookmarks, setBookmarks] = useState([]);
+ const [hiddenDefaultBookmarks, setHiddenDefaultBookmarks] = useState<
+ Set
+ >(new Set());
+
+ const loadBookmarks = async () => {
+ try {
+ const allBookmarks = await window.electronAPI?.bookmarks?.getAll();
+ if (!allBookmarks) {
+ setBookmarks([]);
+ return;
+ }
+
+ const withFavicons = await Promise.all(
+ allBookmarks.map(async (bookmark) => {
+ if (!bookmark.favicon || bookmark.favicon.startsWith("data:")) {
+ return bookmark;
+ }
+
+ try {
+ const cachedFavicon =
+ await window.electronAPI?.favicon?.getWithFallback(bookmark.url);
+ return cachedFavicon
+ ? { ...bookmark, favicon: cachedFavicon }
+ : bookmark;
+ } catch (error) {
+ console.error("Failed to load cached favicon:", error);
+ return bookmark;
+ }
+ })
+ );
+
+ setBookmarks(withFavicons);
+ } catch (error) {
+ console.error("Failed to load bookmarks:", error);
+ setBookmarks([]);
+ }
+ };
+
+ useEffect(() => {
+ try {
+ const hidden = localStorage.getItem(hiddenDefaultsKey);
+ if (hidden) {
+ setHiddenDefaultBookmarks(new Set(JSON.parse(hidden)));
+ }
+ } catch (error) {
+ console.error("Failed to load hidden bookmarks:", error);
+ }
+
+ loadBookmarks();
+ const unsubscribe = window.electronAPI?.bookmarks?.onUpdate(loadBookmarks);
+ return () => {
+ if (unsubscribe) unsubscribe();
+ };
+ }, []);
+
+ const allBookmarks = useMemo(() => {
+ const visibleDefaults = defaultBookmarks.filter(
+ (bookmark) => !hiddenDefaultBookmarks.has(bookmark.id)
+ );
+ return [...bookmarks, ...visibleDefaults];
+ }, [bookmarks, hiddenDefaultBookmarks]);
+
+ const deleteBookmark = async (id: string) => {
+ try {
+ if (id.startsWith("default-")) {
+ const newHidden = new Set(hiddenDefaultBookmarks);
+ newHidden.add(id);
+ setHiddenDefaultBookmarks(newHidden);
+ localStorage.setItem(
+ hiddenDefaultsKey,
+ JSON.stringify(Array.from(newHidden))
+ );
+ return;
+ }
+
+ await window.electronAPI?.bookmarks?.remove(id);
+ } catch (error) {
+ console.error("Failed to delete bookmark:", error);
+ }
+ };
+
+ return {
+ allBookmarks,
+ deleteBookmark,
+ };
+}
diff --git a/apps/browser/src/renderer/components/top-bar.tsx b/apps/browser/src/renderer/components/top-bar.tsx
index 81976a2..849ee19 100644
--- a/apps/browser/src/renderer/components/top-bar.tsx
+++ b/apps/browser/src/renderer/components/top-bar.tsx
@@ -1,6 +1,7 @@
import { useState } from "react";
import WindowControls from "./window-controls";
import NavigationControls from "./navigation-controls";
+import { useI18n } from "../i18n/i18n-context";
interface TopBarProps {
pageTitle: string;
@@ -29,6 +30,7 @@ function TopBar({
}: TopBarProps) {
const [isEditing, setIsEditing] = useState(false);
const [urlInput, setUrlInput] = useState("");
+ const { t } = useI18n();
const handleTitleClick = () => {
setIsEditing(true);
@@ -90,7 +92,7 @@ function TopBar({
? 'text-[rgba(255,255,255,0.85)] placeholder:text-[rgba(255,255,255,0.4)]'
: 'text-[rgba(0,0,0,0.85)] placeholder:text-[rgba(0,0,0,0.4)]'
}`}
- placeholder="Enter URL..."
+ placeholder={t("enterUrl")}
/>
) : (
<>
diff --git a/apps/browser/src/renderer/hooks/use-browser-page-state.ts b/apps/browser/src/renderer/hooks/use-browser-page-state.ts
new file mode 100644
index 0000000..8c11f09
--- /dev/null
+++ b/apps/browser/src/renderer/hooks/use-browser-page-state.ts
@@ -0,0 +1,231 @@
+import { useEffect, useRef, useState } from "react";
+import { getLuminance } from "../lib/app-utils";
+
+interface TabListData {
+ tabs: any[];
+ activeTabId: string | null;
+}
+
+export function useBrowserPageState(orientation: "portrait" | "landscape") {
+ const [pageTitle, setPageTitle] = useState("New Tab");
+ const [pageDomain, setPageDomain] = useState("");
+ const [themeColor, setThemeColor] = useState("#1c1c1e");
+ const [textColor, setTextColor] = useState("#ffffff");
+ const [currentUrl, setCurrentUrl] = useState("");
+ const [tabCount, setTabCount] = useState(1);
+ const themeMonitoringIntervalRef = useRef | null>(null);
+ const isExecutingJavaScriptRef = useRef(false);
+ const crashCountRef = useRef(0);
+ const lastCrashTimeRef = useRef(0);
+
+ const setReadableThemeColor = (color: string) => {
+ setThemeColor(color);
+ setTextColor(getLuminance(color) > 0.5 ? "#000000" : "#ffffff");
+ };
+
+ const updateThemeColor = async () => {
+ if (isExecutingJavaScriptRef.current) return;
+
+ try {
+ isExecutingJavaScriptRef.current = true;
+ const nextThemeColor =
+ await window.electronAPI?.webContents.getThemeColor();
+ isExecutingJavaScriptRef.current = false;
+
+ if (
+ nextThemeColor &&
+ nextThemeColor !== "rgba(0, 0, 0, 0)" &&
+ nextThemeColor !== "transparent"
+ ) {
+ setReadableThemeColor(nextThemeColor);
+ } else {
+ setThemeColor("#ffffff");
+ setTextColor("#000000");
+ }
+ } catch {
+ isExecutingJavaScriptRef.current = false;
+ }
+ };
+
+ const updatePageInfo = async () => {
+ try {
+ let url = await window.electronAPI?.webContents.getURL();
+ const title = await window.electronAPI?.webContents.getTitle();
+
+ if (url && (url.includes("blank-page-tab-") || url.includes("error-page-tab-"))) {
+ url = "/";
+ }
+
+ setPageTitle(title || "Untitled");
+ setCurrentUrl(url || "/");
+
+ if (url && url !== "/") {
+ try {
+ setPageDomain(new URL(url).hostname);
+ } catch {
+ setPageDomain(url);
+ }
+ } else {
+ setPageDomain("");
+ }
+ } catch {
+ // Ignore page transitions where the WebContentsView is unavailable.
+ }
+ };
+
+ const startThemeColorMonitoring = () => {
+ stopThemeColorMonitoring();
+ updateThemeColor();
+
+ let pollCount = 0;
+ const fastInterval = setInterval(() => {
+ updateThemeColor();
+ pollCount++;
+ if (pollCount >= 20) {
+ clearInterval(fastInterval);
+ themeMonitoringIntervalRef.current = setInterval(updateThemeColor, 500);
+ }
+ }, 50);
+
+ themeMonitoringIntervalRef.current = fastInterval;
+ };
+
+ const stopThemeColorMonitoring = () => {
+ if (themeMonitoringIntervalRef.current) {
+ clearInterval(themeMonitoringIntervalRef.current);
+ themeMonitoringIntervalRef.current = null;
+ }
+ };
+
+ useEffect(() => {
+ const cleanup = window.electronAPI?.webContents.onThemeColorUpdated(
+ setReadableThemeColor
+ );
+
+ return () => {
+ if (cleanup) cleanup();
+ };
+ }, []);
+
+ useEffect(() => {
+ window.electronAPI?.tabs.getAll().then((data: TabListData) => {
+ setTabCount(data.tabs.length);
+ });
+
+ const cleanupTabChanged = window.electronAPI?.tabs.onTabChanged((data) => {
+ setTabCount(data.tabs.length);
+ });
+ const cleanupTabsUpdated = window.electronAPI?.tabs.onTabsUpdated(
+ (data: TabListData) => {
+ setTabCount(data.tabs.length);
+ }
+ );
+
+ return () => {
+ if (cleanupTabChanged) cleanupTabChanged();
+ if (cleanupTabsUpdated) cleanupTabsUpdated();
+ };
+ }, [orientation]);
+
+ useEffect(() => {
+ const handleDomReady = () => {
+ updatePageInfo();
+ startThemeColorMonitoring();
+ };
+ const handleDidNavigate = () => {
+ stopThemeColorMonitoring();
+ startThemeColorMonitoring();
+ updatePageInfo();
+ };
+ const handleDidNavigateInPage = () => {
+ updateThemeColor();
+ setTimeout(updateThemeColor, 50);
+ updatePageInfo();
+ };
+ const handleDidStartLoading = () => {
+ stopThemeColorMonitoring();
+ };
+ const handleDidStopLoading = () => {
+ startThemeColorMonitoring();
+ };
+ const handleRenderProcessGone = () => {
+ stopThemeColorMonitoring();
+
+ const now = Date.now();
+ if (now - lastCrashTimeRef.current > 10000) {
+ crashCountRef.current = 0;
+ }
+
+ crashCountRef.current++;
+ lastCrashTimeRef.current = now;
+ setPageTitle(`Page Crashed (${crashCountRef.current})`);
+ setPageDomain("Please navigate to another page");
+ setThemeColor("#ffffff");
+ setTextColor("#000000");
+
+ if (crashCountRef.current < 3) {
+ setTimeout(() => window.electronAPI?.webContents.reload(), 2000);
+ }
+ };
+ const handleDidFailLoad = () => {
+ stopThemeColorMonitoring();
+ };
+ const handleHttpError = (
+ statusCode: number,
+ statusText: string,
+ url: string
+ ) => {
+ console.log(`[App] HTTP Error: ${statusCode} ${statusText} for ${url}`);
+ stopThemeColorMonitoring();
+ };
+
+ const cleanupDomReady =
+ window.electronAPI?.webContents.onDomReady(handleDomReady);
+ const cleanupDidNavigate =
+ window.electronAPI?.webContents.onDidNavigate(handleDidNavigate);
+ const cleanupDidNavigateInPage =
+ window.electronAPI?.webContents.onDidNavigateInPage(
+ handleDidNavigateInPage
+ );
+ const cleanupDidStartLoading =
+ window.electronAPI?.webContents.onDidStartLoading(handleDidStartLoading);
+ const cleanupDidStopLoading =
+ window.electronAPI?.webContents.onDidStopLoading(handleDidStopLoading);
+ const cleanupRenderProcessGone =
+ window.electronAPI?.webContents.onRenderProcessGone(
+ handleRenderProcessGone
+ );
+ const cleanupDidFailLoad =
+ window.electronAPI?.webContents.onDidFailLoad(handleDidFailLoad);
+ const cleanupHttpError =
+ window.electronAPI?.webContents.onHttpError(handleHttpError);
+
+ setTimeout(() => {
+ updatePageInfo();
+ startThemeColorMonitoring();
+ }, 1000);
+
+ return () => {
+ stopThemeColorMonitoring();
+ if (cleanupDomReady) cleanupDomReady();
+ if (cleanupDidNavigate) cleanupDidNavigate();
+ if (cleanupDidNavigateInPage) cleanupDidNavigateInPage();
+ if (cleanupDidStartLoading) cleanupDidStartLoading();
+ if (cleanupDidStopLoading) cleanupDidStopLoading();
+ if (cleanupRenderProcessGone) cleanupRenderProcessGone();
+ if (cleanupDidFailLoad) cleanupDidFailLoad();
+ if (cleanupHttpError) cleanupHttpError();
+ };
+ }, []);
+
+ return {
+ currentUrl,
+ pageDomain,
+ pageTitle,
+ tabCount,
+ textColor,
+ themeColor,
+ };
+}
diff --git a/apps/browser/src/renderer/i18n/i18n-context.tsx b/apps/browser/src/renderer/i18n/i18n-context.tsx
new file mode 100644
index 0000000..d33cbe1
--- /dev/null
+++ b/apps/browser/src/renderer/i18n/i18n-context.tsx
@@ -0,0 +1,81 @@
+import {
+ createContext,
+ ReactNode,
+ useContext,
+ useEffect,
+ useMemo,
+ useState,
+} from "react";
+import {
+ EffectiveLanguage,
+ languageOptions,
+ LanguageState,
+ PreferredLanguage,
+ resolveEffectiveLanguage,
+} from "../../shared/language";
+import { translations, TranslationKey } from "./translations";
+
+interface I18nContextValue extends LanguageState {
+ setPreferredLanguage: (language: PreferredLanguage) => Promise;
+ t: (key: TranslationKey, values?: Record) => string;
+}
+
+const fallbackLanguageState: LanguageState = {
+ effectiveLanguage: resolveEffectiveLanguage(
+ "system",
+ navigator.language || "en-US"
+ ),
+ preferredLanguage: "system",
+ systemLanguage: resolveEffectiveLanguage("system", navigator.language || "en-US"),
+};
+
+const I18nContext = createContext(null);
+
+export function I18nProvider({ children }: { children: ReactNode }) {
+ const [languageState, setLanguageState] =
+ useState(fallbackLanguageState);
+
+ useEffect(() => {
+ window.electronAPI?.getLanguageState().then(setLanguageState);
+ const cleanup = window.electronAPI?.onLanguageChanged(setLanguageState);
+ return () => {
+ if (cleanup) cleanup();
+ };
+ }, []);
+
+ const value = useMemo(() => {
+ const t = (
+ key: TranslationKey,
+ values: Record = {}
+ ) => {
+ let text = translations[languageState.effectiveLanguage][key];
+ Object.entries(values).forEach(([name, value]) => {
+ text = text.replace(`{${name}}`, String(value));
+ });
+ return text;
+ };
+
+ return {
+ ...languageState,
+ setPreferredLanguage: async (language: PreferredLanguage) => {
+ const nextState =
+ await window.electronAPI?.setPreferredLanguage(language);
+ if (nextState) setLanguageState(nextState);
+ },
+ t,
+ };
+ }, [languageState]);
+
+ return {children};
+}
+
+export function useI18n(): I18nContextValue {
+ const context = useContext(I18nContext);
+ if (!context) {
+ throw new Error("useI18n must be used within I18nProvider");
+ }
+ return context;
+}
+
+export { languageOptions };
+export type { EffectiveLanguage, PreferredLanguage };
diff --git a/apps/browser/src/renderer/i18n/translations.ts b/apps/browser/src/renderer/i18n/translations.ts
new file mode 100644
index 0000000..13a62a3
--- /dev/null
+++ b/apps/browser/src/renderer/i18n/translations.ts
@@ -0,0 +1,70 @@
+import { EffectiveLanguage } from "../../shared/language";
+
+export const translations = {
+ en: {
+ addFavorite: "Add Favorite",
+ addToFavorites: "Add to Favorites",
+ appDescription: "A lightweight, elegant web browser",
+ about: "About",
+ back: "Back",
+ cancel: "Cancel",
+ contributionHelp:
+ "Do not see your language? Help translate aka-browser on GitHub.",
+ description: "Description",
+ done: "Done",
+ editFavorite: "Edit Favorite",
+ englishName: "English name",
+ enterTitle: "Enter title",
+ enterUrl: "Enter URL...",
+ favorites: "Favorites",
+ favoritesCount: "{count} items",
+ general: "General",
+ information: "Information",
+ language: "Language",
+ languageContribution: "Translation guide",
+ name: "Name",
+ noFavorites: "No favorites yet.",
+ noFavoritesHint: "Add your favorite sites from the menu.",
+ removeFromFavorites: "Remove from Favorites",
+ save: "Save",
+ settings: "Settings",
+ systemDefault: "System Default",
+ title: "Title",
+ url: "URL",
+ version: "Version",
+ },
+ ko: {
+ addFavorite: "μ¦κ²¨μ°ΎκΈ° μΆκ°",
+ addToFavorites: "μ¦κ²¨μ°ΎκΈ°μ μΆκ°",
+ appDescription: "κ°λ³κ³ μ°μν μΉ λΈλΌμ°μ ",
+ about: "μ 보",
+ back: "λ€λ‘",
+ cancel: "μ·¨μ",
+ contributionHelp:
+ "μνλ μΈμ΄κ° μλμ? GitHubμμ aka-browser λ²μμ μ°Έμ¬ν΄ μ£ΌμΈμ.",
+ description: "μ€λͺ
",
+ done: "μλ£",
+ editFavorite: "μ¦κ²¨μ°ΎκΈ° νΈμ§",
+ englishName: "μλ¬Έ μ΄λ¦",
+ enterTitle: "μ λͺ© μ
λ ₯",
+ enterUrl: "URL μ
λ ₯...",
+ favorites: "μ¦κ²¨μ°ΎκΈ°",
+ favoritesCount: "{count}κ°",
+ general: "μΌλ°",
+ information: "μ 보",
+ language: "μΈμ΄",
+ languageContribution: "λ²μ μ°Έμ¬ μλ΄",
+ name: "μ΄λ¦",
+ noFavorites: "μμ§ μ¦κ²¨μ°ΎκΈ°κ° μμ΅λλ€.",
+ noFavoritesHint: "λ©λ΄μμ μμ£Ό μ°λ μ¬μ΄νΈλ₯Ό μΆκ°νμΈμ.",
+ removeFromFavorites: "μ¦κ²¨μ°ΎκΈ°μμ μ κ±°",
+ save: "μ μ₯",
+ settings: "μ€μ ",
+ systemDefault: "μμ€ν
κΈ°λ³Έκ°",
+ title: "μ λͺ©",
+ url: "URL",
+ version: "λ²μ ",
+ },
+} satisfies Record>;
+
+export type TranslationKey = keyof typeof translations.en;
diff --git a/apps/browser/src/renderer/lib/app-utils.ts b/apps/browser/src/renderer/lib/app-utils.ts
new file mode 100644
index 0000000..c87d8ae
--- /dev/null
+++ b/apps/browser/src/renderer/lib/app-utils.ts
@@ -0,0 +1,75 @@
+export interface Bounds {
+ x: number;
+ y: number;
+ width: number;
+ height: number;
+}
+
+export function getLuminance(color: string): number {
+ let r: number;
+ let g: number;
+ let b: number;
+
+ if (color.startsWith("#")) {
+ const hex = color.replace("#", "");
+ r = parseInt(hex.substring(0, 2), 16);
+ g = parseInt(hex.substring(2, 4), 16);
+ b = parseInt(hex.substring(4, 6), 16);
+ } else if (color.startsWith("rgb")) {
+ const matches = color.match(/\d+/g);
+ if (!matches) return 0;
+ r = parseInt(matches[0]);
+ g = parseInt(matches[1]);
+ b = parseInt(matches[2]);
+ } else {
+ return 0;
+ }
+
+ const [rLinear, gLinear, bLinear] = [r, g, b].map((value) => {
+ const srgb = value / 255;
+ return srgb <= 0.03928
+ ? srgb / 12.92
+ : Math.pow((srgb + 0.055) / 1.055, 2.4);
+ });
+
+ return 0.2126 * rLinear + 0.7152 * gLinear + 0.0722 * bLinear;
+}
+
+export function getWebContentsBounds(
+ rect: DOMRect,
+ orientation: "portrait" | "landscape"
+): Bounds {
+ const statusBarHeight = 58;
+ const statusBarWidth = 58;
+
+ return {
+ x: Math.round(rect.x + (orientation === "landscape" ? statusBarWidth : 0)),
+ y: Math.round(rect.y + (orientation === "landscape" ? 0 : statusBarHeight)),
+ width: Math.round(
+ rect.width - (orientation === "landscape" ? statusBarWidth : 0)
+ ),
+ height: Math.round(
+ rect.height - (orientation === "landscape" ? 0 : statusBarHeight)
+ ),
+ };
+}
+
+export function normalizeNavigationUrl(url: string): string {
+ let finalUrl = url.trim();
+
+ if (
+ finalUrl.startsWith("http://") ||
+ finalUrl.startsWith("https://") ||
+ finalUrl.startsWith("file://")
+ ) {
+ return finalUrl;
+ }
+
+ const isLocalUrl =
+ /^(localhost|127\.\d+\.\d+\.\d+|192\.168\.\d+\.\d+|10\.\d+\.\d+\.\d+|172\.(1[6-9]|2\d|3[01])\.\d+\.\d+)(:\d+)?/i.test(
+ finalUrl
+ );
+
+ finalUrl = `${isLocalUrl ? "http" : "https"}://${finalUrl}`;
+ return finalUrl;
+}
diff --git a/apps/browser/src/renderer/main.tsx b/apps/browser/src/renderer/main.tsx
index a0741ce..795d3b6 100644
--- a/apps/browser/src/renderer/main.tsx
+++ b/apps/browser/src/renderer/main.tsx
@@ -1,10 +1,13 @@
import { StrictMode } from 'react';
import { createRoot } from 'react-dom/client';
import App from './app';
+import { I18nProvider } from './i18n/i18n-context';
import './index.css';
createRoot(document.getElementById('root')!).render(
-
+
+
+
);
diff --git a/apps/browser/src/shared/language.ts b/apps/browser/src/shared/language.ts
new file mode 100644
index 0000000..6d850b0
--- /dev/null
+++ b/apps/browser/src/shared/language.ts
@@ -0,0 +1,43 @@
+export type PreferredLanguage = "system" | "en" | "ko";
+export type EffectiveLanguage = "en" | "ko";
+
+export interface LanguageOption {
+ code: PreferredLanguage;
+ englishName: string;
+ nativeName: string;
+}
+
+export interface LanguageState {
+ effectiveLanguage: EffectiveLanguage;
+ preferredLanguage: PreferredLanguage;
+ systemLanguage: EffectiveLanguage;
+}
+
+export const languageOptions: LanguageOption[] = [
+ { code: "system", englishName: "System Default", nativeName: "System Default" },
+ { code: "en", englishName: "English", nativeName: "English" },
+ { code: "ko", englishName: "Korean", nativeName: "νκ΅μ΄" },
+];
+
+export function resolveEffectiveLanguage(
+ preferredLanguage: PreferredLanguage,
+ systemLocale: string
+): EffectiveLanguage {
+ if (preferredLanguage === "en" || preferredLanguage === "ko") {
+ return preferredLanguage;
+ }
+
+ return systemLocale.toLowerCase().startsWith("ko") ? "ko" : "en";
+}
+
+export function toChromiumLocale(language: EffectiveLanguage): string {
+ return language === "ko" ? "ko-KR" : "en-US";
+}
+
+export function toAcceptLanguage(language: EffectiveLanguage): string {
+ return language === "ko" ? "ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7" : "en-US,en;q=0.9";
+}
+
+export function isPreferredLanguage(value: unknown): value is PreferredLanguage {
+ return value === "system" || value === "en" || value === "ko";
+}
diff --git a/apps/browser/src/types/electron-api.d.ts b/apps/browser/src/types/electron-api.d.ts
index bba9e19..1b23eb7 100644
--- a/apps/browser/src/types/electron-api.d.ts
+++ b/apps/browser/src/types/electron-api.d.ts
@@ -35,6 +35,15 @@ interface Bookmark {
updatedAt: number;
}
+type PreferredLanguage = "system" | "en" | "ko";
+type EffectiveLanguage = "en" | "ko";
+
+interface LanguageState {
+ effectiveLanguage: EffectiveLanguage;
+ preferredLanguage: PreferredLanguage;
+ systemLanguage: EffectiveLanguage;
+}
+
export interface ElectronAPI {
platform: NodeJS.Platform;
closeWindow: () => void;
@@ -69,6 +78,9 @@ export interface ElectronAPI {
// App version
getAppVersion: () => Promise;
+ getLanguageState: () => Promise;
+ setPreferredLanguage: (language: PreferredLanguage) => Promise;
+ onLanguageChanged: (callback: (state: LanguageState) => void) => () => void;
// Tab management APIs
tabs: {
diff --git a/apps/browser/src/webview-preload.ts b/apps/browser/src/webview-preload.ts
index e5ad821..473560c 100644
--- a/apps/browser/src/webview-preload.ts
+++ b/apps/browser/src/webview-preload.ts
@@ -1,629 +1,14 @@
-// Preload script for WebContentsView (embedded web content)
-// This runs in the context of loaded web pages with limited privileges
-
-import { ipcRenderer, contextBridge } from "electron";
-
-// ============================================================================
-// Fullscreen API Polyfill (Plan 1.5 - Final)
-// ============================================================================
-// We need to polyfill the Fullscreen API so web pages think they're in fullscreen
-// even though the window doesn't actually go fullscreen
-
-console.log("[Preload] β Loaded - Fullscreen API polyfill active");
-
-// Track fullscreen state
-let isFullscreenActive = false;
-let fullscreenElement: Element | null = null;
-
-// Helper function to apply object-fit style to video elements
-function applyVideoFitStyle(fitValue: string) {
- const videos = document.querySelectorAll('video');
- videos.forEach((video) => {
- if (fitValue) {
- video.style.objectFit = fitValue;
- } else {
- video.style.objectFit = '';
- }
- });
-
- // Also observe for dynamically added videos
- if (fitValue === 'contain') {
- startVideoObserver();
- } else {
- stopVideoObserver();
- }
-}
-
-// MutationObserver to handle dynamically added videos
-let videoObserver: MutationObserver | null = null;
-
-function startVideoObserver() {
- if (videoObserver) return;
-
- videoObserver = new MutationObserver((mutations) => {
- mutations.forEach((mutation) => {
- mutation.addedNodes.forEach((node) => {
- if (node instanceof HTMLVideoElement) {
- node.style.objectFit = 'contain';
- } else if (node instanceof Element) {
- const videos = node.querySelectorAll('video');
- videos.forEach((video) => {
- (video as HTMLVideoElement).style.objectFit = 'contain';
- });
- }
- });
- });
- });
-
- videoObserver.observe(document.body, {
- childList: true,
- subtree: true,
- });
-}
-
-function stopVideoObserver() {
- if (videoObserver) {
- videoObserver.disconnect();
- videoObserver = null;
- }
-}
-
-// Listen for fullscreen state from main process
-ipcRenderer.on("set-fullscreen-state", (_event, state: boolean) => {
- const wasFullscreen = isFullscreenActive;
- isFullscreenActive = state;
-
- if (state && !wasFullscreen) {
- // Entering fullscreen
- fullscreenElement = document.documentElement; // Assume whole document
-
- // Apply object-fit: contain to all video elements to prevent cropping
- applyVideoFitStyle('contain');
-
- // Force a resize event to make sure the page knows about the new size
- window.dispatchEvent(new Event('resize'));
-
- const event = new Event("fullscreenchange", { bubbles: true });
- document.dispatchEvent(event);
- } else if (!state && wasFullscreen) {
- // Exiting fullscreen
- fullscreenElement = null;
-
- // Restore original object-fit style
- applyVideoFitStyle('');
-
- // Force a resize event
- window.dispatchEvent(new Event('resize'));
-
- const event = new Event("fullscreenchange", { bubbles: true });
- document.dispatchEvent(event);
- }
-});
-
-// Override fullscreenElement getter
-Object.defineProperty(Document.prototype, "fullscreenElement", {
- get: function(this: Document): Element | null {
- return fullscreenElement;
- },
- configurable: true,
-});
-
-// Override webkitFullscreenElement getter
-Object.defineProperty(Document.prototype, "webkitFullscreenElement", {
- get: function(this: Document): Element | null {
- return fullscreenElement;
- },
- configurable: true,
-});
-
-// Store original screen dimensions
-const originalScreenWidth = window.screen.width;
-const originalScreenHeight = window.screen.height;
-
-// Override screen.width and screen.height to match window size in fullscreen
-Object.defineProperty(window.screen, "width", {
- get: function(): number {
- // In fullscreen mode, return window size instead of actual screen size
- if (isFullscreenActive) {
- return window.innerWidth;
- }
- return originalScreenWidth;
- },
- configurable: true,
-});
-
-Object.defineProperty(window.screen, "height", {
- get: function(): number {
- // In fullscreen mode, return window size instead of actual screen size
- if (isFullscreenActive) {
- return window.innerHeight;
- }
- return originalScreenHeight;
- },
- configurable: true,
-});
-
-// Also override availWidth and availHeight
-Object.defineProperty(window.screen, "availWidth", {
- get: function(): number {
- if (isFullscreenActive) {
- return window.innerWidth;
- }
- return originalScreenWidth;
- },
- configurable: true,
-});
-
-Object.defineProperty(window.screen, "availHeight", {
- get: function(): number {
- if (isFullscreenActive) {
- return window.innerHeight;
- }
- return originalScreenHeight;
- },
- configurable: true,
-});
-
-console.log("[Preload] β Fullscreen API polyfill installed (with screen size override)");
-
-// ============================================================================
-// Theme Color Extraction
-// ============================================================================
-
-// Extract theme color safely when DOM is ready
-function extractThemeColor(): string | null {
- try {
- // Check for meta theme-color tag
- const metaThemeColor = document.querySelector('meta[name="theme-color"]');
- if (metaThemeColor) {
- const content = metaThemeColor.getAttribute("content");
- if (content) return content;
- }
-
- // Fallback to body background color
- const bodyBg = window.getComputedStyle(document.body).backgroundColor;
- if (bodyBg && bodyBg !== "rgba(0, 0, 0, 0)" && bodyBg !== "transparent") {
- return bodyBg;
- }
-
- return null;
- } catch (error) {
- return null;
- }
-}
-
-// Send theme color to main process when available
-function notifyThemeColor() {
- const themeColor = extractThemeColor();
- if (themeColor) {
- // Extract domain from current URL
- let domain = "";
- try {
- domain = window.location.hostname;
- } catch (error) {
- // Fallback if hostname is not accessible
- domain = "";
- }
-
- ipcRenderer.send("webview-theme-color-extracted", {
- themeColor,
- domain,
- });
- }
-}
-
-// Setup observer and notification when DOM is ready
-function setupThemeColorMonitoring() {
- // Initial notification
- setTimeout(notifyThemeColor, 100);
-
- // Watch for meta tag changes (some sites update theme-color dynamically)
- // Only observe to avoid excessive body re-renders
- try {
- if (document.head) {
- const observer = new MutationObserver((mutations) => {
- // Only notify if meta tag with name="theme-color" was actually changed
- const hasThemeColorChange = mutations.some((mutation) => {
- if (
- mutation.type === "attributes" &&
- mutation.target.nodeName === "META"
- ) {
- const meta = mutation.target as HTMLMetaElement;
- return meta.name === "theme-color";
- }
- if (mutation.type === "childList") {
- return Array.from(mutation.addedNodes).some(
- (node) =>
- node.nodeName === "META" &&
- (node as HTMLMetaElement).name === "theme-color"
- );
- }
- return false;
- });
-
- if (hasThemeColorChange) {
- notifyThemeColor();
- }
- });
-
- // Only observe , not the entire document
- observer.observe(document.head, {
- childList: true,
- subtree: false,
- attributes: true,
- attributeFilter: ["content"],
- });
- }
- } catch (error) {
- // Silently ignore if observer setup fails
- }
-}
-
-// Track current orientation
-let currentOrientation: "portrait" | "landscape" = "portrait";
-
-// Shadow DOM container reference for cleanup
-let shadowContainer: HTMLElement | null = null;
-
-// MutationObserver reference for cleanup
-let maskProtectionObserver: MutationObserver | null = null;
-
-// Inject corner masks using Shadow DOM for complete style isolation
-function injectCornerMask() {
- // Disconnect existing observer
- if (maskProtectionObserver) {
- maskProtectionObserver.disconnect();
- maskProtectionObserver = null;
- }
-
- // Remove existing container if present (check both body and html)
- const existingContainers = document.querySelectorAll("#webview-corner-mask-container");
- existingContainers.forEach(container => {
- if (container.parentNode) {
- container.parentNode.removeChild(container);
- }
- });
-
- shadowContainer = null;
-
- // Create container element
- const container = document.createElement("div");
- container.id = "webview-corner-mask-container";
- container.setAttribute("data-webview-mask", "true");
-
- // Container styles (applied to light DOM)
- container.style.cssText = `
- position: fixed !important;
- top: 0 !important;
- left: 0 !important;
- width: 100% !important;
- height: 100% !important;
- pointer-events: none !important;
- z-index: 2147483647 !important;
- overflow: hidden !important;
- `;
-
- // Create Shadow DOM for complete style isolation
- const shadow = container.attachShadow({ mode: "closed" });
-
- // Create style element inside Shadow DOM
- const style = document.createElement("style");
-
- if (currentOrientation === "portrait") {
- // Portrait mode: bottom-left and bottom-right corners
- style.textContent = `
- :host {
- position: fixed;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- pointer-events: none;
- }
-
- .corner-mask {
- position: absolute;
- width: 48px;
- height: 48px;
- pointer-events: none;
- }
-
- .corner-mask-bottom-left {
- bottom: -1px;
- left: -1px;
- background:
- radial-gradient(circle at 44px 1px, transparent 32px, #000100 32px, #000100 38px, transparent 40px),
- radial-gradient(circle at 41px 0px, transparent 34px, #2b2c2c 30px);
- background-position: -11px 14px;
- background-repeat: no-repeat;
- }
-
- .corner-mask-bottom-right {
- bottom: -1px;
- right: -1px;
- background:
- radial-gradient(circle at 2px 1px, transparent 32px, #000100 32px, #000100 38px, transparent 40px),
- radial-gradient(circle at 0px 1px, transparent 40px, #2b2c2c 40px);
- background-position: 13px 14px;
- background-repeat: no-repeat;
- }
- `;
-
- // Create mask elements
- const maskLeft = document.createElement("div");
- maskLeft.className = "corner-mask corner-mask-bottom-left";
-
- const maskRight = document.createElement("div");
- maskRight.className = "corner-mask corner-mask-bottom-right";
-
- shadow.appendChild(style);
- shadow.appendChild(maskLeft);
- shadow.appendChild(maskRight);
- } else {
- // Landscape mode: top-right and bottom-right corners
- style.textContent = `
- :host {
- position: fixed;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- pointer-events: none;
- }
-
- .corner-mask {
- position: absolute;
- width: 48px;
- height: 48px;
- pointer-events: none;
- }
-
- .corner-mask-top-right {
- top: -1px;
- right: -1px;
- background:
- radial-gradient(circle at 2px 44px, transparent 32px, #000100 32px, #000100 38px, transparent 40px),
- radial-gradient(circle at 0px 47px, transparent 34px, #2b2c2c 30px);
- background-position: 13px -11px;
- background-repeat: no-repeat;
- }
-
- .corner-mask-bottom-right {
- bottom: -1px;
- right: -1px;
- background:
- radial-gradient(circle at 2px 1px, transparent 32px, #000100 32px, #000100 38px, transparent 40px),
- radial-gradient(circle at 0px 1px, transparent 40px, #2b2c2c 40px);
- background-position: 13px 14px;
- background-repeat: no-repeat;
- }
- `;
-
- // Create mask elements
- const maskTopRight = document.createElement("div");
- maskTopRight.className = "corner-mask corner-mask-top-right";
-
- const maskBottomRight = document.createElement("div");
- maskBottomRight.className = "corner-mask corner-mask-bottom-right";
-
- shadow.appendChild(style);
- shadow.appendChild(maskTopRight);
- shadow.appendChild(maskBottomRight);
- }
-
- // Store reference for cleanup
- shadowContainer = container;
-
- // Insert into DOM
- const insertContainer = () => {
- if (document.body) {
- document.body.appendChild(container);
- } else if (document.documentElement) {
- document.documentElement.appendChild(container);
- } else {
- // Wait for document to be ready
- const observer = new MutationObserver(() => {
- if (document.body) {
- document.body.appendChild(container);
- observer.disconnect();
- } else if (document.documentElement) {
- document.documentElement.appendChild(container);
- observer.disconnect();
- }
- });
- observer.observe(document, {
- childList: true,
- subtree: true,
- });
- }
- };
-
- insertContainer();
-
- // Setup MutationObserver to restore if removed by page scripts
- setupMaskProtection();
-}
-
-// Protect corner mask from being removed by page scripts
-function setupMaskProtection() {
- // Don't create duplicate observers
- if (maskProtectionObserver) {
- maskProtectionObserver.disconnect();
- }
-
- // Debounce restoration to avoid infinite loops
- let restorationTimeout: NodeJS.Timeout | null = null;
-
- maskProtectionObserver = new MutationObserver((mutations) => {
- // Check if our container was removed
- const containerExists = document.getElementById("webview-corner-mask-container");
-
- if (!containerExists && shadowContainer) {
- // Container was removed, schedule restoration
- if (restorationTimeout) {
- clearTimeout(restorationTimeout);
- }
-
- restorationTimeout = setTimeout(() => {
- // Re-inject if still missing
- if (!document.getElementById("webview-corner-mask-container")) {
- injectCornerMask();
- }
- }, 100);
- }
- });
-
- // Observe both body and documentElement for removals
- if (document.body) {
- maskProtectionObserver.observe(document.body, {
- childList: true,
- subtree: false, // Only watch direct children
- });
- }
- if (document.documentElement) {
- maskProtectionObserver.observe(document.documentElement, {
- childList: true,
- subtree: false, // Only watch direct children
- });
- }
-}
-
-// Listen for orientation changes from main process
-ipcRenderer.on("orientation-changed", (_event, orientation: "portrait" | "landscape") => {
- currentOrientation = orientation;
- injectCornerMask();
-});
-
-// Request initial orientation from main process
-ipcRenderer.invoke("get-orientation").then((orientation: "portrait" | "landscape") => {
- currentOrientation = orientation;
- injectCornerMask();
-}).catch(() => {
- // Fallback to portrait if request fails
- injectCornerMask();
-});
-
-// Inject corner mask immediately with default orientation
-injectCornerMask();
-
-// Wait for DOM to be ready for theme monitoring
-if (document.readyState === "loading") {
- document.addEventListener("DOMContentLoaded", () => {
- setupThemeColorMonitoring();
- // Re-inject to ensure it's still there after DOM is ready
- injectCornerMask();
- });
-} else {
- // DOM is already ready
- setupThemeColorMonitoring();
- // Re-inject to ensure it's still there
- injectCornerMask();
-}
-
-// Also check when page is fully loaded
-window.addEventListener("load", () => {
- setTimeout(notifyThemeColor, 200);
- // Re-inject one more time to ensure persistence
- injectCornerMask();
-});
-
-// Trackpad gesture detection for navigation
-function setupNavigationGestures() {
- let isGesturing = false;
- let gestureStartX = 0;
- let gestureStartY = 0;
- let accumulatedDeltaX = 0;
- let accumulatedDeltaY = 0;
- const GESTURE_THRESHOLD = 100; // Pixels to trigger navigation
- const VERTICAL_TOLERANCE = 50; // Allow some vertical movement
-
- window.addEventListener(
- "wheel",
- (event: WheelEvent) => {
- // Only handle horizontal gestures on macOS trackpad
- // Trackpad gestures have ctrlKey set to false and are smooth
- if (Math.abs(event.deltaX) < 1) return;
-
- // Detect start of gesture (large initial delta)
- if (!isGesturing && Math.abs(event.deltaX) > 4) {
- isGesturing = true;
- gestureStartX = event.pageX;
- gestureStartY = event.pageY;
- accumulatedDeltaX = 0;
- accumulatedDeltaY = 0;
- }
-
- if (isGesturing) {
- accumulatedDeltaX += event.deltaX;
- accumulatedDeltaY += Math.abs(event.deltaY);
-
- // Check if gesture is primarily horizontal
- if (accumulatedDeltaY > VERTICAL_TOLERANCE) {
- // Too much vertical movement, cancel gesture
- isGesturing = false;
- return;
- }
-
- // Swipe right (negative deltaX) = go back
- if (accumulatedDeltaX < -GESTURE_THRESHOLD) {
- event.preventDefault();
- ipcRenderer.send("webview-navigate-back");
- isGesturing = false;
- accumulatedDeltaX = 0;
- accumulatedDeltaY = 0;
- }
- // Swipe left (positive deltaX) = go forward
- else if (accumulatedDeltaX > GESTURE_THRESHOLD) {
- event.preventDefault();
- ipcRenderer.send("webview-navigate-forward");
- isGesturing = false;
- accumulatedDeltaX = 0;
- accumulatedDeltaY = 0;
- }
- }
- },
- { passive: false }
- );
-
- // Reset gesture state when wheel event stops
- let gestureTimeout: NodeJS.Timeout | null = null;
- window.addEventListener("wheel", () => {
- if (gestureTimeout) clearTimeout(gestureTimeout);
- gestureTimeout = setTimeout(() => {
- isGesturing = false;
- accumulatedDeltaX = 0;
- accumulatedDeltaY = 0;
- }, 100);
- });
-}
-
-// Setup gesture detection immediately
-setupNavigationGestures();
-
-// ============================================================================
-// Expose Bookmark API to webview (for blank-page.html)
-// ============================================================================
-
-contextBridge.exposeInMainWorld("electronAPI", {
- bookmarks: {
- getAll: () => ipcRenderer.invoke("bookmarks-get-all"),
- add: (title: string, url: string, favicon?: string) =>
- ipcRenderer.invoke("bookmarks-add", title, url, favicon),
- remove: (id: string) => ipcRenderer.invoke("bookmarks-remove", id),
- update: (id: string, updates: { title?: string; url?: string; favicon?: string }) =>
- ipcRenderer.invoke("bookmarks-update", id, updates),
- clear: () => ipcRenderer.invoke("bookmarks-clear"),
- onUpdate: (callback: () => void) => {
- const listener = () => callback();
- ipcRenderer.on("bookmarks-updated", listener);
- return () => ipcRenderer.removeListener("bookmarks-updated", listener);
- },
- },
- favicon: {
- get: (url: string) => ipcRenderer.invoke("favicon-get", url),
- getWithFallback: (pageUrl: string) => ipcRenderer.invoke("favicon-get-with-fallback", pageUrl),
- isCached: (url: string) => ipcRenderer.invoke("favicon-is-cached", url),
- clearCache: () => ipcRenderer.invoke("favicon-clear-cache"),
- getCacheSize: () => ipcRenderer.invoke("favicon-get-cache-size"),
- },
-});
+import { contextBridge, ipcRenderer } from "electron";
+import { installCornerMask } from "./webview/corner-mask";
+import { exposeWebviewApi } from "./webview/exposed-api";
+import { installFullscreenPolyfill } from "./webview/fullscreen-polyfill";
+import { installNavigationGestures } from "./webview/navigation-gestures";
+import { installThemeColorMonitoring } from "./webview/theme-color";
+
+console.log("[Preload] Loaded webview preload");
+
+installFullscreenPolyfill(ipcRenderer);
+installThemeColorMonitoring(ipcRenderer);
+installCornerMask(ipcRenderer);
+installNavigationGestures(ipcRenderer);
+exposeWebviewApi(contextBridge, ipcRenderer);
diff --git a/apps/browser/src/webview/corner-mask.ts b/apps/browser/src/webview/corner-mask.ts
new file mode 100644
index 0000000..acf9440
--- /dev/null
+++ b/apps/browser/src/webview/corner-mask.ts
@@ -0,0 +1,178 @@
+import type { IpcRenderer } from "electron";
+
+let currentOrientation: "portrait" | "landscape" = "portrait";
+let shadowContainer: HTMLElement | null = null;
+let maskProtectionObserver: MutationObserver | null = null;
+
+export function installCornerMask(ipcRenderer: IpcRenderer): void {
+ ipcRenderer.on(
+ "orientation-changed",
+ (_event, orientation: "portrait" | "landscape") => {
+ currentOrientation = orientation;
+ injectCornerMask();
+ }
+ );
+
+ ipcRenderer
+ .invoke("get-orientation")
+ .then((orientation: "portrait" | "landscape") => {
+ currentOrientation = orientation;
+ injectCornerMask();
+ })
+ .catch(injectCornerMask);
+
+ injectCornerMask();
+
+ const reinject = () => injectCornerMask();
+ if (document.readyState === "loading") {
+ document.addEventListener("DOMContentLoaded", reinject);
+ } else {
+ reinject();
+ }
+ window.addEventListener("load", reinject);
+}
+
+function injectCornerMask(): void {
+ maskProtectionObserver?.disconnect();
+ maskProtectionObserver = null;
+
+ document
+ .querySelectorAll("#webview-corner-mask-container")
+ .forEach((container) => container.parentNode?.removeChild(container));
+
+ const container = document.createElement("div");
+ container.id = "webview-corner-mask-container";
+ container.setAttribute("data-webview-mask", "true");
+ container.style.cssText = [
+ "position: fixed !important",
+ "top: 0 !important",
+ "left: 0 !important",
+ "width: 100% !important",
+ "height: 100% !important",
+ "pointer-events: none !important",
+ "z-index: 2147483647 !important",
+ "overflow: hidden !important",
+ ].join(";");
+
+ const shadow = container.attachShadow({ mode: "closed" });
+ const style = document.createElement("style");
+ style.textContent =
+ currentOrientation === "portrait"
+ ? portraitMaskStyles()
+ : landscapeMaskStyles();
+ shadow.appendChild(style);
+ createMaskElements(shadow);
+ shadowContainer = container;
+ insertContainer(container);
+ setupMaskProtection();
+}
+
+function createMaskElements(shadow: ShadowRoot): void {
+ const classes =
+ currentOrientation === "portrait"
+ ? ["bottom-left", "bottom-right"]
+ : ["top-right", "bottom-right"];
+
+ classes.forEach((position) => {
+ const mask = document.createElement("div");
+ mask.className = `corner-mask corner-mask-${position}`;
+ shadow.appendChild(mask);
+ });
+}
+
+function insertContainer(container: HTMLElement): void {
+ if (document.body) {
+ document.body.appendChild(container);
+ return;
+ }
+
+ if (document.documentElement) {
+ document.documentElement.appendChild(container);
+ return;
+ }
+
+ const observer = new MutationObserver(() => {
+ const parent = document.body || document.documentElement;
+ if (!parent) return;
+ parent.appendChild(container);
+ observer.disconnect();
+ });
+ observer.observe(document, { childList: true, subtree: true });
+}
+
+function setupMaskProtection(): void {
+ maskProtectionObserver?.disconnect();
+ let restorationTimeout: ReturnType | null = null;
+
+ maskProtectionObserver = new MutationObserver(() => {
+ const containerExists = document.getElementById(
+ "webview-corner-mask-container"
+ );
+ if (containerExists || !shadowContainer) return;
+
+ if (restorationTimeout) clearTimeout(restorationTimeout);
+ restorationTimeout = setTimeout(() => {
+ if (!document.getElementById("webview-corner-mask-container")) {
+ injectCornerMask();
+ }
+ }, 100);
+ });
+
+ [document.body, document.documentElement].forEach((target) => {
+ if (target) {
+ maskProtectionObserver?.observe(target, {
+ childList: true,
+ subtree: false,
+ });
+ }
+ });
+}
+
+function baseMaskStyles(): string {
+ return `
+ :host { position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; }
+ .corner-mask { position: absolute; width: 48px; height: 48px; pointer-events: none; }
+ `;
+}
+
+function portraitMaskStyles(): string {
+ return `${baseMaskStyles()}
+ .corner-mask-bottom-left {
+ bottom: -1px; left: -1px;
+ background:
+ radial-gradient(circle at 44px 1px, transparent 32px, #000100 32px, #000100 38px, transparent 40px),
+ radial-gradient(circle at 41px 0px, transparent 34px, #2b2c2c 30px);
+ background-position: -11px 14px;
+ background-repeat: no-repeat;
+ }
+ .corner-mask-bottom-right {
+ bottom: -1px; right: -1px;
+ background:
+ radial-gradient(circle at 2px 1px, transparent 32px, #000100 32px, #000100 38px, transparent 40px),
+ radial-gradient(circle at 0px 1px, transparent 40px, #2b2c2c 40px);
+ background-position: 13px 14px;
+ background-repeat: no-repeat;
+ }
+ `;
+}
+
+function landscapeMaskStyles(): string {
+ return `${baseMaskStyles()}
+ .corner-mask-top-right {
+ top: -1px; right: -1px;
+ background:
+ radial-gradient(circle at 2px 44px, transparent 32px, #000100 32px, #000100 38px, transparent 40px),
+ radial-gradient(circle at 0px 47px, transparent 34px, #2b2c2c 30px);
+ background-position: 13px -11px;
+ background-repeat: no-repeat;
+ }
+ .corner-mask-bottom-right {
+ bottom: -1px; right: -1px;
+ background:
+ radial-gradient(circle at 2px 1px, transparent 32px, #000100 32px, #000100 38px, transparent 40px),
+ radial-gradient(circle at 0px 1px, transparent 40px, #2b2c2c 40px);
+ background-position: 13px 14px;
+ background-repeat: no-repeat;
+ }
+ `;
+}
diff --git a/apps/browser/src/webview/exposed-api.ts b/apps/browser/src/webview/exposed-api.ts
new file mode 100644
index 0000000..e56ae77
--- /dev/null
+++ b/apps/browser/src/webview/exposed-api.ts
@@ -0,0 +1,33 @@
+import type { ContextBridge, IpcRenderer } from "electron";
+
+export function exposeWebviewApi(
+ contextBridge: ContextBridge,
+ ipcRenderer: IpcRenderer
+): void {
+ contextBridge.exposeInMainWorld("electronAPI", {
+ bookmarks: {
+ getAll: () => ipcRenderer.invoke("bookmarks-get-all"),
+ add: (title: string, url: string, favicon?: string) =>
+ ipcRenderer.invoke("bookmarks-add", title, url, favicon),
+ remove: (id: string) => ipcRenderer.invoke("bookmarks-remove", id),
+ update: (
+ id: string,
+ updates: { title?: string; url?: string; favicon?: string }
+ ) => ipcRenderer.invoke("bookmarks-update", id, updates),
+ clear: () => ipcRenderer.invoke("bookmarks-clear"),
+ onUpdate: (callback: () => void) => {
+ const listener = () => callback();
+ ipcRenderer.on("bookmarks-updated", listener);
+ return () => ipcRenderer.removeListener("bookmarks-updated", listener);
+ },
+ },
+ favicon: {
+ get: (url: string) => ipcRenderer.invoke("favicon-get", url),
+ getWithFallback: (pageUrl: string) =>
+ ipcRenderer.invoke("favicon-get-with-fallback", pageUrl),
+ isCached: (url: string) => ipcRenderer.invoke("favicon-is-cached", url),
+ clearCache: () => ipcRenderer.invoke("favicon-clear-cache"),
+ getCacheSize: () => ipcRenderer.invoke("favicon-get-cache-size"),
+ },
+ });
+}
diff --git a/apps/browser/src/webview/fullscreen-polyfill.ts b/apps/browser/src/webview/fullscreen-polyfill.ts
new file mode 100644
index 0000000..6fa6d73
--- /dev/null
+++ b/apps/browser/src/webview/fullscreen-polyfill.ts
@@ -0,0 +1,105 @@
+import type { IpcRenderer } from "electron";
+
+let isFullscreenActive = false;
+let fullscreenElement: Element | null = null;
+let videoObserver: MutationObserver | null = null;
+
+export function installFullscreenPolyfill(ipcRenderer: IpcRenderer): void {
+ ipcRenderer.on("set-fullscreen-state", (_event, state: boolean) => {
+ const wasFullscreen = isFullscreenActive;
+ isFullscreenActive = state;
+
+ if (state && !wasFullscreen) {
+ fullscreenElement = document.documentElement;
+ applyVideoFitStyle("contain");
+ dispatchFullscreenEvents();
+ } else if (!state && wasFullscreen) {
+ fullscreenElement = null;
+ applyVideoFitStyle("");
+ dispatchFullscreenEvents();
+ }
+ });
+
+ Object.defineProperty(Document.prototype, "fullscreenElement", {
+ get: () => fullscreenElement,
+ configurable: true,
+ });
+ Object.defineProperty(Document.prototype, "webkitFullscreenElement", {
+ get: () => fullscreenElement,
+ configurable: true,
+ });
+
+ overrideScreenDimensions();
+}
+
+function applyVideoFitStyle(fitValue: string): void {
+ document.querySelectorAll("video").forEach((video) => {
+ video.style.objectFit = fitValue;
+ });
+
+ if (fitValue === "contain") {
+ startVideoObserver();
+ } else {
+ stopVideoObserver();
+ }
+}
+
+function startVideoObserver(): void {
+ if (videoObserver) return;
+
+ videoObserver = new MutationObserver((mutations) => {
+ mutations.forEach((mutation) => {
+ mutation.addedNodes.forEach((node) => {
+ if (node instanceof HTMLVideoElement) {
+ node.style.objectFit = "contain";
+ } else if (node instanceof Element) {
+ node.querySelectorAll("video").forEach((video) => {
+ video.style.objectFit = "contain";
+ });
+ }
+ });
+ });
+ });
+
+ videoObserver.observe(document.body, {
+ childList: true,
+ subtree: true,
+ });
+}
+
+function stopVideoObserver(): void {
+ if (!videoObserver) return;
+ videoObserver.disconnect();
+ videoObserver = null;
+}
+
+function dispatchFullscreenEvents(): void {
+ window.dispatchEvent(new Event("resize"));
+ document.dispatchEvent(new Event("fullscreenchange", { bubbles: true }));
+}
+
+function overrideScreenDimensions(): void {
+ const originalScreenWidth = window.screen.width;
+ const originalScreenHeight = window.screen.height;
+ const readWidth = () =>
+ isFullscreenActive ? window.innerWidth : originalScreenWidth;
+ const readHeight = () =>
+ isFullscreenActive ? window.innerHeight : originalScreenHeight;
+
+ Object.defineProperty(window.screen, "width", {
+ get: readWidth,
+ configurable: true,
+ });
+ Object.defineProperty(window.screen, "height", {
+ get: readHeight,
+ configurable: true,
+ });
+ Object.defineProperty(window.screen, "availWidth", {
+ get: readWidth,
+ configurable: true,
+ });
+ Object.defineProperty(window.screen, "availHeight", {
+ get: readHeight,
+ configurable: true,
+ });
+}
diff --git a/apps/browser/src/webview/navigation-gestures.ts b/apps/browser/src/webview/navigation-gestures.ts
new file mode 100644
index 0000000..7ad1601
--- /dev/null
+++ b/apps/browser/src/webview/navigation-gestures.ts
@@ -0,0 +1,57 @@
+import type { IpcRenderer } from "electron";
+
+export function installNavigationGestures(ipcRenderer: IpcRenderer): void {
+ let isGesturing = false;
+ let accumulatedDeltaX = 0;
+ let accumulatedDeltaY = 0;
+ let gestureTimeout: ReturnType | null = null;
+ const gestureThreshold = 100;
+ const verticalTolerance = 50;
+
+ window.addEventListener(
+ "wheel",
+ (event: WheelEvent) => {
+ if (Math.abs(event.deltaX) < 1) return;
+
+ if (!isGesturing && Math.abs(event.deltaX) > 4) {
+ isGesturing = true;
+ accumulatedDeltaX = 0;
+ accumulatedDeltaY = 0;
+ }
+
+ if (isGesturing) {
+ accumulatedDeltaX += event.deltaX;
+ accumulatedDeltaY += Math.abs(event.deltaY);
+
+ if (accumulatedDeltaY > verticalTolerance) {
+ isGesturing = false;
+ return;
+ }
+
+ if (accumulatedDeltaX < -gestureThreshold) {
+ event.preventDefault();
+ ipcRenderer.send("webview-navigate-back");
+ isGesturing = false;
+ accumulatedDeltaX = 0;
+ accumulatedDeltaY = 0;
+ } else if (accumulatedDeltaX > gestureThreshold) {
+ event.preventDefault();
+ ipcRenderer.send("webview-navigate-forward");
+ isGesturing = false;
+ accumulatedDeltaX = 0;
+ accumulatedDeltaY = 0;
+ }
+ }
+ },
+ { passive: false }
+ );
+
+ window.addEventListener("wheel", () => {
+ if (gestureTimeout) clearTimeout(gestureTimeout);
+ gestureTimeout = setTimeout(() => {
+ isGesturing = false;
+ accumulatedDeltaX = 0;
+ accumulatedDeltaY = 0;
+ }, 100);
+ });
+}
diff --git a/apps/browser/src/webview/theme-color.ts b/apps/browser/src/webview/theme-color.ts
new file mode 100644
index 0000000..6fb913f
--- /dev/null
+++ b/apps/browser/src/webview/theme-color.ts
@@ -0,0 +1,90 @@
+import type { IpcRenderer } from "electron";
+
+export function installThemeColorMonitoring(ipcRenderer: IpcRenderer): void {
+ const setup = () => {
+ setupThemeColorMonitoring(ipcRenderer);
+ };
+
+ if (document.readyState === "loading") {
+ document.addEventListener("DOMContentLoaded", setup);
+ } else {
+ setup();
+ }
+
+ window.addEventListener("load", () => {
+ setTimeout(() => notifyThemeColor(ipcRenderer), 200);
+ });
+}
+
+function extractThemeColor(): string | null {
+ try {
+ const metaThemeColor = document.querySelector('meta[name="theme-color"]');
+ const content = metaThemeColor?.getAttribute("content");
+ if (content) return content;
+
+ const bodyBg = window.getComputedStyle(document.body).backgroundColor;
+ if (bodyBg && bodyBg !== "rgba(0, 0, 0, 0)" && bodyBg !== "transparent") {
+ return bodyBg;
+ }
+ return null;
+ } catch {
+ return null;
+ }
+}
+
+function notifyThemeColor(ipcRenderer: IpcRenderer): void {
+ const themeColor = extractThemeColor();
+ if (!themeColor) return;
+
+ let domain = "";
+ try {
+ domain = window.location.hostname;
+ } catch {
+ domain = "";
+ }
+
+ ipcRenderer.send("webview-theme-color-extracted", {
+ themeColor,
+ domain,
+ });
+}
+
+function setupThemeColorMonitoring(ipcRenderer: IpcRenderer): void {
+ setTimeout(() => notifyThemeColor(ipcRenderer), 100);
+
+ try {
+ if (!document.head) return;
+
+ const observer = new MutationObserver((mutations) => {
+ const hasThemeColorChange = mutations.some((mutation) => {
+ if (
+ mutation.type === "attributes" &&
+ mutation.target.nodeName === "META"
+ ) {
+ return (mutation.target as HTMLMetaElement).name === "theme-color";
+ }
+
+ if (mutation.type === "childList") {
+ return Array.from(mutation.addedNodes).some(
+ (node) =>
+ node.nodeName === "META" &&
+ (node as HTMLMetaElement).name === "theme-color"
+ );
+ }
+
+ return false;
+ });
+
+ if (hasThemeColorChange) notifyThemeColor(ipcRenderer);
+ });
+
+ observer.observe(document.head, {
+ childList: true,
+ subtree: false,
+ attributes: true,
+ attributeFilter: ["content"],
+ });
+ } catch {
+ // Ignore pages that block observer setup.
+ }
+}
diff --git a/apps/browser/tsconfig.json b/apps/browser/tsconfig.json
index dbe856d..56e2fc8 100644
--- a/apps/browser/tsconfig.json
+++ b/apps/browser/tsconfig.json
@@ -17,6 +17,7 @@
"src/main.ts",
"src/main/**/*.ts",
"src/preload.ts",
+ "src/shared/**/*.ts",
"src/types/**/*.d.ts"
],
"exclude": [
diff --git a/apps/browser/tsconfig.renderer.json b/apps/browser/tsconfig.renderer.json
index ff863d5..c25f596 100644
--- a/apps/browser/tsconfig.renderer.json
+++ b/apps/browser/tsconfig.renderer.json
@@ -20,6 +20,11 @@
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true
},
- "include": ["src/renderer", "src/types/**/*.d.ts", "src/renderer/vite-env.d.ts"],
+ "include": [
+ "src/renderer",
+ "src/shared/**/*.ts",
+ "src/types/**/*.d.ts",
+ "src/renderer/vite-env.d.ts"
+ ],
"references": [{ "path": "./tsconfig.node.json" }]
}
diff --git a/apps/browser/tsconfig.webview.json b/apps/browser/tsconfig.webview.json
index 059c539..8a25bb9 100644
--- a/apps/browser/tsconfig.webview.json
+++ b/apps/browser/tsconfig.webview.json
@@ -13,6 +13,6 @@
"types": ["node"],
"composite": true
},
- "include": ["src/webview-preload.ts"],
+ "include": ["src/webview-preload.ts", "src/webview/**/*.ts"],
"exclude": ["node_modules", "dist", "dist-renderer", "release"]
}
diff --git a/docs/TRANSLATING.md b/docs/TRANSLATING.md
new file mode 100644
index 0000000..4ae81bc
--- /dev/null
+++ b/docs/TRANSLATING.md
@@ -0,0 +1,15 @@
+# Translating aka-browser
+
+aka-browser keeps user-interface strings in JSON-like TypeScript resources at:
+
+- `apps/browser/src/renderer/i18n/translations.ts`
+
+## Add Or Update A Language
+
+1. Add the language code to `apps/browser/src/shared/language.ts`.
+2. Add every translation key to `translations.ts`.
+3. Add the language to the Settings language list.
+4. Run `pnpm check-types` and `pnpm build`.
+
+English names should stay visible in the language picker so users can identify
+languages even when they cannot read the native name yet.
diff --git a/package.json b/package.json
index b3e2aa6..398119c 100644
--- a/package.json
+++ b/package.json
@@ -9,10 +9,26 @@
"check-types": "turbo run check-types"
},
"devDependencies": {
- "prettier": "^3.6.2",
- "turbo": "^2.5.8",
+ "prettier": "^3.8.3",
+ "turbo": "^2.9.14",
"typescript": "5.9.2"
},
+ "pnpm": {
+ "overrides": {
+ "@isaacs/brace-expansion": "5.0.1",
+ "ajv": "6.14.0",
+ "brace-expansion@<1.1.13": "1.1.13",
+ "brace-expansion@>=2.0.0 <2.0.3": "2.0.3",
+ "js-yaml": "4.1.1",
+ "lodash": "4.18.1",
+ "minimatch@<3.1.4": "3.1.4",
+ "minimatch@>=5.0.0 <5.1.8": "5.1.8",
+ "minimatch@>=9.0.0 <9.0.6": "9.0.9",
+ "minimatch@>=10.0.0 <10.2.1": "10.2.5",
+ "@xmldom/xmldom": "0.8.13",
+ "picomatch": "4.0.4"
+ }
+ },
"packageManager": "pnpm@9.0.0",
"engines": {
"node": ">=18"
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index cb27c4f..b0a7b82 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -4,16 +4,30 @@ settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
+overrides:
+ '@isaacs/brace-expansion': 5.0.1
+ ajv: 6.14.0
+ brace-expansion@<1.1.13: 1.1.13
+ brace-expansion@>=2.0.0 <2.0.3: 2.0.3
+ js-yaml: 4.1.1
+ lodash: 4.18.1
+ minimatch@<3.1.4: 3.1.4
+ minimatch@>=5.0.0 <5.1.8: 5.1.8
+ minimatch@>=9.0.0 <9.0.6: 9.0.9
+ minimatch@>=10.0.0 <10.2.1: 10.2.5
+ '@xmldom/xmldom': 0.8.13
+ picomatch: 4.0.4
+
importers:
.:
devDependencies:
prettier:
- specifier: ^3.6.2
- version: 3.6.2
+ specifier: ^3.8.3
+ version: 3.8.3
turbo:
- specifier: ^2.5.8
- version: 2.5.8
+ specifier: ^2.9.14
+ version: 2.9.14
typescript:
specifier: 5.9.2
version: 5.9.2
@@ -31,23 +45,23 @@ importers:
version: 18.3.1(react@18.3.1)
devDependencies:
'@electron/notarize':
- specifier: ^2.5.0
- version: 2.5.0
+ specifier: ^3.1.1
+ version: 3.1.1
'@tailwindcss/vite':
- specifier: ^4.1.14
- version: 4.1.14(vite@7.1.11(@types/node@20.19.21)(jiti@2.6.1)(lightningcss@1.30.2))
+ specifier: ^4.3.0
+ version: 4.3.0(vite@8.0.13(@types/node@20.19.21)(esbuild@0.28.0)(jiti@2.6.1))
'@types/node':
specifier: ^20.11.0
version: 20.19.21
'@types/react':
- specifier: ^19.2.2
- version: 19.2.2
+ specifier: ^19.2.14
+ version: 19.2.14
'@types/react-dom':
- specifier: ^19.2.2
- version: 19.2.2(@types/react@19.2.2)
+ specifier: ^19.2.3
+ version: 19.2.3(@types/react@19.2.14)
'@vitejs/plugin-react':
- specifier: ^5.0.4
- version: 5.0.4(vite@7.1.11(@types/node@20.19.21)(jiti@2.6.1)(lightningcss@1.30.2))
+ specifier: ^6.0.2
+ version: 6.0.2(vite@8.0.13(@types/node@20.19.21)(esbuild@0.28.0)(jiti@2.6.1))
concurrently:
specifier: ^8.2.2
version: 8.2.2
@@ -55,125 +69,43 @@ importers:
specifier: ^10.1.0
version: 10.1.0
dotenv:
- specifier: ^17.2.3
- version: 17.2.3
+ specifier: ^17.4.2
+ version: 17.4.2
electron:
- specifier: github:castlabs/electron-releases#v38.0.0+wvcus
- version: https://codeload.github.com/castlabs/electron-releases/tar.gz/678b5c7761825c5af936f5c67a9101f3fc6ab750
+ specifier: github:castlabs/electron-releases#v39.8.10+wvcus
+ version: https://codeload.github.com/castlabs/electron-releases/tar.gz/b5480283432a0523f4f3a9c62b130fe8dcde5299
electron-builder:
- specifier: ^26.0.12
- version: 26.0.12(electron-builder-squirrel-windows@24.13.3(dmg-builder@26.0.12))
+ specifier: ^26.8.1
+ version: 26.8.1(electron-builder-squirrel-windows@26.8.1(dmg-builder@26.8.1))
+ electron-builder-squirrel-windows:
+ specifier: 26.8.1
+ version: 26.8.1(dmg-builder@26.8.1)
+ esbuild:
+ specifier: ^0.28.0
+ version: 0.28.0
tailwindcss:
- specifier: ^4.1.14
- version: 4.1.14
+ specifier: ^4.3.0
+ version: 4.3.0
typescript:
specifier: 5.9.2
version: 5.9.2
vite:
- specifier: ^7.1.11
- version: 7.1.11(@types/node@20.19.21)(jiti@2.6.1)(lightningcss@1.30.2)
+ specifier: ^8.0.13
+ version: 8.0.13(@types/node@20.19.21)(esbuild@0.28.0)(jiti@2.6.1)
packages:
7zip-bin@5.2.0:
resolution: {integrity: sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==}
- '@babel/code-frame@7.27.1':
- resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
- engines: {node: '>=6.9.0'}
-
- '@babel/compat-data@7.28.4':
- resolution: {integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/core@7.28.4':
- resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==}
- engines: {node: '>=6.9.0'}
-
- '@babel/generator@7.28.3':
- resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-compilation-targets@7.27.2':
- resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-globals@7.28.0':
- resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-module-imports@7.27.1':
- resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-module-transforms@7.28.3':
- resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0
-
- '@babel/helper-plugin-utils@7.27.1':
- resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-string-parser@7.27.1':
- resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-validator-identifier@7.27.1':
- resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-validator-option@7.27.1':
- resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helpers@7.28.4':
- resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==}
- engines: {node: '>=6.9.0'}
-
- '@babel/parser@7.28.4':
- resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==}
- engines: {node: '>=6.0.0'}
- hasBin: true
-
- '@babel/plugin-transform-react-jsx-self@7.27.1':
- resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-transform-react-jsx-source@7.27.1':
- resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
'@babel/runtime@7.28.4':
resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==}
engines: {node: '>=6.9.0'}
- '@babel/template@7.27.2':
- resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/traverse@7.28.4':
- resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==}
- engines: {node: '>=6.9.0'}
-
- '@babel/types@7.28.4':
- resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==}
- engines: {node: '>=6.9.0'}
-
'@develar/schema-utils@2.6.5':
resolution: {integrity: sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==}
engines: {node: '>= 8.9.0'}
- '@electron/asar@3.2.18':
- resolution: {integrity: sha512-2XyvMe3N3Nrs8cV39IKELRHTYUWFKrmqqSY1U+GMlc0jvqjIVnoxhNd2H4JolWQncbJi1DCvb5TNxZuI2fEjWg==}
- engines: {node: '>=10.12.0'}
- hasBin: true
-
'@electron/asar@3.4.1':
resolution: {integrity: sha512-i4/rNPRS84t0vSRa2HorerGRXWyF4vThfHesw0dmcWHp+cspK743UanA0suA5Q5y8kzY2y6YKrvbIUn69BCAiA==}
engines: {node: '>=10.12.0'}
@@ -187,217 +119,205 @@ packages:
resolution: {integrity: sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==}
engines: {node: '>=12'}
- '@electron/node-gyp@https://codeload.github.com/electron/node-gyp/tar.gz/06b29aafb7708acef8b3669835c8a7857ebc92d2':
- resolution: {tarball: https://codeload.github.com/electron/node-gyp/tar.gz/06b29aafb7708acef8b3669835c8a7857ebc92d2}
- version: 10.2.0-electron.1
- engines: {node: '>=12.13.0'}
- hasBin: true
-
- '@electron/notarize@2.2.1':
- resolution: {integrity: sha512-aL+bFMIkpR0cmmj5Zgy0LMKEpgy43/hw5zadEArgmAMWWlKc5buwFvFT9G/o/YJkvXAJm5q3iuTuLaiaXW39sg==}
- engines: {node: '>= 10.0.0'}
+ '@electron/get@3.1.0':
+ resolution: {integrity: sha512-F+nKc0xW+kVbBRhFzaMgPy3KwmuNTYX1fx6+FxxoSnNgwYX6LD7AKBTWkU0MQ6IBoe7dz069CNkR673sPAgkCQ==}
+ engines: {node: '>=14'}
'@electron/notarize@2.5.0':
resolution: {integrity: sha512-jNT8nwH1f9X5GEITXaQ8IF/KdskvIkOFfB2CvwumsveVidzpSc+mvhhTMdAGSYF3O+Nq49lJ7y+ssODRXu06+A==}
engines: {node: '>= 10.0.0'}
- '@electron/osx-sign@1.0.5':
- resolution: {integrity: sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww==}
+ '@electron/notarize@3.1.1':
+ resolution: {integrity: sha512-uQQSlOiJnqRkTL1wlEBAxe90nVN/Fc/hEmk0bqpKk8nKjV1if/tXLHKUPePtv9Xsx90PtZU8aidx5lAiOpjkQQ==}
+ engines: {node: '>= 22.12.0'}
+
+ '@electron/osx-sign@1.3.3':
+ resolution: {integrity: sha512-KZ8mhXvWv2rIEgMbWZ4y33bDHyUKMXnx4M0sTyPNK/vcB81ImdeY9Ggdqy0SWbMDgmbqyQ+phgejh6V3R2QuSg==}
engines: {node: '>=12.0.0'}
hasBin: true
- '@electron/osx-sign@1.3.1':
- resolution: {integrity: sha512-BAfviURMHpmb1Yb50YbCxnOY0wfwaLXH5KJ4+80zS0gUkzDX3ec23naTlEqKsN+PwYn+a1cCzM7BJ4Wcd3sGzw==}
- engines: {node: '>=12.0.0'}
+ '@electron/rebuild@4.0.4':
+ resolution: {integrity: sha512-Rzc39XPdk/+/wBG8MfwAHohXflep0ITUfulb6Rgz3R0NeSB1noE+E9/M/cb8ftCAiyDD9PPhLuuWgE1GaInbKg==}
+ engines: {node: '>=22.12.0'}
hasBin: true
- '@electron/rebuild@3.7.0':
- resolution: {integrity: sha512-VW++CNSlZwMYP7MyXEbrKjpzEwhB5kDNbzGtiPEjwYysqyTCF+YbNJ210Dj3AjWsGSV4iEEwNkmJN9yGZmVvmw==}
- engines: {node: '>=12.13.0'}
+ '@electron/universal@2.0.3':
+ resolution: {integrity: sha512-Wn9sPYIVFRFl5HmwMJkARCCf7rqK/EurkfQ/rJZ14mHP3iYTjZSIOSVonEAnhWeAXwtw7zOekGRlc6yTtZ0t+g==}
+ engines: {node: '>=16.4'}
+
+ '@electron/windows-sign@1.2.2':
+ resolution: {integrity: sha512-dfZeox66AvdPtb2lD8OsIIQh12Tp0GNCRUDfBHIKGpbmopZto2/A8nSpYYLoedPIHpqkeblZ/k8OV0Gy7PYuyQ==}
+ engines: {node: '>=14.14'}
hasBin: true
- '@electron/universal@1.5.1':
- resolution: {integrity: sha512-kbgXxyEauPJiQQUNG2VgUeyfQNFk6hBF11ISN2PNI6agUgPl55pv4eQmaqHzTAzchBvqZ2tQuRVaPStGf0mxGw==}
- engines: {node: '>=8.6'}
+ '@emnapi/core@1.10.0':
+ resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==}
- '@electron/universal@2.0.1':
- resolution: {integrity: sha512-fKpv9kg4SPmt+hY7SVBnIYULE9QJl8L3sCfcBsnqbJwwBwAeTLokJ9TRt9y7bK0JAzIW2y78TVVjvnQEms/yyA==}
- engines: {node: '>=16.4'}
+ '@emnapi/runtime@1.10.0':
+ resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==}
+
+ '@emnapi/wasi-threads@1.2.1':
+ resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==}
'@epic-web/invariant@1.0.0':
resolution: {integrity: sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==}
- '@esbuild/aix-ppc64@0.25.11':
- resolution: {integrity: sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==}
+ '@esbuild/aix-ppc64@0.28.0':
+ resolution: {integrity: sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [aix]
- '@esbuild/android-arm64@0.25.11':
- resolution: {integrity: sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==}
+ '@esbuild/android-arm64@0.28.0':
+ resolution: {integrity: sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==}
engines: {node: '>=18'}
cpu: [arm64]
os: [android]
- '@esbuild/android-arm@0.25.11':
- resolution: {integrity: sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==}
+ '@esbuild/android-arm@0.28.0':
+ resolution: {integrity: sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==}
engines: {node: '>=18'}
cpu: [arm]
os: [android]
- '@esbuild/android-x64@0.25.11':
- resolution: {integrity: sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==}
+ '@esbuild/android-x64@0.28.0':
+ resolution: {integrity: sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==}
engines: {node: '>=18'}
cpu: [x64]
os: [android]
- '@esbuild/darwin-arm64@0.25.11':
- resolution: {integrity: sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==}
+ '@esbuild/darwin-arm64@0.28.0':
+ resolution: {integrity: sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==}
engines: {node: '>=18'}
cpu: [arm64]
os: [darwin]
- '@esbuild/darwin-x64@0.25.11':
- resolution: {integrity: sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==}
+ '@esbuild/darwin-x64@0.28.0':
+ resolution: {integrity: sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==}
engines: {node: '>=18'}
cpu: [x64]
os: [darwin]
- '@esbuild/freebsd-arm64@0.25.11':
- resolution: {integrity: sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==}
+ '@esbuild/freebsd-arm64@0.28.0':
+ resolution: {integrity: sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==}
engines: {node: '>=18'}
cpu: [arm64]
os: [freebsd]
- '@esbuild/freebsd-x64@0.25.11':
- resolution: {integrity: sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==}
+ '@esbuild/freebsd-x64@0.28.0':
+ resolution: {integrity: sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==}
engines: {node: '>=18'}
cpu: [x64]
os: [freebsd]
- '@esbuild/linux-arm64@0.25.11':
- resolution: {integrity: sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==}
+ '@esbuild/linux-arm64@0.28.0':
+ resolution: {integrity: sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==}
engines: {node: '>=18'}
cpu: [arm64]
os: [linux]
- '@esbuild/linux-arm@0.25.11':
- resolution: {integrity: sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==}
+ '@esbuild/linux-arm@0.28.0':
+ resolution: {integrity: sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==}
engines: {node: '>=18'}
cpu: [arm]
os: [linux]
- '@esbuild/linux-ia32@0.25.11':
- resolution: {integrity: sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==}
+ '@esbuild/linux-ia32@0.28.0':
+ resolution: {integrity: sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==}
engines: {node: '>=18'}
cpu: [ia32]
os: [linux]
- '@esbuild/linux-loong64@0.25.11':
- resolution: {integrity: sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==}
+ '@esbuild/linux-loong64@0.28.0':
+ resolution: {integrity: sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==}
engines: {node: '>=18'}
cpu: [loong64]
os: [linux]
- '@esbuild/linux-mips64el@0.25.11':
- resolution: {integrity: sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==}
+ '@esbuild/linux-mips64el@0.28.0':
+ resolution: {integrity: sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==}
engines: {node: '>=18'}
cpu: [mips64el]
os: [linux]
- '@esbuild/linux-ppc64@0.25.11':
- resolution: {integrity: sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==}
+ '@esbuild/linux-ppc64@0.28.0':
+ resolution: {integrity: sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [linux]
- '@esbuild/linux-riscv64@0.25.11':
- resolution: {integrity: sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==}
+ '@esbuild/linux-riscv64@0.28.0':
+ resolution: {integrity: sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==}
engines: {node: '>=18'}
cpu: [riscv64]
os: [linux]
- '@esbuild/linux-s390x@0.25.11':
- resolution: {integrity: sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==}
+ '@esbuild/linux-s390x@0.28.0':
+ resolution: {integrity: sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==}
engines: {node: '>=18'}
cpu: [s390x]
os: [linux]
- '@esbuild/linux-x64@0.25.11':
- resolution: {integrity: sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==}
+ '@esbuild/linux-x64@0.28.0':
+ resolution: {integrity: sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==}
engines: {node: '>=18'}
cpu: [x64]
os: [linux]
- '@esbuild/netbsd-arm64@0.25.11':
- resolution: {integrity: sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==}
+ '@esbuild/netbsd-arm64@0.28.0':
+ resolution: {integrity: sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==}
engines: {node: '>=18'}
cpu: [arm64]
os: [netbsd]
- '@esbuild/netbsd-x64@0.25.11':
- resolution: {integrity: sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==}
+ '@esbuild/netbsd-x64@0.28.0':
+ resolution: {integrity: sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==}
engines: {node: '>=18'}
cpu: [x64]
os: [netbsd]
- '@esbuild/openbsd-arm64@0.25.11':
- resolution: {integrity: sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==}
+ '@esbuild/openbsd-arm64@0.28.0':
+ resolution: {integrity: sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==}
engines: {node: '>=18'}
cpu: [arm64]
os: [openbsd]
- '@esbuild/openbsd-x64@0.25.11':
- resolution: {integrity: sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==}
+ '@esbuild/openbsd-x64@0.28.0':
+ resolution: {integrity: sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==}
engines: {node: '>=18'}
cpu: [x64]
os: [openbsd]
- '@esbuild/openharmony-arm64@0.25.11':
- resolution: {integrity: sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==}
+ '@esbuild/openharmony-arm64@0.28.0':
+ resolution: {integrity: sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==}
engines: {node: '>=18'}
cpu: [arm64]
os: [openharmony]
- '@esbuild/sunos-x64@0.25.11':
- resolution: {integrity: sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==}
+ '@esbuild/sunos-x64@0.28.0':
+ resolution: {integrity: sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==}
engines: {node: '>=18'}
cpu: [x64]
os: [sunos]
- '@esbuild/win32-arm64@0.25.11':
- resolution: {integrity: sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==}
+ '@esbuild/win32-arm64@0.28.0':
+ resolution: {integrity: sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==}
engines: {node: '>=18'}
cpu: [arm64]
os: [win32]
- '@esbuild/win32-ia32@0.25.11':
- resolution: {integrity: sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==}
+ '@esbuild/win32-ia32@0.28.0':
+ resolution: {integrity: sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==}
engines: {node: '>=18'}
cpu: [ia32]
os: [win32]
- '@esbuild/win32-x64@0.25.11':
- resolution: {integrity: sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==}
+ '@esbuild/win32-x64@0.28.0':
+ resolution: {integrity: sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==}
engines: {node: '>=18'}
cpu: [x64]
os: [win32]
- '@gar/promisify@1.1.3':
- resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==}
-
- '@isaacs/balanced-match@4.0.1':
- resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==}
- engines: {node: 20 || >=22}
-
- '@isaacs/brace-expansion@5.0.0':
- resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==}
- engines: {node: 20 || >=22}
-
- '@isaacs/cliui@8.0.2':
- resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
- engines: {node: '>=12'}
-
'@isaacs/fs-minipass@4.0.1':
resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==}
engines: {node: '>=18.0.0'}
@@ -418,10 +338,6 @@ packages:
'@jridgewell/trace-mapping@0.3.31':
resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
- '@malept/cross-spawn-promise@1.1.1':
- resolution: {integrity: sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==}
- engines: {node: '>= 10'}
-
'@malept/cross-spawn-promise@2.0.0':
resolution: {integrity: sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==}
engines: {node: '>= 12.13.0'}
@@ -430,131 +346,106 @@ packages:
resolution: {integrity: sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==}
engines: {node: '>= 10.0.0'}
- '@npmcli/fs@2.1.2':
- resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==}
- engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
-
- '@npmcli/move-file@2.0.1':
- resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==}
- engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
- deprecated: This functionality has been moved to @npmcli/fs
-
- '@pkgjs/parseargs@0.11.0':
- resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
- engines: {node: '>=14'}
-
- '@rolldown/pluginutils@1.0.0-beta.38':
- resolution: {integrity: sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==}
+ '@napi-rs/wasm-runtime@1.1.4':
+ resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==}
+ peerDependencies:
+ '@emnapi/core': ^1.7.1
+ '@emnapi/runtime': ^1.7.1
- '@rollup/rollup-android-arm-eabi@4.52.5':
- resolution: {integrity: sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==}
- cpu: [arm]
- os: [android]
+ '@oxc-project/types@0.130.0':
+ resolution: {integrity: sha512-ibD2usx9JRu7f5pu2tMKMI4cpA4NgXJQoYRP4pQ7Pxmn1l6k/53qWtQWZayhYy3X4QZkt90Ot+mJEaeXouio6Q==}
- '@rollup/rollup-android-arm64@4.52.5':
- resolution: {integrity: sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==}
+ '@rolldown/binding-android-arm64@1.0.1':
+ resolution: {integrity: sha512-fJI3I0r3C3Oj/zdBCpaCmBRZYf07xpaq4yCfDDoSFm+beWNzbIl26puW8RraUdugoJw/95zerNOn6jasAhzSmg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [android]
- '@rollup/rollup-darwin-arm64@4.52.5':
- resolution: {integrity: sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==}
+ '@rolldown/binding-darwin-arm64@1.0.1':
+ resolution: {integrity: sha512-cKnAhWEsV7TPcA/5EAteDp6KcJZBQ2G+BqE7zayMMi7kMvwRsbv7WT9aOnn0WNl4SKEIf43vjS31iUPu80nzXg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [darwin]
- '@rollup/rollup-darwin-x64@4.52.5':
- resolution: {integrity: sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==}
+ '@rolldown/binding-darwin-x64@1.0.1':
+ resolution: {integrity: sha512-YKrVwQjIRBPo+5G/u03wGjbdy4q7pyzCe93DK9VJ7zkVmeg8LJ7GbgsiHWdR4xSoe4CAXRD7Bcjgbtr64bkXNg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [darwin]
- '@rollup/rollup-freebsd-arm64@4.52.5':
- resolution: {integrity: sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==}
- cpu: [arm64]
- os: [freebsd]
-
- '@rollup/rollup-freebsd-x64@4.52.5':
- resolution: {integrity: sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==}
+ '@rolldown/binding-freebsd-x64@1.0.1':
+ resolution: {integrity: sha512-z/oBsREo46SsFqBwYtFe0kpJeBijAT48O/WXLI4suiCLBkr03RTtTJMCzSdDd2znlh8VJizL09XVkQgk8IZonw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [freebsd]
- '@rollup/rollup-linux-arm-gnueabihf@4.52.5':
- resolution: {integrity: sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==}
- cpu: [arm]
- os: [linux]
-
- '@rollup/rollup-linux-arm-musleabihf@4.52.5':
- resolution: {integrity: sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==}
+ '@rolldown/binding-linux-arm-gnueabihf@1.0.1':
+ resolution: {integrity: sha512-ik8q7GM11zxvYxFc2PeDcT6TBvhCQMaUxfph/M5l9sKuTs/Sjg3L+Byw0F7w0ZVLBZmx30P+gG0ECzzN+MFcmQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm64-gnu@4.52.5':
- resolution: {integrity: sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==}
+ '@rolldown/binding-linux-arm64-gnu@1.0.1':
+ resolution: {integrity: sha512-QoSx2EkyrrdZ6kcyE8stqZ62t0Yra8Fs5ia9lOxJrh6TMQJK7gQKmscdTHf7pOXKREKrVwOtJcQG3qVSfc866A==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-arm64-musl@4.52.5':
- resolution: {integrity: sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==}
+ '@rolldown/binding-linux-arm64-musl@1.0.1':
+ resolution: {integrity: sha512-uwNwFpwKeNiZawfAWBgg0VIztPTV3ihhh1vV334h9ivnNLorxnQMU6Fz8wG1Zb4Qh9LC1/MkcyT3YlDXG3Rsgg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-loong64-gnu@4.52.5':
- resolution: {integrity: sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==}
- cpu: [loong64]
- os: [linux]
-
- '@rollup/rollup-linux-ppc64-gnu@4.52.5':
- resolution: {integrity: sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==}
+ '@rolldown/binding-linux-ppc64-gnu@1.0.1':
+ resolution: {integrity: sha512-zY1bul7OWr7DFBiJ++wofXvnr8B45ce3QsQUhKrIhXsygAh7bTkwyeM1bi1a2g5C/yC/N8TZyGDEoMfm/l9mpg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ppc64]
os: [linux]
- '@rollup/rollup-linux-riscv64-gnu@4.52.5':
- resolution: {integrity: sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==}
- cpu: [riscv64]
- os: [linux]
-
- '@rollup/rollup-linux-riscv64-musl@4.52.5':
- resolution: {integrity: sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==}
- cpu: [riscv64]
- os: [linux]
-
- '@rollup/rollup-linux-s390x-gnu@4.52.5':
- resolution: {integrity: sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==}
+ '@rolldown/binding-linux-s390x-gnu@1.0.1':
+ resolution: {integrity: sha512-0frlsT/f4Ft6I7SMESTKnF3cZsdicQn1dCMkF/jT9wDLE+gGoiQfv1nmT9e+s7s/fekvvy6tZM2jHvI2tkbJDQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [s390x]
os: [linux]
- '@rollup/rollup-linux-x64-gnu@4.52.5':
- resolution: {integrity: sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==}
+ '@rolldown/binding-linux-x64-gnu@1.0.1':
+ resolution: {integrity: sha512-XABVmGp9Tg0WspTVvwduTc4fpqy6JnAUrSQe6OuyqD/03nI7r0O9OWUkMIwFrjKAIqolvqoA4ZrJppgwE0Gxmw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
- '@rollup/rollup-linux-x64-musl@4.52.5':
- resolution: {integrity: sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==}
+ '@rolldown/binding-linux-x64-musl@1.0.1':
+ resolution: {integrity: sha512-bV4fzswuzVcKD90o/VM6QqKxnxlDq0g2BISDLNVmxrnhpv1DDbyPhCIjYfvzYLV+MvkKKnQt2Q6AO86SEBULUQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
- '@rollup/rollup-openharmony-arm64@4.52.5':
- resolution: {integrity: sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==}
+ '@rolldown/binding-openharmony-arm64@1.0.1':
+ resolution: {integrity: sha512-/Mh0Zhq3OP7fVs0kcQHZP6lZEthMGTaSf8UBQYSFEZDWGXXlEC+nJ6EqenaK2t4LBXMe3A+K/G2BVXXdtOr4PQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [openharmony]
- '@rollup/rollup-win32-arm64-msvc@4.52.5':
- resolution: {integrity: sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==}
- cpu: [arm64]
- os: [win32]
+ '@rolldown/binding-wasm32-wasi@1.0.1':
+ resolution: {integrity: sha512-+1xc9X45l8ufsBAm6Gjvx2qDRIY9lTVt0cgWNcJ+1gdhXvkbxePA60yRTwSTuXL09CMhyJmjpV7E3NoyxbqFQQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [wasm32]
- '@rollup/rollup-win32-ia32-msvc@4.52.5':
- resolution: {integrity: sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==}
- cpu: [ia32]
+ '@rolldown/binding-win32-arm64-msvc@1.0.1':
+ resolution: {integrity: sha512-1D+UqZdfnuR+Jy1GgMJwi85bD40H21uNmOPRWQhw4oRSuolZ/B5rixZ45DK2KXOTCvmVCecauWgEhbw8bI7tOw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
os: [win32]
- '@rollup/rollup-win32-x64-gnu@4.52.5':
- resolution: {integrity: sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==}
+ '@rolldown/binding-win32-x64-msvc@1.0.1':
+ resolution: {integrity: sha512-INAycaWuhlOK3wk4mRHGsdgwYWmd9cChdPdE9bwWmy6rn9VqVNYNFGhOdXrofXUxwHIncSiPNb8tNm8knDVIeQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [win32]
- '@rollup/rollup-win32-x64-msvc@4.52.5':
- resolution: {integrity: sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==}
- cpu: [x64]
- os: [win32]
+ '@rolldown/pluginutils@1.0.1':
+ resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==}
'@sindresorhus/is@4.6.0':
resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
@@ -564,65 +455,65 @@ packages:
resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==}
engines: {node: '>=10'}
- '@tailwindcss/node@4.1.14':
- resolution: {integrity: sha512-hpz+8vFk3Ic2xssIA3e01R6jkmsAhvkQdXlEbRTk6S10xDAtiQiM3FyvZVGsucefq764euO/b8WUW9ysLdThHw==}
+ '@tailwindcss/node@4.3.0':
+ resolution: {integrity: sha512-aFb4gUhFOgdh9AXo4IzBEOzBkkAxm9VigwDJnMIYv3lcfXCJVesNfbEaBl4BNgVRyid92AmdviqwBUBRKSeY3g==}
- '@tailwindcss/oxide-android-arm64@4.1.14':
- resolution: {integrity: sha512-a94ifZrGwMvbdeAxWoSuGcIl6/DOP5cdxagid7xJv6bwFp3oebp7y2ImYsnZBMTwjn5Ev5xESvS3FFYUGgPODQ==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-android-arm64@4.3.0':
+ resolution: {integrity: sha512-TJPiq67tKlLuObP6RkwvVGDoxCMBVtDgKkLfa/uyj7/FyxvQwHS+UOnVrXXgbEsfUaMgiVvC4KbJnRr26ho4Ng==}
+ engines: {node: '>= 20'}
cpu: [arm64]
os: [android]
- '@tailwindcss/oxide-darwin-arm64@4.1.14':
- resolution: {integrity: sha512-HkFP/CqfSh09xCnrPJA7jud7hij5ahKyWomrC3oiO2U9i0UjP17o9pJbxUN0IJ471GTQQmzwhp0DEcpbp4MZTA==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-darwin-arm64@4.3.0':
+ resolution: {integrity: sha512-oMN/WZRb+SO37BmUElEgeEWuU8E/HXRkiODxJxLe1UTHVXLrdVSgfaJV7pSlhRGMSOiXLuxTIjfsF3wYvz8cgQ==}
+ engines: {node: '>= 20'}
cpu: [arm64]
os: [darwin]
- '@tailwindcss/oxide-darwin-x64@4.1.14':
- resolution: {integrity: sha512-eVNaWmCgdLf5iv6Qd3s7JI5SEFBFRtfm6W0mphJYXgvnDEAZ5sZzqmI06bK6xo0IErDHdTA5/t7d4eTfWbWOFw==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-darwin-x64@4.3.0':
+ resolution: {integrity: sha512-N6CUmu4a6bKVADfw77p+iw6Yd9Q3OBhe0veaDX+QazfuVYlQsHfDgxBrsjQ/IW+zywL8mTrNd0SdJT/zgtvMdA==}
+ engines: {node: '>= 20'}
cpu: [x64]
os: [darwin]
- '@tailwindcss/oxide-freebsd-x64@4.1.14':
- resolution: {integrity: sha512-QWLoRXNikEuqtNb0dhQN6wsSVVjX6dmUFzuuiL09ZeXju25dsei2uIPl71y2Ic6QbNBsB4scwBoFnlBfabHkEw==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-freebsd-x64@4.3.0':
+ resolution: {integrity: sha512-zDL5hBkQdH5C6MpqbK3gQAgP80tsMwSI26vjOzjJtNCMUo0lFgOItzHKBIupOZNQxt3ouPH7RPhvNhiTfCe5CQ==}
+ engines: {node: '>= 20'}
cpu: [x64]
os: [freebsd]
- '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.14':
- resolution: {integrity: sha512-VB4gjQni9+F0VCASU+L8zSIyjrLLsy03sjcR3bM0V2g4SNamo0FakZFKyUQ96ZVwGK4CaJsc9zd/obQy74o0Fw==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.0':
+ resolution: {integrity: sha512-R06HdNi7A7OEoMsf6d4tjZ71RCWnZQPHj2mnotSFURjNLdBC+cIgXQ7l81CqeoiQftjf6OOblxXMInMgN2VzMA==}
+ engines: {node: '>= 20'}
cpu: [arm]
os: [linux]
- '@tailwindcss/oxide-linux-arm64-gnu@4.1.14':
- resolution: {integrity: sha512-qaEy0dIZ6d9vyLnmeg24yzA8XuEAD9WjpM5nIM1sUgQ/Zv7cVkharPDQcmm/t/TvXoKo/0knI3me3AGfdx6w1w==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-linux-arm64-gnu@4.3.0':
+ resolution: {integrity: sha512-qTJHELX8jetjhRQHCLilkVLmybpzNQAtaI/gaoVoidn/ufbNDbAo8KlK2J+yPoc8wQxvDxCmh/5lr8nC1+lTbg==}
+ engines: {node: '>= 20'}
cpu: [arm64]
os: [linux]
- '@tailwindcss/oxide-linux-arm64-musl@4.1.14':
- resolution: {integrity: sha512-ISZjT44s59O8xKsPEIesiIydMG/sCXoMBCqsphDm/WcbnuWLxxb+GcvSIIA5NjUw6F8Tex7s5/LM2yDy8RqYBQ==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-linux-arm64-musl@4.3.0':
+ resolution: {integrity: sha512-Z6sukiQsngnWO+l39X4pPbiWT81IC+PLKF+PHxIlyZbGNb9MODfYlXEVlFvej5BOZInWX01kVyzeLvHsXhfczQ==}
+ engines: {node: '>= 20'}
cpu: [arm64]
os: [linux]
- '@tailwindcss/oxide-linux-x64-gnu@4.1.14':
- resolution: {integrity: sha512-02c6JhLPJj10L2caH4U0zF8Hji4dOeahmuMl23stk0MU1wfd1OraE7rOloidSF8W5JTHkFdVo/O7uRUJJnUAJg==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-linux-x64-gnu@4.3.0':
+ resolution: {integrity: sha512-DRNdQRpSGzRGfARVuVkxvM8Q12nh19l4BF/G7zGA1oe+9wcC6saFBHTISrpIcKzhiXtSrlSrluCfvMuledoCTQ==}
+ engines: {node: '>= 20'}
cpu: [x64]
os: [linux]
- '@tailwindcss/oxide-linux-x64-musl@4.1.14':
- resolution: {integrity: sha512-TNGeLiN1XS66kQhxHG/7wMeQDOoL0S33x9BgmydbrWAb9Qw0KYdd8o1ifx4HOGDWhVmJ+Ul+JQ7lyknQFilO3Q==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-linux-x64-musl@4.3.0':
+ resolution: {integrity: sha512-Z0IADbDo8bh6I7h2IQMx601AdXBLfFpEdUotft86evd/8ZPflZe9COPO8Q1vw+pfLWIUo9zN/JGZvwuAJqduqg==}
+ engines: {node: '>= 20'}
cpu: [x64]
os: [linux]
- '@tailwindcss/oxide-wasm32-wasi@4.1.14':
- resolution: {integrity: sha512-uZYAsaW/jS/IYkd6EWPJKW/NlPNSkWkBlaeVBi/WsFQNP05/bzkebUL8FH1pdsqx4f2fH/bWFcUABOM9nfiJkQ==}
+ '@tailwindcss/oxide-wasm32-wasi@4.3.0':
+ resolution: {integrity: sha512-HNZGOUxEmElksYR7S6sC5jTeNGpobAsy9u7Gu0AskJ8/20FR9GqebUyB+HBcU/ax6BHuiuJi+Oda4B+YX6H1yA==}
engines: {node: '>=14.0.0'}
cpu: [wasm32]
bundledDependencies:
@@ -633,42 +524,59 @@ packages:
- '@emnapi/wasi-threads'
- tslib
- '@tailwindcss/oxide-win32-arm64-msvc@4.1.14':
- resolution: {integrity: sha512-Az0RnnkcvRqsuoLH2Z4n3JfAef0wElgzHD5Aky/e+0tBUxUhIeIqFBTMNQvmMRSP15fWwmvjBxZ3Q8RhsDnxAA==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-win32-arm64-msvc@4.3.0':
+ resolution: {integrity: sha512-Pe+RPVTi1T+qymuuRpcdvwSVZjnll/f7n8gBxMMh3xLTctMDKqpdfGimbMyioqtLhUYZxdJ9wGNhV7MKHvgZsQ==}
+ engines: {node: '>= 20'}
cpu: [arm64]
os: [win32]
- '@tailwindcss/oxide-win32-x64-msvc@4.1.14':
- resolution: {integrity: sha512-ttblVGHgf68kEE4om1n/n44I0yGPkCPbLsqzjvybhpwa6mKKtgFfAzy6btc3HRmuW7nHe0OOrSeNP9sQmmH9XA==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide-win32-x64-msvc@4.3.0':
+ resolution: {integrity: sha512-Mvrf2kXW/yeW/OTezZlCGOirXRcUuLIBx/5Y12BaPM7wJoryG6dfS/NJL8aBPqtTEx/Vm4T4vKzFUcKDT+TKUA==}
+ engines: {node: '>= 20'}
cpu: [x64]
os: [win32]
- '@tailwindcss/oxide@4.1.14':
- resolution: {integrity: sha512-23yx+VUbBwCg2x5XWdB8+1lkPajzLmALEfMb51zZUBYaYVPDQvBSD/WYDqiVyBIo2BZFa3yw1Rpy3G2Jp+K0dw==}
- engines: {node: '>= 10'}
+ '@tailwindcss/oxide@4.3.0':
+ resolution: {integrity: sha512-F7HZGBeN9I0/AuuJS5PwcD8xayx5ri5GhjYUDBEVYUkexyA/giwbDNjRVrxSezE3T250OU2K/wp/ltWx3UOefg==}
+ engines: {node: '>= 20'}
- '@tailwindcss/vite@4.1.14':
- resolution: {integrity: sha512-BoFUoU0XqgCUS1UXWhmDJroKKhNXeDzD7/XwabjkDIAbMnc4ULn5e2FuEuBbhZ6ENZoSYzKlzvZ44Yr6EUDUSA==}
+ '@tailwindcss/vite@4.3.0':
+ resolution: {integrity: sha512-t6J3OrB5Fc0ExuhohouH0fWUGMYL6PTLhW+E7zIk/pdbnJARZDCwjBznFnkh5ynRnIRSI4YjtTH0t6USjJISrw==}
peerDependencies:
- vite: ^5.2.0 || ^6 || ^7
+ vite: ^5.2.0 || ^6 || ^7 || ^8
+
+ '@turbo/darwin-64@2.9.14':
+ resolution: {integrity: sha512-t7QiPflaEyBE4oayeZtSmu4mEfjgIrcNlNNl1z1dmIVPqEdtA7+CfTf8d7KXsOGPh6aNgWjKxyvQg9uGfDQF+A==}
+ cpu: [x64]
+ os: [darwin]
+
+ '@turbo/darwin-arm64@2.9.14':
+ resolution: {integrity: sha512-d23147mC9BsCPA9mJ0h/ubcpbRgcJBXbcG3+Vq7YLhjz3IXuvQsJ1UXH8f4MD76ZjJ4m/E4aRdJV+MW88CDfbw==}
+ cpu: [arm64]
+ os: [darwin]
- '@tootallnate/once@2.0.0':
- resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
- engines: {node: '>= 10'}
+ '@turbo/linux-64@2.9.14':
+ resolution: {integrity: sha512-P3ZKB5tuUDdDQWuAsACGUR1qv9W7BNWxdxqVJ0kZNuNNPRaVYTPPikLcp79+GiEcW3npsR+KyP38lnQiBc5aSA==}
+ cpu: [x64]
+ os: [linux]
- '@types/babel__core@7.20.5':
- resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
+ '@turbo/linux-arm64@2.9.14':
+ resolution: {integrity: sha512-ZRTlzcUMrrPv9ZuDzRF9n60Ym13bKeG9jDB8WjxyLhWNzV+AJQN+zdpIk3NJYf2zQsGUm1mNar2P0elRzLw25g==}
+ cpu: [arm64]
+ os: [linux]
- '@types/babel__generator@7.27.0':
- resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==}
+ '@turbo/windows-64@2.9.14':
+ resolution: {integrity: sha512-exanwN6sIduZwykYeiTQj8kCmOhazP5WOz3bvXMcYtjhL6Z3iRWLewKrXCBq0bqwSP3iBMb/AerRCnHI4lx46A==}
+ cpu: [x64]
+ os: [win32]
- '@types/babel__template@7.4.4':
- resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
+ '@turbo/windows-arm64@2.9.14':
+ resolution: {integrity: sha512-fVdCsnmYoKICsycbWuuGp6Jvi51/3G/UluFWuAUCvR8PIW5IJkAk5BM9UF8PSm0Q2IphWHFZjYEgjHsh3B9y/g==}
+ cpu: [arm64]
+ os: [win32]
- '@types/babel__traverse@7.28.0':
- resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==}
+ '@tybys/wasm-util@0.10.2':
+ resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==}
'@types/cacheable-request@6.0.3':
resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==}
@@ -676,9 +584,6 @@ packages:
'@types/debug@4.1.12':
resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
- '@types/estree@1.0.8':
- resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
-
'@types/fs-extra@9.0.13':
resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==}
@@ -700,13 +605,13 @@ packages:
'@types/plist@3.0.5':
resolution: {integrity: sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==}
- '@types/react-dom@19.2.2':
- resolution: {integrity: sha512-9KQPoO6mZCi7jcIStSnlOWn2nEF3mNmyr3rIAsGnAbQKYbRLyqmeSc39EVgtxXVia+LMT8j3knZLAZAh+xLmrw==}
+ '@types/react-dom@19.2.3':
+ resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==}
peerDependencies:
'@types/react': ^19.2.0
- '@types/react@19.2.2':
- resolution: {integrity: sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA==}
+ '@types/react@19.2.14':
+ resolution: {integrity: sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==}
'@types/responselike@1.0.3':
resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==}
@@ -717,90 +622,56 @@ packages:
'@types/yauzl@2.10.3':
resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
- '@vitejs/plugin-react@5.0.4':
- resolution: {integrity: sha512-La0KD0vGkVkSk6K+piWDKRUyg8Rl5iAIKRMH0vMJI0Eg47bq1eOxmoObAaQG37WMW9MSyk7Cs8EIWwJC1PtzKA==}
+ '@vitejs/plugin-react@6.0.2':
+ resolution: {integrity: sha512-DlSMqo4WhThw4vB8Mpn0Woe9J+Jfq1geJ61AKW0QEgLzGMNwtIMdxbDUzLxcun8W7NbJO0e2Jg/Nxm3cCSVzzg==}
engines: {node: ^20.19.0 || >=22.12.0}
peerDependencies:
- vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0
+ '@rolldown/plugin-babel': ^0.1.7 || ^0.2.0
+ babel-plugin-react-compiler: ^1.0.0
+ vite: ^8.0.0
+ peerDependenciesMeta:
+ '@rolldown/plugin-babel':
+ optional: true
+ babel-plugin-react-compiler:
+ optional: true
- '@xmldom/xmldom@0.8.11':
- resolution: {integrity: sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==}
+ '@xmldom/xmldom@0.8.13':
+ resolution: {integrity: sha512-KRYzxepc14G/CEpEGc3Yn+JKaAeT63smlDr+vjB8jRfgTBBI9wRj/nkQEO+ucV8p8I9bfKLWp37uHgFrbntPvw==}
engines: {node: '>=10.0.0'}
- abbrev@1.1.1:
- resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
-
- agent-base@6.0.2:
- resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
- engines: {node: '>= 6.0.0'}
+ abbrev@4.0.0:
+ resolution: {integrity: sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==}
+ engines: {node: ^20.17.0 || >=22.9.0}
agent-base@7.1.4:
resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==}
engines: {node: '>= 14'}
- agentkeepalive@4.6.0:
- resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==}
- engines: {node: '>= 8.0.0'}
-
- aggregate-error@3.1.0:
- resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
- engines: {node: '>=8'}
-
ajv-keywords@3.5.2:
resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
peerDependencies:
- ajv: ^6.9.1
+ ajv: 6.14.0
- ajv@6.12.6:
- resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+ ajv@6.14.0:
+ resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==}
ansi-regex@5.0.1:
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
engines: {node: '>=8'}
- ansi-regex@6.2.2:
- resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==}
- engines: {node: '>=12'}
-
ansi-styles@4.3.0:
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
engines: {node: '>=8'}
- ansi-styles@6.2.3:
- resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==}
- engines: {node: '>=12'}
-
- app-builder-bin@4.0.0:
- resolution: {integrity: sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==}
-
app-builder-bin@5.0.0-alpha.12:
resolution: {integrity: sha512-j87o0j6LqPL3QRr8yid6c+Tt5gC7xNfYo6uQIQkorAC6MpeayVMZrEDzKmJJ/Hlv7EnOQpaRm53k6ktDYZyB6w==}
- app-builder-lib@24.13.3:
- resolution: {integrity: sha512-FAzX6IBit2POXYGnTCT8YHFO/lr5AapAII6zzhQO3Rw4cEDOgK+t1xhLc5tNcKlicTHlo9zxIwnYCX9X2DLkig==}
- engines: {node: '>=14.0.0'}
- peerDependencies:
- dmg-builder: 24.13.3
- electron-builder-squirrel-windows: 24.13.3
-
- app-builder-lib@26.0.12:
- resolution: {integrity: sha512-+/CEPH1fVKf6HowBUs6LcAIoRcjeqgvAeoSE+cl7Y7LndyQ9ViGPYibNk7wmhMHzNgHIuIbw4nWADPO+4mjgWw==}
+ app-builder-lib@26.8.1:
+ resolution: {integrity: sha512-p0Im/Dx5C4tmz8QEE1Yn4MkuPC8PrnlRneMhWJj7BBXQfNTJUshM/bp3lusdEsDbvvfJZpXWnYesgSLvwtM2Zw==}
engines: {node: '>=14.0.0'}
peerDependencies:
- dmg-builder: 26.0.12
- electron-builder-squirrel-windows: 26.0.12
-
- archiver-utils@2.1.0:
- resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==}
- engines: {node: '>= 6'}
-
- archiver-utils@3.0.4:
- resolution: {integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==}
- engines: {node: '>= 10'}
-
- archiver@5.3.2:
- resolution: {integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==}
- engines: {node: '>= 10'}
+ dmg-builder: 26.8.1
+ electron-builder-squirrel-windows: 26.8.1
argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
@@ -830,67 +701,42 @@ packages:
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+ balanced-match@4.0.4:
+ resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
+ engines: {node: 18 || 20 || >=22}
+
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
- baseline-browser-mapping@2.8.16:
- resolution: {integrity: sha512-OMu3BGQ4E7P1ErFsIPpbJh0qvDudM/UuJeHgkAvfWe+0HFJCXh+t/l8L6fVLR55RI/UbKrVLnAXZSVwd9ysWYw==}
- hasBin: true
-
- bl@4.1.0:
- resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
-
- bluebird-lst@1.0.9:
- resolution: {integrity: sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==}
-
- bluebird@3.7.2:
- resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==}
-
boolean@3.2.0:
resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==}
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
- brace-expansion@1.1.12:
- resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==}
+ brace-expansion@1.1.13:
+ resolution: {integrity: sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==}
- brace-expansion@2.0.2:
- resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==}
+ brace-expansion@2.0.3:
+ resolution: {integrity: sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==}
- browserslist@4.26.3:
- resolution: {integrity: sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==}
- engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
- hasBin: true
+ brace-expansion@5.0.6:
+ resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==}
+ engines: {node: 18 || 20 || >=22}
buffer-crc32@0.2.13:
resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
- buffer-equal@1.0.1:
- resolution: {integrity: sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==}
- engines: {node: '>=0.4'}
-
buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
buffer@5.7.1:
resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
- builder-util-runtime@9.2.4:
- resolution: {integrity: sha512-upp+biKpN/XZMLim7aguUyW8s0FUpDvOtK6sbanMFDAMBzpHDqdhgVYm6zc9HJ6nWo7u2Lxk60i2M6Jd3aiNrA==}
- engines: {node: '>=12.0.0'}
-
- builder-util-runtime@9.3.1:
- resolution: {integrity: sha512-2/egrNDDnRaxVwK3A+cJq6UOlqOdedGA7JPqCeJjN2Zjk1/QB/6QUi3b714ScIGS7HafFXTyzJEOr5b44I3kvQ==}
+ builder-util-runtime@9.5.1:
+ resolution: {integrity: sha512-qt41tMfgHTllhResqM5DcnHyDIWNgzHvuY2jDcYP9iaGpkWxTUzV6GQjDeLnlR1/DtdlcsWQbA7sByMpmJFTLQ==}
engines: {node: '>=12.0.0'}
- builder-util@24.13.1:
- resolution: {integrity: sha512-NhbCSIntruNDTOVI9fdXz0dihaqX2YuE1D6zZMrwiErzH4ELZHE6mdiB40wEgZNprDia+FghRFgKoAqMZRRjSA==}
-
- builder-util@26.0.11:
- resolution: {integrity: sha512-xNjXfsldUEe153h1DraD0XvDOpqGR0L5eKFkdReB7eFW5HqysDZFfly4rckda6y9dF39N3pkPlOblcfHKGw+uA==}
-
- cacache@16.1.3:
- resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==}
- engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
+ builder-util@26.8.1:
+ resolution: {integrity: sha512-pm1lTYbGyc90DHgCDO7eo8Rl4EqKLciayNbZqGziqnH9jrlKe8ZANGdityLZU+pJh16dfzjAx2xQq9McuIPEtw==}
cacheable-lookup@5.0.4:
resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==}
@@ -904,17 +750,10 @@ packages:
resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
engines: {node: '>= 0.4'}
- caniuse-lite@1.0.30001750:
- resolution: {integrity: sha512-cuom0g5sdX6rw00qOoLNSFCJ9/mYIsuSOA+yzpDw8eopiFqcVwQvZHqov0vmEighRxX++cfC0Vg1G+1Iy/mSpQ==}
-
chalk@4.1.2:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
- chownr@2.0.0:
- resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
- engines: {node: '>=10'}
-
chownr@3.0.0:
resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==}
engines: {node: '>=18'}
@@ -922,22 +761,14 @@ packages:
chromium-pickle-js@0.2.0:
resolution: {integrity: sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==}
- ci-info@3.9.0:
- resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
+ ci-info@4.3.1:
+ resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==}
engines: {node: '>=8'}
- clean-stack@2.2.0:
- resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
- engines: {node: '>=6'}
-
- cli-cursor@3.1.0:
- resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
+ ci-info@4.4.0:
+ resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==}
engines: {node: '>=8'}
- cli-spinners@2.9.2:
- resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
- engines: {node: '>=6'}
-
cli-truncate@2.1.0:
resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==}
engines: {node: '>=8'}
@@ -949,10 +780,6 @@ packages:
clone-response@1.0.3:
resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==}
- clone@1.0.4:
- resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
- engines: {node: '>=0.8'}
-
color-convert@2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
engines: {node: '>=7.0.0'}
@@ -968,14 +795,14 @@ packages:
resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==}
engines: {node: '>= 6'}
+ commander@9.5.0:
+ resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==}
+ engines: {node: ^12.20.0 || >=14}
+
compare-version@0.1.2:
resolution: {integrity: sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==}
engines: {node: '>=0.10.0'}
- compress-commons@4.1.2:
- resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==}
- engines: {node: '>= 10'}
-
concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
@@ -984,33 +811,15 @@ packages:
engines: {node: ^14.13.0 || >=16.0.0}
hasBin: true
- config-file-ts@0.2.6:
- resolution: {integrity: sha512-6boGVaglwblBgJqGyxm4+xCmEGcWgnWHSWHY5jad58awQhB6gftq0G8HbzU39YqCIYHMLAiL1yjwiZ36m/CL8w==}
-
- config-file-ts@0.2.8-rc1:
- resolution: {integrity: sha512-GtNECbVI82bT4RiDIzBSVuTKoSHufnU7Ce7/42bkWZJZFLjmDF2WBpVsvRkhKCfKBnTBb3qZrBwPpFBU/Myvhg==}
-
- convert-source-map@2.0.0:
- resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
-
core-util-is@1.0.2:
resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==}
- core-util-is@1.0.3:
- resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
-
- crc-32@1.2.2:
- resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==}
- engines: {node: '>=0.8'}
- hasBin: true
-
- crc32-stream@4.0.3:
- resolution: {integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==}
- engines: {node: '>= 10'}
-
crc@3.8.0:
resolution: {integrity: sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==}
+ cross-dirname@0.1.0:
+ resolution: {integrity: sha512-+R08/oI0nl3vfPcqftZRpytksBXDzOUveBq/NBVx0sUp1axwzPQrKinNx5yd5sxPu8j1wIy8AfnVQ+5eFdha6Q==}
+
cross-env@10.1.0:
resolution: {integrity: sha512-GsYosgnACZTADcmEyJctkJIoqAhHjttw7RsFrVoJNXbsWWqaq6Ym+7kZjq6mS45O0jij6vtiReppKQEtqWy6Dw==}
engines: {node: '>=20'}
@@ -1020,22 +829,13 @@ packages:
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
engines: {node: '>= 8'}
- csstype@3.1.3:
- resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
+ csstype@3.2.3:
+ resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==}
date-fns@2.30.0:
resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==}
engines: {node: '>=0.11'}
- debug@4.4.1:
- resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==}
- engines: {node: '>=6.0'}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
-
debug@4.4.3:
resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
engines: {node: '>=6.0'}
@@ -1049,9 +849,6 @@ packages:
resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
engines: {node: '>=10'}
- defaults@1.0.4:
- resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
-
defer-to-connect@2.0.1:
resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
engines: {node: '>=10'}
@@ -1075,14 +872,11 @@ packages:
detect-node@2.1.0:
resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
- dir-compare@3.3.0:
- resolution: {integrity: sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==}
-
dir-compare@4.2.0:
resolution: {integrity: sha512-2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ==}
- dmg-builder@26.0.12:
- resolution: {integrity: sha512-59CAAjAhTaIMCN8y9kD573vDkxbs1uhDcrFLHSgutYdPcGOU35Rf95725snvzEOy4BFB7+eLJ8djCNPmGwG67w==}
+ dmg-builder@26.8.1:
+ resolution: {integrity: sha512-glMJgnTreo8CFINujtAhCgN96QAqApDMZ8Vl1r8f0QT8QprvC1UCltV4CcWj20YoIyLZx6IUskaJZ0NV8fokcg==}
dmg-license@1.0.11:
resolution: {integrity: sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==}
@@ -1094,70 +888,52 @@ packages:
resolution: {integrity: sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==}
engines: {node: '>=12'}
- dotenv-expand@5.1.0:
- resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==}
-
dotenv@16.6.1:
resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==}
engines: {node: '>=12'}
- dotenv@17.2.3:
- resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==}
+ dotenv@17.4.2:
+ resolution: {integrity: sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==}
engines: {node: '>=12'}
- dotenv@9.0.2:
- resolution: {integrity: sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==}
- engines: {node: '>=10'}
-
dunder-proto@1.0.1:
resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
engines: {node: '>= 0.4'}
- eastasianwidth@0.2.0:
- resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
-
ejs@3.1.10:
resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==}
engines: {node: '>=0.10.0'}
hasBin: true
- electron-builder-squirrel-windows@24.13.3:
- resolution: {integrity: sha512-oHkV0iogWfyK+ah9ZIvMDpei1m9ZRpdXcvde1wTpra2U8AFDNNpqJdnin5z+PM1GbQ5BoaKCWas2HSjtR0HwMg==}
+ electron-builder-squirrel-windows@26.8.1:
+ resolution: {integrity: sha512-o288fIdgPLHA76eDrFADHPoo7VyGkDCYbLV1GzndaMSAVBoZrGvM9m2IehdcVMzdAZJ2eV9bgyissQXHv5tGzA==}
- electron-builder@26.0.12:
- resolution: {integrity: sha512-cD1kz5g2sgPTMFHjLxfMjUK5JABq3//J4jPswi93tOPFz6btzXYtK5NrDt717NRbukCUDOrrvmYVOWERlqoiXA==}
+ electron-builder@26.8.1:
+ resolution: {integrity: sha512-uWhx1r74NGpCagG0ULs/P9Nqv2nsoo+7eo4fLUOB8L8MdWltq9odW/uuLXMFCDGnPafknYLZgjNX0ZIFRzOQAw==}
engines: {node: '>=14.0.0'}
hasBin: true
- electron-publish@24.13.1:
- resolution: {integrity: sha512-2ZgdEqJ8e9D17Hwp5LEq5mLQPjqU3lv/IALvgp+4W8VeNhryfGhYEQC/PgDPMrnWUp+l60Ou5SJLsu+k4mhQ8A==}
-
- electron-publish@26.0.11:
- resolution: {integrity: sha512-a8QRH0rAPIWH9WyyS5LbNvW9Ark6qe63/LqDB7vu2JXYpi0Gma5Q60Dh4tmTqhOBQt0xsrzD8qE7C+D7j+B24A==}
+ electron-publish@26.8.1:
+ resolution: {integrity: sha512-q+jrSTIh/Cv4eGZa7oVR+grEJo/FoLMYBAnSL5GCtqwUpr1T+VgKB/dn1pnzxIxqD8S/jP1yilT9VrwCqINR4w==}
- electron-to-chromium@1.5.237:
- resolution: {integrity: sha512-icUt1NvfhGLar5lSWH3tHNzablaA5js3HVHacQimfP8ViEBOQv+L7DKEuHdbTZ0SKCO1ogTJTIL1Gwk9S6Qvcg==}
+ electron-winstaller@5.4.0:
+ resolution: {integrity: sha512-bO3y10YikuUwUuDUQRM4KfwNkKhnpVO7IPdbsrejwN9/AABJzzTQ4GeHwyzNSrVO+tEH3/Np255a3sVZpZDjvg==}
+ engines: {node: '>=8.0.0'}
- electron@https://codeload.github.com/castlabs/electron-releases/tar.gz/678b5c7761825c5af936f5c67a9101f3fc6ab750:
- resolution: {tarball: https://codeload.github.com/castlabs/electron-releases/tar.gz/678b5c7761825c5af936f5c67a9101f3fc6ab750}
- version: 38.0.0
+ electron@https://codeload.github.com/castlabs/electron-releases/tar.gz/b5480283432a0523f4f3a9c62b130fe8dcde5299:
+ resolution: {tarball: https://codeload.github.com/castlabs/electron-releases/tar.gz/b5480283432a0523f4f3a9c62b130fe8dcde5299}
+ version: 39.8.10
engines: {node: '>= 12.20.55'}
hasBin: true
emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
- emoji-regex@9.2.2:
- resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
-
- encoding@0.1.13:
- resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==}
-
end-of-stream@1.4.5:
resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==}
- enhanced-resolve@5.18.3:
- resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==}
+ enhanced-resolve@5.21.4:
+ resolution: {integrity: sha512-wE4fDO8OjJhrPFH69HUQStq5oKvGRTNXEyW+k5C/pUQLASSsTu7obd2V3GvCDgPcY9AWjhJ4jz9Kh7iRvrxhJg==}
engines: {node: '>=10.13.0'}
env-paths@2.2.1:
@@ -1186,8 +962,8 @@ packages:
es6-error@4.1.1:
resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==}
- esbuild@0.25.11:
- resolution: {integrity: sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==}
+ esbuild@0.28.0:
+ resolution: {integrity: sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==}
engines: {node: '>=18'}
hasBin: true
@@ -1224,7 +1000,7 @@ packages:
resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
engines: {node: '>=12.0.0'}
peerDependencies:
- picomatch: ^3 || ^4
+ picomatch: 4.0.4
peerDependenciesMeta:
picomatch:
optional: true
@@ -1232,17 +1008,10 @@ packages:
filelist@1.0.4:
resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
- foreground-child@3.3.1:
- resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==}
- engines: {node: '>=14'}
-
- form-data@4.0.4:
- resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==}
+ form-data@4.0.5:
+ resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==}
engines: {node: '>= 6'}
- fs-constants@1.0.0:
- resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
-
fs-extra@10.1.0:
resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
engines: {node: '>=12'}
@@ -1251,6 +1020,10 @@ packages:
resolution: {integrity: sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==}
engines: {node: '>=14.14'}
+ fs-extra@7.0.1:
+ resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==}
+ engines: {node: '>=6 <7 || >=8'}
+
fs-extra@8.1.0:
resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==}
engines: {node: '>=6 <7 || >=8'}
@@ -1259,10 +1032,6 @@ packages:
resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
engines: {node: '>=10'}
- fs-minipass@2.1.0:
- resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
- engines: {node: '>= 8'}
-
fs.realpath@1.0.0:
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
@@ -1274,10 +1043,6 @@ packages:
function-bind@1.1.2:
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
- gensync@1.0.0-beta.2:
- resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
- engines: {node: '>=6.9.0'}
-
get-caller-file@2.0.5:
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
engines: {node: 6.* || 8.* || >= 10.*}
@@ -1294,18 +1059,9 @@ packages:
resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
engines: {node: '>=8'}
- glob@10.4.5:
- resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
- hasBin: true
-
glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
- deprecated: Glob versions prior to v9 are no longer supported
-
- glob@8.1.0:
- resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
- engines: {node: '>=12'}
- deprecated: Glob versions prior to v9 are no longer supported
+ deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
global-agent@3.0.0:
resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==}
@@ -1352,10 +1108,6 @@ packages:
http-cache-semantics@4.2.0:
resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==}
- http-proxy-agent@5.0.0:
- resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
- engines: {node: '>= 6'}
-
http-proxy-agent@7.0.2:
resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
engines: {node: '>= 14'}
@@ -1364,17 +1116,10 @@ packages:
resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==}
engines: {node: '>=10.19.0'}
- https-proxy-agent@5.0.1:
- resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
- engines: {node: '>= 6'}
-
https-proxy-agent@7.0.6:
resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==}
engines: {node: '>= 14'}
- humanize-ms@1.2.1:
- resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
-
iconv-corefoundation@1.1.7:
resolution: {integrity: sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==}
engines: {node: ^8.11.2 || >=10}
@@ -1387,17 +1132,6 @@ packages:
ieee754@1.2.1:
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
- imurmurhash@0.1.4:
- resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
- engines: {node: '>=0.8.19'}
-
- indent-string@4.0.0:
- resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
- engines: {node: '>=8'}
-
- infer-owner@1.0.4:
- resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==}
-
inflight@1.0.6:
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
@@ -1405,32 +1139,10 @@ packages:
inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
- ip-address@10.0.1:
- resolution: {integrity: sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==}
- engines: {node: '>= 12'}
-
- is-ci@3.0.1:
- resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==}
- hasBin: true
-
is-fullwidth-code-point@3.0.0:
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
engines: {node: '>=8'}
- is-interactive@1.0.0:
- resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
- engines: {node: '>=8'}
-
- is-lambda@1.0.1:
- resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==}
-
- is-unicode-supported@0.1.0:
- resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
- engines: {node: '>=10'}
-
- isarray@1.0.0:
- resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
-
isbinaryfile@4.0.10:
resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==}
engines: {node: '>= 8.0.0'}
@@ -1442,8 +1154,13 @@ packages:
isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
- jackspeak@3.4.3:
- resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
+ isexe@3.1.5:
+ resolution: {integrity: sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==}
+ engines: {node: '>=18'}
+
+ isexe@4.0.0:
+ resolution: {integrity: sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==}
+ engines: {node: '>=20'}
jake@10.9.4:
resolution: {integrity: sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==}
@@ -1457,13 +1174,8 @@ packages:
js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
- js-yaml@4.1.0:
- resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
- hasBin: true
-
- jsesc@3.1.0:
- resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
- engines: {node: '>=6'}
+ js-yaml@4.1.1:
+ resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==}
hasBin: true
json-buffer@3.0.1:
@@ -1492,165 +1204,78 @@ packages:
lazy-val@1.0.5:
resolution: {integrity: sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==}
- lazystream@1.0.1:
- resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==}
- engines: {node: '>= 0.6.3'}
-
- lightningcss-android-arm64@1.30.2:
- resolution: {integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==}
+ lightningcss-android-arm64@1.32.0:
+ resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [android]
- lightningcss-darwin-arm64@1.30.1:
- resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==}
- engines: {node: '>= 12.0.0'}
- cpu: [arm64]
- os: [darwin]
-
- lightningcss-darwin-arm64@1.30.2:
- resolution: {integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==}
+ lightningcss-darwin-arm64@1.32.0:
+ resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [darwin]
- lightningcss-darwin-x64@1.30.1:
- resolution: {integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==}
+ lightningcss-darwin-x64@1.32.0:
+ resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [darwin]
- lightningcss-darwin-x64@1.30.2:
- resolution: {integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==}
- engines: {node: '>= 12.0.0'}
- cpu: [x64]
- os: [darwin]
-
- lightningcss-freebsd-x64@1.30.1:
- resolution: {integrity: sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==}
- engines: {node: '>= 12.0.0'}
- cpu: [x64]
- os: [freebsd]
-
- lightningcss-freebsd-x64@1.30.2:
- resolution: {integrity: sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==}
+ lightningcss-freebsd-x64@1.32.0:
+ resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [freebsd]
- lightningcss-linux-arm-gnueabihf@1.30.1:
- resolution: {integrity: sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==}
+ lightningcss-linux-arm-gnueabihf@1.32.0:
+ resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==}
engines: {node: '>= 12.0.0'}
cpu: [arm]
os: [linux]
- lightningcss-linux-arm-gnueabihf@1.30.2:
- resolution: {integrity: sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==}
+ lightningcss-linux-arm64-gnu@1.32.0:
+ resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==}
engines: {node: '>= 12.0.0'}
- cpu: [arm]
+ cpu: [arm64]
os: [linux]
- lightningcss-linux-arm64-gnu@1.30.1:
- resolution: {integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==}
+ lightningcss-linux-arm64-musl@1.32.0:
+ resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [linux]
- lightningcss-linux-arm64-gnu@1.30.2:
- resolution: {integrity: sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==}
+ lightningcss-linux-x64-gnu@1.32.0:
+ resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==}
engines: {node: '>= 12.0.0'}
- cpu: [arm64]
+ cpu: [x64]
os: [linux]
- lightningcss-linux-arm64-musl@1.30.1:
- resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==}
+ lightningcss-linux-x64-musl@1.32.0:
+ resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==}
engines: {node: '>= 12.0.0'}
- cpu: [arm64]
+ cpu: [x64]
os: [linux]
- lightningcss-linux-arm64-musl@1.30.2:
- resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==}
+ lightningcss-win32-arm64-msvc@1.32.0:
+ resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
- os: [linux]
+ os: [win32]
- lightningcss-linux-x64-gnu@1.30.1:
- resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==}
+ lightningcss-win32-x64-msvc@1.32.0:
+ resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
- os: [linux]
+ os: [win32]
- lightningcss-linux-x64-gnu@1.30.2:
- resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==}
+ lightningcss@1.32.0:
+ resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==}
engines: {node: '>= 12.0.0'}
- cpu: [x64]
- os: [linux]
- lightningcss-linux-x64-musl@1.30.1:
- resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==}
- engines: {node: '>= 12.0.0'}
- cpu: [x64]
- os: [linux]
-
- lightningcss-linux-x64-musl@1.30.2:
- resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==}
- engines: {node: '>= 12.0.0'}
- cpu: [x64]
- os: [linux]
-
- lightningcss-win32-arm64-msvc@1.30.1:
- resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==}
- engines: {node: '>= 12.0.0'}
- cpu: [arm64]
- os: [win32]
-
- lightningcss-win32-arm64-msvc@1.30.2:
- resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==}
- engines: {node: '>= 12.0.0'}
- cpu: [arm64]
- os: [win32]
-
- lightningcss-win32-x64-msvc@1.30.1:
- resolution: {integrity: sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==}
- engines: {node: '>= 12.0.0'}
- cpu: [x64]
- os: [win32]
-
- lightningcss-win32-x64-msvc@1.30.2:
- resolution: {integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==}
- engines: {node: '>= 12.0.0'}
- cpu: [x64]
- os: [win32]
-
- lightningcss@1.30.1:
- resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==}
- engines: {node: '>= 12.0.0'}
-
- lightningcss@1.30.2:
- resolution: {integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==}
- engines: {node: '>= 12.0.0'}
-
- lodash.defaults@4.2.0:
- resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==}
-
- lodash.difference@4.5.0:
- resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==}
-
- lodash.flatten@4.4.0:
- resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==}
-
- lodash.isplainobject@4.0.6:
- resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
-
- lodash.union@4.6.0:
- resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==}
-
- lodash@4.17.21:
- resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
-
- log-symbols@4.1.0:
- resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
- engines: {node: '>=10'}
+ lodash@4.18.1:
+ resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==}
loose-envify@1.4.0:
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
@@ -1660,31 +1285,17 @@ packages:
resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==}
engines: {node: '>=8'}
- lru-cache@10.4.3:
- resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
-
- lru-cache@5.1.1:
- resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
-
lru-cache@6.0.0:
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
engines: {node: '>=10'}
- lru-cache@7.18.3:
- resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
- engines: {node: '>=12'}
-
lucide-react@0.546.0:
resolution: {integrity: sha512-Z94u6fKT43lKeYHiVyvyR8fT7pwCzDu7RyMPpTvh054+xahSgj4HFQ+NmflvzdXsoAjYGdCguGaFKYuvq0ThCQ==}
peerDependencies:
react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
- magic-string@0.30.19:
- resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==}
-
- make-fetch-happen@10.2.1:
- resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==}
- engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
+ magic-string@0.30.21:
+ resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
matcher@3.0.0:
resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==}
@@ -1707,10 +1318,6 @@ packages:
engines: {node: '>=4.0.0'}
hasBin: true
- mimic-fn@2.1.0:
- resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
- engines: {node: '>=6'}
-
mimic-response@1.0.1:
resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==}
engines: {node: '>=4'}
@@ -1719,67 +1326,34 @@ packages:
resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
engines: {node: '>=10'}
- minimatch@10.0.3:
- resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==}
- engines: {node: 20 || >=22}
+ minimatch@10.2.5:
+ resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==}
+ engines: {node: 18 || 20 || >=22}
- minimatch@3.1.2:
- resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+ minimatch@3.1.4:
+ resolution: {integrity: sha512-twmL+S8+7yIsE9wsqgzU3E8/LumN3M3QELrBZ20OdmQ9jB2JvW5oZtBEmft84k/Gs5CG9mqtWc6Y9vW+JEzGxw==}
- minimatch@5.1.6:
- resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
+ minimatch@5.1.8:
+ resolution: {integrity: sha512-7RN35vit8DeBclkofOVmBY0eDAZZQd1HzmukRdSyz95CRh8FT54eqnbj0krQr3mrHR6sfRyYkyhwBWjoV5uqlQ==}
engines: {node: '>=10'}
- minimatch@9.0.5:
- resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
+ minimatch@9.0.9:
+ resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==}
engines: {node: '>=16 || 14 >=14.17'}
minimist@1.2.8:
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
- minipass-collect@1.0.2:
- resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==}
- engines: {node: '>= 8'}
-
- minipass-fetch@2.1.2:
- resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==}
- engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
-
- minipass-flush@1.0.5:
- resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==}
- engines: {node: '>= 8'}
-
- minipass-pipeline@1.2.4:
- resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==}
- engines: {node: '>=8'}
-
- minipass-sized@1.0.3:
- resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==}
- engines: {node: '>=8'}
-
- minipass@3.3.6:
- resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
- engines: {node: '>=8'}
-
- minipass@5.0.0:
- resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
- engines: {node: '>=8'}
-
minipass@7.1.2:
resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
engines: {node: '>=16 || 14 >=14.17'}
- minizlib@2.1.2:
- resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
- engines: {node: '>= 8'}
-
minizlib@3.1.0:
resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==}
engines: {node: '>= 18'}
- mkdirp@1.0.4:
- resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
- engines: {node: '>=10'}
+ mkdirp@0.5.6:
+ resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
hasBin: true
ms@2.1.3:
@@ -1790,13 +1364,9 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
- negotiator@0.6.4:
- resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==}
- engines: {node: '>= 0.6'}
-
- node-abi@3.78.0:
- resolution: {integrity: sha512-E2wEyrgX/CqvicaQYU3Ze1PFGjc4QYPGsjUrlYkqAE0WjHEZwgOsGMPMzkMse4LjJbDmaEuDX3CM036j5K2DSQ==}
- engines: {node: '>=10'}
+ node-abi@4.31.0:
+ resolution: {integrity: sha512-Erq5w/t3syw3s4sDsUaX4QttIdBPsGKTT1DTRsCkTonGggczhlDKm/wDX3o+HPJpQ41EjXCbcmXf0tgr5YZJXw==}
+ engines: {node: '>=22.12.0'}
node-addon-api@1.7.2:
resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==}
@@ -1804,17 +1374,15 @@ packages:
node-api-version@0.2.1:
resolution: {integrity: sha512-2xP/IGGMmmSQpI1+O/k72jF/ykvZ89JeuKX3TLJAYPDVLUalrshrLHkeVcCCZqG/eEa635cr8IBYzgnDvM2O8Q==}
- node-releases@2.0.23:
- resolution: {integrity: sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==}
-
- nopt@6.0.0:
- resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==}
- engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
+ node-gyp@12.3.0:
+ resolution: {integrity: sha512-QNcUWM+HgJplcPzBvFBZ9VXacyGZ4+VTOb80PwWR+TlVzoHbRKULNEzpRsnaoxG3Wzr7Qh7BYxGDU3CbKib2Yg==}
+ engines: {node: ^20.17.0 || >=22.9.0}
hasBin: true
- normalize-path@3.0.0:
- resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
- engines: {node: '>=0.10.0'}
+ nopt@9.0.0:
+ resolution: {integrity: sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==}
+ engines: {node: ^20.17.0 || >=22.9.0}
+ hasBin: true
normalize-url@6.1.0:
resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
@@ -1827,14 +1395,6 @@ packages:
once@1.4.0:
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
- onetime@5.1.2:
- resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
- engines: {node: '>=6'}
-
- ora@5.4.1:
- resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
- engines: {node: '>=10'}
-
p-cancelable@2.1.1:
resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==}
engines: {node: '>=8'}
@@ -1843,13 +1403,6 @@ packages:
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
engines: {node: '>=10'}
- p-map@4.0.0:
- resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==}
- engines: {node: '>=10'}
-
- package-json-from-dist@1.0.1:
- resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
-
path-is-absolute@1.0.1:
resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
engines: {node: '>=0.10.0'}
@@ -1858,10 +1411,6 @@ packages:
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
engines: {node: '>=8'}
- path-scurry@1.11.1:
- resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
- engines: {node: '>=16 || 14 >=14.18'}
-
pe-library@0.4.1:
resolution: {integrity: sha512-eRWB5LBz7PpDu4PUlwT0PhnQfTQJlDDdPa35urV4Osrm0t0AqQFGn+UIkU3klZvwJ8KPO3VbBFsXquA6p6kqZw==}
engines: {node: '>=12', npm: '>=6'}
@@ -1872,45 +1421,43 @@ packages:
picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
- picomatch@4.0.3:
- resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
+ picomatch@4.0.4:
+ resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==}
engines: {node: '>=12'}
plist@3.1.0:
resolution: {integrity: sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==}
engines: {node: '>=10.4.0'}
- postcss@8.5.6:
- resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
+ postcss@8.5.14:
+ resolution: {integrity: sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==}
engines: {node: ^10 || ^12 || >=14}
- prettier@3.6.2:
- resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==}
- engines: {node: '>=14'}
+ postject@1.0.0-alpha.6:
+ resolution: {integrity: sha512-b9Eb8h2eVqNE8edvKdwqkrY6O7kAwmI8kcnBv1NScolYJbo59XUF0noFq+lxbC1yN20bmC0WBEbDC5H/7ASb0A==}
+ engines: {node: '>=14.0.0'}
+ hasBin: true
- proc-log@2.0.1:
- resolution: {integrity: sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==}
- engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
+ prettier@3.8.3:
+ resolution: {integrity: sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==}
+ engines: {node: '>=14'}
+ hasBin: true
- process-nextick-args@2.0.1:
- resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
+ proc-log@6.1.0:
+ resolution: {integrity: sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==}
+ engines: {node: ^20.17.0 || >=22.9.0}
progress@2.0.3:
resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==}
engines: {node: '>=0.4.0'}
- promise-inflight@1.0.1:
- resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==}
- peerDependencies:
- bluebird: '*'
- peerDependenciesMeta:
- bluebird:
- optional: true
-
promise-retry@2.0.1:
resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==}
engines: {node: '>=10'}
+ proper-lockfile@4.1.2:
+ resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==}
+
pump@3.0.3:
resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==}
@@ -1927,10 +1474,6 @@ packages:
peerDependencies:
react: ^18.3.1
- react-refresh@0.17.0:
- resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==}
- engines: {node: '>=0.10.0'}
-
react@18.3.1:
resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
engines: {node: '>=0.10.0'}
@@ -1939,20 +1482,6 @@ packages:
resolution: {integrity: sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg==}
hasBin: true
- read-config-file@6.3.2:
- resolution: {integrity: sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q==}
- engines: {node: '>=12.0.0'}
-
- readable-stream@2.3.8:
- resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
-
- readable-stream@3.6.2:
- resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
- engines: {node: '>= 6'}
-
- readdir-glob@1.1.3:
- resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==}
-
require-directory@2.1.1:
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: '>=0.10.0'}
@@ -1967,16 +1496,12 @@ packages:
responselike@2.0.1:
resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==}
- restore-cursor@3.1.0:
- resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
- engines: {node: '>=8'}
-
retry@0.12.0:
resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
engines: {node: '>= 4'}
- rimraf@3.0.2:
- resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
+ rimraf@2.6.3:
+ resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==}
deprecated: Rimraf versions prior to v4 are no longer supported
hasBin: true
@@ -1984,20 +1509,14 @@ packages:
resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==}
engines: {node: '>=8.0'}
- rollup@4.52.5:
- resolution: {integrity: sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==}
- engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+ rolldown@1.0.1:
+ resolution: {integrity: sha512-X0KQHljNnEkWNqqiz9zJrGunh1B0HgOxLXvnFpCOcadzcy5qohZ3tqMEUg00vncoRovXuK3ZqCT9KnnKzoInFQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
rxjs@7.8.2:
resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==}
- safe-buffer@5.1.2:
- resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
-
- safe-buffer@5.2.1:
- resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
-
safer-buffer@2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
@@ -2021,11 +1540,6 @@ packages:
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
hasBin: true
- semver@7.7.2:
- resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==}
- engines: {node: '>=10'}
- hasBin: true
-
semver@7.7.3:
resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==}
engines: {node: '>=10'}
@@ -2050,10 +1564,6 @@ packages:
signal-exit@3.0.7:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
- signal-exit@4.1.0:
- resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
- engines: {node: '>=14'}
-
simple-update-notifier@2.0.0:
resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==}
engines: {node: '>=10'}
@@ -2066,14 +1576,6 @@ packages:
resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
- socks-proxy-agent@7.0.0:
- resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==}
- engines: {node: '>= 10'}
-
- socks@2.8.7:
- resolution: {integrity: sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==}
- engines: {node: '>= 10.0.0', npm: '>= 3.0.0'}
-
source-map-js@1.2.1:
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
engines: {node: '>=0.10.0'}
@@ -2091,10 +1593,6 @@ packages:
sprintf-js@1.1.3:
resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
- ssri@9.0.1:
- resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==}
- engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
-
stat-mode@1.0.0:
resolution: {integrity: sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==}
engines: {node: '>= 6'}
@@ -2103,24 +1601,10 @@ packages:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
- string-width@5.1.2:
- resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
- engines: {node: '>=12'}
-
- string_decoder@1.1.1:
- resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
-
- string_decoder@1.3.0:
- resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
-
strip-ansi@6.0.1:
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
engines: {node: '>=8'}
- strip-ansi@7.1.2:
- resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==}
- engines: {node: '>=12'}
-
sumchecker@3.0.1:
resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==}
engines: {node: '>= 8.0'}
@@ -2133,28 +1617,24 @@ packages:
resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
engines: {node: '>=10'}
- tailwindcss@4.1.14:
- resolution: {integrity: sha512-b7pCxjGO98LnxVkKjaZSDeNuljC4ueKUddjENJOADtubtdo8llTaJy7HwBMeLNSSo2N5QIAgklslK1+Ir8r6CA==}
+ tailwindcss@4.3.0:
+ resolution: {integrity: sha512-y6nxMGB1nMW9R6k96e5gdIFzcfL/gTJRNaqGes1YvkLnPVXzWgbqFF2yLC0T8G774n24cx3Pe8XrKoniCOAH+Q==}
- tapable@2.3.0:
- resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==}
+ tapable@2.3.3:
+ resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==}
engines: {node: '>=6'}
- tar-stream@2.2.0:
- resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
- engines: {node: '>=6'}
-
- tar@6.2.1:
- resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
- engines: {node: '>=10'}
-
- tar@7.5.1:
- resolution: {integrity: sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==}
+ tar@7.5.15:
+ resolution: {integrity: sha512-dzGK0boVlC4W5QFuQN1EFSl3bIDYsk7Tj40U6eIBnK2k/8ml7TZ5agbI5j5+qnoVcAA+rNtBml8SEiLxZpNqRQ==}
engines: {node: '>=18'}
temp-file@3.4.0:
resolution: {integrity: sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==}
+ temp@0.9.4:
+ resolution: {integrity: sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==}
+ engines: {node: '>=6.0.0'}
+
tiny-async-pool@1.3.0:
resolution: {integrity: sha512-01EAw5EDrcVrdgyCLgoSPvqznC0sVxDSVeiOz09FUpjh71G79VCqneOr+xvt7T1r76CF6ZZfPjHorN2+d+3mqA==}
@@ -2162,6 +1642,10 @@ packages:
resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
engines: {node: '>=12.0.0'}
+ tinyglobby@0.2.16:
+ resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==}
+ engines: {node: '>=12.0.0'}
+
tmp-promise@3.0.3:
resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==}
@@ -2179,38 +1663,8 @@ packages:
tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
- turbo-darwin-64@2.5.8:
- resolution: {integrity: sha512-Dh5bCACiHO8rUXZLpKw+m3FiHtAp2CkanSyJre+SInEvEr5kIxjGvCK/8MFX8SFRjQuhjtvpIvYYZJB4AGCxNQ==}
- cpu: [x64]
- os: [darwin]
-
- turbo-darwin-arm64@2.5.8:
- resolution: {integrity: sha512-f1H/tQC9px7+hmXn6Kx/w8Jd/FneIUnvLlcI/7RGHunxfOkKJKvsoiNzySkoHQ8uq1pJnhJ0xNGTlYM48ZaJOQ==}
- cpu: [arm64]
- os: [darwin]
-
- turbo-linux-64@2.5.8:
- resolution: {integrity: sha512-hMyvc7w7yadBlZBGl/bnR6O+dJTx3XkTeyTTH4zEjERO6ChEs0SrN8jTFj1lueNXKIHh1SnALmy6VctKMGnWfw==}
- cpu: [x64]
- os: [linux]
-
- turbo-linux-arm64@2.5.8:
- resolution: {integrity: sha512-LQELGa7bAqV2f+3rTMRPnj5G/OHAe2U+0N9BwsZvfMvHSUbsQ3bBMWdSQaYNicok7wOZcHjz2TkESn1hYK6xIQ==}
- cpu: [arm64]
- os: [linux]
-
- turbo-windows-64@2.5.8:
- resolution: {integrity: sha512-3YdcaW34TrN1AWwqgYL9gUqmZsMT4T7g8Y5Azz+uwwEJW+4sgcJkIi9pYFyU4ZBSjBvkfuPZkGgfStir5BBDJQ==}
- cpu: [x64]
- os: [win32]
-
- turbo-windows-arm64@2.5.8:
- resolution: {integrity: sha512-eFC5XzLmgXJfnAK3UMTmVECCwuBcORrWdewoiXBnUm934DY6QN8YowC/srhNnROMpaKaqNeRpoB5FxCww3eteQ==}
- cpu: [arm64]
- os: [win32]
-
- turbo@2.5.8:
- resolution: {integrity: sha512-5c9Fdsr9qfpT3hA0EyYSFRZj1dVVsb6KIWubA9JBYZ/9ZEAijgUEae0BBR/Xl/wekt4w65/lYLTFaP3JmwSO8w==}
+ turbo@2.9.14:
+ resolution: {integrity: sha512-BQqXRr4UoWI3UPFrtznCLykYHxwxWh53iCB57x092jPMjIlW1wnm3N895g5irpiXmnxUhREBB0n6+y8BHhs4nw==}
hasBin: true
type-fest@0.13.1:
@@ -2225,13 +1679,9 @@ packages:
undici-types@6.21.0:
resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
- unique-filename@2.0.1:
- resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==}
- engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
-
- unique-slug@3.0.0:
- resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==}
- engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
+ undici@6.25.0:
+ resolution: {integrity: sha512-ZgpWDC5gmNiuY9CnLVXEH8rl50xhRCuLNA97fAUnKi8RRuV4E6KG31pDTsLVUKnohJE0I3XDrTeEydAXRw47xg==}
+ engines: {node: '>=18.17'}
universalify@0.1.2:
resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
@@ -2241,34 +1691,26 @@ packages:
resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
engines: {node: '>= 10.0.0'}
- update-browserslist-db@1.1.3:
- resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==}
- hasBin: true
- peerDependencies:
- browserslist: '>= 4.21.0'
-
uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
utf8-byte-length@1.0.5:
resolution: {integrity: sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==}
- util-deprecate@1.0.2:
- resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
-
verror@1.10.1:
resolution: {integrity: sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==}
engines: {node: '>=0.6.0'}
- vite@7.1.11:
- resolution: {integrity: sha512-uzcxnSDVjAopEUjljkWh8EIrg6tlzrjFUfMcR1EVsRDGwf/ccef0qQPRyOrROwhrTDaApueq+ja+KLPlzR/zdg==}
+ vite@8.0.13:
+ resolution: {integrity: sha512-MFtjBYgzmSxmgA4RAfjIyXWpGe1oALnjgUTzzV7QLx/TKxCzjtMH6Fd9/eVK+5Fg1qNoz5VAwsmMs/NofrmJvw==}
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
peerDependencies:
'@types/node': ^20.19.0 || >=22.12.0
+ '@vitejs/devtools': ^0.1.18
+ esbuild: ^0.27.0 || ^0.28.0
jiti: '>=1.21.0'
less: ^4.0.0
- lightningcss: ^1.21.0
sass: ^1.70.0
sass-embedded: ^1.70.0
stylus: '>=0.54.8'
@@ -2279,12 +1721,14 @@ packages:
peerDependenciesMeta:
'@types/node':
optional: true
+ '@vitejs/devtools':
+ optional: true
+ esbuild:
+ optional: true
jiti:
optional: true
less:
optional: true
- lightningcss:
- optional: true
sass:
optional: true
sass-embedded:
@@ -2300,22 +1744,25 @@ packages:
yaml:
optional: true
- wcwidth@1.0.1:
- resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
-
which@2.0.2:
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
engines: {node: '>= 8'}
hasBin: true
+ which@5.0.0:
+ resolution: {integrity: sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==}
+ engines: {node: ^18.17.0 || >=20.5.0}
+ hasBin: true
+
+ which@6.0.1:
+ resolution: {integrity: sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==}
+ engines: {node: ^20.17.0 || >=22.9.0}
+ hasBin: true
+
wrap-ansi@7.0.0:
resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
engines: {node: '>=10'}
- wrap-ansi@8.1.0:
- resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
- engines: {node: '>=12'}
-
wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
@@ -2327,9 +1774,6 @@ packages:
resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
engines: {node: '>=10'}
- yallist@3.1.1:
- resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
-
yallist@4.0.0:
resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
@@ -2352,144 +1796,22 @@ packages:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
- zip-stream@4.1.1:
- resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==}
- engines: {node: '>= 10'}
-
snapshots:
7zip-bin@5.2.0: {}
- '@babel/code-frame@7.27.1':
- dependencies:
- '@babel/helper-validator-identifier': 7.27.1
- js-tokens: 4.0.0
- picocolors: 1.1.1
-
- '@babel/compat-data@7.28.4': {}
-
- '@babel/core@7.28.4':
- dependencies:
- '@babel/code-frame': 7.27.1
- '@babel/generator': 7.28.3
- '@babel/helper-compilation-targets': 7.27.2
- '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4)
- '@babel/helpers': 7.28.4
- '@babel/parser': 7.28.4
- '@babel/template': 7.27.2
- '@babel/traverse': 7.28.4
- '@babel/types': 7.28.4
- '@jridgewell/remapping': 2.3.5
- convert-source-map: 2.0.0
- debug: 4.4.1
- gensync: 1.0.0-beta.2
- json5: 2.2.3
- semver: 6.3.1
- transitivePeerDependencies:
- - supports-color
-
- '@babel/generator@7.28.3':
- dependencies:
- '@babel/parser': 7.28.4
- '@babel/types': 7.28.4
- '@jridgewell/gen-mapping': 0.3.13
- '@jridgewell/trace-mapping': 0.3.31
- jsesc: 3.1.0
-
- '@babel/helper-compilation-targets@7.27.2':
- dependencies:
- '@babel/compat-data': 7.28.4
- '@babel/helper-validator-option': 7.27.1
- browserslist: 4.26.3
- lru-cache: 5.1.1
- semver: 6.3.1
-
- '@babel/helper-globals@7.28.0': {}
-
- '@babel/helper-module-imports@7.27.1':
- dependencies:
- '@babel/traverse': 7.28.4
- '@babel/types': 7.28.4
- transitivePeerDependencies:
- - supports-color
-
- '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4)':
- dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-module-imports': 7.27.1
- '@babel/helper-validator-identifier': 7.27.1
- '@babel/traverse': 7.28.4
- transitivePeerDependencies:
- - supports-color
-
- '@babel/helper-plugin-utils@7.27.1': {}
-
- '@babel/helper-string-parser@7.27.1': {}
-
- '@babel/helper-validator-identifier@7.27.1': {}
-
- '@babel/helper-validator-option@7.27.1': {}
-
- '@babel/helpers@7.28.4':
- dependencies:
- '@babel/template': 7.27.2
- '@babel/types': 7.28.4
-
- '@babel/parser@7.28.4':
- dependencies:
- '@babel/types': 7.28.4
-
- '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.4)':
- dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.4)':
- dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-plugin-utils': 7.27.1
-
'@babel/runtime@7.28.4': {}
- '@babel/template@7.27.2':
- dependencies:
- '@babel/code-frame': 7.27.1
- '@babel/parser': 7.28.4
- '@babel/types': 7.28.4
-
- '@babel/traverse@7.28.4':
- dependencies:
- '@babel/code-frame': 7.27.1
- '@babel/generator': 7.28.3
- '@babel/helper-globals': 7.28.0
- '@babel/parser': 7.28.4
- '@babel/template': 7.27.2
- '@babel/types': 7.28.4
- debug: 4.4.3
- transitivePeerDependencies:
- - supports-color
-
- '@babel/types@7.28.4':
- dependencies:
- '@babel/helper-string-parser': 7.27.1
- '@babel/helper-validator-identifier': 7.27.1
-
'@develar/schema-utils@2.6.5':
dependencies:
- ajv: 6.12.6
- ajv-keywords: 3.5.2(ajv@6.12.6)
-
- '@electron/asar@3.2.18':
- dependencies:
- commander: 5.1.0
- glob: 7.2.3
- minimatch: 3.1.2
+ ajv: 6.14.0
+ ajv-keywords: 3.5.2(ajv@6.14.0)
'@electron/asar@3.4.1':
dependencies:
commander: 5.1.0
glob: 7.2.3
- minimatch: 3.1.2
+ minimatch: 3.1.4
'@electron/fuses@1.8.0':
dependencies:
@@ -2511,27 +1833,17 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@electron/node-gyp@https://codeload.github.com/electron/node-gyp/tar.gz/06b29aafb7708acef8b3669835c8a7857ebc92d2':
- dependencies:
- env-paths: 2.2.1
- exponential-backoff: 3.1.3
- glob: 8.1.0
- graceful-fs: 4.2.11
- make-fetch-happen: 10.2.1
- nopt: 6.0.0
- proc-log: 2.0.1
- semver: 7.7.3
- tar: 6.2.1
- which: 2.0.2
- transitivePeerDependencies:
- - bluebird
- - supports-color
-
- '@electron/notarize@2.2.1':
+ '@electron/get@3.1.0':
dependencies:
debug: 4.4.3
- fs-extra: 9.1.0
- promise-retry: 2.0.1
+ env-paths: 2.2.1
+ fs-extra: 8.1.0
+ got: 11.8.6
+ progress: 2.0.3
+ semver: 6.3.1
+ sumchecker: 3.0.1
+ optionalDependencies:
+ global-agent: 3.0.0
transitivePeerDependencies:
- supports-color
@@ -2543,18 +1855,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@electron/osx-sign@1.0.5':
+ '@electron/notarize@3.1.1':
dependencies:
- compare-version: 0.1.2
debug: 4.4.3
- fs-extra: 10.1.0
- isbinaryfile: 4.0.10
- minimist: 1.2.8
- plist: 3.1.0
+ promise-retry: 2.0.1
transitivePeerDependencies:
- supports-color
- '@electron/osx-sign@1.3.1':
+ '@electron/osx-sign@1.3.3':
dependencies:
compare-version: 0.1.2
debug: 4.4.3
@@ -2565,146 +1873,135 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@electron/rebuild@3.7.0':
+ '@electron/rebuild@4.0.4':
dependencies:
- '@electron/node-gyp': https://codeload.github.com/electron/node-gyp/tar.gz/06b29aafb7708acef8b3669835c8a7857ebc92d2
'@malept/cross-spawn-promise': 2.0.0
- chalk: 4.1.2
debug: 4.4.3
- detect-libc: 2.1.2
- fs-extra: 10.1.0
- got: 11.8.6
- node-abi: 3.78.0
+ node-abi: 4.31.0
node-api-version: 0.2.1
- ora: 5.4.1
+ node-gyp: 12.3.0
read-binary-file-arch: 1.0.6
- semver: 7.7.3
- tar: 6.2.1
- yargs: 17.7.2
transitivePeerDependencies:
- - bluebird
- supports-color
- '@electron/universal@1.5.1':
+ '@electron/universal@2.0.3':
dependencies:
'@electron/asar': 3.4.1
- '@malept/cross-spawn-promise': 1.1.1
+ '@malept/cross-spawn-promise': 2.0.0
debug: 4.4.3
- dir-compare: 3.3.0
- fs-extra: 9.1.0
- minimatch: 3.1.2
+ dir-compare: 4.2.0
+ fs-extra: 11.3.2
+ minimatch: 9.0.9
plist: 3.1.0
transitivePeerDependencies:
- supports-color
- '@electron/universal@2.0.1':
+ '@electron/windows-sign@1.2.2':
dependencies:
- '@electron/asar': 3.4.1
- '@malept/cross-spawn-promise': 2.0.0
+ cross-dirname: 0.1.0
debug: 4.4.3
- dir-compare: 4.2.0
fs-extra: 11.3.2
- minimatch: 9.0.5
- plist: 3.1.0
+ minimist: 1.2.8
+ postject: 1.0.0-alpha.6
transitivePeerDependencies:
- supports-color
-
- '@epic-web/invariant@1.0.0': {}
-
- '@esbuild/aix-ppc64@0.25.11':
optional: true
- '@esbuild/android-arm64@0.25.11':
+ '@emnapi/core@1.10.0':
+ dependencies:
+ '@emnapi/wasi-threads': 1.2.1
+ tslib: 2.8.1
optional: true
- '@esbuild/android-arm@0.25.11':
+ '@emnapi/runtime@1.10.0':
+ dependencies:
+ tslib: 2.8.1
optional: true
- '@esbuild/android-x64@0.25.11':
+ '@emnapi/wasi-threads@1.2.1':
+ dependencies:
+ tslib: 2.8.1
optional: true
- '@esbuild/darwin-arm64@0.25.11':
+ '@epic-web/invariant@1.0.0': {}
+
+ '@esbuild/aix-ppc64@0.28.0':
optional: true
- '@esbuild/darwin-x64@0.25.11':
+ '@esbuild/android-arm64@0.28.0':
optional: true
- '@esbuild/freebsd-arm64@0.25.11':
+ '@esbuild/android-arm@0.28.0':
optional: true
- '@esbuild/freebsd-x64@0.25.11':
+ '@esbuild/android-x64@0.28.0':
optional: true
- '@esbuild/linux-arm64@0.25.11':
+ '@esbuild/darwin-arm64@0.28.0':
optional: true
- '@esbuild/linux-arm@0.25.11':
+ '@esbuild/darwin-x64@0.28.0':
optional: true
- '@esbuild/linux-ia32@0.25.11':
+ '@esbuild/freebsd-arm64@0.28.0':
optional: true
- '@esbuild/linux-loong64@0.25.11':
+ '@esbuild/freebsd-x64@0.28.0':
optional: true
- '@esbuild/linux-mips64el@0.25.11':
+ '@esbuild/linux-arm64@0.28.0':
optional: true
- '@esbuild/linux-ppc64@0.25.11':
+ '@esbuild/linux-arm@0.28.0':
optional: true
- '@esbuild/linux-riscv64@0.25.11':
+ '@esbuild/linux-ia32@0.28.0':
optional: true
- '@esbuild/linux-s390x@0.25.11':
+ '@esbuild/linux-loong64@0.28.0':
optional: true
- '@esbuild/linux-x64@0.25.11':
+ '@esbuild/linux-mips64el@0.28.0':
optional: true
- '@esbuild/netbsd-arm64@0.25.11':
+ '@esbuild/linux-ppc64@0.28.0':
optional: true
- '@esbuild/netbsd-x64@0.25.11':
+ '@esbuild/linux-riscv64@0.28.0':
optional: true
- '@esbuild/openbsd-arm64@0.25.11':
+ '@esbuild/linux-s390x@0.28.0':
optional: true
- '@esbuild/openbsd-x64@0.25.11':
+ '@esbuild/linux-x64@0.28.0':
optional: true
- '@esbuild/openharmony-arm64@0.25.11':
+ '@esbuild/netbsd-arm64@0.28.0':
optional: true
- '@esbuild/sunos-x64@0.25.11':
+ '@esbuild/netbsd-x64@0.28.0':
optional: true
- '@esbuild/win32-arm64@0.25.11':
+ '@esbuild/openbsd-arm64@0.28.0':
optional: true
- '@esbuild/win32-ia32@0.25.11':
+ '@esbuild/openbsd-x64@0.28.0':
optional: true
- '@esbuild/win32-x64@0.25.11':
+ '@esbuild/openharmony-arm64@0.28.0':
optional: true
- '@gar/promisify@1.1.3': {}
+ '@esbuild/sunos-x64@0.28.0':
+ optional: true
- '@isaacs/balanced-match@4.0.1': {}
+ '@esbuild/win32-arm64@0.28.0':
+ optional: true
- '@isaacs/brace-expansion@5.0.0':
- dependencies:
- '@isaacs/balanced-match': 4.0.1
+ '@esbuild/win32-ia32@0.28.0':
+ optional: true
- '@isaacs/cliui@8.0.2':
- dependencies:
- string-width: 5.1.2
- string-width-cjs: string-width@4.2.3
- strip-ansi: 7.1.2
- strip-ansi-cjs: strip-ansi@6.0.1
- wrap-ansi: 8.1.0
- wrap-ansi-cjs: wrap-ansi@7.0.0
+ '@esbuild/win32-x64@0.28.0':
+ optional: true
'@isaacs/fs-minipass@4.0.1':
dependencies:
@@ -2729,10 +2026,6 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.5
- '@malept/cross-spawn-promise@1.1.1':
- dependencies:
- cross-spawn: 7.0.6
-
'@malept/cross-spawn-promise@2.0.0':
dependencies:
cross-spawn: 7.0.6
@@ -2741,91 +2034,70 @@ snapshots:
dependencies:
debug: 4.4.3
fs-extra: 9.1.0
- lodash: 4.17.21
+ lodash: 4.18.1
tmp-promise: 3.0.3
transitivePeerDependencies:
- supports-color
- '@npmcli/fs@2.1.2':
- dependencies:
- '@gar/promisify': 1.1.3
- semver: 7.7.3
-
- '@npmcli/move-file@2.0.1':
+ '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)':
dependencies:
- mkdirp: 1.0.4
- rimraf: 3.0.2
-
- '@pkgjs/parseargs@0.11.0':
+ '@emnapi/core': 1.10.0
+ '@emnapi/runtime': 1.10.0
+ '@tybys/wasm-util': 0.10.2
optional: true
- '@rolldown/pluginutils@1.0.0-beta.38': {}
-
- '@rollup/rollup-android-arm-eabi@4.52.5':
- optional: true
-
- '@rollup/rollup-android-arm64@4.52.5':
- optional: true
-
- '@rollup/rollup-darwin-arm64@4.52.5':
- optional: true
+ '@oxc-project/types@0.130.0': {}
- '@rollup/rollup-darwin-x64@4.52.5':
+ '@rolldown/binding-android-arm64@1.0.1':
optional: true
- '@rollup/rollup-freebsd-arm64@4.52.5':
+ '@rolldown/binding-darwin-arm64@1.0.1':
optional: true
- '@rollup/rollup-freebsd-x64@4.52.5':
+ '@rolldown/binding-darwin-x64@1.0.1':
optional: true
- '@rollup/rollup-linux-arm-gnueabihf@4.52.5':
+ '@rolldown/binding-freebsd-x64@1.0.1':
optional: true
- '@rollup/rollup-linux-arm-musleabihf@4.52.5':
+ '@rolldown/binding-linux-arm-gnueabihf@1.0.1':
optional: true
- '@rollup/rollup-linux-arm64-gnu@4.52.5':
+ '@rolldown/binding-linux-arm64-gnu@1.0.1':
optional: true
- '@rollup/rollup-linux-arm64-musl@4.52.5':
+ '@rolldown/binding-linux-arm64-musl@1.0.1':
optional: true
- '@rollup/rollup-linux-loong64-gnu@4.52.5':
+ '@rolldown/binding-linux-ppc64-gnu@1.0.1':
optional: true
- '@rollup/rollup-linux-ppc64-gnu@4.52.5':
+ '@rolldown/binding-linux-s390x-gnu@1.0.1':
optional: true
- '@rollup/rollup-linux-riscv64-gnu@4.52.5':
+ '@rolldown/binding-linux-x64-gnu@1.0.1':
optional: true
- '@rollup/rollup-linux-riscv64-musl@4.52.5':
+ '@rolldown/binding-linux-x64-musl@1.0.1':
optional: true
- '@rollup/rollup-linux-s390x-gnu@4.52.5':
+ '@rolldown/binding-openharmony-arm64@1.0.1':
optional: true
- '@rollup/rollup-linux-x64-gnu@4.52.5':
- optional: true
-
- '@rollup/rollup-linux-x64-musl@4.52.5':
- optional: true
-
- '@rollup/rollup-openharmony-arm64@4.52.5':
- optional: true
-
- '@rollup/rollup-win32-arm64-msvc@4.52.5':
+ '@rolldown/binding-wasm32-wasi@1.0.1':
+ dependencies:
+ '@emnapi/core': 1.10.0
+ '@emnapi/runtime': 1.10.0
+ '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)
optional: true
- '@rollup/rollup-win32-ia32-msvc@4.52.5':
+ '@rolldown/binding-win32-arm64-msvc@1.0.1':
optional: true
- '@rollup/rollup-win32-x64-gnu@4.52.5':
+ '@rolldown/binding-win32-x64-msvc@1.0.1':
optional: true
- '@rollup/rollup-win32-x64-msvc@4.52.5':
- optional: true
+ '@rolldown/pluginutils@1.0.1': {}
'@sindresorhus/is@4.6.0': {}
@@ -2833,99 +2105,96 @@ snapshots:
dependencies:
defer-to-connect: 2.0.1
- '@tailwindcss/node@4.1.14':
+ '@tailwindcss/node@4.3.0':
dependencies:
'@jridgewell/remapping': 2.3.5
- enhanced-resolve: 5.18.3
+ enhanced-resolve: 5.21.4
jiti: 2.6.1
- lightningcss: 1.30.1
- magic-string: 0.30.19
+ lightningcss: 1.32.0
+ magic-string: 0.30.21
source-map-js: 1.2.1
- tailwindcss: 4.1.14
+ tailwindcss: 4.3.0
- '@tailwindcss/oxide-android-arm64@4.1.14':
+ '@tailwindcss/oxide-android-arm64@4.3.0':
optional: true
- '@tailwindcss/oxide-darwin-arm64@4.1.14':
+ '@tailwindcss/oxide-darwin-arm64@4.3.0':
optional: true
- '@tailwindcss/oxide-darwin-x64@4.1.14':
+ '@tailwindcss/oxide-darwin-x64@4.3.0':
optional: true
- '@tailwindcss/oxide-freebsd-x64@4.1.14':
+ '@tailwindcss/oxide-freebsd-x64@4.3.0':
optional: true
- '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.14':
+ '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.0':
optional: true
- '@tailwindcss/oxide-linux-arm64-gnu@4.1.14':
+ '@tailwindcss/oxide-linux-arm64-gnu@4.3.0':
optional: true
- '@tailwindcss/oxide-linux-arm64-musl@4.1.14':
+ '@tailwindcss/oxide-linux-arm64-musl@4.3.0':
optional: true
- '@tailwindcss/oxide-linux-x64-gnu@4.1.14':
+ '@tailwindcss/oxide-linux-x64-gnu@4.3.0':
optional: true
- '@tailwindcss/oxide-linux-x64-musl@4.1.14':
+ '@tailwindcss/oxide-linux-x64-musl@4.3.0':
optional: true
- '@tailwindcss/oxide-wasm32-wasi@4.1.14':
+ '@tailwindcss/oxide-wasm32-wasi@4.3.0':
optional: true
- '@tailwindcss/oxide-win32-arm64-msvc@4.1.14':
+ '@tailwindcss/oxide-win32-arm64-msvc@4.3.0':
optional: true
- '@tailwindcss/oxide-win32-x64-msvc@4.1.14':
+ '@tailwindcss/oxide-win32-x64-msvc@4.3.0':
optional: true
- '@tailwindcss/oxide@4.1.14':
- dependencies:
- detect-libc: 2.1.2
- tar: 7.5.1
+ '@tailwindcss/oxide@4.3.0':
optionalDependencies:
- '@tailwindcss/oxide-android-arm64': 4.1.14
- '@tailwindcss/oxide-darwin-arm64': 4.1.14
- '@tailwindcss/oxide-darwin-x64': 4.1.14
- '@tailwindcss/oxide-freebsd-x64': 4.1.14
- '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.14
- '@tailwindcss/oxide-linux-arm64-gnu': 4.1.14
- '@tailwindcss/oxide-linux-arm64-musl': 4.1.14
- '@tailwindcss/oxide-linux-x64-gnu': 4.1.14
- '@tailwindcss/oxide-linux-x64-musl': 4.1.14
- '@tailwindcss/oxide-wasm32-wasi': 4.1.14
- '@tailwindcss/oxide-win32-arm64-msvc': 4.1.14
- '@tailwindcss/oxide-win32-x64-msvc': 4.1.14
+ '@tailwindcss/oxide-android-arm64': 4.3.0
+ '@tailwindcss/oxide-darwin-arm64': 4.3.0
+ '@tailwindcss/oxide-darwin-x64': 4.3.0
+ '@tailwindcss/oxide-freebsd-x64': 4.3.0
+ '@tailwindcss/oxide-linux-arm-gnueabihf': 4.3.0
+ '@tailwindcss/oxide-linux-arm64-gnu': 4.3.0
+ '@tailwindcss/oxide-linux-arm64-musl': 4.3.0
+ '@tailwindcss/oxide-linux-x64-gnu': 4.3.0
+ '@tailwindcss/oxide-linux-x64-musl': 4.3.0
+ '@tailwindcss/oxide-wasm32-wasi': 4.3.0
+ '@tailwindcss/oxide-win32-arm64-msvc': 4.3.0
+ '@tailwindcss/oxide-win32-x64-msvc': 4.3.0
- '@tailwindcss/vite@4.1.14(vite@7.1.11(@types/node@20.19.21)(jiti@2.6.1)(lightningcss@1.30.2))':
+ '@tailwindcss/vite@4.3.0(vite@8.0.13(@types/node@20.19.21)(esbuild@0.28.0)(jiti@2.6.1))':
dependencies:
- '@tailwindcss/node': 4.1.14
- '@tailwindcss/oxide': 4.1.14
- tailwindcss: 4.1.14
- vite: 7.1.11(@types/node@20.19.21)(jiti@2.6.1)(lightningcss@1.30.2)
+ '@tailwindcss/node': 4.3.0
+ '@tailwindcss/oxide': 4.3.0
+ tailwindcss: 4.3.0
+ vite: 8.0.13(@types/node@20.19.21)(esbuild@0.28.0)(jiti@2.6.1)
- '@tootallnate/once@2.0.0': {}
+ '@turbo/darwin-64@2.9.14':
+ optional: true
- '@types/babel__core@7.20.5':
- dependencies:
- '@babel/parser': 7.28.4
- '@babel/types': 7.28.4
- '@types/babel__generator': 7.27.0
- '@types/babel__template': 7.4.4
- '@types/babel__traverse': 7.28.0
+ '@turbo/darwin-arm64@2.9.14':
+ optional: true
- '@types/babel__generator@7.27.0':
- dependencies:
- '@babel/types': 7.28.4
+ '@turbo/linux-64@2.9.14':
+ optional: true
- '@types/babel__template@7.4.4':
- dependencies:
- '@babel/parser': 7.28.4
- '@babel/types': 7.28.4
+ '@turbo/linux-arm64@2.9.14':
+ optional: true
+
+ '@turbo/windows-64@2.9.14':
+ optional: true
+
+ '@turbo/windows-arm64@2.9.14':
+ optional: true
- '@types/babel__traverse@7.28.0':
+ '@tybys/wasm-util@0.10.2':
dependencies:
- '@babel/types': 7.28.4
+ tslib: 2.8.1
+ optional: true
'@types/cacheable-request@6.0.3':
dependencies:
@@ -2938,8 +2207,6 @@ snapshots:
dependencies:
'@types/ms': 2.1.0
- '@types/estree@1.0.8': {}
-
'@types/fs-extra@9.0.13':
dependencies:
'@types/node': 20.19.21
@@ -2966,13 +2233,13 @@ snapshots:
xmlbuilder: 15.1.1
optional: true
- '@types/react-dom@19.2.2(@types/react@19.2.2)':
+ '@types/react-dom@19.2.3(@types/react@19.2.14)':
dependencies:
- '@types/react': 19.2.2
+ '@types/react': 19.2.14
- '@types/react@19.2.2':
+ '@types/react@19.2.14':
dependencies:
- csstype: 3.1.3
+ csstype: 3.2.3
'@types/responselike@1.0.3':
dependencies:
@@ -2986,44 +2253,22 @@ snapshots:
'@types/node': 20.19.21
optional: true
- '@vitejs/plugin-react@5.0.4(vite@7.1.11(@types/node@20.19.21)(jiti@2.6.1)(lightningcss@1.30.2))':
+ '@vitejs/plugin-react@6.0.2(vite@8.0.13(@types/node@20.19.21)(esbuild@0.28.0)(jiti@2.6.1))':
dependencies:
- '@babel/core': 7.28.4
- '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.4)
- '@rolldown/pluginutils': 1.0.0-beta.38
- '@types/babel__core': 7.20.5
- react-refresh: 0.17.0
- vite: 7.1.11(@types/node@20.19.21)(jiti@2.6.1)(lightningcss@1.30.2)
- transitivePeerDependencies:
- - supports-color
+ '@rolldown/pluginutils': 1.0.1
+ vite: 8.0.13(@types/node@20.19.21)(esbuild@0.28.0)(jiti@2.6.1)
- '@xmldom/xmldom@0.8.11': {}
+ '@xmldom/xmldom@0.8.13': {}
- abbrev@1.1.1: {}
-
- agent-base@6.0.2:
- dependencies:
- debug: 4.4.3
- transitivePeerDependencies:
- - supports-color
+ abbrev@4.0.0: {}
agent-base@7.1.4: {}
- agentkeepalive@4.6.0:
+ ajv-keywords@3.5.2(ajv@6.14.0):
dependencies:
- humanize-ms: 1.2.1
+ ajv: 6.14.0
- aggregate-error@3.1.0:
- dependencies:
- clean-stack: 2.2.0
- indent-string: 4.0.0
-
- ajv-keywords@3.5.2(ajv@6.12.6):
- dependencies:
- ajv: 6.12.6
-
- ajv@6.12.6:
+ ajv@6.14.0:
dependencies:
fast-deep-equal: 3.1.3
fast-json-stable-stringify: 2.1.0
@@ -3032,129 +2277,55 @@ snapshots:
ansi-regex@5.0.1: {}
- ansi-regex@6.2.2: {}
-
ansi-styles@4.3.0:
dependencies:
color-convert: 2.0.1
- ansi-styles@6.2.3: {}
-
- app-builder-bin@4.0.0: {}
-
app-builder-bin@5.0.0-alpha.12: {}
- app-builder-lib@24.13.3(dmg-builder@26.0.12(electron-builder-squirrel-windows@24.13.3(dmg-builder@26.0.12)))(electron-builder-squirrel-windows@24.13.3(dmg-builder@26.0.12)):
+ app-builder-lib@26.8.1(dmg-builder@26.8.1(electron-builder-squirrel-windows@26.8.1(dmg-builder@26.8.1)))(electron-builder-squirrel-windows@26.8.1(dmg-builder@26.8.1)):
dependencies:
'@develar/schema-utils': 2.6.5
- '@electron/notarize': 2.2.1
- '@electron/osx-sign': 1.0.5
- '@electron/universal': 1.5.1
- '@malept/flatpak-bundler': 0.4.0
- '@types/fs-extra': 9.0.13
- async-exit-hook: 2.0.1
- bluebird-lst: 1.0.9
- builder-util: 24.13.1
- builder-util-runtime: 9.2.4
- chromium-pickle-js: 0.2.0
- debug: 4.4.3
- dmg-builder: 26.0.12(electron-builder-squirrel-windows@24.13.3(dmg-builder@26.0.12))
- ejs: 3.1.10
- electron-builder-squirrel-windows: 24.13.3(dmg-builder@26.0.12)
- electron-publish: 24.13.1
- form-data: 4.0.4
- fs-extra: 10.1.0
- hosted-git-info: 4.1.0
- is-ci: 3.0.1
- isbinaryfile: 5.0.6
- js-yaml: 4.1.0
- lazy-val: 1.0.5
- minimatch: 5.1.6
- read-config-file: 6.3.2
- sanitize-filename: 1.6.3
- semver: 7.7.3
- tar: 6.2.1
- temp-file: 3.4.0
- transitivePeerDependencies:
- - supports-color
-
- app-builder-lib@26.0.12(dmg-builder@26.0.12(electron-builder-squirrel-windows@24.13.3(dmg-builder@26.0.12)))(electron-builder-squirrel-windows@24.13.3(dmg-builder@26.0.12)):
- dependencies:
- '@develar/schema-utils': 2.6.5
- '@electron/asar': 3.2.18
+ '@electron/asar': 3.4.1
'@electron/fuses': 1.8.0
+ '@electron/get': 3.1.0
'@electron/notarize': 2.5.0
- '@electron/osx-sign': 1.3.1
- '@electron/rebuild': 3.7.0
- '@electron/universal': 2.0.1
+ '@electron/osx-sign': 1.3.3
+ '@electron/rebuild': 4.0.4
+ '@electron/universal': 2.0.3
'@malept/flatpak-bundler': 0.4.0
'@types/fs-extra': 9.0.13
async-exit-hook: 2.0.1
- builder-util: 26.0.11
- builder-util-runtime: 9.3.1
+ builder-util: 26.8.1
+ builder-util-runtime: 9.5.1
chromium-pickle-js: 0.2.0
- config-file-ts: 0.2.8-rc1
- debug: 4.4.1
- dmg-builder: 26.0.12(electron-builder-squirrel-windows@24.13.3(dmg-builder@26.0.12))
+ ci-info: 4.3.1
+ debug: 4.4.3
+ dmg-builder: 26.8.1(electron-builder-squirrel-windows@26.8.1(dmg-builder@26.8.1))
dotenv: 16.6.1
dotenv-expand: 11.0.7
ejs: 3.1.10
- electron-builder-squirrel-windows: 24.13.3(dmg-builder@26.0.12)
- electron-publish: 26.0.11
+ electron-builder-squirrel-windows: 26.8.1(dmg-builder@26.8.1)
+ electron-publish: 26.8.1
fs-extra: 10.1.0
hosted-git-info: 4.1.0
- is-ci: 3.0.1
isbinaryfile: 5.0.6
- js-yaml: 4.1.0
+ jiti: 2.6.1
+ js-yaml: 4.1.1
json5: 2.2.3
lazy-val: 1.0.5
- minimatch: 10.0.3
+ minimatch: 10.2.5
plist: 3.1.0
+ proper-lockfile: 4.1.2
resedit: 1.7.2
- semver: 7.7.2
- tar: 6.2.1
+ semver: 7.7.3
+ tar: 7.5.15
temp-file: 3.4.0
tiny-async-pool: 1.3.0
+ which: 5.0.0
transitivePeerDependencies:
- - bluebird
- supports-color
- archiver-utils@2.1.0:
- dependencies:
- glob: 7.2.3
- graceful-fs: 4.2.11
- lazystream: 1.0.1
- lodash.defaults: 4.2.0
- lodash.difference: 4.5.0
- lodash.flatten: 4.4.0
- lodash.isplainobject: 4.0.6
- lodash.union: 4.6.0
- normalize-path: 3.0.0
- readable-stream: 2.3.8
-
- archiver-utils@3.0.4:
- dependencies:
- glob: 7.2.3
- graceful-fs: 4.2.11
- lazystream: 1.0.1
- lodash.defaults: 4.2.0
- lodash.difference: 4.5.0
- lodash.flatten: 4.4.0
- lodash.isplainobject: 4.0.6
- lodash.union: 4.6.0
- normalize-path: 3.0.0
- readable-stream: 3.6.2
-
- archiver@5.3.2:
- dependencies:
- archiver-utils: 2.1.0
- async: 3.2.6
- buffer-crc32: 0.2.13
- readable-stream: 3.6.2
- readdir-glob: 1.1.3
- tar-stream: 2.2.0
- zip-stream: 4.1.1
-
argparse@2.0.1: {}
assert-plus@1.0.0:
@@ -3173,102 +2344,56 @@ snapshots:
balanced-match@1.0.2: {}
- base64-js@1.5.1: {}
-
- baseline-browser-mapping@2.8.16: {}
-
- bl@4.1.0:
- dependencies:
- buffer: 5.7.1
- inherits: 2.0.4
- readable-stream: 3.6.2
+ balanced-match@4.0.4: {}
- bluebird-lst@1.0.9:
- dependencies:
- bluebird: 3.7.2
-
- bluebird@3.7.2: {}
+ base64-js@1.5.1: {}
boolean@3.2.0:
optional: true
- brace-expansion@1.1.12:
+ brace-expansion@1.1.13:
dependencies:
balanced-match: 1.0.2
concat-map: 0.0.1
- brace-expansion@2.0.2:
+ brace-expansion@2.0.3:
dependencies:
balanced-match: 1.0.2
- browserslist@4.26.3:
+ brace-expansion@5.0.6:
dependencies:
- baseline-browser-mapping: 2.8.16
- caniuse-lite: 1.0.30001750
- electron-to-chromium: 1.5.237
- node-releases: 2.0.23
- update-browserslist-db: 1.1.3(browserslist@4.26.3)
+ balanced-match: 4.0.4
buffer-crc32@0.2.13: {}
- buffer-equal@1.0.1: {}
-
buffer-from@1.1.2: {}
buffer@5.7.1:
dependencies:
base64-js: 1.5.1
ieee754: 1.2.1
+ optional: true
- builder-util-runtime@9.2.4:
+ builder-util-runtime@9.5.1:
dependencies:
debug: 4.4.3
sax: 1.4.1
transitivePeerDependencies:
- supports-color
- builder-util-runtime@9.3.1:
- dependencies:
- debug: 4.4.1
- sax: 1.4.1
- transitivePeerDependencies:
- - supports-color
-
- builder-util@24.13.1:
- dependencies:
- 7zip-bin: 5.2.0
- '@types/debug': 4.1.12
- app-builder-bin: 4.0.0
- bluebird-lst: 1.0.9
- builder-util-runtime: 9.2.4
- chalk: 4.1.2
- cross-spawn: 7.0.6
- debug: 4.4.3
- fs-extra: 10.1.0
- http-proxy-agent: 5.0.0
- https-proxy-agent: 5.0.1
- is-ci: 3.0.1
- js-yaml: 4.1.0
- source-map-support: 0.5.21
- stat-mode: 1.0.0
- temp-file: 3.4.0
- transitivePeerDependencies:
- - supports-color
-
- builder-util@26.0.11:
+ builder-util@26.8.1:
dependencies:
7zip-bin: 5.2.0
'@types/debug': 4.1.12
app-builder-bin: 5.0.0-alpha.12
- builder-util-runtime: 9.3.1
+ builder-util-runtime: 9.5.1
chalk: 4.1.2
cross-spawn: 7.0.6
- debug: 4.4.1
+ debug: 4.4.3
fs-extra: 10.1.0
http-proxy-agent: 7.0.2
https-proxy-agent: 7.0.6
- is-ci: 3.0.1
- js-yaml: 4.1.0
+ js-yaml: 4.1.1
sanitize-filename: 1.6.3
source-map-support: 0.5.21
stat-mode: 1.0.0
@@ -3277,29 +2402,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- cacache@16.1.3:
- dependencies:
- '@npmcli/fs': 2.1.2
- '@npmcli/move-file': 2.0.1
- chownr: 2.0.0
- fs-minipass: 2.1.0
- glob: 8.1.0
- infer-owner: 1.0.4
- lru-cache: 7.18.3
- minipass: 3.3.6
- minipass-collect: 1.0.2
- minipass-flush: 1.0.5
- minipass-pipeline: 1.2.4
- mkdirp: 1.0.4
- p-map: 4.0.0
- promise-inflight: 1.0.1
- rimraf: 3.0.2
- ssri: 9.0.1
- tar: 6.2.1
- unique-filename: 2.0.1
- transitivePeerDependencies:
- - bluebird
-
cacheable-lookup@5.0.4: {}
cacheable-request@7.0.4:
@@ -3317,28 +2419,18 @@ snapshots:
es-errors: 1.3.0
function-bind: 1.1.2
- caniuse-lite@1.0.30001750: {}
-
chalk@4.1.2:
dependencies:
ansi-styles: 4.3.0
supports-color: 7.2.0
- chownr@2.0.0: {}
-
chownr@3.0.0: {}
chromium-pickle-js@0.2.0: {}
- ci-info@3.9.0: {}
+ ci-info@4.3.1: {}
- clean-stack@2.2.0: {}
-
- cli-cursor@3.1.0:
- dependencies:
- restore-cursor: 3.1.0
-
- cli-spinners@2.9.2: {}
+ ci-info@4.4.0: {}
cli-truncate@2.1.0:
dependencies:
@@ -3356,8 +2448,6 @@ snapshots:
dependencies:
mimic-response: 1.0.1
- clone@1.0.4: {}
-
color-convert@2.0.1:
dependencies:
color-name: 1.1.4
@@ -3370,14 +2460,10 @@ snapshots:
commander@5.1.0: {}
- compare-version@0.1.2: {}
+ commander@9.5.0:
+ optional: true
- compress-commons@4.1.2:
- dependencies:
- buffer-crc32: 0.2.13
- crc32-stream: 4.0.3
- normalize-path: 3.0.0
- readable-stream: 3.6.2
+ compare-version@0.1.2: {}
concat-map@0.0.1: {}
@@ -3385,7 +2471,7 @@ snapshots:
dependencies:
chalk: 4.1.2
date-fns: 2.30.0
- lodash: 4.17.21
+ lodash: 4.18.1
rxjs: 7.8.2
shell-quote: 1.8.3
spawn-command: 0.0.2
@@ -3393,35 +2479,17 @@ snapshots:
tree-kill: 1.2.2
yargs: 17.7.2
- config-file-ts@0.2.6:
- dependencies:
- glob: 10.4.5
- typescript: 5.9.2
-
- config-file-ts@0.2.8-rc1:
- dependencies:
- glob: 10.4.5
- typescript: 5.9.2
-
- convert-source-map@2.0.0: {}
-
core-util-is@1.0.2:
optional: true
- core-util-is@1.0.3: {}
-
- crc-32@1.2.2: {}
-
- crc32-stream@4.0.3:
- dependencies:
- crc-32: 1.2.2
- readable-stream: 3.6.2
-
crc@3.8.0:
dependencies:
buffer: 5.7.1
optional: true
+ cross-dirname@0.1.0:
+ optional: true
+
cross-env@10.1.0:
dependencies:
'@epic-web/invariant': 1.0.0
@@ -3433,16 +2501,12 @@ snapshots:
shebang-command: 2.0.0
which: 2.0.2
- csstype@3.1.3: {}
+ csstype@3.2.3: {}
date-fns@2.30.0:
dependencies:
'@babel/runtime': 7.28.4
- debug@4.4.1:
- dependencies:
- ms: 2.1.3
-
debug@4.4.3:
dependencies:
ms: 2.1.3
@@ -3451,10 +2515,6 @@ snapshots:
dependencies:
mimic-response: 3.1.0
- defaults@1.0.4:
- dependencies:
- clone: 1.0.4
-
defer-to-connect@2.0.1: {}
define-data-property@1.1.4:
@@ -3478,28 +2538,21 @@ snapshots:
detect-node@2.1.0:
optional: true
- dir-compare@3.3.0:
- dependencies:
- buffer-equal: 1.0.1
- minimatch: 3.1.2
-
dir-compare@4.2.0:
dependencies:
- minimatch: 3.1.2
+ minimatch: 3.1.4
p-limit: 3.1.0
- dmg-builder@26.0.12(electron-builder-squirrel-windows@24.13.3(dmg-builder@26.0.12)):
+ dmg-builder@26.8.1(electron-builder-squirrel-windows@26.8.1(dmg-builder@26.8.1)):
dependencies:
- app-builder-lib: 26.0.12(dmg-builder@26.0.12(electron-builder-squirrel-windows@24.13.3(dmg-builder@26.0.12)))(electron-builder-squirrel-windows@24.13.3(dmg-builder@26.0.12))
- builder-util: 26.0.11
- builder-util-runtime: 9.3.1
+ app-builder-lib: 26.8.1(dmg-builder@26.8.1(electron-builder-squirrel-windows@26.8.1(dmg-builder@26.8.1)))(electron-builder-squirrel-windows@26.8.1(dmg-builder@26.8.1))
+ builder-util: 26.8.1
fs-extra: 10.1.0
iconv-lite: 0.6.3
- js-yaml: 4.1.0
+ js-yaml: 4.1.1
optionalDependencies:
dmg-license: 1.0.11
transitivePeerDependencies:
- - bluebird
- electron-builder-squirrel-windows
- supports-color
@@ -3507,7 +2560,7 @@ snapshots:
dependencies:
'@types/plist': 3.0.5
'@types/verror': 1.10.11
- ajv: 6.12.6
+ ajv: 6.14.0
crc: 3.8.0
iconv-corefoundation: 1.1.7
plist: 3.1.0
@@ -3519,13 +2572,9 @@ snapshots:
dependencies:
dotenv: 16.6.1
- dotenv-expand@5.1.0: {}
-
dotenv@16.6.1: {}
- dotenv@17.2.3: {}
-
- dotenv@9.0.2: {}
+ dotenv@17.4.2: {}
dunder-proto@1.0.1:
dependencies:
@@ -3533,67 +2582,61 @@ snapshots:
es-errors: 1.3.0
gopd: 1.2.0
- eastasianwidth@0.2.0: {}
-
ejs@3.1.10:
dependencies:
jake: 10.9.4
- electron-builder-squirrel-windows@24.13.3(dmg-builder@26.0.12):
+ electron-builder-squirrel-windows@26.8.1(dmg-builder@26.8.1):
dependencies:
- app-builder-lib: 24.13.3(dmg-builder@26.0.12(electron-builder-squirrel-windows@24.13.3(dmg-builder@26.0.12)))(electron-builder-squirrel-windows@24.13.3(dmg-builder@26.0.12))
- archiver: 5.3.2
- builder-util: 24.13.1
- fs-extra: 10.1.0
+ app-builder-lib: 26.8.1(dmg-builder@26.8.1(electron-builder-squirrel-windows@26.8.1(dmg-builder@26.8.1)))(electron-builder-squirrel-windows@26.8.1(dmg-builder@26.8.1))
+ builder-util: 26.8.1
+ electron-winstaller: 5.4.0
transitivePeerDependencies:
- dmg-builder
- supports-color
- electron-builder@26.0.12(electron-builder-squirrel-windows@24.13.3(dmg-builder@26.0.12)):
+ electron-builder@26.8.1(electron-builder-squirrel-windows@26.8.1(dmg-builder@26.8.1)):
dependencies:
- app-builder-lib: 26.0.12(dmg-builder@26.0.12(electron-builder-squirrel-windows@24.13.3(dmg-builder@26.0.12)))(electron-builder-squirrel-windows@24.13.3(dmg-builder@26.0.12))
- builder-util: 26.0.11
- builder-util-runtime: 9.3.1
+ app-builder-lib: 26.8.1(dmg-builder@26.8.1(electron-builder-squirrel-windows@26.8.1(dmg-builder@26.8.1)))(electron-builder-squirrel-windows@26.8.1(dmg-builder@26.8.1))
+ builder-util: 26.8.1
+ builder-util-runtime: 9.5.1
chalk: 4.1.2
- dmg-builder: 26.0.12(electron-builder-squirrel-windows@24.13.3(dmg-builder@26.0.12))
+ ci-info: 4.4.0
+ dmg-builder: 26.8.1(electron-builder-squirrel-windows@26.8.1(dmg-builder@26.8.1))
fs-extra: 10.1.0
- is-ci: 3.0.1
lazy-val: 1.0.5
simple-update-notifier: 2.0.0
yargs: 17.7.2
transitivePeerDependencies:
- - bluebird
- electron-builder-squirrel-windows
- supports-color
- electron-publish@24.13.1:
+ electron-publish@26.8.1:
dependencies:
'@types/fs-extra': 9.0.13
- builder-util: 24.13.1
- builder-util-runtime: 9.2.4
+ builder-util: 26.8.1
+ builder-util-runtime: 9.5.1
chalk: 4.1.2
+ form-data: 4.0.5
fs-extra: 10.1.0
lazy-val: 1.0.5
mime: 2.6.0
transitivePeerDependencies:
- supports-color
- electron-publish@26.0.11:
+ electron-winstaller@5.4.0:
dependencies:
- '@types/fs-extra': 9.0.13
- builder-util: 26.0.11
- builder-util-runtime: 9.3.1
- chalk: 4.1.2
- form-data: 4.0.4
- fs-extra: 10.1.0
- lazy-val: 1.0.5
- mime: 2.6.0
+ '@electron/asar': 3.4.1
+ debug: 4.4.3
+ fs-extra: 7.0.1
+ lodash: 4.18.1
+ temp: 0.9.4
+ optionalDependencies:
+ '@electron/windows-sign': 1.2.2
transitivePeerDependencies:
- supports-color
- electron-to-chromium@1.5.237: {}
-
- electron@https://codeload.github.com/castlabs/electron-releases/tar.gz/678b5c7761825c5af936f5c67a9101f3fc6ab750:
+ electron@https://codeload.github.com/castlabs/electron-releases/tar.gz/b5480283432a0523f4f3a9c62b130fe8dcde5299:
dependencies:
'@electron/get': 2.0.3
'@types/node': 22.18.12
@@ -3603,21 +2646,14 @@ snapshots:
emoji-regex@8.0.0: {}
- emoji-regex@9.2.2: {}
-
- encoding@0.1.13:
- dependencies:
- iconv-lite: 0.6.3
- optional: true
-
end-of-stream@1.4.5:
dependencies:
once: 1.4.0
- enhanced-resolve@5.18.3:
+ enhanced-resolve@5.21.4:
dependencies:
graceful-fs: 4.2.11
- tapable: 2.3.0
+ tapable: 2.3.3
env-paths@2.2.1: {}
@@ -3641,34 +2677,34 @@ snapshots:
es6-error@4.1.1:
optional: true
- esbuild@0.25.11:
+ esbuild@0.28.0:
optionalDependencies:
- '@esbuild/aix-ppc64': 0.25.11
- '@esbuild/android-arm': 0.25.11
- '@esbuild/android-arm64': 0.25.11
- '@esbuild/android-x64': 0.25.11
- '@esbuild/darwin-arm64': 0.25.11
- '@esbuild/darwin-x64': 0.25.11
- '@esbuild/freebsd-arm64': 0.25.11
- '@esbuild/freebsd-x64': 0.25.11
- '@esbuild/linux-arm': 0.25.11
- '@esbuild/linux-arm64': 0.25.11
- '@esbuild/linux-ia32': 0.25.11
- '@esbuild/linux-loong64': 0.25.11
- '@esbuild/linux-mips64el': 0.25.11
- '@esbuild/linux-ppc64': 0.25.11
- '@esbuild/linux-riscv64': 0.25.11
- '@esbuild/linux-s390x': 0.25.11
- '@esbuild/linux-x64': 0.25.11
- '@esbuild/netbsd-arm64': 0.25.11
- '@esbuild/netbsd-x64': 0.25.11
- '@esbuild/openbsd-arm64': 0.25.11
- '@esbuild/openbsd-x64': 0.25.11
- '@esbuild/openharmony-arm64': 0.25.11
- '@esbuild/sunos-x64': 0.25.11
- '@esbuild/win32-arm64': 0.25.11
- '@esbuild/win32-ia32': 0.25.11
- '@esbuild/win32-x64': 0.25.11
+ '@esbuild/aix-ppc64': 0.28.0
+ '@esbuild/android-arm': 0.28.0
+ '@esbuild/android-arm64': 0.28.0
+ '@esbuild/android-x64': 0.28.0
+ '@esbuild/darwin-arm64': 0.28.0
+ '@esbuild/darwin-x64': 0.28.0
+ '@esbuild/freebsd-arm64': 0.28.0
+ '@esbuild/freebsd-x64': 0.28.0
+ '@esbuild/linux-arm': 0.28.0
+ '@esbuild/linux-arm64': 0.28.0
+ '@esbuild/linux-ia32': 0.28.0
+ '@esbuild/linux-loong64': 0.28.0
+ '@esbuild/linux-mips64el': 0.28.0
+ '@esbuild/linux-ppc64': 0.28.0
+ '@esbuild/linux-riscv64': 0.28.0
+ '@esbuild/linux-s390x': 0.28.0
+ '@esbuild/linux-x64': 0.28.0
+ '@esbuild/netbsd-arm64': 0.28.0
+ '@esbuild/netbsd-x64': 0.28.0
+ '@esbuild/openbsd-arm64': 0.28.0
+ '@esbuild/openbsd-x64': 0.28.0
+ '@esbuild/openharmony-arm64': 0.28.0
+ '@esbuild/sunos-x64': 0.28.0
+ '@esbuild/win32-arm64': 0.28.0
+ '@esbuild/win32-ia32': 0.28.0
+ '@esbuild/win32-x64': 0.28.0
escalade@3.2.0: {}
@@ -3698,20 +2734,15 @@ snapshots:
dependencies:
pend: 1.2.0
- fdir@6.5.0(picomatch@4.0.3):
+ fdir@6.5.0(picomatch@4.0.4):
optionalDependencies:
- picomatch: 4.0.3
+ picomatch: 4.0.4
filelist@1.0.4:
dependencies:
- minimatch: 5.1.6
-
- foreground-child@3.3.1:
- dependencies:
- cross-spawn: 7.0.6
- signal-exit: 4.1.0
+ minimatch: 5.1.8
- form-data@4.0.4:
+ form-data@4.0.5:
dependencies:
asynckit: 0.4.0
combined-stream: 1.0.8
@@ -3719,8 +2750,6 @@ snapshots:
hasown: 2.0.2
mime-types: 2.1.35
- fs-constants@1.0.0: {}
-
fs-extra@10.1.0:
dependencies:
graceful-fs: 4.2.11
@@ -3733,6 +2762,12 @@ snapshots:
jsonfile: 6.2.0
universalify: 2.0.1
+ fs-extra@7.0.1:
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 4.0.0
+ universalify: 0.1.2
+
fs-extra@8.1.0:
dependencies:
graceful-fs: 4.2.11
@@ -3746,10 +2781,6 @@ snapshots:
jsonfile: 6.2.0
universalify: 2.0.1
- fs-minipass@2.1.0:
- dependencies:
- minipass: 3.3.6
-
fs.realpath@1.0.0: {}
fsevents@2.3.3:
@@ -3757,8 +2788,6 @@ snapshots:
function-bind@1.1.2: {}
- gensync@1.0.0-beta.2: {}
-
get-caller-file@2.0.5: {}
get-intrinsic@1.3.0:
@@ -3783,32 +2812,15 @@ snapshots:
dependencies:
pump: 3.0.3
- glob@10.4.5:
- dependencies:
- foreground-child: 3.3.1
- jackspeak: 3.4.3
- minimatch: 9.0.5
- minipass: 7.1.2
- package-json-from-dist: 1.0.1
- path-scurry: 1.11.1
-
glob@7.2.3:
dependencies:
fs.realpath: 1.0.0
inflight: 1.0.6
inherits: 2.0.4
- minimatch: 3.1.2
+ minimatch: 3.1.4
once: 1.4.0
path-is-absolute: 1.0.1
- glob@8.1.0:
- dependencies:
- fs.realpath: 1.0.0
- inflight: 1.0.6
- inherits: 2.0.4
- minimatch: 5.1.6
- once: 1.4.0
-
global-agent@3.0.0:
dependencies:
boolean: 3.2.0
@@ -3866,14 +2878,6 @@ snapshots:
http-cache-semantics@4.2.0: {}
- http-proxy-agent@5.0.0:
- dependencies:
- '@tootallnate/once': 2.0.0
- agent-base: 6.0.2
- debug: 4.4.3
- transitivePeerDependencies:
- - supports-color
-
http-proxy-agent@7.0.2:
dependencies:
agent-base: 7.1.4
@@ -3886,13 +2890,6 @@ snapshots:
quick-lru: 5.1.1
resolve-alpn: 1.2.1
- https-proxy-agent@5.0.1:
- dependencies:
- agent-base: 6.0.2
- debug: 4.4.3
- transitivePeerDependencies:
- - supports-color
-
https-proxy-agent@7.0.6:
dependencies:
agent-base: 7.1.4
@@ -3900,10 +2897,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- humanize-ms@1.2.1:
- dependencies:
- ms: 2.1.3
-
iconv-corefoundation@1.1.7:
dependencies:
cli-truncate: 2.1.0
@@ -3914,13 +2907,8 @@ snapshots:
dependencies:
safer-buffer: 2.1.2
- ieee754@1.2.1: {}
-
- imurmurhash@0.1.4: {}
-
- indent-string@4.0.0: {}
-
- infer-owner@1.0.4: {}
+ ieee754@1.2.1:
+ optional: true
inflight@1.0.6:
dependencies:
@@ -3929,33 +2917,17 @@ snapshots:
inherits@2.0.4: {}
- ip-address@10.0.1: {}
-
- is-ci@3.0.1:
- dependencies:
- ci-info: 3.9.0
-
is-fullwidth-code-point@3.0.0: {}
- is-interactive@1.0.0: {}
-
- is-lambda@1.0.1: {}
-
- is-unicode-supported@0.1.0: {}
-
- isarray@1.0.0: {}
-
isbinaryfile@4.0.10: {}
isbinaryfile@5.0.6: {}
isexe@2.0.0: {}
- jackspeak@3.4.3:
- dependencies:
- '@isaacs/cliui': 8.0.2
- optionalDependencies:
- '@pkgjs/parseargs': 0.11.0
+ isexe@3.1.5: {}
+
+ isexe@4.0.0: {}
jake@10.9.4:
dependencies:
@@ -3967,12 +2939,10 @@ snapshots:
js-tokens@4.0.0: {}
- js-yaml@4.1.0:
+ js-yaml@4.1.1:
dependencies:
argparse: 2.0.1
- jsesc@3.1.0: {}
-
json-buffer@3.0.1: {}
json-schema-traverse@0.4.1: {}
@@ -3998,121 +2968,56 @@ snapshots:
lazy-val@1.0.5: {}
- lazystream@1.0.1:
- dependencies:
- readable-stream: 2.3.8
-
- lightningcss-android-arm64@1.30.2:
- optional: true
-
- lightningcss-darwin-arm64@1.30.1:
- optional: true
-
- lightningcss-darwin-arm64@1.30.2:
- optional: true
-
- lightningcss-darwin-x64@1.30.1:
- optional: true
-
- lightningcss-darwin-x64@1.30.2:
- optional: true
-
- lightningcss-freebsd-x64@1.30.1:
- optional: true
-
- lightningcss-freebsd-x64@1.30.2:
- optional: true
-
- lightningcss-linux-arm-gnueabihf@1.30.1:
- optional: true
-
- lightningcss-linux-arm-gnueabihf@1.30.2:
- optional: true
-
- lightningcss-linux-arm64-gnu@1.30.1:
- optional: true
-
- lightningcss-linux-arm64-gnu@1.30.2:
+ lightningcss-android-arm64@1.32.0:
optional: true
- lightningcss-linux-arm64-musl@1.30.1:
+ lightningcss-darwin-arm64@1.32.0:
optional: true
- lightningcss-linux-arm64-musl@1.30.2:
+ lightningcss-darwin-x64@1.32.0:
optional: true
- lightningcss-linux-x64-gnu@1.30.1:
+ lightningcss-freebsd-x64@1.32.0:
optional: true
- lightningcss-linux-x64-gnu@1.30.2:
+ lightningcss-linux-arm-gnueabihf@1.32.0:
optional: true
- lightningcss-linux-x64-musl@1.30.1:
+ lightningcss-linux-arm64-gnu@1.32.0:
optional: true
- lightningcss-linux-x64-musl@1.30.2:
+ lightningcss-linux-arm64-musl@1.32.0:
optional: true
- lightningcss-win32-arm64-msvc@1.30.1:
+ lightningcss-linux-x64-gnu@1.32.0:
optional: true
- lightningcss-win32-arm64-msvc@1.30.2:
+ lightningcss-linux-x64-musl@1.32.0:
optional: true
- lightningcss-win32-x64-msvc@1.30.1:
+ lightningcss-win32-arm64-msvc@1.32.0:
optional: true
- lightningcss-win32-x64-msvc@1.30.2:
+ lightningcss-win32-x64-msvc@1.32.0:
optional: true
- lightningcss@1.30.1:
- dependencies:
- detect-libc: 2.1.2
- optionalDependencies:
- lightningcss-darwin-arm64: 1.30.1
- lightningcss-darwin-x64: 1.30.1
- lightningcss-freebsd-x64: 1.30.1
- lightningcss-linux-arm-gnueabihf: 1.30.1
- lightningcss-linux-arm64-gnu: 1.30.1
- lightningcss-linux-arm64-musl: 1.30.1
- lightningcss-linux-x64-gnu: 1.30.1
- lightningcss-linux-x64-musl: 1.30.1
- lightningcss-win32-arm64-msvc: 1.30.1
- lightningcss-win32-x64-msvc: 1.30.1
-
- lightningcss@1.30.2:
+ lightningcss@1.32.0:
dependencies:
detect-libc: 2.1.2
optionalDependencies:
- lightningcss-android-arm64: 1.30.2
- lightningcss-darwin-arm64: 1.30.2
- lightningcss-darwin-x64: 1.30.2
- lightningcss-freebsd-x64: 1.30.2
- lightningcss-linux-arm-gnueabihf: 1.30.2
- lightningcss-linux-arm64-gnu: 1.30.2
- lightningcss-linux-arm64-musl: 1.30.2
- lightningcss-linux-x64-gnu: 1.30.2
- lightningcss-linux-x64-musl: 1.30.2
- lightningcss-win32-arm64-msvc: 1.30.2
- lightningcss-win32-x64-msvc: 1.30.2
- optional: true
-
- lodash.defaults@4.2.0: {}
-
- lodash.difference@4.5.0: {}
-
- lodash.flatten@4.4.0: {}
-
- lodash.isplainobject@4.0.6: {}
-
- lodash.union@4.6.0: {}
-
- lodash@4.17.21: {}
-
- log-symbols@4.1.0:
- dependencies:
- chalk: 4.1.2
- is-unicode-supported: 0.1.0
+ lightningcss-android-arm64: 1.32.0
+ lightningcss-darwin-arm64: 1.32.0
+ lightningcss-darwin-x64: 1.32.0
+ lightningcss-freebsd-x64: 1.32.0
+ lightningcss-linux-arm-gnueabihf: 1.32.0
+ lightningcss-linux-arm64-gnu: 1.32.0
+ lightningcss-linux-arm64-musl: 1.32.0
+ lightningcss-linux-x64-gnu: 1.32.0
+ lightningcss-linux-x64-musl: 1.32.0
+ lightningcss-win32-arm64-msvc: 1.32.0
+ lightningcss-win32-x64-msvc: 1.32.0
+
+ lodash@4.18.1: {}
loose-envify@1.4.0:
dependencies:
@@ -4120,48 +3025,18 @@ snapshots:
lowercase-keys@2.0.0: {}
- lru-cache@10.4.3: {}
-
- lru-cache@5.1.1:
- dependencies:
- yallist: 3.1.1
-
lru-cache@6.0.0:
dependencies:
yallist: 4.0.0
- lru-cache@7.18.3: {}
-
lucide-react@0.546.0(react@18.3.1):
dependencies:
react: 18.3.1
- magic-string@0.30.19:
+ magic-string@0.30.21:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
- make-fetch-happen@10.2.1:
- dependencies:
- agentkeepalive: 4.6.0
- cacache: 16.1.3
- http-cache-semantics: 4.2.0
- http-proxy-agent: 5.0.0
- https-proxy-agent: 5.0.1
- is-lambda: 1.0.1
- lru-cache: 7.18.3
- minipass: 3.3.6
- minipass-collect: 1.0.2
- minipass-fetch: 2.1.2
- minipass-flush: 1.0.5
- minipass-pipeline: 1.2.4
- negotiator: 0.6.4
- promise-retry: 2.0.1
- socks-proxy-agent: 7.0.0
- ssri: 9.0.1
- transitivePeerDependencies:
- - bluebird
- - supports-color
-
matcher@3.0.0:
dependencies:
escape-string-regexp: 4.0.0
@@ -4177,80 +3052,43 @@ snapshots:
mime@2.6.0: {}
- mimic-fn@2.1.0: {}
-
mimic-response@1.0.1: {}
mimic-response@3.1.0: {}
- minimatch@10.0.3:
+ minimatch@10.2.5:
dependencies:
- '@isaacs/brace-expansion': 5.0.0
+ brace-expansion: 5.0.6
- minimatch@3.1.2:
+ minimatch@3.1.4:
dependencies:
- brace-expansion: 1.1.12
+ brace-expansion: 1.1.13
- minimatch@5.1.6:
+ minimatch@5.1.8:
dependencies:
- brace-expansion: 2.0.2
+ brace-expansion: 2.0.3
- minimatch@9.0.5:
+ minimatch@9.0.9:
dependencies:
- brace-expansion: 2.0.2
+ brace-expansion: 2.0.3
minimist@1.2.8: {}
- minipass-collect@1.0.2:
- dependencies:
- minipass: 3.3.6
-
- minipass-fetch@2.1.2:
- dependencies:
- minipass: 3.3.6
- minipass-sized: 1.0.3
- minizlib: 2.1.2
- optionalDependencies:
- encoding: 0.1.13
-
- minipass-flush@1.0.5:
- dependencies:
- minipass: 3.3.6
-
- minipass-pipeline@1.2.4:
- dependencies:
- minipass: 3.3.6
-
- minipass-sized@1.0.3:
- dependencies:
- minipass: 3.3.6
-
- minipass@3.3.6:
- dependencies:
- yallist: 4.0.0
-
- minipass@5.0.0: {}
-
minipass@7.1.2: {}
- minizlib@2.1.2:
- dependencies:
- minipass: 3.3.6
- yallist: 4.0.0
-
minizlib@3.1.0:
dependencies:
minipass: 7.1.2
- mkdirp@1.0.4: {}
+ mkdirp@0.5.6:
+ dependencies:
+ minimist: 1.2.8
ms@2.1.3: {}
nanoid@3.3.11: {}
- negotiator@0.6.4: {}
-
- node-abi@3.78.0:
+ node-abi@4.31.0:
dependencies:
semver: 7.7.3
@@ -4261,13 +3099,22 @@ snapshots:
dependencies:
semver: 7.7.3
- node-releases@2.0.23: {}
-
- nopt@6.0.0:
+ node-gyp@12.3.0:
dependencies:
- abbrev: 1.1.1
+ env-paths: 2.2.1
+ exponential-backoff: 3.1.3
+ graceful-fs: 4.2.11
+ nopt: 9.0.0
+ proc-log: 6.1.0
+ semver: 7.7.3
+ tar: 7.5.15
+ tinyglobby: 0.2.15
+ undici: 6.25.0
+ which: 6.0.1
- normalize-path@3.0.0: {}
+ nopt@9.0.0:
+ dependencies:
+ abbrev: 4.0.0
normalize-url@6.1.0: {}
@@ -4278,78 +3125,58 @@ snapshots:
dependencies:
wrappy: 1.0.2
- onetime@5.1.2:
- dependencies:
- mimic-fn: 2.1.0
-
- ora@5.4.1:
- dependencies:
- bl: 4.1.0
- chalk: 4.1.2
- cli-cursor: 3.1.0
- cli-spinners: 2.9.2
- is-interactive: 1.0.0
- is-unicode-supported: 0.1.0
- log-symbols: 4.1.0
- strip-ansi: 6.0.1
- wcwidth: 1.0.1
-
p-cancelable@2.1.1: {}
p-limit@3.1.0:
dependencies:
yocto-queue: 0.1.0
- p-map@4.0.0:
- dependencies:
- aggregate-error: 3.1.0
-
- package-json-from-dist@1.0.1: {}
-
path-is-absolute@1.0.1: {}
path-key@3.1.1: {}
- path-scurry@1.11.1:
- dependencies:
- lru-cache: 10.4.3
- minipass: 7.1.2
-
pe-library@0.4.1: {}
pend@1.2.0: {}
picocolors@1.1.1: {}
- picomatch@4.0.3: {}
+ picomatch@4.0.4: {}
plist@3.1.0:
dependencies:
- '@xmldom/xmldom': 0.8.11
+ '@xmldom/xmldom': 0.8.13
base64-js: 1.5.1
xmlbuilder: 15.1.1
- postcss@8.5.6:
+ postcss@8.5.14:
dependencies:
nanoid: 3.3.11
picocolors: 1.1.1
source-map-js: 1.2.1
- prettier@3.6.2: {}
+ postject@1.0.0-alpha.6:
+ dependencies:
+ commander: 9.5.0
+ optional: true
- proc-log@2.0.1: {}
+ prettier@3.8.3: {}
- process-nextick-args@2.0.1: {}
+ proc-log@6.1.0: {}
progress@2.0.3: {}
- promise-inflight@1.0.1: {}
-
promise-retry@2.0.1:
dependencies:
err-code: 2.0.3
retry: 0.12.0
+ proper-lockfile@4.1.2:
+ dependencies:
+ graceful-fs: 4.2.11
+ retry: 0.12.0
+ signal-exit: 3.0.7
+
pump@3.0.3:
dependencies:
end-of-stream: 1.4.5
@@ -4365,8 +3192,6 @@ snapshots:
react: 18.3.1
scheduler: 0.23.2
- react-refresh@0.17.0: {}
-
react@18.3.1:
dependencies:
loose-envify: 1.4.0
@@ -4377,35 +3202,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- read-config-file@6.3.2:
- dependencies:
- config-file-ts: 0.2.6
- dotenv: 9.0.2
- dotenv-expand: 5.1.0
- js-yaml: 4.1.0
- json5: 2.2.3
- lazy-val: 1.0.5
-
- readable-stream@2.3.8:
- dependencies:
- core-util-is: 1.0.3
- inherits: 2.0.4
- isarray: 1.0.0
- process-nextick-args: 2.0.1
- safe-buffer: 5.1.2
- string_decoder: 1.1.1
- util-deprecate: 1.0.2
-
- readable-stream@3.6.2:
- dependencies:
- inherits: 2.0.4
- string_decoder: 1.3.0
- util-deprecate: 1.0.2
-
- readdir-glob@1.1.3:
- dependencies:
- minimatch: 5.1.6
-
require-directory@2.1.1: {}
resedit@1.7.2:
@@ -4418,14 +3214,9 @@ snapshots:
dependencies:
lowercase-keys: 2.0.0
- restore-cursor@3.1.0:
- dependencies:
- onetime: 5.1.2
- signal-exit: 3.0.7
-
retry@0.12.0: {}
- rimraf@3.0.2:
+ rimraf@2.6.3:
dependencies:
glob: 7.2.3
@@ -4439,42 +3230,31 @@ snapshots:
sprintf-js: 1.1.3
optional: true
- rollup@4.52.5:
+ rolldown@1.0.1:
dependencies:
- '@types/estree': 1.0.8
+ '@oxc-project/types': 0.130.0
+ '@rolldown/pluginutils': 1.0.1
optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.52.5
- '@rollup/rollup-android-arm64': 4.52.5
- '@rollup/rollup-darwin-arm64': 4.52.5
- '@rollup/rollup-darwin-x64': 4.52.5
- '@rollup/rollup-freebsd-arm64': 4.52.5
- '@rollup/rollup-freebsd-x64': 4.52.5
- '@rollup/rollup-linux-arm-gnueabihf': 4.52.5
- '@rollup/rollup-linux-arm-musleabihf': 4.52.5
- '@rollup/rollup-linux-arm64-gnu': 4.52.5
- '@rollup/rollup-linux-arm64-musl': 4.52.5
- '@rollup/rollup-linux-loong64-gnu': 4.52.5
- '@rollup/rollup-linux-ppc64-gnu': 4.52.5
- '@rollup/rollup-linux-riscv64-gnu': 4.52.5
- '@rollup/rollup-linux-riscv64-musl': 4.52.5
- '@rollup/rollup-linux-s390x-gnu': 4.52.5
- '@rollup/rollup-linux-x64-gnu': 4.52.5
- '@rollup/rollup-linux-x64-musl': 4.52.5
- '@rollup/rollup-openharmony-arm64': 4.52.5
- '@rollup/rollup-win32-arm64-msvc': 4.52.5
- '@rollup/rollup-win32-ia32-msvc': 4.52.5
- '@rollup/rollup-win32-x64-gnu': 4.52.5
- '@rollup/rollup-win32-x64-msvc': 4.52.5
- fsevents: 2.3.3
+ '@rolldown/binding-android-arm64': 1.0.1
+ '@rolldown/binding-darwin-arm64': 1.0.1
+ '@rolldown/binding-darwin-x64': 1.0.1
+ '@rolldown/binding-freebsd-x64': 1.0.1
+ '@rolldown/binding-linux-arm-gnueabihf': 1.0.1
+ '@rolldown/binding-linux-arm64-gnu': 1.0.1
+ '@rolldown/binding-linux-arm64-musl': 1.0.1
+ '@rolldown/binding-linux-ppc64-gnu': 1.0.1
+ '@rolldown/binding-linux-s390x-gnu': 1.0.1
+ '@rolldown/binding-linux-x64-gnu': 1.0.1
+ '@rolldown/binding-linux-x64-musl': 1.0.1
+ '@rolldown/binding-openharmony-arm64': 1.0.1
+ '@rolldown/binding-wasm32-wasi': 1.0.1
+ '@rolldown/binding-win32-arm64-msvc': 1.0.1
+ '@rolldown/binding-win32-x64-msvc': 1.0.1
rxjs@7.8.2:
dependencies:
tslib: 2.8.1
- safe-buffer@5.1.2: {}
-
- safe-buffer@5.2.1: {}
-
safer-buffer@2.1.2: {}
sanitize-filename@1.6.3:
@@ -4494,8 +3274,6 @@ snapshots:
semver@6.3.1: {}
- semver@7.7.2: {}
-
semver@7.7.3: {}
serialize-error@7.0.1:
@@ -4513,11 +3291,9 @@ snapshots:
signal-exit@3.0.7: {}
- signal-exit@4.1.0: {}
-
simple-update-notifier@2.0.0:
dependencies:
- semver: 7.7.2
+ semver: 7.7.3
slice-ansi@3.0.0:
dependencies:
@@ -4526,20 +3302,8 @@ snapshots:
is-fullwidth-code-point: 3.0.0
optional: true
- smart-buffer@4.2.0: {}
-
- socks-proxy-agent@7.0.0:
- dependencies:
- agent-base: 6.0.2
- debug: 4.4.3
- socks: 2.8.7
- transitivePeerDependencies:
- - supports-color
-
- socks@2.8.7:
- dependencies:
- ip-address: 10.0.1
- smart-buffer: 4.2.0
+ smart-buffer@4.2.0:
+ optional: true
source-map-js@1.2.1: {}
@@ -4555,10 +3319,6 @@ snapshots:
sprintf-js@1.1.3:
optional: true
- ssri@9.0.1:
- dependencies:
- minipass: 3.3.6
-
stat-mode@1.0.0: {}
string-width@4.2.3:
@@ -4567,28 +3327,10 @@ snapshots:
is-fullwidth-code-point: 3.0.0
strip-ansi: 6.0.1
- string-width@5.1.2:
- dependencies:
- eastasianwidth: 0.2.0
- emoji-regex: 9.2.2
- strip-ansi: 7.1.2
-
- string_decoder@1.1.1:
- dependencies:
- safe-buffer: 5.1.2
-
- string_decoder@1.3.0:
- dependencies:
- safe-buffer: 5.2.1
-
strip-ansi@6.0.1:
dependencies:
ansi-regex: 5.0.1
- strip-ansi@7.1.2:
- dependencies:
- ansi-regex: 6.2.2
-
sumchecker@3.0.1:
dependencies:
debug: 4.4.3
@@ -4603,28 +3345,11 @@ snapshots:
dependencies:
has-flag: 4.0.0
- tailwindcss@4.1.14: {}
-
- tapable@2.3.0: {}
-
- tar-stream@2.2.0:
- dependencies:
- bl: 4.1.0
- end-of-stream: 1.4.5
- fs-constants: 1.0.0
- inherits: 2.0.4
- readable-stream: 3.6.2
+ tailwindcss@4.3.0: {}
- tar@6.2.1:
- dependencies:
- chownr: 2.0.0
- fs-minipass: 2.1.0
- minipass: 5.0.0
- minizlib: 2.1.2
- mkdirp: 1.0.4
- yallist: 4.0.0
+ tapable@2.3.3: {}
- tar@7.5.1:
+ tar@7.5.15:
dependencies:
'@isaacs/fs-minipass': 4.0.1
chownr: 3.0.0
@@ -4637,14 +3362,24 @@ snapshots:
async-exit-hook: 2.0.1
fs-extra: 10.1.0
+ temp@0.9.4:
+ dependencies:
+ mkdirp: 0.5.6
+ rimraf: 2.6.3
+
tiny-async-pool@1.3.0:
dependencies:
semver: 5.7.2
tinyglobby@0.2.15:
dependencies:
- fdir: 6.5.0(picomatch@4.0.3)
- picomatch: 4.0.3
+ fdir: 6.5.0(picomatch@4.0.4)
+ picomatch: 4.0.4
+
+ tinyglobby@0.2.16:
+ dependencies:
+ fdir: 6.5.0(picomatch@4.0.4)
+ picomatch: 4.0.4
tmp-promise@3.0.3:
dependencies:
@@ -4660,32 +3395,14 @@ snapshots:
tslib@2.8.1: {}
- turbo-darwin-64@2.5.8:
- optional: true
-
- turbo-darwin-arm64@2.5.8:
- optional: true
-
- turbo-linux-64@2.5.8:
- optional: true
-
- turbo-linux-arm64@2.5.8:
- optional: true
-
- turbo-windows-64@2.5.8:
- optional: true
-
- turbo-windows-arm64@2.5.8:
- optional: true
-
- turbo@2.5.8:
+ turbo@2.9.14:
optionalDependencies:
- turbo-darwin-64: 2.5.8
- turbo-darwin-arm64: 2.5.8
- turbo-linux-64: 2.5.8
- turbo-linux-arm64: 2.5.8
- turbo-windows-64: 2.5.8
- turbo-windows-arm64: 2.5.8
+ '@turbo/darwin-64': 2.9.14
+ '@turbo/darwin-arm64': 2.9.14
+ '@turbo/linux-64': 2.9.14
+ '@turbo/linux-arm64': 2.9.14
+ '@turbo/windows-64': 2.9.14
+ '@turbo/windows-arm64': 2.9.14
type-fest@0.13.1:
optional: true
@@ -4694,32 +3411,18 @@ snapshots:
undici-types@6.21.0: {}
- unique-filename@2.0.1:
- dependencies:
- unique-slug: 3.0.0
-
- unique-slug@3.0.0:
- dependencies:
- imurmurhash: 0.1.4
+ undici@6.25.0: {}
universalify@0.1.2: {}
universalify@2.0.1: {}
- update-browserslist-db@1.1.3(browserslist@4.26.3):
- dependencies:
- browserslist: 4.26.3
- escalade: 3.2.0
- picocolors: 1.1.1
-
uri-js@4.4.1:
dependencies:
punycode: 2.3.1
utf8-byte-length@1.0.5: {}
- util-deprecate@1.0.2: {}
-
verror@1.10.1:
dependencies:
assert-plus: 1.0.0
@@ -4727,48 +3430,43 @@ snapshots:
extsprintf: 1.4.1
optional: true
- vite@7.1.11(@types/node@20.19.21)(jiti@2.6.1)(lightningcss@1.30.2):
+ vite@8.0.13(@types/node@20.19.21)(esbuild@0.28.0)(jiti@2.6.1):
dependencies:
- esbuild: 0.25.11
- fdir: 6.5.0(picomatch@4.0.3)
- picomatch: 4.0.3
- postcss: 8.5.6
- rollup: 4.52.5
- tinyglobby: 0.2.15
+ lightningcss: 1.32.0
+ picomatch: 4.0.4
+ postcss: 8.5.14
+ rolldown: 1.0.1
+ tinyglobby: 0.2.16
optionalDependencies:
'@types/node': 20.19.21
+ esbuild: 0.28.0
fsevents: 2.3.3
jiti: 2.6.1
- lightningcss: 1.30.2
-
- wcwidth@1.0.1:
- dependencies:
- defaults: 1.0.4
which@2.0.2:
dependencies:
isexe: 2.0.0
+ which@5.0.0:
+ dependencies:
+ isexe: 3.1.5
+
+ which@6.0.1:
+ dependencies:
+ isexe: 4.0.0
+
wrap-ansi@7.0.0:
dependencies:
ansi-styles: 4.3.0
string-width: 4.2.3
strip-ansi: 6.0.1
- wrap-ansi@8.1.0:
- dependencies:
- ansi-styles: 6.2.3
- string-width: 5.1.2
- strip-ansi: 7.1.2
-
wrappy@1.0.2: {}
xmlbuilder@15.1.1: {}
y18n@5.0.8: {}
- yallist@3.1.1: {}
-
yallist@4.0.0: {}
yallist@5.0.0: {}
@@ -4791,9 +3489,3 @@ snapshots:
fd-slicer: 1.1.0
yocto-queue@0.1.0: {}
-
- zip-stream@4.1.1:
- dependencies:
- archiver-utils: 3.0.4
- compress-commons: 4.1.2
- readable-stream: 3.6.2
diff --git a/turbo.json b/turbo.json
index d508947..db837f5 100644
--- a/turbo.json
+++ b/turbo.json
@@ -5,7 +5,7 @@
"build": {
"dependsOn": ["^build"],
"inputs": ["$TURBO_DEFAULT$", ".env*"],
- "outputs": [".next/**", "!.next/cache/**"]
+ "outputs": ["dist/**", "dist-renderer/**"]
},
"lint": {
"dependsOn": ["^lint"]