From b3b997859ce8efe0c4776fd191cf94b91829aa7a Mon Sep 17 00:00:00 2001 From: Robert Plante Date: Sat, 1 Nov 2025 12:21:30 -0400 Subject: [PATCH 01/25] Adding crafting ingredients lists Added collapsed-by-default "Needed Ingredients" sections to cooking and crafting pages with support for filtering by recipe state and season. **Motivation and goals:** Crafting every item requires a tremendous number of ingredients, some of which can only be obtained in certain seasons. Having a full list to reference makes it easy to plan ahead. Being able to filter by season makes near term planning much more tractable. **Features:** - Support for cooking and crafting recipes - Expands recipe ingredients recursively to make planning easier - Familiar card layouts with Wiki links - Custom Wiki links for non-specific ingredients (e.g. "Any Fish") - Filtering by known/unknown (crafted/cooked excluded to avoid clutter) - Filtering by season --- .../src/components/cards/ingredient-card.tsx | 214 ++++++++++++++++++ .../src/components/ingredient-list.tsx | 156 +++++++++++++ apps/stardew.app/src/pages/cooking.tsx | 96 ++++++++ apps/stardew.app/src/pages/crafting.tsx | 95 ++++++++ 4 files changed, 561 insertions(+) create mode 100644 apps/stardew.app/src/components/cards/ingredient-card.tsx create mode 100644 apps/stardew.app/src/components/ingredient-list.tsx diff --git a/apps/stardew.app/src/components/cards/ingredient-card.tsx b/apps/stardew.app/src/components/cards/ingredient-card.tsx new file mode 100644 index 00000000..73010392 --- /dev/null +++ b/apps/stardew.app/src/components/cards/ingredient-card.tsx @@ -0,0 +1,214 @@ +import Image from "next/image"; + +import bigCraftables from "@/data/big_craftables.json"; +import objects from "@/data/objects.json"; + +import { cn } from "@/lib/utils"; +import { Dispatch, SetStateAction, useState } from "react"; + +import { deweaponize } from "@/lib/utils"; + +import { NewItemBadge } from "@/components/new-item-badge"; +import { Button } from "@/components/ui/button"; +import { + Dialog, + DialogContent, + DialogDescription, + DialogFooter, + DialogHeader, + DialogTitle, + DialogTrigger, +} from "@/components/ui/dialog"; + +import { IconChevronRight, IconExternalLink } from "@tabler/icons-react"; + +interface Props { + /** + * The ID of the object/big-craftable/category to display + */ + itemID: string; + + /** + * Number to display as the needed count in the card + */ + count: number; + + /** + * Whether the user prefers to see new content + * + * @type {boolean} + * @memberof Props + */ + show: boolean; + + /** + * The handler to display the new content confirmation prompt + * + * @type {Dispatch>} + * @memberof Props + */ + setPromptOpen?: Dispatch>; +} + +interface Item { + isCategory: boolean; + isBC: boolean; + minVersion: string; + name: string; + iconURL: string; + description?: string; + wikiName: string; +} + +const categoryItems: Record = { + "-4": "Any Fish", + "-5": "Any Egg", + "-6": "Any Milk", + "-777": "Wild Seeds (Any)", +}; + +const categoryWikiNames: Record = { + "-4": "Fish", + "-5": "Egg", + "-6": "Milk", + "-777": "Wild_Seeds", +}; + +export function IngredientMinVersion(itemID: string): string { + if (itemID.startsWith("-")) { + return "1.5.0"; + } else if (deweaponize(itemID).key === "BC") { + const item_id = deweaponize(itemID).value; + return bigCraftables[item_id as keyof typeof bigCraftables].minVersion; + } + + return objects[itemID as keyof typeof objects].minVersion; +} + +function GetItemDetails(itemID: string): Item { + // if itemID is less than 0, it's a category + if (itemID.startsWith("-")) { + return { + isCategory: true, + isBC: false, + minVersion: "1.5.0", + name: categoryItems[itemID], + iconURL: `https://cdn.stardew.app/images/(C)${itemID}.webp`, + wikiName: categoryWikiNames[itemID], + }; + } else if (deweaponize(itemID).key === "BC") { + const item_id = deweaponize(itemID).value; + let item = bigCraftables[item_id as keyof typeof bigCraftables]; + + return { + isCategory: false, + isBC: true, + minVersion: item.minVersion, + name: item.name, + iconURL: `https://cdn.stardew.app/images/(BC)${deweaponize(itemID).value}.webp`, + description: item.description, + wikiName: item.name.replaceAll(" ", "_"), + }; + } else { + let item = objects[itemID as keyof typeof objects]; + + return { + isCategory: false, + isBC: false, + minVersion: item.minVersion, + name: item.name, + iconURL: `https://cdn.stardew.app/images/(O)${itemID}.webp`, + description: item.description ?? undefined, + wikiName: item.name.replaceAll(" ", "_"), + }; + } +} + +export const IngredientCard = ({ + itemID, + count, + show, + setPromptOpen, +}: Props) => { + const [open, setOpen] = useState(false); + + let item = GetItemDetails(itemID); + + return ( + + +
{ + if (item.minVersion === "1.6.0" && !show) { + e.preventDefault(); + setPromptOpen?.(true); + return; + } + }} + > + {item.minVersion === "1.6.0" && ( + + )} +
+ {item.name} +
+

{`${item.name} (${count}x)`}

+

+ {item.description ?? ""} +

+
+
+ +
+
+ + + {item.name} + {item.name} + + {item.description} + + + + +
+ +
+
+
+
+ ); +}; diff --git a/apps/stardew.app/src/components/ingredient-list.tsx b/apps/stardew.app/src/components/ingredient-list.tsx new file mode 100644 index 00000000..39a15233 --- /dev/null +++ b/apps/stardew.app/src/components/ingredient-list.tsx @@ -0,0 +1,156 @@ +import shipping_items from "@/data/shipping.json"; + +import type { Recipe } from "@/types/recipe"; + +import { usePlayers } from "@/contexts/players-context"; +import { Dispatch, SetStateAction, useEffect, useMemo, useState } from "react"; +import { IngredientCard, IngredientMinVersion } from "./cards/ingredient-card"; + +const semverGte = require("semver/functions/gte"); + +interface Props { + /** + * All of the recipes available within the game + */ + recipes: { + [key: string]: T; + }; + + /** + * Player's recipe knowledge + */ + playerRecipes: { + [key: string]: 0 | 1 | 2; + }; + + /** + * Whether to limit ingredients counts to unkown ("0"), known ("1"), or + * "all" recipes. + */ + filterKnown?: string; + + /** + * Limit shown ingredients to those available in a particular season, or + * "all" ingredients. + */ + filterSeason?: string; + + /** + * Whether the user prefers to see new content + * + * @type {boolean} + * @memberof Props + */ + show: boolean; + + /** + * The handler to display the new content confirmation prompt + * + * @type {Dispatch>} + * @memberof Props + */ + setPromptOpen?: Dispatch>; +} + +class IngredientData { + counts: [number, number, number] = [0, 0, 0]; + seasons: string[] = []; + + constructor(itemID: string) { + if (itemID in shipping_items) { + this.seasons = + shipping_items[itemID as keyof typeof shipping_items].seasons; + } + } +} + +type IngredientsRecord = Record; + +export const IngredientList = ({ + recipes, + playerRecipes, + filterKnown = "", + filterSeason = "all", + setPromptOpen, + show, +}: Props) => { + const [gameVersion, setGameVersion] = useState("1.6.0"); + + const { activePlayer } = usePlayers(); + + useEffect(() => { + if (activePlayer) { + // set the minimum game version + if (activePlayer.general?.gameVersion) { + const version = activePlayer.general.gameVersion; + setGameVersion(version); + } + } + }, [activePlayer]); + + const ingredientCounts: IngredientsRecord = useMemo(() => { + const reduceIngredients = ( + acc: IngredientsRecord, + [_, v]: [string, T], + status: 0 | 1 | 2, + ): IngredientsRecord => + v.ingredients.reduce((a, i) => { + if (!(i.itemID in a)) { + a[i.itemID] = new IngredientData(i.itemID); + } + + a[i.itemID].counts[status] += i.quantity; + + if (i.itemID in recipes) { + a = reduceIngredients(a, [i.itemID, recipes[i.itemID]], status); + } + + return a; + }, acc); + + return Object.entries(recipes).reduce( + (acc, [id, v]) => + reduceIngredients(acc, [id, v], playerRecipes[v.itemID] ?? 0), + {}, + ); + }, [recipes, playerRecipes]); + + return ( +
+ {Object.entries(ingredientCounts) + .filter(([id, _]) => semverGte(gameVersion, IngredientMinVersion(id))) + .filter(([_, details]) => { + if (filterSeason === "all") { + return true; + } + + return ( + details.seasons.length == 0 || + details.seasons.includes(filterSeason) + ); + }) + .map(([id, details]): [string, number] => { + switch (filterKnown) { + case "0": + return [id, details.counts[0]]; + case "1": + return [id, details.counts[1]]; + case "2": + return [id, 0]; + default: + return [id, details.counts[0] + details.counts[1]]; + } + }) + .filter(([_, count]) => count > 0) + .map(([id, count]) => ( + + ))} +
+ ); +}; diff --git a/apps/stardew.app/src/pages/cooking.tsx b/apps/stardew.app/src/pages/cooking.tsx index 2c5c4697..8819e84b 100644 --- a/apps/stardew.app/src/pages/cooking.tsx +++ b/apps/stardew.app/src/pages/cooking.tsx @@ -16,6 +16,7 @@ import { AchievementCard } from "@/components/cards/achievement-card"; import { RecipeCard } from "@/components/cards/recipe-card"; import { BulkActionDialog } from "@/components/dialogs/bulk-action-dialog"; import { UnblurDialog } from "@/components/dialogs/unblur-dialog"; +import { FilterSearch } from "@/components/filter-btn"; import { RecipeSheet } from "@/components/sheets/recipe-sheet"; import { Accordion, @@ -28,6 +29,9 @@ import { Command, CommandInput } from "@/components/ui/command"; import { ToggleGroup, ToggleGroupItem } from "@/components/ui/toggle-group"; import { cn } from "@/lib/utils"; +import { IngredientList } from "@/components/ingredient-list"; +import { IconClock } from "@tabler/icons-react"; + const semverGte = require("semver/functions/gte"); const reqs: Record = { @@ -42,6 +46,29 @@ const bubbleColors: Record = { "2": "border-green-900 bg-green-500/20", // completed }; +const seasons = [ + { + value: "all", + label: "All Seasons", + }, + { + value: "Spring", + label: "Spring", + }, + { + value: "Summer", + label: "Summer", + }, + { + value: "Fall", + label: "Fall", + }, + { + value: "Winter", + label: "Winter", + }, +]; + export default function Cooking() { const [open, setIsOpen] = useState(false); const [recipe, setRecipe] = useState(null); @@ -66,6 +93,8 @@ export default function Cooking() { clearSelection, } = useMultiSelect(); + const [_seasonFilter, setSeasonFilter] = useState("all"); + useEffect(() => { if (activePlayer) { if (activePlayer.cooking?.recipes) { @@ -176,6 +205,73 @@ export default function Cooking() { + {/* Needed Ingredients Section */} + +
+ + + Needed Ingredients + + + {/* Filters and Actions Row */} +
+
+ + setFilter(val === _filter ? "all" : val) + } + className="gap-2" + > + + + + Unknown ( + {reqs["Gourmet Chef"] - (knownCount + cookedCount)}) + + + + + + Known ({knownCount}) + + + +
+
+ +
+
+ + recipes={recipes} + playerRecipes={playerRecipes} + show={show} + setPromptOpen={setPromptOpen} + filterKnown={_filter} + filterSeason={_seasonFilter} + /> +
+
+
+
{/* All Recipes Section */}

diff --git a/apps/stardew.app/src/pages/crafting.tsx b/apps/stardew.app/src/pages/crafting.tsx index 28b894a4..2ea9165b 100644 --- a/apps/stardew.app/src/pages/crafting.tsx +++ b/apps/stardew.app/src/pages/crafting.tsx @@ -16,6 +16,8 @@ import { AchievementCard } from "@/components/cards/achievement-card"; import { RecipeCard } from "@/components/cards/recipe-card"; import { BulkActionDialog } from "@/components/dialogs/bulk-action-dialog"; import { UnblurDialog } from "@/components/dialogs/unblur-dialog"; +import { FilterSearch } from "@/components/filter-btn"; +import { IngredientList } from "@/components/ingredient-list"; import { RecipeSheet } from "@/components/sheets/recipe-sheet"; import { Accordion, @@ -27,6 +29,7 @@ import { Button } from "@/components/ui/button"; import { Command, CommandInput } from "@/components/ui/command"; import { ToggleGroup, ToggleGroupItem } from "@/components/ui/toggle-group"; import { cn } from "@/lib/utils"; +import { IconClock } from "@tabler/icons-react"; import { X } from "lucide-react"; const semverGte = require("semver/functions/gte"); @@ -43,6 +46,29 @@ const bubbleColors: Record = { "2": "border-green-900 bg-green-500/20", // completed }; +const seasons = [ + { + value: "all", + label: "All Seasons", + }, + { + value: "Spring", + label: "Spring", + }, + { + value: "Summer", + label: "Summer", + }, + { + value: "Fall", + label: "Fall", + }, + { + value: "Winter", + label: "Winter", + }, +]; + export default function Crafting() { const [open, setIsOpen] = useState(false); const [recipe, setRecipe] = useState(null); @@ -54,6 +80,7 @@ export default function Crafting() { const [search, setSearch] = useState(""); const [_filter, setFilter] = useState("all"); + const [_seasonFilter, setSeasonFilter] = useState("all"); const [showPrompt, setPromptOpen] = useState(false); @@ -188,6 +215,74 @@ export default function Crafting() {

+ {/* Needed Ingredients Section */} + +
+ + + Needed Ingredients + + + {/* Filters and Actions Row */} +
+
+ + setFilter(val === _filter ? "all" : val) + } + className="gap-2" + > + + + + Unknown ( + {reqs["Craft Master"] - (knownCount + craftedCount)} + ) + + + + + + Known ({knownCount}) + + + +
+
+ +
+
+ + recipes={recipes} + playerRecipes={playerRecipes} + show={show} + setPromptOpen={setPromptOpen} + filterKnown={_filter} + filterSeason={_seasonFilter} + /> +
+
+
+
{/* All Recipes Section */}

From ccf2e036db11d392e337e054a9dd26adab777cad Mon Sep 17 00:00:00 2001 From: Robert Plante Date: Mon, 1 Dec 2025 12:08:28 -0500 Subject: [PATCH 02/25] Added ingredient sorting and text search. Sorting of ingredients is done alphabetically by name and text search leverages the same patterns as text search in other areas. Co-authored-by: Denys Grybov --- .../src/components/cards/ingredient-card.tsx | 12 ++++ .../src/components/ingredient-list.tsx | 59 +++++++++++++++---- apps/stardew.app/src/pages/cooking.tsx | 11 ++++ apps/stardew.app/src/pages/crafting.tsx | 11 ++++ 4 files changed, 81 insertions(+), 12 deletions(-) diff --git a/apps/stardew.app/src/components/cards/ingredient-card.tsx b/apps/stardew.app/src/components/cards/ingredient-card.tsx index 73010392..ea9f7ae5 100644 --- a/apps/stardew.app/src/components/cards/ingredient-card.tsx +++ b/apps/stardew.app/src/components/cards/ingredient-card.tsx @@ -85,6 +85,18 @@ export function IngredientMinVersion(itemID: string): string { return objects[itemID as keyof typeof objects].minVersion; } +export function IngredientName(itemID: string): string { + // if itemID is less than 0, it's a category + if (itemID.startsWith("-")) { + return categoryItems[itemID]; + } else if (deweaponize(itemID).key === "BC") { + const item_id = deweaponize(itemID).value; + return bigCraftables[item_id as keyof typeof bigCraftables].name; + } else { + return objects[itemID as keyof typeof objects].name; + } +} + function GetItemDetails(itemID: string): Item { // if itemID is less than 0, it's a category if (itemID.startsWith("-")) { diff --git a/apps/stardew.app/src/components/ingredient-list.tsx b/apps/stardew.app/src/components/ingredient-list.tsx index 39a15233..3240dcaf 100644 --- a/apps/stardew.app/src/components/ingredient-list.tsx +++ b/apps/stardew.app/src/components/ingredient-list.tsx @@ -4,7 +4,11 @@ import type { Recipe } from "@/types/recipe"; import { usePlayers } from "@/contexts/players-context"; import { Dispatch, SetStateAction, useEffect, useMemo, useState } from "react"; -import { IngredientCard, IngredientMinVersion } from "./cards/ingredient-card"; +import { + IngredientCard, + IngredientMinVersion, + IngredientName, +} from "./cards/ingredient-card"; const semverGte = require("semver/functions/gte"); @@ -35,6 +39,11 @@ interface Props { */ filterSeason?: string; + /** + * Allow for searching for specific ingredients. + */ + searchText?: string; + /** * Whether the user prefers to see new content * @@ -53,10 +62,13 @@ interface Props { } class IngredientData { + id: string = ""; counts: [number, number, number] = [0, 0, 0]; seasons: string[] = []; constructor(itemID: string) { + this.id = itemID; + if (itemID in shipping_items) { this.seasons = shipping_items[itemID as keyof typeof shipping_items].seasons; @@ -69,8 +81,9 @@ type IngredientsRecord = Record; export const IngredientList = ({ recipes, playerRecipes, - filterKnown = "", + filterKnown, filterSeason = "all", + searchText, setPromptOpen, show, }: Props) => { @@ -88,7 +101,7 @@ export const IngredientList = ({ } }, [activePlayer]); - const ingredientCounts: IngredientsRecord = useMemo(() => { + const ingredientCounts: IngredientData[] = useMemo(() => { const reduceIngredients = ( acc: IngredientsRecord, [_, v]: [string, T], @@ -108,18 +121,40 @@ export const IngredientList = ({ return a; }, acc); - return Object.entries(recipes).reduce( + const ingredientsMap: IngredientsRecord = Object.entries(recipes).reduce( (acc, [id, v]) => reduceIngredients(acc, [id, v], playerRecipes[v.itemID] ?? 0), {}, ); + + return Object.values(ingredientsMap).sort((a, b) => { + const a_name = IngredientName(a.id); + const b_name = IngredientName(b.id); + + if (a_name === b_name) { + return 0; + } + + return a_name < b_name ? -1 : 1; + }); }, [recipes, playerRecipes]); return (
- {Object.entries(ingredientCounts) - .filter(([id, _]) => semverGte(gameVersion, IngredientMinVersion(id))) - .filter(([_, details]) => { + {ingredientCounts + .filter((details) => + semverGte(gameVersion, IngredientMinVersion(details.id)), + ) + .filter((details) => { + if (!searchText) { + return true; + } + + return IngredientName(details.id) + .toLowerCase() + .includes(searchText.toLowerCase()); + }) + .filter((details) => { if (filterSeason === "all") { return true; } @@ -129,16 +164,16 @@ export const IngredientList = ({ details.seasons.includes(filterSeason) ); }) - .map(([id, details]): [string, number] => { + .map((details): [string, number] => { switch (filterKnown) { case "0": - return [id, details.counts[0]]; + return [details.id, details.counts[0]]; case "1": - return [id, details.counts[1]]; + return [details.id, details.counts[1]]; case "2": - return [id, 0]; + return [details.id, 0]; default: - return [id, details.counts[0] + details.counts[1]]; + return [details.id, details.counts[0] + details.counts[1]]; } }) .filter(([_, count]) => count > 0) diff --git a/apps/stardew.app/src/pages/cooking.tsx b/apps/stardew.app/src/pages/cooking.tsx index 8819e84b..ac14ee7d 100644 --- a/apps/stardew.app/src/pages/cooking.tsx +++ b/apps/stardew.app/src/pages/cooking.tsx @@ -79,6 +79,7 @@ export default function Cooking() { const [gameVersion, setGameVersion] = useState("1.6.0"); const [search, setSearch] = useState(""); + const [ingredientSearch, setIngredientSearch] = useState(""); const [_filter, setFilter] = useState("all"); const [bulkActionOpen, setBulkActionOpen] = useState(false); @@ -260,6 +261,15 @@ export default function Cooking() { />
+ {/* Search Bar Row */} +
+ + setIngredientSearch(v)} + placeholder="Search Ingredients" + /> + +
recipes={recipes} playerRecipes={playerRecipes} @@ -267,6 +277,7 @@ export default function Cooking() { setPromptOpen={setPromptOpen} filterKnown={_filter} filterSeason={_seasonFilter} + searchText={ingredientSearch} /> diff --git a/apps/stardew.app/src/pages/crafting.tsx b/apps/stardew.app/src/pages/crafting.tsx index 2ea9165b..d4d6a209 100644 --- a/apps/stardew.app/src/pages/crafting.tsx +++ b/apps/stardew.app/src/pages/crafting.tsx @@ -79,6 +79,7 @@ export default function Crafting() { const [gameVersion, setGameVersion] = useState("1.6.0"); const [search, setSearch] = useState(""); + const [ingredientSearch, setIngredientSearch] = useState(""); const [_filter, setFilter] = useState("all"); const [_seasonFilter, setSeasonFilter] = useState("all"); @@ -271,6 +272,15 @@ export default function Crafting() { /> + {/* Search Bar Row */} +
+ + setIngredientSearch(v)} + placeholder="Search Ingredients" + /> + +
recipes={recipes} playerRecipes={playerRecipes} @@ -278,6 +288,7 @@ export default function Crafting() { setPromptOpen={setPromptOpen} filterKnown={_filter} filterSeason={_seasonFilter} + searchText={ingredientSearch} /> From 08af6e95d25cfd96b3d8a2a0ad5ddf79698df9a3 Mon Sep 17 00:00:00 2001 From: Robert Plante Date: Fri, 19 Dec 2025 09:45:02 -0500 Subject: [PATCH 03/25] More data and season filtering for fish ingredients Fish have much more particular requirements for obtaining than crops and are not a shipping item in and of themselves (so season data was not being pulled). This commit brings in the information and displays from the Fishing page so that filtering fish by season works and information about catching them is readily available. --- .../src/components/ingredient-list.tsx | 137 ++++++++++++------ .../src/components/sheets/fish-sheet.tsx | 136 +++++++++-------- 2 files changed, 161 insertions(+), 112 deletions(-) diff --git a/apps/stardew.app/src/components/ingredient-list.tsx b/apps/stardew.app/src/components/ingredient-list.tsx index 3240dcaf..af556afe 100644 --- a/apps/stardew.app/src/components/ingredient-list.tsx +++ b/apps/stardew.app/src/components/ingredient-list.tsx @@ -1,14 +1,19 @@ +import fishes from "@/data/fish.json"; import shipping_items from "@/data/shipping.json"; +import type { FishType } from "@/types/items"; import type { Recipe } from "@/types/recipe"; import { usePlayers } from "@/contexts/players-context"; import { Dispatch, SetStateAction, useEffect, useMemo, useState } from "react"; + +import { BooleanCard } from "./cards/boolean-card"; import { IngredientCard, IngredientMinVersion, IngredientName, } from "./cards/ingredient-card"; +import { FishSheet } from "./sheets/fish-sheet"; const semverGte = require("semver/functions/gte"); @@ -69,7 +74,13 @@ class IngredientData { constructor(itemID: string) { this.id = itemID; - if (itemID in shipping_items) { + if (itemID in fishes) { + const f = fishes[itemID as keyof typeof fishes]; + + if ("seasons" in f) { + this.seasons = f.seasons; + } + } else if (itemID in shipping_items) { this.seasons = shipping_items[itemID as keyof typeof shipping_items].seasons; } @@ -91,6 +102,9 @@ export const IngredientList = ({ const { activePlayer } = usePlayers(); + const [open, setIsOpen] = useState(false); + const [fish, setFish] = useState(null); + useEffect(() => { if (activePlayer) { // set the minimum game version @@ -140,52 +154,79 @@ export const IngredientList = ({ }, [recipes, playerRecipes]); return ( -
- {ingredientCounts - .filter((details) => - semverGte(gameVersion, IngredientMinVersion(details.id)), - ) - .filter((details) => { - if (!searchText) { - return true; - } - - return IngredientName(details.id) - .toLowerCase() - .includes(searchText.toLowerCase()); - }) - .filter((details) => { - if (filterSeason === "all") { - return true; - } - - return ( - details.seasons.length == 0 || - details.seasons.includes(filterSeason) - ); - }) - .map((details): [string, number] => { - switch (filterKnown) { - case "0": - return [details.id, details.counts[0]]; - case "1": - return [details.id, details.counts[1]]; - case "2": - return [details.id, 0]; - default: - return [details.id, details.counts[0] + details.counts[1]]; - } - }) - .filter(([_, count]) => count > 0) - .map(([id, count]) => ( - - ))} -
+ <> +
+ {ingredientCounts + .filter((details) => + semverGte(gameVersion, IngredientMinVersion(details.id)), + ) + .filter((details) => { + if (!searchText) { + return true; + } + + return IngredientName(details.id) + .toLowerCase() + .includes(searchText.toLowerCase()); + }) + .filter((details) => { + if (filterSeason === "all") { + return true; + } + + return ( + details.seasons.length == 0 || + details.seasons.includes(filterSeason) + ); + }) + .map((details): [string, number] => { + switch (filterKnown) { + case "0": + return [details.id, details.counts[0]]; + case "1": + return [details.id, details.counts[1]]; + case "2": + return [details.id, 0]; + default: + return [details.id, details.counts[0] + details.counts[1]]; + } + }) + .filter(([_, count]) => count > 0) + .map(([id, count]) => { + if (id in fishes) { + const f = fishes[id as keyof typeof fishes]; + + return ( + + ); + } else { + return ( + + ); + } + })} +
+ + ); }; diff --git a/apps/stardew.app/src/components/sheets/fish-sheet.tsx b/apps/stardew.app/src/components/sheets/fish-sheet.tsx index 49680525..e08d455e 100644 --- a/apps/stardew.app/src/components/sheets/fish-sheet.tsx +++ b/apps/stardew.app/src/components/sheets/fish-sheet.tsx @@ -34,9 +34,15 @@ interface Props { open: boolean; setIsOpen: Dispatch>; fish: FishType | null; + showCaught?: boolean; } -export const FishSheet = ({ open, setIsOpen, fish }: Props) => { +export const FishSheet = ({ + open, + setIsOpen, + fish, + showCaught = true, +}: Props) => { const { activePlayer, patchPlayer } = useContext(PlayersContext); const { selectedItems, clearSelection } = useMultiSelect(); const isDesktop = useMediaQuery("(min-width: 768px)"); @@ -100,77 +106,79 @@ export const FishSheet = ({ open, setIsOpen, fish }: Props) => { const content = ( <>
-
-
- {selectedItems.size > 0 ? ( - <> - - - - ) : ( - <> - {fishCaught.has(fish?.itemID?.toString() ?? "0") ? ( + {showCaught && ( +
+
+ {selectedItems.size > 0 ? ( + <> - ) : ( - )} - - )} - {!activePlayer && } - {name && ( - - )} -
-
+ + ) : ( + <> + {fishCaught.has(fish?.itemID?.toString() ?? "0") ? ( + + ) : ( + + )} + + )} + {!activePlayer && } + {name && ( + + )} +
+
+ )} {fish && ( <>
From 2c4aa02dcc345aafffce0861e6d06e2039d551d5 Mon Sep 17 00:00:00 2001 From: Clemente Date: Fri, 19 Dec 2025 18:49:02 -0800 Subject: [PATCH 04/25] updating package.json --- bun.lockb | Bin 399648 -> 400504 bytes package.json | 2 ++ 2 files changed, 2 insertions(+) diff --git a/bun.lockb b/bun.lockb index 029a92ca673535453917c48b3b37650117aae4d0..68a27a2ff492bdf4b7132ebec24473f5f44d4fa8 100755 GIT binary patch delta 84551 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 PFylVSU(F6ocjf;9K)$x- diff --git a/package.json b/package.json index 29f71988..0a3349e4 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,8 @@ "typescript": "5.8.2" }, "dependencies": { + "baseline-browser-mapping": "^2.9.11", + "caniuse-lite": "^1.0.30001761", "drizzle-orm": "^0.44.5" } } From b47b4994c68f32072696d3cb53990048e09f8867 Mon Sep 17 00:00:00 2001 From: Clemente Date: Sat, 20 Dec 2025 11:24:57 -0800 Subject: [PATCH 05/25] add ingredients behind beta feature flag --- .../src/contexts/preferences-context.tsx | 23 ++- apps/stardew.app/src/pages/account.tsx | 27 ++- apps/stardew.app/src/pages/cooking.tsx | 154 ++++++++--------- apps/stardew.app/src/pages/crafting.tsx | 155 +++++++++--------- 4 files changed, 206 insertions(+), 153 deletions(-) diff --git a/apps/stardew.app/src/contexts/preferences-context.tsx b/apps/stardew.app/src/contexts/preferences-context.tsx index 920837d7..7b24cae3 100644 --- a/apps/stardew.app/src/contexts/preferences-context.tsx +++ b/apps/stardew.app/src/contexts/preferences-context.tsx @@ -3,11 +3,15 @@ import { createContext, useContext, useEffect, useState } from "react"; interface Preferences { show: boolean; toggleShow: () => boolean; + showBetaFeatures: boolean; + toggleBetaFeatures: () => boolean; } const PreferencesContext = createContext({ show: false, toggleShow: () => false, + showBetaFeatures: false, + toggleBetaFeatures: () => false, }); export const PreferencesProvider = ({ @@ -16,12 +20,15 @@ export const PreferencesProvider = ({ children: React.ReactNode; }) => { const [show, setShow] = useState(false); + const [showBetaFeatures, setShowBetaFeatures] = useState(false); useEffect(() => { if (typeof window !== "undefined") { const stored = window.localStorage.getItem("show_new_content"); + const storedBeta = window.localStorage.getItem("show_beta_features"); if (stored) setShow(JSON.parse(stored)); + if (storedBeta) setShowBetaFeatures(JSON.parse(storedBeta)); } }, []); @@ -34,8 +41,22 @@ export const PreferencesProvider = ({ return updated; }; + const toggleBetaFeatures = (): boolean => { + const updated = !showBetaFeatures; + setShowBetaFeatures(updated); + if (typeof window !== "undefined") { + window.localStorage.setItem( + "show_beta_features", + JSON.stringify(updated), + ); + } + return updated; + }; + return ( - + {children} ); diff --git a/apps/stardew.app/src/pages/account.tsx b/apps/stardew.app/src/pages/account.tsx index 033d2be3..0b2866ad 100644 --- a/apps/stardew.app/src/pages/account.tsx +++ b/apps/stardew.app/src/pages/account.tsx @@ -181,7 +181,8 @@ export default function Account() { ); const { players } = usePlayers(); - const { show, toggleShow } = usePreferences(); + const { show, toggleShow, showBetaFeatures, toggleBetaFeatures } = + usePreferences(); const [deletionOpen, setDeletionOpen] = useState(false); const [inputType, setInputType] = useState<"password" | "text">("password"); @@ -291,6 +292,30 @@ export default function Account() { + + + +
+ Beta Features + + Enable experimental features across the application. + +
+
+ { + const res = toggleBetaFeatures(); + toast.success( + `Beta features have been ${res ? "enabled" : "disabled"}.`, + ); + }} + /> +
+
+
+
diff --git a/apps/stardew.app/src/pages/cooking.tsx b/apps/stardew.app/src/pages/cooking.tsx index ac14ee7d..4ddd2e0e 100644 --- a/apps/stardew.app/src/pages/cooking.tsx +++ b/apps/stardew.app/src/pages/cooking.tsx @@ -86,7 +86,7 @@ export default function Cooking() { const [showPrompt, setPromptOpen] = useState(false); const { activePlayer } = usePlayers(); - const { show, toggleShow } = usePreferences(); + const { show, toggleShow, showBetaFeatures } = usePreferences(); const { isMultiSelectMode, toggleMultiSelectMode, @@ -207,82 +207,86 @@ export default function Cooking() {

{/* Needed Ingredients Section */} - -
- - - Needed Ingredients - - - {/* Filters and Actions Row */} -
-
- - setFilter(val === _filter ? "all" : val) - } - className="gap-2" - > - - - - Unknown ( - {reqs["Gourmet Chef"] - (knownCount + cookedCount)}) - - - - - - Known ({knownCount}) - - - + {showBetaFeatures && ( + +
+ + + Needed Ingredients + + + {/* Filters and Actions Row */} +
+
+ + setFilter(val === _filter ? "all" : val) + } + className="gap-2" + > + + + + Unknown ( + {reqs["Gourmet Chef"] - + (knownCount + cookedCount)} + ) + + + + + + Known ({knownCount}) + + + +
+
+ +
-
- + {/* Search Bar Row */} +
+ + setIngredientSearch(v)} + placeholder="Search Ingredients" + /> +
-
- {/* Search Bar Row */} -
- - setIngredientSearch(v)} - placeholder="Search Ingredients" - /> - -
- - recipes={recipes} - playerRecipes={playerRecipes} - show={show} - setPromptOpen={setPromptOpen} - filterKnown={_filter} - filterSeason={_seasonFilter} - searchText={ingredientSearch} - /> -
-
-
-
+ + recipes={recipes} + playerRecipes={playerRecipes} + show={show} + setPromptOpen={setPromptOpen} + filterKnown={_filter} + filterSeason={_seasonFilter} + searchText={ingredientSearch} + /> + + +
+
+ )} {/* All Recipes Section */}

diff --git a/apps/stardew.app/src/pages/crafting.tsx b/apps/stardew.app/src/pages/crafting.tsx index d4d6a209..ed0e27bb 100644 --- a/apps/stardew.app/src/pages/crafting.tsx +++ b/apps/stardew.app/src/pages/crafting.tsx @@ -86,7 +86,7 @@ export default function Crafting() { const [showPrompt, setPromptOpen] = useState(false); const { activePlayer } = usePlayers(); - const { show, toggleShow } = usePreferences(); + const { show, toggleShow, showBetaFeatures } = usePreferences(); const { isMultiSelectMode, toggleMultiSelectMode, @@ -217,83 +217,86 @@ export default function Crafting() {

{/* Needed Ingredients Section */} - -
- - - Needed Ingredients - - - {/* Filters and Actions Row */} -
-
- - setFilter(val === _filter ? "all" : val) - } - className="gap-2" - > - - - - Unknown ( - {reqs["Craft Master"] - (knownCount + craftedCount)} - ) - - - - - - Known ({knownCount}) - - - + {showBetaFeatures && ( + +
+ + + Needed Ingredients + + + {/* Filters and Actions Row */} +
+
+ + setFilter(val === _filter ? "all" : val) + } + className="gap-2" + > + + + + Unknown ( + {reqs["Craft Master"] - + (knownCount + craftedCount)} + ) + + + + + + Known ({knownCount}) + + + +
+
+ +
-
- + {/* Search Bar Row */} +
+ + setIngredientSearch(v)} + placeholder="Search Ingredients" + /> +
-
- {/* Search Bar Row */} -
- - setIngredientSearch(v)} - placeholder="Search Ingredients" - /> - -
- - recipes={recipes} - playerRecipes={playerRecipes} - show={show} - setPromptOpen={setPromptOpen} - filterKnown={_filter} - filterSeason={_seasonFilter} - searchText={ingredientSearch} - /> -
-
-
-
+ + recipes={recipes} + playerRecipes={playerRecipes} + show={show} + setPromptOpen={setPromptOpen} + filterKnown={_filter} + filterSeason={_seasonFilter} + searchText={ingredientSearch} + /> + + +
+
+ )} {/* All Recipes Section */}

From af793767fb80877a924e8ad9f41f24b6b193cafd Mon Sep 17 00:00:00 2001 From: Robert Plante Date: Wed, 24 Dec 2025 00:22:35 -0500 Subject: [PATCH 06/25] Beta indicator and ingredient tracker tabs Used tabs for "All Recipes" and "Ingredient Tracker" as well as a prompt to show beta features to enable the "Ingredient Tracker" --- apps/stardew.app/src/pages/cooking.tsx | 468 ++++++++++++----------- apps/stardew.app/src/pages/crafting.tsx | 471 +++++++++++++----------- 2 files changed, 525 insertions(+), 414 deletions(-) diff --git a/apps/stardew.app/src/pages/cooking.tsx b/apps/stardew.app/src/pages/cooking.tsx index 4ddd2e0e..b22f535e 100644 --- a/apps/stardew.app/src/pages/cooking.tsx +++ b/apps/stardew.app/src/pages/cooking.tsx @@ -1,5 +1,6 @@ import { X } from "lucide-react"; import Head from "next/head"; +import Link from "next/link"; import achievements from "@/data/achievements.json"; import recipes from "@/data/cooking.json"; @@ -10,6 +11,7 @@ import type { Recipe } from "@/types/recipe"; import { useMultiSelect } from "@/contexts/multi-select-context"; import { usePlayers } from "@/contexts/players-context"; import { usePreferences } from "@/contexts/preferences-context"; +import { useRouter } from "next/router"; import { useEffect, useMemo, useState } from "react"; import { AchievementCard } from "@/components/cards/achievement-card"; @@ -26,10 +28,12 @@ import { } from "@/components/ui/accordion"; import { Button } from "@/components/ui/button"; import { Command, CommandInput } from "@/components/ui/command"; +import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { ToggleGroup, ToggleGroupItem } from "@/components/ui/toggle-group"; import { cn } from "@/lib/utils"; import { IngredientList } from "@/components/ingredient-list"; +import { NewItemBadge } from "@/components/new-item-badge"; import { IconClock } from "@tabler/icons-react"; const semverGte = require("semver/functions/gte"); @@ -70,6 +74,8 @@ const seasons = [ ]; export default function Cooking() { + const router = useRouter(); + const [open, setIsOpen] = useState(false); const [recipe, setRecipe] = useState(null); const [playerRecipes, setPlayerRecipes] = useState<{ @@ -78,6 +84,8 @@ export default function Cooking() { const [gameVersion, setGameVersion] = useState("1.6.0"); + const [activeTab, setActiveTab] = useState("recipes"); + const [search, setSearch] = useState(""); const [ingredientSearch, setIngredientSearch] = useState(""); const [_filter, setFilter] = useState("all"); @@ -86,7 +94,8 @@ export default function Cooking() { const [showPrompt, setPromptOpen] = useState(false); const { activePlayer } = usePlayers(); - const { show, toggleShow, showBetaFeatures } = usePreferences(); + const { show, toggleShow, showBetaFeatures, toggleBetaFeatures } = + usePreferences(); const { isMultiSelectMode, toggleMultiSelectMode, @@ -145,6 +154,33 @@ export default function Cooking() { return { completed, additionalDescription }; }; + useEffect(() => { + if (router.isReady) { + const tabParam = router.query.trackingTab; + if ( + typeof tabParam === "string" && + activeTab !== tabParam && + ["recipes", "ingredients"].includes(tabParam) + ) { + setActiveTab(tabParam); + } + } + }, [router.isReady, router.query.trackingTab, activeTab, router]); + + const handleTabChange = (value: string) => { + if (value == activeTab) { + return; + } + router.push( + { + pathname: router.pathname, + query: { ...router.query, trackingTab: value }, + }, + undefined, + { shallow: true }, + ); + }; + return ( <> @@ -206,222 +242,240 @@ export default function Cooking() {

- {/* Needed Ingredients Section */} - {showBetaFeatures && ( - -
- - - Needed Ingredients - - - {/* Filters and Actions Row */} -
-
- - setFilter(val === _filter ? "all" : val) - } - className="gap-2" - > - - - - Unknown ( - {reqs["Gourmet Chef"] - - (knownCount + cookedCount)} - ) - - - - - - Known ({knownCount}) - - - -
-
- -
-
- {/* Search Bar Row */} -
- - setIngredientSearch(v)} - placeholder="Search Ingredients" - /> - -
- - recipes={recipes} - playerRecipes={playerRecipes} - show={show} - setPromptOpen={setPromptOpen} - filterKnown={_filter} - filterSeason={_seasonFilter} - searchText={ingredientSearch} - /> -
-
-
-
- )} - {/* All Recipes Section */} -
-

- All Recipes -

- {/* Filters and Actions Row */} -
- - setFilter(val === _filter ? "all" : val) - } - className="gap-2" - > - - - - Unknown ({reqs["Gourmet Chef"] - (knownCount + cookedCount)} - ) - - - - - Known ({knownCount}) - - - - Cooked ({cookedCount}) - - -
- - {isMultiSelectMode && ( + + + + Unknown ( + {reqs["Gourmet Chef"] - (knownCount + cookedCount)}) + + + + + Known ({knownCount}) + + + + Cooked ({cookedCount}) + + +
- )} + {isMultiSelectMode && ( + + )} +
-
- {/* Search Bar Row */} -
- - setSearch(v)} - placeholder="Search Recipes" - /> - -
- {/* Cards */} -
- {Object.values(recipes) - .filter((r) => semverGte(gameVersion, r.minVersion)) - .filter((r) => { - if (!search) return true; - const name = objects[r.itemID as keyof typeof objects].name; - return name.toLowerCase().includes(search.toLowerCase()); - }) - .filter((r) => { - if (_filter === "0") { - // unknown recipes (not in playerRecipes) - return !( - r.itemID in playerRecipes && playerRecipes[r.itemID] > 0 - ); - } else if (_filter === "1") { - // known recipes (in playerRecipes) and not cooked - return ( - r.itemID in playerRecipes && playerRecipes[r.itemID] === 1 - ); - } else if (_filter === "2") { - // cooked recipes (in playerRecipes) and cooked - return ( - r.itemID in playerRecipes && playerRecipes[r.itemID] === 2 - ); - } else return true; // all recipes - }) - .map((f, index, filteredRecipes) => ( - + + setSearch(v)} + placeholder="Search Recipes" + /> + +
+ {/* Cards */} +
+ {Object.values(recipes) + .filter((r) => semverGte(gameVersion, r.minVersion)) + .filter((r) => { + if (!search) return true; + const name = objects[r.itemID as keyof typeof objects].name; + return name.toLowerCase().includes(search.toLowerCase()); + }) + .filter((r) => { + if (_filter === "0") { + // unknown recipes (not in playerRecipes) + return !( + r.itemID in playerRecipes && playerRecipes[r.itemID] > 0 + ); + } else if (_filter === "1") { + // known recipes (in playerRecipes) and not cooked + return ( + r.itemID in playerRecipes && + playerRecipes[r.itemID] === 1 + ); + } else if (_filter === "2") { + // cooked recipes (in playerRecipes) and cooked + return ( + r.itemID in playerRecipes && + playerRecipes[r.itemID] === 2 + ); + } else return true; // all recipes + }) + .map((f, index, filteredRecipes) => ( + + ))} +
+ + + {!showBetaFeatures && ( + <> +

Show Beta Features?

+

+ This feature is currently in beta and will likely change + often based on feedback. You can always disable beta + features again in your{" "} + + account settings + + . +

+ + + )} + {/* Needed Ingredients Section */} + {showBetaFeatures && ( + <> + {/* Filters and Actions Row */} +
+
+ + setFilter(val === _filter ? "all" : val) + } + className="gap-2" + > + + + + Unknown ( + {reqs["Gourmet Chef"] - (knownCount + cookedCount)}) + + + + + + Known ({knownCount}) + + + +
+
+ +
+
+ {/* Search Bar Row */} +
+ + setIngredientSearch(v)} + placeholder="Search Ingredients" + /> + +
+ + recipes={recipes} + playerRecipes={playerRecipes} show={show} - index={index} - allRecipes={filteredRecipes} + setPromptOpen={setPromptOpen} + filterKnown={_filter} + filterSeason={_seasonFilter} + searchText={ingredientSearch} /> - ))} - -
+ + )} + + (null); const [playerRecipes, setPlayerRecipes] = useState<{ @@ -78,6 +84,8 @@ export default function Crafting() { const [gameVersion, setGameVersion] = useState("1.6.0"); + const [activeTab, setActiveTab] = useState("recipes"); + const [search, setSearch] = useState(""); const [ingredientSearch, setIngredientSearch] = useState(""); const [_filter, setFilter] = useState("all"); @@ -86,7 +94,8 @@ export default function Crafting() { const [showPrompt, setPromptOpen] = useState(false); const { activePlayer } = usePlayers(); - const { show, toggleShow, showBetaFeatures } = usePreferences(); + const { show, toggleShow, showBetaFeatures, toggleBetaFeatures } = + usePreferences(); const { isMultiSelectMode, toggleMultiSelectMode, @@ -155,6 +164,33 @@ export default function Crafting() { } }; + useEffect(() => { + if (router.isReady) { + const tabParam = router.query.trackingTab; + if ( + typeof tabParam === "string" && + activeTab !== tabParam && + ["recipes", "ingredients"].includes(tabParam) + ) { + setActiveTab(tabParam); + } + } + }, [router.isReady, router.query.trackingTab, activeTab, router]); + + const handleTabChange = (value: string) => { + if (value == activeTab) { + return; + } + router.push( + { + pathname: router.pathname, + query: { ...router.query, trackingTab: value }, + }, + undefined, + { shallow: true }, + ); + }; + return ( <> @@ -216,222 +252,243 @@ export default function Crafting() { - {/* Needed Ingredients Section */} - {showBetaFeatures && ( - -
- - - Needed Ingredients - - - {/* Filters and Actions Row */} -
-
- - setFilter(val === _filter ? "all" : val) - } - className="gap-2" - > - - - - Unknown ( - {reqs["Craft Master"] - - (knownCount + craftedCount)} - ) - - - - - - Known ({knownCount}) - - - -
-
- -
-
- {/* Search Bar Row */} -
- - setIngredientSearch(v)} - placeholder="Search Ingredients" - /> - -
- - recipes={recipes} - playerRecipes={playerRecipes} - show={show} - setPromptOpen={setPromptOpen} - filterKnown={_filter} - filterSeason={_seasonFilter} - searchText={ingredientSearch} - /> -
-
-
-
- )} - {/* All Recipes Section */} -
-

- All Recipes -

- {/* Filters and Actions Row */} -
- - setFilter(val === _filter ? "all" : val) - } - className="gap-2" - > - - - - Unknown ( - {reqs["Craft Master"] - (knownCount + craftedCount)}) - - - - - Known ({knownCount}) - - - - Crafted ({craftedCount}) - - -
- - {isMultiSelectMode && ( + + + + Unknown ( + {reqs["Craft Master"] - (knownCount + craftedCount)}) + + + + + Known ({knownCount}) + + + + + Crafted ({craftedCount}) + + + +
- )} + {isMultiSelectMode && ( + + )} +
-
- {/* Search Bar Row */} -
- - setSearch(v)} - placeholder="Search Recipes" - /> - -
- {/* Cards */} -
- {Object.values(recipes) - .filter((r) => semverGte(gameVersion, r.minVersion)) - .filter((r) => { - if (!search) return true; - const name = getName(r.itemID, r.isBigCraftable); - return name.toLowerCase().includes(search.toLowerCase()); - }) - .filter((r) => { - if (_filter === "0") { - // unknown recipes (not in playerRecipes) - return !( - r.itemID in playerRecipes && playerRecipes[r.itemID] > 0 - ); - } else if (_filter === "1") { - // known recipes (in playerRecipes) and not cooked - return ( - r.itemID in playerRecipes && playerRecipes[r.itemID] === 1 - ); - } else if (_filter === "2") { - // cooked recipes (in playerRecipes) and cooked - return ( - r.itemID in playerRecipes && playerRecipes[r.itemID] === 2 - ); - } else return true; // all recipes - }) - .map((f, index, filteredRecipes) => ( - - key={f.itemID} - recipe={f} - status={ - f.itemID in playerRecipes ? playerRecipes[f.itemID] : 0 - } - setIsOpen={setIsOpen} - setObject={setRecipe} - setPromptOpen={setPromptOpen} + {/* Search Bar Row */} +
+ + setSearch(v)} + placeholder="Search Recipes" + /> + +
+ {/* Cards */} +
+ {Object.values(recipes) + .filter((r) => semverGte(gameVersion, r.minVersion)) + .filter((r) => { + if (!search) return true; + const name = getName(r.itemID, r.isBigCraftable); + return name.toLowerCase().includes(search.toLowerCase()); + }) + .filter((r) => { + if (_filter === "0") { + // unknown recipes (not in playerRecipes) + return !( + r.itemID in playerRecipes && playerRecipes[r.itemID] > 0 + ); + } else if (_filter === "1") { + // known recipes (in playerRecipes) and not cooked + return ( + r.itemID in playerRecipes && + playerRecipes[r.itemID] === 1 + ); + } else if (_filter === "2") { + // cooked recipes (in playerRecipes) and cooked + return ( + r.itemID in playerRecipes && + playerRecipes[r.itemID] === 2 + ); + } else return true; // all recipes + }) + .map((f, index, filteredRecipes) => ( + + key={f.itemID} + recipe={f} + status={ + f.itemID in playerRecipes ? playerRecipes[f.itemID] : 0 + } + setIsOpen={setIsOpen} + setObject={setRecipe} + setPromptOpen={setPromptOpen} + show={show} + index={index} + allRecipes={filteredRecipes as CraftingRecipe[]} + /> + ))} +
+ + + {!showBetaFeatures && ( + <> +

Show Beta Features?

+

+ This feature is currently in beta and will likely change + often based on feedback. You can always disable beta + features again in your{" "} + + account settings + + . +

+ + + )} + {/* Needed Ingredients Section */} + {showBetaFeatures && ( + <> + {/* Filters and Actions Row */} +
+
+ + setFilter(val === _filter ? "all" : val) + } + className="gap-2" + > + + + + Unknown ( + {reqs["Craft Master"] - (knownCount + craftedCount)} + ) + + + + + + Known ({knownCount}) + + + +
+
+ +
+
+ {/* Search Bar Row */} +
+ + setIngredientSearch(v)} + placeholder="Search Ingredients" + /> + +
+ + recipes={recipes} + playerRecipes={playerRecipes} show={show} - index={index} - allRecipes={filteredRecipes as CraftingRecipe[]} + setPromptOpen={setPromptOpen} + filterKnown={_filter} + filterSeason={_seasonFilter} + searchText={ingredientSearch} /> - ))} -
-
+ + )} + + Date: Mon, 29 Dec 2025 10:29:02 -0500 Subject: [PATCH 07/25] switch show beta features to a dialog component --- .../dialogs/beta-features-dialog.tsx | 57 ++++++++++++++++++ apps/stardew.app/src/pages/cooking.tsx | 58 +++++++++++-------- apps/stardew.app/src/pages/crafting.tsx | 58 +++++++++++-------- 3 files changed, 123 insertions(+), 50 deletions(-) create mode 100644 apps/stardew.app/src/components/dialogs/beta-features-dialog.tsx diff --git a/apps/stardew.app/src/components/dialogs/beta-features-dialog.tsx b/apps/stardew.app/src/components/dialogs/beta-features-dialog.tsx new file mode 100644 index 00000000..d0d03ea4 --- /dev/null +++ b/apps/stardew.app/src/components/dialogs/beta-features-dialog.tsx @@ -0,0 +1,57 @@ +import Link from "next/link"; + +import { Button } from "@/components/ui/button"; +import { + Dialog, + DialogClose, + DialogContent, + DialogDescription, + DialogFooter, + DialogHeader, + DialogTitle, +} from "@/components/ui/dialog"; + +interface Props { + open: boolean; + setOpen: (open: boolean) => void; + toggleBetaFeatures: () => boolean; +} + +export const BetaFeaturesDialog = ({ + open, + setOpen, + toggleBetaFeatures, +}: Props) => { + return ( + + + + Show Beta Features + + This feature is currently in beta and will likely change often + based on feedback. You can always disable beta features again in + your{" "} + + account settings + + . + + + + + + + + + + + + + ); +}; + diff --git a/apps/stardew.app/src/pages/cooking.tsx b/apps/stardew.app/src/pages/cooking.tsx index b22f535e..c0f8f758 100644 --- a/apps/stardew.app/src/pages/cooking.tsx +++ b/apps/stardew.app/src/pages/cooking.tsx @@ -1,6 +1,5 @@ import { X } from "lucide-react"; import Head from "next/head"; -import Link from "next/link"; import achievements from "@/data/achievements.json"; import recipes from "@/data/cooking.json"; @@ -16,6 +15,7 @@ import { useEffect, useMemo, useState } from "react"; import { AchievementCard } from "@/components/cards/achievement-card"; import { RecipeCard } from "@/components/cards/recipe-card"; +import { BetaFeaturesDialog } from "@/components/dialogs/beta-features-dialog"; import { BulkActionDialog } from "@/components/dialogs/bulk-action-dialog"; import { UnblurDialog } from "@/components/dialogs/unblur-dialog"; import { FilterSearch } from "@/components/filter-btn"; @@ -92,6 +92,7 @@ export default function Cooking() { const [bulkActionOpen, setBulkActionOpen] = useState(false); const [showPrompt, setPromptOpen] = useState(false); + const [betaDialogOpen, setBetaDialogOpen] = useState(false); const { activePlayer } = usePlayers(); const { show, toggleShow, showBetaFeatures, toggleBetaFeatures } = @@ -171,6 +172,11 @@ export default function Cooking() { if (value == activeTab) { return; } + // If trying to switch to ingredients tab and beta features aren't enabled, show dialog + if (value === "ingredients" && !showBetaFeatures) { + setBetaDialogOpen(true); + return; + } router.push( { pathname: router.pathname, @@ -243,14 +249,14 @@ export default function Cooking() { - + All Recipes Ingredient Tracker {/* All Recipes Section */} - + {/* Filters and Actions Row */}
{/* Cards */} -
diff --git a/apps/stardew.app/src/pages/crafting.tsx b/apps/stardew.app/src/pages/crafting.tsx index 7e92e3a2..588b69c2 100644 --- a/apps/stardew.app/src/pages/crafting.tsx +++ b/apps/stardew.app/src/pages/crafting.tsx @@ -401,78 +401,71 @@ export default function Crafting() { ))} + {/* Needed Ingredients Section */} - {/* Needed Ingredients Section */} - {showBetaFeatures && ( - <> - {/* Filters and Actions Row */} -
-
- - setFilter(val === _filter ? "all" : val) - } - className="gap-2" - > - - - - Unknown ( - {reqs["Craft Master"] - (knownCount + craftedCount)} - ) - - - - - - Known ({knownCount}) - - - -
-
- +
+ + setFilter(val === _filter ? "all" : val) + } + className="gap-2" + > + + -
-
- {/* Search Bar Row */} -
- - setIngredientSearch(v)} - placeholder="Search Ingredients" + + Unknown ( + {reqs["Craft Master"] - (knownCount + craftedCount)}) + + + + - -
- - recipes={recipes} - playerRecipes={playerRecipes} - show={show} - setPromptOpen={setPromptOpen} - filterKnown={_filter} - filterSeason={_seasonFilter} - searchText={ingredientSearch} + Known ({knownCount}) + + +
+
+ - - )} +
+ + {/* Search Bar Row */} +
+ + setIngredientSearch(v)} + placeholder="Search Ingredients" + /> + +
+ + recipes={recipes} + playerRecipes={playerRecipes} + show={show} + setPromptOpen={setPromptOpen} + filterKnown={_filter} + filterSeason={_seasonFilter} + searchText={ingredientSearch} + />
From 37f9bb724375b85dfd4f5e07e7a3df653a22f1a1 Mon Sep 17 00:00:00 2001 From: Robert Plante Date: Mon, 29 Dec 2025 18:34:12 -0500 Subject: [PATCH 10/25] Inlining `FishSheet` usage to `IngredientCard` The `BooleanCard` was the wrong thing to use in the `IngredientList` just to get the `FishSheet`. This unifies the usage paths for the list, but still opens the full panel for fish. --- .../src/components/cards/ingredient-card.tsx | 155 ++++++++++-------- .../dialogs/beta-features-dialog.tsx | 6 +- .../src/components/ingredient-list.tsx | 127 ++++++-------- 3 files changed, 136 insertions(+), 152 deletions(-) diff --git a/apps/stardew.app/src/components/cards/ingredient-card.tsx b/apps/stardew.app/src/components/cards/ingredient-card.tsx index ea9f7ae5..e3fdffc5 100644 --- a/apps/stardew.app/src/components/cards/ingredient-card.tsx +++ b/apps/stardew.app/src/components/cards/ingredient-card.tsx @@ -1,14 +1,18 @@ import Image from "next/image"; import bigCraftables from "@/data/big_craftables.json"; +import fishes from "@/data/fish.json"; import objects from "@/data/objects.json"; +import type { FishType } from "@/types/items"; + import { cn } from "@/lib/utils"; import { Dispatch, SetStateAction, useState } from "react"; import { deweaponize } from "@/lib/utils"; import { NewItemBadge } from "@/components/new-item-badge"; +import { FishSheet } from "@/components/sheets/fish-sheet"; import { Button } from "@/components/ui/button"; import { Dialog, @@ -142,85 +146,100 @@ export const IngredientCard = ({ show, setPromptOpen, }: Props) => { - const [open, setOpen] = useState(false); + const [dialogOpen, setDialogOpen] = useState(false); + const [fishOpen, setFishOpen] = useState(false); + + const item = GetItemDetails(itemID); + const isFish = itemID in fishes; + const fish = isFish + ? (fishes[itemID as keyof typeof fishes] as FishType) + : null; - let item = GetItemDetails(itemID); + const openChanged = isFish ? setFishOpen : setDialogOpen; return ( - - -
{ - if (item.minVersion === "1.6.0" && !show) { - e.preventDefault(); - setPromptOpen?.(true); - return; - } - }} - > - {item.minVersion === "1.6.0" && ( - - )} + <> + +
{ + if (item.minVersion === "1.6.0" && !show) { + e.preventDefault(); + setPromptOpen?.(true); + return; + } + }} > + {item.minVersion === "1.6.0" && ( + + )} +
+ {item.name} +
+

{`${item.name} (${count}x)`}

+

+ {item.description ?? ""} +

+
+
+ +
+
+ + {item.name} -
-

{`${item.name} (${count}x)`}

-

- {item.description ?? ""} -

-
-
- - -
- - - {item.name} - {item.name} - - {item.description} - - - - -
- -
-
-
-
+
+ +
+ + + + + ); }; diff --git a/apps/stardew.app/src/components/dialogs/beta-features-dialog.tsx b/apps/stardew.app/src/components/dialogs/beta-features-dialog.tsx index d0d03ea4..7a59239b 100644 --- a/apps/stardew.app/src/components/dialogs/beta-features-dialog.tsx +++ b/apps/stardew.app/src/components/dialogs/beta-features-dialog.tsx @@ -28,9 +28,8 @@ export const BetaFeaturesDialog = ({ Show Beta Features - This feature is currently in beta and will likely change often - based on feedback. You can always disable beta features again in - your{" "} + This feature is currently in beta and will likely change often based + on feedback. You can always disable beta features again in your{" "} ); }; - diff --git a/apps/stardew.app/src/components/ingredient-list.tsx b/apps/stardew.app/src/components/ingredient-list.tsx index af556afe..c5e285f1 100644 --- a/apps/stardew.app/src/components/ingredient-list.tsx +++ b/apps/stardew.app/src/components/ingredient-list.tsx @@ -1,19 +1,16 @@ import fishes from "@/data/fish.json"; import shipping_items from "@/data/shipping.json"; -import type { FishType } from "@/types/items"; import type { Recipe } from "@/types/recipe"; import { usePlayers } from "@/contexts/players-context"; import { Dispatch, SetStateAction, useEffect, useMemo, useState } from "react"; -import { BooleanCard } from "./cards/boolean-card"; import { IngredientCard, IngredientMinVersion, IngredientName, } from "./cards/ingredient-card"; -import { FishSheet } from "./sheets/fish-sheet"; const semverGte = require("semver/functions/gte"); @@ -102,9 +99,6 @@ export const IngredientList = ({ const { activePlayer } = usePlayers(); - const [open, setIsOpen] = useState(false); - const [fish, setFish] = useState(null); - useEffect(() => { if (activePlayer) { // set the minimum game version @@ -154,79 +148,52 @@ export const IngredientList = ({ }, [recipes, playerRecipes]); return ( - <> -
- {ingredientCounts - .filter((details) => - semverGte(gameVersion, IngredientMinVersion(details.id)), - ) - .filter((details) => { - if (!searchText) { - return true; - } - - return IngredientName(details.id) - .toLowerCase() - .includes(searchText.toLowerCase()); - }) - .filter((details) => { - if (filterSeason === "all") { - return true; - } - - return ( - details.seasons.length == 0 || - details.seasons.includes(filterSeason) - ); - }) - .map((details): [string, number] => { - switch (filterKnown) { - case "0": - return [details.id, details.counts[0]]; - case "1": - return [details.id, details.counts[1]]; - case "2": - return [details.id, 0]; - default: - return [details.id, details.counts[0] + details.counts[1]]; - } - }) - .filter(([_, count]) => count > 0) - .map(([id, count]) => { - if (id in fishes) { - const f = fishes[id as keyof typeof fishes]; - - return ( - - ); - } else { - return ( - - ); - } - })} -
- - +
+ {ingredientCounts + .filter((details) => + semverGte(gameVersion, IngredientMinVersion(details.id)), + ) + .filter((details) => { + if (!searchText) { + return true; + } + + return IngredientName(details.id) + .toLowerCase() + .includes(searchText.toLowerCase()); + }) + .filter((details) => { + if (filterSeason === "all") { + return true; + } + + return ( + details.seasons.length == 0 || + details.seasons.includes(filterSeason) + ); + }) + .map((details): [string, number] => { + switch (filterKnown) { + case "0": + return [details.id, details.counts[0]]; + case "1": + return [details.id, details.counts[1]]; + case "2": + return [details.id, 0]; + default: + return [details.id, details.counts[0] + details.counts[1]]; + } + }) + .filter(([_, count]) => count > 0) + .map(([id, count]) => ( + + ))} +
); }; From 98711818cb7d728a339c71978ca5b691eeddba5f Mon Sep 17 00:00:00 2001 From: Jack LaFond Date: Mon, 6 Apr 2026 12:50:33 -0400 Subject: [PATCH 11/25] major structural change: move away from monorepo + move to Cloudflare Workers/OpenNext + remove Sentry observability --- .../.eslintrc.json => .eslintrc.json | 0 .gitignore | 12 +- apps/stardew.app/next.config.js | 77 - apps/stardew.app/package.json | 85 - apps/stardew.app/sentry.edge.config.ts | 19 - apps/stardew.app/sentry.server.config.ts | 18 - .../src/components/preset-selector.tsx | 101 - .../src/contexts/players-context.tsx | 289 --- apps/stardew.app/src/db/index.ts | 11 - .../stardew.app/src/instrumentation-client.ts | 35 - apps/stardew.app/src/instrumentation.ts | 13 - .../src/pages/api/oauth/callback.ts | 215 -- .../src/pages/api/saves/[playerId].ts | 62 - apps/stardew.app/tsconfig.json | 30 - bun.lock | 2186 +++++++++++++++++ bun.lockb | Bin 400504 -> 0 bytes drizzle.config.ts | 6 +- next.config.js | 52 + open-next.config.ts | 3 + package.json | 110 +- .../postcss.config.js => postcss.config.js | 0 ...prettier.config.mjs => prettier.config.mjs | 0 {apps/stardew.app/public => public}/404.png | Bin .../public => public}/construction.gif | Bin .../stardew.app/public => public}/create.png | Bin {apps/stardew.app/public => public}/dance.gif | Bin .../stardew.app/public => public}/discord.png | Bin .../stardew.app/public => public}/favicon.png | Bin .../fonts/3-by-5-pixel-font.woff2 | Bin .../stardew.app/public => public}/github.png | Bin .../public => public}/images/notes/1004.webp | Bin .../public => public}/images/notes/1006.webp | Bin .../public => public}/images/notes/1010.webp | Bin .../public => public}/images/notes/11.webp | Bin .../public => public}/images/notes/16.webp | Bin .../public => public}/images/notes/17.webp | Bin .../public => public}/images/notes/18.webp | Bin .../public => public}/images/notes/19.webp | Bin .../public => public}/images/notes/20.webp | Bin .../public => public}/images/notes/21.webp | Bin .../stardew.app/public => public}/sitemap.xml | 0 .../stardew.app/public => public}/upload.png | Bin .../stardew.app/public => public}/youtube.png | Bin scripts/opennext.mjs | 32 + .../components/blurred-preview.tsx | 0 .../components/cards/achievement-card.tsx | 0 .../components/cards/animal-card.tsx | 0 .../components/cards/boolean-card.tsx | 2 +- .../components/cards/bundle-item-card.tsx | 2 +- .../components/cards/dialog-card.tsx | 2 +- .../components/cards/horse-card.tsx | 0 .../components/cards/info-card.tsx | 0 .../components/cards/ingredient-card.tsx | 0 .../components/cards/input-card.tsx | 2 +- .../components/cards/perfection-card.tsx | 0 .../components/cards/recipe-card.tsx | 2 +- .../components/cards/shipping-card.tsx | 2 +- .../components/cards/villager-card.tsx | 8 +- .../src => src}/components/construction.tsx | 0 .../components/createPlayerRedirect.tsx | 0 .../dialogs/beta-features-dialog.tsx | 0 .../components/dialogs/bugreport-dialog.tsx | 13 +- .../components/dialogs/bulk-action-dialog.tsx | 2 +- .../components/dialogs/changelog-dialog.tsx | 0 .../components/dialogs/credits-dialog.tsx | 0 .../components/dialogs/deletion-dialog.tsx | 69 +- .../components/dialogs/feedback-dialog.tsx | 8 +- .../components/dialogs/login-dialog.tsx | 0 .../components/dialogs/unblur-dialog.tsx | 0 .../components/dialogs/upload-dialog.tsx | 0 .../src => src}/components/error-boundary.tsx | 2 +- .../src => src}/components/filter-btn.tsx | 0 .../components/ingredient-list.tsx | 0 .../src => src}/components/new-item-badge.tsx | 0 .../src => src}/components/percentage.tsx | 0 src/components/preset-selector.tsx | 139 ++ .../components/sheets/bundle-sheet.tsx | 4 +- .../components/sheets/fish-sheet.tsx | 4 +- .../components/sheets/mobile-nav.tsx | 33 +- .../components/sheets/museum-sheet.tsx | 2 +- .../components/sheets/recipe-sheet.tsx | 0 .../components/sheets/villager-sheet.tsx | 0 .../src => src}/components/sidebar.tsx | 0 .../src => src}/components/theme-provider.tsx | 6 +- .../src => src}/components/top-bar.tsx | 39 +- .../src => src}/components/ui/accordion.tsx | 0 .../src => src}/components/ui/avatar.tsx | 0 .../src => src}/components/ui/badge.tsx | 0 .../src => src}/components/ui/button.tsx | 0 .../src => src}/components/ui/card.tsx | 0 .../src => src}/components/ui/checkbox.tsx | 0 .../src => src}/components/ui/command.tsx | 2 +- .../components/ui/context-menu.tsx | 0 .../src => src}/components/ui/dialog.tsx | 0 .../src => src}/components/ui/drawer.tsx | 0 .../components/ui/dropdown-menu.tsx | 0 .../src => src}/components/ui/form.tsx | 0 .../src => src}/components/ui/input.tsx | 0 .../components/ui/item-with-overlay.tsx | 0 .../src => src}/components/ui/label.tsx | 0 .../src => src}/components/ui/popover.tsx | 0 .../src => src}/components/ui/progress.tsx | 11 +- .../src => src}/components/ui/scroll-area.tsx | 0 .../src => src}/components/ui/select.tsx | 0 .../src => src}/components/ui/separator.tsx | 0 .../src => src}/components/ui/sheet.tsx | 0 .../src => src}/components/ui/skeleton.tsx | 0 .../src => src}/components/ui/switch.tsx | 0 .../src => src}/components/ui/tabs.tsx | 0 .../src => src}/components/ui/textarea.tsx | 0 .../src => src}/components/ui/toast.tsx | 0 .../components/ui/toggle-group.tsx | 0 .../src => src}/components/ui/toggle.tsx | 0 .../src => src}/components/ui/tooltip.tsx | 0 .../contexts/multi-select-context.tsx | 0 src/contexts/players-context.tsx | 256 ++ .../contexts/preferences-context.tsx | 0 .../src => src}/data/achievements.json | 0 .../src => src}/data/artifacts.json | 0 .../src => src}/data/big_craftables.json | 0 .../stardew.app/src => src}/data/bundles.json | 0 .../stardew.app/src => src}/data/cooking.json | 0 .../src => src}/data/cooking_ingredients.json | 0 .../src => src}/data/crafting.json | 0 {apps/stardew.app/src => src}/data/fish.json | 0 .../src => src}/data/island_upgrades.json | 0 .../src => src}/data/monsters.json | 0 .../stardew.app/src => src}/data/museum.json | 0 .../stardew.app/src => src}/data/objects.json | 0 .../stardew.app/src => src}/data/powers.json | 0 .../stardew.app/src => src}/data/raccoon.json | 0 .../src => src}/data/secret_notes.json | 0 .../src => src}/data/shipping.json | 0 .../src => src}/data/villagers.json | 0 .../stardew.app/src => src}/data/walnuts.json | 0 src/db/index.ts | 28 + {apps/stardew.app/src => src}/db/migration.ts | 2 +- {apps/stardew.app/src => src}/db/schema.ts | 0 .../drizzle/0000_spooky_arachne.sql | 0 .../drizzle/0001_futuristic_bullseye.sql | 0 .../drizzle/meta/0000_snapshot.json | 0 .../drizzle/meta/0001_snapshot.json | 0 .../src => src}/drizzle/meta/_journal.json | 0 src/drizzle/relations.ts | 3 + src/drizzle/schema.ts | 44 + src/instrumentation.ts | 1 + src/lib/client-env.ts | 35 + .../stardew.app/src => src}/lib/constants.ts | 0 src/lib/cookies.ts | 70 + .../src => src}/lib/cs-random.d.ts | 0 .../stardew.app/src => src}/lib/cs-random.js | 0 src/lib/fetch.ts | 9 + {apps/stardew.app/src => src}/lib/file.ts | 0 .../src => src}/lib/parsers/animals.ts | 0 .../src => src}/lib/parsers/bundles.ts | 0 .../src => src}/lib/parsers/cooking.ts | 0 .../src => src}/lib/parsers/crafting.ts | 0 .../src => src}/lib/parsers/fishing.ts | 0 .../src => src}/lib/parsers/general.ts | 0 .../src => src}/lib/parsers/index.ts | 0 .../src => src}/lib/parsers/monsters.ts | 0 .../src => src}/lib/parsers/museum.ts | 0 .../src => src}/lib/parsers/notes.ts | 0 .../src => src}/lib/parsers/perfection.ts | 0 .../src => src}/lib/parsers/powers.ts | 0 .../src => src}/lib/parsers/raccoon.ts | 0 .../src => src}/lib/parsers/rarecrows.ts | 0 .../src => src}/lib/parsers/scraps.ts | 0 .../src => src}/lib/parsers/shipping.ts | 0 .../src => src}/lib/parsers/social.ts | 0 .../src => src}/lib/parsers/walnuts.ts | 0 src/lib/player-patch.ts | 42 + {apps/stardew.app/src => src}/lib/utils.ts | 0 {apps/stardew.app/src => src}/pages/404.tsx | 0 {apps/stardew.app/src => src}/pages/_app.tsx | 6 +- .../src => src}/pages/_document.tsx | 0 .../stardew.app/src => src}/pages/_error.tsx | 2 - .../stardew.app/src => src}/pages/account.tsx | 34 +- .../stardew.app/src => src}/pages/animals.tsx | 0 .../stardew.app/src => src}/pages/api/bug.ts | 13 +- .../src => src}/pages/api/feedback.ts | 0 .../pages/api/index.ts => src/pages/api/me.ts | 22 +- src/pages/api/oauth/callback.ts | 233 ++ .../src => src}/pages/api/oauth/index.ts | 17 +- src/pages/api/saves/[playerId].ts | 109 + .../src => src}/pages/api/saves/index.ts | 139 +- .../stardew.app/src => src}/pages/bundles.tsx | 11 +- .../stardew.app/src => src}/pages/cooking.tsx | 0 .../src => src}/pages/crafting.tsx | 0 .../src => src}/pages/editor/create.tsx | 9 +- .../src => src}/pages/editor/edit.tsx | 0 .../stardew.app/src => src}/pages/farmer.tsx | 0 .../stardew.app/src => src}/pages/fishing.tsx | 2 +- {apps/stardew.app/src => src}/pages/index.tsx | 0 .../src => src}/pages/island/scraps.tsx | 4 +- .../src => src}/pages/island/upgrades.tsx | 4 +- .../src => src}/pages/island/walnuts.tsx | 2 +- .../stardew.app/src => src}/pages/museum.tsx | 2 +- {apps/stardew.app/src => src}/pages/notes.tsx | 4 +- .../src => src}/pages/perfection.tsx | 0 .../src => src}/pages/rarecrows.tsx | 2 +- .../src => src}/pages/relationships.tsx | 0 .../src => src}/pages/shipping.tsx | 0 .../stardew.app/src => src}/pages/skills.tsx | 0 .../src => src}/pages/whats-new.tsx | 0 .../src => src}/styles/globals.css | 0 .../stardew.app/src => src}/types/bundles.ts | 0 src/types/css.d.ts | 1 + {apps/stardew.app/src => src}/types/data.ts | 0 {apps/stardew.app/src => src}/types/items.ts | 0 {apps/stardew.app/src => src}/types/recipe.ts | 0 .../tailwind.config.js => tailwind.config.js | 0 tsconfig.json | 42 + turbo.json | 76 - wrangler.jsonc | 34 + 215 files changed, 3642 insertions(+), 1326 deletions(-) rename apps/stardew.app/.eslintrc.json => .eslintrc.json (100%) delete mode 100644 apps/stardew.app/next.config.js delete mode 100644 apps/stardew.app/package.json delete mode 100644 apps/stardew.app/sentry.edge.config.ts delete mode 100644 apps/stardew.app/sentry.server.config.ts delete mode 100644 apps/stardew.app/src/components/preset-selector.tsx delete mode 100644 apps/stardew.app/src/contexts/players-context.tsx delete mode 100644 apps/stardew.app/src/db/index.ts delete mode 100644 apps/stardew.app/src/instrumentation-client.ts delete mode 100644 apps/stardew.app/src/instrumentation.ts delete mode 100644 apps/stardew.app/src/pages/api/oauth/callback.ts delete mode 100644 apps/stardew.app/src/pages/api/saves/[playerId].ts delete mode 100644 apps/stardew.app/tsconfig.json create mode 100644 bun.lock delete mode 100755 bun.lockb create mode 100644 next.config.js create mode 100644 open-next.config.ts rename apps/stardew.app/postcss.config.js => postcss.config.js (100%) rename apps/stardew.app/prettier.config.mjs => prettier.config.mjs (100%) rename {apps/stardew.app/public => public}/404.png (100%) rename {apps/stardew.app/public => public}/construction.gif (100%) rename {apps/stardew.app/public => public}/create.png (100%) rename {apps/stardew.app/public => public}/dance.gif (100%) rename {apps/stardew.app/public => public}/discord.png (100%) rename {apps/stardew.app/public => public}/favicon.png (100%) rename {apps/stardew.app/public => public}/fonts/3-by-5-pixel-font.woff2 (100%) rename {apps/stardew.app/public => public}/github.png (100%) rename {apps/stardew.app/public => public}/images/notes/1004.webp (100%) rename {apps/stardew.app/public => public}/images/notes/1006.webp (100%) rename {apps/stardew.app/public => public}/images/notes/1010.webp (100%) rename {apps/stardew.app/public => public}/images/notes/11.webp (100%) rename {apps/stardew.app/public => public}/images/notes/16.webp (100%) rename {apps/stardew.app/public => public}/images/notes/17.webp (100%) rename {apps/stardew.app/public => public}/images/notes/18.webp (100%) rename {apps/stardew.app/public => public}/images/notes/19.webp (100%) rename {apps/stardew.app/public => public}/images/notes/20.webp (100%) rename {apps/stardew.app/public => public}/images/notes/21.webp (100%) rename {apps/stardew.app/public => public}/sitemap.xml (100%) rename {apps/stardew.app/public => public}/upload.png (100%) rename {apps/stardew.app/public => public}/youtube.png (100%) create mode 100644 scripts/opennext.mjs rename {apps/stardew.app/src => src}/components/blurred-preview.tsx (100%) rename {apps/stardew.app/src => src}/components/cards/achievement-card.tsx (100%) rename {apps/stardew.app/src => src}/components/cards/animal-card.tsx (100%) rename {apps/stardew.app/src => src}/components/cards/boolean-card.tsx (99%) rename {apps/stardew.app/src => src}/components/cards/bundle-item-card.tsx (99%) rename {apps/stardew.app/src => src}/components/cards/dialog-card.tsx (99%) rename {apps/stardew.app/src => src}/components/cards/horse-card.tsx (100%) rename {apps/stardew.app/src => src}/components/cards/info-card.tsx (100%) rename {apps/stardew.app/src => src}/components/cards/ingredient-card.tsx (100%) rename {apps/stardew.app/src => src}/components/cards/input-card.tsx (99%) rename {apps/stardew.app/src => src}/components/cards/perfection-card.tsx (100%) rename {apps/stardew.app/src => src}/components/cards/recipe-card.tsx (99%) rename {apps/stardew.app/src => src}/components/cards/shipping-card.tsx (99%) rename {apps/stardew.app/src => src}/components/cards/villager-card.tsx (97%) rename {apps/stardew.app/src => src}/components/construction.tsx (100%) rename {apps/stardew.app/src => src}/components/createPlayerRedirect.tsx (100%) rename {apps/stardew.app/src => src}/components/dialogs/beta-features-dialog.tsx (100%) rename {apps/stardew.app/src => src}/components/dialogs/bugreport-dialog.tsx (94%) rename {apps/stardew.app/src => src}/components/dialogs/bulk-action-dialog.tsx (99%) rename {apps/stardew.app/src => src}/components/dialogs/changelog-dialog.tsx (100%) rename {apps/stardew.app/src => src}/components/dialogs/credits-dialog.tsx (100%) rename {apps/stardew.app/src => src}/components/dialogs/deletion-dialog.tsx (71%) rename {apps/stardew.app/src => src}/components/dialogs/feedback-dialog.tsx (96%) rename {apps/stardew.app/src => src}/components/dialogs/login-dialog.tsx (100%) rename {apps/stardew.app/src => src}/components/dialogs/unblur-dialog.tsx (100%) rename {apps/stardew.app/src => src}/components/dialogs/upload-dialog.tsx (100%) rename {apps/stardew.app/src => src}/components/error-boundary.tsx (95%) rename {apps/stardew.app/src => src}/components/filter-btn.tsx (100%) rename {apps/stardew.app/src => src}/components/ingredient-list.tsx (100%) rename {apps/stardew.app/src => src}/components/new-item-badge.tsx (100%) rename {apps/stardew.app/src => src}/components/percentage.tsx (100%) create mode 100644 src/components/preset-selector.tsx rename {apps/stardew.app/src => src}/components/sheets/bundle-sheet.tsx (99%) rename {apps/stardew.app/src => src}/components/sheets/fish-sheet.tsx (99%) rename {apps/stardew.app/src => src}/components/sheets/mobile-nav.tsx (92%) rename {apps/stardew.app/src => src}/components/sheets/museum-sheet.tsx (99%) rename {apps/stardew.app/src => src}/components/sheets/recipe-sheet.tsx (100%) rename {apps/stardew.app/src => src}/components/sheets/villager-sheet.tsx (100%) rename {apps/stardew.app/src => src}/components/sidebar.tsx (100%) rename {apps/stardew.app/src => src}/components/theme-provider.tsx (53%) rename {apps/stardew.app/src => src}/components/top-bar.tsx (85%) rename {apps/stardew.app/src => src}/components/ui/accordion.tsx (100%) rename {apps/stardew.app/src => src}/components/ui/avatar.tsx (100%) rename {apps/stardew.app/src => src}/components/ui/badge.tsx (100%) rename {apps/stardew.app/src => src}/components/ui/button.tsx (100%) rename {apps/stardew.app/src => src}/components/ui/card.tsx (100%) rename {apps/stardew.app/src => src}/components/ui/checkbox.tsx (100%) rename {apps/stardew.app/src => src}/components/ui/command.tsx (96%) rename {apps/stardew.app/src => src}/components/ui/context-menu.tsx (100%) rename {apps/stardew.app/src => src}/components/ui/dialog.tsx (100%) rename {apps/stardew.app/src => src}/components/ui/drawer.tsx (100%) rename {apps/stardew.app/src => src}/components/ui/dropdown-menu.tsx (100%) rename {apps/stardew.app/src => src}/components/ui/form.tsx (100%) rename {apps/stardew.app/src => src}/components/ui/input.tsx (100%) rename {apps/stardew.app/src => src}/components/ui/item-with-overlay.tsx (100%) rename {apps/stardew.app/src => src}/components/ui/label.tsx (100%) rename {apps/stardew.app/src => src}/components/ui/popover.tsx (100%) rename {apps/stardew.app/src => src}/components/ui/progress.tsx (75%) rename {apps/stardew.app/src => src}/components/ui/scroll-area.tsx (100%) rename {apps/stardew.app/src => src}/components/ui/select.tsx (100%) rename {apps/stardew.app/src => src}/components/ui/separator.tsx (100%) rename {apps/stardew.app/src => src}/components/ui/sheet.tsx (100%) rename {apps/stardew.app/src => src}/components/ui/skeleton.tsx (100%) rename {apps/stardew.app/src => src}/components/ui/switch.tsx (100%) rename {apps/stardew.app/src => src}/components/ui/tabs.tsx (100%) rename {apps/stardew.app/src => src}/components/ui/textarea.tsx (100%) rename {apps/stardew.app/src => src}/components/ui/toast.tsx (100%) rename {apps/stardew.app/src => src}/components/ui/toggle-group.tsx (100%) rename {apps/stardew.app/src => src}/components/ui/toggle.tsx (100%) rename {apps/stardew.app/src => src}/components/ui/tooltip.tsx (100%) rename {apps/stardew.app/src => src}/contexts/multi-select-context.tsx (100%) create mode 100644 src/contexts/players-context.tsx rename {apps/stardew.app/src => src}/contexts/preferences-context.tsx (100%) rename {apps/stardew.app/src => src}/data/achievements.json (100%) rename {apps/stardew.app/src => src}/data/artifacts.json (100%) rename {apps/stardew.app/src => src}/data/big_craftables.json (100%) rename {apps/stardew.app/src => src}/data/bundles.json (100%) rename {apps/stardew.app/src => src}/data/cooking.json (100%) rename {apps/stardew.app/src => src}/data/cooking_ingredients.json (100%) rename {apps/stardew.app/src => src}/data/crafting.json (100%) rename {apps/stardew.app/src => src}/data/fish.json (100%) rename {apps/stardew.app/src => src}/data/island_upgrades.json (100%) rename {apps/stardew.app/src => src}/data/monsters.json (100%) rename {apps/stardew.app/src => src}/data/museum.json (100%) rename {apps/stardew.app/src => src}/data/objects.json (100%) rename {apps/stardew.app/src => src}/data/powers.json (100%) rename {apps/stardew.app/src => src}/data/raccoon.json (100%) rename {apps/stardew.app/src => src}/data/secret_notes.json (100%) rename {apps/stardew.app/src => src}/data/shipping.json (100%) rename {apps/stardew.app/src => src}/data/villagers.json (100%) rename {apps/stardew.app/src => src}/data/walnuts.json (100%) create mode 100644 src/db/index.ts rename {apps/stardew.app/src => src}/db/migration.ts (95%) rename {apps/stardew.app/src => src}/db/schema.ts (100%) rename {apps/stardew.app/src => src}/drizzle/0000_spooky_arachne.sql (100%) rename {apps/stardew.app/src => src}/drizzle/0001_futuristic_bullseye.sql (100%) rename {apps/stardew.app/src => src}/drizzle/meta/0000_snapshot.json (100%) rename {apps/stardew.app/src => src}/drizzle/meta/0001_snapshot.json (100%) rename {apps/stardew.app/src => src}/drizzle/meta/_journal.json (100%) create mode 100644 src/drizzle/relations.ts create mode 100644 src/drizzle/schema.ts create mode 100644 src/instrumentation.ts create mode 100644 src/lib/client-env.ts rename {apps/stardew.app/src => src}/lib/constants.ts (100%) create mode 100644 src/lib/cookies.ts rename {apps/stardew.app/src => src}/lib/cs-random.d.ts (100%) rename {apps/stardew.app/src => src}/lib/cs-random.js (100%) create mode 100644 src/lib/fetch.ts rename {apps/stardew.app/src => src}/lib/file.ts (100%) rename {apps/stardew.app/src => src}/lib/parsers/animals.ts (100%) rename {apps/stardew.app/src => src}/lib/parsers/bundles.ts (100%) rename {apps/stardew.app/src => src}/lib/parsers/cooking.ts (100%) rename {apps/stardew.app/src => src}/lib/parsers/crafting.ts (100%) rename {apps/stardew.app/src => src}/lib/parsers/fishing.ts (100%) rename {apps/stardew.app/src => src}/lib/parsers/general.ts (100%) rename {apps/stardew.app/src => src}/lib/parsers/index.ts (100%) rename {apps/stardew.app/src => src}/lib/parsers/monsters.ts (100%) rename {apps/stardew.app/src => src}/lib/parsers/museum.ts (100%) rename {apps/stardew.app/src => src}/lib/parsers/notes.ts (100%) rename {apps/stardew.app/src => src}/lib/parsers/perfection.ts (100%) rename {apps/stardew.app/src => src}/lib/parsers/powers.ts (100%) rename {apps/stardew.app/src => src}/lib/parsers/raccoon.ts (100%) rename {apps/stardew.app/src => src}/lib/parsers/rarecrows.ts (100%) rename {apps/stardew.app/src => src}/lib/parsers/scraps.ts (100%) rename {apps/stardew.app/src => src}/lib/parsers/shipping.ts (100%) rename {apps/stardew.app/src => src}/lib/parsers/social.ts (100%) rename {apps/stardew.app/src => src}/lib/parsers/walnuts.ts (100%) create mode 100644 src/lib/player-patch.ts rename {apps/stardew.app/src => src}/lib/utils.ts (100%) rename {apps/stardew.app/src => src}/pages/404.tsx (100%) rename {apps/stardew.app/src => src}/pages/_app.tsx (94%) rename {apps/stardew.app/src => src}/pages/_document.tsx (100%) rename {apps/stardew.app/src => src}/pages/_error.tsx (77%) rename {apps/stardew.app/src => src}/pages/account.tsx (93%) rename {apps/stardew.app/src => src}/pages/animals.tsx (100%) rename {apps/stardew.app/src => src}/pages/api/bug.ts (93%) rename {apps/stardew.app/src => src}/pages/api/feedback.ts (100%) rename apps/stardew.app/src/pages/api/index.ts => src/pages/api/me.ts (62%) create mode 100644 src/pages/api/oauth/callback.ts rename {apps/stardew.app/src => src}/pages/api/oauth/index.ts (54%) create mode 100644 src/pages/api/saves/[playerId].ts rename {apps/stardew.app/src => src}/pages/api/saves/index.ts (63%) rename {apps/stardew.app/src => src}/pages/bundles.tsx (98%) rename {apps/stardew.app/src => src}/pages/cooking.tsx (100%) rename {apps/stardew.app/src => src}/pages/crafting.tsx (100%) rename {apps/stardew.app/src => src}/pages/editor/create.tsx (98%) rename {apps/stardew.app/src => src}/pages/editor/edit.tsx (100%) rename {apps/stardew.app/src => src}/pages/farmer.tsx (100%) rename {apps/stardew.app/src => src}/pages/fishing.tsx (99%) rename {apps/stardew.app/src => src}/pages/index.tsx (100%) rename {apps/stardew.app/src => src}/pages/island/scraps.tsx (97%) rename {apps/stardew.app/src => src}/pages/island/upgrades.tsx (97%) rename {apps/stardew.app/src => src}/pages/island/walnuts.tsx (99%) rename {apps/stardew.app/src => src}/pages/museum.tsx (99%) rename {apps/stardew.app/src => src}/pages/notes.tsx (96%) rename {apps/stardew.app/src => src}/pages/perfection.tsx (100%) rename {apps/stardew.app/src => src}/pages/rarecrows.tsx (99%) rename {apps/stardew.app/src => src}/pages/relationships.tsx (100%) rename {apps/stardew.app/src => src}/pages/shipping.tsx (100%) rename {apps/stardew.app/src => src}/pages/skills.tsx (100%) rename {apps/stardew.app/src => src}/pages/whats-new.tsx (100%) rename {apps/stardew.app/src => src}/styles/globals.css (100%) rename {apps/stardew.app/src => src}/types/bundles.ts (100%) create mode 100644 src/types/css.d.ts rename {apps/stardew.app/src => src}/types/data.ts (100%) rename {apps/stardew.app/src => src}/types/items.ts (100%) rename {apps/stardew.app/src => src}/types/recipe.ts (100%) rename apps/stardew.app/tailwind.config.js => tailwind.config.js (100%) create mode 100644 tsconfig.json delete mode 100644 turbo.json create mode 100644 wrangler.jsonc diff --git a/apps/stardew.app/.eslintrc.json b/.eslintrc.json similarity index 100% rename from apps/stardew.app/.eslintrc.json rename to .eslintrc.json diff --git a/.gitignore b/.gitignore index 3f7937ec..4dbea58f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,13 @@ node_modules .next/ +.open-next/ +.wrangler/ out/ .DS_Store *.pem npm-debug.log* .env +.env.* .vercel *.tsbuildinfo next-env.d.ts @@ -12,5 +15,10 @@ next-env.d.ts venv .venv __pycache__/ -.sentryclirc -.env.sentry-build-plugin +.env*.local +.dev.vars* +AGENTS.md +cloudflare-env.d.ts +.agents/ +.claude/ +dist/ diff --git a/apps/stardew.app/next.config.js b/apps/stardew.app/next.config.js deleted file mode 100644 index 2d7460f8..00000000 --- a/apps/stardew.app/next.config.js +++ /dev/null @@ -1,77 +0,0 @@ -/** @type {import('next').NextConfig} */ -const nextConfig = { - reactStrictMode: true, - redirects: async () => { - return [ - { - source: "/discord", - destination: "https://discord.gg/9K3TgZaPkT", - permanent: true, - }, - { - source: "/github", - destination: "https://github.com/communitycenter/stardew.app", - permanent: true, - }, - { - source: "/social", - destination: "/relationships", - permanent: true, - }, - { - source: "/artifacts", - destination: "/museum", - permanent: true, - }, - ]; - }, - images: { - unoptimized: true, - remotePatterns: [ - { - protocol: "https", - hostname: "stardewvalleywiki.com", - port: "", - pathname: "/mediawiki/images/**", - }, - ], - }, -}; - -// Injected content via Sentry wizard below - -const { withSentryConfig } = require("@sentry/nextjs"); - -module.exports = withSentryConfig(module.exports, { - // For all available options, see: - // https://www.npmjs.com/package/@sentry/webpack-plugin#options - - org: "communitycenter", - project: "stardewapp", - - // Only print logs for uploading source maps in CI - silent: !process.env.CI, - - // For all available options, see: - // https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/ - - // Upload a larger set of source maps for prettier stack traces (increases build time) - widenClientFileUpload: true, - - // Route browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers. - // This can increase your server load as well as your hosting bill. - // Note: Check that the configured route will not match with your Next.js middleware, otherwise reporting of client- - // side errors will fail. - tunnelRoute: "/monitoring", - - // Automatically tree-shake Sentry logger statements to reduce bundle size - disableLogger: true, - - // Enables automatic instrumentation of Vercel Cron Monitors. (Does not yet work with App Router route handlers.) - // See the following for more information: - // https://docs.sentry.io/product/crons/ - // https://vercel.com/docs/cron-jobs - automaticVercelMonitors: true, -}); - -module.exports = nextConfig; diff --git a/apps/stardew.app/package.json b/apps/stardew.app/package.json deleted file mode 100644 index 8195768c..00000000 --- a/apps/stardew.app/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "name": "stardew.app", - "version": "2.3.0", - "private": true, - "scripts": { - "build": "next build", - "build:turbo": "next build --turbopack", - "clean": "rimraf .next .turbo", - "dev": "next dev", - "dev:turbo": "next dev --turbopack", - "format": "bun run prettier . --check", - "lint": "next lint", - "start": "next start", - "typecheck": "tsgo --noEmit" - }, - "dependencies": { - "@heroicons/react": "^2.0.18", - "@hookform/resolvers": "^3.9.1", - "@marsidev/react-turnstile": "^0.5.3", - "@next/bundle-analyzer": "^14.0.4", - "@planetscale/database": "^1.10.0", - "@radix-ui/react-accordion": "^1.1.2", - "@radix-ui/react-avatar": "^1.0.3", - "@radix-ui/react-checkbox": "^1.0.4", - "@radix-ui/react-context-menu": "^2.1.4", - "@radix-ui/react-dialog": "^1.0.5", - "@radix-ui/react-dropdown-menu": "^2.0.5", - "@radix-ui/react-icons": "^1.3.0", - "@radix-ui/react-label": "^2.0.2", - "@radix-ui/react-popover": "^1.0.6", - "@radix-ui/react-progress": "^1.0.3", - "@radix-ui/react-scroll-area": "^1.0.4", - "@radix-ui/react-select": "^1.2.2", - "@radix-ui/react-separator": "^1.0.3", - "@radix-ui/react-slot": "^1.0.2", - "@radix-ui/react-switch": "^1.0.3", - "@radix-ui/react-tabs": "^1.0.4", - "@radix-ui/react-toast": "^1.1.4", - "@radix-ui/react-toggle": "^1.1.9", - "@radix-ui/react-toggle-group": "^1.1.10", - "@radix-ui/react-tooltip": "^1.0.6", - "@react-hook/media-query": "^1.1.1", - "@sentry/nextjs": "^10", - "@tabler/icons-react": "^2.30.0", - "@types/node": "20.4.0", - "@types/react": "18.2.14", - "@types/react-dom": "18.2.6", - "@types/xxhashjs": "^0.2.4", - "autoprefixer": "10.4.14", - "axios": "^1.7.2", - "class-variance-authority": "^0.6.1", - "clsx": "^1.2.1", - "cmdk": "^0.2.0", - "cookies-next": "^2.1.2", - "drizzle-orm": "^0.31.2", - "eslint": "8.44.0", - "eslint-config-next": "13.4.12", - "fast-xml-parser": "^4.2.6", - "lucide-react": "^0.522.0", - "mysql2": "^3.10.1", - "next": "15.5.7", - "next-themes": "^0.2.1", - "postcss": "8.4.24", - "react": "18.2.0", - "react-dom": "18.2.0", - "react-dropzone": "^14.2.3", - "react-hook-form": "^7.45.4", - "semver": "^7.5.4", - "sonner": "^1.3.1", - "swr": "^2.2.1", - "tailwind-merge": "^1.13.2", - "tailwindcss": "3.3.2", - "tailwindcss-animate": "^1.0.6", - "typescript": "5.1.6", - "vaul": "^0.8.0", - "xxhashjs": "^0.2.2", - "zod": "^3.23.8" - }, - "devDependencies": { - "@0x57/prettier-config": "^1.0.0", - "drizzle-kit": "^0.22.7", - "prettier": "^3.2.5", - "prettier-plugin-tailwindcss": "^0.5.11" - } -} diff --git a/apps/stardew.app/sentry.edge.config.ts b/apps/stardew.app/sentry.edge.config.ts deleted file mode 100644 index c49cdbea..00000000 --- a/apps/stardew.app/sentry.edge.config.ts +++ /dev/null @@ -1,19 +0,0 @@ -// This file configures the initialization of Sentry for edge features (middleware, edge routes, and so on). -// The config you add here will be used whenever one of the edge features is loaded. -// Note that this config is unrelated to the Vercel Edge Runtime and is also required when running locally. -// https://docs.sentry.io/platforms/javascript/guides/nextjs/ - -import * as Sentry from "@sentry/nextjs"; - -Sentry.init({ - dsn: "https://2f557a537a56e11d3bdf60941649b239@o4506080157958144.ingest.us.sentry.io/4506080163790848", - - // Define how likely traces are sampled. Adjust this value in production, or use tracesSampler for greater control. - tracesSampleRate: 1, - - // Enable logs to be sent to Sentry - enableLogs: true, - - // Setting this option to true will print useful information to the console while you're setting up Sentry. - debug: false, -}); diff --git a/apps/stardew.app/sentry.server.config.ts b/apps/stardew.app/sentry.server.config.ts deleted file mode 100644 index b2994d73..00000000 --- a/apps/stardew.app/sentry.server.config.ts +++ /dev/null @@ -1,18 +0,0 @@ -// This file configures the initialization of Sentry on the server. -// The config you add here will be used whenever the server handles a request. -// https://docs.sentry.io/platforms/javascript/guides/nextjs/ - -import * as Sentry from "@sentry/nextjs"; - -Sentry.init({ - dsn: "https://2f557a537a56e11d3bdf60941649b239@o4506080157958144.ingest.us.sentry.io/4506080163790848", - - // Define how likely traces are sampled. Adjust this value in production, or use tracesSampler for greater control. - tracesSampleRate: 1, - - // Enable logs to be sent to Sentry - enableLogs: true, - - // Setting this option to true will print useful information to the console while you're setting up Sentry. - debug: false, -}); diff --git a/apps/stardew.app/src/components/preset-selector.tsx b/apps/stardew.app/src/components/preset-selector.tsx deleted file mode 100644 index 57484a39..00000000 --- a/apps/stardew.app/src/components/preset-selector.tsx +++ /dev/null @@ -1,101 +0,0 @@ -import Link from "next/link"; - -import type { PlayerType } from "@/contexts/players-context"; - -import { cn } from "@/lib/utils"; -import { useContext, useMemo, useState } from "react"; - -import { PlayersContext } from "@/contexts/players-context"; - -import { Button } from "@/components/ui/button"; -import { - Command, - CommandEmpty, - CommandGroup, - CommandInput, - CommandItem, - CommandSeparator, -} from "@/components/ui/command"; -import { - Popover, - PopoverContent, - PopoverTrigger, -} from "@/components/ui/popover"; - -import { CaretSortIcon, CheckIcon, PlusIcon } from "@radix-ui/react-icons"; - -export function PresetSelector() { - const [open, setOpen] = useState(false); - const { players, activePlayer, setActivePlayer } = useContext(PlayersContext); - - // get a unique list of all the values for player.general.farmInfo - const farmNames: string[] = useMemo(() => { - if (!players) return []; - const farmNames = players.map((player: any) => player.general.farmInfo); - // turn it into a set for unique values - const uniqueFarmNames = new Set(farmNames); - return Array.from(uniqueFarmNames); - }, [players]); - - return ( - - - - - - - - No farmhands found. - {farmNames?.map((farmName) => ( - - {players - ?.filter((p: PlayerType) => p.general?.farmInfo === farmName) - .map((player: PlayerType) => ( - { - setActivePlayer(player); - setOpen(false); - }} - > -

- {player.general?.name ?? "Unnamed Farmhand"} -

- {player._id} - -
- ))} -
- ))} - - - setOpen(false)}> - - - New Farmhand - - - -
-
-
- ); -} diff --git a/apps/stardew.app/src/contexts/players-context.tsx b/apps/stardew.app/src/contexts/players-context.tsx deleted file mode 100644 index a5cc0617..00000000 --- a/apps/stardew.app/src/contexts/players-context.tsx +++ /dev/null @@ -1,289 +0,0 @@ -import useSWR from "swr"; - -import { - createContext, - ReactNode, - useCallback, - useContext, - useEffect, - useMemo, - useState, -} from "react"; - -import type { CookingRet } from "@/lib/parsers/cooking"; -import type { CraftingRet } from "@/lib/parsers/crafting"; -import type { FishRet } from "@/lib/parsers/fishing"; -import type { GeneralRet } from "@/lib/parsers/general"; -import type { MonstersRet } from "@/lib/parsers/monsters"; -import type { MuseumRet } from "@/lib/parsers/museum"; -import type { NotesRet } from "@/lib/parsers/notes"; -import type { PerfectionRet } from "@/lib/parsers/perfection"; -import type { PowersRet } from "@/lib/parsers/powers"; -import type { RarecrowRet } from "@/lib/parsers/rarecrows"; -import type { ScrapsRet } from "@/lib/parsers/scraps"; -import type { ShippingRet } from "@/lib/parsers/shipping"; -import type { SocialRet } from "@/lib/parsers/social"; -import type { WalnutRet } from "@/lib/parsers/walnuts"; -import type { BundleWithStatus } from "@/types/bundles"; -import type { AnimalsData } from "@/types/data"; -import type { DeepPartial } from "react-hook-form"; - -export interface PlayerType { - _id: string; - general?: GeneralRet; - bundles?: BundleWithStatus[]; - fishing?: FishRet; - cooking?: CookingRet; - crafting?: CraftingRet; - shipping?: ShippingRet; - museum?: MuseumRet; - social?: SocialRet; - monsters?: MonstersRet; - walnuts?: WalnutRet; - notes?: NotesRet; - scraps?: ScrapsRet; - perfection?: PerfectionRet; - powers?: PowersRet; - rarecrows?: RarecrowRet; - animals?: AnimalsData; -} - -interface PlayersContextProps { - players?: PlayerType[]; - uploadPlayers: (players: PlayerType[]) => Promise; - patchPlayer: (patch: DeepPartial) => Promise; - activePlayer?: PlayerType; - setActivePlayer: (player?: PlayerType) => void; -} - -export const PlayersContext = createContext({ - // @ts-expect-error - default values replaced in PlayersProvider - uploadPlayers: () => {}, - patchPlayer: () => Promise.resolve(), - setActivePlayer: () => {}, -}); - -/** - * Normalizes a patch object against a target object to ensure all nested objects and arrays will persist to the DB correctly. - * This function ensures anything in or under an array is included in the patch because json_merge_patch does not recurse into arrays. - * @param patch The changes to apply to the target. - * @param target The original object that the patch will modify. - * @param inArray A flag indicating if the current process is within an array. - * @returns A new object representing the merged state of patch and target. - */ -function normalizePatch( - patch: any, - target: any, - inArray: boolean = false, -): any { - // Return the patch immediately if there's no target to merge with. - if (!target) { - return patch; - } - - // Return the patch directly if it's not an object or array. - if (typeof patch !== "object" || patch === null) { - return patch; - } - - // Initialize a new patch that copies the original to avoid mutations. - let newPatch: any; - if (inArray) { - newPatch = Array.isArray(target) ? [...target] : { ...target }; - } else { - newPatch = Array.isArray(patch) ? [...patch] : { ...patch }; - } - - // Iterate over all properties in the patch object. - for (const key in patch) { - if (Array.isArray(target[key])) { - // Handle array merging by first copying the existing target array. - newPatch[key] = [...target[key]]; - - // Recursively normalize each element of the array. - if ( - patch[key] && - typeof patch[key] === "object" && - !Array.isArray(patch[key]) && - Object.keys(patch[key]).every((input: any) => { - if (typeof input === "number") { - return Number.isInteger(input); - } else if (typeof input === "string") { - const num = Number(input); - return Number.isInteger(num) && input.trim() === num.toString(); - } - return false; - }) - ) { - for (const arrIndex in patch[key]) { - newPatch[key][arrIndex] = normalizePatch( - patch[key][arrIndex], - // @ts-ignore - target[key][arrIndex], - true, - ); - } - } else { - // If the patch is a non-object, replace the target array with the patch. - newPatch[key] = patch[key]; - } - } else { - // Recursively normalize nested objects. - newPatch[key] = normalizePatch(patch[key], target[key], inArray); - } - } - - // If we are in an array, ensure that missing fields in the patch are filled from the target. - if (inArray) { - Object.keys(target).forEach((field) => { - if (!(field in newPatch)) { - newPatch[field] = target[field]; - } - }); - } - - return newPatch; -} - -/** - * Recursively merges properties from source objects into a target object, creating a new object. - * This function does not mutate the original target but returns a new object. - * It only updates references within the new object when there are actual changes to content or children, - * regardless of the depth of those changes. Arrays are copied rather than merged, and nested objects - * are recursively populated. This function can handle an arbitrary number of source objects. - * @param target The initial object to merge properties into. - * @param sources One or more objects from which properties will be sourced. - * @returns The target object merged with properties from all source objects. - */ -export function mergeDeep(target: any, ...sources: any[]): any { - const isObject = (item: any) => item && typeof item === "object"; - - if (!sources.length) return target; - const source = sources.shift(); - const newTarget = Array.isArray(target) ? [...target] : { ...target }; - - if (isObject(target) && isObject(source)) { - for (const key in source) { - if (Array.isArray(source[key])) { - newTarget[key] = source[key]; - } else if (isObject(source[key])) { - if (!target[key]) { - newTarget[key] = Array.isArray(source[key]) ? [] : {}; - } - newTarget[key] = mergeDeep(newTarget[key], source[key]); - } else { - newTarget[key] = source[key]; - } - } - } - return mergeDeep(newTarget, ...sources); -} - -export const PlayersProvider = ({ children }: { children: ReactNode }) => { - const api = useSWR("/api/saves", (...args: any[]) => - // @ts-expect-error - fetch(...args).then((res) => res.json()), - ); - const [activePlayerId, setActivePlayerId] = useState(); - const players = useMemo(() => api.data ?? [], [api.data]); - const activePlayer = useMemo( - () => players.find((p) => p._id === activePlayerId), - [players, activePlayerId], - ); - - useEffect(() => { - if (!activePlayerId && players.length > 0) { - // first lets check if local storage contains the last set player - if (typeof window !== "undefined") { - const stored = window.localStorage.getItem("player_id"); - - // also check if the player_id is still in the players array - if (stored && players.some((player) => player._id === stored)) { - setActivePlayerId(stored); - } else setActivePlayerId(players[0]._id); - } - } - }, [activePlayerId, players]); - - // TODO: switch patchplayer use immutability-helper instead of custom merge logic - const patchPlayer = useCallback( - async (patch: DeepPartial) => { - if (!activePlayer) return; - const patchPlayers = (players: PlayerType[] | undefined) => - (players ?? []).map((p) => { - if (p._id === activePlayer._id) { - return mergeDeep(p, patch); - } - return p; - }); - await api.mutate( - async (currentPlayers: PlayerType[] | undefined) => { - const normalizedPatch = normalizePatch(patch, activePlayer); - if (!normalizedPatch.bundles) { - // By default if bundles are not in the patch, the server will use an empty array, - // which will clobber the existing bundle data since mysql doesn't support arrays properly. - normalizedPatch.bundles = activePlayer.bundles; - } - if (!normalizedPatch.rarecrows) { - // Turns out, the same issue exists for rarecrows! - normalizedPatch.rarecrows = activePlayer.rarecrows; - } - // console.log("Normalizing patch:"); - // console.dir(normalizedPatch); - await fetch(`/api/saves/${activePlayer._id}`, { - method: "PATCH", - body: JSON.stringify(normalizedPatch), - }); - return patchPlayers(currentPlayers); - }, - { optimisticData: patchPlayers }, - ); - }, - [api], - ); - - const uploadPlayers = useCallback( - async (players: PlayerType[]) => { - let res = await fetch("/api/saves", { - method: "POST", - body: JSON.stringify(players), - }); - await api.mutate(players); - setActivePlayerId(players[0]._id); - return res; - }, - [api, setActivePlayerId], - ); - - const setActivePlayer = useCallback((player?: PlayerType) => { - if (!player) { - setActivePlayerId(undefined); - return; - } - - setActivePlayerId(player._id); - - if (typeof window !== "undefined") { - // console.log(`Setting player_id to '${player._id}'`); - window.localStorage.setItem("player_id", player._id); - } - }, []); - - return ( - - {children} - - ); -}; - -export const usePlayers = () => { - return useContext(PlayersContext); -}; diff --git a/apps/stardew.app/src/db/index.ts b/apps/stardew.app/src/db/index.ts deleted file mode 100644 index c6b51c17..00000000 --- a/apps/stardew.app/src/db/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { drizzle } from "drizzle-orm/mysql2"; -import { createConnection } from "mysql2"; -import * as schema from "./schema"; - -export const connection = createConnection({ - uri: process.env.DATABASE_URL!, - queueLimit: 0, - connectionLimit: 10, -}); - -export const db = drizzle(connection, { schema, mode: "default" }); diff --git a/apps/stardew.app/src/instrumentation-client.ts b/apps/stardew.app/src/instrumentation-client.ts deleted file mode 100644 index 2eafe6eb..00000000 --- a/apps/stardew.app/src/instrumentation-client.ts +++ /dev/null @@ -1,35 +0,0 @@ -// This file configures the initialization of Sentry on the client. -// The added config here will be used whenever a users loads a page in their browser. -// https://docs.sentry.io/platforms/javascript/guides/nextjs/ - -import * as Sentry from "@sentry/nextjs"; - -Sentry.init({ - dsn: "https://2f557a537a56e11d3bdf60941649b239@o4506080157958144.ingest.us.sentry.io/4506080163790848", - - // Add optional integrations for additional features - integrations: [ - Sentry.replayIntegration({ - maskAllText: false, - blockAllMedia: false, - }), - ], - - // Define how likely traces are sampled. Adjust this value in production, or use tracesSampler for greater control. - tracesSampleRate: 1, - // Enable logs to be sent to Sentry - enableLogs: true, - - // Define how likely Replay events are sampled. - // This sets the sample rate to be 10%. You may want this to be 100% while - // in development and sample at a lower rate in production - replaysSessionSampleRate: 0.1, - - // Define how likely Replay events are sampled when an error occurs. - replaysOnErrorSampleRate: 1.0, - - // Setting this option to true will print useful information to the console while you're setting up Sentry. - debug: false, -}); - -export const onRouterTransitionStart = Sentry.captureRouterTransitionStart; diff --git a/apps/stardew.app/src/instrumentation.ts b/apps/stardew.app/src/instrumentation.ts deleted file mode 100644 index 8aff09f0..00000000 --- a/apps/stardew.app/src/instrumentation.ts +++ /dev/null @@ -1,13 +0,0 @@ -import * as Sentry from '@sentry/nextjs'; - -export async function register() { - if (process.env.NEXT_RUNTIME === 'nodejs') { - await import('../sentry.server.config'); - } - - if (process.env.NEXT_RUNTIME === 'edge') { - await import('../sentry.edge.config'); - } -} - -export const onRequestError = Sentry.captureRequestError; diff --git a/apps/stardew.app/src/pages/api/oauth/callback.ts b/apps/stardew.app/src/pages/api/oauth/callback.ts deleted file mode 100644 index 4bde7036..00000000 --- a/apps/stardew.app/src/pages/api/oauth/callback.ts +++ /dev/null @@ -1,215 +0,0 @@ -import * as schema from "$drizzle/schema"; -import { db } from "@/db"; -import { getCookie, setCookie } from "cookies-next"; -import crypto from "crypto"; -import { eq } from "drizzle-orm"; -import type { NextApiRequest, NextApiResponse } from "next"; -import { createToken } from "../saves"; - -type Data = Record; - -export default async function handler( - req: NextApiRequest, - res: NextApiResponse, -) { - try { - // get state from cookie to verify that this is the correct authentication request - const state = getCookie("oauth_state", { req }); - if (!state) { - res.status(400).end(); - console.log("[OAuth] No state cookie"); - return; - } - - const uid = getCookie("uid", { req }); - - if (!uid || typeof uid !== "string") { - res.status(400).end(); - res.redirect("/"); - console.log("[OAuth] No UID cookie"); - return; - } - - const code = req.query.code as string; - if (!code) { - res.status(400).end(); - res.redirect("/"); - console.log("[OAuth] No code"); - return; - } - - const discord = await fetch( - `https://discord.com/api/oauth2/token?grant_type=authorization_code&code=${code}&redirect_uri=${encodeURIComponent( - process.env.DISCORD_REDIRECT ?? "", - )}`, - { - method: "POST", - headers: { - "Content-Type": "application/x-www-form-urlencoded", - }, - body: new URLSearchParams({ - client_id: process.env.DISCORD_ID ?? "", - client_secret: process.env.DISCORD_SECRET ?? "", - grant_type: "authorization_code", - code: code ?? "", - redirect_uri: process.env.DISCORD_REDIRECT ?? "", - }), - }, - ); - - if (!discord.ok) { - res.status(400).end(); - console.log("[OAuth] Discord error"); - return; - } - - const discordData = await discord.json(); - - console.log("discordData", discordData); - - const discordUser = await fetch(`https://discord.com/api/users/@me`, { - headers: { - Authorization: `Bearer ${discordData.access_token}`, - }, - }); - - if (!discordUser.ok) { - res.status(400).end(); - console.log("[OAuth] Discord user error"); - return; - } - - const discordUserData = await discordUser.json(); - - let [user] = await db - .select() - .from(schema.users) - .where(eq(schema.users.id, uid)) - .limit(1); - - let cookieSecret = - user?.cookie_secret ?? crypto.randomBytes(16).toString("hex"); - - if (!user) { - let [discordUser] = await db - .select() - .from(schema.users) - .where(eq(schema.users.discord_id, discordUserData.id)) - .limit(1); - - if (discordUser) { - user = discordUser; - cookieSecret = user.cookie_secret; - - // update discord name if it has changed - if (discordUser.discord_name !== discordUserData.username) { - await db - .update(schema.users) - .set({ discord_name: discordUserData.username }) - .where(eq(schema.users.discord_id, discordUserData.id)); - } - - // update discord avatar if the avatar hash changed - if (discordUser.discord_avatar !== discordUserData.avatar) { - await db - .update(schema.users) - .set({ discord_avatar: discordUserData.avatar }) - .where(eq(schema.users.discord_id, discordUserData.id)); - } - } else { - await db - .insert(schema.users) - .values({ - id: uid, - discord_id: discordUserData.id, - discord_name: discordUserData.username, - discord_avatar: discordUserData.avatar, - cookie_secret: cookieSecret, - }) - .onDuplicateKeyUpdate({ - set: { - discord_id: discordUserData.id, - discord_name: discordUserData.username, - discord_avatar: discordUserData.avatar, - cookie_secret: cookieSecret, - }, - }); - // await conn.execute( - // "INSERT INTO Users (id, discord_id, discord_name, discord_avatar, cookie_secret) VALUES (?, ?, ?, ?, ?)", - // [ - // uid as string, - // discordUserData.id, - // discordUserData.username, - // discordUserData.avatar, - // cookieSecret, - // ], - // ); - user = { - id: uid, - discord_id: discordUserData.id, - discord_name: discordUserData.username, - discord_avatar: discordUserData.avatar, - cookie_secret: cookieSecret, - }; - } - } - - setCookie("uid", user.id, { - req, - res, - domain: parseInt(process.env.NEXT_PUBLIC_DEVELOPMENT!) - ? "localhost" - : "stardew.app", - maxAge: 60 * 60 * 24 * 365, - }); - - const token = createToken(user.id, cookieSecret, 60 * 60 * 24 * 365); - setCookie("token", token.token, { - req, - res, - domain: parseInt(process.env.NEXT_PUBLIC_DEVELOPMENT!) - ? "localhost" - : "stardew.app", - expires: new Date(token.expires * 1000), - }); - - setCookie( - "discord_user", - JSON.stringify({ - discord_id: discordUserData.id, - discord_name: discordUserData.username, - discord_avatar: discordUserData.avatar, - }), - { - req, - res, - domain: parseInt(process.env.NEXT_PUBLIC_DEVELOPMENT!) - ? "localhost" - : "stardew.app", - expires: new Date(token.expires * 1000), - }, - ); - - res.redirect("/"); - - if (discordData.scope.includes("guilds.join")) { - await fetch( - `https://discord.com/api/guilds/${process.env.DISCORD_GUILD}/members/${discordUserData.id}`, - { - method: "PUT", - body: JSON.stringify({ - access_token: `${discordData.access_token}`, - roles: ["1150490180860530819"], - }), - headers: { - "Authorization": `Bot ${process.env.DISCORD_TOKEN}`, - "Content-Type": "application/json", - }, - }, - ); - } - } catch (e: any) { - res.status(500).send(e.message); - console.log("[OAuth] Error", e); - } -} diff --git a/apps/stardew.app/src/pages/api/saves/[playerId].ts b/apps/stardew.app/src/pages/api/saves/[playerId].ts deleted file mode 100644 index b895f93e..00000000 --- a/apps/stardew.app/src/pages/api/saves/[playerId].ts +++ /dev/null @@ -1,62 +0,0 @@ -import { db } from "$db"; -import { sql } from "drizzle-orm"; -import { NextApiRequest, NextApiResponse } from "next"; -import { Player, getUID } from "."; - -async function patch(req: NextApiRequest, res: NextApiResponse) { - const playerId = req.query.playerId as string | undefined; - if (!playerId) return res.status(400).end(); - - const uid = await getUID(req, res); - const player = JSON.parse(req.body) as Player; - if (!player) return res.status(400).end(); - - try { - await db.execute( - sql` - UPDATE Saves SET - general=JSON_MERGE_PATCH(general, ${player.general ? JSON.stringify(player.general) : "{}"}), - bundles=JSON_MERGE_PATCH(bundles, ${player.bundles ? JSON.stringify(player.bundles) : "[]"}), - fishing=JSON_MERGE_PATCH(fishing, ${player.fishing ? JSON.stringify(player.fishing) : "{}"}), - cooking=JSON_MERGE_PATCH(cooking, ${player.cooking ? JSON.stringify(player.cooking) : "{}"}), - crafting=JSON_MERGE_PATCH(crafting, ${player.crafting ? JSON.stringify(player.crafting) : "{}"}), - shipping=JSON_MERGE_PATCH(shipping, ${player.shipping ? JSON.stringify(player.shipping) : "{}"}), - museum=JSON_MERGE_PATCH(museum, ${player.museum ? JSON.stringify(player.museum) : "{}"}), - social=JSON_MERGE_PATCH(social, ${player.social ? JSON.stringify(player.social) : "{}"}), - monsters=JSON_MERGE_PATCH(monsters, ${player.monsters ? JSON.stringify(player.monsters) : "{}"}), - walnuts=JSON_MERGE_PATCH(walnuts, ${player.walnuts ? JSON.stringify(player.walnuts) : "{}"}), - notes=JSON_MERGE_PATCH(notes, ${player.notes ? JSON.stringify(player.notes) : "{}"}), - scraps=JSON_MERGE_PATCH(scraps, ${player.scraps ? JSON.stringify(player.scraps) : "{}"}), - perfection=JSON_MERGE_PATCH(perfection, ${player.perfection ? JSON.stringify(player.perfection) : "{}"}), - powers=JSON_MERGE_PATCH(powers, ${player.powers ? JSON.stringify(player.powers) : "{}"}), - rarecrows=JSON_MERGE_PATCH(rarecrows, ${player.rarecrows ? JSON.stringify(player.rarecrows) : "[]"}) - WHERE _id = ${playerId} AND user_id = ${uid} - `, - ); - res.status(200).end(); - } catch (e) { - console.error("Database update error:", e); - console.error("Player data:", JSON.stringify(player, null, 2)); - console.error("Player ID:", playerId); - console.error("User ID:", uid); - res - .status(500) - .json({ error: e instanceof Error ? e.message : "Unknown error" }); - } -} - -export default async function handler( - req: NextApiRequest, - res: NextApiResponse, -) { - try { - switch (req.method) { - case "PATCH": - return await patch(req, res); - } - res.status(405).end(); - } catch (e: any) { - console.error("Handler error:", e); - res.status(500).json({ error: e.message }); - } -} diff --git a/apps/stardew.app/tsconfig.json b/apps/stardew.app/tsconfig.json deleted file mode 100644 index 81e8fb75..00000000 --- a/apps/stardew.app/tsconfig.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "compilerOptions": { - "target": "esnext", - "lib": ["dom", "dom.iterable", "esnext"], - "allowJs": true, - "skipLibCheck": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "noEmit": true, - "esModuleInterop": true, - "module": "esnext", - "moduleResolution": "node", - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "preserve", - "incremental": true, - "paths": { - "@/*": ["./src/*"], - "$drizzle/*": ["./src/db/*"], - "$db": ["./src/db"] - } - }, - "include": [ - "next-env.d.ts", - "**/*.ts", - "**/*.tsx", - "../../drizzle.config.ts" - ], - "exclude": ["node_modules"] -} diff --git a/bun.lock b/bun.lock new file mode 100644 index 00000000..16819ae3 --- /dev/null +++ b/bun.lock @@ -0,0 +1,2186 @@ +{ + "lockfileVersion": 1, + "configVersion": 1, + "workspaces": { + "": { + "name": "stardew.app", + "dependencies": { + "@heroicons/react": "^2.2.0", + "@hookform/resolvers": "3.9.1", + "@marsidev/react-turnstile": "^1.4.2", + "@next/bundle-analyzer": "^16.1.6", + "@opennextjs/cloudflare": "^1.17.1", + "@planetscale/database": "^1.19.0", + "@radix-ui/react-accordion": "^1.2.12", + "@radix-ui/react-avatar": "^1.1.11", + "@radix-ui/react-checkbox": "^1.3.3", + "@radix-ui/react-context-menu": "^2.2.16", + "@radix-ui/react-dialog": "^1.1.15", + "@radix-ui/react-dropdown-menu": "^2.1.16", + "@radix-ui/react-icons": "^1.3.2", + "@radix-ui/react-label": "^2.1.8", + "@radix-ui/react-popover": "^1.1.15", + "@radix-ui/react-progress": "^1.1.8", + "@radix-ui/react-scroll-area": "^1.2.10", + "@radix-ui/react-select": "^2.2.6", + "@radix-ui/react-separator": "^1.1.8", + "@radix-ui/react-slot": "^1.2.4", + "@radix-ui/react-switch": "^1.2.6", + "@radix-ui/react-tabs": "^1.1.13", + "@radix-ui/react-toast": "^1.2.15", + "@radix-ui/react-toggle": "^1.1.10", + "@radix-ui/react-toggle-group": "^1.1.11", + "@radix-ui/react-tooltip": "^1.2.8", + "@react-hook/media-query": "^1.1.1", + "@tabler/icons-react": "^3.38.0", + "autoprefixer": "10.4.27", + "axios": "1.7.2", + "baseline-browser-mapping": "^2.10.0", + "caniuse-lite": "^1.0.30001776", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "cmdk": "^1.0.0", + "cookies-next": "2.1.2", + "drizzle-orm": "^0.45.1", + "fast-xml-parser": "^5.4.2", + "lucide-react": "0.522.0", + "mysql2": "^3.18.2", + "next": "15.5.12", + "next-themes": "0.4.6", + "postcss": "8.5.8", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "react-dropzone": "^15.0.0", + "react-hook-form": "^7.71.2", + "semver": "^7.7.4", + "sonner": "^2.0.0", + "swr": "^2.4.0", + "tailwind-merge": "1.13.2", + "tailwindcss": "3.3.2", + "tailwindcss-animate": "^1.0.7", + "vaul": "^1.0.0", + "xxhashjs": "^0.2.2", + "zod": "3.23.8", + }, + "devDependencies": { + "@0x57/prettier-config": "^2.0.0", + "@types/node": "25.3.3", + "@types/react": "^19.0.0", + "@types/react-dom": "^19.0.0", + "@types/xxhashjs": "^0.2.4", + "@typescript/native-preview": "7.0.0-dev.20260303.1", + "drizzle-kit": "^0.31.9", + "eslint": "8.44.0", + "eslint-config-next": "15.5.12", + "prettier": "3.8.1", + "prettier-plugin-tailwindcss": "^0.7.2", + "rimraf": "6.1.3", + "typescript": "5.9.3", + "wrangler": "^4.71.0", + }, + }, + }, + "packages": { + "@0x57/prettier-config": ["@0x57/prettier-config@2.0.0", "", { "dependencies": { "prettier": "3.4.2", "prettier-plugin-organize-imports": "4.3.0", "prettier-plugin-packagejson": "2.4.10", "prettier-plugin-tailwindcss": "0.6.14" } }, "sha512-Z6SZ6StzxamiH98NvNAnkW99Xpk62roTC7R1DzOdoCWw6PNKKYbSHda/DsJqxvNxFn1E2kgDpcdxD6z9RzM0/Q=="], + + "@alloc/quick-lru": ["@alloc/quick-lru@5.2.0", "", {}, "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw=="], + + "@ast-grep/napi": ["@ast-grep/napi@0.40.5", "", { "optionalDependencies": { "@ast-grep/napi-darwin-arm64": "0.40.5", "@ast-grep/napi-darwin-x64": "0.40.5", "@ast-grep/napi-linux-arm64-gnu": "0.40.5", "@ast-grep/napi-linux-arm64-musl": "0.40.5", "@ast-grep/napi-linux-x64-gnu": "0.40.5", "@ast-grep/napi-linux-x64-musl": "0.40.5", "@ast-grep/napi-win32-arm64-msvc": "0.40.5", "@ast-grep/napi-win32-ia32-msvc": "0.40.5", "@ast-grep/napi-win32-x64-msvc": "0.40.5" } }, "sha512-hJA62OeBKUQT68DD2gDyhOqJxZxycqg8wLxbqjgqSzYttCMSDL9tiAQ9abgekBYNHudbJosm9sWOEbmCDfpX2A=="], + + "@ast-grep/napi-darwin-arm64": ["@ast-grep/napi-darwin-arm64@0.40.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-2F072fGN0WTq7KI3okuEnkGJVEHLbi56Bw1H6NAMf7j2mJJeQWsRyGOMcyNnUXZDeNdvoMH0OB2a5wwUegY/nQ=="], + + "@ast-grep/napi-darwin-x64": ["@ast-grep/napi-darwin-x64@0.40.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-dJMidHZhhxuLBYNi6/FKI812jQ7wcFPSKkVPwviez2D+KvYagapUMAV/4dJ7FCORfguVk8Y0jpPAlYmWRT5nvA=="], + + "@ast-grep/napi-linux-arm64-gnu": ["@ast-grep/napi-linux-arm64-gnu@0.40.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-nBRCbyoS87uqkaw4Oyfe5VO+SRm2B+0g0T8ME69Qry9ShMf41a2bTdpcQx9e8scZPogq+CTwDHo3THyBV71l9w=="], + + "@ast-grep/napi-linux-arm64-musl": ["@ast-grep/napi-linux-arm64-musl@0.40.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-/qKsmds5FMoaEj6FdNzepbmLMtlFuBLdrAn9GIWCqOIcVcYvM1Nka8+mncfeXB/MFZKOrzQsQdPTWqrrQzXLrA=="], + + "@ast-grep/napi-linux-x64-gnu": ["@ast-grep/napi-linux-x64-gnu@0.40.5", "", { "os": "linux", "cpu": "x64" }, "sha512-DP4oDbq7f/1A2hRTFLhJfDFR6aI5mRWdEfKfHzRItmlKsR9WlcEl1qDJs/zX9R2EEtIDsSKRzuJNfJllY3/W8Q=="], + + "@ast-grep/napi-linux-x64-musl": ["@ast-grep/napi-linux-x64-musl@0.40.5", "", { "os": "linux", "cpu": "x64" }, "sha512-BRZUvVBPUNpWPo6Ns8chXVzxHPY+k9gpsubGTHy92Q26ecZULd/dTkWWdnvfhRqttsSQ9Pe/XQdi5+hDQ6RYcg=="], + + "@ast-grep/napi-win32-arm64-msvc": ["@ast-grep/napi-win32-arm64-msvc@0.40.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-y95zSEwc7vhxmcrcH0GnK4ZHEBQrmrszRBNQovzaciF9GUqEcCACNLoBesn4V47IaOp4fYgD2/EhGRTIBFb2Ug=="], + + "@ast-grep/napi-win32-ia32-msvc": ["@ast-grep/napi-win32-ia32-msvc@0.40.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-K/u8De62iUnFCzVUs7FBdTZ2Jrgc5/DLHqjpup66KxZ7GIM9/HGME/O8aSoPkpcAeCD4TiTZ11C1i5p5H98hTg=="], + + "@ast-grep/napi-win32-x64-msvc": ["@ast-grep/napi-win32-x64-msvc@0.40.5", "", { "os": "win32", "cpu": "x64" }, "sha512-dqm5zg/o4Nh4VOQPEpMS23ot8HVd22gG0eg01t4CFcZeuzyuSgBlOL3N7xLbz3iH2sVkk7keuBwAzOIpTqziNQ=="], + + "@aws-crypto/crc32": ["@aws-crypto/crc32@5.2.0", "", { "dependencies": { "@aws-crypto/util": "5.2.0", "@aws-sdk/types": "3.973.4", "tslib": "2.8.1" } }, "sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg=="], + + "@aws-crypto/crc32c": ["@aws-crypto/crc32c@5.2.0", "", { "dependencies": { "@aws-crypto/util": "5.2.0", "@aws-sdk/types": "3.973.4", "tslib": "2.8.1" } }, "sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag=="], + + "@aws-crypto/sha1-browser": ["@aws-crypto/sha1-browser@5.2.0", "", { "dependencies": { "@aws-crypto/supports-web-crypto": "5.2.0", "@aws-crypto/util": "5.2.0", "@aws-sdk/types": "3.973.4", "@aws-sdk/util-locate-window": "3.965.4", "@smithy/util-utf8": "2.3.0", "tslib": "2.8.1" } }, "sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg=="], + + "@aws-crypto/sha256-browser": ["@aws-crypto/sha256-browser@5.2.0", "", { "dependencies": { "@aws-crypto/sha256-js": "5.2.0", "@aws-crypto/supports-web-crypto": "5.2.0", "@aws-crypto/util": "5.2.0", "@aws-sdk/types": "3.973.4", "@aws-sdk/util-locate-window": "3.965.4", "@smithy/util-utf8": "2.3.0", "tslib": "2.8.1" } }, "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw=="], + + "@aws-crypto/sha256-js": ["@aws-crypto/sha256-js@5.2.0", "", { "dependencies": { "@aws-crypto/util": "5.2.0", "@aws-sdk/types": "3.973.4", "tslib": "2.8.1" } }, "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA=="], + + "@aws-crypto/supports-web-crypto": ["@aws-crypto/supports-web-crypto@5.2.0", "", { "dependencies": { "tslib": "2.8.1" } }, "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg=="], + + "@aws-crypto/util": ["@aws-crypto/util@5.2.0", "", { "dependencies": { "@aws-sdk/types": "3.973.4", "@smithy/util-utf8": "2.3.0", "tslib": "2.8.1" } }, "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ=="], + + "@aws-sdk/client-cloudfront": ["@aws-sdk/client-cloudfront@3.984.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.973.16", "@aws-sdk/credential-provider-node": "3.972.15", "@aws-sdk/middleware-host-header": "3.972.6", "@aws-sdk/middleware-logger": "3.972.6", "@aws-sdk/middleware-recursion-detection": "3.972.6", "@aws-sdk/middleware-user-agent": "3.972.16", "@aws-sdk/region-config-resolver": "3.972.6", "@aws-sdk/types": "3.973.4", "@aws-sdk/util-endpoints": "3.984.0", "@aws-sdk/util-user-agent-browser": "3.972.6", "@aws-sdk/util-user-agent-node": "3.973.1", "@smithy/config-resolver": "4.4.9", "@smithy/core": "3.23.7", "@smithy/fetch-http-handler": "5.3.12", "@smithy/hash-node": "4.2.10", "@smithy/invalid-dependency": "4.2.10", "@smithy/middleware-content-length": "4.2.10", "@smithy/middleware-endpoint": "4.4.21", "@smithy/middleware-retry": "4.4.38", "@smithy/middleware-serde": "4.2.11", "@smithy/middleware-stack": "4.2.10", "@smithy/node-config-provider": "4.3.10", "@smithy/node-http-handler": "4.4.13", "@smithy/protocol-http": "5.3.10", "@smithy/smithy-client": "4.12.1", "@smithy/types": "4.13.0", "@smithy/url-parser": "4.2.10", "@smithy/util-base64": "4.3.1", "@smithy/util-body-length-browser": "4.2.1", "@smithy/util-body-length-node": "4.2.2", "@smithy/util-defaults-mode-browser": "4.3.37", "@smithy/util-defaults-mode-node": "4.2.40", "@smithy/util-endpoints": "3.3.1", "@smithy/util-middleware": "4.2.10", "@smithy/util-retry": "4.2.10", "@smithy/util-stream": "4.5.16", "@smithy/util-utf8": "4.2.1", "@smithy/util-waiter": "4.2.10", "tslib": "2.8.1" } }, "sha512-couDuDLpJtoeWne/nYyJ+I+5ntBVdNgBVRTCoDaXuVV7OC3u/wz5Ps0+GogspEwMLEFoOJ8t691h3YXQtnpQTw=="], + + "@aws-sdk/client-dynamodb": ["@aws-sdk/client-dynamodb@3.984.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.973.16", "@aws-sdk/credential-provider-node": "3.972.15", "@aws-sdk/dynamodb-codec": "3.972.17", "@aws-sdk/middleware-endpoint-discovery": "3.972.6", "@aws-sdk/middleware-host-header": "3.972.6", "@aws-sdk/middleware-logger": "3.972.6", "@aws-sdk/middleware-recursion-detection": "3.972.6", "@aws-sdk/middleware-user-agent": "3.972.16", "@aws-sdk/region-config-resolver": "3.972.6", "@aws-sdk/types": "3.973.4", "@aws-sdk/util-endpoints": "3.984.0", "@aws-sdk/util-user-agent-browser": "3.972.6", "@aws-sdk/util-user-agent-node": "3.973.1", "@smithy/config-resolver": "4.4.9", "@smithy/core": "3.23.7", "@smithy/fetch-http-handler": "5.3.12", "@smithy/hash-node": "4.2.10", "@smithy/invalid-dependency": "4.2.10", "@smithy/middleware-content-length": "4.2.10", "@smithy/middleware-endpoint": "4.4.21", "@smithy/middleware-retry": "4.4.38", "@smithy/middleware-serde": "4.2.11", "@smithy/middleware-stack": "4.2.10", "@smithy/node-config-provider": "4.3.10", "@smithy/node-http-handler": "4.4.13", "@smithy/protocol-http": "5.3.10", "@smithy/smithy-client": "4.12.1", "@smithy/types": "4.13.0", "@smithy/url-parser": "4.2.10", "@smithy/util-base64": "4.3.1", "@smithy/util-body-length-browser": "4.2.1", "@smithy/util-body-length-node": "4.2.2", "@smithy/util-defaults-mode-browser": "4.3.37", "@smithy/util-defaults-mode-node": "4.2.40", "@smithy/util-endpoints": "3.3.1", "@smithy/util-middleware": "4.2.10", "@smithy/util-retry": "4.2.10", "@smithy/util-utf8": "4.2.1", "@smithy/util-waiter": "4.2.10", "tslib": "2.8.1" } }, "sha512-8/Oft9MWQtbG6p9f8eY5fsKC2CcO5YVDlwive8eUYS9mEbgnyQxm68OyH26WvsSTykQ9QkIbR+fOG56RsIBODw=="], + + "@aws-sdk/client-lambda": ["@aws-sdk/client-lambda@3.984.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.973.16", "@aws-sdk/credential-provider-node": "3.972.15", "@aws-sdk/middleware-host-header": "3.972.6", "@aws-sdk/middleware-logger": "3.972.6", "@aws-sdk/middleware-recursion-detection": "3.972.6", "@aws-sdk/middleware-user-agent": "3.972.16", "@aws-sdk/region-config-resolver": "3.972.6", "@aws-sdk/types": "3.973.4", "@aws-sdk/util-endpoints": "3.984.0", "@aws-sdk/util-user-agent-browser": "3.972.6", "@aws-sdk/util-user-agent-node": "3.973.1", "@smithy/config-resolver": "4.4.9", "@smithy/core": "3.23.7", "@smithy/eventstream-serde-browser": "4.2.10", "@smithy/eventstream-serde-config-resolver": "4.3.10", "@smithy/eventstream-serde-node": "4.2.10", "@smithy/fetch-http-handler": "5.3.12", "@smithy/hash-node": "4.2.10", "@smithy/invalid-dependency": "4.2.10", "@smithy/middleware-content-length": "4.2.10", "@smithy/middleware-endpoint": "4.4.21", "@smithy/middleware-retry": "4.4.38", "@smithy/middleware-serde": "4.2.11", "@smithy/middleware-stack": "4.2.10", "@smithy/node-config-provider": "4.3.10", "@smithy/node-http-handler": "4.4.13", "@smithy/protocol-http": "5.3.10", "@smithy/smithy-client": "4.12.1", "@smithy/types": "4.13.0", "@smithy/url-parser": "4.2.10", "@smithy/util-base64": "4.3.1", "@smithy/util-body-length-browser": "4.2.1", "@smithy/util-body-length-node": "4.2.2", "@smithy/util-defaults-mode-browser": "4.3.37", "@smithy/util-defaults-mode-node": "4.2.40", "@smithy/util-endpoints": "3.3.1", "@smithy/util-middleware": "4.2.10", "@smithy/util-retry": "4.2.10", "@smithy/util-stream": "4.5.16", "@smithy/util-utf8": "4.2.1", "@smithy/util-waiter": "4.2.10", "tslib": "2.8.1" } }, "sha512-kqwNBIGNxGVhINwgN/UQfdsQkaMjbu9PFV2EhATWouV+RT60uMjK9JENgLDwbgJmEVbbnPsh9HaZ5KKwPSdiDg=="], + + "@aws-sdk/client-s3": ["@aws-sdk/client-s3@3.984.0", "", { "dependencies": { "@aws-crypto/sha1-browser": "5.2.0", "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.973.16", "@aws-sdk/credential-provider-node": "3.972.15", "@aws-sdk/middleware-bucket-endpoint": "3.972.6", "@aws-sdk/middleware-expect-continue": "3.972.6", "@aws-sdk/middleware-flexible-checksums": "3.973.2", "@aws-sdk/middleware-host-header": "3.972.6", "@aws-sdk/middleware-location-constraint": "3.972.6", "@aws-sdk/middleware-logger": "3.972.6", "@aws-sdk/middleware-recursion-detection": "3.972.6", "@aws-sdk/middleware-sdk-s3": "3.972.16", "@aws-sdk/middleware-ssec": "3.972.6", "@aws-sdk/middleware-user-agent": "3.972.16", "@aws-sdk/region-config-resolver": "3.972.6", "@aws-sdk/signature-v4-multi-region": "3.984.0", "@aws-sdk/types": "3.973.4", "@aws-sdk/util-endpoints": "3.984.0", "@aws-sdk/util-user-agent-browser": "3.972.6", "@aws-sdk/util-user-agent-node": "3.973.1", "@smithy/config-resolver": "4.4.9", "@smithy/core": "3.23.7", "@smithy/eventstream-serde-browser": "4.2.10", "@smithy/eventstream-serde-config-resolver": "4.3.10", "@smithy/eventstream-serde-node": "4.2.10", "@smithy/fetch-http-handler": "5.3.12", "@smithy/hash-blob-browser": "4.2.11", "@smithy/hash-node": "4.2.10", "@smithy/hash-stream-node": "4.2.10", "@smithy/invalid-dependency": "4.2.10", "@smithy/md5-js": "4.2.10", "@smithy/middleware-content-length": "4.2.10", "@smithy/middleware-endpoint": "4.4.21", "@smithy/middleware-retry": "4.4.38", "@smithy/middleware-serde": "4.2.11", "@smithy/middleware-stack": "4.2.10", "@smithy/node-config-provider": "4.3.10", "@smithy/node-http-handler": "4.4.13", "@smithy/protocol-http": "5.3.10", "@smithy/smithy-client": "4.12.1", "@smithy/types": "4.13.0", "@smithy/url-parser": "4.2.10", "@smithy/util-base64": "4.3.1", "@smithy/util-body-length-browser": "4.2.1", "@smithy/util-body-length-node": "4.2.2", "@smithy/util-defaults-mode-browser": "4.3.37", "@smithy/util-defaults-mode-node": "4.2.40", "@smithy/util-endpoints": "3.3.1", "@smithy/util-middleware": "4.2.10", "@smithy/util-retry": "4.2.10", "@smithy/util-stream": "4.5.16", "@smithy/util-utf8": "4.2.1", "@smithy/util-waiter": "4.2.10", "tslib": "2.8.1" } }, "sha512-7ny2Slr93Y+QniuluvcfWwyDi32zWQfznynL56Tk0vVh7bWrvS/odm8WP2nInKicRVNipcJHY2YInur6Q/9V0A=="], + + "@aws-sdk/client-sqs": ["@aws-sdk/client-sqs@3.984.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.973.16", "@aws-sdk/credential-provider-node": "3.972.15", "@aws-sdk/middleware-host-header": "3.972.6", "@aws-sdk/middleware-logger": "3.972.6", "@aws-sdk/middleware-recursion-detection": "3.972.6", "@aws-sdk/middleware-sdk-sqs": "3.972.12", "@aws-sdk/middleware-user-agent": "3.972.16", "@aws-sdk/region-config-resolver": "3.972.6", "@aws-sdk/types": "3.973.4", "@aws-sdk/util-endpoints": "3.984.0", "@aws-sdk/util-user-agent-browser": "3.972.6", "@aws-sdk/util-user-agent-node": "3.973.1", "@smithy/config-resolver": "4.4.9", "@smithy/core": "3.23.7", "@smithy/fetch-http-handler": "5.3.12", "@smithy/hash-node": "4.2.10", "@smithy/invalid-dependency": "4.2.10", "@smithy/md5-js": "4.2.10", "@smithy/middleware-content-length": "4.2.10", "@smithy/middleware-endpoint": "4.4.21", "@smithy/middleware-retry": "4.4.38", "@smithy/middleware-serde": "4.2.11", "@smithy/middleware-stack": "4.2.10", "@smithy/node-config-provider": "4.3.10", "@smithy/node-http-handler": "4.4.13", "@smithy/protocol-http": "5.3.10", "@smithy/smithy-client": "4.12.1", "@smithy/types": "4.13.0", "@smithy/url-parser": "4.2.10", "@smithy/util-base64": "4.3.1", "@smithy/util-body-length-browser": "4.2.1", "@smithy/util-body-length-node": "4.2.2", "@smithy/util-defaults-mode-browser": "4.3.37", "@smithy/util-defaults-mode-node": "4.2.40", "@smithy/util-endpoints": "3.3.1", "@smithy/util-middleware": "4.2.10", "@smithy/util-retry": "4.2.10", "@smithy/util-utf8": "4.2.1", "tslib": "2.8.1" } }, "sha512-TDvHpOUWlpanc3xQ5Xw0y8L2hoojBFCCSmXQ/6rKqGOf1ScX3dMA+K9aF0Zp0iwjhSh4VvsHD42esl8XwQZDjA=="], + + "@aws-sdk/core": ["@aws-sdk/core@3.973.16", "", { "dependencies": { "@aws-sdk/types": "3.973.4", "@aws-sdk/xml-builder": "3.972.9", "@smithy/core": "3.23.7", "@smithy/node-config-provider": "4.3.10", "@smithy/property-provider": "4.2.10", "@smithy/protocol-http": "5.3.10", "@smithy/signature-v4": "5.3.10", "@smithy/smithy-client": "4.12.1", "@smithy/types": "4.13.0", "@smithy/util-base64": "4.3.1", "@smithy/util-middleware": "4.2.10", "@smithy/util-utf8": "4.2.1", "tslib": "2.8.1" } }, "sha512-Nasoyb5K4jfvncTKQyA13q55xHoz9as01NVYP05B0Kzux/X5UhMn3qXsZDyWOSXkfSCAIrMBKmVVWbI0vUapdQ=="], + + "@aws-sdk/crc64-nvme": ["@aws-sdk/crc64-nvme@3.972.3", "", { "dependencies": { "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-UExeK+EFiq5LAcbHm96CQLSia+5pvpUVSAsVApscBzayb7/6dJBJKwV4/onsk4VbWSmqxDMcfuTD+pC4RxgZHg=="], + + "@aws-sdk/credential-provider-env": ["@aws-sdk/credential-provider-env@3.972.14", "", { "dependencies": { "@aws-sdk/core": "3.973.16", "@aws-sdk/types": "3.973.4", "@smithy/property-provider": "4.2.10", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-PvnBY9rwBuLh9MEsAng28DG+WKl+txerKgf4BU9IPAqYI7FBIo1x6q/utLf4KLyQYgSy1TLQnbQuXx5xfBGASg=="], + + "@aws-sdk/credential-provider-http": ["@aws-sdk/credential-provider-http@3.972.16", "", { "dependencies": { "@aws-sdk/core": "3.973.16", "@aws-sdk/types": "3.973.4", "@smithy/fetch-http-handler": "5.3.12", "@smithy/node-http-handler": "4.4.13", "@smithy/property-provider": "4.2.10", "@smithy/protocol-http": "5.3.10", "@smithy/smithy-client": "4.12.1", "@smithy/types": "4.13.0", "@smithy/util-stream": "4.5.16", "tslib": "2.8.1" } }, "sha512-m/QAcvw5OahqGPjeAnKtgfWgjLxeWOYj7JSmxKK6PLyKp2S/t2TAHI6EELEzXnIz28RMgbQLukJkVAqPASVAGQ=="], + + "@aws-sdk/credential-provider-ini": ["@aws-sdk/credential-provider-ini@3.972.14", "", { "dependencies": { "@aws-sdk/core": "3.973.16", "@aws-sdk/credential-provider-env": "3.972.14", "@aws-sdk/credential-provider-http": "3.972.16", "@aws-sdk/credential-provider-login": "3.972.14", "@aws-sdk/credential-provider-process": "3.972.14", "@aws-sdk/credential-provider-sso": "3.972.14", "@aws-sdk/credential-provider-web-identity": "3.972.14", "@aws-sdk/nested-clients": "3.996.4", "@aws-sdk/types": "3.973.4", "@smithy/credential-provider-imds": "4.2.10", "@smithy/property-provider": "4.2.10", "@smithy/shared-ini-file-loader": "4.4.5", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-EGA7ufqNpZKZcD0RwM6gRDEQgwAf19wQ99R1ptdWYDJAnpcMcWiFyT0RIrgiZFLD28CwJmYjnra75hChnEveWA=="], + + "@aws-sdk/credential-provider-login": ["@aws-sdk/credential-provider-login@3.972.14", "", { "dependencies": { "@aws-sdk/core": "3.973.16", "@aws-sdk/nested-clients": "3.996.4", "@aws-sdk/types": "3.973.4", "@smithy/property-provider": "4.2.10", "@smithy/protocol-http": "5.3.10", "@smithy/shared-ini-file-loader": "4.4.5", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-P2kujQHAoV7irCTv6EGyReKFofkHCjIK+F0ZYf5UxeLeecrCwtrDkHoO2Vjsv/eRUumaKblD8czuk3CLlzwGDw=="], + + "@aws-sdk/credential-provider-node": ["@aws-sdk/credential-provider-node@3.972.15", "", { "dependencies": { "@aws-sdk/credential-provider-env": "3.972.14", "@aws-sdk/credential-provider-http": "3.972.16", "@aws-sdk/credential-provider-ini": "3.972.14", "@aws-sdk/credential-provider-process": "3.972.14", "@aws-sdk/credential-provider-sso": "3.972.14", "@aws-sdk/credential-provider-web-identity": "3.972.14", "@aws-sdk/types": "3.973.4", "@smithy/credential-provider-imds": "4.2.10", "@smithy/property-provider": "4.2.10", "@smithy/shared-ini-file-loader": "4.4.5", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-59NBJgTcQ2FC94T+SWkN5UQgViFtrLnkswSKhG5xbjPAotOXnkEF2Bf0bfUV1F3VaXzqAPZJoZ3bpg4rr8XD5Q=="], + + "@aws-sdk/credential-provider-process": ["@aws-sdk/credential-provider-process@3.972.14", "", { "dependencies": { "@aws-sdk/core": "3.973.16", "@aws-sdk/types": "3.973.4", "@smithy/property-provider": "4.2.10", "@smithy/shared-ini-file-loader": "4.4.5", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-KAF5LBkJInUPaR9dJDw8LqmbPDRTLyXyRoWVGcJQ+DcN9rxVKBRzAK+O4dTIvQtQ7xaIDZ2kY7zUmDlz6CCXdw=="], + + "@aws-sdk/credential-provider-sso": ["@aws-sdk/credential-provider-sso@3.972.14", "", { "dependencies": { "@aws-sdk/core": "3.973.16", "@aws-sdk/nested-clients": "3.996.4", "@aws-sdk/token-providers": "3.1001.0", "@aws-sdk/types": "3.973.4", "@smithy/property-provider": "4.2.10", "@smithy/shared-ini-file-loader": "4.4.5", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-LQzIYrNABnZzkyuIguFa3VVOox9UxPpRW6PL+QYtRHaGl1Ux/+Zi54tAVK31VdeBKPKU3cxqeu8dbOgNqy+naw=="], + + "@aws-sdk/credential-provider-web-identity": ["@aws-sdk/credential-provider-web-identity@3.972.14", "", { "dependencies": { "@aws-sdk/core": "3.973.16", "@aws-sdk/nested-clients": "3.996.4", "@aws-sdk/types": "3.973.4", "@smithy/property-provider": "4.2.10", "@smithy/shared-ini-file-loader": "4.4.5", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-rOwB3vXHHHnGvAOjTgQETxVAsWjgF61XlbGd/ulvYo7EpdXs8cbIHE3PGih9tTj/65ZOegSqZGFqLaKntaI9Kw=="], + + "@aws-sdk/dynamodb-codec": ["@aws-sdk/dynamodb-codec@3.972.17", "", { "dependencies": { "@aws-sdk/core": "3.973.16", "@smithy/core": "3.23.7", "@smithy/smithy-client": "4.12.1", "@smithy/types": "4.13.0", "@smithy/util-base64": "4.3.1", "tslib": "2.8.1" } }, "sha512-Q2sff1qeHbFSsmRXAhzCl6KM1FVUPvk4njNWvGkBcbbLwTc+i3AxErv1SWhE1SQP0ETMPbcJOEDgc+Ycw1htQg=="], + + "@aws-sdk/endpoint-cache": ["@aws-sdk/endpoint-cache@3.972.3", "", { "dependencies": { "mnemonist": "0.38.3", "tslib": "2.8.1" } }, "sha512-s5oiwOTe0ajI5y/cRMsThZsmlrZiAEcUct723O9NivR/es8fDtglbhHo7eQE4ydddCivFCm2lpNj8RPDLdL3AA=="], + + "@aws-sdk/middleware-bucket-endpoint": ["@aws-sdk/middleware-bucket-endpoint@3.972.6", "", { "dependencies": { "@aws-sdk/types": "3.973.4", "@aws-sdk/util-arn-parser": "3.972.2", "@smithy/node-config-provider": "4.3.10", "@smithy/protocol-http": "5.3.10", "@smithy/types": "4.13.0", "@smithy/util-config-provider": "4.2.1", "tslib": "2.8.1" } }, "sha512-3H2bhvb7Cb/S6WFsBy/Dy9q2aegC9JmGH1inO8Lb2sWirSqpLJlZmvQHPE29h2tIxzv6el/14X/tLCQ8BQU6ZQ=="], + + "@aws-sdk/middleware-endpoint-discovery": ["@aws-sdk/middleware-endpoint-discovery@3.972.6", "", { "dependencies": { "@aws-sdk/endpoint-cache": "3.972.3", "@aws-sdk/types": "3.973.4", "@smithy/node-config-provider": "4.3.10", "@smithy/protocol-http": "5.3.10", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-p5DYw2cpnsuT/bFA4DEBxucY/wn3TVGDZ7wonEds6EEox35I5DThCsw6aWDIN/fTpG0FMLO3q7s1PUKozWl3CQ=="], + + "@aws-sdk/middleware-expect-continue": ["@aws-sdk/middleware-expect-continue@3.972.6", "", { "dependencies": { "@aws-sdk/types": "3.973.4", "@smithy/protocol-http": "5.3.10", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-QMdffpU+GkSGC+bz6WdqlclqIeCsOfgX8JFZ5xvwDtX+UTj4mIXm3uXu7Ko6dBseRcJz1FA6T9OmlAAY6JgJUg=="], + + "@aws-sdk/middleware-flexible-checksums": ["@aws-sdk/middleware-flexible-checksums@3.973.2", "", { "dependencies": { "@aws-crypto/crc32": "5.2.0", "@aws-crypto/crc32c": "5.2.0", "@aws-crypto/util": "5.2.0", "@aws-sdk/core": "3.973.16", "@aws-sdk/crc64-nvme": "3.972.3", "@aws-sdk/types": "3.973.4", "@smithy/is-array-buffer": "4.2.1", "@smithy/node-config-provider": "4.3.10", "@smithy/protocol-http": "5.3.10", "@smithy/types": "4.13.0", "@smithy/util-middleware": "4.2.10", "@smithy/util-stream": "4.5.16", "@smithy/util-utf8": "4.2.1", "tslib": "2.8.1" } }, "sha512-KM6QujWdasNjRLG+f7YEqEY5D36vR6Govm7nPIwxjILpb5rJ0pPJZpYY1nrzgtlxwJIYAznfBK5YXoLOHKHyfQ=="], + + "@aws-sdk/middleware-host-header": ["@aws-sdk/middleware-host-header@3.972.6", "", { "dependencies": { "@aws-sdk/types": "3.973.4", "@smithy/protocol-http": "5.3.10", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-5XHwjPH1lHB+1q4bfC7T8Z5zZrZXfaLcjSMwTd1HPSPrCmPFMbg3UQ5vgNWcVj0xoX4HWqTGkSf2byrjlnRg5w=="], + + "@aws-sdk/middleware-location-constraint": ["@aws-sdk/middleware-location-constraint@3.972.6", "", { "dependencies": { "@aws-sdk/types": "3.973.4", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-XdZ2TLwyj3Am6kvUc67vquQvs6+D8npXvXgyEUJAdkUDx5oMFJKOqpK+UpJhVDsEL068WAJl2NEGzbSik7dGJQ=="], + + "@aws-sdk/middleware-logger": ["@aws-sdk/middleware-logger@3.972.6", "", { "dependencies": { "@aws-sdk/types": "3.973.4", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-iFnaMFMQdljAPrvsCVKYltPt2j40LQqukAbXvW7v0aL5I+1GO7bZ/W8m12WxW3gwyK5p5u1WlHg8TSAizC5cZw=="], + + "@aws-sdk/middleware-recursion-detection": ["@aws-sdk/middleware-recursion-detection@3.972.6", "", { "dependencies": { "@aws-sdk/types": "3.973.4", "@aws/lambda-invoke-store": "0.2.3", "@smithy/protocol-http": "5.3.10", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-dY4v3of5EEMvik6+UDwQ96KfUFDk8m1oZDdkSc5lwi4o7rFrjnv0A+yTV+gu230iybQZnKgDLg/rt2P3H+Vscw=="], + + "@aws-sdk/middleware-sdk-s3": ["@aws-sdk/middleware-sdk-s3@3.972.16", "", { "dependencies": { "@aws-sdk/core": "3.973.16", "@aws-sdk/types": "3.973.4", "@aws-sdk/util-arn-parser": "3.972.2", "@smithy/core": "3.23.7", "@smithy/node-config-provider": "4.3.10", "@smithy/protocol-http": "5.3.10", "@smithy/signature-v4": "5.3.10", "@smithy/smithy-client": "4.12.1", "@smithy/types": "4.13.0", "@smithy/util-config-provider": "4.2.1", "@smithy/util-middleware": "4.2.10", "@smithy/util-stream": "4.5.16", "@smithy/util-utf8": "4.2.1", "tslib": "2.8.1" } }, "sha512-U4K1rqyJYvT/zgTI3+rN+MToa51dFnnq1VSsVJuJWPNEKcEnuZVqf7yTpkJJMkYixVW5TTi1dgupd+nmJ0JyWw=="], + + "@aws-sdk/middleware-sdk-sqs": ["@aws-sdk/middleware-sdk-sqs@3.972.12", "", { "dependencies": { "@aws-sdk/types": "3.973.4", "@smithy/smithy-client": "4.12.1", "@smithy/types": "4.13.0", "@smithy/util-hex-encoding": "4.2.1", "@smithy/util-utf8": "4.2.1", "tslib": "2.8.1" } }, "sha512-YYh6560Aa6O/F4j1gnSuEzX7zHYQm2OnSlXBu+wQzyfJ5Dn5Ns2boVlS40UcA+OLrxHZgOLh/gzepbFY/ixteA=="], + + "@aws-sdk/middleware-ssec": ["@aws-sdk/middleware-ssec@3.972.6", "", { "dependencies": { "@aws-sdk/types": "3.973.4", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-acvMUX9jF4I2Ew+Z/EA6gfaFaz9ehci5wxBmXCZeulLuv8m+iGf6pY9uKz8TPjg39bdAz3hxoE0eLP8Qz+IYlA=="], + + "@aws-sdk/middleware-user-agent": ["@aws-sdk/middleware-user-agent@3.972.16", "", { "dependencies": { "@aws-sdk/core": "3.973.16", "@aws-sdk/types": "3.973.4", "@aws-sdk/util-endpoints": "3.996.3", "@smithy/core": "3.23.7", "@smithy/protocol-http": "5.3.10", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-AmVxtxn8ZkNJbuPu3KKfW9IkJgTgcEtgSwbo0NVcAb31iGvLgHXj2nbbyrUDfh2fx8otXmqL+qw1lRaTi+V3vA=="], + + "@aws-sdk/nested-clients": ["@aws-sdk/nested-clients@3.996.4", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.973.16", "@aws-sdk/middleware-host-header": "3.972.6", "@aws-sdk/middleware-logger": "3.972.6", "@aws-sdk/middleware-recursion-detection": "3.972.6", "@aws-sdk/middleware-user-agent": "3.972.16", "@aws-sdk/region-config-resolver": "3.972.6", "@aws-sdk/types": "3.973.4", "@aws-sdk/util-endpoints": "3.996.3", "@aws-sdk/util-user-agent-browser": "3.972.6", "@aws-sdk/util-user-agent-node": "3.973.1", "@smithy/config-resolver": "4.4.9", "@smithy/core": "3.23.7", "@smithy/fetch-http-handler": "5.3.12", "@smithy/hash-node": "4.2.10", "@smithy/invalid-dependency": "4.2.10", "@smithy/middleware-content-length": "4.2.10", "@smithy/middleware-endpoint": "4.4.21", "@smithy/middleware-retry": "4.4.38", "@smithy/middleware-serde": "4.2.11", "@smithy/middleware-stack": "4.2.10", "@smithy/node-config-provider": "4.3.10", "@smithy/node-http-handler": "4.4.13", "@smithy/protocol-http": "5.3.10", "@smithy/smithy-client": "4.12.1", "@smithy/types": "4.13.0", "@smithy/url-parser": "4.2.10", "@smithy/util-base64": "4.3.1", "@smithy/util-body-length-browser": "4.2.1", "@smithy/util-body-length-node": "4.2.2", "@smithy/util-defaults-mode-browser": "4.3.37", "@smithy/util-defaults-mode-node": "4.2.40", "@smithy/util-endpoints": "3.3.1", "@smithy/util-middleware": "4.2.10", "@smithy/util-retry": "4.2.10", "@smithy/util-utf8": "4.2.1", "tslib": "2.8.1" } }, "sha512-NowB1HfOnWC4kwZOnTg8E8rSL0U+RSjSa++UtEV4ipoH6JOjMLnHyGilqwl+Pe1f0Al6v9yMkSJ/8Ot0f578CQ=="], + + "@aws-sdk/region-config-resolver": ["@aws-sdk/region-config-resolver@3.972.6", "", { "dependencies": { "@aws-sdk/types": "3.973.4", "@smithy/config-resolver": "4.4.9", "@smithy/node-config-provider": "4.3.10", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-Aa5PusHLXAqLTX1UKDvI3pHQJtIsF7Q+3turCHqfz/1F61/zDMWfbTC8evjhrrYVAtz9Vsv3SJ/waSUeu7B6gw=="], + + "@aws-sdk/signature-v4-multi-region": ["@aws-sdk/signature-v4-multi-region@3.984.0", "", { "dependencies": { "@aws-sdk/middleware-sdk-s3": "3.972.16", "@aws-sdk/types": "3.973.4", "@smithy/protocol-http": "5.3.10", "@smithy/signature-v4": "5.3.10", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-TaWbfYCwnuOSvDSrgs7QgoaoXse49E7LzUkVOUhoezwB7bkmhp+iojADm7UepCEu4021SquD7NG1xA+WCvmldA=="], + + "@aws-sdk/token-providers": ["@aws-sdk/token-providers@3.1001.0", "", { "dependencies": { "@aws-sdk/core": "3.973.16", "@aws-sdk/nested-clients": "3.996.4", "@aws-sdk/types": "3.973.4", "@smithy/property-provider": "4.2.10", "@smithy/shared-ini-file-loader": "4.4.5", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-09XAq/uIYgeZhohuGRrR/R+ek3+ljFNdzWCXdqb9rlIERDjSfNiLjTtpHgSK1xTPmC5G4yWoEAyMfTXiggS6wA=="], + + "@aws-sdk/types": ["@aws-sdk/types@3.973.4", "", { "dependencies": { "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-RW60aH26Bsc016Y9B98hC0Plx6fK5P2v/iQYwMzrSjiDh1qRMUCP6KrXHYEHe3uFvKiOC93Z9zk4BJsUi6Tj1Q=="], + + "@aws-sdk/util-arn-parser": ["@aws-sdk/util-arn-parser@3.972.2", "", { "dependencies": { "tslib": "2.8.1" } }, "sha512-VkykWbqMjlSgBFDyrY3nOSqupMc6ivXuGmvci6Q3NnLq5kC+mKQe2QBZ4nrWRE/jqOxeFP2uYzLtwncYYcvQDg=="], + + "@aws-sdk/util-endpoints": ["@aws-sdk/util-endpoints@3.984.0", "", { "dependencies": { "@aws-sdk/types": "3.973.4", "@smithy/types": "4.13.0", "@smithy/url-parser": "4.2.10", "@smithy/util-endpoints": "3.3.1", "tslib": "2.8.1" } }, "sha512-9ebjLA0hMKHeVvXEtTDCCOBtwjb0bOXiuUV06HNeVdgAjH6gj4x4Zwt4IBti83TiyTGOCl5YfZqGx4ehVsasbQ=="], + + "@aws-sdk/util-locate-window": ["@aws-sdk/util-locate-window@3.965.4", "", { "dependencies": { "tslib": "2.8.1" } }, "sha512-H1onv5SkgPBK2P6JR2MjGgbOnttoNzSPIRoeZTNPZYyaplwGg50zS3amXvXqF0/qfXpWEC9rLWU564QTB9bSog=="], + + "@aws-sdk/util-user-agent-browser": ["@aws-sdk/util-user-agent-browser@3.972.6", "", { "dependencies": { "@aws-sdk/types": "3.973.4", "@smithy/types": "4.13.0", "bowser": "2.14.1", "tslib": "2.8.1" } }, "sha512-Fwr/llD6GOrFgQnKaI2glhohdGuBDfHfora6iG9qsBBBR8xv1SdCSwbtf5CWlUdCw5X7g76G/9Hf0Inh0EmoxA=="], + + "@aws-sdk/util-user-agent-node": ["@aws-sdk/util-user-agent-node@3.973.1", "", { "dependencies": { "@aws-sdk/middleware-user-agent": "3.972.16", "@aws-sdk/types": "3.973.4", "@smithy/node-config-provider": "4.3.10", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-kmgbDqT7aCBEVrqESM2JUjbf0zhDUQ7wnt3q1RuVS+3mglrcfVb2bwkbmf38npOyyPGtQPV5dWN3m+sSFAVAgQ=="], + + "@aws-sdk/xml-builder": ["@aws-sdk/xml-builder@3.972.9", "", { "dependencies": { "@smithy/types": "4.13.0", "fast-xml-parser": "5.4.1", "tslib": "2.8.1" } }, "sha512-ItnlMgSqkPrUfJs7EsvU/01zw5UeIb2tNPhD09LBLHbg+g+HDiKibSLwpkuz/ZIlz4F2IMn+5XgE4AK/pfPuog=="], + + "@aws/lambda-invoke-store": ["@aws/lambda-invoke-store@0.2.3", "", {}, "sha512-oLvsaPMTBejkkmHhjf09xTgk71mOqyr/409NKhRIL08If7AhVfUsJhVsx386uJaqNd42v9kWamQ9lFbkoC2dYw=="], + + "@babel/code-frame": ["@babel/code-frame@7.29.0", "", { "dependencies": { "@babel/helper-validator-identifier": "7.28.5", "js-tokens": "4.0.0", "picocolors": "1.1.1" } }, "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw=="], + + "@babel/compat-data": ["@babel/compat-data@7.29.0", "", {}, "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg=="], + + "@babel/core": ["@babel/core@7.29.0", "", { "dependencies": { "@babel/code-frame": "7.29.0", "@babel/generator": "7.29.1", "@babel/helper-compilation-targets": "7.28.6", "@babel/helper-module-transforms": "7.28.6", "@babel/helpers": "7.28.6", "@babel/parser": "7.29.0", "@babel/template": "7.28.6", "@babel/traverse": "7.29.0", "@babel/types": "7.29.0", "@jridgewell/remapping": "2.3.5", "convert-source-map": "2.0.0", "debug": "4.4.3", "gensync": "1.0.0-beta.2", "json5": "2.2.3", "semver": "6.3.1" } }, "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA=="], + + "@babel/generator": ["@babel/generator@7.29.1", "", { "dependencies": { "@babel/parser": "7.29.0", "@babel/types": "7.29.0", "@jridgewell/gen-mapping": "0.3.13", "@jridgewell/trace-mapping": "0.3.31", "jsesc": "3.1.0" } }, "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw=="], + + "@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.28.6", "", { "dependencies": { "@babel/compat-data": "7.29.0", "@babel/helper-validator-option": "7.27.1", "browserslist": "4.28.1", "lru-cache": "5.1.1", "semver": "6.3.1" } }, "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA=="], + + "@babel/helper-globals": ["@babel/helper-globals@7.28.0", "", {}, "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw=="], + + "@babel/helper-module-imports": ["@babel/helper-module-imports@7.28.6", "", { "dependencies": { "@babel/traverse": "7.29.0", "@babel/types": "7.29.0" } }, "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw=="], + + "@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.28.6", "", { "dependencies": { "@babel/helper-module-imports": "7.28.6", "@babel/helper-validator-identifier": "7.28.5", "@babel/traverse": "7.29.0" }, "peerDependencies": { "@babel/core": "7.29.0" } }, "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA=="], + + "@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="], + + "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.28.5", "", {}, "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q=="], + + "@babel/helper-validator-option": ["@babel/helper-validator-option@7.27.1", "", {}, "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg=="], + + "@babel/helpers": ["@babel/helpers@7.28.6", "", { "dependencies": { "@babel/template": "7.28.6", "@babel/types": "7.29.0" } }, "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw=="], + + "@babel/parser": ["@babel/parser@7.29.0", "", { "dependencies": { "@babel/types": "7.29.0" }, "bin": "./bin/babel-parser.js" }, "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww=="], + + "@babel/template": ["@babel/template@7.28.6", "", { "dependencies": { "@babel/code-frame": "7.29.0", "@babel/parser": "7.29.0", "@babel/types": "7.29.0" } }, "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ=="], + + "@babel/traverse": ["@babel/traverse@7.29.0", "", { "dependencies": { "@babel/code-frame": "7.29.0", "@babel/generator": "7.29.1", "@babel/helper-globals": "7.28.0", "@babel/parser": "7.29.0", "@babel/template": "7.28.6", "@babel/types": "7.29.0", "debug": "4.4.3" } }, "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA=="], + + "@babel/types": ["@babel/types@7.29.0", "", { "dependencies": { "@babel/helper-string-parser": "7.27.1", "@babel/helper-validator-identifier": "7.28.5" } }, "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A=="], + + "@cloudflare/kv-asset-handler": ["@cloudflare/kv-asset-handler@0.4.2", "", {}, "sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ=="], + + "@cloudflare/unenv-preset": ["@cloudflare/unenv-preset@2.15.0", "", { "peerDependencies": { "unenv": "2.0.0-rc.24", "workerd": "1.20260301.1 || ~1.20260302.1 || ~1.20260303.1 || ~1.20260304.1 || >1.20260305.0 <2.0.0-0" }, "optionalPeers": ["workerd"] }, "sha512-EGYmJaGZKWl+X8tXxcnx4v2bOZSjQeNI5dWFeXivgX9+YCT69AkzHHwlNbVpqtEUTbew8eQurpyOpeN8fg00nw=="], + + "@cloudflare/workerd-darwin-64": ["@cloudflare/workerd-darwin-64@1.20260301.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-+kJvwociLrvy1JV9BAvoSVsMEIYD982CpFmo/yMEvBwxDIjltYsLTE8DLi0mCkGsQ8Ygidv2fD9wavzXeiY7OQ=="], + + "@cloudflare/workerd-darwin-arm64": ["@cloudflare/workerd-darwin-arm64@1.20260301.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-PPIetY3e67YBr9O4UhILK8nbm5TqUDl14qx4rwFNrRSBOvlzuczzbd4BqgpAtbGVFxKp1PWpjAnBvGU/OI/tLQ=="], + + "@cloudflare/workerd-linux-64": ["@cloudflare/workerd-linux-64@1.20260301.1", "", { "os": "linux", "cpu": "x64" }, "sha512-Gu5vaVTZuYl3cHa+u5CDzSVDBvSkfNyuAHi6Mdfut7TTUdcb3V5CIcR/mXRSyMXzEy9YxEWIfdKMxOMBjupvYQ=="], + + "@cloudflare/workerd-linux-arm64": ["@cloudflare/workerd-linux-arm64@1.20260301.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-igL1pkyCXW6GiGpjdOAvqMi87UW0LMc/+yIQe/CSzuZJm5GzXoAMrwVTkCFnikk6JVGELrM5x0tGYlxa0sk5Iw=="], + + "@cloudflare/workerd-windows-64": ["@cloudflare/workerd-windows-64@1.20260301.1", "", { "os": "win32", "cpu": "x64" }, "sha512-Q0wMJ4kcujXILwQKQFc1jaYamVsNvjuECzvRrTI8OxGFMx2yq9aOsswViE4X1gaS2YQQ5u0JGwuGi5WdT1Lt7A=="], + + "@cspotcode/source-map-support": ["@cspotcode/source-map-support@0.8.1", "", { "dependencies": { "@jridgewell/trace-mapping": "0.3.9" } }, "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw=="], + + "@discoveryjs/json-ext": ["@discoveryjs/json-ext@0.5.7", "", {}, "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw=="], + + "@dotenvx/dotenvx": ["@dotenvx/dotenvx@1.31.0", "", { "dependencies": { "commander": "11.1.0", "dotenv": "16.6.1", "eciesjs": "0.4.17", "execa": "5.1.1", "fdir": "6.5.0", "ignore": "5.3.2", "object-treeify": "1.1.33", "picomatch": "4.0.3", "which": "4.0.0" }, "bin": { "dotenvx": "src/cli/dotenvx.js", "git-dotenvx": "src/cli/dotenvx.js" } }, "sha512-GeDxvtjiRuoyWVU9nQneId879zIyNdL05bS7RKiqMkfBSKpHMWHLoRyRqjYWLaXmX/llKO1hTlqHDmatkQAjPA=="], + + "@drizzle-team/brocli": ["@drizzle-team/brocli@0.10.2", "", {}, "sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w=="], + + "@ecies/ciphers": ["@ecies/ciphers@0.2.5", "", { "peerDependencies": { "@noble/ciphers": "1.3.0" } }, "sha512-GalEZH4JgOMHYYcYmVqnFirFsjZHeoGMDt9IxEnM9F7GRUUyUksJ7Ou53L83WHJq3RWKD3AcBpo0iQh0oMpf8A=="], + + "@emnapi/core": ["@emnapi/core@1.8.1", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "2.8.1" } }, "sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg=="], + + "@emnapi/runtime": ["@emnapi/runtime@1.8.1", "", { "dependencies": { "tslib": "2.8.1" } }, "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg=="], + + "@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.1.0", "", { "dependencies": { "tslib": "2.8.1" } }, "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ=="], + + "@esbuild-kit/core-utils": ["@esbuild-kit/core-utils@3.3.2", "", { "dependencies": { "esbuild": "0.18.20", "source-map-support": "0.5.21" } }, "sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ=="], + + "@esbuild-kit/esm-loader": ["@esbuild-kit/esm-loader@2.6.5", "", { "dependencies": { "@esbuild-kit/core-utils": "3.3.2", "get-tsconfig": "4.13.6" } }, "sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA=="], + + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA=="], + + "@esbuild/android-arm": ["@esbuild/android-arm@0.25.12", "", { "os": "android", "cpu": "arm" }, "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg=="], + + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.12", "", { "os": "android", "cpu": "arm64" }, "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg=="], + + "@esbuild/android-x64": ["@esbuild/android-x64@0.25.12", "", { "os": "android", "cpu": "x64" }, "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg=="], + + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg=="], + + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA=="], + + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.12", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg=="], + + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.12", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ=="], + + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.12", "", { "os": "linux", "cpu": "arm" }, "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw=="], + + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ=="], + + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.12", "", { "os": "linux", "cpu": "ia32" }, "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA=="], + + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng=="], + + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw=="], + + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.12", "", { "os": "linux", "cpu": "ppc64" }, "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA=="], + + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w=="], + + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.12", "", { "os": "linux", "cpu": "s390x" }, "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg=="], + + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.12", "", { "os": "linux", "cpu": "x64" }, "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw=="], + + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg=="], + + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.12", "", { "os": "none", "cpu": "x64" }, "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ=="], + + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.12", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A=="], + + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.12", "", { "os": "openbsd", "cpu": "x64" }, "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw=="], + + "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg=="], + + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.12", "", { "os": "sunos", "cpu": "x64" }, "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w=="], + + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg=="], + + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.12", "", { "os": "win32", "cpu": "ia32" }, "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ=="], + + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.12", "", { "os": "win32", "cpu": "x64" }, "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA=="], + + "@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.9.1", "", { "dependencies": { "eslint-visitor-keys": "3.4.3" }, "peerDependencies": { "eslint": "10.0.2" } }, "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ=="], + + "@eslint-community/regexpp": ["@eslint-community/regexpp@4.12.2", "", {}, "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew=="], + + "@eslint/config-array": ["@eslint/config-array@0.23.2", "", { "dependencies": { "@eslint/object-schema": "3.0.2", "debug": "4.4.3", "minimatch": "10.2.4" } }, "sha512-YF+fE6LV4v5MGWRGj7G404/OZzGNepVF8fxk7jqmqo3lrza7a0uUcDnROGRBG1WFC1omYUS/Wp1f42i0M+3Q3A=="], + + "@eslint/config-helpers": ["@eslint/config-helpers@0.5.2", "", { "dependencies": { "@eslint/core": "1.1.0" } }, "sha512-a5MxrdDXEvqnIq+LisyCX6tQMPF/dSJpCfBgBauY+pNZ28yCtSsTvyTYrMhaI+LK26bVyCJfJkT0u8KIj2i1dQ=="], + + "@eslint/core": ["@eslint/core@1.1.0", "", { "dependencies": { "@types/json-schema": "7.0.15" } }, "sha512-/nr9K9wkr3P1EzFTdFdMoLuo1PmIxjmwvPozwoSodjNBdefGujXQUF93u1DDZpEaTuDvMsIQddsd35BwtrW9Xw=="], + + "@eslint/eslintrc": ["@eslint/eslintrc@2.1.4", "", { "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" } }, "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ=="], + + "@eslint/js": ["@eslint/js@8.44.0", "", {}, "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw=="], + + "@eslint/object-schema": ["@eslint/object-schema@3.0.2", "", {}, "sha512-HOy56KJt48Bx8KmJ+XGQNSUMT/6dZee/M54XyUyuvTvPXJmsERRvBchsUVx1UMe1WwIH49XLAczNC7V2INsuUw=="], + + "@eslint/plugin-kit": ["@eslint/plugin-kit@0.6.0", "", { "dependencies": { "@eslint/core": "1.1.0", "levn": "0.4.1" } }, "sha512-bIZEUzOI1jkhviX2cp5vNyXQc6olzb2ohewQubuYlMXZ2Q/XjBO0x0XhGPvc9fjSIiUN0vw+0hq53BJ4eQSJKQ=="], + + "@floating-ui/core": ["@floating-ui/core@1.7.5", "", { "dependencies": { "@floating-ui/utils": "0.2.11" } }, "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ=="], + + "@floating-ui/dom": ["@floating-ui/dom@1.7.6", "", { "dependencies": { "@floating-ui/core": "1.7.5", "@floating-ui/utils": "0.2.11" } }, "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ=="], + + "@floating-ui/react-dom": ["@floating-ui/react-dom@2.1.8", "", { "dependencies": { "@floating-ui/dom": "1.7.6" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A=="], + + "@floating-ui/utils": ["@floating-ui/utils@0.2.11", "", {}, "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg=="], + + "@heroicons/react": ["@heroicons/react@2.2.0", "", { "peerDependencies": { "react": "19.2.4" } }, "sha512-LMcepvRaS9LYHJGsF0zzmgKCUim/X3N/DQKc4jepAXJ7l8QxJ1PmxJzqplF2Z3FE4PqBAIGyJAQ/w4B5dsqbtQ=="], + + "@hookform/resolvers": ["@hookform/resolvers@3.9.1", "", { "peerDependencies": { "react-hook-form": "^7.0.0" } }, "sha512-ud2HqmGBM0P0IABqoskKWI6PEf6ZDDBZkFqe2Vnl+mTHCEHzr3ISjjZyCwTjC/qpL25JC9aIDkloQejvMeq0ug=="], + + "@humanfs/core": ["@humanfs/core@0.19.1", "", {}, "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA=="], + + "@humanfs/node": ["@humanfs/node@0.16.7", "", { "dependencies": { "@humanfs/core": "0.19.1", "@humanwhocodes/retry": "0.4.3" } }, "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ=="], + + "@humanwhocodes/config-array": ["@humanwhocodes/config-array@0.11.14", "", { "dependencies": { "@humanwhocodes/object-schema": "^2.0.2", "debug": "^4.3.1", "minimatch": "^3.0.5" } }, "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg=="], + + "@humanwhocodes/module-importer": ["@humanwhocodes/module-importer@1.0.1", "", {}, "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="], + + "@humanwhocodes/object-schema": ["@humanwhocodes/object-schema@2.0.3", "", {}, "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA=="], + + "@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.3", "", {}, "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ=="], + + "@img/colour": ["@img/colour@1.1.0", "", {}, "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ=="], + + "@img/sharp-darwin-arm64": ["@img/sharp-darwin-arm64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-arm64": "1.2.4" }, "os": "darwin", "cpu": "arm64" }, "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w=="], + + "@img/sharp-darwin-x64": ["@img/sharp-darwin-x64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-x64": "1.2.4" }, "os": "darwin", "cpu": "x64" }, "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw=="], + + "@img/sharp-libvips-darwin-arm64": ["@img/sharp-libvips-darwin-arm64@1.2.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g=="], + + "@img/sharp-libvips-darwin-x64": ["@img/sharp-libvips-darwin-x64@1.2.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg=="], + + "@img/sharp-libvips-linux-arm": ["@img/sharp-libvips-linux-arm@1.2.4", "", { "os": "linux", "cpu": "arm" }, "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A=="], + + "@img/sharp-libvips-linux-arm64": ["@img/sharp-libvips-linux-arm64@1.2.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw=="], + + "@img/sharp-libvips-linux-ppc64": ["@img/sharp-libvips-linux-ppc64@1.2.4", "", { "os": "linux", "cpu": "ppc64" }, "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA=="], + + "@img/sharp-libvips-linux-riscv64": ["@img/sharp-libvips-linux-riscv64@1.2.4", "", { "os": "linux", "cpu": "none" }, "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA=="], + + "@img/sharp-libvips-linux-s390x": ["@img/sharp-libvips-linux-s390x@1.2.4", "", { "os": "linux", "cpu": "s390x" }, "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ=="], + + "@img/sharp-libvips-linux-x64": ["@img/sharp-libvips-linux-x64@1.2.4", "", { "os": "linux", "cpu": "x64" }, "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw=="], + + "@img/sharp-libvips-linuxmusl-arm64": ["@img/sharp-libvips-linuxmusl-arm64@1.2.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw=="], + + "@img/sharp-libvips-linuxmusl-x64": ["@img/sharp-libvips-linuxmusl-x64@1.2.4", "", { "os": "linux", "cpu": "x64" }, "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg=="], + + "@img/sharp-linux-arm": ["@img/sharp-linux-arm@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm": "1.2.4" }, "os": "linux", "cpu": "arm" }, "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw=="], + + "@img/sharp-linux-arm64": ["@img/sharp-linux-arm64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm64": "1.2.4" }, "os": "linux", "cpu": "arm64" }, "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg=="], + + "@img/sharp-linux-ppc64": ["@img/sharp-linux-ppc64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-ppc64": "1.2.4" }, "os": "linux", "cpu": "ppc64" }, "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA=="], + + "@img/sharp-linux-riscv64": ["@img/sharp-linux-riscv64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-riscv64": "1.2.4" }, "os": "linux", "cpu": "none" }, "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw=="], + + "@img/sharp-linux-s390x": ["@img/sharp-linux-s390x@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-s390x": "1.2.4" }, "os": "linux", "cpu": "s390x" }, "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg=="], + + "@img/sharp-linux-x64": ["@img/sharp-linux-x64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-x64": "1.2.4" }, "os": "linux", "cpu": "x64" }, "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ=="], + + "@img/sharp-linuxmusl-arm64": ["@img/sharp-linuxmusl-arm64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" }, "os": "linux", "cpu": "arm64" }, "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg=="], + + "@img/sharp-linuxmusl-x64": ["@img/sharp-linuxmusl-x64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-x64": "1.2.4" }, "os": "linux", "cpu": "x64" }, "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q=="], + + "@img/sharp-wasm32": ["@img/sharp-wasm32@0.34.5", "", { "dependencies": { "@emnapi/runtime": "1.8.1" }, "cpu": "none" }, "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw=="], + + "@img/sharp-win32-arm64": ["@img/sharp-win32-arm64@0.34.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g=="], + + "@img/sharp-win32-ia32": ["@img/sharp-win32-ia32@0.34.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg=="], + + "@img/sharp-win32-x64": ["@img/sharp-win32-x64@0.34.5", "", { "os": "win32", "cpu": "x64" }, "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw=="], + + "@isaacs/cliui": ["@isaacs/cliui@9.0.0", "", {}, "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg=="], + + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "1.5.5", "@jridgewell/trace-mapping": "0.3.31" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], + + "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "0.3.13", "@jridgewell/trace-mapping": "0.3.31" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], + + "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], + + "@jridgewell/source-map": ["@jridgewell/source-map@0.3.11", "", { "dependencies": { "@jridgewell/gen-mapping": "0.3.13", "@jridgewell/trace-mapping": "0.3.31" } }, "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA=="], + + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], + + "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.9", "", { "dependencies": { "@jridgewell/resolve-uri": "3.1.2", "@jridgewell/sourcemap-codec": "1.5.5" } }, "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ=="], + + "@marsidev/react-turnstile": ["@marsidev/react-turnstile@1.4.2", "", { "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-xs1qOuyeMOz6t9BXXCXWiukC0/0+48vR08B7uwNdG05wCMnbcNgxiFmdFKDOFbM76qFYFRYlGeRfhfq1U/iZmA=="], + + "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@0.2.12", "", { "dependencies": { "@emnapi/core": "1.8.1", "@emnapi/runtime": "1.8.1", "@tybys/wasm-util": "0.10.1" } }, "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ=="], + + "@next/bundle-analyzer": ["@next/bundle-analyzer@16.1.6", "", { "dependencies": { "webpack-bundle-analyzer": "4.10.1" } }, "sha512-ee2kagdTaeEWPlotgdTOqFHYcD3e2m2bbE3I9Rq2i6ABYi5OgopmtEUe8NM23viaYxLV2tDH/2nd5+qKoEr6cw=="], + + "@next/env": ["@next/env@15.5.12", "", {}, "sha512-pUvdJN1on574wQHjaBfNGDt9Mz5utDSZFsIIQkMzPgNS8ZvT4H2mwOrOIClwsQOb6EGx5M76/CZr6G8i6pSpLg=="], + + "@next/eslint-plugin-next": ["@next/eslint-plugin-next@15.5.12", "", { "dependencies": { "fast-glob": "3.3.1" } }, "sha512-+ZRSDFTv4aC96aMb5E41rMjysx8ApkryevnvEYZvPZO52KvkqP5rNExLUXJFr9P4s0f3oqNQR6vopCZsPWKDcQ=="], + + "@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@15.5.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-RnRjBtH8S8eXCpUNkQ+543DUc7ys8y15VxmFU9HRqlo9BG3CcBUiwNtF8SNoi2xvGCVJq1vl2yYq+3oISBS0Zg=="], + + "@next/swc-darwin-x64": ["@next/swc-darwin-x64@15.5.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-nqa9/7iQlboF1EFtNhWxQA0rQstmYRSBGxSM6g3GxvxHxcoeqVXfGNr9stJOme674m2V7r4E3+jEhhGvSQhJRA=="], + + "@next/swc-linux-arm64-gnu": ["@next/swc-linux-arm64-gnu@15.5.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-dCzAjqhDHwmoB2M4eYfVKqXs99QdQxNQVpftvP1eGVppamXh/OkDAwV737Zr0KPXEqRUMN4uCjh6mjO+XtF3Mw=="], + + "@next/swc-linux-arm64-musl": ["@next/swc-linux-arm64-musl@15.5.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-+fpGWvQiITgf7PUtbWY1H7qUSnBZsPPLyyq03QuAKpVoTy/QUx1JptEDTQMVvQhvizCEuNLEeghrQUyXQOekuw=="], + + "@next/swc-linux-x64-gnu": ["@next/swc-linux-x64-gnu@15.5.12", "", { "os": "linux", "cpu": "x64" }, "sha512-jSLvgdRRL/hrFAPqEjJf1fFguC719kmcptjNVDJl26BnJIpjL3KH5h6mzR4mAweociLQaqvt4UyzfbFjgAdDcw=="], + + "@next/swc-linux-x64-musl": ["@next/swc-linux-x64-musl@15.5.12", "", { "os": "linux", "cpu": "x64" }, "sha512-/uaF0WfmYqQgLfPmN6BvULwxY0dufI2mlN2JbOKqqceZh1G4hjREyi7pg03zjfyS6eqNemHAZPSoP84x17vo6w=="], + + "@next/swc-win32-arm64-msvc": ["@next/swc-win32-arm64-msvc@15.5.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-xhsL1OvQSfGmlL5RbOmU+FV120urrgFpYLq+6U8C6KIym32gZT6XF/SDE92jKzzlPWskkbjOKCpqk5m4i8PEfg=="], + + "@next/swc-win32-x64-msvc": ["@next/swc-win32-x64-msvc@15.5.12", "", { "os": "win32", "cpu": "x64" }, "sha512-Z1Dh6lhFkxvBDH1FoW6OU/L6prYwPSlwjLiZkExIAh8fbP6iI/M7iGTQAJPYJ9YFlWobCZ1PHbchFhFYb2ADkw=="], + + "@noble/ciphers": ["@noble/ciphers@1.3.0", "", {}, "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw=="], + + "@noble/curves": ["@noble/curves@1.9.7", "", { "dependencies": { "@noble/hashes": "1.8.0" } }, "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw=="], + + "@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], + + "@node-minify/core": ["@node-minify/core@8.0.6", "", { "dependencies": { "@node-minify/utils": "8.0.6", "glob": "9.3.5", "mkdirp": "1.0.4" } }, "sha512-/vxN46ieWDLU67CmgbArEvOb41zlYFOkOtr9QW9CnTrBLuTyGgkyNWC2y5+khvRw3Br58p2B5ZVSx/PxCTru6g=="], + + "@node-minify/terser": ["@node-minify/terser@8.0.6", "", { "dependencies": { "@node-minify/utils": "8.0.6", "terser": "5.16.9" } }, "sha512-grQ1ipham743ch2c3++C8Isk6toJnxJSyDiwUI/IWUCh4CZFD6aYVw6UAY40IpCnjrq5aXGwiv5OZJn6Pr0hvg=="], + + "@node-minify/utils": ["@node-minify/utils@8.0.6", "", { "dependencies": { "gzip-size": "6.0.0" } }, "sha512-csY4qcR7jUwiZmkreNTJhcypQfts2aY2CK+a+rXgXUImZiZiySh0FvwHjRnlqWKvg+y6ae9lHFzDRjBTmqlTIQ=="], + + "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "1.2.0" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="], + + "@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="], + + "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "1.20.1" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="], + + "@nolyfill/is-core-module": ["@nolyfill/is-core-module@1.0.39", "", {}, "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA=="], + + "@opennextjs/aws": ["@opennextjs/aws@3.9.16", "", { "dependencies": { "@ast-grep/napi": "0.40.5", "@aws-sdk/client-cloudfront": "3.984.0", "@aws-sdk/client-dynamodb": "3.984.0", "@aws-sdk/client-lambda": "3.984.0", "@aws-sdk/client-s3": "3.984.0", "@aws-sdk/client-sqs": "3.984.0", "@node-minify/core": "8.0.6", "@node-minify/terser": "8.0.6", "@tsconfig/node18": "1.0.3", "aws4fetch": "1.0.20", "chalk": "5.6.2", "cookie": "1.1.1", "esbuild": "0.25.4", "express": "5.2.1", "path-to-regexp": "6.3.0", "urlpattern-polyfill": "10.1.0", "yaml": "2.8.2" }, "peerDependencies": { "next": "16.1.6" }, "bin": { "open-next": "dist/index.js" } }, "sha512-jQQStCysIllNCPqz5W2KSguXpr+ETlOcD8SyNu+h9zwpRVYk4uEPQge+ErG3avI5xsT8vKA7EGLYG59dhj/B6Q=="], + + "@opennextjs/cloudflare": ["@opennextjs/cloudflare@1.17.1", "", { "dependencies": { "@ast-grep/napi": "0.40.5", "@dotenvx/dotenvx": "1.31.0", "@opennextjs/aws": "3.9.16", "cloudflare": "4.5.0", "comment-json": "4.6.2", "enquirer": "2.4.1", "glob": "12.0.0", "ts-tqdm": "0.8.6", "yargs": "18.0.0" }, "peerDependencies": { "next": "16.1.6", "wrangler": "4.70.0" }, "bin": { "opennextjs-cloudflare": "dist/cli/index.js" } }, "sha512-TtmjhXUEpSbnb9kgr7IQtmlQugOeX0cHiLc/e6NYAnmqQVro3yN49WvzaclSGFZod/lJFW7pOJ0NGT6JpqypAw=="], + + "@pkgr/core": ["@pkgr/core@0.1.2", "", {}, "sha512-fdDH1LSGfZdTH2sxdpVMw31BanV28K/Gry0cVFxaNP77neJSkd82mM8ErPNYs9e+0O7SdHBLTDzDgwUuy18RnQ=="], + + "@planetscale/database": ["@planetscale/database@1.19.0", "", {}, "sha512-Tv4jcFUFAFjOWrGSio49H6R2ijALv0ZzVBfJKIdm+kl9X046Fh4LLawrF9OMsglVbK6ukqMJsUCeucGAFTBcMA=="], + + "@polka/url": ["@polka/url@1.0.0-next.29", "", {}, "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww=="], + + "@poppinss/colors": ["@poppinss/colors@4.1.6", "", { "dependencies": { "kleur": "4.1.5" } }, "sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg=="], + + "@poppinss/dumper": ["@poppinss/dumper@0.6.5", "", { "dependencies": { "@poppinss/colors": "4.1.6", "@sindresorhus/is": "7.2.0", "supports-color": "10.2.2" } }, "sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw=="], + + "@poppinss/exception": ["@poppinss/exception@1.2.3", "", {}, "sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw=="], + + "@radix-ui/number": ["@radix-ui/number@1.1.1", "", {}, "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g=="], + + "@radix-ui/primitive": ["@radix-ui/primitive@1.1.3", "", {}, "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg=="], + + "@radix-ui/react-accordion": ["@radix-ui/react-accordion@1.2.12", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-collapsible": "1.1.12", "@radix-ui/react-collection": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-controllable-state": "1.2.2" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA=="], + + "@radix-ui/react-arrow": ["@radix-ui/react-arrow@1.1.7", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.3" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w=="], + + "@radix-ui/react-avatar": ["@radix-ui/react-avatar@1.1.11", "", { "dependencies": { "@radix-ui/react-context": "1.1.3", "@radix-ui/react-primitive": "2.1.4", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-is-hydrated": "0.1.0", "@radix-ui/react-use-layout-effect": "1.1.1" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-0Qk603AHGV28BOBO34p7IgD5m+V5Sg/YovfayABkoDDBM5d3NCx0Mp4gGrjzLGes1jV5eNOE1r3itqOR33VC6Q=="], + + "@radix-ui/react-checkbox": ["@radix-ui/react-checkbox@1.3.3", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-presence": "1.1.5", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-controllable-state": "1.2.2", "@radix-ui/react-use-previous": "1.1.1", "@radix-ui/react-use-size": "1.1.1" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw=="], + + "@radix-ui/react-collapsible": ["@radix-ui/react-collapsible@1.1.12", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-presence": "1.1.5", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-controllable-state": "1.2.2", "@radix-ui/react-use-layout-effect": "1.1.1" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA=="], + + "@radix-ui/react-collection": ["@radix-ui/react-collection@1.1.7", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-slot": "1.2.3" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw=="], + + "@radix-ui/react-compose-refs": ["@radix-ui/react-compose-refs@1.1.2", "", { "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg=="], + + "@radix-ui/react-context": ["@radix-ui/react-context@1.1.2", "", { "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA=="], + + "@radix-ui/react-context-menu": ["@radix-ui/react-context-menu@2.2.16", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-menu": "2.1.16", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-controllable-state": "1.2.2" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-O8morBEW+HsVG28gYDZPTrT9UUovQUlJue5YO836tiTJhuIWBm/zQHc7j388sHWtdH/xUZurK9olD2+pcqx5ww=="], + + "@radix-ui/react-dialog": ["@radix-ui/react-dialog@1.1.15", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-dismissable-layer": "1.1.11", "@radix-ui/react-focus-guards": "1.1.3", "@radix-ui/react-focus-scope": "1.1.7", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-portal": "1.1.9", "@radix-ui/react-presence": "1.1.5", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-slot": "1.2.3", "@radix-ui/react-use-controllable-state": "1.2.2", "aria-hidden": "1.2.6", "react-remove-scroll": "2.7.2" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw=="], + + "@radix-ui/react-direction": ["@radix-ui/react-direction@1.1.1", "", { "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw=="], + + "@radix-ui/react-dismissable-layer": ["@radix-ui/react-dismissable-layer@1.1.11", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-escape-keydown": "1.1.1" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg=="], + + "@radix-ui/react-dropdown-menu": ["@radix-ui/react-dropdown-menu@2.1.16", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-menu": "2.1.16", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-controllable-state": "1.2.2" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw=="], + + "@radix-ui/react-focus-guards": ["@radix-ui/react-focus-guards@1.1.3", "", { "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw=="], + + "@radix-ui/react-focus-scope": ["@radix-ui/react-focus-scope@1.1.7", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw=="], + + "@radix-ui/react-icons": ["@radix-ui/react-icons@1.3.2", "", { "peerDependencies": { "react": "19.2.4" } }, "sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g=="], + + "@radix-ui/react-id": ["@radix-ui/react-id@1.1.1", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.1" }, "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg=="], + + "@radix-ui/react-label": ["@radix-ui/react-label@2.1.8", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.4" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-FmXs37I6hSBVDlO4y764TNz1rLgKwjJMQ0EGte6F3Cb3f4bIuHB/iLa/8I9VKkmOy+gNHq8rql3j686ACVV21A=="], + + "@radix-ui/react-menu": ["@radix-ui/react-menu@2.1.16", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-collection": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", "@radix-ui/react-dismissable-layer": "1.1.11", "@radix-ui/react-focus-guards": "1.1.3", "@radix-ui/react-focus-scope": "1.1.7", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-popper": "1.2.8", "@radix-ui/react-portal": "1.1.9", "@radix-ui/react-presence": "1.1.5", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-roving-focus": "1.1.11", "@radix-ui/react-slot": "1.2.3", "@radix-ui/react-use-callback-ref": "1.1.1", "aria-hidden": "1.2.6", "react-remove-scroll": "2.7.2" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg=="], + + "@radix-ui/react-popover": ["@radix-ui/react-popover@1.1.15", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-dismissable-layer": "1.1.11", "@radix-ui/react-focus-guards": "1.1.3", "@radix-ui/react-focus-scope": "1.1.7", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-popper": "1.2.8", "@radix-ui/react-portal": "1.1.9", "@radix-ui/react-presence": "1.1.5", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-slot": "1.2.3", "@radix-ui/react-use-controllable-state": "1.2.2", "aria-hidden": "1.2.6", "react-remove-scroll": "2.7.2" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA=="], + + "@radix-ui/react-popper": ["@radix-ui/react-popper@1.2.8", "", { "dependencies": { "@floating-ui/react-dom": "2.1.8", "@radix-ui/react-arrow": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-layout-effect": "1.1.1", "@radix-ui/react-use-rect": "1.1.1", "@radix-ui/react-use-size": "1.1.1", "@radix-ui/rect": "1.1.1" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw=="], + + "@radix-ui/react-portal": ["@radix-ui/react-portal@1.1.9", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-layout-effect": "1.1.1" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ=="], + + "@radix-ui/react-presence": ["@radix-ui/react-presence@1.1.5", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-use-layout-effect": "1.1.1" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ=="], + + "@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.3", "", { "dependencies": { "@radix-ui/react-slot": "1.2.3" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ=="], + + "@radix-ui/react-progress": ["@radix-ui/react-progress@1.1.8", "", { "dependencies": { "@radix-ui/react-context": "1.1.3", "@radix-ui/react-primitive": "2.1.4" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-+gISHcSPUJ7ktBy9RnTqbdKW78bcGke3t6taawyZ71pio1JewwGSJizycs7rLhGTvMJYCQB1DBK4KQsxs7U8dA=="], + + "@radix-ui/react-roving-focus": ["@radix-ui/react-roving-focus@1.1.11", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-collection": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-controllable-state": "1.2.2" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA=="], + + "@radix-ui/react-scroll-area": ["@radix-ui/react-scroll-area@1.2.10", "", { "dependencies": { "@radix-ui/number": "1.1.1", "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", "@radix-ui/react-presence": "1.1.5", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-layout-effect": "1.1.1" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A=="], + + "@radix-ui/react-select": ["@radix-ui/react-select@2.2.6", "", { "dependencies": { "@radix-ui/number": "1.1.1", "@radix-ui/primitive": "1.1.3", "@radix-ui/react-collection": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", "@radix-ui/react-dismissable-layer": "1.1.11", "@radix-ui/react-focus-guards": "1.1.3", "@radix-ui/react-focus-scope": "1.1.7", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-popper": "1.2.8", "@radix-ui/react-portal": "1.1.9", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-slot": "1.2.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-controllable-state": "1.2.2", "@radix-ui/react-use-layout-effect": "1.1.1", "@radix-ui/react-use-previous": "1.1.1", "@radix-ui/react-visually-hidden": "1.2.3", "aria-hidden": "1.2.6", "react-remove-scroll": "2.7.2" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ=="], + + "@radix-ui/react-separator": ["@radix-ui/react-separator@1.1.8", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.4" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-sDvqVY4itsKwwSMEe0jtKgfTh+72Sy3gPmQpjqcQneqQ4PFmr/1I0YA+2/puilhggCe2gJcx5EBAYFkWkdpa5g=="], + + "@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.4", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA=="], + + "@radix-ui/react-switch": ["@radix-ui/react-switch@1.2.6", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-controllable-state": "1.2.2", "@radix-ui/react-use-previous": "1.1.1", "@radix-ui/react-use-size": "1.1.1" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ=="], + + "@radix-ui/react-tabs": ["@radix-ui/react-tabs@1.1.13", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-presence": "1.1.5", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-roving-focus": "1.1.11", "@radix-ui/react-use-controllable-state": "1.2.2" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A=="], + + "@radix-ui/react-toast": ["@radix-ui/react-toast@1.2.15", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-collection": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-dismissable-layer": "1.1.11", "@radix-ui/react-portal": "1.1.9", "@radix-ui/react-presence": "1.1.5", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-controllable-state": "1.2.2", "@radix-ui/react-use-layout-effect": "1.1.1", "@radix-ui/react-visually-hidden": "1.2.3" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-3OSz3TacUWy4WtOXV38DggwxoqJK4+eDkNMl5Z/MJZaoUPaP4/9lf81xXMe1I2ReTAptverZUpbPY4wWwWyL5g=="], + + "@radix-ui/react-toggle": ["@radix-ui/react-toggle@1.1.10", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-controllable-state": "1.2.2" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ=="], + + "@radix-ui/react-toggle-group": ["@radix-ui/react-toggle-group@1.1.11", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-roving-focus": "1.1.11", "@radix-ui/react-toggle": "1.1.10", "@radix-ui/react-use-controllable-state": "1.2.2" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-5umnS0T8JQzQT6HbPyO7Hh9dgd82NmS36DQr+X/YJ9ctFNCiiQd6IJAYYZ33LUwm8M+taCz5t2ui29fHZc4Y6Q=="], + + "@radix-ui/react-tooltip": ["@radix-ui/react-tooltip@1.2.8", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-dismissable-layer": "1.1.11", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-popper": "1.2.8", "@radix-ui/react-portal": "1.1.9", "@radix-ui/react-presence": "1.1.5", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-slot": "1.2.3", "@radix-ui/react-use-controllable-state": "1.2.2", "@radix-ui/react-visually-hidden": "1.2.3" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg=="], + + "@radix-ui/react-use-callback-ref": ["@radix-ui/react-use-callback-ref@1.1.1", "", { "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg=="], + + "@radix-ui/react-use-controllable-state": ["@radix-ui/react-use-controllable-state@1.2.2", "", { "dependencies": { "@radix-ui/react-use-effect-event": "0.0.2", "@radix-ui/react-use-layout-effect": "1.1.1" }, "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg=="], + + "@radix-ui/react-use-effect-event": ["@radix-ui/react-use-effect-event@0.0.2", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.1" }, "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA=="], + + "@radix-ui/react-use-escape-keydown": ["@radix-ui/react-use-escape-keydown@1.1.1", "", { "dependencies": { "@radix-ui/react-use-callback-ref": "1.1.1" }, "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g=="], + + "@radix-ui/react-use-is-hydrated": ["@radix-ui/react-use-is-hydrated@0.1.0", "", { "dependencies": { "use-sync-external-store": "1.6.0" }, "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA=="], + + "@radix-ui/react-use-layout-effect": ["@radix-ui/react-use-layout-effect@1.1.1", "", { "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ=="], + + "@radix-ui/react-use-previous": ["@radix-ui/react-use-previous@1.1.1", "", { "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ=="], + + "@radix-ui/react-use-rect": ["@radix-ui/react-use-rect@1.1.1", "", { "dependencies": { "@radix-ui/rect": "1.1.1" }, "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w=="], + + "@radix-ui/react-use-size": ["@radix-ui/react-use-size@1.1.1", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.1" }, "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ=="], + + "@radix-ui/react-visually-hidden": ["@radix-ui/react-visually-hidden@1.2.3", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.3" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug=="], + + "@radix-ui/rect": ["@radix-ui/rect@1.1.1", "", {}, "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw=="], + + "@react-hook/media-query": ["@react-hook/media-query@1.1.1", "", { "peerDependencies": { "react": "19.2.4" } }, "sha512-VM14wDOX5CW5Dn6b2lTiMd79BFMTut9AZj2+vIRT3LCKgMCYmdqruTtzDPSnIVDQdtxdPgtOzvU9oK20LopuOw=="], + + "@rtsao/scc": ["@rtsao/scc@1.1.0", "", {}, "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g=="], + + "@rushstack/eslint-patch": ["@rushstack/eslint-patch@1.16.1", "", {}, "sha512-TvZbIpeKqGQQ7X0zSCvPH9riMSFQFSggnfBjFZ1mEoILW+UuXCKwOoPcgjMwiUtRqFZ8jWhPJc4um14vC6I4ag=="], + + "@sindresorhus/is": ["@sindresorhus/is@7.2.0", "", {}, "sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw=="], + + "@smithy/abort-controller": ["@smithy/abort-controller@4.2.10", "", { "dependencies": { "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-qocxM/X4XGATqQtUkbE9SPUB6wekBi+FyJOMbPj0AhvyvFGYEmOlz6VB22iMePCQsFmMIvFSeViDvA7mZJG47g=="], + + "@smithy/chunked-blob-reader": ["@smithy/chunked-blob-reader@5.2.1", "", { "dependencies": { "tslib": "2.8.1" } }, "sha512-y5d4xRiD6TzeP5BWlb+Ig/VFqF+t9oANNhGeMqyzU7obw7FYgTgVi50i5JqBTeKp+TABeDIeeXFZdz65RipNtA=="], + + "@smithy/chunked-blob-reader-native": ["@smithy/chunked-blob-reader-native@4.2.2", "", { "dependencies": { "@smithy/util-base64": "4.3.1", "tslib": "2.8.1" } }, "sha512-QzzYIlf4yg0w5TQaC9VId3B3ugSk1MI/wb7tgcHtd7CBV9gNRKZrhc2EPSxSZuDy10zUZ0lomNMgkc6/VVe8xg=="], + + "@smithy/config-resolver": ["@smithy/config-resolver@4.4.9", "", { "dependencies": { "@smithy/node-config-provider": "4.3.10", "@smithy/types": "4.13.0", "@smithy/util-config-provider": "4.2.1", "@smithy/util-endpoints": "3.3.1", "@smithy/util-middleware": "4.2.10", "tslib": "2.8.1" } }, "sha512-ejQvXqlcU30h7liR9fXtj7PIAau1t/sFbJpgWPfiYDs7zd16jpH0IsSXKcba2jF6ChTXvIjACs27kNMc5xxE2Q=="], + + "@smithy/core": ["@smithy/core@3.23.7", "", { "dependencies": { "@smithy/middleware-serde": "4.2.11", "@smithy/protocol-http": "5.3.10", "@smithy/types": "4.13.0", "@smithy/util-base64": "4.3.1", "@smithy/util-body-length-browser": "4.2.1", "@smithy/util-middleware": "4.2.10", "@smithy/util-stream": "4.5.16", "@smithy/util-utf8": "4.2.1", "@smithy/uuid": "1.1.1", "tslib": "2.8.1" } }, "sha512-/+ldRdtiO5Cb26afAZOG1FZM0x7D4AYdjpyOv2OScJw+4C7X+OLdRnNKF5UyUE0VpPgSKr3rnF/kvprRA4h2kg=="], + + "@smithy/credential-provider-imds": ["@smithy/credential-provider-imds@4.2.10", "", { "dependencies": { "@smithy/node-config-provider": "4.3.10", "@smithy/property-provider": "4.2.10", "@smithy/types": "4.13.0", "@smithy/url-parser": "4.2.10", "tslib": "2.8.1" } }, "sha512-3bsMLJJLTZGZqVGGeBVFfLzuRulVsGTj12BzRKODTHqUABpIr0jMN1vN3+u6r2OfyhAQ2pXaMZWX/swBK5I6PQ=="], + + "@smithy/eventstream-codec": ["@smithy/eventstream-codec@4.2.10", "", { "dependencies": { "@aws-crypto/crc32": "5.2.0", "@smithy/types": "4.13.0", "@smithy/util-hex-encoding": "4.2.1", "tslib": "2.8.1" } }, "sha512-A4ynrsFFfSXUHicfTcRehytppFBcY3HQxEGYiyGktPIOye3Ot7fxpiy4VR42WmtGI4Wfo6OXt/c1Ky1nUFxYYQ=="], + + "@smithy/eventstream-serde-browser": ["@smithy/eventstream-serde-browser@4.2.10", "", { "dependencies": { "@smithy/eventstream-serde-universal": "4.2.10", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-0xupsu9yj9oDVuQ50YCTS9nuSYhGlrwqdaKQel9y2Fz7LU9fNErVlw9N0o4pm4qqvWEGbSTI4HKc6XJfB30MVw=="], + + "@smithy/eventstream-serde-config-resolver": ["@smithy/eventstream-serde-config-resolver@4.3.10", "", { "dependencies": { "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-8kn6sinrduk0yaYHMJDsNuiFpXwQwibR7n/4CDUqn4UgaG+SeBHu5jHGFdU9BLFAM7Q4/gvr9RYxBHz9/jKrhA=="], + + "@smithy/eventstream-serde-node": ["@smithy/eventstream-serde-node@4.2.10", "", { "dependencies": { "@smithy/eventstream-serde-universal": "4.2.10", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-uUrxPGgIffnYfvIOUmBM5i+USdEBRTdh7mLPttjphgtooxQ8CtdO1p6K5+Q4BBAZvKlvtJ9jWyrWpBJYzBKsyQ=="], + + "@smithy/eventstream-serde-universal": ["@smithy/eventstream-serde-universal@4.2.10", "", { "dependencies": { "@smithy/eventstream-codec": "4.2.10", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-aArqzOEvcs2dK+xQVCgLbpJQGfZihw8SD4ymhkwNTtwKbnrzdhJsFDKuMQnam2kF69WzgJYOU5eJlCx+CA32bw=="], + + "@smithy/fetch-http-handler": ["@smithy/fetch-http-handler@5.3.12", "", { "dependencies": { "@smithy/protocol-http": "5.3.10", "@smithy/querystring-builder": "4.2.10", "@smithy/types": "4.13.0", "@smithy/util-base64": "4.3.1", "tslib": "2.8.1" } }, "sha512-muS5tFw+A/uo+U+yig06vk1776UFM+aAp9hFM8efI4ZcHhTcgv6NTeK4x7ltHeMPBwnhEjcf0MULTyxNkSNxDw=="], + + "@smithy/hash-blob-browser": ["@smithy/hash-blob-browser@4.2.11", "", { "dependencies": { "@smithy/chunked-blob-reader": "5.2.1", "@smithy/chunked-blob-reader-native": "4.2.2", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-DrcAx3PM6AEbWZxsKl6CWAGnVwiz28Wp1ZhNu+Hi4uI/6C1PIZBIaPM2VoqBDAsOWbM6ZVzOEQMxFLLdmb4eBQ=="], + + "@smithy/hash-node": ["@smithy/hash-node@4.2.10", "", { "dependencies": { "@smithy/types": "4.13.0", "@smithy/util-buffer-from": "4.2.1", "@smithy/util-utf8": "4.2.1", "tslib": "2.8.1" } }, "sha512-1VzIOI5CcsvMDvP3iv1vG/RfLJVVVc67dCRyLSB2Hn9SWCZrDO3zvcIzj3BfEtqRW5kcMg5KAeVf1K3dR6nD3w=="], + + "@smithy/hash-stream-node": ["@smithy/hash-stream-node@4.2.10", "", { "dependencies": { "@smithy/types": "4.13.0", "@smithy/util-utf8": "4.2.1", "tslib": "2.8.1" } }, "sha512-w78xsYrOlwXKwN5tv1GnKIRbHb1HygSpeZMP6xDxCPGf1U/xDHjCpJu64c5T35UKyEPwa0bPeIcvU69VY3khUA=="], + + "@smithy/invalid-dependency": ["@smithy/invalid-dependency@4.2.10", "", { "dependencies": { "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-vy9KPNSFUU0ajFYk0sDZIYiUlAWGEAhRfehIr5ZkdFrRFTAuXEPUd41USuqHU6vvLX4r6Q9X7MKBco5+Il0Org=="], + + "@smithy/is-array-buffer": ["@smithy/is-array-buffer@4.2.1", "", { "dependencies": { "tslib": "2.8.1" } }, "sha512-Yfu664Qbf1B4IYIsYgKoABt010daZjkaCRvdU/sPnZG6TtHOB0md0RjNdLGzxe5UIdn9js4ftPICzmkRa9RJ4Q=="], + + "@smithy/md5-js": ["@smithy/md5-js@4.2.10", "", { "dependencies": { "@smithy/types": "4.13.0", "@smithy/util-utf8": "4.2.1", "tslib": "2.8.1" } }, "sha512-Op+Dh6dPLWTjWITChFayDllIaCXRofOed8ecpggTC5fkh8yXes0vAEX7gRUfjGK+TlyxoCAA05gHbZW/zB9JwQ=="], + + "@smithy/middleware-content-length": ["@smithy/middleware-content-length@4.2.10", "", { "dependencies": { "@smithy/protocol-http": "5.3.10", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-TQZ9kX5c6XbjhaEBpvhSvMEZ0klBs1CFtOdPFwATZSbC9UeQfKHPLPN9Y+I6wZGMOavlYTOlHEPDrt42PMSH9w=="], + + "@smithy/middleware-endpoint": ["@smithy/middleware-endpoint@4.4.21", "", { "dependencies": { "@smithy/core": "3.23.7", "@smithy/middleware-serde": "4.2.11", "@smithy/node-config-provider": "4.3.10", "@smithy/shared-ini-file-loader": "4.4.5", "@smithy/types": "4.13.0", "@smithy/url-parser": "4.2.10", "@smithy/util-middleware": "4.2.10", "tslib": "2.8.1" } }, "sha512-CoVGZaqIC0tEjz0ga3ciwCMA5fd/4lIOwO2wx0fH+cTi1zxSFZnMJbIiIF9G1d4vRSDyTupDrpS3FKBBJGkRZg=="], + + "@smithy/middleware-retry": ["@smithy/middleware-retry@4.4.38", "", { "dependencies": { "@smithy/node-config-provider": "4.3.10", "@smithy/protocol-http": "5.3.10", "@smithy/service-error-classification": "4.2.10", "@smithy/smithy-client": "4.12.1", "@smithy/types": "4.13.0", "@smithy/util-middleware": "4.2.10", "@smithy/util-retry": "4.2.10", "@smithy/uuid": "1.1.1", "tslib": "2.8.1" } }, "sha512-WdHvdhjE6Fj78vxFwDKFDwlqGOGRUWrwGeuENUbTVE46Su9mnQM+dXHtbnCaQvwuSYrRsjpe8zUsFpwUp/azlA=="], + + "@smithy/middleware-serde": ["@smithy/middleware-serde@4.2.11", "", { "dependencies": { "@smithy/protocol-http": "5.3.10", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-STQdONGPwbbC7cusL60s7vOa6He6A9w2jWhoapL0mgVjmR19pr26slV+yoSP76SIssMTX/95e5nOZ6UQv6jolg=="], + + "@smithy/middleware-stack": ["@smithy/middleware-stack@4.2.10", "", { "dependencies": { "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-pmts/WovNcE/tlyHa8z/groPeOtqtEpp61q3W0nW1nDJuMq/x+hWa/OVQBtgU0tBqupeXq0VBOLA4UZwE8I0YA=="], + + "@smithy/node-config-provider": ["@smithy/node-config-provider@4.3.10", "", { "dependencies": { "@smithy/property-provider": "4.2.10", "@smithy/shared-ini-file-loader": "4.4.5", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-UALRbJtVX34AdP2VECKVlnNgidLHA2A7YgcJzwSBg1hzmnO/bZBHl/LDQQyYifzUwp1UOODnl9JJ3KNawpUJ9w=="], + + "@smithy/node-http-handler": ["@smithy/node-http-handler@4.4.13", "", { "dependencies": { "@smithy/abort-controller": "4.2.10", "@smithy/protocol-http": "5.3.10", "@smithy/querystring-builder": "4.2.10", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-o8CP8w6tlUA0lk+Qfwm6Ed0jCWk3bEY6iBOJjdBaowbXKCSClk8zIHQvUL6RUZMvuNafF27cbRCMYqw6O1v4aA=="], + + "@smithy/property-provider": ["@smithy/property-provider@4.2.10", "", { "dependencies": { "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-5jm60P0CU7tom0eNrZ7YrkgBaoLFXzmqB0wVS+4uK8PPGmosSrLNf6rRd50UBvukztawZ7zyA8TxlrKpF5z9jw=="], + + "@smithy/protocol-http": ["@smithy/protocol-http@5.3.10", "", { "dependencies": { "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-2NzVWpYY0tRdfeCJLsgrR89KE3NTWT2wGulhNUxYlRmtRmPwLQwKzhrfVaiNlA9ZpJvbW7cjTVChYKgnkqXj1A=="], + + "@smithy/querystring-builder": ["@smithy/querystring-builder@4.2.10", "", { "dependencies": { "@smithy/types": "4.13.0", "@smithy/util-uri-escape": "4.2.1", "tslib": "2.8.1" } }, "sha512-HeN7kEvuzO2DmAzLukE9UryiUvejD3tMp9a1D1NJETerIfKobBUCLfviP6QEk500166eD2IATaXM59qgUI+YDA=="], + + "@smithy/querystring-parser": ["@smithy/querystring-parser@4.2.10", "", { "dependencies": { "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-4Mh18J26+ao1oX5wXJfWlTT+Q1OpDR8ssiC9PDOuEgVBGloqg18Fw7h5Ct8DyT9NBYwJgtJ2nLjKKFU6RP1G1Q=="], + + "@smithy/service-error-classification": ["@smithy/service-error-classification@4.2.10", "", { "dependencies": { "@smithy/types": "4.13.0" } }, "sha512-0R/+/Il5y8nB/By90o8hy/bWVYptbIfvoTYad0igYQO5RefhNCDmNzqxaMx7K1t/QWo0d6UynqpqN5cCQt1MCg=="], + + "@smithy/shared-ini-file-loader": ["@smithy/shared-ini-file-loader@4.4.5", "", { "dependencies": { "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-pHgASxl50rrtOztgQCPmOXFjRW+mCd7ALr/3uXNzRrRoGV5G2+78GOsQ3HlQuBVHCh9o6xqMNvlIKZjWn4Euug=="], + + "@smithy/signature-v4": ["@smithy/signature-v4@5.3.10", "", { "dependencies": { "@smithy/is-array-buffer": "4.2.1", "@smithy/protocol-http": "5.3.10", "@smithy/types": "4.13.0", "@smithy/util-hex-encoding": "4.2.1", "@smithy/util-middleware": "4.2.10", "@smithy/util-uri-escape": "4.2.1", "@smithy/util-utf8": "4.2.1", "tslib": "2.8.1" } }, "sha512-Wab3wW8468WqTKIxI+aZe3JYO52/RYT/8sDOdzkUhjnLakLe9qoQqIcfih/qxcF4qWEFoWBszY0mj5uxffaVXA=="], + + "@smithy/smithy-client": ["@smithy/smithy-client@4.12.1", "", { "dependencies": { "@smithy/core": "3.23.7", "@smithy/middleware-endpoint": "4.4.21", "@smithy/middleware-stack": "4.2.10", "@smithy/protocol-http": "5.3.10", "@smithy/types": "4.13.0", "@smithy/util-stream": "4.5.16", "tslib": "2.8.1" } }, "sha512-Xf9UFHlAihewfkmLNZ6I/Ek6kcYBKoU3cbRS9Z4q++9GWoW0YFbAHs7wMbuXm+nGuKHZ5OKheZMuDdaWPv8DJw=="], + + "@smithy/types": ["@smithy/types@4.13.0", "", { "dependencies": { "tslib": "2.8.1" } }, "sha512-COuLsZILbbQsdrwKQpkkpyep7lCsByxwj7m0Mg5v66/ZTyenlfBc40/QFQ5chO0YN/PNEH1Bi3fGtfXPnYNeDw=="], + + "@smithy/url-parser": ["@smithy/url-parser@4.2.10", "", { "dependencies": { "@smithy/querystring-parser": "4.2.10", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-uypjF7fCDsRk26u3qHmFI/ePL7bxxB9vKkE+2WKEciHhz+4QtbzWiHRVNRJwU3cKhrYDYQE3b0MRFtqfLYdA4A=="], + + "@smithy/util-base64": ["@smithy/util-base64@4.3.1", "", { "dependencies": { "@smithy/util-buffer-from": "4.2.1", "@smithy/util-utf8": "4.2.1", "tslib": "2.8.1" } }, "sha512-BKGuawX4Doq/bI/uEmg+Zyc36rJKWuin3py89PquXBIBqmbnJwBBsmKhdHfNEp0+A4TDgLmT/3MSKZ1SxHcR6w=="], + + "@smithy/util-body-length-browser": ["@smithy/util-body-length-browser@4.2.1", "", { "dependencies": { "tslib": "2.8.1" } }, "sha512-SiJeLiozrAoCrgDBUgsVbmqHmMgg/2bA15AzcbcW+zan7SuyAVHN4xTSbq0GlebAIwlcaX32xacnrG488/J/6g=="], + + "@smithy/util-body-length-node": ["@smithy/util-body-length-node@4.2.2", "", { "dependencies": { "tslib": "2.8.1" } }, "sha512-4rHqBvxtJEBvsZcFQSPQqXP2b/yy/YlB66KlcEgcH2WNoOKCKB03DSLzXmOsXjbl8dJ4OEYTn31knhdznwk7zw=="], + + "@smithy/util-buffer-from": ["@smithy/util-buffer-from@4.2.1", "", { "dependencies": { "@smithy/is-array-buffer": "4.2.1", "tslib": "2.8.1" } }, "sha512-/swhmt1qTiVkaejlmMPPDgZhEaWb/HWMGRBheaxwuVkusp/z+ErJyQxO6kaXumOciZSWlmq6Z5mNylCd33X7Ig=="], + + "@smithy/util-config-provider": ["@smithy/util-config-provider@4.2.1", "", { "dependencies": { "tslib": "2.8.1" } }, "sha512-462id/00U8JWFw6qBuTSWfN5TxOHvDu4WliI97qOIOnuC/g+NDAknTU8eoGXEPlLkRVgWEr03jJBLV4o2FL8+A=="], + + "@smithy/util-defaults-mode-browser": ["@smithy/util-defaults-mode-browser@4.3.37", "", { "dependencies": { "@smithy/property-provider": "4.2.10", "@smithy/smithy-client": "4.12.1", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-JlPZhV1kQCGNJgofRTU6E8kHrjCKsb6cps8gco8QDVaFl7biFYzHg0p1x89ytIWyVyCkY3nOpO8tJPM47Vqlww=="], + + "@smithy/util-defaults-mode-node": ["@smithy/util-defaults-mode-node@4.2.40", "", { "dependencies": { "@smithy/config-resolver": "4.4.9", "@smithy/credential-provider-imds": "4.2.10", "@smithy/node-config-provider": "4.3.10", "@smithy/property-provider": "4.2.10", "@smithy/smithy-client": "4.12.1", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-BM5cPEsyxHdYYO4Da77E94lenhaVPNUzBTyCGDkcw/n/mE8Q1cfHwr+n/w2bNPuUsPC30WaW5/hGKWOTKqw8kw=="], + + "@smithy/util-endpoints": ["@smithy/util-endpoints@3.3.1", "", { "dependencies": { "@smithy/node-config-provider": "4.3.10", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-xyctc4klmjmieQiF9I1wssBWleRV0RhJ2DpO8+8yzi2LO1Z+4IWOZNGZGNj4+hq9kdo+nyfrRLmQTzc16Op2Vg=="], + + "@smithy/util-hex-encoding": ["@smithy/util-hex-encoding@4.2.1", "", { "dependencies": { "tslib": "2.8.1" } }, "sha512-c1hHtkgAWmE35/50gmdKajgGAKV3ePJ7t6UtEmpfCWJmQE9BQAQPz0URUVI89eSkcDqCtzqllxzG28IQoZPvwA=="], + + "@smithy/util-middleware": ["@smithy/util-middleware@4.2.10", "", { "dependencies": { "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-LxaQIWLp4y0r72eA8mwPNQ9va4h5KeLM0I3M/HV9klmFaY2kN766wf5vsTzmaOpNNb7GgXAd9a25P3h8T49PSA=="], + + "@smithy/util-retry": ["@smithy/util-retry@4.2.10", "", { "dependencies": { "@smithy/service-error-classification": "4.2.10", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-HrBzistfpyE5uqTwiyLsFHscgnwB0kgv8vySp7q5kZ0Eltn/tjosaSGGDj/jJ9ys7pWzIP/icE2d+7vMKXLv7A=="], + + "@smithy/util-stream": ["@smithy/util-stream@4.5.16", "", { "dependencies": { "@smithy/fetch-http-handler": "5.3.12", "@smithy/node-http-handler": "4.4.13", "@smithy/types": "4.13.0", "@smithy/util-base64": "4.3.1", "@smithy/util-buffer-from": "4.2.1", "@smithy/util-hex-encoding": "4.2.1", "@smithy/util-utf8": "4.2.1", "tslib": "2.8.1" } }, "sha512-c7awZV6cxY0czgDDSr+Bz0XfRtg8AwW2BWhrHhLJISrpmwv8QzA2qzTllWyMVNdy1+UJr9vCm29hzuh3l8TTFw=="], + + "@smithy/util-uri-escape": ["@smithy/util-uri-escape@4.2.1", "", { "dependencies": { "tslib": "2.8.1" } }, "sha512-YmiUDn2eo2IOiWYYvGQkgX5ZkBSiTQu4FlDo5jNPpAxng2t6Sjb6WutnZV9l6VR4eJul1ABmCrnWBC9hKHQa6Q=="], + + "@smithy/util-utf8": ["@smithy/util-utf8@4.2.1", "", { "dependencies": { "@smithy/util-buffer-from": "4.2.1", "tslib": "2.8.1" } }, "sha512-DSIwNaWtmzrNQHv8g7DBGR9mulSit65KSj5ymGEIAknmIN8IpbZefEep10LaMG/P/xquwbmJ1h9ectz8z6mV6g=="], + + "@smithy/util-waiter": ["@smithy/util-waiter@4.2.10", "", { "dependencies": { "@smithy/abort-controller": "4.2.10", "@smithy/types": "4.13.0", "tslib": "2.8.1" } }, "sha512-4eTWph/Lkg1wZEDAyObwme0kmhEb7J/JjibY2znJdrYRgKbKqB7YoEhhJVJ4R1g/SYih4zuwX7LpJaM8RsnTVg=="], + + "@smithy/uuid": ["@smithy/uuid@1.1.1", "", { "dependencies": { "tslib": "2.8.1" } }, "sha512-dSfDCeihDmZlV2oyr0yWPTUfh07suS+R5OB+FZGiv/hHyK3hrFBW5rR1UYjfa57vBsrP9lciFkRPzebaV1Qujw=="], + + "@speed-highlight/core": ["@speed-highlight/core@1.2.14", "", {}, "sha512-G4ewlBNhUtlLvrJTb88d2mdy2KRijzs4UhnlrOSRT4bmjh/IqNElZa3zkrZ+TC47TwtlDWzVLFADljF1Ijp5hA=="], + + "@swc/helpers": ["@swc/helpers@0.5.15", "", { "dependencies": { "tslib": "2.8.1" } }, "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g=="], + + "@tabler/icons": ["@tabler/icons@3.38.0", "", {}, "sha512-FdETQSpQ3lN7BEjEUzjKhsfTDCamrvMDops4HEMphTm3DmkIFpThoODn8XXZ8Q9MhjshIvphIYVHHB7zpq167w=="], + + "@tabler/icons-react": ["@tabler/icons-react@3.38.0", "", { "dependencies": { "@tabler/icons": "3.38.0" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-kR5wv+m4+GgmnSszg3rQd6SrTFAQ/XnQC/yTwIfuRJSfqB12KoIC7fPbIijFgOHTFlBN5DARnN0IVrR7KYG6/A=="], + + "@tsconfig/node18": ["@tsconfig/node18@1.0.3", "", {}, "sha512-RbwvSJQsuN9TB04AQbGULYfOGE/RnSFk/FLQ5b0NmDf5Kx2q/lABZbHQPKCO1vZ6Fiwkplu+yb9pGdLy1iGseQ=="], + + "@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "2.8.1" } }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], + + "@types/cookie": ["@types/cookie@0.4.1", "", {}, "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q=="], + + "@types/esrecurse": ["@types/esrecurse@4.3.1", "", {}, "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw=="], + + "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], + + "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], + + "@types/json5": ["@types/json5@0.0.29", "", {}, "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="], + + "@types/node": ["@types/node@25.3.3", "", { "dependencies": { "undici-types": "7.18.2" } }, "sha512-DpzbrH7wIcBaJibpKo9nnSQL0MTRdnWttGyE5haGwK86xgMOkFLp7vEyfQPGLOJh5wNYiJ3V9PmUMDhV9u8kkQ=="], + + "@types/node-fetch": ["@types/node-fetch@2.6.13", "", { "dependencies": { "@types/node": "25.3.3", "form-data": "4.0.5" } }, "sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw=="], + + "@types/react": ["@types/react@19.2.14", "", { "dependencies": { "csstype": "3.2.3" } }, "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w=="], + + "@types/react-dom": ["@types/react-dom@19.2.3", "", { "peerDependencies": { "@types/react": "19.2.14" } }, "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ=="], + + "@types/xxhashjs": ["@types/xxhashjs@0.2.4", "", { "dependencies": { "@types/node": "25.3.3" } }, "sha512-E2+ZoJY2JjmVPN0iQM5gJvZkk98O2PYXSi6HrciEk3EKF34+mauEk/HgwTeCz+2r8HXHMKpucrwy4qTT12OPaQ=="], + + "@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.56.1", "", { "dependencies": { "@eslint-community/regexpp": "4.12.2", "@typescript-eslint/scope-manager": "8.56.1", "@typescript-eslint/type-utils": "8.56.1", "@typescript-eslint/utils": "8.56.1", "@typescript-eslint/visitor-keys": "8.56.1", "ignore": "7.0.5", "natural-compare": "1.4.0", "ts-api-utils": "2.4.0" }, "peerDependencies": { "@typescript-eslint/parser": "8.56.1", "eslint": "10.0.2", "typescript": "5.9.3" } }, "sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A=="], + + "@typescript-eslint/parser": ["@typescript-eslint/parser@8.56.1", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.56.1", "@typescript-eslint/types": "8.56.1", "@typescript-eslint/typescript-estree": "8.56.1", "@typescript-eslint/visitor-keys": "8.56.1", "debug": "4.4.3" }, "peerDependencies": { "eslint": "10.0.2", "typescript": "5.9.3" } }, "sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg=="], + + "@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.56.1", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "8.56.1", "@typescript-eslint/types": "8.56.1", "debug": "4.4.3" }, "peerDependencies": { "typescript": "5.9.3" } }, "sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ=="], + + "@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.56.1", "", { "dependencies": { "@typescript-eslint/types": "8.56.1", "@typescript-eslint/visitor-keys": "8.56.1" } }, "sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w=="], + + "@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.56.1", "", { "peerDependencies": { "typescript": "5.9.3" } }, "sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ=="], + + "@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.56.1", "", { "dependencies": { "@typescript-eslint/types": "8.56.1", "@typescript-eslint/typescript-estree": "8.56.1", "@typescript-eslint/utils": "8.56.1", "debug": "4.4.3", "ts-api-utils": "2.4.0" }, "peerDependencies": { "eslint": "10.0.2", "typescript": "5.9.3" } }, "sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg=="], + + "@typescript-eslint/types": ["@typescript-eslint/types@8.56.1", "", {}, "sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw=="], + + "@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.56.1", "", { "dependencies": { "@typescript-eslint/project-service": "8.56.1", "@typescript-eslint/tsconfig-utils": "8.56.1", "@typescript-eslint/types": "8.56.1", "@typescript-eslint/visitor-keys": "8.56.1", "debug": "4.4.3", "minimatch": "10.2.4", "semver": "7.7.4", "tinyglobby": "0.2.15", "ts-api-utils": "2.4.0" }, "peerDependencies": { "typescript": "5.9.3" } }, "sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg=="], + + "@typescript-eslint/utils": ["@typescript-eslint/utils@8.56.1", "", { "dependencies": { "@eslint-community/eslint-utils": "4.9.1", "@typescript-eslint/scope-manager": "8.56.1", "@typescript-eslint/types": "8.56.1", "@typescript-eslint/typescript-estree": "8.56.1" }, "peerDependencies": { "eslint": "10.0.2", "typescript": "5.9.3" } }, "sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA=="], + + "@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.56.1", "", { "dependencies": { "@typescript-eslint/types": "8.56.1", "eslint-visitor-keys": "5.0.1" } }, "sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw=="], + + "@typescript/native-preview": ["@typescript/native-preview@7.0.0-dev.20260303.1", "", { "optionalDependencies": { "@typescript/native-preview-darwin-arm64": "7.0.0-dev.20260303.1", "@typescript/native-preview-darwin-x64": "7.0.0-dev.20260303.1", "@typescript/native-preview-linux-arm": "7.0.0-dev.20260303.1", "@typescript/native-preview-linux-arm64": "7.0.0-dev.20260303.1", "@typescript/native-preview-linux-x64": "7.0.0-dev.20260303.1", "@typescript/native-preview-win32-arm64": "7.0.0-dev.20260303.1", "@typescript/native-preview-win32-x64": "7.0.0-dev.20260303.1" }, "bin": { "tsgo": "bin/tsgo.js" } }, "sha512-BDHJjXlPldInEogbzAc7OCLvT75p3rdkmb5YIA6Je0vjg+5z1UQp3moAvcBGvZQflO/gusOd9a74EfrMVUU/4g=="], + + "@typescript/native-preview-darwin-arm64": ["@typescript/native-preview-darwin-arm64@7.0.0-dev.20260303.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-jIIQWmFi0bJY4ML8/7eyz1EGpkI6E0R1E5l4lxJdV/orpMr91vYfAajKICs7DUiMGEJX9HpeiA6TD2piw4DKPQ=="], + + "@typescript/native-preview-darwin-x64": ["@typescript/native-preview-darwin-x64@7.0.0-dev.20260303.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-UkaK+J3f185VXBiAGNG4UKHjGzn4R/nhAz5tArnCKHnIUI7rEnsIm4Xlo5YwmgIATFMU1sVwWUwRshVkMVeFAw=="], + + "@typescript/native-preview-linux-arm": ["@typescript/native-preview-linux-arm@7.0.0-dev.20260303.1", "", { "os": "linux", "cpu": "arm" }, "sha512-H84jTRYqUfc/vhuVGQ6VKcBvJoZ4YmomWDx9U4uwYgW6eoUcRpDXqv3S3YqcNJcUmz22d/tTwIYz8ssXNLa/Qw=="], + + "@typescript/native-preview-linux-arm64": ["@typescript/native-preview-linux-arm64@7.0.0-dev.20260303.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-ELJSV2Q4/mK+ampttssOl4H9s9ZBCc3k7y/u5ivJX8TdlMvZuH/JHqI6cS4Y00flt0R5wc70X+Nlcor4I4+rpw=="], + + "@typescript/native-preview-linux-x64": ["@typescript/native-preview-linux-x64@7.0.0-dev.20260303.1", "", { "os": "linux", "cpu": "x64" }, "sha512-HkddFrPJ0jcrohe+HnCqVTv8PunjqNs7FisRmtIAnc36+ccraDB6MVFEdPyAIL3PUID+TP/ESquqeKNnB7HdrQ=="], + + "@typescript/native-preview-win32-arm64": ["@typescript/native-preview-win32-arm64@7.0.0-dev.20260303.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-kTTMrBpWuxbHPt9hAFQSWeP//5Oa0KOdAEvceOfXUJhTS8RAA/kZSlFGE/Zw1EtrFLQx2J7uTHUZnYxH1hYXNw=="], + + "@typescript/native-preview-win32-x64": ["@typescript/native-preview-win32-x64@7.0.0-dev.20260303.1", "", { "os": "win32", "cpu": "x64" }, "sha512-UcVZbf4pra46Yx/eFV6m9F+awvihliPEud4Rq+A8Q3q3zI67VRaNH6R2/qeo4AqqKRahmiEdLM6Tnm+gPtLRQQ=="], + + "@unrs/resolver-binding-android-arm-eabi": ["@unrs/resolver-binding-android-arm-eabi@1.11.1", "", { "os": "android", "cpu": "arm" }, "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw=="], + + "@unrs/resolver-binding-android-arm64": ["@unrs/resolver-binding-android-arm64@1.11.1", "", { "os": "android", "cpu": "arm64" }, "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g=="], + + "@unrs/resolver-binding-darwin-arm64": ["@unrs/resolver-binding-darwin-arm64@1.11.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g=="], + + "@unrs/resolver-binding-darwin-x64": ["@unrs/resolver-binding-darwin-x64@1.11.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ=="], + + "@unrs/resolver-binding-freebsd-x64": ["@unrs/resolver-binding-freebsd-x64@1.11.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw=="], + + "@unrs/resolver-binding-linux-arm-gnueabihf": ["@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1", "", { "os": "linux", "cpu": "arm" }, "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw=="], + + "@unrs/resolver-binding-linux-arm-musleabihf": ["@unrs/resolver-binding-linux-arm-musleabihf@1.11.1", "", { "os": "linux", "cpu": "arm" }, "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw=="], + + "@unrs/resolver-binding-linux-arm64-gnu": ["@unrs/resolver-binding-linux-arm64-gnu@1.11.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ=="], + + "@unrs/resolver-binding-linux-arm64-musl": ["@unrs/resolver-binding-linux-arm64-musl@1.11.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w=="], + + "@unrs/resolver-binding-linux-ppc64-gnu": ["@unrs/resolver-binding-linux-ppc64-gnu@1.11.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA=="], + + "@unrs/resolver-binding-linux-riscv64-gnu": ["@unrs/resolver-binding-linux-riscv64-gnu@1.11.1", "", { "os": "linux", "cpu": "none" }, "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ=="], + + "@unrs/resolver-binding-linux-riscv64-musl": ["@unrs/resolver-binding-linux-riscv64-musl@1.11.1", "", { "os": "linux", "cpu": "none" }, "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew=="], + + "@unrs/resolver-binding-linux-s390x-gnu": ["@unrs/resolver-binding-linux-s390x-gnu@1.11.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg=="], + + "@unrs/resolver-binding-linux-x64-gnu": ["@unrs/resolver-binding-linux-x64-gnu@1.11.1", "", { "os": "linux", "cpu": "x64" }, "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w=="], + + "@unrs/resolver-binding-linux-x64-musl": ["@unrs/resolver-binding-linux-x64-musl@1.11.1", "", { "os": "linux", "cpu": "x64" }, "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA=="], + + "@unrs/resolver-binding-wasm32-wasi": ["@unrs/resolver-binding-wasm32-wasi@1.11.1", "", { "dependencies": { "@napi-rs/wasm-runtime": "0.2.12" }, "cpu": "none" }, "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ=="], + + "@unrs/resolver-binding-win32-arm64-msvc": ["@unrs/resolver-binding-win32-arm64-msvc@1.11.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw=="], + + "@unrs/resolver-binding-win32-ia32-msvc": ["@unrs/resolver-binding-win32-ia32-msvc@1.11.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ=="], + + "@unrs/resolver-binding-win32-x64-msvc": ["@unrs/resolver-binding-win32-x64-msvc@1.11.1", "", { "os": "win32", "cpu": "x64" }, "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g=="], + + "abort-controller": ["abort-controller@3.0.0", "", { "dependencies": { "event-target-shim": "5.0.1" } }, "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg=="], + + "accepts": ["accepts@2.0.0", "", { "dependencies": { "mime-types": "3.0.2", "negotiator": "1.0.0" } }, "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng=="], + + "acorn": ["acorn@8.16.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw=="], + + "acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "8.16.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="], + + "acorn-walk": ["acorn-walk@8.3.5", "", { "dependencies": { "acorn": "8.16.0" } }, "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw=="], + + "agentkeepalive": ["agentkeepalive@4.6.0", "", { "dependencies": { "humanize-ms": "1.2.1" } }, "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ=="], + + "ajv": ["ajv@6.14.0", "", { "dependencies": { "fast-deep-equal": "3.1.3", "fast-json-stable-stringify": "2.1.0", "json-schema-traverse": "0.4.1", "uri-js": "4.4.1" } }, "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw=="], + + "ansi-colors": ["ansi-colors@4.1.3", "", {}, "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw=="], + + "ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + + "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + + "any-promise": ["any-promise@1.3.0", "", {}, "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="], + + "anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "3.0.0", "picomatch": "2.3.1" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="], + + "arg": ["arg@5.0.2", "", {}, "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="], + + "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], + + "aria-hidden": ["aria-hidden@1.2.6", "", { "dependencies": { "tslib": "2.8.1" } }, "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA=="], + + "aria-query": ["aria-query@5.3.2", "", {}, "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw=="], + + "array-buffer-byte-length": ["array-buffer-byte-length@1.0.2", "", { "dependencies": { "call-bound": "1.0.4", "is-array-buffer": "3.0.5" } }, "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw=="], + + "array-includes": ["array-includes@3.1.9", "", { "dependencies": { "call-bind": "1.0.8", "call-bound": "1.0.4", "define-properties": "1.2.1", "es-abstract": "1.24.1", "es-object-atoms": "1.1.1", "get-intrinsic": "1.3.0", "is-string": "1.1.1", "math-intrinsics": "1.1.0" } }, "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ=="], + + "array-timsort": ["array-timsort@1.0.3", "", {}, "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ=="], + + "array.prototype.findlast": ["array.prototype.findlast@1.2.5", "", { "dependencies": { "call-bind": "1.0.8", "define-properties": "1.2.1", "es-abstract": "1.24.1", "es-errors": "1.3.0", "es-object-atoms": "1.1.1", "es-shim-unscopables": "1.1.0" } }, "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ=="], + + "array.prototype.findlastindex": ["array.prototype.findlastindex@1.2.6", "", { "dependencies": { "call-bind": "1.0.8", "call-bound": "1.0.4", "define-properties": "1.2.1", "es-abstract": "1.24.1", "es-errors": "1.3.0", "es-object-atoms": "1.1.1", "es-shim-unscopables": "1.1.0" } }, "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ=="], + + "array.prototype.flat": ["array.prototype.flat@1.3.3", "", { "dependencies": { "call-bind": "1.0.8", "define-properties": "1.2.1", "es-abstract": "1.24.1", "es-shim-unscopables": "1.1.0" } }, "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg=="], + + "array.prototype.flatmap": ["array.prototype.flatmap@1.3.3", "", { "dependencies": { "call-bind": "1.0.8", "define-properties": "1.2.1", "es-abstract": "1.24.1", "es-shim-unscopables": "1.1.0" } }, "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg=="], + + "array.prototype.tosorted": ["array.prototype.tosorted@1.1.4", "", { "dependencies": { "call-bind": "1.0.8", "define-properties": "1.2.1", "es-abstract": "1.24.1", "es-errors": "1.3.0", "es-shim-unscopables": "1.1.0" } }, "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA=="], + + "arraybuffer.prototype.slice": ["arraybuffer.prototype.slice@1.0.4", "", { "dependencies": { "array-buffer-byte-length": "1.0.2", "call-bind": "1.0.8", "define-properties": "1.2.1", "es-abstract": "1.24.1", "es-errors": "1.3.0", "get-intrinsic": "1.3.0", "is-array-buffer": "3.0.5" } }, "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ=="], + + "ast-types-flow": ["ast-types-flow@0.0.8", "", {}, "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ=="], + + "async-function": ["async-function@1.0.0", "", {}, "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA=="], + + "asynckit": ["asynckit@0.4.0", "", {}, "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="], + + "attr-accept": ["attr-accept@2.2.5", "", {}, "sha512-0bDNnY/u6pPwHDMoF0FieU354oBi0a8rD9FcsLwzcGWbc8KS8KPIi7y+s13OlVY+gMWc/9xEMUgNE6Qm8ZllYQ=="], + + "autoprefixer": ["autoprefixer@10.4.27", "", { "dependencies": { "browserslist": "4.28.1", "caniuse-lite": "1.0.30001776", "fraction.js": "5.3.4", "picocolors": "1.1.1", "postcss-value-parser": "4.2.0" }, "peerDependencies": { "postcss": "8.5.8" }, "bin": { "autoprefixer": "bin/autoprefixer" } }, "sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA=="], + + "available-typed-arrays": ["available-typed-arrays@1.0.7", "", { "dependencies": { "possible-typed-array-names": "1.1.0" } }, "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ=="], + + "aws-ssl-profiles": ["aws-ssl-profiles@1.1.2", "", {}, "sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g=="], + + "aws4fetch": ["aws4fetch@1.0.20", "", {}, "sha512-/djoAN709iY65ETD6LKCtyyEI04XIBP5xVvfmNxsEP0uJB5tyaGBztSryRr4HqMStr9R06PisQE7m9zDTXKu6g=="], + + "axe-core": ["axe-core@4.11.1", "", {}, "sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A=="], + + "axios": ["axios@1.7.2", "", { "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } }, "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw=="], + + "axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="], + + "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], + + "baseline-browser-mapping": ["baseline-browser-mapping@2.10.0", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA=="], + + "binary-extensions": ["binary-extensions@2.3.0", "", {}, "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="], + + "blake3-wasm": ["blake3-wasm@2.1.5", "", {}, "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g=="], + + "body-parser": ["body-parser@2.2.2", "", { "dependencies": { "bytes": "3.1.2", "content-type": "1.0.5", "debug": "4.4.3", "http-errors": "2.0.1", "iconv-lite": "0.7.2", "on-finished": "2.4.1", "qs": "6.15.0", "raw-body": "3.0.2", "type-is": "2.0.1" } }, "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA=="], + + "bowser": ["bowser@2.14.1", "", {}, "sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg=="], + + "brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "1.0.2", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], + + "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], + + "browserslist": ["browserslist@4.28.1", "", { "dependencies": { "baseline-browser-mapping": "2.10.0", "caniuse-lite": "1.0.30001776", "electron-to-chromium": "1.5.307", "node-releases": "2.0.27", "update-browserslist-db": "1.2.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA=="], + + "buffer-from": ["buffer-from@1.1.2", "", {}, "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="], + + "bytes": ["bytes@3.1.2", "", {}, "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="], + + "call-bind": ["call-bind@1.0.8", "", { "dependencies": { "call-bind-apply-helpers": "1.0.2", "es-define-property": "1.0.1", "get-intrinsic": "1.3.0", "set-function-length": "1.2.2" } }, "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww=="], + + "call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "1.3.0", "function-bind": "1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="], + + "call-bound": ["call-bound@1.0.4", "", { "dependencies": { "call-bind-apply-helpers": "1.0.2", "get-intrinsic": "1.3.0" } }, "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="], + + "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], + + "camelcase-css": ["camelcase-css@2.0.1", "", {}, "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA=="], + + "caniuse-lite": ["caniuse-lite@1.0.30001776", "", {}, "sha512-sg01JDPzZ9jGshqKSckOQthXnYwOEP50jeVFhaSFbZcOy05TiuuaffDOfcwtCisJ9kNQuLBFibYywv2Bgm9osw=="], + + "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + + "chokidar": ["chokidar@3.6.0", "", { "dependencies": { "anymatch": "3.1.3", "braces": "3.0.3", "glob-parent": "5.1.2", "is-binary-path": "2.1.0", "is-glob": "4.0.3", "normalize-path": "3.0.0", "readdirp": "3.6.0" }, "optionalDependencies": { "fsevents": "2.3.3" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="], + + "class-variance-authority": ["class-variance-authority@0.7.1", "", { "dependencies": { "clsx": "2.1.1" } }, "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg=="], + + "client-only": ["client-only@0.0.1", "", {}, "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="], + + "cliui": ["cliui@9.0.1", "", { "dependencies": { "string-width": "7.2.0", "strip-ansi": "7.2.0", "wrap-ansi": "9.0.2" } }, "sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w=="], + + "cloudflare": ["cloudflare@4.5.0", "", { "dependencies": { "@types/node": "18.19.130", "@types/node-fetch": "2.6.13", "abort-controller": "3.0.0", "agentkeepalive": "4.6.0", "form-data-encoder": "1.7.2", "formdata-node": "4.4.1", "node-fetch": "2.7.0" } }, "sha512-fPcbPKx4zF45jBvQ0z7PCdgejVAPBBCZxwqk1k7krQNfpM07Cfj97/Q6wBzvYqlWXx/zt1S9+m8vnfCe06umbQ=="], + + "clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="], + + "cmdk": ["cmdk@1.1.1", "", { "dependencies": { "@radix-ui/react-compose-refs": "^1.1.1", "@radix-ui/react-dialog": "^1.1.6", "@radix-ui/react-id": "^1.1.0", "@radix-ui/react-primitive": "^2.0.2" }, "peerDependencies": { "react": "^18 || ^19 || ^19.0.0-rc", "react-dom": "^18 || ^19 || ^19.0.0-rc" } }, "sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg=="], + + "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], + + "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], + + "combined-stream": ["combined-stream@1.0.8", "", { "dependencies": { "delayed-stream": "1.0.0" } }, "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="], + + "commander": ["commander@7.2.0", "", {}, "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="], + + "comment-json": ["comment-json@4.6.2", "", { "dependencies": { "array-timsort": "1.0.3", "esprima": "4.0.1" } }, "sha512-R2rze/hDX30uul4NZoIZ76ImSJLFxn/1/ZxtKC1L77y2X1k+yYu1joKbAtMA2Fg3hZrTOiw0I5mwVMo0cf250w=="], + + "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], + + "content-disposition": ["content-disposition@1.0.1", "", {}, "sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q=="], + + "content-type": ["content-type@1.0.5", "", {}, "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="], + + "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], + + "cookie": ["cookie@0.4.2", "", {}, "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA=="], + + "cookie-signature": ["cookie-signature@1.2.2", "", {}, "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg=="], + + "cookies-next": ["cookies-next@2.1.2", "", { "dependencies": { "@types/cookie": "^0.4.1", "@types/node": "^16.10.2", "cookie": "^0.4.0" } }, "sha512-czxcfqVaQlo0Q/3xMgp/2jpspsuLJrIm6D37wlmibP3DAcYT315c8UxQmDMohhAT/GRWpaHzpDEFANBjzTFQGg=="], + + "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "3.1.1", "shebang-command": "2.0.0", "which": "2.0.2" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], + + "cssesc": ["cssesc@3.0.0", "", { "bin": { "cssesc": "bin/cssesc" } }, "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="], + + "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], + + "cuint": ["cuint@0.2.2", "", {}, "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw=="], + + "damerau-levenshtein": ["damerau-levenshtein@1.0.8", "", {}, "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA=="], + + "data-view-buffer": ["data-view-buffer@1.0.2", "", { "dependencies": { "call-bound": "1.0.4", "es-errors": "1.3.0", "is-data-view": "1.0.2" } }, "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ=="], + + "data-view-byte-length": ["data-view-byte-length@1.0.2", "", { "dependencies": { "call-bound": "1.0.4", "es-errors": "1.3.0", "is-data-view": "1.0.2" } }, "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ=="], + + "data-view-byte-offset": ["data-view-byte-offset@1.0.1", "", { "dependencies": { "call-bound": "1.0.4", "es-errors": "1.3.0", "is-data-view": "1.0.2" } }, "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ=="], + + "debounce": ["debounce@1.2.1", "", {}, "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug=="], + + "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="], + + "define-data-property": ["define-data-property@1.1.4", "", { "dependencies": { "es-define-property": "1.0.1", "es-errors": "1.3.0", "gopd": "1.2.0" } }, "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A=="], + + "define-properties": ["define-properties@1.2.1", "", { "dependencies": { "define-data-property": "1.1.4", "has-property-descriptors": "1.0.2", "object-keys": "1.1.1" } }, "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg=="], + + "delayed-stream": ["delayed-stream@1.0.0", "", {}, "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="], + + "denque": ["denque@2.1.0", "", {}, "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw=="], + + "depd": ["depd@2.0.0", "", {}, "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="], + + "dequal": ["dequal@2.0.3", "", {}, "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="], + + "detect-indent": ["detect-indent@7.0.2", "", {}, "sha512-y+8xyqdGLL+6sh0tVeHcfP/QDd8gUgbasolJJpY7NgeQGSZ739bDtSiaiDgtoicy+mtYB81dKLxO9xRhCyIB3A=="], + + "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], + + "detect-newline": ["detect-newline@4.0.1", "", {}, "sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog=="], + + "detect-node-es": ["detect-node-es@1.1.0", "", {}, "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ=="], + + "didyoumean": ["didyoumean@1.2.2", "", {}, "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="], + + "dir-glob": ["dir-glob@3.0.1", "", { "dependencies": { "path-type": "4.0.0" } }, "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA=="], + + "dlv": ["dlv@1.1.3", "", {}, "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="], + + "doctrine": ["doctrine@3.0.0", "", { "dependencies": { "esutils": "^2.0.2" } }, "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w=="], + + "dotenv": ["dotenv@16.6.1", "", {}, "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow=="], + + "drizzle-kit": ["drizzle-kit@0.31.9", "", { "dependencies": { "@drizzle-team/brocli": "0.10.2", "@esbuild-kit/esm-loader": "2.6.5", "esbuild": "0.25.12", "esbuild-register": "3.6.0" }, "bin": { "drizzle-kit": "bin.cjs" } }, "sha512-GViD3IgsXn7trFyBUUHyTFBpH/FsHTxYJ66qdbVggxef4UBPHRYxQaRzYLTuekYnk9i5FIEL9pbBIwMqX/Uwrg=="], + + "drizzle-orm": ["drizzle-orm@0.45.1", "", { "peerDependencies": { "@aws-sdk/client-rds-data": ">=3", "@cloudflare/workers-types": ">=4", "@electric-sql/pglite": ">=0.2.0", "@libsql/client": ">=0.10.0", "@libsql/client-wasm": ">=0.10.0", "@neondatabase/serverless": ">=0.10.0", "@op-engineering/op-sqlite": ">=2", "@opentelemetry/api": "^1.4.1", "@planetscale/database": ">=1.13", "@prisma/client": "*", "@tidbcloud/serverless": "*", "@types/better-sqlite3": "*", "@types/pg": "*", "@types/sql.js": "*", "@upstash/redis": ">=1.34.7", "@vercel/postgres": ">=0.8.0", "@xata.io/client": "*", "better-sqlite3": ">=7", "bun-types": "*", "expo-sqlite": ">=14.0.0", "gel": ">=2", "knex": "*", "kysely": "*", "mysql2": ">=2", "pg": ">=8", "postgres": ">=3", "sql.js": ">=1", "sqlite3": ">=5" }, "optionalPeers": ["@aws-sdk/client-rds-data", "@cloudflare/workers-types", "@electric-sql/pglite", "@libsql/client", "@libsql/client-wasm", "@neondatabase/serverless", "@op-engineering/op-sqlite", "@opentelemetry/api", "@planetscale/database", "@prisma/client", "@tidbcloud/serverless", "@types/better-sqlite3", "@types/pg", "@types/sql.js", "@upstash/redis", "@vercel/postgres", "@xata.io/client", "better-sqlite3", "bun-types", "expo-sqlite", "gel", "knex", "kysely", "mysql2", "pg", "postgres", "sql.js", "sqlite3"] }, "sha512-Te0FOdKIistGNPMq2jscdqngBRfBpC8uMFVwqjf6gtTVJHIQ/dosgV/CLBU2N4ZJBsXL5savCba9b0YJskKdcA=="], + + "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "1.0.2", "es-errors": "1.3.0", "gopd": "1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="], + + "duplexer": ["duplexer@0.1.2", "", {}, "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg=="], + + "eciesjs": ["eciesjs@0.4.17", "", { "dependencies": { "@ecies/ciphers": "0.2.5", "@noble/ciphers": "1.3.0", "@noble/curves": "1.9.7", "@noble/hashes": "1.8.0" } }, "sha512-TOOURki4G7sD1wDCjj7NfLaXZZ49dFOeEb5y39IXpb8p0hRzVvfvzZHOi5JcT+PpyAbi/Y+lxPb8eTag2WYH8w=="], + + "ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="], + + "electron-to-chromium": ["electron-to-chromium@1.5.307", "", {}, "sha512-5z3uFKBWjiNR44nFcYdkcXjKMbg5KXNdciu7mhTPo9tB7NbqSNP2sSnGR+fqknZSCwKkBN+oxiiajWs4dT6ORg=="], + + "emoji-regex": ["emoji-regex@9.2.2", "", {}, "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="], + + "encodeurl": ["encodeurl@2.0.0", "", {}, "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="], + + "enquirer": ["enquirer@2.4.1", "", { "dependencies": { "ansi-colors": "4.1.3", "strip-ansi": "6.0.1" } }, "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ=="], + + "error-stack-parser-es": ["error-stack-parser-es@1.0.5", "", {}, "sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA=="], + + "es-abstract": ["es-abstract@1.24.1", "", { "dependencies": { "array-buffer-byte-length": "1.0.2", "arraybuffer.prototype.slice": "1.0.4", "available-typed-arrays": "1.0.7", "call-bind": "1.0.8", "call-bound": "1.0.4", "data-view-buffer": "1.0.2", "data-view-byte-length": "1.0.2", "data-view-byte-offset": "1.0.1", "es-define-property": "1.0.1", "es-errors": "1.3.0", "es-object-atoms": "1.1.1", "es-set-tostringtag": "2.1.0", "es-to-primitive": "1.3.0", "function.prototype.name": "1.1.8", "get-intrinsic": "1.3.0", "get-proto": "1.0.1", "get-symbol-description": "1.1.0", "globalthis": "1.0.4", "gopd": "1.2.0", "has-property-descriptors": "1.0.2", "has-proto": "1.2.0", "has-symbols": "1.1.0", "hasown": "2.0.2", "internal-slot": "1.1.0", "is-array-buffer": "3.0.5", "is-callable": "1.2.7", "is-data-view": "1.0.2", "is-negative-zero": "2.0.3", "is-regex": "1.2.1", "is-set": "2.0.3", "is-shared-array-buffer": "1.0.4", "is-string": "1.1.1", "is-typed-array": "1.1.15", "is-weakref": "1.1.1", "math-intrinsics": "1.1.0", "object-inspect": "1.13.4", "object-keys": "1.1.1", "object.assign": "4.1.7", "own-keys": "1.0.1", "regexp.prototype.flags": "1.5.4", "safe-array-concat": "1.1.3", "safe-push-apply": "1.0.0", "safe-regex-test": "1.1.0", "set-proto": "1.0.0", "stop-iteration-iterator": "1.1.0", "string.prototype.trim": "1.2.10", "string.prototype.trimend": "1.0.9", "string.prototype.trimstart": "1.0.8", "typed-array-buffer": "1.0.3", "typed-array-byte-length": "1.0.3", "typed-array-byte-offset": "1.0.4", "typed-array-length": "1.0.7", "unbox-primitive": "1.1.0", "which-typed-array": "1.1.20" } }, "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw=="], + + "es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="], + + "es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="], + + "es-iterator-helpers": ["es-iterator-helpers@1.2.2", "", { "dependencies": { "call-bind": "1.0.8", "call-bound": "1.0.4", "define-properties": "1.2.1", "es-abstract": "1.24.1", "es-errors": "1.3.0", "es-set-tostringtag": "2.1.0", "function-bind": "1.1.2", "get-intrinsic": "1.3.0", "globalthis": "1.0.4", "gopd": "1.2.0", "has-property-descriptors": "1.0.2", "has-proto": "1.2.0", "has-symbols": "1.1.0", "internal-slot": "1.1.0", "iterator.prototype": "1.1.5", "safe-array-concat": "1.1.3" } }, "sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w=="], + + "es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="], + + "es-set-tostringtag": ["es-set-tostringtag@2.1.0", "", { "dependencies": { "es-errors": "1.3.0", "get-intrinsic": "1.3.0", "has-tostringtag": "1.0.2", "hasown": "2.0.2" } }, "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="], + + "es-shim-unscopables": ["es-shim-unscopables@1.1.0", "", { "dependencies": { "hasown": "2.0.2" } }, "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw=="], + + "es-to-primitive": ["es-to-primitive@1.3.0", "", { "dependencies": { "is-callable": "1.2.7", "is-date-object": "1.1.0", "is-symbol": "1.1.1" } }, "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g=="], + + "esbuild": ["esbuild@0.25.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.12", "@esbuild/android-arm": "0.25.12", "@esbuild/android-arm64": "0.25.12", "@esbuild/android-x64": "0.25.12", "@esbuild/darwin-arm64": "0.25.12", "@esbuild/darwin-x64": "0.25.12", "@esbuild/freebsd-arm64": "0.25.12", "@esbuild/freebsd-x64": "0.25.12", "@esbuild/linux-arm": "0.25.12", "@esbuild/linux-arm64": "0.25.12", "@esbuild/linux-ia32": "0.25.12", "@esbuild/linux-loong64": "0.25.12", "@esbuild/linux-mips64el": "0.25.12", "@esbuild/linux-ppc64": "0.25.12", "@esbuild/linux-riscv64": "0.25.12", "@esbuild/linux-s390x": "0.25.12", "@esbuild/linux-x64": "0.25.12", "@esbuild/netbsd-arm64": "0.25.12", "@esbuild/netbsd-x64": "0.25.12", "@esbuild/openbsd-arm64": "0.25.12", "@esbuild/openbsd-x64": "0.25.12", "@esbuild/openharmony-arm64": "0.25.12", "@esbuild/sunos-x64": "0.25.12", "@esbuild/win32-arm64": "0.25.12", "@esbuild/win32-ia32": "0.25.12", "@esbuild/win32-x64": "0.25.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg=="], + + "esbuild-register": ["esbuild-register@3.6.0", "", { "dependencies": { "debug": "4.4.3" }, "peerDependencies": { "esbuild": "0.25.12" } }, "sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg=="], + + "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], + + "escape-html": ["escape-html@1.0.3", "", {}, "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="], + + "escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="], + + "eslint": ["eslint@8.44.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", "@eslint/eslintrc": "^2.1.0", "@eslint/js": "8.44.0", "@humanwhocodes/config-array": "^0.11.10", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.2.0", "eslint-visitor-keys": "^3.4.1", "espree": "^9.6.0", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", "graphemer": "^1.4.0", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "bin": { "eslint": "bin/eslint.js" } }, "sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A=="], + + "eslint-config-next": ["eslint-config-next@15.5.12", "", { "dependencies": { "@next/eslint-plugin-next": "15.5.12", "@rushstack/eslint-patch": "^1.10.3", "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "eslint-import-resolver-node": "^0.3.6", "eslint-import-resolver-typescript": "^3.5.2", "eslint-plugin-import": "^2.31.0", "eslint-plugin-jsx-a11y": "^6.10.0", "eslint-plugin-react": "^7.37.0", "eslint-plugin-react-hooks": "^5.0.0" }, "peerDependencies": { "eslint": "^7.23.0 || ^8.0.0 || ^9.0.0", "typescript": ">=3.3.1" }, "optionalPeers": ["typescript"] }, "sha512-ktW3XLfd+ztEltY5scJNjxjHwtKWk6vU2iwzZqSN09UsbBmMeE/cVlJ1yESg6Yx5LW7p/Z8WzUAgYXGLEmGIpg=="], + + "eslint-import-resolver-node": ["eslint-import-resolver-node@0.3.9", "", { "dependencies": { "debug": "3.2.7", "is-core-module": "2.16.1", "resolve": "1.22.11" } }, "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g=="], + + "eslint-import-resolver-typescript": ["eslint-import-resolver-typescript@3.10.1", "", { "dependencies": { "@nolyfill/is-core-module": "1.0.39", "debug": "4.4.3", "get-tsconfig": "4.13.6", "is-bun-module": "2.0.0", "stable-hash": "0.0.5", "tinyglobby": "0.2.15", "unrs-resolver": "1.11.1" }, "optionalDependencies": { "eslint-plugin-import": "2.32.0" }, "peerDependencies": { "eslint": "10.0.2" } }, "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ=="], + + "eslint-module-utils": ["eslint-module-utils@2.12.1", "", { "dependencies": { "debug": "3.2.7" }, "optionalDependencies": { "@typescript-eslint/parser": "8.56.1", "eslint": "10.0.2", "eslint-import-resolver-node": "0.3.9", "eslint-import-resolver-typescript": "3.10.1" } }, "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw=="], + + "eslint-plugin-import": ["eslint-plugin-import@2.32.0", "", { "dependencies": { "@rtsao/scc": "1.1.0", "array-includes": "3.1.9", "array.prototype.findlastindex": "1.2.6", "array.prototype.flat": "1.3.3", "array.prototype.flatmap": "1.3.3", "debug": "3.2.7", "doctrine": "2.1.0", "eslint-import-resolver-node": "0.3.9", "eslint-module-utils": "2.12.1", "hasown": "2.0.2", "is-core-module": "2.16.1", "is-glob": "4.0.3", "minimatch": "3.1.5", "object.fromentries": "2.0.8", "object.groupby": "1.0.3", "object.values": "1.2.1", "semver": "6.3.1", "string.prototype.trimend": "1.0.9", "tsconfig-paths": "3.15.0" }, "optionalDependencies": { "@typescript-eslint/parser": "8.56.1" }, "peerDependencies": { "eslint": "10.0.2" } }, "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA=="], + + "eslint-plugin-jsx-a11y": ["eslint-plugin-jsx-a11y@6.10.2", "", { "dependencies": { "aria-query": "5.3.2", "array-includes": "3.1.9", "array.prototype.flatmap": "1.3.3", "ast-types-flow": "0.0.8", "axe-core": "4.11.1", "axobject-query": "4.1.0", "damerau-levenshtein": "1.0.8", "emoji-regex": "9.2.2", "hasown": "2.0.2", "jsx-ast-utils": "3.3.5", "language-tags": "1.0.9", "minimatch": "3.1.5", "object.fromentries": "2.0.8", "safe-regex-test": "1.1.0", "string.prototype.includes": "2.0.1" }, "peerDependencies": { "eslint": "10.0.2" } }, "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q=="], + + "eslint-plugin-react": ["eslint-plugin-react@7.37.5", "", { "dependencies": { "array-includes": "3.1.9", "array.prototype.findlast": "1.2.5", "array.prototype.flatmap": "1.3.3", "array.prototype.tosorted": "1.1.4", "doctrine": "2.1.0", "es-iterator-helpers": "1.2.2", "estraverse": "5.3.0", "hasown": "2.0.2", "jsx-ast-utils": "3.3.5", "minimatch": "3.1.5", "object.entries": "1.1.9", "object.fromentries": "2.0.8", "object.values": "1.2.1", "prop-types": "15.8.1", "resolve": "2.0.0-next.6", "semver": "6.3.1", "string.prototype.matchall": "4.0.12", "string.prototype.repeat": "1.0.0" }, "peerDependencies": { "eslint": "10.0.2" } }, "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA=="], + + "eslint-plugin-react-hooks": ["eslint-plugin-react-hooks@5.2.0", "", { "peerDependencies": { "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg=="], + + "eslint-scope": ["eslint-scope@7.2.2", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg=="], + + "eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], + + "espree": ["espree@9.6.1", "", { "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.4.1" } }, "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ=="], + + "esprima": ["esprima@4.0.1", "", { "bin": { "esparse": "./bin/esparse.js", "esvalidate": "./bin/esvalidate.js" } }, "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="], + + "esquery": ["esquery@1.7.0", "", { "dependencies": { "estraverse": "5.3.0" } }, "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g=="], + + "esrecurse": ["esrecurse@4.3.0", "", { "dependencies": { "estraverse": "5.3.0" } }, "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="], + + "estraverse": ["estraverse@5.3.0", "", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="], + + "esutils": ["esutils@2.0.3", "", {}, "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="], + + "etag": ["etag@1.8.1", "", {}, "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="], + + "event-target-shim": ["event-target-shim@5.0.1", "", {}, "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="], + + "execa": ["execa@5.1.1", "", { "dependencies": { "cross-spawn": "7.0.6", "get-stream": "6.0.1", "human-signals": "2.1.0", "is-stream": "2.0.1", "merge-stream": "2.0.0", "npm-run-path": "4.0.1", "onetime": "5.1.2", "signal-exit": "3.0.7", "strip-final-newline": "2.0.0" } }, "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg=="], + + "express": ["express@5.2.1", "", { "dependencies": { "accepts": "2.0.0", "body-parser": "2.2.2", "content-disposition": "1.0.1", "content-type": "1.0.5", "cookie": "0.7.2", "cookie-signature": "1.2.2", "debug": "4.4.3", "depd": "2.0.0", "encodeurl": "2.0.0", "escape-html": "1.0.3", "etag": "1.8.1", "finalhandler": "2.1.1", "fresh": "2.0.0", "http-errors": "2.0.1", "merge-descriptors": "2.0.0", "mime-types": "3.0.2", "on-finished": "2.4.1", "once": "1.4.0", "parseurl": "1.3.3", "proxy-addr": "2.0.7", "qs": "6.15.0", "range-parser": "1.2.1", "router": "2.2.0", "send": "1.2.1", "serve-static": "2.2.1", "statuses": "2.0.2", "type-is": "2.0.1", "vary": "1.1.2" } }, "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw=="], + + "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], + + "fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "@nodelib/fs.walk": "1.2.8", "glob-parent": "5.1.2", "merge2": "1.4.1", "micromatch": "4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="], + + "fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="], + + "fast-levenshtein": ["fast-levenshtein@2.0.6", "", {}, "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="], + + "fast-xml-builder": ["fast-xml-builder@1.0.0", "", {}, "sha512-fpZuDogrAgnyt9oDDz+5DBz0zgPdPZz6D4IR7iESxRXElrlGTRkHJ9eEt+SACRJwT0FNFrt71DFQIUFBJfX/uQ=="], + + "fast-xml-parser": ["fast-xml-parser@5.4.2", "", { "dependencies": { "fast-xml-builder": "1.0.0", "strnum": "2.2.0" }, "bin": { "fxparser": "src/cli/cli.js" } }, "sha512-pw/6pIl4k0CSpElPEJhDppLzaixDEuWui2CUQQBH/ECDf7+y6YwA4Gf7Tyb0Rfe4DIMuZipYj4AEL0nACKglvQ=="], + + "fastq": ["fastq@1.20.1", "", { "dependencies": { "reusify": "1.1.0" } }, "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw=="], + + "fdir": ["fdir@6.5.0", "", { "optionalDependencies": { "picomatch": "4.0.3" } }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], + + "file-entry-cache": ["file-entry-cache@6.0.1", "", { "dependencies": { "flat-cache": "^3.0.4" } }, "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg=="], + + "file-selector": ["file-selector@2.1.2", "", { "dependencies": { "tslib": "2.8.1" } }, "sha512-QgXo+mXTe8ljeqUFaX3QVHc5osSItJ/Km+xpocx0aSqWGMSCf6qYs/VnzZgS864Pjn5iceMRFigeAV7AfTlaig=="], + + "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="], + + "finalhandler": ["finalhandler@2.1.1", "", { "dependencies": { "debug": "4.4.3", "encodeurl": "2.0.0", "escape-html": "1.0.3", "on-finished": "2.4.1", "parseurl": "1.3.3", "statuses": "2.0.2" } }, "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA=="], + + "find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "6.0.0", "path-exists": "4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="], + + "flat-cache": ["flat-cache@3.2.0", "", { "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.3", "rimraf": "^3.0.2" } }, "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw=="], + + "flatted": ["flatted@3.3.4", "", {}, "sha512-3+mMldrTAPdta5kjX2G2J7iX4zxtnwpdA8Tr2ZSjkyPSanvbZAcy6flmtnXbEybHrDcU9641lxrMfFuUxVz9vA=="], + + "follow-redirects": ["follow-redirects@1.15.11", "", {}, "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ=="], + + "for-each": ["for-each@0.3.5", "", { "dependencies": { "is-callable": "1.2.7" } }, "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg=="], + + "foreground-child": ["foreground-child@3.3.1", "", { "dependencies": { "cross-spawn": "7.0.6", "signal-exit": "4.1.0" } }, "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw=="], + + "form-data": ["form-data@4.0.5", "", { "dependencies": { "asynckit": "0.4.0", "combined-stream": "1.0.8", "es-set-tostringtag": "2.1.0", "hasown": "2.0.2", "mime-types": "2.1.35" } }, "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w=="], + + "form-data-encoder": ["form-data-encoder@1.7.2", "", {}, "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A=="], + + "formdata-node": ["formdata-node@4.4.1", "", { "dependencies": { "node-domexception": "1.0.0", "web-streams-polyfill": "4.0.0-beta.3" } }, "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ=="], + + "forwarded": ["forwarded@0.2.0", "", {}, "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="], + + "fraction.js": ["fraction.js@5.3.4", "", {}, "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ=="], + + "fresh": ["fresh@2.0.0", "", {}, "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A=="], + + "fs.realpath": ["fs.realpath@1.0.0", "", {}, "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="], + + "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + + "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="], + + "function.prototype.name": ["function.prototype.name@1.1.8", "", { "dependencies": { "call-bind": "1.0.8", "call-bound": "1.0.4", "define-properties": "1.2.1", "functions-have-names": "1.2.3", "hasown": "2.0.2", "is-callable": "1.2.7" } }, "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q=="], + + "functions-have-names": ["functions-have-names@1.2.3", "", {}, "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="], + + "generate-function": ["generate-function@2.3.1", "", { "dependencies": { "is-property": "1.0.2" } }, "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ=="], + + "generator-function": ["generator-function@2.0.1", "", {}, "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g=="], + + "gensync": ["gensync@1.0.0-beta.2", "", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], + + "get-caller-file": ["get-caller-file@2.0.5", "", {}, "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="], + + "get-east-asian-width": ["get-east-asian-width@1.5.0", "", {}, "sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA=="], + + "get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "1.0.2", "es-define-property": "1.0.1", "es-errors": "1.3.0", "es-object-atoms": "1.1.1", "function-bind": "1.1.2", "get-proto": "1.0.1", "gopd": "1.2.0", "has-symbols": "1.1.0", "hasown": "2.0.2", "math-intrinsics": "1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="], + + "get-nonce": ["get-nonce@1.0.1", "", {}, "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q=="], + + "get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "1.0.1", "es-object-atoms": "1.1.1" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="], + + "get-stdin": ["get-stdin@9.0.0", "", {}, "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA=="], + + "get-stream": ["get-stream@6.0.1", "", {}, "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="], + + "get-symbol-description": ["get-symbol-description@1.1.0", "", { "dependencies": { "call-bound": "1.0.4", "es-errors": "1.3.0", "get-intrinsic": "1.3.0" } }, "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg=="], + + "get-tsconfig": ["get-tsconfig@4.13.6", "", { "dependencies": { "resolve-pkg-maps": "1.0.0" } }, "sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw=="], + + "git-hooks-list": ["git-hooks-list@3.2.0", "", {}, "sha512-ZHG9a1gEhUMX1TvGrLdyWb9kDopCBbTnI8z4JgRMYxsijWipgjSEYoPWqBuIB0DnRnvqlQSEeVmzpeuPm7NdFQ=="], + + "glob": ["glob@13.0.6", "", { "dependencies": { "minimatch": "10.2.4", "minipass": "7.1.3", "path-scurry": "2.0.2" } }, "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw=="], + + "glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], + + "globals": ["globals@13.24.0", "", { "dependencies": { "type-fest": "^0.20.2" } }, "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ=="], + + "globalthis": ["globalthis@1.0.4", "", { "dependencies": { "define-properties": "1.2.1", "gopd": "1.2.0" } }, "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ=="], + + "globby": ["globby@13.2.2", "", { "dependencies": { "dir-glob": "3.0.1", "fast-glob": "3.3.3", "ignore": "5.3.2", "merge2": "1.4.1", "slash": "4.0.0" } }, "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w=="], + + "gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="], + + "graphemer": ["graphemer@1.4.0", "", {}, "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="], + + "gzip-size": ["gzip-size@6.0.0", "", { "dependencies": { "duplexer": "0.1.2" } }, "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q=="], + + "has-bigints": ["has-bigints@1.1.0", "", {}, "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg=="], + + "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], + + "has-property-descriptors": ["has-property-descriptors@1.0.2", "", { "dependencies": { "es-define-property": "1.0.1" } }, "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg=="], + + "has-proto": ["has-proto@1.2.0", "", { "dependencies": { "dunder-proto": "1.0.1" } }, "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ=="], + + "has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="], + + "has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "1.1.0" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="], + + "hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="], + + "html-escaper": ["html-escaper@2.0.2", "", {}, "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg=="], + + "http-errors": ["http-errors@2.0.1", "", { "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", "statuses": "2.0.2", "toidentifier": "1.0.1" } }, "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ=="], + + "human-signals": ["human-signals@2.1.0", "", {}, "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="], + + "humanize-ms": ["humanize-ms@1.2.1", "", { "dependencies": { "ms": "2.1.3" } }, "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ=="], + + "iconv-lite": ["iconv-lite@0.7.2", "", { "dependencies": { "safer-buffer": "2.1.2" } }, "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw=="], + + "ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], + + "import-fresh": ["import-fresh@3.3.1", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="], + + "imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="], + + "inflight": ["inflight@1.0.6", "", { "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="], + + "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], + + "internal-slot": ["internal-slot@1.1.0", "", { "dependencies": { "es-errors": "1.3.0", "hasown": "2.0.2", "side-channel": "1.1.0" } }, "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw=="], + + "ipaddr.js": ["ipaddr.js@1.9.1", "", {}, "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="], + + "is-array-buffer": ["is-array-buffer@3.0.5", "", { "dependencies": { "call-bind": "1.0.8", "call-bound": "1.0.4", "get-intrinsic": "1.3.0" } }, "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A=="], + + "is-async-function": ["is-async-function@2.1.1", "", { "dependencies": { "async-function": "1.0.0", "call-bound": "1.0.4", "get-proto": "1.0.1", "has-tostringtag": "1.0.2", "safe-regex-test": "1.1.0" } }, "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ=="], + + "is-bigint": ["is-bigint@1.1.0", "", { "dependencies": { "has-bigints": "1.1.0" } }, "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ=="], + + "is-binary-path": ["is-binary-path@2.1.0", "", { "dependencies": { "binary-extensions": "2.3.0" } }, "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw=="], + + "is-boolean-object": ["is-boolean-object@1.2.2", "", { "dependencies": { "call-bound": "1.0.4", "has-tostringtag": "1.0.2" } }, "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A=="], + + "is-bun-module": ["is-bun-module@2.0.0", "", { "dependencies": { "semver": "7.7.4" } }, "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ=="], + + "is-callable": ["is-callable@1.2.7", "", {}, "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="], + + "is-core-module": ["is-core-module@2.16.1", "", { "dependencies": { "hasown": "2.0.2" } }, "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w=="], + + "is-data-view": ["is-data-view@1.0.2", "", { "dependencies": { "call-bound": "1.0.4", "get-intrinsic": "1.3.0", "is-typed-array": "1.1.15" } }, "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw=="], + + "is-date-object": ["is-date-object@1.1.0", "", { "dependencies": { "call-bound": "1.0.4", "has-tostringtag": "1.0.2" } }, "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg=="], + + "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], + + "is-finalizationregistry": ["is-finalizationregistry@1.1.1", "", { "dependencies": { "call-bound": "1.0.4" } }, "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg=="], + + "is-generator-function": ["is-generator-function@1.1.2", "", { "dependencies": { "call-bound": "1.0.4", "generator-function": "2.0.1", "get-proto": "1.0.1", "has-tostringtag": "1.0.2", "safe-regex-test": "1.1.0" } }, "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA=="], + + "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], + + "is-map": ["is-map@2.0.3", "", {}, "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw=="], + + "is-negative-zero": ["is-negative-zero@2.0.3", "", {}, "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw=="], + + "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="], + + "is-number-object": ["is-number-object@1.1.1", "", { "dependencies": { "call-bound": "1.0.4", "has-tostringtag": "1.0.2" } }, "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw=="], + + "is-path-inside": ["is-path-inside@3.0.3", "", {}, "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ=="], + + "is-plain-obj": ["is-plain-obj@4.1.0", "", {}, "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg=="], + + "is-plain-object": ["is-plain-object@5.0.0", "", {}, "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q=="], + + "is-promise": ["is-promise@4.0.0", "", {}, "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ=="], + + "is-property": ["is-property@1.0.2", "", {}, "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g=="], + + "is-regex": ["is-regex@1.2.1", "", { "dependencies": { "call-bound": "1.0.4", "gopd": "1.2.0", "has-tostringtag": "1.0.2", "hasown": "2.0.2" } }, "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g=="], + + "is-set": ["is-set@2.0.3", "", {}, "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg=="], + + "is-shared-array-buffer": ["is-shared-array-buffer@1.0.4", "", { "dependencies": { "call-bound": "1.0.4" } }, "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A=="], + + "is-stream": ["is-stream@2.0.1", "", {}, "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="], + + "is-string": ["is-string@1.1.1", "", { "dependencies": { "call-bound": "1.0.4", "has-tostringtag": "1.0.2" } }, "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA=="], + + "is-symbol": ["is-symbol@1.1.1", "", { "dependencies": { "call-bound": "1.0.4", "has-symbols": "1.1.0", "safe-regex-test": "1.1.0" } }, "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w=="], + + "is-typed-array": ["is-typed-array@1.1.15", "", { "dependencies": { "which-typed-array": "1.1.20" } }, "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ=="], + + "is-weakmap": ["is-weakmap@2.0.2", "", {}, "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w=="], + + "is-weakref": ["is-weakref@1.1.1", "", { "dependencies": { "call-bound": "1.0.4" } }, "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew=="], + + "is-weakset": ["is-weakset@2.0.4", "", { "dependencies": { "call-bound": "1.0.4", "get-intrinsic": "1.3.0" } }, "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ=="], + + "isarray": ["isarray@2.0.5", "", {}, "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="], + + "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], + + "iterator.prototype": ["iterator.prototype@1.1.5", "", { "dependencies": { "define-data-property": "1.1.4", "es-object-atoms": "1.1.1", "get-intrinsic": "1.3.0", "get-proto": "1.0.1", "has-symbols": "1.1.0", "set-function-name": "2.0.2" } }, "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g=="], + + "jackspeak": ["jackspeak@4.2.3", "", { "dependencies": { "@isaacs/cliui": "9.0.0" } }, "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg=="], + + "jiti": ["jiti@1.21.7", "", { "bin": { "jiti": "bin/jiti.js" } }, "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A=="], + + "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], + + "js-yaml": ["js-yaml@4.1.1", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA=="], + + "jsesc": ["jsesc@3.1.0", "", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], + + "json-buffer": ["json-buffer@3.0.1", "", {}, "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="], + + "json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], + + "json-stable-stringify-without-jsonify": ["json-stable-stringify-without-jsonify@1.0.1", "", {}, "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="], + + "json5": ["json5@1.0.2", "", { "dependencies": { "minimist": "1.2.8" }, "bin": { "json5": "lib/cli.js" } }, "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA=="], + + "jsx-ast-utils": ["jsx-ast-utils@3.3.5", "", { "dependencies": { "array-includes": "3.1.9", "array.prototype.flat": "1.3.3", "object.assign": "4.1.7", "object.values": "1.2.1" } }, "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ=="], + + "keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], + + "kleur": ["kleur@4.1.5", "", {}, "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="], + + "language-subtag-registry": ["language-subtag-registry@0.3.23", "", {}, "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ=="], + + "language-tags": ["language-tags@1.0.9", "", { "dependencies": { "language-subtag-registry": "0.3.23" } }, "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA=="], + + "levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "1.2.1", "type-check": "0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="], + + "lilconfig": ["lilconfig@2.1.0", "", {}, "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ=="], + + "lines-and-columns": ["lines-and-columns@1.2.4", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="], + + "locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="], + + "lodash.merge": ["lodash.merge@4.6.2", "", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="], + + "long": ["long@5.3.2", "", {}, "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA=="], + + "loose-envify": ["loose-envify@1.4.0", "", { "dependencies": { "js-tokens": "4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="], + + "lru-cache": ["lru-cache@11.2.6", "", {}, "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ=="], + + "lru.min": ["lru.min@1.1.4", "", {}, "sha512-DqC6n3QQ77zdFpCMASA1a3Jlb64Hv2N2DciFGkO/4L9+q/IpIAuRlKOvCXabtRW6cQf8usbmM6BE/TOPysCdIA=="], + + "lucide-react": ["lucide-react@0.522.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-jnJbw974yZ7rQHHEFKJOlWAefG3ATSCZHANZxIdx8Rk/16siuwjgA4fBULpXEAWx/RlTs3FzmKW/udWUuO0aRw=="], + + "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="], + + "media-typer": ["media-typer@1.1.0", "", {}, "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw=="], + + "merge-descriptors": ["merge-descriptors@2.0.0", "", {}, "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g=="], + + "merge-stream": ["merge-stream@2.0.0", "", {}, "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="], + + "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="], + + "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "3.0.3", "picomatch": "2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="], + + "mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], + + "mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], + + "mimic-fn": ["mimic-fn@2.1.0", "", {}, "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="], + + "miniflare": ["miniflare@4.20260301.1", "", { "dependencies": { "@cspotcode/source-map-support": "0.8.1", "sharp": "0.34.5", "undici": "7.18.2", "workerd": "1.20260301.1", "ws": "8.18.0", "youch": "4.1.0-beta.10" }, "bin": { "miniflare": "bootstrap.js" } }, "sha512-fqkHx0QMKswRH9uqQQQOU/RoaS3Wjckxy3CUX3YGJr0ZIMu7ObvI+NovdYi6RIsSPthNtq+3TPmRNxjeRiasog=="], + + "minimatch": ["minimatch@3.1.5", "", { "dependencies": { "brace-expansion": "1.1.12" } }, "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w=="], + + "minimist": ["minimist@1.2.8", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="], + + "minipass": ["minipass@7.1.3", "", {}, "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A=="], + + "mkdirp": ["mkdirp@1.0.4", "", { "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="], + + "mnemonist": ["mnemonist@0.38.3", "", { "dependencies": { "obliterator": "1.6.1" } }, "sha512-2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw=="], + + "mrmime": ["mrmime@2.0.1", "", {}, "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ=="], + + "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "mysql2": ["mysql2@3.18.2", "", { "dependencies": { "aws-ssl-profiles": "1.1.2", "denque": "2.1.0", "generate-function": "2.3.1", "iconv-lite": "0.7.2", "long": "5.3.2", "lru.min": "1.1.4", "named-placeholders": "1.1.6", "sql-escaper": "1.3.3" }, "peerDependencies": { "@types/node": "25.3.3" } }, "sha512-UfEShBFAZZEAKjySnTUuE7BgqkYT4mx+RjoJ5aqtmwSSvNcJ/QxQPXz/y3jSxNiVRedPfgccmuBtiPCSiEEytw=="], + + "mz": ["mz@2.7.0", "", { "dependencies": { "any-promise": "1.3.0", "object-assign": "4.1.1", "thenify-all": "1.6.0" } }, "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q=="], + + "named-placeholders": ["named-placeholders@1.1.6", "", { "dependencies": { "lru.min": "1.1.4" } }, "sha512-Tz09sEL2EEuv5fFowm419c1+a/jSMiBjI9gHxVLrVdbUkkNUUfjsVYs9pVZu5oCon/kmRh9TfLEObFtkVxmY0w=="], + + "nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], + + "napi-postinstall": ["napi-postinstall@0.3.4", "", { "bin": { "napi-postinstall": "lib/cli.js" } }, "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ=="], + + "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], + + "negotiator": ["negotiator@1.0.0", "", {}, "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg=="], + + "next": ["next@15.5.12", "", { "dependencies": { "@next/env": "15.5.12", "@swc/helpers": "0.5.15", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "15.5.12", "@next/swc-darwin-x64": "15.5.12", "@next/swc-linux-arm64-gnu": "15.5.12", "@next/swc-linux-arm64-musl": "15.5.12", "@next/swc-linux-x64-gnu": "15.5.12", "@next/swc-linux-x64-musl": "15.5.12", "@next/swc-win32-arm64-msvc": "15.5.12", "@next/swc-win32-x64-msvc": "15.5.12", "sharp": "^0.34.3" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.51.1", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-Fi/wQ4Etlrn60rz78bebG1i1SR20QxvV8tVp6iJspjLUSHcZoeUXCt+vmWoEcza85ElZzExK/jJ/F6SvtGktjA=="], + + "next-themes": ["next-themes@0.4.6", "", { "peerDependencies": { "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", "react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc" } }, "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA=="], + + "node-domexception": ["node-domexception@1.0.0", "", {}, "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ=="], + + "node-exports-info": ["node-exports-info@1.6.0", "", { "dependencies": { "array.prototype.flatmap": "1.3.3", "es-errors": "1.3.0", "object.entries": "1.1.9", "semver": "6.3.1" } }, "sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw=="], + + "node-fetch": ["node-fetch@2.7.0", "", { "dependencies": { "whatwg-url": "5.0.0" } }, "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A=="], + + "node-releases": ["node-releases@2.0.27", "", {}, "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA=="], + + "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], + + "npm-run-path": ["npm-run-path@4.0.1", "", { "dependencies": { "path-key": "3.1.1" } }, "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw=="], + + "object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="], + + "object-hash": ["object-hash@3.0.0", "", {}, "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw=="], + + "object-inspect": ["object-inspect@1.13.4", "", {}, "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew=="], + + "object-keys": ["object-keys@1.1.1", "", {}, "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="], + + "object-treeify": ["object-treeify@1.1.33", "", {}, "sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A=="], + + "object.assign": ["object.assign@4.1.7", "", { "dependencies": { "call-bind": "1.0.8", "call-bound": "1.0.4", "define-properties": "1.2.1", "es-object-atoms": "1.1.1", "has-symbols": "1.1.0", "object-keys": "1.1.1" } }, "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw=="], + + "object.entries": ["object.entries@1.1.9", "", { "dependencies": { "call-bind": "1.0.8", "call-bound": "1.0.4", "define-properties": "1.2.1", "es-object-atoms": "1.1.1" } }, "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw=="], + + "object.fromentries": ["object.fromentries@2.0.8", "", { "dependencies": { "call-bind": "1.0.8", "define-properties": "1.2.1", "es-abstract": "1.24.1", "es-object-atoms": "1.1.1" } }, "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ=="], + + "object.groupby": ["object.groupby@1.0.3", "", { "dependencies": { "call-bind": "1.0.8", "define-properties": "1.2.1", "es-abstract": "1.24.1" } }, "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ=="], + + "object.values": ["object.values@1.2.1", "", { "dependencies": { "call-bind": "1.0.8", "call-bound": "1.0.4", "define-properties": "1.2.1", "es-object-atoms": "1.1.1" } }, "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA=="], + + "obliterator": ["obliterator@1.6.1", "", {}, "sha512-9WXswnqINnnhOG/5SLimUlzuU1hFJUc8zkwyD59Sd+dPOMf05PmnYG/d6Q7HZ+KmgkZJa1PxRso6QdM3sTNHig=="], + + "on-finished": ["on-finished@2.4.1", "", { "dependencies": { "ee-first": "1.1.1" } }, "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="], + + "once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1.0.2" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="], + + "onetime": ["onetime@5.1.2", "", { "dependencies": { "mimic-fn": "2.1.0" } }, "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg=="], + + "opener": ["opener@1.5.2", "", { "bin": { "opener": "bin/opener-bin.js" } }, "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A=="], + + "optionator": ["optionator@0.9.4", "", { "dependencies": { "deep-is": "0.1.4", "fast-levenshtein": "2.0.6", "levn": "0.4.1", "prelude-ls": "1.2.1", "type-check": "0.4.0", "word-wrap": "1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="], + + "own-keys": ["own-keys@1.0.1", "", { "dependencies": { "get-intrinsic": "1.3.0", "object-keys": "1.1.1", "safe-push-apply": "1.0.0" } }, "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg=="], + + "p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], + + "p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "3.1.0" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="], + + "package-json-from-dist": ["package-json-from-dist@1.0.1", "", {}, "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw=="], + + "parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="], + + "parseurl": ["parseurl@1.3.3", "", {}, "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="], + + "path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], + + "path-is-absolute": ["path-is-absolute@1.0.1", "", {}, "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="], + + "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], + + "path-parse": ["path-parse@1.0.7", "", {}, "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="], + + "path-scurry": ["path-scurry@2.0.2", "", { "dependencies": { "lru-cache": "11.2.6", "minipass": "7.1.3" } }, "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg=="], + + "path-to-regexp": ["path-to-regexp@6.3.0", "", {}, "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ=="], + + "path-type": ["path-type@4.0.0", "", {}, "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="], + + "pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], + + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + + "picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + + "pify": ["pify@2.3.0", "", {}, "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="], + + "pirates": ["pirates@4.0.7", "", {}, "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA=="], + + "possible-typed-array-names": ["possible-typed-array-names@1.1.0", "", {}, "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg=="], + + "postcss": ["postcss@8.5.8", "", { "dependencies": { "nanoid": "3.3.11", "picocolors": "1.1.1", "source-map-js": "1.2.1" } }, "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg=="], + + "postcss-import": ["postcss-import@15.1.0", "", { "dependencies": { "postcss-value-parser": "4.2.0", "read-cache": "1.0.0", "resolve": "1.22.11" }, "peerDependencies": { "postcss": "8.5.8" } }, "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew=="], + + "postcss-js": ["postcss-js@4.1.0", "", { "dependencies": { "camelcase-css": "2.0.1" }, "peerDependencies": { "postcss": "8.5.8" } }, "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw=="], + + "postcss-load-config": ["postcss-load-config@4.0.2", "", { "dependencies": { "lilconfig": "3.1.3", "yaml": "2.8.2" }, "optionalDependencies": { "postcss": "8.5.8" } }, "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ=="], + + "postcss-nested": ["postcss-nested@6.2.0", "", { "dependencies": { "postcss-selector-parser": "6.1.2" }, "peerDependencies": { "postcss": "8.5.8" } }, "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ=="], + + "postcss-selector-parser": ["postcss-selector-parser@6.1.2", "", { "dependencies": { "cssesc": "3.0.0", "util-deprecate": "1.0.2" } }, "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg=="], + + "postcss-value-parser": ["postcss-value-parser@4.2.0", "", {}, "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="], + + "prelude-ls": ["prelude-ls@1.2.1", "", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="], + + "prettier": ["prettier@3.8.1", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg=="], + + "prettier-plugin-organize-imports": ["prettier-plugin-organize-imports@4.3.0", "", { "peerDependencies": { "prettier": "3.4.2", "typescript": "5.9.3" } }, "sha512-FxFz0qFhyBsGdIsb697f/EkvHzi5SZOhWAjxcx2dLt+Q532bAlhswcXGYB1yzjZ69kW8UoadFBw7TyNwlq96Iw=="], + + "prettier-plugin-packagejson": ["prettier-plugin-packagejson@2.4.10", "", { "dependencies": { "sort-package-json": "2.7.0", "synckit": "0.9.0" }, "optionalDependencies": { "prettier": "3.4.2" } }, "sha512-qFzOfQDHi1tzvVJRuZ2jh1j6IFV5MURh5m5WDt+qfEMOf4SSL5RpwSysiX8u0W1PJYsM0vKJGNULt43wwteKiQ=="], + + "prettier-plugin-tailwindcss": ["prettier-plugin-tailwindcss@0.7.2", "", { "optionalDependencies": { "prettier-plugin-organize-imports": "4.3.0" }, "peerDependencies": { "prettier": "3.8.1" } }, "sha512-LkphyK3Fw+q2HdMOoiEHWf93fNtYJwfamoKPl7UwtjFQdei/iIBoX11G6j706FzN3ymX9mPVi97qIY8328vdnA=="], + + "prop-types": ["prop-types@15.8.1", "", { "dependencies": { "loose-envify": "1.4.0", "object-assign": "4.1.1", "react-is": "16.13.1" } }, "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="], + + "proxy-addr": ["proxy-addr@2.0.7", "", { "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" } }, "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg=="], + + "proxy-from-env": ["proxy-from-env@1.1.0", "", {}, "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="], + + "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], + + "qs": ["qs@6.15.0", "", { "dependencies": { "side-channel": "1.1.0" } }, "sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ=="], + + "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], + + "range-parser": ["range-parser@1.2.1", "", {}, "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="], + + "raw-body": ["raw-body@3.0.2", "", { "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.1", "iconv-lite": "0.7.2", "unpipe": "1.0.0" } }, "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA=="], + + "react": ["react@19.2.4", "", {}, "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ=="], + + "react-dom": ["react-dom@19.2.4", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.4" } }, "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ=="], + + "react-dropzone": ["react-dropzone@15.0.0", "", { "dependencies": { "attr-accept": "2.2.5", "file-selector": "2.1.2", "prop-types": "15.8.1" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-lGjYV/EoqEjEWPnmiSvH4v5IoIAwQM2W4Z1C0Q/Pw2xD0eVzKPS359BQTUMum+1fa0kH2nrKjuavmTPOGhpLPg=="], + + "react-hook-form": ["react-hook-form@7.71.2", "", { "peerDependencies": { "react": "19.2.4" } }, "sha512-1CHvcDYzuRUNOflt4MOq3ZM46AronNJtQ1S7tnX6YN4y72qhgiUItpacZUAQ0TyWYci3yz1X+rXaSxiuEm86PA=="], + + "react-is": ["react-is@16.13.1", "", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="], + + "react-remove-scroll": ["react-remove-scroll@2.7.2", "", { "dependencies": { "react-remove-scroll-bar": "2.3.8", "react-style-singleton": "2.2.3", "tslib": "2.8.1", "use-callback-ref": "1.3.3", "use-sidecar": "1.1.3" }, "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q=="], + + "react-remove-scroll-bar": ["react-remove-scroll-bar@2.3.8", "", { "dependencies": { "react-style-singleton": "2.2.3", "tslib": "2.8.1" }, "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q=="], + + "react-style-singleton": ["react-style-singleton@2.2.3", "", { "dependencies": { "get-nonce": "1.0.1", "tslib": "2.8.1" }, "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ=="], + + "read-cache": ["read-cache@1.0.0", "", { "dependencies": { "pify": "2.3.0" } }, "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA=="], + + "readdirp": ["readdirp@3.6.0", "", { "dependencies": { "picomatch": "2.3.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="], + + "reflect.getprototypeof": ["reflect.getprototypeof@1.0.10", "", { "dependencies": { "call-bind": "1.0.8", "define-properties": "1.2.1", "es-abstract": "1.24.1", "es-errors": "1.3.0", "es-object-atoms": "1.1.1", "get-intrinsic": "1.3.0", "get-proto": "1.0.1", "which-builtin-type": "1.2.1" } }, "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw=="], + + "regexp.prototype.flags": ["regexp.prototype.flags@1.5.4", "", { "dependencies": { "call-bind": "1.0.8", "define-properties": "1.2.1", "es-errors": "1.3.0", "get-proto": "1.0.1", "gopd": "1.2.0", "set-function-name": "2.0.2" } }, "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA=="], + + "resolve": ["resolve@1.22.11", "", { "dependencies": { "is-core-module": "2.16.1", "path-parse": "1.0.7", "supports-preserve-symlinks-flag": "1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ=="], + + "resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], + + "resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="], + + "reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="], + + "rimraf": ["rimraf@6.1.3", "", { "dependencies": { "glob": "13.0.6", "package-json-from-dist": "1.0.1" }, "bin": { "rimraf": "dist/esm/bin.mjs" } }, "sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA=="], + + "router": ["router@2.2.0", "", { "dependencies": { "debug": "4.4.3", "depd": "2.0.0", "is-promise": "4.0.0", "parseurl": "1.3.3", "path-to-regexp": "8.3.0" } }, "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ=="], + + "run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "1.2.3" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="], + + "safe-array-concat": ["safe-array-concat@1.1.3", "", { "dependencies": { "call-bind": "1.0.8", "call-bound": "1.0.4", "get-intrinsic": "1.3.0", "has-symbols": "1.1.0", "isarray": "2.0.5" } }, "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q=="], + + "safe-push-apply": ["safe-push-apply@1.0.0", "", { "dependencies": { "es-errors": "1.3.0", "isarray": "2.0.5" } }, "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA=="], + + "safe-regex-test": ["safe-regex-test@1.1.0", "", { "dependencies": { "call-bound": "1.0.4", "es-errors": "1.3.0", "is-regex": "1.2.1" } }, "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw=="], + + "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], + + "scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], + + "semver": ["semver@7.7.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA=="], + + "send": ["send@1.2.1", "", { "dependencies": { "debug": "4.4.3", "encodeurl": "2.0.0", "escape-html": "1.0.3", "etag": "1.8.1", "fresh": "2.0.0", "http-errors": "2.0.1", "mime-types": "3.0.2", "ms": "2.1.3", "on-finished": "2.4.1", "range-parser": "1.2.1", "statuses": "2.0.2" } }, "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ=="], + + "serve-static": ["serve-static@2.2.1", "", { "dependencies": { "encodeurl": "2.0.0", "escape-html": "1.0.3", "parseurl": "1.3.3", "send": "1.2.1" } }, "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw=="], + + "set-function-length": ["set-function-length@1.2.2", "", { "dependencies": { "define-data-property": "1.1.4", "es-errors": "1.3.0", "function-bind": "1.1.2", "get-intrinsic": "1.3.0", "gopd": "1.2.0", "has-property-descriptors": "1.0.2" } }, "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg=="], + + "set-function-name": ["set-function-name@2.0.2", "", { "dependencies": { "define-data-property": "1.1.4", "es-errors": "1.3.0", "functions-have-names": "1.2.3", "has-property-descriptors": "1.0.2" } }, "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ=="], + + "set-proto": ["set-proto@1.0.0", "", { "dependencies": { "dunder-proto": "1.0.1", "es-errors": "1.3.0", "es-object-atoms": "1.1.1" } }, "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw=="], + + "setprototypeof": ["setprototypeof@1.2.0", "", {}, "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="], + + "sharp": ["sharp@0.34.5", "", { "dependencies": { "@img/colour": "1.1.0", "detect-libc": "2.1.2", "semver": "7.7.4" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.34.5", "@img/sharp-darwin-x64": "0.34.5", "@img/sharp-libvips-darwin-arm64": "1.2.4", "@img/sharp-libvips-darwin-x64": "1.2.4", "@img/sharp-libvips-linux-arm": "1.2.4", "@img/sharp-libvips-linux-arm64": "1.2.4", "@img/sharp-libvips-linux-ppc64": "1.2.4", "@img/sharp-libvips-linux-riscv64": "1.2.4", "@img/sharp-libvips-linux-s390x": "1.2.4", "@img/sharp-libvips-linux-x64": "1.2.4", "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", "@img/sharp-libvips-linuxmusl-x64": "1.2.4", "@img/sharp-linux-arm": "0.34.5", "@img/sharp-linux-arm64": "0.34.5", "@img/sharp-linux-ppc64": "0.34.5", "@img/sharp-linux-riscv64": "0.34.5", "@img/sharp-linux-s390x": "0.34.5", "@img/sharp-linux-x64": "0.34.5", "@img/sharp-linuxmusl-arm64": "0.34.5", "@img/sharp-linuxmusl-x64": "0.34.5", "@img/sharp-wasm32": "0.34.5", "@img/sharp-win32-arm64": "0.34.5", "@img/sharp-win32-ia32": "0.34.5", "@img/sharp-win32-x64": "0.34.5" } }, "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg=="], + + "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], + + "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], + + "side-channel": ["side-channel@1.1.0", "", { "dependencies": { "es-errors": "1.3.0", "object-inspect": "1.13.4", "side-channel-list": "1.0.0", "side-channel-map": "1.0.1", "side-channel-weakmap": "1.0.2" } }, "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw=="], + + "side-channel-list": ["side-channel-list@1.0.0", "", { "dependencies": { "es-errors": "1.3.0", "object-inspect": "1.13.4" } }, "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA=="], + + "side-channel-map": ["side-channel-map@1.0.1", "", { "dependencies": { "call-bound": "1.0.4", "es-errors": "1.3.0", "get-intrinsic": "1.3.0", "object-inspect": "1.13.4" } }, "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA=="], + + "side-channel-weakmap": ["side-channel-weakmap@1.0.2", "", { "dependencies": { "call-bound": "1.0.4", "es-errors": "1.3.0", "get-intrinsic": "1.3.0", "object-inspect": "1.13.4", "side-channel-map": "1.0.1" } }, "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A=="], + + "signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="], + + "sirv": ["sirv@2.0.4", "", { "dependencies": { "@polka/url": "1.0.0-next.29", "mrmime": "2.0.1", "totalist": "3.0.1" } }, "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ=="], + + "slash": ["slash@4.0.0", "", {}, "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew=="], + + "sonner": ["sonner@2.0.7", "", { "peerDependencies": { "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" } }, "sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w=="], + + "sort-object-keys": ["sort-object-keys@1.1.3", "", {}, "sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg=="], + + "sort-package-json": ["sort-package-json@2.7.0", "", { "dependencies": { "detect-indent": "7.0.2", "detect-newline": "4.0.1", "get-stdin": "9.0.0", "git-hooks-list": "3.2.0", "globby": "13.2.2", "is-plain-obj": "4.1.0", "sort-object-keys": "1.1.3" }, "bin": { "sort-package-json": "cli.js" } }, "sha512-6AayF8bp6L+WROgpbhTMUtB9JSFmpGHjmW7DyaNPS1HwlTw2oSVlUUtlkHSEZmg5o89F3zvLBZNvMeZ1T4fjQg=="], + + "source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + + "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], + + "source-map-support": ["source-map-support@0.5.21", "", { "dependencies": { "buffer-from": "1.1.2", "source-map": "0.6.1" } }, "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w=="], + + "sql-escaper": ["sql-escaper@1.3.3", "", {}, "sha512-BsTCV265VpTp8tm1wyIm1xqQCS+Q9NHx2Sr+WcnUrgLrQ6yiDIvHYJV5gHxsj1lMBy2zm5twLaZao8Jd+S8JJw=="], + + "stable-hash": ["stable-hash@0.0.5", "", {}, "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA=="], + + "statuses": ["statuses@2.0.2", "", {}, "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw=="], + + "stop-iteration-iterator": ["stop-iteration-iterator@1.1.0", "", { "dependencies": { "es-errors": "1.3.0", "internal-slot": "1.1.0" } }, "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ=="], + + "string-width": ["string-width@7.2.0", "", { "dependencies": { "emoji-regex": "10.6.0", "get-east-asian-width": "1.5.0", "strip-ansi": "7.2.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="], + + "string.prototype.includes": ["string.prototype.includes@2.0.1", "", { "dependencies": { "call-bind": "1.0.8", "define-properties": "1.2.1", "es-abstract": "1.24.1" } }, "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg=="], + + "string.prototype.matchall": ["string.prototype.matchall@4.0.12", "", { "dependencies": { "call-bind": "1.0.8", "call-bound": "1.0.4", "define-properties": "1.2.1", "es-abstract": "1.24.1", "es-errors": "1.3.0", "es-object-atoms": "1.1.1", "get-intrinsic": "1.3.0", "gopd": "1.2.0", "has-symbols": "1.1.0", "internal-slot": "1.1.0", "regexp.prototype.flags": "1.5.4", "set-function-name": "2.0.2", "side-channel": "1.1.0" } }, "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA=="], + + "string.prototype.repeat": ["string.prototype.repeat@1.0.0", "", { "dependencies": { "define-properties": "1.2.1", "es-abstract": "1.24.1" } }, "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w=="], + + "string.prototype.trim": ["string.prototype.trim@1.2.10", "", { "dependencies": { "call-bind": "1.0.8", "call-bound": "1.0.4", "define-data-property": "1.1.4", "define-properties": "1.2.1", "es-abstract": "1.24.1", "es-object-atoms": "1.1.1", "has-property-descriptors": "1.0.2" } }, "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA=="], + + "string.prototype.trimend": ["string.prototype.trimend@1.0.9", "", { "dependencies": { "call-bind": "1.0.8", "call-bound": "1.0.4", "define-properties": "1.2.1", "es-object-atoms": "1.1.1" } }, "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ=="], + + "string.prototype.trimstart": ["string.prototype.trimstart@1.0.8", "", { "dependencies": { "call-bind": "1.0.8", "define-properties": "1.2.1", "es-object-atoms": "1.1.1" } }, "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg=="], + + "strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + + "strip-bom": ["strip-bom@3.0.0", "", {}, "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA=="], + + "strip-final-newline": ["strip-final-newline@2.0.0", "", {}, "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="], + + "strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], + + "strnum": ["strnum@2.2.0", "", {}, "sha512-Y7Bj8XyJxnPAORMZj/xltsfo55uOiyHcU2tnAVzHUnSJR/KsEX+9RoDeXEnsXtl/CX4fAcrt64gZ13aGaWPeBg=="], + + "styled-jsx": ["styled-jsx@5.1.6", "", { "dependencies": { "client-only": "0.0.1" }, "optionalDependencies": { "@babel/core": "7.29.0" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA=="], + + "sucrase": ["sucrase@3.35.1", "", { "dependencies": { "@jridgewell/gen-mapping": "0.3.13", "commander": "4.1.1", "lines-and-columns": "1.2.4", "mz": "2.7.0", "pirates": "4.0.7", "tinyglobby": "0.2.15", "ts-interface-checker": "0.1.13" }, "bin": { "sucrase": "bin/sucrase", "sucrase-node": "bin/sucrase-node" } }, "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw=="], + + "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], + + "supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="], + + "swr": ["swr@2.4.1", "", { "dependencies": { "dequal": "^2.0.3", "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "react": "^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-2CC6CiKQtEwaEeNiqWTAw9PGykW8SR5zZX8MZk6TeAvEAnVS7Visz8WzphqgtQ8v2xz/4Q5K+j+SeMaKXeeQIA=="], + + "synckit": ["synckit@0.9.0", "", { "dependencies": { "@pkgr/core": "0.1.2", "tslib": "2.8.1" } }, "sha512-7RnqIMq572L8PeEzKeBINYEJDDxpcH8JEgLwUqBd3TkofhFRbkq4QLR0u+36avGAhCRbk2nnmjcW9SE531hPDg=="], + + "tailwind-merge": ["tailwind-merge@1.13.2", "", {}, "sha512-R2/nULkdg1VR/EL4RXg4dEohdoxNUJGLMnWIQnPKL+O9Twu7Cn3Rxi4dlXkDzZrEGtR+G+psSXFouWlpTyLhCQ=="], + + "tailwindcss": ["tailwindcss@3.3.2", "", { "dependencies": { "@alloc/quick-lru": "5.2.0", "arg": "5.0.2", "chokidar": "3.6.0", "didyoumean": "1.2.2", "dlv": "1.1.3", "fast-glob": "3.3.3", "glob-parent": "6.0.2", "is-glob": "4.0.3", "jiti": "1.21.7", "lilconfig": "2.1.0", "micromatch": "4.0.8", "normalize-path": "3.0.0", "object-hash": "3.0.0", "picocolors": "1.1.1", "postcss": "8.5.8", "postcss-import": "15.1.0", "postcss-js": "4.1.0", "postcss-load-config": "4.0.2", "postcss-nested": "6.2.0", "postcss-selector-parser": "6.1.2", "postcss-value-parser": "4.2.0", "resolve": "1.22.11", "sucrase": "3.35.1" }, "bin": { "tailwind": "lib/cli.js", "tailwindcss": "lib/cli.js" } }, "sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w=="], + + "tailwindcss-animate": ["tailwindcss-animate@1.0.7", "", { "peerDependencies": { "tailwindcss": "3.3.2" } }, "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA=="], + + "terser": ["terser@5.16.9", "", { "dependencies": { "@jridgewell/source-map": "0.3.11", "acorn": "8.16.0", "commander": "2.20.3", "source-map-support": "0.5.21" }, "bin": { "terser": "bin/terser" } }, "sha512-HPa/FdTB9XGI2H1/keLFZHxl6WNvAI4YalHGtDQTlMnJcoqSab1UwL4l1hGEhs6/GmLHBZIg/YgB++jcbzoOEg=="], + + "text-table": ["text-table@0.2.0", "", {}, "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="], + + "thenify": ["thenify@3.3.1", "", { "dependencies": { "any-promise": "1.3.0" } }, "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw=="], + + "thenify-all": ["thenify-all@1.6.0", "", { "dependencies": { "thenify": "3.3.1" } }, "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA=="], + + "tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "6.5.0", "picomatch": "4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="], + + "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], + + "toidentifier": ["toidentifier@1.0.1", "", {}, "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="], + + "totalist": ["totalist@3.0.1", "", {}, "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ=="], + + "tr46": ["tr46@0.0.3", "", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="], + + "ts-api-utils": ["ts-api-utils@2.4.0", "", { "peerDependencies": { "typescript": "5.9.3" } }, "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA=="], + + "ts-interface-checker": ["ts-interface-checker@0.1.13", "", {}, "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="], + + "ts-tqdm": ["ts-tqdm@0.8.6", "", {}, "sha512-3X3M1PZcHtgQbnwizL+xU8CAgbYbeLHrrDwL9xxcZZrV5J+e7loJm1XrXozHjSkl44J0Zg0SgA8rXbh83kCkcQ=="], + + "tsconfig-paths": ["tsconfig-paths@3.15.0", "", { "dependencies": { "@types/json5": "0.0.29", "json5": "1.0.2", "minimist": "1.2.8", "strip-bom": "3.0.0" } }, "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg=="], + + "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], + + "type-fest": ["type-fest@0.20.2", "", {}, "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="], + + "type-is": ["type-is@2.0.1", "", { "dependencies": { "content-type": "1.0.5", "media-typer": "1.1.0", "mime-types": "3.0.2" } }, "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw=="], + + "typed-array-buffer": ["typed-array-buffer@1.0.3", "", { "dependencies": { "call-bound": "1.0.4", "es-errors": "1.3.0", "is-typed-array": "1.1.15" } }, "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw=="], + + "typed-array-byte-length": ["typed-array-byte-length@1.0.3", "", { "dependencies": { "call-bind": "1.0.8", "for-each": "0.3.5", "gopd": "1.2.0", "has-proto": "1.2.0", "is-typed-array": "1.1.15" } }, "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg=="], + + "typed-array-byte-offset": ["typed-array-byte-offset@1.0.4", "", { "dependencies": { "available-typed-arrays": "1.0.7", "call-bind": "1.0.8", "for-each": "0.3.5", "gopd": "1.2.0", "has-proto": "1.2.0", "is-typed-array": "1.1.15", "reflect.getprototypeof": "1.0.10" } }, "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ=="], + + "typed-array-length": ["typed-array-length@1.0.7", "", { "dependencies": { "call-bind": "1.0.8", "for-each": "0.3.5", "gopd": "1.2.0", "is-typed-array": "1.1.15", "possible-typed-array-names": "1.1.0", "reflect.getprototypeof": "1.0.10" } }, "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg=="], + + "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + + "unbox-primitive": ["unbox-primitive@1.1.0", "", { "dependencies": { "call-bound": "1.0.4", "has-bigints": "1.1.0", "has-symbols": "1.1.0", "which-boxed-primitive": "1.1.1" } }, "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw=="], + + "undici": ["undici@7.18.2", "", {}, "sha512-y+8YjDFzWdQlSE9N5nzKMT3g4a5UBX1HKowfdXh0uvAnTaqqwqB92Jt4UXBAeKekDs5IaDKyJFR4X1gYVCgXcw=="], + + "undici-types": ["undici-types@7.18.2", "", {}, "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w=="], + + "unenv": ["unenv@2.0.0-rc.24", "", { "dependencies": { "pathe": "2.0.3" } }, "sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw=="], + + "unpipe": ["unpipe@1.0.0", "", {}, "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="], + + "unrs-resolver": ["unrs-resolver@1.11.1", "", { "dependencies": { "napi-postinstall": "0.3.4" }, "optionalDependencies": { "@unrs/resolver-binding-android-arm-eabi": "1.11.1", "@unrs/resolver-binding-android-arm64": "1.11.1", "@unrs/resolver-binding-darwin-arm64": "1.11.1", "@unrs/resolver-binding-darwin-x64": "1.11.1", "@unrs/resolver-binding-freebsd-x64": "1.11.1", "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", "@unrs/resolver-binding-linux-x64-musl": "1.11.1", "@unrs/resolver-binding-wasm32-wasi": "1.11.1", "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" } }, "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg=="], + + "update-browserslist-db": ["update-browserslist-db@1.2.3", "", { "dependencies": { "escalade": "3.2.0", "picocolors": "1.1.1" }, "peerDependencies": { "browserslist": "4.28.1" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w=="], + + "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "2.3.1" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], + + "urlpattern-polyfill": ["urlpattern-polyfill@10.1.0", "", {}, "sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw=="], + + "use-callback-ref": ["use-callback-ref@1.3.3", "", { "dependencies": { "tslib": "2.8.1" }, "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg=="], + + "use-sidecar": ["use-sidecar@1.1.3", "", { "dependencies": { "detect-node-es": "1.1.0", "tslib": "2.8.1" }, "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ=="], + + "use-sync-external-store": ["use-sync-external-store@1.6.0", "", { "peerDependencies": { "react": "19.2.4" } }, "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w=="], + + "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], + + "vary": ["vary@1.1.2", "", {}, "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="], + + "vaul": ["vaul@1.1.2", "", { "dependencies": { "@radix-ui/react-dialog": "^1.1.1" }, "peerDependencies": { "react": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc" } }, "sha512-ZFkClGpWyI2WUQjdLJ/BaGuV6AVQiJ3uELGk3OYtP+B6yCO7Cmn9vPFXVJkRaGkOJu3m8bQMgtyzNHixULceQA=="], + + "web-streams-polyfill": ["web-streams-polyfill@4.0.0-beta.3", "", {}, "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug=="], + + "webidl-conversions": ["webidl-conversions@3.0.1", "", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="], + + "webpack-bundle-analyzer": ["webpack-bundle-analyzer@4.10.1", "", { "dependencies": { "@discoveryjs/json-ext": "0.5.7", "acorn": "8.16.0", "acorn-walk": "8.3.5", "commander": "7.2.0", "debounce": "1.2.1", "escape-string-regexp": "4.0.0", "gzip-size": "6.0.0", "html-escaper": "2.0.2", "is-plain-object": "5.0.0", "opener": "1.5.2", "picocolors": "1.1.1", "sirv": "2.0.4", "ws": "7.5.10" }, "bin": { "webpack-bundle-analyzer": "lib/bin/analyzer.js" } }, "sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ=="], + + "whatwg-url": ["whatwg-url@5.0.0", "", { "dependencies": { "tr46": "0.0.3", "webidl-conversions": "3.0.1" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="], + + "which": ["which@2.0.2", "", { "dependencies": { "isexe": "2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], + + "which-boxed-primitive": ["which-boxed-primitive@1.1.1", "", { "dependencies": { "is-bigint": "1.1.0", "is-boolean-object": "1.2.2", "is-number-object": "1.1.1", "is-string": "1.1.1", "is-symbol": "1.1.1" } }, "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA=="], + + "which-builtin-type": ["which-builtin-type@1.2.1", "", { "dependencies": { "call-bound": "1.0.4", "function.prototype.name": "1.1.8", "has-tostringtag": "1.0.2", "is-async-function": "2.1.1", "is-date-object": "1.1.0", "is-finalizationregistry": "1.1.1", "is-generator-function": "1.1.2", "is-regex": "1.2.1", "is-weakref": "1.1.1", "isarray": "2.0.5", "which-boxed-primitive": "1.1.1", "which-collection": "1.0.2", "which-typed-array": "1.1.20" } }, "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q=="], + + "which-collection": ["which-collection@1.0.2", "", { "dependencies": { "is-map": "2.0.3", "is-set": "2.0.3", "is-weakmap": "2.0.2", "is-weakset": "2.0.4" } }, "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw=="], + + "which-typed-array": ["which-typed-array@1.1.20", "", { "dependencies": { "available-typed-arrays": "1.0.7", "call-bind": "1.0.8", "call-bound": "1.0.4", "for-each": "0.3.5", "get-proto": "1.0.1", "gopd": "1.2.0", "has-tostringtag": "1.0.2" } }, "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg=="], + + "word-wrap": ["word-wrap@1.2.5", "", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="], + + "workerd": ["workerd@1.20260301.1", "", { "optionalDependencies": { "@cloudflare/workerd-darwin-64": "1.20260301.1", "@cloudflare/workerd-darwin-arm64": "1.20260301.1", "@cloudflare/workerd-linux-64": "1.20260301.1", "@cloudflare/workerd-linux-arm64": "1.20260301.1", "@cloudflare/workerd-windows-64": "1.20260301.1" }, "bin": { "workerd": "bin/workerd" } }, "sha512-oterQ1IFd3h7PjCfT4znSFOkJCvNQ6YMOyZ40YsnO3nrSpgB4TbJVYWFOnyJAw71/RQuupfVqZZWKvsy8GO3fw=="], + + "wrangler": ["wrangler@4.71.0", "", { "dependencies": { "@cloudflare/kv-asset-handler": "0.4.2", "@cloudflare/unenv-preset": "2.15.0", "blake3-wasm": "2.1.5", "esbuild": "0.27.3", "miniflare": "4.20260301.1", "path-to-regexp": "6.3.0", "unenv": "2.0.0-rc.24", "workerd": "1.20260301.1" }, "optionalDependencies": { "fsevents": "~2.3.2" }, "peerDependencies": { "@cloudflare/workers-types": "^4.20260226.1" }, "optionalPeers": ["@cloudflare/workers-types"], "bin": { "wrangler": "bin/wrangler.js", "wrangler2": "bin/wrangler.js" } }, "sha512-j6pSGAncOLNQDRzqtp0EqzYj52CldDP7uz/C9cxVrIgqa5p+cc0b4pIwnapZZAGv9E1Loa3tmPD0aXonH7KTkw=="], + + "wrap-ansi": ["wrap-ansi@9.0.2", "", { "dependencies": { "ansi-styles": "6.2.3", "string-width": "7.2.0", "strip-ansi": "7.2.0" } }, "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww=="], + + "wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="], + + "ws": ["ws@8.18.0", "", {}, "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw=="], + + "xxhashjs": ["xxhashjs@0.2.2", "", { "dependencies": { "cuint": "0.2.2" } }, "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw=="], + + "y18n": ["y18n@5.0.8", "", {}, "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="], + + "yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], + + "yaml": ["yaml@2.8.2", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A=="], + + "yargs": ["yargs@18.0.0", "", { "dependencies": { "cliui": "9.0.1", "escalade": "3.2.0", "get-caller-file": "2.0.5", "string-width": "7.2.0", "y18n": "5.0.8", "yargs-parser": "22.0.0" } }, "sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg=="], + + "yargs-parser": ["yargs-parser@22.0.0", "", {}, "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw=="], + + "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], + + "youch": ["youch@4.1.0-beta.10", "", { "dependencies": { "@poppinss/colors": "4.1.6", "@poppinss/dumper": "0.6.5", "@speed-highlight/core": "1.2.14", "cookie": "1.1.1", "youch-core": "0.3.3" } }, "sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ=="], + + "youch-core": ["youch-core@0.3.3", "", { "dependencies": { "@poppinss/exception": "1.2.3", "error-stack-parser-es": "1.0.5" } }, "sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA=="], + + "zod": ["zod@3.23.8", "", {}, "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g=="], + + "@0x57/prettier-config/prettier": ["prettier@3.4.2", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ=="], + + "@0x57/prettier-config/prettier-plugin-tailwindcss": ["prettier-plugin-tailwindcss@0.6.14", "", { "optionalDependencies": { "prettier-plugin-organize-imports": "4.3.0" }, "peerDependencies": { "prettier": "3.4.2" } }, "sha512-pi2e/+ZygeIqntN+vC573BcW5Cve8zUB0SSAGxqpB4f96boZF4M3phPVoOFCeypwkpRYdi7+jQ5YJJUwrkGUAg=="], + + "@aws-crypto/sha1-browser/@smithy/util-utf8": ["@smithy/util-utf8@2.3.0", "", { "dependencies": { "@smithy/util-buffer-from": "2.2.0", "tslib": "2.8.1" } }, "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A=="], + + "@aws-crypto/sha256-browser/@smithy/util-utf8": ["@smithy/util-utf8@2.3.0", "", { "dependencies": { "@smithy/util-buffer-from": "2.2.0", "tslib": "2.8.1" } }, "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A=="], + + "@aws-crypto/util/@smithy/util-utf8": ["@smithy/util-utf8@2.3.0", "", { "dependencies": { "@smithy/util-buffer-from": "2.2.0", "tslib": "2.8.1" } }, "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A=="], + + "@aws-sdk/middleware-user-agent/@aws-sdk/util-endpoints": ["@aws-sdk/util-endpoints@3.996.3", "", { "dependencies": { "@aws-sdk/types": "3.973.4", "@smithy/types": "4.13.0", "@smithy/url-parser": "4.2.10", "@smithy/util-endpoints": "3.3.1", "tslib": "2.8.1" } }, "sha512-yWIQSNiCjykLL+ezN5A+DfBb1gfXTytBxm57e64lYmwxDHNmInYHRJYYRAGWG1o77vKEiWaw4ui28e3yb1k5aQ=="], + + "@aws-sdk/nested-clients/@aws-sdk/util-endpoints": ["@aws-sdk/util-endpoints@3.996.3", "", { "dependencies": { "@aws-sdk/types": "3.973.4", "@smithy/types": "4.13.0", "@smithy/url-parser": "4.2.10", "@smithy/util-endpoints": "3.3.1", "tslib": "2.8.1" } }, "sha512-yWIQSNiCjykLL+ezN5A+DfBb1gfXTytBxm57e64lYmwxDHNmInYHRJYYRAGWG1o77vKEiWaw4ui28e3yb1k5aQ=="], + + "@aws-sdk/xml-builder/fast-xml-parser": ["fast-xml-parser@5.4.1", "", { "dependencies": { "fast-xml-builder": "1.0.0", "strnum": "2.2.0" }, "bin": { "fxparser": "src/cli/cli.js" } }, "sha512-BQ30U1mKkvXQXXkAGcuyUA/GA26oEB7NzOtsxCDtyu62sjGw5QraKFhx2Em3WQNjPw9PG6MQ9yuIIgkSDfGu5A=="], + + "@babel/core/json5": ["json5@2.2.3", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], + + "@babel/core/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + + "@babel/generator/@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "3.1.2", "@jridgewell/sourcemap-codec": "1.5.5" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], + + "@babel/helper-compilation-targets/lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "3.1.1" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], + + "@babel/helper-compilation-targets/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + + "@dotenvx/dotenvx/commander": ["commander@11.1.0", "", {}, "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ=="], + + "@dotenvx/dotenvx/which": ["which@4.0.0", "", { "dependencies": { "isexe": "3.1.5" }, "bin": { "node-which": "bin/which.js" } }, "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg=="], + + "@esbuild-kit/core-utils/esbuild": ["esbuild@0.18.20", "", { "optionalDependencies": { "@esbuild/android-arm": "0.18.20", "@esbuild/android-arm64": "0.18.20", "@esbuild/android-x64": "0.18.20", "@esbuild/darwin-arm64": "0.18.20", "@esbuild/darwin-x64": "0.18.20", "@esbuild/freebsd-arm64": "0.18.20", "@esbuild/freebsd-x64": "0.18.20", "@esbuild/linux-arm": "0.18.20", "@esbuild/linux-arm64": "0.18.20", "@esbuild/linux-ia32": "0.18.20", "@esbuild/linux-loong64": "0.18.20", "@esbuild/linux-mips64el": "0.18.20", "@esbuild/linux-ppc64": "0.18.20", "@esbuild/linux-riscv64": "0.18.20", "@esbuild/linux-s390x": "0.18.20", "@esbuild/linux-x64": "0.18.20", "@esbuild/netbsd-x64": "0.18.20", "@esbuild/openbsd-x64": "0.18.20", "@esbuild/sunos-x64": "0.18.20", "@esbuild/win32-arm64": "0.18.20", "@esbuild/win32-ia32": "0.18.20", "@esbuild/win32-x64": "0.18.20" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA=="], + + "@eslint/config-array/minimatch": ["minimatch@10.2.4", "", { "dependencies": { "brace-expansion": "5.0.4" } }, "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg=="], + + "@jridgewell/gen-mapping/@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "3.1.2", "@jridgewell/sourcemap-codec": "1.5.5" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], + + "@jridgewell/remapping/@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "3.1.2", "@jridgewell/sourcemap-codec": "1.5.5" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], + + "@jridgewell/source-map/@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "3.1.2", "@jridgewell/sourcemap-codec": "1.5.5" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], + + "@next/eslint-plugin-next/fast-glob": ["fast-glob@3.3.1", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "@nodelib/fs.walk": "1.2.8", "glob-parent": "5.1.2", "merge2": "1.4.1", "micromatch": "4.0.8" } }, "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg=="], + + "@node-minify/core/glob": ["glob@9.3.5", "", { "dependencies": { "fs.realpath": "1.0.0", "minimatch": "8.0.7", "minipass": "4.2.8", "path-scurry": "1.11.1" } }, "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q=="], + + "@opennextjs/aws/chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], + + "@opennextjs/aws/cookie": ["cookie@1.1.1", "", {}, "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ=="], + + "@opennextjs/aws/esbuild": ["esbuild@0.25.4", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.4", "@esbuild/android-arm": "0.25.4", "@esbuild/android-arm64": "0.25.4", "@esbuild/android-x64": "0.25.4", "@esbuild/darwin-arm64": "0.25.4", "@esbuild/darwin-x64": "0.25.4", "@esbuild/freebsd-arm64": "0.25.4", "@esbuild/freebsd-x64": "0.25.4", "@esbuild/linux-arm": "0.25.4", "@esbuild/linux-arm64": "0.25.4", "@esbuild/linux-ia32": "0.25.4", "@esbuild/linux-loong64": "0.25.4", "@esbuild/linux-mips64el": "0.25.4", "@esbuild/linux-ppc64": "0.25.4", "@esbuild/linux-riscv64": "0.25.4", "@esbuild/linux-s390x": "0.25.4", "@esbuild/linux-x64": "0.25.4", "@esbuild/netbsd-arm64": "0.25.4", "@esbuild/netbsd-x64": "0.25.4", "@esbuild/openbsd-arm64": "0.25.4", "@esbuild/openbsd-x64": "0.25.4", "@esbuild/sunos-x64": "0.25.4", "@esbuild/win32-arm64": "0.25.4", "@esbuild/win32-ia32": "0.25.4", "@esbuild/win32-x64": "0.25.4" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q=="], + + "@opennextjs/cloudflare/glob": ["glob@12.0.0", "", { "dependencies": { "foreground-child": "3.3.1", "jackspeak": "4.2.3", "minimatch": "10.2.4", "minipass": "7.1.3", "package-json-from-dist": "1.0.1", "path-scurry": "2.0.2" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-5Qcll1z7IKgHr5g485ePDdHcNQY0k2dtv/bjYy0iuyGxQw2qSOiiXUXJ+AYQpg3HNoUMHqAruX478Jeev7UULw=="], + + "@poppinss/dumper/supports-color": ["supports-color@10.2.2", "", {}, "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g=="], + + "@radix-ui/react-avatar/@radix-ui/react-context": ["@radix-ui/react-context@1.1.3", "", { "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-ieIFACdMpYfMEjF0rEf5KLvfVyIkOz6PDGyNnP+u+4xQ6jny3VCgA4OgXOwNx2aUkxn8zx9fiVcM8CfFYv9Lxw=="], + + "@radix-ui/react-avatar/@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.4", "", { "dependencies": { "@radix-ui/react-slot": "1.2.4" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg=="], + + "@radix-ui/react-collection/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="], + + "@radix-ui/react-dialog/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="], + + "@radix-ui/react-label/@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.4", "", { "dependencies": { "@radix-ui/react-slot": "1.2.4" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg=="], + + "@radix-ui/react-menu/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="], + + "@radix-ui/react-popover/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="], + + "@radix-ui/react-primitive/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="], + + "@radix-ui/react-progress/@radix-ui/react-context": ["@radix-ui/react-context@1.1.3", "", { "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-ieIFACdMpYfMEjF0rEf5KLvfVyIkOz6PDGyNnP+u+4xQ6jny3VCgA4OgXOwNx2aUkxn8zx9fiVcM8CfFYv9Lxw=="], + + "@radix-ui/react-progress/@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.4", "", { "dependencies": { "@radix-ui/react-slot": "1.2.4" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg=="], + + "@radix-ui/react-select/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="], + + "@radix-ui/react-separator/@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.4", "", { "dependencies": { "@radix-ui/react-slot": "1.2.4" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg=="], + + "@radix-ui/react-tooltip/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "optionalDependencies": { "@types/react": "19.2.14" }, "peerDependencies": { "react": "19.2.4" } }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="], + + "@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], + + "@typescript-eslint/typescript-estree/minimatch": ["minimatch@10.2.4", "", { "dependencies": { "brace-expansion": "5.0.4" } }, "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg=="], + + "@typescript-eslint/visitor-keys/eslint-visitor-keys": ["eslint-visitor-keys@5.0.1", "", {}, "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA=="], + + "accepts/mime-types": ["mime-types@3.0.2", "", { "dependencies": { "mime-db": "1.54.0" } }, "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A=="], + + "anymatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + + "chokidar/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "4.0.3" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + + "cliui/strip-ansi": ["strip-ansi@7.2.0", "", { "dependencies": { "ansi-regex": "6.2.2" } }, "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w=="], + + "cloudflare/@types/node": ["@types/node@18.19.130", "", { "dependencies": { "undici-types": "5.26.5" } }, "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg=="], + + "cmdk/@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.4", "", { "dependencies": { "@radix-ui/react-slot": "1.2.4" }, "optionalDependencies": { "@types/react": "19.2.14", "@types/react-dom": "19.2.3" }, "peerDependencies": { "react": "19.2.4", "react-dom": "19.2.4" } }, "sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg=="], + + "cookies-next/@types/node": ["@types/node@16.18.126", "", {}, "sha512-OTcgaiwfGFBKacvfwuHzzn1KLxH/er8mluiy8/uM3sGXHaRe73RrSIj01jow9t4kJEW633Ov+cOexXeiApTyAw=="], + + "eslint-import-resolver-node/debug": ["debug@3.2.7", "", { "dependencies": { "ms": "2.1.3" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], + + "eslint-module-utils/debug": ["debug@3.2.7", "", { "dependencies": { "ms": "2.1.3" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], + + "eslint-module-utils/eslint": ["eslint@10.0.2", "", { "dependencies": { "@eslint-community/eslint-utils": "4.9.1", "@eslint-community/regexpp": "4.12.2", "@eslint/config-array": "0.23.2", "@eslint/config-helpers": "0.5.2", "@eslint/core": "1.1.0", "@eslint/plugin-kit": "0.6.0", "@humanfs/node": "0.16.7", "@humanwhocodes/module-importer": "1.0.1", "@humanwhocodes/retry": "0.4.3", "@types/estree": "1.0.8", "ajv": "6.14.0", "cross-spawn": "7.0.6", "debug": "4.4.3", "escape-string-regexp": "4.0.0", "eslint-scope": "9.1.1", "eslint-visitor-keys": "5.0.1", "espree": "11.1.1", "esquery": "1.7.0", "esutils": "2.0.3", "fast-deep-equal": "3.1.3", "file-entry-cache": "8.0.0", "find-up": "5.0.0", "glob-parent": "6.0.2", "ignore": "5.3.2", "imurmurhash": "0.1.4", "is-glob": "4.0.3", "json-stable-stringify-without-jsonify": "1.0.1", "minimatch": "10.2.4", "natural-compare": "1.4.0", "optionator": "0.9.4" }, "optionalDependencies": { "jiti": "1.21.7" }, "bin": { "eslint": "bin/eslint.js" } }, "sha512-uYixubwmqJZH+KLVYIVKY1JQt7tysXhtj21WSvjcSmU5SVNzMus1bgLe+pAt816yQ8opKfheVVoPLqvVMGejYw=="], + + "eslint-plugin-import/debug": ["debug@3.2.7", "", { "dependencies": { "ms": "2.1.3" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], + + "eslint-plugin-import/doctrine": ["doctrine@2.1.0", "", { "dependencies": { "esutils": "2.0.3" } }, "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw=="], + + "eslint-plugin-import/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + + "eslint-plugin-react/doctrine": ["doctrine@2.1.0", "", { "dependencies": { "esutils": "2.0.3" } }, "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw=="], + + "eslint-plugin-react/resolve": ["resolve@2.0.0-next.6", "", { "dependencies": { "es-errors": "1.3.0", "is-core-module": "2.16.1", "node-exports-info": "1.6.0", "object-keys": "1.1.1", "path-parse": "1.0.7", "supports-preserve-symlinks-flag": "1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA=="], + + "eslint-plugin-react/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + + "express/cookie": ["cookie@0.7.2", "", {}, "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w=="], + + "express/mime-types": ["mime-types@3.0.2", "", { "dependencies": { "mime-db": "1.54.0" } }, "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A=="], + + "fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "4.0.3" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + + "flat-cache/rimraf": ["rimraf@3.0.2", "", { "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" } }, "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA=="], + + "foreground-child/signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="], + + "glob/minimatch": ["minimatch@10.2.4", "", { "dependencies": { "brace-expansion": "5.0.4" } }, "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg=="], + + "micromatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + + "next/postcss": ["postcss@8.4.31", "", { "dependencies": { "nanoid": "3.3.11", "picocolors": "1.1.1", "source-map-js": "1.2.1" } }, "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ=="], + + "node-exports-info/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + + "postcss-load-config/lilconfig": ["lilconfig@3.1.3", "", {}, "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw=="], + + "prettier-plugin-packagejson/prettier": ["prettier@3.4.2", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ=="], + + "readdirp/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + + "router/path-to-regexp": ["path-to-regexp@8.3.0", "", {}, "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA=="], + + "send/mime-types": ["mime-types@3.0.2", "", { "dependencies": { "mime-db": "1.54.0" } }, "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A=="], + + "string-width/emoji-regex": ["emoji-regex@10.6.0", "", {}, "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A=="], + + "string-width/strip-ansi": ["strip-ansi@7.2.0", "", { "dependencies": { "ansi-regex": "6.2.2" } }, "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w=="], + + "sucrase/commander": ["commander@4.1.1", "", {}, "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA=="], + + "terser/commander": ["commander@2.20.3", "", {}, "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="], + + "type-is/mime-types": ["mime-types@3.0.2", "", { "dependencies": { "mime-db": "1.54.0" } }, "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A=="], + + "webpack-bundle-analyzer/ws": ["ws@7.5.10", "", {}, "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ=="], + + "wrangler/esbuild": ["esbuild@0.27.3", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.3", "@esbuild/android-arm": "0.27.3", "@esbuild/android-arm64": "0.27.3", "@esbuild/android-x64": "0.27.3", "@esbuild/darwin-arm64": "0.27.3", "@esbuild/darwin-x64": "0.27.3", "@esbuild/freebsd-arm64": "0.27.3", "@esbuild/freebsd-x64": "0.27.3", "@esbuild/linux-arm": "0.27.3", "@esbuild/linux-arm64": "0.27.3", "@esbuild/linux-ia32": "0.27.3", "@esbuild/linux-loong64": "0.27.3", "@esbuild/linux-mips64el": "0.27.3", "@esbuild/linux-ppc64": "0.27.3", "@esbuild/linux-riscv64": "0.27.3", "@esbuild/linux-s390x": "0.27.3", "@esbuild/linux-x64": "0.27.3", "@esbuild/netbsd-arm64": "0.27.3", "@esbuild/netbsd-x64": "0.27.3", "@esbuild/openbsd-arm64": "0.27.3", "@esbuild/openbsd-x64": "0.27.3", "@esbuild/openharmony-arm64": "0.27.3", "@esbuild/sunos-x64": "0.27.3", "@esbuild/win32-arm64": "0.27.3", "@esbuild/win32-ia32": "0.27.3", "@esbuild/win32-x64": "0.27.3" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg=="], + + "wrap-ansi/ansi-styles": ["ansi-styles@6.2.3", "", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="], + + "wrap-ansi/strip-ansi": ["strip-ansi@7.2.0", "", { "dependencies": { "ansi-regex": "6.2.2" } }, "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w=="], + + "youch/cookie": ["cookie@1.1.1", "", {}, "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ=="], + + "@aws-crypto/sha1-browser/@smithy/util-utf8/@smithy/util-buffer-from": ["@smithy/util-buffer-from@2.2.0", "", { "dependencies": { "@smithy/is-array-buffer": "2.2.0", "tslib": "2.8.1" } }, "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA=="], + + "@aws-crypto/sha256-browser/@smithy/util-utf8/@smithy/util-buffer-from": ["@smithy/util-buffer-from@2.2.0", "", { "dependencies": { "@smithy/is-array-buffer": "2.2.0", "tslib": "2.8.1" } }, "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA=="], + + "@aws-crypto/util/@smithy/util-utf8/@smithy/util-buffer-from": ["@smithy/util-buffer-from@2.2.0", "", { "dependencies": { "@smithy/is-array-buffer": "2.2.0", "tslib": "2.8.1" } }, "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA=="], + + "@dotenvx/dotenvx/which/isexe": ["isexe@3.1.5", "", {}, "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.18.20", "", { "os": "android", "cpu": "arm" }, "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.18.20", "", { "os": "android", "cpu": "arm64" }, "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.18.20", "", { "os": "android", "cpu": "x64" }, "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.18.20", "", { "os": "darwin", "cpu": "arm64" }, "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.18.20", "", { "os": "darwin", "cpu": "x64" }, "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.18.20", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.18.20", "", { "os": "freebsd", "cpu": "x64" }, "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.18.20", "", { "os": "linux", "cpu": "arm" }, "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.18.20", "", { "os": "linux", "cpu": "arm64" }, "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.18.20", "", { "os": "linux", "cpu": "ia32" }, "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.18.20", "", { "os": "linux", "cpu": "none" }, "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.18.20", "", { "os": "linux", "cpu": "none" }, "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.18.20", "", { "os": "linux", "cpu": "ppc64" }, "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.18.20", "", { "os": "linux", "cpu": "none" }, "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.18.20", "", { "os": "linux", "cpu": "s390x" }, "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.18.20", "", { "os": "linux", "cpu": "x64" }, "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.18.20", "", { "os": "none", "cpu": "x64" }, "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.18.20", "", { "os": "openbsd", "cpu": "x64" }, "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.18.20", "", { "os": "sunos", "cpu": "x64" }, "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.18.20", "", { "os": "win32", "cpu": "arm64" }, "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.18.20", "", { "os": "win32", "cpu": "ia32" }, "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g=="], + + "@esbuild-kit/core-utils/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.18.20", "", { "os": "win32", "cpu": "x64" }, "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ=="], + + "@eslint/config-array/minimatch/brace-expansion": ["brace-expansion@5.0.4", "", { "dependencies": { "balanced-match": "4.0.4" } }, "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg=="], + + "@next/eslint-plugin-next/fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "4.0.3" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + + "@node-minify/core/glob/minimatch": ["minimatch@8.0.7", "", { "dependencies": { "brace-expansion": "2.0.2" } }, "sha512-V+1uQNdzybxa14e/p00HZnQNNcTjnRJjDxg2V8wtkjFctq4M7hXFws4oekyTP0Jebeq7QYtpFyOeBAjc88zvYg=="], + + "@node-minify/core/glob/minipass": ["minipass@4.2.8", "", {}, "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ=="], + + "@node-minify/core/glob/path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "10.4.3", "minipass": "7.1.3" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="], + + "@opennextjs/aws/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.4", "", { "os": "aix", "cpu": "ppc64" }, "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q=="], + + "@opennextjs/aws/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.25.4", "", { "os": "android", "cpu": "arm" }, "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ=="], + + "@opennextjs/aws/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.4", "", { "os": "android", "cpu": "arm64" }, "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A=="], + + "@opennextjs/aws/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.25.4", "", { "os": "android", "cpu": "x64" }, "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ=="], + + "@opennextjs/aws/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g=="], + + "@opennextjs/aws/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A=="], + + "@opennextjs/aws/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.4", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ=="], + + "@opennextjs/aws/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.4", "", { "os": "freebsd", "cpu": "x64" }, "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ=="], + + "@opennextjs/aws/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.4", "", { "os": "linux", "cpu": "arm" }, "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ=="], + + "@opennextjs/aws/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ=="], + + "@opennextjs/aws/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.4", "", { "os": "linux", "cpu": "ia32" }, "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ=="], + + "@opennextjs/aws/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.4", "", { "os": "linux", "cpu": "none" }, "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA=="], + + "@opennextjs/aws/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.4", "", { "os": "linux", "cpu": "none" }, "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg=="], + + "@opennextjs/aws/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.4", "", { "os": "linux", "cpu": "ppc64" }, "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag=="], + + "@opennextjs/aws/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.4", "", { "os": "linux", "cpu": "none" }, "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA=="], + + "@opennextjs/aws/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.4", "", { "os": "linux", "cpu": "s390x" }, "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g=="], + + "@opennextjs/aws/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.4", "", { "os": "linux", "cpu": "x64" }, "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA=="], + + "@opennextjs/aws/esbuild/@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.4", "", { "os": "none", "cpu": "arm64" }, "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ=="], + + "@opennextjs/aws/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.4", "", { "os": "none", "cpu": "x64" }, "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw=="], + + "@opennextjs/aws/esbuild/@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.4", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A=="], + + "@opennextjs/aws/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.4", "", { "os": "openbsd", "cpu": "x64" }, "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw=="], + + "@opennextjs/aws/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.4", "", { "os": "sunos", "cpu": "x64" }, "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q=="], + + "@opennextjs/aws/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ=="], + + "@opennextjs/aws/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.4", "", { "os": "win32", "cpu": "ia32" }, "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg=="], + + "@opennextjs/aws/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.4", "", { "os": "win32", "cpu": "x64" }, "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ=="], + + "@opennextjs/cloudflare/glob/minimatch": ["minimatch@10.2.4", "", { "dependencies": { "brace-expansion": "5.0.4" } }, "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg=="], + + "@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@5.0.4", "", { "dependencies": { "balanced-match": "4.0.4" } }, "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg=="], + + "accepts/mime-types/mime-db": ["mime-db@1.54.0", "", {}, "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ=="], + + "cliui/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], + + "cloudflare/@types/node/undici-types": ["undici-types@5.26.5", "", {}, "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="], + + "eslint-module-utils/eslint/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "eslint-module-utils/eslint/eslint-scope": ["eslint-scope@9.1.1", "", { "dependencies": { "@types/esrecurse": "4.3.1", "@types/estree": "1.0.8", "esrecurse": "4.3.0", "estraverse": "5.3.0" } }, "sha512-GaUN0sWim5qc8KVErfPBWmc31LEsOkrUJbvJZV+xuL3u2phMUK4HIvXlWAakfC8W4nzlK+chPEAkYOYb5ZScIw=="], + + "eslint-module-utils/eslint/eslint-visitor-keys": ["eslint-visitor-keys@5.0.1", "", {}, "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA=="], + + "eslint-module-utils/eslint/espree": ["espree@11.1.1", "", { "dependencies": { "acorn": "8.16.0", "acorn-jsx": "5.3.2", "eslint-visitor-keys": "5.0.1" } }, "sha512-AVHPqQoZYc+RUM4/3Ly5udlZY/U4LS8pIG05jEjWM2lQMU/oaZ7qshzAl2YP1tfNmXfftH3ohurfwNAug+MnsQ=="], + + "eslint-module-utils/eslint/file-entry-cache": ["file-entry-cache@8.0.0", "", { "dependencies": { "flat-cache": "4.0.1" } }, "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ=="], + + "eslint-module-utils/eslint/minimatch": ["minimatch@10.2.4", "", { "dependencies": { "brace-expansion": "5.0.4" } }, "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg=="], + + "express/mime-types/mime-db": ["mime-db@1.54.0", "", {}, "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ=="], + + "flat-cache/rimraf/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], + + "glob/minimatch/brace-expansion": ["brace-expansion@5.0.4", "", { "dependencies": { "balanced-match": "4.0.4" } }, "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg=="], + + "send/mime-types/mime-db": ["mime-db@1.54.0", "", {}, "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ=="], + + "string-width/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], + + "type-is/mime-types/mime-db": ["mime-db@1.54.0", "", {}, "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ=="], + + "wrangler/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.3", "", { "os": "aix", "cpu": "ppc64" }, "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg=="], + + "wrangler/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.27.3", "", { "os": "android", "cpu": "arm" }, "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA=="], + + "wrangler/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.27.3", "", { "os": "android", "cpu": "arm64" }, "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg=="], + + "wrangler/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.27.3", "", { "os": "android", "cpu": "x64" }, "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ=="], + + "wrangler/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.27.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg=="], + + "wrangler/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.27.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg=="], + + "wrangler/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.27.3", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w=="], + + "wrangler/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.27.3", "", { "os": "freebsd", "cpu": "x64" }, "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA=="], + + "wrangler/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.27.3", "", { "os": "linux", "cpu": "arm" }, "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw=="], + + "wrangler/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.27.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg=="], + + "wrangler/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.27.3", "", { "os": "linux", "cpu": "ia32" }, "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg=="], + + "wrangler/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.27.3", "", { "os": "linux", "cpu": "none" }, "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA=="], + + "wrangler/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.27.3", "", { "os": "linux", "cpu": "none" }, "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw=="], + + "wrangler/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.27.3", "", { "os": "linux", "cpu": "ppc64" }, "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA=="], + + "wrangler/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.27.3", "", { "os": "linux", "cpu": "none" }, "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ=="], + + "wrangler/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.27.3", "", { "os": "linux", "cpu": "s390x" }, "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw=="], + + "wrangler/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.27.3", "", { "os": "linux", "cpu": "x64" }, "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA=="], + + "wrangler/esbuild/@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.27.3", "", { "os": "none", "cpu": "arm64" }, "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA=="], + + "wrangler/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.27.3", "", { "os": "none", "cpu": "x64" }, "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA=="], + + "wrangler/esbuild/@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.27.3", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw=="], + + "wrangler/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.27.3", "", { "os": "openbsd", "cpu": "x64" }, "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ=="], + + "wrangler/esbuild/@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.27.3", "", { "os": "none", "cpu": "arm64" }, "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g=="], + + "wrangler/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.27.3", "", { "os": "sunos", "cpu": "x64" }, "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA=="], + + "wrangler/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.27.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA=="], + + "wrangler/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.27.3", "", { "os": "win32", "cpu": "ia32" }, "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q=="], + + "wrangler/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.3", "", { "os": "win32", "cpu": "x64" }, "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA=="], + + "wrap-ansi/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], + + "@aws-crypto/sha1-browser/@smithy/util-utf8/@smithy/util-buffer-from/@smithy/is-array-buffer": ["@smithy/is-array-buffer@2.2.0", "", { "dependencies": { "tslib": "2.8.1" } }, "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA=="], + + "@aws-crypto/sha256-browser/@smithy/util-utf8/@smithy/util-buffer-from/@smithy/is-array-buffer": ["@smithy/is-array-buffer@2.2.0", "", { "dependencies": { "tslib": "2.8.1" } }, "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA=="], + + "@aws-crypto/util/@smithy/util-utf8/@smithy/util-buffer-from/@smithy/is-array-buffer": ["@smithy/is-array-buffer@2.2.0", "", { "dependencies": { "tslib": "2.8.1" } }, "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA=="], + + "@eslint/config-array/minimatch/brace-expansion/balanced-match": ["balanced-match@4.0.4", "", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], + + "@node-minify/core/glob/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "1.0.2" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], + + "@node-minify/core/glob/path-scurry/lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], + + "@node-minify/core/glob/path-scurry/minipass": ["minipass@7.1.3", "", {}, "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A=="], + + "@opennextjs/cloudflare/glob/minimatch/brace-expansion": ["brace-expansion@5.0.4", "", { "dependencies": { "balanced-match": "4.0.4" } }, "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg=="], + + "@typescript-eslint/typescript-estree/minimatch/brace-expansion/balanced-match": ["balanced-match@4.0.4", "", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], + + "eslint-module-utils/eslint/file-entry-cache/flat-cache": ["flat-cache@4.0.1", "", { "dependencies": { "flatted": "3.3.4", "keyv": "4.5.4" } }, "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw=="], + + "eslint-module-utils/eslint/minimatch/brace-expansion": ["brace-expansion@5.0.4", "", { "dependencies": { "balanced-match": "4.0.4" } }, "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg=="], + + "glob/minimatch/brace-expansion/balanced-match": ["balanced-match@4.0.4", "", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], + + "@opennextjs/cloudflare/glob/minimatch/brace-expansion/balanced-match": ["balanced-match@4.0.4", "", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], + + "eslint-module-utils/eslint/minimatch/brace-expansion/balanced-match": ["balanced-match@4.0.4", "", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], + } +} diff --git a/bun.lockb b/bun.lockb deleted file mode 100755 index 68a27a2ff492bdf4b7132ebec24473f5f44d4fa8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 400504 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

t>04522Rsx;^A{ZqxLK(r(yP}`!ma_^fyxa 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ů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 { + return [ + { + source: "/api", + destination: "/api/me", + }, + ]; + }, + redirects: async () => { + return [ + { + source: "/discord", + destination: "https://discord.gg/9K3TgZaPkT", + permanent: true, + }, + { + source: "/github", + destination: "https://github.com/communitycenter/stardew.app", + permanent: true, + }, + { + source: "/social", + destination: "/relationships", + permanent: true, + }, + { + source: "/artifacts", + destination: "/museum", + permanent: true, + }, + ]; + }, + images: { + unoptimized: true, + remotePatterns: [ + { + protocol: "https", + hostname: "stardewvalleywiki.com", + port: "", + pathname: "/mediawiki/images/**", + }, + ], + }, +}; + +module.exports = nextConfig; +initOpenNextCloudflareForDev(); diff --git a/open-next.config.ts b/open-next.config.ts new file mode 100644 index 00000000..ffd98878 --- /dev/null +++ b/open-next.config.ts @@ -0,0 +1,3 @@ +import { defineCloudflareConfig } from "@opennextjs/cloudflare"; + +export default defineCloudflareConfig(); diff --git a/package.json b/package.json index 0a3349e4..8489a44b 100644 --- a/package.json +++ b/package.json @@ -1,31 +1,93 @@ { - "name": "communitycenter", + "name": "stardew.app", + "version": "2.3.0", "private": true, "scripts": { - "build": "turbo build", - "dev": "turbo dev --filter=stardew.app --ui=stream", - "lint": "turbo lint", - "typecheck": "turbo typecheck", - "format": "turbo format", - "test": "turbo test", - "clean": "turbo clean && rimraf .turbo" - }, - "packageManager": "bun@1.2.0", - "workspaces": [ - "apps/*", - "packages/*" - ], - "devDependencies": { - "@typescript/native-preview": "7.0.0-dev.20250707.2", - "drizzle-kit": "^0.31.4", - "prettier": "3.4.2", - "rimraf": "6.0.1", - "turbo": "2.4.0", - "typescript": "5.8.2" + "build": "next build", + "build:turbo": "next build --turbopack", + "cf-typegen": "wrangler types --env-interface CloudflareEnv cloudflare-env.d.ts", + "clean": "rimraf .next .open-next .turbo", + "dev": "next dev", + "dev:turbo": "next dev --turbopack", + "format": "bun run prettier . --check", + "lint": "next lint", + "preview": "bun scripts/opennext.mjs preview", + "deploy": "bun scripts/opennext.mjs deploy", + "start": "next start", + "typecheck": "tsgo --noEmit" }, "dependencies": { - "baseline-browser-mapping": "^2.9.11", - "caniuse-lite": "^1.0.30001761", - "drizzle-orm": "^0.44.5" + "@heroicons/react": "^2.2.0", + "@hookform/resolvers": "3.9.1", + "@marsidev/react-turnstile": "^1.4.2", + "@next/bundle-analyzer": "^16.1.6", + "@opennextjs/cloudflare": "^1.17.1", + "@planetscale/database": "^1.19.0", + "@radix-ui/react-accordion": "^1.2.12", + "@radix-ui/react-avatar": "^1.1.11", + "@radix-ui/react-checkbox": "^1.3.3", + "@radix-ui/react-context-menu": "^2.2.16", + "@radix-ui/react-dialog": "^1.1.15", + "@radix-ui/react-dropdown-menu": "^2.1.16", + "@radix-ui/react-icons": "^1.3.2", + "@radix-ui/react-label": "^2.1.8", + "@radix-ui/react-popover": "^1.1.15", + "@radix-ui/react-progress": "^1.1.8", + "@radix-ui/react-scroll-area": "^1.2.10", + "@radix-ui/react-select": "^2.2.6", + "@radix-ui/react-separator": "^1.1.8", + "@radix-ui/react-slot": "^1.2.4", + "@radix-ui/react-switch": "^1.2.6", + "@radix-ui/react-tabs": "^1.1.13", + "@radix-ui/react-toast": "^1.2.15", + "@radix-ui/react-toggle": "^1.1.10", + "@radix-ui/react-toggle-group": "^1.1.11", + "@radix-ui/react-tooltip": "^1.2.8", + "@react-hook/media-query": "^1.1.1", + "@tabler/icons-react": "^3.38.0", + "autoprefixer": "10.4.27", + "axios": "1.7.2", + "baseline-browser-mapping": "^2.10.0", + "caniuse-lite": "^1.0.30001776", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "cmdk": "^1.0.0", + "cookies-next": "2.1.2", + "drizzle-orm": "^0.45.1", + "fast-xml-parser": "^5.4.2", + "lucide-react": "0.522.0", + "mysql2": "^3.18.2", + "next": "15.5.12", + "next-themes": "0.4.6", + "postcss": "8.5.8", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "react-dropzone": "^15.0.0", + "react-hook-form": "^7.71.2", + "semver": "^7.7.4", + "sonner": "^2.0.0", + "swr": "^2.4.0", + "tailwind-merge": "1.13.2", + "tailwindcss": "3.3.2", + "tailwindcss-animate": "^1.0.7", + "vaul": "^1.0.0", + "xxhashjs": "^0.2.2", + "zod": "3.23.8" + }, + "devDependencies": { + "@0x57/prettier-config": "^2.0.0", + "@types/node": "25.3.3", + "@types/react": "^19.0.0", + "@types/react-dom": "^19.0.0", + "@types/xxhashjs": "^0.2.4", + "@typescript/native-preview": "7.0.0-dev.20260303.1", + "drizzle-kit": "^0.31.9", + "eslint": "8.44.0", + "eslint-config-next": "15.5.12", + "prettier": "3.8.1", + "prettier-plugin-tailwindcss": "^0.7.2", + "rimraf": "6.1.3", + "typescript": "5.9.3", + "wrangler": "^4.71.0" } } diff --git a/apps/stardew.app/postcss.config.js b/postcss.config.js similarity index 100% rename from apps/stardew.app/postcss.config.js rename to postcss.config.js diff --git a/apps/stardew.app/prettier.config.mjs b/prettier.config.mjs similarity index 100% rename from apps/stardew.app/prettier.config.mjs rename to prettier.config.mjs diff --git a/apps/stardew.app/public/404.png b/public/404.png similarity index 100% rename from apps/stardew.app/public/404.png rename to public/404.png diff --git a/apps/stardew.app/public/construction.gif b/public/construction.gif similarity index 100% rename from apps/stardew.app/public/construction.gif rename to public/construction.gif diff --git a/apps/stardew.app/public/create.png b/public/create.png similarity index 100% rename from apps/stardew.app/public/create.png rename to public/create.png diff --git a/apps/stardew.app/public/dance.gif b/public/dance.gif similarity index 100% rename from apps/stardew.app/public/dance.gif rename to public/dance.gif diff --git a/apps/stardew.app/public/discord.png b/public/discord.png similarity index 100% rename from apps/stardew.app/public/discord.png rename to public/discord.png diff --git a/apps/stardew.app/public/favicon.png b/public/favicon.png similarity index 100% rename from apps/stardew.app/public/favicon.png rename to public/favicon.png diff --git a/apps/stardew.app/public/fonts/3-by-5-pixel-font.woff2 b/public/fonts/3-by-5-pixel-font.woff2 similarity index 100% rename from apps/stardew.app/public/fonts/3-by-5-pixel-font.woff2 rename to public/fonts/3-by-5-pixel-font.woff2 diff --git a/apps/stardew.app/public/github.png b/public/github.png similarity index 100% rename from apps/stardew.app/public/github.png rename to public/github.png diff --git a/apps/stardew.app/public/images/notes/1004.webp b/public/images/notes/1004.webp similarity index 100% rename from apps/stardew.app/public/images/notes/1004.webp rename to public/images/notes/1004.webp diff --git a/apps/stardew.app/public/images/notes/1006.webp b/public/images/notes/1006.webp similarity index 100% rename from apps/stardew.app/public/images/notes/1006.webp rename to public/images/notes/1006.webp diff --git a/apps/stardew.app/public/images/notes/1010.webp b/public/images/notes/1010.webp similarity index 100% rename from apps/stardew.app/public/images/notes/1010.webp rename to public/images/notes/1010.webp diff --git a/apps/stardew.app/public/images/notes/11.webp b/public/images/notes/11.webp similarity index 100% rename from apps/stardew.app/public/images/notes/11.webp rename to public/images/notes/11.webp diff --git a/apps/stardew.app/public/images/notes/16.webp b/public/images/notes/16.webp similarity index 100% rename from apps/stardew.app/public/images/notes/16.webp rename to public/images/notes/16.webp diff --git a/apps/stardew.app/public/images/notes/17.webp b/public/images/notes/17.webp similarity index 100% rename from apps/stardew.app/public/images/notes/17.webp rename to public/images/notes/17.webp diff --git a/apps/stardew.app/public/images/notes/18.webp b/public/images/notes/18.webp similarity index 100% rename from apps/stardew.app/public/images/notes/18.webp rename to public/images/notes/18.webp diff --git a/apps/stardew.app/public/images/notes/19.webp b/public/images/notes/19.webp similarity index 100% rename from apps/stardew.app/public/images/notes/19.webp rename to public/images/notes/19.webp diff --git a/apps/stardew.app/public/images/notes/20.webp b/public/images/notes/20.webp similarity index 100% rename from apps/stardew.app/public/images/notes/20.webp rename to public/images/notes/20.webp diff --git a/apps/stardew.app/public/images/notes/21.webp b/public/images/notes/21.webp similarity index 100% rename from apps/stardew.app/public/images/notes/21.webp rename to public/images/notes/21.webp diff --git a/apps/stardew.app/public/sitemap.xml b/public/sitemap.xml similarity index 100% rename from apps/stardew.app/public/sitemap.xml rename to public/sitemap.xml diff --git a/apps/stardew.app/public/upload.png b/public/upload.png similarity index 100% rename from apps/stardew.app/public/upload.png rename to public/upload.png diff --git a/apps/stardew.app/public/youtube.png b/public/youtube.png similarity index 100% rename from apps/stardew.app/public/youtube.png rename to public/youtube.png diff --git a/scripts/opennext.mjs b/scripts/opennext.mjs new file mode 100644 index 00000000..2125fed6 --- /dev/null +++ b/scripts/opennext.mjs @@ -0,0 +1,32 @@ +const command = Bun.argv[2]; + +if (command !== "preview" && command !== "deploy") { + console.error("Usage: bun scripts/opennext.mjs "); + process.exit(1); +} + +const cli = Bun.which("opennextjs-cloudflare"); + +if (!cli) { + console.error("Could not find the opennextjs-cloudflare CLI."); + process.exit(1); +} + +async function run(args) { + const subprocess = Bun.spawn({ + cmd: [cli, ...args], + env: process.env, + stdin: "inherit", + stdout: "inherit", + stderr: "inherit", + }); + + const exitCode = await subprocess.exited; + + if (exitCode !== 0) { + process.exit(exitCode); + } +} + +await run(["build"]); +await run([command]); diff --git a/apps/stardew.app/src/components/blurred-preview.tsx b/src/components/blurred-preview.tsx similarity index 100% rename from apps/stardew.app/src/components/blurred-preview.tsx rename to src/components/blurred-preview.tsx diff --git a/apps/stardew.app/src/components/cards/achievement-card.tsx b/src/components/cards/achievement-card.tsx similarity index 100% rename from apps/stardew.app/src/components/cards/achievement-card.tsx rename to src/components/cards/achievement-card.tsx diff --git a/apps/stardew.app/src/components/cards/animal-card.tsx b/src/components/cards/animal-card.tsx similarity index 100% rename from apps/stardew.app/src/components/cards/animal-card.tsx rename to src/components/cards/animal-card.tsx diff --git a/apps/stardew.app/src/components/cards/boolean-card.tsx b/src/components/cards/boolean-card.tsx similarity index 99% rename from apps/stardew.app/src/components/cards/boolean-card.tsx rename to src/components/cards/boolean-card.tsx index 778f7bed..5f4fb4f8 100644 --- a/apps/stardew.app/src/components/cards/boolean-card.tsx +++ b/src/components/cards/boolean-card.tsx @@ -136,7 +136,7 @@ export const BooleanCard = ({ }, }; } - await patchPlayer(patch); + void patchPlayer(patch); } const isSelected = selectedItems.has(item.itemID.toString()); diff --git a/apps/stardew.app/src/components/cards/bundle-item-card.tsx b/src/components/cards/bundle-item-card.tsx similarity index 99% rename from apps/stardew.app/src/components/cards/bundle-item-card.tsx rename to src/components/cards/bundle-item-card.tsx index f65fe6bd..502dbd67 100644 --- a/apps/stardew.app/src/components/cards/bundle-item-card.tsx +++ b/src/components/cards/bundle-item-card.tsx @@ -143,7 +143,7 @@ export const BundleItemCard = ({ } // @ts-ignore - await patchPlayer(patch); + void patchPlayer(patch); } return ( diff --git a/apps/stardew.app/src/components/cards/dialog-card.tsx b/src/components/cards/dialog-card.tsx similarity index 99% rename from apps/stardew.app/src/components/cards/dialog-card.tsx rename to src/components/cards/dialog-card.tsx index d8c39988..6eafba24 100644 --- a/apps/stardew.app/src/components/cards/dialog-card.tsx +++ b/src/components/cards/dialog-card.tsx @@ -176,7 +176,7 @@ export const DialogCard = ({ if (Object.keys(patch).length === 0) return; - await patchPlayer(patch); + void patchPlayer(patch); setOpen(false); } diff --git a/apps/stardew.app/src/components/cards/horse-card.tsx b/src/components/cards/horse-card.tsx similarity index 100% rename from apps/stardew.app/src/components/cards/horse-card.tsx rename to src/components/cards/horse-card.tsx diff --git a/apps/stardew.app/src/components/cards/info-card.tsx b/src/components/cards/info-card.tsx similarity index 100% rename from apps/stardew.app/src/components/cards/info-card.tsx rename to src/components/cards/info-card.tsx diff --git a/apps/stardew.app/src/components/cards/ingredient-card.tsx b/src/components/cards/ingredient-card.tsx similarity index 100% rename from apps/stardew.app/src/components/cards/ingredient-card.tsx rename to src/components/cards/ingredient-card.tsx diff --git a/apps/stardew.app/src/components/cards/input-card.tsx b/src/components/cards/input-card.tsx similarity index 99% rename from apps/stardew.app/src/components/cards/input-card.tsx rename to src/components/cards/input-card.tsx index 8062dbc0..6fd0a901 100644 --- a/apps/stardew.app/src/components/cards/input-card.tsx +++ b/src/components/cards/input-card.tsx @@ -71,7 +71,7 @@ export const InputCard = ({ }, }; - await patchPlayer(patch); + void patchPlayer(patch); setOpen(false); } diff --git a/apps/stardew.app/src/components/cards/perfection-card.tsx b/src/components/cards/perfection-card.tsx similarity index 100% rename from apps/stardew.app/src/components/cards/perfection-card.tsx rename to src/components/cards/perfection-card.tsx diff --git a/apps/stardew.app/src/components/cards/recipe-card.tsx b/src/components/cards/recipe-card.tsx similarity index 99% rename from apps/stardew.app/src/components/cards/recipe-card.tsx rename to src/components/cards/recipe-card.tsx index 8c3498cf..3cd19939 100644 --- a/apps/stardew.app/src/components/cards/recipe-card.tsx +++ b/src/components/cards/recipe-card.tsx @@ -117,7 +117,7 @@ export const RecipeCard = ({ }, }; - await patchPlayer(patch); + void patchPlayer(patch); } const isSelected = selectedItems.has(recipe.itemID.toString()); diff --git a/apps/stardew.app/src/components/cards/shipping-card.tsx b/src/components/cards/shipping-card.tsx similarity index 99% rename from apps/stardew.app/src/components/cards/shipping-card.tsx rename to src/components/cards/shipping-card.tsx index cb48b074..e9dccc71 100644 --- a/apps/stardew.app/src/components/cards/shipping-card.tsx +++ b/src/components/cards/shipping-card.tsx @@ -106,7 +106,7 @@ export const ShippingCard = ({ item, show, setPromptOpen }: Props) => { }, }; - await patchPlayer(patch); + void patchPlayer(patch); setOpen(false); } return ( diff --git a/apps/stardew.app/src/components/cards/villager-card.tsx b/src/components/cards/villager-card.tsx similarity index 97% rename from apps/stardew.app/src/components/cards/villager-card.tsx rename to src/components/cards/villager-card.tsx index b2bfbf02..14d17160 100644 --- a/apps/stardew.app/src/components/cards/villager-card.tsx +++ b/src/components/cards/villager-card.tsx @@ -3,7 +3,7 @@ import Image from "next/image"; import type { Villager } from "@/types/items"; import { cn } from "@/lib/utils"; -import { Dispatch, SetStateAction, useContext, useMemo } from "react"; +import { Dispatch, SetStateAction, ReactElement, useContext, useMemo } from "react"; import { PlayersContext } from "@/contexts/players-context"; @@ -81,7 +81,7 @@ export const VillagerCard = ({ const hearts = Math.floor(points / 250); const getHearts = (count: number) => { - let icons: JSX.Element[] = []; + let icons: ReactElement[] = []; for (let i = 1; i < count + 1; i++) { icons.push( @@ -114,7 +114,7 @@ export const VillagerCard = ({ }, }, }; - await patchPlayer(patch); + void patchPlayer(patch); } async function handleStatusChange(status: string, action: string) { @@ -174,7 +174,7 @@ export const VillagerCard = ({ break; } - await patchPlayer(patch); + void patchPlayer(patch); } const _status = useMemo(() => { diff --git a/apps/stardew.app/src/components/construction.tsx b/src/components/construction.tsx similarity index 100% rename from apps/stardew.app/src/components/construction.tsx rename to src/components/construction.tsx diff --git a/apps/stardew.app/src/components/createPlayerRedirect.tsx b/src/components/createPlayerRedirect.tsx similarity index 100% rename from apps/stardew.app/src/components/createPlayerRedirect.tsx rename to src/components/createPlayerRedirect.tsx diff --git a/apps/stardew.app/src/components/dialogs/beta-features-dialog.tsx b/src/components/dialogs/beta-features-dialog.tsx similarity index 100% rename from apps/stardew.app/src/components/dialogs/beta-features-dialog.tsx rename to src/components/dialogs/beta-features-dialog.tsx diff --git a/apps/stardew.app/src/components/dialogs/bugreport-dialog.tsx b/src/components/dialogs/bugreport-dialog.tsx similarity index 94% rename from apps/stardew.app/src/components/dialogs/bugreport-dialog.tsx rename to src/components/dialogs/bugreport-dialog.tsx index 68c97a24..59160d87 100644 --- a/apps/stardew.app/src/components/dialogs/bugreport-dialog.tsx +++ b/src/components/dialogs/bugreport-dialog.tsx @@ -4,6 +4,7 @@ import Image from "next/image"; import { useState } from "react"; import { toast } from "sonner"; import useSWR from "swr"; +import { fetchJson } from "@/lib/fetch"; import { User } from "../top-bar"; import { Button } from "../ui/button"; import { @@ -20,12 +21,14 @@ interface Props { open: boolean; setOpen: (open: boolean) => void; } +type BugReportResponse = { + identifier: string; +}; export const BugReportDialog = ({ open, setOpen }: Props) => { const api = useSWR( - "/api", - // @ts-expect-error - (...args) => fetch(...args).then((res) => res.json()), + "/api/me", + fetchJson, { refreshInterval: 0, revalidateOnFocus: false }, ); @@ -73,7 +76,9 @@ export const BugReportDialog = ({ open, setOpen }: Props) => { setSubmitted(true); promise .then((res) => res.json()) - .then((data) => setId(data.identifier)); + .then((data) => + setId((data as BugReportResponse).identifier), + ); return "Feedback sent!"; }, loading: "Sending feedback...", diff --git a/apps/stardew.app/src/components/dialogs/bulk-action-dialog.tsx b/src/components/dialogs/bulk-action-dialog.tsx similarity index 99% rename from apps/stardew.app/src/components/dialogs/bulk-action-dialog.tsx rename to src/components/dialogs/bulk-action-dialog.tsx index c0cfa26a..ed46f86f 100644 --- a/apps/stardew.app/src/components/dialogs/bulk-action-dialog.tsx +++ b/src/components/dialogs/bulk-action-dialog.tsx @@ -68,7 +68,7 @@ export const BulkActionDialog = ({ break; } - await patchPlayer(patch); + void patchPlayer(patch); close(); }; diff --git a/apps/stardew.app/src/components/dialogs/changelog-dialog.tsx b/src/components/dialogs/changelog-dialog.tsx similarity index 100% rename from apps/stardew.app/src/components/dialogs/changelog-dialog.tsx rename to src/components/dialogs/changelog-dialog.tsx diff --git a/apps/stardew.app/src/components/dialogs/credits-dialog.tsx b/src/components/dialogs/credits-dialog.tsx similarity index 100% rename from apps/stardew.app/src/components/dialogs/credits-dialog.tsx rename to src/components/dialogs/credits-dialog.tsx diff --git a/apps/stardew.app/src/components/dialogs/deletion-dialog.tsx b/src/components/dialogs/deletion-dialog.tsx similarity index 71% rename from apps/stardew.app/src/components/dialogs/deletion-dialog.tsx rename to src/components/dialogs/deletion-dialog.tsx index f22e8e19..8be6719f 100644 --- a/apps/stardew.app/src/components/dialogs/deletion-dialog.tsx +++ b/src/components/dialogs/deletion-dialog.tsx @@ -1,7 +1,7 @@ -import { deleteCookie } from "cookies-next"; import { useContext, useState } from "react"; import { PlayersContext } from "@/contexts/players-context"; +import { clearClientAuthCookies } from "@/lib/client-env"; import { Button } from "@/components/ui/button"; import { @@ -13,6 +13,7 @@ import { DialogTitle, } from "@/components/ui/dialog"; import { Input } from "@/components/ui/input"; +import { toast } from "sonner"; interface Props { open: boolean; @@ -22,7 +23,7 @@ interface Props { } export const DeletionDialog = ({ open, setOpen, playerID, type }: Props) => { - const { players } = useContext(PlayersContext); + const { deletePlayers, players } = useContext(PlayersContext); const selectedPlayer = players?.filter( (player) => player._id === playerID, @@ -41,52 +42,32 @@ export const DeletionDialog = ({ open, setOpen, playerID, type }: Props) => { } const deleteData = async () => { - const res = await fetch("/api/saves", { - method: "DELETE", - body: _body ? JSON.stringify(_body) : null, - }); - - if (res.ok) { - setOpen(false); - // TODO: might be better to just reset the players context + try { if (type === "account") { - deleteCookie("token", { - maxAge: 0, - domain: parseInt(process.env.NEXT_PUBLIC_DEVELOPMENT!) - ? "localhost" - : "stardew.app", - }); - deleteCookie("uid", { - maxAge: 0, - domain: parseInt(process.env.NEXT_PUBLIC_DEVELOPMENT!) - ? "localhost" - : "stardew.app", - }); - deleteCookie("oauth_state", { - maxAge: 0, - domain: parseInt(process.env.NEXT_PUBLIC_DEVELOPMENT!) - ? "localhost" - : "stardew.app", + const res = await fetch("/api/saves", { + method: "DELETE", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ type: "account" }), }); - deleteCookie("discord_user", { - maxAge: 0, - domain: parseInt(process.env.NEXT_PUBLIC_DEVELOPMENT!) - ? "localhost" - : "stardew.app", - }); - window.localStorage.removeItem("player_id"); + + if (!res.ok) { + throw new Error(`Failed to delete account: ${res.status}`); + } + + setOpen(false); + clearClientAuthCookies(); + window.location.href = "/"; + return; } - // delete the saved player id if player requested to delete character and it was their saved player - // if player requested to delete all saved data, also remove saved player_id - if ( - type && - type === "player" && - window.localStorage.getItem("player_id") === _body._id - ) { - window.localStorage.removeItem("player_id"); - } else if (!type) window.localStorage.removeItem("player_id"); - window.location.reload(); + await deletePlayers(type === "player" ? playerID : undefined); + setOpen(false); + } catch (error) { + toast.error( + error instanceof Error ? error.message : "Failed to delete save data.", + ); } }; diff --git a/apps/stardew.app/src/components/dialogs/feedback-dialog.tsx b/src/components/dialogs/feedback-dialog.tsx similarity index 96% rename from apps/stardew.app/src/components/dialogs/feedback-dialog.tsx rename to src/components/dialogs/feedback-dialog.tsx index ef93fa55..af23f118 100644 --- a/apps/stardew.app/src/components/dialogs/feedback-dialog.tsx +++ b/src/components/dialogs/feedback-dialog.tsx @@ -4,6 +4,7 @@ import Image from "next/image"; import { useState } from "react"; import { toast } from "sonner"; import useSWR from "swr"; +import { fetchJson } from "@/lib/fetch"; import { User } from "../top-bar"; import { Button } from "../ui/button"; import { @@ -22,9 +23,8 @@ interface Props { export const FeedbackDialog = ({ open, setOpen }: Props) => { const api = useSWR( - "/api", - // @ts-expect-error - (...args) => fetch(...args).then((res) => res.json()), + "/api/me", + fetchJson, { refreshInterval: 0, revalidateOnFocus: false }, ); @@ -78,7 +78,7 @@ export const FeedbackDialog = ({ open, setOpen }: Props) => { }} className="space-y-6" method="POST" - action="/api/contact" + action="/api/feedback" >

+
{Object.values(recipes) .filter((r) => semverGte(gameVersion, r.minVersion)) .filter((r) => { @@ -383,27 +389,7 @@ export default function Cooking() { ))}
- - {!showBetaFeatures && ( - <> -

Show Beta Features?

-

- This feature is currently in beta and will likely change - often based on feedback. You can always disable beta - features again in your{" "} - - account settings - - . -

- - - )} + {/* Needed Ingredients Section */} {showBetaFeatures && ( <> @@ -483,6 +469,28 @@ export default function Cooking() { setOpen={setPromptOpen} toggleShow={toggleShow} /> + { + const enabled = toggleBetaFeatures(); + if (enabled) { + // Switch to ingredients tab after enabling + router.push( + { + pathname: router.pathname, + query: { + ...router.query, + trackingTab: "ingredients", + }, + }, + undefined, + { shallow: true }, + ); + } + return enabled; + }} + /> - + All Recipes Ingredient Tracker {/* All Recipes Section */} - + {/* Filters and Actions Row */}
{/* Cards */} -
+
{Object.values(recipes) .filter((r) => semverGte(gameVersion, r.minVersion)) .filter((r) => { @@ -395,27 +401,7 @@ export default function Crafting() { ))}
- - {!showBetaFeatures && ( - <> -

Show Beta Features?

-

- This feature is currently in beta and will likely change - often based on feedback. You can always disable beta - features again in your{" "} - - account settings - - . -

- - - )} + {/* Needed Ingredients Section */} {showBetaFeatures && ( <> @@ -496,6 +482,28 @@ export default function Crafting() { setOpen={setPromptOpen} toggleShow={toggleShow} /> + { + const enabled = toggleBetaFeatures(); + if (enabled) { + // Switch to ingredients tab after enabling + router.push( + { + pathname: router.pathname, + query: { + ...router.query, + trackingTab: "ingredients", + }, + }, + undefined, + { shallow: true }, + ); + } + return enabled; + }} + /> Date: Mon, 29 Dec 2025 11:54:25 -0500 Subject: [PATCH 08/25] Keeping wiki link when not showing caught The recent `FishSeet` modifications inadvertently hid the link to the wiki page when hiding buttons to set caught/uncaught state. This has been fixed. --- .../src/components/sheets/fish-sheet.tsx | 49 +++++++++---------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/apps/stardew.app/src/components/sheets/fish-sheet.tsx b/apps/stardew.app/src/components/sheets/fish-sheet.tsx index e08d455e..dccfc35f 100644 --- a/apps/stardew.app/src/components/sheets/fish-sheet.tsx +++ b/apps/stardew.app/src/components/sheets/fish-sheet.tsx @@ -106,10 +106,10 @@ export const FishSheet = ({ const content = ( <>
- {showCaught && ( -
- +
{fish && ( <>
From fea5ee4bf2637310b2217ac367f2dc937a14584a Mon Sep 17 00:00:00 2001 From: Robert Plante Date: Mon, 29 Dec 2025 12:05:14 -0500 Subject: [PATCH 09/25] Beta features gated by dialog are not also removed --- apps/stardew.app/src/pages/cooking.tsx | 128 +++++++++++------------ apps/stardew.app/src/pages/crafting.tsx | 129 +++++++++++------------- 2 files changed, 122 insertions(+), 135 deletions(-) diff --git a/apps/stardew.app/src/pages/cooking.tsx b/apps/stardew.app/src/pages/cooking.tsx index c0f8f758..c9a5f7e2 100644 --- a/apps/stardew.app/src/pages/cooking.tsx +++ b/apps/stardew.app/src/pages/cooking.tsx @@ -389,77 +389,71 @@ export default function Cooking() { ))}
+ {/* Needed Ingredients Section */} - {/* Needed Ingredients Section */} - {showBetaFeatures && ( - <> - {/* Filters and Actions Row */} -
-
- - setFilter(val === _filter ? "all" : val) - } - className="gap-2" - > - - - - Unknown ( - {reqs["Gourmet Chef"] - (knownCount + cookedCount)}) - - - - - - Known ({knownCount}) - - - -
-
- +
+ + setFilter(val === _filter ? "all" : val) + } + className="gap-2" + > + + -
-
- {/* Search Bar Row */} -
- - setIngredientSearch(v)} - placeholder="Search Ingredients" + + Unknown ( + {reqs["Gourmet Chef"] - (knownCount + cookedCount)}) + + + + - -
- - recipes={recipes} - playerRecipes={playerRecipes} - show={show} - setPromptOpen={setPromptOpen} - filterKnown={_filter} - filterSeason={_seasonFilter} - searchText={ingredientSearch} + Known ({knownCount}) + + +
+
+ - - )} +
+
+ {/* Search Bar Row */} +
+ + setIngredientSearch(v)} + placeholder="Search Ingredients" + /> + +
+ + recipes={recipes} + playerRecipes={playerRecipes} + show={show} + setPromptOpen={setPromptOpen} + filterKnown={_filter} + filterSeason={_seasonFilter} + searchText={ingredientSearch} + />