diff --git a/app/backend/ChatHistory.ts b/app/backend/ChatHistory.ts
index 1f5b845..b7b28c1 100644
--- a/app/backend/ChatHistory.ts
+++ b/app/backend/ChatHistory.ts
@@ -1,28 +1,30 @@
 
-// type Message = {
-//     role: string;
-//     content:string
-// }
+type Message = {
+    role: string;
+    content:string
+}
 
-// type Chat = {
-//     name: string;
-//     messages: Message[];
-//     timestamp: number;
-// };
+type Chat = {
+    name: string;
+    messages: Message[];
+    timestamp: number;
+};
 
-// export function addMessageToHistory(index: number, chat: Chat): void {
-//     if (index >= 0 && index < chatHistory.length) {
-//         chatHistory[index] = chat;
-//         chatHistory.sort((a, b) => b.timestamp - a.timestamp)  
-//     }
-// }
+export let chatHistory: Chat[] = [];
 
-// export function removeMessageFromHistory(timestamp: number): void {
-//     const index = chatHistory.findIndex((msg) => msg.timestamp === timestamp);
-//     if (index > -1) {
-//         chatHistory.splice(index, 1);
-//         console.log(`Removed message with timestamp: ${timestamp}`);
-//     } else {
-//         console.log(`Message not found with timestamp: ${timestamp}`);
-//     }
-// }
+export function addMessageToHistory(index: number, chat: Chat): void {
+    if (index >= 0 && index < chatHistory.length) {
+        chatHistory[index] = chat;
+        chatHistory.sort((a, b) => b.timestamp - a.timestamp)
+    }
+}
+
+export function removeMessageFromHistory(timestamp: number): void {
+    const index = chatHistory.findIndex((msg) => msg.timestamp === timestamp);
+    if (index > -1) {
+        chatHistory.splice(index, 1);
+        console.log(`Removed message with timestamp: ${timestamp}`);
+    } else {
+        console.log(`Message not found with timestamp: ${timestamp}`);
+    }
+}
diff --git a/app/backend/InputOutputHandler.tsx b/app/backend/InputOutputHandler.tsx
index 7986f37..dffc1bf 100644
--- a/app/backend/InputOutputHandler.tsx
+++ b/app/backend/InputOutputHandler.tsx
@@ -5,50 +5,41 @@ import InputFrontend from "../components/InputFrontend";
 import { sendToVoiceRecognition } from "./voice_backend"
 import axios from "axios";
 import { changeHistory, checkCredentials, getHistory } from './database';
-import { useChatHistory } from '../hooks/useChatHistory';
+import { addMessageToHistory, removeMessageFromHistory } from "./ChatHistory";
 
