gubes mirror. how does this work
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

tubes rides again

leah 42e13697 eddedbd6

+1245 -988
+3
core/connection.ts
··· 13 13 import FileHost from "./filehost"; 14 14 import Registration from "./registration"; 15 15 import Metadata from "./metadata"; 16 + import { get_a_load_of_this_guy } from "./whois"; 16 17 17 18 export interface ConnectionConfig { 18 19 /** ··· 476 477 } 477 478 return this.metadata[this.nickname] 478 479 } 480 + 481 + whois = (nick: string) => get_a_load_of_this_guy(nick, this) 479 482 480 483 /** 481 484 * Convenience methods to check if something is supported by the connection.
+6
core/modes.ts
··· 1 + export type Mode = {}; 2 + 3 + export function parse_modestring(the: string): Mode[] { 4 + return [] 5 + } 6 +
+3 -3
core/package.json
··· 18 18 ], 19 19 "devDependencies": { 20 20 "@types/ws": "^8.5.12", 21 - "happy-dom": "^17.6.3", 21 + "happy-dom": "^20.0.11", 22 22 "typescript": "^5.5.4", 23 - "vite": "^6.0.1", 24 - "vitest": "^3.2.3" 23 + "vite": "^7.2.6", 24 + "vitest": "^4.0.14" 25 25 }, 26 26 "dependencies": { 27 27 "@preact/signals-core": "^1.9.0",
+7 -1
core/queue.ts
··· 160 160 161 161 collect_batch(kind: string, opt?: { 162 162 /** ask handlers not to touch any messages in this batch. 163 - * this is helpful for implementing, say, `draft/event-playback` support */ 163 + * this is helpful for implementing, say, `draft/event-playback` support */ 164 164 mask?: boolean, 165 165 params?: string[], 166 166 }) { ··· 232 232 233 233 if (this.start.matches(message)) { 234 234 this.is_collecting = true; 235 + if (this.include_start_finish) { 236 + this.collected.push(message); 237 + } 235 238 return false; 236 239 } 237 240 ··· 240 243 241 244 if (this.finish.matches(message)) { 242 245 this.resolve(this.collected); 246 + if (this.include_start_finish) { 247 + this.collected.push(message); 248 + } 243 249 return true; 244 250 } 245 251
+3 -3
core/sasl.ts
··· 128 128 129 129 } 130 130 131 - get probably_insecure() { 132 - return !this.get_mechs().includes("SCRAM-SHA-256") 133 - } 131 + // get probably_insecure() { 132 + // return !this.get_mechs().includes("SCRAM-SHA-256") 133 + // } update: scram-sha-256 does not work how I thought it would. oops! 134 134 }
+104
core/whois.ts
··· 1 + import { Connection } from "."; 2 + import { supported_keys } from "./metadata"; 3 + import { Mode, parse_modestring } from "./modes"; 4 + import { ArrayMatcher, Matcher, Wildcard } from "./queue"; 5 + import { Numeric } from "./support"; 6 + 7 + export interface UserMetadata { 8 + nick: string, 9 + realname: string, 10 + ident: string, 11 + host: string, 12 + metadata: Record<string, string>, 13 + operator: boolean, 14 + registered: boolean, 15 + account?: string, 16 + modes: Mode[], 17 + } 18 + 19 + const whois_numerics = [ 20 + Numeric.RPL_WHOISCERTFP, 21 + Numeric.RPL_WHOISREGNICK, 22 + Numeric.RPL_WHOISUSER, 23 + Numeric.RPL_WHOISSERVER, 24 + Numeric.RPL_WHOISOPERATOR, 25 + Numeric.RPL_WHOISIDLE, 26 + Numeric.RPL_WHOISCHANNELS, 27 + Numeric.RPL_WHOISSPECIAL, 28 + Numeric.RPL_WHOISACCOUNT, 29 + Numeric.RPL_WHOISACTUALLY, 30 + Numeric.RPL_WHOISHOST, 31 + Numeric.RPL_WHOISMODES, 32 + Numeric.RPL_WHOISSECURE, 33 + Numeric.RPL_AWAY, 34 + ] 35 + 36 + export async function get_a_load_of_this_guy(nick: string, conn: Connection): Promise<UserMetadata> { 37 + const q = conn.collect(`whois lookup for ${nick}`, { 38 + start: new Matcher(Numeric.RPL_WHOISUSER, Wildcard.Any, nick), 39 + finish: new Matcher(Numeric.RPL_ENDOFWHOIS, Wildcard.Any, nick), 40 + include: new ArrayMatcher( 41 + ...whois_numerics.map(x => new Matcher(x, Wildcard.Any, nick)) 42 + ), 43 + include_start_finish: true, 44 + reject_on: new ArrayMatcher( 45 + new Matcher(Numeric.ERR_NOSUCHNICK, Wildcard.Any, nick), 46 + new Matcher(Numeric.ERR_NOSUCHSERVER), 47 + new Matcher(Numeric.ERR_NONICKNAMEGIVEN), 48 + ) 49 + }) 50 + conn.send(`WHOIS :${nick}`); 51 + const result = await q; 52 + 53 + if (conn.supports.metadata()) { 54 + const meta_query = conn.collect_batch("metadata"); 55 + conn.send(`METADATA ${nick} GET ${supported_keys.join(" ")}`); 56 + result.push(...(await meta_query)); 57 + } 58 + 59 + let thisguy: Partial<UserMetadata> = { 60 + metadata: {}, 61 + operator: false, 62 + registered: false, 63 + modes: [], 64 + }; 65 + 66 + for (const msg of result) { 67 + if (!msg.params) continue; 68 + switch (msg.command) { 69 + case Numeric.RPL_WHOISUSER: 70 + thisguy.nick = msg.params[1]; 71 + thisguy.ident = msg.params[2]; 72 + thisguy.host = msg.params[3]; 73 + thisguy.realname = msg.params.at(-1); 74 + break; 75 + case Numeric.RPL_KEYVALUE: 76 + const key = msg.params[2]; 77 + const value = msg.params.at(-1); 78 + if (!value) break; 79 + thisguy.metadata![key] = value; 80 + break; 81 + case Numeric.RPL_WHOISOPERATOR: 82 + thisguy.operator = true 83 + break; 84 + case Numeric.RPL_WHOISREGNICK: 85 + thisguy.registered = true; 86 + break; 87 + case Numeric.RPL_WHOISACCOUNT: 88 + thisguy.account = msg.params[2]; 89 + break; 90 + case Numeric.RPL_WHOISMODES: 91 + // this seems completely batshit and likely to topple over upon 92 + // experiencing a gentle summer breeze but I can't see any 93 + // other way to do it in the spec. maybe this protocol is washed. 94 + const modestring = msg.params.at(-1)!.split(" ").find(x => x.startsWith("+")); 95 + if (!modestring) continue; 96 + thisguy.modes = parse_modestring(modestring); 97 + break; 98 + } 99 + } 100 + 101 + console.log(result); 102 + console.log(thisguy); 103 + return thisguy as UserMetadata 104 + }
+4 -4
neo/package.json
··· 13 13 "@preact/signals": "^2.2.0", 14 14 "async-mutex": "^0.5.0", 15 15 "dayjs": "^1.11.13", 16 + "goober": "^2.1.16", 17 + "idb": "^8.0.0", 16 18 "motion": "^11.18.2", 17 19 "preact": "^10.26.9", 18 - "wouter-preact": "^3.3.1", 19 - "goober": "^2.1.16", 20 - "idb": "^8.0.0" 20 + "wouter-preact": "^3.3.1" 21 21 }, 22 22 "devDependencies": { 23 23 "@iconify-json/ph": "^1.1.13", ··· 27 27 "@types/node": "^24.0.0", 28 28 "typescript": "^5.5.4", 29 29 "unplugin-icons": "^22.1.0", 30 - "vite": "^6.0.1" 30 + "vite": "^7.2.6" 31 31 } 32 32 }
+45 -4
neo/src/bits/dialog.tsx
··· 1 1 import "@css/dialog.css"; 2 2 3 - import { effect, signal } from "@preact/signals"; 3 + import { effect, Signal, signal } from "@preact/signals"; 4 4 import { reduced_motion } from "@src/support"; 5 + import { css } from "goober"; 5 6 import { animate } from "motion"; 7 + import { createRef, FunctionalComponent, render } from "preact"; 6 8 import { useId } from "preact/hooks"; 7 - import { createRef, render } from "preact"; 8 9 9 10 export type DialogControls = { open: () => void, close: (mode?: CloseReason) => void } 10 11 export type DialogInnards<T = {}> = (props: DialogControls & T) => any; ··· 14 15 Success, 15 16 } 16 17 17 - export const create_dialog = <T,>( 18 + export const create_dialog = <T extends {},>( 18 19 Content: DialogInnards<T>, 19 20 props?: T, 21 + bonus?: { 22 + header?: (((props: T) => any) | any), 23 + // sorry for the wacky api. this exists exclusively for the whois dialog 24 + // which is very signal heavy 25 + header_colour?: Signal<string>, 26 + } 20 27 ) => { 21 28 const is_open = signal(false); 22 29 ··· 53 60 // don't close when click inside the thing 54 61 onClick={e => e.stopPropagation()} 55 62 > 63 + {bonus?.header && <DialogHeader colour={bonus.header_colour?.value}> 64 + {typeof bonus.header == "function" 65 + ? <bonus.header {...props} /> 66 + : bonus.header} 67 + </DialogHeader>} 56 68 {/* @ts-ignore probably fine */} 57 69 <Content open={open} close={close} {...(props ?? {})} /> 58 70 </div> ··· 65 77 elem.id = id; 66 78 const main = document.getElementById("app-main")!; 67 79 render(<Component />, main.appendChild(elem)); 68 - console.log("here") 69 80 70 81 dialog_ref.current?.showModal(); 71 82 dialog_ref.current?.addEventListener("close", () => is_open.value = false); ··· 104 115 [dialog.children[0], { opacity: [1, 0, null], scale: [1, 1.25] }], 105 116 [".dialog-scrim", { opacity: [1, 0] }, { at: 0, ...scrim_spring }], 106 117 ], { defaultTransition: dialog_spring_out }); 118 + 119 + 120 + const DialogHeader: FunctionalComponent<{ colour?: string }> = ({ children, colour = 'grey' }) => { 121 + const border_colour = colour == "grey" 122 + ? `var(--colour-grey-100)` 123 + : `rgb(from var(--colour-${colour}-900) r g b / .1)`; 124 + return <header class={css` 125 + background-color: var(--colour-${colour}-50); 126 + color: var(--colour-${colour}-800); 127 + width: 100%; 128 + padding: .5rem 1rem; 129 + border-bottom: 1px solid ${border_colour}; 130 + font-size: .85rem; 131 + min-height: 2.5rem; 132 + display: flex; 133 + gap: .25rem; 134 + align-items: center; 135 + 136 + h1 { 137 + margin: 0; 138 + margin-right: auto; 139 + font-weight: 500; 140 + font-variation-settings: 'GRAD' 150; 141 + 142 + font-size: inherit; 143 + } 144 + `}> 145 + {children} 146 + </header> 147 + }
+45
neo/src/bits/info-box.tsx
··· 1 + import { styled } from "goober"; 2 + 3 + const InfoBox = styled("div")` 4 + background-color: var(--colour-yellow-100); 5 + padding: .5rem .75rem; 6 + margin: 0 -.75rem; 7 + border-radius: 6px; 8 + margin: auto; 9 + width: 100%; 10 + 11 + h3 { 12 + display: flex; 13 + gap: .25rem; 14 + align-items: center; 15 + color: var(--colour-yellow-900); 16 + 17 + svg { width: 12px; height: 12px; } 18 + } 19 + 20 + p { 21 + margin: 0; 22 + color: var(--colour-grey-800); 23 + } 24 + 25 + h4 { 26 + font-size: .85rem; 27 + font-weight: 400; 28 + font-variation-settings: 'GRAD' 150; 29 + margin-bottom: 0; 30 + } 31 + 32 + ul { 33 + margin-top: .5rem; 34 + 35 + button { 36 + all: unset; 37 + text-decoration: underline; 38 + font-variation-settings: 'GRAD' 150; 39 + cursor: pointer; 40 + color: var(--colour-red-900); 41 + } 42 + } 43 + `; 44 + 45 + export default InfoBox;
+26
neo/src/bits/network-icon.tsx
··· 1 + import { css } from "goober"; 2 + 3 + const style = css` 4 + margin: 0; 5 + width: 1rem; 6 + height: 1rem; 7 + background-color: var(--colour-grey-900); 8 + color: var(--colour-grey-50); 9 + display: flex; 10 + align-items: center; 11 + justify-content: center; 12 + border-radius: 3px; 13 + 14 + font-size: .8rem; 15 + font-weight: 500; 16 + font-variation-settings: 'GRAD' 10; 17 + user-select: none; 18 + -webkit-user-select: none; 19 + ` 20 + 21 + export default function NetworkIcon({ name }: { name: string }) { 22 + const initial = name.charAt(0); 23 + return <figure class={style}> 24 + {initial} 25 + </figure> 26 + }
+6 -5
neo/src/bits/sidebar/add-network.tsx
··· 13 13 import { adapters } from "@src/chat/adapters"; 14 14 15 15 export const AddNetworkButton = () => { 16 - const dialog = create_dialog(AddNetworkDialog); 16 + const dialog = create_dialog(AddNetworkDialog, {}, { 17 + header: <h1>Add a Network</h1> 18 + }); 17 19 18 20 return <> 19 21 <TextButton class="add-network" onClick={() => { dialog.open() }}> ··· 39 41 } 40 42 41 43 const error = signal(""); 42 - return <MiniNavigator transitions style="padding: 1rem; width: 36rem;"> 44 + return <MiniNavigator transitions style="padding: 1rem; padding-top: 0; width: 36rem;"> 43 45 {controls => <> 44 46 <hgroup style="margin-bottom: 1rem"> 45 - <h2 class="heading">Add a Network</h2> 46 47 <p class="body-small"> 47 - networks are where you do the talking 48 + networks are where the talking occurs. 48 49 </p> 49 50 </hgroup> 50 - <form style="margin-top: 4rem" onSubmit={(e) => { 51 + <form style="margin-top: 2rem" onSubmit={(e) => { 51 52 error.value = ""; 52 53 e.preventDefault(); 53 54
+26 -15
neo/src/bits/sidebar/network-section.tsx
··· 22 22 import ConnectionFailedIcon from "~icons/ph/diamond-fill"; 23 23 import EtcIcon from "~icons/ph/dots-three-bold"; 24 24 import DebugIcon from "~icons/ph/hammer"; 25 - import RegisterIcon from "~icons/ph/identification-badge"; 25 + import RegisterIcon from "~icons/ph/user-plus"; 26 26 import LogoutIcon from "~icons/ph/stairs"; 27 27 import InfoIcon from "~icons/ph/info"; 28 28 import DisconnectedIcon from "~icons/ph/moon-fill"; 29 29 import DMIcon from "~icons/ph/paper-plane-right"; 30 30 import ConfIcon from "~icons/ph/wrench"; 31 + import ProfileIcon from "~icons/ph/user-square"; 31 32 import DisconnectIcon from "~icons/ph/plug"; 32 33 import ConnectIcon from "~icons/ph/plugs-connected"; 33 34 import JoinIcon from "~icons/ph/plus"; 34 35 import LoginIcon from "~icons/ph/sign-in"; 35 36 import { create_dialog } from "../dialog.tsx"; 36 37 import NewDmDialog from "./new-dm.tsx"; 38 + import NetworkIcon from "../network-icon.tsx"; 37 39 38 40 export const NetworkStatusIcon = ({ conn }: { conn: Connection }) => { 39 41 if (conn.$recovering.value) { ··· 81 83 ? resolve_adapter_icon(adapters.value.find(x => x.id == conn.adapter_id)!) 82 84 : undefined; 83 85 84 - const dm_diag = create_dialog(NewDmDialog, { conn }); 86 + const dm_diag = create_dialog(NewDmDialog, { conn }, { 87 + header: <div style=" 88 + padding-top: .1rem; 89 + font-weight: 450; 90 + flex: 1; 91 + display: flex; 92 + gap: .25rem; 93 + align-items: center; 94 + justify-content: space-between; 95 + user-select: none; 96 + "> 97 + <h1 class="body-small">New Direct Message</h1> 98 + <NetworkIcon name={conn.label} /> 99 + {conn.label} 100 + </div> 101 + }); 85 102 86 103 const menu = create_menu(() => <ul> 87 104 <MenuItem icon={DMIcon} onClick={() => dm_diag.open()}> ··· 129 146 </MenuItem>} 130 147 131 148 <MenuItem 132 - onClick={() => set_location(`${connection_base(conn)}/info`)} 133 - icon={InfoIcon} 134 - > 135 - Details 136 - </MenuItem> 137 - 138 - <MenuItem 139 149 onClick={() => set_location(`${connection_base(conn)}/configure`)} 140 150 icon={ConfIcon} 141 151 > 142 152 Configure 143 153 </MenuItem> 154 + <MenuItem 155 + onClick={() => set_location(`${connection_base(conn)}/profile`)} 156 + icon={ProfileIcon} 157 + > 158 + Edit Profile 159 + </MenuItem> 160 + 144 161 145 162 {conn.supports.sasl() && conn.sasl?.authed && <MenuItem destructive 146 163 // onClick={() => set_location(`${connection_base(conn)}/auth/register`)} ··· 183 200 <ConnectIcon aria-hidden /> 184 201 </IconButton> 185 202 } 186 - <IconButton 187 - onClick={() => set_location(`${connection_base(conn)}/configure`)} 188 - title="Configure" 189 - > 190 - <ConfIcon aria-hidden /> 191 - </IconButton> 192 203 <IconButton title="More Stuff" onClick={(e) => menu.open(e)}><EtcIcon aria-hidden /></IconButton> 193 204 194 205 {recovering && conn.$state.value != ConnectionState.Connected
+3 -10
neo/src/bits/sidebar/new-dm.tsx
··· 8 8 9 9 const NewDmDialog: DialogInnards<{ conn: Connection }> = ({ conn, close }) => { 10 10 const [, setLocation] = useLocation(); 11 - return <div style="padding: 1rem; width: 36rem; "> 12 - <hgroup style="margin-bottom: 1rem"> 13 - <h2 class="heading">New Direct Message</h2> 14 - <p class="body-small"> 15 - talk to a user on {conn.label} <em>directly</em>. 16 - </p> 17 - </hgroup> 18 - 19 - <form style="margin-top: 4rem;" onSubmit={e => { 11 + return <div style="padding: 1rem; padding-top: .25rem; width: 36rem; "> 12 + <form style="" onSubmit={e => { 20 13 e.preventDefault(); 21 14 const data = new FormData(e.currentTarget); 22 15 const nick = data.get("nickname") as string; ··· 31 24 </FormField> 32 25 <div class="button-row" style="margin-top: 1rem;"> 33 26 <SecondaryButton type="button" onClick={() => close()}>i have had a sudden and drastic change of heart</SecondaryButton> 34 - <PrimaryButton type="submit"> 27 + <PrimaryButton type="submit" disabled={!conn.$connected.value}> 35 28 let's hit it 36 29 </PrimaryButton> 37 30 </div>
+6 -3
neo/src/buffer/list-elements.tsx
··· 68 68 import { useComputed } from "@preact/signals"; 69 69 import { IrcChannel } from "tubes_core/channel"; 70 70 import GoneIcon from "~icons/ph/arrow-left"; 71 - import { BufferContext } from "./page"; 71 + import { BufferContext, WhoisDialogContext } from "./page"; 72 + import { show_whois } from "./whois"; 72 73 73 74 export const Nick 74 75 : FunctionalComponent<{ colour?: string, nick: string, max_length?: number }> 75 76 = ({ colour, nick, max_length: max_len }) => { 76 77 const buffer = useContext(BufferContext); 78 + const whois = useContext(WhoisDialogContext); 77 79 const gone = useComputed(() => { 78 80 return buffer instanceof IrcChannel 79 81 && !buffer.$members.value.includes(nick) ··· 86 88 return <> 87 89 {gone.value && <GoneIcon width="12px" height="12px" />} 88 90 89 - <span 91 + <button 90 92 class={` 91 93 name 92 94 ${gone.value ? "gone" : ""} ··· 94 96 `} 95 97 style={`--colour: var(--colour-${colour}-700)`} 96 98 title={nick} 99 + onClick={() => buffer && whois && show_whois(nick, buffer.conn, whois)} 97 100 > 98 101 {nick} 99 - </span> 102 + </button> 100 103 </> 101 104 }
+54 -42
neo/src/buffer/page.tsx
··· 1 1 import "@css/messages.css"; 2 - import { signal, Signal, useSignal } from "@preact/signals"; 2 + import { computed, signal, Signal, useSignal } from "@preact/signals"; 3 3 import { execute_command } from "@src/chat/commands"; 4 4 import ReadMarkers, { ReadMarker } from "@src/chat/read"; 5 5 import Storage from "@src/chat/storage"; ··· 13 13 import MessageInput from "./input"; 14 14 import { squish_messages } from "./squisher"; 15 15 import dump from "@src/debug/dump"; 16 + import { WhoisDialog, WhoisState } from "./whois"; 16 17 17 18 import MembersIcon from "~icons/ph/users"; 18 19 import { IconButton, PrimaryButton } from "@src/bits/buttons"; ··· 34 35 } 35 36 36 37 export const BufferContext = createContext<ChatBuffer | null>(null); 38 + export const WhoisDialogContext = createContext<WhoisState | null>(null); 37 39 38 40 function dump_view(buffer: ChatBuffer, msgs: IrcMessage[]) { 39 41 dump({ ··· 88 90 <MenuItem onClick={() => dump_view(buffer, msgs.value)}>Dump Current View</MenuItem> 89 91 </ul>, { anchor: "right" }); 90 92 93 + const whois_nick = signal<string>() 94 + const whois_dialog = create_dialog(WhoisDialog, { conn: buffer.conn, nick: whois_nick }, { 95 + header: ({ nick }: { nick: Signal<string> }) => <><h1>{nick.value}</h1></>, 96 + header_colour: computed(() => pick_colour(whois_nick.value ?? "")) 97 + }); 98 + 91 99 return <BufferContext.Provider value={buffer}> 92 - <div class={`message-list ${message_style.value}`}> 93 - {is_channel ? <ChannelHeader channel={buffer} debug_menu={DebugMenu} /> : <div />} 94 - {finished_init.value 95 - ? <MessageList 96 - list_elem={list_elem} 97 - buffer={buffer} 98 - is_loading={is_loading} 99 - msgs={msgs} 100 - onScroll={e => { 101 - const elem = e.currentTarget; 102 - const padding = 5; 100 + <WhoisDialogContext.Provider value={{ diag: whois_dialog, nick: whois_nick }}> 101 + <div class={`message-list ${message_style.value}`}> 102 + {is_channel ? <ChannelHeader channel={buffer} debug_menu={DebugMenu} /> : <div />} 103 + {finished_init.value 104 + ? <MessageList 105 + list_elem={list_elem} 106 + buffer={buffer} 107 + is_loading={is_loading} 108 + msgs={msgs} 109 + onScroll={e => { 110 + const elem = e.currentTarget; 111 + const padding = 5; 103 112 104 - marker.focused.value = elem.scrollHeight <= elem.scrollTop + elem.clientHeight + padding; 105 - }} 106 - load_more={async () => { 107 - const new_stuff = await load_msgs(buffer); 108 - msgs.value = [...msgs.value, ...new_stuff]; 113 + marker.focused.value = elem.scrollHeight <= elem.scrollTop + elem.clientHeight + padding; 114 + }} 115 + load_more={async () => { 116 + const new_stuff = await load_msgs(buffer); 117 + msgs.value = [...msgs.value, ...new_stuff]; 118 + }} 119 + /> 120 + : <SkeletonLoader ref2={list_elem} /> 121 + } 122 + {marker.unread_count.value != 0 && <UnreadBanner marker={marker} />} 123 + <MessageInput 124 + is_scrolled={!marker.focused.value} 125 + filehost={buffer.conn.supports.filehost()} 126 + onSubmit={async (text, is_cmd) => { 127 + if (is_cmd) { 128 + return await execute_command({ 129 + input: text, buffer: buffer, 130 + reply(text) { 131 + const msg = buffer.privmsg(text); 132 + Storage.store_message(msg, buffer.conn); 133 + msgs.value = [...msgs.value, msg]; 134 + } 135 + }); 136 + } 137 + 138 + const msg = buffer.privmsg(text); 139 + Storage.store_message(msg, buffer.conn); 140 + msgs.value = [...msgs.value, msg]; 109 141 }} 110 142 /> 111 - : <SkeletonLoader ref2={list_elem} /> 112 - } 113 - {marker.unread_count.value != 0 && <UnreadBanner marker={marker} />} 114 - <MessageInput 115 - is_scrolled={!marker.focused.value} 116 - filehost={buffer.conn.supports.filehost()} 117 - onSubmit={async (text, is_cmd) => { 118 - if (is_cmd) { 119 - return await execute_command({ 120 - input: text, buffer: buffer, 121 - reply(text) { 122 - const msg = buffer.privmsg(text); 123 - Storage.store_message(msg, buffer.conn); 124 - msgs.value = [...msgs.value, msg]; 125 - } 126 - }); 127 - } 128 - 129 - const msg = buffer.privmsg(text); 130 - Storage.store_message(msg, buffer.conn); 131 - msgs.value = [...msgs.value, msg]; 132 - }} 133 - /> 134 - {is_channel && members_panel_open.value ? <MembersPanel channel={buffer} /> : ""} 135 - </div> 143 + {is_channel && members_panel_open.value ? <MembersPanel channel={buffer} /> : ""} 144 + </div> 145 + </WhoisDialogContext.Provider> 136 146 </BufferContext.Provider>; 137 147 } 138 148 ··· 207 217 import { create_menu, Menu, MenuItem } from "@src/bits/menu.tsx"; 208 218 import { MembersPanel } from "./members"; 209 219 import { css } from "goober"; 220 + import { create_dialog, DialogControls } from "@src/bits/dialog"; 221 + import { pick_colour } from "@src/chat/colours"; 210 222 211 223 const StartOfHistory: FunctionalComponent<{ buffer: ChatBuffer }> = ({ buffer }) => { 212 224 const chathistory = buffer.conn.capabilities.has("draft/chathistory");
+41
neo/src/buffer/whois.tsx
··· 1 + import { Signal, signal } from "@preact/signals"; 2 + import { SecondaryButton } from "@src/bits/buttons"; 3 + import { DialogControls, DialogInnards } from "@src/bits/dialog"; 4 + import { Connection } from "tubes_core"; 5 + 6 + export interface WhoisState { 7 + nick: Signal<string | undefined>, 8 + diag: DialogControls, 9 + } 10 + 11 + export async function show_whois( 12 + who_exactly: string, 13 + conn: Connection, 14 + state: WhoisState 15 + ) { 16 + state.nick.value = who_exactly; 17 + const whois = await conn.whois(who_exactly); 18 + 19 + // whois_state.value = { 20 + // nick: who_exactly, 21 + // resp: whois, 22 + // } 23 + 24 + state.diag.open(); 25 + } 26 + 27 + export const WhoisDialog: DialogInnards<{ conn: Connection, nick: Signal<string | undefined> }> = ({ nick, close }) => { 28 + if (!nick.value) { 29 + return <></> 30 + } 31 + 32 + return <div style="width: 36rem; padding: 1rem; padding-top: 0rem;"> 33 + {/* {whois_state.value.nick} aaa */} 34 + <p class="body-small">helloo I'm the nostalgia critic</p> 35 + <div style="display: flex"> 36 + <SecondaryButton style="margin-left: auto;" onClick={() => close()} title="Close"> 37 + that will be all 38 + </SecondaryButton> 39 + </div> 40 + </div> 41 + }
+2
neo/src/css/dialog.css
··· 28 28 border-radius: 6px; 29 29 box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); 30 30 background-color: #fff; 31 + 32 + overflow: hidden; 31 33 } 32 34 33 35 .dialog-scrim {
+27 -8
neo/src/css/messages.css
··· 55 55 grid-column: 1; 56 56 } 57 57 58 - span.name { 58 + .name { 59 + font: inherit; 60 + background-color: transparent; 61 + border: none; 62 + padding: 0; 63 + margin: 0; 59 64 display: inline; 60 65 align-items: baseline; 61 66 gap: .25rem; ··· 68 73 overflow: hidden; 69 74 white-space: nowrap; 70 75 text-overflow: ellipsis; 76 + 77 + &:is(button) { 78 + cursor: pointer; 79 + &:hover { 80 + text-decoration: underline; 81 + } 82 + } 71 83 72 84 &.squish { 73 85 font-stretch: ultra-condensed; ··· 99 111 user-select: none; 100 112 } 101 113 102 - span.name.gone { 114 + .name.gone { 103 115 font-variation-settings: 'GRAD' 0; 104 116 font-weight: 400; 105 117 color: color-mix(in srgb, var(--colour) 40%, var(--colour-grey-700)); ··· 200 212 height: max-content; 201 213 margin: auto; 202 214 203 - display: flex; 215 + display: flex; 204 216 align-items: center; 205 217 font-size: .85rem; 206 218 padding: .25rem .2rem; ··· 231 243 } 232 244 } 233 245 234 - .input, .prefix, .suffix { 246 + .input, 247 + .prefix, 248 + .suffix { 235 249 position: relative; 236 250 } 237 251 ··· 252 266 --radius2: calc(var(--radius) + var(--width) - 1px); 253 267 --border: 1px solid var(--colour-accent-300); 254 268 255 - .input::before, .prefix::before, .suffix::before { 269 + .input::before, 270 + .prefix::before, 271 + .suffix::before { 256 272 content: ''; 257 273 position: absolute; 258 274 top: calc(var(--width) * -1); ··· 281 297 } 282 298 } 283 299 284 - .prefix, .suffix { 300 + .prefix, 301 + .suffix { 285 302 color: var(--colour-grey-800); 286 303 } 287 304 ··· 470 487 471 488 .messages.skeleton { 472 489 li { 473 - span, p { 490 + 491 + span, 492 + p { 474 493 display: inline; 475 494 width: max-content; 476 495 max-width: 100%; ··· 564 583 background-color: var(--colour-accent-600); 565 584 color: white; 566 585 } 567 - } 586 + }
-1
neo/src/css/sidebar.css
··· 154 154 } 155 155 156 156 & > .icon-button { 157 - color: transparent; 158 157 transition: color 75ms var(--easing-subtle-out); 159 158 grid-row: 1; 160 159
+13 -57
neo/src/pages/auth.tsx
··· 1 1 import { useSignal } from "@preact/signals"; 2 2 import { PrimaryButton } from "@src/bits/buttons"; 3 - import { create_dialog, DialogInnards } from "@src/bits/dialog"; 3 + import { DialogInnards } from "@src/bits/dialog"; 4 4 import FancyDetails from "@src/bits/form/details"; 5 5 import FormField from "@src/bits/form/form-field"; 6 6 import NetworkHeader from "@src/bits/networkheader"; 7 7 import Spinner from "@src/bits/spinner"; 8 8 import conns, { connection_base } from "@src/chat/conns"; 9 - import { css, styled } from "goober"; 9 + import { css } from "goober"; 10 10 import { useRef } from "preact/hooks"; 11 11 import { Connection } from "tubes_core"; 12 12 import { IrcMessage } from "tubes_core/parser"; 13 13 import { useLocation } from "wouter-preact"; 14 14 import ErrorIcon from "~icons/ph/diamond-fill"; 15 - import WarningIcon from "~icons/ph/triangle-fill"; 16 15 17 16 export function LoginPage({ conn }: { conn: Connection }) { 18 17 const loading = useSignal(false); 19 18 const error = useSignal<string>(); 20 19 const [, setLocation] = useLocation(); 21 20 const form = useRef<HTMLFormElement>(null); 21 + const save_without_login = useSignal(false); 22 22 23 23 const on_submit = async (e: SubmitEvent) => { 24 24 e.preventDefault(); ··· 75 75 setLocation(`${connection_base(conn)}/info`); 76 76 } 77 77 78 + if (!conn.$connected.value) { 79 + return <>Please connect to the network before doing this!</> 80 + } 78 81 // TODO: make these look good 79 82 if (!conn.supports.sasl()) { 80 83 return <> 81 - This network does not support logging in. If you're seeing this please tell me to make this page look less awful. Thanks 84 + This network does not support logging in, or maybe it's just not told us it does yet. 85 + If you're seeing this please tell me to make this page look less awful. Thanks 82 86 </> 83 87 } 84 88 if (conn.sasl?.authed) { ··· 115 119 <FancyDetails> 116 120 <summary>There's more where that came from</summary> 117 121 <FormField 118 - label="Don't bother checking" 119 - flavour_text="Save these login details without checking if they actually work. This might be needed if your network only allows you to log in while you're connecting to it." 122 + label="Save Without Logging In" 123 + flavour_text="Save these login details without checking if they actually work. This might be needed if your network doesn't allow you to log in while you're connected to it." 120 124 > 121 - <input type="checkbox" name="auth_check" /> 125 + <input type="checkbox" name="auth_check" onChange={() => save_without_login.value = !save_without_login.value} /> 122 126 </FormField> 123 127 <p className="body-small">Looking for CertFP? We don't support it yet. Watch this space!</p> 124 128 </FancyDetails> 125 - {conn.sasl?.probably_insecure && <InfoBox> 126 - <h3 class="heading-2"><WarningIcon />ACHTUNG!</h3> 127 - <p class="body-small low-emphasis"> 128 - This network does not support secure password storage. Your password will be visible, unencrypted, naked to 129 - anyone with access to this computer. Please make extra sure not to reuse your bank password or what have you. 130 - </p> 131 - </InfoBox>} 132 129 {error.value && <EpicSaslFail conn={conn} error={error.value} reconnect={reconnect} />} 133 130 <PrimaryButton 134 131 style="width: max-content; justify-self: center;" 135 132 type="submit" 136 133 disabled={loading.value} 137 - >{loading.value ? <Spinner /> : "Log In"}</PrimaryButton> 134 + >{loading.value ? <Spinner /> : save_without_login.value ? "Save" : "Log In"}</PrimaryButton> 138 135 </form> 139 136 </main> 140 137 } 141 138 142 - const InfoBox = styled("div")` 143 - background-color: var(--colour-yellow-100); 144 - padding: .5rem .75rem; 145 - margin: 0 -.75rem; 146 - border-radius: 6px; 147 - margin: auto; 148 - 149 - h3 { 150 - display: flex; 151 - gap: .25rem; 152 - align-items: center; 153 - color: var(--colour-yellow-900); 154 - 155 - svg { width: 12px; height: 12px; } 156 - } 157 - 158 - p { 159 - margin: 0; 160 - color: var(--colour-grey-800); 161 - } 162 - 163 - h4 { 164 - font-size: .85rem; 165 - font-weight: 400; 166 - font-variation-settings: 'GRAD' 150; 167 - margin-bottom: 0; 168 - } 169 - 170 - ul { 171 - margin-top: .5rem; 172 - 173 - button { 174 - all: unset; 175 - text-decoration: underline; 176 - font-variation-settings: 'GRAD' 150; 177 - cursor: pointer; 178 - color: var(--colour-red-900); 179 - } 180 - } 181 - `; 182 - 183 139 function EpicSaslFail({ error, conn, reconnect }: { error: unknown, conn: Connection, reconnect: () => void }) { 184 140 const text = error instanceof IrcMessage ? error.params?.at(-1) : error as string; 185 141 return <div role="alert" class={css` ··· 251 207 252 208 const loading = useSignal(false); 253 209 254 - const verify_dialog = create_dialog(VerifyDialog, {}); 210 + // const verify_dialog = create_dialog(VerifyDialog, {}); 255 211 const [, setLocation] = useLocation(); 256 212 257 213 return <main style="--width: 36rem;">
+44
neo/src/pages/gallery.tsx
··· 7 7 8 8 <div class="sep">🎨🖌️💅</div> 9 9 <AnimatedIconSwitcherExample /> 10 + 11 + <h2>infobox</h2> 12 + <div class="panel"> 13 + <InfoBox style="grid-column: 1 / -1;"> 14 + <h3 class="heading-2"><WarningIcon />ACHTUNG!</h3> 15 + <p class="body-small low-emphasis"> 16 + I think I am going to throw up 17 + </p> 18 + </InfoBox> 19 + </div> 20 + 21 + <h2>forms</h2> 22 + <div class="panel"> 23 + <form style="grid-column: 1 / -1;"> 24 + <FormField label="Who are you?" flavour_text="Think about your answer carefully."> 25 + <input type="text" placeholder="e.g., joe biden"></input> 26 + </FormField> 27 + </form> 28 + </div> 29 + 30 + <h2>networks</h2> 31 + <div class="panel"> 32 + {[ 33 + 'libera.chat', 34 + 'testnet.ergo.chat', 35 + 'ErgoTest', 36 + '2network2furious', 37 + '小红书', 38 + 'フリークネットワーク', 39 + 'شبكة غريبة' //note: I do not know enough about arabic to tell if this is displaying correctly 40 + ].map(x => 41 + <div style="display: flex; gap: .25rem; align-items: center; font-size: .8rem;"> 42 + <NetworkIcon name={x} /> {x} 43 + </div> 44 + )} 45 + </div> 10 46 </article> 11 47 } 12 48 ··· 14 50 import IconB from "~icons/ph/cable-car" 15 51 import IconC from "~icons/ph/crane" 16 52 import { useSignal } from "@preact/signals"; 53 + 54 + 17 55 import { PrimaryButton } from "@src/bits/buttons"; 56 + import InfoBox from "@src/bits/info-box"; 57 + 58 + import WarningIcon from "~icons/ph/triangle-fill"; 59 + import FormField from "@src/bits/form/form-field"; 60 + import NetworkIcon from "@src/bits/network-icon"; 61 + 18 62 const AnimatedIconSwitcherExample = () => { 19 63 const Icon = useSignal(<IconA />); 20 64 return <>
+8 -5
neo/src/pages/network-info.tsx
··· 1 1 import "@css/network-info.css"; 2 - import { useComputed, useSignal } from "@preact/signals"; 2 + import { signal, useComputed, useSignal } from "@preact/signals"; 3 3 import { ActionGroup, ActionItem, ActionLink } from "@src/bits/actions"; 4 4 import { PrimaryButton } from "@src/bits/buttons"; 5 5 import RegisteredSticker from "@src/bits/registered.svg?raw"; ··· 49 49 } 50 50 51 51 const Motd = ({ motd }: { motd: string }) => { 52 - const expanded = useSignal(false); 52 + const short = useMemo(() => motd.split("\n").length <= 4, [motd]) 53 + const expanded = useMemo(() => signal(short), [motd]); 53 54 return <section class={`motd ${expanded.value ? "expanded" : ""}`}> 54 55 <h2 class="heading" style="margin-top: 0;">Message of the Day</h2> 55 56 <pre> 56 57 {motd} 57 58 </pre> 58 - <PrimaryButton onClick={() => expanded.value = !expanded.value}> 59 - {expanded.value ? "Collapse" : "Expand"} 60 - </PrimaryButton> 59 + {!short && 60 + <PrimaryButton onClick={() => expanded.value = !expanded.value}> 61 + {expanded.value ? "Collapse" : "Expand"} 62 + </PrimaryButton>} 61 63 </section> 62 64 } 63 65 ··· 151 153 import LoginIcon from "~icons/ph/sign-in"; 152 154 import LogoutIcon from "~icons/ph/stairs"; 153 155 import RegisterIcon from "~icons/ph/user-plus"; 156 + import { useMemo } from "preact/hooks"; 154 157 155 158 const AccountSection: FunctionalComponent<{ conn: Connection }> = ({ conn }) => { 156 159 const authed = conn.sasl.$authed.value;
+769 -827
package-lock.json
··· 28 28 }, 29 29 "devDependencies": { 30 30 "@types/ws": "^8.5.12", 31 - "happy-dom": "^17.6.3", 31 + "happy-dom": "^20.0.11", 32 32 "typescript": "^5.5.4", 33 - "vite": "^6.0.1", 34 - "vitest": "^3.2.3" 33 + "vite": "^7.2.6", 34 + "vitest": "^4.0.14" 35 35 } 36 36 }, 37 37 "neo": { ··· 56 56 "@types/node": "^24.0.0", 57 57 "typescript": "^5.5.4", 58 58 "unplugin-icons": "^22.1.0", 59 - "vite": "^6.0.1" 60 - } 61 - }, 62 - "neo/node_modules/framer-motion": { 63 - "version": "11.18.2", 64 - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.18.2.tgz", 65 - "integrity": "sha512-5F5Och7wrvtLVElIpclDT0CBzMVg3dL22B64aZwHtsIY8RB4mXICLrkajK4G9R+ieSAGcgrLeae2SeUTg2pr6w==", 66 - "license": "MIT", 67 - "dependencies": { 68 - "motion-dom": "^11.18.1", 69 - "motion-utils": "^11.18.1", 70 - "tslib": "^2.4.0" 71 - }, 72 - "peerDependencies": { 73 - "@emotion/is-prop-valid": "*", 74 - "react": "^18.0.0 || ^19.0.0", 75 - "react-dom": "^18.0.0 || ^19.0.0" 76 - }, 77 - "peerDependenciesMeta": { 78 - "@emotion/is-prop-valid": { 79 - "optional": true 80 - }, 81 - "react": { 82 - "optional": true 83 - }, 84 - "react-dom": { 85 - "optional": true 86 - } 87 - } 88 - }, 89 - "neo/node_modules/motion": { 90 - "version": "11.18.2", 91 - "resolved": "https://registry.npmjs.org/motion/-/motion-11.18.2.tgz", 92 - "integrity": "sha512-JLjvFDuFr42NFtcVoMAyC2sEjnpA8xpy6qWPyzQvCloznAyQ8FIXioxWfHiLtgYhoVpfUqSWpn1h9++skj9+Wg==", 93 - "license": "MIT", 94 - "dependencies": { 95 - "framer-motion": "^11.18.2", 96 - "tslib": "^2.4.0" 97 - }, 98 - "peerDependencies": { 99 - "@emotion/is-prop-valid": "*", 100 - "react": "^18.0.0 || ^19.0.0", 101 - "react-dom": "^18.0.0 || ^19.0.0" 102 - }, 103 - "peerDependenciesMeta": { 104 - "@emotion/is-prop-valid": { 105 - "optional": true 106 - }, 107 - "react": { 108 - "optional": true 109 - }, 110 - "react-dom": { 111 - "optional": true 112 - } 113 - } 114 - }, 115 - "neo/node_modules/motion-dom": { 116 - "version": "11.18.1", 117 - "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-11.18.1.tgz", 118 - "integrity": "sha512-g76KvA001z+atjfxczdRtw/RXOM3OMSdd1f4DL77qCTF/+avrRJiawSG4yDibEQ215sr9kpinSlX2pCTJ9zbhw==", 119 - "license": "MIT", 120 - "dependencies": { 121 - "motion-utils": "^11.18.1" 122 - } 123 - }, 124 - "neo/node_modules/motion-utils": { 125 - "version": "11.18.1", 126 - "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-11.18.1.tgz", 127 - "integrity": "sha512-49Kt+HKjtbJKLtgO/LKj9Ld+6vw9BjH5d9sc40R/kVyH8GLAXgT42M2NnuPcJNuA3s9ZfZBUcwIgpmZWGEE+hA==", 128 - "license": "MIT" 129 - }, 130 - "node_modules/@ampproject/remapping": { 131 - "version": "2.3.0", 132 - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", 133 - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", 134 - "dev": true, 135 - "license": "Apache-2.0", 136 - "dependencies": { 137 - "@jridgewell/gen-mapping": "^0.3.5", 138 - "@jridgewell/trace-mapping": "^0.3.24" 139 - }, 140 - "engines": { 141 - "node": ">=6.0.0" 59 + "vite": "^7.2.6" 142 60 } 143 61 }, 144 62 "node_modules/@antfu/install-pkg": { ··· 155 73 "url": "https://github.com/sponsors/antfu" 156 74 } 157 75 }, 158 - "node_modules/@antfu/install-pkg/node_modules/tinyexec": { 159 - "version": "1.0.1", 160 - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.1.tgz", 161 - "integrity": "sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==", 162 - "dev": true, 163 - "license": "MIT" 164 - }, 165 76 "node_modules/@babel/code-frame": { 166 77 "version": "7.27.1", 167 78 "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", ··· 178 89 } 179 90 }, 180 91 "node_modules/@babel/compat-data": { 181 - "version": "7.27.5", 182 - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz", 183 - "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==", 92 + "version": "7.28.5", 93 + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", 94 + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", 184 95 "dev": true, 185 96 "license": "MIT", 186 97 "engines": { ··· 188 99 } 189 100 }, 190 101 "node_modules/@babel/core": { 191 - "version": "7.27.4", 192 - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", 193 - "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", 102 + "version": "7.28.5", 103 + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", 104 + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", 194 105 "dev": true, 195 106 "license": "MIT", 196 107 "dependencies": { 197 - "@ampproject/remapping": "^2.2.0", 198 108 "@babel/code-frame": "^7.27.1", 199 - "@babel/generator": "^7.27.3", 109 + "@babel/generator": "^7.28.5", 200 110 "@babel/helper-compilation-targets": "^7.27.2", 201 - "@babel/helper-module-transforms": "^7.27.3", 202 - "@babel/helpers": "^7.27.4", 203 - "@babel/parser": "^7.27.4", 111 + "@babel/helper-module-transforms": "^7.28.3", 112 + "@babel/helpers": "^7.28.4", 113 + "@babel/parser": "^7.28.5", 204 114 "@babel/template": "^7.27.2", 205 - "@babel/traverse": "^7.27.4", 206 - "@babel/types": "^7.27.3", 115 + "@babel/traverse": "^7.28.5", 116 + "@babel/types": "^7.28.5", 117 + "@jridgewell/remapping": "^2.3.5", 207 118 "convert-source-map": "^2.0.0", 208 119 "debug": "^4.1.0", 209 120 "gensync": "^1.0.0-beta.2", ··· 219 130 } 220 131 }, 221 132 "node_modules/@babel/generator": { 222 - "version": "7.27.5", 223 - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", 224 - "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", 133 + "version": "7.28.5", 134 + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", 135 + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", 225 136 "dev": true, 226 137 "license": "MIT", 227 138 "dependencies": { 228 - "@babel/parser": "^7.27.5", 229 - "@babel/types": "^7.27.3", 230 - "@jridgewell/gen-mapping": "^0.3.5", 231 - "@jridgewell/trace-mapping": "^0.3.25", 139 + "@babel/parser": "^7.28.5", 140 + "@babel/types": "^7.28.5", 141 + "@jridgewell/gen-mapping": "^0.3.12", 142 + "@jridgewell/trace-mapping": "^0.3.28", 232 143 "jsesc": "^3.0.2" 233 144 }, 234 145 "engines": { ··· 265 176 "node": ">=6.9.0" 266 177 } 267 178 }, 179 + "node_modules/@babel/helper-globals": { 180 + "version": "7.28.0", 181 + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", 182 + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", 183 + "dev": true, 184 + "license": "MIT", 185 + "engines": { 186 + "node": ">=6.9.0" 187 + } 188 + }, 268 189 "node_modules/@babel/helper-module-imports": { 269 190 "version": "7.27.1", 270 191 "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", ··· 280 201 } 281 202 }, 282 203 "node_modules/@babel/helper-module-transforms": { 283 - "version": "7.27.3", 284 - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", 285 - "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", 204 + "version": "7.28.3", 205 + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", 206 + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", 286 207 "dev": true, 287 208 "license": "MIT", 288 209 "dependencies": { 289 210 "@babel/helper-module-imports": "^7.27.1", 290 211 "@babel/helper-validator-identifier": "^7.27.1", 291 - "@babel/traverse": "^7.27.3" 212 + "@babel/traverse": "^7.28.3" 292 213 }, 293 214 "engines": { 294 215 "node": ">=6.9.0" ··· 318 239 } 319 240 }, 320 241 "node_modules/@babel/helper-validator-identifier": { 321 - "version": "7.27.1", 322 - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", 323 - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", 242 + "version": "7.28.5", 243 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", 244 + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", 324 245 "dev": true, 325 246 "license": "MIT", 326 247 "engines": { ··· 338 259 } 339 260 }, 340 261 "node_modules/@babel/helpers": { 341 - "version": "7.27.6", 342 - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", 343 - "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", 262 + "version": "7.28.4", 263 + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", 264 + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", 344 265 "dev": true, 345 266 "license": "MIT", 346 267 "dependencies": { 347 268 "@babel/template": "^7.27.2", 348 - "@babel/types": "^7.27.6" 269 + "@babel/types": "^7.28.4" 349 270 }, 350 271 "engines": { 351 272 "node": ">=6.9.0" 352 273 } 353 274 }, 354 275 "node_modules/@babel/parser": { 355 - "version": "7.27.5", 356 - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", 357 - "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", 276 + "version": "7.28.5", 277 + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", 278 + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", 358 279 "dev": true, 359 280 "license": "MIT", 360 281 "dependencies": { 361 - "@babel/types": "^7.27.3" 282 + "@babel/types": "^7.28.5" 362 283 }, 363 284 "bin": { 364 285 "parser": "bin/babel-parser.js" ··· 435 356 } 436 357 }, 437 358 "node_modules/@babel/traverse": { 438 - "version": "7.27.4", 439 - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", 440 - "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", 359 + "version": "7.28.5", 360 + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", 361 + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", 441 362 "dev": true, 442 363 "license": "MIT", 443 364 "dependencies": { 444 365 "@babel/code-frame": "^7.27.1", 445 - "@babel/generator": "^7.27.3", 446 - "@babel/parser": "^7.27.4", 366 + "@babel/generator": "^7.28.5", 367 + "@babel/helper-globals": "^7.28.0", 368 + "@babel/parser": "^7.28.5", 447 369 "@babel/template": "^7.27.2", 448 - "@babel/types": "^7.27.3", 449 - "debug": "^4.3.1", 450 - "globals": "^11.1.0" 370 + "@babel/types": "^7.28.5", 371 + "debug": "^4.3.1" 451 372 }, 452 373 "engines": { 453 374 "node": ">=6.9.0" 454 375 } 455 376 }, 456 377 "node_modules/@babel/types": { 457 - "version": "7.27.6", 458 - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", 459 - "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", 378 + "version": "7.28.5", 379 + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", 380 + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", 460 381 "dev": true, 461 382 "license": "MIT", 462 383 "dependencies": { 463 384 "@babel/helper-string-parser": "^7.27.1", 464 - "@babel/helper-validator-identifier": "^7.27.1" 385 + "@babel/helper-validator-identifier": "^7.28.5" 465 386 }, 466 387 "engines": { 467 388 "node": ">=6.9.0" 468 389 } 469 390 }, 470 391 "node_modules/@esbuild/aix-ppc64": { 471 - "version": "0.25.5", 472 - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.5.tgz", 473 - "integrity": "sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==", 392 + "version": "0.25.12", 393 + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", 394 + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", 474 395 "cpu": [ 475 396 "ppc64" 476 397 ], ··· 485 406 } 486 407 }, 487 408 "node_modules/@esbuild/android-arm": { 488 - "version": "0.25.5", 489 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.5.tgz", 490 - "integrity": "sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==", 409 + "version": "0.25.12", 410 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", 411 + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", 491 412 "cpu": [ 492 413 "arm" 493 414 ], ··· 502 423 } 503 424 }, 504 425 "node_modules/@esbuild/android-arm64": { 505 - "version": "0.25.5", 506 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.5.tgz", 507 - "integrity": "sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==", 426 + "version": "0.25.12", 427 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", 428 + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", 508 429 "cpu": [ 509 430 "arm64" 510 431 ], ··· 519 440 } 520 441 }, 521 442 "node_modules/@esbuild/android-x64": { 522 - "version": "0.25.5", 523 - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.5.tgz", 524 - "integrity": "sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==", 443 + "version": "0.25.12", 444 + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", 445 + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", 525 446 "cpu": [ 526 447 "x64" 527 448 ], ··· 536 457 } 537 458 }, 538 459 "node_modules/@esbuild/darwin-arm64": { 539 - "version": "0.25.5", 540 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.5.tgz", 541 - "integrity": "sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==", 460 + "version": "0.25.12", 461 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", 462 + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", 542 463 "cpu": [ 543 464 "arm64" 544 465 ], ··· 553 474 } 554 475 }, 555 476 "node_modules/@esbuild/darwin-x64": { 556 - "version": "0.25.5", 557 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.5.tgz", 558 - "integrity": "sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==", 477 + "version": "0.25.12", 478 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", 479 + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", 559 480 "cpu": [ 560 481 "x64" 561 482 ], ··· 570 491 } 571 492 }, 572 493 "node_modules/@esbuild/freebsd-arm64": { 573 - "version": "0.25.5", 574 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.5.tgz", 575 - "integrity": "sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==", 494 + "version": "0.25.12", 495 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", 496 + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", 576 497 "cpu": [ 577 498 "arm64" 578 499 ], ··· 587 508 } 588 509 }, 589 510 "node_modules/@esbuild/freebsd-x64": { 590 - "version": "0.25.5", 591 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.5.tgz", 592 - "integrity": "sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==", 511 + "version": "0.25.12", 512 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", 513 + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", 593 514 "cpu": [ 594 515 "x64" 595 516 ], ··· 604 525 } 605 526 }, 606 527 "node_modules/@esbuild/linux-arm": { 607 - "version": "0.25.5", 608 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.5.tgz", 609 - "integrity": "sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==", 528 + "version": "0.25.12", 529 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", 530 + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", 610 531 "cpu": [ 611 532 "arm" 612 533 ], ··· 621 542 } 622 543 }, 623 544 "node_modules/@esbuild/linux-arm64": { 624 - "version": "0.25.5", 625 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.5.tgz", 626 - "integrity": "sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==", 545 + "version": "0.25.12", 546 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", 547 + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", 627 548 "cpu": [ 628 549 "arm64" 629 550 ], ··· 638 559 } 639 560 }, 640 561 "node_modules/@esbuild/linux-ia32": { 641 - "version": "0.25.5", 642 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.5.tgz", 643 - "integrity": "sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==", 562 + "version": "0.25.12", 563 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", 564 + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", 644 565 "cpu": [ 645 566 "ia32" 646 567 ], ··· 655 576 } 656 577 }, 657 578 "node_modules/@esbuild/linux-loong64": { 658 - "version": "0.25.5", 659 - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.5.tgz", 660 - "integrity": "sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==", 579 + "version": "0.25.12", 580 + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", 581 + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", 661 582 "cpu": [ 662 583 "loong64" 663 584 ], ··· 672 593 } 673 594 }, 674 595 "node_modules/@esbuild/linux-mips64el": { 675 - "version": "0.25.5", 676 - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.5.tgz", 677 - "integrity": "sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==", 596 + "version": "0.25.12", 597 + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", 598 + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", 678 599 "cpu": [ 679 600 "mips64el" 680 601 ], ··· 689 610 } 690 611 }, 691 612 "node_modules/@esbuild/linux-ppc64": { 692 - "version": "0.25.5", 693 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.5.tgz", 694 - "integrity": "sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==", 613 + "version": "0.25.12", 614 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", 615 + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", 695 616 "cpu": [ 696 617 "ppc64" 697 618 ], ··· 706 627 } 707 628 }, 708 629 "node_modules/@esbuild/linux-riscv64": { 709 - "version": "0.25.5", 710 - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.5.tgz", 711 - "integrity": "sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==", 630 + "version": "0.25.12", 631 + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", 632 + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", 712 633 "cpu": [ 713 634 "riscv64" 714 635 ], ··· 723 644 } 724 645 }, 725 646 "node_modules/@esbuild/linux-s390x": { 726 - "version": "0.25.5", 727 - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.5.tgz", 728 - "integrity": "sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==", 647 + "version": "0.25.12", 648 + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", 649 + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", 729 650 "cpu": [ 730 651 "s390x" 731 652 ], ··· 740 661 } 741 662 }, 742 663 "node_modules/@esbuild/linux-x64": { 743 - "version": "0.25.5", 744 - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.5.tgz", 745 - "integrity": "sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==", 664 + "version": "0.25.12", 665 + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", 666 + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", 746 667 "cpu": [ 747 668 "x64" 748 669 ], ··· 757 678 } 758 679 }, 759 680 "node_modules/@esbuild/netbsd-arm64": { 760 - "version": "0.25.5", 761 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.5.tgz", 762 - "integrity": "sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==", 681 + "version": "0.25.12", 682 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", 683 + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", 763 684 "cpu": [ 764 685 "arm64" 765 686 ], ··· 774 695 } 775 696 }, 776 697 "node_modules/@esbuild/netbsd-x64": { 777 - "version": "0.25.5", 778 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.5.tgz", 779 - "integrity": "sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==", 698 + "version": "0.25.12", 699 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", 700 + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", 780 701 "cpu": [ 781 702 "x64" 782 703 ], ··· 791 712 } 792 713 }, 793 714 "node_modules/@esbuild/openbsd-arm64": { 794 - "version": "0.25.5", 795 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.5.tgz", 796 - "integrity": "sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==", 715 + "version": "0.25.12", 716 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", 717 + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", 797 718 "cpu": [ 798 719 "arm64" 799 720 ], ··· 808 729 } 809 730 }, 810 731 "node_modules/@esbuild/openbsd-x64": { 811 - "version": "0.25.5", 812 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.5.tgz", 813 - "integrity": "sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==", 732 + "version": "0.25.12", 733 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", 734 + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", 814 735 "cpu": [ 815 736 "x64" 816 737 ], ··· 824 745 "node": ">=18" 825 746 } 826 747 }, 748 + "node_modules/@esbuild/openharmony-arm64": { 749 + "version": "0.25.12", 750 + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", 751 + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", 752 + "cpu": [ 753 + "arm64" 754 + ], 755 + "dev": true, 756 + "license": "MIT", 757 + "optional": true, 758 + "os": [ 759 + "openharmony" 760 + ], 761 + "engines": { 762 + "node": ">=18" 763 + } 764 + }, 827 765 "node_modules/@esbuild/sunos-x64": { 828 - "version": "0.25.5", 829 - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.5.tgz", 830 - "integrity": "sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==", 766 + "version": "0.25.12", 767 + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", 768 + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", 831 769 "cpu": [ 832 770 "x64" 833 771 ], ··· 842 780 } 843 781 }, 844 782 "node_modules/@esbuild/win32-arm64": { 845 - "version": "0.25.5", 846 - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.5.tgz", 847 - "integrity": "sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==", 783 + "version": "0.25.12", 784 + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", 785 + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", 848 786 "cpu": [ 849 787 "arm64" 850 788 ], ··· 859 797 } 860 798 }, 861 799 "node_modules/@esbuild/win32-ia32": { 862 - "version": "0.25.5", 863 - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.5.tgz", 864 - "integrity": "sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==", 800 + "version": "0.25.12", 801 + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", 802 + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", 865 803 "cpu": [ 866 804 "ia32" 867 805 ], ··· 876 814 } 877 815 }, 878 816 "node_modules/@esbuild/win32-x64": { 879 - "version": "0.25.5", 880 - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.5.tgz", 881 - "integrity": "sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==", 817 + "version": "0.25.12", 818 + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", 819 + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", 882 820 "cpu": [ 883 821 "x64" 884 822 ], ··· 893 831 } 894 832 }, 895 833 "node_modules/@fontsource-variable/roboto-serif": { 896 - "version": "5.2.6", 897 - "resolved": "https://registry.npmjs.org/@fontsource-variable/roboto-serif/-/roboto-serif-5.2.6.tgz", 898 - "integrity": "sha512-MTRmagkJ+2/lip0CB5+WwH079UQvfrltSzORN9yANUW5KJPItach6wxHju7srrG6n7U+xlyD69aI/iQqdzlZgQ==", 834 + "version": "5.2.8", 835 + "resolved": "https://registry.npmjs.org/@fontsource-variable/roboto-serif/-/roboto-serif-5.2.8.tgz", 836 + "integrity": "sha512-FZkDtf71h4/qCJopF+BlMQgYSqA3H0fvQoSbnEIG9C0+CO2uppiT3Nh12NL/0skulLqDjFt9NOZJSbAT75mtCw==", 899 837 "license": "OFL-1.1", 900 838 "funding": { 901 839 "url": "https://github.com/sponsors/ayuhito" ··· 919 857 "license": "MIT" 920 858 }, 921 859 "node_modules/@iconify/utils": { 922 - "version": "2.3.0", 923 - "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.3.0.tgz", 924 - "integrity": "sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==", 860 + "version": "3.1.0", 861 + "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-3.1.0.tgz", 862 + "integrity": "sha512-Zlzem1ZXhI1iHeeERabLNzBHdOa4VhQbqAcOQaMKuTuyZCpwKbC2R4Dd0Zo3g9EAc+Y4fiarO8HIHRAth7+skw==", 925 863 "dev": true, 926 864 "license": "MIT", 927 865 "dependencies": { 928 - "@antfu/install-pkg": "^1.0.0", 929 - "@antfu/utils": "^8.1.0", 866 + "@antfu/install-pkg": "^1.1.0", 930 867 "@iconify/types": "^2.0.0", 931 - "debug": "^4.4.0", 932 - "globals": "^15.14.0", 933 - "kolorist": "^1.8.0", 934 - "local-pkg": "^1.0.0", 935 - "mlly": "^1.7.4" 936 - } 937 - }, 938 - "node_modules/@iconify/utils/node_modules/@antfu/utils": { 939 - "version": "8.1.1", 940 - "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-8.1.1.tgz", 941 - "integrity": "sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==", 942 - "dev": true, 943 - "license": "MIT", 944 - "funding": { 945 - "url": "https://github.com/sponsors/antfu" 868 + "mlly": "^1.8.0" 946 869 } 947 870 }, 948 - "node_modules/@iconify/utils/node_modules/globals": { 949 - "version": "15.15.0", 950 - "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", 951 - "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", 871 + "node_modules/@jridgewell/gen-mapping": { 872 + "version": "0.3.13", 873 + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", 874 + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", 952 875 "dev": true, 953 876 "license": "MIT", 954 - "engines": { 955 - "node": ">=18" 956 - }, 957 - "funding": { 958 - "url": "https://github.com/sponsors/sindresorhus" 877 + "dependencies": { 878 + "@jridgewell/sourcemap-codec": "^1.5.0", 879 + "@jridgewell/trace-mapping": "^0.3.24" 959 880 } 960 881 }, 961 - "node_modules/@jridgewell/gen-mapping": { 962 - "version": "0.3.8", 963 - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", 964 - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", 882 + "node_modules/@jridgewell/remapping": { 883 + "version": "2.3.5", 884 + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", 885 + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", 965 886 "dev": true, 966 887 "license": "MIT", 967 888 "dependencies": { 968 - "@jridgewell/set-array": "^1.2.1", 969 - "@jridgewell/sourcemap-codec": "^1.4.10", 889 + "@jridgewell/gen-mapping": "^0.3.5", 970 890 "@jridgewell/trace-mapping": "^0.3.24" 971 - }, 972 - "engines": { 973 - "node": ">=6.0.0" 974 891 } 975 892 }, 976 893 "node_modules/@jridgewell/resolve-uri": { ··· 983 900 "node": ">=6.0.0" 984 901 } 985 902 }, 986 - "node_modules/@jridgewell/set-array": { 987 - "version": "1.2.1", 988 - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", 989 - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", 990 - "dev": true, 991 - "license": "MIT", 992 - "engines": { 993 - "node": ">=6.0.0" 994 - } 995 - }, 996 903 "node_modules/@jridgewell/sourcemap-codec": { 997 - "version": "1.5.0", 998 - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", 999 - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", 904 + "version": "1.5.5", 905 + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", 906 + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", 1000 907 "dev": true, 1001 908 "license": "MIT" 1002 909 }, 1003 910 "node_modules/@jridgewell/trace-mapping": { 1004 - "version": "0.3.25", 1005 - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", 1006 - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", 911 + "version": "0.3.31", 912 + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", 913 + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", 1007 914 "dev": true, 1008 915 "license": "MIT", 1009 916 "dependencies": { ··· 1012 919 } 1013 920 }, 1014 921 "node_modules/@preact/preset-vite": { 1015 - "version": "2.10.1", 1016 - "resolved": "https://registry.npmjs.org/@preact/preset-vite/-/preset-vite-2.10.1.tgz", 1017 - "integrity": "sha512-59lyGBXNfZIr5OOuBUB4/IB8AqF/ULbvYnyItgK/2BJnsGJqaeaJobRVtMp1129obHQuj8oZ/dVxB9inmH8Xig==", 922 + "version": "2.10.2", 923 + "resolved": "https://registry.npmjs.org/@preact/preset-vite/-/preset-vite-2.10.2.tgz", 924 + "integrity": "sha512-K9wHlJOtkE+cGqlyQ5v9kL3Ge0Ql4LlIZjkUTL+1zf3nNdF88F9UZN6VTV8jdzBX9Fl7WSzeNMSDG7qECPmSmg==", 1018 925 "dev": true, 1019 926 "license": "MIT", 1020 927 "dependencies": { ··· 1024 931 "@rollup/pluginutils": "^4.1.1", 1025 932 "babel-plugin-transform-hook-names": "^1.0.2", 1026 933 "debug": "^4.3.4", 1027 - "kolorist": "^1.8.0", 934 + "picocolors": "^1.1.1", 1028 935 "vite-prerender-plugin": "^0.5.3" 1029 936 }, 1030 937 "peerDependencies": { 1031 938 "@babel/core": "7.x", 1032 - "vite": "2.x || 3.x || 4.x || 5.x || 6.x" 939 + "vite": "2.x || 3.x || 4.x || 5.x || 6.x || 7.x" 1033 940 } 1034 941 }, 1035 942 "node_modules/@preact/signals": { 1036 - "version": "2.2.0", 1037 - "resolved": "https://registry.npmjs.org/@preact/signals/-/signals-2.2.0.tgz", 1038 - "integrity": "sha512-P3KPcEYyVk9Wiwfw68QQzRpPkt0H+zjfH3X4AaGCDlc86GuRBYFGiAxT1nC5F5qlsVIEmjNJ9yVYe7C91z3L+g==", 943 + "version": "2.5.1", 944 + "resolved": "https://registry.npmjs.org/@preact/signals/-/signals-2.5.1.tgz", 945 + "integrity": "sha512-VPjk5YFt7i11Fi4UK0tzaEe5xLwfhUxXL3l89ocxQ5aPz7bRo8M5+N73LjBMPklyXKYKz6YsNo4Smp8n6nplng==", 1039 946 "license": "MIT", 1040 947 "dependencies": { 1041 - "@preact/signals-core": "^1.9.0" 948 + "@preact/signals-core": "^1.12.0" 1042 949 }, 1043 950 "funding": { 1044 951 "type": "opencollective", 1045 952 "url": "https://opencollective.com/preact" 1046 953 }, 1047 954 "peerDependencies": { 1048 - "preact": ">= 10.25.0" 955 + "preact": ">= 10.25.0 || >=11.0.0-0" 1049 956 } 1050 957 }, 1051 958 "node_modules/@preact/signals-core": { 1052 - "version": "1.9.0", 1053 - "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.9.0.tgz", 1054 - "integrity": "sha512-uUgFHJLWxb33rfCtb1g+1e3Rg7Jl5EALhGTHlQ5Y0w37OF+fdidYdYEE6crbpUOYDOjlmelIWf0ulXr1ggfUkg==", 959 + "version": "1.12.1", 960 + "resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.12.1.tgz", 961 + "integrity": "sha512-BwbTXpj+9QutoZLQvbttRg5x3l5468qaV2kufh+51yha1c53ep5dY4kTuZR35+3pAZxpfQerGJiQqg34ZNZ6uA==", 1055 962 "license": "MIT", 1056 963 "funding": { 1057 964 "type": "opencollective", ··· 1059 966 } 1060 967 }, 1061 968 "node_modules/@prefresh/babel-plugin": { 1062 - "version": "0.5.1", 1063 - "resolved": "https://registry.npmjs.org/@prefresh/babel-plugin/-/babel-plugin-0.5.1.tgz", 1064 - "integrity": "sha512-uG3jGEAysxWoyG3XkYfjYHgaySFrSsaEb4GagLzYaxlydbuREtaX+FTxuIidp241RaLl85XoHg9Ej6E4+V1pcg==", 969 + "version": "0.5.2", 970 + "resolved": "https://registry.npmjs.org/@prefresh/babel-plugin/-/babel-plugin-0.5.2.tgz", 971 + "integrity": "sha512-AOl4HG6dAxWkJ5ndPHBgBa49oo/9bOiJuRDKHLSTyH+Fd9x00shTXpdiTj1W41l6oQIwUOAgJeHMn4QwIDpHkA==", 1065 972 "dev": true, 1066 973 "license": "MIT" 1067 974 }, 1068 975 "node_modules/@prefresh/core": { 1069 - "version": "1.5.3", 1070 - "resolved": "https://registry.npmjs.org/@prefresh/core/-/core-1.5.3.tgz", 1071 - "integrity": "sha512-nDzxj0tA1/M6APNAWqaxkZ+3sTdPHESa+gol4+Bw7rMc2btWdkLoNH7j9rGhUb8SThC0Vz0VoXtq+U+9azGLHg==", 976 + "version": "1.5.9", 977 + "resolved": "https://registry.npmjs.org/@prefresh/core/-/core-1.5.9.tgz", 978 + "integrity": "sha512-IKBKCPaz34OFVC+adiQ2qaTF5qdztO2/4ZPf4KsRTgjKosWqxVXmEbxCiUydYZRY8GVie+DQlKzQr9gt6HQ+EQ==", 1072 979 "dev": true, 1073 980 "license": "MIT", 1074 981 "peerDependencies": { 1075 - "preact": "^10.0.0" 982 + "preact": "^10.0.0 || ^11.0.0-0" 1076 983 } 1077 984 }, 1078 985 "node_modules/@prefresh/utils": { 1079 - "version": "1.2.0", 1080 - "resolved": "https://registry.npmjs.org/@prefresh/utils/-/utils-1.2.0.tgz", 1081 - "integrity": "sha512-KtC/fZw+oqtwOLUFM9UtiitB0JsVX0zLKNyRTA332sqREqSALIIQQxdUCS1P3xR/jT1e2e8/5rwH6gdcMLEmsQ==", 986 + "version": "1.2.1", 987 + "resolved": "https://registry.npmjs.org/@prefresh/utils/-/utils-1.2.1.tgz", 988 + "integrity": "sha512-vq/sIuN5nYfYzvyayXI4C2QkprfNaHUQ9ZX+3xLD8nL3rWyzpxOm1+K7RtMbhd+66QcaISViK7amjnheQ/4WZw==", 1082 989 "dev": true, 1083 990 "license": "MIT" 1084 991 }, 1085 992 "node_modules/@prefresh/vite": { 1086 - "version": "2.4.7", 1087 - "resolved": "https://registry.npmjs.org/@prefresh/vite/-/vite-2.4.7.tgz", 1088 - "integrity": "sha512-zmCEDWSFHl5A7PciXa/fe+OUjoGi4iiCQclpWfpIg7LjxwWrtlUT4DfxDBcQwHfTyipS/XDm8x7WYrkiTW0q+w==", 993 + "version": "2.4.11", 994 + "resolved": "https://registry.npmjs.org/@prefresh/vite/-/vite-2.4.11.tgz", 995 + "integrity": "sha512-/XjURQqdRiCG3NpMmWqE9kJwrg9IchIOWHzulCfqg2sRe/8oQ1g5De7xrk9lbqPIQLn7ntBkKdqWXIj4E9YXyg==", 1089 996 "dev": true, 1090 997 "license": "MIT", 1091 998 "dependencies": { 1092 999 "@babel/core": "^7.22.1", 1093 - "@prefresh/babel-plugin": "0.5.1", 1094 - "@prefresh/core": "^1.5.1", 1000 + "@prefresh/babel-plugin": "0.5.2", 1001 + "@prefresh/core": "^1.5.0", 1095 1002 "@prefresh/utils": "^1.2.0", 1096 1003 "@rollup/pluginutils": "^4.2.1" 1097 1004 }, 1098 1005 "peerDependencies": { 1099 - "preact": "^10.4.0", 1006 + "preact": "^10.4.0 || ^11.0.0-0", 1100 1007 "vite": ">=2.0.0" 1101 1008 } 1102 1009 }, ··· 1115 1022 } 1116 1023 }, 1117 1024 "node_modules/@rollup/rollup-android-arm-eabi": { 1118 - "version": "4.42.0", 1119 - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.42.0.tgz", 1120 - "integrity": "sha512-gldmAyS9hpj+H6LpRNlcjQWbuKUtb94lodB9uCz71Jm+7BxK1VIOo7y62tZZwxhA7j1ylv/yQz080L5WkS+LoQ==", 1025 + "version": "4.53.3", 1026 + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.3.tgz", 1027 + "integrity": "sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==", 1121 1028 "cpu": [ 1122 1029 "arm" 1123 1030 ], ··· 1129 1036 ] 1130 1037 }, 1131 1038 "node_modules/@rollup/rollup-android-arm64": { 1132 - "version": "4.42.0", 1133 - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.42.0.tgz", 1134 - "integrity": "sha512-bpRipfTgmGFdCZDFLRvIkSNO1/3RGS74aWkJJTFJBH7h3MRV4UijkaEUeOMbi9wxtxYmtAbVcnMtHTPBhLEkaw==", 1039 + "version": "4.53.3", 1040 + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.3.tgz", 1041 + "integrity": "sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==", 1135 1042 "cpu": [ 1136 1043 "arm64" 1137 1044 ], ··· 1143 1050 ] 1144 1051 }, 1145 1052 "node_modules/@rollup/rollup-darwin-arm64": { 1146 - "version": "4.42.0", 1147 - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.42.0.tgz", 1148 - "integrity": "sha512-JxHtA081izPBVCHLKnl6GEA0w3920mlJPLh89NojpU2GsBSB6ypu4erFg/Wx1qbpUbepn0jY4dVWMGZM8gplgA==", 1053 + "version": "4.53.3", 1054 + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.3.tgz", 1055 + "integrity": "sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==", 1149 1056 "cpu": [ 1150 1057 "arm64" 1151 1058 ], ··· 1157 1064 ] 1158 1065 }, 1159 1066 "node_modules/@rollup/rollup-darwin-x64": { 1160 - "version": "4.42.0", 1161 - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.42.0.tgz", 1162 - "integrity": "sha512-rv5UZaWVIJTDMyQ3dCEK+m0SAn6G7H3PRc2AZmExvbDvtaDc+qXkei0knQWcI3+c9tEs7iL/4I4pTQoPbNL2SA==", 1067 + "version": "4.53.3", 1068 + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.3.tgz", 1069 + "integrity": "sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==", 1163 1070 "cpu": [ 1164 1071 "x64" 1165 1072 ], ··· 1171 1078 ] 1172 1079 }, 1173 1080 "node_modules/@rollup/rollup-freebsd-arm64": { 1174 - "version": "4.42.0", 1175 - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.42.0.tgz", 1176 - "integrity": "sha512-fJcN4uSGPWdpVmvLuMtALUFwCHgb2XiQjuECkHT3lWLZhSQ3MBQ9pq+WoWeJq2PrNxr9rPM1Qx+IjyGj8/c6zQ==", 1081 + "version": "4.53.3", 1082 + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.3.tgz", 1083 + "integrity": "sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==", 1177 1084 "cpu": [ 1178 1085 "arm64" 1179 1086 ], ··· 1185 1092 ] 1186 1093 }, 1187 1094 "node_modules/@rollup/rollup-freebsd-x64": { 1188 - "version": "4.42.0", 1189 - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.42.0.tgz", 1190 - "integrity": "sha512-CziHfyzpp8hJpCVE/ZdTizw58gr+m7Y2Xq5VOuCSrZR++th2xWAz4Nqk52MoIIrV3JHtVBhbBsJcAxs6NammOQ==", 1095 + "version": "4.53.3", 1096 + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.3.tgz", 1097 + "integrity": "sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==", 1191 1098 "cpu": [ 1192 1099 "x64" 1193 1100 ], ··· 1199 1106 ] 1200 1107 }, 1201 1108 "node_modules/@rollup/rollup-linux-arm-gnueabihf": { 1202 - "version": "4.42.0", 1203 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.42.0.tgz", 1204 - "integrity": "sha512-UsQD5fyLWm2Fe5CDM7VPYAo+UC7+2Px4Y+N3AcPh/LdZu23YcuGPegQly++XEVaC8XUTFVPscl5y5Cl1twEI4A==", 1109 + "version": "4.53.3", 1110 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.3.tgz", 1111 + "integrity": "sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==", 1205 1112 "cpu": [ 1206 1113 "arm" 1207 1114 ], ··· 1213 1120 ] 1214 1121 }, 1215 1122 "node_modules/@rollup/rollup-linux-arm-musleabihf": { 1216 - "version": "4.42.0", 1217 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.42.0.tgz", 1218 - "integrity": "sha512-/i8NIrlgc/+4n1lnoWl1zgH7Uo0XK5xK3EDqVTf38KvyYgCU/Rm04+o1VvvzJZnVS5/cWSd07owkzcVasgfIkQ==", 1123 + "version": "4.53.3", 1124 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.3.tgz", 1125 + "integrity": "sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==", 1219 1126 "cpu": [ 1220 1127 "arm" 1221 1128 ], ··· 1227 1134 ] 1228 1135 }, 1229 1136 "node_modules/@rollup/rollup-linux-arm64-gnu": { 1230 - "version": "4.42.0", 1231 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.42.0.tgz", 1232 - "integrity": "sha512-eoujJFOvoIBjZEi9hJnXAbWg+Vo1Ov8n/0IKZZcPZ7JhBzxh2A+2NFyeMZIRkY9iwBvSjloKgcvnjTbGKHE44Q==", 1137 + "version": "4.53.3", 1138 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.3.tgz", 1139 + "integrity": "sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==", 1233 1140 "cpu": [ 1234 1141 "arm64" 1235 1142 ], ··· 1241 1148 ] 1242 1149 }, 1243 1150 "node_modules/@rollup/rollup-linux-arm64-musl": { 1244 - "version": "4.42.0", 1245 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.42.0.tgz", 1246 - "integrity": "sha512-/3NrcOWFSR7RQUQIuZQChLND36aTU9IYE4j+TB40VU78S+RA0IiqHR30oSh6P1S9f9/wVOenHQnacs/Byb824g==", 1151 + "version": "4.53.3", 1152 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.3.tgz", 1153 + "integrity": "sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==", 1247 1154 "cpu": [ 1248 1155 "arm64" 1249 1156 ], ··· 1254 1161 "linux" 1255 1162 ] 1256 1163 }, 1257 - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { 1258 - "version": "4.42.0", 1259 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.42.0.tgz", 1260 - "integrity": "sha512-O8AplvIeavK5ABmZlKBq9/STdZlnQo7Sle0LLhVA7QT+CiGpNVe197/t8Aph9bhJqbDVGCHpY2i7QyfEDDStDg==", 1164 + "node_modules/@rollup/rollup-linux-loong64-gnu": { 1165 + "version": "4.53.3", 1166 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.3.tgz", 1167 + "integrity": "sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==", 1261 1168 "cpu": [ 1262 1169 "loong64" 1263 1170 ], ··· 1268 1175 "linux" 1269 1176 ] 1270 1177 }, 1271 - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { 1272 - "version": "4.42.0", 1273 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.42.0.tgz", 1274 - "integrity": "sha512-6Qb66tbKVN7VyQrekhEzbHRxXXFFD8QKiFAwX5v9Xt6FiJ3BnCVBuyBxa2fkFGqxOCSGGYNejxd8ht+q5SnmtA==", 1178 + "node_modules/@rollup/rollup-linux-ppc64-gnu": { 1179 + "version": "4.53.3", 1180 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.3.tgz", 1181 + "integrity": "sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==", 1275 1182 "cpu": [ 1276 1183 "ppc64" 1277 1184 ], ··· 1283 1190 ] 1284 1191 }, 1285 1192 "node_modules/@rollup/rollup-linux-riscv64-gnu": { 1286 - "version": "4.42.0", 1287 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.42.0.tgz", 1288 - "integrity": "sha512-KQETDSEBamQFvg/d8jajtRwLNBlGc3aKpaGiP/LvEbnmVUKlFta1vqJqTrvPtsYsfbE/DLg5CC9zyXRX3fnBiA==", 1193 + "version": "4.53.3", 1194 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.3.tgz", 1195 + "integrity": "sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==", 1289 1196 "cpu": [ 1290 1197 "riscv64" 1291 1198 ], ··· 1297 1204 ] 1298 1205 }, 1299 1206 "node_modules/@rollup/rollup-linux-riscv64-musl": { 1300 - "version": "4.42.0", 1301 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.42.0.tgz", 1302 - "integrity": "sha512-qMvnyjcU37sCo/tuC+JqeDKSuukGAd+pVlRl/oyDbkvPJ3awk6G6ua7tyum02O3lI+fio+eM5wsVd66X0jQtxw==", 1207 + "version": "4.53.3", 1208 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.3.tgz", 1209 + "integrity": "sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A==", 1303 1210 "cpu": [ 1304 1211 "riscv64" 1305 1212 ], ··· 1311 1218 ] 1312 1219 }, 1313 1220 "node_modules/@rollup/rollup-linux-s390x-gnu": { 1314 - "version": "4.42.0", 1315 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.42.0.tgz", 1316 - "integrity": "sha512-I2Y1ZUgTgU2RLddUHXTIgyrdOwljjkmcZ/VilvaEumtS3Fkuhbw4p4hgHc39Ypwvo2o7sBFNl2MquNvGCa55Iw==", 1221 + "version": "4.53.3", 1222 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.3.tgz", 1223 + "integrity": "sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==", 1317 1224 "cpu": [ 1318 1225 "s390x" 1319 1226 ], ··· 1325 1232 ] 1326 1233 }, 1327 1234 "node_modules/@rollup/rollup-linux-x64-gnu": { 1328 - "version": "4.42.0", 1329 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.42.0.tgz", 1330 - "integrity": "sha512-Gfm6cV6mj3hCUY8TqWa63DB8Mx3NADoFwiJrMpoZ1uESbK8FQV3LXkhfry+8bOniq9pqY1OdsjFWNsSbfjPugw==", 1235 + "version": "4.53.3", 1236 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.3.tgz", 1237 + "integrity": "sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==", 1331 1238 "cpu": [ 1332 1239 "x64" 1333 1240 ], ··· 1339 1246 ] 1340 1247 }, 1341 1248 "node_modules/@rollup/rollup-linux-x64-musl": { 1342 - "version": "4.42.0", 1343 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.42.0.tgz", 1344 - "integrity": "sha512-g86PF8YZ9GRqkdi0VoGlcDUb4rYtQKyTD1IVtxxN4Hpe7YqLBShA7oHMKU6oKTCi3uxwW4VkIGnOaH/El8de3w==", 1249 + "version": "4.53.3", 1250 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.3.tgz", 1251 + "integrity": "sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==", 1345 1252 "cpu": [ 1346 1253 "x64" 1347 1254 ], ··· 1352 1259 "linux" 1353 1260 ] 1354 1261 }, 1262 + "node_modules/@rollup/rollup-openharmony-arm64": { 1263 + "version": "4.53.3", 1264 + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.3.tgz", 1265 + "integrity": "sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==", 1266 + "cpu": [ 1267 + "arm64" 1268 + ], 1269 + "dev": true, 1270 + "license": "MIT", 1271 + "optional": true, 1272 + "os": [ 1273 + "openharmony" 1274 + ] 1275 + }, 1355 1276 "node_modules/@rollup/rollup-win32-arm64-msvc": { 1356 - "version": "4.42.0", 1357 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.42.0.tgz", 1358 - "integrity": "sha512-+axkdyDGSp6hjyzQ5m1pgcvQScfHnMCcsXkx8pTgy/6qBmWVhtRVlgxjWwDp67wEXXUr0x+vD6tp5W4x6V7u1A==", 1277 + "version": "4.53.3", 1278 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.3.tgz", 1279 + "integrity": "sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==", 1359 1280 "cpu": [ 1360 1281 "arm64" 1361 1282 ], ··· 1367 1288 ] 1368 1289 }, 1369 1290 "node_modules/@rollup/rollup-win32-ia32-msvc": { 1370 - "version": "4.42.0", 1371 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.42.0.tgz", 1372 - "integrity": "sha512-F+5J9pelstXKwRSDq92J0TEBXn2nfUrQGg+HK1+Tk7VOL09e0gBqUHugZv7SW4MGrYj41oNCUe3IKCDGVlis2g==", 1291 + "version": "4.53.3", 1292 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.3.tgz", 1293 + "integrity": "sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==", 1373 1294 "cpu": [ 1374 1295 "ia32" 1375 1296 ], ··· 1380 1301 "win32" 1381 1302 ] 1382 1303 }, 1304 + "node_modules/@rollup/rollup-win32-x64-gnu": { 1305 + "version": "4.53.3", 1306 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.3.tgz", 1307 + "integrity": "sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==", 1308 + "cpu": [ 1309 + "x64" 1310 + ], 1311 + "dev": true, 1312 + "license": "MIT", 1313 + "optional": true, 1314 + "os": [ 1315 + "win32" 1316 + ] 1317 + }, 1383 1318 "node_modules/@rollup/rollup-win32-x64-msvc": { 1384 - "version": "4.42.0", 1385 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.42.0.tgz", 1386 - "integrity": "sha512-LpHiJRwkaVz/LqjHjK8LCi8osq7elmpwujwbXKNW88bM8eeGxavJIKKjkjpMHAh/2xfnrt1ZSnhTv41WYUHYmA==", 1319 + "version": "4.53.3", 1320 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.3.tgz", 1321 + "integrity": "sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==", 1387 1322 "cpu": [ 1388 1323 "x64" 1389 1324 ], ··· 1393 1328 "os": [ 1394 1329 "win32" 1395 1330 ] 1331 + }, 1332 + "node_modules/@standard-schema/spec": { 1333 + "version": "1.0.0", 1334 + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", 1335 + "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==", 1336 + "dev": true, 1337 + "license": "MIT" 1396 1338 }, 1397 1339 "node_modules/@svgr/babel-plugin-add-jsx-attribute": { 1398 1340 "version": "8.0.0", ··· 1620 1562 } 1621 1563 }, 1622 1564 "node_modules/@types/chai": { 1623 - "version": "5.2.2", 1624 - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz", 1625 - "integrity": "sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==", 1565 + "version": "5.2.3", 1566 + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", 1567 + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", 1626 1568 "dev": true, 1627 1569 "license": "MIT", 1628 1570 "dependencies": { 1629 - "@types/deep-eql": "*" 1571 + "@types/deep-eql": "*", 1572 + "assertion-error": "^2.0.1" 1630 1573 } 1631 1574 }, 1632 1575 "node_modules/@types/deep-eql": { ··· 1637 1580 "license": "MIT" 1638 1581 }, 1639 1582 "node_modules/@types/estree": { 1640 - "version": "1.0.7", 1641 - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", 1642 - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", 1583 + "version": "1.0.8", 1584 + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", 1585 + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", 1643 1586 "dev": true, 1644 1587 "license": "MIT" 1645 1588 }, 1646 1589 "node_modules/@types/node": { 1647 - "version": "24.0.0", 1648 - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.0.tgz", 1649 - "integrity": "sha512-yZQa2zm87aRVcqDyH5+4Hv9KYgSdgwX1rFnGvpbzMaC7YAljmhBET93TPiTd3ObwTL+gSpIzPKg5BqVxdCvxKg==", 1590 + "version": "24.10.1", 1591 + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz", 1592 + "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==", 1650 1593 "dev": true, 1651 1594 "license": "MIT", 1652 1595 "dependencies": { 1653 - "undici-types": "~7.8.0" 1596 + "undici-types": "~7.16.0" 1654 1597 } 1655 1598 }, 1599 + "node_modules/@types/whatwg-mimetype": { 1600 + "version": "3.0.2", 1601 + "resolved": "https://registry.npmjs.org/@types/whatwg-mimetype/-/whatwg-mimetype-3.0.2.tgz", 1602 + "integrity": "sha512-c2AKvDT8ToxLIOUlN51gTiHXflsfIFisS4pO7pDPoKouJCESkhZnEy623gwP9laCy5lnLDAw1vAzu2vM2YLOrA==", 1603 + "dev": true, 1604 + "license": "MIT" 1605 + }, 1656 1606 "node_modules/@types/ws": { 1657 1607 "version": "8.18.1", 1658 1608 "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", ··· 1664 1614 } 1665 1615 }, 1666 1616 "node_modules/@vitest/expect": { 1667 - "version": "3.2.3", 1668 - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.3.tgz", 1669 - "integrity": "sha512-W2RH2TPWVHA1o7UmaFKISPvdicFJH+mjykctJFoAkUw+SPTJTGjUNdKscFBrqM7IPnCVu6zihtKYa7TkZS1dkQ==", 1617 + "version": "4.0.14", 1618 + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.14.tgz", 1619 + "integrity": "sha512-RHk63V3zvRiYOWAV0rGEBRO820ce17hz7cI2kDmEdfQsBjT2luEKB5tCOc91u1oSQoUOZkSv3ZyzkdkSLD7lKw==", 1670 1620 "dev": true, 1671 1621 "license": "MIT", 1672 1622 "dependencies": { 1623 + "@standard-schema/spec": "^1.0.0", 1673 1624 "@types/chai": "^5.2.2", 1674 - "@vitest/spy": "3.2.3", 1675 - "@vitest/utils": "3.2.3", 1676 - "chai": "^5.2.0", 1677 - "tinyrainbow": "^2.0.0" 1625 + "@vitest/spy": "4.0.14", 1626 + "@vitest/utils": "4.0.14", 1627 + "chai": "^6.2.1", 1628 + "tinyrainbow": "^3.0.3" 1678 1629 }, 1679 1630 "funding": { 1680 1631 "url": "https://opencollective.com/vitest" 1681 1632 } 1682 1633 }, 1683 1634 "node_modules/@vitest/mocker": { 1684 - "version": "3.2.3", 1685 - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.3.tgz", 1686 - "integrity": "sha512-cP6fIun+Zx8he4rbWvi+Oya6goKQDZK+Yq4hhlggwQBbrlOQ4qtZ+G4nxB6ZnzI9lyIb+JnvyiJnPC2AGbKSPA==", 1635 + "version": "4.0.14", 1636 + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.14.tgz", 1637 + "integrity": "sha512-RzS5NujlCzeRPF1MK7MXLiEFpkIXeMdQ+rN3Kk3tDI9j0mtbr7Nmuq67tpkOJQpgyClbOltCXMjLZicJHsH5Cg==", 1687 1638 "dev": true, 1688 1639 "license": "MIT", 1689 1640 "dependencies": { 1690 - "@vitest/spy": "3.2.3", 1641 + "@vitest/spy": "4.0.14", 1691 1642 "estree-walker": "^3.0.3", 1692 - "magic-string": "^0.30.17" 1643 + "magic-string": "^0.30.21" 1693 1644 }, 1694 1645 "funding": { 1695 1646 "url": "https://opencollective.com/vitest" 1696 1647 }, 1697 1648 "peerDependencies": { 1698 1649 "msw": "^2.4.9", 1699 - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" 1650 + "vite": "^6.0.0 || ^7.0.0-0" 1700 1651 }, 1701 1652 "peerDependenciesMeta": { 1702 1653 "msw": { ··· 1718 1669 } 1719 1670 }, 1720 1671 "node_modules/@vitest/pretty-format": { 1721 - "version": "3.2.3", 1722 - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.3.tgz", 1723 - "integrity": "sha512-yFglXGkr9hW/yEXngO+IKMhP0jxyFw2/qys/CK4fFUZnSltD+MU7dVYGrH8rvPcK/O6feXQA+EU33gjaBBbAng==", 1672 + "version": "4.0.14", 1673 + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.14.tgz", 1674 + "integrity": "sha512-SOYPgujB6TITcJxgd3wmsLl+wZv+fy3av2PpiPpsWPZ6J1ySUYfScfpIt2Yv56ShJXR2MOA6q2KjKHN4EpdyRQ==", 1724 1675 "dev": true, 1725 1676 "license": "MIT", 1726 1677 "dependencies": { 1727 - "tinyrainbow": "^2.0.0" 1678 + "tinyrainbow": "^3.0.3" 1728 1679 }, 1729 1680 "funding": { 1730 1681 "url": "https://opencollective.com/vitest" 1731 1682 } 1732 1683 }, 1733 1684 "node_modules/@vitest/runner": { 1734 - "version": "3.2.3", 1735 - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.3.tgz", 1736 - "integrity": "sha512-83HWYisT3IpMaU9LN+VN+/nLHVBCSIUKJzGxC5RWUOsK1h3USg7ojL+UXQR3b4o4UBIWCYdD2fxuzM7PQQ1u8w==", 1685 + "version": "4.0.14", 1686 + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.14.tgz", 1687 + "integrity": "sha512-BsAIk3FAqxICqREbX8SetIteT8PiaUL/tgJjmhxJhCsigmzzH8xeadtp7LRnTpCVzvf0ib9BgAfKJHuhNllKLw==", 1737 1688 "dev": true, 1738 1689 "license": "MIT", 1739 1690 "dependencies": { 1740 - "@vitest/utils": "3.2.3", 1741 - "pathe": "^2.0.3", 1742 - "strip-literal": "^3.0.0" 1691 + "@vitest/utils": "4.0.14", 1692 + "pathe": "^2.0.3" 1743 1693 }, 1744 1694 "funding": { 1745 1695 "url": "https://opencollective.com/vitest" 1746 1696 } 1747 1697 }, 1748 1698 "node_modules/@vitest/snapshot": { 1749 - "version": "3.2.3", 1750 - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.3.tgz", 1751 - "integrity": "sha512-9gIVWx2+tysDqUmmM1L0hwadyumqssOL1r8KJipwLx5JVYyxvVRfxvMq7DaWbZZsCqZnu/dZedaZQh4iYTtneA==", 1699 + "version": "4.0.14", 1700 + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.14.tgz", 1701 + "integrity": "sha512-aQVBfT1PMzDSA16Y3Fp45a0q8nKexx6N5Amw3MX55BeTeZpoC08fGqEZqVmPcqN0ueZsuUQ9rriPMhZ3Mu19Ag==", 1752 1702 "dev": true, 1753 1703 "license": "MIT", 1754 1704 "dependencies": { 1755 - "@vitest/pretty-format": "3.2.3", 1756 - "magic-string": "^0.30.17", 1705 + "@vitest/pretty-format": "4.0.14", 1706 + "magic-string": "^0.30.21", 1757 1707 "pathe": "^2.0.3" 1758 1708 }, 1759 1709 "funding": { ··· 1761 1711 } 1762 1712 }, 1763 1713 "node_modules/@vitest/spy": { 1764 - "version": "3.2.3", 1765 - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.3.tgz", 1766 - "integrity": "sha512-JHu9Wl+7bf6FEejTCREy+DmgWe+rQKbK+y32C/k5f4TBIAlijhJbRBIRIOCEpVevgRsCQR2iHRUH2/qKVM/plw==", 1714 + "version": "4.0.14", 1715 + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.14.tgz", 1716 + "integrity": "sha512-JmAZT1UtZooO0tpY3GRyiC/8W7dCs05UOq9rfsUUgEZEdq+DuHLmWhPsrTt0TiW7WYeL/hXpaE07AZ2RCk44hg==", 1767 1717 "dev": true, 1768 1718 "license": "MIT", 1769 - "dependencies": { 1770 - "tinyspy": "^4.0.3" 1771 - }, 1772 1719 "funding": { 1773 1720 "url": "https://opencollective.com/vitest" 1774 1721 } 1775 1722 }, 1776 1723 "node_modules/@vitest/utils": { 1777 - "version": "3.2.3", 1778 - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.3.tgz", 1779 - "integrity": "sha512-4zFBCU5Pf+4Z6v+rwnZ1HU1yzOKKvDkMXZrymE2PBlbjKJRlrOxbvpfPSvJTGRIwGoahaOGvp+kbCoxifhzJ1Q==", 1724 + "version": "4.0.14", 1725 + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.14.tgz", 1726 + "integrity": "sha512-hLqXZKAWNg8pI+SQXyXxWCTOpA3MvsqcbVeNgSi8x/CSN2wi26dSzn1wrOhmCmFjEvN9p8/kLFRHa6PI8jHazw==", 1780 1727 "dev": true, 1781 1728 "license": "MIT", 1782 1729 "dependencies": { 1783 - "@vitest/pretty-format": "3.2.3", 1784 - "loupe": "^3.1.3", 1785 - "tinyrainbow": "^2.0.0" 1730 + "@vitest/pretty-format": "4.0.14", 1731 + "tinyrainbow": "^3.0.3" 1786 1732 }, 1787 1733 "funding": { 1788 1734 "url": "https://opencollective.com/vitest" ··· 1837 1783 "@babel/core": "^7.12.10" 1838 1784 } 1839 1785 }, 1786 + "node_modules/baseline-browser-mapping": { 1787 + "version": "2.8.32", 1788 + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.32.tgz", 1789 + "integrity": "sha512-OPz5aBThlyLFgxyhdwf/s2+8ab3OvT7AdTNvKHBwpXomIYeXqpUUuT8LrdtxZSsWJ4R4CU1un4XGh5Ez3nlTpw==", 1790 + "dev": true, 1791 + "license": "Apache-2.0", 1792 + "bin": { 1793 + "baseline-browser-mapping": "dist/cli.js" 1794 + } 1795 + }, 1840 1796 "node_modules/boolbase": { 1841 1797 "version": "1.0.0", 1842 1798 "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", ··· 1845 1801 "license": "ISC" 1846 1802 }, 1847 1803 "node_modules/browserslist": { 1848 - "version": "4.25.0", 1849 - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", 1850 - "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", 1804 + "version": "4.28.0", 1805 + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.0.tgz", 1806 + "integrity": "sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==", 1851 1807 "dev": true, 1852 1808 "funding": [ 1853 1809 { ··· 1865 1821 ], 1866 1822 "license": "MIT", 1867 1823 "dependencies": { 1868 - "caniuse-lite": "^1.0.30001718", 1869 - "electron-to-chromium": "^1.5.160", 1870 - "node-releases": "^2.0.19", 1871 - "update-browserslist-db": "^1.1.3" 1824 + "baseline-browser-mapping": "^2.8.25", 1825 + "caniuse-lite": "^1.0.30001754", 1826 + "electron-to-chromium": "^1.5.249", 1827 + "node-releases": "^2.0.27", 1828 + "update-browserslist-db": "^1.1.4" 1872 1829 }, 1873 1830 "bin": { 1874 1831 "browserslist": "cli.js" 1875 1832 }, 1876 1833 "engines": { 1877 1834 "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 1878 - } 1879 - }, 1880 - "node_modules/cac": { 1881 - "version": "6.7.14", 1882 - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", 1883 - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", 1884 - "dev": true, 1885 - "license": "MIT", 1886 - "engines": { 1887 - "node": ">=8" 1888 1835 } 1889 1836 }, 1890 1837 "node_modules/callsites": { ··· 1911 1858 } 1912 1859 }, 1913 1860 "node_modules/caniuse-lite": { 1914 - "version": "1.0.30001721", 1915 - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001721.tgz", 1916 - "integrity": "sha512-cOuvmUVtKrtEaoKiO0rSc29jcjwMwX5tOHDy4MgVFEWiUXj4uBMJkwI8MDySkgXidpMiHUcviogAvFi4pA2hDQ==", 1861 + "version": "1.0.30001757", 1862 + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001757.tgz", 1863 + "integrity": "sha512-r0nnL/I28Zi/yjk1el6ilj27tKcdjLsNqAOZr0yVjWPrSQyHgKI2INaEWw21bAQSv2LXRt1XuCS/GomNpWOxsQ==", 1917 1864 "dev": true, 1918 1865 "funding": [ 1919 1866 { ··· 1932 1879 "license": "CC-BY-4.0" 1933 1880 }, 1934 1881 "node_modules/chai": { 1935 - "version": "5.2.0", 1936 - "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.0.tgz", 1937 - "integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==", 1938 - "dev": true, 1939 - "license": "MIT", 1940 - "dependencies": { 1941 - "assertion-error": "^2.0.1", 1942 - "check-error": "^2.1.1", 1943 - "deep-eql": "^5.0.1", 1944 - "loupe": "^3.1.0", 1945 - "pathval": "^2.0.0" 1946 - }, 1947 - "engines": { 1948 - "node": ">=12" 1949 - } 1950 - }, 1951 - "node_modules/check-error": { 1952 - "version": "2.1.1", 1953 - "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", 1954 - "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", 1882 + "version": "6.2.1", 1883 + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.1.tgz", 1884 + "integrity": "sha512-p4Z49OGG5W/WBCPSS/dH3jQ73kD6tiMmUM+bckNK6Jr5JHMG3k9bg/BvKR8lKmtVBKmOiuVaV2ws8s9oSbwysg==", 1955 1885 "dev": true, 1956 1886 "license": "MIT", 1957 1887 "engines": { 1958 - "node": ">= 16" 1888 + "node": ">=18" 1959 1889 } 1960 1890 }, 1961 1891 "node_modules/confbox": { 1962 - "version": "0.1.8", 1963 - "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", 1964 - "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", 1892 + "version": "0.2.2", 1893 + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz", 1894 + "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==", 1965 1895 "dev": true, 1966 1896 "license": "MIT" 1967 1897 }, ··· 2000 1930 } 2001 1931 }, 2002 1932 "node_modules/css-select": { 2003 - "version": "5.1.0", 2004 - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", 2005 - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", 1933 + "version": "5.2.2", 1934 + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", 1935 + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", 2006 1936 "dev": true, 2007 1937 "license": "BSD-2-Clause", 2008 1938 "dependencies": { ··· 2017 1947 } 2018 1948 }, 2019 1949 "node_modules/css-what": { 2020 - "version": "6.1.0", 2021 - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", 2022 - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", 1950 + "version": "6.2.2", 1951 + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", 1952 + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", 2023 1953 "dev": true, 2024 1954 "license": "BSD-2-Clause", 2025 1955 "engines": { ··· 2030 1960 } 2031 1961 }, 2032 1962 "node_modules/csstype": { 2033 - "version": "3.1.3", 2034 - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", 2035 - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", 1963 + "version": "3.2.3", 1964 + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", 1965 + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", 2036 1966 "license": "MIT", 2037 1967 "peer": true 2038 1968 }, 2039 1969 "node_modules/dayjs": { 2040 - "version": "1.11.13", 2041 - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", 2042 - "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", 1970 + "version": "1.11.19", 1971 + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", 1972 + "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==", 2043 1973 "license": "MIT" 2044 1974 }, 2045 1975 "node_modules/debug": { 2046 - "version": "4.4.1", 2047 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", 2048 - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", 1976 + "version": "4.4.3", 1977 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", 1978 + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", 2049 1979 "dev": true, 2050 1980 "license": "MIT", 2051 1981 "dependencies": { ··· 2058 1988 "supports-color": { 2059 1989 "optional": true 2060 1990 } 2061 - } 2062 - }, 2063 - "node_modules/deep-eql": { 2064 - "version": "5.0.2", 2065 - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", 2066 - "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", 2067 - "dev": true, 2068 - "license": "MIT", 2069 - "engines": { 2070 - "node": ">=6" 2071 1991 } 2072 1992 }, 2073 1993 "node_modules/dom-serializer": { ··· 2141 2061 } 2142 2062 }, 2143 2063 "node_modules/electron-to-chromium": { 2144 - "version": "1.5.166", 2145 - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.166.tgz", 2146 - "integrity": "sha512-QPWqHL0BglzPYyJJ1zSSmwFFL6MFXhbACOCcsCdUMCkzPdS9/OIBVxg516X/Ado2qwAq8k0nJJ7phQPCqiaFAw==", 2064 + "version": "1.5.262", 2065 + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.262.tgz", 2066 + "integrity": "sha512-NlAsMteRHek05jRUxUR0a5jpjYq9ykk6+kO0yRaMi5moe7u0fVIOeQ3Y30A8dIiWFBNUoQGi1ljb1i5VtS9WQQ==", 2147 2067 "dev": true, 2148 2068 "license": "ISC" 2149 2069 }, ··· 2161 2081 } 2162 2082 }, 2163 2083 "node_modules/error-ex": { 2164 - "version": "1.3.2", 2165 - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 2166 - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 2084 + "version": "1.3.4", 2085 + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", 2086 + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", 2167 2087 "dev": true, 2168 2088 "license": "MIT", 2169 2089 "dependencies": { ··· 2178 2098 "license": "MIT" 2179 2099 }, 2180 2100 "node_modules/esbuild": { 2181 - "version": "0.25.5", 2182 - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.5.tgz", 2183 - "integrity": "sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==", 2101 + "version": "0.25.12", 2102 + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", 2103 + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", 2184 2104 "dev": true, 2185 2105 "hasInstallScript": true, 2186 2106 "license": "MIT", ··· 2191 2111 "node": ">=18" 2192 2112 }, 2193 2113 "optionalDependencies": { 2194 - "@esbuild/aix-ppc64": "0.25.5", 2195 - "@esbuild/android-arm": "0.25.5", 2196 - "@esbuild/android-arm64": "0.25.5", 2197 - "@esbuild/android-x64": "0.25.5", 2198 - "@esbuild/darwin-arm64": "0.25.5", 2199 - "@esbuild/darwin-x64": "0.25.5", 2200 - "@esbuild/freebsd-arm64": "0.25.5", 2201 - "@esbuild/freebsd-x64": "0.25.5", 2202 - "@esbuild/linux-arm": "0.25.5", 2203 - "@esbuild/linux-arm64": "0.25.5", 2204 - "@esbuild/linux-ia32": "0.25.5", 2205 - "@esbuild/linux-loong64": "0.25.5", 2206 - "@esbuild/linux-mips64el": "0.25.5", 2207 - "@esbuild/linux-ppc64": "0.25.5", 2208 - "@esbuild/linux-riscv64": "0.25.5", 2209 - "@esbuild/linux-s390x": "0.25.5", 2210 - "@esbuild/linux-x64": "0.25.5", 2211 - "@esbuild/netbsd-arm64": "0.25.5", 2212 - "@esbuild/netbsd-x64": "0.25.5", 2213 - "@esbuild/openbsd-arm64": "0.25.5", 2214 - "@esbuild/openbsd-x64": "0.25.5", 2215 - "@esbuild/sunos-x64": "0.25.5", 2216 - "@esbuild/win32-arm64": "0.25.5", 2217 - "@esbuild/win32-ia32": "0.25.5", 2218 - "@esbuild/win32-x64": "0.25.5" 2114 + "@esbuild/aix-ppc64": "0.25.12", 2115 + "@esbuild/android-arm": "0.25.12", 2116 + "@esbuild/android-arm64": "0.25.12", 2117 + "@esbuild/android-x64": "0.25.12", 2118 + "@esbuild/darwin-arm64": "0.25.12", 2119 + "@esbuild/darwin-x64": "0.25.12", 2120 + "@esbuild/freebsd-arm64": "0.25.12", 2121 + "@esbuild/freebsd-x64": "0.25.12", 2122 + "@esbuild/linux-arm": "0.25.12", 2123 + "@esbuild/linux-arm64": "0.25.12", 2124 + "@esbuild/linux-ia32": "0.25.12", 2125 + "@esbuild/linux-loong64": "0.25.12", 2126 + "@esbuild/linux-mips64el": "0.25.12", 2127 + "@esbuild/linux-ppc64": "0.25.12", 2128 + "@esbuild/linux-riscv64": "0.25.12", 2129 + "@esbuild/linux-s390x": "0.25.12", 2130 + "@esbuild/linux-x64": "0.25.12", 2131 + "@esbuild/netbsd-arm64": "0.25.12", 2132 + "@esbuild/netbsd-x64": "0.25.12", 2133 + "@esbuild/openbsd-arm64": "0.25.12", 2134 + "@esbuild/openbsd-x64": "0.25.12", 2135 + "@esbuild/openharmony-arm64": "0.25.12", 2136 + "@esbuild/sunos-x64": "0.25.12", 2137 + "@esbuild/win32-arm64": "0.25.12", 2138 + "@esbuild/win32-ia32": "0.25.12", 2139 + "@esbuild/win32-x64": "0.25.12" 2219 2140 } 2220 2141 }, 2221 2142 "node_modules/escalade": { ··· 2236 2157 "license": "MIT" 2237 2158 }, 2238 2159 "node_modules/expect-type": { 2239 - "version": "1.2.1", 2240 - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.1.tgz", 2241 - "integrity": "sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==", 2160 + "version": "1.2.2", 2161 + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz", 2162 + "integrity": "sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==", 2242 2163 "dev": true, 2243 2164 "license": "Apache-2.0", 2244 2165 "engines": { ··· 2246 2167 } 2247 2168 }, 2248 2169 "node_modules/exsolve": { 2249 - "version": "1.0.5", 2250 - "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.5.tgz", 2251 - "integrity": "sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==", 2170 + "version": "1.0.8", 2171 + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz", 2172 + "integrity": "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==", 2252 2173 "dev": true, 2253 2174 "license": "MIT" 2254 2175 }, 2176 + "node_modules/framer-motion": { 2177 + "version": "11.18.2", 2178 + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.18.2.tgz", 2179 + "integrity": "sha512-5F5Och7wrvtLVElIpclDT0CBzMVg3dL22B64aZwHtsIY8RB4mXICLrkajK4G9R+ieSAGcgrLeae2SeUTg2pr6w==", 2180 + "license": "MIT", 2181 + "dependencies": { 2182 + "motion-dom": "^11.18.1", 2183 + "motion-utils": "^11.18.1", 2184 + "tslib": "^2.4.0" 2185 + }, 2186 + "peerDependencies": { 2187 + "@emotion/is-prop-valid": "*", 2188 + "react": "^18.0.0 || ^19.0.0", 2189 + "react-dom": "^18.0.0 || ^19.0.0" 2190 + }, 2191 + "peerDependenciesMeta": { 2192 + "@emotion/is-prop-valid": { 2193 + "optional": true 2194 + }, 2195 + "react": { 2196 + "optional": true 2197 + }, 2198 + "react-dom": { 2199 + "optional": true 2200 + } 2201 + } 2202 + }, 2255 2203 "node_modules/fsevents": { 2256 2204 "version": "2.3.3", 2257 2205 "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", ··· 2277 2225 "node": ">=6.9.0" 2278 2226 } 2279 2227 }, 2280 - "node_modules/globals": { 2281 - "version": "11.12.0", 2282 - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 2283 - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 2284 - "dev": true, 2285 - "license": "MIT", 2286 - "engines": { 2287 - "node": ">=4" 2288 - } 2289 - }, 2290 2228 "node_modules/goober": { 2291 - "version": "2.1.16", 2292 - "resolved": "https://registry.npmjs.org/goober/-/goober-2.1.16.tgz", 2293 - "integrity": "sha512-erjk19y1U33+XAMe1VTvIONHYoSqE4iS7BYUZfHaqeohLmnC0FdxEh7rQU+6MZ4OajItzjZFSRtVANrQwNq6/g==", 2229 + "version": "2.1.18", 2230 + "resolved": "https://registry.npmjs.org/goober/-/goober-2.1.18.tgz", 2231 + "integrity": "sha512-2vFqsaDVIT9Gz7N6kAL++pLpp41l3PfDuusHcjnGLfR6+huZkl6ziX+zgVC3ZxpqWhzH6pyDdGrCeDhMIvwaxw==", 2294 2232 "license": "MIT", 2295 2233 "peerDependencies": { 2296 2234 "csstype": "^3.0.10" 2297 2235 } 2298 2236 }, 2299 2237 "node_modules/happy-dom": { 2300 - "version": "17.6.3", 2301 - "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-17.6.3.tgz", 2302 - "integrity": "sha512-UVIHeVhxmxedbWPCfgS55Jg2rDfwf2BCKeylcPSqazLz5w3Kri7Q4xdBJubsr/+VUzFLh0VjIvh13RaDA2/Xug==", 2238 + "version": "20.0.11", 2239 + "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-20.0.11.tgz", 2240 + "integrity": "sha512-QsCdAUHAmiDeKeaNojb1OHOPF7NjcWPBR7obdu3NwH2a/oyQaLg5d0aaCy/9My6CdPChYF07dvz5chaXBGaD4g==", 2303 2241 "dev": true, 2304 2242 "license": "MIT", 2305 2243 "dependencies": { 2306 - "webidl-conversions": "^7.0.0", 2244 + "@types/node": "^20.0.0", 2245 + "@types/whatwg-mimetype": "^3.0.2", 2307 2246 "whatwg-mimetype": "^3.0.0" 2308 2247 }, 2309 2248 "engines": { 2310 2249 "node": ">=20.0.0" 2311 2250 } 2312 2251 }, 2252 + "node_modules/happy-dom/node_modules/@types/node": { 2253 + "version": "20.19.25", 2254 + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.25.tgz", 2255 + "integrity": "sha512-ZsJzA5thDQMSQO788d7IocwwQbI8B5OPzmqNvpf3NY/+MHDAS759Wo0gd2WQeXYt5AAAQjzcrTVC6SKCuYgoCQ==", 2256 + "dev": true, 2257 + "license": "MIT", 2258 + "dependencies": { 2259 + "undici-types": "~6.21.0" 2260 + } 2261 + }, 2262 + "node_modules/happy-dom/node_modules/undici-types": { 2263 + "version": "6.21.0", 2264 + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", 2265 + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", 2266 + "dev": true, 2267 + "license": "MIT" 2268 + }, 2313 2269 "node_modules/he": { 2314 2270 "version": "1.2.0", 2315 2271 "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", ··· 2367 2323 "license": "MIT" 2368 2324 }, 2369 2325 "node_modules/js-yaml": { 2370 - "version": "4.1.0", 2371 - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 2372 - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 2326 + "version": "4.1.1", 2327 + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", 2328 + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", 2373 2329 "dev": true, 2374 2330 "license": "MIT", 2375 2331 "dependencies": { ··· 2427 2383 "license": "MIT" 2428 2384 }, 2429 2385 "node_modules/local-pkg": { 2430 - "version": "1.1.1", 2431 - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.1.tgz", 2432 - "integrity": "sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==", 2386 + "version": "1.1.2", 2387 + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.2.tgz", 2388 + "integrity": "sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==", 2433 2389 "dev": true, 2434 2390 "license": "MIT", 2435 2391 "dependencies": { 2436 2392 "mlly": "^1.7.4", 2437 - "pkg-types": "^2.0.1", 2438 - "quansync": "^0.2.8" 2393 + "pkg-types": "^2.3.0", 2394 + "quansync": "^0.2.11" 2439 2395 }, 2440 2396 "engines": { 2441 2397 "node": ">=14" ··· 2444 2400 "url": "https://github.com/sponsors/antfu" 2445 2401 } 2446 2402 }, 2447 - "node_modules/local-pkg/node_modules/confbox": { 2448 - "version": "0.2.2", 2449 - "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz", 2450 - "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==", 2451 - "dev": true, 2452 - "license": "MIT" 2453 - }, 2454 - "node_modules/local-pkg/node_modules/pkg-types": { 2455 - "version": "2.1.0", 2456 - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.1.0.tgz", 2457 - "integrity": "sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==", 2458 - "dev": true, 2459 - "license": "MIT", 2460 - "dependencies": { 2461 - "confbox": "^0.2.1", 2462 - "exsolve": "^1.0.1", 2463 - "pathe": "^2.0.3" 2464 - } 2465 - }, 2466 - "node_modules/loupe": { 2467 - "version": "3.1.3", 2468 - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz", 2469 - "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==", 2470 - "dev": true, 2471 - "license": "MIT" 2472 - }, 2473 2403 "node_modules/lower-case": { 2474 2404 "version": "2.0.2", 2475 2405 "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", ··· 2491 2421 } 2492 2422 }, 2493 2423 "node_modules/magic-string": { 2494 - "version": "0.30.17", 2495 - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", 2496 - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", 2424 + "version": "0.30.21", 2425 + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", 2426 + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", 2497 2427 "dev": true, 2498 2428 "license": "MIT", 2499 2429 "dependencies": { 2500 - "@jridgewell/sourcemap-codec": "^1.5.0" 2430 + "@jridgewell/sourcemap-codec": "^1.5.5" 2501 2431 } 2502 2432 }, 2503 2433 "node_modules/mitt": { ··· 2507 2437 "license": "MIT" 2508 2438 }, 2509 2439 "node_modules/mlly": { 2510 - "version": "1.7.4", 2511 - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz", 2512 - "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==", 2440 + "version": "1.8.0", 2441 + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz", 2442 + "integrity": "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==", 2443 + "dev": true, 2444 + "license": "MIT", 2445 + "dependencies": { 2446 + "acorn": "^8.15.0", 2447 + "pathe": "^2.0.3", 2448 + "pkg-types": "^1.3.1", 2449 + "ufo": "^1.6.1" 2450 + } 2451 + }, 2452 + "node_modules/mlly/node_modules/confbox": { 2453 + "version": "0.1.8", 2454 + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", 2455 + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", 2456 + "dev": true, 2457 + "license": "MIT" 2458 + }, 2459 + "node_modules/mlly/node_modules/pkg-types": { 2460 + "version": "1.3.1", 2461 + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", 2462 + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", 2513 2463 "dev": true, 2514 2464 "license": "MIT", 2515 2465 "dependencies": { 2516 - "acorn": "^8.14.0", 2517 - "pathe": "^2.0.1", 2518 - "pkg-types": "^1.3.0", 2519 - "ufo": "^1.5.4" 2466 + "confbox": "^0.1.8", 2467 + "mlly": "^1.7.4", 2468 + "pathe": "^2.0.1" 2469 + } 2470 + }, 2471 + "node_modules/motion": { 2472 + "version": "11.18.2", 2473 + "resolved": "https://registry.npmjs.org/motion/-/motion-11.18.2.tgz", 2474 + "integrity": "sha512-JLjvFDuFr42NFtcVoMAyC2sEjnpA8xpy6qWPyzQvCloznAyQ8FIXioxWfHiLtgYhoVpfUqSWpn1h9++skj9+Wg==", 2475 + "license": "MIT", 2476 + "dependencies": { 2477 + "framer-motion": "^11.18.2", 2478 + "tslib": "^2.4.0" 2479 + }, 2480 + "peerDependencies": { 2481 + "@emotion/is-prop-valid": "*", 2482 + "react": "^18.0.0 || ^19.0.0", 2483 + "react-dom": "^18.0.0 || ^19.0.0" 2484 + }, 2485 + "peerDependenciesMeta": { 2486 + "@emotion/is-prop-valid": { 2487 + "optional": true 2488 + }, 2489 + "react": { 2490 + "optional": true 2491 + }, 2492 + "react-dom": { 2493 + "optional": true 2494 + } 2495 + } 2496 + }, 2497 + "node_modules/motion-dom": { 2498 + "version": "11.18.1", 2499 + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-11.18.1.tgz", 2500 + "integrity": "sha512-g76KvA001z+atjfxczdRtw/RXOM3OMSdd1f4DL77qCTF/+avrRJiawSG4yDibEQ215sr9kpinSlX2pCTJ9zbhw==", 2501 + "license": "MIT", 2502 + "dependencies": { 2503 + "motion-utils": "^11.18.1" 2520 2504 } 2521 2505 }, 2506 + "node_modules/motion-utils": { 2507 + "version": "11.18.1", 2508 + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-11.18.1.tgz", 2509 + "integrity": "sha512-49Kt+HKjtbJKLtgO/LKj9Ld+6vw9BjH5d9sc40R/kVyH8GLAXgT42M2NnuPcJNuA3s9ZfZBUcwIgpmZWGEE+hA==", 2510 + "license": "MIT" 2511 + }, 2522 2512 "node_modules/ms": { 2523 2513 "version": "2.1.3", 2524 2514 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", ··· 2527 2517 "license": "MIT" 2528 2518 }, 2529 2519 "node_modules/nanoid": { 2530 - "version": "5.1.5", 2531 - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.5.tgz", 2532 - "integrity": "sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==", 2520 + "version": "5.1.6", 2521 + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.6.tgz", 2522 + "integrity": "sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==", 2533 2523 "funding": [ 2534 2524 { 2535 2525 "type": "github", ··· 2571 2561 } 2572 2562 }, 2573 2563 "node_modules/node-releases": { 2574 - "version": "2.0.19", 2575 - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", 2576 - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", 2564 + "version": "2.0.27", 2565 + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", 2566 + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", 2577 2567 "dev": true, 2578 2568 "license": "MIT" 2579 2569 }, ··· 2590 2580 "url": "https://github.com/fb55/nth-check?sponsor=1" 2591 2581 } 2592 2582 }, 2583 + "node_modules/obug": { 2584 + "version": "2.1.1", 2585 + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", 2586 + "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", 2587 + "dev": true, 2588 + "funding": [ 2589 + "https://github.com/sponsors/sxzz", 2590 + "https://opencollective.com/debug" 2591 + ], 2592 + "license": "MIT" 2593 + }, 2593 2594 "node_modules/package-manager-detector": { 2594 - "version": "1.3.0", 2595 - "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.3.0.tgz", 2596 - "integrity": "sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==", 2595 + "version": "1.6.0", 2596 + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.6.0.tgz", 2597 + "integrity": "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==", 2597 2598 "dev": true, 2598 2599 "license": "MIT" 2599 2600 }, ··· 2646 2647 "dev": true, 2647 2648 "license": "MIT" 2648 2649 }, 2649 - "node_modules/pathval": { 2650 - "version": "2.0.0", 2651 - "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", 2652 - "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", 2653 - "dev": true, 2654 - "license": "MIT", 2655 - "engines": { 2656 - "node": ">= 14.16" 2657 - } 2658 - }, 2659 2650 "node_modules/picocolors": { 2660 2651 "version": "1.1.1", 2661 2652 "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", ··· 2677 2668 } 2678 2669 }, 2679 2670 "node_modules/pkg-types": { 2680 - "version": "1.3.1", 2681 - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", 2682 - "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", 2671 + "version": "2.3.0", 2672 + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz", 2673 + "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==", 2683 2674 "dev": true, 2684 2675 "license": "MIT", 2685 2676 "dependencies": { 2686 - "confbox": "^0.1.8", 2687 - "mlly": "^1.7.4", 2688 - "pathe": "^2.0.1" 2677 + "confbox": "^0.2.2", 2678 + "exsolve": "^1.0.7", 2679 + "pathe": "^2.0.3" 2689 2680 } 2690 2681 }, 2691 2682 "node_modules/postcss": { 2692 - "version": "8.5.4", 2693 - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.4.tgz", 2694 - "integrity": "sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==", 2683 + "version": "8.5.6", 2684 + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", 2685 + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", 2695 2686 "dev": true, 2696 2687 "funding": [ 2697 2688 { ··· 2737 2728 } 2738 2729 }, 2739 2730 "node_modules/preact": { 2740 - "version": "10.26.9", 2741 - "resolved": "https://registry.npmjs.org/preact/-/preact-10.26.9.tgz", 2742 - "integrity": "sha512-SSjF9vcnF27mJK1XyFMNJzFd5u3pQiATFqoaDy03XuN00u4ziveVVEGt5RKJrDR8MHE/wJo9Nnad56RLzS2RMA==", 2731 + "version": "10.27.2", 2732 + "resolved": "https://registry.npmjs.org/preact/-/preact-10.27.2.tgz", 2733 + "integrity": "sha512-5SYSgFKSyhCbk6SrXyMpqjb5+MQBgfvEKE/OC+PujcY34sOpqtr+0AZQtPYx5IA6VxynQ7rUPCtKzyovpj9Bpg==", 2743 2734 "license": "MIT", 2744 2735 "funding": { 2745 2736 "type": "opencollective", ··· 2747 2738 } 2748 2739 }, 2749 2740 "node_modules/quansync": { 2750 - "version": "0.2.10", 2751 - "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.10.tgz", 2752 - "integrity": "sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==", 2741 + "version": "0.2.11", 2742 + "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", 2743 + "integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==", 2753 2744 "dev": true, 2754 2745 "funding": [ 2755 2746 { ··· 2783 2774 } 2784 2775 }, 2785 2776 "node_modules/rollup": { 2786 - "version": "4.42.0", 2787 - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.42.0.tgz", 2788 - "integrity": "sha512-LW+Vse3BJPyGJGAJt1j8pWDKPd73QM8cRXYK1IxOBgL2AGLu7Xd2YOW0M2sLUBCkF5MshXXtMApyEAEzMVMsnw==", 2777 + "version": "4.53.3", 2778 + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.3.tgz", 2779 + "integrity": "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==", 2789 2780 "dev": true, 2790 2781 "license": "MIT", 2791 2782 "dependencies": { 2792 - "@types/estree": "1.0.7" 2783 + "@types/estree": "1.0.8" 2793 2784 }, 2794 2785 "bin": { 2795 2786 "rollup": "dist/bin/rollup" ··· 2799 2790 "npm": ">=8.0.0" 2800 2791 }, 2801 2792 "optionalDependencies": { 2802 - "@rollup/rollup-android-arm-eabi": "4.42.0", 2803 - "@rollup/rollup-android-arm64": "4.42.0", 2804 - "@rollup/rollup-darwin-arm64": "4.42.0", 2805 - "@rollup/rollup-darwin-x64": "4.42.0", 2806 - "@rollup/rollup-freebsd-arm64": "4.42.0", 2807 - "@rollup/rollup-freebsd-x64": "4.42.0", 2808 - "@rollup/rollup-linux-arm-gnueabihf": "4.42.0", 2809 - "@rollup/rollup-linux-arm-musleabihf": "4.42.0", 2810 - "@rollup/rollup-linux-arm64-gnu": "4.42.0", 2811 - "@rollup/rollup-linux-arm64-musl": "4.42.0", 2812 - "@rollup/rollup-linux-loongarch64-gnu": "4.42.0", 2813 - "@rollup/rollup-linux-powerpc64le-gnu": "4.42.0", 2814 - "@rollup/rollup-linux-riscv64-gnu": "4.42.0", 2815 - "@rollup/rollup-linux-riscv64-musl": "4.42.0", 2816 - "@rollup/rollup-linux-s390x-gnu": "4.42.0", 2817 - "@rollup/rollup-linux-x64-gnu": "4.42.0", 2818 - "@rollup/rollup-linux-x64-musl": "4.42.0", 2819 - "@rollup/rollup-win32-arm64-msvc": "4.42.0", 2820 - "@rollup/rollup-win32-ia32-msvc": "4.42.0", 2821 - "@rollup/rollup-win32-x64-msvc": "4.42.0", 2793 + "@rollup/rollup-android-arm-eabi": "4.53.3", 2794 + "@rollup/rollup-android-arm64": "4.53.3", 2795 + "@rollup/rollup-darwin-arm64": "4.53.3", 2796 + "@rollup/rollup-darwin-x64": "4.53.3", 2797 + "@rollup/rollup-freebsd-arm64": "4.53.3", 2798 + "@rollup/rollup-freebsd-x64": "4.53.3", 2799 + "@rollup/rollup-linux-arm-gnueabihf": "4.53.3", 2800 + "@rollup/rollup-linux-arm-musleabihf": "4.53.3", 2801 + "@rollup/rollup-linux-arm64-gnu": "4.53.3", 2802 + "@rollup/rollup-linux-arm64-musl": "4.53.3", 2803 + "@rollup/rollup-linux-loong64-gnu": "4.53.3", 2804 + "@rollup/rollup-linux-ppc64-gnu": "4.53.3", 2805 + "@rollup/rollup-linux-riscv64-gnu": "4.53.3", 2806 + "@rollup/rollup-linux-riscv64-musl": "4.53.3", 2807 + "@rollup/rollup-linux-s390x-gnu": "4.53.3", 2808 + "@rollup/rollup-linux-x64-gnu": "4.53.3", 2809 + "@rollup/rollup-linux-x64-musl": "4.53.3", 2810 + "@rollup/rollup-openharmony-arm64": "4.53.3", 2811 + "@rollup/rollup-win32-arm64-msvc": "4.53.3", 2812 + "@rollup/rollup-win32-ia32-msvc": "4.53.3", 2813 + "@rollup/rollup-win32-x64-gnu": "4.53.3", 2814 + "@rollup/rollup-win32-x64-msvc": "4.53.3", 2822 2815 "fsevents": "~2.3.2" 2823 2816 } 2824 2817 }, ··· 2861 2854 } 2862 2855 }, 2863 2856 "node_modules/source-map": { 2864 - "version": "0.7.4", 2865 - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", 2866 - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", 2857 + "version": "0.7.6", 2858 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", 2859 + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", 2867 2860 "dev": true, 2868 2861 "license": "BSD-3-Clause", 2869 2862 "engines": { 2870 - "node": ">= 8" 2863 + "node": ">= 12" 2871 2864 } 2872 2865 }, 2873 2866 "node_modules/source-map-js": { ··· 2898 2891 "license": "MIT" 2899 2892 }, 2900 2893 "node_modules/std-env": { 2901 - "version": "3.9.0", 2902 - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz", 2903 - "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==", 2904 - "dev": true, 2905 - "license": "MIT" 2906 - }, 2907 - "node_modules/strip-literal": { 2908 - "version": "3.0.0", 2909 - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz", 2910 - "integrity": "sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==", 2911 - "dev": true, 2912 - "license": "MIT", 2913 - "dependencies": { 2914 - "js-tokens": "^9.0.1" 2915 - }, 2916 - "funding": { 2917 - "url": "https://github.com/sponsors/antfu" 2918 - } 2919 - }, 2920 - "node_modules/strip-literal/node_modules/js-tokens": { 2921 - "version": "9.0.1", 2922 - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", 2923 - "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", 2894 + "version": "3.10.0", 2895 + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", 2896 + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", 2924 2897 "dev": true, 2925 2898 "license": "MIT" 2926 2899 }, ··· 2939 2912 "license": "MIT" 2940 2913 }, 2941 2914 "node_modules/tinyexec": { 2942 - "version": "0.3.2", 2943 - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", 2944 - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", 2915 + "version": "1.0.2", 2916 + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", 2917 + "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", 2945 2918 "dev": true, 2946 - "license": "MIT" 2919 + "license": "MIT", 2920 + "engines": { 2921 + "node": ">=18" 2922 + } 2947 2923 }, 2948 2924 "node_modules/tinyglobby": { 2949 - "version": "0.2.14", 2950 - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", 2951 - "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", 2925 + "version": "0.2.15", 2926 + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", 2927 + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", 2952 2928 "dev": true, 2953 2929 "license": "MIT", 2954 2930 "dependencies": { 2955 - "fdir": "^6.4.4", 2956 - "picomatch": "^4.0.2" 2931 + "fdir": "^6.5.0", 2932 + "picomatch": "^4.0.3" 2957 2933 }, 2958 2934 "engines": { 2959 2935 "node": ">=12.0.0" ··· 2963 2939 } 2964 2940 }, 2965 2941 "node_modules/tinyglobby/node_modules/fdir": { 2966 - "version": "6.4.6", 2967 - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", 2968 - "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", 2942 + "version": "6.5.0", 2943 + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", 2944 + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", 2969 2945 "dev": true, 2970 2946 "license": "MIT", 2947 + "engines": { 2948 + "node": ">=12.0.0" 2949 + }, 2971 2950 "peerDependencies": { 2972 2951 "picomatch": "^3 || ^4" 2973 2952 }, ··· 2978 2957 } 2979 2958 }, 2980 2959 "node_modules/tinyglobby/node_modules/picomatch": { 2981 - "version": "4.0.2", 2982 - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", 2983 - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", 2960 + "version": "4.0.3", 2961 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", 2962 + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", 2984 2963 "dev": true, 2985 2964 "license": "MIT", 2986 2965 "engines": { ··· 2990 2969 "url": "https://github.com/sponsors/jonschlinkert" 2991 2970 } 2992 2971 }, 2993 - "node_modules/tinypool": { 2994 - "version": "1.1.0", 2995 - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.0.tgz", 2996 - "integrity": "sha512-7CotroY9a8DKsKprEy/a14aCCm8jYVmR7aFy4fpkZM8sdpNJbKkixuNjgM50yCmip2ezc8z4N7k3oe2+rfRJCQ==", 2997 - "dev": true, 2998 - "license": "MIT", 2999 - "engines": { 3000 - "node": "^18.0.0 || >=20.0.0" 3001 - } 3002 - }, 3003 2972 "node_modules/tinyrainbow": { 3004 - "version": "2.0.0", 3005 - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", 3006 - "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", 3007 - "dev": true, 3008 - "license": "MIT", 3009 - "engines": { 3010 - "node": ">=14.0.0" 3011 - } 3012 - }, 3013 - "node_modules/tinyspy": { 3014 - "version": "4.0.3", 3015 - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.3.tgz", 3016 - "integrity": "sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==", 2973 + "version": "3.0.3", 2974 + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.0.3.tgz", 2975 + "integrity": "sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==", 3017 2976 "dev": true, 3018 2977 "license": "MIT", 3019 2978 "engines": { ··· 3031 2990 "link": true 3032 2991 }, 3033 2992 "node_modules/typescript": { 3034 - "version": "5.8.3", 3035 - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", 3036 - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", 2993 + "version": "5.9.3", 2994 + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", 2995 + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", 3037 2996 "dev": true, 3038 2997 "license": "Apache-2.0", 3039 2998 "bin": { ··· 3052 3011 "license": "MIT" 3053 3012 }, 3054 3013 "node_modules/undici-types": { 3055 - "version": "7.8.0", 3056 - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", 3057 - "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", 3014 + "version": "7.16.0", 3015 + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", 3016 + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", 3058 3017 "dev": true, 3059 3018 "license": "MIT" 3060 3019 }, 3061 3020 "node_modules/unplugin": { 3062 - "version": "2.3.5", 3063 - "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.5.tgz", 3064 - "integrity": "sha512-RyWSb5AHmGtjjNQ6gIlA67sHOsWpsbWpwDokLwTcejVdOjEkJZh7QKu14J00gDDVSh8kGH4KYC/TNBceXFZhtw==", 3021 + "version": "2.3.11", 3022 + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz", 3023 + "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==", 3065 3024 "dev": true, 3066 3025 "license": "MIT", 3067 3026 "dependencies": { 3068 - "acorn": "^8.14.1", 3069 - "picomatch": "^4.0.2", 3027 + "@jridgewell/remapping": "^2.3.5", 3028 + "acorn": "^8.15.0", 3029 + "picomatch": "^4.0.3", 3070 3030 "webpack-virtual-modules": "^0.6.2" 3071 3031 }, 3072 3032 "engines": { ··· 3074 3034 } 3075 3035 }, 3076 3036 "node_modules/unplugin-icons": { 3077 - "version": "22.1.0", 3078 - "resolved": "https://registry.npmjs.org/unplugin-icons/-/unplugin-icons-22.1.0.tgz", 3079 - "integrity": "sha512-ect2ZNtk1Zgwb0NVHd0C1IDW/MV+Jk/xaq4t8o6rYdVS3+L660ZdD5kTSQZvsgdwCvquRw+/wYn75hsweRjoIA==", 3037 + "version": "22.5.0", 3038 + "resolved": "https://registry.npmjs.org/unplugin-icons/-/unplugin-icons-22.5.0.tgz", 3039 + "integrity": "sha512-MBlMtT5RuMYZy4TZgqUL2OTtOdTUVsS1Mhj6G1pEzMlFJlEnq6mhUfoIt45gBWxHcsOdXJDWLg3pRZ+YmvAVWQ==", 3080 3040 "dev": true, 3081 3041 "license": "MIT", 3082 3042 "dependencies": { 3083 - "@antfu/install-pkg": "^1.0.0", 3084 - "@iconify/utils": "^2.3.0", 3085 - "debug": "^4.4.0", 3086 - "local-pkg": "^1.0.0", 3087 - "unplugin": "^2.2.0" 3043 + "@antfu/install-pkg": "^1.1.0", 3044 + "@iconify/utils": "^3.0.2", 3045 + "debug": "^4.4.3", 3046 + "local-pkg": "^1.1.2", 3047 + "unplugin": "^2.3.10" 3088 3048 }, 3089 3049 "funding": { 3090 3050 "url": "https://github.com/sponsors/antfu" ··· 3119 3079 } 3120 3080 }, 3121 3081 "node_modules/unplugin/node_modules/picomatch": { 3122 - "version": "4.0.2", 3123 - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", 3124 - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", 3082 + "version": "4.0.3", 3083 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", 3084 + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", 3125 3085 "dev": true, 3126 3086 "license": "MIT", 3127 3087 "engines": { ··· 3132 3092 } 3133 3093 }, 3134 3094 "node_modules/update-browserslist-db": { 3135 - "version": "1.1.3", 3136 - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", 3137 - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", 3095 + "version": "1.1.4", 3096 + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz", 3097 + "integrity": "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==", 3138 3098 "dev": true, 3139 3099 "funding": [ 3140 3100 { ··· 3163 3123 } 3164 3124 }, 3165 3125 "node_modules/vite": { 3166 - "version": "6.3.5", 3167 - "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", 3168 - "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", 3126 + "version": "7.2.6", 3127 + "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.6.tgz", 3128 + "integrity": "sha512-tI2l/nFHC5rLh7+5+o7QjKjSR04ivXDF4jcgV0f/bTQ+OJiITy5S6gaynVsEM+7RqzufMnVbIon6Sr5x1SDYaQ==", 3169 3129 "dev": true, 3170 3130 "license": "MIT", 3171 3131 "dependencies": { 3172 3132 "esbuild": "^0.25.0", 3173 - "fdir": "^6.4.4", 3174 - "picomatch": "^4.0.2", 3175 - "postcss": "^8.5.3", 3176 - "rollup": "^4.34.9", 3177 - "tinyglobby": "^0.2.13" 3133 + "fdir": "^6.5.0", 3134 + "picomatch": "^4.0.3", 3135 + "postcss": "^8.5.6", 3136 + "rollup": "^4.43.0", 3137 + "tinyglobby": "^0.2.15" 3178 3138 }, 3179 3139 "bin": { 3180 3140 "vite": "bin/vite.js" 3181 3141 }, 3182 3142 "engines": { 3183 - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" 3143 + "node": "^20.19.0 || >=22.12.0" 3184 3144 }, 3185 3145 "funding": { 3186 3146 "url": "https://github.com/vitejs/vite?sponsor=1" ··· 3189 3149 "fsevents": "~2.3.3" 3190 3150 }, 3191 3151 "peerDependencies": { 3192 - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", 3152 + "@types/node": "^20.19.0 || >=22.12.0", 3193 3153 "jiti": ">=1.21.0", 3194 - "less": "*", 3154 + "less": "^4.0.0", 3195 3155 "lightningcss": "^1.21.0", 3196 - "sass": "*", 3197 - "sass-embedded": "*", 3198 - "stylus": "*", 3199 - "sugarss": "*", 3156 + "sass": "^1.70.0", 3157 + "sass-embedded": "^1.70.0", 3158 + "stylus": ">=0.54.8", 3159 + "sugarss": "^5.0.0", 3200 3160 "terser": "^5.16.0", 3201 3161 "tsx": "^4.8.1", 3202 3162 "yaml": "^2.4.2" ··· 3237 3197 } 3238 3198 } 3239 3199 }, 3240 - "node_modules/vite-node": { 3241 - "version": "3.2.3", 3242 - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.3.tgz", 3243 - "integrity": "sha512-gc8aAifGuDIpZHrPjuHyP4dpQmYXqWw7D1GmDnWeNWP654UEXzVfQ5IHPSK5HaHkwB/+p1atpYpSdw/2kOv8iQ==", 3244 - "dev": true, 3245 - "license": "MIT", 3246 - "dependencies": { 3247 - "cac": "^6.7.14", 3248 - "debug": "^4.4.1", 3249 - "es-module-lexer": "^1.7.0", 3250 - "pathe": "^2.0.3", 3251 - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" 3252 - }, 3253 - "bin": { 3254 - "vite-node": "vite-node.mjs" 3255 - }, 3256 - "engines": { 3257 - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" 3258 - }, 3259 - "funding": { 3260 - "url": "https://opencollective.com/vitest" 3261 - } 3262 - }, 3263 3200 "node_modules/vite-prerender-plugin": { 3264 - "version": "0.5.10", 3265 - "resolved": "https://registry.npmjs.org/vite-prerender-plugin/-/vite-prerender-plugin-0.5.10.tgz", 3266 - "integrity": "sha512-m4i0G5oc3LPLA02uW2XsFZmYNxZdyryz5Ksi78O9puj/ao5c8dBUW06caGwoM1TmYknTBBUyKhtqajUpoP+z8Q==", 3201 + "version": "0.5.12", 3202 + "resolved": "https://registry.npmjs.org/vite-prerender-plugin/-/vite-prerender-plugin-0.5.12.tgz", 3203 + "integrity": "sha512-EiwhbMn+flg14EysbLTmZSzq8NGTxhytgK3bf4aGRF1evWLGwZiHiUJ1KZDvbxgKbMf2pG6fJWGEa3UZXOnR1g==", 3267 3204 "dev": true, 3268 3205 "license": "MIT", 3269 3206 "dependencies": { ··· 3275 3212 "stack-trace": "^1.0.0-pre2" 3276 3213 }, 3277 3214 "peerDependencies": { 3278 - "vite": "5.x || 6.x" 3215 + "vite": "5.x || 6.x || 7.x" 3279 3216 } 3280 3217 }, 3281 3218 "node_modules/vite/node_modules/fdir": { 3282 - "version": "6.4.6", 3283 - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", 3284 - "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", 3219 + "version": "6.5.0", 3220 + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", 3221 + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", 3285 3222 "dev": true, 3286 3223 "license": "MIT", 3224 + "engines": { 3225 + "node": ">=12.0.0" 3226 + }, 3287 3227 "peerDependencies": { 3288 3228 "picomatch": "^3 || ^4" 3289 3229 }, ··· 3294 3234 } 3295 3235 }, 3296 3236 "node_modules/vite/node_modules/picomatch": { 3297 - "version": "4.0.2", 3298 - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", 3299 - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", 3237 + "version": "4.0.3", 3238 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", 3239 + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", 3300 3240 "dev": true, 3301 3241 "license": "MIT", 3302 3242 "engines": { ··· 3307 3247 } 3308 3248 }, 3309 3249 "node_modules/vitest": { 3310 - "version": "3.2.3", 3311 - "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.3.tgz", 3312 - "integrity": "sha512-E6U2ZFXe3N/t4f5BwUaVCKRLHqUpk1CBWeMh78UT4VaTPH/2dyvH6ALl29JTovEPu9dVKr/K/J4PkXgrMbw4Ww==", 3250 + "version": "4.0.14", 3251 + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.14.tgz", 3252 + "integrity": "sha512-d9B2J9Cm9dN9+6nxMnnNJKJCtcyKfnHj15N6YNJfaFHRLua/d3sRKU9RuKmO9mB0XdFtUizlxfz/VPbd3OxGhw==", 3313 3253 "dev": true, 3314 3254 "license": "MIT", 3315 3255 "dependencies": { 3316 - "@types/chai": "^5.2.2", 3317 - "@vitest/expect": "3.2.3", 3318 - "@vitest/mocker": "3.2.3", 3319 - "@vitest/pretty-format": "^3.2.3", 3320 - "@vitest/runner": "3.2.3", 3321 - "@vitest/snapshot": "3.2.3", 3322 - "@vitest/spy": "3.2.3", 3323 - "@vitest/utils": "3.2.3", 3324 - "chai": "^5.2.0", 3325 - "debug": "^4.4.1", 3326 - "expect-type": "^1.2.1", 3327 - "magic-string": "^0.30.17", 3256 + "@vitest/expect": "4.0.14", 3257 + "@vitest/mocker": "4.0.14", 3258 + "@vitest/pretty-format": "4.0.14", 3259 + "@vitest/runner": "4.0.14", 3260 + "@vitest/snapshot": "4.0.14", 3261 + "@vitest/spy": "4.0.14", 3262 + "@vitest/utils": "4.0.14", 3263 + "es-module-lexer": "^1.7.0", 3264 + "expect-type": "^1.2.2", 3265 + "magic-string": "^0.30.21", 3266 + "obug": "^2.1.1", 3328 3267 "pathe": "^2.0.3", 3329 - "picomatch": "^4.0.2", 3330 - "std-env": "^3.9.0", 3268 + "picomatch": "^4.0.3", 3269 + "std-env": "^3.10.0", 3331 3270 "tinybench": "^2.9.0", 3332 3271 "tinyexec": "^0.3.2", 3333 - "tinyglobby": "^0.2.14", 3334 - "tinypool": "^1.1.0", 3335 - "tinyrainbow": "^2.0.0", 3336 - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", 3337 - "vite-node": "3.2.3", 3272 + "tinyglobby": "^0.2.15", 3273 + "tinyrainbow": "^3.0.3", 3274 + "vite": "^6.0.0 || ^7.0.0", 3338 3275 "why-is-node-running": "^2.3.0" 3339 3276 }, 3340 3277 "bin": { 3341 3278 "vitest": "vitest.mjs" 3342 3279 }, 3343 3280 "engines": { 3344 - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" 3281 + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" 3345 3282 }, 3346 3283 "funding": { 3347 3284 "url": "https://opencollective.com/vitest" 3348 3285 }, 3349 3286 "peerDependencies": { 3350 3287 "@edge-runtime/vm": "*", 3351 - "@types/debug": "^4.1.12", 3352 - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", 3353 - "@vitest/browser": "3.2.3", 3354 - "@vitest/ui": "3.2.3", 3288 + "@opentelemetry/api": "^1.9.0", 3289 + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", 3290 + "@vitest/browser-playwright": "4.0.14", 3291 + "@vitest/browser-preview": "4.0.14", 3292 + "@vitest/browser-webdriverio": "4.0.14", 3293 + "@vitest/ui": "4.0.14", 3355 3294 "happy-dom": "*", 3356 3295 "jsdom": "*" 3357 3296 }, ··· 3359 3298 "@edge-runtime/vm": { 3360 3299 "optional": true 3361 3300 }, 3362 - "@types/debug": { 3301 + "@opentelemetry/api": { 3363 3302 "optional": true 3364 3303 }, 3365 3304 "@types/node": { 3366 3305 "optional": true 3367 3306 }, 3368 - "@vitest/browser": { 3307 + "@vitest/browser-playwright": { 3308 + "optional": true 3309 + }, 3310 + "@vitest/browser-preview": { 3311 + "optional": true 3312 + }, 3313 + "@vitest/browser-webdriverio": { 3369 3314 "optional": true 3370 3315 }, 3371 3316 "@vitest/ui": { ··· 3380 3325 } 3381 3326 }, 3382 3327 "node_modules/vitest/node_modules/picomatch": { 3383 - "version": "4.0.2", 3384 - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", 3385 - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", 3328 + "version": "4.0.3", 3329 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", 3330 + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", 3386 3331 "dev": true, 3387 3332 "license": "MIT", 3388 3333 "engines": { ··· 3392 3337 "url": "https://github.com/sponsors/jonschlinkert" 3393 3338 } 3394 3339 }, 3395 - "node_modules/webidl-conversions": { 3396 - "version": "7.0.0", 3397 - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", 3398 - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", 3340 + "node_modules/vitest/node_modules/tinyexec": { 3341 + "version": "0.3.2", 3342 + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", 3343 + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", 3399 3344 "dev": true, 3400 - "license": "BSD-2-Clause", 3401 - "engines": { 3402 - "node": ">=12" 3403 - } 3345 + "license": "MIT" 3404 3346 }, 3405 3347 "node_modules/webpack-virtual-modules": { 3406 3348 "version": "0.6.2", ··· 3437 3379 } 3438 3380 }, 3439 3381 "node_modules/wouter-preact": { 3440 - "version": "3.7.1", 3441 - "resolved": "https://registry.npmjs.org/wouter-preact/-/wouter-preact-3.7.1.tgz", 3442 - "integrity": "sha512-fg8/AVx+O1U2orkGPjnSOSn7h3XQKuVAQ4bU9x8SvyqiDPHUhIQyLeu+cj9FCQSDRCbPOwPn/MmcfLahEU7EtQ==", 3382 + "version": "3.8.0", 3383 + "resolved": "https://registry.npmjs.org/wouter-preact/-/wouter-preact-3.8.0.tgz", 3384 + "integrity": "sha512-Ni2sk4Fhn5ZG/5s6EZvJ95IuS1GSI199qTjFrCEtVSXHVWDG9CEcqOralxv0iuZ+McJ/Kpzv9C95/kq9iBKwaQ==", 3443 3385 "license": "Unlicense", 3444 3386 "dependencies": { 3445 3387 "mitt": "^3.0.1", ··· 3450 3392 } 3451 3393 }, 3452 3394 "node_modules/ws": { 3453 - "version": "8.18.2", 3454 - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", 3455 - "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", 3395 + "version": "8.18.3", 3396 + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", 3397 + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", 3456 3398 "license": "MIT", 3457 3399 "engines": { 3458 3400 "node": ">=10.0.0"