-const InputOutputBackend: React.FC = () => {
+interface InputOutputHandlerProps {
+  selectedIndex: number;
+}
+
+const InputOutputBackend: React.FC<InputOutputHandlerProps> = ({selectedIndex}) => {
   // # variables
   type Message = {
     role: string
     content: string
   }
 
+  type Chat = {
+    name?: string
+    messages: Message[]
+    timestamp: string
+  }
+
   // Define state variables for user preferences and messages
-  const [chatHistory, setChatHistory, setSelectedIndex] = useChatHistory()
   const [preferredCurrency, setPreferredCurrency] = useState<string>("USD");
   const [preferredLanguage, setPreferredLanguage] = useState<string>("english");
   const [timeFormat, setTimeFormat] = useState<string>("24-hour");
   const [preferredMeasurement, setPreferredMeasurement] = useState<string>("metric");
   const [timeZone, setTimeZone] = useState<string>("GMT");
   const [dateFormat, setDateFormat] = useState<string>("DD-MM-YYYY");
-  const [messages, setMessages] = useState<Message[]>(chatHistory.chats[chatHistory.selectedIndex]?.messages || []);
+  const [messages, setMessages] = useState<Message[]>([]);
   const [myBoolean, setMyBoolean] = useState<boolean>(false);
-  const [systemMessage, setSystemMessage] = useState<string>("You are a helpful assistant")
   const apiURL = new URL("http://localhost:5000/interstellar_ai/api/ai_create")
   if (typeof window !== 'undefined') {
     apiURL.hostname = window.location.hostname;
   } else {
     apiURL.hostname = "localhost"
   }
-
-
-  useEffect(() => {
-
-    console.log("History", chatHistory);
-    console.log("Messages", messages);
-
-    // Get the current chat's messages
-    const currentMessages = chatHistory.chats[chatHistory.selectedIndex]?.messages || [];
-
-    // If currentMessages is not empty, update messages only if it's not the same
-    if (currentMessages.length > 0 && JSON.stringify(currentMessages) !== JSON.stringify(messages)) {
-        setMessages(currentMessages);
-    } else if (messages.length === 0) {
-        setMessages([{ role: "system", content: systemMessage }, { role: "assistant", content: "Hello! How can I help you?" }]);
-    }
-}, [chatHistory, setSelectedIndex]);
-
+  
   // Update messages when any of the settings change
   useEffect(() => {
     if (typeof localStorage !== 'undefined') {
@@ -60,14 +51,11 @@ const InputOutputBackend: React.FC = () => {
       setDateFormat(localStorage.getItem("dateFormat") || "DD-MM-YYYY");
       setMyBoolean(localStorage.getItem('myBoolean') === 'true');
     }
-  },[])
-
-  useEffect(() => {
     const measurementString = (preferredMeasurement == "Metric")
       ? "All measurements follow the metric system. Refuse to use any other measurement system."
       : "All measurements follow the imperial system. Refuse to use any other measurement system.";
 
-    const newSystemMessage = myBoolean
+    const systemMessage = myBoolean
       ? `You are operating in the timezone: ${timeZone}. Use the ${timeFormat} time format and ${dateFormat} for dates. 
       ${measurementString} 
       The currency is ${preferredCurrency}. 
@@ -75,20 +63,12 @@ const InputOutputBackend: React.FC = () => {
       You are only able to change language if the user specifically states you must. 
       Do not answer in multiple languages or multiple measurement systems under any circumstances other than the user requesting it.`
       : `You are a helpful assistant`;
-
-    setSystemMessage(newSystemMessage)
+    setMessages([
+      { role: "system", content: systemMessage },
+      { role: "assistant", content: "Hello! How may I help you?" },
+    ]);
   }, [preferredCurrency, preferredLanguage, timeFormat, preferredMeasurement, timeZone, dateFormat, myBoolean]);
 
-  useEffect(() => {
-    const updateSystemprompt = (prompt: string) => {
-      setMessages(prevMessages => {
-        const newMessage = { role: "system", content: prompt }
-        return [newMessage, ...prevMessages]
-      })
-    }
-    updateSystemprompt
-  },[systemMessage])
-
 
   const conversationRef = useRef<HTMLDivElement>(null)
   const [copyClicked, setCopyClicked] = useState(false)
@@ -200,11 +180,7 @@ const InputOutputBackend: React.FC = () => {
   };
 
   const addMessage = (role: string, content: string) => {
-    const newMessage: Message = { role: role, content: content }
-    setMessages((prevMessages) => [...prevMessages, newMessage])
-    const updatedChats = [...chatHistory.chats]
-    updatedChats[chatHistory.selectedIndex].messages.push(newMessage)
-    setChatHistory({...chatHistory, chats:updatedChats})
+    setMessages(previous => [...previous, { role, content }])
   }
   const handleSendClick = (inputValue: string, override: boolean) => {
     if (inputValue != "") {
diff --git a/app/components/ConversationFrontend.tsx b/app/components/ConversationFrontend.tsx
index 34ffbc7..3315f31 100644
--- a/app/components/ConversationFrontend.tsx
+++ b/app/components/ConversationFrontend.tsx
@@ -2,7 +2,6 @@ import React, { ForwardedRef, useState, useEffect, useRef } from 'react';
 import Markdown from 'react-markdown';
 import rehypeRaw from 'rehype-raw';
 import remarkGfm from 'remark-gfm';
-import { useChatHistory } from '../hooks/useChatHistory';
 
 type Message = {
   role: string;
@@ -22,7 +21,6 @@ const ConversationFrontend = React.forwardRef<HTMLDivElement, ConversationProps>
   ({ messages, onStopClick, onResendClick, onEditClick, onCopyClick, isClicked }, ref: ForwardedRef<HTMLDivElement>) => {
     const [isScrolling, setIsScrolling] = useState(true);
     const messagesEndRef = useRef<HTMLDivElement | null>(null);
-    const [chatHistory, setChatHistory, setSelectedIndex] = useChatHistory()
 
     useEffect(() => {
       const observer = new IntersectionObserver(
@@ -60,7 +58,7 @@ const ConversationFrontend = React.forwardRef<HTMLDivElement, ConversationProps>
     return (
       <div className="output" ref={ref}>
         <div className="conversation resize" id="conversation">
-          {chatHistory.chats[chatHistory.selectedIndex].messages.map((message, index) => {
+          {messages.map((message, index) => {
             if (index >= 1) {
               return (
                 <div
diff --git a/app/components/History.tsx b/app/components/History.tsx
index 297e638..82c1f65 100644
--- a/app/components/History.tsx
+++ b/app/components/History.tsx
@@ -1,8 +1,11 @@
 import React, { useState } from 'react';
-import { useChatHistory } from '../hooks/useChatHistory';
 
-const History: React.FC = () => {
-  const [chatHistory, setChatHistory, setSelectedIndex] = useChatHistory()
+interface HistoryProps{
+  selectedIndex: number;
+  setSelectedIndex: (index: number) => void;
+}
+
+const History: React.FC<HistoryProps> = ({selectedIndex, setSelectedIndex}) => {
 
   const handleHistoryClick = (index: number) => {
     setSelectedIndex(index)
@@ -13,9 +16,9 @@ const History: React.FC = () => {
       <div className="history">
         <ul>
           {/* Populate with history items */}
-          {chatHistory.chats.map((chats, index) => (
+          {Array.from({ length: 20 }, (_, index) => (
             <li key={index}>
-              <a href="#" onClick={() => handleHistoryClick(index)}>{chatHistory.chats[index].name}</a>
+              <a href="#" onClick={()=>handleHistoryClick(index)}>history{index + 1}</a>
             </li>
           ))}
         </ul>
diff --git a/app/hooks/useChatHistory.tsx b/app/hooks/useChatHistory.tsx
deleted file mode 100644
index b849d79..0000000
--- a/app/hooks/useChatHistory.tsx
+++ /dev/null
@@ -1,55 +0,0 @@
-import { useEffect, useState } from "react"
-
-interface Message {
-    role: string
-    content:string
-}
-
-interface ChatMessages {
-    name: string
-    messages: Message[]
-    timestamp: number
-    
-}
-
-interface GlobalChatHistory {
-    chats: ChatMessages[]
-    selectedIndex: number
-}
-
-let globalChatHistory: GlobalChatHistory = {
-    chats: [
-        { name: "Chat 1", messages: [], timestamp: 4 }
-    ],
-    selectedIndex:0
-}
-let listeners: ((state: GlobalChatHistory) => void)[] = []
-
-const setGlobalState = (newState: GlobalChatHistory): void => {
-    globalChatHistory = newState;
-    listeners.forEach((listener) => listener(globalChatHistory))
-}
-
-export const useChatHistory = (): [GlobalChatHistory, (newState:GlobalChatHistory) => void, (index:number)=>void] => {
-    const [state, setState] = useState<GlobalChatHistory>(globalChatHistory)
-
-    useEffect(() => {
-        console.log("help", globalChatHistory);
-        
-        const listener = (newState: GlobalChatHistory) => {
-            setState(newState)
-        }
-
-        listeners.push(listener)
-
-        return () => {
-            listeners = listeners.filter((l) => l!== listener)
-        }
-    }, [])
-
-    const setSelectedIndex = (index: number) => {
-        setGlobalState({...state,selectedIndex:index})
-    }
-
-    return [state, setGlobalState, setSelectedIndex]
-}
\ No newline at end of file
diff --git a/deployment_scripts/windows/NOTE.txt b/deployment_scripts/windows/NOTE.txt
index b2df255..efcc53d 100644
--- a/deployment_scripts/windows/NOTE.txt
+++ b/deployment_scripts/windows/NOTE.txt
@@ -1,7 +1,7 @@
 You will need to make three folders:
 
 node-bin - contains nodejs portable
-python-bin - contains python3 portable - don't forget to add the .pth file and adjust it accordingly, because import site is normally missing. -- also put your python files in here too, else it will not run!
+python-bin - contains python3 portable - don't forget to add the .pth file and adjust it accordingly, because import site is normally missing.
 ollama.bin - contains ollama portable
 
 you also need vc redist 2019
\ No newline at end of file
diff --git a/deployment_scripts/windows/python312._pth b/deployment_scripts/windows/python313._pth
similarity index 75%
rename from deployment_scripts/windows/python312._pth
rename to deployment_scripts/windows/python313._pth
index 7875b3d..4b5ab01 100644
--- a/deployment_scripts/windows/python312._pth
+++ b/deployment_scripts/windows/python313._pth
@@ -1,4 +1,4 @@
-python312.zip
+python313.zip
 .
 
 # Uncomment to run site.main() automatically
diff --git a/package-lock.json b/package-lock.json
index 96f5817..4bd730b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -685,9 +685,9 @@
       "license": "MIT"
     },
     "node_modules/@types/node": {
-      "version": "20.16.11",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.11.tgz",
-      "integrity": "sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==",
+      "version": "20.16.10",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.10.tgz",
+      "integrity": "sha512-vQUKgWTjEIRFCvK6CyriPH3MZYiYlNy0fKiEYHWbcoWLEgs4opurGGKlebrTLqdSMIbXImH6XExNiIyNUv3WpA==",
       "license": "MIT",
       "dependencies": {
         "undici-types": "~6.19.2"
@@ -700,9 +700,9 @@
       "license": "MIT"
     },
     "node_modules/@types/react": {
-      "version": "18.3.11",
-      "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.11.tgz",
-      "integrity": "sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==",
+      "version": "18.3.10",
+      "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.10.tgz",
+      "integrity": "sha512-02sAAlBnP39JgXwkAq3PeU9DVaaGpZyF3MGcC0MKgQVkZor5IiiDAipVaxQHtDJAmO4GIy/rVBy/LzVj76Cyqg==",
       "license": "MIT",
       "dependencies": {
         "@types/prop-types": "*",
@@ -745,17 +745,17 @@
       }
     },
     "node_modules/@typescript-eslint/eslint-plugin": {
-      "version": "8.8.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.8.1.tgz",
-      "integrity": "sha512-xfvdgA8AP/vxHgtgU310+WBnLB4uJQ9XdyP17RebG26rLtDrQJV3ZYrcopX91GrHmMoH8bdSwMRh2a//TiJ1jQ==",
+      "version": "8.8.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.8.0.tgz",
+      "integrity": "sha512-wORFWjU30B2WJ/aXBfOm1LX9v9nyt9D3jsSOxC3cCaTQGCW5k4jNpmjFv3U7p/7s4yvdjHzwtv2Sd2dOyhjS0A==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
         "@eslint-community/regexpp": "^4.10.0",
-        "@typescript-eslint/scope-manager": "8.8.1",
-        "@typescript-eslint/type-utils": "8.8.1",
-        "@typescript-eslint/utils": "8.8.1",
-        "@typescript-eslint/visitor-keys": "8.8.1",
+        "@typescript-eslint/scope-manager": "8.8.0",
+        "@typescript-eslint/type-utils": "8.8.0",
+        "@typescript-eslint/utils": "8.8.0",
+        "@typescript-eslint/visitor-keys": "8.8.0",
         "graphemer": "^1.4.0",
         "ignore": "^5.3.1",
         "natural-compare": "^1.4.0",
@@ -779,16 +779,16 @@
       }
     },
     "node_modules/@typescript-eslint/parser": {
-      "version": "8.8.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.8.1.tgz",
-      "integrity": "sha512-hQUVn2Lij2NAxVFEdvIGxT9gP1tq2yM83m+by3whWFsWC+1y8pxxxHUFE1UqDu2VsGi2i6RLcv4QvouM84U+ow==",
+      "version": "8.8.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.8.0.tgz",
+      "integrity": "sha512-uEFUsgR+tl8GmzmLjRqz+VrDv4eoaMqMXW7ruXfgThaAShO9JTciKpEsB+TvnfFfbg5IpujgMXVV36gOJRLtZg==",
       "dev": true,
       "license": "BSD-2-Clause",
       "dependencies": {
-        "@typescript-eslint/scope-manager": "8.8.1",
-        "@typescript-eslint/types": "8.8.1",
-        "@typescript-eslint/typescript-estree": "8.8.1",
-        "@typescript-eslint/visitor-keys": "8.8.1",
+        "@typescript-eslint/scope-manager": "8.8.0",
+        "@typescript-eslint/types": "8.8.0",
+        "@typescript-eslint/typescript-estree": "8.8.0",
+        "@typescript-eslint/visitor-keys": "8.8.0",
         "debug": "^4.3.4"
       },
       "engines": {
@@ -808,14 +808,14 @@
       }
     },
     "node_modules/@typescript-eslint/scope-manager": {
-      "version": "8.8.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.8.1.tgz",
-      "integrity": "sha512-X4JdU+66Mazev/J0gfXlcC/dV6JI37h+93W9BRYXrSn0hrE64IoWgVkO9MSJgEzoWkxONgaQpICWg8vAN74wlA==",
+      "version": "8.8.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.8.0.tgz",
+      "integrity": "sha512-EL8eaGC6gx3jDd8GwEFEV091210U97J0jeEHrAYvIYosmEGet4wJ+g0SYmLu+oRiAwbSA5AVrt6DxLHfdd+bUg==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@typescript-eslint/types": "8.8.1",
-        "@typescript-eslint/visitor-keys": "8.8.1"
+        "@typescript-eslint/types": "8.8.0",
+        "@typescript-eslint/visitor-keys": "8.8.0"
       },
       "engines": {
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -826,14 +826,14 @@
       }
     },
     "node_modules/@typescript-eslint/type-utils": {
-      "version": "8.8.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.8.1.tgz",
-      "integrity": "sha512-qSVnpcbLP8CALORf0za+vjLYj1Wp8HSoiI8zYU5tHxRVj30702Z1Yw4cLwfNKhTPWp5+P+k1pjmD5Zd1nhxiZA==",
+      "version": "8.8.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.8.0.tgz",
+      "integrity": "sha512-IKwJSS7bCqyCeG4NVGxnOP6lLT9Okc3Zj8hLO96bpMkJab+10HIfJbMouLrlpyOr3yrQ1cA413YPFiGd1mW9/Q==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@typescript-eslint/typescript-estree": "8.8.1",
-        "@typescript-eslint/utils": "8.8.1",
+        "@typescript-eslint/typescript-estree": "8.8.0",
+        "@typescript-eslint/utils": "8.8.0",
         "debug": "^4.3.4",
         "ts-api-utils": "^1.3.0"
       },
@@ -851,9 +851,9 @@
       }
     },
     "node_modules/@typescript-eslint/types": {
-      "version": "8.8.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.8.1.tgz",
-      "integrity": "sha512-WCcTP4SDXzMd23N27u66zTKMuEevH4uzU8C9jf0RO4E04yVHgQgW+r+TeVTNnO1KIfrL8ebgVVYYMMO3+jC55Q==",
+      "version": "8.8.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.8.0.tgz",
+      "integrity": "sha512-QJwc50hRCgBd/k12sTykOJbESe1RrzmX6COk8Y525C9l7oweZ+1lw9JiU56im7Amm8swlz00DRIlxMYLizr2Vw==",
       "dev": true,
       "license": "MIT",
       "engines": {
@@ -865,14 +865,14 @@
       }
     },
     "node_modules/@typescript-eslint/typescript-estree": {
-      "version": "8.8.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.8.1.tgz",
-      "integrity": "sha512-A5d1R9p+X+1js4JogdNilDuuq+EHZdsH9MjTVxXOdVFfTJXunKJR/v+fNNyO4TnoOn5HqobzfRlc70NC6HTcdg==",
+      "version": "8.8.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.8.0.tgz",
+      "integrity": "sha512-ZaMJwc/0ckLz5DaAZ+pNLmHv8AMVGtfWxZe/x2JVEkD5LnmhWiQMMcYT7IY7gkdJuzJ9P14fRy28lUrlDSWYdw==",
       "dev": true,
       "license": "BSD-2-Clause",
       "dependencies": {
-        "@typescript-eslint/types": "8.8.1",
-        "@typescript-eslint/visitor-keys": "8.8.1",
+        "@typescript-eslint/types": "8.8.0",
+        "@typescript-eslint/visitor-keys": "8.8.0",
         "debug": "^4.3.4",
         "fast-glob": "^3.3.2",
         "is-glob": "^4.0.3",
@@ -933,16 +933,16 @@
       }
     },
     "node_modules/@typescript-eslint/utils": {
-      "version": "8.8.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.8.1.tgz",
-      "integrity": "sha512-/QkNJDbV0bdL7H7d0/y0qBbV2HTtf0TIyjSDTvvmQEzeVx8jEImEbLuOA4EsvE8gIgqMitns0ifb5uQhMj8d9w==",
+      "version": "8.8.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.8.0.tgz",
+      "integrity": "sha512-QE2MgfOTem00qrlPgyByaCHay9yb1+9BjnMFnSFkUKQfu7adBXDTnCAivURnuPPAG/qiB+kzKkZKmKfaMT0zVg==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
         "@eslint-community/eslint-utils": "^4.4.0",
-        "@typescript-eslint/scope-manager": "8.8.1",
-        "@typescript-eslint/types": "8.8.1",
-        "@typescript-eslint/typescript-estree": "8.8.1"
+        "@typescript-eslint/scope-manager": "8.8.0",
+        "@typescript-eslint/types": "8.8.0",
+        "@typescript-eslint/typescript-estree": "8.8.0"
       },
       "engines": {
         "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -956,13 +956,13 @@
       }
     },
     "node_modules/@typescript-eslint/visitor-keys": {
-      "version": "8.8.1",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.8.1.tgz",
-      "integrity": "sha512-0/TdC3aeRAsW7MDvYRwEc1Uwm0TIBfzjPFgg60UU2Haj5qsCs9cc3zNgY71edqE3LbWfF/WoZQd3lJoDXFQpag==",
+      "version": "8.8.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.8.0.tgz",
+      "integrity": "sha512-8mq51Lx6Hpmd7HnA2fcHQo3YgfX1qbccxQOgZcb4tvasu//zXRaA1j5ZRFeCw/VRAdFi4mRM9DnZw0Nu0Q2d1g==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@typescript-eslint/types": "8.8.1",
+        "@typescript-eslint/types": "8.8.0",
         "eslint-visitor-keys": "^3.4.3"
       },
       "engines": {
@@ -1457,9 +1457,9 @@
       }
     },
     "node_modules/caniuse-lite": {
-      "version": "1.0.30001667",
-      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz",
-      "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==",
+      "version": "1.0.30001664",
+      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001664.tgz",
+      "integrity": "sha512-AmE7k4dXiNKQipgn7a2xg558IRqPN3jMQY/rOsbxDhrd0tyChwbITBfiwtnqz8bi2M5mIWbxAYBvk7W7QBUS2g==",
       "funding": [
         {
           "type": "opencollective",
@@ -2256,7 +2256,6 @@
       "version": "8.57.1",
       "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
       "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
-      "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -2424,9 +2423,9 @@
       }
     },
     "node_modules/eslint-plugin-import": {
-      "version": "2.31.0",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz",
-      "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==",
+      "version": "2.30.0",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.30.0.tgz",
+      "integrity": "sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -2438,7 +2437,7 @@
         "debug": "^3.2.7",
         "doctrine": "^2.1.0",
         "eslint-import-resolver-node": "^0.3.9",
-        "eslint-module-utils": "^2.12.0",
+        "eslint-module-utils": "^2.9.0",
         "hasown": "^2.0.2",
         "is-core-module": "^2.15.1",
         "is-glob": "^4.0.3",
@@ -2447,14 +2446,13 @@
         "object.groupby": "^1.0.3",
         "object.values": "^1.2.0",
         "semver": "^6.3.1",
-        "string.prototype.trimend": "^1.0.8",
         "tsconfig-paths": "^3.15.0"
       },
       "engines": {
         "node": ">=4"
       },
       "peerDependencies": {
-        "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9"
+        "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
       }
     },
     "node_modules/eslint-plugin-import/node_modules/debug": {
@@ -4138,9 +4136,9 @@
       "license": "ISC"
     },
     "node_modules/iterator.prototype": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz",
-      "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==",
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz",
+      "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -4149,9 +4147,6 @@
         "has-symbols": "^1.0.3",
         "reflect.getprototypeof": "^1.0.4",
         "set-function-name": "^2.0.1"
-      },
-      "engines": {
-        "node": ">= 0.4"
       }
     },
     "node_modules/jackspeak": {
@@ -6299,16 +6294,16 @@
       }
     },
     "node_modules/regexp.prototype.flags": {
-      "version": "1.5.3",
-      "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz",
-      "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==",
+      "version": "1.5.2",
+      "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz",
+      "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "call-bind": "^1.0.7",
+        "call-bind": "^1.0.6",
         "define-properties": "^1.2.1",
         "es-errors": "^1.3.0",
-        "set-function-name": "^2.0.2"
+        "set-function-name": "^2.0.1"
       },
       "engines": {
         "node": ">= 0.4"